mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 19:44:09 +01:00
Merge remote-tracking branch 'upstream/master' into so-edgey
This commit is contained in:
@@ -4,7 +4,6 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
name = "item"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
var/discrete = 0 // used in item_attack.dm to make an item not show an attack message to viewers
|
||||
var/no_embed = 0 // For use in item_attack.dm
|
||||
var/image/blood_overlay = null //this saves our blood splatter overlay, which will be processed not to go over the edges of the sprite
|
||||
var/blood_overlay_color = null
|
||||
var/item_state = null
|
||||
@@ -63,6 +62,17 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
|
||||
var/mob/thrownby = null
|
||||
|
||||
//So items can have custom embedd values
|
||||
//Because customisation is king
|
||||
var/embed_chance = EMBED_CHANCE
|
||||
var/embedded_fall_chance = EMBEDDED_ITEM_FALLOUT
|
||||
var/embedded_pain_chance = EMBEDDED_PAIN_CHANCE
|
||||
var/embedded_pain_multiplier = EMBEDDED_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does while embedded (this*w_class)
|
||||
var/embedded_fall_pain_multiplier = EMBEDDED_FALL_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does when falling out of a limb (this*w_class)
|
||||
var/embedded_impact_pain_multiplier = EMBEDDED_IMPACT_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does when first embedded (this*w_class)
|
||||
var/embedded_unsafe_removal_pain_multiplier = EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER //The coefficient of multiplication for the damage removing this without surgery causes (this*w_class)
|
||||
var/embedded_unsafe_removal_time = EMBEDDED_UNSAFE_REMOVAL_TIME //A time in ticks, multiplied by the w_class.
|
||||
|
||||
var/toolspeed = 1 // If this item is a tool, the speed multiplier
|
||||
|
||||
/* Species-specific sprites, concept stolen from Paradise//vg/.
|
||||
|
||||
@@ -59,5 +59,5 @@
|
||||
var/obj/item/weapon/tank/T = W
|
||||
blow(T, user)
|
||||
return
|
||||
if(is_sharp(W) || is_hot(W) || can_puncture(W))
|
||||
if(is_sharp(W) || is_hot(W) || is_pointed(W))
|
||||
burst()
|
||||
|
||||
@@ -174,7 +174,7 @@ var/list/tape_roll_applications = list()
|
||||
breaktape(/obj/item/weapon/wirecutters,user)
|
||||
|
||||
/obj/item/tape/proc/breaktape(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(user.a_intent == INTENT_HELP && ((!can_puncture(W) && src.allowed(user))))
|
||||
if(user.a_intent == INTENT_HELP && ((!is_pointed(W) && src.allowed(user))))
|
||||
to_chat(user, "You can't break the [src] with that!")
|
||||
return
|
||||
user.visible_message("<span class=warning>[user] breaks the [src]!</span>", "<span class=warning>You break the [src]!</span>")
|
||||
|
||||
@@ -98,7 +98,6 @@
|
||||
throw_range = 6
|
||||
materials = list(MAT_METAL=12000)
|
||||
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
no_embed = 1
|
||||
sharp = 1
|
||||
|
||||
/obj/item/weapon/kitchen/knife/suicide_act(mob/user)
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
var/w_class_on = WEIGHT_CLASS_BULKY
|
||||
var/icon_state_on = "axe1"
|
||||
var/list/attack_verb_on = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
no_embed = 1 // Physically impossible for energy weapons to embed themselves into people, this should fix that. -- Dave
|
||||
hitsound = 'sound/weapons/blade1.ogg' // Probably more appropriate than the previous hitsound. -- Dave
|
||||
usesound = 'sound/weapons/blade1.ogg'
|
||||
toolspeed = 1
|
||||
@@ -25,6 +24,7 @@
|
||||
force = force_on
|
||||
throwforce = throwforce_on
|
||||
hitsound = 'sound/weapons/blade1.ogg'
|
||||
throw_speed = 4
|
||||
if(attack_verb_on.len)
|
||||
attack_verb = attack_verb_on
|
||||
if(!item_color)
|
||||
@@ -38,6 +38,7 @@
|
||||
force = initial(force)
|
||||
throwforce = initial(throwforce)
|
||||
hitsound = initial(hitsound)
|
||||
throw_speed = initial(throw_speed)
|
||||
if(attack_verb_on.len)
|
||||
attack_verb = list()
|
||||
icon_state = initial(icon_state)
|
||||
@@ -84,6 +85,8 @@
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
hitsound = "swing_hit"
|
||||
embed_chance = 75
|
||||
embedded_impact_pain_multiplier = 10
|
||||
armour_penetration = 35
|
||||
origin_tech = "combat=3;magnets=4;syndicate=4"
|
||||
block_chance = 50
|
||||
|
||||
@@ -87,28 +87,4 @@
|
||||
if(affecting.take_damage(5, 0))
|
||||
H.UpdateDamageIcon()
|
||||
H.updatehealth()
|
||||
..()
|
||||
|
||||
// Shrapnel
|
||||
|
||||
/obj/item/weapon/shard/shrapnel
|
||||
name = "shrapnel"
|
||||
icon = 'icons/obj/shards.dmi'
|
||||
icon_state = "shrapnellarge"
|
||||
desc = "A bunch of tiny bits of shattered metal."
|
||||
|
||||
/obj/item/weapon/shard/shrapnel/New()
|
||||
|
||||
src.icon_state = pick("shrapnellarge", "shrapnelmedium", "shrapnelsmall")
|
||||
switch(src.icon_state)
|
||||
if("shrapnelsmall")
|
||||
src.pixel_x = rand(-12, 12)
|
||||
src.pixel_y = rand(-12, 12)
|
||||
if("shrapnelmedium")
|
||||
src.pixel_x = rand(-8, 8)
|
||||
src.pixel_y = rand(-8, 8)
|
||||
if("shrapnellarge")
|
||||
src.pixel_x = rand(-5, 5)
|
||||
src.pixel_y = rand(-5, 5)
|
||||
else
|
||||
return
|
||||
..()
|
||||
@@ -157,6 +157,22 @@
|
||||
new /obj/item/weapon/grenade/empgrenade(src)
|
||||
new /obj/item/weapon/implanter/emp/(src)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/throwing_weapons
|
||||
name = "boxed throwing kit"
|
||||
can_hold = list(/obj/item/weapon/throwing_star, /obj/item/weapon/restraints/legcuffs/bola/tactical)
|
||||
max_combined_w_class = 16
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/throwing_weapons/New()
|
||||
..()
|
||||
new /obj/item/weapon/throwing_star(src)
|
||||
new /obj/item/weapon/throwing_star(src)
|
||||
new /obj/item/weapon/throwing_star(src)
|
||||
new /obj/item/weapon/throwing_star(src)
|
||||
new /obj/item/weapon/throwing_star(src)
|
||||
new /obj/item/weapon/restraints/legcuffs/bola/tactical(src)
|
||||
new /obj/item/weapon/restraints/legcuffs/bola/tactical(src)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/sarin
|
||||
name = "Sarin Gas Grenades"
|
||||
|
||||
|
||||
@@ -208,7 +208,6 @@
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
block_chance = 75
|
||||
sharp = 1
|
||||
no_embed = 1 // Like with the single-handed esword, this shouldn't be embedding in people.
|
||||
|
||||
/obj/item/weapon/twohanded/dualsaber/New()
|
||||
blade_color = pick("red", "blue", "green", "purple")
|
||||
@@ -495,7 +494,6 @@
|
||||
origin_tech = "materials=6;syndicate=4"
|
||||
attack_verb = list("sawed", "cut", "hacked", "carved", "cleaved", "butchered", "felled", "timbered")
|
||||
sharp = 1
|
||||
no_embed = 1
|
||||
|
||||
/obj/item/weapon/twohanded/chainsaw/update_icon()
|
||||
if(wielded)
|
||||
@@ -534,7 +532,6 @@
|
||||
icon_state = "mjollnir0"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BACK
|
||||
no_embed = 1
|
||||
force = 5
|
||||
force_unwielded = 5
|
||||
force_wielded = 20
|
||||
@@ -599,7 +596,6 @@
|
||||
icon_state = "mjollnir0"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BACK
|
||||
no_embed = 1
|
||||
force = 5
|
||||
force_unwielded = 5
|
||||
force_wielded = 25
|
||||
@@ -647,7 +643,6 @@
|
||||
icon_state = "knighthammer0"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BACK
|
||||
no_embed = 1
|
||||
force = 5
|
||||
force_unwielded = 5
|
||||
force_wielded = 30
|
||||
|
||||
@@ -127,6 +127,20 @@ obj/item/weapon/wirerod/attackby(obj/item/I, mob/user, params)
|
||||
qdel(I)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/throwing_star
|
||||
name = "throwing star"
|
||||
desc = "An ancient weapon still used to this day due to it's ease of lodging itself into victim's body parts"
|
||||
icon_state = "throwingstar"
|
||||
item_state = "eshield0"
|
||||
force = 2
|
||||
throwforce = 20 //This is never used on mobs since this has a 100% embed chance.
|
||||
throw_speed = 4
|
||||
embedded_pain_multiplier = 4
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
embed_chance = 100
|
||||
embedded_fall_chance = 0 //Hahaha!
|
||||
sharp = 1
|
||||
materials = list(MAT_METAL=500, MAT_GLASS=500)
|
||||
|
||||
/obj/item/weapon/spear/kidan
|
||||
icon_state = "kidanspear"
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
/obj/structure/inflatable/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
if(!istype(W))
|
||||
return
|
||||
if(can_puncture(W))
|
||||
if(is_pointed(W))
|
||||
visible_message("<span class='danger'>[user] pierces [src] with [W]!</span>")
|
||||
deflate(1)
|
||||
if(W.damtype == BRUTE || W.damtype == BURN)
|
||||
|
||||
@@ -182,10 +182,15 @@
|
||||
icon_state = "nuke"
|
||||
|
||||
/obj/structure/sign/clown
|
||||
name = "\improper mech painting"
|
||||
name = "\improper clown painting"
|
||||
desc = "A painting of the clown and mime. Awwww."
|
||||
icon_state = "clown"
|
||||
|
||||
/obj/structure/sign/bobross
|
||||
name = "\improper calming painting"
|
||||
desc = "We don't make mistakes, just happy little accidents."
|
||||
icon_state = "bob"
|
||||
|
||||
/obj/structure/sign/singulo
|
||||
name = "\improper singulo painting"
|
||||
desc = "A mesmerizing painting of a singularity. It seems to suck you in..."
|
||||
|
||||
Reference in New Issue
Block a user