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