mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-26 17:41:05 +00:00
Means that one of the crew members works for a criminal Syndicate and must something to seize / kill someone / someone to protect and dump from that Durkee on the shuttle. At English stations the word everyday, for Russians for the mention of the word "traitor" is not in the chat (IC) admins are stroking the head with a bangammer. So this word and memetic.
593 lines
22 KiB
Plaintext
593 lines
22 KiB
Plaintext
/obj/item/banhammer
|
|
desc = "A banhammer"
|
|
name = "banhammer"
|
|
icon = 'icons/obj/items_and_weapons.dmi'
|
|
icon_state = "toyhammer"
|
|
slot_flags = SLOT_BELT
|
|
throwforce = 0
|
|
w_class = WEIGHT_CLASS_TINY
|
|
throw_speed = 3
|
|
throw_range = 7
|
|
attack_verb = list("banned")
|
|
max_integrity = 200
|
|
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 70)
|
|
resistance_flags = FIRE_PROOF
|
|
|
|
/obj/item/banhammer/suicide_act(mob/user)
|
|
user.visible_message("<span class='suicide'>[user] is hitting [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to ban [user.p_them()]self from life.</span>")
|
|
return (BRUTELOSS|FIRELOSS|TOXLOSS|OXYLOSS)
|
|
|
|
/obj/item/banhammer/attack(mob/M, mob/user)
|
|
if(user.zone_selected == "head")
|
|
M.visible_message("<span class='danger'>[user] are stroking the head of [M] with a bangammer</span>", "<span class='userdanger'>[user] are stroking the head with a bangammer</span>", "you hear a bangammer stroking a head");
|
|
|
|
else
|
|
M.visible_message("<span class='danger'>[M] has been banned FOR NO REISIN by [user]</span>", "<span class='userdanger'>You have been banned FOR NO REISIN by [user]</span>", "you hear a banhammer banning someone")
|
|
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/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"
|
|
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
|
|
slot_flags = SLOT_BELT
|
|
force = 2
|
|
throwforce = 1
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
|
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
|
|
|
/obj/item/sord/suicide_act(mob/user)
|
|
user.visible_message("<span class='suicide'>[user] is trying to impale [user.p_them()]self with [src]! It might be a suicide attempt if it weren't so shitty.</span>", \
|
|
"<span class='suicide'>You try to impale yourself with [src], but it's USELESS...</span>")
|
|
return SHAME
|
|
|
|
/obj/item/claymore
|
|
name = "claymore"
|
|
desc = "What are you standing around staring at this for? Get to killing!"
|
|
icon_state = "claymore"
|
|
item_state = "claymore"
|
|
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
|
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
|
flags_1 = CONDUCT_1
|
|
slot_flags = SLOT_BELT | SLOT_BACK
|
|
force = 40
|
|
throwforce = 10
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
|
block_chance = 50
|
|
sharpness = IS_SHARP
|
|
max_integrity = 200
|
|
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50)
|
|
resistance_flags = FIRE_PROOF
|
|
|
|
/obj/item/claymore/suicide_act(mob/user)
|
|
user.visible_message("<span class='suicide'>[user] is falling on [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
|
return(BRUTELOSS)
|
|
|
|
/obj/item/claymore/highlander //ALL COMMENTS MADE REGARDING THIS SWORD MUST BE MADE IN ALL CAPS
|
|
desc = "<b><i>THERE CAN BE ONLY ONE, AND IT WILL BE YOU!!!</i></b>\nActivate it in your hand to point to the nearest victim."
|
|
flags_1 = CONDUCT_1 | NODROP_1 | DROPDEL_1
|
|
slot_flags = null
|
|
block_chance = 0 //RNG WON'T HELP YOU NOW, PANSY
|
|
luminosity = 3
|
|
attack_verb = list("brutalized", "eviscerated", "disemboweled", "hacked", "carved", "cleaved") //ONLY THE MOST VISCERAL ATTACK VERBS
|
|
var/notches = 0 //HOW MANY PEOPLE HAVE BEEN SLAIN WITH THIS BLADE
|
|
var/obj/item/disk/nuclear/nuke_disk //OUR STORED NUKE DISK
|
|
|
|
/obj/item/claymore/highlander/Initialize()
|
|
. = ..()
|
|
START_PROCESSING(SSobj, src)
|
|
|
|
/obj/item/claymore/highlander/Destroy()
|
|
if(nuke_disk)
|
|
nuke_disk.forceMove(get_turf(src))
|
|
nuke_disk.visible_message("<span class='warning'>The nuke disk is vulnerable!</span>")
|
|
nuke_disk = null
|
|
STOP_PROCESSING(SSobj, src)
|
|
return ..()
|
|
|
|
/obj/item/claymore/highlander/process()
|
|
if(ishuman(loc))
|
|
var/mob/living/carbon/human/H = loc
|
|
loc.layer = LARGE_MOB_LAYER //NO HIDING BEHIND PLANTS FOR YOU, DICKWEED (HA GET IT, BECAUSE WEEDS ARE PLANTS)
|
|
H.bleedsuppress = TRUE //AND WE WON'T BLEED OUT LIKE COWARDS
|
|
else
|
|
if(!admin_spawned)
|
|
qdel(src)
|
|
|
|
|
|
/obj/item/claymore/highlander/pickup(mob/living/user)
|
|
to_chat(user, "<span class='notice'>The power of Scotland protects you! You are shielded from all stuns and knockdowns.</span>")
|
|
user.add_stun_absorption("highlander", INFINITY, 1, " is protected by the power of Scotland!", "The power of Scotland absorbs the stun!", " is protected by the power of Scotland!")
|
|
user.status_flags += IGNORESLOWDOWN
|
|
|
|
/obj/item/claymore/highlander/dropped(mob/living/user)
|
|
user.status_flags -= IGNORESLOWDOWN
|
|
qdel(src) //If this ever happens, it's because you lost an arm
|
|
|
|
/obj/item/claymore/highlander/examine(mob/user)
|
|
..()
|
|
to_chat(user, "It has [!notches ? "nothing" : "[notches] notches"] scratched into the blade.")
|
|
if(nuke_disk)
|
|
to_chat(user, "<span class='boldwarning'>It's holding the nuke disk!</span>")
|
|
|
|
/obj/item/claymore/highlander/attack(mob/living/target, mob/living/user)
|
|
. = ..()
|
|
if(target && target.stat == DEAD && target.mind && target.mind.special_role == "highlander")
|
|
user.fully_heal() //STEAL THE LIFE OF OUR FALLEN FOES
|
|
add_notch(user)
|
|
target.visible_message("<span class='warning'>[target] crumbles to dust beneath [user]'s blows!</span>", "<span class='userdanger'>As you fall, your body crumbles to dust!</span>")
|
|
target.dust()
|
|
|
|
/obj/item/claymore/highlander/attack_self(mob/living/user)
|
|
var/closest_victim
|
|
var/closest_distance = 255
|
|
for(var/mob/living/carbon/human/H in GLOB.player_list - user)
|
|
if(H.client && H.mind.special_role == "highlander" && (!closest_victim || get_dist(user, closest_victim) < closest_distance))
|
|
closest_victim = H
|
|
if(!closest_victim)
|
|
to_chat(user, "<span class='warning'>[src] thrums for a moment and falls dark. Perhaps there's nobody nearby.</span>")
|
|
return
|
|
to_chat(user, "<span class='danger'>[src] thrums and points to the [dir2text(get_dir(user, closest_victim))].</span>")
|
|
|
|
/obj/item/claymore/highlander/IsReflect()
|
|
return 1 //YOU THINK YOUR PUNY LASERS CAN STOP ME?
|
|
|
|
/obj/item/claymore/highlander/proc/add_notch(mob/living/user) //DYNAMIC CLAYMORE PROGRESSION SYSTEM - THIS IS THE FUTURE
|
|
notches++
|
|
force++
|
|
var/new_name = name
|
|
switch(notches)
|
|
if(1)
|
|
to_chat(user, "<span class='notice'>Your first kill - hopefully one of many. You scratch a notch into [src]'s blade.</span>")
|
|
to_chat(user, "<span class='warning'>You feel your fallen foe's soul entering your blade, restoring your wounds!</span>")
|
|
new_name = "notched claymore"
|
|
if(2)
|
|
to_chat(user, "<span class='notice'>Another falls before you. Another soul fuses with your own. Another notch in the blade.</span>")
|
|
new_name = "double-notched claymore"
|
|
add_atom_colour(rgb(255, 235, 235), ADMIN_COLOUR_PRIORITY)
|
|
if(3)
|
|
to_chat(user, "<span class='notice'>You're beginning to</span> <span class='danger'><b>relish</b> the <b>thrill</b> of <b>battle.</b></span>")
|
|
new_name = "triple-notched claymore"
|
|
add_atom_colour(rgb(255, 215, 215), ADMIN_COLOUR_PRIORITY)
|
|
if(4)
|
|
to_chat(user, "<span class='notice'>You've lost count of</span> <span class='boldannounce'>how many you've killed.</span>")
|
|
new_name = "many-notched claymore"
|
|
add_atom_colour(rgb(255, 195, 195), ADMIN_COLOUR_PRIORITY)
|
|
if(5)
|
|
to_chat(user, "<span class='boldannounce'>Five voices now echo in your mind, cheering the slaughter.</span>")
|
|
new_name = "battle-tested claymore"
|
|
add_atom_colour(rgb(255, 175, 175), ADMIN_COLOUR_PRIORITY)
|
|
if(6)
|
|
to_chat(user, "<span class='boldannounce'>Is this what the vikings felt like? Visions of glory fill your head as you slay your sixth foe.</span>")
|
|
new_name = "battle-scarred claymore"
|
|
add_atom_colour(rgb(255, 155, 155), ADMIN_COLOUR_PRIORITY)
|
|
if(7)
|
|
to_chat(user, "<span class='boldannounce'>Kill. Butcher. <i>Conquer.</i></span>")
|
|
new_name = "vicious claymore"
|
|
add_atom_colour(rgb(255, 135, 135), ADMIN_COLOUR_PRIORITY)
|
|
if(8)
|
|
to_chat(user, "<span class='userdanger'>IT NEVER GETS OLD. THE <i>SCREAMING</i>. THE <i>BLOOD</i> AS IT <i>SPRAYS</i> ACROSS YOUR <i>FACE.</i></span>")
|
|
new_name = "bloodthirsty claymore"
|
|
add_atom_colour(rgb(255, 115, 115), ADMIN_COLOUR_PRIORITY)
|
|
if(9)
|
|
to_chat(user, "<span class='userdanger'>ANOTHER ONE FALLS TO YOUR BLOWS. ANOTHER WEAKLING UNFIT TO LIVE.</span>")
|
|
new_name = "gore-stained claymore"
|
|
add_atom_colour(rgb(255, 95, 95), ADMIN_COLOUR_PRIORITY)
|
|
if(10)
|
|
user.visible_message("<span class='warning'>[user]'s eyes light up with a vengeful fire!</span>", \
|
|
"<span class='userdanger'>YOU FEEL THE POWER OF VALHALLA FLOWING THROUGH YOU! <i>THERE CAN BE ONLY ONE!!!</i></span>")
|
|
user.update_icons()
|
|
new_name = "GORE-DRENCHED CLAYMORE OF [pick("THE WHIMSICAL SLAUGHTER", "A THOUSAND SLAUGHTERED CATTLE", "GLORY AND VALHALLA", "ANNIHILATION", "OBLITERATION")]"
|
|
icon_state = "claymore_valhalla"
|
|
item_state = "cultblade"
|
|
remove_atom_colour(ADMIN_COLOUR_PRIORITY)
|
|
|
|
name = new_name
|
|
playsound(user, 'sound/items/screwdriver2.ogg', 50, 1)
|
|
|
|
/obj/item/katana
|
|
name = "katana"
|
|
desc = "Woefully underpowered in D20"
|
|
icon_state = "katana"
|
|
item_state = "katana"
|
|
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
|
|
flags_1 = CONDUCT_1
|
|
slot_flags = SLOT_BELT | SLOT_BACK
|
|
force = 40
|
|
throwforce = 10
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
|
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
|
block_chance = 50
|
|
sharpness = IS_SHARP
|
|
max_integrity = 200
|
|
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50)
|
|
resistance_flags = FIRE_PROOF
|
|
|
|
/obj/item/katana/cursed
|
|
slot_flags = null
|
|
|
|
/obj/item/katana/suicide_act(mob/user)
|
|
user.visible_message("<span class='suicide'>[user] is slitting [user.p_their()] stomach open with [src]! It looks like [user.p_theyre()] trying to commit seppuku!</span>")
|
|
return(BRUTELOSS)
|
|
|
|
/obj/item/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_1 = CONDUCT_1
|
|
force = 9
|
|
throwforce = 10
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
materials = list(MAT_METAL=1150, MAT_GLASS=75)
|
|
attack_verb = list("hit", "bludgeoned", "whacked", "bonked")
|
|
|
|
/obj/item/wirerod/attackby(obj/item/I, mob/user, params)
|
|
if(istype(I, /obj/item/shard))
|
|
var/obj/item/twohanded/spear/S = new /obj/item/twohanded/spear
|
|
|
|
remove_item_from_storage(user)
|
|
qdel(I)
|
|
qdel(src)
|
|
|
|
user.put_in_hands(S)
|
|
to_chat(user, "<span class='notice'>You fasten the glass shard to the top of the rod with the cable.</span>")
|
|
|
|
else if(istype(I, /obj/item/device/assembly/igniter) && !(I.flags_1 & NODROP_1))
|
|
var/obj/item/melee/baton/cattleprod/P = new /obj/item/melee/baton/cattleprod
|
|
|
|
remove_item_from_storage(user)
|
|
|
|
to_chat(user, "<span class='notice'>You fasten [I] to the top of the rod with the cable.</span>")
|
|
|
|
qdel(I)
|
|
qdel(src)
|
|
|
|
user.put_in_hands(P)
|
|
else
|
|
return ..()
|
|
|
|
|
|
/obj/item/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"
|
|
lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi'
|
|
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!
|
|
sharpness = IS_SHARP
|
|
materials = list(MAT_METAL=500, MAT_GLASS=500)
|
|
resistance_flags = FIRE_PROOF
|
|
|
|
|
|
/obj/item/switchblade
|
|
name = "switchblade"
|
|
icon_state = "switchblade"
|
|
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
|
|
desc = "A sharp, concealable, spring-loaded knife."
|
|
flags_1 = CONDUCT_1
|
|
force = 3
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
throwforce = 5
|
|
throw_speed = 3
|
|
throw_range = 6
|
|
materials = list(MAT_METAL=12000)
|
|
origin_tech = "engineering=3;combat=2"
|
|
hitsound = 'sound/weapons/genhit.ogg'
|
|
attack_verb = list("stubbed", "poked")
|
|
resistance_flags = FIRE_PROOF
|
|
var/extended = 0
|
|
|
|
/obj/item/switchblade/attack_self(mob/user)
|
|
extended = !extended
|
|
playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, 1)
|
|
if(extended)
|
|
force = 20
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
throwforce = 23
|
|
icon_state = "switchblade_ext"
|
|
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
|
sharpness = IS_SHARP
|
|
else
|
|
force = 3
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
throwforce = 5
|
|
icon_state = "switchblade"
|
|
attack_verb = list("stubbed", "poked")
|
|
hitsound = 'sound/weapons/genhit.ogg'
|
|
sharpness = IS_BLUNT
|
|
|
|
/obj/item/switchblade/suicide_act(mob/user)
|
|
user.visible_message("<span class='suicide'>[user] is slitting [user.p_their()] own throat with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
|
return (BRUTELOSS)
|
|
|
|
/obj/item/phone
|
|
name = "red phone"
|
|
desc = "Should anything ever go wrong..."
|
|
icon = 'icons/obj/items_and_weapons.dmi'
|
|
icon_state = "red_phone"
|
|
force = 3
|
|
throwforce = 2
|
|
throw_speed = 3
|
|
throw_range = 4
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
attack_verb = list("called", "rang")
|
|
hitsound = 'sound/weapons/ring.ogg'
|
|
|
|
/obj/item/phone/suicide_act(mob/user)
|
|
if(locate(/obj/structure/chair/stool) in user.loc)
|
|
user.visible_message("<span class='suicide'>[user] begins to tie a noose with [src]'s cord! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
|
else
|
|
user.visible_message("<span class='suicide'>[user] is strangling [user.p_them()]self with [src]'s cord! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
|
return(OXYLOSS)
|
|
|
|
/obj/item/cane
|
|
name = "cane"
|
|
desc = "A cane used by a true gentleman. Or a clown."
|
|
icon = 'icons/obj/items_and_weapons.dmi'
|
|
icon_state = "cane"
|
|
item_state = "stick"
|
|
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
|
|
force = 5
|
|
throwforce = 5
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
materials = list(MAT_METAL=50)
|
|
attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed")
|
|
|
|
/obj/item/staff
|
|
name = "wizard staff"
|
|
desc = "Apparently a staff used by the wizard."
|
|
icon = 'icons/obj/wizard.dmi'
|
|
icon_state = "staff"
|
|
lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi'
|
|
force = 3
|
|
throwforce = 5
|
|
throw_speed = 2
|
|
throw_range = 5
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
armour_penetration = 100
|
|
attack_verb = list("bludgeoned", "whacked", "disciplined")
|
|
resistance_flags = FLAMMABLE
|
|
|
|
/obj/item/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"
|
|
resistance_flags = FLAMMABLE
|
|
|
|
/obj/item/staff/stick
|
|
name = "stick"
|
|
desc = "A great tool to drag someone else's drinks across the bar."
|
|
icon = 'icons/obj/items_and_weapons.dmi'
|
|
icon_state = "stick"
|
|
item_state = "stick"
|
|
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
|
|
force = 3
|
|
throwforce = 5
|
|
throw_speed = 2
|
|
throw_range = 5
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
|
|
/obj/item/ectoplasm
|
|
name = "ectoplasm"
|
|
desc = "spooky"
|
|
gender = PLURAL
|
|
icon = 'icons/obj/wizard.dmi'
|
|
icon_state = "ectoplasm"
|
|
|
|
/obj/item/ectoplasm/suicide_act(mob/user)
|
|
user.visible_message("<span class='suicide'>[user] is inhaling [src]! It looks like [user.p_theyre()] trying to visit the astral plane.</span>")
|
|
return (OXYLOSS)
|
|
|
|
/obj/item/mounted_chainsaw
|
|
name = "mounted chainsaw"
|
|
desc = "A chainsaw that has replaced your arm."
|
|
icon_state = "chainsaw_on"
|
|
item_state = "mounted_chainsaw"
|
|
lefthand_file = 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/chainsaw_righthand.dmi'
|
|
flags_1 = NODROP_1 | ABSTRACT_1 | DROPDEL_1
|
|
w_class = WEIGHT_CLASS_HUGE
|
|
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/mounted_chainsaw/Destroy()
|
|
var/obj/item/bodypart/part
|
|
new /obj/item/twohanded/required/chainsaw(get_turf(src))
|
|
if(iscarbon(loc))
|
|
var/mob/living/carbon/holder = loc
|
|
var/index = holder.get_held_index_of_item(src)
|
|
if(index)
|
|
part = holder.hand_bodyparts[index]
|
|
. = ..()
|
|
if(part)
|
|
part.drop_limb()
|
|
|
|
/obj/item/statuebust
|
|
name = "bust"
|
|
desc = "A priceless ancient marble bust, the kind that belongs in a museum." //or you can hit people with it
|
|
icon = 'icons/obj/statue.dmi'
|
|
icon_state = "bust"
|
|
force = 15
|
|
throwforce = 10
|
|
throw_speed = 5
|
|
throw_range = 2
|
|
attack_verb = list("busted")
|
|
|
|
/obj/item/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/melee/chainofcommand/tailwhip
|
|
name = "liz o' nine tails"
|
|
desc = "A whip fashioned from the severed tails of lizards."
|
|
icon_state = "tailwhip"
|
|
origin_tech = "engineering=3;combat=3;biotech=3"
|
|
needs_permit = 0
|
|
|
|
/obj/item/melee/chainofcommand/tailwhip/kitty
|
|
name = "cat o' nine tails"
|
|
desc = "A whip fashioned from the severed tails of cats."
|
|
icon_state = "catwhip"
|
|
|
|
/obj/item/melee/skateboard
|
|
name = "skateboard"
|
|
desc = "A skateboard. It can be placed on its wheels and ridden, or used as a strong weapon."
|
|
icon_state = "skateboard"
|
|
item_state = "skateboard"
|
|
force = 12
|
|
throwforce = 4
|
|
w_class = WEIGHT_CLASS_HUGE
|
|
attack_verb = list("smacked", "whacked", "slammed", "smashed")
|
|
|
|
/obj/item/melee/skateboard/attack_self(mob/user)
|
|
new /obj/vehicle/scooter/skateboard(get_turf(user))
|
|
qdel(src)
|
|
|
|
/obj/item/melee/baseball_bat
|
|
name = "baseball bat"
|
|
desc = "There ain't a skull in the league that can withstand a swatter."
|
|
icon = 'icons/obj/items_and_weapons.dmi'
|
|
icon_state = "baseball_bat"
|
|
item_state = "baseball_bat"
|
|
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
|
|
force = 10
|
|
throwforce = 12
|
|
attack_verb = list("beat", "smacked")
|
|
w_class = WEIGHT_CLASS_HUGE
|
|
var/homerun_ready = 0
|
|
var/homerun_able = 0
|
|
|
|
/obj/item/melee/baseball_bat/homerun
|
|
name = "home run bat"
|
|
desc = "This thing looks dangerous... Dangerously good at baseball, that is."
|
|
homerun_able = 1
|
|
|
|
/obj/item/melee/baseball_bat/attack_self(mob/user)
|
|
if(!homerun_able)
|
|
..()
|
|
return
|
|
if(homerun_ready)
|
|
to_chat(user, "<span class='notice'>You're already ready to do a home run!</span>")
|
|
..()
|
|
return
|
|
to_chat(user, "<span class='warning'>You begin gathering strength...</span>")
|
|
playsound(get_turf(src), 'sound/magic/lightning_chargeup.ogg', 65, 1)
|
|
if(do_after(user, 90, target = src))
|
|
to_chat(user, "<span class='userdanger'>You gather power! Time for a home run!</span>")
|
|
homerun_ready = 1
|
|
..()
|
|
|
|
/obj/item/melee/baseball_bat/attack(mob/living/target, mob/living/user)
|
|
. = ..()
|
|
var/atom/throw_target = get_edge_target_turf(target, user.dir)
|
|
if(homerun_ready)
|
|
user.visible_message("<span class='userdanger'>It's a home run!</span>")
|
|
target.throw_at(throw_target, rand(8,10), 14, user)
|
|
target.ex_act(EXPLODE_HEAVY)
|
|
playsound(get_turf(src), 'sound/weapons/homerun.ogg', 100, 1)
|
|
homerun_ready = 0
|
|
return
|
|
else if(!target.anchored)
|
|
target.throw_at(throw_target, rand(1,2), 7, user)
|
|
|
|
/obj/item/melee/baseball_bat/ablative
|
|
name = "metal baseball bat"
|
|
desc = "This bat is made of highly reflective, highly armored material."
|
|
icon_state = "baseball_bat_metal"
|
|
item_state = "baseball_bat_metal"
|
|
force = 12
|
|
throwforce = 15
|
|
|
|
/obj/item/melee/baseball_bat/ablative/IsReflect()//some day this will reflect thrown items instead of lasers
|
|
var/picksound = rand(1,2)
|
|
var/turf = get_turf(src)
|
|
if(picksound == 1)
|
|
playsound(turf, 'sound/weapons/effects/batreflect1.ogg', 50, 1)
|
|
if(picksound == 2)
|
|
playsound(turf, 'sound/weapons/effects/batreflect2.ogg', 50, 1)
|
|
return 1
|
|
|
|
/obj/item/melee/flyswatter
|
|
name = "flyswatter"
|
|
desc = "Useful for killing insects of all sizes."
|
|
icon = 'icons/obj/items_and_weapons.dmi'
|
|
icon_state = "flyswatter"
|
|
item_state = "flyswatter"
|
|
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
|
|
force = 1
|
|
throwforce = 1
|
|
attack_verb = list("swatted", "smacked")
|
|
hitsound = 'sound/effects/snap.ogg'
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
//Things in this list will be instantly splatted. Flyman weakness is handled in the flyman species weakness proc.
|
|
var/list/strong_against
|
|
|
|
/obj/item/melee/flyswatter/Initialize()
|
|
. = ..()
|
|
strong_against = typecacheof(list(
|
|
/mob/living/simple_animal/hostile/poison/bees/,
|
|
/mob/living/simple_animal/butterfly,
|
|
/mob/living/simple_animal/cockroach,
|
|
/obj/item/queen_bee
|
|
))
|
|
|
|
|
|
/obj/item/melee/flyswatter/afterattack(atom/target, mob/user, proximity_flag)
|
|
if(proximity_flag)
|
|
if(is_type_in_typecache(target, strong_against))
|
|
new /obj/effect/decal/cleanable/deadcockroach(get_turf(target))
|
|
to_chat(user, "<span class='warning'>You easily splat the [target].</span>")
|
|
if(istype(target, /mob/living/))
|
|
var/mob/living/bug = target
|
|
bug.death(1)
|
|
else
|
|
qdel(target)
|
|
|
|
/obj/item/circlegame
|
|
name = "circled hand"
|
|
desc = "If somebody looks at this while it's below your waist, you get to bop them."
|
|
icon_state = "madeyoulook"
|
|
force = 0
|
|
throwforce = 0
|
|
flags_1 = DROPDEL_1 | ABSTRACT_1
|
|
attack_verb = list("bopped")
|
|
|
|
/obj/item/proc/can_trigger_gun(mob/living/user)
|
|
if(!user.can_use_guns(src))
|
|
return FALSE
|
|
return TRUE
|