From 254cef453a84c3145a6b418ede0b2130cd085854 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 13 Aug 2013 14:16:07 -0700 Subject: [PATCH 1/7] Added a preferences switch for diona. --- code/game/machinery/podmen.dm | 6 ++++-- code/modules/client/preferences.dm | 1 + code/setup.dm | 4 +++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/podmen.dm b/code/game/machinery/podmen.dm index 1e8eb4e536..e9a1d50ff6 100644 --- a/code/game/machinery/podmen.dm +++ b/code/game/machinery/podmen.dm @@ -74,10 +74,12 @@ Growing it to term with nothing injected will grab a ghost from the observers. * ghost = source else // If no sample was injected or revival is not allowed, we grab an interested observer. for(var/mob/dead/observer/O in player_list) - if(O.client) - var/response = alert(O, "Someone is harvesting a replica pod. Would you like to play as a Dionaea?", "Replica pod harvest", "Yes", "No") + if(O.client && O.client.prefs.be_special & BE_PLANT) + var/response = alert(O, "Someone is harvesting a replica pod. Would you like to play as a Dionaea?", "Replica pod harvest", "Yes", "No", "Never for this round.") if(response == "Yes") candidates += O + else if(response == "Never for this round") + O.client.prefs.be_special ^= BE_PLANT if(!do_after(user, 100)) return diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 1809cfd205..8e977bbc7d 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -16,6 +16,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set "infested monkey" = IS_MODE_COMPILED("monkey"), // 9 "ninja" = "true", // 10 "vox raider" = IS_MODE_COMPILED("heist"), // 11 + "diona" = 1, // 12 ) var/const/MAX_SAVE_SLOTS = 10 diff --git a/code/setup.dm b/code/setup.dm index 7e6f0cb7a9..e4beb3781d 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -641,6 +641,7 @@ var/list/TAGGERLOCATIONS = list("Disposals", #define BE_MONKEY 512 #define BE_NINJA 1024 #define BE_RAIDER 2048 +#define BE_PLANT 4096 var/list/be_special_flags = list( "Traitor" = BE_TRAITOR, @@ -654,7 +655,8 @@ var/list/be_special_flags = list( "Cultist" = BE_CULTIST, "Monkey" = BE_MONKEY, "Ninja" = BE_NINJA, - "Raider" = BE_RAIDER + "Raider" = BE_RAIDER, + "Diona" = BE_PLANT ) #define AGE_MIN 17 //youngest a character can be From b131d227175dc650ae5abe8fb4ad8f4be88ca9ac Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 13 Aug 2013 14:26:39 -0700 Subject: [PATCH 2/7] Fixes Check Antagonists for Heist mode. --- code/modules/admin/player_panel.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index 44f1cfdd82..ecadd49d49 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -470,12 +470,15 @@ dat += "" if(ticker.mode.raiders.len > 0) + dat += "
" for(var/datum/mind/raider in ticker.mode.raiders) var/mob/M = raider.current if(M) dat += "" dat += "" dat += "" + dat += "
Wizards
[M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]PMShow Objective
" + /* if(ticker.mode.ninjas.len > 0) dat += "
" From 86c66ebcd47e7ed6275e668341758d6906981bfa Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 13 Aug 2013 14:51:39 -0700 Subject: [PATCH 3/7] Possible fix to weird podman behavior. --- code/game/machinery/podmen.dm | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/game/machinery/podmen.dm b/code/game/machinery/podmen.dm index e9a1d50ff6..730f69e664 100644 --- a/code/game/machinery/podmen.dm +++ b/code/game/machinery/podmen.dm @@ -84,9 +84,6 @@ Growing it to term with nothing injected will grab a ghost from the observers. * if(!do_after(user, 100)) return - if(!src || !user) - return - if(candidates.len) ghost = pick(candidates) From 4f3f3d6eff1bee4974adba8f5b9f56cc94c437b6 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 13 Aug 2013 14:55:29 -0700 Subject: [PATCH 4/7] Added vent crawl, hiding and table passing to brain slugs. --- .../modules/mob/living/simple_animal/borer.dm | 74 ++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/borer.dm b/code/modules/mob/living/simple_animal/borer.dm index 647f9318af..d2689de7d8 100644 --- a/code/modules/mob/living/simple_animal/borer.dm +++ b/code/modules/mob/living/simple_animal/borer.dm @@ -38,6 +38,7 @@ attacktext = "nips" friendly = "prods" wander = 0 + pass_flags = PASSTABLE var/chemicals = 10 // Chemicals used for reproduction and spitting neurotoxin. var/mob/living/carbon/human/host // Human host for the brain worm. @@ -269,4 +270,75 @@ mob/living/simple_animal/borer/proc/detatch() return else src << "They are no longer in range!" - return \ No newline at end of file + return + +/mob/living/simple_animal/borer/Stat() + ..() + statpanel("Status") + + if(emergency_shuttle) + if(emergency_shuttle.online && emergency_shuttle.location < 2) + var/timeleft = emergency_shuttle.timeleft() + if (timeleft) + stat(null, "ETA-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]") + + if (client.statpanel == "Status") + stat("Chemicals", chemicals) + +/mob/living/simple_animal/borer/verb/ventcrawl() + set name = "Crawl through Vent" + set desc = "Enter an air vent and crawl through the pipe system." + set category = "Alien" + +// if(!istype(V,/obj/machinery/atmoalter/siphs/fullairsiphon/air_vent)) +// return + var/obj/machinery/atmospherics/unary/vent_pump/vent_found + var/welded = 0 + for(var/obj/machinery/atmospherics/unary/vent_pump/v in range(1,src)) + if(!v.welded) + vent_found = v + break + else + welded = 1 + if(vent_found) + if(vent_found.network&&vent_found.network.normal_members.len) + var/list/vents = list() + for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in vent_found.network.normal_members) + if(temp_vent.loc == loc) + continue + vents.Add(temp_vent) + var/list/choices = list() + for(var/obj/machinery/atmospherics/unary/vent_pump/vent in vents) + if(vent.loc.z != loc.z) + continue + var/atom/a = get_turf(vent) + choices.Add(a.loc) + var/turf/startloc = loc + var/obj/selection = input("Select a destination.", "Duct System") in choices + var/selection_position = choices.Find(selection) + if(loc==startloc) + var/obj/target_vent = vents[selection_position] + if(target_vent) + loc = target_vent.loc + else + src << "\blue You need to remain still while entering a vent." + else + src << "\blue This vent is not connected to anything." + else if(welded) + src << "\red That vent is welded." + else + src << "\blue You must be standing on or beside an air vent to enter it." + return + +//copy paste from alien/larva, if that func is updated please update this one alsoghost +/mob/living/simple_animal/borer/verb/hide() + set name = "Hide" + set desc = "Allows to hide beneath tables or certain items. Toggled on or off." + set category = "Alien" + + if (layer != TURF_LAYER+0.2) + layer = TURF_LAYER+0.2 + src << text("\blue You are now hiding.") + else + layer = MOB_LAYER + src << text("\blue You have stopped hiding.") \ No newline at end of file From 98510b3b0102783b9e0d347df52e48ae0cab4168 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 13 Aug 2013 15:06:11 -0700 Subject: [PATCH 5/7] Added the ability for worms to secrete useful chemicals. --- .../modules/mob/living/simple_animal/borer.dm | 54 ++++++++++++++----- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/code/modules/mob/living/simple_animal/borer.dm b/code/modules/mob/living/simple_animal/borer.dm index d2689de7d8..b55faf7b98 100644 --- a/code/modules/mob/living/simple_animal/borer.dm +++ b/code/modules/mob/living/simple_animal/borer.dm @@ -110,6 +110,21 @@ src << "You drop words into [host]'s mind: \"[message]\"" host << "Your own thoughts speak: \"[message]\"" +/mob/living/simple_animal/borer/Stat() + ..() + statpanel("Status") + + if(emergency_shuttle) + if(emergency_shuttle.online && emergency_shuttle.location < 2) + var/timeleft = emergency_shuttle.timeleft() + if (timeleft) + stat(null, "ETA-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]") + + if (client.statpanel == "Status") + stat("Chemicals", chemicals) + +// VERBS! + /mob/living/simple_animal/borer/proc/borer_speak(var/message) if(!message) return @@ -149,7 +164,31 @@ host.verbs += /mob/living/carbon/human/proc/punish_host host.verbs += /mob/living/carbon/human/proc/spawn_larvae -mob/living/simple_animal/borer/verb/release_host() +/mob/living/simple_animal/borer/verb/bond_brain() + set category = "Alien" + set name = "Secrete Chemicals" + set desc = "Push some chemicals into your host's bloodstream." + + if(!host) + src << "You are not inside a host body." + return + + if(stat) + src << "You cannot secrete chemicals in your current state." + + if(chemicals < 50) + src << "You don't have enough chemicals!" + + var/chem = input("Select a chemical to secrete.", "Chemicals") in list("bicaridine","tramadol","hyperzine") + + if(chemicals < 50 || !host || controlling || !src || stat) //Sanity check. + return + + src << "\red You squirt a measure of [chem] from your reservoirs into [host]'s bloodstream." + host.reagents.add_reagent(chem, 15) + chemicals -= 50 + +/mob/living/simple_animal/borer/verb/release_host() set category = "Alien" set name = "Release Host" set desc = "Slither out of your host." @@ -272,19 +311,6 @@ mob/living/simple_animal/borer/proc/detatch() src << "They are no longer in range!" return -/mob/living/simple_animal/borer/Stat() - ..() - statpanel("Status") - - if(emergency_shuttle) - if(emergency_shuttle.online && emergency_shuttle.location < 2) - var/timeleft = emergency_shuttle.timeleft() - if (timeleft) - stat(null, "ETA-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]") - - if (client.statpanel == "Status") - stat("Chemicals", chemicals) - /mob/living/simple_animal/borer/verb/ventcrawl() set name = "Crawl through Vent" set desc = "Enter an air vent and crawl through the pipe system." From b10fe26a9ee866d82cd818d974bd1ab239c72270 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 13 Aug 2013 15:18:45 -0700 Subject: [PATCH 6/7] Typo fix. --- code/modules/admin/player_panel.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index ecadd49d49..1b55ca6b03 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -470,7 +470,7 @@ dat += "
Ninjas
" if(ticker.mode.raiders.len > 0) - dat += "
" + dat += "
Wizards
" for(var/datum/mind/raider in ticker.mode.raiders) var/mob/M = raider.current if(M) From b820ce2fe6a1ae5b1d9957556562cfceaa943b2e Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 13 Aug 2013 15:36:05 -0700 Subject: [PATCH 7/7] Compile fix. --- code/modules/mob/living/simple_animal/borer.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/borer.dm b/code/modules/mob/living/simple_animal/borer.dm index b55faf7b98..4ea4a23553 100644 --- a/code/modules/mob/living/simple_animal/borer.dm +++ b/code/modules/mob/living/simple_animal/borer.dm @@ -164,7 +164,7 @@ host.verbs += /mob/living/carbon/human/proc/punish_host host.verbs += /mob/living/carbon/human/proc/spawn_larvae -/mob/living/simple_animal/borer/verb/bond_brain() +/mob/living/simple_animal/borer/verb/secrete_chemicals() set category = "Alien" set name = "Secrete Chemicals" set desc = "Push some chemicals into your host's bloodstream."
Raiders