From 3887ecb60c6993c6e269ebfaf5e6cf31e76815b4 Mon Sep 17 00:00:00 2001 From: "vageyenaman@gmail.com" Date: Mon, 12 Sep 2011 03:11:42 +0000 Subject: [PATCH] New admin feature: under the "Game Panel" verb, if the current mode is secret (or if you change it to secret) a new selection will appear underneath the Change Gamemode selection that allows you to "force" secret to be a certain game mode. This is mostly for adminfuckery where they make it wizard every single time for 10 rounds and the game mode is still secret. Removed an unneeded metroid variable. Added some more arcade names. Fixed the grammars. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2182 316c924e-a436-60f5-8080-3fe189b3f50e --- code/defines/global.dm | 1 + code/defines/obj.dm | 2 +- code/game/gamemodes/gameticker.dm | 25 +++++++++------- code/game/machinery/computer/arcade.dm | 6 ++-- code/game/objects/items/weapons/guns_new.dm | 4 +-- code/modules/admin/admin.dm | 29 ++++++++++++++++++- .../modules/mob/living/carbon/metroid/life.dm | 1 - .../mob/living/carbon/metroid/metroid.dm | 15 +++++----- 8 files changed, 57 insertions(+), 26 deletions(-) diff --git a/code/defines/global.dm b/code/defines/global.dm index 66bc20e2b8c..b20538d2899 100644 --- a/code/defines/global.dm +++ b/code/defines/global.dm @@ -58,6 +58,7 @@ var datum/air_tunnel/air_tunnel1/SS13_airtunnel = null going = 1.0 master_mode = "traitor"//"extended" + secret_force_mode = "secret" // if this is anything but "secret", the secret rotation will forceably choose this mode datum/engine_eject/engine_eject_control = null host = null diff --git a/code/defines/obj.dm b/code/defines/obj.dm index 4b5d1ec8885..2cd97b8ac95 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -904,7 +904,7 @@ // Basically this Metroid Core catalyzes reactions that normally wouldn't happen anywhere /obj/item/metroid_core name = "metroid core" - desc = "A very slimy and tender part of a Metroid. They also legended to have \"magical powers\"." + desc = "A very slimy and tender part of a Metroid. They also legend to have \"magical powers\"." icon = 'surgery.dmi' icon_state = "metroid core" flags = TABLEPASS diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 4a7518f0c5f..7a5fc560778 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -45,16 +45,21 @@ var/global/datum/controller/gameticker/ticker src.hide_mode = 1 var/list/datum/game_mode/runnable_modes if((master_mode=="random") || (master_mode=="secret")) - runnable_modes = config.get_runnable_modes() - if (runnable_modes.len==0) - current_state = GAME_STATE_PREGAME - world << "Unable to choose playable game mode. Reverting to pre-game lobby." - return 0 - ResetOccupations() - src.mode = pickweight(runnable_modes) - if(src.mode) - var/mtype = src.mode.type - src.mode = new mtype + if(secret_force_mode != "secret") + src.mode = config.pick_mode(secret_force_mode) + + else + + runnable_modes = config.get_runnable_modes() + if (runnable_modes.len==0) + current_state = GAME_STATE_PREGAME + world << "Unable to choose playable game mode. Reverting to pre-game lobby." + return 0 + ResetOccupations() + src.mode = pickweight(runnable_modes) + if(src.mode) + var/mtype = src.mode.type + src.mode = new mtype else src.mode = config.pick_mode(master_mode) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 52b8cf93108..7258a77ee72 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -4,10 +4,10 @@ var/name_part1 var/name_part2 - name_action = pick("Defeat ", "Annihilate ", "Save ", "Strike ", "Stop ", "Destroy ", "Robust ", "Romance ", "Rape ") + name_action = pick("Defeat ", "Annihilate ", "Save ", "Strike ", "Stop ", "Destroy ", "Robust ", "Romance ", "Rape ", "Pwn ", "Own ") - name_part1 = pick("the Automatic ", "Farmer ", "Lord ", "Professor ", "the Cuban ", "the Evil ", "the Dread King ", "the Space ", "Lord ") - name_part2 = pick("Melonoid", "Murdertron", "Sorcerer", "Ruin", "Jeff", "Ectoplasm", "Crushulon", "Uhangoid", "Vhakoid", "Peteoid") + name_part1 = pick("the Automatic ", "Farmer ", "Lord ", "Professor ", "the Cuban ", "the Evil ", "the Dread King ", "the Space ", "Lord ", "the Faggot ", "Duke ", "General ") + name_part2 = pick("Melonoid", "Murdertron", "Sorcerer", "Ruin", "Jeff", "Ectoplasm", "Crushulon", "Uhangoid", "Vhakoid", "Peteoid", "Metroid", "Griefer", "ERPer", "Homosexual", "Lizard Man", "Unicorn") src.enemy_name = dd_replacetext((name_part1 + name_part2), "the ", "") src.name = (name_action + name_part1 + name_part2) diff --git a/code/game/objects/items/weapons/guns_new.dm b/code/game/objects/items/weapons/guns_new.dm index 11e91907420..c23fb1db374 100644 --- a/code/game/objects/items/weapons/guns_new.dm +++ b/code/game/objects/items/weapons/guns_new.dm @@ -63,11 +63,11 @@ effects["stun"] = 10 suffocationbullet - damage = 65 + damage = 50 mobdamage = list(BRUTE = 50, BURN = 0, TOX = 0, OXY = 15, CLONE = 0) cyanideround - damage = 100 + damage = 50 mobdamage = list(BRUTE = 50, BURN = 0, TOX = 100, OXY = 15, CLONE = 0) burstbullet diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index ca55bb0ef9b..4ed069e16f5 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -381,6 +381,18 @@ dat += {"Now: [master_mode]"} usr << browse(dat, "window=c_mode") + if (href_list["f_secret"]) + if ((src.rank in list( "Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" ))) + if (ticker && ticker.mode) + return alert(usr, "The game has already started.", null, null, null, null) + if (master_mode != "secret") + return alert(usr, "The game mode has to be secret!", null, null, null, null) + var/dat = {"What game mode do you want to force secret to be? Use this if you want to change the game mode, but want the players to believe it's secret. This will only work if the current game mode is secret.
"} + for (var/mode in config.modes) + dat += {"[config.mode_names[mode]]
"} + dat += {"Random (default)
"} + dat += {"Now: [secret_force_mode]"} + usr << browse(dat, "window=f_secret") if (href_list["c_mode2"]) if ((src.rank in list( "Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" ))) @@ -390,9 +402,21 @@ log_admin("[key_name(usr)] set the mode as [master_mode].") message_admins("\blue [key_name_admin(usr)] set the mode as [master_mode].", 1) world << "\blue The mode is now: [master_mode]" - + Game() // updates the main game menu world.save_mode(master_mode) .(href, list("c_mode"=1)) + + if (href_list["f_secret2"]) + if ((src.rank in list( "Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" ))) + if (ticker && ticker.mode) + return alert(usr, "The game has already started.", null, null, null, null) + if (master_mode != "secret") + return alert(usr, "The game mode has to be secret!", null, null, null, null) + secret_force_mode = href_list["f_secret2"] + log_admin("[key_name(usr)] set the forced secret mode as [secret_force_mode].") + message_admins("\blue [key_name_admin(usr)] set the forced secret mode as [secret_force_mode].", 1) + Game() // updates the main game menu + .(href, list("f_secret"=1)) /* if (href_list["monkeyone"]) if ((src.rank in list( "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" ))) @@ -1729,6 +1753,9 @@ // if(lvl >= 2 ) dat += "Change Game Mode
" + if(lvl > 0 && master_mode == "secret") + dat += "(Force Secret Mode)
" + dat += "
" if(lvl >= 3 ) diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm index 6a38c9a7f40..a75ea331921 100644 --- a/code/modules/mob/living/carbon/metroid/life.dm +++ b/code/modules/mob/living/carbon/metroid/life.dm @@ -211,7 +211,6 @@ var/Atkcool = 0 // attack cooldown var/Tempstun = 0 // temporary temperature stuns var/Discipline = 0 // if a metroid has been hit with a freeze gun, or wrestled/attacked off a human, they become disciplined and don't attack anymore for a while - var/turf/Charging = null // turf a metroid is "charging" at var/SStun = 0 // stun variable proc diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm index 616d7510fd9..dd9a3dae750 100644 --- a/code/modules/mob/living/carbon/metroid/metroid.dm +++ b/code/modules/mob/living/carbon/metroid/metroid.dm @@ -61,8 +61,8 @@ if(7 to 8) probab = 60 if(9) probab = 70 if(10) probab = 95 - if(prob(probab) || Charging) - if(Charging) Charging = null + if(prob(probab)) + if(istype(AM, /obj/window) || istype(AM, /obj/grille)) if(istype(src, /mob/living/carbon/metroid/adult)) @@ -75,12 +75,11 @@ else if(nutrition <= 500 && !Atkcool) if(prob(5)) - if(prob(50)) - AM.attack_metroid(src) - spawn() - Atkcool = 1 - sleep(15) - Atkcool = 0 + AM.attack_metroid(src) + spawn() + Atkcool = 1 + sleep(15) + Atkcool = 0 if(ismob(AM)) var/mob/tmob = AM