[MDB IGNORE] [IDB IGNORE] Upstream Sync - 04/17/2026 (#5453)

Upstream 04/17/2026

fixes https://github.com/Bubberstation/Bubberstation/issues/5549

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com>
Co-authored-by: loganuk <fakeemail123@aol.com>
Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com>
Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
Co-authored-by: Lucy <lucy@absolucy.moe>
Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com>
Co-authored-by: Isratosh <Isratosh@hotmail.com>
Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com>
Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com>
Co-authored-by: Alexander V. <volas@ya.ru>
Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com>
Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com>
Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com>
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com>
Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com>
Co-authored-by: Josh <josh.adam.powell@gmail.com>
Co-authored-by: Josh Powell <josh.powell@softwire.com>
Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com>
Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com>
Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com>
Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
This commit is contained in:
Alexis
2026-05-16 00:56:00 +02:00
committed by GitHub
co-authored by tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> ArcaneMusic MrMelbert Rhials rageguy505 LemonInTheDark John Willard Aliceee2ch Time-Green Tsar-Salat SmArtKar Maxipat SyncIt21 deltanedas SimplyLogan loganuk Leland Kemble FalloutFalcon Roxy Lucy siliconOpossum Isratosh TheRyeGuyWhoWillNowDie Neocloudy Alexander V. ElGitificador Twaticus dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Bloop Cameron Lennox Tim Iamgoofball Layzu666 Arturlang _0Steven mrmanlikesbt Ben10Omintrix John F. Kennedy Cursor Josh Josh Powell Yobrocharlie Hardly3D shayoki LT3
parent d1f6ed3137
commit 21b4095dfd
2082 changed files with 60158 additions and 140127 deletions
@@ -26,6 +26,8 @@
vendor_pawn.say(pick("Supersize this!", "Eat my shiny metal ass!", "Want to consume some of my products?", "SMASH!", "Don't you love these smashing prices!"))
controller.set_blackboard_key(BB_VENDING_LAST_HIT_SUCCESSFUL, TRUE)
else
if(vendor_pawn.icon_deny)
flick(vendor_pawn.icon_deny, vendor_pawn)
vendor_pawn.say(pick("Get back here!", "Don't you want my well priced love?"))
controller.set_blackboard_key(BB_VENDING_LAST_HIT_SUCCESSFUL, FALSE)
finish_action(controller, TRUE)
@@ -1,12 +1,18 @@
///AI controller for vending machine gone rogue, Don't try using this on anything else, it wont work.
/datum/ai_controller/vending_machine
movement_delay = 0.4 SECONDS
blackboard = list(BB_VENDING_CURRENT_TARGET = null,
BB_VENDING_TILT_COOLDOWN = 0,
BB_VENDING_UNTILT_COOLDOWN = 0,
BB_VENDING_BUSY_TILTING = FALSE,
BB_VENDING_LAST_HIT_SUCCESSFUL = FALSE)
blackboard = list(
BB_VENDING_CURRENT_TARGET = null,
BB_VENDING_TILT_COOLDOWN = 0,
BB_VENDING_UNTILT_COOLDOWN = 0,
BB_VENDING_BUSY_TILTING = FALSE,
BB_VENDING_LAST_HIT_SUCCESSFUL = FALSE,
)
/// If TRUE stops mobs from buying things from active machines
var/block_usage = FALSE
/// Range to search for mobs to crunch
var/vision_range = 7
/// Seconds between attempts to find a new mob to crunch
var/search_for_enemy_cooldown = 2 SECONDS
/datum/ai_controller/vending_machine/TryPossessPawn(atom/new_pawn)
@@ -17,6 +23,7 @@
vendor_pawn.AddElementTrait(TRAIT_WADDLING, REF(src), /datum/element/waddling)
vendor_pawn.AddElement(/datum/element/footstep, FOOTSTEP_OBJ_MACHINE, 1, -6, sound_vary = TRUE)
vendor_pawn.squish_damage = 15
RegisterSignal(vendor_pawn, COMSIG_VENDING_UI_INTERACT, PROC_REF(deny_vending_interact))
return ..() //Run parent at end
/datum/ai_controller/vending_machine/UnpossessPawn(destroy)
@@ -25,6 +32,7 @@
REMOVE_TRAIT(vendor_pawn, TRAIT_WADDLING, REF(src))
vendor_pawn.squish_damage = initial(vendor_pawn.squish_damage)
RemoveElement(/datum/element/footstep, FOOTSTEP_OBJ_MACHINE, 1, -6, sound_vary = TRUE)
UnregisterSignal(vendor_pawn, COMSIG_VENDING_UI_INTERACT)
return ..() //Run parent at end
/datum/ai_controller/vending_machine/SelectBehaviors(seconds_per_tick)
@@ -46,3 +54,18 @@
queue_behavior(/datum/ai_behavior/vendor_crush, BB_VENDING_CURRENT_TARGET)
return
set_blackboard_key(BB_VENDING_TILT_COOLDOWN, world.time + search_for_enemy_cooldown)
/datum/ai_controller/vending_machine/proc/deny_vending_interact(obj/machinery/vending/vending_machine, mob/user, datum/tgui/ui)
SIGNAL_HANDLER
if(!block_usage)
return NONE
vending_machine.speak(pick(
"Once in a life time offer, and you [pick("blew it", "missed it", "screwed it up")]!",
"The deals are off!",
"We don't accept card, only accept flesh and blood!",
"You had your chance!",
))
return VENDING_DENIED
/datum/ai_controller/vending_machine/eventspawn
block_usage = TRUE