91839f5f70
The action buttons now update their icon instantly. Fixes versions of pickup(),equipped() and dropped not calling the parent. Fixes drone not being able to remove a defib from their storage. You can now cycle the mime mask by clicking it in your hand. The action buttons for hardsuit and hooded suits now only appears when you're wearing the suit. Created two mob helper procs getBeltSlot() and getBackSlot(). Created /datum/species/proc/on_species_loss() to handle stuff when our race change, currently only used by jelly and slime race to remove their exotic blood from our reagents and to remove slime people's action buttons.
297 lines
9.3 KiB
Plaintext
297 lines
9.3 KiB
Plaintext
|
|
|
|
/obj/item/weapon/banhammer
|
|
desc = "A banhammer"
|
|
name = "banhammer"
|
|
icon = 'icons/obj/items.dmi'
|
|
icon_state = "toyhammer"
|
|
slot_flags = SLOT_BELT
|
|
throwforce = 0
|
|
w_class = 1
|
|
throw_speed = 3
|
|
throw_range = 7
|
|
attack_verb = list("banned")
|
|
|
|
/obj/item/weapon/banhammer/suicide_act(mob/user)
|
|
user.visible_message("<span class='suicide'>[user] is hitting \himself with the [src.name]! It looks like \he's trying to ban \himself from life.</span>")
|
|
return (BRUTELOSS|FIRELOSS|TOXLOSS|OXYLOSS)
|
|
|
|
/obj/item/weapon/banhammer/attack(mob/M, mob/user)
|
|
M << "<font color='red'><b> You have been banned FOR NO REISIN by [user]<b></font>"
|
|
user << "<font color='red'>You have <b>BANNED</b> [M]</font>"
|
|
playsound(loc, 'sound/effects/adminhelp.ogg', 15) //keep it at 15% volume so people don't jump out of their skin too much
|
|
|
|
/obj/item/weapon/sord
|
|
name = "\improper SORD"
|
|
desc = "This thing is so unspeakably shitty you are having a hard time even holding it."
|
|
icon_state = "sord"
|
|
item_state = "sord"
|
|
slot_flags = SLOT_BELT
|
|
force = 2
|
|
throwforce = 1
|
|
w_class = 3
|
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
|
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
|
|
|
/obj/item/weapon/sord/suicide_act(mob/user)
|
|
user.visible_message("<span class='suicide'>[user] is trying to impale \himself with \the [name]! It might be a suicide attempt if it weren't so shitty.</span>", "<span class='suicide'>You try to impale yourself with \the [name], but it's USELESS...</span>")
|
|
return(SHAME)
|
|
|
|
/obj/item/weapon/claymore
|
|
name = "claymore"
|
|
desc = "What are you standing around staring at this for? Get to killing!"
|
|
icon_state = "claymore"
|
|
item_state = "claymore"
|
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
|
flags = CONDUCT
|
|
slot_flags = SLOT_BELT | SLOT_BACK
|
|
force = 40
|
|
throwforce = 10
|
|
w_class = 3
|
|
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
|
block_chance = 50
|
|
|
|
/obj/item/weapon/claymore/suicide_act(mob/user)
|
|
user.visible_message("<span class='suicide'>[user] is falling on the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
|
return(BRUTELOSS)
|
|
|
|
/obj/item/weapon/katana
|
|
name = "katana"
|
|
desc = "Woefully underpowered in D20"
|
|
icon_state = "katana"
|
|
item_state = "katana"
|
|
flags = CONDUCT
|
|
slot_flags = SLOT_BELT | SLOT_BACK
|
|
force = 40
|
|
throwforce = 10
|
|
w_class = 3
|
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
|
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
|
block_chance = 50
|
|
|
|
/obj/item/weapon/katana/cursed
|
|
slot_flags = null
|
|
|
|
/obj/item/weapon/katana/suicide_act(mob/user)
|
|
user.visible_message("<span class='suicide'>[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.</span>")
|
|
return(BRUTELOSS)
|
|
|
|
/obj/item/weapon/wirerod
|
|
name = "wired rod"
|
|
desc = "A rod with some wire wrapped around the top. It'd be easy to attach something to the top bit."
|
|
icon_state = "wiredrod"
|
|
item_state = "rods"
|
|
flags = CONDUCT
|
|
force = 9
|
|
throwforce = 10
|
|
w_class = 3
|
|
materials = list(MAT_METAL=1000)
|
|
attack_verb = list("hit", "bludgeoned", "whacked", "bonked")
|
|
|
|
/obj/item/weapon/wirerod/attackby(obj/item/I, mob/user, params)
|
|
..()
|
|
if(istype(I, /obj/item/weapon/shard))
|
|
var/obj/item/weapon/twohanded/spear/S = new /obj/item/weapon/twohanded/spear
|
|
|
|
if(!remove_item_from_storage(user))
|
|
user.unEquip(src)
|
|
user.unEquip(I)
|
|
|
|
user.put_in_hands(S)
|
|
user << "<span class='notice'>You fasten the glass shard to the top of the rod with the cable.</span>"
|
|
qdel(I)
|
|
qdel(src)
|
|
|
|
else if(istype(I, /obj/item/device/assembly/igniter) && !(I.flags & NODROP))
|
|
var/obj/item/weapon/melee/baton/cattleprod/P = new /obj/item/weapon/melee/baton/cattleprod
|
|
|
|
if(!remove_item_from_storage(user))
|
|
user.unEquip(src)
|
|
user.unEquip(I)
|
|
|
|
user.put_in_hands(P)
|
|
user << "<span class='notice'>You fasten [I] to the top of the rod with the cable.</span>"
|
|
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 = 2
|
|
embed_chance = 100
|
|
embedded_fall_chance = 0 //Hahaha!
|
|
sharpness = IS_SHARP
|
|
materials = list(MAT_METAL=500, MAT_GLASS=500)
|
|
|
|
//5*(2*4) = 5*8 = 45, 45 damage if you hit one person with all 5 stars.
|
|
//Not counting the damage it will do while embedded (2*4 = 8, at 15% chance)
|
|
/obj/item/weapon/storage/box/throwing_stars/New()
|
|
..()
|
|
contents = list()
|
|
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)
|
|
|
|
|
|
|
|
/obj/item/weapon/switchblade
|
|
name = "switchblade"
|
|
icon_state = "switchblade"
|
|
desc = "A sharp, concealable, spring-loaded knife."
|
|
flags = CONDUCT
|
|
force = 3
|
|
w_class = 2
|
|
throwforce = 5
|
|
throw_speed = 3
|
|
throw_range = 6
|
|
materials = list(MAT_METAL=12000)
|
|
origin_tech = "materials=1"
|
|
hitsound = 'sound/weapons/Genhit.ogg'
|
|
attack_verb = list("stubbed", "poked")
|
|
var/extended = 0
|
|
|
|
/obj/item/weapon/switchblade/attack_self(mob/user)
|
|
extended = !extended
|
|
playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, 1)
|
|
if(extended)
|
|
force = 20
|
|
w_class = 3
|
|
throwforce = 23
|
|
icon_state = "switchblade_ext"
|
|
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
|
else
|
|
force = 3
|
|
w_class = 2
|
|
throwforce = 5
|
|
icon_state = "switchblade"
|
|
attack_verb = list("stubbed", "poked")
|
|
hitsound = 'sound/weapons/Genhit.ogg'
|
|
|
|
/obj/item/weapon/switchblade/suicide_act(mob/user)
|
|
user.visible_message("<span class='suicide'>[user] is slitting \his own throat with the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
|
return (BRUTELOSS)
|
|
|
|
/obj/item/weapon/phone
|
|
name = "red phone"
|
|
desc = "Should anything ever go wrong..."
|
|
icon = 'icons/obj/items.dmi'
|
|
icon_state = "red_phone"
|
|
force = 3
|
|
throwforce = 2
|
|
throw_speed = 3
|
|
throw_range = 4
|
|
w_class = 2
|
|
attack_verb = list("called", "rang")
|
|
hitsound = 'sound/weapons/ring.ogg'
|
|
|
|
/obj/item/weapon/phone/suicide_act(mob/user)
|
|
if(locate(/obj/structure/chair/stool) in user.loc)
|
|
user.visible_message("<span class='notice'>[user] begins to tie a noose with the [src.name]'s cord! It looks like \he's trying to commit suicide.</span>")
|
|
else
|
|
user.visible_message("<span class='notice'>[user] is strangling \himself with the [src.name]'s cord! It looks like \he's trying to commit suicide.</span>")
|
|
return(OXYLOSS)
|
|
|
|
/obj/item/weapon/cane
|
|
name = "cane"
|
|
desc = "A cane used by a true gentleman. Or a clown."
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "cane"
|
|
item_state = "stick"
|
|
force = 5
|
|
throwforce = 5
|
|
w_class = 2
|
|
materials = list(MAT_METAL=50)
|
|
attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed")
|
|
|
|
/obj/item/weapon/staff
|
|
name = "wizard staff"
|
|
desc = "Apparently a staff used by the wizard."
|
|
icon = 'icons/obj/wizard.dmi'
|
|
icon_state = "staff"
|
|
force = 3
|
|
throwforce = 5
|
|
throw_speed = 2
|
|
throw_range = 5
|
|
w_class = 2
|
|
armour_penetration = 100
|
|
attack_verb = list("bludgeoned", "whacked", "disciplined")
|
|
burn_state = FLAMMABLE
|
|
|
|
/obj/item/weapon/staff/broom
|
|
name = "broom"
|
|
desc = "Used for sweeping, and flying into the night while cackling. Black cat not included."
|
|
icon = 'icons/obj/wizard.dmi'
|
|
icon_state = "broom"
|
|
burn_state = FLAMMABLE
|
|
|
|
/obj/item/weapon/staff/stick
|
|
name = "stick"
|
|
desc = "A great tool to drag someone else's drinks across the bar."
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "stick"
|
|
item_state = "stick"
|
|
force = 3
|
|
throwforce = 5
|
|
throw_speed = 2
|
|
throw_range = 5
|
|
w_class = 2
|
|
|
|
/obj/item/weapon/ectoplasm
|
|
name = "ectoplasm"
|
|
desc = "spooky"
|
|
gender = PLURAL
|
|
icon = 'icons/obj/wizard.dmi'
|
|
icon_state = "ectoplasm"
|
|
|
|
/obj/item/weapon/ectoplasm/suicide_act(mob/user)
|
|
user.visible_message("<span class='suicide'>[user] is inhaling the [src.name]! It looks like \he's trying to visit the astral plane.</span>")
|
|
return (OXYLOSS)
|
|
|
|
/obj/item/weapon/mounted_chainsaw
|
|
name = "mounted chainsaw"
|
|
desc = "A chainsaw that has replaced your arm."
|
|
icon_state = "chainsaw_on"
|
|
item_state = "mounted_chainsaw"
|
|
flags = NODROP | ABSTRACT
|
|
w_class = 5.0
|
|
force = 21
|
|
throwforce = 0
|
|
throw_range = 0
|
|
throw_speed = 0
|
|
sharpness = IS_SHARP
|
|
attack_verb = list("sawed", "torn", "cut", "chopped", "diced")
|
|
hitsound = "sound/weapons/chainsawhit.ogg"
|
|
|
|
/obj/item/weapon/mounted_chainsaw/dropped()
|
|
..()
|
|
new /obj/item/weapon/twohanded/required/chainsaw(get_turf(src))
|
|
qdel(src)
|
|
|
|
/obj/item/weapon/tailclub
|
|
name = "tail club"
|
|
desc = "For the beating to death of lizards with their own tails."
|
|
icon_state = "tailclub"
|
|
force = 14
|
|
throwforce = 1 // why are you throwing a club do you even weapon
|
|
throw_speed = 1
|
|
throw_range = 1
|
|
attack_verb = list("clubbed", "bludgeoned")
|
|
|
|
/obj/item/weapon/melee/chainofcommand/tailwhip
|
|
name = "liz o' nine tails"
|
|
desc = "A whip fashioned from the severed tails of lizards."
|
|
icon_state = "tailwhip"
|
|
origin_tech = "combat=1"
|
|
needs_permit = 0
|
|
|