diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 33e8dae8d6..844ce6ef00 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -280,7 +280,7 @@ user.listed_turf = null else user.listed_turf = T - user.client.statpanel = T.name + user.client.statpanel = "Turf" return /mob/proc/TurfAdjacent(var/turf/T) diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 93c2fd57bb..02d85234ed 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -56,7 +56,8 @@ user << "You can't buckle anyone in before the game starts." if(!user.Adjacent(M) || user.restrained() || user.lying || user.stat || istype(user, /mob/living/silicon/pai)) return - + if(M == buckled_mob) + return if(istype(M, /mob/living/carbon/slime)) user << "The [M] is too squishy to buckle in." return diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index f7fa46678b..f360133593 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -320,7 +320,7 @@ qdel(src) /obj/item/device/paicard/see_emote(mob/living/M, text) - if(pai && pai.client) + if(pai && pai.client && !pai.canmove) var/rendered = "[text]" pai.show_message(rendered, 2) ..() diff --git a/code/game/objects/items/weapons/material/kitchen.dm b/code/game/objects/items/weapons/material/kitchen.dm index 6b9cfa7132..6d0504a195 100644 --- a/code/game/objects/items/weapons/material/kitchen.dm +++ b/code/game/objects/items/weapons/material/kitchen.dm @@ -47,7 +47,8 @@ overlays.Cut() return else - ..() + user << "You don't have anything on \the [src]." //if we have help intent and no food scooped up DON'T STAB OURSELVES WITH THE FORK GODDAMNIT + return /obj/item/weapon/material/kitchen/utensil/fork name = "fork" @@ -80,14 +81,14 @@ /obj/item/weapon/material/kitchen/utensil/knife/attack(target as mob, mob/living/user as mob) if ((CLUMSY in user.mutations) && prob(50)) - user << "You accidentally cut yourself with the [src]." + user << "You accidentally cut yourself with \the [src]." user.take_organ_damage(20) return return ..() /obj/item/weapon/material/kitchen/utensil/knife/attack(target as mob, mob/living/user as mob) if ((CLUMSY in user.mutations) && prob(50)) - user << "You somehow managed to cut yourself with the [src]." + user << "You somehow managed to cut yourself with \the [src]." user.take_organ_damage(20) return return ..() @@ -110,7 +111,7 @@ /obj/item/weapon/material/kitchen/rollingpin/attack(mob/living/M as mob, mob/living/user as mob) if ((CLUMSY in user.mutations) && prob(50)) - user << "The [src] slips out of your hand and hits your head." + user << "\The [src] slips out of your hand and hits your head." user.take_organ_damage(10) user.Paralyse(2) return diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 1f25043e89..df25ef150c 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -73,7 +73,7 @@ return ..() /obj/structure/proc/can_climb(var/mob/living/user, post_climb_check=0) - if (!can_touch(user) || !climbable || (!post_climb_check && (user in climbers))) + if (!climbable || !can_touch(user) || (!post_climb_check && (user in climbers))) return 0 if (!user.Adjacent(src)) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 5c65b7f2e5..42edef4c56 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -136,7 +136,7 @@ return 1 if(is_full_window()) return 0 //full tile window, you can't move into it! - if(get_dir(loc, target) == dir) + if(get_dir(loc, target) & dir) return !density else return 1 diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 6bd0da514e..85d1619dcd 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -160,7 +160,6 @@ var/list/ai_verbs_default = list( spawn(5) new /obj/machinery/ai_powersupply(src) - hud_list[HEALTH_HUD] = image('icons/mob/hud.dmi', src, "hudblank") hud_list[STATUS_HUD] = image('icons/mob/hud.dmi', src, "hudblank") hud_list[LIFE_HUD] = image('icons/mob/hud.dmi', src, "hudblank") @@ -202,8 +201,23 @@ var/list/ai_verbs_default = list( /mob/living/silicon/ai/Destroy() ai_list -= src + qdel(eyeobj) - ..() + eyeobj = null + + qdel(psupply) + psupply = null + + qdel(aiMulti) + aiMulti = null + + qdel(aiRadio) + aiRadio = null + + qdel(aiCamera) + aiCamera = null + + return ..() /mob/living/silicon/ai/proc/setup_icon() var/file = file2text("config/custom_sprites.txt") @@ -258,20 +272,22 @@ var/list/ai_verbs_default = list( /obj/machinery/ai_powersupply/New(var/mob/living/silicon/ai/ai=null) powered_ai = ai powered_ai.psupply = src - if(isnull(powered_ai)) - qdel(src) - - loc = powered_ai.loc - use_power(1) // Just incase we need to wake up the power system. + forceMove(powered_ai.loc) ..() + use_power(1) // Just incase we need to wake up the power system. + +/obj/machinery/ai_powersupply/Destroy() + . = ..() + powered_ai = null /obj/machinery/ai_powersupply/process() - if(!powered_ai || powered_ai.stat & DEAD) - qdel() + if(!powered_ai || powered_ai.stat == DEAD) + qdel(src) return if(powered_ai.psupply != src) // For some reason, the AI has different powersupply object. Delete this one, it's no longer needed. qdel(src) + return if(powered_ai.APU_power) use_power = 0 return diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index a82f528fcb..28d6093500 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -674,17 +674,17 @@ if(!TurfAdjacent(listed_turf)) listed_turf = null else - statpanel(listed_turf.name, null, listed_turf) - for(var/atom/A in listed_turf) - if(!A.mouse_opacity) - continue - if(A.invisibility > see_invisible) - continue - if(is_type_in_list(A, shouldnt_see)) - continue - statpanel(listed_turf.name, null, A) + if(statpanel("Turf")) + stat("\icon[listed_turf]", listed_turf.name) + for(var/atom/A in listed_turf) + if(!A.mouse_opacity) + continue + if(A.invisibility > see_invisible) + continue + if(is_type_in_list(A, shouldnt_see)) + continue + stat(A) - sleep(4) //Prevent updating the stat panel for the next .4 seconds, prevents clientside latency from updates // facing verbs /mob/proc/canface() diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 9f4905540b..4595e1f136 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -171,7 +171,9 @@ qdel(src) /obj/structure/reagent_dispensers/fueltank/fire_act(datum/gas_mixture/air, temperature, volume) - if(temperature > T0C+500) + if (modded) + explode() + else if (temperature > T0C+500) explode() return ..() diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index 624f9f11b5..8abf95bf98 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -348,6 +348,8 @@ /obj/machinery/power/supermatter/Bumped(atom/AM as mob|obj) + if(istype(AM, /obj/effect)) + return if(istype(AM, /mob/living)) AM.visible_message("\The [AM] slams into \the [src] inducing a resonance... \his body starts to glow and catch flame before flashing into ash.",\ "You slam into \the [src] as your ears are filled with unearthly ringing. Your last thought is \"Oh, fuck.\"",\