diff --git a/code/datums/diseases/cold.dm b/code/datums/diseases/cold.dm index ef9afc2ed9e..015db200758 100644 --- a/code/datums/diseases/cold.dm +++ b/code/datums/diseases/cold.dm @@ -18,7 +18,11 @@ affected_mob << "\blue You feel better." cure() return - if(prob(1) && prob(10)) + if(affected_mob.lying && prob(10)) + affected_mob << "\blue You feel better." + cure() + return + if(prob(1) && prob(5)) affected_mob << "\blue You feel better." cure() return @@ -35,9 +39,14 @@ affected_mob << "\blue You feel better." cure() return - if(prob(1) && prob(10)) + if(affected_mob.lying && prob(5)) affected_mob << "\blue You feel better." cure() + return + if(prob(1) && prob(1)) + affected_mob << "\blue You feel better." + cure() + return if(prob(1)) affected_mob.emote("sneeze") if(prob(1)) @@ -49,4 +58,5 @@ if(prob(1) && prob(50)) if(!affected_mob.resistances.Find(/datum/disease/flu)) var/datum/disease/Flu = new /datum/disease/flu(0) - affected_mob.contract_disease(Flu,1) \ No newline at end of file + affected_mob.contract_disease(Flu,1) + cure() \ No newline at end of file diff --git a/code/datums/diseases/retrovirus.dm b/code/datums/diseases/retrovirus.dm index e0c1e8a4d25..bd2b96b69d8 100644 --- a/code/datums/diseases/retrovirus.dm +++ b/code/datums/diseases/retrovirus.dm @@ -3,8 +3,7 @@ max_stages = 4 spread = "Contact" spread_type = CONTACT_GENERAL - cure = "Mutagen & Spaceacillin" - cure_id = list("mutagen", "spaceacillin") + cure = "Rest or an injection of ryetalyn" cure_chance = 6 agent = "" affected_species = list("Human") @@ -14,13 +13,31 @@ stage_prob = 2 var/SE var/UI + var/restcure = 0 New() ..() agent = "Virus class [pick("A","B","C","D","E","F")][pick("A","B","C","D","E","F")]-[rand(50,300)]" + if(prob(40)) + cure_id = list("ryetalyn") + else + restcure = 1 + + + + /datum/disease/dna_retrovirus/stage_act() ..() switch(stage) if(1) + if(restcure) + if(affected_mob.sleeping && prob(30)) + affected_mob << "\blue You feel better." + cure() + return + if(affected_mob.lying && prob(20)) + affected_mob << "\blue You feel better." + cure() + return if (prob(8)) affected_mob << "\red Your head hurts." if (prob(9)) @@ -28,6 +45,15 @@ if (prob(9)) affected_mob << "\red You feel angry." if(2) + if(restcure) + if(affected_mob.sleeping && prob(20)) + affected_mob << "\blue You feel better." + cure() + return + if(affected_mob.lying && prob(10)) + affected_mob << "\blue You feel better." + cure() + return if (prob(8)) affected_mob << "\red Your skin feels loose." if (prob(10)) @@ -38,6 +64,15 @@ if (prob(4)) affected_mob << "\red Your stomach churns." if(3) + if(restcure) + if(affected_mob.sleeping && prob(20)) + affected_mob << "\blue You feel better." + cure() + return + if(affected_mob.lying && prob(10)) + affected_mob << "\blue You feel better." + cure() + return if (prob(10)) affected_mob << "\red Your entire body vibrates." @@ -48,6 +83,15 @@ scramble(0, affected_mob, rand(15,45)) if(4) + if(restcure) + if(affected_mob.sleeping && prob(10)) + affected_mob << "\blue You feel better." + cure() + return + if(affected_mob.lying && prob(5)) + affected_mob << "\blue You feel better." + cure() + return if (prob(60)) if(prob(50)) scramble(1, affected_mob, rand(50,75)) diff --git a/code/defines/obj/supplypacks.dm b/code/defines/obj/supplypacks.dm index 7d7d6ac0b3c..8241bb70954 100644 --- a/code/defines/obj/supplypacks.dm +++ b/code/defines/obj/supplypacks.dm @@ -206,7 +206,7 @@ name = "Seeds Crate" contains = list("/obj/item/seeds/chiliseed", "/obj/item/seeds/berryseed", - "/obj/item/seeds/corn", + "/obj/item/seeds/cornseed", "/obj/item/seeds/eggplantseed", "/obj/item/seeds/tomatoseed", "/obj/item/seeds/soyaseed", diff --git a/code/game/atom_procs.dm b/code/game/atom_procs.dm index 8181e67e501..35bfdcec06c 100644 --- a/code/game/atom_procs.dm +++ b/code/game/atom_procs.dm @@ -372,7 +372,7 @@ if(C.stat != 2) var/t_him = "it" if (src.gender == MALE) - t_him = "him" + t_him = "his" else if (src.gender == FEMALE) t_him = "her" var/u_him = "it" @@ -463,8 +463,9 @@ else if (istype(src, /obj/screen)) usr.prev_move = usr.next_move + usr:lastDblClick = world.time + 2 if (usr.next_move < world.time) - usr.next_move = world.time + 10 + usr.next_move = world.time + 2 else return if (!( usr.restrained() )) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 84de13c6ee5..890a0fd1f6c 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -282,7 +282,7 @@ //Can't clone without someone to clone. Or a pod. Or if the pod is busy. Or full of gibs. if ((!selected) || (!src.pod1) || (src.pod1.occupant) || (src.pod1.mess)) src.temp = "Unable to initiate cloning cycle." // most helpful error message in THE HISTORY OF THE WORLD - else if (src.pod1.growclone(selected, C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"])) + else if (src.pod1.growclone(selected, C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["interface"])) src.temp = "Cloning cycle activated." src.records.Remove(C) del(C) @@ -322,6 +322,11 @@ R.fields["UI"] = subject.dna.uni_identity R.fields["SE"] = subject.dna.struc_enzymes + // Preferences stuff + R.fields["interface"] = subject.UI + + + //Add an implant if needed var/obj/item/weapon/implant/health/imp =locate(/obj/item/weapon/implant/health, subject) if (isnull(imp)) @@ -426,7 +431,7 @@ //Clonepod //Start growing a human clone in the pod! -/obj/machinery/clonepod/proc/growclone(mob/ghost as mob, var/clonename, var/ui, var/se, var/mindref, var/mrace) +/obj/machinery/clonepod/proc/growclone(mob/ghost as mob, var/clonename, var/ui, var/se, var/mindref, var/mrace, var/UI) if (((!ghost) || (!ghost.client)) || src.mess || src.attempting) return 0 @@ -473,6 +478,7 @@ ticker.minds += src.occupant.mind // -- Mode/mind specific stuff goes here + switch(ticker.mode.name) if ("revolution") if (src.occupant.mind in ticker.mode:revolutionaries) @@ -493,6 +499,9 @@ // -- End mode specific stuff + occupant:UI = UI + + if (istype(ghost, /mob/dead/observer)) del(ghost) //Don't leave ghosts everywhere!! diff --git a/code/game/objects/devices/PDA/PDA.dm b/code/game/objects/devices/PDA/PDA.dm index 533d554f781..049ae00ff78 100644 --- a/code/game/objects/devices/PDA/PDA.dm +++ b/code/game/objects/devices/PDA/PDA.dm @@ -458,34 +458,57 @@ var/obj/item/device/pda/P = locate(href_list["target"]) - if (isnull(P)||P.toff || toff) - return + if(istype(P, /obj/item/device/pda)) + if (isnull(P)||P.toff || toff) + return - if (last_text && world.time < last_text + 5) - return + if (last_text && world.time < last_text + 5) + return - last_text = world.time + last_text = world.time - for (var/obj/machinery/message_server/MS in world) - MS.send_pda_message("[P.owner]","[owner]","[t]") + for (var/obj/machinery/message_server/MS in world) + MS.send_pda_message("[P.owner]","[owner]","[t]") - tnote += "→ To [P.owner]:
[t]
" - P.tnote += "← From [owner]:
[t]
" + tnote += "→ To [P.owner]:
[t]
" + P.tnote += "← From [owner]:
[t]
" - if (prob(15)) //Give the AI a chance of intercepting the message - var/who = src.owner - if(prob(50)) - who = P:owner - for(var/mob/living/silicon/ai/ai in world) - ai.show_message("Intercepted message from [who]: [t]") + if (prob(15)) //Give the AI a chance of intercepting the message + var/who = src.owner + if(prob(50)) + who = P:owner + for(var/mob/living/silicon/ai/ai in world) + ai.show_message("Intercepted message from [who]: [t]") + + if (!P.silent) + playsound(P.loc, 'twobeep.ogg', 50, 1) + for (var/mob/O in hearers(3, P.loc)) + O.show_message(text("\icon[P] *[P.ttone]*")) + + P.overlays = null + P.overlays += image('pda.dmi', "pda-r") + + // pAI Message + else + + tnote += "→ To [P]:
[t]
" + P.tnote += "← From [src]:
[t]
" + + + for (var/obj/machinery/message_server/MS in world) + MS.send_pda_message("[P]","[src]","[t]") + + if (prob(15)) //Give the AI a chance of intercepting the message + var/who = src + if(prob(50)) + who = P + for (var/mob/living/silicon/ai/ai in world) + ai.show_message("Intercepted message from [who]: [t]") - if (!P.silent) playsound(P.loc, 'twobeep.ogg', 50, 1) - for (var/mob/O in hearers(3, P.loc)) - O.show_message(text("\icon[P] *[P.ttone]*")) - P.overlays = null - P.overlays += image('pda.dmi', "pda-r") + + if("Send Honk")//Honk virus if(istype(cartridge, /obj/item/weapon/cartridge/clown))//Cartridge checks are kind of unnecessary since everything is done through switch. var/obj/item/device/pda/P = locate(href_list["target"])//Leaving it alone in case it may do something useful, I guess. diff --git a/code/game/objects/items/item.dm b/code/game/objects/items/item.dm index 637cc6a93b3..d8dec274d3c 100644 --- a/code/game/objects/items/item.dm +++ b/code/game/objects/items/item.dm @@ -123,7 +123,11 @@ else user.u_equip(src) else + if(istype(src.loc, /mob/living)) + return src.pickup(user) + user.lastDblClick = world.time + 2 + user.next_move = world.time + 2 if (user.hand) user.l_hand = src @@ -155,6 +159,13 @@ return else user.u_equip(src) + else + if(istype(src.loc, /mob/living)) + return + src.pickup(user) + user.lastDblClick = world.time + 2 + user.next_move = world.time + 2 + if (user.hand) user.l_hand = src else diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 4c0dddb541f..ca750ad9e72 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -186,7 +186,7 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is for(var/mob/living/carbon/human/pos in world) pos_crew += pos.real_name crew = pick(pos_crew) - switch(rand(1,12)) + switch(rand(1,14)) if(1) M << "\red THERE ARE [amount] [who2] ON THE STATION...LAWS UPDATED" M.add_ion_law("THERE ARE [amount] [who2] ON THE STATION") @@ -226,6 +226,9 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is if(13) M << "\red [crew] is [allergysev] to [allergy]. LAWS UPDATED" M.add_ion_law("[crew] is [allergysev] to [allergy]. LAWS UPDATED") + if(14) + M << "\ref THE STATION IS [who2pref] [who2]" + M.add_ion_law("THE STATION IS [who2pref] [who2]") diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi index 3a70e2946eb..4fa4196e9dd 100644 Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ