diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index aed6a302a2..c392efefa3 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -11,6 +11,13 @@ var/list/archive_diseases = list() +// The order goes from easy to cure to hard to cure. +var/list/advance_cures = list( + "nutriment", "sugar", "orangejuice", + "spaceacillin", "kelotane", "ethanol", + "leporazine", "synaptizine", "lipozine", + "silver", "gold", "plasma" + ) /* @@ -191,6 +198,7 @@ var/list/archive_diseases = list() // The more symptoms we have, the less transmittable it is but some symptoms can make up for it. SetSpread(max(BLOOD, min(properties["transmittable"] - symptoms.len, AIRBORNE))) permeability_mod = max(round(0.5 * properties["transmittable"]), 1) + cure_chance = 10 - min(max(properties["resistance"], -5), 5) // can be between 5 and 15 stage_prob = max(properties["stage_rate"], 2) SetSeverity(properties["severity"]) GenerateCure(properties) @@ -239,42 +247,9 @@ var/list/archive_diseases = list() // Will generate a random cure, the less resistance the symptoms have, the harder the cure. /datum/disease/advance/proc/GenerateCure(var/list/properties = list()) if(properties && properties.len) - var/res = max(properties["resistance"] - (symptoms.len / 2), 0) + var/res = min(max(properties["resistance"] - (symptoms.len / 2), 1), advance_cures.len) //world << "Res = [res]" - switch(round(res)) - // Due to complications, I cannot randomly generate cures or randomly give cures. - if(0) - cure_id = "nutriment" - - if(1) - cure_id = "sodiumchloride" - - if(2) - cure_id = "orangejuice" - - if(3) - cure_id = "spaceacillin" - - if(4) - cure_id = "ethanol" - - if(5) - cure_id = "ethylredoxrazine" - - if(6) - cure_id = "synaptizine" - - if(7) - cure_id = "silver" - - if(8) - cure_id = "gold" - - if(9) - cure_id = "mindbreaker" - - else - cure_id = "plasma" + cure_id = advance_cures[res] // Get the cure name from the cure_id var/datum/reagent/D = chemical_reagents_list[cure_id] diff --git a/code/datums/diseases/advance/symptoms/cough.dm b/code/datums/diseases/advance/symptoms/cough.dm index 5d36b4b268..baf2a0ccbf 100644 --- a/code/datums/diseases/advance/symptoms/cough.dm +++ b/code/datums/diseases/advance/symptoms/cough.dm @@ -4,8 +4,8 @@ Coughing Noticable. - No Resistance. - Doesn't increase stage speed. + Little Resistance. + Doesn't increase stage speed much. Transmittable. Low Level. @@ -19,9 +19,9 @@ BONUS name = "Cough" stealth = -1 - resistance = 0 - stage_speed = 0 - transmittable = 2 + resistance = 3 + stage_speed = 1 + transmittable = 1 level = 1 /datum/symptom/cough/Activate(var/datum/disease/advance/A) @@ -33,5 +33,7 @@ BONUS M << "[pick("You swallow excess mucus.", "You lightly cough.")]" else M.emote("cough") - M.drop_item() + var/obj/item/I = M.get_active_hand() + if(I && I.w_class < 3) + M.drop_item() return \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/dizzy.dm b/code/datums/diseases/advance/symptoms/dizzy.dm index cca159c8d4..0a10a7bd06 100644 --- a/code/datums/diseases/advance/symptoms/dizzy.dm +++ b/code/datums/diseases/advance/symptoms/dizzy.dm @@ -3,7 +3,7 @@ Dizziness - Little bit hidden. + Hidden. Lowers resistance considerably. Decreases stage speed. Reduced transmittability @@ -18,7 +18,7 @@ Bonus /datum/symptom/dizzy // Not the egg name = "Dizziness" - stealth = 1 + stealth = 2 resistance = -2 stage_speed = -3 transmittable = -1 diff --git a/code/datums/diseases/advance/symptoms/sneeze.dm b/code/datums/diseases/advance/symptoms/sneeze.dm index a745ae26db..a50ef9def2 100644 --- a/code/datums/diseases/advance/symptoms/sneeze.dm +++ b/code/datums/diseases/advance/symptoms/sneeze.dm @@ -20,7 +20,7 @@ Bonus name = "Sneezing" stealth = -2 - resistance = 2 + resistance = 3 stage_speed = 0 transmittable = 3 level = 1 diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index fb67294913..8b6ee8e2f3 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -750,6 +750,8 @@ table tr:first-child th:first-child { border: none;} src.mend(t1) else src.cut(t1) + spawn(1) + src.updateUsrDialog() else if (href_list["pulse"]) var/t1 = text2num(href_list["pulse"]) if (!istype(usr.get_active_hand(), /obj/item/device/multitool)) @@ -760,6 +762,8 @@ table tr:first-child th:first-child { border: none;} return else src.pulse(t1) + spawn(1) + src.updateUsrDialog() @@ -960,7 +964,7 @@ table tr:first-child th:first-child { border: none;} mode=AALARM_MODE_SCRUBBING apply_mode() - src.updateDialog() + //src.updateDialog() return /obj/machinery/alarm/proc/post_alert(alert_level) diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index 0602c06b94..6db3b4dc69 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -20,7 +20,7 @@ new /obj/item/weapon/wrench(src) new /obj/item/weapon/weldingtool(src) new /obj/item/weapon/crowbar(src) - new /obj/item/device/t_scanner(src) + new /obj/item/device/analyzer(src) new /obj/item/weapon/wirecutters(src) /obj/item/weapon/storage/toolbox/electrical/New() diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 61e2547fbb..5114511ae5 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -905,6 +905,9 @@ /obj/machinery/power/apc/proc/malfoccupy(var/mob/living/silicon/ai/malf) if(!istype(malf)) return + if(istype(malf.loc, /obj/machinery/power/apc)) // Already in an APC + malf << "You must evacuate your current apc first." + return if(src.z != 1) return src.occupant = new /mob/living/silicon/ai(src,malf.laws,null,1) @@ -916,9 +919,11 @@ else src.occupant.parent = malf malf.mind.transfer_to(src.occupant) + src.occupant.eyeobj.name = "[src.occupant.name] (AI Eye)" if(malf.parent) del(malf) src.occupant.verbs += /mob/living/silicon/ai/proc/corereturn + src.occupant.verbs += /datum/game_mode/malfunction/proc/takeover src.occupant.cancel_camera() /obj/machinery/power/apc/proc/malfvacate(var/forced) diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index d8083f39b1..165df5dd88 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -351,7 +351,7 @@ datum if(R.id == "blood" && reagent == "blood") if(R.data && data) - if(R.data["viruses"] && data["viruses"]) + if(R.data["viruses"] || data["viruses"]) var/list/mix1 = R.data["viruses"] var/list/mix2 = data["viruses"] diff --git a/html/changelog.html b/html/changelog.html index 30ae76d896..781fbb6bfc 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -49,6 +49,14 @@ should be listed in the changelog upon commit tho. Thanks. --> +