diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 6f38814758a..f88244c0cd8 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -75,8 +75,8 @@ if(hitsound) playsound(loc, hitsound, get_clamped_volume(), 1, -1) - user.lastattacked = M - M.lastattacker = user + M.lastattacker = user.real_name + M.lastattackerckey = user.ckey user.do_attack_animation(M) . = M.attacked_by(src, user, def_zone) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 7d3a73abf24..dadc8bc6e31 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -39,7 +39,6 @@ var/role_alt_title var/datum/job/assigned_job - var/list/kills = list() var/list/datum/objective/objectives = list() var/list/datum/objective/special_verbs = list() var/list/targets = list() diff --git a/code/datums/spells/summonitem.dm b/code/datums/spells/summonitem.dm index 2a8e1d94526..a0c41b57001 100644 --- a/code/datums/spells/summonitem.dm +++ b/code/datums/spells/summonitem.dm @@ -75,8 +75,6 @@ B.transfer_identity(C) C.death() add_attack_logs(target, C, "Magically debrained INTENT: [uppertext(target.a_intent)]")*/ - if(C.stomach_contents && (item_to_retrieve in C.stomach_contents)) - C.stomach_contents -= item_to_retrieve for(var/X in C.bodyparts) var/obj/item/organ/external/part = X if(item_to_retrieve in part.embedded_objects) diff --git a/code/defines/procs/statistics.dm b/code/defines/procs/statistics.dm index 094e4f9ca2b..8f3eeeaa6fa 100644 --- a/code/defines/procs/statistics.dm +++ b/code/defines/procs/statistics.dm @@ -29,8 +29,9 @@ var/laname var/lakey if(H.lastattacker) - laname = sanitizeSQL(H.lastattacker:real_name) - lakey = sanitizeSQL(H.lastattacker:key) + laname = sanitizeSQL(H.lastattacker) + if(H.lastattackerckey) + lakey = sanitizeSQL(H.lastattackerckey) var/sqltime = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss") var/coord = "[H.x], [H.y], [H.z]" // to_chat(world, "INSERT INTO death (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[sqltime]', '[laname]', '[lakey]', '[H.gender]', [H.bruteloss], [H.getFireLoss()], [H.getBrainLoss()], [H.getOxyLoss()])") @@ -64,8 +65,9 @@ var/laname var/lakey if(H.lastattacker) - laname = sanitizeSQL(H.lastattacker:real_name) - lakey = sanitizeSQL(H.lastattacker:key) + laname = sanitizeSQL(H.lastattacker) + if(H.lastattackerckey) + lakey = sanitizeSQL(H.lastattackerckey) var/sqltime = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss") var/coord = "[H.x], [H.y], [H.z]" // to_chat(world, "INSERT INTO death (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[sqltime]', '[laname]', '[lakey]', '[H.gender]', [H.bruteloss], [H.getFireLoss()], [H.brainloss], [H.getOxyLoss()])") diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm index c7ca587b34f..a0519fcbe56 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm @@ -480,8 +480,8 @@ Congratulations! You are now trained for invasive xenobiology research!"} H.update_inv_r_hand() /obj/item/abductor_baton/proc/StunAttack(mob/living/L,mob/living/user) - user.lastattacked = L - L.lastattacker = user + L.lastattacker = user.real_name + L.lastattackerckey = user.ckey L.Stun(7) L.Weaken(7) diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 0da5d8a3a0a..c6f6218e969 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -573,9 +573,10 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective) // /vg/; Vox Inviolate for humans :V /datum/objective/minimize_casualties explanation_text = "Minimise casualties." + /datum/objective/minimize_casualties/check_completion() - if(owner.kills.len>5) return 0 - return 1 + return TRUE + //Vox heist objectives. @@ -781,16 +782,7 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective) explanation_text = "Follow the Inviolate. Minimise death and loss of resources." /datum/objective/heist/inviolate_death/check_completion() - var/vox_allowed_kills = 3 // The number of people the vox can accidently kill. Mostly a counter to people killing themselves if a raider touches them to force fail. - var/vox_total_kills = 0 - - var/datum/game_mode/heist/H = SSticker.mode - for(var/datum/mind/raider in H.raiders) - vox_total_kills += raider.kills.len // Kills are listed in the mind; uses this to calculate vox kills - - if(vox_total_kills > vox_allowed_kills) return 0 - return 1 - + return TRUE // Traders // These objectives have no check_completion, they exist only to tell Sol Traders what to aim for. diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 7dac9de2b9a..9acdcba48de 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -166,10 +166,6 @@ var/mob/M = A if(istype(firer, /mob)) add_attack_logs(firer, M, "Mecha-shot with [src]") - if(!iscarbon(firer)) - M.LAssailant = null - else - M.LAssailant = firer else add_attack_logs(null, M, "Mecha-shot with [src]") if(life <= 0) diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index 8f11f65fe71..45047e97156 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -147,10 +147,6 @@ to_chat(user, "You inject yourself with [src].") add_attack_logs(user, M, attack_log, ATKLOG_ALL) - if(!iscarbon(user)) - M.LAssailant = null - else - M.LAssailant = user inject(M, user) used = TRUE diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 6782057d928..a39050cba47 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -189,8 +189,8 @@ L.apply_effect(STUTTER, stunforce) if(user) - user.lastattacked = L - L.lastattacker = user + L.lastattacker = user.real_name + L.lastattackerckey = user.ckey L.visible_message("[user] has stunned [L] with [src]!", \ "[user] has stunned you with [src]!") add_attack_logs(user, L, "stunned") diff --git a/code/modules/admin/verbs/onlyoneteam.dm b/code/modules/admin/verbs/onlyoneteam.dm index 9575cc5b340..974b65e05d2 100644 --- a/code/modules/admin/verbs/onlyoneteam.dm +++ b/code/modules/admin/verbs/onlyoneteam.dm @@ -73,9 +73,11 @@ ..() if((ishuman(hit_atom))) var/mob/living/carbon/human/H = hit_atom - if(H.r_hand == src) return - if(H.l_hand == src) return - var/mob/A = H.LAssailant + if(H.r_hand == src) + return + if(H.l_hand == src) + return + var/mob/A = thrownby if((H in GLOB.team_alpha) && (A in GLOB.team_alpha)) to_chat(A, "He's on your team!") return @@ -89,4 +91,3 @@ playsound(src, 'sound/items/dodgeball.ogg', 50, 1) visible_message("[H] HAS BEEN ELIMINATED!") H.melt() - return diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index 7d17ac07720..db078675db1 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -278,11 +278,6 @@ if(!UserOverride) add_attack_logs(user, occupant, "Gibbed in [src]", !!occupant.ckey ? ATKLOG_FEW : ATKLOG_ALL) - if(!iscarbon(user)) - occupant.LAssailant = null - else - occupant.LAssailant = user - else //this looks ugly but it's better than a copy-pasted startgibbing proc override occupant.create_attack_log("Was gibbed by an autogibber (\the [src])") add_attack_logs(src, occupant, "gibbed") diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index fec3012529e..58bdb3a9ecc 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -136,14 +136,11 @@ Doesn't work on other aliens/AI.*/ set category = "Alien" if(powerc()) - if(stomach_contents.len) + if(LAZYLEN(stomach_contents)) for(var/mob/M in src) - if(M in stomach_contents) - stomach_contents.Remove(M) - M.forceMove(loc) - //Paralyse(10) - src.visible_message("[src] hurls out the contents of [p_their()] stomach!") - return + LAZYREMOVE(stomach_contents, M) + M.forceMove(drop_location()) + visible_message("[src] hurls out the contents of [p_their()] stomach!") /mob/living/carbon/proc/getPlasma() var/obj/item/organ/internal/xenos/plasmavessel/vessel = get_int_organ(/obj/item/organ/internal/xenos/plasmavessel) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 3aef7135679..78c7d8f47d3 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -22,8 +22,7 @@ return ..() /mob/living/carbon/handle_atom_del(atom/A) - if(A in processing_patches) - processing_patches -= A + LAZYREMOVE(processing_patches, A) return ..() /mob/living/carbon/blob_act(obj/structure/blob/B) @@ -51,41 +50,40 @@ /mob/living/carbon/var/last_stomach_attack //defining this here because no one would look in carbon_defines for it -/mob/living/carbon/relaymove(var/mob/user, direction) - if(user in src.stomach_contents) - if(last_stomach_attack + STOMACH_ATTACK_DELAY > world.time) return +/mob/living/carbon/relaymove(mob/user, direction) + if(LAZYLEN(stomach_contents)) + if(user in stomach_contents) + if(last_stomach_attack + STOMACH_ATTACK_DELAY > world.time) + return - last_stomach_attack = world.time - for(var/mob/M in hearers(4, src)) - if(M.client) - M.show_message(text("You hear something rumbling inside [src]'s stomach..."), 2) - - var/obj/item/I = user.get_active_hand() - if(I && I.force) - var/d = rand(round(I.force / 4), I.force) - - if(istype(src, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = src - var/obj/item/organ/external/organ = H.get_organ("chest") - if(istype(organ)) - if(organ.receive_damage(d, 0)) - H.UpdateDamageIcon() - - H.updatehealth("stomach attack") - - else - src.take_organ_damage(d) - - for(var/mob/M in viewers(user, null)) + last_stomach_attack = world.time + for(var/mob/M in hearers(4, src)) if(M.client) - M.show_message(text("[user] attacks [src]'s stomach wall with the [I.name]!"), 2) - playsound(user.loc, 'sound/effects/attackblob.ogg', 50, 1) + M.show_message(text("You hear something rumbling inside [src]'s stomach..."), 2) - if(prob(src.getBruteLoss() - 50)) - for(var/atom/movable/A in stomach_contents) - A.forceMove(drop_location()) - stomach_contents.Remove(A) - src.gib() + var/obj/item/I = user.get_active_hand() + if(I && I.force) + var/d = rand(round(I.force / 4), I.force) + + if(istype(src, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = src + var/obj/item/organ/external/organ = H.get_organ("chest") + if(istype(organ)) + if(organ.receive_damage(d, 0)) + H.UpdateDamageIcon() + + H.updatehealth("stomach attack") + + else + take_organ_damage(d) + + for(var/mob/M in viewers(user, null)) + if(M.client) + M.show_message(text("[user] attacks [src]'s stomach wall with the [I.name]!"), 2) + playsound(user.loc, 'sound/effects/attackblob.ogg', 50, 1) + + if(prob(getBruteLoss() - 50)) + gib() #undef STOMACH_ATTACK_DELAY @@ -140,9 +138,8 @@ I.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) for(var/mob/M in src) - if(M in src.stomach_contents) - src.stomach_contents.Remove(M) - M.forceMove(get_turf(src)) + LAZYREMOVE(stomach_contents, M) + M.forceMove(drop_location()) visible_message("[M] bursts out of [src]!") /mob/living/carbon/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = FALSE, override = FALSE, tesla_shock = FALSE, illusion = FALSE, stun = TRUE) @@ -1069,10 +1066,6 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven /mob/living/carbon/proc/forceFedAttackLog(var/obj/item/reagent_containers/food/toEat, mob/user) add_attack_logs(user, src, "Fed [toEat]. Reagents: [toEat.reagents.log_list(toEat)]", toEat.reagents.harmless_helper() ? ATKLOG_ALMOSTALL : null) - if(!iscarbon(user)) - LAssailant = null - else - LAssailant = user /*TO DO - If/when stomach organs are introduced, override this at the human level sending the item to the stomach diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index 97ecf4dd08b..667fd86204e 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -1,11 +1,10 @@ /mob/living/carbon gender = MALE pressure_resistance = 15 - var/list/stomach_contents = list() - var/list/processing_patches = list() + var/list/stomach_contents + var/list/processing_patches var/list/internal_organs = list() var/list/internal_organs_slot = list() //Same as above, but stores "slot ID" - "organ" pairs for easy access. - var/antibodies = 0 var/life_tick = 0 // The amount of life ticks that have processed on this mob. diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 6b7a0a2b15d..ef18b04f468 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -32,9 +32,8 @@ E.droplimb(DROPLIMB_SHARP) for(var/mob/M in src) - if(M in stomach_contents) - stomach_contents.Remove(M) - M.forceMove(get_turf(src)) + LAZYREMOVE(stomach_contents, M) + M.forceMove(drop_location()) visible_message("[M] bursts out of [src]!") if(!isSynthetic()) @@ -106,11 +105,6 @@ //Handle species-specific deaths. dna.species.handle_death(gibbed, src) - if(ishuman(LAssailant)) - var/mob/living/carbon/human/H=LAssailant - if(H.mind) - H.mind.kills += "[key_name(src)]" - if(SSticker && SSticker.mode) // log_world("k") sql_report_death(src) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index a849235af64..e3c7dc58a41 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -387,11 +387,6 @@ emp_act to_chat(user, "You hack off a chunk of meat from [name]") if(!meatleft) add_attack_logs(user, src, "Chopped up into meat") - if(!iscarbon(user)) - LAssailant = null - else - LAssailant = user - qdel(src) var/obj/item/organ/external/affecting = get_organ(ran_zone(user.zone_selected)) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 60b6da987dd..3d365afa940 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -37,7 +37,6 @@ GLOBAL_DATUM_INIT(default_martial_art, /datum/martial_art, new()) var/obj/item/s_store = null var/icon/stand_icon = null - var/icon/lying_icon = null var/voice = "" //Instead of new say code calling GetVoice() over and over and over, we're just going to ask this variable, which gets updated in Life() diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm index 21695e25e78..2114299f939 100644 --- a/code/modules/mob/living/carbon/human/species/_species.dm +++ b/code/modules/mob/living/carbon/human/species/_species.dm @@ -352,21 +352,6 @@ if(organ.receive_damage(damage, 0, sharp, used_weapon)) H.UpdateDamageIcon() - if(H.LAssailant && ishuman(H.LAssailant)) //superheros still get the comical hit markers - var/mob/living/carbon/human/A = H.LAssailant - if(A.mind && (A.mind in (SSticker.mode.superheroes) || SSticker.mode.supervillains || SSticker.mode.greyshirts)) - var/list/attack_bubble_recipients = list() - var/mob/living/user - for(var/mob/O in viewers(user, src)) - if(O.client && O.has_vision(information_only=TRUE)) - attack_bubble_recipients.Add(O.client) - spawn(0) - var/image/dmgIcon = image('icons/effects/hit_blips.dmi', src, "dmg[rand(1,2)]",MOB_LAYER+1) - dmgIcon.pixel_x = (!H.lying) ? rand(-3,3) : rand(-11,12) - dmgIcon.pixel_y = (!H.lying) ? rand(-11,9) : rand(-10,1) - flick_overlay(dmgIcon, attack_bubble_recipients, 9) - - if(BURN) H.damageoverlaytemp = 20 damage = damage * burn_mod @@ -443,6 +428,9 @@ else target.LAssailant = user + target.lastattacker = user.real_name + target.lastattackerckey = user.ckey + var/damage = rand(user.dna.species.punchdamagelow, user.dna.species.punchdamagehigh) damage += attack.damage if(!damage) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index a2df4b30e9e..c11eaca5293 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -11,6 +11,10 @@ if(stat != DEAD) handle_organs() + //stuff in the stomach + if(LAZYLEN(stomach_contents)) + handle_stomach(times_fired) + . = ..() if(QDELETED(src)) @@ -254,14 +258,15 @@ if(times_fired % 20==2) //dry off a bit once every 20 ticks or so wetlevel = max(wetlevel - 1,0) -/mob/living/carbon/handle_stomach(times_fired) - for(var/mob/living/M in stomach_contents) +/mob/living/carbon/proc/handle_stomach(times_fired) + for(var/thing in stomach_contents) + var/mob/living/M = thing if(M.loc != src) - stomach_contents.Remove(M) + LAZYREMOVE(stomach_contents, M) continue if(stat != DEAD) if(M.stat == DEAD) - stomach_contents.Remove(M) + LAZYREMOVE(stomach_contents, M) qdel(M) continue if(times_fired % 3 == 1) @@ -476,7 +481,7 @@ P.reagents.remove_any(applied_amount * 0.5) else if(!P.reagents || P.reagents.total_volume <= 0) - processing_patches -= P + LAZYREMOVE(processing_patches, P) qdel(P) /mob/living/carbon/proc/handle_germs() diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 6d020ccdad1..3062ef461f9 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -58,9 +58,6 @@ handle_fire() - //stuff in the stomach - handle_stomach(times_fired) - update_gravity(mob_has_gravity()) if(pulling) @@ -117,9 +114,6 @@ /mob/living/proc/handle_environment(datum/gas_mixture/environment) return -/mob/living/proc/handle_stomach(times_fired) - return - /mob/living/proc/update_pulling() if(incapacitated()) stop_pulling() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 9f768ffc76d..f3d23ca3f51 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -682,9 +682,6 @@ *///////////////////// /mob/living/proc/resist_grab() var/resisting = 0 - for(var/obj/O in requests) - qdel(O) - resisting++ for(var/X in grabbed_by) var/obj/item/grab/G = X resisting++ diff --git a/code/modules/mob/living/simple_animal/hostile/headslug.dm b/code/modules/mob/living/simple_animal/hostile/headslug.dm index 801514a3256..6800598fc7f 100644 --- a/code/modules/mob/living/simple_animal/hostile/headslug.dm +++ b/code/modules/mob/living/simple_animal/hostile/headslug.dm @@ -72,7 +72,7 @@ /obj/item/organ/internal/body_egg/changeling_egg/proc/Pop() var/mob/living/carbon/human/monkey/M = new(owner) - owner.stomach_contents += M + LAZYADD(owner.stomach_contents, M) for(var/obj/item/organ/internal/I in src) I.insert(M, 1) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 02d6420dfe5..2796a1f40c9 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -20,6 +20,7 @@ AA.viewers -= src viewing_alternate_appearances = null logs.Cut() + LAssailant = null return ..() /mob/Initialize() diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index dc77610b97e..1477be47d89 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -31,8 +31,8 @@ var/use_me = 1 //Allows all mobs to use the me verb by default, will have to manually specify they cannot var/damageoverlaytemp = 0 var/computer_id = null - var/lastattacker = null - var/lastattacked = null + var/lastattacker = null // real name of the person doing the attacking + var/lastattackerckey = null // their ckey var/list/attack_log_old = list( ) var/list/debug_log = null @@ -50,7 +50,6 @@ var/med_record = "" var/sec_record = "" var/gen_record = "" - var/bhunger = 0 //Carbon var/lying = 0 var/lying_prev = 0 var/lastpuke = 0 @@ -61,8 +60,7 @@ var/emote_type = 1 // Define emote default type, 1 for seen emotes, 2 for heard emotes var/name_archive //For admin things like possession - var/timeofdeath = 0.0//Living - + var/timeofdeath = 0 //Living var/bodytemperature = 310.055 //98.7 F var/flying = 0 @@ -71,22 +69,22 @@ var/hunger_drain = HUNGER_FACTOR // how quickly the mob gets hungry; largely utilized by species. var/overeatduration = 0 // How long this guy is overeating //Carbon - var/intent = null//Living + var/intent = null //Living var/shakecamera = 0 - var/a_intent = INTENT_HELP//Living - var/m_intent = MOVE_INTENT_RUN//Living + var/a_intent = INTENT_HELP //Living + var/m_intent = MOVE_INTENT_RUN //Living var/lastKnownIP = null /// movable atoms buckled to this mob - var/atom/movable/buckled = null//Living + var/atom/movable/buckled = null //Living /// movable atom we are buckled to var/atom/movable/buckling - var/obj/item/l_hand = null//Living - var/obj/item/r_hand = null//Living - var/obj/item/back = null//Human/Monkey - var/obj/item/tank/internal = null//Human/Monkey - var/obj/item/storage/s_active = null//Carbon - var/obj/item/clothing/mask/wear_mask = null//Carbon + var/obj/item/l_hand = null //Living + var/obj/item/r_hand = null //Living + var/obj/item/back = null //Human + var/obj/item/tank/internal = null //Human + var/obj/item/storage/s_active = null //Carbon + var/obj/item/clothing/mask/wear_mask = null //Carbon var/datum/hud/hud_used = null @@ -95,7 +93,6 @@ var/research_scanner = 0 //For research scanner equipped mobs. Enable to show research data when examining. var/list/grabbed_by = list() - var/list/requests = list() var/lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE var/list/mapobjs = list() @@ -103,9 +100,9 @@ var/emote_cd = 0 // Used to supress emote spamming. 1 if on CD, 2 if disabled by admin (manually set), else 0 - var/job = null//Living + var/job = null //Living - var/datum/dna/dna = null//Carbon + var/datum/dna/dna = null //Carbon var/radiation = 0 //Carbon var/list/mutations = list() //Carbon -- Doohl @@ -179,8 +176,6 @@ var/turf/listed_turf = null //the current turf being examined in the stat panel var/list/shouldnt_see = list() //list of objects that this mob shouldn't see in the stat panel. this silliness is needed because of AI alt+click and cult blood runes - var/kills = 0 - var/stance_damage = 0 //Whether this mob's ability to stand has been affected var/list/active_genes = list() diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 640ffb09d4f..64444864804 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -408,7 +408,7 @@ add_attack_logs(attacker, affecting, "Devoured") affecting.forceMove(user) - attacker.stomach_contents.Add(affecting) + LAZYADD(attacker.stomach_contents, affecting) qdel(src) /obj/item/grab/proc/checkvalid(var/mob/attacker, var/mob/prey) //does all the checking for the attack proc to see if a mob can eat another with the grab diff --git a/code/modules/projectiles/guns/dartgun.dm b/code/modules/projectiles/guns/dartgun.dm index 0a50b844f4a..8c46e542b4a 100644 --- a/code/modules/projectiles/guns/dartgun.dm +++ b/code/modules/projectiles/guns/dartgun.dm @@ -175,11 +175,6 @@ for(var/datum/reagent/A in D.reagents.reagent_list) R += A.id + " (" R += num2text(A.volume) + ")," - if(istype(M, /mob)) - if(!iscarbon(user)) - M.LAssailant = null - else - M.LAssailant = user add_attack_logs(user, M, "Shot with dartgun containing [R]") diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index 6012f480072..8338253fc6c 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -97,9 +97,7 @@ var/contained = injected.name var/trans = R.trans_to(M, amount_per_transfer_from_this) add_attack_logs(user, M, "Injected with [name] containing [contained], transfered [trans] units", injected.harmless ? ATKLOG_ALMOSTALL : null) - M.LAssailant = user to_chat(user, "[trans] units injected. [R.total_volume] units remaining.") - return /obj/item/reagent_containers/borghypo/attack_self(mob/user) playsound(loc, 'sound/effects/pop.ogg', 50, 0) //Change the mode diff --git a/code/modules/reagents/reagent_containers/glass_containers.dm b/code/modules/reagents/reagent_containers/glass_containers.dm index 6f32411a261..1e42899111b 100644 --- a/code/modules/reagents/reagent_containers/glass_containers.dm +++ b/code/modules/reagents/reagent_containers/glass_containers.dm @@ -43,10 +43,6 @@ M.visible_message("[user] splashes the contents of [src] onto [M]!", \ "[user] splashes the contents of [src] onto [M]!") add_attack_logs(user, M, "Splashed with [name] containing [contained]", !!M.ckey ? null : ATKLOG_ALL) - if(!iscarbon(user)) - M.LAssailant = null - else - M.LAssailant = user reagents.reaction(M, REAGENT_TOUCH) reagents.clear_reagents() diff --git a/code/modules/reagents/reagent_containers/patch.dm b/code/modules/reagents/reagent_containers/patch.dm index 582e157004c..17112901b29 100644 --- a/code/modules/reagents/reagent_containers/patch.dm +++ b/code/modules/reagents/reagent_containers/patch.dm @@ -20,7 +20,7 @@ if(M.eat(src, user)) user.drop_item() forceMove(M) - M.processing_patches += src + LAZYADD(M.processing_patches, src) return TRUE return FALSE diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 7584a9cbfe3..13d88100042 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -207,7 +207,10 @@ else if(target != user && !user.restrained() && !user.stat && !user.IsWeakened() && !user.stunned && !user.paralysis) msg = "[user.name] stuffs [target.name] into the [src]!" to_chat(user, "You stuff [target.name] into the [src]!") - + if(!iscarbon(user)) + target.LAssailant = null + else + target.LAssailant = user add_attack_logs(user, target, "Disposal'ed", !!target.ckey ? null : ATKLOG_ALL) else return diff --git a/icons/effects/hit_blips.dmi b/icons/effects/hit_blips.dmi deleted file mode 100644 index 49bb109799b..00000000000 Binary files a/icons/effects/hit_blips.dmi and /dev/null differ