mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-01-06 15:34:35 +00:00
88 lines
3.3 KiB
Plaintext
88 lines
3.3 KiB
Plaintext
/obj/item/weapon/melee/chainofcommand
|
|
name = "chain of command"
|
|
desc = "A tool used by great men to placate the frothing masses."
|
|
icon_state = "chain"
|
|
slot_flags = SLOT_BELT
|
|
force = 10
|
|
throwforce = 7
|
|
w_class = ITEMSIZE_NORMAL
|
|
origin_tech = list(TECH_COMBAT = 4)
|
|
attack_verb = list("flogged", "whipped", "lashed", "disciplined")
|
|
|
|
suicide_act(mob/user)
|
|
var/datum/gender/T = gender_datums[user.get_visible_gender()]
|
|
user.visible_message(span("danger", "\The [user] [T.is] strangling [T.himself] with \the [src]! It looks like [T.he] [T.is] trying to commit suicide."), span("danger", "You start to strangle yourself with \the [src]!"), span("danger", "You hear the sound of someone choking!"))
|
|
return (OXYLOSS)
|
|
|
|
/obj/item/weapon/melee/umbrella
|
|
name = "umbrella"
|
|
desc = "To keep the rain off you. Use with caution on windy days."
|
|
icon = 'icons/obj/items.dmi'
|
|
icon_state = "umbrella_closed"
|
|
addblends = "umbrella_closed_a"
|
|
slot_flags = SLOT_BELT
|
|
force = 5
|
|
throwforce = 5
|
|
w_class = ITEMSIZE_NORMAL
|
|
var/open = FALSE
|
|
|
|
/obj/item/weapon/melee/umbrella/New()
|
|
..()
|
|
update_icon()
|
|
|
|
/obj/item/weapon/melee/umbrella/attack_self()
|
|
src.toggle_umbrella()
|
|
|
|
/obj/item/weapon/melee/umbrella/proc/toggle_umbrella()
|
|
open = !open
|
|
icon_state = "umbrella_[open ? "open" : "closed"]"
|
|
addblends = icon_state + "_a"
|
|
item_state = icon_state
|
|
update_icon()
|
|
if(ishuman(src.loc))
|
|
var/mob/living/carbon/human/H = src.loc
|
|
H.update_inv_l_hand(0)
|
|
H.update_inv_r_hand()
|
|
..()
|
|
|
|
// Randomizes color
|
|
/obj/item/weapon/melee/umbrella/random/New()
|
|
color = "#"+get_random_colour()
|
|
..()
|
|
|
|
/obj/item/weapon/melee/cursedblade
|
|
name = "crystal blade"
|
|
desc = "The red crystal blade's polished surface glints in the light, giving off a faint glow."
|
|
icon_state = "soulblade"
|
|
slot_flags = SLOT_BELT | SLOT_BACK
|
|
force = 30
|
|
throwforce = 10
|
|
w_class = ITEMSIZE_NORMAL
|
|
sharp = 1
|
|
edge = 1
|
|
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
|
can_speak = 1
|
|
var/list/voice_mobs = list() //The curse of the sword is that it has someone trapped inside.
|
|
|
|
|
|
/obj/item/weapon/melee/cursedblade/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
|
|
if(default_parry_check(user, attacker, damage_source) && prob(50))
|
|
user.visible_message("<span class='danger'>\The [user] parries [attack_text] with \the [src]!</span>")
|
|
playsound(user.loc, 'sound/weapons/punchmiss.ogg', 50, 1)
|
|
return 1
|
|
return 0
|
|
|
|
/obj/item/weapon/melee/cursedblade/proc/ghost_inhabit(var/mob/candidate)
|
|
if(!isobserver(candidate))
|
|
return
|
|
//Handle moving the ghost into the new shell.
|
|
announce_ghost_joinleave(candidate, 0, "They are occupying a cursed sword now.")
|
|
var/mob/living/voice/new_voice = new /mob/living/voice(src) //Make the voice mob the ghost is going to be.
|
|
new_voice.transfer_identity(candidate) //Now make the voice mob load from the ghost's active character in preferences.
|
|
new_voice.mind = candidate.mind //Transfer the mind, if any.
|
|
new_voice.ckey = candidate.ckey //Finally, bring the client over.
|
|
new_voice.name = "cursed sword" //Cursed swords shouldn't be known characters.
|
|
new_voice.real_name = "cursed sword"
|
|
voice_mobs.Add(new_voice)
|
|
listening_objects |= src |