mirror of
https://github.com/fulpstation/fulpstation.git
synced 2025-12-10 18:11:47 +00:00
Merge pull request #20082 from Xhuis/highlander_patch
[s] Highlander 2.0
This commit is contained in:
@@ -54,6 +54,123 @@
|
||||
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)
|
||||
|
||||
var/highlander_claymores = 0
|
||||
/obj/item/weapon/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."
|
||||
block_chance = 0 //RNG WON'T HELP YOU NOW, PANSY
|
||||
attack_verb = list("brutalized", "eviscerated", "disemboweled", "hacked", "carved", "cleaved", "gored") //ONLY THE MOST VISCERAL ATTACK VERBS
|
||||
var/notches = 0 //HOW MANY PEOPLE HAVE BEEN SLAIN WITH THIS BLADE
|
||||
var/announced = FALSE //IF WE ARE THE ONLY ONE LEFT STANDING
|
||||
|
||||
/obj/item/weapon/claymore/highlander/New()
|
||||
..()
|
||||
START_PROCESSING(SSobj, src)
|
||||
highlander_claymores++
|
||||
|
||||
/obj/item/weapon/claymore/highlander/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
highlander_claymores--
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/claymore/highlander/process()
|
||||
if(isliving(loc))
|
||||
var/mob/living/L = loc
|
||||
if(L.stat != DEAD)
|
||||
if(announced || admin_spawned || highlander_claymores > 1)
|
||||
return
|
||||
announced = TRUE
|
||||
L.fully_heal()
|
||||
world << "<span class='userdanger'>[L.real_name] IS THE ONLY ONE LEFT STANDING!</span>"
|
||||
world << sound('sound/misc/highlander_only_one.ogg')
|
||||
L << "<span class='notice'>YOU ARE THE ONLY ONE LEFT STANDING!</span>"
|
||||
|
||||
/obj/item/weapon/claymore/highlander/pickup(mob/living/user)
|
||||
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!")
|
||||
|
||||
/obj/item/weapon/claymore/highlander/dropped(mob/living/user)
|
||||
user << "<span class='danger'>The power of Scotland fades away! You are no longer shielded from stuns.</span>"
|
||||
user.add_stun_absorption("highlander", 0.1, 1, "is protected by the power of Scotland!", "The power of Scotland absorbs the stun!", " is protected by the power of Scotland!")
|
||||
|
||||
/obj/item/weapon/claymore/highlander/examine(mob/user)
|
||||
..()
|
||||
user << "It has [!notches ? "nothing" : "[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.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/weapon/claymore/highlander/attack_self(mob/living/user)
|
||||
var/closest_victim
|
||||
var/closest_distance = 255
|
||||
for(var/mob/living/carbon/human/H in 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)
|
||||
user << "<span class='warning'>[src] thrums for a moment and falls dark. Perhaps there's nobody nearby.</span>"
|
||||
user << "<span class='danger'>[src] thrums and points to the [dir2text(get_dir(user, closest_victim))].</span>"
|
||||
|
||||
/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) //DYNAMIC CLAYMORE PROGRESSION SYSTEM - THIS IS THE FUTURE
|
||||
notches++
|
||||
force++
|
||||
var/new_name = name
|
||||
switch(notches)
|
||||
if(1)
|
||||
user << "<span class='notice'>Your first kill - hopefully one of many. You scratch a notch into [src]'s blade.</span>"
|
||||
user << "<span class='warning'>You feel your fallen foe's soul entering your blade, restoring your wounds!</span>"
|
||||
new_name = "notched claymore"
|
||||
if(2)
|
||||
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"
|
||||
color = rgb(255, 235, 235)
|
||||
if(3)
|
||||
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"
|
||||
color = rgb(255, 215, 215)
|
||||
if(4)
|
||||
user << "<span class='notice'>You've lost count of</span> <span class='boldannounce'>how many you've killed.</span>"
|
||||
new_name = "many-notched claymore"
|
||||
color = rgb(255, 195, 195)
|
||||
if(5)
|
||||
user << "<span class='boldannounce'>Five voices now echo in your mind, cheering the slaughter.</span>"
|
||||
new_name = "battle-tested claymore"
|
||||
color = rgb(255, 175, 175)
|
||||
if(6)
|
||||
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"
|
||||
color = rgb(255, 155, 155)
|
||||
if(7)
|
||||
user << "<span class='boldannounce'>Kill. Butcher. <i>Conquer.</i></span>"
|
||||
new_name = "vicious claymore"
|
||||
color = rgb(255, 135, 135)
|
||||
if(8)
|
||||
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"
|
||||
color = rgb(255, 115, 115)
|
||||
if(9)
|
||||
user << "<span class='userdanger'>ANOTHER ONE FALLS TO YOUR BLOWS. ANOTHER WEAKLING UNFIT TO LIVE.</span>"
|
||||
new_name = "gore-stained claymore"
|
||||
color = rgb(255, 95, 95)
|
||||
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"
|
||||
color = initial(color)
|
||||
|
||||
name = new_name
|
||||
playsound(user, 'sound/items/Screwdriver2.ogg', 50, 1)
|
||||
|
||||
/obj/item/weapon/katana
|
||||
name = "katana"
|
||||
desc = "Woefully underpowered in D20"
|
||||
|
||||
@@ -3,12 +3,16 @@
|
||||
alert("The game hasn't started yet!")
|
||||
return
|
||||
|
||||
world << "<span class='userdanger'><i>THERE CAN BE ONLY ONE!!!</i></span>"
|
||||
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
|
||||
if(H.stat == DEAD || !(H.client)) continue
|
||||
|
||||
ticker.mode.traitors += H.mind
|
||||
H.mind.special_role = "traitor"
|
||||
H.mind.special_role = "highlander"
|
||||
|
||||
H.dna.species.specflags |= NOGUNS //nice try jackass
|
||||
|
||||
var/datum/objective/steal/steal_objective = new
|
||||
steal_objective.owner = H.mind
|
||||
@@ -16,10 +20,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 << "<B>You are the traitor.</B>"
|
||||
H.mind.announce_objectives()
|
||||
|
||||
for (var/obj/item/I in H)
|
||||
@@ -27,10 +31,9 @@
|
||||
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/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,17 @@
|
||||
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("<span class='adminnotice'>[key_name_admin(usr)] used THERE CAN BE ONLY ONE!</span>")
|
||||
log_admin("[key_name(usr)] used there can be only one.")
|
||||
var/obj/item/weapon/claymore/highlander/H1 = new(H)
|
||||
H.put_in_hands(H1)
|
||||
H1.pickup(H)
|
||||
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] used THERE CAN BE ONLY ONE!</span>")
|
||||
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)
|
||||
|
||||
@@ -87,6 +87,10 @@
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/beret
|
||||
|
||||
/obj/item/clothing/head/beret/highlander
|
||||
desc = "That was white fabric. <i>Was.</i>"
|
||||
flags = NODROP
|
||||
dog_fashion = null //THIS IS FOR SLAUGHTER, NOT PUPPIES
|
||||
|
||||
//Security
|
||||
|
||||
|
||||
@@ -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."
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 54 KiB |
BIN
sound/misc/highlander.ogg
Normal file
BIN
sound/misc/highlander.ogg
Normal file
Binary file not shown.
BIN
sound/misc/highlander_only_one.ogg
Normal file
BIN
sound/misc/highlander_only_one.ogg
Normal file
Binary file not shown.
Reference in New Issue
Block a user