diff --git a/code/game/machinery/computer/teleporter.dm b/code/game/machinery/computer/teleporter.dm index 9f9791beec..74e640ae51 100644 --- a/code/game/machinery/computer/teleporter.dm +++ b/code/game/machinery/computer/teleporter.dm @@ -166,10 +166,10 @@ L[avoid_assoc_duplicate_keys(A.name, areaindex)] = R for(var/obj/item/implant/tracking/I in GLOB.tracked_implants) - if(!I.imp_in || !ismob(I.loc)) + if(!I.imp_in || !isliving(I.loc)) continue else - var/mob/M = I.loc + var/mob/living/M = I.loc if(M.stat == DEAD) if(M.timeofdeath + 6000 < world.time) continue diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm index c3022a7758..44c44281c6 100644 --- a/code/game/objects/items/teleportation.dm +++ b/code/game/objects/items/teleportation.dm @@ -84,10 +84,10 @@ Frequency: src.temp += "Extranneous Signals:
" for (var/obj/item/implant/tracking/W in GLOB.tracked_implants) - if (!W.imp_in || !ismob(W.loc)) + if (!W.imp_in || !isliving(W.loc)) continue else - var/mob/M = W.loc + var/mob/living/M = W.loc if (M.stat == DEAD) if (M.timeofdeath + 6000 < world.time) continue diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index d601fde492..976aae894f 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -3,6 +3,7 @@ pressure_resistance = 15 possible_a_intents = list(INTENT_HELP, INTENT_HARM) hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD,GLAND_HUD) + has_limbs = 1 var/list/stomach_contents = list() var/list/internal_organs = list() //List of /obj/item/organ in the mob. They don't go in the contents for some reason I don't want to know. var/list/internal_organs_slot= list() //Same as above, but stores "slot ID" - "organ" pairs for easy access. @@ -33,7 +34,6 @@ var/co2overloadtime = null var/temperature_resistance = T0C+75 - has_limbs = 1 var/obj/item/reagent_containers/food/snacks/meat/slab/type_of_meat = /obj/item/reagent_containers/food/snacks/meat/slab var/gib_type = /obj/effect/decal/cleanable/blood/gibs @@ -57,3 +57,5 @@ var/obj/halitem var/hal_screwyhud = SCREWYHUD_NONE var/next_hallucination = 0 + var/cpr_time = 1 //CPR cooldown. + var/damageoverlaytemp = 0 diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 716373061d..7c4d12aaa1 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -2,6 +2,8 @@ hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD,ANTAG_HUD,GLAND_HUD) possible_a_intents = list(INTENT_HELP, INTENT_DISARM, INTENT_GRAB, INTENT_HARM) pressure_resistance = 25 + can_buckle = TRUE + buckle_lying = FALSE //Hair colour and style var/hair_color = "000" var/hair_style = "Bald" @@ -43,8 +45,7 @@ var/drunkenness = 0 //Overall drunkenness - check handle_alcohol() in life.dm for effects var/datum/personal_crafting/handcrafting - can_buckle = TRUE - buckle_lying = FALSE var/creamed = FALSE //to use with creampie overlays var/static/list/can_ride_typecache = typecacheof(list(/mob/living/carbon/human, /mob/living/simple_animal/slime, /mob/living/simple_animal/parrot)) + var/lastpuke = 0 diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 904e9b9c21..471d29a361 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -5,6 +5,10 @@ hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD) pressure_resistance = 10 + var/resize = 1 //Badminnery resize + var/lastattacker = null + var/lastattackerckey = null + //Health and life related vars var/maxHealth = 100 //Maximum health that should be possible. var/health = 100 //A mob's health @@ -17,10 +21,12 @@ var/cloneloss = 0 //Damage caused by being cloned or ejected from the cloner early. slimes also deal cloneloss damage to victims var/staminaloss = 0 //Stamina damage, or exhaustion. You recover it slowly naturally, and are knocked down if it gets too high. Holodeck and hallucinations deal this. + var/confused = 0 //Makes the mob move in random directions. 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. + var/timeofdeath = 0 //Allows mobs to move through dense areas without restriction. For instance, in space or out of holder objects. var/incorporeal_move = FALSE //FALSE is off, INCORPOREAL_MOVE_BASIC is normal, INCORPOREAL_MOVE_SHADOW is for ninjas @@ -69,7 +75,16 @@ var/blood_volume = 0 //how much blood the mob has var/obj/effect/proc_holder/ranged_ability //Any ranged ability the mob has, as a click override + var/see_override = 0 //0 for no override, sets see_invisible = see_override in silicon & carbon life process via update_sight() + var/list/status_effects //a list of all status effects the mob has + var/druggy = 0 + + //Speech + var/stuttering = 0 + var/slurring = 0 + var/cultslurring = 0 + var/derpspeech = 0 var/list/implants = null @@ -83,3 +98,7 @@ var/registered_z var/can_be_held = FALSE //whether this can be picked up and held. + + var/radiation = 0 //If the mob is irradiated. + var/ventcrawl_layer = PIPING_LAYER_DEFAULT + var/losebreath = 0 diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 536ee125e0..e9eabdfb98 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -6,6 +6,7 @@ flags_1 = HEAR_1 hud_possible = list(ANTAG_HUD) pressure_resistance = 8 + mouse_drag_pointer = MOUSE_ACTIVE_POINTER var/lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE var/datum/mind/mind var/list/datum/action/actions = list() @@ -22,10 +23,7 @@ */ var/zone_selected = null - var/damageoverlaytemp = 0 var/computer_id = null - var/lastattacker = null - var/lastattackerckey = null var/list/logging = list(INDIVIDUAL_ATTACK_LOG, INDIVIDUAL_SAY_LOG, INDIVIDUAL_EMOTE_LOG, INDIVIDUAL_OOC_LOG) var/obj/machinery/machine = null var/other_mobs = null @@ -35,25 +33,15 @@ var/notransform = null //Carbon var/eye_blind = 0 //Carbon var/eye_blurry = 0 //Carbon - var/stuttering = 0 //Carbon - var/slurring = 0 //Carbon - var/cultslurring = 0 //Carbon - var/derpspeech = 0 //Carbon var/real_name = null var/spacewalk = FALSE - var/druggy = 0 //Carbon - var/confused = 0 //Carbon var/resting = 0 //Carbon var/lying = 0 var/lying_prev = 0 var/canmove = 1 - var/lastpuke = 0 var/name_archive //For admin things like possession - var/timeofdeath = 0//Living - var/cpr_time = 1//Carbon - var/bodytemperature = BODYTEMP_NORMAL //310.15K / 98.6F var/drowsyness = 0//Carbon var/dizziness = 0//Carbon @@ -62,7 +50,6 @@ var/satiety = 0//Carbon var/overeatduration = 0 // How long this guy is overeating //Carbon - var/losebreath = 0//Carbon var/a_intent = INTENT_HELP//Living var/list/possible_a_intents = null//Living var/m_intent = MOVE_INTENT_RUN//Living @@ -77,8 +64,6 @@ var/obj/item/storage/s_active = null//Carbon - var/see_override = 0 //0 for no override, sets see_invisible = see_override in mob life process - var/datum/hud/hud_used = null var/research_scanner = 0 //For research scanner equipped mobs. Enable to show research data when examining. @@ -91,10 +76,13 @@ var/job = null//Living +<<<<<<< HEAD var/radiation = 0//Carbon var/voice_name = "unidentifiable voice" +======= +>>>>>>> 3f10f29... Shifts vars off /mob and to the correct subtype (#34773) var/list/faction = list("neutral") //A list of factions that this mob is currently in, for hostile mob targetting, amongst other things var/move_on_shuttle = 1 // Can move on the shuttle. @@ -110,9 +98,6 @@ var/list/viruses = list() // list of all diseases in a mob var/list/resistances = list() - mouse_drag_pointer = MOUSE_ACTIVE_POINTER - - var/status_flags = CANSTUN|CANKNOCKDOWN|CANUNCONSCIOUS|CANPUSH //bitflags defining which status effects can be inflicted (replaces canknockdown, canstun, etc) var/digitalcamo = 0 // Can they be tracked by the AI? @@ -127,12 +112,8 @@ var/turf/listed_turf = null //the current turf being examined in the stat panel - var/resize = 1 //Badminnery resize - var/list/observers = null //The list of people observing this mob. var/list/progressbars = null //for stacking do_after bars var/list/mousemove_intercept_objects - - var/ventcrawl_layer = PIPING_LAYER_DEFAULT diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 0b770888ec..17742e9089 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -89,17 +89,17 @@ move_delay = world.time var/oldloc = mob.loc - if(mob.confused) + if(L.confused) var/newdir = 0 - if(mob.confused > 40) + if(L.confused > 40) newdir = pick(GLOB.alldirs) - else if(prob(mob.confused * 1.5)) + else if(prob(L.confused * 1.5)) newdir = angle2dir(dir2angle(direct) + pick(90, -90)) - else if(prob(mob.confused * 3)) + else if(prob(L.confused * 3)) newdir = angle2dir(dir2angle(direct) + pick(45, -45)) if(newdir) direct = newdir - n = get_step(mob, direct) + n = get_step(L, direct) . = ..() diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index fa996b0bc0..0823d64bf1 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -244,8 +244,10 @@ toxpwr = 1 /datum/reagent/toxin/spore/on_mob_life(mob/living/M) - M.damageoverlaytemp = 60 - M.update_damage_hud() + if(iscarbon(M)) + var/mob/living/carbon/C = M + C.damageoverlaytemp = 60 + C.update_damage_hud() M.blur_eyes(3) return ..()