diff --git a/code/defines/global.dm b/code/defines/global.dm index 66bc20e2b8..b20538d289 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 4b5d1ec888..2cd97b8ac9 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 4a7518f0c5..7a5fc56077 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 52b8cf9310..7258a77ee7 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 11e9190742..c23fb1db37 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 ca55bb0ef9..4ed069e16f 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 6a38c9a7f4..a75ea33192 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 616d7510fd..dd9a3dae75 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