diff --git a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
index 1590325df0e..15a969e7a47 100644
--- a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
@@ -365,7 +365,7 @@
"aha" = (/obj/machinery/computer/prisoner,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos)
"ahb" = (/obj/machinery/computer/security,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos)
"ahc" = (/obj/machinery/computer/secure_data,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos)
-"ahd" = (/obj/structure/table/woodentable,/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; pixel_x = 0; pixel_y = 30},/obj/machinery/computer/med_data/laptop,/obj/item/weapon/storage/secure/safe/HoS{pixel_x = 36; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos)
+"ahd" = (/obj/structure/table/woodentable,/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; pixel_x = 0; pixel_y = 30},/obj/machinery/computer/med_data/laptop,/obj/item/weapon/storage/secure/safe{pixel_x = 36; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos)
"ahe" = (/turf/simulated/wall,/area/security/range)
"ahf" = (/obj/machinery/alarm{pixel_y = 28},/obj/structure/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/item/clothing/suit/armor/laserproof,/obj/machinery/light{dir = 1; on = 1},/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden)
"ahg" = (/obj/machinery/door/airlock/external{name = "Escape Pod Three"},/turf/simulated/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"})
diff --git a/_maps/map_files/RandomZLevels/spacehotel.dmm b/_maps/map_files/RandomZLevels/spacehotel.dmm
index 6a368e05b16..c09808a51f8 100644
--- a/_maps/map_files/RandomZLevels/spacehotel.dmm
+++ b/_maps/map_files/RandomZLevels/spacehotel.dmm
@@ -523,7 +523,7 @@
"kc" = (/obj/machinery/door/airlock{name = "Supply Closet"},/turf/unsimulated/floor/carpet,/area/awaymission/spacehotel)
"kd" = (/obj/machinery/door/airlock/glass{name = "Gateway"},/turf/unsimulated/floor/carpet,/area/awaymission/spacehotel)
"ke" = (/obj/item/weapon/melee/cultblade,/turf/unsimulated/floor{name = "engraved floor"; icon_state = "cult"},/area/awaymission/spacehotel)
-"kf" = (/obj/item/weapon/kitchen/knife/butcher{blood_DNA = 1e+009},/obj/effect/decal/cleanable/blood/old,/turf/unsimulated/floor{name = "engraved floor"; icon_state = "cult"},/area/awaymission/spacehotel)
+"kf" = (/obj/item/weapon/kitchen/knife/butcher{blood_DNA = list("1e+009" = "O-")},/obj/effect/decal/cleanable/blood/old,/turf/unsimulated/floor{name = "engraved floor"; icon_state = "cult"},/area/awaymission/spacehotel)
"kg" = (/obj/machinery/light{dir = 8},/obj/structure/stool/bed/chair/sofa/left{icon_state = "sofaend_left"; dir = 4},/turf/unsimulated/floor/carpet,/area/awaymission/spacehotel)
"kh" = (/obj/effect/hotel_controller,/turf/unsimulated/floor/carpet,/area/awaymission/spacehotel)
"ki" = (/obj/item/weapon/pen,/obj/structure/table/reinforced,/turf/unsimulated/floor/carpet,/area/awaymission/spacehotel/reception)
diff --git a/code/ATMOSPHERICS/components/binary_devices/circulator.dm b/code/ATMOSPHERICS/components/binary_devices/circulator.dm
index 8ce7b1ce0ba..b6c5d55e5a9 100644
--- a/code/ATMOSPHERICS/components/binary_devices/circulator.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/circulator.dm
@@ -2,77 +2,84 @@
//node2, air2, network2 correspond to output
/obj/machinery/atmospherics/binary/circulator
name = "circulator/heat exchanger"
- desc = "A gas circulator pump and heat exchanger."
- icon = 'icons/obj/pipes.dmi'
- icon_state = "circ-off"
- anchored = 0
- density = 1
+ desc = "A gas circulator pump and heat exchanger. Its input port is on the south side, and its output port is on the north side."
+ icon = 'icons/obj/atmospherics/circulator.dmi'
+ icon_state = "circ1-off"
+
+ var/side = CIRC_LEFT
+
+ var/global/const/CIRC_LEFT = WEST
+ var/global/const/CIRC_RIGHT = EAST
- var/recent_moles_transferred = 0
- var/last_heat_capacity = 0
- var/last_temperature = 0
var/last_pressure_delta = 0
- var/last_worldtime_transfer = 0
+
+ var/obj/machinery/power/generator/generator
-/obj/machinery/atmospherics/binary/circulator/New()
- ..()
- desc = initial(desc) + " Its outlet port is to the [dir2text(dir)]."
+ layer = 2.45 // Just above wires
+
+ anchored = 1
+ density = 1
+
+ can_unwrench = 1
+
+// Creating a custom circulator pipe subtype to be delivered through cargo
+/obj/item/pipe/circulator
+ name = "circulator/heat exchanger fitting"
+
+/obj/item/pipe/circulator/New(loc)
+ var/obj/machinery/atmospherics/binary/circulator/C = new /obj/machinery/atmospherics/binary/circulator(null)
+ ..(loc, make_from = C)
+
+/obj/machinery/atmospherics/binary/circulator/Destroy()
+ if(generator && generator.cold_circ == src)
+ generator.cold_circ = null
+ else if(generator && generator.hot_circ == src)
+ generator.hot_circ = null
+ return ..()
/obj/machinery/atmospherics/binary/circulator/proc/return_transfer_air()
- var/datum/gas_mixture/removed
- if(anchored && !(stat & BROKEN))
- var/input_starting_pressure = air1.return_pressure()
- var/output_starting_pressure = air2.return_pressure()
- last_pressure_delta = max(input_starting_pressure - output_starting_pressure + 10, 0)
+ var/output_starting_pressure = air1.return_pressure()
+ var/input_starting_pressure = air2.return_pressure()
- //only circulate air if there is a pressure difference (plus 10 kPa to represent friction in the machine)
- if(air1.temperature > 0 && last_pressure_delta > 0)
+ if(output_starting_pressure >= input_starting_pressure - 10)
+ //Need at least 10 KPa difference to overcome friction in the mechanism
+ last_pressure_delta = 0
+ return null
- //Calculate necessary moles to transfer using PV = nRT
- recent_moles_transferred = last_pressure_delta*air2.volume/(air1.temperature * R_IDEAL_GAS_EQUATION)
+ //Calculate necessary moles to transfer using PV = nRT
+ if(air2.temperature > 0)
+ var/pressure_delta = (input_starting_pressure - output_starting_pressure) / 2
- //Actually transfer the gas
- removed = air1.remove(recent_moles_transferred)
- if(removed)
- last_heat_capacity = removed.heat_capacity()
- last_temperature = removed.temperature
+ var/transfer_moles = pressure_delta * air1.volume/(air2.temperature * R_IDEAL_GAS_EQUATION)
- //Update the gas networks.
- parent1.update = 1
+ last_pressure_delta = pressure_delta
- last_worldtime_transfer = world.time
- else
- recent_moles_transferred = 0
+ //log_debug("pressure_delta = [pressure_delta]; transfer_moles = [transfer_moles];")
+
+ //Actually transfer the gas
+ var/datum/gas_mixture/removed = air2.remove(transfer_moles)
+
+ parent1.update = 1
+ parent2.update = 1
- update_icon()
return removed
+ else
+ last_pressure_delta = 0
+
/obj/machinery/atmospherics/binary/circulator/process()
- if(!..())
- return 0
- if(last_worldtime_transfer < world.time - 50)
- recent_moles_transferred = 0
- update_icon()
+ ..()
+ update_icon()
/obj/machinery/atmospherics/binary/circulator/update_icon()
- if(stat & (BROKEN|NOPOWER) || !anchored)
- icon_state = "circ-p"
- else if(last_pressure_delta > 0 && recent_moles_transferred > 0)
- if(last_pressure_delta > 5*ONE_ATMOSPHERE)
- icon_state = "circ-run"
+ if(stat & (BROKEN|NOPOWER))
+ icon_state = "circ[side]-p"
+ else if(last_pressure_delta > 0)
+ if(last_pressure_delta > ONE_ATMOSPHERE)
+ icon_state = "circ[side]-run"
else
- icon_state = "circ-slow"
+ icon_state = "circ[side]-slow"
else
- icon_state = "circ-off"
+ icon_state = "circ[side]-off"
- return 1
-
-/obj/machinery/atmospherics/binary/circulator/attackby(var/obj/item/W as obj, var/mob/user as mob, params)
- if(istype(W, /obj/item/weapon/wrench))
- var/turf/T = get_turf(src)
- if(!istype(T, /turf/simulated))
- return ..()
- anchored = !anchored
- to_chat(user, "You [(anchored) ? "fasten" : "loosen"] \the [src] to the floor")
- playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
- else return ..()
+ return 1
\ No newline at end of file
diff --git a/code/__HELPERS/maths.dm b/code/__HELPERS/maths.dm
index 114588009ed..986cbac0bd3 100644
--- a/code/__HELPERS/maths.dm
+++ b/code/__HELPERS/maths.dm
@@ -85,3 +85,18 @@ var/gaussian_next
gaussian_next = R2 * working
return (mean + stddev * R1)
#undef ACCURACY
+
+
+
+// oof, what a mouthful
+// Used in status_procs' "adjust" to let them modify a status effect by a given
+// amount, without inadverdently increasing it in the wrong direction
+/proc/directional_bounded_sum(orig_val, modifier, bound_lower, bound_upper)
+ var/new_val = orig_val + modifier
+ if(modifier > 0)
+ if(new_val > bound_upper)
+ new_val = max(orig_val, bound_upper)
+ else if(modifier < 0)
+ if(new_val < bound_lower)
+ new_val = min(orig_val, bound_lower)
+ return new_val
diff --git a/code/_globalvars/mapping.dm b/code/_globalvars/mapping.dm
index 44b678a8f67..ae26485208b 100644
--- a/code/_globalvars/mapping.dm
+++ b/code/_globalvars/mapping.dm
@@ -18,7 +18,6 @@ var/global/list/global_map = null
//3 - AI satellite
//5 - empty space
-var/list/monkeystart = list()
var/list/wizardstart = list()
var/list/newplayer_start = list()
var/list/latejoin = list()
@@ -26,10 +25,9 @@ var/list/latejoin_gateway = list()
var/list/latejoin_cryo = list()
var/list/latejoin_cyborg = list()
var/list/prisonwarp = list() //prisoners go to these
-var/list/holdingfacility = list() //captured people go here
var/list/xeno_spawn = list()//Aliens spawn at these.
var/list/ertdirector = list()
-// list/mazewarp = list()
+var/list/emergencyresponseteamspawn = list()
var/list/tdome1 = list()
var/list/tdome2 = list()
var/list/team_alpha = list()
diff --git a/code/_globalvars/unused.dm b/code/_globalvars/unused.dm
index d3945b68eab..e55794c3dc9 100644
--- a/code/_globalvars/unused.dm
+++ b/code/_globalvars/unused.dm
@@ -31,10 +31,4 @@ var/endicon = null
var/datum/air_tunnel/air_tunnel1/SS13_airtunnel = null
var/going = 1.0
var/datum/engine_eject/engine_eject_control = null
-// list/traitors = list() //traitor list
-// list/traitobj = list( )
-var/airtunnel_start = 68 // default
-var/airtunnel_stop = 68 // default
-var/airtunnel_bottom = 72 // default
-// reverse_dir[dir] = reverse of dir
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index a476fbc78d5..66377ec3fcd 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -62,7 +62,7 @@
CtrlClickOn(A)
return
- if(stat || paralysis || stunned || weakened)
+ if(incapacitated(ignore_restraints = 1, ignore_grab = 1, ignore_lying = 1))
return
face_atom(A)
diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm
index 1f60c26f885..a15176af87c 100644
--- a/code/_onclick/cyborg.dm
+++ b/code/_onclick/cyborg.dm
@@ -39,7 +39,7 @@
CtrlClickOn(A)
return
- if(stat || lockcharge || weakened || stunned || paralysis)
+ if(incapacitated())
return
if(next_move >= world.time)
diff --git a/code/datums/diseases/advance/symptoms/confusion.dm b/code/datums/diseases/advance/symptoms/confusion.dm
index 8f388c45edc..9e806b24f41 100644
--- a/code/datums/diseases/advance/symptoms/confusion.dm
+++ b/code/datums/diseases/advance/symptoms/confusion.dm
@@ -35,6 +35,6 @@ Bonus
to_chat(M, "[pick("Your head hurts.", "Your mind blanks for a moment.")]")
else
to_chat(M, "You can't think straight!")
- M.confused = min(100, M.confused + 8)
+ M.AdjustConfused(8, bound_lower = 0, bound_upper = 100)
return
diff --git a/code/datums/diseases/advance/symptoms/deafness.dm b/code/datums/diseases/advance/symptoms/deafness.dm
index 6c65e330fa8..1a9bba6961e 100644
--- a/code/datums/diseases/advance/symptoms/deafness.dm
+++ b/code/datums/diseases/advance/symptoms/deafness.dm
@@ -33,11 +33,11 @@ Bonus
if(3, 4)
to_chat(M, "[pick("You hear a ringing in your ear.", "Your ears pop.")]")
if(5)
- if(!(M.ear_deaf))
+ if(!(M.disabilities & DEAF))
to_chat(M, "Your ears pop and begin ringing loudly!")
- M.setEarDamage(-1,INFINITY) //Shall be enough
+ M.BecomeDeaf()
spawn(200)
if(M)
to_chat(M, "The ringing in your ears fades...")
- M.setEarDamage(-1,0)
- return
\ No newline at end of file
+ M.CureDeaf()
+ return
diff --git a/code/datums/diseases/advance/symptoms/hallucigen.dm b/code/datums/diseases/advance/symptoms/hallucigen.dm
index cac8b4d2e03..e117dbf51f8 100644
--- a/code/datums/diseases/advance/symptoms/hallucigen.dm
+++ b/code/datums/diseases/advance/symptoms/hallucigen.dm
@@ -36,6 +36,6 @@ Bonus
to_chat(M, "[pick("Something is following you.", "You are being watched.", "You hear a whisper in your ear.", "Thumping footsteps slam toward you from nowhere.")]")
else
to_chat(M, "[pick("Oh, your head...", "Your head pounds.", "They're everywhere! Run!", "Something in the shadows...")]")
- M.hallucination += 5
+ M.AdjustHallucinate(5)
return
diff --git a/code/datums/diseases/anxiety.dm b/code/datums/diseases/anxiety.dm
index 150b7483aaa..4d9716e44da 100644
--- a/code/datums/diseases/anxiety.dm
+++ b/code/datums/diseases/anxiety.dm
@@ -24,18 +24,18 @@
to_chat(affected_mob, "You feel panicky.")
if(prob(2))
to_chat(affected_mob, "You're overtaken with panic!")
- affected_mob.confused += (rand(2,3))
+ affected_mob.AdjustConfused(rand(2,3))
if(4)
if(prob(10))
to_chat(affected_mob, "You feel butterflies in your stomach.")
if(prob(5))
affected_mob.visible_message("[affected_mob] stumbles around in a panic.", \
"You have a panic attack!")
- affected_mob.confused += (rand(6,8))
- affected_mob.jitteriness += (rand(6,8))
+ affected_mob.AdjustConfused(rand(6,8))
+ affected_mob.AdjustJitter(rand(6,8))
if(prob(2))
affected_mob.visible_message("[affected_mob] coughs up butterflies!", \
"You cough up butterflies!")
new /mob/living/simple_animal/butterfly(affected_mob.loc)
new /mob/living/simple_animal/butterfly(affected_mob.loc)
- return
\ No newline at end of file
+ return
diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm
index 7f04eb5fc56..e3482955865 100644
--- a/code/datums/diseases/transformation.dm
+++ b/code/datums/diseases/transformation.dm
@@ -106,7 +106,7 @@
if(3)
if(prob(4))
to_chat(affected_mob, "You feel a stabbing pain in your head.")
- affected_mob.confused += 10
+ affected_mob.AdjustConfused(10)
if(4)
if(prob(3))
affected_mob.say(pick("Eeek, ook ook!", "Eee-eeek!", "Eeee!", "Ungh, ungh."))
@@ -241,4 +241,4 @@
stage3 = list("Your appendages are melting away.", "Your limbs begin to lose their shape.")
stage4 = list("You're ravenous.")
stage5 = list("You have become a morph.")
- new_form = /mob/living/simple_animal/hostile/morph
\ No newline at end of file
+ new_form = /mob/living/simple_animal/hostile/morph
diff --git a/code/datums/diseases/tuberculosis.dm b/code/datums/diseases/tuberculosis.dm
index 11c06e386c5..4cd027a7d7d 100644
--- a/code/datums/diseases/tuberculosis.dm
+++ b/code/datums/diseases/tuberculosis.dm
@@ -44,7 +44,7 @@
affected_mob.AdjustSleeping(5)
if(prob(2))
to_chat(affected_mob, "You feel your mind relax and your thoughts drift!")
- affected_mob.confused = min(100, affected_mob.confused + 8)
+ affected_mob.AdjustConfused(8, bound_lower = 0, bound_upper = 100)
if(prob(10))
affected_mob.vomit(20)
if(prob(3))
@@ -55,4 +55,3 @@
to_chat(affected_mob, "[pick("You feel uncomfortably hot...", "You feel like unzipping your jumpsuit", "You feel like taking off some clothes...")]")
affected_mob.bodytemperature += 40
return
-
diff --git a/code/datums/diseases/vampire.dm b/code/datums/diseases/vampire.dm
index dbcc9bbb3c0..16706087673 100644
--- a/code/datums/diseases/vampire.dm
+++ b/code/datums/diseases/vampire.dm
@@ -20,15 +20,15 @@
if(prob(10))
affected_mob.emote(pick("cough","groan", "gasp"))
- affected_mob.losebreath++
+ affected_mob.AdjustLoseBreath(1)
if(prob(15))
if(prob(33))
to_chat(affected_mob, "You feel sickly and weak.")
- affected_mob.slowed += 3
+ affected_mob.AdjustSlowed(3)
affected_mob.adjustToxLoss(toxdamage)
if(prob(5))
to_chat(affected_mob, "Your joints ache horribly!")
affected_mob.Weaken(stuntime)
- affected_mob.Stun(stuntime)
\ No newline at end of file
+ affected_mob.Stun(stuntime)
diff --git a/code/datums/recipe.dm b/code/datums/recipe.dm
index 645af5e8aea..2e953f3ec91 100644
--- a/code/datums/recipe.dm
+++ b/code/datums/recipe.dm
@@ -42,7 +42,7 @@
var/byproduct // example: = /obj/item/weapon/kitchen/mould // byproduct to return, such as a mould or trash
-/datum/recipe/proc/check_reagents(var/datum/reagents/avail_reagents) //1=precisely, 0=insufficiently, -1=superfluous
+/datum/recipe/proc/check_reagents(datum/reagents/avail_reagents) //1=precisely, 0=insufficiently, -1=superfluous
. = 1
for(var/r_r in reagents)
var/aval_r_amnt = avail_reagents.get_reagent_amount(r_r)
@@ -55,7 +55,7 @@
return -1
return .
-/datum/recipe/proc/check_fruit(var/obj/container)
+/datum/recipe/proc/check_fruit(obj/container)
. = 1
if(fruit && fruit.len)
var/list/checklist = list()
@@ -74,7 +74,7 @@
break
return .
-/datum/recipe/proc/check_items(var/obj/container as obj)
+/datum/recipe/proc/check_items(obj/container)
. = 1
if(items && items.len)
var/list/checklist = list()
@@ -96,7 +96,7 @@
return .
//general version
-/datum/recipe/proc/make(var/obj/container as obj)
+/datum/recipe/proc/make(obj/container)
var/obj/result_obj = new result(container)
for(var/obj/O in (container.contents-result_obj))
O.reagents.trans_to(result_obj, O.reagents.total_volume)
@@ -106,7 +106,7 @@
return result_obj
// food-related
-/datum/recipe/proc/make_food(var/obj/container as obj)
+/datum/recipe/proc/make_food(obj/container)
var/obj/result_obj = new result(container)
for(var/obj/O in (container.contents-result_obj))
if(O.reagents)
@@ -118,7 +118,7 @@
score_meals++
return result_obj
-/proc/select_recipe(var/list/datum/recipe/avaiable_recipes, var/obj/obj as obj, var/exact = 1 as num)
+/proc/select_recipe(list/datum/recipe/avaiable_recipes, obj/obj, exact = 1)
if(!exact)
exact = -1
var/list/datum/recipe/possible_recipes = new
diff --git a/code/datums/spells/cluwne.dm b/code/datums/spells/cluwne.dm
index d4d3b383f9d..fe0e02bda6d 100644
--- a/code/datums/spells/cluwne.dm
+++ b/code/datums/spells/cluwne.dm
@@ -16,7 +16,7 @@
adjustBrainLoss(80)
nutrition = 9000
overeatduration = 9000
- confused = 30
+ Confused(30)
if(mind)
mind.assigned_role = "Cluwne"
@@ -44,8 +44,8 @@
adjustBrainLoss(-120)
nutrition = NUTRITION_LEVEL_STARVING
overeatduration = 0
- confused = 0
- jitteriness = 0
+ SetConfused(0)
+ SetJitter(0)
if(mind)
mind.assigned_role = "Lawyer"
diff --git a/code/datums/spells/inflict_handler.dm b/code/datums/spells/inflict_handler.dm
index 9ddac0b0920..1eed65bbed4 100644
--- a/code/datums/spells/inflict_handler.dm
+++ b/code/datums/spells/inflict_handler.dm
@@ -50,8 +50,8 @@
target.Paralyse(amt_paralysis)
target.Stun(amt_stunned)
- target.eye_blind += amt_eye_blind
- target.eye_blurry += amt_eye_blurry
+ target.AdjustEyeBlind(amt_eye_blind)
+ target.AdjustEyeBlurry(amt_eye_blurry)
//summoning
if(summon_type)
- new summon_type(target.loc, target)
\ No newline at end of file
+ new summon_type(target.loc, target)
diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm
index 73c653369eb..7a8f05e08fc 100644
--- a/code/datums/supplypacks.dm
+++ b/code/datums/supplypacks.dm
@@ -581,7 +581,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/obj/item/clothing/head/helmet/space,
/obj/item/clothing/head/helmet/space,
/obj/item/clothing/mask/breath,
- /obj/item/clothing/mask/breath,)
+ /obj/item/clothing/mask/breath)
cost = 30
containertype = /obj/structure/closet/crate/secure
containername = "space suit crate"
@@ -607,9 +607,8 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
name = "Thermo-Electric Generator Crate"
contains = list(
/obj/machinery/power/generator,
- /obj/machinery/atmospherics/binary/circulator,
- /obj/machinery/atmospherics/binary/circulator
- )
+ /obj/item/pipe/circulator,
+ /obj/item/pipe/circulator)
cost = 25
containertype = /obj/structure/closet/crate/secure
containername = "thermo-electric generator crate"
diff --git a/code/defines/procs/announce.dm b/code/defines/procs/announce.dm
index 31e5903c247..b22718006e4 100644
--- a/code/defines/procs/announce.dm
+++ b/code/defines/procs/announce.dm
@@ -96,7 +96,7 @@
for(var/obj/item/device/radio/R in global_radios)
receivers |= R.send_announcement()
for(var/mob/M in receivers)
- if(!istype(M) || !M.client || M.stat || isdeaf(M))
+ if(!istype(M) || !M.client || M.stat || !M.can_hear())
receivers -= M
continue
if(!M.say_understands(null, message_language))
diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm
index 40814a72c78..63c42687b67 100644
--- a/code/game/dna/dna_modifier.dm
+++ b/code/game/dna/dna_modifier.dm
@@ -144,7 +144,7 @@
if(usr.stat != 0)
return
- if(usr.restrained() || usr.stat || usr.weakened || usr.stunned || usr.paralysis || usr.resting) //are you cuffed, dying, lying, stunned or other
+ if(usr.incapacitated()) //are you cuffed, dying, lying, stunned or other
return
if(!ishuman(usr)) //Make sure they're a mob that has dna
to_chat(usr, "Try as you might, you can not climb up into the [src].")
@@ -169,7 +169,7 @@
return
if(O.loc == user) //no you can't pull things out of your ass
return
- if(user.restrained() || user.stat || user.weakened || user.stunned || user.paralysis || user.resting) //are you cuffed, dying, lying, stunned or other
+ if(user.incapacitated()) //are you cuffed, dying, lying, stunned or other
return
if(O.anchored || get_dist(user, src) > 1 || get_dist(user, O) > 1 || user.contents.Find(src)) // is the mob anchored, too far away from you, or are you too far away from the source
return
@@ -973,4 +973,4 @@
return 1
-/////////////////////////// DNA MACHINES
\ No newline at end of file
+/////////////////////////// DNA MACHINES
diff --git a/code/game/dna/genes/disabilities.dm b/code/game/dna/genes/disabilities.dm
index a30d160fd92..4cfa6f45750 100644
--- a/code/game/dna/genes/disabilities.dm
+++ b/code/game/dna/genes/disabilities.dm
@@ -24,7 +24,7 @@
/datum/dna/gene/disability/can_activate(var/mob/M,var/flags)
return 1 // Always set!
-/datum/dna/gene/disability/activate(var/mob/M, var/connected, var/flags)
+/datum/dna/gene/disability/activate(var/mob/living/M, var/connected, var/flags)
..()
if(mutation && !(mutation in M.mutations))
M.mutations.Add(mutation)
@@ -35,7 +35,7 @@
else
testing("[name] has no activation message.")
-/datum/dna/gene/disability/deactivate(var/mob/M, var/connected, var/flags)
+/datum/dna/gene/disability/deactivate(var/mob/living/M, var/connected, var/flags)
..()
if(mutation && (mutation in M.mutations))
M.mutations.Remove(mutation)
@@ -127,7 +127,7 @@
/datum/dna/gene/disability/deaf/activate(var/mob/M, var/connected, var/flags)
..(M,connected,flags)
- M.ear_deaf = 1
+ M.EarDeaf(1)
/datum/dna/gene/disability/nearsighted
name="Nearsightedness"
diff --git a/code/game/gamemodes/changeling/powers/headcrab.dm b/code/game/gamemodes/changeling/powers/headcrab.dm
index 07ae44d9a9a..4adbc39e7fc 100644
--- a/code/game/gamemodes/changeling/powers/headcrab.dm
+++ b/code/game/gamemodes/changeling/powers/headcrab.dm
@@ -17,11 +17,11 @@
for(var/mob/living/carbon/human/H in range(2,user))
to_chat(H, "You are blinded by a shower of blood!")
H.Stun(1)
- H.eye_blurry = max(20, H.eye_blurry)
+ H.EyeBlurry(20)
var/obj/item/organ/internal/eyes/E = H.get_int_organ(/obj/item/organ/internal/eyes)
if(istype(E))
E.damage = max(E.damage+5, 0)
- H.confused += 3
+ H.AdjustConfused(3)
for(var/mob/living/silicon/S in range(2,user))
to_chat(S, "Your sensors are disabled by a shower of blood!")
S.Weaken(3)
@@ -37,4 +37,4 @@
to_chat(crab, "You burst out of the remains of your former body in a shower of gore!")
user.gib()
feedback_add_details("changeling_powers","LR")
- return 1
\ No newline at end of file
+ return 1
diff --git a/code/game/gamemodes/changeling/powers/revive.dm b/code/game/gamemodes/changeling/powers/revive.dm
index b6692817650..2585287528c 100644
--- a/code/game/gamemodes/changeling/powers/revive.dm
+++ b/code/game/gamemodes/changeling/powers/revive.dm
@@ -17,10 +17,14 @@
user.SetStunned(0)
user.SetWeakened(0)
user.radiation = 0
- user.eye_blind = 0
- user.eye_blurry = 0
- user.setEarDamage(0,0)
+ user.SetEyeBlind(0)
+ user.SetEyeBlurry(0)
+ user.SetEarDamage(0)
+ user.SetEarDeaf(0)
user.heal_overall_damage(user.getBruteLoss(), user.getFireLoss())
+ user.CureBlind()
+ user.CureDeaf()
+ user.CureNearsighted()
user.reagents.clear_reagents()
user.germ_level = 0
user.next_pain_time = 0
diff --git a/code/game/gamemodes/changeling/powers/shriek.dm b/code/game/gamemodes/changeling/powers/shriek.dm
index 7babc2a5a62..5185b61e508 100644
--- a/code/game/gamemodes/changeling/powers/shriek.dm
+++ b/code/game/gamemodes/changeling/powers/shriek.dm
@@ -11,8 +11,8 @@
for(var/mob/living/M in get_mobs_in_view(4, user))
if(iscarbon(M))
if(!M.mind || !M.mind.changeling)
- M.adjustEarDamage(0, 30)
- M.confused += 20
+ M.AdjustEarDeaf(30)
+ M.AdjustConfused(20)
M.Jitter(50)
else
M << sound('sound/effects/screech.ogg')
@@ -41,5 +41,3 @@
L.broken()
empulse(get_turf(user), 2, 4, 1)
return 1
-
-
diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm
index f4aa6f3d8f2..0df371009a8 100644
--- a/code/game/gamemodes/changeling/powers/tiny_prick.dm
+++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm
@@ -153,7 +153,7 @@ obj/effect/proc_holder/changeling/sting/mute
/obj/effect/proc_holder/changeling/sting/mute/sting_action(var/mob/user, var/mob/living/carbon/target)
add_logs(user, target, "stung", object="mute sting")
- target.silent += 30
+ target.AdjustSilence(30)
feedback_add_details("changeling_powers","MS")
return 1
@@ -165,12 +165,12 @@ obj/effect/proc_holder/changeling/sting/blind
chemical_cost = 25
dna_cost = 1
-/obj/effect/proc_holder/changeling/sting/blind/sting_action(var/mob/user, var/mob/target)
+/obj/effect/proc_holder/changeling/sting/blind/sting_action(var/mob/living/user, var/mob/living/target)
add_logs(user, target, "stung", object="blind sting")
to_chat(target, "Your eyes burn horrifically!")
- target.disabilities |= NEARSIGHTED
- target.eye_blind = 20
- target.eye_blurry = 40
+ target.BecomeNearsighted()
+ target.EyeBlind(20)
+ target.EyeBlurry(40)
feedback_add_details("changeling_powers","BS")
return 1
@@ -186,7 +186,7 @@ obj/effect/proc_holder/changeling/sting/LSD
add_logs(user, target, "stung", object="LSD sting")
spawn(rand(300,600))
if(target)
- target.hallucination = max(400, target.hallucination)
+ target.Hallucinate(400)
feedback_add_details("changeling_powers","HS")
return 1
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index ca96b4f869f..20133d972c8 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -840,7 +840,7 @@ var/list/sacrificed = list()
var/obj/item/weapon/nullrod/N = locate() in C
if(N)
continue
- C.adjustEarDamage(0,50)
+ C.AdjustEarDeaf(50)
C.show_message("\red The world around you suddenly becomes quiet.", 3)
affected++
if(prob(1))
@@ -859,7 +859,7 @@ var/list/sacrificed = list()
var/obj/item/weapon/nullrod/N = locate() in C
if(N)
continue
- C.adjustEarDamage(0,30)
+ C.AdjustEarDeaf(30)
//talismans is weaker.
C.show_message("\red The world around you suddenly becomes quiet.", 3)
affected++
@@ -880,12 +880,12 @@ var/list/sacrificed = list()
var/obj/item/weapon/nullrod/N = locate() in C
if(N)
continue
- C.eye_blurry += 50
- C.eye_blind += 20
+ C.AdjustEyeBlurry(50)
+ C.AdjustEyeBlind(20)
if(prob(5))
- C.disabilities |= NEARSIGHTED
+ C.BecomeNearsighted()
if(prob(10))
- C.disabilities |= BLIND
+ C.BecomeBlind()
C.show_message("\red Suddenly you see red flash that blinds you.", 3)
affected++
if(affected)
@@ -902,8 +902,8 @@ var/list/sacrificed = list()
var/obj/item/weapon/nullrod/N = locate() in C
if(N)
continue
- C.eye_blurry += 30
- C.eye_blind += 10
+ C.AdjustEyeBlurry(30)
+ C.AdjustEyeBlind(10)
//talismans is weaker.
affected++
C.show_message("\red You feel a sharp pain in your eyes, and the world disappears into darkness..", 3)
@@ -1016,7 +1016,7 @@ var/list/sacrificed = list()
var/mob/living/carbon/C = T
C.flash_eyes()
if(!(HULK in C.mutations))
- C.silent += 15
+ C.AdjustSilence(15)
C.Weaken(10)
C.Stun(10)
return
diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
index 4d98876ccd6..29f217b44bc 100644
--- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
+++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
@@ -466,7 +466,7 @@ Congratulations! You are now trained for xenobiology research!"}
L.Sleeping(60)
add_logs(user, L, "put to sleep")
else
- L.drowsyness += 1
+ L.AdjustDrowsy(1)
to_chat(user, "Sleep inducement works fully only on stunned specimens! ")
L.visible_message("[user] tried to induce sleep in [L] with [src]!", \
"You suddenly feel drowsy!")
diff --git a/code/game/gamemodes/miniantags/abduction/gland.dm b/code/game/gamemodes/miniantags/abduction/gland.dm
index 8a3fbd8ff60..b59f1fd8454 100644
--- a/code/game/gamemodes/miniantags/abduction/gland.dm
+++ b/code/game/gamemodes/miniantags/abduction/gland.dm
@@ -98,7 +98,7 @@
if(H == owner)
continue
to_chat(H, "You hear a buzz in your head.")
- H.confused += 20
+ H.AdjustConfused(20)
/obj/item/organ/internal/gland/pop
origin_tech = "materials=4;biotech=6;abductor=3"
diff --git a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
index 26fb00b42a8..0f9173c31ea 100644
--- a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
+++ b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
@@ -253,7 +253,7 @@
to_chat(human, "You suddenly feel [pick("sick and tired", "tired and confused", "nauseated", "dizzy")].")
human.adjustStaminaLoss(stamdamage)
human.adjustToxLoss(toxdamage)
- human.confused = min(human.confused+confusion, maxconfusion)
+ human.AdjustConfused(confusion, bound_lower = 0, bound_upper = maxconfusion)
new/obj/effect/overlay/temp/revenant(human.loc)
if(!istype(T, /turf/simulated/shuttle) && !istype(T, /turf/simulated/wall/rust) && !istype(T, /turf/simulated/wall/r_wall) && istype(T, /turf/simulated/wall) && prob(15))
new/obj/effect/overlay/temp/revenant(T)
@@ -317,4 +317,4 @@
playsound(S, 'sound/machines/warning-buzzer.ogg', 50, 1)
new/obj/effect/overlay/temp/revenant(S.loc)
S.spark_system.start()
- S.emp_act(1)
\ No newline at end of file
+ S.emp_act(1)
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index 25ad0d234da..43892b6c474 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -150,16 +150,6 @@ proc/issyndicate(mob/living/M as mob)
var/hair_c = pick("#8B4513","#000000","#FF4500","#FFD700") // Brown, black, red, blonde
var/eye_c = pick("#000000","#8B4513","1E90FF") // Black, brown, blue
var/skin_tone = pick(-50, -30, -10, 0, 0, 0, 10) // Caucasian/black
- var/hair_style = "Bald"
- var/facial_hair_style = "Shaved"
- if(M.gender == MALE)
- hair_style = pick(hair_styles_male_list)
- facial_hair_style = pick(facial_hair_styles_list)
- else
- hair_style = pick(hair_styles_female_list)
- if(prob(5))
- facial_hair_style = pick(facial_hair_styles_list)
-
head_organ.r_facial = color2R(hair_c)
head_organ.g_facial = color2G(hair_c)
head_organ.b_facial = color2B(hair_c)
@@ -168,9 +158,11 @@ proc/issyndicate(mob/living/M as mob)
head_organ.b_hair = color2B(hair_c)
M.change_eye_color(color2R(eye_c), color2G(eye_c), color2B(eye_c))
M.s_tone = skin_tone
- head_organ.h_style = hair_style
- head_organ.f_style = facial_hair_style
+ head_organ.h_style = random_hair_style(M.gender, head_organ.species.name)
+ head_organ.f_style = random_facial_hair_style(M.gender, head_organ.species.name)
M.body_accessory = null
+ M.regenerate_icons()
+ M.update_body()
/datum/game_mode/proc/prepare_syndicate_leader(var/datum/mind/synd_mind, var/nuke_code)
var/leader_title = pick("Czar", "Boss", "Commander", "Chief", "Kingpin", "Director", "Overlord")
diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm
index 83846818091..461fe0e4ca7 100644
--- a/code/game/gamemodes/revolution/revolution.dm
+++ b/code/game/gamemodes/revolution/revolution.dm
@@ -241,7 +241,7 @@
revolutionaries += rev_mind
if(iscarbon(rev_mind.current))
var/mob/living/carbon/carbon_mob = rev_mind.current
- carbon_mob.silent = max(carbon_mob.silent, 5)
+ carbon_mob.Silence(5)
carbon_mob.flash_eyes(1, 1)
rev_mind.current.Stun(5)
to_chat(rev_mind.current, " You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!")
diff --git a/code/game/gamemodes/shadowling/shadowling_abilities.dm b/code/game/gamemodes/shadowling/shadowling_abilities.dm
index 32ac14916d0..8c67e8a807d 100644
--- a/code/game/gamemodes/shadowling/shadowling_abilities.dm
+++ b/code/game/gamemodes/shadowling/shadowling_abilities.dm
@@ -46,7 +46,7 @@
else //Only alludes to the shadowling if the target is close by
to_chat(target, "Red lights suddenly dance in your vision, and you are mesmerized by the heavenly lights...")
target.Stun(10)
- M.silent += 10
+ M.AdjustSilence(10)
/obj/effect/proc_holder/spell/targeted/lesser_glare
@@ -79,7 +79,7 @@
else
to_chat(target, "Red lights suddenly dance in your vision, and you are mesmerized by their heavenly beauty...")
target.Stun(3) //Roughly 30% as long as the normal one
- M.silent += 3
+ M.AdjustSilence(3)
/obj/effect/proc_holder/spell/aoe_turf/veil
@@ -519,7 +519,7 @@
/datum/reagent/shadowling_blindness_smoke/on_mob_life(mob/living/M)
if(!is_shadow_or_thrall(M))
to_chat(M, "You breathe in the black smoke, and your eyes burn horribly!")
- M.eye_blind = 5
+ M.EyeBlind(5)
if(prob(25))
M.visible_message("[M] claws at their eyes!")
M.Stun(3)
@@ -556,8 +556,8 @@
if(iscarbon(target))
var/mob/living/carbon/M = target
to_chat(M, "A spike of pain drives into your head and scrambles your thoughts!")
- M.confused += 10
- M.setEarDamage(M.ear_damage + 3)
+ M.AdjustConfused(10)
+ M.AdjustEarDamage(3)
else if(issilicon(target))
var/mob/living/silicon/S = target
to_chat(S, "ERROR $!(@ ERROR )#^! SENSORY OVERLOAD \[$(!@#")
diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm
index f8e1575efc1..92a1a3dfa19 100644
--- a/code/game/gamemodes/vampire/vampire_powers.dm
+++ b/code/game/gamemodes/vampire/vampire_powers.dm
@@ -259,8 +259,8 @@
continue
to_chat(C, "You hear a ear piercing shriek and your senses dull!")
C.Weaken(4)
- C.adjustEarDamage(0,20)
- C.stuttering = 20
+ C.AdjustEarDeaf(20)
+ C.Stuttering(20)
C.Stun(4)
C.Jitter(150)
for(var/obj/structure/window/W in view(4))
diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm
index 34886dde2e0..689fb350b0d 100644
--- a/code/game/gamemodes/wizard/artefact.dm
+++ b/code/game/gamemodes/wizard/artefact.dm
@@ -782,7 +782,7 @@ var/global/list/multiverse = list()
else if(istype(I,/obj/item/weapon/bikehorn))
to_chat(target, "HONK")
target << 'sound/items/AirHorn.ogg'
- target.adjustEarDamage(0,3)
+ target.AdjustEarDeaf(3)
GiveHint(target)
cooldown = world.time +cooldown_time
return
diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm
index 08a580923f4..4c06f84d7cd 100644
--- a/code/game/gamemodes/wizard/spellbook.dm
+++ b/code/game/gamemodes/wizard/spellbook.dm
@@ -747,7 +747,7 @@
/obj/item/weapon/spellbook/oneuse/blind/recoil(mob/user as mob)
..()
to_chat(user, "You go blind!")
- user.eye_blind = 10
+ user.EyeBlind(10)
/obj/item/weapon/spellbook/oneuse/mindswap
spell = /obj/effect/proc_holder/spell/targeted/mind_transfer
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index 60e650691e5..fb49e6a5970 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -546,7 +546,7 @@
if(panel_open)
to_chat(usr, "Close the maintenance panel first.")
return
- if(usr.restrained() || usr.stat || usr.weakened || usr.stunned || usr.paralysis || usr.resting) //are you cuffed, dying, lying, stunned or other
+ if(usr.incapacitated()) //are you cuffed, dying, lying, stunned or other
return
for(var/mob/living/carbon/slime/M in range(1,usr))
if(M.Victim == usr)
@@ -590,4 +590,4 @@
component_parts += new /obj/item/stack/cable_coil(null, 1)
RefreshParts()
-#undef ADDICTION_SPEEDUP_TIME
\ No newline at end of file
+#undef ADDICTION_SPEEDUP_TIME
diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index 65a1730bacd..5be99b2ab1c 100644
--- a/code/game/machinery/computer/arcade.dm
+++ b/code/game/machinery/computer/arcade.dm
@@ -448,7 +448,7 @@
if(ORION_TRAIL_RAIDERS)
if(prob(50))
to_chat(usr, "You hear battle shouts. The tramping of boots on cold metal. Screams of agony. The rush of venting air. Are you going insane?")
- M.hallucination += 30
+ M.AdjustHallucinate(30)
else
to_chat(usr, "Something strikes you from behind! It hurts like hell and feel like a blunt weapon, but nothing is there...")
M.take_organ_damage(30)
diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm
index 0a84ee81821..f1d7149f9fa 100644
--- a/code/game/machinery/computer/camera_advanced.dm
+++ b/code/game/machinery/computer/camera_advanced.dm
@@ -20,7 +20,7 @@
jump_action.Grant(user)
/obj/machinery/computer/camera_advanced/check_eye(mob/user)
- if((stat & (NOPOWER|BROKEN)) || !Adjacent(user) || user.eye_blind || user.incapacitated())
+ if((stat & (NOPOWER|BROKEN)) || !Adjacent(user) || !user.can_see() || user.incapacitated())
user.unset_machine()
return 0
return 1
@@ -167,4 +167,4 @@
var/camera = input("Choose which camera you want to view", "Cameras") as null|anything in T
var/obj/machinery/camera/final = T[camera]
if(final)
- remote_eye.setLoc(get_turf(final))
\ No newline at end of file
+ remote_eye.setLoc(get_turf(final))
diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm
index 6dd6182c930..a46f6a97b50 100644
--- a/code/game/machinery/cryo.dm
+++ b/code/game/machinery/cryo.dm
@@ -80,10 +80,10 @@
beaker = null
return ..()
-/obj/machinery/atmospherics/unary/cryo_cell/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
+/obj/machinery/atmospherics/unary/cryo_cell/MouseDrop_T(atom/movable/O as mob|obj, mob/living/user as mob)
if(O.loc == user) //no you can't pull things out of your ass
return
- if(user.restrained() || user.stat || user.weakened || user.stunned || user.paralysis || user.resting) //are you cuffed, dying, lying, stunned or other
+ if(user.incapacitated()) //are you cuffed, dying, lying, stunned or other
return
if(get_dist(user, src) > 1 || get_dist(user, O) > 1 || user.contents.Find(src)) // is the mob anchored, too far away from you, or are you too far away from the source
return
@@ -371,7 +371,7 @@
occupant.bodytemperature += 2*(air_contents.temperature - occupant.bodytemperature)*current_heat_capacity/(current_heat_capacity + air_contents.heat_capacity())
occupant.bodytemperature = max(occupant.bodytemperature, air_contents.temperature) // this is so ugly i'm sorry for doing it i'll fix it later i promise
if(occupant.bodytemperature < T0C)
- occupant.sleeping = max(5/efficiency, (1/occupant.bodytemperature)*2000/efficiency)
+ occupant.Sleeping(max(5/efficiency, (1/occupant.bodytemperature)*2000/efficiency))
occupant.Paralyse(max(5/efficiency, (1/occupant.bodytemperature)*3000/efficiency))
if(air_contents.oxygen > 2)
if(occupant.getOxyLoss()) occupant.adjustOxyLoss(-1)
@@ -469,9 +469,9 @@
if(M.Victim == usr)
to_chat(usr, "You're too busy getting your life sucked out of you.")
return
- if(usr.stat != 0 || stat & (NOPOWER|BROKEN))
+ if(usr.stat != CONSCIOUS || stat & (NOPOWER|BROKEN))
return
- if(usr.restrained() || usr.stat || usr.weakened || usr.stunned || usr.paralysis || usr.resting) //are you cuffed, dying, lying, stunned or other
+ if(usr.incapacitated()) //are you cuffed, dying, lying, stunned or other
return
put_mob(usr)
return
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index 9ffec3cb02c..4c462b5a05c 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -485,7 +485,7 @@
if(O.loc == user) //no you can't pull things out of your ass
return
- if(user.restrained() || user.stat || user.weakened || user.stunned || user.paralysis || user.resting) //are you cuffed, dying, lying, stunned or other
+ if(user.incapacitated()) //are you cuffed, dying, lying, stunned or other
return
if(get_dist(user, src) > 1 || get_dist(user, O) > 1 || user.contents.Find(src)) // is the mob anchored, too far away from you, or are you too far away from the source
return
diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm
index afe79ca48e3..bf2eedeaf23 100644
--- a/code/game/machinery/pipe/construction.dm
+++ b/code/game/machinery/pipe/construction.dm
@@ -37,6 +37,7 @@
#define PIPE_DP_VENT 36
#define PIPE_PASV_VENT 37
#define PIPE_DTVALVE 38
+#define PIPE_CIRCULATOR 39
/obj/item/pipe
name = "pipe"
@@ -150,10 +151,16 @@
src.pipe_type = PIPE_OMNI_MIXER
else if(istype(make_from, /obj/machinery/atmospherics/omni/filter))
src.pipe_type = PIPE_OMNI_FILTER
+ else if(istype(make_from, /obj/machinery/atmospherics/binary/circulator))
+ src.pipe_type = PIPE_CIRCULATOR
var/obj/machinery/atmospherics/trinary/triP = make_from
if(istype(triP) && triP.flipped)
src.flipped = 1
+
+ var/obj/machinery/atmospherics/binary/circulator/circP = make_from
+ if(istype(circP) && circP.side == circP.CIRC_RIGHT)
+ src.flipped = 1
else
src.pipe_type = pipe_type
@@ -214,6 +221,7 @@
"dual-port vent", \
"passive vent", \
"digital t-valve", \
+ "circulator/heat exchanger", \
)
name = nlist[pipe_type+1] + " fitting"
var/list/islist = list( \
@@ -256,11 +264,15 @@
"dual-port vent", \
"passive vent", \
"dtvalve", \
+ "circ", \
)
icon_state = islist[pipe_type + 1]
var/obj/machinery/atmospherics/trinary/triP = make_from
if(istype(triP) && triP.flipped)
icon_state = "m_[icon_state]"
+ var/obj/machinery/atmospherics/binary/circulator/circP = make_from
+ if(istype(circP) && circP.side == circP.CIRC_RIGHT)
+ icon_state = "m_[icon_state]"
// called by turf to know if should treat as bent or not on placement
/obj/item/pipe/proc/is_bent_pipe()
@@ -280,6 +292,10 @@
if( usr.stat || usr.restrained() )
return
+
+ if(pipe_type == PIPE_CIRCULATOR)
+ flip()
+ return
src.dir = turn(src.dir, -90)
@@ -295,7 +311,7 @@
if(usr.stat || usr.restrained())
return
- if(pipe_type in list(PIPE_GAS_FILTER, PIPE_GAS_MIXER, PIPE_TVALVE, PIPE_DTVALVE))
+ if(pipe_type in list(PIPE_GAS_FILTER, PIPE_GAS_MIXER, PIPE_TVALVE, PIPE_DTVALVE, PIPE_CIRCULATOR))
if(flipped)
icon_state = copytext(icon_state,3)
else
@@ -529,6 +545,14 @@
if(pipename)
P.name = pipename
P.construction(unflip(dir), pipe_dir, color)
+
+ if(PIPE_CIRCULATOR) //circulator
+ var/obj/machinery/atmospherics/binary/circulator/C = new(src.loc)
+ if(flipped)
+ C.side = C.CIRC_RIGHT
+ if(pipename)
+ C.name = pipename
+ C.construction(C.dir, C.initialize_directions, color)
if(PIPE_SCRUBBER) //scrubber
var/obj/machinery/atmospherics/unary/vent_scrubber/S = new(src.loc)
@@ -682,3 +706,4 @@
#undef PIPE_DP_VENT
#undef PIPE_PASV_VENT
#undef PIPE_DTVALVE
+#undef PIPE_CIRCULATOR
diff --git a/code/game/machinery/poolcontroller.dm b/code/game/machinery/poolcontroller.dm
index d8f23599f74..452408ccdaa 100644
--- a/code/game/machinery/poolcontroller.dm
+++ b/code/game/machinery/poolcontroller.dm
@@ -104,11 +104,11 @@
return
if(drownee.stat) //Mob is in critical.
- drownee.losebreath -= 3 //You're gonna die here.
+ drownee.AdjustLoseBreath(3, bound_lower = 0, bound_upper = 20)
add_logs(src, drownee, "drowned", null, null, 0) //log it to their VV, but don't spam the admins' chats with the logs
drownee.visible_message("\The [drownee] appears to be drowning!","You're quickly drowning!") //inform them that they are fucked.
else
- drownee.losebreath -= 2 //For every time you drown, you miss 2 breath attempts. Hope you catch on quick!
+ drownee.AdjustLoseBreath(2, bound_lower = 0, bound_upper = 20) //For every time you drown, you miss 2 breath attempts. Hope you catch on quick!
add_logs(src, drownee, "drowned", null, null, 0) //log it to their VV, but don't spam the admins' chats with the logs
if(prob(35)) //35% chance to tell them what is going on. They should probably figure it out before then.
drownee.visible_message("\The [drownee] flails, almost like they are drowning!","You're lacking air!") //*gasp* *gasp* *gasp* *gasp* *gasp*
diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm
index 68b2c83059e..fedb792c37d 100644
--- a/code/game/mecha/equipment/weapons/weapons.dm
+++ b/code/game/mecha/equipment/weapons/weapons.dm
@@ -164,9 +164,9 @@
if(istype(H.l_ear, /obj/item/clothing/ears/earmuffs) || istype(H.r_ear, /obj/item/clothing/ears/earmuffs))
continue
to_chat(M, "HONK")
- M.sleeping = 0
- M.stuttering = 20
- M.adjustEarDamage(0,30)
+ M.SetSleeping(0)
+ M.Stuttering(20)
+ M.AdjustEarDeaf(30)
M.Weaken(3)
if(prob(30))
M.Stun(10)
diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm
index 47b6c1bf57b..90e4c47b276 100644
--- a/code/game/objects/effects/effect_system.dm
+++ b/code/game/objects/effects/effect_system.dm
@@ -583,7 +583,7 @@ steam.start() -- spawns the effect
// if(M.wear_suit, /obj/item/clothing/suit/wizrobe && (M.hat, /obj/item/clothing/head/wizard) && (M.shoes, /obj/item/clothing/shoes/sandal)) // I'll work on it later
else
M.drop_item()
- M:sleeping += 5
+ M.AdjustSleeping(5)
if(M.coughedtime != 1)
M.coughedtime = 1
M.emote("cough")
@@ -600,7 +600,7 @@ steam.start() -- spawns the effect
return
else
M.drop_item()
- M:sleeping += 5
+ M.AdjustSleeping(5)
if(M.coughedtime != 1)
M.coughedtime = 1
M.emote("cough")
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index ecb8590c103..43fd8ad3dc7 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -12,22 +12,6 @@
invisibility = 101
switch(name) //some of these are probably obsolete
- if("shuttle")
- log_runtime(EXCEPTION("Obsolete landmark '[name]' at ([x],[y],[z])"), src)
- qdel(src)
-
- if("airtunnel_stop")
- airtunnel_stop = x
-
- if("airtunnel_start")
- airtunnel_start = x
-
- if("airtunnel_bottom")
- airtunnel_bottom = y
-
- if("monkey")
- monkeystart += loc
- qdel(src)
if("start")
newplayer_start += loc
qdel(src)
@@ -52,29 +36,28 @@
latejoin_cyborg += loc
qdel(src)
- //prisoners
if("prisonwarp")
prisonwarp += loc
qdel(src)
- // if("mazewarp")
- // mazewarp += loc
- if("Holding Facility")
- holdingfacility += loc
- if("tdome1")
- tdome1 += loc
- if("tdome2")
- tdome2 += loc
- if("tdomeadmin")
- tdomeadmin += loc
- if("tdomeobserve")
- tdomeobserve += loc
- if("aroomwarp")
- aroomwarp += loc
-
- //not prisoners
+
if("prisonsecuritywarp")
prisonsecuritywarp += loc
qdel(src)
+
+ if("tdome1")
+ tdome1 += loc
+
+ if("tdome2")
+ tdome2 += loc
+
+ if("tdomeadmin")
+ tdomeadmin += loc
+
+ if("tdomeobserve")
+ tdomeobserve += loc
+
+ if("aroomwarp")
+ aroomwarp += loc
if("blobstart")
blobstart += loc
@@ -96,6 +79,11 @@
if("ERT Director")
ertdirector += loc
+ qdel(src)
+
+ if("Response Team")
+ emergencyresponseteamspawn += loc
+ qdel(src)
landmarks_list += src
return 1
diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm
index 79b09f48835..9d1fb75d25e 100644
--- a/code/game/objects/effects/spiders.dm
+++ b/code/game/objects/effects/spiders.dm
@@ -215,6 +215,7 @@
desc = "Green squishy mess."
icon = 'icons/effects/effects.dmi'
icon_state = "greenshatter"
+ anchored = 1
/obj/effect/spider/cocoon
name = "cocoon"
diff --git a/code/game/objects/explosion.dm b/code/game/objects/explosion.dm
index 32bf9a2fea5..9e36faae088 100644
--- a/code/game/objects/explosion.dm
+++ b/code/game/objects/explosion.dm
@@ -57,10 +57,11 @@
var/close = range(world.view+round(devastation_range,1), epicenter)
// to all distanced mobs play a different sound
- for(var/mob/M in world) if(M.z == epicenter.z) if(!(M in close))
- // check if the mob can hear
- if(M.ear_deaf <= 0 || !M.ear_deaf) if(!istype(M.loc,/turf/space))
- M << 'sound/effects/explosionfar.ogg'
+ for(var/mob/M in world)
+ if(M.z == epicenter.z && !(M in close))
+ // check if the mob can hear
+ if(M.can_hear() && !istype(M.loc,/turf/space))
+ M << 'sound/effects/explosionfar.ogg'
if(heavy_impact_range > 1)
var/datum/effect/system/explosion/E = new/datum/effect/system/explosion()
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 6ea2906c072..b34cc09ca89 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -474,10 +474,10 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
if(!(eyes.status & ORGAN_ROBOT) || !(eyes.status & ORGAN_ASSISTED)) //robot eyes bleeding might be a bit silly
to_chat(M, "Your eyes start to bleed profusely!")
if(prob(50))
- if(M.stat != 2)
+ if(M.stat != DEAD)
to_chat(M, "You drop what you're holding and clutch at your eyes!")
M.drop_item()
- M.eye_blurry += 10
+ M.AdjustEyeBlurry(10)
M.Paralyse(1)
M.Weaken(2)
if(eyes.damage >= eyes.min_broken_damage)
@@ -488,7 +488,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
H.UpdateDamageIcon()
else
M.take_organ_damage(7)
- M.eye_blurry += rand(3,4)
+ M.AdjustEyeBlurry(rand(3,4))
return
/obj/item/clean_blood()
diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm
index a91c4e2ebe3..065392a9222 100644
--- a/code/game/objects/items/crayons.dm
+++ b/code/game/objects/items/crayons.dm
@@ -236,10 +236,10 @@
var/mob/living/carbon/human/C = target
user.visible_message(" [user] sprays [src] into the face of [target]!")
if(C.client)
- C.eye_blurry = max(C.eye_blurry, 3)
- C.eye_blind = max(C.eye_blind, 1)
+ C.EyeBlurry(3)
+ C.EyeBlind(1)
if(C.check_eye_prot() <= 0) // no eye protection? ARGH IT BURNS.
- C.confused = max(C.confused, 3)
+ C.Confused(3)
C.Weaken(3)
C.lip_style = "spray_face"
C.lip_color = colour
@@ -251,4 +251,4 @@
overlays.Cut()
var/image/I = image('icons/obj/crayons.dmi',icon_state = "[capped ? "spraycan_cap_colors" : "spraycan_colors"]")
I.color = colour
- overlays += I
\ No newline at end of file
+ overlays += I
diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm
index 7f2afb179e4..fb617133d83 100644
--- a/code/game/objects/items/devices/camera_bug.dm
+++ b/code/game/objects/items/devices/camera_bug.dm
@@ -55,7 +55,7 @@
interact(user)
/obj/item/device/camera_bug/check_eye(var/mob/user as mob)
- if(user.stat || loc != user || !user.canmove || user.eye_blind || !current)
+ if(user.stat || loc != user || !user.canmove || !user.can_see() || !current)
user.reset_view(null)
user.unset_machine()
return null
diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm
index cec1c106e48..52a9a343e6b 100644
--- a/code/game/objects/items/devices/flash.dm
+++ b/code/game/objects/items/devices/flash.dm
@@ -81,7 +81,7 @@
if(M.weakeyes)
M.Weaken(3) //quick weaken bypasses eye protection but has no eye flash
if(M.flash_eyes(1, 1))
- M.confused += power
+ M.AdjustConfused(power)
terrible_conversion_proc(M, user)
M.Stun(1)
visible_message("[user] blinds [M] with the flash!")
@@ -96,7 +96,7 @@
to_chat(M, "[user] fails to blind you with the flash!")
else
if(M.flash_eyes())
- M.confused += power
+ M.AdjustConfused(power)
/obj/item/device/flash/attack(mob/living/M, mob/user)
if(!try_use_flash(user))
diff --git a/code/game/objects/items/weapons/garrote.dm b/code/game/objects/items/weapons/garrote.dm
index e6b0ff92c32..22b589c7517 100644
--- a/code/game/objects/items/weapons/garrote.dm
+++ b/code/game/objects/items/weapons/garrote.dm
@@ -91,7 +91,7 @@
G.state = GRAB_NECK
G.hud.icon_state = "kill"
G.hud.name = "kill"
- M.silent += 1
+ M.AdjustSilence(1)
garrote_time = world.time + 10
processing_objects.Add(src)
@@ -152,11 +152,11 @@
return
- strangling.silent = max(strangling.silent, 3) // Non-improvised effects
+ strangling.Silence(3) // Non-improvised effects
strangling.apply_damage(4, OXY, "head")
/obj/item/weapon/twohanded/garrote/suicide_act(mob/user)
user.visible_message("[user] is wrapping the [src] around \his neck and pulling the handles! It looks like \he's trying to commit suicide.")
playsound(src.loc, 'sound/weapons/cablecuff.ogg', 15, 1, -1)
- return (OXYLOSS)
\ No newline at end of file
+ return (OXYLOSS)
diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm
index 9562f9442c7..4241c9c5c0c 100644
--- a/code/game/objects/items/weapons/grenades/flashbang.dm
+++ b/code/game/objects/items/weapons/grenades/flashbang.dm
@@ -51,12 +51,13 @@
if(!ear_safety)
M.Stun(max(10/distance, 3))
M.Weaken(max(10/distance, 3))
- M.setEarDamage(M.ear_damage + rand(0, 5), max(M.ear_deaf,15))
+ M.EarDeaf(15)
+ M.AdjustEarDamage(rand(0, 5))
if(M.ear_damage >= 15)
to_chat(M, "Your ears start to ring badly!")
- if(prob(M.ear_damage - 10 + 5))
+ if(prob(M.ear_damage - 5))
to_chat(M, "You can't hear anything!")
- M.disabilities |= DEAF
+ M.BecomeDeaf()
else
if(M.ear_damage >= 5)
to_chat(M, "Your ears start to ring!")
diff --git a/code/game/objects/items/weapons/scissors.dm b/code/game/objects/items/weapons/scissors.dm
index 05a50200e7d..e966f5500e5 100644
--- a/code/game/objects/items/weapons/scissors.dm
+++ b/code/game/objects/items/weapons/scissors.dm
@@ -115,7 +115,7 @@
if(do_after(user, 50, target = H))
playsound(loc, "sound/weapons/bladeslice.ogg", 50, 1, -1)
user.visible_message("[user] abruptly stops cutting [M]'s hair and slices their throat!", "You stop cutting [M]'s hair and slice their throat!") //Just a little off the top.
- H.losebreath += 10 //30 Oxy damage over time
+ H.AdjustLoseBreath(10) //30 Oxy damage over time
H.apply_damage(18, BRUTE, "head", sharp =1, edge =1, used_weapon = "scissors")
var/turf/location = get_turf(H)
if(istype(location, /turf/simulated))
diff --git a/code/game/objects/items/weapons/storage/artistic_toolbox.dm b/code/game/objects/items/weapons/storage/artistic_toolbox.dm
index 81ba661115a..470c273bd69 100644
--- a/code/game/objects/items/weapons/storage/artistic_toolbox.dm
+++ b/code/game/objects/items/weapons/storage/artistic_toolbox.dm
@@ -138,8 +138,8 @@
affected_mob.setStaminaLoss(0)
var/status = CANSTUN | CANWEAKEN | CANPARALYSE
affected_mob.status_flags &= ~status
- affected_mob.dizziness = max(0, affected_mob.dizziness-10)
- affected_mob.drowsyness = max(0, affected_mob.drowsyness-10)
+ affected_mob.AdjustDizzy(-10)
+ affected_mob.AdjustDrowsy(-10)
affected_mob.SetSleeping(0)
stage = 1
switch(progenitor.hunger)
@@ -181,4 +181,4 @@
affected_mob.adjustBruteLoss(5)
if(ismob(progenitor.loc))
- progenitor.hunger++
\ No newline at end of file
+ progenitor.hunger++
diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index 937cc3214a3..ef0cdfc329b 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -116,7 +116,7 @@
if(H.get_item_by_slot(slot_head) == src)
if(H.internal)
return
- H.losebreath += 1
+ H.AdjustLoseBreath(1)
else
storage_slots = 7
processing_objects.Remove(src)
diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm
index 460498a874b..e848eec1aca 100644
--- a/code/game/objects/items/weapons/storage/secure.dm
+++ b/code/game/objects/items/weapons/storage/secure.dm
@@ -27,131 +27,132 @@
max_w_class = 2
max_combined_w_class = 14
- examine(mob/user)
- if(..(user, 1))
- to_chat(user, text("The service panel is [src.open ? "open" : "closed"]."))
+/obj/item/weapon/storage/secure/examine(mob/user)
+ if(..(user, 1))
+ to_chat(user, text("The service panel is [open ? "open" : "closed"]."))
- attackby(obj/item/weapon/W as obj, mob/user as mob, params)
- if(locked)
- if((istype(W, /obj/item/weapon/melee/energy/blade)) && (!src.emagged))
- emag_act(user, W)
+/obj/item/weapon/storage/secure/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
+ if(locked)
+ if((istype(W, /obj/item/weapon/melee/energy/blade)) && (!emagged))
+ emag_act(user, W)
- if(istype(W, /obj/item/weapon/screwdriver))
- if(do_after(user, 20, target = src))
- src.open =! src.open
- user.show_message(text("\blue You [] the service panel.", (src.open ? "open" : "close")))
- return
- if((istype(W, /obj/item/device/multitool)) && (src.open == 1)&& (!src.l_hacking))
- user.show_message(text("\red Now attempting to reset internal memory, please hold."), 1)
- src.l_hacking = 1
- if(do_after(usr, 100, target = src))
- if(prob(40))
- src.l_setshort = 1
- src.l_set = 0
- user.show_message(text("\red Internal memory reset. Please give it a few seconds to reinitialize."), 1)
- sleep(80)
- src.l_setshort = 0
- src.l_hacking = 0
- else
- user.show_message(text("\red Unable to reset internal memory."), 1)
- src.l_hacking = 0
- else src.l_hacking = 0
- return
- //At this point you have exhausted all the special things to do when locked
- // ... but it's still locked.
+ if(istype(W, /obj/item/weapon/screwdriver))
+ if(do_after(user, 20, target = src))
+ open = !open
+ user.show_message("You [open ? "open" : "close"] the service panel.", 1)
return
- // -> storage/attackby() what with handle insertion, etc
- ..()
-
- emag_act(user as mob, weapon as obj)
- if(!emagged)
- emagged = 1
- src.overlays += image('icons/obj/storage.dmi', icon_sparking)
- sleep(6)
- src.overlays = null
- overlays += image('icons/obj/storage.dmi', icon_locking)
- locked = 0
- if(istype(weapon, /obj/item/weapon/melee/energy/blade))
- var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread()
- spark_system.set_up(5, 0, src.loc)
- spark_system.start()
- playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1)
- playsound(src.loc, "sparks", 50, 1)
- to_chat(user, "You slice through the lock on [src].")
- else
- to_chat(user, "You short out the lock on [src].")
- return
-
-
- MouseDrop(over_object, src_location, over_location)
- if(locked)
- src.add_fingerprint(usr)
- return
- ..()
-
-
- attack_self(mob/user as mob)
- user.set_machine(src)
- var/dat = text("[]
\n\nLock Status: []",src, (src.locked ? "LOCKED" : "UNLOCKED"))
- var/message = "Code"
- if((src.l_set == 0) && (!src.emagged) && (!src.l_setshort))
- dat += text("
\n5-DIGIT PASSCODE NOT SET.
ENTER NEW PASSCODE.")
- if(src.emagged)
- dat += text("
\nLOCKING SYSTEM ERROR - 1701")
- if(src.l_setshort)
- dat += text("
\nALERT: MEMORY SYSTEM ERROR - 6040 201")
- message = text("[]", src.code)
- if(!src.locked)
- message = "*****"
- dat += {"
\n>[message]
\n
- 1-
- 2-
- 3
\n
- 4-
- 5-
- 6
\n
- 7-
- 8-
- 9
\n
- R-
- 0-
- E
\n"}
- user << browse(dat, "window=caselock;size=300x280")
-
- Topic(href, href_list)
- ..()
- if((usr.stat || usr.restrained()) || (get_dist(src, usr) > 1))
- return
- if(href_list["type"])
- if(href_list["type"] == "E")
- if((src.l_set == 0) && (length(src.code) == 5) && (!src.l_setshort) && (src.code != "ERROR"))
- src.l_code = src.code
- src.l_set = 1
- else if((src.code == src.l_code) && (src.emagged == 0) && (src.l_set == 1))
- src.locked = 0
- src.overlays = null
- overlays += image('icons/obj/storage.dmi', icon_opened)
- src.code = null
+ if((istype(W, /obj/item/device/multitool)) && (open == 1) && (!l_hacking))
+ user.show_message("Now attempting to reset internal memory, please hold.", 1)
+ l_hacking = 1
+ if(do_after(usr, 100, target = src))
+ if(prob(40))
+ l_setshort = 1
+ l_set = 0
+ user.show_message("Internal memory reset. Please give it a few seconds to reinitialize.", 1)
+ sleep(80)
+ l_setshort = 0
+ l_hacking = 0
else
- src.code = "ERROR"
- else
- if((href_list["type"] == "R") && (src.emagged == 0) && (!src.l_setshort))
- src.locked = 1
- src.overlays = null
- src.code = null
- src.close(usr)
- else
- src.code += text("[]", href_list["type"])
- if(length(src.code) > 5)
- src.code = "ERROR"
- src.add_fingerprint(usr)
- for(var/mob/M in viewers(1, src.loc))
- if((M.client && M.machine == src))
- src.attack_self(M)
- return
+ user.show_message("Unable to reset internal memory.", 1)
+ l_hacking = 0
+ else
+ l_hacking = 0
+ return
+ //At this point you have exhausted all the special things to do when locked
+ // ... but it's still locked.
return
+ return ..()
+
+/obj/item/weapon/storage/secure/emag_act(user as mob, weapon as obj)
+ if(!emagged)
+ emagged = 1
+ overlays += image('icons/obj/storage.dmi', icon_sparking)
+ sleep(6)
+ overlays = null
+ overlays += image('icons/obj/storage.dmi', icon_locking)
+ locked = 0
+ if(istype(weapon, /obj/item/weapon/melee/energy/blade))
+ var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread()
+ spark_system.set_up(5, 0, src.loc)
+ spark_system.start()
+ playsound(loc, 'sound/weapons/blade1.ogg', 50, 1)
+ playsound(loc, "sparks", 50, 1)
+ to_chat(user, "You slice through the lock on [src].")
+ else
+ to_chat(user, "You short out the lock on [src].")
+ return
+
+
+/obj/item/weapon/storage/secure/MouseDrop(over_object, src_location, over_location)
+ if(locked)
+ add_fingerprint(usr)
+ to_chat(usr, "It's locked!")
+ return 0
+ ..()
+
+/obj/item/weapon/storage/secure/attack_self(mob/user as mob)
+ user.set_machine(src)
+ var/dat = text("[]
\n\nLock Status: []", src, (locked ? "LOCKED" : "UNLOCKED"))
+ var/message = "Code"
+ if((l_set == 0) && (!emagged) && (!l_setshort))
+ dat += text("\n5-DIGIT PASSCODE NOT SET.
ENTER NEW PASSCODE.")
+ if(emagged)
+ dat += text("
\nLOCKING SYSTEM ERROR - 1701")
+ if(l_setshort)
+ dat += text("
\nALERT: MEMORY SYSTEM ERROR - 6040 201")
+ message = text("[]", code)
+ if(!locked)
+ message = "*****"
+ dat += {"
\n>[message]
\n
+ 1-
+ 2-
+ 3
\n
+ 4-
+ 5-
+ 6
\n
+ 7-
+ 8-
+ 9
\n
+ R-
+ 0-
+ E
\n"}
+ user << browse(dat, "window=caselock;size=300x280")
+
+/obj/item/weapon/storage/secure/Topic(href, href_list)
+ ..()
+ if(usr.incapacitated() || (get_dist(src, usr) > 1))
+ return
+ if(href_list["type"])
+ if(href_list["type"] == "E")
+ if((l_set == 0) && (length(code) == 5) && (!l_setshort) && (code != "ERROR"))
+ l_code = code
+ l_set = 1
+ else if((code == l_code) && (emagged == 0) && (l_set == 1))
+ locked = 0
+ overlays = null
+ overlays += image('icons/obj/storage.dmi', icon_opened)
+ code = null
+ else
+ code = "ERROR"
+ else
+ if((href_list["type"] == "R") && (emagged == 0) && (!l_setshort))
+ locked = 1
+ overlays = null
+ code = null
+ close(usr)
+ else
+ code += text("[]", href_list["type"])
+ if(length(code) > 5)
+ code = "ERROR"
+ add_fingerprint(usr)
+ for(var/mob/M in viewers(1, loc))
+ if((M.client && M.machine == src))
+ attack_self(M)
+ return
+ return
+
/obj/item/weapon/storage/secure/can_be_inserted(obj/item/W as obj, stop_messages = 0)
if(!locked)
return ..()
@@ -160,8 +161,10 @@
return 0
/obj/item/weapon/storage/secure/hear_talk(mob/living/M as mob, msg)
+ return
/obj/item/weapon/storage/secure/hear_message(mob/living/M as mob, msg)
+ return
// -----------------------------
// Secure Briefcase
@@ -174,7 +177,7 @@
item_state = "sec-case"
flags = CONDUCT
hitsound = "swing_hit"
- force = 8.0
+ force = 8
throw_speed = 2
throw_range = 4
w_class = 4
@@ -182,36 +185,36 @@
max_combined_w_class = 21
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked")
- New()
- ..()
- new /obj/item/weapon/paper(src)
- new /obj/item/weapon/pen(src)
+/obj/item/weapon/storage/secure/briefcase/New()
+ ..()
+ handle_item_insertion(new /obj/item/weapon/paper, 1)
+ handle_item_insertion(new /obj/item/weapon/pen, 1)
- attack_hand(mob/user as mob)
- if((src.loc == user) && (src.locked == 1))
- to_chat(usr, "\red [src] is locked and cannot be opened!")
- else if((src.loc == user) && (!src.locked))
- playsound(src.loc, "rustle", 50, 1, -5)
- if(user.s_active)
- user.s_active.close(user) //Close and re-open
- src.show_to(user)
- else
- ..()
- for(var/mob/M in range(1))
- if(M.s_active == src)
- src.close(M)
- src.orient2hud(user)
- src.add_fingerprint(user)
- return
+/obj/item/weapon/storage/secure/briefcase/attack_hand(mob/user as mob)
+ if((loc == user) && (locked == 1))
+ to_chat(usr, "[src] is locked and cannot be opened!")
+ else if((loc == user) && !locked)
+ playsound(loc, "rustle", 50, 1, -5)
+ if(user.s_active)
+ user.s_active.close(user) //Close and re-open
+ show_to(user)
+ else
+ ..()
+ for(var/mob/M in range(1))
+ if(M.s_active == src)
+ close(M)
+ orient2hud(user)
+ add_fingerprint(user)
+ return
//Syndie variant of Secure Briefcase. Contains space cash, slightly more robust.
/obj/item/weapon/storage/secure/briefcase/syndie
- force = 15.0
+ force = 15
/obj/item/weapon/storage/secure/briefcase/syndie/New()
+ ..()
for(var/i = 0, i < storage_slots - 2, i++)
- new /obj/item/weapon/spacecash/c1000(src)
- return ..()
+ handle_item_insertion(new /obj/item/weapon/spacecash/c1000, 1)
// -----------------------------
// Secure Safe
@@ -224,30 +227,17 @@
icon_opened = "safe0"
icon_locking = "safeb"
icon_sparking = "safespark"
- force = 8.0
+ force = 8
w_class = 5
max_w_class = 8
- anchored = 1.0
+ anchored = 1
density = 0
cant_hold = list("/obj/item/weapon/storage/secure/briefcase")
- New()
- ..()
- new /obj/item/weapon/paper(src)
- new /obj/item/weapon/pen(src)
-
- attack_hand(mob/user as mob)
- return attack_self(user)
-
-// Clown planet WMD storage
-/obj/item/weapon/storage/secure/safe/clown
- name="WMD Storage"
-
-/obj/item/weapon/storage/secure/safe/clown/New()
- for(var/i=0;i<10;i++)
- new /obj/item/weapon/reagent_containers/food/snacks/pie(src)
-
-
-/obj/item/weapon/storage/secure/safe/HoS/New()
+/obj/item/weapon/storage/secure/safe/New()
..()
- //new /obj/item/weapon/storage/lockbox/clusterbang(src) This item is currently broken... and probably shouldnt exist to begin with (even though it's cool)
\ No newline at end of file
+ handle_item_insertion(new /obj/item/weapon/paper, 1)
+ handle_item_insertion(new /obj/item/weapon/pen, 1)
+
+/obj/item/weapon/storage/secure/safe/attack_hand(mob/user as mob)
+ return attack_self(user)
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index b27d3f6e4f8..bbbecf6695d 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -420,8 +420,7 @@
H.lip_style = null //Washes off lipstick
H.lip_color = initial(H.lip_color)
H.regenerate_icons()
- user.drowsyness -= rand(2,3) //Washing your face wakes you up if you're falling asleep
- user.drowsyness = Clamp(user.drowsyness, 0, INFINITY)
+ user.AdjustDrowsy(-rand(2,3)) //Washing your face wakes you up if you're falling asleep
else
user.clean_blood()
@@ -459,4 +458,3 @@
icon_state = "puddle-splash"
..()
icon_state = "puddle"
-
diff --git a/code/game/response_team.dm b/code/game/response_team.dm
index a5b92b17e95..6cf81f70180 100644
--- a/code/game/response_team.dm
+++ b/code/game/response_team.dm
@@ -73,7 +73,6 @@ var/ert_request_answered = 0
return 0
/mob/dead/observer/proc/JoinResponseTeam()
-
if(!send_emergency_team)
to_chat(src, "No emergency response team is currently being sent.")
return 0
@@ -82,35 +81,23 @@ var/ert_request_answered = 0
to_chat(src, "You are jobbanned from the emergency reponse team!")
return 0
- var/player_age_check = check_client_age(src.client, responseteam_age)
+ var/player_age_check = check_client_age(client, responseteam_age)
if(player_age_check && config.use_age_restriction_for_antags)
to_chat(src, "This role is not yet available to you. You need to wait another [player_age_check] days.")
return 0
- if(src.has_enabled_antagHUD == 1 && config.antag_hud_restricted)
+ if(has_enabled_antagHUD == 1 && config.antag_hud_restricted)
to_chat(src, "Upon using the antagHUD you forfeited the ability to join the round.")
return 0
if(response_team_members.len > 6)
to_chat(src, "The emergency response team is already full!")
return 0
-
- for(var/obj/effect/landmark/L in landmarks_list)
- if(L.name == "Response Team")
- L.name = null
- if(!src.client)
- return
- spawn(-1)
- var/client/C = src.client
- var/mob/living/carbon/human/new_commando = C.create_response_team(L.loc)
- qdel(L)
- new_commando.mind.key = src.key
- new_commando.key = src.key
- new_commando.update_icons()
- return 1
+
+ return 1
/proc/trigger_armed_response_team(var/datum/response_team/response_team_type)
-
+ response_team_members = list()
active_team = response_team_type
send_emergency_team = 1
@@ -118,24 +105,41 @@ var/ert_request_answered = 0
if(!ert_candidates.len)
active_team.cannot_send_team()
send_emergency_team = 0
- return
- var/teamsize = 0
+ return 0
+
// Respawnable players get first dibs
- for(var/mob/dead/observer/M in (ert_candidates & respawnable_list))
- teamsize += M.JoinResponseTeam()
+ for(var/mob/dead/observer/M in ert_candidates)
+ if((M in respawnable_list) && M.JoinResponseTeam())
+ response_team_members |= M
// If there's still open slots, non-respawnable players can fill them
for(var/mob/dead/observer/M in (ert_candidates - respawnable_list))
- teamsize += M.JoinResponseTeam()
- send_emergency_team = 0
- if (!teamsize)
+ if(M.JoinResponseTeam())
+ response_team_members |= M
+
+ if(!response_team_members.len)
active_team.cannot_send_team()
- return
- active_team.announce_team()
+ send_emergency_team = 0
+ return 0
-/client/proc/create_response_team(obj/spawn_location)
+ var/index = 1
+ for(var/mob/M in response_team_members)
+ if(index > emergencyresponseteamspawn.len)
+ index = 1
+
+ var/client/C = M.client
+ var/mob/living/carbon/human/new_commando = C.create_response_team(emergencyresponseteamspawn[index])
+ new_commando.mind.key = M.key
+ new_commando.key = M.key
+ new_commando.update_icons()
+ index++
+
+ send_emergency_team = 0
+ active_team.announce_team()
+ return 1
+
+/client/proc/create_response_team(var/turf/spawn_location)
var/mob/living/carbon/human/M = new(null)
var/obj/item/organ/external/head/head_organ = M.get_organ("head")
- response_team_members |= M
var/new_gender = alert(src, "Please select your gender.", "ERT Character Generation", "Male", "Female")
@@ -157,15 +161,6 @@ var/ert_request_answered = 0
var/hair_c = pick("#8B4513","#000000","#FF4500","#FFD700") // Brown, black, red, blonde
var/eye_c = pick("#000000","#8B4513","1E90FF") // Black, brown, blue
var/skin_tone = pick(-50, -30, -10, 0, 0, 0, 10) // Caucasian/black
- var/hair_style = "Bald"
- var/facial_hair_style = "Shaved"
- if(M.gender == MALE)
- hair_style = pick(hair_styles_male_list)
- facial_hair_style = pick(facial_hair_styles_list)
- else
- hair_style = pick(hair_styles_female_list)
- if(prob(5))
- facial_hair_style = pick(facial_hair_styles_list)
head_organ.r_facial = color2R(hair_c)
head_organ.g_facial = color2G(hair_c)
@@ -175,12 +170,14 @@ var/ert_request_answered = 0
head_organ.b_hair = color2B(hair_c)
M.change_eye_color(color2R(eye_c), color2G(eye_c), color2B(eye_c))
M.s_tone = skin_tone
- head_organ.h_style = hair_style
- head_organ.f_style = facial_hair_style
+ head_organ.h_style = random_hair_style(M.gender, head_organ.species.name)
+ head_organ.f_style = random_facial_hair_style(M.gender, head_organ.species.name)
M.real_name = "[pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant First Class", "Master Sergeant", "Sergeant Major")] [pick(last_names)]"
M.name = M.real_name
M.age = rand(23,35)
+ M.regenerate_icons()
+ M.update_body()
//Creates mind stuff.
M.mind = new
@@ -190,7 +187,7 @@ var/ert_request_answered = 0
M.mind.special_role = SPECIAL_ROLE_ERT
if(!(M.mind in ticker.minds))
ticker.minds += M.mind //Adds them to regular mind list.
- M.loc = spawn_location
+ M.forceMove(spawn_location)
active_team.equip_officer(class, M)
diff --git a/code/game/sound.dm b/code/game/sound.dm
index fe5e361f16a..ed5f0d15b4c 100644
--- a/code/game/sound.dm
+++ b/code/game/sound.dm
@@ -40,7 +40,7 @@ var/list/ricochet = list('sound/weapons/effects/ric1.ogg', 'sound/weapons/effect
M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, is_global, S)
/mob/proc/playsound_local(var/turf/turf_source, soundin, vol as num, vary, frequency, falloff, is_global, sound/S)
- if(!src.client || ear_deaf > 0)
+ if(!src.client || !can_hear())
return
if(!S)
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 37ff565f4a3..862eed1b986 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -934,11 +934,11 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
for(var/obj/item/briefcase_item in sec_briefcase)
qdel(briefcase_item)
for(var/i=3, i>0, i--)
- sec_briefcase.contents += new /obj/item/weapon/spacecash/c1000
- sec_briefcase.contents += new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow
- sec_briefcase.contents += new /obj/item/weapon/gun/projectile/revolver/mateba
- sec_briefcase.contents += new /obj/item/ammo_box/a357
- sec_briefcase.contents += new /obj/item/weapon/grenade/plastic/c4
+ sec_briefcase.handle_item_insertion(new /obj/item/weapon/spacecash/c1000, 1)
+ sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow, 1)
+ sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/projectile/revolver/mateba, 1)
+ sec_briefcase.handle_item_insertion(new /obj/item/ammo_box/a357, 1)
+ sec_briefcase.handle_item_insertion(new /obj/item/weapon/grenade/plastic/c4, 1)
// briefcase must be unlocked by setting the code.
M.equip_to_slot_or_del(sec_briefcase, slot_l_hand)
var/obj/item/weapon/implant/dust/DUST = new /obj/item/weapon/implant/dust(M)
diff --git a/code/modules/admin/verbs/freeze.dm b/code/modules/admin/verbs/freeze.dm
index fb93cd3512d..920b24297ad 100644
--- a/code/modules/admin/verbs/freeze.dm
+++ b/code/modules/admin/verbs/freeze.dm
@@ -36,7 +36,7 @@ var/global/list/frozen_mob_list = list()
anchored = 1
frozen = AO
admin_prev_sleeping = sleeping
- sleeping += 20000
+ AdjustSleeping(20000)
if(!(src in frozen_mob_list))
frozen_mob_list += src
@@ -49,7 +49,7 @@ var/global/list/frozen_mob_list = list()
anchored = 0
overlays -= frozen
frozen = null
- sleeping = admin_prev_sleeping
+ SetSleeping(admin_prev_sleeping)
admin_prev_sleeping = null
if(src in frozen_mob_list)
frozen_mob_list -= src
diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm
index 9945079b1a5..4ae3e230762 100644
--- a/code/modules/clothing/glasses/glasses.dm
+++ b/code/modules/clothing/glasses/glasses.dm
@@ -411,11 +411,12 @@
var/mob/living/carbon/human/M = src.loc
to_chat(M, "\red The Optical Thermal Scanner overloads and blinds you!")
if(M.glasses == src)
- M.eye_blind = 3
- M.eye_blurry = 5
- M.disabilities |= NEARSIGHTED
- spawn(100)
- M.disabilities &= ~NEARSIGHTED
+ M.EyeBlind(3)
+ M.EyeBlurry(5)
+ if(!(M.disabilities & NEARSIGHTED))
+ M.BecomeNearsighted()
+ spawn(100)
+ M.CureNearsighted()
..()
/obj/item/clothing/glasses/thermal/syndi //These are now a traitor item, concealed as mesons. -Pete
diff --git a/code/modules/clothing/spacesuits/rig.dm b/code/modules/clothing/spacesuits/rig.dm
index 6fad0961ab4..1c8bd73c47f 100644
--- a/code/modules/clothing/spacesuits/rig.dm
+++ b/code/modules/clothing/spacesuits/rig.dm
@@ -189,15 +189,11 @@
to_chat(H, "You deploy your hardsuit helmet, sealing you off from the world.")
H.update_inv_head()
-/obj/item/clothing/suit/space/rig/attackby(obj/item/W as obj, mob/user as mob, params)
+/obj/item/clothing/suit/space/rig/attackby(obj/item/W, mob/user, params)
if(!isliving(user))
return
- if(istype(src.loc,/mob/living))
- to_chat(user, "How do you propose to modify a hardsuit while it is being worn?")
- return
-
- if(istype(W,/obj/item/weapon/screwdriver))
+ if(istype(W,/obj/item/weapon/screwdriver) && can_modify(user))
if(!helmet)
to_chat(user, "\The [src] does not have a helmet installed.")
else
@@ -213,7 +209,7 @@
boots = null
return
- else if(istype(W,/obj/item/clothing/head/helmet/space))
+ else if(istype(W,/obj/item/clothing/head/helmet/space) && can_modify(user))
if(!attached_helmet)
to_chat(user, "\The [src] does not have a helmet mount.")
return
@@ -226,7 +222,7 @@
src.helmet = W
return
- else if(istype(W,/obj/item/clothing/shoes/magboots))
+ else if(istype(W,/obj/item/clothing/shoes/magboots) && can_modify(user))
if(!attached_boots)
to_chat(user, "\The [src] does not have boot mounts.")
return
@@ -242,6 +238,13 @@
return ..()
..()
+
+/obj/item/clothing/suit/space/rig/proc/can_modify(mob/living/user)
+ if(isliving(loc))
+ to_chat(user, "You can not modify the hardsuit while it is being worn.")
+ return 0
+
+ return 1
//Engineering rig
/obj/item/clothing/head/helmet/space/rig/engineering
diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm
index c7126795143..18a0ffc9729 100644
--- a/code/modules/customitems/item_defines.dm
+++ b/code/modules/customitems/item_defines.dm
@@ -336,7 +336,7 @@
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
if(H.head == src)
- H.slurring = max(3, H.slurring) //always slur
+ H.Slur(3) //always slur
/obj/item/clothing/head/beret/fluff/linda //Epic_Charger: Linda Clark
name = "Green beret"
@@ -433,6 +433,15 @@
item_state = "castile_dress"
item_color = "castile_dress"
+/obj/item/clothing/under/fluff/elishirt // FlattestGuitar9: Eli Randolph
+ name = "casual dress shirt"
+ desc = "A soft, white dress shirt paired up with black suit pants. The set looks comfortable."
+ icon = 'icons/obj/custom_items.dmi'
+ icon_state = "elishirt"
+ item_state = "elishirt"
+ item_color = "elishirt"
+ displays_id = 0
+
/obj/item/clothing/under/psysuit/fluff/isaca_sirius_1 // Xilia: Isaca Sirius
name = "Isaca's suit"
desc = "Black, comfortable and nicely fitting suit. Made not to hinder the wearer in any way. Made of some exotic fabric. And some strange glowing jewel at the waist. Name labels says; Property of Isaca Sirius; The Seeder."
diff --git a/code/modules/events/mass_hallucination.dm b/code/modules/events/mass_hallucination.dm
index c00a81428e4..500350a037c 100644
--- a/code/modules/events/mass_hallucination.dm
+++ b/code/modules/events/mass_hallucination.dm
@@ -6,7 +6,7 @@
var/armor = H.getarmor(type = "rad")
if((H.species.flags & RADIMMUNE) || armor >= 75) // Leave radiation-immune species/rad armored players completely unaffected
continue
- H.hallucination += rand(50, 100)
+ H.AdjustHallucinate(rand(50, 100))
/datum/event/mass_hallucination/announce()
- event_announcement.Announce("It seems that station [station_name()] is passing through a minor radiation field, this may cause some hallucination, but no further damage")
\ No newline at end of file
+ event_announcement.Announce("It seems that station [station_name()] is passing through a minor radiation field, this may cause some hallucination, but no further damage")
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index ffc4882a055..4c120db79e0 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -279,11 +279,11 @@ Gunshots/explosions/opening doors/less rare audio (done)
/obj/effect/hallucination/simple/singularity/proc/Eat(atom/OldLoc, Dir)
var/target_dist = get_dist(src,target)
if(target_dist<=3) //"Eaten"
- target.sleeping = 20
+ target.Sleeping(20)
target.hal_crit = 1
target.hal_screwyhud = 1
spawn(rand(50,100))
- target.sleeping = 0
+ target.SetSleeping(0)
target.hal_crit = 0
target.hal_screwyhud = 0
@@ -480,7 +480,7 @@ Gunshots/explosions/opening doors/less rare audio (done)
my_target.show_message("[src.name] has attacked [my_target] with [weapon_name]!", 1)
my_target.staminaloss += 30
if(prob(20))
- my_target.eye_blurry += 3
+ my_target.AdjustEyeBlurry(3)
if(prob(33))
if(!locate(/obj/effect/overlay) in my_target.loc)
fake_blood(my_target)
@@ -752,11 +752,11 @@ var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/ite
halimage = null
if("death")
//Fake death
- src.sleeping = 20
+ Sleeping(20)
hal_crit = 1
hal_screwyhud = 1
spawn(rand(50,100))
- src.sleeping = 0
+ SetSleeping(0)
hal_crit = 0
hal_screwyhud = 0
if("husks")
diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm
index 15ce27b7d5c..0814bf988f4 100644
--- a/code/modules/food_and_drinks/drinks/drinks.dm
+++ b/code/modules/food_and_drinks/drinks/drinks.dm
@@ -81,7 +81,7 @@
refill = reagents.get_master_reagent_id()
refillName = reagents.get_master_reagent_name()
- var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
+ var/trans = reagents.trans_to(target, amount_per_transfer_from_this)
to_chat(user, " You transfer [trans] units of the solution to [target].")
if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell
@@ -102,22 +102,22 @@
if(istype(I, /obj/item/clothing/mask/cigarette)) //ciggies are weird
return
if(is_hot(I))
- if(src.reagents)
- src.reagents.chem_temp += 15
+ if(reagents)
+ reagents.chem_temp += 15
to_chat(user, "You heat [src] with [I].")
- src.reagents.handle_reactions()
+ reagents.handle_reactions()
/obj/item/weapon/reagent_containers/food/drinks/examine(mob/user)
if(!..(user, 1))
return
- if(!reagents || reagents.total_volume==0)
+ if(!reagents || reagents.total_volume == 0)
to_chat(user, " \The [src] is empty!")
- else if(reagents.total_volume<=src.volume/4)
+ else if(reagents.total_volume <= volume/4)
to_chat(user, " \The [src] is almost empty!")
- else if(reagents.total_volume<=src.volume*0.66)
+ else if(reagents.total_volume <= volume*0.66)
to_chat(user, " \The [src] is half full!")// We're all optimistic, right?!
- else if(reagents.total_volume<=src.volume*0.90)
+ else if(reagents.total_volume <= volume*0.90)
to_chat(user, " \The [src] is almost full!")
else
to_chat(user, " \The [src] is full!")
diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
index 8928c5e8c57..7ee7509d8f1 100644
--- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
@@ -22,9 +22,9 @@
else
user.drop_item()
user.put_in_active_hand(B)
- B.icon_state = src.icon_state
+ B.icon_state = icon_state
- var/icon/I = new('icons/obj/drinks.dmi', src.icon_state)
+ var/icon/I = new('icons/obj/drinks.dmi', icon_state)
I.Blend(B.broken_outline, ICON_OVERLAY, rand(5), 1)
I.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0))
B.icon = I
@@ -99,11 +99,11 @@
//Display an attack message.
if(target != user)
- target.visible_message("[user] has hit [target][head_attack_message] with a bottle of [src.name]!", \
- "[user] has hit [target][head_attack_message] with a bottle of [src.name]!")
+ target.visible_message("[user] has hit [target][head_attack_message] with a bottle of [name]!", \
+ "[user] has hit [target][head_attack_message] with a bottle of [name]!")
else
- user.visible_message("[target] hits \himself with a bottle of [src.name][head_attack_message]!", \
- "[target] hits \himself with a bottle of [src.name][head_attack_message]!")
+ user.visible_message("[target] hits \himself with a bottle of [name][head_attack_message]!", \
+ "[target] hits \himself with a bottle of [name][head_attack_message]!")
//Attack logs
add_logs(user, target, "attacked", src)
diff --git a/code/modules/food_and_drinks/drinks/drinks/cans.dm b/code/modules/food_and_drinks/drinks/drinks/cans.dm
index 6d72ec2221c..89deed5dedd 100644
--- a/code/modules/food_and_drinks/drinks/drinks/cans.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/cans.dm
@@ -9,7 +9,7 @@
/obj/item/weapon/reagent_containers/food/drinks/cans/attack_self(mob/user)
if(canopened == 0)
- playsound(src.loc,'sound/effects/canopen.ogg', rand(10,50), 1)
+ playsound(loc,'sound/effects/canopen.ogg', rand(10,50), 1)
to_chat(user, "You open the drink with an audible pop!")
canopened = 1
flags |= OPENCONTAINER
@@ -32,7 +32,7 @@
if(canopened == 0)
to_chat(user, "You need to open the drink!")
return
- else if(M == user && !src.reagents.total_volume && user.a_intent == "harm" && user.zone_sel.selecting == "head")
+ else if(M == user && !reagents.total_volume && user.a_intent == "harm" && user.zone_sel.selecting == "head")
user.visible_message("[user] crushes ["\the [src]"] on \his forehead!", "You crush \the [src] on your forehead.")
crush(user)
return
diff --git a/code/modules/food_and_drinks/food/candy.dm b/code/modules/food_and_drinks/food/candy.dm
index d13eb7ec145..32a4a584a88 100644
--- a/code/modules/food_and_drinks/food/candy.dm
+++ b/code/modules/food_and_drinks/food/candy.dm
@@ -13,9 +13,6 @@
icon = 'icons/obj/food/candy.dmi'
icon_state = "candy"
-/obj/item/weapon/reagent_containers/food/snacks/candy/New()
- ..()
-
// ***********************************************************
// Candy Ingredients / Flavorings / Byproduct
// ***********************************************************
@@ -25,76 +22,53 @@
desc = "Such sweet, fattening food."
icon_state = "chocolatebar"
filling_color = "#7D5F46"
-
-/obj/item/weapon/reagent_containers/food/snacks/chocolatebar/New()
- ..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("chocolate",4)
bitesize = 2
+ list_reagents = list("nutriment" = 2, "chocolate" = 4)
/obj/item/weapon/reagent_containers/food/snacks/candy/caramel
name = "Caramel"
desc = "Chewy and dense, yet it practically melts in your mouth!"
icon_state = "caramel"
filling_color = "#DB944D"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/caramel/New()
- ..()
- reagents.add_reagent("cream", 2)
- reagents.add_reagent("sugar", 2)
bitesize = 2
+ list_reagents = list("cream" = 2, "sugar" = 2)
+
/obj/item/weapon/reagent_containers/food/snacks/candy/toffee
name = "Toffee"
desc = "A hard, brittle candy with a distinctive taste."
icon_state = "toffee"
filling_color = "#7D5F46"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/toffee/New()
- ..()
- reagents.add_reagent("nutriment", 3)
- reagents.add_reagent("sugar", 3)
bitesize = 2
+ list_reagents = list("nutriment" = 3, "sugar" = 3)
/obj/item/weapon/reagent_containers/food/snacks/candy/nougat
name = "Nougat"
desc = "A soft, chewy candy commonly found in candybars."
icon_state = "nougat"
filling_color = "#7D5F46"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/nougat/New()
- ..()
- reagents.add_reagent("nutriment", 3)
- reagents.add_reagent("sugar", 3)
- spawn(1)
- reagents.del_reagent("egg")
- reagents.update_total()
bitesize = 2
+ list_reagents = list("nutriment" = 3, "sugar" = 3)
/obj/item/weapon/reagent_containers/food/snacks/candy/taffy
name = "Saltwater Taffy"
desc = "Old fashioned saltwater taffy. Chewy!"
icon_state = "candy1"
filling_color = "#7D5F46"
+ bitesize = 2
+ list_reagents = list("nutriment" = 3, "sugar" = 3)
/obj/item/weapon/reagent_containers/food/snacks/candy/taffy/New()
..()
icon_state = pick("candy1", "candy2", "candy3", "candy4", "candy5")
- reagents.add_reagent("nutriment", 3)
- reagents.add_reagent("sugar", 3)
- bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/candy/fudge
name = "Fudge"
desc = "Chocolate fudge, a timeless classic treat."
icon_state = "fudge"
filling_color = "#7D5F46"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/fudge/New()
- ..()
- reagents.add_reagent("cream", 3)
- reagents.add_reagent("chocolate",6)
bitesize = 3
+ list_reagents = list("cream" = 3, "chocolate" = 6)
/obj/item/weapon/reagent_containers/food/snacks/candy/fudge/peanut
name = "Peanut Fudge"
@@ -113,10 +87,7 @@
desc = "An extra creamy fudge with bits of real chocolate cookie mixed in. Crunchy!"
icon_state = "fudge_cookies_n_cream"
filling_color = "#7D5F46"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/fudge/cookies_n_cream/New()
- ..()
- reagents.add_reagent("cream", 3)
+ list_reagents = list("cream" = 6, "chocolate" = 6)
/obj/item/weapon/reagent_containers/food/snacks/candy/fudge/turtle
name = "Turtle Fudge"
@@ -132,24 +103,16 @@
name = "Donor Candy"
desc = "A little treat for blood donors."
trash = /obj/item/trash/candy
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/donor/New()
- ..()
- reagents.add_reagent("nutriment", 10)
- reagents.add_reagent("sugar", 3)
bitesize = 5
+ list_reagents = list("nutriment" = 10, "sugar" = 3)
/obj/item/weapon/reagent_containers/food/snacks/candy/candy_corn
name = "candy corn"
desc = "It's a handful of candy corn. Cannot be stored in a detective's hat, alas."
icon_state = "candycorn"
filling_color = "#FFFCB0"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/candy_corn/New()
- ..()
- reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("sugar", 2)
bitesize = 2
+ list_reagents = list("nutriment" = 4, "sugar" = 2)
// ***********************************************************
// Candy Products (plain / unflavored)
@@ -161,11 +124,8 @@
icon_state = "cottoncandy_plain"
trash = /obj/item/weapon/c_tube
filling_color = "#FFFFFF"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/New()
- ..()
- reagents.add_reagent("sugar", 15)
- bitesize = 3
+ bitesize = 4
+ list_reagents = list("sugar" = 15)
/obj/item/weapon/reagent_containers/food/snacks/candy/candybar
name = "candy"
@@ -173,92 +133,64 @@
icon_state = "candy"
trash = /obj/item/trash/candy
filling_color = "#7D5F46"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/candybar/New()
- ..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("chocolate",5)
bitesize = 3
+ list_reagents = list("nutriment" = 2, "chocolate" = 5)
/obj/item/weapon/reagent_containers/food/snacks/candy/candycane
name = "candy cane"
desc = "A festive mint candy cane."
icon_state = "candycane"
filling_color = "#F2F2F2"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/candycane/New()
- ..()
- reagents.add_reagent("minttoxin", 1)
- reagents.add_reagent("sugar", 5)
bitesize = 2
+ list_reagents = list("minttoxin" = 1, "sugar" = 5)
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear
name = "gummy bear"
desc = "A small edible bear. It's squishy and chewy!"
icon_state = "gbear"
filling_color = "#FFFFFF"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/New()
- ..()
- reagents.add_reagent("sugar", 10)
bitesize = 3
+ list_reagents = list("sugar" = 10)
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm
name = "gummy worm"
desc = "An edible worm, made from gelatin."
icon_state = "gworm"
filling_color = "#FFFFFF"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/New()
- ..()
- reagents.add_reagent("sugar", 10)
bitesize = 3
+ list_reagents = list("sugar" = 10)
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas."
icon_state = "jbean"
filling_color = "#FFFFFF"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/New()
- ..()
- reagents.add_reagent("sugar", 10)
bitesize = 3
+ list_reagents = list("sugar" = 10)
/obj/item/weapon/reagent_containers/food/snacks/candy/jawbreaker
name = "jawbreaker"
desc = "An unbelievably hard candy. The name is fitting."
icon_state = "jawbreaker"
filling_color = "#ED0758"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/jawbreaker/New()
- ..()
- reagents.add_reagent("sugar", 10)
bitesize = 0.1 //this is gonna take a while, you'll be working at this all shift.
+ list_reagents = list("sugar" = 10)
/obj/item/weapon/reagent_containers/food/snacks/candy/cash
name = "candy cash"
desc = "Not legal tender. Tasty though."
icon_state = "candy_cash"
filling_color = "#302000"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/cash/New()
- ..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("chocolate", 4)
bitesize = 2
+ list_reagents = list("nutriment" = 2, "chocolate" = 4)
/obj/item/weapon/reagent_containers/food/snacks/candy/coin
name = "chocolate coin"
desc = "Probably won't work in the vending machines."
icon_state = "choc_coin"
filling_color = "#302000"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/coin/New()
- ..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("chocolate",4)
bitesize = 3
+ list_reagents = list("nutriment" = 2, "chocolate" = 4)
/obj/item/weapon/reagent_containers/food/snacks/candy/gum
name = "bubblegum"
@@ -266,22 +198,15 @@
icon_state = "bubblegum"
trash = /obj/item/trash/gum
filling_color = "#FF7495"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gum/New()
- ..()
- reagents.add_reagent("sugar", 5)
bitesize = 0.2
+ list_reagents = list("sugar" = 5)
/obj/item/weapon/reagent_containers/food/snacks/candy/sucker
name = "sucker"
desc = "For being such a good sport!"
icon_state = "sucker"
filling_color = "#FFFFFF"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/sucker/New()
- ..()
- reagents.add_reagent("sugar", 10)
- bitesize = 1
+ list_reagents = list("sugar" = 10)
// ***********************************************************
// Gummy Bear Flavors
@@ -292,91 +217,56 @@
desc = "A small edible bear. It's red!"
icon_state = "gbear_red"
filling_color = "#801E28"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/red/New()
- ..()
- reagents.add_reagent("cherryjelly", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "cherryjelly" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/blue
name = "gummy bear"
desc = "A small edible bear. It's blue!"
icon_state = "gbear_blue"
filling_color = "#863333"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/blue/New()
- ..()
- reagents.add_reagent("berryjuice", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "berryjuice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/poison
name = "gummy bear"
desc = "A small edible bear. It's blue!"
icon_state = "gbear_blue"
filling_color = "#863353"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/poison/New()
- ..()
- reagents.add_reagent("poisonberryjuice", 12)
- spawn(1)
- reagents.del_reagent("sugar")
- reagents.update_total()
- bitesize = 3
+ list_reagents = list("poisonberryjuice" = 12)
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/green
name = "gummy bear"
desc = "A small edible bear. It's green!"
icon_state = "gbear_green"
filling_color = "#365E30"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/green/New()
- ..()
- reagents.add_reagent("limejuice", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "limejuice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/yellow
name = "gummy bear"
desc = "A small edible bear. It's yellow!"
icon_state = "gbear_yellow"
filling_color = "#863333"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/yellow/New()
- ..()
- reagents.add_reagent("lemonjuice", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "lemonjuice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/orange
name = "gummy bear"
desc = "A small edible bear. It's orange!"
icon_state = "gbear_orange"
filling_color = "#E78108"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/orange/New()
- ..()
- reagents.add_reagent("orangejuice", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "orangejuice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/purple
name = "gummy bear"
desc = "A small edible bear. It's purple!"
icon_state = "gbear_purple"
filling_color = "#993399"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/purple/New()
- ..()
- reagents.add_reagent("grapejuice", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "grapejuice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/wtf
name = "gummy bear"
desc = "A small bear. Wait... what?"
icon_state = "gbear_wtf"
filling_color = "#60A584"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/wtf/New()
- ..()
- reagents.add_reagent("space_drugs", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "space_drugs" = 2)
// ***********************************************************
// Gummy Worm Flavors
@@ -387,91 +277,56 @@
desc = "An edible worm, made from gelatin. It's red!"
icon_state = "gworm_red"
filling_color = "#801E28"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/red/New()
- ..()
- reagents.add_reagent("cherryjelly", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "cherryjelly" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/blue
name = "gummy worm"
desc = "An edible worm, made from gelatin. It's blue!"
icon_state = "gworm_blue"
filling_color = "#863333"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/blue/New()
- ..()
- reagents.add_reagent("berryjuice", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "berryjuice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/poison
name = "gummy worm"
desc = "An edible worm, made from gelatin. It's blue!"
icon_state = "gworm_blue"
filling_color = "#863353"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/poison/New()
- ..()
- reagents.add_reagent("poisonberryjuice", 12)
- spawn(1)
- reagents.del_reagent("sugar")
- reagents.update_total()
- bitesize = 3
+ list_reagents = list("poisonberryjuice" = 12)
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/green
name = "gummy worm"
desc = "An edible worm, made from gelatin. It's green!"
icon_state = "gworm_green"
filling_color = "#365E30"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/green/New()
- ..()
- reagents.add_reagent("limejuice", 10)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "limejuice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/yellow
name = "gummy worm"
desc = "An edible worm, made from gelatin. It's yellow!"
icon_state = "gworm_yellow"
filling_color = "#863333"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/yellow/New()
- ..()
- reagents.add_reagent("lemonjuice", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "lemonjuice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/orange
name = "gummy worm"
desc = "An edible worm, made from gelatin. It's orange!"
icon_state = "gworm_orange"
filling_color = "#E78108"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/orange/New()
- ..()
- reagents.add_reagent("orangejuice", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "orangejuice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/purple
name = "gummy worm"
desc = "An edible worm, made from gelatin. It's purple!"
icon_state = "gworm_purple"
filling_color = "#993399"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/purple/New()
- ..()
- reagents.add_reagent("grapejuice", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "grapejuice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/wtf
name = "gummy worm"
desc = "An edible worm. Did it just move?"
icon_state = "gworm_wtf"
filling_color = "#60A584"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/wtf/New()
- ..()
- reagents.add_reagent("space_drugs", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "space_drugs" = 2)
// ***********************************************************
// Jelly Bean Flavors
@@ -482,146 +337,91 @@
desc = "A candy bean, guarenteed to not give you gas. It's red!"
icon_state = "jbean_red"
filling_color = "#801E28"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/red/New()
- ..()
- reagents.add_reagent("cherryjelly", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "cherryjelly" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/blue
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's blue!"
icon_state = "jbean_blue"
filling_color = "#863333"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/blue/New()
- ..()
- reagents.add_reagent("berryjuice", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "berryjuice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/poison
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's blue!"
icon_state = "jbean_blue"
filling_color = "#863353"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/poison/New()
- ..()
- reagents.add_reagent("poisonberryjuice", 12)
- spawn(1)
- reagents.del_reagent("sugar")
- reagents.update_total()
- bitesize = 3
+ list_reagents = list("poisonberryjuice" = 12)
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/green
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's green!"
icon_state = "jbean_green"
filling_color = "#365E30"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/green/New()
- ..()
- reagents.add_reagent("limejuice", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "limejuice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/yellow
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's yellow!"
icon_state = "jbean_yellow"
filling_color = "#863333"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/yellow/New()
- ..()
- reagents.add_reagent("lemonjuice", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "lemonjuice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/orange
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's orange!"
icon_state = "jbean_orange"
filling_color = "#E78108"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/orange/New()
- ..()
- reagents.add_reagent("orangejuice", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "orangejuice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/purple
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's purple!"
icon_state = "jbean_purple"
filling_color = "#993399"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/purple/New()
- ..()
- reagents.add_reagent("grapejuice", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "grapejuice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/chocolate
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's chocolate!"
icon_state = "jbean_choc"
filling_color = "#302000"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/chocolate/New()
- ..()
- reagents.add_reagent("chocolate",2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "chocolate" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/popcorn
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's popcorn flavored!"
icon_state = "jbean_popcorn"
filling_color = "#664330"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/popcorn/New()
- ..()
- reagents.add_reagent("nutriment", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/cola
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's Cola flavored!"
icon_state = "jbean_cola"
filling_color = "#102000"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/cola/New()
- ..()
- reagents.add_reagent("cola", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "cola" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/drgibb
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's Dr. Gibb flavored!"
icon_state = "jbean_cola"
filling_color = "#102000"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/drgibb/New()
- ..()
- reagents.add_reagent("dr_gibb", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "dr_gibb" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/coffee
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's Coffee flavored!"
icon_state = "jbean_choc"
filling_color = "#482000"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/coffee/New()
- ..()
- reagents.add_reagent("coffee", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "coffee" = 2)
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/wtf
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. You aren't sure what color it is."
icon_state = "jbean_wtf"
filling_color = "#60A584"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/wtf/New()
- ..()
- reagents.add_reagent("space_drugs", 2)
- bitesize = 3
+ list_reagents = list("sugar" = 10, "space_drugs" = 2)
// ***********************************************************
// Cotton Candy Flavors
@@ -633,11 +433,7 @@
icon_state = "cottoncandy_red"
trash = /obj/item/weapon/c_tube
filling_color = "#801E28"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/red/New()
- ..()
- reagents.add_reagent("cherryjelly", 5)
- bitesize = 4
+ list_reagents = list("sugar" = 15, "cherryjelly" = 5)
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/blue
name = "cotton candy"
@@ -645,11 +441,7 @@
icon_state = "cottoncandy_blue"
trash = /obj/item/weapon/c_tube
filling_color = "#863333"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/blue/New()
- ..()
- reagents.add_reagent("berryjuice", 5)
- bitesize = 4
+ list_reagents = list("sugar" = 15, "berryjuice" = 5)
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/poison
name = "cotton candy"
@@ -657,14 +449,7 @@
icon_state = "cottoncandy_blue"
trash = /obj/item/weapon/c_tube
filling_color = "#863353"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/poison/New()
- ..()
- reagents.add_reagent("poisonberryjuice", 20)
- spawn(1)
- reagents.del_reagent("sugar")
- reagents.update_total()
- bitesize = 4
+ list_reagents = list("poisonberryjuice" = 20)
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/green
name = "cotton candy"
@@ -672,11 +457,7 @@
icon_state = "cottoncandy_green"
trash = /obj/item/weapon/c_tube
filling_color = "#365E30"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/green/New()
- ..()
- reagents.add_reagent("limejuice", 5)
- bitesize = 4
+ list_reagents = list("sugar" = 15, "limejuice" = 5)
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/yellow
name = "cotton candy"
@@ -684,11 +465,7 @@
icon_state = "cottoncandy_yellow"
trash = /obj/item/weapon/c_tube
filling_color = "#863333"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/yellow/New()
- ..()
- reagents.add_reagent("lemonjuice", 5)
- bitesize = 4
+ list_reagents = list("sugar" = 15, "lemonjuice" = 5)
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/orange
name = "cotton candy"
@@ -696,11 +473,7 @@
icon_state = "cottoncandy_orange"
trash = /obj/item/weapon/c_tube
filling_color = "#E78108"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/orange/New()
- ..()
- reagents.add_reagent("orangejuice", 5)
- bitesize = 4
+ list_reagents = list("sugar" = 15, "orangejuice" = 5)
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/purple
name = "cotton candy"
@@ -708,11 +481,7 @@
icon_state = "cottoncandy_purple"
trash = /obj/item/weapon/c_tube
filling_color = "#993399"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/purple/New()
- ..()
- reagents.add_reagent("grapejuice", 5)
- bitesize = 4
+ list_reagents = list("sugar" = 15, "grapejuice" = 5)
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/pink
name = "cotton candy"
@@ -720,11 +489,7 @@
icon_state = "cottoncandy_pink"
trash = /obj/item/weapon/c_tube
filling_color = "#863333"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/pink/New()
- ..()
- reagents.add_reagent("watermelonjuice", 5)
- bitesize = 4
+ list_reagents = list("sugar" = 15, "watermelonjuice" = 5)
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/rainbow
name = "cotton candy"
@@ -732,14 +497,7 @@
icon_state = "cottoncandy_rainbow"
trash = /obj/item/weapon/c_tube
filling_color = "#C8A5DC"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/rainbow/New()
- ..()
- reagents.add_reagent("omnizine", 20)
- spawn(1)
- reagents.del_reagent("sugar")
- reagents.update_total()
- bitesize = 4
+ list_reagents = list("omnizine" = 20)
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/bad_rainbow
name = "cotton candy"
@@ -747,14 +505,7 @@
icon_state = "cottoncandy_rainbow"
trash = /obj/item/weapon/c_tube
filling_color = "#32127A"
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/bad_rainbow/New()
- ..()
- reagents.add_reagent("sulfonal", 20)
- spawn(1)
- reagents.del_reagent("sugar")
- reagents.update_total()
- bitesize = 4
+ list_reagents = list("sulfonal" = 20)
// ***********************************************************
// Candybar Flavors
diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm
index 931e84b892b..d7ffca96843 100644
--- a/code/modules/food_and_drinks/food/condiment.dm
+++ b/code/modules/food_and_drinks/food/condiment.dm
@@ -82,7 +82,7 @@
if(target.reagents.total_volume >= target.reagents.maximum_volume)
to_chat(user, "you can't add anymore to [target]!")
return
- var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
+ var/trans = reagents.trans_to(target, amount_per_transfer_from_this)
to_chat(user, "You transfer [trans] units of the condiment to [target].")
/obj/item/weapon/reagent_containers/food/condiment/on_reagent_change()
@@ -223,7 +223,7 @@
return
else
to_chat(user, "You tear open [src] above [target] and the condiments drip onto it.")
- src.reagents.trans_to(target, amount_per_transfer_from_this)
+ reagents.trans_to(target, amount_per_transfer_from_this)
qdel(src)
/obj/item/weapon/reagent_containers/food/condiment/pack/on_reagent_change()
diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm
index 78651f97b0c..77e3f22a1e8 100644
--- a/code/modules/food_and_drinks/food/customizables.dm
+++ b/code/modules/food_and_drinks/food/customizables.dm
@@ -1,4 +1,4 @@
-/obj/item/weapon/reagent_containers/food/snacks/breadslice/attackby(obj/item/W as obj, mob/user as mob, params)
+/obj/item/weapon/reagent_containers/food/snacks/breadslice/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/weapon/reagent_containers/food/snacks) && !(W.flags & NODROP))
var/obj/item/weapon/reagent_containers/food/snacks/customizable/sandwich/S = new(get_turf(user))
S.attackby(W,user, params)
@@ -6,13 +6,13 @@
else
..()
-/obj/item/weapon/reagent_containers/food/snacks/bun/attackby(obj/item/W as obj, mob/user as mob, params)
+/obj/item/weapon/reagent_containers/food/snacks/bun/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/weapon/reagent_containers/food/snacks) && !(W.flags & NODROP))
var/obj/item/weapon/reagent_containers/food/snacks/customizable/burger/S = new(get_turf(user))
S.attackby(W,user, params)
qdel(src)
-/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough/attackby(obj/item/W as obj, mob/user as mob, params)
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/weapon/reagent_containers/food/snacks) && !(W.flags & NODROP))
var/obj/item/weapon/reagent_containers/food/snacks/customizable/pizza/S = new(get_turf(user))
S.attackby(W,user, params)
@@ -21,7 +21,7 @@
..()
-/obj/item/weapon/reagent_containers/food/snacks/boiledspagetti/attackby(obj/item/W as obj, mob/user as mob, params)
+/obj/item/weapon/reagent_containers/food/snacks/boiledspagetti/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/weapon/reagent_containers/food/snacks) && !(W.flags & NODROP))
var/obj/item/weapon/reagent_containers/food/snacks/customizable/pasta/S = new(get_turf(user))
S.attackby(W,user, params)
@@ -30,7 +30,7 @@
..()
-/obj/item/trash/plate/attackby(obj/item/W as obj, mob/user as mob, params)
+/obj/item/trash/plate/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/weapon/reagent_containers/food/snacks) && !(W.flags & NODROP))
var/obj/item/weapon/reagent_containers/food/snacks/customizable/fullycustom/S = new(get_turf(user))
S.attackby(W,user, params)
@@ -44,7 +44,7 @@
icon = 'icons/obj/food/food.dmi'
icon_state = "soup"
-/obj/item/trash/bowl/attackby(obj/item/W as obj, mob/user as mob, params)
+/obj/item/trash/bowl/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/weapon/reagent_containers/food/snacks) && !(W.flags & NODROP))
var/obj/item/weapon/reagent_containers/food/snacks/customizable/soup/S = new(get_turf(user))
@@ -54,7 +54,6 @@
..()
/obj/item/weapon/reagent_containers/food/snacks/customizable/sandwich
- /obj/item/weapon/reagent_containers/food/snacks/customizable
name = "sandwich"
desc = "A sandwich! A timeless classic."
icon_state = "breadslice"
@@ -79,12 +78,7 @@
trash = /obj/item/trash/plate
bitesize = 2
var/list/ingredients = list()
-
- New()
- ..()
-
- reagents.add_reagent("nutriment", 8)
-
+ list_reagents = list("nutriment" = 8)
/obj/item/weapon/reagent_containers/food/snacks/customizable/pizza
name = "personal pizza"
@@ -323,7 +317,7 @@
toptype = new /obj/item/weapon/reagent_containers/food/snacks/bun()
/obj/item/weapon/reagent_containers/food/snacks/customizable/attackby(obj/item/I, mob/user, params)
- if(src.contents.len > sandwich_limit)
+ if(contents.len > sandwich_limit)
to_chat(user, "If you put anything else in or on [src] it's going to make a mess.")
return
if(!istype(I, /obj/item/weapon/reagent_containers/food/snacks))
@@ -351,7 +345,7 @@
for(var/obj/item/O in ingredients)
i++
if(!fullycustom)
- var/image/I = new(src.icon, "[baseicon]_filling")
+ var/image/I = new(icon, "[baseicon]_filling")
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks))
var/obj/item/weapon/reagent_containers/food/snacks/food = O
if(!food.filling_color == "#FFFFFF")
@@ -372,7 +366,7 @@
overlays += O.overlays
if(top)
- var/image/T = new(src.icon, "[baseicon]_top")
+ var/image/T = new(icon, "[baseicon]_top")
T.pixel_x = pick(list(-1,0,1))
T.pixel_y = (ingredients.len * 2)+1
overlays += T
@@ -388,24 +382,6 @@
to_chat(user, " You think you can see [whatsinside] in there.")
-/*
-/obj/item/weapon/reagent_containers/food/snacks/customizable/attack(mob/M as mob, mob/user as mob, def_zone) //SNOOOOOOOWFLAAAAAAAAAAAAAAAAAKES
-
- var/obj/item/shard
- for(var/obj/item/O in contents)
- if(istype(O,/obj/item/weapon/shard))
- shard = O
- break
-
- var/mob/living/H
- if(istype(M,/mob/living))
- H = M
-
- if(H && shard && M == user) //This needs a check for feeding the food to other people, but that could be abusable.
- to_chat(H, "\red You lacerate your mouth on a [shard.name] in the sandwich!")
- H.adjustBruteLoss(5) //TODO: Target head if human.
- ..()
-*/
/obj/item/weapon/reagent_containers/food/snacks/customizable/proc/newname()
var/unsorteditems[0]
@@ -487,7 +463,7 @@
sendback = "[pick(list("absurd","colossal","enormous","ridiculous","massive","oversized","cardiac-arresting","pipe-clogging","edible but sickening","sickening","gargantuan","mega","belly-burster","chest-burster"))] [basename]"
return sendback
-/obj/item/weapon/reagent_containers/food/snacks/customizable/proc/sortlist(var/list/unsorted, var/highest)
+/obj/item/weapon/reagent_containers/food/snacks/customizable/proc/sortlist(list/unsorted, highest)
var/sorted[0]
for(var/i = 1, i<= highest, i++)
for(var/it in unsorted)
diff --git a/code/modules/food_and_drinks/food/meat.dm b/code/modules/food_and_drinks/food/meat.dm
index 76de76530ea..4635f6eb9b1 100644
--- a/code/modules/food_and_drinks/food/meat.dm
+++ b/code/modules/food_and_drinks/food/meat.dm
@@ -4,16 +4,11 @@
icon_state = "meat"
health = 180
filling_color = "#FF1C1C"
- New()
- ..()
- reagents.add_reagent("protein", 3)
- src.bitesize = 3
+ bitesize = 3
+ list_reagents = list("protein" = 3)
-/obj/item/weapon/reagent_containers/food/snacks/meat/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
- if( \
- istype(W, /obj/item/weapon/kitchen/knife) || \
- istype(W, /obj/item/weapon/scalpel) \
- )
+/obj/item/weapon/reagent_containers/food/snacks/meat/attackby(obj/item/weapon/W, mob/user, params)
+ if(istype(W, /obj/item/weapon/kitchen/knife) || istype(W, /obj/item/weapon/scalpel))
new /obj/item/weapon/reagent_containers/food/snacks/rawcutlet(src)
new /obj/item/weapon/reagent_containers/food/snacks/rawcutlet(src)
new /obj/item/weapon/reagent_containers/food/snacks/rawcutlet(src)
@@ -49,6 +44,4 @@
/obj/item/weapon/reagent_containers/food/snacks/meat/ham
name = "Ham"
desc = "Taste like bacon."
- New()
- ..()
- reagents.add_reagent("porktonium", 10)
+ list_reagents = list("protein" = 3, "porktonium" = 10)
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/food/seafood.dm b/code/modules/food_and_drinks/food/seafood.dm
index 410c225247c..c0a95d39315 100644
--- a/code/modules/food_and_drinks/food/seafood.dm
+++ b/code/modules/food_and_drinks/food/seafood.dm
@@ -5,12 +5,8 @@
icon = 'icons/obj/food/seafood.dmi'
icon_state = "fishfillet"
filling_color = "#FFDEFE"
-
- New()
- ..()
- reagents.add_reagent("protein", 3)
- reagents.add_reagent("carpotoxin", 3)
- src.bitesize = 6
+ bitesize = 6
+ list_reagents = list("protein" = 3, "carpotoxin" = 3)
/obj/item/weapon/reagent_containers/food/snacks/salmonmeat
name = "raw salmon"
@@ -18,11 +14,8 @@
icon = 'icons/obj/food/seafood.dmi'
icon_state = "fishfillet"
filling_color = "#FFDEFE"
-
- New()
- ..()
- reagents.add_reagent("protein", 3)
- src.bitesize = 3
+ bitesize = 3
+ list_reagents = list("protein" = 3)
/obj/item/weapon/reagent_containers/food/snacks/salmonsteak
name = "Salmon steak"
@@ -31,14 +24,8 @@
icon_state = "salmonsteak"
trash = /obj/item/trash/plate
filling_color = "#7A3D11"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("sodiumchloride", 1)
- reagents.add_reagent("blackpepper", 1)
- bitesize = 3
-
+ bitesize = 3
+ list_reagents = list("nutriment" = 4, "sodiumchloride" = 1, "blackpepper" = 1)
/obj/item/weapon/reagent_containers/food/snacks/catfishmeat
name = "raw catfish"
@@ -46,11 +33,8 @@
icon = 'icons/obj/food/seafood.dmi'
icon_state = "fishfillet"
filling_color = "#FFDEFE"
-
- New()
- ..()
- reagents.add_reagent("protein", 3)
- src.bitesize = 3
+ bitesize = 3
+ list_reagents = list("protein" = 3)
/obj/item/weapon/reagent_containers/food/snacks/fishfingers
name = "Fish Fingers"
@@ -58,15 +42,8 @@
icon = 'icons/obj/food/seafood.dmi'
icon_state = "fishfingers"
filling_color = "#FFDEFE"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("carpotoxin", 3)
- spawn(1)
- reagents.del_reagent("egg")
- reagents.update_total()
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 4, "carpotoxin" = 3)
/obj/item/weapon/reagent_containers/food/snacks/fishburger
name = "Fillet -o- Carp Sandwich"
@@ -74,12 +51,8 @@
icon = 'icons/obj/food/seafood.dmi'
icon_state = "fishburger"
filling_color = "#FFDEFE"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("carpotoxin", 3)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 6, "carpotoxin" = 3)
/obj/item/weapon/reagent_containers/food/snacks/cubancarp
name = "Cuban Carp"
@@ -88,13 +61,8 @@
icon_state = "cubancarp"
trash = /obj/item/trash/plate
filling_color = "#E9ADFF"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("carpotoxin", 3)
- reagents.add_reagent("capsaicin", 3)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 6, "carpotoxin" = 3, "capsaicin" = 3)
/obj/item/weapon/reagent_containers/food/snacks/fishandchips
name = "Fish and Chips"
@@ -102,168 +70,117 @@
icon = 'icons/obj/food/seafood.dmi'
icon_state = "fishandchips"
filling_color = "#E3D796"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("carpotoxin", 3)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 6, "carpotoxin" = 3)
/obj/item/weapon/reagent_containers/food/snacks/sashimi
name = "carp sashimi"
desc = "Celebrate surviving attack from hostile alien lifeforms by hospitalising yourself."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "sashimi"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("toxin", 5)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 6, "toxin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/fried_shrimp
name = "fried shrimp"
desc = "Just one of the many things you can do with shrimp!"
icon = 'icons/obj/food/seafood.dmi'
icon_state = "shrimp_fried"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- src.bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/boiled_shrimp
name = "boiled shrimp"
desc = "Just one of the many things you can do with shrimp!"
icon = 'icons/obj/food/seafood.dmi'
icon_state = "shrimp_cooked"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- src.bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/sushi_Ebi
name = "Ebi Sushi"
desc = "A simple sushi consisting of cooked shrimp and rice."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "sushi_Ebi"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/sushi_Ikura
name = "Ikura Sushi"
desc = "A simple sushi consisting of salmon roe."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "sushi_Ikura"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("protein", 1)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 2, "protein" = 1)
/obj/item/weapon/reagent_containers/food/snacks/sushi_Sake
name = "Sake Sushi"
desc = "A simple sushi consisting of raw salmon and rice."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "sushi_Sake"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/sushi_SmokedSalmon
name = "Smoked Salmon Sushi"
desc = "A simple sushi consisting of cooked salmon and rice."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "sushi_SmokedSalmon"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/sushi_Tamago
name = "Tamago Sushi"
desc = "A simple sushi consisting of egg and rice."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "sushi_Tamago"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/sushi_Inari
name = "Inari Sushi"
desc = "A piece of fried tofu stuffed with rice."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "sushi_Inari"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/sushi_Masago
name = "Masago Sushi"
desc = "A simple sushi consisting of goldfish roe."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "sushi_Masago"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("protein", 1)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 2, "protein" = 1)
/obj/item/weapon/reagent_containers/food/snacks/sushi_Tobiko
name = "Tobiko Sushi"
desc = "A simple sushi consisting of shark roe."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "sushi_Masago"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("protein", 1)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 2, "protein" = 1)
/obj/item/weapon/reagent_containers/food/snacks/sushi_TobikoEgg
name = "Tobiko and Egg Sushi"
desc = "A sushi consisting of shark roe and an egg."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "sushi_TobikoEgg"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("protein", 1)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 2, "protein" = 1)
/obj/item/weapon/reagent_containers/food/snacks/sushi_Tai
name = "Tai Sushi"
desc = "A simple sushi consisting of catfish and rice."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "sushi_Tai"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/sushi_Unagi
name = "Unagi Sushi"
desc = "A simple sushi consisting of eel and rice."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "sushi_Hokki"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- bitesize = 3
\ No newline at end of file
+ bitesize = 3
+ list_reagents = list("nutriment" = 2)
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm
index d403b4aae4b..49cd0c1fa3b 100644
--- a/code/modules/food_and_drinks/food/snacks.dm
+++ b/code/modules/food_and_drinks/food/snacks.dm
@@ -4,7 +4,6 @@
desc = "yummy"
icon = 'icons/obj/food/food.dmi'
icon_state = null
- bitesize = 1
var/bitecount = 0
var/trash = null
var/slice_path
@@ -38,10 +37,10 @@
/obj/item/weapon/reagent_containers/food/snacks/proc/Post_Consume(mob/living/M)
return
-/obj/item/weapon/reagent_containers/food/snacks/attack_self(mob/user as mob)
+/obj/item/weapon/reagent_containers/food/snacks/attack_self(mob/user)
return
-/obj/item/weapon/reagent_containers/food/snacks/attack(mob/M as mob, mob/user as mob, def_zone)
+/obj/item/weapon/reagent_containers/food/snacks/attack(mob/M, mob/user, def_zone)
if(reagents && !reagents.total_volume) //Shouldn't be needed but it checks to see if it has anything left in it.
to_chat(user, "None of [src] left, oh no!")
M.unEquip(src) //so icons update :[
@@ -64,11 +63,11 @@
if(bitecount==0)
return
else if(bitecount==1)
- to_chat(user, "\blue \The [src] was bitten by someone!")
+ to_chat(user, "[src] was bitten by someone!")
else if(bitecount<=3)
- to_chat(user, "\blue \The [src] was bitten [bitecount] times!")
+ to_chat(user, "[src] was bitten [bitecount] times!")
else
- to_chat(user, "\blue \The [src] was bitten multiple times!")
+ to_chat(user, "[src] was bitten multiple times!")
/obj/item/weapon/reagent_containers/food/snacks/attackby(obj/item/weapon/W, mob/user, params)
@@ -93,10 +92,10 @@
"You scoop up some [src] with \the [U]!" \
)
- src.bitecount++
+ bitecount++
U.overlays.Cut()
var/image/I = new(U.icon, "loadedfood")
- I.color = src.filling_color
+ I.color = filling_color
U.overlays += I
var/obj/item/weapon/reagent_containers/food/snacks/collected = new type
@@ -136,7 +135,7 @@
else if(W.w_class <= 2 && istype(src,/obj/item/weapon/reagent_containers/food/snacks/sliceable))
if(!iscarbon(user))
return 1
- to_chat(user, "\red You slip [W] inside [src].")
+ to_chat(user, "You slip [W] inside [src].")
user.unEquip(W)
if((user.client && user.s_active != src))
user.client.screen -= W
@@ -147,28 +146,28 @@
else
return 1
if( \
- !isturf(src.loc) || \
- !(locate(/obj/structure/table) in src.loc) && \
- !(locate(/obj/machinery/optable) in src.loc) && \
- !(locate(/obj/item/weapon/storage/bag/tray) in src.loc) \
+ !isturf(loc) || \
+ !(locate(/obj/structure/table) in loc) && \
+ !(locate(/obj/machinery/optable) in loc) && \
+ !(locate(/obj/item/weapon/storage/bag/tray) in loc) \
)
- to_chat(user, "\red You cannot slice [src] here! You need a table or at least a tray to do it.")
+ to_chat(user, "You cannot slice [src] here! You need a table or at least a tray to do it.")
return 1
var/slices_lost = 0
if(!inaccurate)
user.visible_message( \
- "\blue [user] slices \the [src]!", \
- "\blue You slice \the [src]!" \
+ "[user] slices [src]!", \
+ "You slice [src]!" \
)
else
user.visible_message( \
- "\blue [user] crudely slices \the [src] with [W]!", \
- "\blue You crudely slice \the [src] with your [W]!" \
+ "[user] crudely slices [src] with [W]!", \
+ "You crudely slice [src] with your [W]!" \
)
slices_lost = rand(1,min(1,round(slices_num/2)))
var/reagents_per_slice = reagents.total_volume/slices_num
for(var/i=1 to (slices_num-slices_lost))
- var/obj/slice = new slice_path (src.loc)
+ var/obj/slice = new slice_path (loc)
reagents.trans_to(slice,reagents_per_slice)
qdel(src)
@@ -185,19 +184,19 @@
M.changeNext_move(CLICK_CD_MELEE)
if(iscorgi(M))
if(bitecount >= 4)
- M.visible_message("[M] [pick("burps from enjoyment", "yaps for more", "woofs twice", "looks at the area where \the [src] was")].","You swallow up the last part of \the [src].")
- playsound(src.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
+ M.visible_message("[M] [pick("burps from enjoyment", "yaps for more", "woofs twice", "looks at the area where [src] was")].","You swallow up the last part of [src].")
+ playsound(loc,'sound/items/eatfood.ogg', rand(10,50), 1)
var/mob/living/simple_animal/pet/corgi/C = M
C.adjustBruteLoss(-5)
C.adjustFireLoss(-5)
qdel(src)
else
- M.visible_message("[M] takes a bite of \the [src].","You take a bite of \the [src].")
- playsound(src.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
+ M.visible_message("[M] takes a bite of [src].","You take a bite of [src].")
+ playsound(loc,'sound/items/eatfood.ogg', rand(10,50), 1)
bitecount++
else if(ismouse(M))
var/mob/living/simple_animal/mouse/N = M
- to_chat(N, text("\blue You nibble away at [src]."))
+ to_chat(N, text("You nibble away at [src]."))
if(prob(50))
N.visible_message("[N] nibbles away at [src].", "")
//N.emote("nibbles away at the [src]")
@@ -255,49 +254,8 @@
icon_state = "aesirsalad"
trash = /obj/item/trash/snack_bowl
filling_color = "#468C00"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- reagents.add_reagent("omnizine", 8)
- bitesize = 3
-
-/*
-/obj/item/weapon/reagent_containers/food/snacks/candy
- name = "candy"
- desc = "Nougat, love it or hate it."
- icon_state = "candy"
- trash = /obj/item/trash/candy
- filling_color = "#7D5F46"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 1)
- reagents.add_reagent("sugar", 3)
- bitesize = 2
-
-/obj/item/weapon/reagent_containers/food/snacks/candy/donor
- name = "Donor Candy"
- desc = "A little treat for blood donors."
- trash = /obj/item/trash/candy
- New()
- ..()
- reagents.add_reagent("nutriment", 10)
- reagents.add_reagent("sugar", 3)
- bitesize = 5
-
-/obj/item/weapon/reagent_containers/food/snacks/candy_corn
- name = "candy corn"
- desc = "It's a handful of candy corn. Cannot be stored in a detective's hat, alas."
- icon_state = "candy_corn"
- filling_color = "#FFFCB0"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("sugar", 2)
- bitesize = 2
-*/
+ bitesize = 3
+ list_reagents = list("nutriment" = 8, "omnizine" = 8)
/obj/item/weapon/reagent_containers/food/snacks/chips
name = "chips"
@@ -305,12 +263,7 @@
icon_state = "chips"
trash = /obj/item/trash/chips
filling_color = "#E8C31E"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- reagents.add_reagent("sodiumchloride", 1)
- bitesize = 1
+ list_reagents = list("nutriment" = 3, "sodiumchloride" = 1)
/obj/item/weapon/reagent_containers/food/snacks/cornchips
name = "corn chips"
@@ -318,123 +271,79 @@
icon_state = "chips"
trash = /obj/item/trash/chips
filling_color = "#E8C31E"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- bitesize = 1
+ list_reagents = list("nutriment" = 3)
/obj/item/weapon/reagent_containers/food/snacks/cookie
name = "cookie"
desc = "COOKIE!!!"
icon_state = "COOKIE!!!"
filling_color = "#DBC94F"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 5)
- bitesize = 1
+ list_reagents = list("nutriment" = 5)
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar
name = "Chocolate Bar"
desc = "Such sweet, fattening food."
icon_state = "chocolatebar"
filling_color = "#7D5F46"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("chocolate",4)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 2, "chocolate" = 4)
/obj/item/weapon/reagent_containers/food/snacks/choc_pile //for reagent chocolate being spilled on turfs
name = "Pile of Chocolate"
desc = "A pile of pure chocolate pieces."
icon_state = "cocoa"
filling_color = "#7D5F46"
-
- New()
- ..()
- reagents.add_reagent("chocolate",5) //no longer can be used to generate the reagent infinitely
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("chocolate" = 5)
/obj/item/weapon/reagent_containers/food/snacks/chocolateegg
name = "Chocolate Egg"
desc = "Such sweet, fattening food."
icon_state = "chocolateegg"
filling_color = "#7D5F46"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- reagents.add_reagent("chocolate",4)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 3, "chocolate" = 4)
/obj/item/weapon/reagent_containers/food/snacks/donut
name = "donut"
desc = "Goes great with Robust Coffee."
icon_state = "donut1"
filling_color = "#D9C386"
+ bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/donut/normal
name = "donut"
desc = "Goes great with Robust Coffee."
icon_state = "donut1"
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- reagents.add_reagent("sprinkles", 1)
- src.bitesize = 3
- if(prob(30))
- src.icon_state = "donut2"
- src.name = "frosted donut"
- reagents.add_reagent("sprinkles", 2)
+ list_reagents = list("nutriment" = 3, "sprinkles" = 1)
+
+/obj/item/weapon/reagent_containers/food/snacks/donut/normal/New()
+ ..()
+ if(prob(30))
+ icon_state = "donut2"
+ name = "frosted donut"
+ reagents.add_reagent("sprinkles", 2)
/obj/item/weapon/reagent_containers/food/snacks/donut/sprinkles
name = "frosted donut"
icon_state = "donut2"
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- reagents.add_reagent("sprinkles", 3)
+ list_reagents = list("nutriment" = 3, "sprinkles" = 3)
/obj/item/weapon/reagent_containers/food/snacks/donut/chaos
name = "Chaos Donut"
desc = "Like life, it never quite tastes the same."
icon_state = "donut1"
filling_color = "#ED11E6"
+ bitesize = 10
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("sprinkles", 1)
- bitesize = 10
- var/chaosselect = pick(1,2,3,4,5,6,7,8,9,10)
- switch(chaosselect)
- if(1)
- reagents.add_reagent("nutriment", 3)
- if(2)
- reagents.add_reagent("capsaicin", 3)
- if(3)
- reagents.add_reagent("frostoil", 3)
- if(4)
- reagents.add_reagent("sprinkles", 3)
- if(5)
- reagents.add_reagent("plasma", 3)
- if(6)
- reagents.add_reagent("chocolate", 3)
- if(7)
- reagents.add_reagent("slimejelly", 3)
- if(8)
- reagents.add_reagent("banana", 3)
- if(9)
- reagents.add_reagent("berryjuice", 3)
- if(10)
- reagents.add_reagent("omnizine", 3)
- if(prob(30))
- src.icon_state = "donut2"
- src.name = "Frosted Chaos Donut"
- reagents.add_reagent("sprinkles", 2)
+/obj/item/weapon/reagent_containers/food/snacks/donut/chaos/New()
+ ..()
+ var/extra_reagent = pick("nutriment", "capsaicin", "frostoil", "sprinkles", "plasma", "chocolate", "slimejelly", "banana", "berryjuice", "omnizine")
+ reagents.add_reagent("[extra_reagent]", 3)
+ if(prob(30))
+ icon_state = "donut2"
+ name = "Frosted Chaos Donut"
+ reagents.add_reagent("sprinkles", 2)
/obj/item/weapon/reagent_containers/food/snacks/donut/jelly
@@ -442,85 +351,75 @@
desc = "You jelly?"
icon_state = "jdonut1"
filling_color = "#ED1169"
+ bitesize = 5
+ list_reagents = list("nutriment" = 3, "sprinkles" = 1, "berryjuice" = 5)
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- reagents.add_reagent("sprinkles", 1)
- reagents.add_reagent("berryjuice", 5)
- bitesize = 5
- if(prob(30))
- src.icon_state = "jdonut2"
- src.name = "Frosted Jelly Donut"
- reagents.add_reagent("sprinkles", 2)
+/obj/item/weapon/reagent_containers/food/snacks/donut/jelly/New()
+ ..()
+ if(prob(30))
+ icon_state = "jdonut2"
+ name = "Frosted Jelly Donut"
+ reagents.add_reagent("sprinkles", 2)
/obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly
name = "Jelly Donut"
desc = "You jelly?"
icon_state = "jdonut1"
filling_color = "#ED1169"
+ bitesize = 5
+ list_reagents = list("nutriment" = 3, "sprinkles" = 1, "slimejelly" = 5)
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- reagents.add_reagent("sprinkles", 1)
- reagents.add_reagent("slimejelly", 5)
- bitesize = 5
- if(prob(30))
- src.icon_state = "jdonut2"
- src.name = "Frosted Jelly Donut"
- reagents.add_reagent("sprinkles", 2)
+/obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly/New()
+ ..()
+ if(prob(30))
+ icon_state = "jdonut2"
+ name = "Frosted Jelly Donut"
+ reagents.add_reagent("sprinkles", 2)
/obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly
name = "Jelly Donut"
desc = "You jelly?"
icon_state = "jdonut1"
filling_color = "#ED1169"
+ bitesize = 5
+ list_reagents = list("nutriment" = 3, "sprinkles" = 1, "cherryjelly" = 5)
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- reagents.add_reagent("sprinkles", 1)
- reagents.add_reagent("cherryjelly", 5)
- bitesize = 5
- if(prob(30))
- src.icon_state = "jdonut2"
- src.name = "Frosted Jelly Donut"
- reagents.add_reagent("sprinkles", 2)
+/obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly/New()
+ ..()
+ if(prob(30))
+ icon_state = "jdonut2"
+ name = "Frosted Jelly Donut"
+ reagents.add_reagent("sprinkles", 2)
/obj/item/weapon/reagent_containers/food/snacks/egg
name = "egg"
desc = "An egg!"
icon_state = "egg"
filling_color = "#FDFFD1"
+ list_reagents = list("protein" = 1, "egg" = 5)
- New()
+/obj/item/weapon/reagent_containers/food/snacks/egg/throw_impact(atom/hit_atom)
+ ..()
+ var/turf/T = get_turf(hit_atom)
+ new/obj/effect/decal/cleanable/egg_smudge(T)
+ if(reagents)
+ reagents.reaction(hit_atom, TOUCH)
+ qdel(src)
+
+/obj/item/weapon/reagent_containers/food/snacks/egg/attackby(obj/item/weapon/W, mob/user, params)
+ if(istype( W, /obj/item/toy/crayon ))
+ var/obj/item/toy/crayon/C = W
+ var/clr = C.colourName
+
+ if(!(clr in list("blue","green","mime","orange","purple","rainbow","red","yellow")))
+ to_chat(usr, "The egg refuses to take on this color!")
+ return
+
+ to_chat(usr, "You color \the [src] [clr]")
+ icon_state = "egg-[clr]"
+ item_color = clr
+ else
..()
- reagents.add_reagent("protein", 1)
- reagents.add_reagent("egg", 5)
-
- throw_impact(atom/hit_atom)
- ..()
- var/turf/T = get_turf(hit_atom)
- new/obj/effect/decal/cleanable/egg_smudge(T)
- if(reagents)
- reagents.reaction(hit_atom, TOUCH)
- qdel(src)
-
- attackby(obj/item/weapon/W as obj, mob/user as mob, params)
- if(istype( W, /obj/item/toy/crayon ))
- var/obj/item/toy/crayon/C = W
- var/clr = C.colourName
-
- if(!(clr in list("blue","green","mime","orange","purple","rainbow","red","yellow")))
- to_chat(usr, "\blue The egg refuses to take on this color!")
- return
-
- to_chat(usr, "\blue You color \the [src] [clr]")
- icon_state = "egg-[clr]"
- item_color = clr
- else
- ..()
/obj/item/weapon/reagent_containers/food/snacks/egg/blue
icon_state = "egg-blue"
@@ -559,25 +458,14 @@
desc = "A fried egg, with a touch of salt and pepper."
icon_state = "friedegg"
filling_color = "#FFDF78"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("egg", 5)
- reagents.add_reagent("sodiumchloride", 1)
- reagents.add_reagent("blackpepper", 1)
- bitesize = 1
+ list_reagents = list("nutriment" = 2, "egg" = 5, "sodiumchloride" = 1, "blackpepper" = 1)
/obj/item/weapon/reagent_containers/food/snacks/boiledegg
name = "Boiled egg"
desc = "A hard boiled egg."
icon_state = "egg"
filling_color = "#FFFFFF"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("egg", 5)
+ list_reagents = list("nutriment" = 2, "egg" = 5)
/obj/item/weapon/reagent_containers/food/snacks/organ
@@ -586,11 +474,8 @@
icon = 'icons/obj/surgery.dmi'
icon_state = "appendix"
filling_color = "#E00D34"
-
- New()
- ..()
- reagents.add_reagent("protein", 4)
- src.bitesize = 3
+ bitesize = 3
+ list_reagents = list("protein" = 4)
/obj/item/weapon/reagent_containers/food/snacks/appendix
//yes, this is the same as meat. I might do something different in future
@@ -599,11 +484,8 @@
icon = 'icons/obj/surgery.dmi'
icon_state = "appendix"
filling_color = "#E00D34"
-
- New()
- ..()
- reagents.add_reagent("protein", 3)
- src.bitesize = 3
+ bitesize = 3
+ list_reagents = list("protein" = 3)
/obj/item/weapon/reagent_containers/food/snacks/appendix/inflamed
name = "inflamed appendix"
@@ -616,179 +498,125 @@
icon_state = "tofu"
desc = "We all love tofu."
filling_color = "#FFFEE0"
-
- New()
- ..()
- reagents.add_reagent("plantmatter", 3)
- src.bitesize = 3
+ bitesize = 3
+ list_reagents = list("plantmatter" = 3)
/obj/item/weapon/reagent_containers/food/snacks/fried_tofu
name = "Fried Tofu"
icon_state = "tofu"
desc = "Proof that even vegetarians crave unhealthy foods."
filling_color = "#FFFEE0"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- src.bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 3)
/obj/item/weapon/reagent_containers/food/snacks/tofurkey
name = "Tofurkey"
desc = "A fake turkey made from tofu."
icon_state = "tofurkey"
filling_color = "#FFFEE0"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 12)
- reagents.add_reagent("ether", 3)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 12, "ether" = 3)
/obj/item/weapon/reagent_containers/food/snacks/stuffing
name = "Stuffing"
desc = "Moist, peppery breadcrumbs for filling the body cavities of dead birds. Dig in!"
icon_state = "stuffing"
filling_color = "#C9AC83"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- bitesize = 1
+ list_reagents = list("nutriment" = 3)
/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice
name = "huge mushroom slice"
desc = "A slice from a huge mushroom."
icon_state = "hugemushroomslice"
filling_color = "#E0D7C5"
-
- New()
- ..()
- reagents.add_reagent("plantmatter", 3)
- reagents.add_reagent("psilocybin", 3)
- src.bitesize = 6
+ bitesize = 6
+ list_reagents = list("plantmatter" = 3, "psilocybin" = 3)
/obj/item/weapon/reagent_containers/food/snacks/tomatomeat
name = "tomato slice"
desc = "A slice from a huge tomato"
icon_state = "tomatomeat"
filling_color = "#DB0000"
-
- New()
- ..()
- reagents.add_reagent("protein", 3)
- src.bitesize = 6
+ bitesize = 6
+ list_reagents = list("protein" = 3)
/obj/item/weapon/reagent_containers/food/snacks/bearmeat
name = "bear meat"
desc = "A very manly slab of meat."
icon_state = "bearmeat"
filling_color = "#DB0000"
-
- New()
- ..()
- reagents.add_reagent("protein", 12)
- reagents.add_reagent("methamphetamine", 5)
- src.bitesize = 3
+ bitesize = 3
+ list_reagents = list("protein" = 12, "methamphetamine" = 5)
/obj/item/weapon/reagent_containers/food/snacks/xenomeat
name = "meat"
desc = "A slab of meat"
icon_state = "xenomeat"
filling_color = "#43DE18"
-
- New()
- ..()
- reagents.add_reagent("protein", 3)
- src.bitesize = 6
+ bitesize = 6
+ list_reagents = list("protein" = 3)
/obj/item/weapon/reagent_containers/food/snacks/spidermeat
name = "spider meat"
desc = "A slab of spider meat."
icon_state = "spidermeat"
- New()
- ..()
- reagents.add_reagent("protein", 3)
- reagents.add_reagent("toxin", 3)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("protein" = 3, "toxin" = 3)
/obj/item/weapon/reagent_containers/food/snacks/lizardmeat
name = "mutant lizard meat"
desc = "Seems to be a slab of meat from some mutant lizard thing?"
icon_state = "xenomeat"
filling_color = "#43DE18"
-
- New()
- ..()
- reagents.add_reagent("protein", 3)
- reagents.add_reagent("toxin", 3)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("protein" = 3, "toxin" = 3)
/obj/item/weapon/reagent_containers/food/snacks/spiderleg
name = "spider leg"
desc = "A still twitching leg of a giant spider... you don't really want to eat this, do you?"
icon_state = "spiderleg"
- New()
- ..()
- reagents.add_reagent("protein", 2)
- reagents.add_reagent("toxin", 2)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("protein" = 2, "toxin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/meatball
name = "Meatball"
desc = "A great meal all round."
icon_state = "meatball"
filling_color = "#DB0000"
- New()
- ..()
- reagents.add_reagent("protein", 3)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("protein" = 3)
/obj/item/weapon/reagent_containers/food/snacks/sausage
name = "Sausage"
desc = "A piece of mixed, long meat."
icon_state = "sausage"
filling_color = "#DB0000"
-
- New()
- ..()
- reagents.add_reagent("protein", 6)
- reagents.add_reagent("porktonium", 10)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("protein" = 6, "porktonium" = 10)
/obj/item/weapon/reagent_containers/food/snacks/donkpocket
name = "Donk-pocket"
desc = "The food of choice for the seasoned traitor."
icon_state = "donkpocket"
filling_color = "#DEDEAB"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
+ list_reagents = list("nutriment" = 4)
/obj/item/weapon/reagent_containers/food/snacks/warmdonkpocket
name = "Warm Donk-pocket"
desc = "The food of choice for the seasoned traitor."
icon_state = "donkpocket"
filling_color = "#DEDEAB"
+ list_reagents = list("nutriment" = 4)
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
-
- Post_Consume(mob/living/M)
- M.reagents.add_reagent("omnizine", 15)
+/obj/item/weapon/reagent_containers/food/snacks/warmdonkpocket/Post_Consume(mob/living/M)
+ M.reagents.add_reagent("omnizine", 15)
/obj/item/weapon/reagent_containers/food/snacks/warmdonkpocket_weak
name = "Lightly Warm Donk-pocket"
desc = "The food of choice for the seasoned traitor. This one is lukewarm."
icon_state = "donkpocket"
filling_color = "#DEDEAB"
-
-/obj/item/weapon/reagent_containers/food/snacks/warmdonkpocket_weak/New()
- ..()
- reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("weak_omnizine", 3)
+ list_reagents = list("nutriment" = 4, "weak_omnizine" = 3)
/obj/item/weapon/reagent_containers/food/snacks/syndidonkpocket
name = "Donk-pocket"
@@ -796,42 +624,31 @@
icon_state = "donkpocket"
filling_color = "#DEDEAB"
bitesize = 100 //nom the whole thing at once.
+ list_reagents = list("nutriment" = 1)
- New()
- ..()
- reagents.add_reagent("nutriment", 1)
-
- Post_Consume(mob/living/M)
- M.reagents.add_reagent("omnizine", 15)
- M.reagents.add_reagent("teporone", 15)
- M.reagents.add_reagent("synaptizine", 15)
- M.reagents.add_reagent("salglu_solution", 15)
- M.reagents.add_reagent("salbutamol", 15)
- M.reagents.add_reagent("methamphetamine", 15)
+/obj/item/weapon/reagent_containers/food/snacks/syndidonkpocket/Post_Consume(mob/living/M)
+ M.reagents.add_reagent("omnizine", 15)
+ M.reagents.add_reagent("teporone", 15)
+ M.reagents.add_reagent("synaptizine", 15)
+ M.reagents.add_reagent("salglu_solution", 15)
+ M.reagents.add_reagent("salbutamol", 15)
+ M.reagents.add_reagent("methamphetamine", 15)
/obj/item/weapon/reagent_containers/food/snacks/brainburger
name = "brainburger"
desc = "A strange looking burger. It looks almost sentient."
icon_state = "brainburger"
filling_color = "#F2B6EA"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("prions", 10)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6, "prions" = 10)
/obj/item/weapon/reagent_containers/food/snacks/ghostburger
name = "Ghost Burger"
desc = "Spooky! It doesn't look very filling."
icon_state = "ghostburger"
filling_color = "#FFF2FF"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- bitesize = 2
-
+ bitesize = 2
+ list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/human
var/hname = ""
@@ -842,52 +659,38 @@
name = "-burger"
desc = "A bloody burger."
icon_state = "hburger"
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6)
/obj/item/weapon/reagent_containers/food/snacks/cheeseburger
name = "cheeseburger"
desc = "The cheese adds a good flavor."
icon_state = "cheeseburger"
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
+ list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/monkeyburger
name = "burger"
desc = "The cornerstone of every nutritious breakfast."
icon_state = "hburger"
filling_color = "#D63C3C"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6)
/obj/item/weapon/reagent_containers/food/snacks/tofuburger
name = "Tofu Burger"
desc = "What.. is that meat?"
icon_state = "tofuburger"
filling_color = "#FFFEE0"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6)
/obj/item/weapon/reagent_containers/food/snacks/roburger
name = "roburger"
desc = "The lettuce is the only organic component. Beep."
icon_state = "roburger"
filling_color = "#CCCCCC"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("nanomachines", 10)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 2, "nanomachines" = 10)
/obj/item/weapon/reagent_containers/food/snacks/roburgerbig
name = "roburger"
@@ -895,49 +698,32 @@
icon_state = "roburger"
filling_color = "#CCCCCC"
volume = 100
-
- New()
- ..()
- reagents.add_reagent("nanomachines", 100)
- bitesize = 0.1
+ bitesize = 0.1
+ list_reagents = list("nanomachines" = 100)
/obj/item/weapon/reagent_containers/food/snacks/xenoburger
name = "xenoburger"
desc = "Smells caustic. Tastes like heresy."
icon_state = "xburger"
filling_color = "#43DE18"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 8)
/obj/item/weapon/reagent_containers/food/snacks/clownburger
name = "Clown Burger"
desc = "This tastes funny..."
icon_state = "clownburger"
filling_color = "#FF00FF"
-
- New()
- ..()
-/*
- var/datum/disease/F = new /datum/disease/pierrot_throat(0)
- var/list/data = list("viruses"= list(F))
- reagents.add_reagent("blood", 4, data)
-*/
- reagents.add_reagent("nutriment", 6)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6)
/obj/item/weapon/reagent_containers/food/snacks/mimeburger
name = "Mime Burger"
desc = "Its taste defies language."
icon_state = "mimeburger"
filling_color = "#FFFFFF"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6)
/obj/item/weapon/reagent_containers/food/snacks/omelette
name = "Omelette Du Fromage"
@@ -945,23 +731,15 @@
icon_state = "omelette"
trash = /obj/item/trash/plate
filling_color = "#FFF9A8"
-
- //var/herp = 0
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- bitesize = 1
+ list_reagents = list("nutriment" = 8)
/obj/item/weapon/reagent_containers/food/snacks/muffin
name = "Muffin"
desc = "A delicious and spongy little cake"
icon_state = "muffin"
filling_color = "#E0CF9B"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6)
/obj/item/weapon/reagent_containers/food/snacks/pie
name = "Banana Cream Pie"
@@ -969,17 +747,13 @@
icon_state = "pie"
trash = /obj/item/trash/plate
filling_color = "#FBFFB8"
-
-/obj/item/weapon/reagent_containers/food/snacks/pie/New()
- ..()
- reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("banana",5)
bitesize = 3
+ list_reagents = list("nutriment" = 4, "banana" = 5)
/obj/item/weapon/reagent_containers/food/snacks/pie/throw_impact(atom/hit_atom)
..()
- new/obj/effect/decal/cleanable/pie_smudge(src.loc)
- src.visible_message("\red [src.name] splats.","\red You hear a splat.")
+ new/obj/effect/decal/cleanable/pie_smudge(loc)
+ visible_message("[src] splats.","You hear a splat.")
qdel(src)
/obj/item/weapon/reagent_containers/food/snacks/berryclafoutis
@@ -987,11 +761,8 @@
desc = "No black birds, this is a good sign."
icon_state = "berryclafoutis"
trash = /obj/item/trash/plate
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("berryjuice", 5)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 4, "berryjuice" = 5)
/obj/item/weapon/reagent_containers/food/snacks/waffles
name = "waffles"
@@ -999,11 +770,8 @@
icon_state = "waffles"
trash = /obj/item/trash/waffles
filling_color = "#E6DEB5"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 8)
/obj/item/weapon/reagent_containers/food/snacks/eggplantparm
name = "Eggplant Parmigiana"
@@ -1011,11 +779,8 @@
icon_state = "eggplantparm"
trash = /obj/item/trash/plate
filling_color = "#4D2F5E"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6)
/obj/item/weapon/reagent_containers/food/snacks/soylentgreen
name = "Soylent Green"
@@ -1023,11 +788,8 @@
icon_state = "soylent_green"
trash = /obj/item/trash/waffles
filling_color = "#B8E6B5"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 10)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 10)
/obj/item/weapon/reagent_containers/food/snacks/soylenviridians
name = "Soylen Virdians"
@@ -1035,12 +797,8 @@
icon_state = "soylent_yellow"
trash = /obj/item/trash/waffles
filling_color = "#E6FA61"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 10)
- bitesize = 2
-
+ bitesize = 2
+ list_reagents = list("nutriment" = 10)
/obj/item/weapon/reagent_containers/food/snacks/meatpie
name = "Meat-pie"
@@ -1048,11 +806,8 @@
desc = "An old barber recipe, very delicious!"
trash = /obj/item/trash/plate
filling_color = "#948051"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 10)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 10)
/obj/item/weapon/reagent_containers/food/snacks/tofupie
name = "Tofu-pie"
@@ -1060,42 +815,31 @@
desc = "A delicious tofu pie."
trash = /obj/item/trash/plate
filling_color = "#FFFEE0"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 10)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 10)
/obj/item/weapon/reagent_containers/food/snacks/amanita_pie
name = "amanita pie"
desc = "Sweet and tasty poison pie."
icon_state = "amanita_pie"
filling_color = "#FFCCCC"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 5)
- reagents.add_reagent("amanitin", 3)
- reagents.add_reagent("psilocybin", 1)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 5, "amanitin" = 3, "psilocybin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/plump_pie
name = "plump pie"
desc = "I bet you love stuff made out of plump helmets!"
icon_state = "plump_pie"
filling_color = "#B8279B"
+ bitesize = 2
+ list_reagents = list("nutriment" = 8)
- New()
- ..()
- if(prob(10))
- name = "exceptional plump pie"
- desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!"
- reagents.add_reagent("nutriment", 8)
- reagents.add_reagent("omnizine", 5)
- bitesize = 2
- else
- reagents.add_reagent("nutriment", 8)
- bitesize = 2
+/obj/item/weapon/reagent_containers/food/snacks/plump_pie/New()
+ ..()
+ if(prob(10))
+ name = "exceptional plump pie"
+ desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!" // What
+ reagents.add_reagent("omnizine", 5)
/obj/item/weapon/reagent_containers/food/snacks/xemeatpie
name = "Xeno-pie"
@@ -1103,11 +847,8 @@
desc = "A delicious meatpie. Probably heretical."
trash = /obj/item/trash/plate
filling_color = "#43DE18"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 10)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 10)
/obj/item/weapon/reagent_containers/food/snacks/wingfangchu
name = "Wing Fang Chu"
@@ -1115,12 +856,8 @@
icon_state = "wingfangchu"
trash = /obj/item/trash/snack_bowl
filling_color = "#43DE18"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- bitesize = 2
-
+ bitesize = 2
+ list_reagents = list("nutriment" = 6)
/obj/item/weapon/reagent_containers/food/snacks/human/kabob
name = "-kabob"
@@ -1128,11 +865,8 @@
desc = "A human meat, on a stick."
trash = /obj/item/stack/rods
filling_color = "#A85340"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 8)
/obj/item/weapon/reagent_containers/food/snacks/monkeykabob
name = "Meat-kabob"
@@ -1140,11 +874,8 @@
desc = "Delicious meat, on a stick."
trash = /obj/item/stack/rods
filling_color = "#A85340"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 8)
/obj/item/weapon/reagent_containers/food/snacks/tofukabob
name = "Tofu-kabob"
@@ -1152,11 +883,8 @@
desc = "Vegan meat, on a stick."
trash = /obj/item/stack/rods
filling_color = "#FFFEE0"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 8)
/obj/item/weapon/reagent_containers/food/snacks/popcorn
name = "Popcorn"
@@ -1165,18 +893,18 @@
trash = /obj/item/trash/popcorn
var/unpopped = 0
filling_color = "#FFFAD4"
+ bitesize = 0.1 //this snack is supposed to be eating during looooong time. And this it not dinner food! --rastaf0
+ list_reagents = list("nutriment" = 2)
- New()
- ..()
- unpopped = rand(1,10)
- reagents.add_reagent("nutriment", 2)
- bitesize = 0.1 //this snack is supposed to be eating during looooong time. And this it not dinner food! --rastaf0
- On_Consume(mob/M, mob/user)
- if(prob(unpopped)) //lol ...what's the point?
- to_chat(user, "\red You bite down on an un-popped kernel!")
- unpopped = max(0, unpopped-1)
- ..()
+/obj/item/weapon/reagent_containers/food/snacks/popcorn/New()
+ ..()
+ unpopped = rand(1,10)
+/obj/item/weapon/reagent_containers/food/snacks/popcorn/On_Consume(mob/M, mob/user)
+ if(prob(unpopped)) //lol ...what's the point?
+ to_chat(user, "You bite down on an un-popped kernel!")
+ unpopped = max(0, unpopped-1)
+ ..()
/obj/item/weapon/reagent_containers/food/snacks/sosjerky
name = "Scaredy's Private Reserve Beef Jerky"
@@ -1184,11 +912,8 @@
desc = "Beef jerky made from the finest space cows."
trash = /obj/item/trash/sosjerky
filling_color = "#631212"
-
- New()
- ..()
- reagents.add_reagent("protein", 4)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("protein" = 4)
/obj/item/weapon/reagent_containers/food/snacks/pistachios
name = "Pistachios"
@@ -1196,11 +921,7 @@
desc = "A snack of deliciously salted pistachios. A perfectly valid choice..."
trash = /obj/item/trash/pistachios
filling_color = "#BAD145"
-
- New()
- ..()
- reagents.add_reagent("plantmatter", 6)
- reagents.add_reagent("sodiumchloride", 1)
+ list_reagents = list("plantmatter" = 6, "sodiumchloride" = 1)
/obj/item/weapon/reagent_containers/food/snacks/no_raisin
name = "4no Raisins"
@@ -1208,21 +929,15 @@
desc = "Best raisins in the universe. Not sure why."
trash = /obj/item/trash/raisins
filling_color = "#343834"
-
- New()
- ..()
- reagents.add_reagent("plantmatter", 6)
+ list_reagents = list("plantmatter" = 6)
/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie
name = "Space Twinkie"
icon_state = "space_twinkie"
desc = "Guaranteed to survive longer then you will."
filling_color = "#FFE591"
-
- New()
- ..()
- reagents.add_reagent("sugar", 4)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("sugar" = 4)
/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers
name = "Cheesie Honkers"
@@ -1230,79 +945,53 @@
desc = "Bite sized cheesie snacks that will honk all over your mouth"
trash = /obj/item/trash/cheesie
filling_color = "#FFA305"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("fake_cheese", 2)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 4, "fake_cheese" = 2)
/obj/item/weapon/reagent_containers/food/snacks/chinese/chowmein
name = "chow mein"
desc = "What is in this anyways?"
icon_state = "chinese1"
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("beans", 3)
- reagents.add_reagent("msg",4)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6, "beans" = 3, "msg" = 4)
/obj/item/weapon/reagent_containers/food/snacks/chinese/tao
name = "Admiral Yamamoto carp"
desc = "Tastes like chicken."
icon_state = "chinese2"
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("protein", 2)
- reagents.add_reagent("msg",4)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 4, "protein" = 2, "msg" = 4)
/obj/item/weapon/reagent_containers/food/snacks/chinese/newdles
name = "chinese newdles"
desc = "Made fresh, weekly!"
icon_state = "chinese3"
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("msg",4)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6, "msg" = 4)
/obj/item/weapon/reagent_containers/food/snacks/chinese/rice
name = "fried rice"
desc = "A timeless classic."
icon_state = "chinese4"
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- reagents.add_reagent("rice", 3)
- reagents.add_reagent("msg",4)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 3, "rice" = 3, "msg" = 4)
/obj/item/weapon/reagent_containers/food/snacks/syndicake
name = "Syndi-Cakes"
icon_state = "syndi_cakes"
desc = "An extremely moist snack cake that tastes just as good after being nuked."
filling_color = "#FF5D05"
-
trash = /obj/item/trash/syndi_cakes
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("salglu_solution", 5)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 4, "salglu_solution" = 5)
/obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato
name = "Loaded Baked Potato"
desc = "Totally baked."
icon_state = "loadedbakedpotato"
filling_color = "#9C7A68"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6)
/obj/item/weapon/reagent_containers/food/snacks/fries
name = "Space Fries"
@@ -1310,11 +999,8 @@
icon_state = "fries"
trash = /obj/item/trash/plate
filling_color = "#EDDD00"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 4)
/obj/item/weapon/reagent_containers/food/snacks/soydope
name = "Soy Dope"
@@ -1322,22 +1008,15 @@
icon_state = "soydope"
trash = /obj/item/trash/plate
filling_color = "#C4BF76"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/spagetti
name = "Spagetti"
desc = "A bundle of raw spaghetti."
icon_state = "spagetti"
filling_color = "#EDDD00"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 1)
- bitesize = 1
+ list_reagents = list("nutriment" = 1)
/obj/item/weapon/reagent_containers/food/snacks/cheesyfries
name = "Cheesy Fries"
@@ -1345,38 +1024,30 @@
icon_state = "cheesyfries"
trash = /obj/item/trash/plate
filling_color = "#EDDD00"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6)
/obj/item/weapon/reagent_containers/food/snacks/fortunecookie
name = "Fortune cookie"
desc = "A true prophecy in each cookie!"
icon_state = "fortune_cookie"
filling_color = "#E8E79E"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 3)
/obj/item/weapon/reagent_containers/food/snacks/badrecipe
name = "Burned mess"
desc = "Someone should be demoted from chef for this."
icon_state = "badrecipe"
filling_color = "#211F02"
+ bitesize = 2
+ list_reagents = list("????" = 5, "carbon" = 3)
- New()
- ..()
- reagents.add_reagent("????", 5)
- reagents.add_reagent("carbon", 3)
- bitesize = 2
-
- // it's burned! it should start off being classed as any cooktype that burns
- cooktype["grilled"] = 1
- cooktype["deep fried"] = 1
+/obj/item/weapon/reagent_containers/food/snacks/badrecipe/New()
+ ..()
+ // it's burned! it should start off being classed as any cooktype that burns
+ cooktype["grilled"] = 1
+ cooktype["deep fried"] = 1
/obj/item/weapon/reagent_containers/food/snacks/meatsteak
name = "Meat steak"
@@ -1384,13 +1055,8 @@
icon_state = "meatstake"
trash = /obj/item/trash/plate
filling_color = "#7A3D11"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("sodiumchloride", 1)
- reagents.add_reagent("blackpepper", 1)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 4, "sodiumchloride" = 1, "blackpepper" = 1)
/obj/item/weapon/reagent_containers/food/snacks/spacylibertyduff
name = "Spacy Liberty Duff"
@@ -1398,12 +1064,8 @@
icon_state = "spacylibertyduff"
trash = /obj/item/trash/snack_bowl
filling_color = "#42B873"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("psilocybin", 6)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 6, "psilocybin" = 6)
/obj/item/weapon/reagent_containers/food/snacks/amanitajelly
name = "Amanita Jelly"
@@ -1411,13 +1073,8 @@
icon_state = "amanitajelly"
trash = /obj/item/trash/snack_bowl
filling_color = "#ED0758"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("amanitin", 6)
- reagents.add_reagent("psilocybin", 3)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 6, "amanitin" = 6, "psilocybin" = 3)
/obj/item/weapon/reagent_containers/food/snacks/poppypretzel
name = "Poppy pretzel"
@@ -1425,12 +1082,7 @@
icon_state = "poppypretzel"
bitesize = 2
filling_color = "#916E36"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 5)
- bitesize = 2
-
+ list_reagents = list("nutriment" = 5)
/obj/item/weapon/reagent_containers/food/snacks/meatballsoup
name = "Meatball soup"
@@ -1438,50 +1090,32 @@
icon_state = "meatballsoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#785210"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- reagents.add_reagent("water", 5)
- bitesize = 5
+ bitesize = 5
+ list_reagents = list("nutriment" = 8, "water" = 5)
/obj/item/weapon/reagent_containers/food/snacks/slimesoup
name = "slime soup"
desc = "If no water is available, you may substitute tears."
icon_state = "slimesoup"
filling_color = "#C4DBA0"
-
- New()
- ..()
- reagents.add_reagent("slimejelly", 5)
- reagents.add_reagent("water", 10)
- bitesize = 5
+ bitesize = 5
+ list_reagents = list("slimejelly" = 5, "water" = 10)
/obj/item/weapon/reagent_containers/food/snacks/bloodsoup
name = "Tomato soup"
desc = "Smells like copper"
icon_state = "tomatosoup"
filling_color = "#FF0000"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("blood", 10)
- reagents.add_reagent("water", 5)
- bitesize = 5
+ bitesize = 5
+ list_reagents = list("nutriment" = 2, "blood" = 10, "water" = 5)
/obj/item/weapon/reagent_containers/food/snacks/clownstears
name = "Clown's Tears"
desc = "Not very funny."
icon_state = "clownstears"
filling_color = "#C4FBFF"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("banana", 5)
- reagents.add_reagent("water", 10)
- bitesize = 5
+ bitesize = 5
+ list_reagents = list("nutriment" = 4, "banana" = 5, "water" = 10)
/obj/item/weapon/reagent_containers/food/snacks/vegetablesoup
name = "Vegetable soup"
@@ -1489,12 +1123,8 @@
icon_state = "vegetablesoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#AFC4B5"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- reagents.add_reagent("water", 5)
- bitesize = 5
+ bitesize = 5
+ list_reagents = list("nutriment" = 8, "water" = 5)
/obj/item/weapon/reagent_containers/food/snacks/nettlesoup
name = "Nettle soup"
@@ -1502,13 +1132,8 @@
icon_state = "nettlesoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#AFC4B5"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- reagents.add_reagent("water", 5)
- reagents.add_reagent("omnizine", 5)
- bitesize = 5
+ bitesize = 5
+ list_reagents = list("nutriment" = 8, "water" = 5, "omnizine" = 5)
/obj/item/weapon/reagent_containers/food/snacks/mysterysoup
name = "Mystery soup"
@@ -1516,46 +1141,46 @@
icon_state = "mysterysoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#F082FF"
+ bitesize = 5
- New()
- ..()
- var/mysteryselect = pick(1,2,3,4,5,6,7,8,9,10)
- switch(mysteryselect)
- if(1)
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("capsaicin", 3)
- reagents.add_reagent("tomatojuice", 2)
- if(2)
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("frostoil", 3)
- reagents.add_reagent("tomatojuice", 2)
- if(3)
- reagents.add_reagent("nutriment", 5)
- reagents.add_reagent("water", 5)
- reagents.add_reagent("omnizine", 5)
- if(4)
- reagents.add_reagent("nutriment", 5)
- reagents.add_reagent("water", 10)
- if(5)
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("banana", 10)
- if(6)
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("blood", 10)
- if(7)
- reagents.add_reagent("slimejelly", 10)
- reagents.add_reagent("water", 10)
- if(8)
- reagents.add_reagent("carbon", 10)
- reagents.add_reagent("toxin", 10)
- if(9)
- reagents.add_reagent("nutriment", 5)
- reagents.add_reagent("tomatojuice", 10)
- if(10)
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("tomatojuice", 5)
- reagents.add_reagent("oculine", 5)
- bitesize = 5
+/obj/item/weapon/reagent_containers/food/snacks/mysterysoup/New()
+ ..()
+ var/mysteryselect = pick(1,2,3,4,5,6,7,8,9,10)
+ switch(mysteryselect)
+ if(1)
+ reagents.add_reagent("nutriment", 6)
+ reagents.add_reagent("capsaicin", 3)
+ reagents.add_reagent("tomatojuice", 2)
+ if(2)
+ reagents.add_reagent("nutriment", 6)
+ reagents.add_reagent("frostoil", 3)
+ reagents.add_reagent("tomatojuice", 2)
+ if(3)
+ reagents.add_reagent("nutriment", 5)
+ reagents.add_reagent("water", 5)
+ reagents.add_reagent("omnizine", 5)
+ if(4)
+ reagents.add_reagent("nutriment", 5)
+ reagents.add_reagent("water", 10)
+ if(5)
+ reagents.add_reagent("nutriment", 2)
+ reagents.add_reagent("banana", 10)
+ if(6)
+ reagents.add_reagent("nutriment", 6)
+ reagents.add_reagent("blood", 10)
+ if(7)
+ reagents.add_reagent("slimejelly", 10)
+ reagents.add_reagent("water", 10)
+ if(8)
+ reagents.add_reagent("carbon", 10)
+ reagents.add_reagent("toxin", 10)
+ if(9)
+ reagents.add_reagent("nutriment", 5)
+ reagents.add_reagent("tomatojuice", 10)
+ if(10)
+ reagents.add_reagent("nutriment", 6)
+ reagents.add_reagent("tomatojuice", 5)
+ reagents.add_reagent("oculine", 5)
/obj/item/weapon/reagent_containers/food/snacks/wishsoup
name = "Wish Soup"
@@ -1563,14 +1188,14 @@
icon_state = "wishsoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#D1F4FF"
+ bitesize = 5
+ list_reagents = list("water" = 10)
- New()
- ..()
- reagents.add_reagent("water", 10)
- bitesize = 5
- if(prob(25))
- src.desc = "A wish come true!"
- reagents.add_reagent("nutriment", 8)
+/obj/item/weapon/reagent_containers/food/snacks/wishsoup/New()
+ ..()
+ if(prob(25))
+ desc = "A wish come true!" // hue
+ reagents.add_reagent("nutriment", 8)
/obj/item/weapon/reagent_containers/food/snacks/hotchili
name = "Hot Chili"
@@ -1578,50 +1203,31 @@
icon_state = "hotchili"
trash = /obj/item/trash/snack_bowl
filling_color = "#FF3C00"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("capsaicin", 3)
- reagents.add_reagent("tomatojuice", 2)
- bitesize = 5
-
+ bitesize = 5
+ list_reagents = list("nutriment" = 6, "capsaicin" = 3, "tomatojuice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/coldchili
name = "Cold Chili"
desc = "This slush is barely a liquid!"
icon_state = "coldchili"
filling_color = "#2B00FF"
-
trash = /obj/item/trash/snack_bowl
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("frostoil", 3)
- reagents.add_reagent("tomatojuice", 2)
- bitesize = 5
+ bitesize = 5
+ list_reagents = list("nutriment" = 6, "frostoil" = 3, "tomatojuice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/raw_bacon
name = "raw bacon"
desc = "It's fleshy and pink!"
icon_state = "raw_bacon"
bitesize = 2
- New()
- ..()
- reagents.add_reagent("nutriment", 1)
- reagents.add_reagent("porktonium", 10)
+ list_reagents = list("nutriment" = 1, "porktonium" = 10)
/obj/item/weapon/reagent_containers/food/snacks/bacon
name = "bacon"
desc = "It looks juicy and tastes amazing!"
icon_state = "bacon2"
bitesize = 2
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("porktonium", 10)
- reagents.add_reagent("msg", 4)
-
+ list_reagents = list("nutriment" = 4, "porktonium" = 10, "msg" = 4)
/obj/item/weapon/reagent_containers/food/snacks/telebacon
name = "Tele Bacon"
@@ -1629,15 +1235,16 @@
icon_state = "bacon"
var/obj/item/device/radio/beacon/bacon/baconbeacon
bitesize = 2
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("porktonium", 10)
- baconbeacon = new /obj/item/device/radio/beacon/bacon(src)
- On_Consume(mob/M, mob/user)
- if(!reagents.total_volume)
- baconbeacon.loc = user
- baconbeacon.digest_delay()
+ list_reagents = list("nutriment" = 4, "porktonium" = 10)
+
+/obj/item/weapon/reagent_containers/food/snacks/telebacon/New()
+ ..()
+ baconbeacon = new /obj/item/device/radio/beacon/bacon(src)
+
+/obj/item/weapon/reagent_containers/food/snacks/telebacon/On_Consume(mob/M, mob/user)
+ if(!reagents.total_volume)
+ baconbeacon.loc = user
+ baconbeacon.digest_delay()
/obj/item/weapon/reagent_containers/food/snacks/monkeycube
@@ -1647,13 +1254,11 @@
bitesize = 12
filling_color = "#ADAC7F"
var/monkey_type = "Monkey"
-
-/obj/item/weapon/reagent_containers/food/snacks/monkeycube/New()
- ..()
- reagents.add_reagent("protein",10)
+ list_reagents = list("protein" = 10)
/obj/item/weapon/reagent_containers/food/snacks/monkeycube/afterattack(obj/O, mob/user, proximity)
- if(!proximity) return
+ if(!proximity)
+ return
if(istype(O,/obj/structure/sink) && !wrapped)
to_chat(user, "You place [src] under a stream of water...")
user.drop_item()
@@ -1737,22 +1342,16 @@
desc = "This is absolutely Ei Nath."
icon_state = "spellburger"
filling_color = "#D505FF"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6)
/obj/item/weapon/reagent_containers/food/snacks/bigbiteburger
name = "Big Bite Burger"
desc = "Forget the Big Mac. THIS is the future!"
icon_state = "bigbiteburger"
filling_color = "#E3D681"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 14)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 14)
/obj/item/weapon/reagent_containers/food/snacks/enchiladas
name = "Enchiladas"
@@ -1760,12 +1359,8 @@
icon_state = "enchiladas"
trash = /obj/item/trash/tray
filling_color = "#A36A1F"
-
- New()
- ..()
- reagents.add_reagent("nutriment",8)
- reagents.add_reagent("capsaicin", 6)
- bitesize = 4
+ bitesize = 4
+ list_reagents = list("nutriment" = 8, "capsaicin" = 6)
/obj/item/weapon/reagent_containers/food/snacks/burrito
name = "Burrito"
@@ -1773,10 +1368,7 @@
icon_state = "burrito"
trash = /obj/item/trash/plate
filling_color = "#A36A1F"
-
-/obj/item/weapon/reagent_containers/food/snacks/burrito/New()
- ..()
- reagents.add_reagent("nutriment", 5)
+ list_reagents = list("nutriment" = 5)
/obj/item/weapon/reagent_containers/food/snacks/chimichanga
name = "Chimichanga"
@@ -1784,11 +1376,7 @@
icon_state = "chimichanga"
trash = /obj/item/trash/plate
filling_color = "#A36A1F"
-
-/obj/item/weapon/reagent_containers/food/snacks/chimichanga/New()
- ..()
- reagents.add_reagent("omnizine", 4) //Deadpool reference. Deal with it.
- reagents.add_reagent("cheese", 2)
+ list_reagents = list("omnizine" = 4, "cheese" = 2) //Deadpool reference. Deal with it.
/obj/item/weapon/reagent_containers/food/snacks/monkeysdelight
name = "monkey's Delight"
@@ -1796,27 +1384,16 @@
icon_state = "monkeysdelight"
trash = /obj/item/trash/tray
filling_color = "#5C3C11"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 10)
- reagents.add_reagent("banana", 5)
- reagents.add_reagent("blackpepper", 1)
- reagents.add_reagent("sodiumchloride", 1)
- bitesize = 6
+ bitesize = 6
+ list_reagents = list("nutriment" = 10, "banana" = 5, "blackpepper" = 1, "sodiumchloride" = 1)
/obj/item/weapon/reagent_containers/food/snacks/baguette
name = "Baguette"
desc = "Bon appetit!"
icon_state = "baguette"
filling_color = "#E3D796"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("blackpepper", 1)
- reagents.add_reagent("sodiumchloride", 1)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 6, "blackpepper" = 1, "sodiumchloride" = 1)
/obj/item/weapon/reagent_containers/food/snacks/sandwich
name = "Sandwich"
@@ -1824,11 +1401,8 @@
icon_state = "sandwich"
trash = /obj/item/trash/plate
filling_color = "#D9BE29"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6)
/obj/item/weapon/reagent_containers/food/snacks/toastedsandwich
name = "Toasted Sandwich"
@@ -1836,12 +1410,8 @@
icon_state = "toastedsandwich"
trash = /obj/item/trash/plate
filling_color = "#D9BE29"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("carbon", 2)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6, "carbon" = 2)
/obj/item/weapon/reagent_containers/food/snacks/grilledcheese
name = "Grilled Cheese Sandwich"
@@ -1849,11 +1419,8 @@
icon_state = "toastedsandwich"
trash = /obj/item/trash/plate
filling_color = "#D9BE29"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 7)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 7) //why make a regualr sandwhich when you can make grilled cheese, with this nutriment value?
/obj/item/weapon/reagent_containers/food/snacks/tomatosoup
name = "Tomato Soup"
@@ -1861,12 +1428,8 @@
icon_state = "tomatosoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#D92929"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 5)
- reagents.add_reagent("tomatojuice", 10)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 5, "tomatojuice" = 10)
/obj/item/weapon/reagent_containers/food/snacks/rofflewaffles
name = "Roffle Waffles"
@@ -1874,26 +1437,16 @@
icon_state = "rofflewaffles"
trash = /obj/item/trash/waffles
filling_color = "#FF00F7"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- reagents.add_reagent("psilocybin", 8)
- bitesize = 4
+ bitesize = 4
+ list_reagents = list("nutriment" = 8, "psilocybin" = 8)
/obj/item/weapon/reagent_containers/food/snacks/stew
name = "Stew"
desc = "A nice and warm stew. Healthy and strong."
icon_state = "stew"
filling_color = "#9E673A"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 10)
- reagents.add_reagent("tomatojuice", 5)
- reagents.add_reagent("oculine", 5)
- reagents.add_reagent("water", 5)
- bitesize = 10
+ bitesize = 10
+ list_reagents = list("nutriment" = 10, "tomatojuice" = 5, "oculine" = 5, "water" = 5)
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast
name = "Jellied Toast"
@@ -1901,63 +1454,44 @@
icon_state = "jellytoast"
trash = /obj/item/trash/plate
filling_color = "#B572AB"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 1)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 1)
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry
- New()
- ..()
- reagents.add_reagent("cherryjelly", 5)
+ list_reagents = list("nutriment" = 1, "cherryjelly" = 5)
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/slime
- New()
- ..()
- reagents.add_reagent("slimejelly", 5)
+ list_reagents = list("nutriment" = 1, "slimejelly" = 5)
/obj/item/weapon/reagent_containers/food/snacks/jellyburger
name = "Jelly Burger"
desc = "Culinary delight..?"
icon_state = "jellyburger"
filling_color = "#B572AB"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 5)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 5)
/obj/item/weapon/reagent_containers/food/snacks/jellyburger/slime
- New()
- ..()
- reagents.add_reagent("slimejelly", 5)
+ list_reagents = list("nutriment" = 5, "slimejelly" = 5)
/obj/item/weapon/reagent_containers/food/snacks/jellyburger/cherry
- New()
- ..()
- reagents.add_reagent("cherryjelly", 5)
+ list_reagents = list("nutriment" = 5, "cherryjelly" = 5)
/obj/item/weapon/reagent_containers/food/snacks/milosoup
name = "Milosoup"
desc = "The universes best soup! Yum!!!"
icon_state = "milosoup"
trash = /obj/item/trash/snack_bowl
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- reagents.add_reagent("water", 5)
- bitesize = 4
+ bitesize = 4
+ list_reagents = list("nutriment" = 8, "water" = 5)
/obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat
name = "Stewed Soy Meat"
desc = "Even non-vegetarians will LOVE this!"
icon_state = "stewedsoymeat"
trash = /obj/item/trash/plate
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 8)
/obj/item/weapon/reagent_containers/food/snacks/boiledspagetti
name = "Boiled Spagetti"
@@ -1965,11 +1499,8 @@
icon_state = "spagettiboiled"
trash = /obj/item/trash/plate
filling_color = "#FCEE81"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/boiledrice
name = "Boiled Rice"
@@ -1977,11 +1508,8 @@
icon_state = "boiledrice"
trash = /obj/item/trash/snack_bowl
filling_color = "#FFFBDB"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/ricepudding
name = "Rice Pudding"
@@ -1989,11 +1517,8 @@
icon_state = "rpudding"
trash = /obj/item/trash/snack_bowl
filling_color = "#FFFBDB"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 4)
/obj/item/weapon/reagent_containers/food/snacks/pastatomato
name = "Spagetti"
@@ -2001,12 +1526,8 @@
icon_state = "pastatomato"
trash = /obj/item/trash/plate
filling_color = "#DE4545"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("tomatojuice", 10)
- bitesize = 4
+ bitesize = 4
+ list_reagents = list("nutriment" = 6, "tomatojuice" = 10)
/obj/item/weapon/reagent_containers/food/snacks/meatballspagetti
name = "Spagetti & Meatballs"
@@ -2014,35 +1535,24 @@
icon_state = "meatballspagetti"
trash = /obj/item/trash/plate
filling_color = "#DE4545"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- reagents.add_reagent("synaptizine", 5)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 8, "synaptizine" = 5)
/obj/item/weapon/reagent_containers/food/snacks/spesslaw
name = "Spesslaw"
desc = "A lawyers favourite"
icon_state = "spesslaw"
filling_color = "#DE4545"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- reagents.add_reagent("synaptizine", 10)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 8, "synaptizine" = 10)
/obj/item/weapon/reagent_containers/food/snacks/poppypretzel
name = "Poppy Pretzel"
desc = "A large soft pretzel full of POP!"
icon_state = "poppypretzel"
filling_color = "#AB7D2E"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 5)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 5)
/obj/item/weapon/reagent_containers/food/snacks/carrotfries
name = "Carrot Fries"
@@ -2050,68 +1560,48 @@
icon_state = "carrotfries"
trash = /obj/item/trash/plate
filling_color = "#FAA005"
-
- New()
- ..()
- reagents.add_reagent("plantmatter", 3)
- reagents.add_reagent("oculine", 3)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("plantmatter" = 3, "oculine" = 3)
/obj/item/weapon/reagent_containers/food/snacks/superbiteburger
name = "Super Bite Burger"
desc = "This is a mountain of a burger. FOOD!"
icon_state = "superbiteburger"
filling_color = "#CCA26A"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 50)
- bitesize = 10
+ bitesize = 10
+ list_reagents = list("nutriment" = 50)
/obj/item/weapon/reagent_containers/food/snacks/candiedapple
name = "Candied Apple"
desc = "An apple coated in sugary sweetness."
icon_state = "candiedapple"
filling_color = "#F21873"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 3) // A candy apple without sugar...
/obj/item/weapon/reagent_containers/food/snacks/applepie
name = "Apple Pie"
desc = "A pie containing sweet sweet love... or apple."
icon_state = "applepie"
filling_color = "#E0EDC5"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
- bitesize = 3
-
+ bitesize = 3
+ list_reagents = list("nutriment" = 4)
/obj/item/weapon/reagent_containers/food/snacks/cherrypie
name = "Cherry Pie"
desc = "Taste so good, make a grown man cry."
icon_state = "cherrypie"
filling_color = "#FF525A"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 4)
/obj/item/weapon/reagent_containers/food/snacks/twobread
name = "Two Bread"
desc = "It is very bitter and winy."
icon_state = "twobread"
filling_color = "#DBCC9A"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich
name = "Jelly Sandwich"
@@ -2119,41 +1609,28 @@
icon_state = "jellysandwich"
trash = /obj/item/trash/plate
filling_color = "#9E3A78"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/slime
- New()
- ..()
- reagents.add_reagent("slimejelly", 5)
+ list_reagents = list("nutriment" = 2, "slimejelly" = 5)
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry
- New()
- ..()
- reagents.add_reagent("cherryjelly", 5)
+ list_reagents = list("nutriment" = 2, "cherryjelly" = 5)
/obj/item/weapon/reagent_containers/food/snacks/boiledslimecore
name = "Boiled Slime Core"
desc = "A boiled red thing."
icon_state = "boiledrorocore"
- New()
- ..()
- reagents.add_reagent("slimejelly", 5)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("slimejelly" = 5)
/obj/item/weapon/reagent_containers/food/snacks/mint
name = "mint"
desc = "it is only wafer thin."
icon_state = "mint"
filling_color = "#F2F2F2"
-
- New()
- ..()
- reagents.add_reagent("minttoxin", 1)
- bitesize = 1
+ list_reagents = list("minttoxin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/mushroomsoup
name = "chantrelle soup"
@@ -2161,29 +1638,24 @@
icon_state = "mushroomsoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#E386BF"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 8)
/obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit
name = "plump helmet biscuit"
desc = "This is a finely-prepared plump helmet biscuit. The ingredients are exceptionally minced plump helmet, and well-minced dwarven wheat flour."
icon_state = "phelmbiscuit"
filling_color = "#CFB4C4"
+ bitesize = 2
+ list_reagents = list("nutriment" = 5)
- New()
- ..()
- if(prob(10))
- name = "exceptional plump helmet biscuit"
- desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!"
- reagents.add_reagent("nutriment", 8)
- reagents.add_reagent("omnizine", 5)
- bitesize = 2
- else
- reagents.add_reagent("nutriment", 5)
- bitesize = 2
+/obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit/New()
+ ..()
+ if(prob(10))
+ name = "exceptional plump helmet biscuit"
+ desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!" // Is this a reference?
+ reagents.add_reagent("nutriment", 3)
+ reagents.add_reagent("omnizine", 5)
/obj/item/weapon/reagent_containers/food/snacks/chawanmushi
name = "chawanmushi"
@@ -2191,11 +1663,7 @@
icon_state = "chawanmushi"
trash = /obj/item/trash/snack_bowl
filling_color = "#F0F2E4"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 5)
- bitesize = 1
+ list_reagents = list("nutriment" = 5)
/obj/item/weapon/reagent_containers/food/snacks/beetsoup
name = "beet soup"
@@ -2203,24 +1671,24 @@
icon_state = "beetsoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#FAC9FF"
+ bitesize = 2
+ list_reagents = list("nutriment" = 8)
- New()
- ..()
- switch(rand(1,6))
- if(1)
- name = "borsch"
- if(2)
- name = "bortsch"
- if(3)
- name = "borstch"
- if(4)
- name = "borsh"
- if(5)
- name = "borshch"
- if(6)
- name = "borscht"
- reagents.add_reagent("nutriment", 8)
- bitesize = 2
+/obj/item/weapon/reagent_containers/food/snacks/beetsoup/New()
+ ..()
+ switch(rand(1,6))
+ if(1)
+ name = "borsch"
+ if(2)
+ name = "bortsch"
+ if(3)
+ name = "borstch"
+ if(4)
+ name = "borsh"
+ if(5)
+ name = "borshch"
+ if(6)
+ name = "borscht"
/obj/item/weapon/reagent_containers/food/snacks/herbsalad
name = "herb salad"
@@ -2228,11 +1696,8 @@
icon_state = "herbsalad"
trash = /obj/item/trash/snack_bowl
filling_color = "#76B87F"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 8)
/obj/item/weapon/reagent_containers/food/snacks/validsalad
name = "valid salad"
@@ -2240,12 +1705,8 @@
icon_state = "validsalad"
trash = /obj/item/trash/snack_bowl
filling_color = "#76B87F"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- reagents.add_reagent("omnizine", 5)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 8, "omnizine" = 5)
/obj/item/weapon/reagent_containers/food/snacks/appletart
name = "golden apple streusel tart"
@@ -2253,33 +1714,24 @@
icon_state = "gappletart"
trash = /obj/item/trash/plate
filling_color = "#FFFF00"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 8)
- reagents.add_reagent("gold", 5)
- spawn(1)
- reagents.del_reagent("egg")
- reagents.update_total()
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 8, "gold" = 5)
/obj/item/weapon/reagent_containers/food/snacks/dough_ball
name = "ball of raw dough"
desc = "A ball of raw dough, ready to be molded into new recipes."
icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "dough"
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- bitesize = 1
- attackby(obj/item/weapon/W as obj, mob/user as mob, params)
- if(istype(W,/obj/item/weapon/kitchen/rollingpin))
- user.visible_message( \
- "[user] flattens the dough with the rolling pin!", \
- "\blue You flatten the dough with your rolling pin!" \
- )
- new /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough(src.loc)
- qdel(src)
+ list_reagents = list("nutriment" = 3)
+
+/obj/item/weapon/reagent_containers/food/snacks/dough_ball/attackby(obj/item/weapon/W, mob/user, params)
+ if(istype(W,/obj/item/weapon/kitchen/rollingpin))
+ user.visible_message( \
+ "[user] flattens the dough with the rolling pin!", \
+ "You flatten the dough with your rolling pin!" \
+ )
+ new /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough(loc)
+ qdel(src)
/////////////////////////////////////////////////Sliceable////////////////////////////////////////
// All the food items that can be sliced into smaller bits like Meatbread and Cheesewheels
@@ -2293,10 +1745,7 @@
icon_state = "flatdough"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/doughslice
slices_num = 3
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- bitesize = 1
+ list_reagents = list("nutriment" = 3)
/obj/item/weapon/reagent_containers/food/snacks/doughslice
name = "slice of dough"
@@ -2312,11 +1761,8 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice
slices_num = 5
filling_color = "#FF7575"
- New()
- ..()
- reagents.add_reagent("protein", 20)
- reagents.add_reagent("nutriment", 10)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("protein" = 20, "nutriment" = 10)
/obj/item/weapon/reagent_containers/food/snacks/meatbreadslice
name = "meatbread slice"
@@ -2333,11 +1779,8 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice
slices_num = 5
filling_color = "#8AFF75"
- New()
- ..()
- reagents.add_reagent("protein", 20)
- reagents.add_reagent("nutriment", 10)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("protein" = 20, "nutriment" = 10)
/obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice
name = "xenomeatbread slice"
@@ -2353,12 +1796,8 @@
icon_state = "spidermeatbread"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/spidermeatbreadslice
slices_num = 5
- New()
- ..()
- reagents.add_reagent("protein", 20)
- reagents.add_reagent("nutriment", 10)
- reagents.add_reagent("toxin", 15)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("protein" = 20, "nutriment" = 10, "toxin" = 15)
/obj/item/weapon/reagent_containers/food/snacks/spidermeatbreadslice
name = "spider meat bread slice"
@@ -2366,9 +1805,7 @@
icon_state = "xenobreadslice"
trash = /obj/item/trash/plate
bitesize = 2
- New()
- ..()
- reagents.add_reagent("toxin", 2)
+ list_reagents = list("toxin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread
name = "Banana-nut bread"
@@ -2377,11 +1814,8 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/bananabreadslice
slices_num = 5
filling_color = "#EDE5AD"
- New()
- ..()
- reagents.add_reagent("banana", 20)
- reagents.add_reagent("nutriment", 20)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("banana" = 20, "nutriment" = 20)
/obj/item/weapon/reagent_containers/food/snacks/bananabreadslice
name = "Banana-nut bread slice"
@@ -2398,10 +1832,8 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice
slices_num = 5
filling_color = "#F7FFE0"
- New()
- ..()
- reagents.add_reagent("nutriment", 30)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 30)
/obj/item/weapon/reagent_containers/food/snacks/tofubreadslice
name = "Tofubread slice"
@@ -2411,7 +1843,6 @@
filling_color = "#F7FFE0"
bitesize = 2
-
/obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake
name = "Carrot Cake"
desc = "A favorite desert of a certain wascally wabbit. Not a lie."
@@ -2419,11 +1850,8 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice
slices_num = 5
filling_color = "#FFD675"
- New()
- ..()
- reagents.add_reagent("nutriment", 25)
- reagents.add_reagent("oculine", 10)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 25, "oculine" = 10)
/obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice
name = "Carrot Cake slice"
@@ -2440,12 +1868,8 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/braincakeslice
slices_num = 5
filling_color = "#E6AEDB"
- New()
- ..()
- reagents.add_reagent("protein", 15)
- reagents.add_reagent("nutriment", 10)
- reagents.add_reagent("mannitol", 10)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("protein" = 15, "nutriment" = 10, "mannitol" = 10)
/obj/item/weapon/reagent_containers/food/snacks/braincakeslice
name = "Brain Cake slice"
@@ -2462,10 +1886,8 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice
slices_num = 5
filling_color = "#FAF7AF"
- New()
- ..()
- reagents.add_reagent("nutriment", 25)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 25)
/obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice
name = "Cheese Cake slice"
@@ -2482,9 +1904,7 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/plaincakeslice
slices_num = 5
filling_color = "#F7EDD5"
- New()
- ..()
- reagents.add_reagent("nutriment", 20)
+ list_reagents = list("nutriment" = 20)
/obj/item/weapon/reagent_containers/food/snacks/plaincakeslice
name = "Vanilla Cake slice"
@@ -2501,9 +1921,7 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/orangecakeslice
slices_num = 5
filling_color = "#FADA8E"
- New()
- ..()
- reagents.add_reagent("nutriment", 20)
+ list_reagents = list("nutriment" = 20)
/obj/item/weapon/reagent_containers/food/snacks/orangecakeslice
name = "Orange Cake slice"
@@ -2520,9 +1938,7 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/limecakeslice
slices_num = 5
filling_color = "#CBFA8E"
- New()
- ..()
- reagents.add_reagent("nutriment", 20)
+ list_reagents = list("nutriment" = 20)
/obj/item/weapon/reagent_containers/food/snacks/limecakeslice
name = "Lime Cake slice"
@@ -2539,9 +1955,7 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/lemoncakeslice
slices_num = 5
filling_color = "#FAFA8E"
- New()
- ..()
- reagents.add_reagent("nutriment", 20)
+ list_reagents = list("nutriment" = 20)
/obj/item/weapon/reagent_containers/food/snacks/lemoncakeslice
name = "Lemon Cake slice"
@@ -2558,10 +1972,7 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/chocolatecakeslice
slices_num = 5
filling_color = "#805930"
- New()
- ..()
- reagents.add_reagent("nutriment", 20)
- reagents.add_reagent("chocolate",20)
+ list_reagents = list("nutriment" = 20, "chocolate" = 20)
/obj/item/weapon/reagent_containers/food/snacks/chocolatecakeslice
name = "Chocolate Cake slice"
@@ -2578,11 +1989,8 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
slices_num = 5
filling_color = "#FFF700"
- New()
- ..()
- reagents.add_reagent("nutriment", 20)
- reagents.add_reagent("cheese", 20)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 20, "cheese" = 20)
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge
name = "Cheese wedge"
@@ -2597,12 +2005,7 @@
icon_state = "weirdcheesewedge"
filling_color = "#00FF33"
bitesize = 2
- New()
- ..()
- reagents.add_reagent("mercury", 5)
- reagents.add_reagent("lsd", 5)
- reagents.add_reagent("ethanol", 5)
- reagents.add_reagent("weird_cheese", 5)
+ list_reagents = list("mercury" = 5, "lsd" = 5, "ethanol" = 5, "weird_cheese" = 5)
/obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake
name = "Birthday Cake"
@@ -2611,11 +2014,8 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/birthdaycakeslice
slices_num = 5
filling_color = "#FFD6D6"
- New()
- ..()
- reagents.add_reagent("nutriment", 20)
- reagents.add_reagent("sprinkles", 10)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 20, "sprinkles" = 10)
/obj/item/weapon/reagent_containers/food/snacks/birthdaycakeslice
name = "Birthday Cake slice"
@@ -2632,14 +2032,8 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice
slices_num = 6
filling_color = "#FFE396"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- spawn(1)
- reagents.del_reagent("egg")
- reagents.update_total()
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6)
/obj/item/weapon/reagent_containers/food/snacks/breadslice
name = "Bread slice"
@@ -2648,10 +2042,7 @@
trash = /obj/item/trash/plate
filling_color = "#D27332"
bitesize = 2
-
- New()
- ..()
- reagents.add_reagent("bread", 5)
+ list_reagents = list("bread" = 5)
/obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread
name = "Cream Cheese Bread"
@@ -2660,10 +2051,8 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice
slices_num = 5
filling_color = "#FFF896"
- New()
- ..()
- reagents.add_reagent("nutriment", 20)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 20)
/obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice
name = "Cream Cheese Bread slice"
@@ -2673,7 +2062,6 @@
filling_color = "#FFF896"
bitesize = 2
-
/obj/item/weapon/reagent_containers/food/snacks/watermelonslice
name = "Watermelon Slice"
desc = "A slice of watery goodness."
@@ -2681,7 +2069,6 @@
filling_color = "#FF3867"
bitesize = 2
-
/obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake
name = "Apple Cake"
desc = "A cake centred with Apple"
@@ -2689,9 +2076,7 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/applecakeslice
slices_num = 5
filling_color = "#EBF5B8"
- New()
- ..()
- reagents.add_reagent("nutriment", 15)
+ list_reagents = list("nutriment" = 15)
/obj/item/weapon/reagent_containers/food/snacks/applecakeslice
name = "Apple Cake slice"
@@ -2708,10 +2093,7 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice
slices_num = 5
filling_color = "#F5B951"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 15)
+ list_reagents = list("nutriment" = 15)
/obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice
name = "Pumpkin Pie slice"
@@ -2726,10 +2108,7 @@
desc = "It's a salted cracker."
icon_state = "cracker"
filling_color = "#F5DEB8"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 1)
+ list_reagents = list("nutriment" = 1)
/obj/item/weapon/reagent_containers/food/snacks/rawcutlet
name = "raw cutlet"
@@ -2737,17 +2116,16 @@
icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "rawcutlet"
bitesize = 1
- New()
- ..()
- reagents.add_reagent("protein", 1)
- attackby(obj/item/weapon/W, mob/user, params)
- if(istype(W,/obj/item/weapon/kitchen/knife))
- user.visible_message( \
- "[user] cuts the raw cutlet with the knife!", \
- "You cut the raw cutlet with your knife!" \
- )
- new /obj/item/weapon/reagent_containers/food/snacks/raw_bacon(src.loc)
- qdel(src)
+ list_reagents = list("protein" = 1)
+
+/obj/item/weapon/reagent_containers/food/snacks/rawcutlet/attackby(obj/item/weapon/W, mob/user, params)
+ if(istype(W,/obj/item/weapon/kitchen/knife))
+ user.visible_message( \
+ "[user] cuts the raw cutlet with the knife!", \
+ "You cut the raw cutlet with your knife!" \
+ )
+ new /obj/item/weapon/reagent_containers/food/snacks/raw_bacon(loc)
+ qdel(src)
/////////////////////////////////////////////////PIZZA////////////////////////////////////////
@@ -2762,11 +2140,8 @@
icon_state = "pizzamargherita"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/margheritaslice
slices_num = 6
- New()
- ..()
- reagents.add_reagent("nutriment", 40)
- reagents.add_reagent("tomatojuice", 6)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 40, "tomatojuice" = 6)
/obj/item/weapon/reagent_containers/food/snacks/margheritaslice
name = "Margherita slice"
@@ -2781,12 +2156,8 @@
icon_state = "meatpizza"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice
slices_num = 6
- New()
- ..()
- reagents.add_reagent("protein", 30)
- reagents.add_reagent("nutriment", 20)
- reagents.add_reagent("tomatojuice", 6)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("protein" = 30, "nutriment" = 20, "tomatojuice" = 6)
/obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice
name = "Meatpizza slice"
@@ -2801,11 +2172,8 @@
icon_state = "mushroompizza"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice
slices_num = 6
- New()
- ..()
- reagents.add_reagent("plantmatter", 25)
- reagents.add_reagent("nutriment", 10)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("plantmatter" = 25, "nutriment" = 10)
/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice
name = "Mushroompizza slice"
@@ -2820,13 +2188,8 @@
icon_state = "vegetablepizza"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice
slices_num = 6
- New()
- ..()
- reagents.add_reagent("plantmatter", 20)
- reagents.add_reagent("nutriment", 10)
- reagents.add_reagent("tomatojuice", 6)
- reagents.add_reagent("oculine", 12)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("plantmatter" = 20, "nutriment" = 10, "tomatojuice" = 6, "oculine" = 12)
/obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice
name = "Vegetable pizza slice"
@@ -2898,18 +2261,16 @@
icon_state = "pizzabox[boxes.len+1]"
-/obj/item/pizzabox/attack_hand( mob/user as mob )
-
- if( open && pizza )
- user.put_in_hands( pizza )
-
- to_chat(user, "\red You take the [src.pizza] out of the [src].")
- src.pizza = null
+/obj/item/pizzabox/attack_hand(mob/user)
+ if(open && pizza)
+ user.put_in_hands(pizza)
+ to_chat(user, "You take the [pizza] out of the [src].")
+ pizza = null
update_icon()
return
- if( boxes.len > 0 )
- if( user.get_inactive_hand() != src )
+ if(boxes.len > 0)
+ if(user.get_inactive_hand() != src)
..()
return
@@ -2917,15 +2278,14 @@
boxes -= box
user.put_in_hands( box )
- to_chat(user, "\red You remove the topmost [src] from your hand.")
+ to_chat(user, "You remove the topmost [src] from your hand.")
box.update_icon()
update_icon()
return
..()
-/obj/item/pizzabox/attack_self( mob/user as mob )
-
- if( boxes.len > 0 )
+/obj/item/pizzabox/attack_self(mob/user)
+ if(boxes.len > 0)
return
open = !open
@@ -2935,11 +2295,11 @@
update_icon()
-/obj/item/pizzabox/attackby( obj/item/I as obj, mob/user as mob , params)
- if( istype(I, /obj/item/pizzabox/) )
+/obj/item/pizzabox/attackby( obj/item/I, mob/user, params)
+ if(istype(I, /obj/item/pizzabox/))
var/obj/item/pizzabox/box = I
- if( !box.open && !src.open )
+ if(!box.open && !open)
// Make a list of all boxes to be added
var/list/boxestoadd = list()
boxestoadd += box
@@ -2951,36 +2311,36 @@
box.loc = src
box.boxes = list() // Clear the box boxes so we don't have boxes inside boxes. - Xzibit
- src.boxes.Add( boxestoadd )
+ boxes.Add( boxestoadd )
box.update_icon()
update_icon()
- to_chat(user, "\red You put the [box] ontop of the [src]!")
+ to_chat(user, "You put the [box] ontop of the [src]!")
else
- to_chat(user, "\red The stack is too high!")
+ to_chat(user, "The stack is too high!")
else
- to_chat(user, "\red Close the [box] first!")
+ to_chat(user, "Close the [box] first!")
return
- if( istype(I, /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/) ) // Long ass fucking object name
+ if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/)) // Long ass fucking object name
- if( src.open )
+ if(open)
user.drop_item()
I.loc = src
- src.pizza = I
+ pizza = I
update_icon()
- to_chat(user, "\red You put the [I] in the [src]!")
+ to_chat(user, "You put the [I] in the [src]!")
else
- to_chat(user, "\red You try to push the [I] through the lid but it doesn't work!")
+ to_chat(user, "You try to push the [I] through the lid but it doesn't work!")
return
- if( istype(I, /obj/item/weapon/pen/) )
+ if(istype(I, /obj/item/weapon/pen/))
- if( src.open )
+ if(open)
return
var/t = input("Enter what you want to add to the tag:", "Write", null, null) as text
@@ -3017,110 +2377,63 @@
name = "egg wrap"
desc = "The precursor to Pigs in a Blanket."
icon_state = "wrap"
- New()
- ..()
- reagents.add_reagent("nutriment", 5)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 5)
/obj/item/weapon/reagent_containers/food/snacks/beans
name = "tin of beans"
desc = "Musical fruit in a slightly less musical container."
icon_state = "beans"
- New()
- ..()
- reagents.add_reagent("nutriment", 10)
- reagents.add_reagent("beans",10)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 10, "beans" = 10)
/obj/item/weapon/reagent_containers/food/snacks/benedict
name = "eggs benedict"
desc = "There is only one egg on this, how rude."
icon_state = "benedict"
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- reagents.add_reagent("egg", 3)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 3, "egg" = 3)
/obj/item/weapon/reagent_containers/food/snacks/hotdog
name = "hotdog"
desc = "Fresh footlong ready to go down on."
icon_state = "hotdog"
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- reagents.add_reagent("ketchup", 3)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 3, "ketchup" = 3)
/obj/item/weapon/reagent_containers/food/snacks/meatbun
name = "meat bun"
desc = "Has the potential to not be Dog."
icon_state = "meatbun"
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- bitesize = 6
+ bitesize = 6
+ list_reagents = list("nutriment" = 6)
/obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich
name = "icecream sandwich"
desc = "Portable Ice-cream in it's own packaging."
icon_state = "icecreamsandwich"
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("ice", 2)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 2, "ice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/notasandwich
name = "not-a-sandwich"
desc = "Something seems to be wrong with this, you can't quite figure what. Maybe it's his moustache."
icon_state = "notasandwich"
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6)
/obj/item/weapon/reagent_containers/food/snacks/sugarcookie
name = "sugar cookie"
desc = "Just like your little sister used to make."
icon_state = "sugarcookie"
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("sugar", 5)
- spawn(1)
- reagents.del_reagent("egg")
- reagents.update_total()
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 2, "sugar" = 5)
/obj/item/weapon/reagent_containers/food/snacks/friedbanana
name = "Fried Banana"
desc = "Goreng Pisang, also known as fried bananas."
icon_state = "friedbanana"
- New()
- ..()
- reagents.add_reagent("sugar", 5)
- reagents.add_reagent("nutriment", 8)
- reagents.add_reagent("cornoil", 4)
-
-/obj/item/weapon/reagent_containers/food/snacks/tofurkey
- name = "Tofurkey"
- desc = "A fake turkey made from tofu."
- icon_state = "tofurkey"
- New()
- ..()
- reagents.add_reagent("nutriment", 12)
- reagents.add_reagent("ether", 3)
- bitesize = 3
-
-/obj/item/weapon/reagent_containers/food/snacks/stuffing
- name = "Stuffing"
- desc = "Moist, peppery breadcrumbs for filling the body cavities of dead birds. Dig in!"
- icon_state = "stuffing"
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- bitesize = 1
+ list_reagents = list("sugar" = 5, "nutriment" = 8, "cornoil" = 4)
/obj/item/weapon/reagent_containers/food/snacks/dionaroast
name = "roast diona"
@@ -3128,46 +2441,31 @@
icon_state = "dionaroast"
trash = /obj/item/trash/plate
filling_color = "#75754B"
-
- New()
- ..()
- reagents.add_reagent("plantmatter", 4)
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("radium", 2)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("plantmatter" = 4, "nutriment" = 2, "radium" = 2)
/obj/item/weapon/reagent_containers/food/snacks/boiledspiderleg
name = "boiled spider leg"
desc = "A giant spider's leg that's still twitching after being cooked. Gross!"
icon_state = "spiderlegcooked"
trash = /obj/item/trash/plate
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
- reagents.add_reagent("toxin", 2)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 3, "toxin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/spidereggs
name = "spider eggs"
desc = "A cluster of juicy spider eggs. A great side dish for when you care not for your health."
icon_state = "spidereggs"
- New()
- ..()
- reagents.add_reagent("protein", 2)
- reagents.add_reagent("toxin", 3)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("protein" = 2, "toxin" = 3)
/obj/item/weapon/reagent_containers/food/snacks/spidereggsham
name = "green eggs and ham"
desc = "Would you eat them on a train? Would you eat them on a plane? Would you eat them on a state of the art corporate deathtrap floating through space?"
icon_state = "spidereggsham"
trash = /obj/item/trash/plate
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("sodiumchloride", 1)
- reagents.add_reagent("toxin", 3)
- bitesize = 4
+ bitesize = 4
+ list_reagents = list("nutriment" = 6, "sodiumchloride" = 1, "toxin" = 3)
/obj/item/weapon/reagent_containers/food/snacks/sliceable/turkey
name = "Turkey"
@@ -3175,11 +2473,8 @@
icon_state = "turkey"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/turkeyslice
slices_num = 6
- New()
- ..()
- reagents.add_reagent("protein", 24)
- reagents.add_reagent("nutriment", 18)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("protein" = 24, "nutriment" = 18)
/obj/item/weapon/reagent_containers/food/snacks/turkeyslice
name = "turkey serving"
@@ -3196,56 +2491,41 @@
trash = /obj/item/trash/plate
filling_color = "#D6D9C1"
bitesize = 2
-
- New()
- ..()
- reagents.add_reagent("nutriment", 5)
- reagents.add_reagent("gravy", 5)
- reagents.add_reagent("mashedpotatoes", 10)
- bitesize = 2
+ list_reagents = list("nutriment" = 5, "gravy" = 5, "mashedpotatoes" = 10)
////////////////////////////////ICE CREAM///////////////////////////////////
/obj/item/weapon/reagent_containers/food/snacks/icecream
- name = "ice cream"
- desc = "Delicious ice cream."
- icon = 'icons/obj/kitchen.dmi'
- icon_state = "icecream_cone"
- New()
- ..()
- reagents.add_reagent("nutriment", 1)
- reagents.add_reagent("sugar",1)
- bitesize = 1
- update_icon()
+ name = "ice cream"
+ desc = "Delicious ice cream."
+ icon = 'icons/obj/kitchen.dmi'
+ icon_state = "icecream_cone"
+ list_reagents = list("nutriment" = 1, "sugar" = 1)
- update_icon()
- overlays.Cut()
- var/image/filling = image('icons/obj/kitchen.dmi', src, "icecream_color")
- filling.icon += mix_color_from_reagents(reagents.reagent_list)
- overlays += filling
+/obj/item/weapon/reagent_containers/food/snacks/icecream/New()
+ ..()
+ update_icon()
+
+/obj/item/weapon/reagent_containers/food/snacks/icecream/update_icon()
+ overlays.Cut()
+ var/image/filling = image('icons/obj/kitchen.dmi', src, "icecream_color")
+ filling.icon += mix_color_from_reagents(reagents.reagent_list)
+ overlays += filling
/obj/item/weapon/reagent_containers/food/snacks/icecream/icecreamcone
- name = "ice cream cone"
- desc = "Delicious ice cream."
- icon_state = "icecream_cone"
- volume = 50
- New()
- ..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("sugar",6)
- reagents.add_reagent("ice",2)
- bitesize = 3
+ name = "ice cream cone"
+ desc = "Delicious ice cream."
+ icon_state = "icecream_cone"
+ volume = 50
+ bitesize = 3
+ list_reagents = list("nutriment" = 3, "sugar" = 7, "ice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/icecream/icecreamcup
- name = "chocolate ice cream cone"
- desc = "Delicious ice cream."
- icon_state = "icecream_cup"
- volume = 50
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("chocolate",8)
- reagents.add_reagent("ice",2)
- bitesize = 6
+ name = "chocolate ice cream cone"
+ desc = "Delicious ice cream."
+ icon_state = "icecream_cup"
+ volume = 50
+ bitesize = 6
+ list_reagents = list("nutriment" = 5, "chocolate" = 8, "ice" = 2)
/obj/item/weapon/reagent_containers/food/snacks/cereal
name = "box of cereal"
@@ -3253,18 +2533,15 @@
icon = 'icons/obj/food/food.dmi'
icon_state = "cereal_box"
bitesize = 2
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
+ list_reagents = list("nutriment" = 3)
+
/obj/item/weapon/reagent_containers/food/snacks/deepfryholder
name = "Deep Fried Foods Holder Obj"
desc = "If you can see this description the code for the deep fryer fucked up."
icon = 'icons/obj/food/food.dmi'
icon_state = "deepfried_holder_icon"
bitesize = 2
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
+ list_reagents = list("nutriment" = 3)
/obj/item/weapon/reagent_containers/food/snacks/dough
name = "dough"
@@ -3272,9 +2549,7 @@
icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "dough"
bitesize = 2
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
+ list_reagents = list("nutriment" = 3)
// Dough + rolling pin = flat dough
/obj/item/weapon/reagent_containers/food/snacks/dough/attackby(obj/item/I, mob/user, params)
@@ -3296,9 +2571,7 @@
icon_state = "flat dough"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/doughslice
slices_num = 3
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
+ list_reagents = list("nutriment" = 3)
/obj/item/weapon/reagent_containers/food/snacks/doughslice
name = "dough slice"
@@ -3306,29 +2579,22 @@
icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "doughslice"
bitesize = 2
- New()
- ..()
- reagents.add_reagent("nutriment", 1)
+ list_reagents = list("nutriment" = 1)
/obj/item/weapon/reagent_containers/food/snacks/bun
name = "bun"
desc = "The base for any self-respecting burger."
icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "bun"
- bitesize = 2
- New()
- ..()
- reagents.add_reagent("nutriment", 4)
- bitesize = 3
+ bitesize = 3
+ list_reagents = list("nutriment" = 4)
/obj/item/weapon/reagent_containers/food/snacks/taco
name = "taco"
desc = "Take a bite!"
icon_state = "taco"
bitesize = 3
- New()
- ..()
- reagents.add_reagent("nutriment", 7)
+ list_reagents = list("nutriment" = 7)
/obj/item/weapon/reagent_containers/food/snacks/cutlet
name = "cutlet"
@@ -3336,9 +2602,7 @@
icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "cutlet"
bitesize = 2
- New()
- ..()
- reagents.add_reagent("protein", 2)
+ list_reagents = list("protein" = 2)
/obj/item/weapon/reagent_containers/food/snacks/rawmeatball
name = "raw meatball"
@@ -3346,18 +2610,14 @@
icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "rawmeatball"
bitesize = 2
- New()
- ..()
- reagents.add_reagent("protein", 2)
+ list_reagents = list("protein" = 2)
/obj/item/weapon/reagent_containers/food/snacks/hotdog
name = "hotdog"
desc = "Unrelated to dogs, maybe."
icon_state = "hotdog"
bitesize = 2
- New()
- ..()
- reagents.add_reagent("protein", 6)
+ list_reagents = list("protein" = 6)
/obj/item/weapon/reagent_containers/food/snacks/flatbread
name = "flatbread"
@@ -3365,9 +2625,7 @@
icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "flatbread"
bitesize = 2
- New()
- ..()
- reagents.add_reagent("nutriment", 3)
+ list_reagents = list("nutriment" = 3)
/obj/item/weapon/reagent_containers/food/snacks/rawsticks
name = "raw potato sticks"
@@ -3375,18 +2633,14 @@
icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "rawsticks"
bitesize = 2
- New()
- ..()
- reagents.add_reagent("plantmatter", 3)
+ list_reagents = list("plantmatter" = 3)
/obj/item/weapon/reagent_containers/food/snacks/ectoplasm
name = "ectoplasm"
desc = "A luminescent blob of what scientists refer to as 'ghost goo'."
icon = 'icons/obj/wizard.dmi'
icon_state = "ectoplasm"
- New()
- ..()
- reagents.add_reagent("ectoplasm", 10)
+ list_reagents = list("ectoplasm" = 10)
/obj/item/weapon/reagent_containers/food/snacks/liquidfood
name = "\improper LiquidFood Ration"
@@ -3394,12 +2648,8 @@
icon_state = "liquidfood"
trash = /obj/item/trash/liquidfood
filling_color = "#A8A8A8"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 20)
- reagents.add_reagent("iron", 3)
- bitesize = 4
+ bitesize = 4
+ list_reagents = list("nutriment" = 20, "iron" = 3)
/obj/item/weapon/reagent_containers/food/snacks/tastybread
@@ -3408,8 +2658,5 @@
icon_state = "tastybread"
trash = /obj/item/trash/tastybread
filling_color = "#A66829"
-
- New()
- ..()
- reagents.add_reagent("nutriment", 6)
- bitesize = 2
+ bitesize = 2
+ list_reagents = list("nutriment" = 6)
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
index b71bb0be2d4..fafa983cf1d 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
@@ -52,13 +52,13 @@
else
overlays += image('icons/obj/kitchen.dmi', "gridle")
-/obj/machinery/gibber/relaymove(mob/user as mob)
+/obj/machinery/gibber/relaymove(mob/user)
if(locked)
return
go_out()
-/obj/machinery/gibber/attack_hand(mob/user as mob)
+/obj/machinery/gibber/attack_hand(mob/user)
if(stat & (NOPOWER|BROKEN))
return
@@ -73,7 +73,7 @@
else
startgibbing(user)
-/obj/machinery/gibber/attackby(obj/item/P as obj, mob/user as mob, params)
+/obj/machinery/gibber/attackby(obj/item/P, mob/user, params)
if(istype(P, /obj/item/weapon/grab))
var/obj/item/weapon/grab/G = P
if(G.state < 2)
@@ -126,7 +126,7 @@
return
user.visible_message("[user] starts to put [victim] into the gibber!")
- src.add_fingerprint(user)
+ add_fingerprint(user)
if(do_after(user, 30, target = victim) && user.Adjacent(src) && victim.Adjacent(user) && !occupant)
user.visible_message("[user] stuffs [victim] into the gibber!")
@@ -155,7 +155,7 @@
return
for(var/obj/O in src)
- O.loc = src.loc
+ O.loc = loc
occupant.forceMove(get_turf(src))
occupant = null
@@ -212,11 +212,11 @@
/obj/machinery/gibber/proc/startgibbing(var/mob/user, var/UserOverride=0)
if(!istype(user) && !UserOverride)
- log_debug("Some shit just went down with the gibber at X[x], Y[y], Z[z] with an invalid user. (JMP)")
+ log_debug("Some shit just went down with the gibber at X[x], Y[y], Z[z] with an invalid user. (JMP)")
return
if(UserOverride)
- msg_admin_attack("[key_name_admin(occupant)] was gibbed by an autogibber (\the [src]) (JMP)")
+ msg_admin_attack("[key_name_admin(occupant)] was gibbed by an autogibber (\the [src]) (JMP)")
if(operating)
return
@@ -236,7 +236,7 @@
var/slab_name = occupant.name
var/slab_count = 3
var/slab_type = /obj/item/weapon/reagent_containers/food/snacks/meat/human //gibber can only gib humans on paracode, no need to check meat type
- var/slab_nutrition = src.occupant.nutrition / 15
+ var/slab_nutrition = occupant.nutrition / 15
slab_nutrition /= slab_count
@@ -352,7 +352,7 @@
feedinTopanim()
return 1
-/obj/machinery/gibber/autogibber/proc/ejectclothes(var/mob/living/carbon/human/H)
+/obj/machinery/gibber/autogibber/proc/ejectclothes(mob/living/carbon/human/H)
if(!istype(H)) return 0
if(H != occupant) return 0 //only using H as a shortcut to typecast
for(var/obj/O in H)
@@ -367,7 +367,7 @@
if(O.flags & NODROP)
qdel(O) //they are already dead by now
H.unEquip(O)
- O.loc = src.loc
+ O.loc = loc
O.throw_at(get_edge_target_turf(src,gib_throw_dir),rand(1,5),15)
sleep(1)
@@ -375,7 +375,7 @@
if(C.flags & NODROP)
qdel(C)
H.unEquip(C)
- C.loc = src.loc
+ C.loc = loc
C.throw_at(get_edge_target_turf(src,gib_throw_dir),rand(1,5),15)
sleep(1)
@@ -385,7 +385,7 @@
var/spats = 0 //keeps track of how many items get spit out. Don't show a message if none are found.
for(var/obj/O in src)
if(istype(O))
- O.loc = src.loc
+ O.loc = loc
O.throw_at(get_edge_target_turf(src,gib_throw_dir),rand(1,5),15)
spats++
sleep(1)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat_2.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat_2.dm
index f0fb01efad2..19da4fb85ac 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat_2.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat_2.dm
@@ -63,11 +63,11 @@ var/list/ingredients_source = list(
while(ingredients.len < 11)
ingredients.Add(5)
-/obj/machinery/icecream_vat/attack_hand(mob/user as mob)
+/obj/machinery/icecream_vat/attack_hand(mob/user)
user.set_machine(src)
interact(user)
-/obj/machinery/icecream_vat/interact(mob/user as mob)
+/obj/machinery/icecream_vat/interact(mob/user)
var/dat
dat += "Dispense vanilla icecream There is [ingredients[ICECREAM_VANILLA]] scoops of vanilla icecream left (made from milk and ice).
"
dat += "Dispense strawberry icecream There is [ingredients[FLAVOUR_STRAWBERRY]] dollops of strawberry flavouring left (obtained from berry juice.
"
@@ -91,7 +91,7 @@ var/list/ingredients_source = list(
popup.set_content(dat)
popup.open(0)
-/obj/machinery/icecream_vat/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
+/obj/machinery/icecream_vat/attackby(obj/item/O, mob/user, params)
if(istype(O, /obj/item/weapon/reagent_containers))
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/icecream))
var/obj/item/weapon/reagent_containers/food/snacks/icecream/I = O
@@ -99,7 +99,7 @@ var/list/ingredients_source = list(
if(ingredients[ICECREAM_VANILLA] > 0)
var/flavour_name = get_icecream_flavour_string(dispense_flavour)
if(dispense_flavour < 11 && ingredients[dispense_flavour] > 0)
- src.visible_message("[bicon(src)] [user] scoops delicious [flavour_name] flavoured icecream into [I].")
+ visible_message("[bicon(src)] [user] scoops delicious [flavour_name] flavoured icecream into [I].")
ingredients[dispense_flavour] -= 1
ingredients[ICECREAM_VANILLA] -= 1
@@ -127,7 +127,7 @@ var/list/ingredients_source = list(
else
var/obj/item/weapon/reagent_containers/R = O
if(R.reagents)
- src.visible_message("[user] has emptied all of [R] into [src].")
+ visible_message("[user] has emptied all of [R] into [src].")
for(var/datum/reagent/current_reagent in R.reagents.reagent_list)
if(ingredients_source[current_reagent.id])
add(ingredients_source[current_reagent.id], current_reagent.volume / 2)
@@ -151,7 +151,7 @@ var/list/ingredients_source = list(
ingredients[INGR_FLOUR] -= amount
ingredients[INGR_SUGAR] -= amount
ingredients[CONE_WAFFLE] += amount
- src.visible_message("[user] cooks up some waffle cones.")
+ visible_message("[user] cooks up some waffle cones.")
else
to_chat(user, "You require sugar and flour to make waffle cones.")
if(CONE_CHOC)
@@ -160,7 +160,7 @@ var/list/ingredients_source = list(
ingredients[CONE_WAFFLE] -= amount
ingredients[FLAVOUR_CHOCOLATE] -= amount
ingredients[CONE_CHOC] += amount
- src.visible_message("[user] cooks up some chocolate cones.")
+ visible_message("[user] cooks up some chocolate cones.")
else
to_chat(user, "You require waffle cones and chocolate flavouring to make chocolate cones.")
if(ICECREAM_VANILLA)
@@ -169,7 +169,7 @@ var/list/ingredients_source = list(
ingredients[INGR_ICE] -= amount
ingredients[INGR_MILK] -= amount
ingredients[ICECREAM_VANILLA] += amount
- src.visible_message("[user] whips up some vanilla icecream.")
+ visible_message("[user] whips up some vanilla icecream.")
else
to_chat(user, "You require milk and ice to make vanilla icecream.")
updateDialog()
@@ -179,7 +179,7 @@ var/list/ingredients_source = list(
return
if(href_list["dispense"])
dispense_flavour = text2num(href_list["dispense"])
- src.visible_message("\blue[usr] sets [src] to dispense [get_icecream_flavour_string(dispense_flavour)] flavoured icecream.")
+ visible_message("\blue[usr] sets [src] to dispense [get_icecream_flavour_string(dispense_flavour)] flavoured icecream.")
if(href_list["cone"])
var/dispense_cone = text2num(href_list["cone"])
@@ -187,11 +187,11 @@ var/list/ingredients_source = list(
var/cone_name = get_icecream_flavour_string(dispense_cone)
if(ingredients[dispense_cone] >= 1)
ingredients[dispense_cone] -= 1
- var/obj/item/weapon/reagent_containers/food/snacks/icecream/I = new(src.loc)
+ var/obj/item/weapon/reagent_containers/food/snacks/icecream/I = new(loc)
I.cone_type = cone_name
I.icon_state = "icecream_cone_[cone_name]"
I.desc = "Delicious [cone_name] cone, but no ice cream."
- src.visible_message("[usr] dispenses a crunchy [cone_name] cone from [src].")
+ visible_message("[usr] dispenses a crunchy [cone_name] cone from [src].")
else
to_chat(usr, "There are no [cone_name] cones left!")
updateDialog()
@@ -202,7 +202,7 @@ var/list/ingredients_source = list(
if(href_list["eject"])
if(held_container)
- held_container.forceMove(src.loc)
+ held_container.forceMove(loc)
held_container = null
updateDialog()
@@ -231,7 +231,7 @@ var/list/ingredients_source = list(
/obj/item/weapon/reagent_containers/food/snacks/icecream/proc/add_ice_cream(var/flavour)
var/flavour_name = get_icecream_flavour_string(flavour)
name = "[flavour_name] icecream"
- src.overlays += "icecream_[flavour_name]"
+ overlays += "icecream_[flavour_name]"
desc = "Delicious [cone_type] cone with a dollop of [flavour_name] ice cream."
ice_creamed = 1
diff --git a/code/modules/food_and_drinks/kitchen_machinery/juicer.dm b/code/modules/food_and_drinks/kitchen_machinery/juicer.dm
index e1cb054690f..03ceb5c0034 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/juicer.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/juicer.dm
@@ -35,7 +35,7 @@
return
-/obj/machinery/juicer/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
+/obj/machinery/juicer/attackby(obj/item/O, mob/user, params)
if(istype(O,/obj/item/weapon/reagent_containers/glass) || \
istype(O,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass))
if(beaker)
@@ -46,9 +46,9 @@
return 0
O.forceMove(src)
beaker = O
- src.verbs += /obj/machinery/juicer/verb/detach
+ verbs += /obj/machinery/juicer/verb/detach
update_icon()
- src.updateUsrDialog()
+ updateUsrDialog()
return 0
if(!is_type_in_list(O, allowed_items))
to_chat(user, "It doesn't look like that contains any juice.")
@@ -57,24 +57,24 @@
to_chat(user, "\the [O] is stuck to your hand, you cannot put it in \the [src]")
return 0
O.forceMove(src)
- src.updateUsrDialog()
+ updateUsrDialog()
return 0
-/obj/machinery/juicer/attack_ai(mob/user as mob)
+/obj/machinery/juicer/attack_ai(mob/user)
return 0
-/obj/machinery/juicer/attack_hand(mob/user as mob)
+/obj/machinery/juicer/attack_hand(mob/user)
user.set_machine(src)
interact(user)
-/obj/machinery/juicer/interact(mob/user as mob) // The microwave Menu
+/obj/machinery/juicer/interact(mob/user) // The microwave Menu
var/is_chamber_empty = 0
var/is_beaker_ready = 0
var/processing_chamber = ""
var/beaker_contents = ""
for(var/i in allowed_items)
- for(var/obj/item/O in src.contents)
+ for(var/obj/item/O in contents)
if(!istype(O,i))
continue
processing_chamber+= "some [O]
"
@@ -119,7 +119,7 @@
if("detach")
detach()
- src.updateUsrDialog()
+ updateUsrDialog()
return
/obj/machinery/juicer/verb/detach()
@@ -130,8 +130,8 @@
return
if(!beaker)
return
- src.verbs -= /obj/machinery/juicer/verb/detach
- beaker.forceMove(src.loc)
+ verbs -= /obj/machinery/juicer/verb/detach
+ beaker.forceMove(loc)
beaker = null
update_icon()
@@ -159,8 +159,8 @@
return
if(!beaker || beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
return
- playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1)
- for(var/obj/item/weapon/reagent_containers/food/snacks/O in src.contents)
+ playsound(loc, 'sound/machines/juicer.ogg', 50, 1)
+ for(var/obj/item/weapon/reagent_containers/food/snacks/O in contents)
var/r_id = get_juice_id(O)
beaker.reagents.add_reagent(r_id,get_juice_amount(O))
qdel(O)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/kitchen_machine.dm b/code/modules/food_and_drinks/kitchen_machinery/kitchen_machine.dm
index 648f228bb54..15458648513 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/kitchen_machine.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/kitchen_machine.dm
@@ -56,7 +56,7 @@
* Item Adding
********************/
-/obj/machinery/kitchen_machine/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
+/obj/machinery/kitchen_machine/attackby(obj/item/O, mob/user, params)
if(operating)
return
if(!broken && dirty < 100)
@@ -77,8 +77,8 @@
default_deconstruction_crowbar(O)
- if(src.broken > 0)
- if(src.broken == 2 && istype(O, /obj/item/weapon/screwdriver)) // If it's broken and they're using a screwdriver
+ if(broken > 0)
+ if(broken == 2 && istype(O, /obj/item/weapon/screwdriver)) // If it's broken and they're using a screwdriver
user.visible_message( \
"[user] starts to fix part of \the [src].", \
"You start to fix part of \the [src]." \
@@ -88,8 +88,8 @@
"[user] fixes part of \the [src].", \
"You have fixed part of \the [src]." \
)
- src.broken = 1 // Fix it a bit
- else if(src.broken == 1 && istype(O, /obj/item/weapon/wrench)) // If it's broken and they're doing the wrench
+ broken = 1 // Fix it a bit
+ else if(broken == 1 && istype(O, /obj/item/weapon/wrench)) // If it's broken and they're doing the wrench
user.visible_message( \
"[user] starts to fix part of \the [src].", \
"You start to fix part of \the [src]." \
@@ -99,14 +99,14 @@
"[user] fixes \the [src].", \
"You have fixed \the [src]." \
)
- src.icon_state = off_icon
- src.broken = 0 // Fix it!
- src.dirty = 0 // just to be sure
- src.flags = OPENCONTAINER
+ icon_state = off_icon
+ broken = 0 // Fix it!
+ dirty = 0 // just to be sure
+ flags = OPENCONTAINER
else
to_chat(user, "It's broken!")
return 1
- else if(src.dirty==100) // The machine is all dirty so can't be used!
+ else if(dirty==100) // The machine is all dirty so can't be used!
if(istype(O, /obj/item/weapon/reagent_containers/spray/cleaner) || istype(O, /obj/item/weapon/soap)) // If they're trying to clean it then let them
user.visible_message( \
"[user] starts to clean \the [src].", \
@@ -117,10 +117,10 @@
"[user] has cleaned \the [src].", \
"You have cleaned \the [src]." \
)
- src.dirty = 0 // It's clean!
- src.broken = 0 // just to be sure
- src.icon_state = off_icon
- src.flags = OPENCONTAINER
+ dirty = 0 // It's clean!
+ broken = 0 // just to be sure
+ icon_state = off_icon
+ flags = OPENCONTAINER
else //Otherwise bad luck!!
to_chat(user, "It's dirty!")
return 1
@@ -161,12 +161,12 @@
else
to_chat(user, "You have no idea what you can cook with this [O].")
return 1
- src.updateUsrDialog()
+ updateUsrDialog()
-/obj/machinery/kitchen_machine/attack_ai(mob/user as mob)
+/obj/machinery/kitchen_machine/attack_ai(mob/user)
return 0
-/obj/machinery/kitchen_machine/attack_hand(mob/user as mob)
+/obj/machinery/kitchen_machine/attack_hand(mob/user)
user.set_machine(src)
interact(user)
@@ -174,15 +174,15 @@
* Machine Menu *
********************/
-/obj/machinery/kitchen_machine/interact(mob/user as mob) // The microwave Menu
+/obj/machinery/kitchen_machine/interact(mob/user) // The microwave Menu
if(panel_open || !anchored)
return
var/dat = ""
- if(src.broken > 0)
+ if(broken > 0)
dat = {"Bzzzzttttt"}
- else if(src.operating)
- dat = {"[pick(src.cook_verbs)] in progress!
Please wait...!"}
- else if(src.dirty==100)
+ else if(operating)
+ dat = {"[pick(cook_verbs)] in progress!
Please wait...!"}
+ else if(dirty==100)
dat = {"This [src] is dirty!
Please clean it before use!"}
else
var/list/items_counts = new
@@ -237,7 +237,7 @@
var/datum/browser/popup = new(user, name, name, 400, 400)
popup.set_content(dat)
popup.open(0)
- onclose(user, "[src.name]")
+ onclose(user, "[name]")
return
@@ -298,14 +298,14 @@
byproduct = recipe.get_byproduct()
stop()
if(cooked)
- cooked.forceMove(src.loc)
+ cooked.forceMove(loc)
for(var/i=1,i\The [src] turns on.", "You hear \a [src].")
- src.operating = 1
- src.icon_state = on_icon
- src.updateUsrDialog()
+ visible_message("\The [src] turns on.", "You hear \a [src].")
+ operating = 1
+ icon_state = on_icon
+ updateUsrDialog()
/obj/machinery/kitchen_machine/proc/abort()
- src.operating = 0 // Turn it off again aferwards
- src.icon_state = off_icon
- src.updateUsrDialog()
+ operating = 0 // Turn it off again aferwards
+ icon_state = off_icon
+ updateUsrDialog()
/obj/machinery/kitchen_machine/proc/stop()
- playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
- src.operating = 0 // Turn it off again aferwards
- src.icon_state = off_icon
- src.updateUsrDialog()
+ playsound(loc, 'sound/machines/ding.ogg', 50, 1)
+ operating = 0 // Turn it off again aferwards
+ icon_state = off_icon
+ updateUsrDialog()
/obj/machinery/kitchen_machine/proc/dispose()
for(var/obj/O in contents)
- O.forceMove(src.loc)
- if(src.reagents.total_volume)
- src.dirty++
- src.reagents.clear_reagents()
+ O.forceMove(loc)
+ if(reagents.total_volume)
+ dirty++
+ reagents.clear_reagents()
to_chat(usr, "You dispose of \the [src]'s contents.")
- src.updateUsrDialog()
+ updateUsrDialog()
/obj/machinery/kitchen_machine/proc/muck_start()
- playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) // Play a splat sound
- src.icon_state = dirty_icon // Make it look dirty!!
+ playsound(loc, 'sound/effects/splat.ogg', 50, 1) // Play a splat sound
+ icon_state = dirty_icon // Make it look dirty!!
/obj/machinery/kitchen_machine/proc/muck_finish()
- playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
- src.visible_message("\The [src] gets covered in muck!")
- src.dirty = 100 // Make it dirty so it can't be used util cleaned
- src.flags = null //So you can't add condiments
- src.icon_state = dirty_icon // Make it look dirty too
- src.operating = 0 // Turn it off again aferwards
- src.updateUsrDialog()
+ playsound(loc, 'sound/machines/ding.ogg', 50, 1)
+ visible_message("\The [src] gets covered in muck!")
+ dirty = 100 // Make it dirty so it can't be used util cleaned
+ flags = null //So you can't add condiments
+ icon_state = dirty_icon // Make it look dirty too
+ operating = 0 // Turn it off again aferwards
+ updateUsrDialog()
/obj/machinery/kitchen_machine/proc/broke()
var/datum/effect/system/spark_spread/s = new
s.set_up(2, 1, src)
s.start()
- src.icon_state = broken_icon // Make it look all busted up and shit
- src.visible_message("The [src] breaks!") //Let them know they're stupid
- src.broken = 2 // Make it broken so it can't be used util fixed
- src.flags = null //So you can't add condiments
- src.operating = 0 // Turn it off again aferwards
- src.updateUsrDialog()
+ icon_state = broken_icon // Make it look all busted up and shit
+ visible_message("The [src] breaks!") //Let them know they're stupid
+ broken = 2 // Make it broken so it can't be used util fixed
+ flags = null //So you can't add condiments
+ operating = 0 // Turn it off again aferwards
+ updateUsrDialog()
/obj/machinery/kitchen_machine/proc/fail()
var/obj/item/weapon/reagent_containers/food/snacks/badrecipe/ffuu = new(src)
@@ -382,7 +382,7 @@
if(id)
amount+=O.reagents.get_reagent_amount(id)
qdel(O)
- src.reagents.clear_reagents()
+ reagents.clear_reagents()
ffuu.reagents.add_reagent("carbon", amount)
ffuu.reagents.add_reagent("????", amount/10)
ffuu.forceMove(get_turf(src))
@@ -392,8 +392,8 @@
return
usr.set_machine(src)
- if(src.operating)
- src.updateUsrDialog()
+ if(operating)
+ updateUsrDialog()
return
switch(href_list["action"])
diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
index dc283e65d6c..e70ac59209e 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
@@ -33,7 +33,7 @@
cube_production = cubes_made
required_grind = req_grind
-/obj/machinery/monkey_recycler/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
+/obj/machinery/monkey_recycler/attackby(obj/item/O, mob/user, params)
if(default_deconstruction_screwdriver(user, "grinder_open", "grinder", O))
return
@@ -62,7 +62,7 @@
cycle_through = 0
to_chat(user, "You change the monkeycube type to [initial(cube_type.name)].")
- if(src.stat != 0) //NOPOWER etc
+ if(stat != 0) //NOPOWER etc
return
if(istype(O, /obj/item/weapon/grab))
var/obj/item/weapon/grab/G = O
@@ -76,11 +76,11 @@
user.drop_item()
qdel(target)
to_chat(user, "You stuff the monkey in the machine.")
- playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1)
+ playsound(loc, 'sound/machines/juicer.ogg', 50, 1)
var/offset = prob(50) ? -2 : 2
animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 200) //start shaking
use_power(500)
- src.grinded++
+ grinded++
sleep(50)
pixel_x = initial(pixel_x)
to_chat(user, "The machine now has [grinded] monkey\s worth of material stored.")
@@ -90,15 +90,15 @@
to_chat(user, "The machine only accepts monkeys!")
return
-/obj/machinery/monkey_recycler/attack_hand(var/mob/user as mob)
- if(src.stat != 0) //NOPOWER etc
+/obj/machinery/monkey_recycler/attack_hand(mob/user)
+ if(stat != 0) //NOPOWER etc
return
if(grinded >= required_grind)
to_chat(user, "The machine hisses loudly as it condenses the grinded monkey meat. After a moment, it dispenses a brand new monkey cube.")
- playsound(src.loc, 'sound/machines/hiss.ogg', 50, 1)
+ playsound(loc, 'sound/machines/hiss.ogg', 50, 1)
grinded -= required_grind
for(var/i = 0, i < cube_production, i++) // Forgot to fix this bit the first time through
- new cube_type(src.loc)
+ new cube_type(loc)
to_chat(user, "The machine's display flashes that it has [grinded] monkey\s worth of material left.")
else // I'm not sure if the \s macro works with a word in between; I'll play it safe
to_chat(user, "The machine needs at least [required_grind] monkey\s worth of material to compress [cube_production] monkey\s. It only has [grinded].")
diff --git a/code/modules/food_and_drinks/kitchen_machinery/oven.dm b/code/modules/food_and_drinks/kitchen_machinery/oven.dm
index 796e8c4bd4b..6a47eb94ff5 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/oven.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/oven.dm
@@ -60,7 +60,7 @@
food_choices.Remove(U)
for(var/U in subtypesof(/obj/item/weapon/reagent_containers/food/snacks/customizable/cook))
var/obj/item/weapon/reagent_containers/food/snacks/customizable/cook/V = new U
- src.food_choices += V
+ food_choices += V
return
/obj/machinery/cooking/candy
@@ -75,5 +75,5 @@
food_choices.Remove(U)
for(var/U in subtypesof(/obj/item/weapon/reagent_containers/food/snacks/customizable/candy))
var/obj/item/weapon/reagent_containers/food/snacks/customizable/candy/V = new U
- src.food_choices += V
+ food_choices += V
return
diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm
index d2b810dc7bb..5183fe6a4fa 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm
@@ -58,9 +58,9 @@
var/time = 40
/datum/food_processor_process/proc/process_food(loc, what, obj/machinery/processor/processor)
- if(src.output && loc && processor)
+ if(output && loc && processor)
for(var/i = 0, i < processor.rating_amount, i++)
- new src.output(loc)
+ new output(loc)
if(what)
qdel(what)
@@ -154,9 +154,9 @@
return P
return 0
-/obj/machinery/processor/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
+/obj/machinery/processor/attackby(obj/item/O, mob/user, params)
- if(src.processing)
+ if(processing)
to_chat(user, "\the [src] is already processing something!")
return 1
@@ -191,25 +191,25 @@
what.loc = src
return
-/obj/machinery/processor/attack_hand(var/mob/user as mob)
+/obj/machinery/processor/attack_hand(mob/user)
if(stat & (NOPOWER|BROKEN)) //no power or broken
return
- if(src.processing)
+ if(processing)
to_chat(user, "\the [src] is already processing something!")
return 1
- if(src.contents.len == 0)
+ if(contents.len == 0)
to_chat(user, "\the [src] is empty.")
return 1
- src.processing = 1
+ processing = 1
user.visible_message("[user] turns on [src].", \
"You turn on [src].", \
"You hear a food processor.")
- playsound(src.loc, 'sound/machines/blender.ogg', 50, 1)
+ playsound(loc, 'sound/machines/blender.ogg', 50, 1)
use_power(500)
var/total_time = 0
- for(var/O in src.contents)
+ for(var/O in contents)
var/datum/food_processor_process/P = select_recipe(O)
if(!P)
log_debug("The [O] in processor([src]) does not have a suitable recipe, but it was somehow put inside of the processor anyways.")
@@ -217,14 +217,14 @@
total_time += P.time
sleep(total_time / rating_speed)
- for(var/O in src.contents)
+ for(var/O in contents)
var/datum/food_processor_process/P = select_recipe(O)
if(!P)
log_debug("The [O] in processor([src]) does not have a suitable recipe, but it was somehow put inside of the processor anyways.")
continue
- P.process_food(src.loc, O, src)
- src.processing = 0
+ P.process_food(loc, O, src)
+ processing = 0
- src.visible_message("\the [src] has finished processing.", \
+ visible_message("\the [src] has finished processing.", \
"\the [src] has finished processing.", \
"You hear a food processor stopping.")
diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
index c6f7e54a003..2446b74ad22 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
@@ -53,7 +53,7 @@
A.forceMove(loc)
return ..()
-/obj/machinery/smartfridge/proc/accept_check(var/obj/item/O as obj)
+/obj/machinery/smartfridge/proc/accept_check(obj/item/O)
if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown/) || istype(O,/obj/item/seeds/))
return 1
return 0
@@ -66,7 +66,7 @@
icon_on = "seeds"
icon_off = "seeds-off"
-/obj/machinery/smartfridge/seeds/accept_check(var/obj/item/O as obj)
+/obj/machinery/smartfridge/seeds/accept_check(obj/item/O)
if(istype(O,/obj/item/seeds/))
return 1
return 0
@@ -77,7 +77,7 @@
icon_state = "smartfridge" //To fix the icon in the map editor.
icon_on = "smartfridge_chem"
-/obj/machinery/smartfridge/medbay/accept_check(var/obj/item/O as obj)
+/obj/machinery/smartfridge/medbay/accept_check(obj/item/O)
if(istype(O,/obj/item/weapon/reagent_containers/glass/))
return 1
if(istype(O,/obj/item/weapon/storage/pill_bottle/))
@@ -91,7 +91,7 @@
desc = "A refrigerated storage unit for slime extracts"
req_access_txt = "47"
-/obj/machinery/smartfridge/secure/extract/accept_check(var/obj/item/O as obj)
+/obj/machinery/smartfridge/secure/extract/accept_check(obj/item/O)
if(istype(O,/obj/item/slime_extract))
return 1
return 0
@@ -103,7 +103,7 @@
icon_on = "smartfridge_chem"
req_one_access_txt = "5;33"
-/obj/machinery/smartfridge/secure/medbay/accept_check(var/obj/item/O as obj)
+/obj/machinery/smartfridge/secure/medbay/accept_check(obj/item/O)
if(istype(O,/obj/item/weapon/reagent_containers/glass/))
return 1
if(istype(O,/obj/item/weapon/storage/pill_bottle/))
@@ -134,7 +134,7 @@
nanomanager.update_uis(src)
amount--
-/obj/machinery/smartfridge/chemistry/accept_check(var/obj/item/O as obj)
+/obj/machinery/smartfridge/chemistry/accept_check(obj/item/O)
if(istype(O,/obj/item/weapon/storage/pill_bottle) || istype(O,/obj/item/weapon/reagent_containers))
return 1
return 0
@@ -154,7 +154,7 @@
/obj/item/weapon/reagent_containers/glass/bottle/plasma = 1,
/obj/item/weapon/reagent_containers/glass/bottle/diphenhydramine = 1)
-/obj/machinery/smartfridge/secure/chemistry/virology/accept_check(var/obj/item/O as obj)
+/obj/machinery/smartfridge/secure/chemistry/virology/accept_check(obj/item/O)
if(istype(O, /obj/item/weapon/reagent_containers/syringe) || istype(O, /obj/item/weapon/reagent_containers/glass/bottle) || istype(O, /obj/item/weapon/reagent_containers/glass/beaker))
return 1
return 0
@@ -163,17 +163,17 @@
name = "\improper Drink Showcase"
desc = "A refrigerated storage unit for tasty tasty alcohol."
-/obj/machinery/smartfridge/drinks/accept_check(var/obj/item/O as obj)
+/obj/machinery/smartfridge/drinks/accept_check(obj/item/O)
if(istype(O,/obj/item/weapon/reagent_containers/glass) || istype(O,/obj/item/weapon/reagent_containers/food/drinks) || istype(O,/obj/item/weapon/reagent_containers/food/condiment))
return 1
/obj/machinery/smartfridge/process()
if(stat & (BROKEN|NOPOWER))
return
- if(src.seconds_electrified > 0)
- src.seconds_electrified--
- if(src.shoot_inventory && prob(2))
- src.throw_item()
+ if(seconds_electrified > 0)
+ seconds_electrified--
+ if(shoot_inventory && prob(2))
+ throw_item()
/obj/machinery/smartfridge/power_change()
var/old_stat = stat
@@ -192,9 +192,9 @@
* Item Adding
********************/
-/obj/machinery/smartfridge/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/machinery/smartfridge/attackby(obj/item/O, mob/user)
if(istype(O, /obj/item/weapon/screwdriver) && anchored)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
panel_open = !panel_open
to_chat(user, "You [panel_open ? "open" : "close"] the maintenance panel.")
overlays.Cut()
@@ -271,20 +271,20 @@
return 1
return 0
-/obj/machinery/smartfridge/attack_ai(mob/user as mob)
+/obj/machinery/smartfridge/attack_ai(mob/user)
return 0
-/obj/machinery/smartfridge/attack_ghost(mob/user as mob)
- return src.attack_hand(user)
+/obj/machinery/smartfridge/attack_ghost(mob/user)
+ return attack_hand(user)
-/obj/machinery/smartfridge/attack_hand(mob/user as mob)
+/obj/machinery/smartfridge/attack_hand(mob/user)
if(stat & (NOPOWER|BROKEN))
return
wires.Interact(user)
ui_interact(user)
//Drag pill bottle to fridge to empty it into the fridge
-/obj/machinery/smartfridge/MouseDrop_T(obj/over_object as obj, mob/user as mob)
+/obj/machinery/smartfridge/MouseDrop_T(obj/over_object, mob/user)
if(!istype(over_object, /obj/item/weapon/storage/pill_bottle)) //Only pill bottles, please
return
@@ -305,7 +305,7 @@
to_chat(user, "Some items are refused.")
nanomanager.update_uis(src)
-/obj/machinery/smartfridge/secure/emag_act(user as mob)
+/obj/machinery/smartfridge/secure/emag_act(user)
emagged = 1
locked = -1
to_chat(user, "You short out the product lock on [src].")
@@ -314,7 +314,7 @@
* SmartFridge Menu
********************/
-/obj/machinery/smartfridge/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
+/obj/machinery/smartfridge/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1)
user.set_machine(src)
var/data[0]
@@ -336,7 +336,7 @@
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
if(!ui)
- ui = new(user, src, ui_key, "smartfridge.tmpl", src.name, 400, 500)
+ ui = new(user, src, ui_key, "smartfridge.tmpl", name, 400, 500)
ui.set_initial_data(data)
ui.open()
@@ -346,7 +346,7 @@
var/mob/user = usr
var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main")
- src.add_fingerprint(user)
+ add_fingerprint(user)
if(href_list["close"])
user.unset_machine()
@@ -387,7 +387,7 @@
item_quants[O]--
for(var/obj/T in contents)
if(T.name == O)
- T.forceMove(src.loc)
+ T.forceMove(loc)
throw_item = T
break
break
@@ -395,7 +395,7 @@
return 0
spawn(0)
throw_item.throw_at(target,16,3,src)
- src.visible_message("[src] launches [throw_item.name] at [target.name]!")
+ visible_message("[src] launches [throw_item.name] at [target.name]!")
return 1
/************************
diff --git a/code/modules/food_and_drinks/recipes/recipes_candy.dm b/code/modules/food_and_drinks/recipes/recipes_candy.dm
index 2ab54fc0e27..98f969a17ec 100644
--- a/code/modules/food_and_drinks/recipes/recipes_candy.dm
+++ b/code/modules/food_and_drinks/recipes/recipes_candy.dm
@@ -78,6 +78,11 @@
items = list(/obj/item/weapon/reagent_containers/food/snacks/egg)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/nougat
+/datum/recipe/candy/nougat/make_food(obj/container)
+ var/obj/item/weapon/reagent_containers/food/snacks/candy/nougat/being_cooked = ..()
+ being_cooked.reagents.del_reagent("egg")
+ return being_cooked
+
// ***********************************************************
// Base Candy Recipes (unflavored / plain)
// ***********************************************************
diff --git a/code/modules/food_and_drinks/recipes/recipes_grill.dm b/code/modules/food_and_drinks/recipes/recipes_grill.dm
index 4c459b737ff..5845e860c9d 100644
--- a/code/modules/food_and_drinks/recipes/recipes_grill.dm
+++ b/code/modules/food_and_drinks/recipes/recipes_grill.dm
@@ -89,6 +89,11 @@
)
result = /obj/item/weapon/reagent_containers/food/snacks/fishfingers
+/datum/recipe/grill/fishfingers/make_food(obj/container)
+ var/obj/item/weapon/reagent_containers/food/snacks/fishfingers/being_cooked = ..()
+ being_cooked.reagents.del_reagent("egg")
+ return being_cooked
+
/datum/recipe/grill/cutlet
items = list(
/obj/item/weapon/reagent_containers/food/snacks/rawcutlet
diff --git a/code/modules/food_and_drinks/recipes/recipes_microwave.dm b/code/modules/food_and_drinks/recipes/recipes_microwave.dm
index 0f58955a2bf..5903e191b4e 100644
--- a/code/modules/food_and_drinks/recipes/recipes_microwave.dm
+++ b/code/modules/food_and_drinks/recipes/recipes_microwave.dm
@@ -205,10 +205,11 @@
reagents = list("water" = 5, "vodka" = 5)
fruit = list("amanita" = 3)
result = /obj/item/weapon/reagent_containers/food/snacks/amanitajelly
- make_food(var/obj/container as obj)
- var/obj/item/weapon/reagent_containers/food/snacks/amanitajelly/being_cooked = ..(container)
- being_cooked.reagents.del_reagent("amanitin")
- return being_cooked
+
+/datum/recipe/microwave/amanitajelly/make_food(obj/container)
+ var/obj/item/weapon/reagent_containers/food/snacks/amanitajelly/being_cooked = ..()
+ being_cooked.reagents.del_reagent("amanitin")
+ return being_cooked
/datum/recipe/microwave/meatballsoup
reagents = list("water" = 10)
@@ -538,10 +539,11 @@ datum/recipe/microwave/slimesandwich
/datum/recipe/microwave/herbsalad
fruit = list("ambrosia" = 3, "apple" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/herbsalad
- make_food(var/obj/container as obj)
- var/obj/item/weapon/reagent_containers/food/snacks/herbsalad/being_cooked = ..(container)
- being_cooked.reagents.del_reagent("toxin")
- return being_cooked
+
+/datum/recipe/microwave/herbsalad/make_food(obj/container)
+ var/obj/item/weapon/reagent_containers/food/snacks/herbsalad/being_cooked = ..()
+ being_cooked.reagents.del_reagent("toxin")
+ return being_cooked
/datum/recipe/microwave/aesirsalad
fruit = list("ambrosiadeus" = 3, "goldapple" = 1)
@@ -553,10 +555,11 @@ datum/recipe/microwave/slimesandwich
/obj/item/weapon/reagent_containers/food/snacks/meatball,
)
result = /obj/item/weapon/reagent_containers/food/snacks/validsalad
- make_food(var/obj/container as obj)
- var/obj/item/weapon/reagent_containers/food/snacks/validsalad/being_cooked = ..(container)
- being_cooked.reagents.del_reagent("toxin")
- return being_cooked
+
+/datum/recipe/microwave/validsalad/make_food(obj/container)
+ var/obj/item/weapon/reagent_containers/food/snacks/validsalad/being_cooked = ..()
+ being_cooked.reagents.del_reagent("toxin")
+ return being_cooked
////////////////////////////FOOD ADDITTIONS///////////////////////////////
diff --git a/code/modules/food_and_drinks/recipes/recipes_oven.dm b/code/modules/food_and_drinks/recipes/recipes_oven.dm
index 9ee3ff3343e..d20c06e260f 100644
--- a/code/modules/food_and_drinks/recipes/recipes_oven.dm
+++ b/code/modules/food_and_drinks/recipes/recipes_oven.dm
@@ -176,20 +176,22 @@
/obj/item/weapon/paper,
)
result = /obj/item/weapon/reagent_containers/food/snacks/fortunecookie
- make_food(var/obj/container as obj)
+
+/datum/recipe/oven/fortunecookie/make_food(obj/container)
+ var/obj/item/weapon/paper/paper = locate() in container
+ paper.loc = null //prevent deletion
+ var/obj/item/weapon/reagent_containers/food/snacks/fortunecookie/being_cooked = ..()
+ paper.loc = being_cooked
+ being_cooked.trash = paper //so the paper is left behind as trash without special-snowflake(TM Nodrak) code ~carn
+ return being_cooked
+
+/datum/recipe/oven/fortunecookie/check_items(obj/container)
+ . = ..()
+ if(.)
var/obj/item/weapon/paper/paper = locate() in container
- paper.loc = null //prevent deletion
- var/obj/item/weapon/reagent_containers/food/snacks/fortunecookie/being_cooked = ..(container)
- paper.loc = being_cooked
- being_cooked.trash = paper //so the paper is left behind as trash without special-snowflake(TM Nodrak) code ~carn
- return being_cooked
- check_items(var/obj/container as obj)
- . = ..()
- if(.)
- var/obj/item/weapon/paper/paper = locate() in container
- if(!paper || !paper.info)
- return -1
- return .
+ if(!paper || !paper.info)
+ return -1
+ return .
/datum/recipe/oven/pizzamargherita
fruit = list("tomato" = 1)
@@ -293,6 +295,11 @@
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/bread
+/datum/recipe/oven/bread/make_food(obj/container)
+ var/obj/item/weapon/reagent_containers/food/snacks/sliceable/bread/being_cooked = ..()
+ being_cooked.reagents.del_reagent("egg")
+ return being_cooked
+
/datum/recipe/oven/applepie
fruit = list("apple" = 1)
items = list(
@@ -377,6 +384,11 @@
)
result = /obj/item/weapon/reagent_containers/food/snacks/appletart
+/datum/recipe/oven/appletart/make_food(obj/container)
+ var/obj/item/weapon/reagent_containers/food/snacks/appletart/being_cooked = ..()
+ being_cooked.reagents.del_reagent("egg")
+ return being_cooked
+
/datum/recipe/oven/cracker
reagents = list("sodiumchloride" = 1)
items = list(
@@ -392,6 +404,11 @@
)
result = /obj/item/weapon/reagent_containers/food/snacks/sugarcookie
+/datum/recipe/oven/sugarcookie/make_food(obj/container)
+ var/obj/item/weapon/reagent_containers/food/snacks/sugarcookie/being_cooked = ..()
+ being_cooked.reagents.del_reagent("egg")
+ return being_cooked
+
/datum/recipe/oven/flatbread
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough
diff --git a/code/modules/hydroponics/grown_inedible.dm b/code/modules/hydroponics/grown_inedible.dm
index bc6692d72b1..0e557ea1d31 100644
--- a/code/modules/hydroponics/grown_inedible.dm
+++ b/code/modules/hydroponics/grown_inedible.dm
@@ -98,7 +98,7 @@
to_chat(M, "You are stunned by the powerful acid of the Deathnettle!")
add_logs(user, M, "attacked", src)
- M.eye_blurry += force/7
+ M.AdjustEyeBlurry(force/7)
if(prob(20))
M.Paralyse(force / 6)
M.Weaken(force / 15)
diff --git a/code/modules/hydroponics/trays/tray_tools.dm b/code/modules/hydroponics/trays/tray_tools.dm
index 2f41c6cdb5c..4086403c6e0 100644
--- a/code/modules/hydroponics/trays/tray_tools.dm
+++ b/code/modules/hydroponics/trays/tray_tools.dm
@@ -13,19 +13,23 @@
origin_tech = "magnets=1;biotech=1"
var/form_title
var/last_data
+ var/print_cooldown = 0
+ var/cooldown_length = 50 // Five seconds
/obj/item/device/analyzer/plant_analyzer/proc/print_report_verb()
set name = "Print Plant Report"
set category = "Object"
set src = usr
- if(usr.stat || usr.restrained() || usr.lying)
+ if(usr.incapacitated())
return
+
print_report(usr)
/obj/item/device/analyzer/plant_analyzer/Topic(href, href_list)
if(..())
- return
+ return 1
+
if(href_list["print"])
print_report(usr)
@@ -33,6 +37,11 @@
if(!last_data)
to_chat(user, "There is no scan data to print.")
return
+ if(print_cooldown > world.time)
+ to_chat(user, "The printer is still cooling down.")
+ return
+ print_cooldown = world.time + cooldown_length
+
playsound(loc, "sound/goonstation/machines/printer_thermal.ogg", 50, 1)
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(get_turf(src))
P.name = "paper - [form_title]"
diff --git a/code/modules/martial_arts/krav_maga.dm b/code/modules/martial_arts/krav_maga.dm
index 9b589878475..e1a577e24fa 100644
--- a/code/modules/martial_arts/krav_maga.dm
+++ b/code/modules/martial_arts/krav_maga.dm
@@ -88,7 +88,7 @@
D.visible_message("[A] pounds [D] on the chest!", \
"[A] slams your chest! You can't breathe!")
playsound(get_turf(A), 'sound/effects/hit_punch.ogg', 50, 1, -1)
- D.losebreath += 5
+ D.AdjustLoseBreath(5)
D.adjustOxyLoss(10)
return 1
@@ -97,7 +97,7 @@
"[A] karate chops your neck, rendering you unable to speak for a short time!")
playsound(get_turf(A), 'sound/effects/hit_punch.ogg', 50, 1, -1)
D.apply_damage(5, BRUTE)
- D.silent += 10
+ D.AdjustSilence(10)
return 1
datum/martial_art/krav_maga/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
@@ -170,4 +170,4 @@ datum/martial_art/krav_maga/grab_act(var/mob/living/carbon/human/A, var/mob/livi
name = "krav maga gloves"
desc = "These gloves can teach you to perform Krav Maga using nanochips."
icon_state = "fightgloves"
- item_state = "fightgloves"
\ No newline at end of file
+ item_state = "fightgloves"
diff --git a/code/modules/martial_arts/sleeping_carp.dm b/code/modules/martial_arts/sleeping_carp.dm
index bc4e15eb598..960844a063a 100644
--- a/code/modules/martial_arts/sleeping_carp.dm
+++ b/code/modules/martial_arts/sleeping_carp.dm
@@ -66,7 +66,7 @@
D.visible_message("[A] knees [D] in the stomach!", \
"[A] winds you with a knee in the stomach!")
D.audible_message("[D] gags!")
- D.losebreath += 3
+ D.AdjustLoseBreath(3)
D.Stun(2)
playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1)
if(prob(80))
diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm
index 50a9527326a..3a813b0a557 100644
--- a/code/modules/mob/hear_say.dm
+++ b/code/modules/mob/hear_say.dm
@@ -28,7 +28,7 @@
//non-verbal languages are garbled if you can't see the speaker. Yes, this includes if they are inside a closet.
if(language && (language.flags & NONVERBAL))
- if(disabilities & BLIND || blinded) //blind people can't see dumbass
+ if(!can_see()) //blind people can't see dumbass
message = stars(message)
if(!speaker || !(speaker in view(src)))
@@ -65,7 +65,7 @@
if(client.prefs.toggles & CHAT_GHOSTEARS && speaker in view(src))
message = "[message]"
- if(disabilities & DEAF || ear_deaf)
+ if(!can_hear())
if(!language || !(language.flags & INNATE)) // INNATE is the flag for audible-emote-language, so we don't want to show an "x talks but you cannot hear them" message if it's set
if(speaker == src)
to_chat(src, "You cannot hear yourself speak!")
@@ -95,7 +95,7 @@
//non-verbal languages are garbled if you can't see the speaker. Yes, this includes if they are inside a closet.
if(language && (language.flags & NONVERBAL))
- if(disabilities & BLIND || blinded) //blind people can't see dumbass
+ if(!can_see()) //blind people can't see dumbass
message = stars(message)
if(!speaker || !(speaker in view(src)))
@@ -182,7 +182,7 @@
formatted = language.format_message_radio(message, verb)
else
formatted = "[verb], \"[message]\""
- if(disabilities & DEAF || ear_deaf)
+ if(!can_hear())
if(prob(20))
to_chat(src, "You feel your headset vibrate but can hear nothing from it!")
else if(track)
diff --git a/code/modules/mob/language.dm b/code/modules/mob/language.dm
index 81b54bcc3a6..c9e410d9e9b 100644
--- a/code/modules/mob/language.dm
+++ b/code/modules/mob/language.dm
@@ -605,7 +605,7 @@
return ..()
// Can we speak this language, as opposed to just understanding it?
-/mob/proc/can_speak(datum/language/speaking)
+/mob/proc/can_speak_language(datum/language/speaking)
return (universal_speak || (speaking && speaking.flags & INNATE) || speaking in src.languages)
diff --git a/code/modules/mob/living/carbon/alien/alien_defenses.dm b/code/modules/mob/living/carbon/alien/alien_defenses.dm
index 3949948b0f3..c6e2bcc510d 100644
--- a/code/modules/mob/living/carbon/alien/alien_defenses.dm
+++ b/code/modules/mob/living/carbon/alien/alien_defenses.dm
@@ -16,7 +16,7 @@ In all, this is a lot like the monkey code. /N
switch(M.a_intent)
if(I_HELP)
- sleeping = max(0,sleeping-5)
+ AdjustSleeping(-5)
resting = 0
AdjustParalysis(-3)
AdjustStunned(-3)
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
index 876cae4b312..c5cee9d3db4 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
@@ -96,13 +96,15 @@
f_loss += 60
- adjustEarDamage(30, 120)
+ AdjustEarDamage(30)
+ AdjustEarDeaf(120)
if(3.0)
b_loss += 30
if(prob(50) && !shielded)
Paralyse(1)
- adjustEarDamage(15,60)
+ AdjustEarDamage(15)
+ AdjustEarDeaf(60)
adjustBruteLoss(b_loss)
adjustFireLoss(f_loss)
@@ -298,4 +300,4 @@
return initial(pixel_x)
/mob/living/carbon/alien/humanoid/get_permeability_protection()
- return 0.8
\ No newline at end of file
+ return 0.8
diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm
index 4cccb6e57ed..da93e43c13f 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/life.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm
@@ -57,13 +57,12 @@
if(stat == DEAD) //DEAD. BROWN BREAD. SWIMMING WITH THE SPESS CARP
blinded = 1
- silent = 0
+ SetSilence(0)
else //ALIVE. LIGHTS ARE ON
if(health < config.health_threshold_dead || !get_int_organ(/obj/item/organ/internal/brain))
death()
blinded = 1
- stat = DEAD
- silent = 0
+ SetSilence(0)
return 1
//UNCONSCIOUS. NO-ONE IS HOME
@@ -80,7 +79,7 @@
blinded = 1
stat = UNCONSCIOUS
else if(sleeping)
- sleeping = max(sleeping-1, 0)
+ AdjustSleeping(-1)
blinded = 1
stat = UNCONSCIOUS
if( prob(10) && health )
@@ -98,18 +97,18 @@
if(disabilities & BLIND) //disabled-blind, doesn't get better on its own
blinded = 1
else if(eye_blind) //blindness, heals slowly over time
- eye_blind = max(eye_blind-1,0)
+ AdjustEyeBlind(-1)
blinded = 1
else if(eye_blurry) //blurry eyes heal slowly
- eye_blurry = max(eye_blurry-1, 0)
+ AdjustEyeBlurry(-1)
//Ears
if(disabilities & DEAF) //disabled-deaf, doesn't get better on its own
- setEarDamage(-1, max(ear_deaf, 1))
+ EarDeaf(1)
else if(ear_deaf) //deafness, heals slowly over time
- adjustEarDamage(0,-1)
+ AdjustEarDeaf(-1)
else if(ear_damage < 25) //ear damage heals slowly under this threshold. otherwise you'll need earmuffs
- adjustEarDamage(-0.05, 0)
+ AdjustEarDamage(-0.05)
//Other
if(stunned)
@@ -123,11 +122,11 @@
update_icons()
if(stuttering)
- stuttering = max(stuttering-1, 0)
+ AdjustStuttering(-1)
if(silent)
- silent = max(silent-1, 0)
+ AdjustSilence(-1)
if(druggy)
- druggy = max(druggy-1, 0)
- return 1
\ No newline at end of file
+ AdjustDruggy(-1)
+ return 1
diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm
index 8e9e0dea576..04a460ec710 100644
--- a/code/modules/mob/living/carbon/alien/larva/larva.dm
+++ b/code/modules/mob/living/carbon/alien/larva/larva.dm
@@ -88,13 +88,15 @@
f_loss += 60
- adjustEarDamage(30,120)
+ AdjustEarDamage(30)
+ AdjustEarDeaf(120)
if(3.0)
b_loss += 30
if(prob(50))
Paralyse(1)
- adjustEarDamage(15,60)
+ AdjustEarDamage(15)
+ AdjustEarDeaf(60)
adjustBruteLoss(b_loss)
adjustFireLoss(f_loss)
diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm
index 76ceef6ad2e..03cb2096963 100644
--- a/code/modules/mob/living/carbon/alien/larva/life.dm
+++ b/code/modules/mob/living/carbon/alien/larva/life.dm
@@ -17,12 +17,12 @@
if(stat == DEAD) //DEAD. BROWN BREAD. SWIMMING WITH THE SPESS CARP
blinded = 1
- silent = 0
+ SetSilence(0)
else //ALIVE. LIGHTS ARE ON
if(health < -25 || !get_int_organ(/obj/item/organ/internal/brain))
death()
blinded = 1
- silent = 0
+ SetSilence(0)
return 1
//UNCONSCIOUS. NO-ONE IS HOME
@@ -39,7 +39,7 @@
blinded = 1
stat = UNCONSCIOUS
else if(sleeping)
- sleeping = max(sleeping-1, 0)
+ AdjustSleeping(-1)
blinded = 1
stat = UNCONSCIOUS
if( prob(10) && health )
@@ -57,32 +57,32 @@
if(disabilities & BLIND) //disabled-blind, doesn't get better on its own
blinded = 1
else if(eye_blind) //blindness, heals slowly over time
- eye_blind = max(eye_blind-1,0)
+ AdjustEyeBlind(-1)
blinded = 1
else if(eye_blurry) //blurry eyes heal slowly
- eye_blurry = max(eye_blurry-1, 0)
+ AdjustEyeBlurry(-1)
//Ears
if(disabilities & DEAF) //disabled-deaf, doesn't get better on its own
- setEarDamage(-1, max(ear_deaf, 1))
+ EarDeaf(1)
else if(ear_deaf) //deafness, heals slowly over time
- adjustEarDamage(0,-1)
+ AdjustEarDeaf(-1)
else if(ear_damage < 25) //ear damage heals slowly under this threshold.
- adjustEarDamage(-0.05,0)
+ AdjustEarDamage(-0.05)
//Other
if(stunned)
AdjustStunned(-1)
if(weakened)
- weakened = max(weakened-1,0)
+ AdjustWeakened(-1)
if(stuttering)
- stuttering = max(stuttering-1, 0)
+ AdjustStuttering(-1)
if(silent)
- silent = max(silent-1, 0)
+ AdjustSilence(-1)
if(druggy)
- druggy = max(druggy-1, 0)
- return 1
\ No newline at end of file
+ AdjustDruggy(-1)
+ return 1
diff --git a/code/modules/mob/living/carbon/brain/brain.dm b/code/modules/mob/living/carbon/brain/brain.dm
index 996687ee4b0..7809e1fb947 100644
--- a/code/modules/mob/living/carbon/brain/brain.dm
+++ b/code/modules/mob/living/carbon/brain/brain.dm
@@ -100,8 +100,8 @@ I'm using this for Stat to give it a more nifty interface to work with
/mob/living/carbon/brain/can_safely_leave_loc()
return 0 //You're not supposed to be ethereal jaunting, brains
-/mob/living/carbon/brain/adjustEarDamage()
+/mob/living/carbon/brain/SetEarDamage() // no ears to damage or heal
return
-/mob/living/carbon/brain/setEarDamage() // no ears to damage or heal
- return
\ No newline at end of file
+/mob/living/carbon/brain/SetEarDeaf()
+ return
diff --git a/code/modules/mob/living/carbon/brain/brain_item.dm b/code/modules/mob/living/carbon/brain/brain_item.dm
index fa466759bcc..e3ffe2074a7 100644
--- a/code/modules/mob/living/carbon/brain/brain_item.dm
+++ b/code/modules/mob/living/carbon/brain/brain_item.dm
@@ -21,7 +21,8 @@
/obj/item/organ/internal/brain/surgeryize()
if(!owner)
return
- owner.setEarDamage(0,0) //Yeah, didn't you...hear? The ears are totally inside the brain.
+ owner.SetEarDeaf(0)
+ owner.SetEarDamage(0) //Yeah, didn't you...hear? The ears are totally inside the brain.
/obj/item/organ/internal/brain/xeno
name = "xenomorph brain"
diff --git a/code/modules/mob/living/carbon/brain/life.dm b/code/modules/mob/living/carbon/brain/life.dm
index 40273bf66ad..74d096d9518 100644
--- a/code/modules/mob/living/carbon/brain/life.dm
+++ b/code/modules/mob/living/carbon/brain/life.dm
@@ -52,12 +52,12 @@
if(stat == DEAD)
blinded = 1
- silent = 0
+ SetSilence(0)
else
if(!container && (health < config.health_threshold_dead || ((world.time - timeofhostdeath) > config.revival_brain_life)))
death()
- blinded =1
- silent = 0
+ blinded = 1
+ SetSilence(0)
return 1
. = 1
diff --git a/code/modules/mob/living/carbon/brain/login.dm b/code/modules/mob/living/carbon/brain/login.dm
index e90297dfe5b..622ae74656a 100644
--- a/code/modules/mob/living/carbon/brain/login.dm
+++ b/code/modules/mob/living/carbon/brain/login.dm
@@ -1,3 +1,3 @@
/mob/living/carbon/brain/Login()
..()
- sleeping = 0
\ No newline at end of file
+ SetSleeping(0)
diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm
index 4f76dce16bd..3b5b415964d 100644
--- a/code/modules/mob/living/carbon/brain/posibrain.dm
+++ b/code/modules/mob/living/carbon/brain/posibrain.dm
@@ -185,7 +185,7 @@
src.brainmob.loc = src
src.brainmob.container = src
src.brainmob.stat = 0
- src.brainmob.silent = 0
+ src.brainmob.SetSilence(0)
dead_mob_list -= src.brainmob
..()
diff --git a/code/modules/mob/living/carbon/brain/update_status.dm b/code/modules/mob/living/carbon/brain/update_status.dm
new file mode 100644
index 00000000000..2532edfe37d
--- /dev/null
+++ b/code/modules/mob/living/carbon/brain/update_status.dm
@@ -0,0 +1,8 @@
+/mob/living/carbon/brain/update_stat()
+ if(status_flags & GODMODE)
+ return
+ // if(health <= min_health)
+ if(health <= config.health_threshold_dead)
+ if(stat != DEAD)
+ death()
+ // Put brain(organ) damaging code here
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 688508c4bf3..256aa562f72 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -158,13 +158,13 @@
"You feel a powerful shock coursing through your body!", \
"You hear a heavy electrical crack." \
)
- jitteriness += 1000 //High numbers for violent convulsions
+ AdjustJitter(1000) //High numbers for violent convulsions
do_jitter_animation(jitteriness)
- stuttering += 2
+ AdjustStuttering(2)
if(!tesla_shock || (tesla_shock && siemens_coeff > 0.5))
Stun(2)
spawn(20)
- jitteriness = max(jitteriness - 990, 10) //Still jittery, but vastly less
+ AdjustJitter(-1000, bound_lower = 10) //Still jittery, but vastly less
if(!tesla_shock || (tesla_shock && siemens_coeff > 0.5))
Stun(3)
Weaken(3)
@@ -268,7 +268,7 @@
if(istype(src,/mob/living/carbon/human) && src:w_uniform)
var/mob/living/carbon/human/H = src
H.w_uniform.add_fingerprint(M)
- src.sleeping = max(0,src.sleeping-5)
+ AdjustSleeping(-5)
if(src.sleeping == 0)
src.resting = 0
AdjustParalysis(-3)
@@ -327,8 +327,8 @@
E.damage += rand(12, 16)
if(E.damage > E.min_bruised_damage)
- eye_blind += damage
- eye_blurry += damage * rand(3, 6)
+ AdjustEyeBlind(damage)
+ AdjustEyeBlurry(damage * rand(3, 6))
if(E.damage > (E.min_bruised_damage + E.min_broken_damage) / 2)
if(!(E.status & ORGAN_ROBOT))
diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm
index b0ccdc8381d..f8a9b38d098 100644
--- a/code/modules/mob/living/carbon/death.dm
+++ b/code/modules/mob/living/carbon/death.dm
@@ -1,9 +1,9 @@
/mob/living/carbon/death(gibbed)
- losebreath = 0
+ SetLoseBreath(0)
med_hud_set_health()
med_hud_set_status()
if(reagents)
reagents.death_metabolize(src)
- ..(gibbed)
\ No newline at end of file
+ ..(gibbed)
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index 4e8ab049927..89c35870cad 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -97,8 +97,8 @@
emote("deathgasp") //let the world KNOW WE ARE DEAD
stat = DEAD
- dizziness = 0
- jitteriness = 0
+ SetDizzy(0)
+ SetJitter(0)
heart_attack = 0
//Handle species-specific deaths.
diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm
index 0746cb30b2c..bd0c3538462 100644
--- a/code/modules/mob/living/carbon/human/emote.dm
+++ b/code/modules/mob/living/carbon/human/emote.dm
@@ -10,7 +10,7 @@
act = copytext(act, 1, t1)
var/muzzled = is_muzzled()
- if(disabilities & MUTE || silent)
+ if(!can_speak())
muzzled = 1
//var/m_type = 1
@@ -313,7 +313,7 @@
M = null
if(M)
- if(lying || weakened)
+ if(lying)
message = "[src] flops and flails around on the floor."
else
message = "[src] flips in [M]'s general direction."
@@ -378,7 +378,7 @@
message = "[src] faints."
if(src.sleeping)
return //Can't faint while asleep
- src.sleeping += 1
+ AdjustSleeping(1)
m_type = 1
if("cough", "coughs")
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 561e60a3522..0bf23e3cae6 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -352,7 +352,8 @@
else valid_limbs -= processing_dismember
if(!istype(l_ear, /obj/item/clothing/ears/earmuffs) && !istype(r_ear, /obj/item/clothing/ears/earmuffs))
- adjustEarDamage(30, 120)
+ AdjustEarDamage(30)
+ AdjustEarDeaf(120)
if(prob(70) && !shielded)
Paralyse(10)
@@ -376,7 +377,8 @@
else valid_limbs -= processing_dismember
if(!istype(l_ear, /obj/item/clothing/ears/earmuffs) && !istype(r_ear, /obj/item/clothing/ears/earmuffs))
- adjustEarDamage(15,60)
+ AdjustEarDamage(15)
+ AdjustEarDeaf(60)
if(prob(50) && !shielded)
Paralyse(10)
@@ -491,8 +493,7 @@
O.show_message(text("The [M.name] has shocked []!", src), 1)
Weaken(power)
- if(stuttering < power)
- stuttering = power
+ Stuttering(power)
Stun(power)
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
@@ -1739,7 +1740,7 @@
if(last_special > world.time)
return
- if(stat || paralysis || stunned || weakened || lying || restrained() || buckled)
+ if(!canmove)
to_chat(src, "You cannot leap in your current state.")
return
@@ -1793,7 +1794,7 @@
if(last_special > world.time)
return
- if(stat || paralysis || stunned || weakened || lying)
+ if(!canmove)
to_chat(src, "\red You cannot do that in your current state.")
return
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 16d940dd439..0ceabc84bfe 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -254,7 +254,7 @@ emp_act
visible_message("[src] has been knocked down!", \
"[src] has been knocked down!")
apply_effect(5, WEAKEN, armor)
- confused += 15
+ AdjustConfused(15)
if(prob(I.force + ((100 - health)/2)) && src != user && I.damtype == BRUTE)
ticker.mode.remove_revolutionary(mind)
diff --git a/code/modules/mob/living/carbon/human/interactive/interactive.dm b/code/modules/mob/living/carbon/human/interactive/interactive.dm
index 1862062e4cf..2dfc4f8d24e 100644
--- a/code/modules/mob/living/carbon/human/interactive/interactive.dm
+++ b/code/modules/mob/living/carbon/human/interactive/interactive.dm
@@ -167,7 +167,7 @@
/client/proc/customiseSNPC(mob/living/carbon/human/interactive/T in npc_master.botPool_l)
set name = "Customize SNPC"
- set desc = "Customise the SNPC"
+ set desc = "Customize the SNPC"
set category = "Debug"
if(!holder)
@@ -403,7 +403,7 @@
if(!hud_used)
hud_used = new /datum/hud/human(src)
-/mob/living/carbon/human/interactive/New()
+/mob/living/carbon/human/interactive/New(var/new_loc, var/new_species = null)
..()
snpc_list += src
@@ -916,7 +916,7 @@
TARGET = null
return 1
- if(!(get_turf(src) in validHome))
+ if(!(get_turf(src) in validHome) && validHome.len)
tryWalk(pick(get_area_turfs(job2area(myjob))))
return 1
return 0
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 78e9098f434..471cb6bbf69 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -86,8 +86,8 @@
// If we have the gene for being crazy, have random events.
if(dna.GetSEState(HALLUCINATIONBLOCK))
- if(prob(1) && hallucination < 1)
- hallucination += 20
+ if(prob(1))
+ Hallucinate(20)
if(disabilities & COUGHING)
if((prob(5) && paralysis <= 1))
@@ -111,9 +111,9 @@
if(disabilities & NERVOUS)
speech_problem_flag = 1
if(prob(10))
- stuttering = max(10, stuttering)
+ Stuttering(10)
- if(getBrainLoss() >= 60 && stat != 2)
+ if(getBrainLoss() >= 60 && stat != DEAD)
speech_problem_flag = 1
if(prob(3))
var/list/s1 = list("IM A PONY NEEEEEEIIIIIIIIIGH",
@@ -152,8 +152,8 @@
if(getBrainLoss() >= 100 && stat != 2) //you lapse into a coma and die without immediate aid; RIP. -Fox
Weaken(20)
- losebreath += 10
- silent += 2
+ AdjustLoseBreath(10)
+ AdjustSilence(2)
if(getBrainLoss() >= 120 && stat != 2) //they died from stupidity--literally. -Fox
visible_message("[src] goes limp, their facial expression utterly blank.")
@@ -281,10 +281,10 @@
var/datum/gas_mixture/breath
if(health <= config.health_threshold_crit)
- losebreath++
+ AdjustLoseBreath(1)
if(losebreath > 0)
- losebreath--
+ AdjustLoseBreath(-1)
if(prob(10))
spawn emote("gasp")
if(istype(loc, /obj/))
@@ -696,20 +696,20 @@
overeatduration -= 2
if(drowsyness)
- drowsyness--
- eye_blurry = max(2, eye_blurry)
+ AdjustDrowsy(-1)
+ EyeBlurry(2)
if(prob(5))
- sleeping += 1
+ AdjustSleeping(1)
Paralyse(5)
- confused = max(0, confused - 1)
+ AdjustConfused(-1)
// decrement dizziness counter, clamped to 0
if(resting)
- dizziness = max(0, dizziness - 15)
- jitteriness = max(0, jitteriness - 15)
+ AdjustDizzy(-15)
+ AdjustJitter(-15)
else
- dizziness = max(0, dizziness - 3)
- jitteriness = max(0, jitteriness - 3)
+ AdjustDizzy(-3)
+ AdjustJitter(-3)
if(species && species.flags & NO_INTORGANS) return
@@ -744,8 +744,7 @@
alcohol_strength *= 5
if(alcohol_strength >= slur_start) //slurring
- if(!slurring) slurring = 1
- slurring = drunk
+ Slur(drunk)
if(alcohol_strength >= brawl_start) //the drunken martial art
if(!istype(martial_art, /datum/martial_art/drunk_brawling))
var/datum/martial_art/drunk_brawling/F = new
@@ -754,18 +753,17 @@
if(istype(martial_art, /datum/martial_art/drunk_brawling))
martial_art.remove(src)
if(alcohol_strength >= confused_start && prob(33)) //confused walking
- if(!confused) confused = 1
- confused = max(confused+(3/sober_str),0)
+ if(!confused) Confused(1)
+ AdjustConfused(3/sober_str)
if(alcohol_strength >= blur_start) //blurry eyes
- eye_blurry = max(eye_blurry, 10/sober_str)
- drowsyness = max(drowsyness, 0)
+ EyeBlurry(10/sober_str)
if(!isSynthetic()) //stuff only for non-synthetics
if(alcohol_strength >= vomit_start) //vomiting
if(prob(8))
fakevomit()
if(alcohol_strength >= pass_out)
- Paralyse(5 / sober_str)
- drowsyness = max(drowsyness, 30/sober_str)
+ Paralyse(5/sober_str)
+ Drowsy(30/sober_str)
if(L)
L.take_damage(0.1, 1)
adjustToxLoss(0.1)
@@ -837,14 +835,14 @@
vision = get_int_organ(species.vision_organ)
if(!species.vision_organ) // Presumably if a species has no vision organs, they see via some other means.
- eye_blind = 0
+ SetEyeBlind(0)
blinded = 0
- eye_blurry = 0
+ SetEyeBlurry(0)
else if(!vision || vision.is_broken()) // Vision organs cut out or broken? Permablind.
- eye_blind = 1
+ EyeBlind(1)
blinded = 1
- eye_blurry = 1
+ EyeBlurry(1)
else
//blindness
@@ -852,34 +850,34 @@
blinded = 1
else if(eye_blind) // Blindness, heals slowly over time
- eye_blind = max(eye_blind-1,0)
+ AdjustEyeBlind(-1)
blinded = 1
else if(istype(glasses, /obj/item/clothing/glasses/sunglasses/blindfold)) //resting your eyes with a blindfold heals blurry eyes faster
- eye_blurry = max(eye_blurry-3, 0)
+ AdjustEyeBlurry(-3)
blinded = 1
//blurry sight
if(vision.is_bruised()) // Vision organs impaired? Permablurry.
- eye_blurry = 1
+ EyeBlurry(1)
if(eye_blurry) // Blurry eyes heal slowly
- eye_blurry = max(eye_blurry-1, 0)
+ AdjustEyeBlurry(-1)
//Ears
if(disabilities & DEAF) //disabled-deaf, doesn't get better on its own
- setEarDamage(-1, max(ear_deaf, 1))
+ EarDeaf(1)
else if(ear_deaf) //deafness, heals slowly over time
- adjustEarDamage(0,-1)
+ AdjustEarDeaf(-1)
else if(istype(l_ear, /obj/item/clothing/ears/earmuffs) || istype(r_ear, /obj/item/clothing/ears/earmuffs)) //resting your ears with earmuffs heals ear damage faster
- adjustEarDamage(-0.15,0)
- setEarDamage(-1, max(ear_deaf, 1))
+ AdjustEarDamage(-0.15)
+ EarDeaf(1)
else if(ear_damage < 25) //ear damage heals slowly under this threshold. otherwise you'll need earmuffs
- adjustEarDamage(-0.05,0)
+ AdjustEarDamage(-0.05)
if(flying)
animate(src, pixel_y = pixel_y + 5 , time = 10, loop = 1, easing = SINE_EASING)
@@ -896,7 +894,7 @@
else //dead
blinded = 1
- silent = 0
+ SetSilence(0)
/mob/living/carbon/human/handle_vision()
@@ -995,8 +993,8 @@
if(shock_stage >= 30)
if(shock_stage == 30) custom_emote(1,"is having trouble keeping their eyes open.")
- eye_blurry = max(2, eye_blurry)
- stuttering = max(stuttering, 5)
+ EyeBlurry(2)
+ Stuttering(5)
if(shock_stage == 40)
to_chat(src, ""+pick("The pain is excrutiating!", "Please, just end the pain!", "Your whole body is going numb!"))
@@ -1183,8 +1181,7 @@
if(!heart_attack)
return
else
- if(losebreath < 3)
- losebreath += 2
+ AdjustLoseBreath(2, bound_lower = 0, bound_upper = 3)
adjustOxyLoss(5)
adjustBruteLoss(1)
diff --git a/code/modules/mob/living/carbon/human/species/plasmaman.dm b/code/modules/mob/living/carbon/human/species/plasmaman.dm
index d8434a87223..49d6d7fe245 100644
--- a/code/modules/mob/living/carbon/human/species/plasmaman.dm
+++ b/code/modules/mob/living/carbon/human/species/plasmaman.dm
@@ -189,7 +189,7 @@
if(SA_pp > SA_para_min) // Enough to make us paralysed for a bit
H.Paralyse(3) // 3 gives them one second to wake up and run away a bit!
if(SA_pp > SA_sleep_min) // Enough to make us sleep as well
- H.sleeping = min(H.sleeping+2, 10)
+ H.AdjustSleeping(2, bound_lower = 0, bound_upper = 10)
else if(SA_pp > 0.15) // There is sleeping gas in their lungs, but only a little, so give them a bit of a warning
if(prob(20))
spawn(0)
diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm
index 9884ef74354..7b91d51261c 100644
--- a/code/modules/mob/living/carbon/human/species/species.dm
+++ b/code/modules/mob/living/carbon/human/species/species.dm
@@ -332,7 +332,7 @@
if(SA_pp > atmos_requirements["sa_para"]) // Enough to make us paralysed for a bit
H.Paralyse(3) // 3 gives them one second to wake up and run away a bit!
if(SA_pp > atmos_requirements["sa_sleep"]) // Enough to make us sleep as well
- H.sleeping = max(H.sleeping + 2, 10)
+ H.AdjustSleeping(2, bound_lower = 0, bound_upper = 10)
else if(SA_pp > 0.01) // There is sleeping gas in their lungs, but only a little, so give them a bit of a warning
if(prob(20))
spawn(0)
@@ -509,7 +509,7 @@
if(tinted_weldhelh)
H.overlay_fullscreen("tint", /obj/screen/fullscreen/impaired, 2)
if(H.tinttotal >= TINT_BLIND)
- H.eye_blind = max(H.eye_blind, 1)
+ H.EyeBlind(1)
else
H.clear_fullscreen("tint")
diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm
index 985047a8284..5e0841168e0 100644
--- a/code/modules/mob/living/carbon/life.dm
+++ b/code/modules/mob/living/carbon/life.dm
@@ -49,10 +49,10 @@
var/datum/gas_mixture/breath
if(health <= config.health_threshold_crit)
- losebreath++
+ AdjustLoseBreath(1)
if(losebreath > 0)
- losebreath--
+ AdjustLoseBreath(-1)
if(prob(10))
spawn emote("gasp")
if(istype(loc, /obj/))
@@ -165,7 +165,7 @@
if(SA_partialpressure > SA_para_min)
Paralyse(3)
if(SA_partialpressure > SA_sleep_min)
- sleeping = max(sleeping+2, 10)
+ AdjustSleeping(2, bound_lower = 0, bound_upper = 10)
else if(SA_partialpressure > 0.01)
if(prob(20))
spawn(0) emote(pick("giggle","laugh"))
@@ -319,30 +319,27 @@
C.pixel_x -= pixel_x_diff
C.pixel_y -= pixel_y_diff
src = oldsrc
- dizziness = max(dizziness - restingpwr, 0)
+ AdjustDizzy(-restingpwr)
if(drowsyness)
- drowsyness = max(drowsyness - restingpwr, 0)
- eye_blurry = max(2, eye_blurry)
+ AdjustDrowsy(-restingpwr)
+ EyeBlurry(2)
if(prob(5))
- sleeping += 1
+ AdjustSleeping(1)
Paralyse(5)
if(confused)
- confused = max(0, confused - 1)
+ AdjustConfused(-1)
//Jitteryness
if(jitteriness)
do_jitter_animation(jitteriness)
- jitteriness = max(jitteriness - restingpwr, 0)
+ AdjustJitter(-restingpwr)
if(hallucination)
spawn handle_hallucinations()
- if(hallucination<=2)
- hallucination = 0
- else
- hallucination -= 2
+ AdjustHallucinate(-2)
/mob/living/carbon/handle_sleeping()
if(..())
@@ -352,8 +349,8 @@
spawn(0)
emote("snore")
// Keep SSD people asleep
- if(player_logged && sleeping < 2)
- sleeping = 2
+ if(player_logged)
+ Sleeping(2)
return sleeping
diff --git a/code/modules/mob/living/carbon/slime/life.dm b/code/modules/mob/living/carbon/slime/life.dm
index b51e0084ee3..6e3221c19fa 100644
--- a/code/modules/mob/living/carbon/slime/life.dm
+++ b/code/modules/mob/living/carbon/slime/life.dm
@@ -208,25 +208,25 @@
if(src.stuttering) src.stuttering = 0
if(src.eye_blind)
- src.eye_blind = 0
+ src.SetEyeBlind(0)
src.blinded = 1
- if(src.ear_deaf > 0) src.ear_deaf = 0
+ if(src.ear_deaf > 0) SetEarDeaf(0)
if(src.ear_damage < 25)
- src.ear_damage = 0
+ SetEarDamage(0)
src.density = !( src.lying )
if(src.disabilities & BLIND)
src.blinded = 1
if(src.disabilities & DEAF)
- src.ear_deaf = 1
+ EarDeaf(1)
if(src.eye_blurry > 0)
- src.eye_blurry = 0
+ SetEyeBlurry(0)
if(src.druggy > 0)
- src.druggy = 0
+ SetDruggy(0)
return 1
diff --git a/code/modules/mob/living/carbon/update_status.dm b/code/modules/mob/living/carbon/update_status.dm
new file mode 100644
index 00000000000..3b0d3a045fc
--- /dev/null
+++ b/code/modules/mob/living/carbon/update_status.dm
@@ -0,0 +1,17 @@
+/mob/living/carbon/update_stat()
+ if(status_flags & GODMODE)
+ return
+ if(stat != DEAD)
+// if(health <= min_health)
+ if(health <= config.health_threshold_dead)
+ death()
+ return
+// if(paralysis || sleeping || getOxyLoss() > low_oxy_ko || (status_flags & FAKEDEATH) || health <= crit_health)
+ if(paralysis || sleeping || getOxyLoss() > 50 || (status_flags & FAKEDEATH) || health <= config.health_threshold_crit)
+ if(stat == CONSCIOUS)
+ KnockOut()
+ else
+ if(stat == UNCONSCIOUS)
+ // updating=FALSE because `WakeUp` will handle canmove up for us
+ StopResting(updating=FALSE)
+ WakeUp()
diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm
index 921080c989a..ffd1fb9cd60 100644
--- a/code/modules/mob/living/damage_procs.dm
+++ b/code/modules/mob/living/damage_procs.dm
@@ -57,17 +57,16 @@
rad_damage = max(effect * ((100-run_armor_check(null, "rad", "Your clothes feel warm.", "Your clothes feel warm."))/100),0)
radiation += rad_damage
if(SLUR)
- slurring = max(slurring,(effect * blocked))
+ Slur(effect * blocked)
if(STUTTER)
- if(status_flags & CANSTUN) // stun is usually associated with stutter
- stuttering = max(stuttering,(effect * blocked))
+ Stuttering(effect * blocked)
if(EYE_BLUR)
- eye_blurry = max(eye_blurry,(effect * blocked))
+ EyeBlurry(effect * blocked)
if(DROWSY)
- drowsyness = max(drowsyness,(effect * blocked))
+ Drowsy(effect * blocked)
if(JITTER)
if(status_flags & CANSTUN)
- jitteriness = max(jitteriness,(effect * blocked))
+ Jitter(effect * blocked)
updatehealth()
return 1
diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm
index a151a062bce..308025e0204 100644
--- a/code/modules/mob/living/life.dm
+++ b/code/modules/mob/living/life.dm
@@ -136,17 +136,17 @@
/mob/living/proc/handle_silent()
if(silent)
- silent = max(silent-1, 0)
+ AdjustSilence(-1)
return silent
/mob/living/proc/handle_drugged()
if(druggy)
- druggy = max(druggy-1, 0)
+ AdjustDruggy(-1)
return druggy
/mob/living/proc/handle_slurring()
if(slurring)
- slurring = max(slurring-1, 0)
+ AdjustSlur(-1)
return slurring
/mob/living/proc/handle_paralysed()
@@ -164,7 +164,7 @@
/mob/living/proc/handle_slowed()
if(slowed)
- slowed = max(slowed-1, 0)
+ AdjustSlowed(-1)
return slowed
/mob/living/proc/handle_drunk()
@@ -175,19 +175,20 @@
/mob/living/proc/handle_disabilities()
//Eyes
if(disabilities & BLIND || stat) //blindness from disability or unconsciousness doesn't get better on its own
- eye_blind = max(eye_blind, 1)
+ EyeBlind(1)
else if(eye_blind) //blindness, heals slowly over time
- eye_blind = max(eye_blind-1,0)
+ AdjustEyeBlind(-1)
else if(eye_blurry) //blurry eyes heal slowly
- eye_blurry = max(eye_blurry-1, 0)
+ AdjustEyeBlurry(-1)
//Ears
if(disabilities & DEAF) //disabled-deaf, doesn't get better on its own
- setEarDamage(-1, max(ear_deaf, 1))
+ EarDeaf(1)
else
// deafness heals slowly over time, unless ear_damage is over 100
if(ear_damage < 100)
- adjustEarDamage(-0.05,-1)
+ AdjustEarDamage(-0.05)
+ AdjustEarDeaf(-1)
//this handles hud updates. Calls update_vision() and handle_hud_icons()
/mob/living/proc/handle_regular_hud_updates()
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 72cc4789779..dd9e9f7cbd6 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -261,19 +261,6 @@
var/obj/item/organ/external/def_zone = ran_zone(t)
return def_zone
-
-//damage/heal the mob ears and adjust the deaf amount
-/mob/living/adjustEarDamage(damage, deaf)
- ear_damage = max(0, ear_damage + damage)
- ear_deaf = max(0, ear_deaf + deaf)
-
-//pass a negative argument to skip one of the variable
-/mob/living/setEarDamage(damage, deaf)
- if(damage >= 0)
- ear_damage = damage
- if(deaf >= 0)
- ear_deaf = deaf
-
// heal ONE external organ, organ gets randomly selected from damaged ones.
/mob/living/proc/heal_organ_damage(var/brute, var/burn)
adjustBruteLoss(-brute)
@@ -323,14 +310,6 @@
C.reagents.clear_reagents()
C.reagents.addiction_list.Cut()
-/mob/living/proc/update_revive() // handles revival through other means than cloning or adminbus (defib, IPC repair)
- stat = CONSCIOUS
- dead_mob_list -= src
- living_mob_list |= src
- mob_list |= src
- setEarDamage(-1,0)
- timeofdeath = 0
-
/mob/living/proc/rejuvenate()
var/mob/living/carbon/human/human_mob = null //Get this declared for use later.
@@ -344,22 +323,30 @@
SetParalysis(0)
SetStunned(0)
SetWeakened(0)
- slowed = 0
- losebreath = 0
- dizziness = 0
- jitteriness = 0
- confused = 0
- drowsyness = 0
+ SetSlowed(0)
+ SetLoseBreath(0)
+ SetDizzy(0)
+ SetJitter(0)
+ SetConfused(0)
+ SetDrowsy(0)
radiation = 0
- druggy = 0
- hallucination = 0
+ SetDruggy(0)
+ SetHallucinate(0)
+ blinded = 0
nutrition = 400
bodytemperature = 310
- disabilities = 0
- blinded = 0
- eye_blind = 0
- eye_blurry = 0
- setEarDamage(0,0)
+ CureBlind()
+ CureNearsighted()
+ CureMute()
+ CureDeaf()
+ CureTourettes()
+ CureEpilepsy()
+ CureCoughing()
+ CureNervous()
+ SetEyeBlind(0)
+ SetEyeBlurry(0)
+ SetEarDamage(0)
+ SetEarDeaf(0)
heal_overall_damage(1000, 1000)
ExtinguishMob()
fire_stacks = 0
diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm
index c142c8d28d1..c3dab651906 100644
--- a/code/modules/mob/living/living_defines.dm
+++ b/code/modules/mob/living/living_defines.dm
@@ -15,8 +15,6 @@
var/brainloss = 0 //'Retardation' damage caused by someone hitting you in the head with a bible or being infected with brainrot.
var/staminaloss = 0 //Stamina damage, or exhaustion. You recover it slowly naturally, and are stunned if it gets too high. Holodeck and hallucinations deal this.
- var/hallucination = 0 //Directly affects how long a mob will hallucinate for
-
var/last_special = 0 //Used by the resist verb, likely used to prevent players from bypassing next_move by logging in/out.
@@ -32,7 +30,6 @@
var/update_slimes = 1
var/implanting = 0 //Used for the mind-slave implant
- var/silent = 0 //Can't talk. Value goes down every life proc. //NOTE TO FUTURE CODERS: DO NOT INITIALIZE NUMERICAL VARS AS NULL OR I WILL MURDER YOU.
var/floating = 0
var/mob_size = MOB_SIZE_HUMAN
var/nightvision = 0
diff --git a/code/modules/mob/living/logout.dm b/code/modules/mob/living/logout.dm
index 71e26e60858..10ba19b4302 100644
--- a/code/modules/mob/living/logout.dm
+++ b/code/modules/mob/living/logout.dm
@@ -4,6 +4,6 @@
if(!key) //key and mind have become seperated. I believe this is for when a staff member aghosts.
mind.active = 0 //This is to stop say, a mind.transfer_to call on a corpse causing a ghost to re-enter its body.
//This causes instant sleep and tags a player as SSD. See life.dm for furthering SSD.
- if(sleeping < 2 && mind.active)
- sleeping = 2
- player_logged = 1
\ No newline at end of file
+ if(mind.active)
+ Sleeping(2)
+ player_logged = 1
diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm
index 8cf6863eafb..2a3b39c1c9b 100644
--- a/code/modules/mob/living/silicon/ai/say.dm
+++ b/code/modules/mob/living/silicon/ai/say.dm
@@ -82,7 +82,7 @@ var/const/VOX_PATH = "sound/vox_fem/"
for(var/mob/M in player_list)
if(M.client)
var/turf/T = get_turf(M)
- if(T && T.z == z_level && !isdeaf(M))
+ if(T && T.z == z_level && M.can_hear())
M << voice
else
only_listener << voice
diff --git a/code/modules/mob/living/silicon/ai/update_status.dm b/code/modules/mob/living/silicon/ai/update_status.dm
new file mode 100644
index 00000000000..4fa060abf39
--- /dev/null
+++ b/code/modules/mob/living/silicon/ai/update_status.dm
@@ -0,0 +1,10 @@
+/mob/living/silicon/ai/update_stat()
+ if(status_flags & GODMODE)
+ return
+ if(stat != DEAD)
+ if(health <= config.health_threshold_dead)
+ death()
+ return
+ else if(stat == UNCONSCIOUS)
+ WakeUp()
+ //diag_hud_set_status()
diff --git a/code/modules/mob/living/silicon/login.dm b/code/modules/mob/living/silicon/login.dm
index bd93fd6c3c4..01240adf942 100644
--- a/code/modules/mob/living/silicon/login.dm
+++ b/code/modules/mob/living/silicon/login.dm
@@ -1,5 +1,5 @@
/mob/living/silicon/Login()
- sleeping = 0
+ SetSleeping(0)
if(mind && ticker && ticker.mode)
ticker.mode.remove_revolutionary(mind, 1)
ticker.mode.remove_cultist(mind, 1)
@@ -9,4 +9,4 @@
ticker.mode.remove_thrall(mind, 0)
ticker.mode.remove_shadowling(mind)
ticker.mode.remove_abductor(mind)
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/modules/mob/living/silicon/pai/update_status.dm b/code/modules/mob/living/silicon/pai/update_status.dm
new file mode 100644
index 00000000000..155ecc84a28
--- /dev/null
+++ b/code/modules/mob/living/silicon/pai/update_status.dm
@@ -0,0 +1,3 @@
+/mob/living/silicon/pai/update_stat()
+ if(health <= 0)
+ death(gibbed = 0)
diff --git a/code/modules/mob/living/silicon/robot/drone/update_status.dm b/code/modules/mob/living/silicon/robot/drone/update_status.dm
new file mode 100644
index 00000000000..97d2214c2e2
--- /dev/null
+++ b/code/modules/mob/living/silicon/robot/drone/update_status.dm
@@ -0,0 +1,10 @@
+//Easiest to check this here, then check again in the robot proc.
+//Standard robots use config for crit, which is somewhat excessive for these guys.
+//Drones killed by damage will gib.
+/mob/living/silicon/robot/drone/update_stat()
+ if(status_flags & GODMODE)
+ return
+ if(health <= -35 && stat != DEAD)
+ gib()
+ return
+ return ..()
diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm
index b2c8857f040..ca480d987f8 100644
--- a/code/modules/mob/living/silicon/robot/life.dm
+++ b/code/modules/mob/living/silicon/robot/life.dm
@@ -62,7 +62,7 @@
if(sleeping)
Paralyse(3)
- sleeping--
+ AdjustSleeping(-1)
if(resting)
Weaken(5)
@@ -90,7 +90,7 @@
stat = UNCONSCIOUS
if(!paralysis > 0)
- eye_blind = 0
+ SetEyeBlind(0)
else
stat = CONSCIOUS
@@ -98,7 +98,7 @@
diag_hud_set_health()
diag_hud_set_status()
else //dead
- eye_blind = 1
+ SetEyeBlind(0)
//update the state of modules and components here
if(stat != CONSCIOUS)
diff --git a/code/modules/mob/living/silicon/robot/update_status.dm b/code/modules/mob/living/silicon/robot/update_status.dm
new file mode 100644
index 00000000000..a28aae28278
--- /dev/null
+++ b/code/modules/mob/living/silicon/robot/update_status.dm
@@ -0,0 +1,21 @@
+// No args for restraints because robots don't have those
+/mob/living/silicon/robot/incapacitated()
+ if(stat || lockcharge || weakened || stunned || paralysis || !is_component_functioning("actuator"))
+ return 1
+
+/mob/living/silicon/robot/update_stat()
+ if(status_flags & GODMODE)
+ return
+ if(stat != DEAD)
+ if(health <= -maxHealth) //die only once
+ death()
+ return
+ if(!is_component_functioning("actuator") || paralysis || sleeping || stunned || weakened || getOxyLoss() > maxHealth * 0.5)
+ if(stat == CONSCIOUS)
+ KnockOut()
+ else
+ if(stat == UNCONSCIOUS)
+ WakeUp()
+ // diag_hud_set_status()
+ // diag_hud_set_health()
+ // update_health_hud()
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index 75bbec89a1b..469b6e86574 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -152,7 +152,7 @@
//Silicon mob language procs
-/mob/living/silicon/can_speak(datum/language/speaking)
+/mob/living/silicon/can_speak_language(datum/language/speaking)
return universal_speak || (speaking in src.speech_synthesizer_langs) //need speech synthesizer support to vocalize a language
/mob/living/silicon/add_language(var/language, var/can_speak=1)
@@ -355,8 +355,8 @@
/////////////////////////////////// EAR DAMAGE ////////////////////////////////////
-/mob/living/silicon/adjustEarDamage()
+/mob/living/silicon/SetEarDamage()
return
-/mob/living/silicon/setEarDamage()
- return
\ No newline at end of file
+/mob/living/silicon/SetEarDeaf()
+ return
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
index 4c974c46c16..47c243e970e 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
@@ -466,6 +466,9 @@
return
if(istype(target, /obj/mecha/working/ripley))
var/obj/mecha/D = target
+ if(D.icon_state != "ripley-open")
+ to_chat(user, "You can't add armour onto the mech while someone is inside!")
+ return
var/list/damage_absorption = D.damage_absorption
if(damage_absorption["brute"] > 0.3)
damage_absorption["brute"] = max(damage_absorption["brute"] - 0.1, 0.3)
@@ -474,17 +477,11 @@
damage_absorption["laser"] = damage_absorption["laser"] - 0.025
to_chat(user, "You strengthen [target], improving its resistance against melee attacks.")
qdel(src)
- if(D.icon_state == "ripley-open")
- D.overlays += image("icon"="mecha.dmi", "icon_state"="ripley-g-open")
- D.desc = "Autonomous Power Loader Unit. Its armour is enhanced with some goliath hide plates."
- else
- to_chat(user, "You can't add armour onto the mech while someone is inside!")
+ D.overlays += image("icon"="mecha.dmi", "icon_state"="ripley-g-open")
+ D.desc = "Autonomous Power Loader Unit. Its armour is enhanced with some goliath hide plates."
if(damage_absorption.["brute"] == 0.3)
- if(D.icon_state == "ripley-open")
- D.overlays += image("icon"="mecha.dmi", "icon_state"="ripley-g-full-open")
- D.desc = "Autonomous Power Loader Unit. It's wearing a fearsome carapace entirely composed of goliath hide plates - the pilot must be an experienced monster hunter."
- else
- to_chat(user, "You can't add armour onto the mech while someone is inside!")
+ D.overlays += image("icon"="mecha.dmi", "icon_state"="ripley-g-full-open")
+ D.desc = "Autonomous Power Loader Unit. It's wearing a fearsome carapace entirely composed of goliath hide plates - the pilot must be an experienced monster hunter."
else
to_chat(user, "You can't improve [D] any further!")
return
diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm
index cb48c63b66f..d0e8e0e4bad 100644
--- a/code/modules/mob/living/simple_animal/hostile/statue.dm
+++ b/code/modules/mob/living/simple_animal/hostile/statue.dm
@@ -118,11 +118,11 @@
for(var/atom/check in check_list)
for(var/mob/living/M in viewers(world.view + 1, check) - src)
if(M.client && CanAttack(M) && !M.has_unlimited_silicon_privilege)
- if(!M.eye_blind)
+ if(M.can_see())
return M
for(var/obj/mecha/M in view(world.view + 1, check)) //assuming if you can see them they can see you
if(M.occupant && M.occupant.client)
- if(!M.occupant.eye_blind)
+ if(M.occupant.can_see())
return M.occupant
return null
@@ -185,7 +185,7 @@
continue
var/turf/T = get_turf(L.loc)
if(T && T in targets)
- L.eye_blind = max(L.eye_blind, 4)
+ L.EyeBlind(4)
return
//Toggle Night Vision
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index 06160dca1fd..cc5b319c84f 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -706,8 +706,8 @@
/mob/living/simple_animal/proc/sentience_act() //Called when a simple animal gains sentience via gold slime potion
return
-/mob/living/simple_animal/adjustEarDamage()
+/mob/living/simple_animal/SetEarDamage()
return
-/mob/living/simple_animal/setEarDamage()
- return
\ No newline at end of file
+/mob/living/simple_animal/SetEarDeaf()
+ return
diff --git a/code/modules/mob/living/stat_states.dm b/code/modules/mob/living/stat_states.dm
new file mode 100644
index 00000000000..49c91a10d99
--- /dev/null
+++ b/code/modules/mob/living/stat_states.dm
@@ -0,0 +1,50 @@
+// There, now `stat` is a proper state-machine
+
+/mob/living/proc/KnockOut(updating = 1)
+ if(stat == DEAD)
+ log_runtime(EXCEPTION("KnockOut called on a dead mob."), src)
+ return 0
+ else if(stat == UNCONSCIOUS)
+ return 0
+ add_logs(src, null, "fallen unconscious at [atom_loc_line(get_turf(src))]", admin=0)
+ stat = UNCONSCIOUS
+ if(updating)
+ // update_blind_effects()
+ update_canmove()
+ return 1
+
+/mob/living/proc/WakeUp(updating = 1)
+ if(stat == DEAD)
+ log_runtime(EXCEPTION("WakeUp called on a dead mob."), src)
+ return 0
+ else if(stat == CONSCIOUS)
+ return 0
+ add_logs(src, null, "woken up at [atom_loc_line(get_turf(src))]", admin=0)
+ stat = CONSCIOUS
+ if(updating)
+ // update_blind_effects()
+ update_canmove()
+ return 1
+
+/mob/living/proc/can_be_revived()
+ . = TRUE
+ // if(health <= min_health)
+ if(health <= config.health_threshold_dead)
+ return FALSE
+
+// death() is used to make a mob die
+
+// handles revival through other means than cloning or adminbus (defib, IPC repair)
+/mob/living/proc/update_revive()
+ if(stat != DEAD)
+ return
+ if(!can_be_revived())
+ return
+ add_logs(src, null, "came back to life at [atom_loc_line(get_turf(src))]", admin=0)
+ stat = CONSCIOUS
+ dead_mob_list -= src
+ living_mob_list += src
+ timeofdeath = null
+ update_canmove()
+ // update_blind_effects()
+ updatehealth()
diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm
new file mode 100644
index 00000000000..bc12dfdeb87
--- /dev/null
+++ b/code/modules/mob/living/status_procs.dm
@@ -0,0 +1,513 @@
+//Here are the procs used to modify status effects of a mob.
+
+// We use these to automatically apply their effects when they are changed, as
+// opposed to setting them manually and having to either wait for the next `Life`
+// or update by hand
+
+// The `updating` argument is only available on effects that cause a visual/physical effect on the mob itself
+// when applied, such as Stun, Weaken, and Jitter - stuff like Blindness, which has a client-side effect,
+// lacks this argument.
+
+// Ideally, code should only read the vars in this file, and not ever directly
+// modify them
+
+// If you want a mob type to ignore a given status effect, just override the corresponding
+// `SetSTATE` proc - since all of the other procs are wrappers around that,
+// calling them will have no effect
+
+// BOOLEAN STATES
+
+/*
+ * EyesBlocked
+ Your eyes are covered somehow
+ * EarsBlocked
+ Your ears are covered somehow
+ * Resting
+ You are lying down of your own volition
+ * Flying
+ For some reason or another you can move while not touching the ground
+*/
+
+
+// STATUS EFFECTS
+// All of these decrement over time - at a rate of 1 per life cycle unless otherwise noted
+// Status effects sorted alphabetically:
+/*
+ * Confused *
+ Movement is scrambled
+ * Dizzy *
+ The screen goes all warped
+ * Drowsy
+ You begin to yawn, and have a chance of incrementing "Paralysis"
+ * Druggy *
+ A trippy overlay appears.
+ * Drunk *
+ Essentially what your "BAC" is - the higher it is, the more alcohol you have in you
+ * EarDamage *
+ Doesn't do much, but if it's 25+, you go deaf. Heals much slower than other statuses - 0.05 normally
+ * EarDeaf *
+ You cannot hear. Prevents EarDamage from healing naturally.
+ * EyeBlind *
+ You cannot see. Prevents EyeBlurry from healing naturally.
+ * EyeBlurry *
+ A hazy overlay appears on your screen.
+ * Hallucination *
+ Your character will imagine various effects happening to them, vividly.
+ * Jitter *
+ Your character will visibly twitch. Higher values amplify the effect.
+ * LoseBreath *
+ Your character is unable to breathe.
+ * Paralysis *
+ Your character is knocked out.
+ * Silent *
+ Your character is unable to speak.
+ * Sleeping *
+ Your character is asleep.
+ * Slowed *
+ Your character moves slower.
+ * Slurring *
+ Your character cannot enunciate clearly.
+ * Stunned *
+ Your character is unable to move, and drops stuff in their hands. They keep standing, though.
+ * Stuttering *
+ Your character stutters parts of their messages.
+ * Weakened *
+ Your character collapses, but is still conscious.
+*/
+
+// DISABILITIES
+// These are more permanent than the above.
+// Disabilities sorted alphabetically
+/*
+ * Blind (32)
+ Can't see. EyeBlind does not heal when this is active.
+ * Coughing (4)
+ Cough occasionally, causing you to drop your items
+ * Deaf (128)
+ Can't hear. EarDeaf does not heal when this is active
+ * Epilepsy (2)
+ Occasionally go "Epileptic", causing you to become very twitchy, drop all items, and fall to the floor
+ * Mute (64)
+ Cannot talk.
+ * Nearsighted (1)
+ My glasses! I can't see without my glasses! (Nearsighted overlay when not wearing prescription eyewear)
+ * Nervous (16)
+ Occasionally begin to stutter.
+ * Tourettes (8)
+ SHIT (say bad words, and drop stuff occasionally)
+*/
+
+/mob/living
+
+ // Booleans
+ var/resting = FALSE
+
+ /*
+ STATUS EFFECTS
+ */
+
+/mob // On `/mob` for now, to support legacy code
+ var/confused = 0
+ var/dizziness = 0
+ var/drowsyness = 0
+ var/druggy = 0
+ var/drunk = 0
+ var/ear_damage = 0
+ var/ear_deaf = 0
+ var/eye_blind = 0
+ var/eye_blurry = 0
+ var/hallucination = 0
+ var/jitteriness = 0
+ var/losebreath = 0
+ var/paralysis = 0
+ var/silent = 0
+ var/sleeping = 0
+ var/slowed = 0
+ var/slurring = 0
+ var/stunned = 0
+ var/stuttering = 0
+ var/weakened = 0
+
+/mob/living
+ // Bitfields
+ var/disabilities = 0
+
+// RESTING
+
+/mob/living/proc/StartResting(updating = 1)
+ var/val_change = !resting
+ resting = TRUE
+ if(updating && val_change)
+ update_canmove()
+
+/mob/living/proc/StopResting(updating = 1)
+ var/val_change = !!resting
+ resting = FALSE
+ if(updating && val_change)
+ update_canmove()
+
+/mob/living/proc/StartFlying()
+ var/val_change = !flying
+ flying = TRUE
+ if(val_change)
+ update_animations()
+
+/mob/living/proc/StopFlying()
+ var/val_change = !!flying
+ flying = FALSE
+ if(val_change)
+ update_animations()
+
+
+// SCALAR STATUS EFFECTS
+
+// CONFUSED
+
+/mob/living/Confused(amount)
+ SetConfused(max(confused, amount))
+
+/mob/living/SetConfused(amount)
+ confused = max(amount, 0)
+
+/mob/living/AdjustConfused(amount, bound_lower = 0, bound_upper = INFINITY)
+ var/new_value = directional_bounded_sum(confused, amount, bound_lower, bound_upper)
+ SetConfused(new_value)
+
+// DIZZY
+
+/mob/living/Dizzy(amount)
+ SetDizzy(max(dizziness, amount))
+
+/mob/living/SetDizzy(amount)
+ dizziness = max(amount, 0)
+
+/mob/living/AdjustDizzy(amount, bound_lower = 0, bound_upper = INFINITY)
+ var/new_value = directional_bounded_sum(dizziness, amount, bound_lower, bound_upper)
+ SetDizzy(new_value)
+
+// DROWSY
+
+/mob/living/Drowsy(amount)
+ SetDrowsy(max(drowsyness, amount))
+
+/mob/living/SetDrowsy(amount)
+ drowsyness = max(amount, 0)
+
+/mob/living/AdjustDrowsy(amount, bound_lower = 0, bound_upper = INFINITY)
+ var/new_value = directional_bounded_sum(drowsyness, amount, bound_lower, bound_upper)
+ SetDrowsy(new_value)
+
+// DRUNK
+
+/mob/living/Drunk(amount)
+ SetDrunk(max(drunk, amount))
+
+/mob/living/SetDrunk(amount)
+ drunk = max(amount, 0)
+
+/mob/living/AdjustDrunk(amount, bound_lower = 0, bound_upper = INFINITY)
+ var/new_value = directional_bounded_sum(drunk, amount, bound_lower, bound_upper)
+ SetDrunk(new_value)
+
+// DRUGGY
+
+/mob/living/Druggy(amount)
+ SetDruggy(max(druggy, amount))
+
+/mob/living/SetDruggy(amount)
+ var/old_val = druggy
+ druggy = max(amount, 0)
+ // We transitioned to/from 0, so update the druggy overlays
+ if((old_val == 0 || druggy == 0) && (old_val != druggy))
+ update_druggy_effects()
+
+/mob/living/AdjustDruggy(amount, bound_lower = 0, bound_upper = INFINITY)
+ var/new_value = directional_bounded_sum(druggy, amount, bound_lower, bound_upper)
+ SetDruggy(new_value)
+
+// EAR_DAMAGE
+
+/mob/living/EarDamage(amount)
+ SetEarDamage(max(ear_damage, amount))
+
+/mob/living/SetEarDamage(amount)
+ ear_damage = max(amount, 0)
+
+/mob/living/AdjustEarDamage(amount, bound_lower = 0, bound_upper = INFINITY)
+ var/new_value = directional_bounded_sum(ear_damage, amount, bound_lower, bound_upper)
+ SetEarDamage(new_value)
+
+// EAR_DEAF
+
+/mob/living/EarDeaf(amount)
+ SetEarDeaf(max(ear_deaf, amount))
+
+/mob/living/SetEarDeaf(amount)
+ ear_deaf = max(amount, 0)
+
+/mob/living/AdjustEarDeaf(amount, bound_lower = 0, bound_upper = INFINITY)
+ var/new_value = directional_bounded_sum(ear_deaf, amount, bound_lower, bound_upper)
+ SetEarDeaf(new_value)
+
+// EYE_BLIND
+
+/mob/living/EyeBlind(amount)
+ SetEyeBlind(max(eye_blind, amount))
+
+/mob/living/SetEyeBlind(amount)
+ var/old_val = eye_blind
+ eye_blind = max(amount, 0)
+ // We transitioned to/from 0, so update the eye blind overlays
+ if((old_val == 0 || eye_blind == 0) && (old_val != eye_blind))
+ update_blind_effects()
+
+/mob/living/AdjustEyeBlind(amount, bound_lower = 0, bound_upper = INFINITY)
+ var/new_value = directional_bounded_sum(eye_blind, amount, bound_lower, bound_upper)
+ SetEyeBlind(new_value)
+
+// EYE_BLURRY
+
+/mob/living/EyeBlurry(amount)
+ SetEyeBlurry(max(eye_blurry, amount))
+
+/mob/living/SetEyeBlurry(amount)
+ var/old_val = eye_blurry
+ eye_blurry = max(amount, 0)
+ // We transitioned to/from 0, so update the eye blur overlays
+ if((old_val == 0 || eye_blurry == 0) && (old_val != eye_blurry))
+ update_blurry_effects()
+
+/mob/living/AdjustEyeBlurry(amount, bound_lower = 0, bound_upper = INFINITY)
+ var/new_value = directional_bounded_sum(eye_blurry, amount, bound_lower, bound_upper)
+ SetEyeBlurry(new_value)
+
+// HALLUCINATION
+
+/mob/living/Hallucinate(amount)
+ SetHallucinate(max(hallucination, amount))
+
+/mob/living/SetHallucinate(amount)
+ hallucination = max(amount, 0)
+
+/mob/living/AdjustHallucinate(amount, bound_lower = 0, bound_upper = INFINITY)
+ var/new_value = directional_bounded_sum(hallucination, amount, bound_lower, bound_upper)
+ SetHallucinate(new_value)
+
+// JITTER
+
+/mob/living/Jitter(amount, force = 0)
+ SetJitter(max(jitteriness, amount), force)
+
+/mob/living/SetJitter(amount, force = 0)
+ // Jitter is also associated with stun
+ if(status_flags & CANSTUN || force)
+ jitteriness = max(amount, 0)
+
+/mob/living/AdjustJitter(amount, bound_lower = 0, bound_upper = INFINITY, force = 0)
+ var/new_value = directional_bounded_sum(jitteriness, amount, bound_lower, bound_upper)
+ SetJitter(new_value, force)
+
+// LOSE_BREATH
+
+/mob/living/LoseBreath(amount)
+ SetLoseBreath(max(losebreath, amount))
+
+/mob/living/SetLoseBreath(amount)
+ losebreath = max(amount, 0)
+
+/mob/living/AdjustLoseBreath(amount, bound_lower = 0, bound_upper = INFINITY)
+ var/new_value = directional_bounded_sum(losebreath, amount, bound_lower, bound_upper)
+ SetLoseBreath(new_value)
+
+// PARALYSE
+
+/mob/living/Paralyse(amount, updating = 1, force = 0)
+ SetParalysis(max(paralysis, amount), updating, force)
+
+/mob/living/SetParalysis(amount, updating = 1, force = 0)
+ if(status_flags & CANPARALYSE || force)
+ paralysis = max(amount, 0)
+ if(updating)
+ update_canmove()
+ update_stat()
+
+/mob/living/AdjustParalysis(amount, bound_lower = 0, bound_upper = INFINITY, updating = 1, force = 0)
+ var/new_value = directional_bounded_sum(paralysis, amount, bound_lower, bound_upper)
+ SetParalysis(new_value, updating, force)
+
+// SILENT
+
+/mob/living/Silence(amount)
+ SetSilence(max(silent, amount))
+
+/mob/living/SetSilence(amount)
+ silent = max(amount, 0)
+
+/mob/living/AdjustSilence(amount, bound_lower = 0, bound_upper = INFINITY)
+ var/new_value = directional_bounded_sum(silent, amount, bound_lower, bound_upper)
+ SetSilence(new_value)
+
+// SLEEPING
+
+/mob/living/Sleeping(amount, updating = 1)
+ SetSleeping(max(sleeping, amount), updating)
+
+/mob/living/SetSleeping(amount, updating = 1)
+ sleeping = max(amount, 0)
+ update_sleeping_effects()
+ if(updating)
+ update_stat()
+ update_canmove()
+
+/mob/living/AdjustSleeping(amount, bound_lower = 0, bound_upper = INFINITY, updating = 1)
+ var/new_value = directional_bounded_sum(sleeping, amount, bound_lower, bound_upper)
+ SetSleeping(new_value, updating)
+
+// SLOWED
+
+/mob/living/Slowed(amount, updating = 1)
+ SetSlowed(max(slowed, amount), updating)
+
+/mob/living/SetSlowed(amount, updating = 1)
+ slowed = max(amount, 0)
+
+/mob/living/AdjustSlowed(amount, bound_lower = 0, bound_upper = INFINITY, updating = 1)
+ var/new_value = directional_bounded_sum(slowed, amount, bound_lower, bound_upper)
+ SetSlowed(new_value, updating)
+
+// SLURRING
+
+/mob/living/Slur(amount)
+ SetSlur(max(slurring, amount))
+
+/mob/living/SetSlur(amount)
+ slurring = max(amount, 0)
+
+/mob/living/AdjustSlur(amount, bound_lower = 0, bound_upper = INFINITY)
+ var/new_value = directional_bounded_sum(slurring, amount, bound_lower, bound_upper)
+ SetSlur(new_value)
+
+// STUN
+
+/mob/living/Stun(amount, updating = 1, force = 0)
+ SetStunned(max(stunned, amount), updating, force)
+
+/mob/living/SetStunned(amount, updating = 1, force = 0) //if you REALLY need to set stun to a set amount without the whole "can't go below current stunned"
+ if(status_flags & CANSTUN || force)
+ stunned = max(amount, 0)
+ if(updating)
+ update_canmove()
+
+/mob/living/AdjustStunned(amount, bound_lower = 0, bound_upper = INFINITY, updating = 1, force = 0)
+ var/new_value = directional_bounded_sum(stunned, amount, bound_lower, bound_upper)
+ SetStunned(new_value, updating, force)
+
+// STUTTERING
+
+
+/mob/living/Stuttering(amount, force = 0)
+ SetStuttering(max(stuttering, amount), force)
+
+/mob/living/SetStuttering(amount, force = 0)
+ //From mob/living/apply_effect: "Stuttering is often associated with Stun"
+ if(status_flags & CANSTUN || force)
+ stuttering = max(stuttering, 0)
+
+/mob/living/AdjustStuttering(amount, bound_lower = 0, bound_upper = INFINITY, force = 0)
+ var/new_value = directional_bounded_sum(stuttering, amount, bound_lower, bound_upper)
+ SetStuttering(new_value, force)
+
+// WEAKEN
+
+/mob/living/Weaken(amount, updating = 1, force = 0)
+ SetWeakened(max(weakened, amount), updating, force)
+
+/mob/living/SetWeakened(amount, updating = 1, force = 0)
+ if(status_flags & CANWEAKEN || force)
+ weakened = max(amount, 0)
+ if(updating)
+ update_canmove() //updates lying, canmove and icons
+
+/mob/living/AdjustWeakened(amount, bound_lower = 0, bound_upper = INFINITY, updating = 1, force = 0)
+ var/new_value = directional_bounded_sum(weakened, amount, bound_lower, bound_upper)
+ SetWeakened(new_value, updating, force)
+
+//
+// DISABILITIES
+//
+
+// Blind
+
+/mob/living/proc/BecomeBlind()
+ var/val_change = !(disabilities & BLIND)
+ disabilities |= BLIND
+ if(val_change)
+ update_blind_effects()
+
+/mob/living/proc/CureBlind()
+ var/val_change = !!(disabilities & BLIND)
+ disabilities &= ~BLIND
+ if(val_change)
+ update_blind_effects()
+
+// Coughing
+
+/mob/living/proc/BecomeCoughing()
+ disabilities |= COUGHING
+
+/mob/living/proc/CureCoughing()
+ disabilities &= ~COUGHING
+
+// Deaf
+
+/mob/living/proc/BecomeDeaf()
+ disabilities |= DEAF
+
+/mob/living/proc/CureDeaf()
+ disabilities &= ~DEAF
+
+// Epilepsy
+
+/mob/living/proc/BecomeEpilepsy()
+ disabilities |= EPILEPSY
+
+/mob/living/proc/CureEpilepsy()
+ disabilities &= ~EPILEPSY
+
+// Mute
+
+/mob/living/proc/BecomeMute()
+ disabilities |= MUTE
+
+/mob/living/proc/CureMute()
+ disabilities &= ~MUTE
+
+// Nearsighted
+
+/mob/living/proc/BecomeNearsighted()
+ var/val_change = !(disabilities & NEARSIGHTED)
+ disabilities |= NEARSIGHTED
+ if(val_change)
+ update_nearsighted_effects()
+
+/mob/living/proc/CureNearsighted()
+ var/val_change = !!(disabilities & NEARSIGHTED)
+ disabilities &= ~NEARSIGHTED
+ if(val_change)
+ update_nearsighted_effects()
+
+// Nervous
+
+/mob/living/proc/BecomeNervous()
+ disabilities |= NERVOUS
+
+/mob/living/proc/CureNervous()
+ disabilities &= ~NERVOUS
+
+// Tourettes
+
+/mob/living/proc/BecomeTourettes()
+ disabilities |= TOURETTES
+
+/mob/living/proc/CureTourettes()
+ disabilities &= ~TOURETTES
diff --git a/code/modules/mob/living/update_status.dm b/code/modules/mob/living/update_status.dm
new file mode 100644
index 00000000000..5cbf7cae450
--- /dev/null
+++ b/code/modules/mob/living/update_status.dm
@@ -0,0 +1,97 @@
+/mob/living/update_blind_effects()
+ if(!can_see())
+ overlay_fullscreen("blind", /obj/screen/fullscreen/blind)
+ throw_alert("blind", /obj/screen/alert/blind)
+ return 1
+ else
+ clear_fullscreen("blind")
+ clear_alert("blind")
+ return 0
+
+/mob/living/update_blurry_effects()
+ if(eyes_blurred())
+ overlay_fullscreen("blurry", /obj/screen/fullscreen/blurry)
+ return 1
+ else
+ clear_fullscreen("blurry")
+ return 0
+
+/mob/living/update_druggy_effects()
+ if(druggy)
+ overlay_fullscreen("high", /obj/screen/fullscreen/high)
+ throw_alert("high", /obj/screen/alert/high)
+ else
+ clear_fullscreen("high")
+ clear_alert("high")
+
+/mob/living/update_nearsighted_effects()
+ if(disabilities & NEARSIGHTED)
+ overlay_fullscreen("nearsighted", /obj/screen/fullscreen/impaired, 1)
+ else
+ clear_fullscreen("nearsighted")
+
+/mob/living/update_sleeping_effects()
+ if(sleeping)
+ throw_alert("asleep", /obj/screen/alert/asleep)
+ else
+ clear_alert("asleep")
+
+// Querying status of the mob
+
+// Whether the mob can hear things
+/mob/living/can_hear()
+ return !(ear_deaf || (disabilities & DEAF))
+
+// Whether the mob is able to see
+/mob/living/can_see()
+ return !(eye_blind || (disabilities & BLIND) || stat)
+
+// Whether the mob is capable of talking
+/mob/living/can_speak()
+ return !(silent || (disabilities & MUTE) || is_muzzled())
+
+// Whether the mob is capable of standing or not
+/mob/living/proc/can_stand()
+ return !(weakened || paralysis || stat || (status_flags & FAKEDEATH))
+
+// Whether the mob is capable of actions or not
+/mob/living/incapacitated(ignore_restraints = 0, ignore_grab = 0, ignore_lying = 0)
+ if(stat || paralysis || stunned || (weakened && lying) || (!ignore_restraints && restrained()) || (!ignore_lying && lying))
+ return 1
+
+// wonderful proc names, I know - used to check whether the blur overlay
+// should show or not
+/mob/living/proc/eyes_blurred()
+ return eye_blurry
+
+//Updates canmove, lying and icons. Could perhaps do with a rename but I can't think of anything to describe it.
+/mob/living/update_canmove(delay_action_updates = 0)
+ var/fall_over = !can_stand()
+ var/buckle_lying = !(buckled && !buckled.buckle_lying)
+ if(fall_over || resting || stunned)
+ drop_r_hand()
+ drop_l_hand()
+ else
+ lying = 0
+ canmove = 1
+ if(buckled)
+ lying = 90 * buckle_lying
+ else if((fall_over || resting) && !lying)
+ fall(fall_over)
+
+ canmove = !(fall_over || resting || stunned || buckled)
+ density = !lying
+ if(lying)
+ if(layer == initial(layer))
+ layer = MOB_LAYER - 0.2
+ else
+ if(layer == MOB_LAYER - 0.2)
+ layer = initial(layer)
+
+ update_transform()
+ if(!delay_action_updates)
+ update_action_buttons_icon()
+ return canmove
+
+/mob/living/proc/update_stamina()
+ return
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 4a292328fb6..e312ff9556b 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -62,22 +62,22 @@
if(!client) return
if(type)
- if(type & 1 && (disabilities & BLIND || blinded || paralysis) )//Vision related
+ if(type & 1 && !can_see())//Vision related
if(!( alt ))
return
else
msg = alt
type = alt_type
- if(type & 2 && (disabilities & DEAF || ear_deaf))//Hearing related
+ if(type & 2 && !can_hear())//Hearing related
if(!( alt ))
return
else
msg = alt
type = alt_type
- if((type & 1 && disabilities & BLIND))
+ if(type & 1 && !can_see())
return
// Added voice muffling for Issue 41.
- if(stat == UNCONSCIOUS || (sleeping > 0 && stat != 2))
+ if(stat == UNCONSCIOUS || (sleeping > 0 && stat != DEAD))
to_chat(src, "... You can almost hear someone talking ...")
else
to_chat(src, msg)
@@ -163,13 +163,6 @@
// handle_typing_indicator()
return
-
-/mob/proc/restrained()
- return
-
-/mob/proc/incapacitated()
- return
-
//This proc is called whenever someone clicks an inventory ui slot.
/mob/proc/attack_ui(slot)
var/obj/item/W = get_active_hand()
@@ -1031,36 +1024,6 @@ var/list/slot_equipment_priority = list( \
if(restrained()) return 0
return 1
-//Updates canmove, lying and icons. Could perhaps do with a rename but I can't think of anything to describe it.
-/mob/proc/update_canmove(delay_action_updates = 0)
- var/ko = weakened || paralysis || stat || (status_flags & FAKEDEATH)
- var/buckle_lying = !(buckled && !buckled.buckle_lying)
- if(ko || resting || stunned)
- drop_r_hand()
- drop_l_hand()
- else
- lying = 0
- canmove = 1
- if(buckled)
- lying = 90 * buckle_lying
- else
- if((ko || resting) && !lying)
- fall(ko)
-
- canmove = !(ko || resting || stunned || buckled)
- density = !lying
- if(lying)
- if(layer == initial(layer))
- layer = MOB_LAYER - 0.2
- else
- if(layer == MOB_LAYER - 0.2)
- layer = initial(layer)
-
- update_transform()
- if(!delay_action_updates)
- update_action_buttons_icon()
- return canmove
-
/mob/proc/fall(var/forced)
drop_l_hand()
drop_r_hand()
@@ -1101,77 +1064,6 @@ var/list/slot_equipment_priority = list( \
/mob/proc/activate_hand(selhand)
return
-/mob/proc/Jitter(amount)
- jitteriness = max(jitteriness, amount, 0)
-
-/mob/proc/Dizzy(amount)
- dizziness = max(dizziness, amount, 0)
-
-/mob/proc/AdjustDrunk(amount)
- drunk = max(drunk + amount, 0)
-
-/mob/proc/Stun(amount)
- SetStunned(max(stunned, amount))
-
-/mob/proc/SetStunned(amount) //if you REALLY need to set stun to a set amount without the whole "can't go below current stunned"
- if(status_flags & CANSTUN)
- stunned = max(amount, 0)
- update_canmove()
- else if(stunned)
- stunned = 0
- update_canmove()
-
-/mob/proc/AdjustStunned(amount)
- SetStunned(stunned + amount)
-
-/mob/proc/Weaken(amount)
- SetWeakened(max(weakened, amount))
-
-/mob/proc/SetWeakened(amount)
- if(status_flags & CANWEAKEN)
- weakened = max(amount, 0)
- update_canmove() //updates lying, canmove and icons
- else if(weakened)
- weakened = 0
- update_canmove()
-
-/mob/proc/AdjustWeakened(amount)
- SetWeakened(weakened + amount)
-
-/mob/proc/Paralyse(amount)
- SetParalysis(max(paralysis, amount))
-
-/mob/proc/SetParalysis(amount)
- if(status_flags & CANPARALYSE)
- paralysis = max(amount, 0)
- update_canmove()
- else if(paralysis)
- paralysis = 0
- update_canmove()
-
-/mob/proc/AdjustParalysis(amount)
- SetParalysis(paralysis + amount)
-
-/mob/proc/Sleeping(amount)
- SetSleeping(max(sleeping, amount))
-
-/mob/proc/SetSleeping(amount)
- sleeping = max(amount, 0)
- update_canmove()
-
-/mob/proc/AdjustSleeping(amount)
- SetSleeping(sleeping + amount)
-
-/mob/proc/Resting(amount)
- SetResting(max(resting, amount))
-
-/mob/proc/SetResting(amount)
- resting = max(amount, 0)
- update_canmove()
-
-/mob/proc/AdjustResting(amount)
- SetResting(resting + amount)
-
/mob/proc/get_species()
return ""
@@ -1365,13 +1257,6 @@ mob/proc/yank_out_object()
location.add_vomit_floor(src, 1)
playsound(location, 'sound/effects/splat.ogg', 50, 1)
-
-/mob/proc/adjustEarDamage()
- return
-
-/mob/proc/setEarDamage()
- return
-
/mob/proc/AddSpell(obj/effect/proc_holder/spell/S)
mob_spell_list += S
S.action.Grant(src)
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index f7bd04906ea..6cb582e94c1 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -33,18 +33,11 @@
var/obj/machinery/machine = null
var/other_mobs = null
var/memory = ""
- var/disabilities = 0 //Carbon
var/atom/movable/pulling = null
var/next_move = null
var/notransform = null //Carbon
var/other = 0.0
var/hand = null
- var/eye_blind = 0 //Carbon
- var/eye_blurry = 0 //Carbon
- var/ear_deaf = 0 //Carbon
- var/ear_damage = 0 //Carbon
- var/stuttering = 0 //Carbon
- var/slurring = 0 //Carbon
var/real_name = null
var/flavor_text = ""
var/med_record = ""
@@ -53,11 +46,6 @@
var/blinded = null
var/bhunger = 0 //Carbon
var/ajourn = 0
- var/druggy = 0 //Carbon
- var/confused = 0 //Carbon
- var/drunk = 0
- var/sleeping = 0 //Carbon
- var/resting = 0 //Carbon
var/lying = 0
var/lying_prev = 0
var/canmove = 1
@@ -77,19 +65,11 @@
var/bodytemperature = 310.055 //98.7 F
- var/drowsyness = 0.0//Carbon
- var/dizziness = 0//Carbon
- var/jitteriness = 0//Carbon
var/flying = 0
var/charges = 0.0
var/nutrition = 400.0//Carbon
var/overeatduration = 0 // How long this guy is overeating //Carbon
- var/paralysis = 0
- var/stunned = 0
- var/weakened = 0
- var/slowed = 0
- var/losebreath = 0 //Carbon
var/intent = null//Living
var/shakecamera = 0
var/a_intent = I_HELP//Living
diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm
index 90f84b7fc74..a22d9bf3c6b 100644
--- a/code/modules/mob/mob_grab.dm
+++ b/code/modules/mob/mob_grab.dm
@@ -175,9 +175,9 @@
if(state >= GRAB_KILL)
//affecting.apply_effect(STUTTER, 5) //would do this, but affecting isn't declared as mob/living for some stupid reason.
- affecting.stuttering = max(affecting.stuttering, 5) //It will hamper your voice, being choked and all.
+ affecting.Stuttering(5) //It will hamper your voice, being choked and all.
affecting.Weaken(5) //Should keep you down unless you get help.
- affecting.losebreath = max(affecting.losebreath + 2, 3)
+ affecting.AdjustLoseBreath(2, bound_lower = 0, bound_upper = 3)
adjust_position()
@@ -290,7 +290,7 @@
msg_admin_attack("[key_name(assailant)] strangled (kill intent) [key_name(affecting)]")
assailant.next_move = world.time + 10
- affecting.losebreath += 1
+ affecting.AdjustLoseBreath(1)
affecting.set_dir(WEST)
adjust_position()
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index aa59991a6cb..b03b9562949 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -75,12 +75,6 @@ proc/iscuffed(A)
return 1
return 0
-proc/isdeaf(A)
- if(istype(A, /mob))
- var/mob/M = A
- return (M.disabilities & DEAF) || M.ear_deaf
- return 0
-
proc/hassensorlevel(A, var/level)
var/mob/living/carbon/human/H = A
if(istype(H) && istype(H.w_uniform, /obj/item/clothing/under))
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index dd48c1ce1a4..f8a73364264 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -565,3 +565,7 @@
/mob/new_player/is_ready()
return ready && ..()
+
+// No hearing announcements
+/mob/new_player/can_hear()
+ return 0
diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm
index f280bec0ce1..d010bdfa135 100644
--- a/code/modules/mob/say.dm
+++ b/code/modules/mob/say.dm
@@ -142,7 +142,7 @@
if(length(message) >= 2)
var/language_prefix = trim_right(lowertext(copytext(message, 1 ,4)))
var/datum/language/L = language_keys[language_prefix]
- if(can_speak(L))
+ if(can_speak_language(L))
return L
return null
diff --git a/code/modules/mob/status_procs.dm b/code/modules/mob/status_procs.dm
new file mode 100644
index 00000000000..7358486deee
--- /dev/null
+++ b/code/modules/mob/status_procs.dm
@@ -0,0 +1,202 @@
+// A bunch of empty procs for all the status procs in living/status_procs.dm, because
+// I can't be bothered to deal with all the merge conflicts it would cause to
+// typecast every mob in the codebase correctly
+
+/mob/proc/Confused()
+ return
+
+/mob/proc/SetConfused()
+ return
+
+/mob/proc/AdjustConfused()
+ return
+
+
+/mob/proc/Dizzy()
+ return
+
+/mob/proc/SetDizzy()
+ return
+
+/mob/proc/AdjustDizzy()
+ return
+
+
+/mob/proc/Drowsy()
+ return
+
+/mob/proc/SetDrowsy()
+ return
+
+/mob/proc/AdjustDrowsy()
+ return
+
+
+/mob/proc/Drunk()
+ return
+
+/mob/proc/SetDrunk()
+ return
+
+/mob/proc/AdjustDrunk()
+ return
+
+
+/mob/proc/Druggy()
+ return
+
+/mob/proc/SetDruggy()
+ return
+
+/mob/proc/AdjustDruggy()
+ return
+
+
+/mob/proc/EarDamage()
+ return
+
+/mob/proc/SetEarDamage()
+ return
+
+/mob/proc/AdjustEarDamage()
+ return
+
+
+/mob/proc/EarDeaf()
+ return
+
+/mob/proc/SetEarDeaf()
+ return
+
+/mob/proc/AdjustEarDeaf()
+ return
+
+
+/mob/proc/EyeBlind()
+ return
+
+/mob/proc/SetEyeBlind()
+ return
+
+/mob/proc/AdjustEyeBlind()
+ return
+
+
+/mob/proc/EyeBlurry()
+ return
+
+/mob/proc/SetEyeBlurry()
+ return
+
+/mob/proc/AdjustEyeBlurry()
+ return
+
+
+/mob/proc/Hallucinate()
+ return
+
+/mob/proc/SetHallucinate()
+ return
+
+/mob/proc/AdjustHallucinate()
+ return
+
+
+/mob/proc/Jitter()
+ return
+
+/mob/proc/SetJitter()
+ return
+
+/mob/proc/AdjustJitter()
+ return
+
+
+/mob/proc/LoseBreath()
+ return
+
+/mob/proc/SetLoseBreath()
+ return
+
+/mob/proc/AdjustLoseBreath()
+ return
+
+
+/mob/proc/Paralyse()
+ return
+
+/mob/proc/SetParalysis()
+ return
+
+/mob/proc/AdjustParalysis()
+ return
+
+
+/mob/proc/Silence()
+ return
+
+/mob/proc/SetSilence()
+ return
+
+/mob/proc/AdjustSilence()
+ return
+
+
+/mob/proc/Sleeping()
+ return
+
+/mob/proc/SetSleeping()
+ return
+
+/mob/proc/AdjustSleeping()
+ return
+
+
+/mob/proc/Slowed()
+ return
+
+/mob/proc/SetSlowed()
+ return
+
+/mob/proc/AdjustSlowed()
+ return
+
+
+/mob/proc/Slur()
+ return
+
+/mob/proc/SetSlur()
+ return
+
+/mob/proc/AdjustSlur()
+ return
+
+
+/mob/proc/Stun()
+ return
+
+/mob/proc/SetStunned()
+ return
+
+/mob/proc/AdjustStunned()
+ return
+
+
+/mob/proc/Stuttering()
+ return
+
+/mob/proc/SetStuttering()
+ return
+
+/mob/proc/AdjustStuttering()
+ return
+
+
+/mob/proc/Weaken()
+ return
+
+/mob/proc/SetWeakened()
+ return
+
+/mob/proc/AdjustWeakened()
+ return
diff --git a/code/modules/mob/update_status.dm b/code/modules/mob/update_status.dm
new file mode 100644
index 00000000000..3893085edb3
--- /dev/null
+++ b/code/modules/mob/update_status.dm
@@ -0,0 +1,65 @@
+// These are procs that cause immediate updates to features of the mob - prefixed with `update_`
+// Procs that have a stacking effect depending on how many times they are called
+// do not belong in this file - those go in `life.dm` instead, with the prefix `handle_`
+
+// OVERLAY/SIGHT PROCS
+
+// These return 0 if they are not applying an overlay, and 1 if they are
+
+// Call this to immediately apply blindness effects, instead of
+// waiting for the next `Life` tick
+/mob/proc/update_blind_effects()
+ // No handling for this on the mob level
+ return 0
+
+/mob/proc/update_blurry_effects()
+ // No handling for this on the mob level
+ return 0
+
+/mob/proc/update_druggy_effects()
+ // No handling for this on the mob level
+ return 0
+
+/mob/proc/update_nearsighted_effects()
+ // No handling for this on the mob level
+ return 0
+
+/mob/proc/update_sleeping_effects()
+ // No handling for this on the mob level
+ return 0
+
+/mob/proc/update_tint_effects()
+ // No handling for this on the mob level
+ return 0
+
+// Procs that give information about the status of the mob
+
+/mob/proc/can_hear()
+ return 1
+
+/mob/proc/can_see()
+ return 1
+
+/mob/proc/can_speak()
+ return 1
+
+/mob/proc/incapacitated(ignore_restraints, ignore_grab)
+ return 0
+
+/mob/proc/restrained(ignore_grab)
+ // All are created free
+ return 0
+
+// Procs that update other things about the mob
+
+// Does various animations - Jitter, Flying, Spinning
+/mob/proc/update_animations()
+ if(flying)
+ animate(src, pixel_y = pixel_y + 5 , time = 10, loop = 1, easing = SINE_EASING)
+ animate(pixel_y = pixel_y - 5, time = 10, loop = 1, easing = SINE_EASING)
+
+/mob/proc/update_stat()
+ return
+
+/mob/proc/update_canmove()
+ return 1
diff --git a/code/modules/nano/interaction/base.dm b/code/modules/nano/interaction/base.dm
index 113c9e2878b..e4e5dd1a33b 100644
--- a/code/modules/nano/interaction/base.dm
+++ b/code/modules/nano/interaction/base.dm
@@ -14,10 +14,10 @@
/mob/proc/shared_nano_interaction()
if(stat || !client)
return STATUS_CLOSE // no updates, close the interface
- else if(restrained() || lying || stunned || weakened)
+ else if(incapacitated())
return STATUS_UPDATE // update only (orange visibility)
return STATUS_INTERACTIVE
-
+
/mob/dead/observer/shared_nano_interaction()
if(check_rights(R_ADMIN, 0, src))
return STATUS_INTERACTIVE // Admins are more equal
diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm
index f86b17eaab7..0ff6289ea66 100644
--- a/code/modules/power/generator.dm
+++ b/code/modules/power/generator.dm
@@ -1,211 +1,241 @@
-
/obj/machinery/power/generator
name = "thermoelectric generator"
desc = "It's a high efficiency thermoelectric generator."
icon_state = "teg"
- density = 1
anchored = 0
+ density = 1
+ use_power = 0
- use_power = 1
- idle_power_usage = 100 //Watts, I hope. Just enough to do the computer and display things.
-
- var/obj/machinery/atmospherics/binary/circulator/circ1
- var/obj/machinery/atmospherics/binary/circulator/circ2
+ var/obj/machinery/atmospherics/binary/circulator/cold_circ
+ var/obj/machinery/atmospherics/binary/circulator/hot_circ
+ var/cold_dir = WEST
+ var/hot_dir = EAST
+
var/lastgen = 0
var/lastgenlev = -1
-
- var/image/overlay_image
-
- var/power_multiplier = 1 // This is so admins can tweak how good it is to find a good balance for effort -> power
- var/powercap = 500000 //Not a hard cap, but outputs above this have a 10% chance to cause the TeG to lose half it's power.
-
+ var/lastcirc = "00"
+
/obj/machinery/power/generator/New()
..()
+ update_desc()
+
+/obj/machinery/power/generator/proc/update_desc()
+ desc = initial(desc) + " Its cold circulator is located on the [dir2text(cold_dir)] side, and its heat circulator is located on the [dir2text(hot_dir)] side."
+
+/obj/machinery/power/generator/Destroy()
+ disconnect()
+ return ..()
+
+/obj/machinery/power/generator/proc/disconnect()
+ if(cold_circ)
+ cold_circ.generator = null
+ if(hot_circ)
+ hot_circ.generator = null
+ if(powernet)
+ disconnect_from_network()
- spawn(1)
- reconnect()
+/obj/machinery/power/generator/initialize()
+ ..()
+ connect()
+
+/obj/machinery/power/generator/proc/connect()
+ connect_to_network()
+
+ var/obj/machinery/atmospherics/binary/circulator/circpath = /obj/machinery/atmospherics/binary/circulator
+ cold_circ = locate(circpath) in get_step(src, cold_dir)
+ hot_circ = locate(circpath) in get_step(src, hot_dir)
-//generators connect in dir and reverse_dir(dir) directions
-//mnemonic to determine circulator/generator directions: the cirulators orbit clockwise around the generator
-//so a circulator to the NORTH of the generator connects first to the EAST, then to the WEST
-//and a circulator to the WEST of the generator connects first to the NORTH, then to the SOUTH
-//note that the circulator's outlet dir is it's always facing dir, and it's inlet is always the reverse
-/obj/machinery/power/generator/proc/reconnect()
- circ1 = null
- circ2 = null
- if(src.loc && anchored)
- if(src.dir & (EAST|WEST))
- circ1 = locate(/obj/machinery/atmospherics/binary/circulator) in get_step(src,EAST)
- circ2 = locate(/obj/machinery/atmospherics/binary/circulator) in get_step(src,WEST)
+ if(cold_circ && cold_circ.side == cold_dir)
+ cold_circ.generator = src
+ cold_circ.update_icon()
+ else
+ cold_circ = null
- if(circ1 && circ2)
- if(circ1.dir != SOUTH || circ2.dir != NORTH)
- circ1 = null
- circ2 = null
+ if(hot_circ && hot_circ.side == hot_dir)
+ hot_circ.generator = src
+ hot_circ.update_icon()
+ else
+ hot_circ = null
- else if(src.dir & (NORTH|SOUTH))
- circ1 = locate(/obj/machinery/atmospherics/binary/circulator) in get_step(src,NORTH)
- circ2 = locate(/obj/machinery/atmospherics/binary/circulator) in get_step(src,SOUTH)
-
- if(circ1 && circ2 && (circ1.dir != EAST || circ2.dir != WEST))
- circ1 = null
- circ2 = null
-
-/obj/machinery/power/generator/proc/updateicon()
- if(isnull(src.overlay_image))
- src.overlay_image = image('icons/obj/power.dmi')
-
- overlays.Cut()
- if(!(stat & (NOPOWER|BROKEN)))
+ power_change()
+ update_icon()
+ updateDialog()
+
+/obj/machinery/power/generator/power_change()
+ if(!anchored)
+ stat |= NOPOWER
+ else
+ ..()
+
+/obj/machinery/power/generator/update_icon()
+ if(stat & (NOPOWER|BROKEN))
+ overlays.Cut()
+ else
+ overlays.Cut()
if(lastgenlev != 0)
- src.overlay_image.icon_state = "teg-op[lastgenlev]"
- overlays += src.overlay_image
+ overlays += image('icons/obj/power.dmi', "teg-op[lastgenlev]")
-/obj/machinery/power/generator/process()
- if(!circ1 || !circ2 || !anchored || stat & (BROKEN|NOPOWER))
+ overlays += image('icons/obj/power.dmi', "teg-oc[lastcirc]")
+
+/obj/machinery/power/generator/process()
+ if(stat & (NOPOWER|BROKEN))
return
+ if(!cold_circ || !hot_circ)
+ return
+
+ lastgen = 0
+
+ if(powernet)
+
+ //log_debug("cold_circ and hot_circ pass")
+
+ var/datum/gas_mixture/cold_air = cold_circ.return_transfer_air()
+ var/datum/gas_mixture/hot_air = hot_circ.return_transfer_air()
+
+ //log_debug("hot_air = [hot_air]; cold_air = [cold_air];")
+
+ if(cold_air && hot_air)
+
+ //log_debug("hot_air = [hot_air] temperature = [hot_air.temperature]; cold_air = [cold_air] temperature = [hot_air.temperature];")
+
+ //log_debug("coldair and hotair pass")
+ var/cold_air_heat_capacity = cold_air.heat_capacity()
+ var/hot_air_heat_capacity = hot_air.heat_capacity()
+
+ var/delta_temperature = hot_air.temperature - cold_air.temperature
+
+ //log_debug("delta_temperature = [delta_temperature]; cold_air_heat_capacity = [cold_air_heat_capacity]; hot_air_heat_capacity = [hot_air_heat_capacity]")
+
+ if(delta_temperature > 0 && cold_air_heat_capacity > 0 && hot_air_heat_capacity > 0)
+ var/efficiency = 0.65
+
+ var/energy_transfer = delta_temperature * hot_air_heat_capacity * cold_air_heat_capacity / (hot_air_heat_capacity + cold_air_heat_capacity)
+
+ var/heat = energy_transfer * (1 - efficiency)
+ lastgen = energy_transfer * efficiency
+
+ //log_debug("lastgen = [lastgen]; heat = [heat]; delta_temperature = [delta_temperature]; hot_air_heat_capacity = [hot_air_heat_capacity]; cold_air_heat_capacity = [cold_air_heat_capacity];")
+
+ hot_air.temperature = hot_air.temperature - energy_transfer / hot_air_heat_capacity
+ cold_air.temperature = cold_air.temperature + heat / cold_air_heat_capacity
+
+ //log_debug("POWER: [lastgen] W generated at [efficiency * 100]% efficiency and sinks sizes [cold_air_heat_capacity], [hot_air_heat_capacity]")
+
+ add_avail(lastgen)
+ // update icon overlays only if displayed level has changed
+
+ if(hot_air)
+ var/datum/gas_mixture/hot_circ_air1 = hot_circ.air1
+ hot_circ_air1.merge(hot_air)
+
+ if(cold_air)
+ var/datum/gas_mixture/cold_circ_air1 = cold_circ.air1
+ cold_circ_air1.merge(cold_air)
+
+ var/genlev = max(0, min( round(11 * lastgen / 100000), 11))
+ var/circ = "[cold_circ && cold_circ.last_pressure_delta > 0 ? "1" : "0"][hot_circ && hot_circ.last_pressure_delta > 0 ? "1" : "0"]"
+ if((genlev != lastgenlev) || (circ != lastcirc))
+ lastgenlev = genlev
+ lastcirc = circ
+ update_icon()
+
updateDialog()
- var/datum/gas_mixture/air1 = circ1.return_transfer_air()
- var/datum/gas_mixture/air2 = circ2.return_transfer_air()
- lastgen = 0
-
- if(air1 && air2)
- var/air1_heat_capacity = air1.heat_capacity()
- var/air2_heat_capacity = air2.heat_capacity()
- var/delta_temperature = abs(air2.temperature - air1.temperature)
-
- if(delta_temperature > 0 && air1_heat_capacity > 0 && air2_heat_capacity > 0)
- var/efficiency = 0.65
- var/energy_transfer = delta_temperature*air2_heat_capacity*air1_heat_capacity/(air2_heat_capacity+air1_heat_capacity)
- var/heat = energy_transfer*(1-efficiency)
- lastgen = energy_transfer*efficiency*0.05*power_multiplier
-
- if(air2.temperature > air1.temperature)
- air2.temperature = air2.temperature - energy_transfer/air2_heat_capacity
- air1.temperature = air1.temperature + heat/air1_heat_capacity
- else
- air2.temperature = air2.temperature + heat/air2_heat_capacity
- air1.temperature = air1.temperature - energy_transfer/air1_heat_capacity
-
- //Transfer the air
- if(air1)
- circ1.air2.merge(air1)
- if(air2)
- circ2.air2.merge(air2)
-
- //Update the gas networks
- if(circ1.parent2)
- circ1.parent2.update = 1
- if(circ2.parent2)
- circ2.parent2.update = 1
-
- // update icon overlays and power usage only if displayed level has changed
- if(lastgen > powercap && prob(10))
- var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
- s.set_up(3, 1, src)
- s.start()
- lastgen *= 0.5
- var/genlev = max(0, min( round(11*lastgen / powercap), 11))
- if(lastgen > 100 && genlev == 0)
- genlev = 1
- if(genlev != lastgenlev)
- lastgenlev = genlev
- updateicon()
- add_avail(lastgen)
-
/obj/machinery/power/generator/attack_ai(mob/user)
- if(stat & (BROKEN|NOPOWER)) return
+ return attack_hand(user)
+
+/obj/machinery/power/generator/attack_ghost(mob/user)
+ if(stat & (NOPOWER|BROKEN))
+ return
+ interact(user)
+
+/obj/machinery/power/generator/attack_hand(mob/user)
+ if(..())
+ user << browse(null, "window=teg")
+ return
interact(user)
/obj/machinery/power/generator/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/wrench))
anchored = !anchored
- to_chat(user, "\blue You [anchored ? "secure" : "unsecure"] the bolts holding [src] to the floor.")
- use_power = anchored
- reconnect()
+ if(!anchored)
+ disconnect()
+ power_change()
+ else
+ connect()
+ playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
+ to_chat(user, "You [anchored ? "secure" : "unsecure"] the bolts holding [src] to the floor.")
+ else if(istype(W, /obj/item/device/multitool))
+ if(cold_dir == WEST)
+ cold_dir = EAST
+ hot_dir = WEST
+ else
+ cold_dir = WEST
+ hot_dir = EAST
+ connect()
+ to_chat(user, "You reverse the generator's circulator settings. The cold circulator is now on the [dir2text(cold_dir)] side, and the heat circulator is now on the [dir2text(hot_dir)] side.")
+ update_desc()
else
- ..()
+ ..()
+
+/obj/machinery/power/generator/proc/get_menu(include_link = 1)
+ var/t = ""
+ if(!powernet)
+ t += "Unable to connect to the power network!"
+ t += "
Retry"
+ else if(cold_circ && hot_circ)
+ var/datum/gas_mixture/cold_circ_air1 = cold_circ.air1
+ var/datum/gas_mixture/cold_circ_air2 = cold_circ.air2
+ var/datum/gas_mixture/hot_circ_air1 = hot_circ.air1
+ var/datum/gas_mixture/hot_circ_air2 = hot_circ.air2
-/obj/machinery/power/generator/attack_hand(mob/user)
- add_fingerprint(user)
- if(stat & (BROKEN|NOPOWER) || !anchored) return
- interact(user)
+ t += ""
+ t += "Output: [round(lastgen)] W"
+
+ t += "
"
+
+ t += "Cold loop
"
+ t += "Temperature Inlet: [round(cold_circ_air2.temperature, 0.1)] K / Outlet: [round(cold_circ_air1.temperature, 0.1)] K
"
+ t += "Pressure Inlet: [round(cold_circ_air2.return_pressure(), 0.1)] kPa / Outlet: [round(cold_circ_air1.return_pressure(), 0.1)] kPa
"
+
+ t += "Hot loop
"
+ t += "Temperature Inlet: [round(hot_circ_air2.temperature, 0.1)] K / Outlet: [round(hot_circ_air1.temperature, 0.1)] K
"
+ t += "Pressure Inlet: [round(hot_circ_air2.return_pressure(), 0.1)] kPa / Outlet: [round(hot_circ_air1.return_pressure(), 0.1)] kPa
"
+
+ t += "
"
+ else
+ t += "Unable to locate all parts!"
+ t += "
Retry"
+ if(include_link)
+ t += "
Close"
+
+ return t
/obj/machinery/power/generator/interact(mob/user)
- if( (get_dist(src, user) > 1 ) && (!istype(user, /mob/living/silicon/ai)))
- user.unset_machine()
- user << browse(null, "window=teg")
- return
-
user.set_machine(src)
- var/t = "Thermo-Electric Generator
"
-
- if(circ1 && circ2)
- t += "Output : [round(lastgen)] W
"
-
- t += "Primary Circulator (top or right)
"
- t += "Inlet Pressure: [round(circ1.air1.return_pressure(), 0.1)] kPa
"
- t += "Inlet Temperature: [round(circ1.air1.temperature, 0.1)] K
"
- t += "Outlet Pressure: [round(circ1.air2.return_pressure(), 0.1)] kPa
"
- t += "Outlet Temperature: [round(circ1.air2.temperature, 0.1)] K
"
-
- t += "Secondary Circulator (bottom or left)
"
- t += "Inlet Pressure: [round(circ2.air1.return_pressure(), 0.1)] kPa
"
- t += "Inlet Temperature: [round(circ2.air1.temperature, 0.1)] K
"
- t += "Outlet Pressure: [round(circ2.air2.return_pressure(), 0.1)] kPa
"
- t += "Outlet Temperature: [round(circ2.air2.temperature, 0.1)] K
"
-
- else
- t += "Unable to connect to circulators.
"
- t += "Ensure both are in position and wrenched into place."
-
- t += "
"
- t += "
"
- t += "Refresh Close"
-
- user << browse(t, "window=teg;size=460x300")
- onclose(user, "teg")
+ var/datum/browser/popup = new(user, "teg", "Thermo-Electric Generator", 460, 300)
+ popup.set_content(get_menu())
+ popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
+ popup.open()
return 1
-
/obj/machinery/power/generator/Topic(href, href_list)
- ..()
+ if(..())
+ return 0
if( href_list["close"] )
usr << browse(null, "window=teg")
usr.unset_machine()
return 0
-
- updateDialog()
+ if( href_list["check"] )
+ if(!powernet || !cold_circ || !hot_circ)
+ connect()
return 1
-
/obj/machinery/power/generator/power_change()
..()
- updateicon()
-
-
-/obj/machinery/power/generator/verb/rotate_clock()
- set category = "Object"
- set name = "Rotate Generator (Clockwise)"
- set src in view(1)
-
- if(usr.stat || usr.restrained() || anchored)
- return
-
- src.dir = turn(src.dir, 90)
-
-/obj/machinery/power/generator/verb/rotate_anticlock()
- set category = "Object"
- set name = "Rotate Generator (Counterclockwise)"
- set src in view(1)
-
- if(usr.stat || usr.restrained() || anchored)
- return
-
- src.dir = turn(src.dir, -90)
\ No newline at end of file
+ update_icon()
\ No newline at end of file
diff --git a/code/modules/power/generator_type2.dm b/code/modules/power/generator_type2.dm
deleted file mode 100644
index d1ff1f1079c..00000000000
--- a/code/modules/power/generator_type2.dm
+++ /dev/null
@@ -1,143 +0,0 @@
-/obj/machinery/power/generator_type2
- name = "thermoelectric generator"
- desc = "It's a high efficiency thermoelectric generator."
- icon_state = "teg"
- anchored = 1
- density = 1
- use_power = 0
-
- var/obj/machinery/atmospherics/unary/generator_input/input1
- var/obj/machinery/atmospherics/unary/generator_input/input2
-
- var/lastgen = 0
- var/lastgenlev = -1
-
- var/image/overlay_image
-
-/obj/machinery/power/generator_type2/New()
- ..()
- spawn(5)
- input1 = locate(/obj/machinery/atmospherics/unary/generator_input) in get_step(src,turn(dir, 90))
- input2 = locate(/obj/machinery/atmospherics/unary/generator_input) in get_step(src,turn(dir, -90))
- if(!input1 || !input2)
- stat |= BROKEN
- updateicon()
-
-
-/obj/machinery/power/generator_type2/proc/updateicon()
-
- if(isnull(src.overlay_image))
- src.overlay_image = image('icons/obj/power.dmi')
-
- overlays.Cut()
- if(!(stat & (NOPOWER|BROKEN)))
-
- if(lastgenlev != 0)
- src.overlay_image.icon_state = "teg-op[lastgenlev]"
- overlays += src.overlay_image
-
-#define GENRATE 800 // generator output coefficient from Q
-
-
-/obj/machinery/power/generator_type2/process()
- if(!input1 || !input2)
- return
-
- var/datum/gas_mixture/air1 = input1.return_exchange_air()
- var/datum/gas_mixture/air2 = input2.return_exchange_air()
-
-
- lastgen = 0
-
- if(air1 && air2)
- var/datum/gas_mixture/hot_air = air1
- var/datum/gas_mixture/cold_air = air2
- if(hot_air.temperature < cold_air.temperature)
- hot_air = air2
- cold_air = air1
-
- var/hot_air_heat_capacity = hot_air.heat_capacity()
- var/cold_air_heat_capacity = cold_air.heat_capacity()
-
- var/delta_temperature = hot_air.temperature - cold_air.temperature
-
- if(delta_temperature > 1 && cold_air_heat_capacity > 0.01 && hot_air_heat_capacity > 0.01)
- var/efficiency = (1 - cold_air.temperature/hot_air.temperature)*0.65 //65% of Carnot efficiency
-
- var/energy_transfer = delta_temperature*hot_air_heat_capacity*cold_air_heat_capacity/(hot_air_heat_capacity+cold_air_heat_capacity)
-
- var/heat = energy_transfer*(1-efficiency)
- lastgen = energy_transfer*efficiency
-
- hot_air.temperature = hot_air.temperature - energy_transfer/hot_air_heat_capacity
- cold_air.temperature = cold_air.temperature + heat/cold_air_heat_capacity
-
-// to_chat(world, "POWER: [lastgen] W generated at [efficiency*100]% efficiency and sinks sizes [cold_air_heat_capacity], [hot_air_heat_capacity]")
-
- input1.parent.update = 1
- input2.parent.update = 1
-
- add_avail(lastgen)
- // update icon overlays only if displayed level has changed
-
- var/genlev = max(0, min( round(11*lastgen / 100000), 11))
- if(genlev != lastgenlev)
- lastgenlev = genlev
- updateicon()
-
- src.updateDialog()
-
-
-/obj/machinery/power/generator_type2/attack_ai(mob/user)
- if(stat & (BROKEN|NOPOWER)) return
- interact(user)
-
-
-/obj/machinery/power/generator_type2/attack_hand(mob/user)
- add_fingerprint(user)
- if(stat & (BROKEN|NOPOWER)) return
- interact(user)
-
-
-/obj/machinery/power/generator_type2/interact(mob/user)
- if( (get_dist(src, user) > 1 ) && (!istype(user, /mob/living/silicon/ai)))
- user.unset_machine()
- user << browse(null, "window=teg")
- return
-
- user.set_machine(src)
-
- var/t = "Thermo-Electric Generator
"
-
- t += "Output : [round(lastgen)] W
"
-
- t += "Cold loop
"
- t += "Temperature: [round(input1.air_contents.temperature, 0.1)] K
"
- t += "Pressure: [round(input1.air_contents.return_pressure(), 0.1)] kPa
"
-
- t += "Hot loop
"
- t += "Temperature: [round(input2.air_contents.temperature, 0.1)] K
"
- t += "Pressure: [round(input2.air_contents.return_pressure(), 0.1)] kPa
"
-
- t += "
Close"
-
- t += "
"
- user << browse(t, "window=teg;size=460x300")
- onclose(user, "teg")
- return 1
-
-
-/obj/machinery/power/generator_type2/Topic(href, href_list)
- ..()
-
- if( href_list["close"] )
- usr << browse(null, "window=teg")
- usr.unset_machine()
- return 0
-
- return 1
-
-
-/obj/machinery/power/generator_type2/power_change()
- ..()
- updateicon()
\ No newline at end of file
diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm
index 0f6d41fc145..420733f7c76 100644
--- a/code/modules/power/supermatter/supermatter.dm
+++ b/code/modules/power/supermatter/supermatter.dm
@@ -122,7 +122,7 @@
if(ishuman(mob))
//Hilariously enough, running into a closet should make you get hit the hardest.
var/mob/living/carbon/human/H = mob
- H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) )
+ H.AdjustHallucinate(max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)))))
var/rads = DETONATION_RADS * sqrt( 1 / (get_dist(mob, src) + 1) )
mob.apply_effect(rads, IRRADIATE)
@@ -189,7 +189,7 @@
var/obj/item/organ/internal/eyes/eyes = l.get_int_organ(/obj/item/organ/internal/eyes)
if(!istype(eyes))
continue
- l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1,get_dist(l, src)) ) ) )
+ l.Hallucinate(min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1,get_dist(l, src)))))
for(var/mob/living/l in range(src, round((power / 100) ** 0.25)))
var/rads = (power / 10) * sqrt( 1 / max(get_dist(l, src),1) )
diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm
index 0ae9b10752e..275e2ec94e5 100644
--- a/code/modules/projectiles/projectile/bullets.dm
+++ b/code/modules/projectiles/projectile/bullets.dm
@@ -23,18 +23,18 @@
/obj/item/projectile/bullet/weakbullet/booze/on_hit(atom/target, blocked = 0)
if(..(target, blocked))
var/mob/living/M = target
- M.dizziness += 20
- M.slurring += 20
- M.confused += 20
- M.eye_blurry += 20
- M.drowsyness += 20
+ M.AdjustDizzy(20)
+ M.AdjustSlur(20)
+ M.AdjustConfused(20)
+ M.AdjustEyeBlurry(20)
+ M.AdjustDrowsy(20)
for(var/datum/reagent/ethanol/A in M.reagents.reagent_list)
M.AdjustParalysis(2)
- M.dizziness += 10
- M.slurring += 10
- M.confused += 10
- M.eye_blurry += 10
- M.drowsyness += 10
+ M.AdjustDizzy(10)
+ M.AdjustSlur(10)
+ M.AdjustConfused(10)
+ M.AdjustEyeBlurry(10)
+ M.AdjustDrowsy(10)
A.volume += 5 //Because we can
/obj/item/projectile/bullet/weakbullet2 //detective revolver instastuns, but multiple shots are better for keeping punks down
@@ -216,7 +216,7 @@
..(target, blocked)
if(iscarbon(target))
var/mob/living/carbon/M = target
- M.silent = max(M.silent, 10)
+ M.Silence(10)
else if(istype(target, /obj/mecha/combat/honker))
var/obj/mecha/chassis = target
chassis.occupant_message("A mimetech anti-honk bullet has hit \the [chassis]!")
diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm
index 0e1b7478cc8..bcc4335f66a 100644
--- a/code/modules/projectiles/projectile/special.dm
+++ b/code/modules/projectiles/projectile/special.dm
@@ -186,7 +186,7 @@
if(ishuman(target))
var/mob/living/carbon/human/M = target
M.adjustBrainLoss(20)
- M.hallucination += 20
+ M.AdjustHallucinate(20)
/obj/item/projectile/clown
name = "snap-pop"
diff --git a/code/modules/reagents/newchem/Blob-Reagents.dm b/code/modules/reagents/newchem/Blob-Reagents.dm
index fa5e9747e34..a7cfa32f403 100644
--- a/code/modules/reagents/newchem/Blob-Reagents.dm
+++ b/code/modules/reagents/newchem/Blob-Reagents.dm
@@ -61,7 +61,7 @@
volume = ..()
M.apply_damage(0.4*volume, BRUTE)
M.apply_damage(1*volume, OXY)
- M.losebreath += round(0.3*volume)
+ M.AdjustLoseBreath(round(0.3*volume))
/datum/reagent/blob/kinetic //does semi-random brute damage
diff --git a/code/modules/reagents/newchem/disease.dm b/code/modules/reagents/newchem/disease.dm
index def94ba9a2c..cdc2d0b8d43 100644
--- a/code/modules/reagents/newchem/disease.dm
+++ b/code/modules/reagents/newchem/disease.dm
@@ -131,12 +131,12 @@
color = "#EC536D" // rgb: 236, 83, 109
/datum/reagent/synaphydramine/on_mob_life(mob/living/M)
- M.drowsyness = max(M.drowsyness-5, 0)
+ M.AdjustDrowsy(-5)
if(holder.has_reagent("lsd"))
holder.remove_reagent("lsd", 5)
if(holder.has_reagent("histamine"))
holder.remove_reagent("histamine", 5)
- M.hallucination = max(0, M.hallucination - 10)
+ M.AdjustHallucinate(-10)
if(prob(30))
M.adjustToxLoss(1)
..()
@@ -317,4 +317,4 @@
if(B && B.data)
var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"]
if(D)
- D.Devolve()
\ No newline at end of file
+ D.Devolve()
diff --git a/code/modules/reagents/newchem/drinks.dm b/code/modules/reagents/newchem/drinks.dm
index b1f789b7f22..da07f7a995f 100644
--- a/code/modules/reagents/newchem/drinks.dm
+++ b/code/modules/reagents/newchem/drinks.dm
@@ -15,7 +15,7 @@
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
/datum/reagent/ginsonic/on_mob_life(mob/living/M)
- M.drowsyness = max(0, M.drowsyness-5)
+ M.AdjustDrowsy(-5)
if(prob(25))
M.AdjustParalysis(-1)
M.AdjustStunned(-1)
diff --git a/code/modules/reagents/newchem/drugs.dm b/code/modules/reagents/newchem/drugs.dm
index 99a637e4fca..bc5b10be569 100644
--- a/code/modules/reagents/newchem/drugs.dm
+++ b/code/modules/reagents/newchem/drugs.dm
@@ -30,7 +30,7 @@
if(severity == 1)
if(effect <= 2)
M.visible_message("[M] looks nervous!")
- M.confused += 15
+ M.AdjustConfused(15)
M.adjustToxLoss(2)
M.Jitter(10)
M.emote("twitch_s")
@@ -55,7 +55,7 @@
M.Jitter(10)
M.adjustToxLoss(5)
M.Weaken(1)
- M.confused += 33
+ M.AdjustConfused(33)
else if(effect <= 7)
M.emote("collapse")
to_chat(M, "Your heart is pounding!")
@@ -90,7 +90,7 @@
if(prob(4))
to_chat(M, "You feel kinda awful!")
M.adjustToxLoss(1)
- M.jitteriness += 30
+ M.AdjustJitter(30)
M.emote(pick("groan", "moan"))
..()
@@ -99,7 +99,7 @@
if(severity == 1)
if(effect <= 2)
M.visible_message("[M] looks confused!")
- M.confused += 20
+ M.AdjustConfused(20)
M.Jitter(20)
M.emote("scream")
else if(effect <= 4)
@@ -123,7 +123,7 @@
M.adjustToxLoss(2)
M.adjustBrainLoss(8)
M.Weaken(3)
- M.confused += 25
+ M.AdjustConfused(25)
M.emote("scream")
M.reagents.add_reagent("jagged_crystals", 5)
else if(effect <= 7)
@@ -160,7 +160,7 @@
/datum/reagent/krokodil/on_mob_life(mob/living/M)
- M.jitteriness -= 40
+ M.AdjustJitter(-40)
if(prob(25))
M.adjustBrainLoss(1)
if(prob(15))
@@ -241,8 +241,8 @@
if(prob(5))
M.emote(pick("twitch_s","blink_r","shiver"))
if(current_cycle >= 25)
- M.jitteriness += 5
- M.drowsyness = max(0, M.drowsyness-10)
+ M.AdjustJitter(5)
+ M.AdjustDrowsy(-10)
M.AdjustParalysis(-2.5)
M.AdjustStunned(-2.5)
M.AdjustWeakened(-2.5)
@@ -262,7 +262,7 @@
if(severity == 1)
if(effect <= 2)
M.visible_message("[M] can't seem to control their legs!")
- M.confused += 20
+ M.AdjustConfused(20)
M.Weaken(4)
else if(effect <= 4)
M.visible_message("[M]'s hands flip out and flail everywhere!")
@@ -296,7 +296,7 @@
for(var/mob/living/carbon/C in range(T, 1))
if(C.can_breathe_gas())
C.emote("gasp")
- C.losebreath++
+ C.AdjustLoseBreath(1)
C.reagents.add_reagent("toxin", 10)
C.reagents.add_reagent("neurotoxin2", 20)
@@ -342,15 +342,15 @@
M.SetWeakened(0)
if(check < 30)
M.emote(pick("twitch", "twitch_s", "scream", "drool", "grumble", "mumble"))
- M.druggy = max(M.druggy, 15)
+ M.Druggy(15)
if(check < 20)
- M.confused += 10
+ M.AdjustConfused(10)
if(check < 8)
M.reagents.add_reagent(pick("methamphetamine", "crank", "neurotoxin"), rand(1,5))
M.visible_message("[M] scratches at something under their skin!")
M.adjustBruteLoss(5)
else if(check < 16)
- M.hallucination += 30
+ M.AdjustHallucinate(30)
else if(check < 24)
to_chat(M, "They're coming for you!")
else if(check < 28)
@@ -373,7 +373,7 @@
if(severity == 1)
if(effect <= 2)
M.visible_message("[M] flails around like a lunatic!")
- M.confused += 25
+ M.AdjustConfused(25)
M.Jitter(10)
M.emote("scream")
M.reagents.add_reagent("jagged_crystals", 5)
@@ -383,7 +383,7 @@
M.adjustToxLoss(2)
M.adjustBrainLoss(1)
M.Stun(3)
- M.eye_blurry = max(M.eye_blurry, 7)
+ M.EyeBlurry(7)
M.reagents.add_reagent("jagged_crystals", 5)
else if(effect <= 7)
M.emote("faint")
@@ -394,7 +394,7 @@
M.adjustToxLoss(2)
M.adjustBrainLoss(1)
M.Stun(3)
- M.eye_blurry = max(M.eye_blurry, 7)
+ M.EyeBlurry(7)
M.reagents.add_reagent("jagged_crystals", 5)
else if(effect <= 4)
M.visible_message("[M] convulses violently and falls to the floor!")
@@ -479,7 +479,7 @@
to_chat(M, "You cannot breathe!")
M.adjustOxyLoss(15)
M.Stun(1)
- M.losebreath++
+ M.AdjustLoseBreath(1)
..()
/datum/reagent/thc
@@ -497,10 +497,10 @@
if(prob(5))
to_chat(M, "[pick("You feel hungry.","Your stomach rumbles.","You feel cold.","You feel warm.")]")
if(prob(4))
- M.confused = max(M.confused, 10)
+ M.Confused(10)
if(volume >= 50 && prob(25))
if(prob(10))
- M.drowsyness = max(M.drowsyness, 10)
+ M.Drowsy(10)
..()
/datum/reagent/fliptonium
@@ -545,7 +545,7 @@
if(current_cycle == 50)
M.SpinAnimation(speed = 4, loops = -1)
- M.drowsyness = max(0, M.drowsyness-6)
+ M.AdjustDrowsy(-6)
M.AdjustParalysis(-1.5)
M.AdjustStunned(-1.5)
M.AdjustWeakened(-1.5)
@@ -561,7 +561,7 @@
if(severity == 1)
if(effect <= 2)
M.visible_message("[M] can't seem to control their legs!")
- M.confused += 33
+ M.AdjustConfused(33)
M.Weaken(2)
else if(effect <= 4)
M.visible_message("[M]'s hands flip out and flail everywhere!")
@@ -655,7 +655,7 @@
/datum/reagent/surge/on_mob_life(mob/living/M)
- M.druggy = max(M.druggy, 15)
+ M.Druggy(15)
var/high_message = pick("You feel calm.", "You feel collected.", "You feel like you need to relax.")
if(prob(1))
if(prob(1))
diff --git a/code/modules/reagents/newchem/medicine.dm b/code/modules/reagents/newchem/medicine.dm
index 777c10ebfd7..a84ac83f385 100644
--- a/code/modules/reagents/newchem/medicine.dm
+++ b/code/modules/reagents/newchem/medicine.dm
@@ -167,7 +167,7 @@
M.adjustBruteLoss(-2*REM)
M.adjustFireLoss(-2*REM)
if(prob(50))
- M.losebreath -= 1
+ M.AdjustLoseBreath(-1)
..()
/datum/reagent/omnizine/overdose_process(mob/living/M, severity)
@@ -181,7 +181,7 @@
M.Weaken(4)
else if(effect <= 3)
M.visible_message("[M] completely spaces out for a moment.")
- M.confused += 15
+ M.AdjustConfused(15)
else if(effect <= 5)
M.visible_message("[M] stumbles and staggers.")
M.Dizzy(5)
@@ -317,7 +317,7 @@
/datum/reagent/salbutamol/on_mob_life(mob/living/M)
M.adjustOxyLoss(-6*REM)
- M.losebreath = max(0, M.losebreath-4)
+ M.AdjustLoseBreath(-4)
..()
/datum/chemical_reaction/salbutamol
@@ -341,8 +341,8 @@
/datum/reagent/perfluorodecalin/on_mob_life(mob/living/carbon/human/M)
M.adjustOxyLoss(-25*REM)
if(volume >= 4)
- M.losebreath = max(M.losebreath, 6)
- M.silent = max(M.silent, 6)
+ M.LoseBreath(6)
+ M.Silence(6)
if(prob(33))
M.adjustBruteLoss(-1*REM)
M.adjustFireLoss(-1*REM)
@@ -369,13 +369,12 @@
addiction_chance = 25
/datum/reagent/ephedrine/on_mob_life(mob/living/M)
- M.drowsyness = max(0, M.drowsyness-5)
+ M.AdjustDrowsy(-5)
M.AdjustParalysis(-1)
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
M.adjustStaminaLoss(-1*REM)
- if(M.losebreath > 5)
- M.losebreath = max(5, M.losebreath-1)
+ M.AdjustLoseBreath(-1, bound_lower = 5)
if(M.oxyloss > 75)
M.adjustOxyLoss(-1)
if(M.health < 0 || M.health > 0 && prob(33))
@@ -422,14 +421,14 @@
addiction_chance = 10
/datum/reagent/diphenhydramine/on_mob_life(mob/living/M)
- M.jitteriness = max(0, M.jitteriness-20)
+ M.AdjustJitter(-20)
M.reagents.remove_reagent("histamine",3)
M.reagents.remove_reagent("itching_powder",3)
if(prob(7))
M.emote("yawn")
if(prob(3))
M.Stun(2)
- M.drowsyness += 1
+ M.AdjustDrowsy(1)
M.visible_message("[M] looks a bit dazed.")
..()
@@ -453,16 +452,16 @@
shock_reduction = 50
/datum/reagent/morphine/on_mob_life(mob/living/M)
- M.jitteriness = max(0, M.jitteriness-25)
+ M.AdjustJitter(-25)
switch(current_cycle)
if(1 to 15)
if(prob(7))
M.emote("yawn")
if(16 to 35)
- M.drowsyness = max(M.drowsyness, 20)
+ M.Drowsy(20)
if(36 to INFINITY)
M.Paralyse(15)
- M.drowsyness = max(M.drowsyness, 20)
+ M.Drowsy(20)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.traumatic_shock < 100)
@@ -476,16 +475,16 @@
var/obj/item/organ/internal/eyes/E = H.get_int_organ(/obj/item/organ/internal/eyes)
if(istype(E))
E.damage = max(E.damage-1, 0)
- M.eye_blurry = max(M.eye_blurry-1 , 0)
- M.adjustEarDamage(-1,0)
+ M.AdjustEyeBlurry(-1)
+ M.AdjustEarDamage(-1)
if(prob(50))
- M.disabilities &= ~NEARSIGHTED
+ M.CureNearsighted()
if(prob(30))
- M.disabilities &= ~BLIND
- M.eye_blind = 0
+ M.CureBlind()
+ M.SetEyeBlind(0)
if(M.ear_damage <= 25)
if(prob(30))
- M.setEarDamage(-1,0)
+ M.SetEarDeaf(0)
..()
/datum/chemical_reaction/oculine
@@ -515,12 +514,11 @@
overdose_threshold = 25
/datum/reagent/atropine/on_mob_life(mob/living/M)
- M.dizziness += 1
- M.confused = max(M.confused, 5)
+ M.AdjustDizzy(1)
+ M.Confused(5)
if(prob(4))
M.emote("collapse")
- if(M.losebreath > 5)
- M.losebreath = max(5, M.losebreath-5)
+ M.AdjustLoseBreath(-5, bound_lower = 5)
if(M.oxyloss > 65)
M.adjustOxyLoss(-10*REM)
if(M.health < -25)
@@ -550,7 +548,7 @@
overdose_threshold = 20
/datum/reagent/epinephrine/on_mob_life(mob/living/M)
- M.drowsyness = max(0, M.drowsyness-5)
+ M.AdjustDrowsy(-5)
if(prob(20))
M.AdjustParalysis(-1)
if(prob(20))
@@ -562,8 +560,7 @@
if(prob(5))
M.adjustBrainLoss(-1)
holder.remove_reagent("histamine", 15)
- if(M.losebreath > 3)
- M.losebreath--
+ M.AdjustLoseBreath(-1, bound_lower = 3)
if(M.oxyloss > 35)
M.adjustOxyLoss(-10*REM)
if(M.health < -10 && M.health > -65)
@@ -694,7 +691,7 @@
color = "#D1D1F1"
/datum/reagent/mutadone/on_mob_life(mob/living/carbon/human/M)
- M.jitteriness = 0
+ M.SetJitter(0)
var/needs_update = M.mutations.len > 0 || M.disabilities > 0
if(needs_update)
@@ -733,7 +730,7 @@
color = "#009CA8"
/datum/reagent/antihol/on_mob_life(mob/living/M)
- M.slurring = 0
+ M.SetSlur(0)
M.AdjustDrunk(-4)
M.reagents.remove_all_type(/datum/reagent/ethanol, 8, 0, 1)
if(M.toxloss <= 25)
@@ -763,10 +760,10 @@
M.adjustBruteLoss(-10*REM)
M.adjustFireLoss(-10*REM)
M.setStaminaLoss(0)
- M.slowed = 0
- M.dizziness = max(0,M.dizziness-10)
- M.drowsyness = max(0,M.drowsyness-10)
- M.confused = 0
+ M.SetSlowed(0)
+ M.AdjustDizzy(-10)
+ M.AdjustDrowsy(-10)
+ M.SetConfused(0)
M.SetSleeping(0)
var/status = CANSTUN | CANWEAKEN | CANPARALYSE
M.status_flags &= ~status
@@ -811,7 +808,7 @@
if(prob(33))
M.adjustStaminaLoss(2.5*REM)
M.adjustToxLoss(1*REM)
- M.losebreath++
+ M.AdjustLoseBreath(1)
/datum/reagent/insulin
name = "Insulin"
@@ -882,11 +879,11 @@
M.reagents.remove_reagent("bath_salts", 5)
M.reagents.remove_reagent("lsd", 5)
M.reagents.remove_reagent("thc", 5)
- M.druggy -= 5
- M.hallucination -= 5
- M.jitteriness -= 5
+ M.AdjustDruggy(-5)
+ M.AdjustHallucinate(-5)
+ M.AdjustJitter(-5)
if(prob(50))
- M.drowsyness = max(M.drowsyness, 3)
+ M.Drowsy(3)
if(prob(10))
M.emote("drool")
if(prob(20))
@@ -910,16 +907,16 @@
color = "#96DEDE"
/datum/reagent/ether/on_mob_life(mob/living/M)
- M.jitteriness = max(M.jitteriness-25,0)
+ M.AdjustJitter(-25)
switch(current_cycle)
if(1 to 15)
if(prob(7))
M.emote("yawn")
if(16 to 35)
- M.drowsyness = max(M.drowsyness, 20)
+ M.Drowsy(20)
if(36 to INFINITY)
M.Paralyse(15)
- M.drowsyness = max(M.drowsyness, 20)
+ M.Drowsy(20)
..()
/datum/chemical_reaction/ether
@@ -960,7 +957,7 @@
M.AdjustParalysis(-1)
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
- M.confused = max(0, M.confused-5)
+ M.AdjustConfused(-5)
for(var/datum/reagent/R in M.reagents.reagent_list)
if(R != src)
if(R.id == "ultralube" || R.id == "lube")
@@ -1037,7 +1034,7 @@
M.Weaken(4)
else if(effect <= 3)
M.visible_message("[M] completely spaces out for a moment.")
- M.confused += 15
+ M.AdjustConfused(15)
else if(effect <= 5)
M.visible_message("[M] stumbles and staggers.")
M.Dizzy(5)
diff --git a/code/modules/reagents/newchem/pyro.dm b/code/modules/reagents/newchem/pyro.dm
index 6dece72544c..05ecb1b1206 100644
--- a/code/modules/reagents/newchem/pyro.dm
+++ b/code/modules/reagents/newchem/pyro.dm
@@ -356,12 +356,13 @@
if(!ear_safety)
M.Stun(max(10/distance, 3))
M.Weaken(max(10/distance, 3))
- M.setEarDamage(M.ear_damage + rand(0, 5), max(M.ear_deaf,15))
+ M.AdjustEarDamage(rand(0, 5))
+ M.EarDeaf(15)
if(M.ear_damage >= 15)
to_chat(M, "Your ears start to ring badly!")
- if(prob(M.ear_damage - 10 + 5))
+ if(prob(M.ear_damage - 5))
to_chat(M, "You can't hear anything!")
- M.disabilities |= DEAF
+ M.BecomeDeaf()
else
if(M.ear_damage >= 5)
to_chat(M, "Your ears start to ring!")
@@ -384,10 +385,11 @@
if(!ear_safety)
M.Stun(max(10/distance, 3))
M.Weaken(max(10/distance, 3))
- M.setEarDamage(M.ear_damage + rand(0, 5), max(M.ear_deaf,15))
+ M.AdjustEarDamage(rand(0, 5))
+ M.EarDeaf(15)
if(M.ear_damage >= 15)
to_chat(M, "Your ears start to ring badly!")
- if(prob(M.ear_damage - 10 + 5))
+ if(prob(M.ear_damage - 5))
to_chat(M, "You can't hear anything!")
M.disabilities |= DEAF
else
@@ -619,4 +621,4 @@
if(method == TOUCH)
M.adjust_fire_stacks(volume / 5)
return
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/modules/reagents/newchem/toxins.dm b/code/modules/reagents/newchem/toxins.dm
index 56d64d9a62e..d8e8205b1f7 100644
--- a/code/modules/reagents/newchem/toxins.dm
+++ b/code/modules/reagents/newchem/toxins.dm
@@ -41,7 +41,7 @@
if(prob(10))
to_chat(M, "Your eyes itch.")
M.emote(pick("blink", "sneeze"))
- M.eye_blurry += 3
+ M.AdjustEyeBlurry(3)
if(prob(10))
M.visible_message("[M] scratches at an itch.")
M.adjustBruteLoss(1)
@@ -141,7 +141,7 @@
if(prob(4))
M.visible_message("[M] starts convulsing violently!", "You feel as if your body is tearing itself apart!")
M.Weaken(15)
- M.jitteriness += 1000
+ M.AdjustJitter(1000)
spawn(rand(20, 100))
M.gib()
@@ -159,19 +159,19 @@
current_cycle++
return
if(5 to 8)
- M.dizziness += 1
- M.confused = max(M.confused, 10)
+ M.AdjustDizzy(1)
+ M.Confused(10)
if(9 to 12)
- M.drowsyness = max(M.drowsyness, 10)
- M.dizziness += 1
- M.confused = max(M.confused, 20)
+ M.Drowsy(10)
+ M.AdjustDizzy(1)
+ M.Confused(20)
if(13)
M.emote("faint")
if(14 to INFINITY)
M.Paralyse(10)
- M.drowsyness = max(M.drowsyness, 20)
+ M.Drowsy(20)
- M.jitteriness = max(0, M.jitteriness-30)
+ M.AdjustJitter(-30)
if(M.getBrainLoss() <= 80)
M.adjustBrainLoss(1)
else
@@ -207,7 +207,7 @@
M.emote("drool")
if(prob(10))
to_chat(M, "You cannot breathe!")
- M.losebreath += 1
+ M.AdjustLoseBreath(1)
M.emote("gasp")
if(prob(8))
to_chat(M, "You feel horrendously weak!")
@@ -261,7 +261,7 @@
to_chat(M, "AHHHHHH!")
M.adjustBruteLoss(5)
M.Weaken(5)
- M.jitteriness += 6
+ M.AdjustJitter(6)
M.visible_message("[M] falls to the floor, scratching themselves violently!")
M.emote("scream")
..()
@@ -364,11 +364,11 @@
if(prob(10))
to_chat(M, "You cannot breathe!")
M.adjustOxyLoss(10)
- M.losebreath++
+ M.AdjustLoseBreath(1)
if(prob(10))
to_chat(M, "Your chest is burning with pain!")
M.adjustOxyLoss(10)
- M.losebreath++
+ M.AdjustLoseBreath(1)
M.Stun(3)
M.Weaken(2)
if(ishuman(M))
@@ -425,12 +425,12 @@
M.Weaken(20)
if(prob(10))
M.emote(pick("drool", "tremble", "gasp"))
- M.losebreath++
+ M.AdjustLoseBreath(1)
if(prob(9))
to_chat(M, "You can't [pick("move", "feel your legs", "feel your face", "feel anything")]!")
if(prob(7))
to_chat(M, "You can't breathe!")
- M.losebreath += 3
+ M.AdjustLoseBreath(3)
..()
/datum/reagent/sodium_thiopental
@@ -445,15 +445,15 @@
switch(current_cycle)
if(1)
M.emote("drool")
- M.confused = max(M.confused, 5)
+ M.Confused(5)
if(2 to 4)
- M.drowsyness = max(M.drowsyness, 20)
+ M.Drowsy(20)
if(5)
M.emote("faint")
M.Weaken(5)
if(6 to INFINITY)
M.Paralyse(20)
- M.jitteriness = max(0, M.jitteriness-50)
+ M.AdjustJitter(-50)
if(prob(10))
M.emote("drool")
M.adjustBrainLoss(1)
@@ -474,7 +474,7 @@
if(prob(25))
M.emote("yawn")
if(6 to 9)
- M.eye_blurry += 5
+ M.AdjustEyeBlurry(5)
if(prob(35))
M.emote("yawn")
if(10)
@@ -502,20 +502,20 @@
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
/datum/reagent/sulfonal/on_mob_life(mob/living/M)
- M.jitteriness = max(0, M.jitteriness-30)
+ M.AdjustJitter(-30)
switch(current_cycle)
if(1 to 10)
if(prob(7))
M.emote("yawn")
if(11 to 20)
- M.drowsyness = max(M.drowsyness, 20)
+ M.Drowsy(20)
if(21)
M.emote("faint")
if(22 to INFINITY)
if(prob(20))
M.emote("faint")
M.Paralyse(5)
- M.drowsyness = max(M.drowsyness, 20)
+ M.Drowsy(20)
M.adjustToxLoss(1)
..()
@@ -570,7 +570,7 @@
/datum/reagent/coniine/on_mob_life(mob/living/M)
M.adjustToxLoss(2)
- M.losebreath += 5
+ M.AdjustLoseBreath(5)
..()
/datum/reagent/curare
@@ -590,7 +590,7 @@
if(prob(20))
M.emote(pick("drool", "pale", "gasp"))
if(6 to 10)
- M.eye_blurry += 5
+ M.AdjustEyeBlurry(5)
if(prob(8))
to_chat(M, "You feel [pick("weak", "horribly weak", "numb", "like you can barely move", "tingly")].")
M.Stun(1)
@@ -598,12 +598,12 @@
M.emote(pick("drool","pale", "gasp"))
if(11 to INFINITY)
M.Stun(30)
- M.drowsyness = max(M.drowsyness, 20)
+ M.Drowsy(20)
if(prob(20))
M.emote(pick("drool", "faint", "pale", "gasp", "collapse"))
else if(prob(8))
to_chat(M, "You can't [pick("breathe", "move", "feel your legs", "feel your face", "feel anything")]!")
- M.losebreath++
+ M.AdjustLoseBreath(1)
..()
/datum/reagent/sarin
@@ -636,22 +636,22 @@
/datum/reagent/sarin/on_mob_life(mob/living/M)
switch(current_cycle)
if(1 to 15)
- M.jitteriness += 20
+ M.AdjustJitter(20)
if(prob(20))
M.emote(pick("twitch","twitch_s","quiver"))
if(16 to 30)
if(prob(25))
M.emote(pick("twitch","twitch","drool","quiver","tremble"))
- M.eye_blurry += 5
- M.stuttering = max(M.stuttering, 5)
+ M.AdjustEyeBlurry(5)
+ M.Stuttering(5)
if(prob(10))
- M.confused = max(M.confused, 15)
+ M.Confused(15)
if(prob(15))
M.Stun(1)
M.emote("scream")
if(30 to 60)
- M.eye_blurry += 5
- M.stuttering = max(M.stuttering, 5)
+ M.AdjustEyeBlurry(5)
+ M.Stuttering(5)
if(prob(10))
M.Stun(1)
M.emote(pick("twitch","twitch","drool","shake","tremble"))
@@ -660,15 +660,15 @@
if(prob(5))
M.Weaken(3)
M.visible_message("[M] has a seizure!")
- M.jitteriness = 1000
+ M.SetJitter(1000)
if(prob(5))
to_chat(M, "You can't breathe!")
M.emote(pick("gasp", "choke", "cough"))
- M.losebreath++
+ M.AdjustLoseBreath(1)
if(61 to INFINITY)
if(prob(15))
M.emote(pick("gasp", "choke", "cough","twitch", "shake", "tremble","quiver","drool", "twitch","collapse"))
- M.losebreath = max(5, M.losebreath + 5)
+ M.LoseBreath(5)
M.adjustToxLoss(1)
M.adjustBrainLoss(1)
M.Weaken(4)
@@ -754,16 +754,16 @@
/datum/reagent/capulettium/on_mob_life(mob/living/M)
switch(current_cycle)
if(1 to 5)
- M.eye_blurry += 10
+ M.AdjustEyeBlurry(10)
if(6 to 10)
- M.drowsyness = max(M.drowsyness, 10)
+ M.Drowsy(10)
if(11)
M.Paralyse(10)
M.visible_message("[M] seizes up and falls limp, their eyes dead and lifeless...") //so you can't trigger deathgasp emote on people. Edge case, but necessary.
if(12 to 60)
M.Paralyse(10)
if(61 to INFINITY)
- M.eye_blurry += 10
+ M.AdjustEyeBlurry(10)
..()
/datum/reagent/capulettium_plus
@@ -783,7 +783,7 @@
mix_message = "The solution begins to slosh about violently by itself."
/datum/reagent/capulettium_plus/on_mob_life(mob/living/M)
- M.silent = max(M.silent, 2)
+ M.Silence(2)
..()
/datum/reagent/toxic_slurry
@@ -884,4 +884,4 @@
var/location = get_turf(holder.my_atom)
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(6, 1, location)
- s.start()
\ No newline at end of file
+ s.start()
diff --git a/code/modules/reagents/oldchem/reagents/drink/reagents_alcohol.dm b/code/modules/reagents/oldchem/reagents/drink/reagents_alcohol.dm
index da92ffee0f2..e337aa10e1f 100644
--- a/code/modules/reagents/oldchem/reagents/drink/reagents_alcohol.dm
+++ b/code/modules/reagents/oldchem/reagents/drink/reagents_alcohol.dm
@@ -13,7 +13,7 @@
/datum/reagent/ethanol/on_mob_life(mob/living/M)
M.nutrition += nutriment_factor
M.AdjustDrunk(alcohol_perc)
- M.dizziness += dizzy_adj
+ M.AdjustDizzy(dizzy_adj)
..()
@@ -84,7 +84,7 @@
//copy paste from LSD... shoot me
/datum/reagent/ethanol/absinthe/on_mob_life(mob/living/M)
- M.hallucination += 5
+ M.AdjustHallucinate(5)
..()
/datum/reagent/ethanol/absinthe/overdose_process(mob/living/M, severity)
@@ -97,10 +97,7 @@
color = "#664300" // rgb: 102, 67, 0
overdose_threshold = 30
alcohol_perc = 0.4
-
-/datum/reagent/ethanol/rum/on_mob_life(mob/living/M)
- M.dizziness +=5
- ..()
+ dizzy_adj = 5
/datum/reagent/ethanol/rum/overdose_process(mob/living/M, severity)
M.adjustToxLoss(1)
@@ -182,7 +179,7 @@
/datum/reagent/ethanol/thirteenloko/on_mob_life(mob/living/M)
M.nutrition += nutriment_factor
- M.drowsyness = max(0, M.drowsyness-7)
+ M.AdjustDrowsy(-7)
M.AdjustSleeping(-2)
if(M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
@@ -625,7 +622,7 @@
/datum/reagent/ethanol/neurotoxin/on_mob_life(mob/living/M)
M.weakened = max(M.weakened, 3)
if(current_cycle >=55)
- M.druggy = max(M.druggy, 55)
+ M.Druggy(55)
if(current_cycle >=200)
M.adjustToxLoss(2)
..()
@@ -637,10 +634,7 @@
reagent_state = LIQUID
color = "#2E6671" // rgb: 46, 102, 113
alcohol_perc = 0.7
-
-/datum/reagent/ethanol/changelingsting/on_mob_life(mob/living/M)
- M.dizziness +=5
- ..()
+ dizzy_adj = 5
/datum/reagent/ethanol/irishcarbomb
name = "Irish Car Bomb"
@@ -649,10 +643,7 @@
reagent_state = LIQUID
color = "#2E6671" // rgb: 46, 102, 113
alcohol_perc = 0.3
-
-/datum/reagent/ethanol/irishcarbomb/on_mob_life(mob/living/M)
- M.dizziness +=5
- ..()
+ dizzy_adj = 5
/datum/reagent/ethanol/syndicatebomb
name = "Syndicate Bomb"
@@ -677,9 +668,9 @@
nutriment_factor = 1 * FOOD_METABOLISM
color = "#2E6671" // rgb: 46, 102, 113
alcohol_perc = 0.5
+ dizzy_adj = 10
/datum/reagent/ethanol/driestmartini/on_mob_life(mob/living/M)
- M.dizziness +=10
if(current_cycle >= 55 && current_cycle < 115)
M.stuttering += 10
..()
@@ -692,8 +683,8 @@
alcohol_perc = 0.2
/datum/reagent/ethanol/kahlua/on_mob_life(mob/living/M)
- M.dizziness = max(0, M.dizziness-5)
- M.drowsyness = max(0, M.drowsyness-3)
+ M.AdjustDizzy(-5)
+ M.AdjustDrowsy(-3)
M.AdjustSleeping(-2)
M.Jitter(5)
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/modules/reagents/oldchem/reagents/drink/reagents_drink.dm b/code/modules/reagents/oldchem/reagents/drink/reagents_drink.dm
index 26bad6c1665..869e9295bf5 100644
--- a/code/modules/reagents/oldchem/reagents/drink/reagents_drink.dm
+++ b/code/modules/reagents/oldchem/reagents/drink/reagents_drink.dm
@@ -38,8 +38,8 @@
color = "#973800" // rgb: 151, 56, 0
/datum/reagent/drink/carrotjuicde/on_mob_life(mob/living/M)
- M.eye_blurry = max(M.eye_blurry-1 , 0)
- M.eye_blind = max(M.eye_blind-1 , 0)
+ M.AdjustEyeBlurry(-1)
+ M.AdjustEyeBlind(-1)
switch(current_cycle)
if(1 to 20)
//nothing
@@ -282,4 +282,4 @@
if(ishuman(M) && M.job in list("Mime"))
M.adjustBruteLoss(-1)
M.adjustFireLoss(-1)
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/modules/reagents/oldchem/reagents/drink/reagents_drink_base.dm b/code/modules/reagents/oldchem/reagents/drink/reagents_drink_base.dm
index 1868489adb7..6e30efb9423 100644
--- a/code/modules/reagents/oldchem/reagents/drink/reagents_drink_base.dm
+++ b/code/modules/reagents/oldchem/reagents/drink/reagents_drink_base.dm
@@ -14,9 +14,9 @@
/datum/reagent/drink/on_mob_life(mob/living/M)
M.nutrition += nutriment_factor
if(adj_dizzy)
- M.dizziness = max(0, M.dizziness + adj_dizzy)
+ M.AdjustDizzy(adj_dizzy)
if(adj_drowsy)
- M.drowsyness = max(0, M.drowsyness + adj_drowsy)
+ M.AdjustDrowsy(adj_drowsy)
if(adj_sleepy)
M.AdjustSleeping(adj_sleepy)
if(adj_temp_hot)
@@ -25,4 +25,4 @@
if(adj_temp_cool)
if(M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = max(310, M.bodytemperature - (adj_temp_cool * TEMPERATURE_DAMAGE_COEFFICIENT))
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/modules/reagents/oldchem/reagents/drink/reagents_drink_cold.dm b/code/modules/reagents/oldchem/reagents/drink/reagents_drink_cold.dm
index fe54ed97246..26164571769 100644
--- a/code/modules/reagents/oldchem/reagents/drink/reagents_drink_cold.dm
+++ b/code/modules/reagents/oldchem/reagents/drink/reagents_drink_cold.dm
@@ -48,9 +48,9 @@
/datum/reagent/drink/cold/nuka_cola/on_mob_life(mob/living/M)
M.Jitter(20)
- M.druggy = max(M.druggy, 30)
- M.dizziness +=5
- M.drowsyness = 0
+ M.Druggy(30)
+ M.AdjustDizzy(5)
+ M.SetDrowsy(0)
M.status_flags |= GOTTAGOFAST
..()
@@ -121,4 +121,4 @@
/datum/reagent/drink/cold/rewriter/on_mob_life(mob/living/M)
M.Jitter(5)
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/modules/reagents/oldchem/reagents/reagents_admin.dm b/code/modules/reagents/oldchem/reagents/reagents_admin.dm
index ccc617d2aaa..09636bd111f 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_admin.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_admin.dm
@@ -14,7 +14,6 @@
M.adjustBruteLoss(-5)
M.adjustFireLoss(-5)
M.adjustToxLoss(-5)
- M.hallucination = 0
M.setBrainLoss(0)
if(ishuman(M))
var/mob/living/carbon/human/H = M
@@ -24,20 +23,28 @@
for(var/obj/item/organ/external/E in H.organs)
if(E.mend_fracture())
E.perma_injury = 0
- M.disabilities = 0
- M.eye_blurry = 0
- M.eye_blind = 0
+ M.SetEyeBlind(0)
+ M.CureNearsighted()
+ M.CureBlind()
+ M.CureMute()
+ M.CureDeaf()
+ M.CureEpilepsy()
+ M.CureTourettes()
+ M.CureCoughing()
+ M.CureNervous()
+ M.SetEyeBlurry(0)
M.SetWeakened(0)
M.SetStunned(0)
M.SetParalysis(0)
- M.silent = 0
- M.dizziness = 0
- M.drowsyness = 0
- M.stuttering = 0
- M.slurring = 0
- M.confused = 0
+ M.SetSilence(0)
+ M.SetHallucinate(0)
+ M.SetDizzy(0)
+ M.SetDrowsy(0)
+ M.SetStuttering(0)
+ M.SetSlur(0)
+ M.SetConfused(0)
M.SetSleeping(0)
- M.jitteriness = 0
+ M.SetJitter(0)
for(var/datum/disease/D in M.viruses)
if(D.severity == NONTHREAT)
continue
@@ -73,4 +80,4 @@
outgoing += tocheck
else
outgoing += tocheck
- return outgoing
\ No newline at end of file
+ return outgoing
diff --git a/code/modules/reagents/oldchem/reagents/reagents_drugs.dm b/code/modules/reagents/oldchem/reagents/reagents_drugs.dm
index 7cbc79b41b0..1fd0188287a 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_drugs.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_drugs.dm
@@ -37,7 +37,7 @@
metabolization_rate = 0.2 * REAGENTS_METABOLISM
/datum/reagent/hippies_delight/on_mob_life(mob/living/M)
- M.druggy = max(M.druggy, 50)
+ M.Druggy(50)
switch(current_cycle)
if(1 to 5)
if(!M.stuttering) M.stuttering = 1
@@ -47,13 +47,13 @@
if(!M.stuttering) M.stuttering = 1
M.Jitter(20)
M.Dizzy(20)
- M.druggy = max(M.druggy, 45)
+ M.Druggy(45)
if(prob(20)) M.emote(pick("twitch","giggle"))
if(10 to INFINITY)
if(!M.stuttering) M.stuttering = 1
M.Jitter(40)
M.Dizzy(40)
- M.druggy = max(M.druggy, 60)
+ M.Druggy(60)
if(prob(30)) M.emote(pick("twitch","giggle"))
..()
@@ -65,8 +65,8 @@
color = "#0000D8"
/datum/reagent/lsd/on_mob_life(mob/living/M)
- M.druggy = max(M.druggy, 15)
- M.hallucination += 10
+ M.Druggy(15)
+ M.AdjustHallucinate(10)
..()
/datum/reagent/space_drugs
@@ -80,7 +80,7 @@
heart_rate_decrease = 1
/datum/reagent/space_drugs/on_mob_life(mob/living/M)
- M.druggy = max(M.druggy, 15)
+ M.Druggy(15)
if(isturf(M.loc) && !istype(M.loc, /turf/space))
if(M.canmove && !M.restrained())
step(M, pick(cardinal))
@@ -94,22 +94,22 @@
color = "#E700E7" // rgb: 231, 0, 231
/datum/reagent/psilocybin/on_mob_life(mob/living/M)
- M.druggy = max(M.druggy, 30)
+ M.Druggy(30)
switch(current_cycle)
if(1 to 5)
- if(!M.stuttering) M.stuttering = 1
+ M.Stuttering(1)
M.Dizzy(5)
if(prob(10)) M.emote(pick("twitch","giggle"))
if(5 to 10)
- if(!M.stuttering) M.stuttering = 1
+ M.Stuttering(1)
M.Jitter(10)
M.Dizzy(10)
- M.druggy = max(M.druggy, 35)
+ M.Druggy(35)
if(prob(20)) M.emote(pick("twitch","giggle"))
if(10 to INFINITY)
- if(!M.stuttering) M.stuttering = 1
+ M.Stuttering(1)
M.Jitter(20)
M.Dizzy(20)
- M.druggy = max(M.druggy, 40)
+ M.Druggy(40)
if(prob(30)) M.emote(pick("twitch","giggle"))
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/modules/reagents/oldchem/reagents/reagents_flammable.dm b/code/modules/reagents/oldchem/reagents/reagents_flammable.dm
index 52d33e21e07..61228dfb2d0 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_flammable.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_flammable.dm
@@ -22,7 +22,7 @@
M.adjustBrainLoss(3)
if(iscultist(M))
M.status_flags |= GOTTAGOFAST
- M.drowsyness = max(M.drowsyness-5, 0)
+ M.AdjustDrowsy(-5)
M.AdjustParalysis(-2)
M.AdjustStunned(-2)
M.AdjustWeakened(-2)
@@ -78,4 +78,4 @@
id = "glycerol"
description = "Glycerol is a simple polyol compound. Glycerol is sweet-tasting and of low toxicity."
reagent_state = LIQUID
- color = "#808080" // rgb: 128, 128, 128
\ No newline at end of file
+ color = "#808080" // rgb: 128, 128, 128
diff --git a/code/modules/reagents/oldchem/reagents/reagents_food.dm b/code/modules/reagents/oldchem/reagents/reagents_food.dm
index 1dbe1f05a20..de52805fef2 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_food.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_food.dm
@@ -370,9 +370,9 @@
overdose_threshold = 200 // Hyperglycaemic shock
/datum/reagent/sugar/on_mob_life(mob/living/M)
- M.drowsyness = max(0, M.drowsyness-5)
+ M.AdjustDrowsy(-5)
if(current_cycle >= 90)
- M.jitteriness += 2
+ M.AdjustJitter(2)
if(prob(50))
M.AdjustParalysis(-1)
M.AdjustStunned(-1)
@@ -391,4 +391,3 @@
M.Weaken(4 * severity)
if(prob(8))
M.adjustToxLoss(severity)
-
diff --git a/code/modules/reagents/oldchem/reagents/reagents_med.dm b/code/modules/reagents/oldchem/reagents/reagents_med.dm
index cc5592dd42e..b0a09afc999 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_med.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_med.dm
@@ -41,7 +41,7 @@
overdose_threshold = 40
/datum/reagent/synaptizine/on_mob_life(mob/living/M)
- M.drowsyness = max(0, M.drowsyness-5)
+ M.AdjustDrowsy(-5)
M.AdjustParalysis(-1)
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
@@ -139,4 +139,4 @@
description = "An all-purpose antibiotic agent extracted from space fungus."
reagent_state = LIQUID
color = "#0AB478"
- metabolization_rate = 0.2
\ No newline at end of file
+ metabolization_rate = 0.2
diff --git a/code/modules/reagents/oldchem/reagents/reagents_toxin.dm b/code/modules/reagents/oldchem/reagents/reagents_toxin.dm
index bbdf92b8693..0aae5e3f40e 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_toxin.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_toxin.dm
@@ -326,7 +326,7 @@
/datum/reagent/spores/on_mob_life(mob/living/M)
M.adjustToxLoss(1)
M.damageoverlaytemp = 60
- M.eye_blurry = max(M.eye_blurry, 3)
+ M.EyeBlurry(3)
..()
/datum/reagent/beer2 //disguised as normal beer for use by emagged brobots
@@ -385,25 +385,25 @@
to_chat(victim, "Your [safe_thing] protect you from most of the pepperspray!")
if(prob(5))
victim.emote("scream")
- victim.eye_blurry = max(M.eye_blurry, 3)
- victim.eye_blind = max(M.eye_blind, 1)
- victim.confused = max(M.confused, 3)
+ victim.EyeBlurry(3)
+ victim.EyeBlind(1)
+ victim.Confused(3)
victim.damageoverlaytemp = 60
victim.Weaken(3)
victim.drop_item()
return
else if( eyes_covered ) // Eye cover is better than mouth cover
to_chat(victim, "Your [safe_thing] protects your eyes from the pepperspray!")
- victim.eye_blurry = max(M.eye_blurry, 3)
+ victim.EyeBlurry(3)
victim.damageoverlaytemp = 30
return
else // Oh dear :D
if(prob(5))
victim.emote("scream")
to_chat(victim, "You're sprayed directly in the eyes with pepperspray!")
- victim.eye_blurry = max(M.eye_blurry, 5)
- victim.eye_blind = max(M.eye_blind, 2)
- victim.confused = max(M.confused, 6)
+ victim.EyeBlurry(5)
+ victim.EyeBlind(2)
+ victim.Confused(6)
victim.damageoverlaytemp = 75
victim.Weaken(5)
victim.drop_item()
@@ -411,4 +411,4 @@
/datum/reagent/condensedcapsaicin/on_mob_life(mob/living/M)
if(prob(5))
M.visible_message("[M] [pick("dry heaves!","coughs!","splutters!")]")
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/modules/reagents/oldchem/reagents/reagents_water.dm b/code/modules/reagents/oldchem/reagents/reagents_water.dm
index bbfcbeb8142..a2dd3eb7fc4 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_water.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_water.dm
@@ -264,27 +264,27 @@
process_flags = ORGANIC | SYNTHETIC
/datum/reagent/holywater/on_mob_life(mob/living/M)
- M.jitteriness = max(M.jitteriness-5,0)
+ M.AdjustJitter(-5)
if(current_cycle >= 30) // 12 units, 60 seconds @ metabolism 0.4 units & tick rate 2.0 sec
- M.stuttering = min(M.stuttering+4, 20)
+ M.AdjustStuttering(4, bound_lower = 0, bound_upper = 20)
M.Dizzy(5)
if(iscultist(M) && prob(5))
M.say(pick("Av'te Nar'sie","Pa'lid Mors","INO INO ORA ANA","SAT ANA!","Daim'niodeis Arc'iai Le'eones","Egkau'haom'nai en Chaous","Ho Diak'nos tou Ap'iron","R'ge Na'sie","Diabo us Vo'iscum","Si gn'um Co'nu"))
if(current_cycle >= 75 && prob(33)) // 30 units, 150 seconds
- M.confused += 3
+ M.AdjustConfused(3)
if(isvampirethrall(M))
ticker.mode.remove_vampire_mind(M.mind)
holder.remove_reagent(id, volume)
- M.jitteriness = 0
- M.stuttering = 0
- M.confused = 0
+ M.SetJitter(0)
+ M.SetStuttering(0)
+ M.SetConfused(0)
return
if(iscultist(M))
ticker.mode.remove_cultist(M.mind)
holder.remove_reagent(id, volume) // maybe this is a little too perfect and a max() cap on the statuses would be better??
- M.jitteriness = 0
- M.stuttering = 0
- M.confused = 0
+ M.SetJitter(0)
+ M.SetStuttering(0)
+ M.SetConfused(0)
return
if(ishuman(M) && M.mind && M.mind.vampire && !M.mind.vampire.get_ability(/datum/vampire_passive/full) && prob(80))
switch(current_cycle)
diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm
index 1da5f07b2e5..a6fd792e795 100644
--- a/code/modules/reagents/reagent_containers/pill.dm
+++ b/code/modules/reagents/reagent_containers/pill.dm
@@ -80,12 +80,6 @@
icon_state = "pill8"
list_reagents = list("haloperidol" = 15)
-/obj/item/weapon/reagent_containers/food/pill/paroxetine
- name = "Paroxetine pill"
- desc = "Heavy anti-depressant."
- icon_state = "pill8"
- list_reagents = list("paroxetine" = 15)
-
/obj/item/weapon/reagent_containers/food/pill/happy
name = "Happy pill"
desc = "Happy happy joy joy!"
diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_badfeeling.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_badfeeling.dm
index 373b5d9454f..0e83e5812c3 100644
--- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_badfeeling.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_badfeeling.dm
@@ -37,7 +37,7 @@
to_chat(H, "[pick(messages)]")
if(prob(50))
- H.dizziness += rand(3,5)
+ H.AdjustDizzy(rand(3,5))
/datum/artifact_effect/badfeeling/DoEffectAura()
if(holder)
@@ -50,7 +50,7 @@
to_chat(H, "[pick(drastic_messages)]")
if(prob(10))
- H.dizziness += rand(3,5)
+ H.AdjustDizzy(rand(3,5))
return 1
/datum/artifact_effect/badfeeling/DoEffectPulse()
@@ -64,7 +64,7 @@
to_chat(H, "[pick(messages)]")
if(prob(50))
- H.dizziness += rand(3,5)
+ H.AdjustDizzy(rand(3,5))
else if(prob(25))
- H.dizziness += rand(5,15)
+ H.AdjustDizzy(rand(5,15))
return 1
diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_goodfeeling.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_goodfeeling.dm
index 08639dec98f..dd42c44204c 100644
--- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_goodfeeling.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_goodfeeling.dm
@@ -35,7 +35,7 @@
to_chat(H, "[pick(messages)]")
if(prob(50))
- H.dizziness += rand(3,5)
+ H.AdjustDizzy(rand(3,5))
/datum/artifact_effect/goodfeeling/DoEffectAura()
if(holder)
@@ -48,7 +48,7 @@
to_chat(H, "[pick(drastic_messages)]")
if(prob(5))
- H.dizziness += rand(3,5)
+ H.AdjustDizzy(rand(3,5))
return 1
/datum/artifact_effect/goodfeeling/DoEffectPulse()
@@ -62,7 +62,7 @@
to_chat(H, "[pick(messages)]")
if(prob(50))
- H.dizziness += rand(3,5)
+ H.AdjustDizzy(rand(3,5))
else if(prob(25))
- H.dizziness += rand(5,15)
+ H.AdjustDizzy(rand(5,15))
return 1
diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_sleepy.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_sleepy.dm
index bbb16d76a3d..1f098ddfa6b 100644
--- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_sleepy.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_sleepy.dm
@@ -13,8 +13,8 @@
if(ishuman(toucher) && prob(weakness * 100))
var/mob/living/carbon/human/H = toucher
to_chat(H, pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired."))
- H.drowsyness = min(H.drowsyness + rand(5,25) * weakness, 50 * weakness)
- H.eye_blurry = min(H.eye_blurry + rand(1,3) * weakness, 50 * weakness)
+ H.AdjustDrowsy(rand(5,25) * weakness, bound_lower = 0, bound_upper = 50 * weakness)
+ H.AdjustEyeBlurry(rand(1,3) * weakness, bound_lower = 0, bound_upper = 50 * weakness)
return 1
else if(isrobot(toucher))
to_chat(toucher, "\red SYSTEM ALERT: CPU cycles slowing down.")
@@ -28,8 +28,8 @@
if(prob(weakness * 100))
if(prob(10))
to_chat(H, pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired."))
- H.drowsyness = min(H.drowsyness + 1 * weakness, 25 * weakness)
- H.eye_blurry = min(H.eye_blurry + 1 * weakness, 25 * weakness)
+ H.AdjustDrowsy(1 * weakness, bound_lower = 0, bound_upper = 25 * weakness)
+ H.AdjustEyeBlurry(1 * weakness, bound_lower = 0, bound_upper = 25 * weakness)
for(var/mob/living/silicon/robot/R in range(src.effectrange,holder))
to_chat(R, "\red SYSTEM ALERT: CPU cycles slowing down.")
return 1
@@ -41,8 +41,8 @@
var/weakness = GetAnomalySusceptibility(H)
if(prob(weakness * 100))
to_chat(H, pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired."))
- H.drowsyness = min(H.drowsyness + rand(5,15) * weakness, 50 * weakness)
- H.eye_blurry = min(H.eye_blurry + rand(5,15) * weakness, 50 * weakness)
+ H.AdjustDrowsy(rand(5,15) * weakness, bound_lower = 0, bound_upper = 50 * weakness)
+ H.AdjustEyeBlurry(rand(5,15) * weakness, bound_lower = 0, bound_upper = 50 * weakness)
for(var/mob/living/silicon/robot/R in range(src.effectrange,holder))
to_chat(R, "\red SYSTEM ALERT: CPU cycles slowing down.")
return 1
diff --git a/code/modules/research/xenoarchaeology/finds/finds_special.dm b/code/modules/research/xenoarchaeology/finds/finds_special.dm
index ce6fb4c2663..8ddcf27593b 100644
--- a/code/modules/research/xenoarchaeology/finds/finds_special.dm
+++ b/code/modules/research/xenoarchaeology/finds/finds_special.dm
@@ -194,7 +194,7 @@
'sound/hallucinations/turn_around1.ogg',\
'sound/hallucinations/turn_around2.ogg',\
), 50, 1, -3)
- M.sleeping = max(M.sleeping,rand(5,10))
+ M.Sleeping(rand(5,10))
src.loc = null
else
processing_objects.Remove(src)
diff --git a/code/modules/surgery/face.dm b/code/modules/surgery/face.dm
index 406c1f83083..6c2f7354b43 100644
--- a/code/modules/surgery/face.dm
+++ b/code/modules/surgery/face.dm
@@ -55,7 +55,7 @@
user.visible_message(" [user]'s hand slips, slicing [target]'s throat wth \the [tool]!" , \
" Your hand slips, slicing [target]'s throat wth \the [tool]!" )
affected.createwound(CUT, 60)
- target.losebreath += 4
+ target.AdjustLoseBreath(4)
return 0
@@ -83,7 +83,7 @@
/datum/surgery_step/face/mend_vocal/fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
user.visible_message(" [user]'s hand slips, clamping [target]'s trachea shut for a moment with \the [tool]!", \
" Your hand slips, clamping [user]'s trachea shut for a moment with \the [tool]!")
- target.losebreath += 4
+ target.AdjustLoseBreath(4)
return 0
/datum/surgery_step/face/fix_face
diff --git a/code/modules/surgery/organs/blood.dm b/code/modules/surgery/organs/blood.dm
index 9034393bfe2..f71e9bff0be 100644
--- a/code/modules/surgery/organs/blood.dm
+++ b/code/modules/surgery/organs/blood.dm
@@ -101,7 +101,7 @@
else
adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.02, 1))
if(prob(5))
- eye_blurry = max(eye_blurry, 6)
+ EyeBlurry(6)
var/word = pick("dizzy","woozy","faint")
to_chat(src, "You feel very [word].")
if(BLOOD_VOLUME_SURVIVE to BLOOD_VOLUME_BAD)
diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm
index bb408f51726..18f0e51b2e2 100644
--- a/code/modules/surgery/organs/organ_internal.dm
+++ b/code/modules/surgery/organs/organ_internal.dm
@@ -307,7 +307,7 @@
owner.drip(10)
if(prob(4))
spawn owner.custom_emote(1, "gasps for air!")
- owner.losebreath += 5
+ owner.AdjustLoseBreath(5)
/obj/item/organ/internal/kidneys
name = "kidneys"
@@ -357,10 +357,10 @@
/obj/item/organ/internal/eyes/surgeryize()
if(!owner)
return
- owner.disabilities &= ~NEARSIGHTED
- owner.disabilities &= ~BLIND
- owner.eye_blurry = 0
- owner.eye_blind = 0
+ owner.CureNearsighted()
+ owner.CureBlind()
+ owner.SetEyeBlurry(0)
+ owner.SetEyeBlind(0)
/obj/item/organ/internal/liver
@@ -493,6 +493,7 @@
slot = "brain_tumor"
health = 3
var/organhonked = 0
+ var/suffering_delay = 900
/obj/item/organ/internal/honktumor/New()
..()
@@ -535,11 +536,11 @@
return
if(organhonked < world.time)
- organhonked = world.time+900
+ organhonked = world.time + suffering_delay
to_chat(owner, "HONK")
- owner.sleeping = 0
- owner.stuttering = 20
- owner.adjustEarDamage(0, 30)
+ owner.SetSleeping(0)
+ owner.Stuttering(20)
+ owner.AdjustEarDeaf(30)
owner.Weaken(3)
owner << 'sound/items/AirHorn.ogg'
if(prob(30))
diff --git a/code/modules/surgery/organs/pain.dm b/code/modules/surgery/organs/pain.dm
index 23d2af69bf3..f0b4b912eaf 100644
--- a/code/modules/surgery/organs/pain.dm
+++ b/code/modules/surgery/organs/pain.dm
@@ -15,8 +15,8 @@ mob/living/carbon/proc/pain(var/partname, var/amount, var/force, var/burning = 0
if(world.time < next_pain_time && !force)
return
if(amount > 10 && istype(src,/mob/living/carbon/human))
- if(src:paralysis)
- src:paralysis = max(0, src:paralysis-round(amount/10))
+ if(paralysis)
+ AdjustParalysis(-round(amount/10))
if(amount > 50 && prob(amount / 5))
src:drop_item()
var/msg
@@ -132,4 +132,4 @@ mob/living/carbon/human/proc/handle_pain()
toxDamageMessage = "Your body aches all over, it's driving you mad."
if(toxDamageMessage && prob(toxMessageProb))
- src.custom_pain(toxDamageMessage, getToxLoss() >= 15)
\ No newline at end of file
+ src.custom_pain(toxDamageMessage, getToxLoss() >= 15)
diff --git a/code/modules/surgery/organs/subtypes/diona.dm b/code/modules/surgery/organs/subtypes/diona.dm
index 0f75fe9f80f..a4b0d8fb92b 100644
--- a/code/modules/surgery/organs/subtypes/diona.dm
+++ b/code/modules/surgery/organs/subtypes/diona.dm
@@ -169,10 +169,10 @@
/obj/item/organ/internal/diona_receptor/surgeryize()
if(!owner)
return
- owner.disabilities &= ~NEARSIGHTED
- owner.disabilities &= ~BLIND
- owner.eye_blurry = 0
- owner.eye_blind = 0
+ owner.CureNearsighted()
+ owner.CureBlind()
+ owner.SetEyeBlurry(0)
+ owner.SetEyeBlind(0)
//TODO:Make absorb rads on insert
diff --git a/code/modules/surgery/organs/subtypes/machine.dm b/code/modules/surgery/organs/subtypes/machine.dm
index 61b2f143f69..0f402a42e5d 100644
--- a/code/modules/surgery/organs/subtypes/machine.dm
+++ b/code/modules/surgery/organs/subtypes/machine.dm
@@ -142,10 +142,10 @@
/obj/item/organ/internal/optical_sensor/surgeryize()
if(!owner)
return
- owner.disabilities &= ~NEARSIGHTED
- owner.disabilities &= ~BLIND
- owner.eye_blurry = 0
- owner.eye_blind = 0
+ owner.CureNearsighted()
+ owner.CureBlind()
+ owner.SetEyeBlurry(0)
+ owner.SetEyeBlind(0)
// Used for an MMI or posibrain being installed into a human.
diff --git a/html/changelogs/AutoChangeLog-pr-5601.yml b/html/changelogs/AutoChangeLog-pr-5601.yml
new file mode 100644
index 00000000000..cd74a767312
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-5601.yml
@@ -0,0 +1,4 @@
+author: Crazylemon
+delete-after: True
+changes:
+ - tweak: "Status effects should work a little more consistently now"
diff --git a/html/changelogs/AutoChangeLog-pr-5826.yml b/html/changelogs/AutoChangeLog-pr-5826.yml
new file mode 100644
index 00000000000..62bc989c620
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-5826.yml
@@ -0,0 +1,4 @@
+author: Twinmold93
+delete-after: True
+changes:
+ - bugfix: "Fixes a runtime issue caused by using the detective's scanner on the space hotel cleaver."
diff --git a/icons/mob/inhands/clothing_lefthand.dmi b/icons/mob/inhands/clothing_lefthand.dmi
index 3fe35fe7651..9aed5172330 100644
Binary files a/icons/mob/inhands/clothing_lefthand.dmi and b/icons/mob/inhands/clothing_lefthand.dmi differ
diff --git a/icons/mob/inhands/clothing_righthand.dmi b/icons/mob/inhands/clothing_righthand.dmi
index 590945e9e15..c0c5dbd8678 100644
Binary files a/icons/mob/inhands/clothing_righthand.dmi and b/icons/mob/inhands/clothing_righthand.dmi differ
diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi
index 95a1a902aa0..568fcce4443 100644
Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ
diff --git a/icons/obj/atmospherics/circulator.dmi b/icons/obj/atmospherics/circulator.dmi
new file mode 100644
index 00000000000..45f7a626ef6
Binary files /dev/null and b/icons/obj/atmospherics/circulator.dmi differ
diff --git a/icons/obj/custom_items.dmi b/icons/obj/custom_items.dmi
index a555009ae6a..5a198ee1e64 100644
Binary files a/icons/obj/custom_items.dmi and b/icons/obj/custom_items.dmi differ
diff --git a/icons/obj/pipe-item.dmi b/icons/obj/pipe-item.dmi
index 34fedaa560f..73d62edfaa8 100644
Binary files a/icons/obj/pipe-item.dmi and b/icons/obj/pipe-item.dmi differ
diff --git a/icons/obj/pipes.dmi b/icons/obj/pipes.dmi
index 45f79d9e66b..99e6e84d185 100644
Binary files a/icons/obj/pipes.dmi and b/icons/obj/pipes.dmi differ
diff --git a/paradise.dme b/paradise.dme
index 17f48fd9dba..ad5db876321 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -1434,9 +1434,11 @@
#include "code\modules\mob\mob_movement.dm"
#include "code\modules\mob\mob_transformation_simple.dm"
#include "code\modules\mob\say.dm"
+#include "code\modules\mob\status_procs.dm"
#include "code\modules\mob\transform_procs.dm"
#include "code\modules\mob\typing_indicator.dm"
#include "code\modules\mob\update_icons.dm"
+#include "code\modules\mob\update_status.dm"
#include "code\modules\mob\camera\camera.dm"
#include "code\modules\mob\dead\death.dm"
#include "code\modules\mob\dead\observer\login.dm"
@@ -1455,6 +1457,9 @@
#include "code\modules\mob\living\login.dm"
#include "code\modules\mob\living\logout.dm"
#include "code\modules\mob\living\say.dm"
+#include "code\modules\mob\living\stat_states.dm"
+#include "code\modules\mob\living\status_procs.dm"
+#include "code\modules\mob\living\update_status.dm"
#include "code\modules\mob\living\carbon\_defines.dm"
#include "code\modules\mob\living\carbon\carbon.dm"
#include "code\modules\mob\living\carbon\carbon_defenses.dm"
@@ -1465,6 +1470,7 @@
#include "code\modules\mob\living\carbon\shock.dm"
#include "code\modules\mob\living\carbon\superheroes.dm"
#include "code\modules\mob\living\carbon\update_icons.dm"
+#include "code\modules\mob\living\carbon\update_status.dm"
#include "code\modules\mob\living\carbon\alien\alien.dm"
#include "code\modules\mob\living\carbon\alien\alien_defenses.dm"
#include "code\modules\mob\living\carbon\alien\death.dm"
@@ -1501,6 +1507,7 @@
#include "code\modules\mob\living\carbon\brain\MMI.dm"
#include "code\modules\mob\living\carbon\brain\posibrain.dm"
#include "code\modules\mob\living\carbon\brain\say.dm"
+#include "code\modules\mob\living\carbon\brain\update_status.dm"
#include "code\modules\mob\living\carbon\human\appearance.dm"
#include "code\modules\mob\living\carbon\human\body_accessories.dm"
#include "code\modules\mob\living\carbon\human\death.dm"
@@ -1558,6 +1565,7 @@
#include "code\modules\mob\living\silicon\ai\login.dm"
#include "code\modules\mob\living\silicon\ai\logout.dm"
#include "code\modules\mob\living\silicon\ai\say.dm"
+#include "code\modules\mob\living\silicon\ai\update_status.dm"
#include "code\modules\mob\living\silicon\ai\freelook\cameranet.dm"
#include "code\modules\mob\living\silicon\ai\freelook\chunk.dm"
#include "code\modules\mob\living\silicon\ai\freelook\eye.dm"
@@ -1574,6 +1582,7 @@
#include "code\modules\mob\living\silicon\pai\say.dm"
#include "code\modules\mob\living\silicon\pai\software.dm"
#include "code\modules\mob\living\silicon\pai\software_modules.dm"
+#include "code\modules\mob\living\silicon\pai\update_status.dm"
#include "code\modules\mob\living\silicon\robot\component.dm"
#include "code\modules\mob\living\silicon\robot\death.dm"
#include "code\modules\mob\living\silicon\robot\emote.dm"
@@ -1588,6 +1597,7 @@
#include "code\modules\mob\living\silicon\robot\robot_items.dm"
#include "code\modules\mob\living\silicon\robot\robot_modules.dm"
#include "code\modules\mob\living\silicon\robot\robot_movement.dm"
+#include "code\modules\mob\living\silicon\robot\update_status.dm"
#include "code\modules\mob\living\silicon\robot\drone\drone.dm"
#include "code\modules\mob\living\silicon\robot\drone\drone_abilities.dm"
#include "code\modules\mob\living\silicon\robot\drone\drone_console.dm"
@@ -1595,6 +1605,7 @@
#include "code\modules\mob\living\silicon\robot\drone\drone_items.dm"
#include "code\modules\mob\living\silicon\robot\drone\drone_manufacturer.dm"
#include "code\modules\mob\living\silicon\robot\drone\drone_say.dm"
+#include "code\modules\mob\living\silicon\robot\drone\update_status.dm"
#include "code\modules\mob\living\simple_animal\constructs.dm"
#include "code\modules\mob\living\simple_animal\corpse.dm"
#include "code\modules\mob\living\simple_animal\parrot.dm"
@@ -1737,7 +1748,6 @@
#include "code\modules\power\cell.dm"
#include "code\modules\power\engine.dm"
#include "code\modules\power\generator.dm"
-#include "code\modules\power\generator_type2.dm"
#include "code\modules\power\gravitygenerator.dm"
#include "code\modules\power\lighting.dm"
#include "code\modules\power\port_gen.dm"