diff --git a/code/WorkInProgress/virus2/diseasesplicer.dm b/code/WorkInProgress/virus2/diseasesplicer.dm index 8b8777503cb..5fae22e7335 100644 --- a/code/WorkInProgress/virus2/diseasesplicer.dm +++ b/code/WorkInProgress/virus2/diseasesplicer.dm @@ -173,7 +173,7 @@ /obj/item/weapon/diseasedisk name = "Blank GNA disk" - icon = 'items.dmi' + icon = 'cloning.dmi' icon_state = "datadisk0" var/datum/disease2/effectholder/effect = null var/stage = 1 diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index 1f51ebdbd35..1924bd04e01 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -21,6 +21,8 @@ Factory Shield */ + steps_per_action = 4 // how many times should process() needs to be called for Life() to happen + steps_since_action = 1 New(loc, var/h = 30) @@ -101,8 +103,11 @@ process() - spawn(-1) - Life() + if(steps_since_action >= steps_per_action) + steps_since_action = 0 + spawn(-1) + Life() + steps_since_action++ return @@ -154,9 +159,9 @@ spawn(0) Pulse(0,0) return 1 - if("Blob") + /*if("Blob") // only expand on pulse if(expand()) - return 1 + return 1*/ return 0 diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index 8c211975961..ccfa5e76987 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -33,13 +33,14 @@ var/heal_threshold = 15 //Start healing when they have this much damage in a category var/use_beaker = 0 //Use reagents in beaker instead of default treatment agents. //Setting which reagents to use to treat what by default. By id. -// var/treatment_brute = "bicaridine" -// var/treatment_oxy = "dexalin" -// var/treatment_fire = "kelotane" -// var/treatment_tox = "anti_toxin" -// var/treatment_virus = "spaceacillin" + var/treatment_brute = "bicaridine" + var/treatment_oxy = "dexalin" + var/treatment_fire = "kelotane" + var/treatment_tox = "anti_toxin" + var/treatment_virus = "spaceacillin" var/reagent_id = "inaprovaline" var/shut_up = 0 //self explanatory :) + var/always_inject = 0 /obj/machinery/bot/medbot/mysterious name = "Mysterious Medibot" @@ -131,6 +132,9 @@ dat += "Reagent Source: " dat += "[src.use_beaker ? "Loaded Beaker (When available)" : "Internal Synthesizer"]
" + dat += "Inject: " + dat += "[src.always_inject ? "Always" : "If loaded chemical is known to help"]
" + dat += "The speaker switch is [src.shut_up ? "off" : "on"]. Toggle" user << browse("Medibot v1.0 controls[dat]", "window=automed") @@ -166,13 +170,12 @@ else if((href_list["use_beaker"]) && (!src.locked)) src.use_beaker = !src.use_beaker + else if((href_list["toggle_inject"]) && (!src.locked)) + src.always_inject = !src.always_inject else if (href_list["eject"] && (!isnull(src.reagent_glass))) - if(!src.locked) - src.reagent_glass.loc = get_turf(src) - src.reagent_glass = null - else - usr << "You cannot eject the beaker because the panel is locked!" + src.reagent_glass.loc = get_turf(src) + src.reagent_glass = null else if ((href_list["togglevoice"]) && (!src.locked)) src.shut_up = !src.shut_up @@ -190,9 +193,6 @@ user << "\red Access denied." else if (istype(W, /obj/item/weapon/reagent_containers/glass)) - if(src.locked) - user << "You cannot insert a beaker because the panel is locked!" - return if(!isnull(src.reagent_glass)) user << "There is already a beaker loaded!" return @@ -371,9 +371,29 @@ src.last_found = world.time return - //Use whatever is inside the loaded beaker. If there is one. + //See if we have anything inside the beaker to help. if((src.use_beaker) && (src.reagent_glass) && (src.reagent_glass.reagents.total_volume)) - reagent_id = "internal_beaker" + if(always_inject) + reagent_id = "internal_beaker" + else if (C.getBruteLoss() >= heal_threshold) + if(C.reagents.has_reagent(src.treatment_brute)) + reagent_id = "internal_beaker" + + else if (C.getOxyLoss() >= (15 + heal_threshold)) + if(C.reagents.has_reagent(src.treatment_oxy)) + reagent_id = "internal_beaker" + + else if (C.getFireLoss() >= heal_threshold) + if(C.reagents.has_reagent(src.treatment_fire)) + reagent_id = "internal_beaker" + + else if (C.getToxLoss() >= heal_threshold) + if(C.reagents.has_reagent(src.treatment_tox)) + reagent_id = "internal_beaker" + + else if (100 - C.health >= heal_threshold) + if(C.reagents.has_reagent("tricordrazine")) + reagent_id = "internal_beaker" if(src.emagged) //Emagged! Time to poison everybody. reagent_id = "toxin" diff --git a/code/game/magic/cultist/ritual.dm b/code/game/magic/cultist/ritual.dm index d9d31643ef6..04e8ca46bb9 100644 --- a/code/game/magic/cultist/ritual.dm +++ b/code/game/magic/cultist/ritual.dm @@ -489,7 +489,7 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", user << "\red You do not have enough space to write a proper rune." return if (C>=26+runedec+ticker.mode.cult.len) //including the useless rune at the secret room, shouldn't count against the limit of 25 runes - Urist - switch(alert("The cloth of reality can't take that much of a strain. By creating another rune, you risk locally tearing reality apart, which would prove fatal to you. Do you still wish to scribe the rune?",,"Yes","No")) + switch(alert("Too many runes are already in the vicinity.. The cloth of reality can't take that much of a strain. By creating another rune, you risk locally tearing reality apart, which would prove fatal to you. Do you still wish to scribe the rune?",,"Yes","No")) if("Yes") if(prob(C*5-105-(runedec-ticker.mode.cult.len)*5)) //including the useless rune at the secret room, shouldn't count against the limit - Urist usr.emote("scream") diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm index 6363f943988..20d63bc9b7a 100644 --- a/code/modules/chemical/Chemistry-Tools.dm +++ b/code/modules/chemical/Chemistry-Tools.dm @@ -2128,6 +2128,17 @@ ..() reagents.add_reagent("cryoxadone", 30) +/obj/item/weapon/reagent_containers/glass/beaker/tricordrazine + name = "beaker" + desc = "A beaker. Can hold up to 50 units." + icon = 'chemical.dmi' + icon_state = "beaker0" + item_state = "beaker" + + New() + ..() + reagents.add_reagent("tricordrazine", 30) + /obj/item/weapon/reagent_containers/food/drinks/golden_cup desc = "A golden cup" name = "golden cup" diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm index 36dfb2bc9a4..2dd2f14b94e 100644 --- a/maps/tgstation.2.0.8.dmm +++ b/maps/tgstation.2.0.8.dmm @@ -4870,7 +4870,7 @@ "bPH" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Assembly Line Maintenance"; req_access_txt = "12;29"},/turf/simulated/floor/plating,/area/assembly/assembly_line) "bPI" = (/obj/structure/table,/obj/item/device/multitool,/obj/item/weapon/crowbar,/obj/item/device/flash,/obj/item/device/flash,/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/assembly/assembly_line) "bPJ" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/simulated/floor,/area/assembly/assembly_line) -"bPK" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/turf/simulated/floor,/area/assembly/assembly_line) +"bPK" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/item/weapon/reagent_containers/glass/beaker/tricordrazine,/obj/item/weapon/reagent_containers/glass/beaker/tricordrazine,/obj/item/weapon/reagent_containers/glass/beaker/tricordrazine,/turf/simulated/floor,/area/assembly/assembly_line) "bPL" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 20},/obj/item/weapon/book/manual/robotics_cyborgs{pixel_y = 5},/turf/simulated/floor,/area/assembly/assembly_line) "bPM" = (/obj/machinery/computer/rdconsole{id = 2; name = "Robotics R&D Console"; req_access = null; req_access_txt = "29"},/turf/simulated/floor,/area/assembly/assembly_line) "bPN" = (/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/flash,/obj/item/device/flash,/obj/structure/table,/turf/simulated/floor,/area/assembly/assembly_line)