diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm
index 2a852c6b7ef..1d2cf51e780 100644
--- a/code/modules/admin/secrets.dm
+++ b/code/modules/admin/secrets.dm
@@ -113,6 +113,7 @@
Triple AI mode (needs to be used in the lobby)
Everyone is the traitor
There can only be one!
+ Dodgeball (TDM)!
Ghost Mode
Make all players retarded
Make all items look like guns
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 9e1baaded91..9be088bb426 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1303,15 +1303,15 @@
message_admins("\red Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!", 1)
log_admin("[key_name(usr)] AIized [key_name(H)]")
H.AIize()
-
-
+
+
else if(href_list["makemask"])
if(!check_rights(R_SPAWN)) return
var/mob/currentMob = locate(href_list["makemask"])
message_admins("\red Admin [key_name_admin(usr)] made [key_name_admin(currentMob)] into a Mask of Nar'Sie!", 1)
log_admin("[key_name(usr)] made [key_name(currentMob)] into a Mask of Nar'Sie!")
currentMob.make_into_mask(0,0)
-
+
else if(href_list["makealien"])
if(!check_rights(R_SPAWN)) return
@@ -2349,7 +2349,12 @@
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","OO")
usr.client.only_one()
-// message_admins("[key_name_admin(usr)] has triggered a battle to the death (only one)")
+// message_admins("[key_name_admin(usr)] has triggered HIGHLANDER")
+ if("onlyoneteam")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","OOT")
+ usr.client.only_one_team()
+// message_admins("[key_name_admin(usr)] has triggered ")
if("guns")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","SG")
diff --git a/code/modules/admin/verbs/onlyone.dm b/code/modules/admin/verbs/onlyone.dm
index 062cc9b720e..9b8c0ddc9e5 100644
--- a/code/modules/admin/verbs/onlyone.dm
+++ b/code/modules/admin/verbs/onlyone.dm
@@ -21,7 +21,7 @@
hijack_objective.owner = H.mind
H.mind.objectives += hijack_objective
- H << "You are the traitor."
+ H << "You are a Highlander. Kill all other Highlanders. There can be only one."
var/obj_count = 1
for(var/datum/objective/OBJ in H.mind.objectives)
H << "Objective #[obj_count]: [OBJ.explanation_text]"
@@ -52,19 +52,3 @@
message_admins("\blue [key_name_admin(usr)] used THERE CAN BE ONLY ONE!", 1)
log_admin("[key_name(usr)] used there can be only one.")
world << sound('sound/music/highlander.ogg')
-
-
-/obj/item/weapon/beach_ball/dodgeball
- name = "dodgeball"
- icon_state = "dodgeball"
- item_state = "dodgeball"
- desc = "Used for playing the most violent and degrading of childhood games."
-
-/obj/item/weapon/beach_ball/holoball/dodgeball/throw_impact(atom/hit_atom)
- if((ishuman(hit_atom)))
- var/mob/living/carbon/M = hit_atom
- playsound(src, 'sound/items/dodgeball.ogg', 50, 1)
- M.apply_damage(10, HALLOSS)
- if(prob(5))
- M.Weaken(3)
- visible_message("\red [M] HAS BEEN ELIMINATED!!", 3)
diff --git a/code/modules/admin/verbs/onlyoneteam.dm b/code/modules/admin/verbs/onlyoneteam.dm
index f450ae834d0..f5d570abb59 100644
--- a/code/modules/admin/verbs/onlyoneteam.dm
+++ b/code/modules/admin/verbs/onlyoneteam.dm
@@ -17,7 +17,7 @@
continue
del(I)
-
+ H << "You are part of the Cyberiad dodgeball tournament. Throw dodgeballs at crewmembers wearing a different color than you. OOC: Use THROW on an EMPTY-HAND to catch thrown dodgeballs."
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_l_ear)
// H.equip_to_slot_or_del(new /obj/item/clothing/head/beret(H), slot_head)
@@ -36,9 +36,10 @@
W.icon_state = "centcom"
W.access = get_all_accesses()
W.access += get_all_centcom_access()
- W.assignment = "Highlander"
+ W.assignment = "Professional Pee-Wee League Dodgeball Player"
W.registered_name = H.real_name
H.equip_to_slot_or_del(W, slot_wear_id)
+ H.regenerate_icons()
else
team_bravo += H
@@ -53,6 +54,7 @@
W.assignment = "Professional Pee-Wee League Dodgeball Player"
W.registered_name = H.real_name
H.equip_to_slot_or_del(W, slot_wear_id)
+ H.regenerate_icons()
message_admins("\blue [key_name_admin(usr)] used DODGEBAWWWWWWWL!", 1)
log_admin("[key_name(usr)] used dodgeball.")
@@ -65,23 +67,21 @@
desc = "Used for playing the most violent and degrading of childhood games."
/obj/item/weapon/beach_ball/dodgeball/throw_impact(atom/hit_atom)
+ ..()
if((ishuman(hit_atom)))
- var/mob/living/carbon/M = hit_atom
- if(!dir&get_dir(src,M))
- if(M.in_throw_mode && !M.get_active_hand()) //empty active hand and we're in throw mode
- if(M.canmove && !M.restrained())
- M.hitby(src)
+ var/mob/living/carbon/human/H = hit_atom
+ var/mob/A = H.LAssailant
+ if((H in team_alpha) && (A in team_alpha))
+ A << "\red He's on your team!"
+ return
+ else if((H in team_bravo) && (A in team_bravo))
+ A << "\red He's on your team!"
+ return
+ else if(!A in team_alpha && !A in team_bravo)
+ A << "\red You're not part of the dodgeball game, sorry!"
+ return
else
playsound(src, 'sound/items/dodgeball.ogg', 50, 1)
- visible_message("\red [M] HAS BEEN ELIMINATED!!", 3)
-/* spawn(0)
- var/mobloc = get_turf(M.loc)
- var/atom/movable/overlay/animation = new /atom/movable/overlay( mobloc )
- animation.name = "water"
- animation.density = 0
- animation.anchored = 1
- animation.icon = 'icons/mob/mob.dmi'
- animation.icon_state = "liquify"
- animation.layer = 5
-// animation.master = holder
- del(M)*/
\ No newline at end of file
+ visible_message("\red [H] HAS BEEN ELIMINATED!!", 3)
+ H.melt()
+ return
\ No newline at end of file
diff --git a/code/modules/mob/death.dm b/code/modules/mob/death.dm
index 23321329e75..cb72116b04a 100644
--- a/code/modules/mob/death.dm
+++ b/code/modules/mob/death.dm
@@ -51,6 +51,28 @@
if(animation) del(animation)
if(src) del(src)
+/mob/proc/melt()
+ death(1)
+ var/atom/movable/overlay/animation = null
+ monkeyizing = 1
+ canmove = 0
+ icon = null
+ invisibility = 101
+
+ animation = new(loc)
+ animation.icon_state = "blank"
+ animation.icon = 'icons/mob/mob.dmi'
+ animation.master = src
+
+// flick("liquify", animation)
+// new /obj/effect/decal/cleanable/ash(loc)
+
+ dead_mob_list -= src
+ if(client)
+ respawnable_list += src
+ spawn(15)
+ if(animation) del(animation)
+ if(src) del(src)
/mob/proc/death(gibbed)
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index 429008b68d1..2f2839a3092 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -48,6 +48,25 @@
if(animation) del(animation)
if(src) del(src)
+/mob/living/carbon/human/melt()
+ death(1)
+ var/atom/movable/overlay/animation = null
+ monkeyizing = 1
+ canmove = 0
+ icon = null
+ invisibility = 101
+
+ animation = new(loc)
+ animation.icon_state = "blank"
+ animation.icon = 'icons/mob/mob.dmi'
+ animation.master = src
+
+ flick("liquify", animation)
+ //new /obj/effect/decal/remains/human(loc)
+
+ spawn(15)
+ if(animation) del(animation)
+ if(src) del(src)
/mob/living/carbon/human/death(gibbed)
if(stat == DEAD) return