diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm
index d91dd5b7c8..9877f5b259 100644
--- a/_maps/map_files/BoxStation/BoxStation.dmm
+++ b/_maps/map_files/BoxStation/BoxStation.dmm
@@ -13347,7 +13347,6 @@
pixel_y = 32
},
/obj/structure/sink{
- dir = 1;
pixel_y = 25
},
/obj/machinery/button/door{
@@ -14233,7 +14232,6 @@
pixel_y = 32
},
/obj/structure/sink{
- dir = 1;
pixel_y = 25
},
/obj/machinery/button/door{
@@ -21718,7 +21716,6 @@
pixel_y = 32
},
/obj/structure/sink{
- dir = 1;
pixel_y = 25
},
/obj/machinery/button/door{
@@ -53437,6 +53434,7 @@
"dfh" = (
/obj/machinery/power/apc{
areastring = "/area/science/circuit";
+ dir = 4;
name = "Circuitry Lab APC";
pixel_x = 30
},
@@ -54387,6 +54385,7 @@
/obj/structure/chair/office/dark{
dir = 1
},
+/obj/effect/landmark/start/atmospheric_technician,
/turf/open/floor/plasteel,
/area/engine/atmos)
"fMp" = (
@@ -54776,7 +54775,6 @@
dir = 8
},
/obj/structure/sink{
- dir = 1;
pixel_y = 25
},
/obj/structure/mirror{
@@ -57075,6 +57073,7 @@
dir = 4;
pixel_y = 5
},
+/obj/item/clothing/head/hardhat/cakehat,
/turf/open/floor/wood,
/area/crew_quarters/bar)
"oby" = (
@@ -57198,7 +57197,6 @@
dir = 8
},
/obj/structure/sink{
- dir = 1;
pixel_y = 25
},
/obj/structure/mirror{
@@ -57847,7 +57845,6 @@
pixel_y = 32
},
/obj/structure/sink{
- dir = 1;
pixel_y = 25
},
/turf/open/floor/mineral/titanium/blue,
@@ -57910,7 +57907,6 @@
pixel_y = 32
},
/obj/structure/sink{
- dir = 1;
pixel_y = 25
},
/obj/machinery/light/small{
@@ -60673,7 +60669,6 @@
pixel_y = 32
},
/obj/structure/sink{
- dir = 1;
pixel_y = 25
},
/obj/machinery/button/door{
diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm
index bf8c332cf0..fbe5b954ff 100644
--- a/_maps/map_files/KiloStation/KiloStation.dmm
+++ b/_maps/map_files/KiloStation/KiloStation.dmm
@@ -30475,6 +30475,7 @@
/obj/machinery/light{
dir = 1
},
+/obj/machinery/airalarm/directional/north,
/turf/open/floor/plasteel/dark,
/area/science/research)
"aXx" = (
@@ -57345,9 +57346,7 @@
name = "landing marker";
picked_color = "Burgundy"
},
-/turf/open/floor/plating/airless{
- initial_gas_mix = "o2=14;n2=23;TEMP=300"
- },
+/turf/open/floor/plating/airless,
/area/hallway/secondary/entry)
"bOe" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{
@@ -58565,9 +58564,7 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/airless{
- initial_gas_mix = "o2=14;n2=23;TEMP=300"
- },
+/turf/open/floor/plating/airless,
/area/hallway/secondary/entry)
"bQb" = (
/obj/structure/flora/rock,
@@ -58930,7 +58927,7 @@
dir = 8
},
/obj/machinery/power/apc{
- areastring = "/area/janitor";
+ areastring = "/area/vacant_room/commissary";
dir = 4;
name = "Vacant Commissary APC";
pixel_x = 27;
@@ -61285,9 +61282,7 @@
name = "landing marker";
picked_color = "Burgundy"
},
-/turf/open/floor/plating/airless{
- initial_gas_mix = "o2=14;n2=23;TEMP=300"
- },
+/turf/open/floor/plating/airless,
/area/hallway/secondary/entry)
"bUk" = (
/obj/effect/turf_decal/tile/red,
@@ -61567,9 +61562,7 @@
/turf/closed/wall,
/area/engine/atmos)
"bUN" = (
-/turf/open/floor/plating/airless{
- initial_gas_mix = "o2=14;n2=23;TEMP=300"
- },
+/turf/open/floor/plating/airless,
/area/hallway/secondary/entry)
"bUP" = (
/obj/machinery/door/airlock/external{
@@ -67994,9 +67987,7 @@
name = "landing marker";
picked_color = "Burgundy"
},
-/turf/open/floor/plating/airless{
- initial_gas_mix = "o2=14;n2=23;TEMP=300"
- },
+/turf/open/floor/plating/airless,
/area/hallway/secondary/entry)
"ceV" = (
/obj/effect/turf_decal/tile/yellow{
@@ -68021,18 +68012,14 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/airless{
- initial_gas_mix = "o2=14;n2=23;TEMP=300"
- },
+/turf/open/floor/plating/airless,
/area/hallway/secondary/entry)
"ceX" = (
/obj/machinery/light{
dir = 8
},
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/airless{
- initial_gas_mix = "o2=14;n2=23;TEMP=300"
- },
+/turf/open/floor/plating/airless,
/area/hallway/secondary/entry)
"ceY" = (
/obj/machinery/airalarm{
@@ -68880,9 +68867,7 @@
/area/engine/engineering)
"cgI" = (
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/airless{
- initial_gas_mix = "o2=14;n2=23;TEMP=300"
- },
+/turf/open/floor/plating/airless,
/area/hallway/secondary/entry)
"cgJ" = (
/obj/machinery/door/poddoor/preopen,
@@ -80506,9 +80491,7 @@
/area/maintenance/fore)
"cDp" = (
/obj/structure/lattice/catwalk,
-/turf/open/floor/plating/airless{
- initial_gas_mix = "o2=14;n2=23;TEMP=300"
- },
+/turf/open/floor/plating/airless,
/area/hallway/secondary/entry)
"cDq" = (
/obj/machinery/door/airlock/maintenance{
@@ -80896,9 +80879,6 @@
pixel_x = 4;
pixel_y = 4
},
-/obj/item/storage/pill_bottle/dice{
- pixel_x = -4
- },
/obj/item/pen/red{
pixel_x = 4;
pixel_y = 4
@@ -84920,9 +84900,7 @@
"jAT" = (
/obj/structure/lattice/catwalk,
/obj/machinery/light,
-/turf/open/floor/plating/airless{
- initial_gas_mix = "o2=14;n2=23;TEMP=300"
- },
+/turf/open/floor/plating/airless,
/area/hallway/secondary/entry)
"jHJ" = (
/obj/machinery/atmospherics/pipe/simple/general/visible{
@@ -85370,9 +85348,7 @@
"rNm" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/lattice/catwalk,
-/turf/open/floor/plating/airless{
- initial_gas_mix = "o2=14;n2=23;TEMP=300"
- },
+/turf/open/floor/plating/airless,
/area/hallway/secondary/entry)
"swG" = (
/obj/item/reagent_containers/food/drinks/drinkingglass{
diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm
index 73d834dd64..f8a14b8c30 100644
--- a/code/_onclick/telekinesis.dm
+++ b/code/_onclick/telekinesis.dm
@@ -123,7 +123,7 @@
. = ..()
if(!target || !user)
return
- if(!user.CheckActionCooldown())
+ if(!user.CheckActionCooldown(CLICK_CD_MELEE))
return
if(!focus)
focus_object(target)
@@ -146,7 +146,7 @@
else
apply_focus_overlay()
focus.throw_at(target, 10, 1,user)
- user.DelayNextAction(immediate = FALSE)
+ user.DelayNextAction(considered_action = TRUE, flush = TRUE)
update_icon()
/proc/tkMaxRangeCheck(mob/user, atom/target)
diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm
index cb6b2d8685..2d25ebb156 100644
--- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm
+++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm
@@ -10,25 +10,24 @@
//
// Show as dead when...
-/datum/antagonist/bloodsucker/proc/LifeTick()// Should probably run from life.dm, same as handle_changeling, but will be an utter pain to move
- var/notice_healing
- while(owner && !AmFinalDeath()) // owner.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) == src
- if(owner.current.stat == CONSCIOUS && !poweron_feed && !HAS_TRAIT(owner.current, TRAIT_FAKEDEATH)) // Deduct Blood
- AddBloodVolume(passive_blood_drain) // -.1 currently
- if(HandleHealing(1)) // Heal
- if(!notice_healing && owner.current.blood_volume > 0)
- to_chat(owner, "The power of your blood begins knitting your wounds...")
- notice_healing = TRUE
- else if(notice_healing == TRUE)
- notice_healing = FALSE // Apply Low Blood Effects
- HandleStarving() // Death
- HandleDeath() // Standard Update
- update_hud()// Daytime Sleep in Coffin
- if(SSticker.mode.is_daylight() && !HAS_TRAIT_FROM(owner.current, TRAIT_FAKEDEATH, "bloodsucker"))
- if(istype(owner.current.loc, /obj/structure/closet/crate/coffin))
- Torpor_Begin()
- // Wait before next pass
- sleep(10)
+/datum/antagonist/bloodsucker/proc/LifeTick() //Runs from BiologicalLife, handles all the bloodsucker constant proccesses
+ if(!owner || AmFinalDeath())
+ return
+ if(owner.current.stat == CONSCIOUS && !poweron_feed && !HAS_TRAIT(owner.current, TRAIT_FAKEDEATH)) // Deduct Blood
+ AddBloodVolume(passive_blood_drain) // -.1 currently
+ if(HandleHealing(1)) // Heal
+ if(!notice_healing && owner.current.blood_volume > 0)
+ to_chat(owner, "The power of your blood begins knitting your wounds...")
+ notice_healing = TRUE
+ else if(notice_healing)
+ notice_healing = FALSE // Apply Low Blood Effects
+ HandleStarving() // Death
+ HandleDeath() // Standard Update
+ update_hud()// Daytime Sleep in Coffin
+ if(SSticker.mode.is_daylight() && !HAS_TRAIT_FROM(owner.current, TRAIT_FAKEDEATH, "bloodsucker"))
+ if(istype(owner.current.loc, /obj/structure/closet/crate/coffin))
+ Torpor_Begin()
+ // Wait before next pass
FreeAllVassals() // Free my Vassals! (if I haven't yet)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm
index e111ca97ea..715de0648d 100644
--- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm
+++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm
@@ -37,6 +37,7 @@
var/had_toxlover
var/level_bloodcost
var/passive_blood_drain = -0.1 //The amount of blood we loose each bloodsucker life() tick
+ var/notice_healing //Var to see if you are healing for preventing spam of the chat message inform the user of such
// LISTS
var/static/list/defaultTraits = list (TRAIT_STABLEHEART, TRAIT_NOBREATH, TRAIT_SLEEPIMMUNE, TRAIT_NOCRITDAMAGE, TRAIT_RESISTCOLD, TRAIT_RADIMMUNE, TRAIT_NIGHT_VISION, \
TRAIT_NOSOFTCRIT, TRAIT_NOHARDCRIT, TRAIT_AGEUSIA, TRAIT_COLDBLOODED, TRAIT_NONATURALHEAL, TRAIT_NOMARROW, TRAIT_NOPULSE, TRAIT_VIRUSIMMUNE, TRAIT_NODECAP, TRAIT_NOGUT)
diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm
index 56582386f1..36a6f6296b 100644
--- a/code/modules/mob/living/blood.dm
+++ b/code/modules/mob/living/blood.dm
@@ -14,7 +14,8 @@
var/obj/item/bodypart/BP = X
temp_bleed += BP.get_bleed_rate()
BP.generic_bleedstacks = max(0, BP.generic_bleedstacks - 1)
- bleed(temp_bleed)
+ if(temp_bleed)
+ bleed(temp_bleed)
//Blood regeneration if there is some space
if(blood_volume < BLOOD_VOLUME_NORMAL)
diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm
index fb71693534..89321082c9 100644
--- a/code/modules/mob/living/life.dm
+++ b/code/modules/mob/living/life.dm
@@ -139,7 +139,7 @@
ExtinguishMob()
return
var/datum/gas_mixture/G = loc.return_air() // Check if we're standing in an oxygenless environment
- if(G.get_moles(/datum/gas/oxygen, 1))
+ if(!G.get_moles(/datum/gas/oxygen, 1))
ExtinguishMob() //If there's no oxygen in the tile we're on, put out the fire
return
var/turf/location = get_turf(src)
diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm
index 5cdd773894..1f66cfdf8a 100644
--- a/code/modules/projectiles/guns/ballistic/toy.dm
+++ b/code/modules/projectiles/guns/ballistic/toy.dm
@@ -56,6 +56,7 @@
item_flags = NONE
casing_ejector = FALSE
can_suppress = FALSE
+ weapon_weight = WEAPON_MEDIUM
/obj/item/gun/ballistic/shotgun/toy/process_chamber(mob/living/user, empty_chamber = 0)
..()
diff --git a/html/changelogs/AutoChangeLog-pr-12952.yml b/html/changelogs/AutoChangeLog-pr-12952.yml
new file mode 100644
index 0000000000..f8a26d739c
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-12952.yml
@@ -0,0 +1,5 @@
+author: "dapnee"
+delete-after: True
+changes:
+ - tweak: "added cake hat to bar, adds another atmostech spawn"
+ - bugfix: "sinks point in the right direction, APC won't spawn off the wall in circuits"
diff --git a/html/changelogs/AutoChangeLog-pr-12962.yml b/html/changelogs/AutoChangeLog-pr-12962.yml
new file mode 100644
index 0000000000..ccb9512673
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-12962.yml
@@ -0,0 +1,4 @@
+author: "dapnee"
+delete-after: True
+changes:
+ - bugfix: "changes commissary APC so it actually powers the room, adds a missing AIR alarm, arrivals no longer has active atmos tiles."
diff --git a/html/changelogs/AutoChangeLog-pr-12964.yml b/html/changelogs/AutoChangeLog-pr-12964.yml
new file mode 100644
index 0000000000..ec4b8016d1
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-12964.yml
@@ -0,0 +1,4 @@
+author: "timothyteakettle"
+delete-after: True
+changes:
+ - bugfix: "monkeys no longer continuously bleed everywhere"
diff --git a/html/changelogs/AutoChangeLog-pr-12967.yml b/html/changelogs/AutoChangeLog-pr-12967.yml
new file mode 100644
index 0000000000..3297232e76
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-12967.yml
@@ -0,0 +1,4 @@
+author: "silicons"
+delete-after: True
+changes:
+ - tweak: "toy shotguns no longer need 2 hands to fire"
diff --git a/html/changelogs/AutoChangeLog-pr-12988.yml b/html/changelogs/AutoChangeLog-pr-12988.yml
new file mode 100644
index 0000000000..cdd447a564
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-12988.yml
@@ -0,0 +1,4 @@
+author: "silicons"
+delete-after: True
+changes:
+ - bugfix: "being on fire works again."