diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 12a7943dfa5..90359d4e5b7 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -54,6 +54,83 @@ user.visible_message("[user] is falling on the [src.name]! It looks like \he's trying to commit suicide.") return(BRUTELOSS) +/obj/item/weapon/claymore/highlander //ALL COMMENTS MADE REGARDING THIS SWORD MUST BE MADE IN ALL CAPS + desc = "THERE CAN BE ONLY ONE, AND IT WILL BE YOU!!!" + flags = CONDUCT | NODROP + var/notches = 0 //HOW MANY PEOPLE HAVE BEEN SLAIN WITH THIS BLADE + +/obj/item/weapon/claymore/highlander/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/item/weapon/claymore/highlander/Destroy() + STOP_PROCESSING(SSobj, src) + ..() + +/obj/item/weapon/claymore/highlander/process() + if(isliving(loc)) + var/mob/living/L = loc + if(L.stat == DEAD) + L.visible_message("[L] explodes in a shower of gore!", "No! There can be only one...") + L.gib() + +/obj/item/weapon/claymore/highlander/examine(mob/user) + ..() + user << "It has [notches] notches scratched into the blade." + +/obj/item/weapon/claymore/highlander/attack(mob/living/target, mob/living/user) + var/old_target_stat = target.stat + . = ..() + if(target && target.stat == DEAD && old_target_stat != DEAD && target.mind && target.mind.special_role == "highlander") + user.adjustBruteLoss(-200) //STEAL THE LIFE OF OUR FALLEN FOES + add_notch(user) + +/obj/item/weapon/claymore/highlander/IsReflect() + return 1 //YOU THINK YOUR PUNY LASERS CAN STOP ME? + +/obj/item/weapon/claymore/highlander/proc/add_notch(mob/living/user) + notches++ + force++ + var/new_name = name + switch(notches) + if(1) + user << "Your first kill - hopefully one of many. You scratch a notch into [src]'s blade." + user << "You feel your fallen foe's soul melding with your own, restoring your wounds!" + new_name = "notched claymore" + if(2) + user << "Another falls before you. Another soul fuses with your own. Another notch in the blade." + new_name = "double-notched claymore" + if(3) + user << "You're beginning to relish the thrill of battle." + new_name = "triple-notched claymore" + if(4) + user << "You've lost count of how many you've killed." + new_name = "many-notched claymore" + if(5) + user << "Five voices now echo in your mind, cheering the slaughter." + new_name = "battle-tested claymore" + if(6) + user << "Is this what the vikings felt like? Visions of glory fill your head as you slay your sixth foe." + new_name = "battle-scarred claymore" + if(7) + user << "Kill. Butcher. Conquer." + new_name = "blood-spattered claymore" + if(8) + user << "IT NEVER GETS OLD. THE SCREAMING. THE BLOOD AS IT SPRAYS ACROSS YOUR FACE." + new_name = "bloodthirsty claymore" + if(9) + user << "ANOTHER ONE FALLS TO YOUR BLOWS. ANOTHER WEAKLING UNFIT TO LIVE." + new_name = "gore-stained claymore" + if(10) + user.visible_message("[user]'s eyes light up with a vengeful fire!", \ + "YOU FEEL THE POWER OF VALHALLA FLOWING THROUGH YOU! THERE CAN BE ONLY ONE!!!") + 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" + + name = new_name + playsound(user, 'sound/items/Screwdriver2.ogg', 50, 1) + /obj/item/weapon/katana name = "katana" desc = "Woefully underpowered in D20" diff --git a/code/modules/admin/verbs/onlyone.dm b/code/modules/admin/verbs/onlyone.dm index 7a1377afe78..f2926a6d8aa 100644 --- a/code/modules/admin/verbs/onlyone.dm +++ b/code/modules/admin/verbs/onlyone.dm @@ -3,12 +3,15 @@ alert("The game hasn't started yet!") return + world << "THERE CAN BE ONLY ONE!!!" + world << sound('sound/misc/highlander.ogg') + for(var/mob/living/carbon/human/H in player_list) if(H.stat == 2 || !(H.client)) continue if(is_special_character(H)) continue ticker.mode.traitors += H.mind - H.mind.special_role = "traitor" + H.mind.special_role = "highlander" var/datum/objective/steal/steal_objective = new steal_objective.owner = H.mind @@ -16,10 +19,10 @@ H.mind.objectives += steal_objective var/datum/objective/hijack/hijack_objective = new + hijack_objective.explanation_text = "Escape on the shuttle alone. Ensure nobody else makes it out." hijack_objective.owner = H.mind H.mind.objectives += hijack_objective - H << "You are the traitor." H.mind.announce_objectives() for (var/obj/item/I in H) @@ -27,10 +30,10 @@ continue qdel(I) - H.equip_to_slot_or_del(new /obj/item/clothing/under/kilt(H), slot_w_uniform) + H.equip_to_slot_or_del(new /obj/item/clothing/under/kilt/highlander(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_ears) - H.equip_to_slot_or_del(new /obj/item/clothing/head/beret(H), slot_head) - H.equip_to_slot_or_del(new /obj/item/weapon/claymore(H), slot_l_hand) + H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/highlander(H), slot_head) + H.equip_to_slot_or_del(new /obj/item/weapon/claymore/highlander(H), slot_l_hand) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/weapon/pinpointer(H.loc), slot_l_store) @@ -40,12 +43,13 @@ W.access += get_all_centcom_access() W.assignment = "Highlander" W.registered_name = H.real_name + W.flags |= NODROP W.update_label(H.real_name) H.equip_to_slot_or_del(W, slot_wear_id) message_admins("[key_name_admin(usr)] used THERE CAN BE ONLY ONE!") - log_admin("[key_name(usr)] used there can be only one.") - + log_admin("[key_name(usr)] used THERE CAN BE ONLY ONE.") + addtimer(SSshuttle.emergency, "request", 50, FALSE, null, 1) /proc/only_me() if(!ticker || !ticker.mode) diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 730c7b1a556..b57b8f9d093 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -88,6 +88,10 @@ dog_fashion = /datum/dog_fashion/head/beret +/obj/item/clothing/head/beret/highlander + desc = "That was white fabric. Was." + flags = NODROP + dog_fashion = null //THIS IS FOR SLAUGHTER, NOT PUPPIES //Security diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index e39452362c6..6ee8b505403 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -355,6 +355,10 @@ fitted = FEMALE_UNIFORM_TOP can_adjust = 0 +/obj/item/clothing/under/kilt/highlander + desc = "You're the only one worthy of this kilt." + flags = NODROP + /obj/item/clothing/under/sexymime name = "sexy mime outfit" desc = "The only time when you DON'T enjoy looking at someone's rack." diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index f9cddb028d6..993c6dc509b 100644 Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ diff --git a/sound/misc/highlander.ogg b/sound/misc/highlander.ogg new file mode 100644 index 00000000000..2116f8a9724 Binary files /dev/null and b/sound/misc/highlander.ogg differ