From 282588c9a05efe0f7b81e607bea2c8ecceee0c9e Mon Sep 17 00:00:00 2001 From: DynaJ0ule <117537167+DynaJ0ule@users.noreply.github.com> Date: Tue, 22 Nov 2022 03:38:26 -0500 Subject: [PATCH 1/4] adds meal vendor restock to cargo orders --- code/modules/cargo/packs/service.dm | 7 +++++++ icons/obj/vending_restock.dmi | Bin 1884 -> 1949 bytes 2 files changed, 7 insertions(+) diff --git a/code/modules/cargo/packs/service.dm b/code/modules/cargo/packs/service.dm index 6901e827..4b8b9a1a 100644 --- a/code/modules/cargo/packs/service.dm +++ b/code/modules/cargo/packs/service.dm @@ -335,3 +335,10 @@ cost = 1500 contains = list(/obj/item/vending_refill/cola) crate_name = "soft drinks supply crate" + +/datum/supply_pack/service/vending/mealdor + name = "Meal Vendor Supply Crate" + desc = "Suprising one to order. If you need a refill for the meal vendor, someone's immobile somewhere. And since you managed to make it to cargo... Well it's not our job to say no!" + cost = 10000 + contains = list(/obj/item/vending_refill/mealdor) + crate_name = "meal vendor supply crate" diff --git a/icons/obj/vending_restock.dmi b/icons/obj/vending_restock.dmi index 0db875faa456b34c2e79a6b48435fa2386201ab9..120a8f2342778c6129c6323db9be46c2335bbe4e 100644 GIT binary patch delta 1559 zcmV+y2I%?R4xJB>BmsJ{B|-s{Y5_cdHD75^00001bW%=J06^y0W&i*HwR%)obVOxy zV{&P5bZKvH004NLmC`#7!Y~X5;5j)()b5Da%7R*<4)h8rByJO$)KX$VaC!CD0fCw1}Jy4+!DaSgvb;?9k+q4<(@OBk+@`Kk3UJ&>Fx!AmQV~MGlRhYQcYZG{ipq|@u?m3Kmo|F%}jN={{;4YZ#Q2|1K{;T4e-0L^q9pElV zZk7D~Z=K)%mwg{@WMpJyWMuS0sNYw%#p$MbPk#1`z%Tlo1M7-UP0!5C3|dM)J2yW+ zKda`YGANZxca`-k3!t)4DW+88qx#d+mWoI9=jN2Wx(KR^)pF7Rm*0#2f}hBCR+8iT zQ#y|8&+2%&v{*`irei+87b`$<1InkT^n7ks&&yT7#d9vd`@q-c`zf%b<+ET}%S)i7 zKOX>mV9AJ7YM4@kmgfFnNTD{CUJH)`v(Mm^%I8zO&y@BI&g4?m*gaStS)f~dgO z_V)G;n*rd927(~SMrRxaxCV9wUTZYSPsBICp1?o;B>42R&-dvJfRfC>4i?Mr+&(~f z5X25J-#riw)UbgXH30Sw#SiesmtTGT&9{{E`+zV53-TEV*bM9*gd)dl5Ul{_dxu9N z-~TQMzW*VA?g8Ea*&px(u=9apMV9}G0m=_Tkw2Vl>@+4HM*Q$dHvY$-e*Wdxh?lF7 z+XtR_S3&l zlsr5JVHooH|B91;4*EIn{RA$*TiAgv-&?4S^!fidnf(k|EI0z zlr%u!o*KG3VBc5yG{%_Lo%RdFYfm3+S7a*U%P3Hj507Qa;&a)hIAm)F<$>T>X z5H36gk%4Zc=mzjS&lMo`sSx4lgg1a|69;U6in)D&+}~$nOQ1J!p1+V8XvYRl+L9T- z4m$f|aSupmAjf7vvINlv(e1MHf&7J#@6qK1;2S&nznRu+o|NY)ixbgP~u6zDq&IgQ)jQ&Uc3#so;9o~rwBLDyZ07*p# JPDHLkV1l$`4r2fS delta 1494 zcmV;{1u6QS58MurBmsS~B|-rM#l^*wX8}Bar1kp)EK~!jg?V5>C<3<$5NpWI3%Q&qd&X=$m$3xWN}W$gNc{Z# zzKowI`bG>5X=!O`ManRW!Iu(vQvG%Ka3q8L%1C)OmorUM&aFU-dOJ{F&hKE2*dQb0 zW-gb_W=$z~3V|#s9}Shy$N9^Vj6k@5{1Y(TG_$Wj1-Hfuj*8>{IB2j4@gsmL4zi|_I|WN! z&&~iWP7DZNFk(X$H#q|#xOZiXWWOqZQgSD$-X3Bu zh;Nnb{coM${+E3M*V59`($dm;A(Zr$Z7{lNK9HYFWl$=Y7zf64J~KNvH#clZd1ZcK zVWA@DRTos<>g&?}wM9@{td%pe`mq1(tRdrJ|M__-uP=f6Qr(RkVDfvpv{;H|J0s3< z{}~m>{VOW&R+p;rbj;>|_i_zLZb10#jGE6^)ZDEDCZ03-y#z|id_M!0mAnF0l)MV6 z>hl3mE35PU@~WDztO@wNH{OhR-DM5L<2gG6EMHz-=Q-SXYokH<%GxH!@4x-dyYJC@ zZU({|JlNXWdO$9~Gav|;9*+2gudegF*=lSwTFsEJZSws64?gsNKKhu{;~9v*1!05j zot>Rsx&olY8}K|YAD(d(;X2skc%#({enP$p_BsB^r`~6ue{n!o08~W=cCl!FXZC@B zdtT%K^SwjfKm!|S5CdTUi2ndze)aV?-+o6pyANdLeY%`9HD$^Wb*U{1 zsDXZ;8o>R3xp0a5cZh=`e2REJ(R&s+Ao<@1>D~g?Ko?%H4T8_#A!~qF03yyn@7W#d zK#>2hWuPA_yaBu@Fb#tKL@40sj5UCJ2M*}@LfUb56dCA52F^Ny6~GR92NTf@ zq%{z3ApJf)A1GXM`5s*@0B-Pvn*m&g9T>FU^||~(s}{}w{XWg_mx6qch(eBp`M)>y wSeE~j4czSi52WpX`}sf7fX@F~TK`}D2MvQfyF+xsmH+?%07*qoM6N<$f_3QPXaE2J From 1ad2e7e035b744a61452ee0dd8344df8e418e9db Mon Sep 17 00:00:00 2001 From: DynaJ0ule <117537167+DynaJ0ule@users.noreply.github.com> Date: Tue, 22 Nov 2022 03:38:55 -0500 Subject: [PATCH 2/4] allows for building a meal vendor with fixes --- code/_globalvars/lists/vending.dm | 2 +- .../circuitboards/machine_circuitboards.dm | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/code/_globalvars/lists/vending.dm b/code/_globalvars/lists/vending.dm index 65ee4b99..c90d5398 100644 --- a/code/_globalvars/lists/vending.dm +++ b/code/_globalvars/lists/vending.dm @@ -39,7 +39,7 @@ GLOBAL_VAR_INIT(vending_m_choices, list( "Meal Vendor" = image(icon = 'icons/obj/vending.dmi', icon_state = "mealdor"), "GATO Vending Machine" = image(icon = 'icons/obj/vending.dmi', icon_state = "cola_black"), )) -// This GLOBAL list is just here to be here. +// This GLOBAL list is used in the vending machine circuit board code. GLOBAL_VAR_INIT(vending_machines, list( /obj/machinery/vending/boozeomat, /obj/machinery/vending/coffee, diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 1a2dd434..8ccc62ae 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -246,6 +246,14 @@ /obj/machinery/vending/cigarette = "ShadyCigs Deluxe", /obj/machinery/vending/games = "\improper Good Clean Fun", /obj/machinery/vending/autodrobe = "AutoDrobe", + /obj/machinery/vending/assist = "Vendomat", + /obj/machinery/vending/engivend = "Engi-Vend", + /obj/machinery/vending/tool ="YouTool", + /obj/machinery/vending/sustenance = "Sustenance Vendor", + /obj/machinery/vending/dinnerware = "Plasteel Chef's Dinnerware Vendor", + /obj/machinery/vending/cart = "PTech", + /obj/machinery/vending/hydronutrients = "NutriMax", + /obj/machinery/vending/hydroseeds = "MegaSeed Servitor", /obj/machinery/vending/wardrobe/sec_wardrobe = "SecDrobe", /obj/machinery/vending/wardrobe/medi_wardrobe = "MediDrobe", /obj/machinery/vending/wardrobe/engi_wardrobe = "EngiDrobe", @@ -266,7 +274,9 @@ /obj/machinery/vending/clothing = "ClothesMate", /obj/machinery/vending/medical = "NanoMed Plus", /obj/machinery/vending/wallmed = "NanoMed", - /obj/machinery/vending/kink = "\improper KinkMate") + /obj/machinery/vending/kink = "\improper KinkMate", + /obj/machinery/vending/mealdor = "Meal Vendor", + /obj/machinery/vending/gato = "GATO Vending Machine") /obj/item/circuitboard/machine/vendor/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/screwdriver)) @@ -278,9 +288,8 @@ if(!choiceposition) return var/typepath = GLOB.vending_machines[choiceposition] - var/namepath = vending_names_paths[choiceposition] set_type(typepath) - to_chat(user, "You set the board to \"[vending_names_paths[namepath]]\".") + to_chat(user, "You set the board to \"[choice]\".") else return ..() @@ -1022,4 +1031,4 @@ /obj/item/stack/sheet/glass = 2, /obj/item/stock_parts/capacitor = 1, /obj/item/stack/cable_coil = 5, - /obj/item/reagent_containers/glass/beaker = 6) //So it can hold lots of chems \ No newline at end of file + /obj/item/reagent_containers/glass/beaker = 6) //So it can hold lots of chems From eeeb668eadcf880a734f4f35c0c7fa2e70029979 Mon Sep 17 00:00:00 2001 From: eyespy <104491498+eyespy2222@users.noreply.github.com> Date: Thu, 1 Dec 2022 22:35:44 +1100 Subject: [PATCH 3/4] cyborgs can now latejoin what it says on the tin --- code/modules/jobs/job_types/silicon.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/jobs/job_types/silicon.dm b/code/modules/jobs/job_types/silicon.dm index 4d0b4d66..42136f1f 100644 --- a/code/modules/jobs/job_types/silicon.dm +++ b/code/modules/jobs/job_types/silicon.dm @@ -74,7 +74,7 @@ Cyborg flag = CYBORG department_flag = ENGSEC faction = "Station" - total_positions = 0 + total_positions = 1 spawn_positions = 1 supervisors = "your laws and the AI" //Nodrak selection_color = "#ddffdd" From 642acce2bdeec1cb2b18f1c962086fe97ebc3b15 Mon Sep 17 00:00:00 2001 From: eyespy <104491498+eyespy2222@users.noreply.github.com> Date: Thu, 1 Dec 2022 22:48:21 +1100 Subject: [PATCH 4/4] moving disease stuff where it should be??? idk???? I HATE GITHUB!!! I HATE GITHUB!!! --- .../diseases/advance/symptoms/weight.dm | 40 ++ .../antagonists/disease/disease_abilities.dm | 14 +- disease_abilities.dm | 459 ------------------ weight.dm | 93 ---- 4 files changed, 50 insertions(+), 556 deletions(-) delete mode 100644 disease_abilities.dm delete mode 100644 weight.dm diff --git a/code/datums/diseases/advance/symptoms/weight.dm b/code/datums/diseases/advance/symptoms/weight.dm index 2c267ff4..03ea4e84 100644 --- a/code/datums/diseases/advance/symptoms/weight.dm +++ b/code/datums/diseases/advance/symptoms/weight.dm @@ -51,3 +51,43 @@ Bonus to_chat(M, "[pick("So hungry...", "You'd kill someone for a bite of food...", "Hunger cramps seize you...")]") M.overeatduration = max(M.overeatduration - 100, 0) M.nutrition = max(M.nutrition - 100, 0) + M.fatness = M.fatness - 30 + + + +/datum/symptom/weight_gain + + name = "Weight Gain" + desc = "The virus mutates and merges itself with the host's adipocytes, allowing them to perform a form of mitosis and replicate on their own." + stealth = -3 + resistance = -2 + stage_speed = 3 + transmittable = -2 + level = 8 //better hope someone went mining kiddo + severity = 5 + base_message_chance = 100 + symptom_delay_min = 15 + symptom_delay_max = 45 + threshold_desc = list( + "Transmission 7" = "Increases the rate of cell replication.", + "Transmission 14" = "Increases the rate of cell replication further" + ) + + +/datum/symptom/weight_gain/Activate(datum/disease/advance/A) + if(!..()) + return + var/mob/living/M = A.affected_mob + switch(A.stage) + if(1, 2, 3, 4) + if(prob(base_message_chance)) + to_chat(M, "[pick("You feel oddly full...", "You feel more plush...", "You feel more huggable...", "You hear an odd gurgle from your stomach")]") + else + to_chat(M, "[pick("You feel your body churn...", "You feel heavier...", "You hear an ominous gurgle from your belly...", "You feel bulkier...")]") + if(A.properties["transmittable"] >= 14) //get chunkier quicker + M.fatness = M.fatness + 70 + else if(A.properties["transmittable"] >= 7) + M.fatness = M.fatness + 40 + else + M.fatness = M.fatness + 15 + diff --git a/code/modules/antagonists/disease/disease_abilities.dm b/code/modules/antagonists/disease/disease_abilities.dm index 812f7c4a..8e9e91e4 100644 --- a/code/modules/antagonists/disease/disease_abilities.dm +++ b/code/modules/antagonists/disease/disease_abilities.dm @@ -46,7 +46,8 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( new /datum/disease_ability/symptom/powerful/heal/plasma, new /datum/disease_ability/symptom/powerful/heal/radiation, new /datum/disease_ability/symptom/powerful/heal/coma, - new /datum/disease_ability/symptom/powerful/youth + new /datum/disease_ability/symptom/powerful/youth, + new /datum/disease_ability/symptom/medium/heal/weight_gain )) /datum/disease_ability @@ -275,9 +276,9 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( /datum/disease_ability/symptom/medium category = "Symptom" -/datum/disease_ability/symptom/medium/heal - cost = 5 - required_total_points = 5 +/datum/disease_ability/symptom/medium/heal //changes here to allow for more funky sentient diseases on lowpop, cus sentinent diseases can't get any of the crazy symptoms without 10+ peeps on and we can't hit that consistently + cost = 2 + required_total_points = 2 category = "Symptom (+)" /datum/disease_ability/symptom/powerful @@ -419,6 +420,11 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( short_desc = "Cause victims to become eternally young." long_desc = "Cause victims to become eternally young. Provides boosts to all stats except transmissibility." +/datum/disease_ability/symptom/medium/heal/weight_gain + symptoms = list(/datum/symptom/weight_gain) + short_desc = "Cause victims to gain weight." + long_desc = "Cause victims to gain weight. Boosts stage speed, but weakens all other stats." + /****HEALING SUBTYPE****/ /datum/disease_ability/symptom/powerful/heal/starlight diff --git a/disease_abilities.dm b/disease_abilities.dm deleted file mode 100644 index d00bf076..00000000 --- a/disease_abilities.dm +++ /dev/null @@ -1,459 +0,0 @@ -/* -Abilities that can be purchased by disease mobs. Most are just passive symptoms that will be -added to their disease, but some are active abilites that affect only the target the overmind -is currently following. -*/ - -GLOBAL_LIST_INIT(disease_ability_singletons, list( - new /datum/disease_ability/action/cough, - new /datum/disease_ability/action/sneeze, - new /datum/disease_ability/action/infect, - new /datum/disease_ability/symptom/mild/cough, - new /datum/disease_ability/symptom/mild/sneeze, - new /datum/disease_ability/symptom/medium/shedding, - new /datum/disease_ability/symptom/medium/beard, - new /datum/disease_ability/symptom/medium/hallucigen, - new /datum/disease_ability/symptom/medium/choking, - new /datum/disease_ability/symptom/medium/confusion, - new /datum/disease_ability/symptom/medium/vomit, - new /datum/disease_ability/symptom/medium/voice_change, - new /datum/disease_ability/symptom/medium/visionloss, - new /datum/disease_ability/symptom/medium/deafness, - new /datum/disease_ability/symptom/powerful/narcolepsy, - new /datum/disease_ability/symptom/medium/fever, - new /datum/disease_ability/symptom/medium/shivering, - new /datum/disease_ability/symptom/medium/headache, - new /datum/disease_ability/symptom/medium/nano_boost, - new /datum/disease_ability/symptom/medium/nano_destroy, - new /datum/disease_ability/symptom/medium/viraladaptation, - new /datum/disease_ability/symptom/medium/viralevolution, - new /datum/disease_ability/symptom/medium/vitiligo, - new /datum/disease_ability/symptom/medium/revitiligo, - new /datum/disease_ability/symptom/medium/itching, - new /datum/disease_ability/symptom/medium/heal/weight_loss, - new /datum/disease_ability/symptom/medium/heal/sensory_restoration, - new /datum/disease_ability/symptom/medium/heal/mind_restoration, - new /datum/disease_ability/symptom/powerful/fire, - new /datum/disease_ability/symptom/powerful/flesh_eating, -// new /datum/disease_ability/symptom/powerful/genetic_mutation, - new /datum/disease_ability/symptom/powerful/inorganic_adaptation, - new /datum/disease_ability/symptom/powerful/heal/starlight, - new /datum/disease_ability/symptom/powerful/heal/oxygen, - new /datum/disease_ability/symptom/powerful/heal/chem, - new /datum/disease_ability/symptom/powerful/heal/metabolism, - new /datum/disease_ability/symptom/powerful/heal/dark, - new /datum/disease_ability/symptom/powerful/heal/water, - new /datum/disease_ability/symptom/powerful/heal/plasma, - new /datum/disease_ability/symptom/powerful/heal/radiation, - new /datum/disease_ability/symptom/powerful/heal/coma, - new /datum/disease_ability/symptom/powerful/youth, - new /datum/disease_ability/symptom/medium/heal/weight_gain - )) - -/datum/disease_ability - var/name - var/cost = 0 - var/required_total_points = 0 - var/start_with = FALSE - var/short_desc = "" - var/long_desc = "" - var/stat_block = "" - var/threshold_block = list() - var/category = "" - - var/list/symptoms - var/list/actions - -/datum/disease_ability/New() - ..() - if(symptoms) - var/stealth = 0 - var/resistance = 0 - var/stage_speed = 0 - var/transmittable = 0 - for(var/T in symptoms) - var/datum/symptom/S = T - stealth += initial(S.stealth) - resistance += initial(S.resistance) - stage_speed += initial(S.stage_speed) - transmittable += initial(S.transmittable) - threshold_block += initial(S.threshold_desc) - stat_block = "Resistance: [resistance]
Stealth: [stealth]
Stage Speed: [stage_speed]
Transmissibility: [transmittable]

" - if(symptoms.len == 1) //lazy boy's dream - name = initial(S.name) - if(short_desc == "") - short_desc = initial(S.desc) - if(long_desc == "") - long_desc = initial(S.desc) - -/datum/disease_ability/proc/CanBuy(mob/camera/disease/D) - if(world.time < D.next_adaptation_time) - return FALSE - if(!D.unpurchased_abilities[src]) - return FALSE - return (D.points >= cost) && (D.total_points >= required_total_points) - -/datum/disease_ability/proc/Buy(mob/camera/disease/D, silent = FALSE, trigger_cooldown = TRUE) - if(!silent) - to_chat(D, "Purchased [name].") - D.points -= cost - D.unpurchased_abilities -= src - if(trigger_cooldown) - D.adapt_cooldown() - D.purchased_abilities[src] = TRUE - for(var/V in (D.disease_instances+D.disease_template)) - var/datum/disease/advance/sentient_disease/SD = V - if(symptoms) - for(var/T in symptoms) - var/datum/symptom/S = new T() - SD.symptoms += S - S.OnAdd(SD) - if(SD.processing) - if(S.Start(SD)) - S.next_activation = world.time + rand(S.symptom_delay_min * 10, S.symptom_delay_max * 10) - SD.Refresh() - for(var/T in actions) - var/datum/action/A = new T() - A.Grant(D) - - -/datum/disease_ability/proc/CanRefund(mob/camera/disease/D) - if(world.time < D.next_adaptation_time) - return FALSE - return D.purchased_abilities[src] - -/datum/disease_ability/proc/Refund(mob/camera/disease/D, silent = FALSE, trigger_cooldown = TRUE) - if(!silent) - to_chat(D, "Refunded [name].") - D.points += cost - D.unpurchased_abilities[src] = TRUE - if(trigger_cooldown) - D.adapt_cooldown() - D.purchased_abilities -= src - for(var/V in (D.disease_instances+D.disease_template)) - var/datum/disease/advance/sentient_disease/SD = V - if(symptoms) - for(var/T in symptoms) - var/datum/symptom/S = locate(T) in SD.symptoms - if(S) - SD.symptoms -= S - S.OnRemove(SD) - if(SD.processing) - S.End(SD) - qdel(S) - SD.Refresh() - for(var/T in actions) - var/datum/action/A = locate(T) in D.actions - qdel(A) - -//these sybtypes are for conveniently separating the different categories, they have no unique code. - -/datum/disease_ability/action - category = "Active" - -/datum/disease_ability/symptom - category = "Symptom" - -//active abilities and their associated actions - -/datum/disease_ability/action/cough - name = "Voluntary Coughing" - actions = list(/datum/action/cooldown/disease_cough) - cost = 0 - required_total_points = 0 - start_with = TRUE - short_desc = "Force the host you are following to cough, spreading your infection to those nearby." - long_desc = "Force the host you are following to cough with extra force, spreading your infection to those within two meters of your host even if your transmissibility is low.
Cooldown: 10 seconds" - - -/datum/action/cooldown/disease_cough - name = "Cough" - icon_icon = 'icons/mob/actions/actions_minor_antag.dmi' - button_icon_state = "cough" - desc = "Force the host you are following to cough with extra force, spreading your infection to those within two meters of your host even if your transmissibility is low.
Cooldown: 10 seconds" - cooldown_time = 100 - -/datum/action/cooldown/disease_cough/Trigger() - if(!..()) - return FALSE - var/mob/camera/disease/D = owner - var/mob/living/L = D.following_host - if(!L) - return FALSE - if(L.stat != CONSCIOUS) - to_chat(D, "Your host must be conscious to cough.") - return FALSE - to_chat(D, "You force [L.real_name] to cough.") - L.emote("cough") - if(L.CanSpreadAirborneDisease()) //don't spread germs if they covered their mouth - var/datum/disease/advance/sentient_disease/SD = D.hosts[L] - SD.spread(2) - StartCooldown() - return TRUE - - -/datum/disease_ability/action/sneeze - name = "Voluntary Sneezing" - actions = list(/datum/action/cooldown/disease_sneeze) - short_desc = "Force the host you are following to sneeze, spreading your infection to those in front of them." - long_desc = "Force the host you are following to sneeze with extra force, spreading your infection to any victims in a 4 meter cone in front of your host.
Cooldown: 20 seconds" - -/datum/action/cooldown/disease_sneeze - name = "Sneeze" - icon_icon = 'icons/mob/actions/actions_minor_antag.dmi' - button_icon_state = "sneeze" - desc = "Force the host you are following to sneeze with extra force, spreading your infection to any victims in a 4 meter cone in front of your host even if your transmissibility is low.
Cooldown: 20 seconds" - cooldown_time = 200 - -/datum/action/cooldown/disease_sneeze/Trigger() - if(!..()) - return FALSE - var/mob/camera/disease/D = owner - var/mob/living/L = D.following_host - if(!L) - return FALSE - if(L.stat != CONSCIOUS) - to_chat(D, "Your host must be conscious to sneeze.") - return FALSE - to_chat(D, "You force [L.real_name] to sneeze.") - L.emote("sneeze") - if(L.CanSpreadAirborneDisease()) //don't spread germs if they covered their mouth - var/datum/disease/advance/sentient_disease/SD = D.hosts[L] - - for(var/mob/living/M in oview(4, SD.affected_mob)) - if(is_A_facing_B(SD.affected_mob, M) && disease_air_spread_walk(get_turf(SD.affected_mob), get_turf(M))) - M.AirborneContractDisease(SD, TRUE) - - StartCooldown() - return TRUE - - -/datum/disease_ability/action/infect - name = "Secrete Infection" - actions = list(/datum/action/cooldown/disease_infect) - short_desc = "Cause all objects your host is touching to become infectious for a limited time, spreading your infection to anyone who touches them." - long_desc = "Cause the host you are following to excrete an infective substance from their pores, causing all objects touching their skin to transmit your infection to anyone who touches them for the next 30 seconds. This includes the floor, if they are not wearing shoes, and any items they are holding, if they are not wearing gloves.
Cooldown: 40 seconds" - -/datum/action/cooldown/disease_infect - name = "Secrete Infection" - icon_icon = 'icons/mob/actions/actions_minor_antag.dmi' - button_icon_state = "infect" - desc = "Cause the host you are following to excrete an infective substance from their pores, causing all objects touching their skin to transmit your infection to anyone who touches them for the next 30 seconds.
Cooldown: 40 seconds" - cooldown_time = 400 - -/datum/action/cooldown/disease_infect/Trigger() - if(!..()) - return FALSE - var/mob/camera/disease/D = owner - var/mob/living/carbon/human/H = D.following_host - if(!H) - return FALSE - for(var/V in H.get_equipped_items(FALSE)) - var/obj/O = V - O.AddComponent(/datum/component/infective, D.disease_template, 300) - //no shoes? infect the floor. - if(!H.shoes) - var/turf/T = get_turf(H) - if(T && !isspaceturf(T)) - T.AddComponent(/datum/component/infective, D.disease_template, 300) - //no gloves? infect whatever we are holding. - if(!H.gloves) - for(var/V in H.held_items) - if(!V) - continue - var/obj/O = V - O.AddComponent(/datum/component/infective, D.disease_template, 300) - StartCooldown() - return TRUE - -/*******************BASE SYMPTOM TYPES*******************/ -// cost is for convenience and can be changed. If you're changing req_tot_points then don't use the subtype... -//healing costs more so you have to techswitch from naughty disease otherwise we'd have friendly disease for easy greentext (no fun!) - -/datum/disease_ability/symptom/mild - category = "Symptom (Weak)" - -/datum/disease_ability/symptom/medium - category = "Symptom" - -/datum/disease_ability/symptom/medium/heal //changes here to allow for more funky sentient diseases on lowpop, cus sentinent diseases can't get any of the crazy symptoms without 10+ peeps on and we can't hit that consistently - cost = 2 - required_total_points = 2 - category = "Symptom (+)" - -/datum/disease_ability/symptom/powerful - cost = 4 - required_total_points = 10 - category = "Symptom (Strong)" - -/datum/disease_ability/symptom/powerful/heal - cost = 8 - category = "Symptom (Strong+)" - - -/******MILD******/ - -/datum/disease_ability/symptom/mild/cough - name = "Involuntary Coughing" - symptoms = list(/datum/symptom/cough) - short_desc = "Cause victims to cough intermittently." - long_desc = "Cause victims to cough intermittently, spreading your infection if your transmissibility is high." - -/datum/disease_ability/symptom/mild/sneeze - name = "Involuntary Sneezing" - symptoms = list(/datum/symptom/sneeze) - short_desc = "Cause victims to sneeze intermittently." - long_desc = "Cause victims to sneeze intermittently, spreading your infection and also increasing transmissibility and resistance, at the cost of stealth." - -/******MEDIUM******/ - -/datum/disease_ability/symptom/medium/shedding - symptoms = list(/datum/symptom/shedding) - -/datum/disease_ability/symptom/medium/beard - symptoms = list(/datum/symptom/beard) - short_desc = "Cause all victims to grow a luscious beard." - long_desc = "Cause all victims to grow a luscious beard. Ineffective against Santa Claus." - -/datum/disease_ability/symptom/medium/hallucigen - symptoms = list(/datum/symptom/hallucigen) - short_desc = "Cause victims to hallucinate." - long_desc = "Cause victims to hallucinate. Decreases stats, especially resistance." - -/datum/disease_ability/symptom/medium/choking - symptoms = list(/datum/symptom/choking) - short_desc = "Cause victims to choke." - long_desc = "Cause victims to choke, threatening asphyxiation. Decreases stats, especially transmissibility." - -/datum/disease_ability/symptom/medium/confusion - symptoms = list(/datum/symptom/confusion) - short_desc = "Cause victims to become confused." - long_desc = "Cause victims to become confused intermittently." - -/datum/disease_ability/symptom/medium/vomit - symptoms = list(/datum/symptom/vomit) - short_desc = "Cause victims to vomit." - long_desc = "Cause victims to vomit. Slightly increases transmissibility. Vomiting also also causes the victims to lose nutrition and removes some toxin damage." - -/datum/disease_ability/symptom/medium/voice_change - symptoms = list(/datum/symptom/voice_change) - short_desc = "Change the voice of victims." - long_desc = "Change the voice of victims, causing confusion in communications." - -/datum/disease_ability/symptom/medium/visionloss - symptoms = list(/datum/symptom/visionloss) - short_desc = "Damage the eyes of victims, eventually causing blindness." - long_desc = "Damage the eyes of victims, eventually causing blindness. Decreases all stats." - -/datum/disease_ability/symptom/medium/deafness - symptoms = list(/datum/symptom/deafness) - -/datum/disease_ability/symptom/medium/fever - symptoms = list(/datum/symptom/fever) - -/datum/disease_ability/symptom/medium/shivering - symptoms = list(/datum/symptom/shivering) - -/datum/disease_ability/symptom/medium/headache - symptoms = list(/datum/symptom/headache) - -/datum/disease_ability/symptom/medium/nano_boost - symptoms = list(/datum/symptom/nano_boost) - -/datum/disease_ability/symptom/medium/nano_destroy - symptoms = list(/datum/symptom/nano_destroy) - -/datum/disease_ability/symptom/medium/viraladaptation - symptoms = list(/datum/symptom/viraladaptation) - short_desc = "Cause your infection to become more resistant to detection and eradication." - long_desc = "Cause your infection to mimic the function of normal body cells, becoming much harder to spot and to eradicate, but reducing its speed." - -/datum/disease_ability/symptom/medium/viralevolution - symptoms = list(/datum/symptom/viralevolution) - -/datum/disease_ability/symptom/medium/vitiligo - symptoms = list(/datum/symptom/vitiligo) - -/datum/disease_ability/symptom/medium/revitiligo - symptoms = list(/datum/symptom/revitiligo) - -/datum/disease_ability/symptom/medium/itching - symptoms = list(/datum/symptom/itching) - short_desc = "Cause victims to itch." - long_desc = "Cause victims to itch, increasing all stats except stealth." - -/datum/disease_ability/symptom/medium/heal/weight_loss - symptoms = list(/datum/symptom/weight_loss) - short_desc = "Cause victims to lose weight." - long_desc = "Cause victims to lose weight, and make it almost impossible for them to gain nutrition from food. Reduced nutrition allows your infection to spread more easily from hosts, especially by sneezing." - -/datum/disease_ability/symptom/medium/heal/sensory_restoration - symptoms = list(/datum/symptom/sensory_restoration) - short_desc = "Regenerate eye and ear damage of victims." - long_desc = "Regenerate eye and ear damage of victims." - -/datum/disease_ability/symptom/medium/heal/mind_restoration - symptoms = list(/datum/symptom/mind_restoration) - -/******POWERFUL******/ - -/datum/disease_ability/symptom/powerful/fire - symptoms = list(/datum/symptom/fire) - -/datum/disease_ability/symptom/powerful/flesh_eating - symptoms = list(/datum/symptom/flesh_eating) - -/* -/datum/disease_ability/symptom/powerful/genetic_mutation - symptoms = list(/datum/symptom/genetic_mutation) - cost = 8 -*/ - -/datum/disease_ability/symptom/powerful/inorganic_adaptation - symptoms = list(/datum/symptom/inorganic_adaptation) - -/datum/disease_ability/symptom/powerful/narcolepsy - symptoms = list(/datum/symptom/narcolepsy) - -/datum/disease_ability/symptom/powerful/youth - symptoms = list(/datum/symptom/youth) - short_desc = "Cause victims to become eternally young." - long_desc = "Cause victims to become eternally young. Provides boosts to all stats except transmissibility." - -/datum/disease_ability/symptom/medium/heal/weight_gain - symptoms = list(/datum/symptom/weight_gain) - short_desc = "Cause victims to gain weight." - long_desc = "Cause victims to gain weight. Boosts stage speed, but weakens all other stats." - -/****HEALING SUBTYPE****/ - -/datum/disease_ability/symptom/powerful/heal/starlight - symptoms = list(/datum/symptom/heal/starlight) - -/datum/disease_ability/symptom/powerful/heal/oxygen - symptoms = list(/datum/symptom/oxygen) - -/datum/disease_ability/symptom/powerful/heal/chem - symptoms = list(/datum/symptom/heal/chem) - -/datum/disease_ability/symptom/powerful/heal/metabolism - symptoms = list(/datum/symptom/heal/metabolism) - short_desc = "Increase the metabolism of victims, causing them to process chemicals and grow hungry faster." - long_desc = "Increase the metabolism of victims, causing them to process chemicals twice as fast and grow hungry more quickly." - -/datum/disease_ability/symptom/powerful/heal/dark - symptoms = list(/datum/symptom/heal/darkness) - -/datum/disease_ability/symptom/powerful/heal/water - symptoms = list(/datum/symptom/heal/water) - -/datum/disease_ability/symptom/powerful/heal/plasma - symptoms = list(/datum/symptom/heal/plasma) - -/datum/disease_ability/symptom/powerful/heal/radiation - symptoms = list(/datum/symptom/heal/radiation) - -/datum/disease_ability/symptom/powerful/heal/coma - symptoms = list(/datum/symptom/heal/coma) - short_desc = "Cause victims to fall into a healing coma when hurt." - long_desc = "Cause victims to fall into a healing coma when hurt." diff --git a/weight.dm b/weight.dm deleted file mode 100644 index 0828a3a1..00000000 --- a/weight.dm +++ /dev/null @@ -1,93 +0,0 @@ -/* -////////////////////////////////////// - -Weight Loss - - Very Very Noticable. - Decreases resistance. - Decreases stage speed. - Reduced Transmittable. - High level. - -Bonus - Decreases the weight of the mob, - forcing it to be skinny. - -////////////////////////////////////// -*/ - -/datum/symptom/weight_loss - - name = "Weight Loss" - desc = "The virus mutates the host's metabolism, making it almost unable to gain nutrition from food." - stealth = -2 - resistance = 2 - stage_speed = -2 - transmittable = -2 - level = 3 - severity = 3 - base_message_chance = 100 - symptom_delay_min = 15 - symptom_delay_max = 45 - threshold_desc = list( - "Stealth 4" = "The symptom is less noticeable." - ) - -/datum/symptom/weight_loss/Start(datum/disease/advance/A) - if(!..()) - return - if(A.properties["stealth"] >= 4) //warn less often - base_message_chance = 25 - -/datum/symptom/weight_loss/Activate(datum/disease/advance/A) - if(!..()) - return - var/mob/living/M = A.affected_mob - switch(A.stage) - if(1, 2, 3, 4) - if(prob(base_message_chance)) - to_chat(M, "[pick("You feel hungry.", "You crave for food.")]") - else - to_chat(M, "[pick("So hungry...", "You'd kill someone for a bite of food...", "Hunger cramps seize you...")]") - M.overeatduration = max(M.overeatduration - 100, 0) - M.nutrition = max(M.nutrition - 100, 0) - M.fatness = M.fatness - 30 - - - -/datum/symptom/weight_gain - - name = "Weight Gain" - desc = "The virus mutates and merges itself with the host's adipocytes, allowing them to perform a form of mitosis and replicate on their own." - stealth = -3 - resistance = -2 - stage_speed = 3 - transmittable = -2 - level = 8 //better hope someone went mining kiddo - severity = 5 - base_message_chance = 100 - symptom_delay_min = 15 - symptom_delay_max = 45 - threshold_desc = list( - "Transmission 7" = "Increases the rate of cell replication.", - "Transmission 14" = "Increases the rate of cell replication further" - ) - - -/datum/symptom/weight_gain/Activate(datum/disease/advance/A) - if(!..()) - return - var/mob/living/M = A.affected_mob - switch(A.stage) - if(1, 2, 3, 4) - if(prob(base_message_chance)) - to_chat(M, "[pick("You feel oddly full...", "You feel more plush...", "You feel more huggable...", "You hear an odd gurgle from your stomach")]") - else - to_chat(M, "[pick("You feel your body churn...", "You feel heavier...", "You hear an ominous gurgle from your belly...", "You feel bulkier...")]") - if(A.properties["transmittable"] >= 14) //get chunkier quicker - M.fatness = M.fatness + 70 - else if(A.properties["transmittable"] >= 7) - M.fatness = M.fatness + 40 - else - M.fatness = M.fatness + 15 -