diff --git a/.travis.yml b/.travis.yml index 207b10e9e30..eaf5ce5ac75 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ sudo: false env: BYOND_MAJOR="508" BYOND_MINOR="1293" - MACRO_COUNT=1061 + MACRO_COUNT=1060 cache: directories: diff --git a/baystation12.dme b/baystation12.dme index aabe9c98a92..255ca50d15a 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -669,7 +669,6 @@ #include "code\game\objects\items\weapons\gift_wrappaper.dm" #include "code\game\objects\items\weapons\handcuffs.dm" #include "code\game\objects\items\weapons\improvised_components.dm" -#include "code\game\objects\items\weapons\kitchen.dm" #include "code\game\objects\items\weapons\manuals.dm" #include "code\game\objects\items\weapons\mop.dm" #include "code\game\objects\items\weapons\paint.dm" diff --git a/code/__defines/machinery.dm b/code/__defines/machinery.dm index 53929f0713d..830ad11bcef 100644 --- a/code/__defines/machinery.dm +++ b/code/__defines/machinery.dm @@ -87,7 +87,7 @@ var/list/restricted_camera_networks = list(NETWORK_ERT,NETWORK_MERCENARY,"Secret // Will not bother pumping or filtering if the gas source as fewer than this amount of moles, to help with performance. #define MINIMUM_MOLES_TO_PUMP 0.01 -#define MINIMUM_MOLES_TO_FILTER 0.1 +#define MINIMUM_MOLES_TO_FILTER 0.04 // The flow rate/effectiveness of various atmos devices is limited by their internal volume, // so for many atmos devices these will control maximum flow rates in L/s. diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 42d815205ac..b4368d891b8 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -269,7 +269,7 @@ user.listed_turf = null else user.listed_turf = T - user.client.statpanel = T.name + user.client.statpanel = "Turf" return 1 /mob/proc/TurfAdjacent(var/turf/T) diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 93c2fd57bbb..02d85234ed7 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 67516404fd7..5c74179f571 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 = "" pai.show_message(rendered, 2) ..() diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/code/game/objects/items/weapons/material/kitchen.dm b/code/game/objects/items/weapons/material/kitchen.dm index 59ca1960d52..4b605c10329 100644 --- a/code/game/objects/items/weapons/material/kitchen.dm +++ b/code/game/objects/items/weapons/material/kitchen.dm @@ -34,20 +34,23 @@ else return ..() - if(!M.can_eat(src)) - return - if (reagents.total_volume > 0) reagents.trans_to_mob(M, reagents.total_volume, CHEM_INGEST) if(M == user) + if(!M.can_eat(loaded)) + return M.visible_message("\The [user] eats some [loaded] from \the [src].") else + user.visible_message("\The [user] begins to feed \the [M]!") + if(!(M.can_force_feed(user, loaded) && do_mob(user, M, 5 SECONDS))) + return M.visible_message("\The [user] feeds some [loaded] to \the [M] with \the [src].") playsound(M.loc,'sound/items/eatfood.ogg', rand(10,40), 1) 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 + return /obj/item/weapon/material/kitchen/utensil/fork name = "fork" @@ -91,7 +94,7 @@ /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 ..() @@ -114,7 +117,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.drop_from_inventory(src) user.take_organ_damage(10) user.Paralyse(2) diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 9fc2526b78d..0fc33344b80 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -70,7 +70,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 110d4c28f57..07d32e100b0 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -135,7 +135,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/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 12f76e69743..39d8842657c 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -406,7 +406,7 @@ safe_pressure_min *= 1.25 var/safe_exhaled_max = 10 - var/safe_toxins_max = 0.005 + var/safe_toxins_max = 0.2 var/SA_para_min = 1 var/SA_sleep_min = 5 var/inhaled_gas_used = 0 diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 430ecd22203..8654d78bafb 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -165,7 +165,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") @@ -213,8 +212,22 @@ var/list/ai_verbs_default = list( aiRadio = null 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() @@ -270,20 +283,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 5d693bd75c1..054afb2ade1 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -156,8 +156,13 @@ /mob/proc/buckled() // Preliminary work for a future buckle rewrite, // where one might be fully restrained (like an elecrical chair), or merely secured (shuttle chair, keeping you safe but not otherwise restrained from acting) - return buckled ? FULLY_BUCKLED : UNBUCKLED + if(!buckled) + return UNBUCKLED + return restrained() ? FULLY_BUCKLED : PARTIALLY_BUCKLED +/mob/proc/is_physically_disabled() + return incapacitated(INCAPACITATION_DISABLED) + /mob/proc/incapacitated(var/incapacitation_flags = INCAPACITATION_DEFAULT) if ((incapacitation_flags & INCAPACITATION_DISABLED) && (stat || paralysis || stunned || weakened || resting || sleeping || (status_flags & FAKEDEATH))) return 1 @@ -697,17 +702,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() @@ -733,7 +738,7 @@ else if(istype(buckled, /obj/vehicle)) var/obj/vehicle/V = buckled - if(incapacitated(INCAPACITATION_DISABLED)) + if(is_physically_disabled()) lying = 1 canmove = 0 pixel_y = V.mob_offset_y - 5 diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index f52d905fee5..49b106a5343 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -163,7 +163,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 e7e66f7558c..4e80282daa7 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -349,6 +349,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.\"",\ diff --git a/html/changelog.html b/html/changelog.html index 5584d64f024..c1e81f18459 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,16 @@ -->