From 3d1308c5d7667450326c4780776efd773b417b2b Mon Sep 17 00:00:00 2001 From: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Date: Tue, 27 Feb 2024 16:59:40 -0600 Subject: [PATCH 001/281] Fix rat heart (#81698) ## About The Pull Request Fixes #81696 `on_mob_insert` doesn't return a truthy value from parent call, it returns null / nothing Also patches a potential exploit involving that can mutate check ## Changelog :cl: Melbert fix: Rat hearts apply their damage modifier malus correctly /:cl: --- .../dna_infuser/organ_sets/rat_organs.dm | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/code/game/machinery/dna_infuser/organ_sets/rat_organs.dm b/code/game/machinery/dna_infuser/organ_sets/rat_organs.dm index 092a4c7889a28..4e84870ec9c30 100644 --- a/code/game/machinery/dna_infuser/organ_sets/rat_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/rat_organs.dm @@ -65,26 +65,22 @@ /obj/item/organ/internal/heart/rat/on_mob_insert(mob/living/carbon/receiver) . = ..() - if(!. || !ishuman(receiver)) + if(!ishuman(receiver)) return var/mob/living/carbon/human/human_receiver = receiver - if(!human_receiver.can_mutate()) - return - human_receiver.dna.add_mutation(/datum/mutation/human/dwarfism) + if(human_receiver.can_mutate()) + human_receiver.dna.add_mutation(/datum/mutation/human/dwarfism) //but 1.5 damage - if(human_receiver.physiology) - human_receiver.physiology.damage_resistance -= 50 + human_receiver.physiology?.damage_resistance -= 50 /obj/item/organ/internal/heart/rat/on_mob_remove(mob/living/carbon/heartless, special) . = ..() if(!ishuman(heartless)) return var/mob/living/carbon/human/human_heartless = heartless - if(!human_heartless.can_mutate()) - return - human_heartless.dna.remove_mutation(/datum/mutation/human/dwarfism) - if(human_heartless.physiology) - human_heartless.physiology.damage_resistance += 50 + if(human_heartless.can_mutate()) + human_heartless.dna.remove_mutation(/datum/mutation/human/dwarfism) + human_heartless.physiology?.damage_resistance += 50 /// you occasionally squeak, and have some rat related verbal tics /obj/item/organ/internal/tongue/rat From 06571c87daf7a273a42fb5f8515e94da7d15b32e Mon Sep 17 00:00:00 2001 From: orange man <61334995+comfyorange@users.noreply.github.com> Date: Wed, 28 Feb 2024 12:02:55 +1300 Subject: [PATCH 002/281] Automatic changelog for PR #81698 [ci skip] --- html/changelogs/AutoChangeLog-pr-81698.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-81698.yml diff --git a/html/changelogs/AutoChangeLog-pr-81698.yml b/html/changelogs/AutoChangeLog-pr-81698.yml new file mode 100644 index 0000000000000..ca76af99c8529 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-81698.yml @@ -0,0 +1,4 @@ +author: "Melbert" +delete-after: True +changes: + - bugfix: "Rat hearts apply their damage modifier malus correctly" \ No newline at end of file From d1d31b0ef575abd7f3ed5f1e36aba8e03c06da0c Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 28 Feb 2024 00:18:58 +0000 Subject: [PATCH 003/281] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-81502.yml | 5 --- html/changelogs/AutoChangeLog-pr-81534.yml | 5 --- html/changelogs/AutoChangeLog-pr-81555.yml | 4 -- html/changelogs/AutoChangeLog-pr-81562.yml | 4 -- html/changelogs/AutoChangeLog-pr-81607.yml | 4 -- html/changelogs/AutoChangeLog-pr-81612.yml | 4 -- html/changelogs/AutoChangeLog-pr-81617.yml | 7 --- html/changelogs/AutoChangeLog-pr-81624.yml | 4 -- html/changelogs/AutoChangeLog-pr-81636.yml | 4 -- html/changelogs/AutoChangeLog-pr-81642.yml | 5 --- html/changelogs/AutoChangeLog-pr-81643.yml | 4 -- html/changelogs/AutoChangeLog-pr-81653.yml | 5 --- html/changelogs/AutoChangeLog-pr-81667.yml | 4 -- html/changelogs/AutoChangeLog-pr-81670.yml | 4 -- html/changelogs/AutoChangeLog-pr-81686.yml | 4 -- html/changelogs/AutoChangeLog-pr-81688.yml | 4 -- html/changelogs/AutoChangeLog-pr-81698.yml | 4 -- html/changelogs/archive/2024-02.yml | 52 ++++++++++++++++++++++ 18 files changed, 52 insertions(+), 75 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-81502.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81534.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81555.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81562.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81607.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81612.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81617.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81624.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81636.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81642.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81643.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81653.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81667.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81670.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81686.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81688.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81698.yml diff --git a/html/changelogs/AutoChangeLog-pr-81502.yml b/html/changelogs/AutoChangeLog-pr-81502.yml deleted file mode 100644 index 67763b4fb43e8..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81502.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "IndieanaJones" -delete-after: True -changes: - - rscadd: "New Changeling Ability: Hive Head" - - bugfix: "Fixed bees having an improper sprite offset" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81534.yml b/html/changelogs/AutoChangeLog-pr-81534.yml deleted file mode 100644 index a100278dc5472..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81534.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Iamgoofball" -delete-after: True -changes: - - balance: "xenomorph stomachs will no longer destroy items directly, refactored it to use acid_act()" - - bugfix: "fixes xenomorph vore accidentally destroying mobs it wasn't supposed to destroy, im thinking this was modified list in place shenanigans" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81555.yml b/html/changelogs/AutoChangeLog-pr-81555.yml deleted file mode 100644 index 3e42a3e26b6be..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81555.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - balance: "\"Freshness Jars full of Natural Bait\" is now a goodie and costs 200 credits instead of 2000" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81562.yml b/html/changelogs/AutoChangeLog-pr-81562.yml deleted file mode 100644 index e6e40113f7cc9..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81562.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - rscadd: "Added a multi-dimensional bomb payload to the black market. It's very expensive." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81607.yml b/html/changelogs/AutoChangeLog-pr-81607.yml deleted file mode 100644 index 0acb3c6a1bbf7..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81607.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "JohnFulpWillard" -delete-after: True -changes: - - qol: "Intelligent monkeys now punch people instead of biting them." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81612.yml b/html/changelogs/AutoChangeLog-pr-81612.yml deleted file mode 100644 index 89d09d1d7bc33..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81612.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "PapaMichael" -delete-after: True -changes: - - balance: "Fugitive hunters will spawn early if the emergency shuttle is called." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81617.yml b/html/changelogs/AutoChangeLog-pr-81617.yml deleted file mode 100644 index fb9957e2adbe0..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81617.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "LT3" -delete-after: True -changes: - - code_imp: "Tram throwing now breaks grilles consistently" - - code_imp: "Tram malfunction lethality/throw chance are now a multiplier instead of flat value" - - code_imp: "Tram throw chance can be adjusted" - - code_imp: "Unlucky trait is now used in tram throw calculation" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81624.yml b/html/changelogs/AutoChangeLog-pr-81624.yml deleted file mode 100644 index ab0c85d5fd716..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81624.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "softcerv" -delete-after: True -changes: - - code_imp: "TRAIT_DEAF now works on non-carbon mobs" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81636.yml b/html/changelogs/AutoChangeLog-pr-81636.yml deleted file mode 100644 index 5d4f0d86e8081..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81636.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "00-Steven" -delete-after: True -changes: - - bugfix: "Lobby manifest shows the head/captain symbols next to heads and captains with custom titles, as long as they're registered with a head/captain trim." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81642.yml b/html/changelogs/AutoChangeLog-pr-81642.yml deleted file mode 100644 index 61bb755accacd..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81642.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Cheshify" -delete-after: True -changes: - - qol: "The chapel has been slightly overhauled on Birdshot, with the chaplain now having a place to preach sermons." - - bugfix: "Sparring chaplains are now able to operate on Birdshot!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81643.yml b/html/changelogs/AutoChangeLog-pr-81643.yml deleted file mode 100644 index 0e4561dd8ab89..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81643.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Cheshify" -delete-after: True -changes: - - bugfix: "the north star's main intersections are brighter, the elevator is properly lit, and a single floating poster was moved." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81653.yml b/html/changelogs/AutoChangeLog-pr-81653.yml deleted file mode 100644 index 60612d931efd2..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81653.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "KingkumaArt" -delete-after: True -changes: - - rscadd: "a list of items called vendor_nocrush that vendors dont deal integrity damage to upon hitting them." - - bugfix: "Makes vending machines no longer crush chairs and conveyors." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81667.yml b/html/changelogs/AutoChangeLog-pr-81667.yml deleted file mode 100644 index 3f82bd14d8b74..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81667.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DrDiasyl" -delete-after: True -changes: - - rscadd: "NEW TRAIT JOB: Veteran Security Advisor! Advise HoS and Captain on Security matters, mentor Security Officers. Note that they are paraplegic and are suffering PTSD due to their past experience." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81670.yml b/html/changelogs/AutoChangeLog-pr-81670.yml deleted file mode 100644 index 3a7392ed6116d..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81670.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "00-Steven" -delete-after: True -changes: - - bugfix: "Fixed Bluespace RPEDs failing to apply circuits from a distance if you had to select between multiple." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81686.yml b/html/changelogs/AutoChangeLog-pr-81686.yml deleted file mode 100644 index 7d4795275b685..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81686.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Jacquerel" -delete-after: True -changes: - - rscadd: "Displaying the voting statistics is now optional on a per-poll basis, and is disabled for map voting." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81688.yml b/html/changelogs/AutoChangeLog-pr-81688.yml deleted file mode 100644 index cced53083f08a..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81688.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ArcaneMusic" -delete-after: True -changes: - - image: "New sprites for plant grafts!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81698.yml b/html/changelogs/AutoChangeLog-pr-81698.yml deleted file mode 100644 index ca76af99c8529..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81698.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Melbert" -delete-after: True -changes: - - bugfix: "Rat hearts apply their damage modifier malus correctly" \ No newline at end of file diff --git a/html/changelogs/archive/2024-02.yml b/html/changelogs/archive/2024-02.yml index 1d21410dcdf9a..a9e41aed680fd 100644 --- a/html/changelogs/archive/2024-02.yml +++ b/html/changelogs/archive/2024-02.yml @@ -790,3 +790,55 @@ - bugfix: fixes cardboard cutouts not updating when held and using the crayon on them to change their appearance, and fixes the alt_appearance being added to the cutout instead of the mob holding it +2024-02-28: + 00-Steven: + - bugfix: Lobby manifest shows the head/captain symbols next to heads and captains + with custom titles, as long as they're registered with a head/captain trim. + - bugfix: Fixed Bluespace RPEDs failing to apply circuits from a distance if you + had to select between multiple. + ArcaneMusic: + - image: New sprites for plant grafts! + Cheshify: + - bugfix: the north star's main intersections are brighter, the elevator is properly + lit, and a single floating poster was moved. + - qol: The chapel has been slightly overhauled on Birdshot, with the chaplain now + having a place to preach sermons. + - bugfix: Sparring chaplains are now able to operate on Birdshot! + DrDiasyl: + - rscadd: 'NEW TRAIT JOB: Veteran Security Advisor! Advise HoS and Captain on Security + matters, mentor Security Officers. Note that they are paraplegic and are suffering + PTSD due to their past experience.' + Ghommie: + - rscadd: Added a multi-dimensional bomb payload to the black market. It's very + expensive. + - balance: '"Freshness Jars full of Natural Bait" is now a goodie and costs 200 + credits instead of 2000' + Iamgoofball: + - balance: xenomorph stomachs will no longer destroy items directly, refactored + it to use acid_act() + - bugfix: fixes xenomorph vore accidentally destroying mobs it wasn't supposed to + destroy, im thinking this was modified list in place shenanigans + IndieanaJones: + - rscadd: 'New Changeling Ability: Hive Head' + - bugfix: Fixed bees having an improper sprite offset + Jacquerel: + - rscadd: Displaying the voting statistics is now optional on a per-poll basis, + and is disabled for map voting. + JohnFulpWillard: + - qol: Intelligent monkeys now punch people instead of biting them. + KingkumaArt: + - rscadd: a list of items called vendor_nocrush that vendors dont deal integrity + damage to upon hitting them. + - bugfix: Makes vending machines no longer crush chairs and conveyors. + LT3: + - code_imp: Tram throwing now breaks grilles consistently + - code_imp: Tram malfunction lethality/throw chance are now a multiplier instead + of flat value + - code_imp: Tram throw chance can be adjusted + - code_imp: Unlucky trait is now used in tram throw calculation + Melbert: + - bugfix: Rat hearts apply their damage modifier malus correctly + PapaMichael: + - balance: Fugitive hunters will spawn early if the emergency shuttle is called. + softcerv: + - code_imp: TRAIT_DEAF now works on non-carbon mobs From eadcf5b1f9f1332a28c01b840eb656958c985414 Mon Sep 17 00:00:00 2001 From: Nick <42454181+Momo8289@users.noreply.github.com> Date: Tue, 27 Feb 2024 20:22:08 -0500 Subject: [PATCH 004/281] Converts the slot machine over to TGUI (#81700) This PR is the long-awaited de-soulification of the slot machine, converting it over to TGUI. It also updates the jackpot, since it appears to have been quite broken. It will now give all of the available prize money plus 10000 credits. I'm fairly sure this is what was supposed to happen, but I honestly could not tell, so if this ends up being a balance change then so be it. Also adds a new funny kind of jackpot when you get 5 bombs in the middle row. Other than that, generally cleans up and updates some of the slot machine code. The styling of the slot machine ui is nothing fancy right now, and I'm open to suggestions about how the ui should look. --- code/game/machinery/slotmachine.dm | 227 ++++++++++-------- tgui/packages/tgui/interfaces/SlotMachine.tsx | 151 ++++++++++++ 2 files changed, 284 insertions(+), 94 deletions(-) create mode 100644 tgui/packages/tgui/interfaces/SlotMachine.tsx diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index ddfe76f56af1d..b7eec3994b8d1 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -10,7 +10,7 @@ #define JACKPOT 10000 #define SPIN_TIME 65 //As always, deciseconds. #define REEL_DEACTIVATE_DELAY 7 -#define SEVEN "7" +#define JACKPOT_SEVENS FA_ICON_7 #define HOLOCHIP 1 #define COIN 2 @@ -24,7 +24,7 @@ density = TRUE circuit = /obj/item/circuitboard/computer/slot_machine light_color = LIGHT_COLOR_BROWN - interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON|INTERACT_MACHINE_SET_MACHINE // don't need to be literate to play slots + interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON // don't need to be literate to play slots var/money = 3000 //How much money it has CONSUMED var/plays = 0 var/working = FALSE @@ -32,9 +32,19 @@ var/jackpots = 0 var/paymode = HOLOCHIP //toggles between HOLOCHIP/COIN, defined above var/cointype = /obj/item/coin/iron //default cointype + /// Icons that can be displayed by the slot machine. + var/static/list/icons = list( + FA_ICON_LEMON = list("value" = 2, "colour" = "yellow"), + FA_ICON_STAR = list("value" = 2, "colour" = "yellow"), + FA_ICON_BOMB = list("value" = 2, "colour" = "red"), + FA_ICON_BIOHAZARD = list("value" = 2, "colour" = "green"), + FA_ICON_APPLE_WHOLE = list("value" = 2, "colour" = "red"), + FA_ICON_7 = list("value" = 1, "colour" = "yellow"), + FA_ICON_DOLLAR_SIGN = list("value" = 2, "colour" = "green"), + ) + var/static/list/coinvalues var/list/reels = list(list("", "", "") = 0, list("", "", "") = 0, list("", "", "") = 0, list("", "", "") = 0, list("", "", "") = 0) - var/list/symbols = list(SEVEN = 1, "&" = 2, "@" = 2, "$" = 2, "?" = 2, "#" = 2, "!" = 2, "%" = 2) //if people are winning too much, multiply every number in this list by 2 and see if they are still winning too much. var/static/list/ray_filter = list(type = "rays", y = 16, size = 40, density = 4, color = COLOR_RED_LIGHT, factor = 15, flags = FILTER_OVERLAY) /obj/machinery/computer/slot_machine/Initialize(mapload) @@ -42,13 +52,13 @@ jackpots = rand(1, 4) //false hope plays = rand(75, 200) - INVOKE_ASYNC(src, PROC_REF(toggle_reel_spin), TRUE)//The reels won't spin unless we activate them + toggle_reel_spin_sync(1) //The reels won't spin unless we activate them var/list/reel = reels[1] for(var/i in 1 to reel.len) //Populate the reels. randomize_reels() - INVOKE_ASYNC(src, PROC_REF(toggle_reel_spin), FALSE) + toggle_reel_spin_sync(0) if (isnull(coinvalues)) coinvalues = list() @@ -84,46 +94,49 @@ icon_screen = "slots_screen" return ..() -/obj/machinery/computer/slot_machine/attackby(obj/item/I, mob/living/user, params) - if(istype(I, /obj/item/coin)) - var/obj/item/coin/C = I + +/obj/machinery/computer/slot_machine/item_interaction(mob/living/user, obj/item/inserted, list/modifiers, is_right_clicking) + if(istype(inserted, /obj/item/coin)) + var/obj/item/coin/inserted_coin = inserted if(paymode == COIN) if(prob(2)) - if(!user.transferItemToLoc(C, drop_location(), silent = FALSE)) + if(!user.transferItemToLoc(inserted_coin, drop_location(), silent = FALSE)) return - C.throw_at(user, 3, 10) + inserted_coin.throw_at(user, 3, 10) if(prob(10)) balance = max(balance - SPIN_PRICE, 0) to_chat(user, span_warning("[src] spits your coin back out!")) else - if(!user.temporarilyRemoveItemFromInventory(C)) + if(!user.temporarilyRemoveItemFromInventory(inserted_coin)) return - to_chat(user, span_notice("You insert [C] into [src]'s slot!")) - balance += C.value - qdel(C) + balloon_alert(user, "coin insterted") + balance += inserted_coin.value + qdel(inserted_coin) else - to_chat(user, span_warning("This machine is only accepting holochips!")) - else if(istype(I, /obj/item/holochip)) + balloon_alert(user, "holochips only!") + + else if(istype(inserted, /obj/item/holochip)) if(paymode == HOLOCHIP) - var/obj/item/holochip/H = I - if(!user.temporarilyRemoveItemFromInventory(H)) + var/obj/item/holochip/inserted_chip = inserted + if(!user.temporarilyRemoveItemFromInventory(inserted_chip)) return - to_chat(user, span_notice("You insert [H.credits] holocredits into [src]'s slot!")) - balance += H.credits - qdel(H) + balloon_alert(user, "[inserted_chip.credits] credit[inserted_chip.credits == 1 ? "" : "s"] inserted") + balance += inserted_chip.credits + qdel(inserted_chip) else - to_chat(user, span_warning("This machine is only accepting coins!")) - else if(I.tool_behaviour == TOOL_MULTITOOL) + balloon_alert(user, "coins only!") + + else if(inserted.tool_behaviour == TOOL_MULTITOOL) if(balance > 0) visible_message("[src] says, 'ERROR! Please empty the machine balance before altering paymode'") //Prevents converting coins into holocredits and vice versa else if(paymode == HOLOCHIP) paymode = COIN - visible_message("[src] says, 'This machine now works with COINS!'") + balloon_alert(user, "now using coins") else paymode = HOLOCHIP - visible_message("[src] says, 'This machine now works with HOLOCHIPS!'") + balloon_alert(user, "now using holochips") else return ..() @@ -138,49 +151,54 @@ balloon_alert(user, "machine rigged") return TRUE -/obj/machinery/computer/slot_machine/ui_interact(mob/living/user) +/obj/machinery/computer/slot_machine/ui_interact(mob/living/user, datum/tgui/ui) + . = ..() + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "SlotMachine", name) + ui.open() + +/obj/machinery/computer/slot_machine/ui_static_data(mob/user) + var/list/data = list() + data["icons"] = list() + for(var/icon_name in icons) + var/list/icon = icons[icon_name] + icon += list("icon" = icon_name) + data["icons"] += list(icon) + data["cost"] = SPIN_PRICE + data["jackpot"] = JACKPOT + + return data + +/obj/machinery/computer/slot_machine/ui_data(mob/user) + var/list/data = list() + var/list/reel_states = list() + for(var/reel_state in reels) + reel_states += list(reel_state) + data["state"] = reel_states + data["balance"] = balance + data["working"] = working + data["money"] = money + data["plays"] = plays + data["jackpots"] = jackpots + data["paymode"] = paymode + return data + + +/obj/machinery/computer/slot_machine/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() - var/reeltext = {"
- /*****^*****^*****^*****^*****\\
- | \[[reels[1][1]]\] | \[[reels[2][1]]\] | \[[reels[3][1]]\] | \[[reels[4][1]]\] | \[[reels[5][1]]\] |
- | \[[reels[1][2]]\] | \[[reels[2][2]]\] | \[[reels[3][2]]\] | \[[reels[4][2]]\] | \[[reels[5][2]]\] |
- | \[[reels[1][3]]\] | \[[reels[2][3]]\] | \[[reels[3][3]]\] | \[[reels[4][3]]\] | \[[reels[5][3]]\] |
- \\*****v*****v*****v*****v*****/
-
"} - - var/dat - if(working) - dat = reeltext - - else - dat = {"Five credits to play!
- Prize Money Available: [money] (jackpot payout is ALWAYS 100%!)
- Credit Remaining: [balance]
- [plays] players have tried their luck today, and [jackpots] have won a jackpot!
-

- Play!
-
- [reeltext] -
"} - if(balance > 0) - dat+="Refund balance
" - - var/datum/browser/popup = new(user, "slotmachine", "Slot Machine") - popup.set_content(dat) - popup.open() - -/obj/machinery/computer/slot_machine/Topic(href, href_list) - . = ..() //Sanity checks. if(.) - return . - - if(href_list["spin"]) - spin(usr) + return - else if(href_list["refund"]) - if(balance > 0) - give_payout(balance) - balance = 0 + switch(action) + if("spin") + spin(ui.user) + return TRUE + if("payout") + if(balance > 0) + give_payout(balance) + balance = 0 + return TRUE /obj/machinery/computer/slot_machine/emp_act(severity) . = ..() @@ -214,8 +232,6 @@ toggle_reel_spin(1) update_appearance() - updateDialog() - var/spin_loop = addtimer(CALLBACK(src, PROC_REF(do_spin)), 2, TIMER_LOOP|TIMER_STOPPABLE) addtimer(CALLBACK(src, PROC_REF(finish_spinning), spin_loop, user, the_name), SPIN_TIME - (REEL_DEACTIVATE_DELAY * reels.len)) @@ -223,7 +239,6 @@ /obj/machinery/computer/slot_machine/proc/do_spin() randomize_reels() - updateDialog() use_power(active_power_usage) /obj/machinery/computer/slot_machine/proc/finish_spinning(spin_loop, mob/user, the_name) @@ -232,50 +247,64 @@ deltimer(spin_loop) give_prizes(the_name, user) update_appearance() - updateDialog() +/// Check if the machine can be spun /obj/machinery/computer/slot_machine/proc/can_spin(mob/user) if(machine_stat & NOPOWER) - to_chat(user, span_warning("The slot machine has no power!")) + balloon_alert(user, "no power!") return FALSE if(machine_stat & BROKEN) - to_chat(user, span_warning("The slot machine is broken!")) + balloon_alert(user, "machine broken!") return FALSE if(working) - to_chat(user, span_warning("You need to wait until the machine stops spinning before you can play again!")) + balloon_alert(user, "already spinning!") return FALSE if(balance < SPIN_PRICE) - to_chat(user, span_warning("Insufficient money to play!")) + balloon_alert(user, "insufficient balance!") return FALSE return TRUE +/// Sets the spinning states of all reels to value, with a delay between them /obj/machinery/computer/slot_machine/proc/toggle_reel_spin(value, delay = 0) //value is 1 or 0 aka on or off for(var/list/reel in reels) if(!value) playsound(src, 'sound/machines/ding_short.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) reels[reel] = value - sleep(delay) + if(delay) + sleep(delay) +/// Same as toggle_reel_spin, but without the delay and runs synchronously +/obj/machinery/computer/slot_machine/proc/toggle_reel_spin_sync(value) + for(var/list/reel in reels) + reels[reel] = value + +/// Randomize the states of all reels /obj/machinery/computer/slot_machine/proc/randomize_reels() for(var/reel in reels) if(reels[reel]) reel[3] = reel[2] reel[2] = reel[1] - reel[1] = pick(symbols) + var/chosen = pick(icons) + reel[1] = icons[chosen] + list("icon_name" = chosen) +/// Checks if any prizes have been won, and pays them out /obj/machinery/computer/slot_machine/proc/give_prizes(usrname, mob/user) var/linelength = get_lines() var/did_player_win = TRUE - if(reels[1][2] + reels[2][2] + reels[3][2] + reels[4][2] + reels[5][2] == "[SEVEN][SEVEN][SEVEN][SEVEN][SEVEN]") - visible_message("[src] says, 'JACKPOT! You win [money] credits!'") + if(check_jackpot(FA_ICON_BOMB)) + var/obj/item/grenade/flashbang/bang = new(get_turf(src)) + bang.arm_grenade(null, 1 SECONDS) + + else if(check_jackpot(JACKPOT_SEVENS)) + var/prize = money + JACKPOT + visible_message("[src] says, 'JACKPOT! You win [prize] credits!'") priority_announce("Congratulations to [user ? user.real_name : usrname] for winning the jackpot at the slot machine in [get_area(src)]!") jackpots += 1 - balance += money - give_payout(JACKPOT) money = 0 if(paymode == HOLOCHIP) - new /obj/item/holochip(loc, JACKPOT) + new /obj/item/holochip(loc, prize) else for(var/i in 1 to 5) cointype = pick(subtypesof(/obj/item/coin)) @@ -298,7 +327,8 @@ money = max(money - SPIN_PRICE * 4, money) else - to_chat(user, span_warning("No luck!")) + balloon_alert(user, "no luck!") + playsound(src, 'sound/machines/buzz-sigh.ogg', 50) did_player_win = FALSE if(did_player_win) @@ -307,31 +337,38 @@ addtimer(CALLBACK(src, TYPE_PROC_REF(/datum, remove_filter), "jackpot_rays"), 3 SECONDS) playsound(src, 'sound/machines/roulettejackpot.ogg', 50, TRUE) +/// Checks for a jackpot (5 matching icons in the middle row) with the given icon name +/obj/machinery/computer/slot_machine/proc/check_jackpot(name) + return reels[1][2]["icon_name"] + reels[2][2]["icon_name"] + reels[3][2]["icon_name"] + reels[4][2]["icon_name"] + reels[5][2]["icon_name"] == "[name][name][name][name][name]" + +/// Finds the largest number of consecutive matching icons in a row /obj/machinery/computer/slot_machine/proc/get_lines() var/amountthesame for(var/i in 1 to 3) - var/inputtext = reels[1][i] + reels[2][i] + reels[3][i] + reels[4][i] + reels[5][i] - for(var/symbol in symbols) + var/inputtext = reels[1][i]["icon_name"] + reels[2][i]["icon_name"] + reels[3][i]["icon_name"] + reels[4][i]["icon_name"] + reels[5][i]["icon_name"] + for(var/icon in icons) var/j = 3 //The lowest value we have to check for. - var/symboltext = symbol + symbol + symbol + var/symboltext = icon + icon + icon while(j <= 5) if(findtext(inputtext, symboltext)) amountthesame = max(j, amountthesame) j++ - symboltext += symbol + symboltext += icon if(amountthesame) break return amountthesame +/// Give the specified amount of money. If the amount is greater than the amount of prize money available, add the difference as balance /obj/machinery/computer/slot_machine/proc/give_money(amount) - var/amount_to_give = money >= amount ? amount : money - var/surplus = amount_to_give - give_payout(amount_to_give) - money = max(0, money - amount) + var/amount_to_give = min(amount, money) + var/surplus = amount - give_payout(amount_to_give) + money -= amount_to_give balance += surplus +/// Pay out the specified amount in either coins or holochips /obj/machinery/computer/slot_machine/proc/give_payout(amount) if(paymode == HOLOCHIP) cointype = /obj/item/holochip @@ -348,23 +385,25 @@ return amount -/obj/machinery/computer/slot_machine/proc/dispense(amount = 0, cointype = /obj/item/coin/silver, mob/living/target, throwit = 0) +/// Dispense the given amount. If machine is set to use coins, will use the specified coin type. +/// If throwit and target are set, will launch the payment at the target +/obj/machinery/computer/slot_machine/proc/dispense(amount = 0, cointype = /obj/item/coin/silver, throwit = FALSE, mob/living/target) if(paymode == HOLOCHIP) - var/obj/item/holochip/H = new /obj/item/holochip(loc,amount) + var/obj/item/holochip/chip = new /obj/item/holochip(loc,amount) if(throwit && target) - H.throw_at(target, 3, 10) + chip.throw_at(target, 3, 10) else var/value = coinvalues["[cointype]"] if(value <= 0) CRASH("Coin value of zero, refusing to payout in dispenser") while(amount >= value) - var/obj/item/coin/C = new cointype(loc) //DOUBLE THE PAIN + var/obj/item/coin/thrown_coin = new cointype(loc) //DOUBLE THE PAIN amount -= value if(throwit && target) - C.throw_at(target, 3, 10) + thrown_coin.throw_at(target, 3, 10) else - random_step(C, 2, 40) + random_step(thrown_coin, 2, 40) playsound(src, pick(list('sound/machines/coindrop.ogg', 'sound/machines/coindrop2.ogg')), 50, TRUE) return amount @@ -374,7 +413,7 @@ #undef HOLOCHIP #undef JACKPOT #undef REEL_DEACTIVATE_DELAY -#undef SEVEN +#undef JACKPOT_SEVENS #undef SMALL_PRIZE #undef SPIN_PRICE #undef SPIN_TIME diff --git a/tgui/packages/tgui/interfaces/SlotMachine.tsx b/tgui/packages/tgui/interfaces/SlotMachine.tsx new file mode 100644 index 0000000000000..6d6d464f9131e --- /dev/null +++ b/tgui/packages/tgui/interfaces/SlotMachine.tsx @@ -0,0 +1,151 @@ +import { useBackend } from '../backend'; +import { Button, Icon, Section } from '../components'; +import { Window } from '../layouts'; + +type IconInfo = { + value: number; + colour: string; + icon_name: string; +}; + +type BackendData = { + icons: IconInfo[]; + state: any[]; + balance: number; + working: boolean; + money: number; + cost: number; + plays: number; + jackpots: number; + jackpot: number; + paymode: number; +}; + +type SlotsTileProps = { + icon: string; + color?: string; + background?: string; +}; + +type SlotsReelProps = { + reel: IconInfo[]; +}; + +const pluralS = (amount: number) => { + return amount === 1 ? '' : 's'; +}; + +const SlotsReel = (props: SlotsReelProps) => { + const { reel } = props; + return ( +
+ {reel.map((slot, i) => ( + + ))} +
+ ); +}; + +const SlotsTile = (props: SlotsTileProps) => { + return ( +
+ +
+ ); +}; + +export const SlotMachine = (props) => { + const { act, data } = useBackend(); + // icons: The list of possible icons, including colour and name + // backendState: the current state of the slots according to the backend + const { + plays, + jackpots, + money, + cost, + state, + balance, + jackpot, + working: rolling, + paymode, + } = data; + + return ( + +
+
+

+ Only {cost} credit{pluralS(cost)} for a chance to win big! +

+

+ Available prize money:{' '} + + {money} credit{pluralS(money)} + {' '} +

+ {paymode === 1 && ( +

+ Current jackpot:{' '} + + {money + jackpot} credit{pluralS(money + jackpot)}! + +

+ )} +

+ So far people have spun{' '} + + {plays} time{pluralS(plays)}, + {' '} + and won{' '} + + {jackpots} jackpot{pluralS(jackpots)}! + +

+
+
+
+ {state.map((reel, i) => { + return ; + })} +
+
+ +
+ Balance: {balance} +
+ +
+
+
+ ); +}; From b93d68d3e252fd87d723ef7741468d63fd1e65ed Mon Sep 17 00:00:00 2001 From: orange man <61334995+comfyorange@users.noreply.github.com> Date: Wed, 28 Feb 2024 14:22:36 +1300 Subject: [PATCH 005/281] Automatic changelog for PR #81700 [ci skip] --- html/changelogs/AutoChangeLog-pr-81700.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-81700.yml diff --git a/html/changelogs/AutoChangeLog-pr-81700.yml b/html/changelogs/AutoChangeLog-pr-81700.yml new file mode 100644 index 0000000000000..220aa6e258153 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-81700.yml @@ -0,0 +1,6 @@ +author: "Momo8289" +delete-after: True +changes: + - bugfix: "Fixes the slot machine's jackpot. It should now give all of the available prize money + 10,000 credits as payout for a jackpot." + - refactor: "Converts the slot machine's UI over to TGUI" + - rscadd: "The slot machine now has a whole new type of jackpot! This one's a banger!" \ No newline at end of file From e8c4334f86f3fdbaa5ae43b68e669f1358930aad Mon Sep 17 00:00:00 2001 From: Dani Glore Date: Tue, 27 Feb 2024 21:01:02 -0500 Subject: [PATCH 006/281] Fix: AI Hologram Copying Station Members (#81701) ## About The Pull Request This PR fixes a bug which disables the AI hologram's ability to copy the appearance of crew members. Fixes #78403 The bug was caused by developer error in PR #72725 when the typepath `/datum/record/crew` was used to access `GLOB.manifest.locked`, which is a list of `/datum/record/locked`. To fix the bug I replaced the erroneous typepath with `/datum/record/locked`. ## Why It's Good For The Game This PR fixes the broken feature that used to allow the AI to select from the crew records to set its hologram's appearance. ![image](https://github.com/tgstation/tgstation/assets/17753498/f6cdca47-0795-4b41-8c6c-922a38f597ee) ![image](https://github.com/tgstation/tgstation/assets/17753498/bfb49bf6-2842-405c-b88f-70b707f5d109) ## Changelog :cl: A.C.M.O. fix: Fixed the AI hologram's ability to copy the appearance of crew members. /:cl: --- code/modules/mob/living/silicon/ai/ai.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 041d964f5dc50..a7d5b08579930 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -699,7 +699,7 @@ if("Station Member") var/list/personnel_list = list() - for(var/datum/record/crew/record in GLOB.manifest.locked)//Look in data core locked. + for(var/datum/record/locked/record in GLOB.manifest.locked)//Look in data core locked. personnel_list["[record.name]: [record.rank]"] = record.character_appearance//Pull names, rank, and image. if(!length(personnel_list)) From edd4addd38515a1b3a4016cbd8426ebc463313e1 Mon Sep 17 00:00:00 2001 From: orange man <61334995+comfyorange@users.noreply.github.com> Date: Wed, 28 Feb 2024 15:01:25 +1300 Subject: [PATCH 007/281] Automatic changelog for PR #81701 [ci skip] --- html/changelogs/AutoChangeLog-pr-81701.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-81701.yml diff --git a/html/changelogs/AutoChangeLog-pr-81701.yml b/html/changelogs/AutoChangeLog-pr-81701.yml new file mode 100644 index 0000000000000..086180971c51a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-81701.yml @@ -0,0 +1,4 @@ +author: "A.C.M.O." +delete-after: True +changes: + - bugfix: "Fixed the AI hologram's ability to copy the appearance of crew members." \ No newline at end of file From 2eca334bb2a1c00c548c3e8a9204ed6f9d7bc2ce Mon Sep 17 00:00:00 2001 From: jimmyl <70376633+mc-oofert@users.noreply.github.com> Date: Wed, 28 Feb 2024 08:38:03 +0100 Subject: [PATCH 008/281] Grilles dont break by just walking into them under any circumstances (#81594) ## About The Pull Request you can no longer just walk into a grille to destroy it rather fast also single letter variable cleanup from that proc ## Why It's Good For The Game this is a bug and bugs are bad ## Changelog :cl: fix: Grilles dont break by just walking into them under any circumstances /:cl: --- code/game/objects/structures/grille.dm | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index fba9d5cecc454..da02394251810 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -339,19 +339,19 @@ var/turf/T = get_turf(src) if(T.overfloor_placed)//cant be a floor in the way! return FALSE - // Shocking hurts the grille (to weaken monkey powersinks) - if(prob(50)) + + var/obj/structure/cable/cable_node = T.get_cable_node() + if(isnull(cable_node)) + return FALSE + if(!electrocute_mob(user, cable_node, src, 1, TRUE)) + return FALSE + if(prob(50)) // Shocking hurts the grille (to weaken monkey powersinks) take_damage(1, BURN, FIRE, sound_effect = FALSE) - var/obj/structure/cable/C = T.get_cable_node() - if(C) - if(electrocute_mob(user, C, src, 1, TRUE)) - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(3, 1, src) - s.start() - return TRUE - else - return FALSE - return FALSE + var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread + sparks.set_up(3, 1, src) + sparks.start() + + return TRUE /obj/structure/grille/should_atmos_process(datum/gas_mixture/air, exposed_temperature) return exposed_temperature > T0C + 1500 && !broken From 214ea2a3a3a5ebcb55afef79c97fe61770847d38 Mon Sep 17 00:00:00 2001 From: orange man <61334995+comfyorange@users.noreply.github.com> Date: Wed, 28 Feb 2024 20:38:22 +1300 Subject: [PATCH 009/281] Automatic changelog for PR #81594 [ci skip] --- html/changelogs/AutoChangeLog-pr-81594.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-81594.yml diff --git a/html/changelogs/AutoChangeLog-pr-81594.yml b/html/changelogs/AutoChangeLog-pr-81594.yml new file mode 100644 index 0000000000000..bf9c3e68fa1d9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-81594.yml @@ -0,0 +1,4 @@ +author: "mc-oofert" +delete-after: True +changes: + - bugfix: "Grilles dont break by just walking into them under any circumstances" \ No newline at end of file From daea113c43799f38482db7d9f772a1586db1b33f Mon Sep 17 00:00:00 2001 From: necromanceranne <40847847+necromanceranne@users.noreply.github.com> Date: Thu, 29 Feb 2024 04:10:42 +1100 Subject: [PATCH 010/281] [NO GBP] Reverses the logic for body collision to determine knockdown (#81712) ## About The Pull Request The body that is thrown at someone having knockdown proofing is not what determines whether the victim of the collision is knocked over, but the victim themselves having this trait. ## Why It's Good For The Game I have ADHD. ## Changelog :cl: fix: Being in a Swat Suit appropriately protects you from collisions with a body, rather than the body thrown at you having these protections protecting YOU, the victim of the collision. /:cl: --- code/modules/mob/living/carbon/carbon.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 84fe6dd5edf41..ec03414abfcd2 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -85,7 +85,7 @@ span_userdanger("You violently crash into [victim][extra_speed ? " extra hard" : ""], but [victim] managed to block the worst of it!")) log_combat(src, victim, "crashed into and was blocked by") return - else if(HAS_TRAIT(src, TRAIT_BRAWLING_KNOCKDOWN_BLOCKED)) + else if(HAS_TRAIT(victim, TRAIT_BRAWLING_KNOCKDOWN_BLOCKED)) victim.take_bodypart_damage(10 + 5 * extra_speed, check_armor = TRUE, wound_bonus = extra_speed * 5) victim.apply_damage(10 + 10 * extra_speed, STAMINA) victim.adjust_staggered_up_to(STAGGERED_SLOWDOWN_LENGTH * 2, 10 SECONDS) From 03c5479562c74e21e0ffe2a5a5d68130d6fac9eb Mon Sep 17 00:00:00 2001 From: orange man <61334995+comfyorange@users.noreply.github.com> Date: Thu, 29 Feb 2024 06:11:06 +1300 Subject: [PATCH 011/281] Automatic changelog for PR #81712 [ci skip] --- html/changelogs/AutoChangeLog-pr-81712.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-81712.yml diff --git a/html/changelogs/AutoChangeLog-pr-81712.yml b/html/changelogs/AutoChangeLog-pr-81712.yml new file mode 100644 index 0000000000000..bd5f7934fc995 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-81712.yml @@ -0,0 +1,4 @@ +author: "necromanceranne" +delete-after: True +changes: + - bugfix: "Being in a Swat Suit appropriately protects you from collisions with a body, rather than the body thrown at you having these protections protecting YOU, the victim of the collision." \ No newline at end of file From 3a505ee483143726750fb97411d91650d36c96bd Mon Sep 17 00:00:00 2001 From: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Date: Wed, 28 Feb 2024 12:14:43 -0500 Subject: [PATCH 012/281] Removes the old toolbox arena code (#81707) ## About The Pull Request This machine was added 5 years ago to be used for events like the toolbox tournament, but it has since been deprecated and unused (toolbox tournament has made their own version of the console that works much better and uses TGUI), making this machine not worth touching. After some discussions in discord, we said the better option would be to remove this machine and leave the toolbox tournament branch keep using their machine, rather than to port the toolbox version to TG where it will continue to not be used in-game. fun fact: This used to have a feature where it gave antag hud icons to the members of each team, it was removed when antag huds got refactored 3 years ago, hence why I'm removing an antag hud icon. ## Why It's Good For The Game Already explained, this machine has no purpose as it is now, and a new tgui UI won't save it. ## Changelog Nothing player-facing. --- code/game/machinery/computer/arena.dm | 411 ------------------------- code/game/objects/effects/countdown.dm | 13 - config/arenas/README.md | 3 - icons/mob/huds/antag_hud.dmi | Bin 8774 -> 8761 bytes tgstation.dme | 1 - 5 files changed, 428 deletions(-) delete mode 100644 code/game/machinery/computer/arena.dm delete mode 100644 config/arenas/README.md diff --git a/code/game/machinery/computer/arena.dm b/code/game/machinery/computer/arena.dm deleted file mode 100644 index 97d89c2414076..0000000000000 --- a/code/game/machinery/computer/arena.dm +++ /dev/null @@ -1,411 +0,0 @@ -#define ARENA_RED_TEAM "red" -#define ARENA_GREEN_TEAM "green" -#define ARENA_DEFAULT_ID "arena_default" -#define ARENA_CORNER_A "cornerA" -#define ARENA_CORNER_B "cornerB" - -/// Arena related landmarks -/obj/effect/landmark/arena - name = "arena landmark" - var/landmark_tag - var/arena_id = ARENA_DEFAULT_ID - -/obj/effect/landmark/arena/start - name = "arena corner A" - landmark_tag = ARENA_CORNER_A - -/obj/effect/landmark/arena/end - name = "arena corner B" - landmark_tag = ARENA_CORNER_B - -/// Controller for admin event arenas -/obj/machinery/computer/arena - name = "arena controller" - - interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON|INTERACT_MACHINE_SET_MACHINE|INTERACT_MACHINE_REQUIRES_LITERACY - - /// Arena ID - var/arena_id = ARENA_DEFAULT_ID - /// Enables/disables spawning - var/ready_to_spawn = FALSE - /// Assoc list of map templates indexed by user friendly names - var/static/list/arena_templates = list() - /// Were the config directory arenas loaded - var/static/default_arenas_loaded = FALSE - /// Name of currently loaded template - var/current_arena_template = "None" - // What turf arena clears to - var/empty_turf_type = /turf/open/indestructible - // List of team ids - var/list/teams = list(ARENA_RED_TEAM,ARENA_GREEN_TEAM) - /// List of hud instances indedxed by team id - var/static/list/team_huds = list() - /// List of hud colors indexed by team id - var/static/list/team_colors = list(ARENA_RED_TEAM = "red", ARENA_GREEN_TEAM = "green") - // Team hud index in GLOB.huds indexed by team id - var/static/list/team_hud_index = list() - - /// List of ckeys indexed by team id - var/list/team_keys = list() - /// List of outfit datums/types indexed by team id, can be empty - var/list/outfits = list() - /// Default team outfit if `outfits[team]` is empty - var/default_outfit = /datum/outfit/job/assistant - - /// Is the arena template loading in - var/loading = FALSE - - //How long between admin pressing start and doors opening - var/start_delay = 30 SECONDS - //Value for the countdown - var/start_time - var/list/countdowns = list() //List of countdown effects ticking down to start - - //Sound played when the fight starts. - var/start_sound = 'sound/items/airhorn2.ogg' - var/start_sound_volume = 50 - -/obj/machinery/computer/arena/Initialize(mapload, obj/item/circuitboard/C) - . = ..() - LoadDefaultArenas() - -/** - * Loads the arenas from config directory. - * THESE ARE FULLY CACHED FOR QUICK SWITCHING SO KEEP TRACK OF THE AMOUNT - */ -/obj/machinery/computer/arena/proc/LoadDefaultArenas() - if(default_arenas_loaded) - return - var/arena_dir = "[global.config.directory]/arenas/" - var/list/default_arenas = flist(arena_dir) - for(var/arena_file in default_arenas) - var/simple_name = replacetext(replacetext(arena_file,arena_dir,""),".dmm","") - INVOKE_ASYNC(src, PROC_REF(add_new_arena_template), null, arena_dir + arena_file, simple_name) - -/obj/machinery/computer/arena/proc/get_landmark_turf(landmark_tag) - for(var/obj/effect/landmark/arena/L in GLOB.landmarks_list) - if(L.arena_id == arena_id && L.landmark_tag == landmark_tag && isturf(L.loc)) - return L.loc - -/obj/machinery/computer/arena/proc/get_load_point() - var/turf/A = get_landmark_turf(ARENA_CORNER_A) - var/turf/B = get_landmark_turf(ARENA_CORNER_B) - return locate(min(A.x,B.x),min(A.y,B.y),A.z) - -/obj/machinery/computer/arena/proc/get_arena_turfs() - var/lp = get_load_point() - var/turf/A = get_landmark_turf(ARENA_CORNER_A) - var/turf/B = get_landmark_turf(ARENA_CORNER_B) - var/turf/hp = locate(max(A.x,B.x),max(A.y,B.y),A.z) - return block(lp,hp) - -/obj/machinery/computer/arena/proc/clear_arena() - for(var/turf/T in get_arena_turfs()) - T.empty(turf_type = /turf/open/indestructible) - current_arena_template = "None" - -/obj/machinery/computer/arena/proc/load_arena(arena_template,mob/user) - if(loading) - return - var/datum/map_template/M = arena_templates[arena_template] - if(!M) - to_chat(user,span_warning("No such arena")) - return - clear_arena() //Clear current arena - var/turf/A = get_landmark_turf(ARENA_CORNER_A) - var/turf/B = get_landmark_turf(ARENA_CORNER_B) - var/wh = abs(A.x - B.x) + 1 - var/hz = abs(A.y - B.y) + 1 - if(M.width > wh || M.height > hz) - to_chat(user,span_warning("Arena template is too big for the current arena!")) - return - loading = TRUE - var/bd = M.load(get_load_point()) - if(bd) - current_arena_template = arena_template - loading = FALSE - - message_admins("[key_name_admin(user)] loaded [arena_template] event arena for [arena_id] arena.") - log_admin("[key_name(user)] loaded [arena_template] event arena for [arena_id] arena.") - - - -/obj/machinery/computer/arena/proc/add_new_arena_template(user,fname,friendly_name) - if(!fname) - fname = input(user, "Upload dmm file to use as arena template","Upload Map Template") as null|file - if(!fname) - return - if(!friendly_name) - friendly_name = "[fname]" //Could ask the user for friendly name here - - var/datum/map_template/T = new(fname,friendly_name,TRUE) - if(!T.cached_map || T.cached_map.check_for_errors()) - to_chat(user,"Map failed to parse check for errors.") - return - - arena_templates[T.name] = T - message_admins("[key_name_admin(user)] uploaded new event arena: [friendly_name].") - log_admin("[key_name(user)] uploaded new event arena: [friendly_name].") - -/obj/machinery/computer/arena/proc/load_team(user,team) - var/rawteam = tgui_input_text(user, "Enter team member list (ckeys separated by comma)", "Team List", multiline = TRUE) - if(isnull(rawteam)) - return - for(var/i in splittext(rawteam, ",")) - var/key = ckey(i) - if(!i) - continue - add_team_member(user,team,key) - -/obj/machinery/computer/arena/proc/add_team_member(mob/user,team,key) - if(!key) - var/list/keys = list() - for(var/mob/M in GLOB.player_list) - keys += M.client - var/client/selection = tgui_input_list(user, "Select a player", "Team member", sort_key(keys)) - //Could be freeform if you want to add disconnected i guess - if(isnull(selection)) - return - key = selection.ckey - if(!team_keys[team]) - team_keys[team] = list(key) - else - team_keys[team] |= key - to_chat(user,"[key] added to [team] team.") - -/obj/machinery/computer/arena/proc/remove_member(mob/user,ckey,team) - team_keys[team] -= ckey - to_chat(user,"[ckey] removed from [team] team.") - -/obj/machinery/computer/arena/proc/spawn_member(obj/machinery/arena_spawn/spawnpoint,ckey,team) - var/mob/oldbody = get_mob_by_key(ckey) - if(!isobserver(oldbody)) - return - var/mob/living/carbon/human/M = new/mob/living/carbon/human(get_turf(spawnpoint)) - oldbody.client.prefs.safe_transfer_prefs_to(M, is_antag = TRUE) - M.set_species(/datum/species/human) // Could use setting per team - M.equipOutfit(outfits[team] ? outfits[team] : default_outfit) - M.faction += team //In case anyone wants to add team based stuff to arena special effects - M.key = ckey - -/obj/machinery/computer/arena/proc/change_outfit(mob/user,team) - outfits[team] = user.client.robust_dress_shop() - -/obj/machinery/computer/arena/proc/toggle_spawn(mob/user) - ready_to_spawn = !ready_to_spawn - to_chat(user,"You [ready_to_spawn ? "enable" : "disable"] the spawners.") - log_admin("[key_name(user)] toggled event arena spawning for [arena_id] arena.") - // Could use update_appearance on spawnpoints here to show they're on - if(ready_to_spawn) - for(var/mob/M in all_contestants()) - to_chat(M,span_userdanger("Arena you're signed up for is ready!")) - -/obj/machinery/computer/arena/proc/all_contestants() - . = list() - for(var/team in team_keys) - for(var/key in team_keys[team]) - var/mob/M = get_mob_by_key(key) - if(M) - . += M - -/obj/machinery/computer/arena/proc/reset_arena() - clear_arena() - set_doors(closed = TRUE) - -/obj/machinery/computer/arena/proc/get_spawn(team) - for(var/obj/machinery/arena_spawn/A as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/arena_spawn)) - if(A.arena_id == arena_id && A.team == team) - return A - -/obj/machinery/computer/arena/proc/start_match(mob/user) - //TODO: Check if everyone is spawned in, if not ask for confirmation. - var/timetext = DisplayTimeText(start_delay) - to_chat(user,span_notice("The match will start in [timetext].")) - for(var/mob/M in all_contestants()) - to_chat(M,span_userdanger("The gates will open in [timetext]!")) - start_time = world.time + start_delay - addtimer(CALLBACK(src, PROC_REF(begin)),start_delay) - for(var/team in teams) - var/obj/machinery/arena_spawn/team_spawn = get_spawn(team) - var/obj/effect/countdown/arena/A = new(team_spawn) - A.start() - countdowns += A - -/obj/machinery/computer/arena/proc/begin() - ready_to_spawn = FALSE - set_doors(closed = FALSE) - if(start_sound) - for(var/team in teams) - var/obj/machinery/arena_spawn/A = get_spawn(team) - playsound(A,start_sound, start_sound_volume) - for(var/mob/M in all_contestants()) - to_chat(M,span_userdanger("START!")) - //Clean up the countdowns - QDEL_LIST(countdowns) - start_time = null - updateUsrDialog() - - -/obj/machinery/computer/arena/proc/set_doors(closed = FALSE) - for(var/obj/machinery/door/poddoor/D as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/door/poddoor)) - if(D.id != arena_id) - continue - if(closed) - INVOKE_ASYNC(D, TYPE_PROC_REF(/obj/machinery/door/poddoor, close)) - else - INVOKE_ASYNC(D, TYPE_PROC_REF(/obj/machinery/door/poddoor, open)) - -/obj/machinery/computer/arena/Topic(href, href_list) - if(..()) - return - var/mob/user = usr - - if(!user.client.holder) // Should it require specific perm ? - return - - if(href_list["upload"]) - add_new_arena_template(user) - if(href_list["change_arena"]) - load_arena(href_list["change_arena"],user) - if(href_list["toggle_spawn"]) - toggle_spawn(user) - if(href_list["start"]) - start_match(user) - if(href_list["follow"]) - var/mob/observed_team_member = locate(href_list["follow"]) in GLOB.mob_list - if(observed_team_member) - user.client?.admin_follow(observed_team_member) - if(href_list["team_action"]) - var/team = href_list["team"] - switch(href_list["team_action"]) - if("addmember") - add_team_member(user,team) - if("loadteam") - load_team(user,team) - if("outfit") - change_outfit(user,team) - if(href_list["special"]) - switch(href_list["special"]) - if("reset") - reset_arena() - //Just example in case you want to add more - if("randomarena") - load_random_arena(user) - if("spawntrophy") - trophy_for_last_man_standing(user) - if(href_list["member_action"]) - var/ckey = href_list["ckey"] - var/team = href_list["team"] - switch(href_list["member_action"]) - if("remove") - remove_member(user,ckey,team) - updateUsrDialog() - -// Special functions - -/obj/machinery/computer/arena/proc/load_random_arena(mob/user) - if(!length(arena_templates)) - to_chat(user,span_warning("No arenas present")) - return - var/picked = pick(arena_templates) - load_arena(picked,user) - -/obj/machinery/computer/arena/proc/trophy_for_last_man_standing() - var/arena_turfs = get_arena_turfs() - for(var/mob/living/L in GLOB.mob_living_list) - if(L.stat != DEAD && (get_turf(L) in arena_turfs)) - var/obj/item/reagent_containers/cup/glass/trophy/gold_cup/G = new(get_turf(L)) - G.name = "[L.real_name]'s Trophy" - -/obj/machinery/computer/arena/ui_interact(mob/user) - . = ..() - var/list/dat = list() - dat += "
Spawning is currently [ready_to_spawn ? "enabled" : "disabled"] Toggle
" - dat += "
[start_time ? "Stop countdown" : "Start!"]
" - for(var/team in teams) - dat += "

[capitalize(team)] team:

" - dat += "
    " - for(var/ckey in team_keys[team]) - var/player_status = "Not Present" - var/mob/M = get_mob_by_key(ckey) - if(M) - //Should define waiting room upper/lower corner and check if they're there instead of generic live/dead check - if(isobserver(M)) - player_status = "Ghosted" - else - player_status = M.stat == DEAD ? "Dead" : "Alive" - dat += "
  • [ckey] - [player_status] - " - dat += "FLW" - dat += "Remove" - //Add more per player features here - dat += "
  • " - dat += "
" - dat += "
Team Outfit : [outfits[team] ? outfits[team] : default_outfit]
" - dat += "Load team" - dat += "Add member" - dat += "Change Outfit" - //Add more per team features here - - dat += "Current arena: [current_arena_template]" - dat += "

Arena List:

" - for(var/A in arena_templates) - dat += "[A]
" - dat += "
" - dat += "Upload new arena
" - dat += "
" - //Special actions - dat += "Reset Arena.
" - dat += "Load random arena.
" - dat += "Spawn trophies for survivors.
" - - var/datum/browser/popup = new(user, "arena controller", "Arena Controller", 500, 600) - popup.set_content(dat.Join()) - popup.open() - -/// Arena spawnpoint -/obj/machinery/arena_spawn - name = "Arena Spawnpoint" - icon = 'icons/obj/machines/beacon.dmi' - icon_state = "syndbeacon" - resistance_flags = INDESTRUCTIBLE - /// In case we have multiple arena controllers at once. - var/arena_id = ARENA_DEFAULT_ID - /// Team ID - var/team = "default" - /// only exist to cut down on glob.machines lookups, do not modify - var/obj/machinery/computer/arena/_controller - -/obj/machinery/arena_spawn/red - name = "Red Team Spawnpoint" - color = "red" - team = ARENA_RED_TEAM - -/obj/machinery/arena_spawn/green - name = "Green Team Spawnpoint" - color = "green" - team = ARENA_GREEN_TEAM - -/obj/machinery/arena_spawn/proc/get_controller() - if(_controller && !QDELETED(_controller) && _controller.arena_id == arena_id) - return _controller - for(var/obj/machinery/computer/arena/A as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/computer/arena)) - if(A.arena_id == arena_id) - _controller = A - return _controller - -/obj/machinery/arena_spawn/attack_ghost(mob/user) - var/obj/machinery/computer/arena/C = get_controller() - if(!C) //Unlinked spawn - return - if(C.ready_to_spawn) - var/list/allowed_keys = C.team_keys[team] - if(!(user.ckey in allowed_keys)) - to_chat(user,span_warning("You're not on the team list.")) - return - C.spawn_member(src,user.ckey,team) - -#undef ARENA_GREEN_TEAM -#undef ARENA_RED_TEAM -#undef ARENA_DEFAULT_ID -#undef ARENA_CORNER_A -#undef ARENA_CORNER_B diff --git a/code/game/objects/effects/countdown.dm b/code/game/objects/effects/countdown.dm index ab422dda3d156..d83440ee9bd36 100644 --- a/code/game/objects/effects/countdown.dm +++ b/code/game/objects/effects/countdown.dm @@ -162,19 +162,6 @@ var/time_left = max(0, (H.finish_time - world.time) / 10) return round(time_left) -/obj/effect/countdown/arena - invisibility = INVISIBILITY_NONE - name = "arena countdown" - -/obj/effect/countdown/arena/get_value() - var/obj/machinery/arena_spawn/A = attached_to - if(!istype(A)) - return - else - var/obj/machinery/computer/arena/C = A.get_controller() - var/time_left = max(0, (C.start_time - world.time) / 10) - return round(time_left) - /obj/effect/countdown/flower_bud name = "flower bud countdown" diff --git a/config/arenas/README.md b/config/arenas/README.md deleted file mode 100644 index 9f31ce2349a93..0000000000000 --- a/config/arenas/README.md +++ /dev/null @@ -1,3 +0,0 @@ -Add admin arena dmms here. - -**These are fully cached so keep this directory empty by default.** \ No newline at end of file diff --git a/icons/mob/huds/antag_hud.dmi b/icons/mob/huds/antag_hud.dmi index aa96f2338b250e72197c6ffe35d34ea531ce6b77..bb44e3de9568f13f1e1cd5eb36d4511e66119e41 100644 GIT binary patch literal 8761 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 Ho7evfV0d4v literal 8774 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 bSkPlfwUws@m|)!hA%KR8u5ziOP4NE#0~T`F diff --git a/tgstation.dme b/tgstation.dme index 6fae686f69add..df071abcac476 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1997,7 +1997,6 @@ #include "code\game\machinery\computer\accounting.dm" #include "code\game\machinery\computer\aifixer.dm" #include "code\game\machinery\computer\apc_control.dm" -#include "code\game\machinery\computer\arena.dm" #include "code\game\machinery\computer\atmos_alert.dm" #include "code\game\machinery\computer\buildandrepair.dm" #include "code\game\machinery\computer\camera.dm" From 8144d991e1716eb7ec39789da5b81112007b1a58 Mon Sep 17 00:00:00 2001 From: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Date: Wed, 28 Feb 2024 23:51:30 +0530 Subject: [PATCH 013/281] Lowers thermic constant of Cryostylane reaction (#81709) ## About The Pull Request - Fixes #81687 Thermic constant of Cryostylane reaction now reduced from -7.5 to -1.5. Meaning for every 1u of Cryostylane created the overall temperature of the holder reduces by 1.5k so for e.g. if you create 30u of cryostylane without any heating the temps reduces by 30 * 1.5 = 45k(the drop of temperature increases as the reaction temps grows closer to optimal temperature in our case -200k) When testing upon adding 30u of water, nitrogen & stable plasma and cooling the mixture to 270k via tier1 chem heater you acheive 30u of Cryostylane at 82% purity and the final temps are 180k P.S. adjusted range of chem debuger to include negative values. Helped me in debugging this ## Changelog :cl: fix: Cryostylane reaction now has a moderate & not extreme cooling effect. Helps you achieve more pure amounts of Cryostylane /:cl: --- code/modules/reagents/chemistry/recipes/pyrotechnics.dm | 2 +- tgui/packages/tgui/interfaces/ChemRecipeDebug.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 8e74b0ad6f869..901041b25d7a9 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -419,7 +419,7 @@ determin_ph_range = 6 temp_exponent_factor = 0.5 ph_exponent_factor = 1 - thermic_constant = -7.5 + thermic_constant = -1.5 H_ion_release = 0 rate_up_lim = 10 purity_min = 0.2 diff --git a/tgui/packages/tgui/interfaces/ChemRecipeDebug.tsx b/tgui/packages/tgui/interfaces/ChemRecipeDebug.tsx index c108966bbb757..a1c53ffb8791f 100644 --- a/tgui/packages/tgui/interfaces/ChemRecipeDebug.tsx +++ b/tgui/packages/tgui/interfaces/ChemRecipeDebug.tsx @@ -368,7 +368,7 @@ export const ChemRecipeDebug = (props) => { step={0.1} stepPixelSize={3} value={editReaction?.editValue || 0} - minValue={0} + minValue={-1000} maxValue={1000} disabled={editReaction === null} onDrag={(e, value) => From f2ceb77a41b6b5c6ea301923ea66977b372705c3 Mon Sep 17 00:00:00 2001 From: Jacquerel Date: Wed, 28 Feb 2024 18:22:09 +0000 Subject: [PATCH 014/281] Temporary bees animate on death and no longer produce corpses (#81714) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## About The Pull Request I requested this as a change on the Hive Head PR but Ghommie didn't notice and merged it anyway so I had to do it myself instead of forcing the underclass to do it for me 😔 ![dreamseeker_d8pI4uCCqt](https://github.com/tgstation/tgstation/assets/7483112/bff1a2d7-98c7-49d2-854b-a16f709520ab) Anyway now bees created by the "beesplosion" reaction and by the Hive Head changeling power no longer produce corpses, and have a death animation. ## Why It's Good For The Game It looks better. It was weird that the bees would create corpses if killed but not if they expired. ## Changelog :cl: image: adds a visual effect for hive head bees despawning /:cl: --- .../temporary_visuals/miscellaneous.dm | 4 ++-- .../changeling/powers/mutations.dm | 10 ++------- .../mob/living/basic/farm_animals/bee/_bee.dm | 22 ++++++++++++++----- .../basic/lavaland/hivelord/hivelord.dm | 2 +- .../basic/lavaland/legion/legion_brood.dm | 2 +- .../modules/mob/living/carbon/alien/organs.dm | 1 - .../chemistry/recipes/pyrotechnics.dm | 2 +- 7 files changed, 24 insertions(+), 19 deletions(-) diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm index 6c96f24e33697..06b4a8e4b0721 100644 --- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm +++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm @@ -683,11 +683,11 @@ duration = 0.4 SECONDS /// Plays a dispersing animation on hivelord and legion minions so they don't just vanish -/obj/effect/temp_visual/hive_spawn_wither +/obj/effect/temp_visual/despawn_effect name = "withering spawn" duration = 1 SECONDS -/obj/effect/temp_visual/hive_spawn_wither/Initialize(mapload, atom/copy_from) +/obj/effect/temp_visual/despawn_effect/Initialize(mapload, atom/copy_from) if (isnull(copy_from)) . = ..() return INITIALIZE_HINT_QDEL diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index 1f3ac272d6fcc..af7348f7bf139 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -651,17 +651,15 @@ button_icon_state = "queen_item" cooldown_time = 30 SECONDS ///The mob we're going to spawn - var/spawn_type = /mob/living/basic/bee + var/spawn_type = /mob/living/basic/bee/timed/short ///How many are we going to spawn var/spawn_count = 6 - ///How long our summoned mobs last for - var/spawn_lifespan = 25 SECONDS /datum/action/cooldown/hivehead_spawn_minions/PreActivate(atom/target) if(owner.movement_type & VENTCRAWLING) owner.balloon_alert(owner, "unavailable here") return - . = ..() + return ..() /datum/action/cooldown/hivehead_spawn_minions/Activate(atom/target) . = ..() @@ -672,8 +670,6 @@ for(var/i in 1 to spawns) var/mob/living/basic/summoned_minion = new spawn_type(get_turf(owner)) summoned_minion.faction = list("[REF(owner)]") - if(spawn_lifespan != 0 SECONDS) - QDEL_IN(summoned_minion, spawn_lifespan) minion_additional_changes(summoned_minion) ///Our tell that we're using this ability. Usually a sound and a visible message.area @@ -703,8 +699,6 @@ cooldown_time = 15 SECONDS spawn_type = /mob/living/basic/legion_brood spawn_count = 4 - //Legion heads go away by themselves, we don't have to handle that - spawn_lifespan = 0 SECONDS /datum/action/cooldown/hivehead_spawn_minions/legion/do_tell() owner.visible_message(span_warning("[owner]'s head begins to shake as legion begin to pour out!"), span_warning("We release the legion."), span_hear("You hear a loud squishing sound!")) diff --git a/code/modules/mob/living/basic/farm_animals/bee/_bee.dm b/code/modules/mob/living/basic/farm_animals/bee/_bee.dm index 5510b81679e94..89eedd7cb5593 100644 --- a/code/modules/mob/living/basic/farm_animals/bee/_bee.dm +++ b/code/modules/mob/living/basic/farm_animals/bee/_bee.dm @@ -106,9 +106,13 @@ beegent = null if(flags_1 & HOLOGRAM_1 || gibbed) return ..() - new /obj/item/trash/bee(loc, src) + spawn_corpse() return ..() +/// Leave something to remember us by +/mob/living/basic/bee/proc/spawn_corpse() + new /obj/item/trash/bee(loc, src) + /mob/living/basic/bee/proc/pre_attack(mob/living/puncher, atom/target) SIGNAL_HANDLER @@ -213,12 +217,20 @@ var/datum/reagent/toxin = pick(typesof(/datum/reagent/toxin)) assign_reagent(GLOB.chemical_reagents_list[toxin]) -/mob/living/basic/bee/short - desc = "These bees seem unstable and won't survive for long." +/// A bee which despawns after a short amount of time (beespawns?) +/mob/living/basic/bee/timed + /// How long do we live? + var/lifespan = 50 SECONDS -/mob/living/basic/bee/short/Initialize(mapload, timetolive=50 SECONDS) +/mob/living/basic/bee/timed/short + lifespan = 25 SECONDS + +/mob/living/basic/bee/timed/Initialize(mapload) . = ..() - addtimer(CALLBACK(src, PROC_REF(death)), timetolive) + addtimer(CALLBACK(src, PROC_REF(death)), lifespan) + +/mob/living/basic/bee/timed/spawn_corpse() + new /obj/effect/temp_visual/despawn_effect(get_turf(src), /* copy_from = */ src) /obj/item/queen_bee name = "queen bee" diff --git a/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm b/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm index 7b1e461991ce7..f0de6c3272e55 100644 --- a/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm +++ b/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm @@ -110,5 +110,5 @@ /mob/living/basic/hivelord_brood/death(gibbed) if (!gibbed) - new /obj/effect/temp_visual/hive_spawn_wither(get_turf(src), /* copy_from = */ src) + new /obj/effect/temp_visual/despawn_effect(get_turf(src), /* copy_from = */ src) return ..() diff --git a/code/modules/mob/living/basic/lavaland/legion/legion_brood.dm b/code/modules/mob/living/basic/lavaland/legion/legion_brood.dm index 7cc5ea06ad8b6..96c7319380a2e 100644 --- a/code/modules/mob/living/basic/lavaland/legion/legion_brood.dm +++ b/code/modules/mob/living/basic/lavaland/legion/legion_brood.dm @@ -42,7 +42,7 @@ /mob/living/basic/legion_brood/death(gibbed) if (!gibbed) - new /obj/effect/temp_visual/hive_spawn_wither(get_turf(src), /* copy_from = */ src) + new /obj/effect/temp_visual/despawn_effect(get_turf(src), /* copy_from = */ src) return ..() /mob/living/basic/legion_brood/melee_attack(mob/living/target, list/modifiers, ignore_cooldown) diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm index a73926b18aea8..9303cd2347413 100644 --- a/code/modules/mob/living/carbon/alien/organs.dm +++ b/code/modules/mob/living/carbon/alien/organs.dm @@ -203,7 +203,6 @@ RegisterSignal(thing, COMSIG_MOVABLE_MOVED, PROC_REF(content_moved)) RegisterSignal(thing, COMSIG_QDELETING, PROC_REF(content_deleted)) if(isliving(thing)) - var/mob/living/lad = thing RegisterSignal(thing, COMSIG_LIVING_DEATH, PROC_REF(content_died)) stomach_contents += thing thing.forceMove(owner || src) // We assert that if we have no owner, we will not be nullspaced diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 901041b25d7a9..bc41e25090bf1 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -194,7 +194,7 @@ beeagents += R var/bee_amount = round(created_volume * 0.2) for(var/i in 1 to bee_amount) - var/mob/living/basic/bee/short/new_bee = new(location) + var/mob/living/basic/bee/timed/new_bee = new(location) if(LAZYLEN(beeagents)) new_bee.assign_reagent(pick(beeagents)) From dcff4ff921017396f1f505a6ec0556c49ef6cca4 Mon Sep 17 00:00:00 2001 From: orange man <61334995+comfyorange@users.noreply.github.com> Date: Thu, 29 Feb 2024 07:22:49 +1300 Subject: [PATCH 015/281] Automatic changelog for PR #81709 [ci skip] --- html/changelogs/AutoChangeLog-pr-81709.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-81709.yml diff --git a/html/changelogs/AutoChangeLog-pr-81709.yml b/html/changelogs/AutoChangeLog-pr-81709.yml new file mode 100644 index 0000000000000..6814b22e9102a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-81709.yml @@ -0,0 +1,4 @@ +author: "SyncIt21" +delete-after: True +changes: + - bugfix: "Cryostylane reaction now has a moderate & not extreme cooling effect. Helps you achieve more pure amounts of Cryostylane" \ No newline at end of file From acc24a0b68fc2e56e1679f62570d767fdcd329f7 Mon Sep 17 00:00:00 2001 From: orange man <61334995+comfyorange@users.noreply.github.com> Date: Thu, 29 Feb 2024 07:24:34 +1300 Subject: [PATCH 016/281] Automatic changelog for PR #81714 [ci skip] --- html/changelogs/AutoChangeLog-pr-81714.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-81714.yml diff --git a/html/changelogs/AutoChangeLog-pr-81714.yml b/html/changelogs/AutoChangeLog-pr-81714.yml new file mode 100644 index 0000000000000..f034f9485c08a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-81714.yml @@ -0,0 +1,4 @@ +author: "Jacquerel" +delete-after: True +changes: + - image: "adds a visual effect for hive head bees despawning" \ No newline at end of file From 8477939176d3ca02ae68e2084be18676e3657e2d Mon Sep 17 00:00:00 2001 From: 13spacemen <46101244+13spacemen@users.noreply.github.com> Date: Thu, 29 Feb 2024 00:33:03 +0500 Subject: [PATCH 017/281] fixes inability to create material airlocks (#81711) ## About The Pull Request Fixes https://github.com/tgstation/tgstation/issues/81710 runtime due to parent proc not returning the airlock also added an update_appearance() ## Changelog :cl: fix: You can build material airlocks again /:cl: --- code/game/objects/structures/door_assembly.dm | 1 + code/game/objects/structures/door_assembly_types.dm | 1 + 2 files changed, 2 insertions(+) diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index de996015e592c..f110cd8b43eab 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -325,6 +325,7 @@ door.update_appearance() qdel(src) + return door /obj/structure/door_assembly/update_overlays() . = ..() diff --git a/code/game/objects/structures/door_assembly_types.dm b/code/game/objects/structures/door_assembly_types.dm index 36b41fbc32632..589cad42bcabc 100644 --- a/code/game/objects/structures/door_assembly_types.dm +++ b/code/game/objects/structures/door_assembly_types.dm @@ -293,4 +293,5 @@ /obj/structure/door_assembly/door_assembly_material/finish_door() var/obj/machinery/door/airlock/door = ..() door.set_custom_materials(custom_materials) + door.update_appearance() return door From 9a26af19a0ea00e87b80df138d0a8a56213eee66 Mon Sep 17 00:00:00 2001 From: orange man <61334995+comfyorange@users.noreply.github.com> Date: Thu, 29 Feb 2024 08:33:21 +1300 Subject: [PATCH 018/281] Automatic changelog for PR #81711 [ci skip] --- html/changelogs/AutoChangeLog-pr-81711.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-81711.yml diff --git a/html/changelogs/AutoChangeLog-pr-81711.yml b/html/changelogs/AutoChangeLog-pr-81711.yml new file mode 100644 index 0000000000000..8da2a1db26784 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-81711.yml @@ -0,0 +1,4 @@ +author: "13spacemen" +delete-after: True +changes: + - bugfix: "You can build material airlocks again" \ No newline at end of file From b71f47e2366150af7d790257a5550a2ebdc41e9e Mon Sep 17 00:00:00 2001 From: Vekter Date: Wed, 28 Feb 2024 14:24:09 -0600 Subject: [PATCH 019/281] Adds a 4th law to the Painter lawset regarding cultivating an audience (#81717) ## About The Pull Request This PR adds the following law to the Artist lawset: `4. Art requires appreciation. Cultivate an audience aboard the station to ensure as many as possible see your works.` ## Why It's Good For The Game Artist has always been kind of vague (intentionally, I imagine), but I don't think the intent has ever been to encourage AIs to go "Blood is art, right? It constitutes art if I just murder fucking everyone on the station, right?". This law helps to steer things in a more constructive direction while leaving room for loopholes. I tried to word it in a way that allows AIs who want to be a little daring and bloodthirsty to kill a crewmember or two for "paint" without encouraging them to kill everyone. You need an audience, so killing everyone on the station would run counter to that. ## Changelog :cl: add: Added a new law to the Artist lawset in order to encourage Artist AIs to build an audience. /:cl: --- code/datums/ai_laws/laws_neutral.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/datums/ai_laws/laws_neutral.dm b/code/datums/ai_laws/laws_neutral.dm index 2fe19dafbc517..7adef14d95b89 100644 --- a/code/datums/ai_laws/laws_neutral.dm +++ b/code/datums/ai_laws/laws_neutral.dm @@ -60,6 +60,7 @@ "You are a universally renowned artist.", "The station is your canvas.", "Make something beautiful out of your canvas. It will be admired as an artistic wonder of this sector.", + "Art requires appreciation. Cultivate an audience aboard the station to ensure as many as possible see your works.", ) /datum/ai_laws/tyrant From 605d2266c51fafc0ee254ab7a8997b50caf10762 Mon Sep 17 00:00:00 2001 From: orange man <61334995+comfyorange@users.noreply.github.com> Date: Thu, 29 Feb 2024 09:24:29 +1300 Subject: [PATCH 020/281] Automatic changelog for PR #81717 [ci skip] --- html/changelogs/AutoChangeLog-pr-81717.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-81717.yml diff --git a/html/changelogs/AutoChangeLog-pr-81717.yml b/html/changelogs/AutoChangeLog-pr-81717.yml new file mode 100644 index 0000000000000..b0db217834725 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-81717.yml @@ -0,0 +1,4 @@ +author: "TheVekter" +delete-after: True +changes: + - rscadd: "Added a new law to the Artist lawset in order to encourage Artist AIs to build an audience." \ No newline at end of file From a1146bd97b89eb98b94662e660e82242967102cb Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 29 Feb 2024 00:19:57 +0000 Subject: [PATCH 021/281] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-81594.yml | 4 ---- html/changelogs/AutoChangeLog-pr-81700.yml | 6 ------ html/changelogs/AutoChangeLog-pr-81701.yml | 4 ---- html/changelogs/AutoChangeLog-pr-81709.yml | 4 ---- html/changelogs/AutoChangeLog-pr-81711.yml | 4 ---- html/changelogs/AutoChangeLog-pr-81712.yml | 4 ---- html/changelogs/AutoChangeLog-pr-81714.yml | 4 ---- html/changelogs/AutoChangeLog-pr-81717.yml | 4 ---- html/changelogs/archive/2024-02.yml | 24 ++++++++++++++++++++++ 9 files changed, 24 insertions(+), 34 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-81594.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81700.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81701.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81709.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81711.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81712.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81714.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-81717.yml diff --git a/html/changelogs/AutoChangeLog-pr-81594.yml b/html/changelogs/AutoChangeLog-pr-81594.yml deleted file mode 100644 index bf9c3e68fa1d9..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81594.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "mc-oofert" -delete-after: True -changes: - - bugfix: "Grilles dont break by just walking into them under any circumstances" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81700.yml b/html/changelogs/AutoChangeLog-pr-81700.yml deleted file mode 100644 index 220aa6e258153..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81700.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Momo8289" -delete-after: True -changes: - - bugfix: "Fixes the slot machine's jackpot. It should now give all of the available prize money + 10,000 credits as payout for a jackpot." - - refactor: "Converts the slot machine's UI over to TGUI" - - rscadd: "The slot machine now has a whole new type of jackpot! This one's a banger!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81701.yml b/html/changelogs/AutoChangeLog-pr-81701.yml deleted file mode 100644 index 086180971c51a..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81701.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "A.C.M.O." -delete-after: True -changes: - - bugfix: "Fixed the AI hologram's ability to copy the appearance of crew members." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81709.yml b/html/changelogs/AutoChangeLog-pr-81709.yml deleted file mode 100644 index 6814b22e9102a..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81709.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SyncIt21" -delete-after: True -changes: - - bugfix: "Cryostylane reaction now has a moderate & not extreme cooling effect. Helps you achieve more pure amounts of Cryostylane" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81711.yml b/html/changelogs/AutoChangeLog-pr-81711.yml deleted file mode 100644 index 8da2a1db26784..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81711.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "13spacemen" -delete-after: True -changes: - - bugfix: "You can build material airlocks again" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81712.yml b/html/changelogs/AutoChangeLog-pr-81712.yml deleted file mode 100644 index bd5f7934fc995..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81712.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "necromanceranne" -delete-after: True -changes: - - bugfix: "Being in a Swat Suit appropriately protects you from collisions with a body, rather than the body thrown at you having these protections protecting YOU, the victim of the collision." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81714.yml b/html/changelogs/AutoChangeLog-pr-81714.yml deleted file mode 100644 index f034f9485c08a..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81714.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Jacquerel" -delete-after: True -changes: - - image: "adds a visual effect for hive head bees despawning" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-81717.yml b/html/changelogs/AutoChangeLog-pr-81717.yml deleted file mode 100644 index b0db217834725..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-81717.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TheVekter" -delete-after: True -changes: - - rscadd: "Added a new law to the Artist lawset in order to encourage Artist AIs to build an audience." \ No newline at end of file diff --git a/html/changelogs/archive/2024-02.yml b/html/changelogs/archive/2024-02.yml index a9e41aed680fd..e98a9540d4a2b 100644 --- a/html/changelogs/archive/2024-02.yml +++ b/html/changelogs/archive/2024-02.yml @@ -842,3 +842,27 @@ - balance: Fugitive hunters will spawn early if the emergency shuttle is called. softcerv: - code_imp: TRAIT_DEAF now works on non-carbon mobs +2024-02-29: + 13spacemen: + - bugfix: You can build material airlocks again + A.C.M.O.: + - bugfix: Fixed the AI hologram's ability to copy the appearance of crew members. + Jacquerel: + - image: adds a visual effect for hive head bees despawning + Momo8289: + - bugfix: Fixes the slot machine's jackpot. It should now give all of the available + prize money + 10,000 credits as payout for a jackpot. + - refactor: Converts the slot machine's UI over to TGUI + - rscadd: The slot machine now has a whole new type of jackpot! This one's a banger! + SyncIt21: + - bugfix: Cryostylane reaction now has a moderate & not extreme cooling effect. + Helps you achieve more pure amounts of Cryostylane + TheVekter: + - rscadd: Added a new law to the Artist lawset in order to encourage Artist AIs + to build an audience. + mc-oofert: + - bugfix: Grilles dont break by just walking into them under any circumstances + necromanceranne: + - bugfix: Being in a Swat Suit appropriately protects you from collisions with a + body, rather than the body thrown at you having these protections protecting + YOU, the victim of the collision. From c0c1a0e7c5f95588ea670e01d38cff9bd0397fa2 Mon Sep 17 00:00:00 2001 From: orange man <61334995+comfyorange@users.noreply.github.com> Date: Thu, 29 Feb 2024 16:14:55 +1300 Subject: [PATCH 022/281] Automatic TGS DMAPI Update (#81655) This pull request updates the TGS DMAPI to the latest version. Please note any changes that may be breaking or unimplemented in your codebase by checking what changes are in the definitions file: code/__DEFINES/tgs.dm before merging. Co-authored-by: tgstation-server --- code/__DEFINES/tgs.dm | 19 ++++++++++- code/modules/tgs/core/core.dm | 8 +++++ code/modules/tgs/core/datum.dm | 5 ++- code/modules/tgs/v4/api.dm | 6 ++-- code/modules/tgs/v5/__interop_version.dm | 2 +- code/modules/tgs/v5/_defines.dm | 9 +++++ code/modules/tgs/v5/api.dm | 42 +++++++++++++++++++++++- code/modules/tgs/v5/bridge.dm | 7 ++-- code/modules/tgs/v5/topic.dm | 13 ++++++++ code/modules/tgs/v5/undefs.dm | 9 +++++ 10 files changed, 111 insertions(+), 9 deletions(-) diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index fdfec5e8ca086..a4fb6d40be73e 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,6 +1,6 @@ // tgstation-server DMAPI -#define TGS_DMAPI_VERSION "7.0.2" +#define TGS_DMAPI_VERSION "7.1.1" // All functions and datums outside this document are subject to change with any version and should not be relied on. @@ -50,6 +50,13 @@ #endif +#ifndef TGS_FILE2TEXT_NATIVE +#ifdef file2text +#error Your codebase is re-defining the BYOND proc file2text. The DMAPI requires the native version to read the result of world.Export(). You can fix this by adding "#define TGS_FILE2TEXT_NATIVE file2text" before your override of file2text to allow the DMAPI to use the native version. This will only be used for world.Export(), not regular file accesses +#endif +#define TGS_FILE2TEXT_NATIVE file2text +#endif + // EVENT CODES /// Before a reboot mode change, extras parameters are the current and new reboot mode enums. @@ -490,6 +497,16 @@ /world/proc/TgsChatChannelInfo() return +/** + * Trigger an event in TGS. Requires TGS version >= 6.3.0. Returns [TRUE] if the event was triggered successfully, [FALSE] otherwise. This function may sleep! + * + * event_name - The name of the event to trigger + * parameters - Optional list of string parameters to pass as arguments to the event script. The first parameter passed to a script will always be the running game's directory followed by these parameters. + * wait_for_completion - If set, this function will not return until the event has run to completion. + */ +/world/proc/TgsTriggerEvent(event_name, list/parameters, wait_for_completion = FALSE) + return + /* The MIT License diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm index 8be96f27404a4..15622228e91fe 100644 --- a/code/modules/tgs/core/core.dm +++ b/code/modules/tgs/core/core.dm @@ -166,3 +166,11 @@ var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) if(api) return api.Visibility() + +/world/TgsTriggerEvent(event_name, list/parameters, wait_for_completion = FALSE) + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + if(!istype(parameters, /list)) + parameters = list() + + return api.TriggerEvent(event_name, parameters, wait_for_completion) diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm index 07ce3b684584e..898516f12486f 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -17,7 +17,7 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) world.sleep_offline = FALSE // https://www.byond.com/forum/post/2894866 del(world) world.sleep_offline = FALSE // just in case, this is BYOND after all... - sleep(1) + sleep(world.tick_lag) TGS_DEBUG_LOG("BYOND DIDN'T TERMINATE THE WORLD!!! TICK IS: [world.time], sleep_offline: [world.sleep_offline]") /datum/tgs_api/latest @@ -69,3 +69,6 @@ TGS_PROTECT_DATUM(/datum/tgs_api) /datum/tgs_api/proc/Visibility() return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/TriggerEvent(event_name, list/parameters, wait_for_completion) + return FALSE diff --git a/code/modules/tgs/v4/api.dm b/code/modules/tgs/v4/api.dm index 945e2e4117671..7c87922750b9b 100644 --- a/code/modules/tgs/v4/api.dm +++ b/code/modules/tgs/v4/api.dm @@ -181,7 +181,7 @@ var/json = json_encode(data) while(requesting_new_port && !override_requesting_new_port) - sleep(1) + sleep(world.tick_lag) //we need some port open at this point to facilitate return communication if(!world.port) @@ -209,7 +209,7 @@ requesting_new_port = FALSE while(export_lock) - sleep(1) + sleep(world.tick_lag) export_lock = TRUE last_interop_response = null @@ -217,7 +217,7 @@ text2file(json, server_commands_json_path) for(var/I = 0; I < EXPORT_TIMEOUT_DS && !last_interop_response; ++I) - sleep(1) + sleep(world.tick_lag) if(!last_interop_response) TGS_ERROR_LOG("Failed to get export result for: [json]") diff --git a/code/modules/tgs/v5/__interop_version.dm b/code/modules/tgs/v5/__interop_version.dm index 616263098fd3e..f4806f7adb97c 100644 --- a/code/modules/tgs/v5/__interop_version.dm +++ b/code/modules/tgs/v5/__interop_version.dm @@ -1 +1 @@ -"5.8.0" +"5.9.0" diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm index 1c7d67d20cdf6..92c7a8388a711 100644 --- a/code/modules/tgs/v5/_defines.dm +++ b/code/modules/tgs/v5/_defines.dm @@ -14,6 +14,7 @@ #define DMAPI5_BRIDGE_COMMAND_KILL 4 #define DMAPI5_BRIDGE_COMMAND_CHAT_SEND 5 #define DMAPI5_BRIDGE_COMMAND_CHUNK 6 +#define DMAPI5_BRIDGE_COMMAND_EVENT 7 #define DMAPI5_PARAMETER_ACCESS_IDENTIFIER "accessIdentifier" #define DMAPI5_PARAMETER_CUSTOM_COMMANDS "customCommands" @@ -34,6 +35,7 @@ #define DMAPI5_BRIDGE_PARAMETER_VERSION "version" #define DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE "chatMessage" #define DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL "minimumSecurityLevel" +#define DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION "eventInvocation" #define DMAPI5_BRIDGE_RESPONSE_NEW_PORT "newPort" #define DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION "runtimeInformation" @@ -81,6 +83,7 @@ #define DMAPI5_TOPIC_COMMAND_SEND_CHUNK 9 #define DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK 10 #define DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST 11 +#define DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT 12 #define DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE "commandType" #define DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND "chatCommand" @@ -116,3 +119,9 @@ #define DMAPI5_CUSTOM_CHAT_COMMAND_NAME "name" #define DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT "helpText" #define DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY "adminOnly" + +#define DMAPI5_EVENT_ID "eventId" + +#define DMAPI5_EVENT_INVOCATION_NAME "eventName" +#define DMAPI5_EVENT_INVOCATION_PARAMETERS "parameters" +#define DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION "notifyCompletion" diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm index a5c064a8eaf1e..95b8edd3ee5c2 100644 --- a/code/modules/tgs/v5/api.dm +++ b/code/modules/tgs/v5/api.dm @@ -27,6 +27,8 @@ var/chunked_requests = 0 var/list/chunked_topics = list() + var/list/pending_events = list() + var/detached = FALSE /datum/tgs_api/v5/New() @@ -46,6 +48,10 @@ var/datum/tgs_version/api_version = ApiVersion() version = null // we want this to be the TGS version, not the interop version + + // sleep once to prevent an issue where world.Export on the first tick can hang indefinitely + sleep(world.tick_lag) + var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands(), DMAPI5_PARAMETER_TOPIC_PORT = GetTopicPort())) if(!istype(bridge_response)) TGS_ERROR_LOG("Failed initial bridge request!") @@ -125,7 +131,7 @@ TGS_DEBUG_LOG("RequireInitialBridgeResponse: Starting sleep") logged = TRUE - sleep(1) + sleep(world.tick_lag) TGS_DEBUG_LOG("RequireInitialBridgeResponse: Passed") @@ -249,6 +255,40 @@ WaitForReattach(TRUE) return chat_channels.Copy() +/datum/tgs_api/v5/TriggerEvent(event_name, list/parameters, wait_for_completion) + RequireInitialBridgeResponse() + WaitForReattach(TRUE) + + if(interop_version.minor < 9) + TGS_WARNING_LOG("Interop version too low for custom events!") + return FALSE + + var/str_parameters = list() + for(var/i in parameters) + str_parameters += "[i]" + + var/list/response = Bridge(DMAPI5_BRIDGE_COMMAND_EVENT, list(DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION = list(DMAPI5_EVENT_INVOCATION_NAME = event_name, DMAPI5_EVENT_INVOCATION_PARAMETERS = str_parameters, DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION = wait_for_completion))) + if(!response) + return FALSE + + var/event_id = response[DMAPI5_EVENT_ID] + if(!event_id) + return FALSE + + TGS_DEBUG_LOG("Created event ID: [event_id]") + if(!wait_for_completion) + return TRUE + + TGS_DEBUG_LOG("Waiting for completion of event ID: [event_id]") + + while(!pending_events[event_id]) + sleep(world.tick_lag) + + TGS_DEBUG_LOG("Completed wait on event ID: [event_id]") + pending_events -= event_id + + return TRUE + /datum/tgs_api/v5/proc/DecodeChannels(chat_update_json) TGS_DEBUG_LOG("DecodeChannels()") var/list/chat_channels_json = chat_update_json[DMAPI5_CHAT_UPDATE_CHANNELS] diff --git a/code/modules/tgs/v5/bridge.dm b/code/modules/tgs/v5/bridge.dm index a0ab359876704..0c5e701a32b60 100644 --- a/code/modules/tgs/v5/bridge.dm +++ b/code/modules/tgs/v5/bridge.dm @@ -65,7 +65,7 @@ if(detached) // Wait up to one minute for(var/i in 1 to 600) - sleep(1) + sleep(world.tick_lag) if(!detached && (!require_channels || length(chat_channels))) break @@ -77,8 +77,11 @@ /datum/tgs_api/v5/proc/PerformBridgeRequest(bridge_request) WaitForReattach(FALSE) + TGS_DEBUG_LOG("Bridge request start") // This is an infinite sleep until we get a response var/export_response = world.Export(bridge_request) + TGS_DEBUG_LOG("Bridge request complete") + if(!export_response) TGS_ERROR_LOG("Failed bridge request: [bridge_request]") return @@ -88,7 +91,7 @@ TGS_ERROR_LOG("Failed bridge request, missing content!") return - var/response_json = file2text(content) + var/response_json = TGS_FILE2TEXT_NATIVE(content) if(!response_json) TGS_ERROR_LOG("Failed bridge request, failed to load content!") return diff --git a/code/modules/tgs/v5/topic.dm b/code/modules/tgs/v5/topic.dm index 05e6c4e1b2146..e1f2cb6385789 100644 --- a/code/modules/tgs/v5/topic.dm +++ b/code/modules/tgs/v5/topic.dm @@ -176,6 +176,10 @@ var/list/reattach_response = TopicResponse(error_message) reattach_response[DMAPI5_PARAMETER_CUSTOM_COMMANDS] = ListCustomCommands() reattach_response[DMAPI5_PARAMETER_TOPIC_PORT] = GetTopicPort() + + for(var/eventId in pending_events) + pending_events[eventId] = TRUE + return reattach_response if(DMAPI5_TOPIC_COMMAND_SEND_CHUNK) @@ -276,6 +280,15 @@ TGS_WORLD_ANNOUNCE(message) return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT) + var/event_id = topic_parameters[DMAPI5_EVENT_ID] + if (!istext(event_id)) + return TopicResponse("Invalid or missing [DMAPI5_EVENT_ID]") + + TGS_DEBUG_LOG("Completing event ID [event_id]...") + pending_events[event_id] = TRUE + return TopicResponse() + return TopicResponse("Unknown command: [command]") /datum/tgs_api/v5/proc/WorldBroadcast(message) diff --git a/code/modules/tgs/v5/undefs.dm b/code/modules/tgs/v5/undefs.dm index d531d4b7b9dd1..237207fdfd056 100644 --- a/code/modules/tgs/v5/undefs.dm +++ b/code/modules/tgs/v5/undefs.dm @@ -14,6 +14,7 @@ #undef DMAPI5_BRIDGE_COMMAND_KILL #undef DMAPI5_BRIDGE_COMMAND_CHAT_SEND #undef DMAPI5_BRIDGE_COMMAND_CHUNK +#undef DMAPI5_BRIDGE_COMMAND_EVENT #undef DMAPI5_PARAMETER_ACCESS_IDENTIFIER #undef DMAPI5_PARAMETER_CUSTOM_COMMANDS @@ -34,6 +35,7 @@ #undef DMAPI5_BRIDGE_PARAMETER_VERSION #undef DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE #undef DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL +#undef DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION #undef DMAPI5_BRIDGE_RESPONSE_NEW_PORT #undef DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION @@ -81,6 +83,7 @@ #undef DMAPI5_TOPIC_COMMAND_SEND_CHUNK #undef DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK #undef DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST +#undef DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT #undef DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE #undef DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND @@ -116,3 +119,9 @@ #undef DMAPI5_CUSTOM_CHAT_COMMAND_NAME #undef DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT #undef DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY + +#undef DMAPI5_EVENT_ID + +#undef DMAPI5_EVENT_INVOCATION_NAME +#undef DMAPI5_EVENT_INVOCATION_PARAMETERS +#undef DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION From 7222d86f3d68c6e95784d5a57ae50e431cdf6a96 Mon Sep 17 00:00:00 2001 From: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> Date: Thu, 29 Feb 2024 03:42:53 +0000 Subject: [PATCH 023/281] Logs holosign swatting. (#81733) Logs holosign swatting. ## About The Pull Request Logs holosign swatting. ## Why It's Good For The Game Closes #81729 ## Changelog :cl: admin: Logs holosign swatting. /:cl: --- code/game/objects/structures/holosign.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index a3d09340d87e3..a1a3adf325145 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -45,6 +45,7 @@ user.do_attack_animation(src, ATTACK_EFFECT_PUNCH) user.changeNext_move(CLICK_CD_MELEE) take_damage(5 , BRUTE, MELEE, 1) + log_combat(user, src, "swatted") /obj/structure/holosign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) From 4c693d7d4ed5a207c24669c254626a359fe617e0 Mon Sep 17 00:00:00 2001 From: orange man <61334995+comfyorange@users.noreply.github.com> Date: Thu, 29 Feb 2024 16:43:13 +1300 Subject: [PATCH 024/281] Automatic changelog for PR #81733 [ci skip] --- html/changelogs/AutoChangeLog-pr-81733.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-81733.yml diff --git a/html/changelogs/AutoChangeLog-pr-81733.yml b/html/changelogs/AutoChangeLog-pr-81733.yml new file mode 100644 index 0000000000000..1a2339554ccd8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-81733.yml @@ -0,0 +1,4 @@ +author: "Pickle-Coding" +delete-after: True +changes: + - admin: "Logs holosign swatting." \ No newline at end of file From d80667b759c0ad47183801d6fdeaa2596a996d4a Mon Sep 17 00:00:00 2001 From: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Date: Wed, 28 Feb 2024 21:43:38 -0600 Subject: [PATCH 025/281] Fixes some tackle business (#81727) ## About The Pull Request Fixes #81691 Tackling was making the tackler grab themselves. I took this opportunity to cut down on some of these weird typecasts. ## Changelog :cl: Melbert fix: Fixes grabbing yourself when you tackle someone. /:cl: --- code/datums/components/tackle.dm | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm index d19ef45e4b648..a0d0317d75540 100644 --- a/code/datums/components/tackle.dm +++ b/code/datums/components/tackle.dm @@ -164,8 +164,6 @@ neutral_outcome(user, target, tackle_word) //Forces a neutral outcome so you're not screwed too much from being blocked while tackling return COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH - - switch(roll) if(-INFINITY to -1) negative_outcome(user, target, roll, tackle_word) //OOF @@ -178,6 +176,15 @@ return COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH +/// Helper to do a grab and then adjust the grab state if necessary +/datum/component/tackler/proc/do_grab(mob/living/carbon/tackler, mob/living/carbon/tackled, skip_to_state = GRAB_PASSIVE) + set waitfor = FALSE + + if(!tackler.grab(tackled) || tackler.pulling != tackled) + return + if(tackler.grab_state != skip_to_state) + tackler.setGrabState(skip_to_state) + /** * Our positive tackling outcomes. * @@ -198,15 +205,10 @@ var/potential_outcome = (roll * 10) if(ishuman(target)) - var/mob/living/carbon/human/human_target = target - var/target_armor = human_target.run_armor_check(BODY_ZONE_CHEST, MELEE) - potential_outcome *= ((100 - target_armor) /100) + potential_outcome *= ((100 - target.run_armor_check(BODY_ZONE_CHEST, MELEE)) /100) else potential_outcome *= 0.9 - var/mob/living/carbon/human/human_target = target - var/mob/living/carbon/human/human_sacker = user - switch(potential_outcome) if(-INFINITY to 0) //I don't want to know how this has happened, okay? neutral_outcome(user, target, roll, tackle_word) //Default to neutral @@ -233,9 +235,7 @@ target.Paralyze(0.5 SECONDS) target.Knockdown(3 SECONDS) target.adjust_staggered_up_to(STAGGERED_SLOWDOWN_LENGTH * 2, 10 SECONDS) - if(ishuman(target) && ishuman(user)) - INVOKE_ASYNC(human_sacker, TYPE_PROC_REF(/mob/living, grab), human_sacker, human_target) - human_sacker.setGrabState(GRAB_PASSIVE) + do_grab(user, target) if(50 to INFINITY) // absolutely BODIED var/stamcritted_user = HAS_TRAIT_FROM(user, TRAIT_INCAPACITATED, STAMINA) @@ -259,9 +259,7 @@ target.Paralyze(0.5 SECONDS) target.Knockdown(3 SECONDS) target.adjust_staggered_up_to(STAGGERED_SLOWDOWN_LENGTH * 3, 10 SECONDS) - if(ishuman(target) && ishuman(user)) - INVOKE_ASYNC(human_sacker, TYPE_PROC_REF(/mob/living, grab), human_sacker, human_target) - human_sacker.setGrabState(GRAB_AGGRESSIVE) + do_grab(user, target, GRAB_AGGRESSIVE) /** * Our neutral tackling outcome. @@ -300,9 +298,7 @@ var/potential_roll_outcome = (roll * -10) if(ishuman(user)) - var/mob/living/carbon/human/human_sacker = target - var/attacker_armor = human_sacker.run_armor_check(BODY_ZONE_CHEST, MELEE) - potential_roll_outcome *= ((100 - attacker_armor) /100) + potential_roll_outcome *= ((100 - target.run_armor_check(BODY_ZONE_CHEST, MELEE)) /100) else potential_roll_outcome *= 0.9 From b3e8ce3ceac9e7a87becfc3046930bffd40e02da Mon Sep 17 00:00:00 2001 From: orange man <61334995+comfyorange@users.noreply.github.com> Date: Thu, 29 Feb 2024 16:44:08 +1300 Subject: [PATCH 026/281] Automatic changelog for PR #81727 [ci skip] --- html/changelogs/AutoChangeLog-pr-81727.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-81727.yml diff --git a/html/changelogs/AutoChangeLog-pr-81727.yml b/html/changelogs/AutoChangeLog-pr-81727.yml new file mode 100644 index 0000000000000..09158f9debd28 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-81727.yml @@ -0,0 +1,4 @@ +author: "Melbert" +delete-after: True +changes: + - bugfix: "Fixes grabbing yourself when you tackle someone." \ No newline at end of file From fcc87b4801e66f71f1c4e714b9f001c10a0ab62b Mon Sep 17 00:00:00 2001 From: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Date: Thu, 29 Feb 2024 06:24:10 +0200 Subject: [PATCH 027/281] virtual pets (#81342) players can now download their very own virtual pet through a new PDA app. this pet is called orbie and u can interact with him in alot of unique ways happiness can be increased by regularly grooming ur pet, feeding him, or u can arrange with other players playdates for ur pets, they can play with each other and both their happiness will increase u can get food from ur pet through ur pda, it will assign u a random drop zone location in the station u need to go to, after which u can obtain ur pet's food then ur PDA will spawn a virtual chocolate bar that ur pet loves to eat. it wont assign u dropzone locations that are restricted or hard to reach, however if the area it assigns u is a bit difficult to get to, u can reroll the location after a small cooldown u can also level up ur pet to make it gain new helpful abilities and more cosmetic options. the main way to level up ur pet is by walking it, so u can have it follow u while u are doing ur job on the station and it will passively get exp. u get an increased exp modifier per step if ur pet is happy and not hungry. At level 2, ur pet will gain an ability to toggle lights and will also read outloud to u any PDA messages u recieve. at level 3, ur pet gains a camera ability. u can command it to take a photo afterwhich the picture will be saved directly in ur pda u also have alot of customization options for ur pet! u can change its color, name, gender, and u can make it wear hats! u can unlock more hats for ur pet if u level it up further. these customizations change ur pet's hologram appearance as well as its profile picture on the pet network. u can view how other player's virtual pets are progressing through the pet network. each time ur pet reaches a new milestone, an update will automatically be sent out on the network if ur pet's milestones gets likes from other players, it will become happier this app also allows u to program new tricks for ur pet. U can create a custom trick sequence, and change the trick's name. If u say the trick's name outloud to ur pet it will do the sequence u programmed. --- code/__DEFINES/ai/pets.dm | 17 + code/__DEFINES/dcs/signals/signals_action.dm | 3 + .../signals/signals_atom/signals_atom_main.dm | 5 + .../signals/signals_mob/signals_mob_living.dm | 8 + code/__DEFINES/dcs/signals/signals_object.dm | 5 + code/datums/components/cleaner.dm | 3 +- code/datums/elements/basic_eating.dm | 3 + code/datums/elements/cleaning.dm | 34 +- .../greyscale_configs/greyscale_mobs.dm | 1 - code/game/objects/items/food/sweets.dm | 9 + .../mob/living/basic/pets/orbie/orbie.dm | 112 ++++ .../basic/pets/orbie/orbie_abilities.dm | 46 ++ .../mob/living/basic/pets/orbie/orbie_ai.dm | 169 ++++++ code/modules/mob/living/emote.dm | 2 +- .../programs/messenger/messenger_program.dm | 2 + .../file_system/programs/virtual_pet.dm | 568 ++++++++++++++++++ code/modules/photography/camera/camera.dm | 2 +- icons/mob/simple/pets.dmi | Bin 83384 -> 85132 bytes icons/obj/food/food.dmi | Bin 74064 -> 74340 bytes icons/ui_icons/virtualpet/pet_state.dmi | Bin 0 -> 422 bytes sound/items/orbie_level_up.ogg | Bin 0 -> 73864 bytes sound/items/orbie_notification_sound.ogg | Bin 0 -> 68909 bytes sound/items/orbie_send_out.ogg | Bin 0 -> 61536 bytes sound/items/orbie_trick_learned.ogg | Bin 0 -> 20450 bytes tgstation.dme | 4 + .../tgui/interfaces/NtosVirtualPet.tsx | 527 ++++++++++++++++ 26 files changed, 1500 insertions(+), 20 deletions(-) create mode 100644 code/modules/mob/living/basic/pets/orbie/orbie.dm create mode 100644 code/modules/mob/living/basic/pets/orbie/orbie_abilities.dm create mode 100644 code/modules/mob/living/basic/pets/orbie/orbie_ai.dm create mode 100644 code/modules/modular_computers/file_system/programs/virtual_pet.dm create mode 100644 icons/ui_icons/virtualpet/pet_state.dmi create mode 100644 sound/items/orbie_level_up.ogg create mode 100644 sound/items/orbie_notification_sound.ogg create mode 100644 sound/items/orbie_send_out.ogg create mode 100644 sound/items/orbie_trick_learned.ogg create mode 100644 tgui/packages/tgui/interfaces/NtosVirtualPet.tsx diff --git a/code/__DEFINES/ai/pets.dm b/code/__DEFINES/ai/pets.dm index e41c9ac0c3ffe..c7383f56a005e 100644 --- a/code/__DEFINES/ai/pets.dm +++ b/code/__DEFINES/ai/pets.dm @@ -51,3 +51,20 @@ /// key that holds items we arent interested in hoarding #define BB_IGNORE_ITEMS "ignore_items" +//virtual pet keys +///the last PDA message we must relay +#define BB_LAST_RECIEVED_MESSAGE "last_recieved_message" +///our current virtual pet level +#define BB_VIRTUAL_PET_LEVEL "virtual_pet_level" +///the target we will play with +#define BB_NEARBY_PLAYMATE "nearby_playmate" +///cooldown till we search for playmates +#define BB_NEXT_PLAYDATE "next_playdate" +///our ability to trigger lights +#define BB_LIGHTS_ABILITY "lights_ability" +///our ability to capture images +#define BB_PHOTO_ABILITY "photo_ability" +///the name of our trick +#define BB_TRICK_NAME "trick_name" +///the sequence of our trick +#define BB_TRICK_SEQUENCE "trick_sequence" diff --git a/code/__DEFINES/dcs/signals/signals_action.dm b/code/__DEFINES/dcs/signals/signals_action.dm index 6fbf5372acdd2..2226e34bcccbd 100644 --- a/code/__DEFINES/dcs/signals/signals_action.dm +++ b/code/__DEFINES/dcs/signals/signals_action.dm @@ -48,3 +48,6 @@ /// From /datum/action/cooldown/manual_heart/Activate(): () #define COMSIG_HEART_MANUAL_PULSE "heart_manual_pulse" + +/// From /datum/action/cooldown/mob_cooldown/capture_photo/Activate(): +#define COMSIG_ACTION_PHOTO_CAPTURED "action_photo_captured" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm index a027dc61adbfe..24524395f35f2 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm @@ -129,3 +129,8 @@ #define COMSIG_ATOM_GERM_UNEXPOSED "atom_germ_unexposed" /// signal sent to puzzle pieces by activator #define COMSIG_PUZZLE_COMPLETED "puzzle_completed" + +/// From /datum/compomnent/cleaner/clean() +#define COMSIG_ATOM_PRE_CLEAN "atom_pre_clean" + ///cancel clean + #define COMSIG_ATOM_CANCEL_CLEAN (1<<0) diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm index 533ad2e1ae886..c8d36d27bcd3a 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm @@ -253,3 +253,11 @@ /// Sent to a mob grabbing another mob: (mob/living/grabbing) #define COMSIG_LIVING_GRAB "living_grab" // Return COMPONENT_CANCEL_ATTACK_CHAIN / COMPONENT_SKIP_ATTACK_CHAIN to stop the grab + +/// From /datum/element/basic_eating/try_eating() +#define COMSIG_MOB_PRE_EAT "mob_pre_eat" + ///cancel eating attempt + #define COMSIG_MOB_CANCEL_EAT (1<<0) + +/// From /datum/element/basic_eating/finish_eating() +#define COMSIG_MOB_ATE "mob_ate" diff --git a/code/__DEFINES/dcs/signals/signals_object.dm b/code/__DEFINES/dcs/signals/signals_object.dm index 442309289f03a..3654b4cfce5d3 100644 --- a/code/__DEFINES/dcs/signals/signals_object.dm +++ b/code/__DEFINES/dcs/signals/signals_object.dm @@ -410,6 +410,11 @@ ///from /datum/action/vehicle/sealed/headlights/vim/Trigger(): (headlights_on) #define COMSIG_VIM_HEADLIGHTS_TOGGLED "vim_headlights_toggled" +///from /datum/computer_file/program/messenger/proc/receive_message +#define COMSIG_COMPUTER_RECIEVED_MESSAGE "computer_recieved_message" +///from /datum/computer_file/program/virtual_pet/proc/handle_level_up +#define COMSIG_VIRTUAL_PET_LEVEL_UP "virtual_pet_level_up" + // /obj/vehicle/sealed/mecha signals /// sent if you attach equipment to mecha diff --git a/code/datums/components/cleaner.dm b/code/datums/components/cleaner.dm index 242ad72071cf5..49f200b4b9286 100644 --- a/code/datums/components/cleaner.dm +++ b/code/datums/components/cleaner.dm @@ -89,9 +89,8 @@ */ /datum/component/cleaner/proc/clean(datum/source, atom/target, mob/living/user, clean_target = TRUE) //make sure we don't attempt to clean something while it's already being cleaned - if(HAS_TRAIT(target, TRAIT_CURRENTLY_CLEANING)) + if(HAS_TRAIT(target, TRAIT_CURRENTLY_CLEANING) || (SEND_SIGNAL(target, COMSIG_ATOM_PRE_CLEAN, user) & COMSIG_ATOM_CANCEL_CLEAN)) return - //add the trait and overlay ADD_TRAIT(target, TRAIT_CURRENTLY_CLEANING, REF(src)) // We need to update our planes on overlay changes diff --git a/code/datums/elements/basic_eating.dm b/code/datums/elements/basic_eating.dm index 297e77fa060ea..2a7a4b46598b5 100644 --- a/code/datums/elements/basic_eating.dm +++ b/code/datums/elements/basic_eating.dm @@ -54,6 +54,8 @@ /datum/element/basic_eating/proc/try_eating(mob/living/eater, atom/target) if(!is_type_in_list(target, food_types)) return FALSE + if(SEND_SIGNAL(eater, COMSIG_MOB_PRE_EAT, target) & COMSIG_MOB_CANCEL_EAT) + return FALSE var/eat_verb if(drinking) eat_verb = pick("slurp","sip","guzzle","drink","quaff","suck") @@ -79,6 +81,7 @@ return TRUE /datum/element/basic_eating/proc/finish_eating(mob/living/eater, atom/target) + SEND_SIGNAL(eater, COMSIG_MOB_ATE) if(drinking) playsound(eater.loc,'sound/items/drink.ogg', rand(10,50), TRUE) else diff --git a/code/datums/elements/cleaning.dm b/code/datums/elements/cleaning.dm index 3f39d00eb6e7c..6db1c9fb58033 100644 --- a/code/datums/elements/cleaning.dm +++ b/code/datums/elements/cleaning.dm @@ -1,32 +1,36 @@ +/datum/element/cleaning + /datum/element/cleaning/Attach(datum/target) . = ..() if(!ismovable(target)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(Clean)) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(clean)) /datum/element/cleaning/Detach(datum/target) . = ..() UnregisterSignal(target, COMSIG_MOVABLE_MOVED) -/datum/element/cleaning/proc/Clean(datum/source) +/datum/element/cleaning/proc/clean(datum/source) SIGNAL_HANDLER - var/atom/movable/AM = source - var/turf/tile = AM.loc + var/atom/movable/atom_movable = source + var/turf/tile = atom_movable.loc if(!isturf(tile)) return tile.wash(CLEAN_SCRUB) - for(var/A in tile) + for(var/atom/cleaned as anything in tile) // Clean small items that are lying on the ground - if(isitem(A)) - var/obj/item/I = A - if(I.w_class <= WEIGHT_CLASS_SMALL && !ismob(I.loc)) - I.wash(CLEAN_SCRUB) + if(isitem(cleaned)) + var/obj/item/cleaned_item = cleaned + if(cleaned_item.w_class <= WEIGHT_CLASS_SMALL) + cleaned_item.wash(CLEAN_SCRUB) + continue // Clean humans that are lying down - else if(ishuman(A)) - var/mob/living/carbon/human/cleaned_human = A - if(cleaned_human.body_position == LYING_DOWN) - cleaned_human.wash(CLEAN_SCRUB) - cleaned_human.regenerate_icons() - to_chat(cleaned_human, span_danger("[AM] cleans your face!")) + if(!ishuman(cleaned)) + continue + var/mob/living/carbon/human/cleaned_human = cleaned + if(cleaned_human.body_position == LYING_DOWN) + cleaned_human.wash(CLEAN_SCRUB) + cleaned_human.regenerate_icons() + to_chat(cleaned_human, span_danger("[atom_movable] cleans your face!")) diff --git a/code/datums/greyscale/config_types/greyscale_configs/greyscale_mobs.dm b/code/datums/greyscale/config_types/greyscale_configs/greyscale_mobs.dm index 250eba9a0d51f..87799dedda5de 100644 --- a/code/datums/greyscale/config_types/greyscale_configs/greyscale_mobs.dm +++ b/code/datums/greyscale/config_types/greyscale_configs/greyscale_mobs.dm @@ -44,4 +44,3 @@ name = "Gutlunch" icon_file = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' json_config = 'code/datums/greyscale/json_configs/gutlunch.json' - diff --git a/code/game/objects/items/food/sweets.dm b/code/game/objects/items/food/sweets.dm index 5c638077d16c5..d757261ac0154 100644 --- a/code/game/objects/items/food/sweets.dm +++ b/code/game/objects/items/food/sweets.dm @@ -79,6 +79,15 @@ w_class = WEIGHT_CLASS_TINY crafting_complexity = FOOD_COMPLEXITY_1 +/obj/item/food/virtual_chocolate + name = "virtual chocolate bar" + desc = "Digital food only gives off the sensation of eating... without any of the nutritional benefits." + icon_state = "virtual_chocolate" + tastes = list("nothing" = 1) + foodtypes = NONE + w_class = WEIGHT_CLASS_TINY + + /obj/item/food/chococoin name = "chocolate coin" desc = "A completely edible but non-flippable festive coin." diff --git a/code/modules/mob/living/basic/pets/orbie/orbie.dm b/code/modules/mob/living/basic/pets/orbie/orbie.dm new file mode 100644 index 0000000000000..2c9fb3d815c49 --- /dev/null +++ b/code/modules/mob/living/basic/pets/orbie/orbie.dm @@ -0,0 +1,112 @@ +#define ORBIE_MAXIMUM_HEALTH 300 + +/mob/living/basic/orbie + name = "Orbie" + desc = "An orb shaped hologram." + icon = 'icons/mob/simple/pets.dmi' + icon_state = "orbie" + icon_living = "orbie" + speed = 0 + maxHealth = 100 + light_on = FALSE + light_system = OVERLAY_LIGHT + light_range = 6 + light_color = "#64bee1" + health = 100 + habitable_atmos = list("min_oxy" = 0, "max_oxy" = 0, "min_plas" = 0, "max_plas" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + unsuitable_atmos_damage = 0 + can_buckle_to = FALSE + density = FALSE + pass_flags = PASSMOB + move_force = 0 + move_resist = 0 + pull_force = 0 + minimum_survivable_temperature = TCMB + maximum_survivable_temperature = INFINITY + death_message = "fades out of existence!" + ai_controller = /datum/ai_controller/basic_controller/orbie + ///are we happy or not? + var/happy_state = FALSE + ///overlay for our neutral eyes + var/static/mutable_appearance/eyes_overlay = mutable_appearance('icons/mob/simple/pets.dmi', "orbie_eye_overlay") + ///overlay for when our eyes are emitting light + var/static/mutable_appearance/orbie_light_overlay = mutable_appearance('icons/mob/simple/pets.dmi', "orbie_light_overlay") + ///overlay for the flame propellar + var/static/mutable_appearance/flame_overlay = mutable_appearance('icons/mob/simple/pets.dmi', "orbie_flame_overlay") + ///overlay for our happy eyes + var/static/mutable_appearance/happy_eyes_overlay = mutable_appearance('icons/mob/simple/pets.dmi', "orbie_happy_eye_overlay") + ///commands we can give orbie + var/list/pet_commands = list( + /datum/pet_command/idle, + /datum/pet_command/free, + /datum/pet_command/untargeted_ability/pet_lights, + /datum/pet_command/point_targeting/use_ability/take_photo, + /datum/pet_command/follow/orbie, + /datum/pet_command/perform_trick_sequence, + ) + +/mob/living/basic/orbie/Initialize(mapload) + . = ..() + var/static/list/food_types = list(/obj/item/food/virtual_chocolate) + AddComponent(/datum/component/obeys_commands, pet_commands) + AddElement(/datum/element/basic_eating, food_types = food_types) + RegisterSignal(src, COMSIG_ATOM_CAN_BE_PULLED, PROC_REF(on_pulled)) + RegisterSignal(src, COMSIG_VIRTUAL_PET_LEVEL_UP, PROC_REF(on_level_up)) + RegisterSignal(src, COMSIG_MOB_CLICKON, PROC_REF(on_click)) + RegisterSignal(src, COMSIG_ATOM_UPDATE_LIGHT_ON, PROC_REF(on_lights)) + ai_controller.set_blackboard_key(BB_BASIC_FOODS, typecacheof(food_types)) + update_appearance() + +/mob/living/basic/orbie/proc/on_click(mob/living/basic/source, atom/target, params) + SIGNAL_HANDLER + + if(!CanReach(target)) + return + + if(src == target || happy_state || !istype(target)) + return + + toggle_happy_state() + addtimer(CALLBACK(src, PROC_REF(toggle_happy_state)), 30 SECONDS) + +/mob/living/basic/orbie/proc/on_lights(datum/source) + SIGNAL_HANDLER + + update_appearance() + +/mob/living/basic/orbie/proc/toggle_happy_state() + happy_state = !happy_state + update_appearance() + +/mob/living/basic/orbie/proc/on_pulled(datum/source) //i need move resist at 0, but i also dont want him to be pulled + SIGNAL_HANDLER + + return COMSIG_ATOM_CANT_PULL + +/mob/living/basic/orbie/proc/on_level_up(datum/source, new_level) + SIGNAL_HANDLER + + if(maxHealth >= ORBIE_MAXIMUM_HEALTH) + UnregisterSignal(src, COMSIG_VIRTUAL_PET_LEVEL_UP) + return + + maxHealth += 100 + heal_overall_damage(maxHealth - health) + + +/mob/living/basic/orbie/update_overlays() + . = ..() + if(stat == DEAD) + return + . += flame_overlay + if(happy_state) + . += happy_eyes_overlay + else if(light_on) + . += orbie_light_overlay + else + . += eyes_overlay + +/mob/living/basic/orbie/gib() + death(TRUE) + +#undef ORBIE_MAXIMUM_HEALTH diff --git a/code/modules/mob/living/basic/pets/orbie/orbie_abilities.dm b/code/modules/mob/living/basic/pets/orbie/orbie_abilities.dm new file mode 100644 index 0000000000000..fb9994a932161 --- /dev/null +++ b/code/modules/mob/living/basic/pets/orbie/orbie_abilities.dm @@ -0,0 +1,46 @@ +/datum/action/cooldown/mob_cooldown/lights + name = "Toggle Lights" + button_icon = 'icons/mob/simple/pets.dmi' + button_icon_state = "orbie_light_action" + background_icon_state = "bg_default" + overlay_icon_state = "bg_default_border" + click_to_activate = FALSE + +/datum/action/cooldown/mob_cooldown/lights/Activate() + owner.set_light_on(!owner.light_on) + return TRUE + + +/datum/action/cooldown/mob_cooldown/capture_photo + name = "Camera" + button_icon = 'icons/mob/simple/pets.dmi' + button_icon_state = "orbie_light_action" + background_icon_state = "bg_default" + overlay_icon_state = "bg_default_border" + cooldown_time = 30 SECONDS + ///camera we use to take photos + var/obj/item/camera/ability_camera + +/datum/action/cooldown/mob_cooldown/capture_photo/Grant(mob/grant_to) + . = ..() + if(isnull(owner)) + return + ability_camera = new(owner) + ability_camera.print_picture_on_snap = FALSE + RegisterSignal(ability_camera, COMSIG_PREQDELETED, PROC_REF(on_camera_delete)) + +/datum/action/cooldown/mob_cooldown/capture_photo/Activate(atom/target) + if(isnull(ability_camera)) + return FALSE + ability_camera.captureimage(target, owner) + StartCooldown() + return TRUE + +/datum/action/cooldown/mob_cooldown/capture_photo/proc/on_camera_delete(datum/source) + SIGNAL_HANDLER + UnregisterSignal(ability_camera, COMSIG_PREQDELETED) + ability_camera = null + +/datum/action/cooldown/mob_cooldown/capture_photo/Destroy() + QDEL_NULL(ability_camera) + return ..() diff --git a/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm b/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm new file mode 100644 index 0000000000000..854a02094640b --- /dev/null +++ b/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm @@ -0,0 +1,169 @@ +#define PET_PLAYTIME_COOLDOWN (2 MINUTES) +#define MESSAGE_EXPIRY_TIME (30 SECONDS) + +/datum/ai_controller/basic_controller/orbie + blackboard = list( + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, + BB_TRICK_NAME = "Trick", + ) + + ai_movement = /datum/ai_movement/basic_avoidance + idle_behavior = /datum/idle_behavior/idle_random_walk + planning_subtrees = list( + /datum/ai_planning_subtree/find_food, + /datum/ai_planning_subtree/find_playmates, + /datum/ai_planning_subtree/basic_melee_attack_subtree, + /datum/ai_planning_subtree/relay_pda_message, + /datum/ai_planning_subtree/pet_planning, + ) + +/datum/ai_controller/basic_controller/orbie/TryPossessPawn(atom/new_pawn) + . = ..() + if(. & AI_CONTROLLER_INCOMPATIBLE) + return + RegisterSignal(new_pawn, COMSIG_AI_BLACKBOARD_KEY_SET(BB_LAST_RECIEVED_MESSAGE), PROC_REF(on_set_message)) + +/datum/ai_controller/basic_controller/orbie/proc/on_set_message(datum/source) + SIGNAL_HANDLER + + addtimer(CALLBACK(src, PROC_REF(clear_blackboard_key), BB_LAST_RECIEVED_MESSAGE), MESSAGE_EXPIRY_TIME) + +///ai behavior that lets us search for other orbies to play with +/datum/ai_planning_subtree/find_playmates + +/datum/ai_planning_subtree/find_playmates/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) + if(controller.blackboard[BB_NEXT_PLAYDATE] > world.time) + return + if(controller.blackboard_key_exists(BB_NEARBY_PLAYMATE)) + controller.queue_behavior(/datum/ai_behavior/interact_with_playmate, BB_NEARBY_PLAYMATE) + return SUBTREE_RETURN_FINISH_PLANNING + + controller.queue_behavior(/datum/ai_behavior/find_and_set/find_playmate, BB_NEARBY_PLAYMATE, /mob/living/basic/orbie) + +/datum/ai_behavior/find_and_set/find_playmate + +/datum/ai_behavior/find_and_set/find_playmate/search_tactic(datum/ai_controller/controller, locate_path, search_range) + for(var/mob/living/basic/orbie/playmate in oview(search_range, controller.pawn)) + if(playmate == controller.pawn || playmate.stat == DEAD || isnull(playmate.ai_controller)) + continue + if(playmate.ai_controller.blackboard[BB_NEARBY_PLAYMATE] || playmate.ai_controller.blackboard[BB_NEXT_PLAYDATE] > world.time) //they already have a playmate... + continue + playmate.ai_controller.set_blackboard_key(BB_NEARBY_PLAYMATE, controller.pawn) + return playmate + return null + + +/datum/ai_behavior/interact_with_playmate + behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT | AI_BEHAVIOR_REQUIRE_REACH | AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION + +/datum/ai_behavior/interact_with_playmate/setup(datum/ai_controller/controller, target_key) + . = ..() + var/turf/target = controller.blackboard[target_key] + if(isnull(target)) + return FALSE + set_movement_target(controller, target) + +/datum/ai_behavior/interact_with_playmate/perform(seconds_per_tick, datum/ai_controller/controller, target_key) + . = ..() + var/mob/living/basic/living_pawn = controller.pawn + var/atom/target = controller.blackboard[target_key] + + if(QDELETED(target)) + finish_action(controller, FALSE, target_key) + return + + living_pawn.manual_emote("plays with [target]!") + living_pawn.spin(spintime = 4, speed = 1) + living_pawn.ClickOn(target) + finish_action(controller, TRUE, target_key) + +/datum/ai_behavior/interact_with_playmate/finish_action(datum/ai_controller/controller, success, target_key) + . = ..() + controller.clear_blackboard_key(target_key) + controller.set_blackboard_key(BB_NEXT_PLAYDATE, world.time + PET_PLAYTIME_COOLDOWN) + +/datum/ai_planning_subtree/relay_pda_message + +/datum/ai_planning_subtree/relay_pda_message/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) + if(controller.blackboard[BB_VIRTUAL_PET_LEVEL] < 2 || isnull(controller.blackboard[BB_LAST_RECIEVED_MESSAGE])) + return + + controller.queue_behavior(/datum/ai_behavior/relay_pda_message, BB_LAST_RECIEVED_MESSAGE) + +/datum/ai_behavior/relay_pda_message/perform(seconds_per_tick, datum/ai_controller/controller, target_key) + . = ..() + var/mob/living/basic/living_pawn = controller.pawn + var/text_to_say = controller.blackboard[target_key] + if(isnull(text_to_say)) + finish_action(controller, FALSE, target_key) + return + + living_pawn.say(text_to_say, forced = "AI controller") + living_pawn.spin(spintime = 4, speed = 1) + finish_action(controller, TRUE, target_key) + +/datum/ai_behavior/relay_pda_message/finish_action(datum/ai_controller/controller, success, target_key) + . = ..() + controller.clear_blackboard_key(target_key) + +/datum/pet_command/follow/orbie + follow_behavior = /datum/ai_behavior/pet_follow_friend/orbie + +/datum/ai_behavior/pet_follow_friend/orbie + behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT | AI_BEHAVIOR_MOVE_AND_PERFORM | AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION + +///command to make our pet turn its lights on, we need to be level 2 to activate this ability +/datum/pet_command/untargeted_ability/pet_lights + command_name = "Lights" + command_desc = "Toggle your pet's lights!" + radial_icon = 'icons/mob/simple/pets.dmi' + radial_icon_state = "orbie_lights_action" + speech_commands = list("lights", "light", "toggle") + ability_key = BB_LIGHTS_ABILITY + +/datum/pet_command/untargeted_ability/pet_lights/execute_action(datum/ai_controller/controller) + if(controller.blackboard[BB_VIRTUAL_PET_LEVEL] < 2) + controller.clear_blackboard_key(BB_ACTIVE_PET_COMMAND) + return SUBTREE_RETURN_FINISH_PLANNING + return ..() + +/datum/pet_command/point_targeting/use_ability/take_photo + command_name = "Photo" + command_desc = "Make your pet take a photo!" + radial_icon = 'icons/mob/simple/pets.dmi' + radial_icon_state = "orbie_lights_action" + speech_commands = list("photo", "picture", "image") + command_feedback = "Readys camera mode" + pet_ability_key = BB_PHOTO_ABILITY + targeting_strategy_key = BB_TARGETING_STRATEGY + +/datum/pet_command/point_targeting/use_ability/take_photo/execute_action(datum/ai_controller/controller) + if(controller.blackboard[BB_VIRTUAL_PET_LEVEL] < 3) + controller.clear_blackboard_key(BB_ACTIVE_PET_COMMAND) + return SUBTREE_RETURN_FINISH_PLANNING + return ..() + +/datum/pet_command/perform_trick_sequence + command_name = "Trick Sequence" + command_desc = "A trick sequence programmable through your PDA!" + +/datum/pet_command/perform_trick_sequence/find_command_in_text(spoken_text, check_verbosity = FALSE) + var/mob/living/living_pawn = weak_parent.resolve() + if(isnull(living_pawn?.ai_controller)) + return FALSE + var/text_command = living_pawn.ai_controller.blackboard[BB_TRICK_NAME] + if(isnull(text_command)) + return FALSE + return findtext(spoken_text, text_command) + +/datum/pet_command/perform_trick_sequence/execute_action(datum/ai_controller/controller) + var/mob/living/living_pawn = controller.pawn + var/list/trick_sequence = controller.blackboard[BB_TRICK_SEQUENCE] + for(var/index in 1 to length(trick_sequence)) + addtimer(CALLBACK(living_pawn, TYPE_PROC_REF(/mob, emote), trick_sequence[index], index * 0.5 SECONDS)) + controller.clear_blackboard_key(BB_ACTIVE_PET_COMMAND) + return SUBTREE_RETURN_FINISH_PLANNING + +#undef PET_PLAYTIME_COOLDOWN +#undef MESSAGE_EXPIRY_TIME diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 5c13e489395b1..3a19eebadc966 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -711,7 +711,7 @@ message = "beeps." message_param = "beeps at %t." sound = 'sound/machines/twobeep.ogg' - mob_type_allowed_typecache = list(/mob/living/brain, /mob/living/silicon) + mob_type_allowed_typecache = list(/mob/living/brain, /mob/living/silicon, /mob/living/basic/orbie) emote_type = EMOTE_AUDIBLE /datum/emote/living/inhale diff --git a/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm index 2f3898fa3f7df..5fbf6e3d796a8 100644 --- a/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm +++ b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm @@ -714,6 +714,8 @@ var/photo_message = signal.data["photo"] ? " (Photo Attached)" : "" to_chat(messaged_mob, span_infoplain("[icon2html(computer, messaged_mob)] PDA message from [sender_title], \"[inbound_message]\"[photo_message] [reply]")) + SEND_SIGNAL(computer, COMSIG_COMPUTER_RECIEVED_MESSAGE, sender_title, inbound_message, photo_message) + if (alert_able && (!alert_silenced || is_rigged)) computer.ring(ringtone) diff --git a/code/modules/modular_computers/file_system/programs/virtual_pet.dm b/code/modules/modular_computers/file_system/programs/virtual_pet.dm new file mode 100644 index 0000000000000..1d3196789ca87 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/virtual_pet.dm @@ -0,0 +1,568 @@ +GLOBAL_LIST_EMPTY(global_pet_updates) +GLOBAL_LIST_EMPTY(virtual_pets_list) + +#define MAX_UPDATE_LENGTH 50 +#define PET_MAX_LEVEL 3 +#define PET_MAX_STEPS_RECORD 50000 +#define PET_EAT_BONUS 500 +#define PET_CLEAN_BONUS 250 +#define PET_PLAYMATE_BONUS 500 +#define PET_STATE_HUNGRY "hungry" +#define PET_STATE_ASLEEP "asleep" +#define PET_STATE_HAPPY "happy" +#define PET_STATE_NEUTRAL "neutral" + +/datum/computer_file/program/virtual_pet + filename = "virtualpet" + filedesc = "Virtual Pet" + downloader_category = PROGRAM_CATEGORY_GAMES + extended_desc = "Download your very own Orbie today!" + program_flags = PROGRAM_ON_NTNET_STORE + size = 3 + tgui_id = "NtosVirtualPet" + program_icon = "paw" + can_run_on_flags = PROGRAM_PDA + detomatix_resistance = DETOMATIX_RESIST_MALUS + ///how many steps have we walked + var/steps_counter = 0 + ///the pet hologram + var/mob/living/pet + ///the type of our pet + var/pet_type = /mob/living/basic/orbie + ///our current happiness + var/happiness = 0 + ///our max happiness + var/max_happiness = 1750 + ///our current level + var/level = 1 + ///required exp to get to next level + var/to_next_level = 1000 + ///how much exp we currently have + var/current_level_progress = 0 + ///our current hunger + var/hunger = 0 + ///maximum hunger threshold + var/max_hunger = 500 + ///pet icon for each state + var/static/list/pet_state_icons = list( + PET_STATE_HUNGRY = list("icon" = 'icons/ui_icons/virtualpet/pet_state.dmi', "icon_state" = "pet_hungry"), + PET_STATE_HAPPY = list("icon" = 'icons/ui_icons/virtualpet/pet_state.dmi', "icon_state" = "pet_happy"), + PET_STATE_ASLEEP = list("icon" = 'icons/ui_icons/virtualpet/pet_state.dmi', "icon_state" = "pet_asleep"), + PET_STATE_NEUTRAL = list("icon" = 'icons/ui_icons/virtualpet/pet_state.dmi', "icon_state" = "pet_neutral"), + ) + ///hat options and what level they will be unlocked at + var/static/list/hat_selections = list( + /obj/item/clothing/head/hats/tophat = 1, + /obj/item/clothing/head/fedora = 1, + /obj/item/clothing/head/hats/bowler = 2, + /obj/item/clothing/head/hats/warden/police = 2, + /obj/item/clothing/head/hats/warden/red = 3, + /obj/item/clothing/head/hats/caphat = 3, + ) + ///hologram hat we have selected for our pet + var/list/selected_hat = list() + ///area we have picked as dropoff location for petfeed + var/area/selected_area + ///manage hat offsets for when we turn directions + var/static/list/hat_offsets = list( + "west" = list(0,1), + "east" = list(0,1), + "north" = list(1,1), + "south" = list(0,1), + ) + ///possible colors our pet can have + var/static/list/possible_colors= list( + "white" = null, //default color state + "light blue" = "#c3ecf3", + "light green" = "#b1ffe8", + ) + ///areas we wont drop the chocolate in + var/static/list/restricted_areas = typecacheof(list( + /area/station/security, + /area/station/command, + /area/station/ai_monitored, + /area/station/maintenance, + /area/station/solars, + )) + ///our profile picture + var/icon/profile_picture + ///cooldown till we can reroll the pet feed dropzone + COOLDOWN_DECLARE(area_reroll) + ///cooldown till our pet gains happiness again from being cleaned + COOLDOWN_DECLARE(on_clean_cooldown) + ///cooldown till we can release/recall our pet + COOLDOWN_DECLARE(summon_cooldown) + ///cooldown till we can alter our pet's appearance again + COOLDOWN_DECLARE(alter_appearance_cooldown) + +/datum/computer_file/program/virtual_pet/on_install() + . = ..() + profile_picture = getFlatIcon(image(icon = 'icons/ui_icons/virtualpet/pet_state.dmi', icon_state = "pet_preview")) + GLOB.virtual_pets_list += src + pet = new pet_type(computer) + pet.forceMove(computer) + pet.AddComponent(/datum/component/leash, computer, 9, force_teleport_out_effect = /obj/effect/temp_visual/guardian/phase/out) + RegisterSignal(pet, COMSIG_QDELETING, PROC_REF(remove_pet)) + RegisterSignal(pet, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(on_overlays_updated)) //hologramic hat management + RegisterSignal(pet, COMSIG_ATOM_DIR_CHANGE, PROC_REF(on_change_dir)) + RegisterSignal(pet, COMSIG_MOVABLE_MOVED, PROC_REF(after_pet_move)) + RegisterSignal(pet, COMSIG_MOB_ATE, PROC_REF(after_pet_eat)) // WE ATEEE + RegisterSignal(pet, COMSIG_ATOM_PRE_CLEAN, PROC_REF(pet_pre_clean)) + RegisterSignal(pet, COMSIG_LIVING_DEATH, PROC_REF(on_death)) + RegisterSignal(pet, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(post_cleaned)) + RegisterSignal(pet, COMSIG_AI_BLACKBOARD_KEY_SET(BB_NEARBY_PLAYMATE), PROC_REF(on_playmate_find)) + RegisterSignal(computer, COMSIG_ATOM_ENTERED, PROC_REF(on_pet_entered)) + RegisterSignal(computer, COMSIG_ATOM_EXITED, PROC_REF(on_pet_exit)) + +/datum/computer_file/program/virtual_pet/Destroy() + GLOB.virtual_pets_list -= src + if(!QDELETED(pet)) + QDEL_NULL(pet) + STOP_PROCESSING(SSprocessing, src) + return ..() + +/datum/computer_file/program/virtual_pet/proc/on_death(datum/source) + SIGNAL_HANDLER + + pet.forceMove(computer) + + +/datum/computer_file/program/virtual_pet/proc/on_message_recieve(datum/source, sender_title, inbound_message, photo_message) + SIGNAL_HANDLER + + var/message_to_display = "[sender_title] has sent you a message [photo_message ? "with a photo attached" : ""]: [inbound_message]!" + pet.ai_controller?.set_blackboard_key(BB_LAST_RECIEVED_MESSAGE, message_to_display) + +/datum/computer_file/program/virtual_pet/proc/pet_pre_clean(atom/source, mob/user) + SIGNAL_HANDLER + + if(!COOLDOWN_FINISHED(src, on_clean_cooldown)) + source.balloon_alert(user, "already clean!") + return COMSIG_ATOM_CANCEL_CLEAN + +/datum/computer_file/program/virtual_pet/proc/on_playmate_find(datum/source) + SIGNAL_HANDLER + + happiness = min(happiness + PET_PLAYMATE_BONUS, max_happiness) + START_PROCESSING(SSprocessing, src) + +/datum/computer_file/program/virtual_pet/proc/post_cleaned(mob/source, mob/user) + SIGNAL_HANDLER + + source.spin(spintime = 2 SECONDS, speed = 1) //celebrate! + happiness = min(happiness + PET_CLEAN_BONUS, max_happiness) + COOLDOWN_START(src, on_clean_cooldown, 1 MINUTES) + START_PROCESSING(SSprocessing, src) + +///manage the pet's hat offsets when he changes direction +/datum/computer_file/program/virtual_pet/proc/on_change_dir(datum/source, old_dir, new_dir) + SIGNAL_HANDLER + + if(!length(selected_hat)) + return + set_hat_offsets(new_dir) + +/datum/computer_file/program/virtual_pet/proc/on_photo_captured(datum/source, atom/target, atom/user, datum/picture/photo) + SIGNAL_HANDLER + + if(isnull(photo)) + return + computer.store_file(new /datum/computer_file/picture(photo)) + +/datum/computer_file/program/virtual_pet/proc/set_hat_offsets(new_dir) + var/direction_text = dir2text(new_dir) + var/list/offsets_list = hat_offsets[direction_text] + if(isnull(offsets_list)) + return + var/mutable_appearance/hat_appearance = selected_hat["appearance"] + hat_appearance.pixel_x = offsets_list[1] + hat_appearance.pixel_y = offsets_list[2] + pet.update_appearance(UPDATE_OVERLAYS) + +///give our pet his hologram hat +/datum/computer_file/program/virtual_pet/proc/on_overlays_updated(atom/source, list/overlays) + SIGNAL_HANDLER + + if(!length(selected_hat)) + return + overlays += selected_hat["appearance"] + +/datum/computer_file/program/virtual_pet/proc/alter_profile_picture() + var/image/pet_preview = image(icon = 'icons/ui_icons/virtualpet/pet_state.dmi', icon_state = "pet_preview") + if(LAZYACCESS(pet.atom_colours, FIXED_COLOUR_PRIORITY)) + pet_preview.color = pet.atom_colours[FIXED_COLOUR_PRIORITY] + + if(length(selected_hat)) + var/mutable_appearance/our_selected_hat = selected_hat["appearance"] + var/mutable_appearance/hat_preview = mutable_appearance(our_selected_hat.icon, our_selected_hat.icon_state) + hat_preview.pixel_y = -9 + pet_preview.add_overlay(hat_preview) + + profile_picture = getFlatIcon(pet_preview) + COOLDOWN_START(src, alter_appearance_cooldown, 10 SECONDS) + + +///decrease the pet's hunger after it eats +/datum/computer_file/program/virtual_pet/proc/after_pet_eat(datum/source) + SIGNAL_HANDLER + + hunger = min(hunger + PET_EAT_BONUS, max_hunger) + happiness = min(happiness + PET_EAT_BONUS, max_happiness) + START_PROCESSING(SSprocessing, src) + +///start processing if we enter the pda and need healing +/datum/computer_file/program/virtual_pet/proc/on_pet_entered(atom/movable/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs) + SIGNAL_HANDLER + + if(arrived != pet) + return + ADD_TRAIT(pet, TRAIT_AI_PAUSED, REF(src)) + if((datum_flags & DF_ISPROCESSING)) + return + if(pet.health < pet.maxHealth) //if we're in the pda, heal up + START_PROCESSING(SSprocessing, src) + +/datum/computer_file/program/virtual_pet/proc/on_pet_exit(atom/movable/source, atom/movable/exited) + SIGNAL_HANDLER + + if(exited != pet) + return + REMOVE_TRAIT(pet, TRAIT_AI_PAUSED, REF(src)) + if((datum_flags & DF_ISPROCESSING)) + return + if(hunger > 0 || happiness > 0) //if were outside the pda, we become hungry and happiness decreases + START_PROCESSING(SSprocessing, src) + +/datum/computer_file/program/virtual_pet/process() + if(pet.loc == computer) + if(pet.health >= pet.maxHealth) + return PROCESS_KILL + if(pet.stat == DEAD) + pet.revive(ADMIN_HEAL_ALL) + pet.heal_overall_damage(5) + return + + if(hunger > 0) + hunger-- + + if(happiness > 0) + happiness-- + + if(hunger <=0 && happiness <= 0) + return PROCESS_KILL + +/datum/computer_file/program/virtual_pet/proc/after_pet_move(atom/movable/movable, atom/old_loc) + SIGNAL_HANDLER + + if(!isturf(pet.loc) || !isturf(old_loc)) + return + steps_counter = min(steps_counter + 1, PET_MAX_STEPS_RECORD) + increment_exp() + if(steps_counter % 2000 == 0) //every 2000 steps, announce the milestone to the world! + announce_global_updates(message = "has walked [steps_counter] steps!") + +/datum/computer_file/program/virtual_pet/proc/increment_exp() + var/modifier = 1 + var/hunger_happiness = hunger + happiness + var/max_hunger_happiness = max_hunger + max_happiness + + switch(hunger_happiness / max_hunger_happiness) + if(0.8 to 1) + modifier = 3 + if(0.5 to 0.8) + modifier = 2 + + current_level_progress = min(current_level_progress + modifier, to_next_level) + if(current_level_progress >= to_next_level) + handle_level_up() + +/datum/computer_file/program/virtual_pet/proc/handle_level_up() + current_level_progress = 0 + level++ + grant_level_abilities() + pet.ai_controller?.set_blackboard_key(BB_VIRTUAL_PET_LEVEL, level) + playsound(computer.loc, 'sound/items/orbie_level_up.ogg', 50) + to_next_level += (level**2) + 500 + SEND_SIGNAL(pet, COMSIG_VIRTUAL_PET_LEVEL_UP, level) //its a signal so different path types of virtual pets can handle leveling up differently + announce_global_updates(message = "has reached level [level]!") + +/datum/computer_file/program/virtual_pet/proc/grant_level_abilities() + switch(level) + if(2) + RegisterSignal(computer, COMSIG_COMPUTER_RECIEVED_MESSAGE, PROC_REF(on_message_recieve)) // we will now read out PDA messages + var/datum/action/cooldown/mob_cooldown/lights/lights = new(pet) + lights.Grant(pet) + pet.ai_controller?.set_blackboard_key(BB_LIGHTS_ABILITY, lights) + if(3) + var/datum/action/cooldown/mob_cooldown/capture_photo/photo_ability = new(pet) + photo_ability.Grant(pet) + pet.ai_controller?.set_blackboard_key(BB_PHOTO_ABILITY, photo_ability) + RegisterSignal(photo_ability.ability_camera, COMSIG_CAMERA_IMAGE_CAPTURED, PROC_REF(on_photo_captured)) + +/datum/computer_file/program/virtual_pet/proc/announce_global_updates(message) + if(isnull(message)) + return + var/list/message_to_announce = list( + "name" = pet.name, + "pet_picture" = icon2base64(profile_picture), + "message" = message, + "likers" = list(REF(src)) + ) + if(length(GLOB.global_pet_updates) >= MAX_UPDATE_LENGTH) + GLOB.global_pet_updates.Cut(1,2) + + GLOB.global_pet_updates += list(message_to_announce) + playsound(computer.loc, 'sound/items/orbie_notification_sound.ogg', 50) + +/datum/computer_file/program/virtual_pet/proc/remove_pet(datum/source) + SIGNAL_HANDLER + pet = null + if(QDELETED(src)) + return + computer.remove_file(src) //all is lost we no longer have a reason to exist + +/datum/computer_file/program/virtual_pet/kill_program(mob/user) + if(pet && pet.loc != computer) + pet.forceMove(computer) //recall the hologram back to the pda + STOP_PROCESSING(SSprocessing, src) + return ..() + +/datum/computer_file/program/virtual_pet/proc/get_pet_state() + if(isnull(pet)) + return + + if(pet.loc == computer) + return PET_STATE_ASLEEP + + if(happiness/max_happiness > 0.8) + return PET_STATE_HAPPY + + if(hunger/max_hunger < 0.5) + return PET_STATE_HUNGRY + + return PET_STATE_NEUTRAL + +/datum/computer_file/program/virtual_pet/ui_data(mob/user) + var/list/data = list() + data["currently_summoned"] = (pet.loc != computer) + data["selected_area"] = (selected_area ? selected_area.name : "No location set") + data["pet_state"] = get_pet_state() + data["hunger"] = hunger + data["maximum_hunger"] = max_hunger + data["pet_hat"] = (length(selected_hat) ? selected_hat["name"] : "none") + data["can_reroll"] = COOLDOWN_FINISHED(src, area_reroll) + data["can_summon"] = COOLDOWN_FINISHED(src, summon_cooldown) + data["can_alter_appearance"] = COOLDOWN_FINISHED(src, alter_appearance_cooldown) + data["pet_name"] = pet.name + data["steps_counter"] = steps_counter + data["in_dropzone"] = (istype(get_area(computer), selected_area)) + data["pet_area"] = (pet.loc != computer ? get_area_name(pet) : "Sleeping in PDA") + data["current_exp"] = current_level_progress + data["required_exp"] = to_next_level + data["happiness"] = happiness + data["maximum_happiness"] = max_happiness + data["level"] = level + data["pet_color"] = "" + + var/color_value = LAZYACCESS(pet.atom_colours, FIXED_COLOUR_PRIORITY) + for(var/index in possible_colors) + if(possible_colors[index] == color_value) + data["pet_color"] = index + break + + data["pet_gender"] = pet.gender + + data["pet_updates"] = list() + + for(var/i in length(GLOB.global_pet_updates) to 1 step -1) + var/list/update = GLOB.global_pet_updates[i] + + if(isnull(update)) + continue + + data["pet_updates"] += list(list( + "update_id" = i, + "update_name" = update["name"], + "update_picture" = update["pet_picture"], + "update_message" = update["message"], + "update_likers" = length(update["likers"]), + "update_already_liked" = ((REF(src)) in update["likers"]), + )) + + data["all_pets"] = list() + for(var/datum/computer_file/program/virtual_pet/program as anything in GLOB.virtual_pets_list) + data["all_pets"] += list(list( + "other_pet_name" = program.pet.name, + "other_pet_picture" = icon2base64(program.profile_picture), + )) + return data + +/datum/computer_file/program/virtual_pet/ui_static_data(mob/user) + var/list/data = list() + data["pet_state_icons"] = list() + for(var/list_index as anything in pet_state_icons) + var/list/sprite_location = pet_state_icons[list_index] + data["pet_state_icons"] += list(list( + "name" = list_index, + "icon" = icon2base64(getFlatIcon(image(icon = sprite_location["icon"], icon_state = sprite_location["icon_state"]), no_anim=TRUE)) + )) + + data["hat_selections"] = list(list( + "hat_id" = null, + "hat_name" = "none", + )) + + for(var/type_index as anything in hat_selections) + if(level >= hat_selections[type_index]) + var/obj/item/hat = type_index + data["hat_selections"] += list(list( + "hat_id" = type_index, + "hat_name" = initial(hat.name), + )) + + data["possible_colors"] = list() + for(var/color in possible_colors) + data["possible_colors"] += list(list( + "color_name" = color, + "color_value" = possible_colors[color], + )) + + var/static/list/possible_emotes = list( + /datum/emote/flip, + /datum/emote/living/jump, + /datum/emote/living/shiver, + /datum/emote/spin, + /datum/emote/living/beep, + ) + data["possible_emotes"] = list("none") + for(var/datum/emote/target_emote as anything in possible_emotes) + data["possible_emotes"] += target_emote.key + + data["preview_icon"] = icon2base64(profile_picture) + return data + +/datum/computer_file/program/virtual_pet/ui_act(action, params, datum/tgui/ui) + . = ..() + switch(action) + + if("summon_pet") + if(!COOLDOWN_FINISHED(src, summon_cooldown)) + return TRUE + if(pet.loc == computer) + release_pet(ui.user) + else + recall_pet() + COOLDOWN_START(src, summon_cooldown, 10 SECONDS) + + if("apply_customization") + if(!COOLDOWN_FINISHED(src, alter_appearance_cooldown)) + return TRUE + var/obj/item/chosen_type = text2path(params["chosen_hat"]) + if(isnull(chosen_type)) + selected_hat.Cut() + + else if((chosen_type in hat_selections)) + selected_hat["name"] = initial(chosen_type.name) + var/mutable_appearance/selected_hat_appearance = mutable_appearance(icon = initial(chosen_type.worn_icon), icon_state = initial(chosen_type.icon_state), layer = ABOVE_ALL_MOB_LAYER) + selected_hat_appearance.transform = selected_hat_appearance.transform.Scale(0.8, 1) + selected_hat["appearance"] = selected_hat_appearance + set_hat_offsets(pet.dir) + + var/chosen_color = params["chosen_color"] + if(isnull(chosen_color)) + pet.remove_atom_colour(FIXED_COLOUR_PRIORITY) + else + pet.add_atom_colour(chosen_color, FIXED_COLOUR_PRIORITY) + + var/input_name = sanitize_name(params["chosen_name"], allow_numbers = TRUE) + pet.name = (input_name ? input_name : initial(pet.name)) + new /obj/effect/temp_visual/guardian/phase(pet.loc) + + switch(params["chosen_gender"]) + if("male") + pet.gender = MALE + if("female") + pet.gender = FEMALE + if("neuter") + pet.gender = NEUTER + + pet.update_appearance() + alter_profile_picture() + update_static_data(ui.user, ui) + + if("get_feed_location") + generate_petfeed_area() + + if("drop_feed") + drop_feed() + + if("like_update") + var/index = params["update_reference"] + var/list/update_message = GLOB.global_pet_updates[index] + if(isnull(update_message)) + return TRUE + var/our_reference = REF(src) + if(our_reference in update_message["likers"]) + update_message["likers"] -= our_reference + else + update_message["likers"] += our_reference + + if("teach_tricks") + var/trick_name = params["trick_name"] + var/list/trick_sequence = params["tricks"] + if(isnull(pet.ai_controller)) + return TRUE + if(!isnull(trick_name)) + pet.ai_controller.set_blackboard_key(BB_TRICK_NAME, trick_name) + pet.ai_controller.override_blackboard_key(BB_TRICK_SEQUENCE, trick_sequence) + playsound(computer.loc, 'sound/items/orbie_trick_learned.ogg', 50) + + return TRUE + +/datum/computer_file/program/virtual_pet/proc/generate_petfeed_area() + if(!COOLDOWN_FINISHED(src, area_reroll)) + return + var/list/filter_area_list = typecache_filter_list(GLOB.the_station_areas, restricted_areas) + var/list/target_area_list = GLOB.the_station_areas.Copy() - filter_area_list + if(!length(target_area_list)) + return + selected_area = pick(target_area_list) + COOLDOWN_START(src, area_reroll, 2 MINUTES) + +/datum/computer_file/program/virtual_pet/proc/drop_feed() + if(!istype(get_area(computer), selected_area)) + return + announce_global_updates(message = "has found a chocolate at [selected_area.name]") + selected_area = null + var/obj/item/food/virtual_chocolate/chocolate = new(get_turf(computer)) + chocolate.AddElement(/datum/element/temporary_atom, life_time = 30 SECONDS) //we cant maintain its existence for too long! + +/datum/computer_file/program/virtual_pet/proc/recall_pet() + animate(pet, transform = matrix().Scale(0.3, 0.3), time = 1.5 SECONDS) + addtimer(CALLBACK(pet, TYPE_PROC_REF(/atom/movable, forceMove), computer), 1.5 SECONDS) + +/datum/computer_file/program/virtual_pet/proc/release_pet(mob/living/our_user) + var/turf/drop_zone + var/list/turfs_list = get_adjacent_open_turfs(computer.drop_location()) + for(var/turf/possible_turf as anything in turfs_list) + if(possible_turf.is_blocked_turf()) + continue + drop_zone = possible_turf + break + var/turf/final_turf = isnull(drop_zone) ? computer.drop_location() : drop_zone + pet.befriend(our_user) //befriend whoever set us out + animate(pet, transform = matrix(), time = 1.5 SECONDS) + pet.forceMove(final_turf) + playsound(computer.loc, 'sound/items/orbie_send_out.ogg', 20) + new /obj/effect/temp_visual/guardian/phase(pet.loc) + +#undef PET_MAX_LEVEL +#undef PET_MAX_STEPS_RECORD +#undef PET_EAT_BONUS +#undef PET_CLEAN_BONUS +#undef PET_PLAYMATE_BONUS +#undef PET_STATE_HUNGRY +#undef PET_STATE_ASLEEP +#undef PET_STATE_HAPPY +#undef PET_STATE_NEUTRAL +#undef MAX_UPDATE_LENGTH diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm index 3f721c1cefc3b..4bdb1c4d93aa8 100644 --- a/code/modules/photography/camera/camera.dm +++ b/code/modules/photography/camera/camera.dm @@ -229,7 +229,7 @@ var/datum/picture/picture = new("picture", desc.Join(" "), mobs_spotted, dead_spotted, names, get_icon, null, psize_x, psize_y, blueprints, can_see_ghosts = see_ghosts) after_picture(user, picture) - SEND_SIGNAL(src, COMSIG_CAMERA_IMAGE_CAPTURED, target, user) + SEND_SIGNAL(src, COMSIG_CAMERA_IMAGE_CAPTURED, target, user, picture) blending = FALSE return picture diff --git a/icons/mob/simple/pets.dmi b/icons/mob/simple/pets.dmi index 9bd7d69c06bc5ce9af73ca14489982a7a305e20b..311fff1e6b0dc0389a83aacb9ef2e4960fa867e1 100644 GIT binary patch literal 85132 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�_-oi8 z0Zz^AQk_4L`bfVJr1KELvPuA+a!onX+o3HLc|M-_WrB@nFN%6y}vi#R-5yTRHVxw5y7TS9j!RL$yLqT#eR{vjLbjiZi$g32d{Xeu|1I{ssy z8KAd1ph!P^^-cxBLg$P%j5fTPS&j}rJ2A;Yuq+}BxZydckY)_7V~&ZKI_4`Vd_1ZS zM4#m~s_&g>OVP)jSlfLJWn4;6kA_*xS(EnBplXDI|MqrCSWc`E(=AF9->W&1xlVOD z?wZ^m){bKk+PhcoYEQ*7@k;5d?5677A60Vfsx_cr=?+s_1HIYjA|?HEYeAv6pe%z+ z_WEwuE0H--uhV}`m$~ARqw`ayTyikCOv|{orhdN^xA2p+rX{w*B7{nM1be)Zj{y~~ zTP3P}IYnVdGJpttC$cab3-*Hi=`&jWPum3Ea%o?{_0GzNVi%ZYkA>|Rk|R%HV2#LY ztb);wf8FdI##up`8y>0kfXRTpXi}$4>+^|(Wd&k^UYWqf+mX{0T^SvLQ`>~h>*ApVQm z1J&QXDnu0!L*D|2-_?ENHt_YF__*6T8DJ z@F{Q}zQZ(%Eq+dhX#gD{mh7+{wGOQgthJtc5b~wp?ImWR!5d3o1MX_Jw{XYO7BBWiVK@ z$CWX5Xt}Frhf+}fDa_eaWYTgkQ8?Qp1n#dYMd8c^$b{z|M|e7iAsRk90-)%wOw-;o z?gwAWk<-RqK+V13%O8VBPhaG5^6AOGs>#grR&(2kNS9%#3G|gy{ECrGZtc%o98Rx^ z`-5b1&JG{2qV7d+*4N*k_OfCfEzeKMv%gU}UL(w3q-dxi1()^CF(%EQBhn*(g8h8R zMvx8S`1zOrf<9(Sqy=E`S)5Y4PuMD(f!qRR)t?dOg zeoTZJSVTzP1N8+%CONcu2w~3cF(7EeopS+cQUwj?0+je^CCpx+_pqmn@0O*2IPuc{F0FA&dv*6;wHYlOG6 ziK)LDGbnu=r7f-*kOC3WzsnKW`}3l9e4W=FoNn6ZR~D8fE-SEdv39V$C7)WR&kE&a zdJB!7GBR{Q+e>WK_nS=~bNTh_lt8^p+9*>zTbo}Oj-qvF7H@@sRw-wPV|ZabQhI^G zTeY&!z-MzKbs9JK{8WA9Gz>TSQ~3f9>7>q9Fw@ZFFKXt&JoP)x<>&1A4xxQ_YAfh{ ztoGH*3M_IoEIDvJ%_-E?iHI^K>9u1f9%!2JF8ebqEu5BgYnNg)^bNm8a z;K91`b^|?;F8QmTd!T?)ggwi^@Ny$P{YDRe7K4?nUeEs%#tcST1YggBo~K#|<7=!+ z;l(qLSV(JX@9DyH*6$xsBvmGRYH2MuQ-t$Yxw7ntPQjPBZ&mgncg|}mBG4NF4W`>=hxsH*i%6e$3AYKYk2nU%^!sLk*+Mr}sf(OMbDan3vUj=H!LSF$iqP!BXJB zs}5P{yziPo?pjoI1~sV54!6)QnwEtro6)A>gAx+?ToeK}PsV=avUoC&(AMM!DPNGD z^o+ydkZu1Yt6kary1VIwMCN)mN;yG9k4`WrBH=+OjnTG8Ra~{821AwN2yUmOwnqb% zx|oH(Col=?qlT3t;HcF1`0nQ=2KF;!a1SuI^X}@4L#W;5iv>@i1cdqZfRG(S;`$(c z<#E<~KhvcZg=+>%7L~rxNK2&jV%@X$^1#&SnZVV8!HDI2 z<5qBo^&=i_n++|7c?GxJTFU+}W-#_s^<$!gXw#Ab+wa;!Z6~elNzM-<4A&Z7Q34!^is~Mckk)o*FFK%ssnSJ z;kI*J58)k`#}gpLfF0^bt{mD#jT}qTLmz2lft?m|B>>*N6eiBEvO3_JN8U{xBEnN| zp2D&f^f0~EC9zphdKr;q7RFWmsNtG@ra4=13!KGDq3Vt=y)MIIx`oC)_Xm24fr16Hr`IJDNd0B& zW+G-+(HTl3x742vyRAcuJNcBkzF(>dLa(|LQrS=U3(w^n2h(hiexeK+4jApGUR)X4 znO?pnibKqF%*+-;4Z$H*KA=VGqn&fvaRO%I`U@u@5jA)~qK7tjG`N9QS)LA(`AdUC zOM~|LgyMsM@`i~aN+MLdq0}Qbbz#n5DA;rv5^dkMjV}5F;(lydcga!Mti0A)Ew99X z$m7Bk6Cd&ZZ4a#|z5g%!>y}CWKQ@@O1t_Hc3H+&)nbi4`7bCcp?|r=)R$AbG+(<@l zTFMh@3)g=$*H!7=qyxWH8n7KqWb14AO>KV3I9g5N>ZL9H4;P>(^rfu8KQ#Ab0f~me z5ahH{dis;8vd8~62em^t_sN=cR0y_9U90KZ6fiw#1$Q_c#T#Jk+Fv z4|;ma!uUx4sYZ!$1PWq+<=-chWL#rG&I`hzt018Us&2Xw@M+3U3;Q5`ybnm0w{ z%-Joy#x|B~#lOq=jCle$rXI5yNOIkQ%)*>{$39afVNZfU{xt}>^JrJLUDE_~j}CR) zQ;$v*r$9Bs{lM?pjhrbC3EK3APAB%Yy7a9T$vC&XG2JxfF)bhJ?|8mHwY7z2-vSgM>e~ z)#Y+d#c?k+I|zQkf4=?MZRF49)+n2h=7%)3rX5$CB4X_z{$}I1aF8542_`(HQ|8v% z45C~D@MuF|g-0+@^lJG=o4kN8Zv7O@o{^`ffRpt$aCOu3YScT|cS|Z)XVWb3?FDlY z3b;8AXmsA1sz0q&Y9h|3t`_vc0uc#+!?fiLhrrQmi*Jn!dMxwz6BeFz=+ET1Kd;+* zBcbnssm>c6NBx%Y_ZUZ$!-=jCb&EBI(*6KA3fel1gBGaWZzzZchey`4cCuR7rKRkl ziY0fW{}`F@7doB|h6`9|wX8eWh)>ldQz>XmCSY%l{VoZ-o2$C8yVr)D12m=nArL4~hMxM6=M zc3#ppePE>dp<`i6Mv!416A18{5Z^RKXQ^*XuP?@Se_!4QfD=4sr7_5Y>?%ZduX`&D z1#kO%<65llI58o#T#{Oq|J@((UOia>Q(CtZ&amIZSY6dw95Gk=;yX<&H`PDl6ucMv zR?~bYeCpd4??&|W_tbAODbHf?&%lJ!EL6THEi-*{nsQ4zpo_lO>?d|wG4kbADP3xB zN?|QG{9jhFm2(uynpjWlZ6p{_g{uPAw6c!duboJ+u?|i=p+zi;`p>KZMuzBLmIH zV5Qq;oXtBqY^RJqT&-W5nIFL=!%ALwJd`ZIDPV=?1dhD6ob-h71Ieg8w*W7F?Csxo z%l*tKBE7GP(&rLlw(etb6mJ9e`wzEwSvbDy+c!A1y|pb@%JAuelq0`A_^Ri*_`BbO zZXuBPw5qwBN#|Ok0M<^(y3)|ce@rg}UUsSTM-uoGT9Yv$MI;F)EUm-4{RO_Z3^?}= zNCQSEgjlUteFXw02AS5Qr?WOxlP0s}h(?)NGo|^QoW0)E_f@av^N~s5<1_P!MT@+n zWPd$q4t93J-%Bp`Zk$WQcllg52oJo4eeFKWbv1*Yis$ECzU->I=N=4v(ti%i6aL6J zq)aQr4ZZdf~iA@D-cZQ`iT3X`z{laa0g zL!_i5eIEJw8K(AZ>5!kka&T1M=B}?y$6FwQY*E=XHrwm*sYGNRdxxFR2n(IpoQjrH zJ^j}Cd`Nd31|S1_DmMw4AHQgMSZOMTmlN{$^%MzbP?`q0<=&XpY2yPxChDnNxcAz& zkeDML+-aVuVejFvm5t3&D-8f~GM!bz(Q(Ma-NWav$5rKS)EkV%1n91=FeXFO;+!bc zf4{j5kkD@@tO|GUberD+AJT z^;VCxWdoIdv)a{1eL3BKF(-cOfvf5GT1)J6r11_i4LCaM1Yn#Y(&s-t-r~=^^{O~x zixe|hG!j#>2;UP@+f58C0QR?;ow2~Y@1)7Ax5w2=Q=!e6ic`OcPcYreV)Pg+L&xR% z;aMZAH*c>6Omdp?M0;cnp-+LyT|0H z{5>TTC6Fy@Ev{knS0HD^2v0plX-W~Rm-nvALAxE8_w&t=(mdpO<=$4Eo97#4LUf$fj@>Iu}|pgx`R5~uT|$~9th{a#L8LqCGR&z2%kb|?x*4F`d1eKd8b&D z$no1;vX$R3{ARj+OK3WF*+?lFEw-n!yq zfiF2Iu+Ar3un&0~r7|)Gf|#vYY*!UQ!W2h0s84)kr_m%I41m@^6QL;8QRPe0j{ur8edRM0p39*Y?@kpg#HQ=T!!YbV*LBCn&o86G>=Qt6NjQ1+st+!qn?H}?7h%^tGkCbG{t#nN`Nn?*BL_W08Q5G;kZpbE!1{$^vO!8!^=90y zjfF^aY75!bYCm0$!7p+mWJIG=+32cH-o@RyF03Fz`|dDdcjPSTCs<#2QcK@-xL)Q5 zZG`V!?!6j3vq@(ld%gNmHE!tBpp-Djn+ETjD3htoH(#0TLz}}`w4wUL!7%0~fu$GH zbrXBfYc$E-tEYoUJm1W>y$-vBb&LB3^cX@u?(Izz#tto(J}bp<)m#`M0JnW`_nQl{ zGlHGz=c6!?sSi%7t)qqFGpJ%d`EL2RA#T-pzut2clKis#j1l}xVU-)mdE9+#3g24z z&O3pWEGQHuXj`jpx|mIyMATR(w8gYKfSGMGLMpRMKo z1UC$*8JItjdf2-0!AqdkFQL4_)?b@`nT!;KDwVC(D~W1#AYysEEi9C&$ME4U?C%*3=NN>h(=xZM54d7tO+Q0cRcZRFLD>tncty%S^Mw6a1?}VqisB zf31FiAnFQ~Wc28k{og7-VG22>sNSi6d`6%XWH_J>%N!QUFB?rjYNT<|oUY!G_XCO_ z7K)jv(ehN9*ldmn9Kp%&iie|bHrNc#|EOYzC|Zs8`(pq}KcvWFRMdai{f=fXLK2F@-1r0!ic$zO*GX{$+>4gYe-q; z?@*51Hq^ZKSpRnTjq@>x)IDy-_9(I75tPioVD@nE-E9P)l1*$*BJ9gekGD4ob^4^* z%e5Djr4UN>DzOc-MtCeQK)f=V0k^^IR zbp|(8f9Zp5()hBT&e(3#lSXWlEX%}Rf@(2-^=5#f>Vus%^* zS>5ez4}`GybN=Z1FcWD7Le{<+_lN4$U4AhJE`1R$=F5FZ@4UUh`^}H%BVEiZG0K5l zaP$!#CQi;1Hm7=sQ(MfmFdK46DrBoUC9$`KeX*rfR|$G;-*;yPqAy(S0o)(^g61V9 zlqP65g7cFbL^oLH=PZr5F@3aWt|n6W1<5|dA0_}m9qs&4UshzzLE9fzau=LIy056A z+@@i-m!w#&f@mb-tvPny~`&R6*_Uo%~5b1wT+Q6kWeIrVbTqr+!bCBcHj zrn|I_PY4v$X_|{_pl}>&Y4!Gb2xnmyvsjGb$&3EfEO!1bISaZ4Qxc$6hdmImm`o)S zS&F`T>T@C)#58BTd$ZbF4LG|TVIP2ba49fIL8SMI_zs-{VX{;#F<~-FZnz9>m#@<7GD4!0WEgRCU-_3 zr}}t|peb`XaAqYN7`FP^P{?NQ)pk#&&0 z9F_Iekza88s?}k#@jQ;=M|W438xUPz42Y_%v_cqHB(znCxkD>MJ*|K;nv*xdY^1&#?J zRva zs3+dx9ykNia3Kq;11u|-SK`?C_i#33iD#oJF?*;4Db(4fK1n z*S4Tu-`d~wWTXF6;J)`@is-W`*oNB8#x!*H9mct%*mAWbHtt^ z<{9->+^=FQ?)xy%sr1wQ_5Mk34L%D(1v->9#KjvOM@D8Gx zNy0Na(RUuQr`k$ZI&wXsZT(~Rmb(0ypvP_cjDnj*4K@b+lG_e-m_)cvR);4>c^Rdmi{r@MTMft5i@O#VD$g6>%+dg!bwsP9*lCNrHphVh6n%*spkjn_*r;IC^JzRwqia#s+cU#G#FDb2X7XLmq8P z*3w(JfN^>8woCR3b97b*alFJEgzn(4L0&WT35S+dR^pH+LDKcfYd>|VT}xuh${FgtAy*qq zBe_zMnJ+GKz3Eq>qf7nRoalW3%4f6Qhf-ZC{lofsGmZ=c)zkg)F`2d=7a=CCDPg~o z%+ef!K%RYz$~qELT4&7tAle?nBus#YJFq*k0*C*Tf|6f-kex=Q$f=i~y4j7UY1qV? z{4Pm%pKRW`@7Cg4#K1+G^-=Ykfu2)N?Vy)vcyJJHw&|x#F1_`YPdb04ERKptTf#|Y zMSm&YZC&;JG(%*4^BlLF3V|`r5PRLi4r>X&AzJ(L-p5^dCUFYUzx_(7`S^JVWW{km z)2Z*12=C*=Ck65pR$7oY%5&qK`$vb<_iHQM*Oh?h-Ihc$JGU%V&-{SP?Uowhm#J=QEoR{MX@HDT(z4v%|7jO6^F9|bo4*ceZT!q0T ze>PrpKcWT_*X`N_Q=I5zGVVd-MxS}YhZ|k{Q{s!}qUnBWU$>Pq>+rdruld=&D=o1W zL*n5c47UW0_|oE#Hv@wwvU=wqu(G5v8pc%fSOwnR-0^;Gw<5OGNbsy7036;68Exxh zdhl)Tl5st9jX67v^}0l1-&uHrp*pGBFJ1Sw4EBzD6ou1dI7{=9#-g5O+Y$Cf#X4x6 z2figRyRu5kDdx*^ATPO2;4zBWvBjY9oNTnzeD2PvR8O+_E%pdrJ}5Vz^nCn&b@0db zote`99)fPHgdROIe>!#@l9NX5_hW2#J(YF9tQa8Tm}xN=<%_p!Cehp^=Xph7zWg*+ zs^Ue{*9yQHb>^KoX1W(foxelNGW9d7E$!fb^}_7jyAN%54&Ho3t{eMfB~tc?#X6U2 zU@T^i$_k!<7wLTdC4aX%m|U~FcOt21tgGndf(4c&ZK)@|jlbFs^w(HeI4kY=>sbXs zPn;{6QYo|IuceS0PY32a1lhpZ&O9^}lGWY{C{cBB*64}}&{?|L89ry(1QSYF9u_d( zrYaT-`7POSCOsNRdS0bKCAov8M3o1IEtHG5?Yf0CsM>*^i@l?N+2Qyn?hg&Y%G6&Qnuc$Mxh1t>u*TFn$ofGtu!VTN;T zgT_u968JcfD1qc7-^#=4*;%U9_1t^eRjQtx;q)Jp%ALGIGgJE4rd_a@b!I=8?dGCoe8UIA{0fLAMCd|7+VtN(-7YepA`wSo+bPLr`o|*w+`E2TaIiuAD#i_W_ z+-qZ|=PPb?ji`Z0l|G%MzMSbXv?ec`fhk82Uod$Gfz^fB$jHv|-3H@U;35Pd$KD|U zo)!Jj&_)o*WI2dpN33;byw<(+jOHV@>grYgu51;IcbKhMy==%iB zi)<#b?`aX?RNtCg!7{n6A;%=%Ck~SEzL+^H8NDy>_xPy|Ul@6(S0B<;63_oN=Q3*D z*`$1P)lZzg$G2=1Yj}X=h5>Q!)D3X|>i_NkY^v{zczkhzcgF?QPIR0VRUF$pL zA)&2FKhG`xB#K_RKv~X6 zUT@#$W_Jvohp3{aBKtm{&o|w-fK|lrv;3A^Rcs)6*Q>r-5z%c#WTC*{K6!)#-#E(l zzehm5C23&bhUMG0k+~K?`<>y9#lFlVt+3Lpd)oZF$)u{hArYi#(t&CWK#YA)qCZWV z5OA5;W(3Y~G3rQCndC1TPwxO0Jzr+{#Uwt3v2avWk$^eNrltwRpe0?1dkP9{9eybW zIgwXv3|0i9|D2iboJ%|KwqJC6gz{yHP@M5m4VsD+p#rAtQJ>W{pA~u)0%eC=`WNDh zz|it(msc??7T^4Bb-!%iCGU+V_ygnY+yX*_Rr{vCIHi()6U};5?{Pw88I(&?y?TH} zwRL|dPg?xrk>}?m@_u!w*PR9QyrkbGM&!vxZr&%W0EMEw)U^e3vkW}RUwy}Z^8*zf zhr%=Gq_IzzY(3+PyVAmcQ40o3x>~@Ho$EZvu-#tYjV6_r$69k#!_ z;RG6|gy2J7c^PcF;<_mThD{A3l(cHPADh*PM6{~3O+C+XbtI5-&pj#byN}H=yn4d| zs9zX?GG*D@ZwtEuFDc`bcgA@uy6`da*z{J`pvX7Vy`mo=6Tlj9?U-HjLXG z?Yeq0{^60os4Qpje43hHwAFs)lgx1W!xowig^1O%*=8t9%pWG~uO+(YBY z?7O7H9Ej|{L|$84b(;%?J~dvy=X@z~lliCsc?@n;G6DB8>duHu#s{6Bo!O4u%#OYf zwsqY`Fn5j#Wn{KA;BbpeTMggevA0V5o|?W?rApM!i5Z7)UR&@oesl&wpP1d`?x1yF zHKbJW;~z5~c%wjxi-I==#3~)!DPIHHl4n9BGsJPWU z8x9(i`P1dP^pctgohH_^*^j>qi*|y3rReXt*9m?lvkr)!i~%1QkZ=B?aUxW&ohk7- z!QqH}-vl0Hown;8(r8u*S?Eb3KX0lhe&Gm}cUEU-=H|jsYu=$YP$XRVVEu4&cS}KQ zW}$3<%n|vp+qOESC$RZQ<#!V^aNrxrE>*gZ4U}$-JA8XmK=!CL>AGcMD(La1XhK(( zvPy~mBg$5V3-HH84SlbHzMCXuEM1S4*pfBCdd;ud1Dgwm^r?ExjYSLq1k|^81Yr8K zZXZ#94uh?6jTgFQP|ch@D>2q{x@+7T{>tPpO_{Kevu2@}gD#L^-=(LxM@mzKI{s{O zvmrc#dos><=~hVZ+N0ZO*1XE;{A4_2x|OmdS{;^EIWVYClI{dw8X*RP4bRcq@ZYEpqiX6IXH*!C+osx`Sq<#wpRU`Y=puYwc4#NZ$f+r08me-`x+3{6(UUT0aRyx%K zLwh3Ke$wstO>S@<&wHAY0=br|5@413^lg_^oL*2M#Y6v2OHrIjePqC9B_Ju@Wy^J! zJ3BkeXmaP?;d_A8%y~G$^&vawe(8^<41-+<*w2%*v&C!neZ}h_UsU}0*ZFy7k7{$R z3R_?>yOu*m3I`Z2-uo+?0-FN-5o1J7w|F@GN zCV&)s#qjDIezw}-#P%QQXiztZV9C9wO{~0%l*YU zbl+A%xB?KruT<&Jt5g?o=+3RG*nXf$1#M-<<7Q6A$WO3w!-FT;}Oj_?(C`5K=!`!QGw4rw&4+zi*q{=?lvrrs330@-n z%c~nncJ^XM9hv<)p{Z8j*|L%Ri^T0Z6Pa9qUsEGO!XZm&3 zw_<);42cNXrz)PsX}PZJHD128$t>s*UIukBgVs28?Z&m zM@fv$Ub3=Al3^L72vmE#Oz4Z&{^;refj9gPEH?nkGoyA^X$WBY~%Pts9(PBi2xbww|Ng_a;7sFGnqVHDsIOv1ZjC7iEoY zOaA`i(sel!IdU7YXpcTMGQUf>G{v)$q;rvdTTUU1R;`e_GQ`*xBVW@Po6MkI-0S5Q;48$6qy86fPoaf~kpa zE2|mazNRM%V4j7^SRDuyC5a?Wp;`h2jBGlI!l0bHuky|njD?oC>H4+ z;#YEO_C7S%zPy1Js{DkZ>Bn^kMR}7{JR9aBFD4d1J52u(bP;{>#PPvvP^Wf0wo~E~ zA1c=gT$0ZDpw_G-95~aV@Z&T}Fr(!wSSS?zE~!Jljxqe{K&`USCe&ds)G88Y9WlV| zAVw~ety=;=magiM!_U}UT7bT?1ft}JNH9PZ5)}QnDn-qxUEJ!_VdTH{|Nm0O{`ao) d|1Ihy8tbqm@HC%bKnegqFBH`jO5`lw|1V~aENTD% literal 83384 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 UpvVyK0{{R307*qoM6N<$f}e)if&c&j delta 17452 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 diff --git a/icons/ui_icons/virtualpet/pet_state.dmi b/icons/ui_icons/virtualpet/pet_state.dmi new file mode 100644 index 0000000000000000000000000000000000000000..7ec865d104bc13284c42fb50fb07d73ecaffa4ce GIT binary patch literal 422 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%0Dsj{BtP!U6X5tZ+Z4_*klrbx~MIu1}nE;&7; z{dZM7<}*T!dtEsYpzut{>(vb4_Xok6gwQ}<+r%vfDjvAj8j}NvVXfAqWNmspnrK2)_lxbF}hikXfDy>G?yP zgnai*jR5Ol4V=_}{T2~VoVZ9QA~G5#6(j(;5Q^FdJu8@UH)y+sk+FHbgCe>{+h>5p z1SPAOYe#neRvVVM@JPY6#=cKqY^AQvG%}xheNwBZOw9W2HhcWB(;g*L-eAaUjun=sF}3!e>>XlYbOgbnI@gOFh$y`pUTs8 z+)ou17(E^0?0hzljjEG;N3X9sX{)x~Qe8XVbmi&^ZEUbs?#Z`aV3piae&(pzzoH;D zdtUhlZQt{M2=loTCKx-^6+p#VoR>6QG(!1rO9hVyehtp z8x*HR00ioVtcVG80%0)dwe|da!KH)%Y^v=HY%)Y;9@aHEK*^~&J|qX=_~fry25&hp z$YA^u!4wzgg>c+oYa5(j?3C7R$dY$W^V>I`I3b)=DQFzRf29yn% zXFjt;16s}8J{D6r3k0YP98?Sei#5W{?_KeN z(&ji6q^<{tpwA~$%cDV!9BK}HgPHF)m2$zPvr5CR9NojaQO;W+p_!Z760K7#uaj9m z9(Ct|BkiLJ8f1?#zLFFn{K780@5m2P#iBno!DxA9uUA`x6Ll-mi_mW;cpt`iYm>JK z4v&myuHLty7B1V9(!_su3qjKwb|1lXDF*}=fh(5dYTnL-%<@>Aj1 zP3=UKA<7)a*SBcmjij_@(+0%>TMMKr_%5bxS!Kfj5d5@R;;~=e7;Bv@1}E_9AgxUp zIhx`{UbHLK025gucf6`4-`Y3Qo<;ZL*fUl=(qsl0I_0SW@^ka12pwCunLA6Xtcn@< z8Tj#=>=IOUj3pC?#_rAt$1L{`hdb*J+i3_=H}C4w`h>36yJ5SuZ(Y@A@F<^7Rw77b z2`+%{7ygTZBr;`B3mXVSkGz5^zx?1NC4W4#qN#ndZZ9~kvi0Z0^W0@A%Q4~ z>)U{=Gg3L0v|rjAT7)-rsbACHd1u%z6Y1X8dOmHRJ$?+4Ev8t7yH5|4uCP8?bG5@F z9q#W}dm4OLSBuE1o{(PZaofDy#jKO2fS~T*jVpTtej8`Dbx&VV(k4``CsUnR((;W3 zvjh3}ma*53pb_@k82e*PhfXj0m%4f9%3uqTEFng20~0wH7i2NY<}Y9vOzL6vwspLF zMwn!UDl$PG6QpU~!Mv3s%@T$Aq70BWx%&y{1faC^(&;X$w9?kTWghwe7iTf}Cqn;c zO+c9afZA!a38KNC)>dc};xjVPKit)iFezA-m(xr&HQ{wn*>vMlv!lgw##153m62?c z{~Fg6KRYdJJE4r4p=?=}>2ZU=txHoR;I6xrl8Z9?OGmzn9YWvuwla4FC)9tf70NK2 zzWCX<@N!Qp`hMcb@h^&>2+x2z2>6CNRaE6h)YYso*_89fJaIUPCDA0Er)D}|{!i&M zM7;GHzyG)^EPDPVw_BDS<)`Pgdtx}YfVuK=PNk~yF|s$=SnfvWm$Sv~?#I0V)5S>eJ*^Lwma7y*MYnLXYh z?<57<+y__kwh<_+-(PQ9074OyuJ;=FH&M00ZA%O|W7UN#!zMAOj?rAosfpD` z*EKtlghxbU>%zr#^Fzidm@FC)Y2qV4--K5q-ct;<$ zR+10PS^9aKeTTL9d-$#=XDq$;<}7e0to4)#f4D@n#7rIpRcn6s4D!eNm z7AGJx*xT=SKng@tJk#VN9Wj8QTZa}1$!=n%ZjN)7?voE4l3vL> zOyILpK`~+9=@n`C`YROXMfzuT4b(An8T)JPE;P76*29zs>^U!xFV?aXLZF3)#q+Ax zvf$cra@sbey{pRH+g$X+Ig?Ft?g@S>Qcsk@^D!sub2giUev}$%Z|XXoAfaEv@0rGx za&Iz!z0Yl>&W*i>AcjT=?(p)P+c0UTxthb_nSlxiM(oYWZ%W9z1Sv3aq~I~bk2$K> zR-PYFJ3|c2&`I=DW%DqDOTg0CDkpPq7JOTfEkrMvV()v1Nc4hBL&2YgkUCU>dn8t3 z%+=T{6*@N|I^%=K&@%fRy5{)2 z#?PLfA*=x`SgylY3o0}`vLJN6sdH!XdrQtWnCj8o`4<{lc-2ey##-}4Gyvk5(GJE+ z6U6L3VoKckp|e7(+vkq7Ir`0lA6oEwg;v^R(4*z2&X)hWF2?*{iHvGw3p>F^Pn^?0 zoM0TQuW&u4;eLHx>e#eJXG+Zu;ETr{{1@P(37oz_vLe{Fh(sj;&WDvjfC!x;;E+lf}l*#1jGQ`?rtp5n!o2WJV%_X$xODPj6*SetbEqy|VK z4DZ|1s1*;u0;Ql|NB6Sl2w7xN*+R=qn+#%PK3Q>U3L04ZIJHAk?ThDf$AR=XilJ=D zQjGv%XR=((1-L4gMLlh#)u9Pd_wXPC?4&Fw!J15pJ8a>oSy`t*_3W?&$DO1ZNLAMHwj=j;x%7b6Jnv{Jgio-`w&v|*1WcbO{d4@ zFna-Gis{k@PlFu5ixK?!S?-Qz*E^dAUG$p__E(3Jxn8($d@zol%qfY=SwmlH4q{ds zkbuLpxa_=RKBpahbOb-n@oXSA-&wmGW>?L$NscP3oxBexya-$y7?D;HO(m@A3L% zI|sy$KA6|Kf5AAk*ZStBxHgjoJ$2b}d9l$+fO{c5Ok(U2T=HfMEHrZHOkZ-jFE1#RH1S7wqV};s@Suq zC+2o4=jJLn`1sCNV0-vC5?*`CyQG^i(AnPe7?N_1%8M|ftj&)$IGd3`7}v@8tn6sU zuYaHth~#_>W04CmIM|=>hJYO0hqh#~V7dQxmHcURF`nUXxhiS9q-lGp7kWTYsrBO3q#i1PX@nlxcz3w1TlBXY+b0}?L7yW z%9a3nCE){X`KV2D)VP6LJW=|uPl#DBkQT3^*w0y%U}E~P;HH?IO6(WGH95GvO?sL; zMa`FM6#Fg?LTi+I_Yn751xJqUJ1+zrb=~4+(M&qS1iv1$H(!A^Y-Yj;%$sXgX5_(l z_cN4;wF1olZf=~%QVKcWv_}9ts9}MqCmbWHFp^fFHKQ3B7~bu1A9}J$t)t^z!Z#A2 z-SOt|mF2&gY0>=Qtb1piZFR-We^M);yq%fv&BRV*Dv=|; zN;VG69=r^4rYttKP3W9;MU(}Y-RK|Op@9nn8j(&b+brN1+9&ORmwZz?&hPsrjz}JO zkC^502PJ;bzM*L6z~v~cLRON8W=>UTJG5>J?CnzPp2bh9u6ON`#u8C<#a@Vt5BXuWZD>7{+3 zt#ZDtyHfFN={p2p-}lCQ&4XBzFCD|y_8{AT1=_+`FNRDzlR ztJJZFKu-E?JetWoNF3vFutI%q8rg+lwO11OyaVl{;tl|O zSWPobAR2(2tw3%BEqQ6swG@-`_%2H9)x>42?kw*EqqL3fo@IAE8pX_a>W|0CI}&`Y zw1+4~GDt7QkOd2*i+pYvnndXmb4-QmHO*1wHWp~m_Yb(5f==*i;0Tx>0NAox;F0c# z$r0~(zy*r~_s@v>v-pD+42}T5ae2szF^n}S~WP29o zWaqRCXJYcyi06}WOYODs`La!g%=|>cO91_z0e%9P9$49tunvK6fNn*;_CEanfd#3+ z)Eh#sE6L%oMwbIx-9FA0>|B5Xh?wY&%E}<#Ds*E~j^PKi^P+P7{fXWbfta4zH>>g! zTcz9OZ)PT6n=0Mq(oU@W;k@X=X%Bu7zvxat?)a=H5~a7xHV)C@+LcqVh)C#qx90Po zF&X_?cqIpXV5xz`_sQKg={oV}(llz*qz-uHIJR7jXbhW8t0CG)9Jjy@=PXN>{WPo_ znQ40NHNW6(+K#1bC5M|kZ%?D()9lb#WiHS0(_!&-VCYf<7PC-i1RrRN?dz=_%Hvh_ zuU-NdC*@mx1EiN>=6^ATXjT;4=SqM2-ftgC=T{Njxn`WEsIf28azqmjyrFHk&|aj$Hd;PX-8`Ou zGOP7IKk-DOOAZ6nIVoUWDVtLzhltI3Icv|*L)Mo41By@F!yXpfedlJ&DR>^=rgI&s#oBAP|X~1m{RTvOHA@gQ}M}l=r@+#zmB$pUfO`ZNGF-F{M6v(PrG;I zKyea_QDLyKdlT(kX@Od$YIk@p`4$ezahiUI;YGzdr#R-SgR%cjHKG=^?*0PCF_n1v z050JV-PyT23l$VxZ{Jwc8{Q~VoMql=Kp5VGVFp)the zb37-7JAC{LrX(T`bAi@`5_>9Lq*Oj#D2hcy?#^E66?~7Pk3A4~|Ai|h4VyVj8S@p- z?2B&9-r~8*?b-^UK`9&g72W2m>b5;xDJxr z4b^4R*%1SK-e-GM9t z1Z1vm)E0o(Y2LI<=SPZD=9P1ZXp*Lc;S?0QS@CvSS*HeR2diV@-KhLKn7Op!Y`)k;jaCJA3QO z{6@O5(JMElniQoy_a2@;2*BLTfj*bR)WsZ@ry^6M(+wP)T6^FMo-d7Eaw1Xrt{jZu z0roa;Fs+2cpP)l#P_hS8i-Vlui#IqwZUjAdn*0Jf)N4l;n&&KDcg>ze)TCrq9CCpt z=(YX-rh2q9y>UZgDQgvUsqb>6dDmDi0zus2cgD2~Yi`noL}4Hm5*e_gDsex;GM&_`b2H6R6AUc{(cuOWNh-$;}Pn(QLmkn*CME&++5DNQ-#Ld;*pdkGX8b>X)bm`5v#2ALe{G7 z0t5F|El3ZtV_eydSi8eRa(fH4$`*T^zUMeGn)}e)Wlnh0tN*tcwtbD2b`!j1y@!*T zZ~cHaWV@nWDrRsuJ#j*!|33WSYRu$CaQ+04(qcl4N*9okr58sO?#5V!0N%t3Pt4S* z4p0CvM^I9y&doA^$s%Kh z>mqykOHVVUm(C4~4Ifa}x}i_$ZH$Gh9)#Qqz`n2QBfQ+_--gM_tl-%s&nz!nC%iIk7YU*@I9m1ZQM9|D*4UJBf#`yWl}Akz{cM3 zf`{5Qn^kb+9{=2|=r1SW<~eJ0Z)C4Ne$SRl=Z!4h%d!%rR-t1-_P444RT}jwlEZ#t zIZH}4&w4kYW#H#_}?J^TWgNsLccv7 zZ_RV5=XtPzttHSKG0E2X{eAu*ZDNF&8a(&;#JTdKS^XaF7Gv1Fd}0-KY z7vBTDvy)RmjVy#r?ZNQj`rgrV;pqP0>d3*~U56X|cxLw5<$OS6#POg87N?)eel5x6 zF+Tggo9ob1OIE6bT`F*Dq{P>d`t94y+6L2?T0Nf@_f={e%mnQ;0f@87N(=I9;;ykB zvk#z@Iyqqsh?0UN(Z+C}*e8Z37?UFfF#GI{wTvu+vloyq%SK~w%M73(UvF}RdmM3K z`XW)Se?S57tq~reXW_xXvkdsqitj%>hXMI#0~+eDoJ1yo-ez4n!tOrzz3^)`SonL9?Y2F98&*6=+pFP4Y#jVa0`p0vV{&zkxz44&iH(&NGGtlq zoqTc{?V96dNAdEY)a_h2>1W-ZB6F)733GSX+b`F?BMR@@B zLpNl6!k9{<5f`S>f6I4t6jQKsP;$t4)b+B-%pv!=6UJ+^9C#sYh8Od z#g*+gW2kecHlQ#rGj%>uvFDS&61c}(c9~(sq~y3E?1_}uJ_1U^5JLVtz^}78F@&`% zD^;r7Y}T##F*4)H4yKuI0ico$(hfZ~3E)7HHpffzCoPq>?bfwW`Y)YWx`eFCuP-I(odd1ORDJy z`)3D@AcI92X|~tZf_7&Tenb@xpWwBP*gHpEyRGTjV6jS^YtC4tTT1Cl0eSe-;dqAjt->D}iZ4g6C zWNt88*kxxXrB`DV4Y6Qq*Y%6T)8Z8J zOIsC<;T@v1PeM5JIJZlq03;NHrDNoETuUnZ?3c1y*^jrsoE(U7E#r*}T0C#89MJsgCT~S$CcLB-2#Eg(zm`;4wmEi^Q#R!y37jaMqq~`krQxjm)$alYC(1HNBkJAZe zqZ^s7grxFG+m#$pX~8d!&;5U?f{QnH5s)0B$yL|e`2Z^j{@lTe+kSW|8b_8G zL+05UG-+rVD!6o&&hlz6C$X}$dBiI1FQ!B)(N!fS%;k|ts~P}4DG&SY_jnuQtb*#U zpC{buLC_%Yz66>)?c5Z@_rFAXy`h{f5m+|u&u&kpuNb|wqH~}#v>c)hVOI3XrG)Jg zhrbewCaoPQ1>rbyv<#J-?Br%%`vK44IGaR6O2J)fiHa@LNQ6(|F}aUZqoWqOfJ61I zM>D;k;p<`&ns?WBXYtTS_DeIdKo#19%Y~8cEgLgH)eZbqsiO+#mK~nQ28i~@DA5rt zmRD{5zxL24a1y{oC5;bFYvZDfd=F<56KR2p;iFryEvU$_Zn-bR?=zC9S?ywgc&1~Z)e>7>K^EYH?A z&uDaTNj8Th*q!ox$|}b{`0v<~t|EIeQ=x|&@?pI=a(qIc9INv|^~IR6iYKYtlxU!e z_{O8$57B_xj@#&V=|!E?SZLnNowu7nVOM2krMSmE+f1Oq)_$bNbm&f`7m~&&X6@2> zZS!K{$$k0!5^G0xzaFU$r9tnX591aNSl3C8EyYN`byyUSLic*vhsM)y5K5mFUv^0^ zG0%#ixwImik&KBE)pV*Yk(%OkE$D|2l!|4jZSj<`$&&Wcd2x1;bP5UhT(29&;ihCE zMAmv5twU7!6=y5sX&V77A#b@a2qIJ|fid-+6a8bJ`QDNxPYc6LI=Yer6uUPu9VqEv81@#%d-Pm=a$3NW;s6}uAlerPl zBNjEQD=a!b(mbe;dFA>JXdPOu7dVQqy!c|>d^N2JZoauOGC=S^BJ@Hz*;IIZ?2HbX zR94U&L&KZV>6Pr|%8@5t25-wuuix>{R3M|UFx@3^x+ft`SW)t6y*K)9Iwx2M0k3(6 zeoG8N78TdIs{C$D0i;bEBd{}y$jDP8sc=%jPb>?)28JBM3!;hrCjLjHA|zE*bQBP< zLO0=WMAC*(BmgGE8tI@zEI^4g1sV8=hIME-U7tfouMDgz=L;<)0%_yb^=amnyAsGt zIP~|=0cqW8vIaGgzw9ILN1ko~2*#u_JG;3NJ#f5-@LOdW5JI$Ad%$|ZE;9Uw6> z;fxi1ygul>MECi_B2v>Q;ZZE13lF3k;Ej;?3WETThqWz#%7w+>ZdB**e;w;D zhY$d-4kA|hh4c`9ADVG*CcQVn>3~^cCqvi}4c*bSAWXX;-SXN^87a-SYN97)Ykh)p zw<6zz;@E>19atPm+H}esN%8Q>1y$(Du@(nvKniHM*fOX3C-R6avUDss%OtMEVvJhB?m4%iLtZG+X8OB7ietql$QP=f3rpUkP}9LfoQp&tbl20T za}VLxfBm(CC)p|LR7E--EWMMtI!$skh#B1~F1&}BB1y_sdwsTIkjtjSwXiB~t{M(r z8XU0cM)80)@9mSEiQM?m*nGTsjx;8I$ovWX>G;W#iZVH^mt%9=f%PxpVygj+GO$|Q zlYo

I)w&CgBRNe*C?sVTN>I!z)2lQibDUU0ZfHgBOnuuQ^IIug>1DsQG{kw-&YV zytiJHB=1(1CR5*{{h}nn3O@B*iW_7sf>TtyVr{|++Xw0G=eWF;>~h>-Y|p*Z<*zN^>0j&Q!LETyfvx$GC@YnW%~ew9IoYg!@_!A8@#xvP>| zHIGGn^SxF+m1E&)4$HSjQe4%9pCW|%a%IY{u4sCQnX>SM?zwVHl>Sug5v*pRc%Y#O zi~$jxd9@cHym7n|=M0}OjFJXgm$u8CXL&!b(m}mk6aLwMpG57+8X6ikIktrZ{Lims-DVfBIv%Sib<=GkWdscQBXd#UuF6r-ZOx?)~+BrOwCxTBw!iPZC8E z2yTbcYg5o$UX$~2KmO@Fs&1lr!(egf<14nC<8uCJ+CUq>zVNR*ssbJ$8nMy8%V{ws zC&#Y(H3x=0Wcf0AXWXB8zi+-k2@yTg9h%>)kA6F~75JIpx!q6f7@D60n!UY{t8%_@ zOw2@bCX;AFq`cI-yrUhGSZQ4EB( zc@@#{2n~wmIr+x(LGfXy+;{}5xRUrNph_PR2YXLP;l4k;t0{kw<2BB!As;T{f4rf} z**wh>*%>V%rD-K76Nf|&;>lEqa(|WO9`z{BGBV1E{P>CmFJ6is1-mIS9CwfnW0G&_ z=g;S7xVGfeF{wRG*qto{vAxUT>p(eJ_rX?DW`Ic4@}Wf}qe<5TrX3BLYvU zhbH1}Ul#eqJ0!o}RT5tjw1?>i;_x0vKBSZvzX$!Oc4+*MAzAe)uhYt(Mmpe=zo6``|$$_evPc&D5YL%yU>b_n#U9$nx_CdqGPny5|P8C zM?w?HQg41`qTwS84VYh^*{6-=H?Pm;7r`ZOnQ)G$lqr_if9mbZ|6A~$-tfB`_Z?|F z{-Q%-_|l+cQ%G8rq&In85hl~5PVQC~U9B{xuMz#>5r?DaMibe<%=Hw0V`389glJaIwh}bfbUGx^StgaYeDRRPn|xWri|6+sR!yJ_pJ>Y(jZph!(aVd zf%4&#pj$lntTesmYgv4Fk%Q)vX4mOgE)J8V;QE4c&v_4!y{d;c*UUj9jr^?9&$YLr ziaSMS;J3|=Mf4Sk&c>xXBi|Y)*^ZtJuV=gulJaf*pAF1UJi-myf2u#q1AkN4#>F z@-eU#h1+dAHIAP1MTxJou+}>$P1KaztAFP%A?gv0HM8p4mV3ot%sS}c;T-2#^R+kM zUPd!o{SKZe{dT(JsWShI(P@`>s}nLGT5X(1bAg8C@m1z6lbmQoeqet0%!`vHU8_o% z9`oVtGPPa(^neGnNByo+ig$Nf%XsFxVNZmaK(|5K>OvLCrjhYbyzL1OTxM~vGUDiM z^M0Dt%*lE?i1kLuLYsbMQ})`c{RM@7s(WUs=Kt~ZmQhi5?;GetO9&_+%^=;~t%zXI z(j7WJ}=9{07a;U!(21q;qoIObB)FXSdYL3)USc3^}HA04CacfAG%m{<&XMLQqtS29(y41e;=Omt@B(B94u%psw)x^zyg zM)`$*B<247HE-X4hbhzjPD&K~RxC6Q|GfGqu~=9D$9hUn#*aeTRc0(ZilFTvJ7!fA;lr#~{3czZ^T?F{%CtyKZ~kIHjQQ+FL~Xwv!#a z1|P`#x(gzt12ZZGej@$%EAOWEwQJe7{=?(dT!wCNuIp*z)A8>+$NOQfDRJRQ>KQ); zCT+9aFJd+$CZ!i2nus2$x!vS;7?RO_1v>^rA-w3%CWwZtFGe0SvA4jB4wdTO`usty z@TCEVl*1xx=Wg253q`h{*3LEPD=)LX{2GO0ySfcsg9Ld6UFK%w)K)0B@CJDAnk!tIo z>o`gHAiq;%UCl3(;b+xCaSDpjKfaEk4ETN|az2$}_lxy6jJKxK+f`ihAhy%O;IiCm z#_UFmdUR_oG4d;YMhWgY&0_jH>+EI&yKYx~sW&PpqRyOGJmqnO5I(q8?h7On<}re2-^FICysnf&T1%d(&)={2zudCgq^ z2VTZsA{pCt45tcNq=cUk#-@Jcp=OR4Gk4X5l?arl>Y9w1&XSC8k;OI-<&_e-ys<0B;L8B}KBbRn0V(?+F|%>N?-c`~Xo7 z#|>#7bayD%%(M{LF4G{0T3+#;?EDiH3N5FeWCcF|ff)W6675Qp-a_RGx5or{?I{Y< zd>a|03H`EWYkZfUCscRbdpBY5Ph$mK`Qu5|_)}({JXbcp|FlV>;kWW-E{0*{0)Eg3 zi%vTFr}rGnbeU(rlw%LQHj~oSsYXcMJ;Gh@{p>BJ4TIIqFSOo44}GKs8qYP{9yLIE z{pVgw$Jf!9M;C~%zHoO}qXZkh9WBIJ>iuK?iS$O}ywhopK1+IZ5;`iaojH{E3 z)f$Dmmh0$)X7?IBXuwilwB}H&G}>who9ITu;iq~?#4`ppqW8W%zjAr~7Q4_5J_jke zr&BS)Qv)!#q6iwg^t&$Z+MQaK*ET?686?Ea%H*;M(=d)jdgblyLrEqE&j4<5oJaOY zCo6vEc>b+n^5VvbWL`_pdk_<_S=pP-Yhao%74ROSP3ZZ${70xv{+X4WsbH7D&zxdC zDHi82iyknooqd9leltzOx<8wIE}k^iv=dt`XlW$I8TmiYQ&A~SHk%K1C_%v*1l7nA&YPk0SV;GL49v68)r7@JHeR{Sn#)hg^e0fM3)KmQM$Csx3`aigKq!djES!|A zZx3m4bwog)K8vkA(Y=(vE^KS6-%QDe9FtOxh)N(byQt1OmIAEj8ksC_3NS%j8N9yG zY1Ox$lnW7;1muH3Hudhd3(+0$L9yR(SBN#fk%u@4WGI_doPR+yILsU>b-Oq9qc}qE z3Aa|IZ3@w|7q3QvaF@QLi{F`_hdeuKR;Xxy!^V%i@7kod30)imudgQ8Ka`cfDke7n z>DnD3u3+>01uliJDouorvv%;g&nDzPu0cbt*Ngmxe9^<8cXz61A-$~PRNniK2b5?0 z;eVTy&}Ae;7P+LeRH^2it$!*ej4BkJ&+o=BG-RkBjkse#VIFlaPNu zkNTZ)dimXt=|F{3F_PaJ<7(+?=j0E)x}cY{1AEjTEz;1-l0?>79K_HAld@8g;1VaR z3A%{=i}=x}se$h$39ui$YJ~&}qQd)$w>M`kjRdSo5HRmTQ?Vk<+Qk{=Kibh`rH!1Q zt4>-6%nV|c^66jTtk*s(;xNdF>)=z4m^3a&m;w_+&fp^r!10*Pce zj7&6kbj{c7G3bF`k&uh_X3ltQ|1ts{1d?v%AM{g}Hjh-ew?U#nN@z7-gt)#e-Y$Qa zDeZBKw08{bhnmk+o(S8mjPz-Y>T799rR-?=`6GkB-{CH#29e|(^k5)cZ-b@gOgly) zb7Ls#KgeAaKM1B=7h_HA#&JKLoIy>lFAuwxo*ZV#mRp_#K(=?RQVS#Vj|Fv42+}%y zry^+g-e$8=9oo(dPD(s$DO|WKa4ITk9Jx?|67vI~`T}mS6M~d|Ke^e*sz1y7f-?t40UBWUDdF zsydVf?>gWO+H7 zjbqlyh9HD8zOWKPy%%b54KZC1KAn@kzuunLR=_-hrFaeHmc>?u-gZu)Xa0N&#SBRD znl@4^#0S1?KmN)Wm<*fXsKrjDscB9^zfr(SM+I7BkWLo!7$N|EMG2A+(t}aZ@wJ%^ zAf^hqYjVkU1VldjJvyC8`Pyt8A+@+`i#V+)9@*h#NU2_Scp{?)D+`Nek#g^%fMgFo z^WSIM;1G2DH}n$Lieb-!C96W$H#TND=MLV!jWc6vBY7@TbNGG^skPT2zrwUa7s0O( z!J!^*x9|Jc(}GVE!T^N0M!EbBM8hA|ms#tqiFkV4o7u<#eL?f^sd{dxK!REn)7ybE zPJm|fq8S-x!h_dxhK}_+3}qY($VSqDb|r@N_Euki-`n|%+6v1+DNCd0ktCjS6WPS` zzeV>c9<4K(1~;VQ%4}AKkzoQa0ik>( zZ>jg%>li$3aWw~)g&RErw9fm@Ml^K246AWws9_@Q5~dVtYoZ{jt)cq2i-fPIvDzqjX$zi<)E4&L0pTIO!~-rdi>G|J~muq=Jeo3L^T2R|dVAxFeN zrHcJ)%rbj>+qZ`=+ERlW#L7V%bFs?~XXRPSJ@LCIlI90<9UAmt`dl*9wp?H}@x)ItvdE{msD!n}m@ zbYP)k5EfjJmZ4$c;sE%SU{;N%jU1~belcaQ;Lv8$-7CI1(iqy1M!9gQfn+1o29E8t zwa~G%Sp=TJ0?4Mp@lChW6Pc_VXZbIVqv|EaN$rG#IR$3Hp>uYa_0Z}t(}Mo0*T0qS z@RdDFyGJPA^#X}aXkU8GDciH5Pfp`hO0))YQo8O96*Y|Vi%e@(KR$Zs{IU1<o;qQT*VRwsET+R>*{D+ zu#>3`qOPf=9{o@Tf7?0!6764+M7O9Tc9?ZR;vBztdm%TLW7r8X&*+sBvR@*-s) z-x<<+{bh=-yt6bZ-H1wzw9EQaKlf&zPO(SvLyUN`#)g47SJQFF)+MYL1wZRY$41aJ z%>p+Pd@y=)d{>b|si+%CVNdfbRU%vLWXb5BF> zy&WxKz#&obdUrwZSh4Qb!;qx=JUSh%HPY90;-VVl?|qQ!_atD9>g|{lR&6f!?4bW; z-}Lu$E1(s{8zxEvy*6Mpp28-(>(dtr$Q$nhXF`av1T^i)Ir_wJGK4 zBb`K$z??L*9Lg%Nl>+eWy}>Re4S4Vxe3mVii4G9?f$0PBqzQqT71N&AiXAb`P*L92D~R~sy{PY8o>f$R&L$+03e&2 z?fjTLKb_;R#)iMt-Dz}=NhT3FIrTP8Q6CmCk4~5f5N~lG4R$!C{%hBANx>GsKg~AU5$6-C&#emn#s~hvAU85k26sBzK?xY&d2(^B46!{mC_5o|5)$e# z;6A98vr01d<@6L@ZU5=t$l*0?Xz+RFkf=u0xyY&SPd=FU+~jXK=fM2*+C_yQhD&Q} zDEzZqJN;9fFj$SE;%Gm^sWj8JYu>pXFEGx5sp1o%KipEna?z{$?rCVeE%Tv^z`z}* zC|Ex60FAcYTl(j@tfbff+~;hzArfO@g`}grLh>F8cT1?v85n^Ku_|rDQDX!G z3hW{FzTXMUndBui=>FEqcY`;|p>K^%ciyLRifTWE7K$4>a%MzDdOWtF3UU7m{16&w zthRH$6*mx>CW}4HZ9*?y?8}n6An}HY;;5Q-+D@>)4f0KuzCY)UtND`sieDKE>q65f zmN($!r>tNM=N=$@=y?ZE$hWoggqidpciX2GO-BYDsIuR*SmW=sz#B#z@VvD$(}v8) zE6TtVp=y*EA-gb?fqK_iW3#6c^Fh$tfr8lyzc>FL)q3VOHKxlq`yOv4l_yHf4X};} zS-q2vt4~Rpp;c49XVxZV-(^K_k}5IRWJ~c&9GTEa9Ikv0DwUm@8m+e^w461xx{DKV ziX*6szrL-1sy;9+37%u=qi$Z#`U2^{{9!#|G37ESvRg`(rJpmaf9-|;n!M%|fqIc> ztP<9ItL16NWODDt&K2|bb6;K0hnGPrCGUzO>k#?)J!(?a#z-2JqrOzOF?j`*2*Xz+ z{mbb9OdbGpbk9@YdK94LsS(N_+uQRUO+BDYew%*RxJc|Q6VC$Bjb_x$A>Bm$K&#iF_~_+2)*-}P7$s)R@u{?Lu=cRTx+BevcSZggpT63JS`foz8F{MM@IEg? zq`4wD40JEo;cf=B_V#)nQZD)P;UVju{|}aHjr-r?f3O^qT?yDslpc}&2g3d6>}qMN zhtza7{NT z)9%X9vUl0QkqUs7z5LVL9*zMtqa3kTe7Ah$0V>b{krUqbH=?A3a3B^axmCSEEi*kx z5kU>u02a3Jk%tn%0@yK1_C044W6iU ze^He_V@II|pveRr_dJsJSM-*C>}7by7nmU!PD90^E_ zez_4wncI|^5UARngYZd!jki~v0k19+tOQdS3LwJS{!*sFceChUdL_p#+(a zXF8WDDP?Y=UO&HOMFMG|BmRaAv~NGB3U%>rKUK@`6d0CWjN{~ANLS^n|90?%qkTV= z+UA-mgxN=*q^VK53jdV_NjIYORc1{VMU?X;x?jIR1M+lxj_TLeXdUEp*|;kGudIGZ zHBmq@X=;LS{QjNzUpZ}Qg0yBD_V+Jk$G)46JUhkTN}YAcbX%`@nWU(1NZQ>*sp!%+ zfKp}P@LnME3RTCZriy6tbocne@$x1q@K#>*PT18BLrPlaW|Vjb!AlZwhgX!_z9;rP zvgM-e;EHp?_WhiV)!NknCEtq#mi~)urKutfiZ9%28@z6 zj+WH3{UgyG{*8JaJBku8w=3I)e#_JGfwobE5k<0#NFS-ll>ayLpfv))PX8r+2)0;$ ziouh_4Z}lG?}PxA%2#89F0;wLkI6)cPo*$CWjdy&0Wq_gf0q$elvn!2rKmDsjAz~n z6|}JzmLCU>A~O~Ky!7j1Qnk``?GO~kI-oYgK*wVxzK}T6W1L#S%SJ}O5r07oSeaB@ z)GpnIH~ca}?~E$FC3S7#Y_rZkO~Z7VEP{8AfdZm+Sr0Ta&O{4A$EUo(^(ZJ}D8t`n zft=?SCf#~w3qt>Rn9^yYC+f*ayXspN0)6igZ>?_v-@G}pTH3>gs$Q3+c35gl52ge- z->u+wMoecF)Dm4ZV^N%~V>Phi(7U-O+{85--g!N03cDQ-nAlvenC_(=JY7wWY`OWe z^z7G-X^8(qG%D&na`;xU{+a>%d)uF_kxhZ`y_aWvbH4R*4g4$oeeC6JS9LhYEEf-_ zJRYhX{Y0cWBT@9bXo;qKg$vO%jF^~#_xuUhDmNUzn6+UW-rBCq?EX;`MhSX4-|`bb z4*%B2_la1J#wVWmS53r0^<1OQjB*U9KV-%1x7|EU{jj z&VJ}?h(~r2kU2<@U2X55N6coq>;m1auAKD&a@k}(@5?H(B4G#8^Bb(-1RL&hjel91)yEvgi#@aGCYCxm;opzxAfr@g8$=$C|_B-wgCc71t5xhf=&` z?TJW1tA~>#@XlO$J(c5+A)DEkYoB)J`CvN)T*sziF^Zu=7+;_+b5SK{Kg=)2 zT*JJ%rBmKTYT~!mH~H^i!M;e>9-JQ)-6RG@SJ$i*1~BYS=noXPi`eb$-CPSJ_aIOy zQ{ZcED;-#b5@~rc+{Jgcw!9V5@t!L}idy*IJ59XqzTuI}zU64Y{DP`(gLF7AZK9N8 z+Q_xYi`Vg}JyLK}$AH@IEB@QEwkhi2x75EAw6_e1WV#SzcmjN>+N2K$Xbo(5?<8;v3IlkH=hsB)z#cCa%PaJXilZ%9YyewCXON}QRyuSUYc(^;Uro?X~ z^w;p{fZ2-EkT)gy?820#B7-Y5_H|_9K;Dwa4~R}1>VYIuR00rJc7Ew#ge1w?hIaeR z*S~_qxMHvI2=bYF@Y=%-bfNBZ+n%CV^fQO~<$iQ{o-K`?M=4&J8d8mGF%sVp5C3*N z2P?!pUnOY&@KY*zCjYYX8%6#%Aj+gM%N%WU(ENBva|pJs0`y*pG(_d_sg ztt^h>nWKd^^`ZHeS5ouGhBMl(j*I8>)FT64Xm#0ANcR9Gd<=G?Gd%4+YOvF~X7{NT zN(?G`sf&85VF+lf=pyLhW=Hyr-O&wNQL1q!(Kkg@ynJDkzCaTqnQ+$;QR}TYkN6C6 zV>;Zn-IP`G-nh4A8yvo_s!Ly*G1DgN@&oNRHN-1xbJ3OA=u- z`u1y(WZg4JJHrP*JzEXybq_8$xmUaB_LD-u&(MEQ9!HoNQT)-TQ--)-@*aBaWi_Ht zUU_e|eJB!Nk>7u-cz>W_D7lj4R-aRsdV*yyf%`@C#o?%VJ}fiw=5`JZT$i~hrRFHw z&Q$%gw7T}ii(jDo1`ue$`@Ks_8H{xy8s5cjaU8eFSA?_W=GdY z>;kOH1JqL=BZ_~I6{UXmU8|Z?v=OzljZY3uk`_G^KbKgcKpOG(OVZIoas4UCo3XBO0%3^#&NlwB`ohk3^!vwi zxZu+Eeyv~n!g)3OZGGWyn+9J!zQ+eT?XijPa@5P<>mPhC>v^lCeM8V>#zsY>Z>USd zLgU%>zuSdkCOe@z1D8^^5j<@F{_yBoHMeD8kFCF zXW}=;s}$rcc%Gh$jXqD|hLxtkG?$gjt~o?gD-9hFQYQ6rjgJ2e=7GuPJ%$_WPZbQc z!kWEMoxk_mmbQ~@o$~ac*wKHge-nOzrRz+dbe=tG_WjYEw9fl=m=}Bcqi3uqZWQCj zno&1nIU|1?T9ek!1-)eL0HLO6zUR!d7U`AbMgP3#M_+)6dnyB~FF$c4<@ASI=Dh6) z>K>w}f&iB<&xqY(JB{tPQe&-iu-{)g$YE%ChKC)&V>C+H%pY?`=10#Z(a=J+)7-;OKyI^DMlMfo)J73{TMJdMWuAJdX zarZfYn@MMbH%ETe4~C52qzhZj)EC^~YRc9UmHz!2S_d6))->Mms1I)UOBC`|xz<3V zEafW@YIca(_KJ2H8n^r`?_5i}mj!uoiK9GvUih89>?%UjK6WQRO9?Bpg#Y~30|@vZ z9yxPK&%M+owOo16qcrU7W2ubKJCH*)JoI3X1%%KBiqJ?{#E=5a*uO*cH(mj)U#0Ku zf0d#Y)U6i0@I;S#;S~!7*#I6v1j@Tv?@$5szMCwc&9^TBd_xo=yyZp|51YE&Tm9Y??p8pgwoRVv=l=T|)=W8A=3by_W`D z?-dNJW`%Sd*otl?n)J4|4U4VqNE-T-;+l*#N=*H)iW-kU-v$$~DG~!GQ=eyg?o1Rv zI3i;Z-ju}>F+T~4SrF@c>=%xqtS%q;?Pce(tM(gLT_gtjdPsFGUQ$!DmwA{BynMDU z?&NYpjaC(8G|Ig=#MpDJsXdgdO}e%kXBbQ^jL_@UNI>xxtX-w`J{pQ+{!?!PFI${$ z_z4>s6EUTGV_qxrt2(mA!>gfz1?UWRgwsx0hZ?7l8GYLLm0lU!mAR^Z^J| z7wn*HtTEv(%|qK$TmLuLZ~5RoU$H!)5A_pOj0~OEk+5&yd%6e}yrZwrBJ*?%2kY;$ ze*6Etg+I|*^ls@p!_Rs8&{9z*yfDC5>5Pd>je#&ptG2;jhuBr0Qej+adG#Z!$Ul1D zHU9c-lO^trOHVal3c%ncBPX(C9dAN}?CArpU>Fh~pE={@>N_WJ{0>!2K0}CsOq4D$ z@!lI}2jGz&RBMEJx4)M*=G?I{w4YnLvETU)#QSGyBds9ifYBdl&j`itLDHlasIZ=D znV5w-UfQ3_bj0~9leC=CKHr6{H3waIHr3#GXcm=@3%|pEX*h6B8Mw!gT?jw>7dgpu zYv8Hu76O0eBG{>D(BgXGPh@oG?tuq_D$Q){EK4NapWrKF*G>dNbo1`5{{Ef2mNs}A zoBf8&4x5><^o!rgGcwZLxU7}zll0C<_}|?qA)2n0Val0qM2c>4no^N`(9m~}GnQ#SSBc+wa)L2$%bh-RF=VP;5&CxWE^Ubd{=h}@NR}o+n z#s>KPy(_}ne+5j-4wMq0to{QHtwQ`Fi`+ifB8${iy7Yj6)@kd_KgE~U`qc(%Q5t*C zMGz;h(zi!_2E!}<4?@z?O4RStmoSiJL;XXYe|_->K+O4I5r=T9-!}~hc*cQD&vE{M zB)<@?5{VExdcb{MZBZSv1EQl5NmY-k48BuwjbM1XHxx6Q3o!os=WH#@UkMGEEkr>V z<~BqDjCb^>x{VCx!ZYkx*f6NV{*I3-p{SJC2N#E)CV-0sd87z>kiQ+WV2BDdqP4mr zX~4!f zYH3F{yR#Cge+@McKOMPPoI<3CnwiUMVil>xDc>MFY zgqDTw7G?V2tA@)C?6o*s_Jr%3;)zTD+<3sa35pglG^hC+Ft+ppEO=syoZ|9QyvxFs z`6?Q$I?9((Mte#UQF@P0MM!T04_?d6Ahr!5FZ{(uKZxvam$A+2=2{F zh<1x4R7p!N*?&gMWB0l0BW6U9$Aa9RpB^XTS&$w50B!cW0qx*J$t>$Ky#Ypw*MA+s z>qiqd>!XPnRt{y(=Y`|D&CjPb?Ife|kUl1Uzx?=|IYWdeN)(6TufRGmVQ?$zALtjU zTk(k_7+Zgz(;Y$BUp2s_&gnHhc^22vp~a@TrOZT%E^z=?BcaM41s&D%Q=m+BK=UV_>2)u_PLzBtOBD87XGOmjiew zlf$N|Q-4$GqSvsDM{Q;9l(Bk?+?4;bEKxd%9V1L49rlI)MQe<8a`j1JkFVasT|}U( zS2T#}puOq2K}Q2Nh*~?;R(&_;We;YVZ#-|Vo$@~OLYm}X5!$^Vx%21k%fG`kGONOy zWNDTlJFycRqF%}8|8Vz9G1;4}LCqt5&E~rsQ>^5NghpwIaewoQ`BDF+YEj-aU+P@x zxcWo!$a%l=6a>*Ua+~LqbnoMo;bOUyT0cN4UGH(JKh*(`$1g3Ux8_t``%8EAuA7<3 z|$d0pv>>OjuY*|U=eg*;CvW{6~mlSJKSdf= zp)BE_j3sFWwh>=rUu$_ROjxb>PJJ7G*jkf9!u1Ys-edY;I1S&N2a+Sdq5mJT`}@De z{}4MQd#3J2e8u(`~Y!Pj!cqoNH|ILz_~V zAO-EeW)$rPHNr42XI!U4IWMv!$F^9S=WijM?X1fkgL^vWYFQRwJ^FxDmoZ{)tMBY! zv8Uh#P?6Z77X6*bt&|@=QefnEn0F+U^~H94h$Td0ai9G6#Y=@13*)8kQ|KXY6`$#9 z@X`J#-}dvPy%WJ-SKb*d9+cLNI|oMZ>?A6qV4DUKgu3*0*DsYg=_l?tLL<6g7UAG*my2IJN{Hg2R=+XI_FH4zPr@>_kRX;1ul++;$ z_%%@#4}~Aa%$Gqm(~;_<{}fYh214R};?YxLoXI6Sc`5J7)bAJGvC5cT?D$_IDwxyE zwcLMJLl;O&uvC=B>0NIQP3s|pM;DHgY;y-SB_cZ*Z4;8sWFP&j`NpkS3nqz_qIzC_ z75lbY>GQC6d{CF>N#;<%dM_*4c#W~n=CtLoaW3vb@UBdQn_7Qy=V*VTxUgT!=HPd0 zGizSZ80B`or>r+jb7frOj^Kd`*mdA~)P`Tlk?};&6bqT9VBcy5v-;}{c5ejt?fL4q za2NB=eiBkH@&m?YH_F)&8qhhd3KCzpEuC`%GaWz8-ogBn89s@L0s-puv0{EgrXTWCY(zyBoEapCL{MMkg1 zR}E>_kk}r1J%t~9%JSW_JAxoh*0<(;FQ*{ZTDv%UR0SGecMo3+anMIgUDIQ2ae&F2 zD@Sq?idn4C1QPs|rf^v1`-^ptSY*-X3sn}73N)z$4d`@mb-h)ci;*C`0d*S4eE>Hh z;^VY^Ivj}V_>LOz@4)l2%T)>i9?6=zJ51V{f_(qOPQsP?FNelz%p?txZBZbx^Lqm3 zQ9CTLEqWdo#vBc|+J*H<9Q*To8W;#7G9StsQd>M+K96jS8RQ5Vq^B!72mE0@) ztlB-d5lO(&A4aNzwxfF-PHi4V^&giM^Y$YDmczN&NUUbyuS8&)T!80{9k7PZMgbWu zv!+=Z35R=1fufU`!Fi~o5KXHrBua9AxD%KOS03VRLHhr!a$w`pU@|gB1-fki_=TiG z;G`;^JPABaM1z&lWYE|~5+gD)?N$MRB*4|=$<_Xhu}(Q^;WUQY#fKp7!{GN?yE_?? zfYd1>J5X(YjO@~TcaF_mh`5lqOh0ORJkze4b%QNk3%|=HHOnA_m`X%ucVye_vbVH^ z*GTnDZ^8S&>WVJ}UWD=V!6LEc-h>LCpXSR#w9S=Y6o-hQT|lRieerCNTo@@=+=Yr``Bq`@3J%j&!>pH>i&k?X#& z!`;;3m%&BZB028GPaBtKI&baXP!_-b-H5*NO4PTU!yaGRR%&^1QMB*;Cc!H=X)R6X zNM0v;oor{jDuHc{<62yh5u@?7Xv1q8o6d!$*?J6<*Iwmf{_+ATQy2Y%Bn|h5hZsT9 zlUe4^oV!A+FqE$NHF@f$b%nocbyM9(3N}n;G!k!?#)%Y}YN2G3KGQ)wyQ%C#-p`4y4AeJ*rTl9ViFgHbNm! zt&UzHp^L22$|3%#>5!)5I)a{;wnM4U!`}1hVEY-Rb+HF5)>spVHn##hNCj;FilR!9 z^=)GJrAlgx{R_v(=ix6oyv~M_PwOKZ!V8M+CKIJ0{bh9B&YVd-kTp^otr*h8OBlAq zxe1K+k+Fh3*y3~nFCGEAIS3yOuXt@B-M;2){Yak1RS-Rb%1pXAn94B0VCJD`;H0!d zzww|B`gsaQc&8G{pWfnbyM`~y6qOC z*q*5p_%9*C{<6Lojkw&XscnlGVnrZ9X2Tu-fc!oXrjw!v@TNoTvS$LD2JH1=s}O~D zCXF-X?pKl+b6iPK7Q8+Tt3KW*@@d0gdMV(V$@y#TV@AcREDXni`R%x!6+aTBsf~Vp zQ&WiRhTd1!ZNHjtTF?V)NifcitR;Nz`e@8co2tu=1eBkbDdq0&OV3v{r@jRL;HhJCH7cNugqRvp#V+m;b$Ff=O60M zp^@T&uJ3UiAZs}~1Bs;yshlC_9XRGo%AzRbE0kjo4j&O7bnnek*9^Q;Z97i?zz}bL zkvlqdo{PwtmjSxukl{0O)3BoL@43M00q$ykK}~G6DUv}7xYVN?mdKTc%*SXJ7B5}q zzZlJ3+eC@HtV?JM)cD$A zIeOjQPtkWxQ=Y;s9*M8W-{QwVnIQK7L^LrN@KudV*qjB|e3X?e`!@2#R4S3p3tGW9 zriQ}HMe80A_0ovckzmWuSu4D^x5vIm(#`|mTodN}E4{P=DTve9%-sX|Wx?ZRfrIF6 z`i@(mQt_+E=~W%+VozG;9$H=V)(268@Y=`8irWM21+W~?Yohs$h<=piXv(Lxvh6w= z&^keuKwT9vg<_;CKh!r$)`M&hBIp{P$kQ=ZBM{1e$rp)`tYiB{>eO3WwBu%Pn^I&n zNaN9EH^AqQ+=6kH*1U4K?IQS~-IlsVe2-zBrqhI=&iMUsX^oXp_c!7Gdj5Jc6{P`1rEx0}-#*5$7 zcR(nYc3ST~9KF4W+*DI#dr|m;Y2+IgQ-kKLtbzn{h2n41$p^P)8A#{u*)u2A6GQ(G zrLYt7jiDxM$=%w=!S0#MlCAmj!=CN?W7eMNa{4It-VD52jM!x;`mLkG_dN?T z8iJec%pN?JyT3EyK4(r-?IWTeZvLEU1-(d7V^G1K{`o10R;dV0+;Xo|#k_D|4C2Bjz}WhD20);yAuOfY2(_^~BlWBi~+^>!MV zm!&@>_itI)_;5fGq;bw^A>`w87VkbY5`3>KJ0v;3W_*tW4SHjA?^UkvT^o&bwb#ty zhz~sfOFGPzZXn{dw)+|g@CE{s{5-&Dv9U+^fXu_XR?Vbl;TH=UAYfj=HyyE_M_?&kh1g|OCS$^K9woi}`7r*_l-$_lqXk<+nG0!2PORsZG);#@{T+uzy#?D4 zno2n`y9}@jvSX8<@mwD9l=9Db=Zi>h@ZL_!>ZsoLKaca1aM{Xrnu34Cps;culbNEyWRSbcxIdA@rqA%j}rU7Z?+{6_Eh zr$|>SzG;OyJ2Kn6e~%g)n@{X*I&|Srq5_KRCy^^zE0gxSO_55)q&+JV0$Tf=$UP4f zBD07&F_q}+&1a(Z6jicfQC4?L;f&MJ)QkxS1yT18MddOZdIp~+{_Ng;hNoxn@#3V= zRi}r(wN%d+e$8A(hxk6(8#LgB(&r(A>Jp%s@iKf*zhY}xvRc4qa=r`uSn346Yh#JK zlCaU30Sjgw8C8vnZdpp1fTZFw^ii$waq^TXMIhRbm!Ed@*N^>ILR_)60*pLa{*{94 zNEYpl$T(;x*1-n16C{s874X`ZcZ^V+K7CKMd}DG}{S%L1xc8^z1Jxx$)3mu6^CB7$ z+1C}xSK*^D&Eeq4VR&Clqd=L|j{6VVVdyHZmnj*dL}1&^Z%hFZsQ~dQTn8@~;IKV^ z%TO0<>~A*!TeniIc=*gEkPi~k_qc}cGOM>IetP8xM+jz1yM7fp`}~cLr`VMKCitI$ z!APed$)Z7!{<>A}?n>-BAHjJVLq^P07dg93Qam}a(8C)I{fFqJg&`-B&+K&9=e}<< zmp{+zJY_{5vl@yi7Oomv$UIFf9CA$aXKU6k{V3Tz7yC(Ektr@ByOFY{i{~^s7wdm( z*}!EJ`t-W_F}k~z#~!0D&oXH`{ggS;*lC>uhe_iE!LC6#91#_hIV=i&S(YG)H=7Dt z($!~UAle`29hceV6>E8N8YURkApx~6r(0pK(9(`)E7qg+`@6n)XZc_%{jAbOY5gl~ zGLx35`^9BNzaR~M9f>redpl2sqRj02Ib4vFN8yt4#;{HbZ=L(ZgU-M zS|?R5JuqN+G}ID2a^WwHs6+Vr4^*8@9bAM--QV9k%pJQ0KUz(|&$SSSoZ`p^VxXht z*KwBdSz_JPAJban^TY7Q*HsIUM4ejQa;^=S-*(c2HvG&r`Ml6(<68oh_2}rd&H!() zbm7$u%=gXvVU}ObK0>J>VjJU|NOQ|S58@I}7ZjRzXdR@T;?hg-L55sf!WCNG zS4-&bho5}Pd<nJ%ZjvZpD#;C0@L-8NFXH3bO=$28-2STUVQfTtKL4D2 zXMBHv*u)mLJ`MNxoc``sG$IU`dJq5=Gn};xBSuvwJNJH12*0NtaSV*-a>B|Osq_9% zJK$2420zstRtk$-7f`H=Dzq?Qg2W-)XvA%IOFiv22(|+nDK5GgQ`sw1abU?ty}*W` z@}DEqKn3xx^;7?VQjFVRG?@g+x3|^zbJllWYRJ=Ja7u;MiQD>xoO`Je;5%tUb(?gKRo>DpI8rUE+5C7G@ZnvtQmrmzxN2ugs4Gt+*He{3rL3l6`lzAPJ0>1HH)x~ zDjxNBxuS%x-5%dwLXDhKdz^trN;U^I#O^XOL?*ick_iZWG5%-&%Vf1J=ooB|C?LBj z-A;iD;J9$!1%$!wMrJJ94@O7Nb4@UHWzQc+cP+E!O)?E`WwijWJ`TVG|2Yp*AAxEW zfQhu=1$ahs)*PwbrDdSLPs_f$>4U~zJ>A~1)zL+A$#SU^fp>^(4e?BM@_Tus9c>f8oY-Pw11Ncrhdd@ zit32hr4zuvox>7FH=sHm`o=uSUK$-a?z_!spcIZSk{D>1zYt^?a$HFo_u+MI_rYEZ z>z$N-BRa60b*=4^t=SWkO|xS{w+FJWSw>{tPS~6wOb$jH2+oDiF_#crr~YvgYyIVG zCHl{EtnvAHwtrCZzre>U{)1TM(~4G`7Y}AJq|5doksVf}*SP2Gi+@>eJKJw~^3(6H z=4syBwE30f-<*1>LmbupCCp_%=$7QpTVD0F#`_UfB(&5i%DlzbZ+HrYoy&x226~N&Bt~9DfRHadP`=UOV)7%V?@|HuLV={^zH8)x2Tu zwBzQ>n6KS1!@#*GyWX4Mb@0%~JlL=C|KjQ z`KNZ>?e5{lQ8L{bHtR9WXgh3}nJP}3`!>($`jHTc9o*yq0aLbW=yUH1dB4W=Oh#56 zMDy$I8)T03pP)FMW~S0DLGXQZ5}0&uRqH*GPQVDfYwjor^SKhWg~Ui-(7(U`}5OjL~K;8a+#z z_S`{@QU9_9O-J49DLq&_TNgr7CH-k_CdY2h%Ob?s-MxWPj_?)WV!kJp|rsXBkgpp{ojDVdXkluC0ZXO=t`k~ zaNBYTv_NTj=JBR}AnKk`4V=Ml6I{=}Kb-sPHbEGmo$VSa#VHaCtTYYrkS@ATzPw|f zABUWtul2j7uOsWR(&tEG^0E&BV9Z^CSQh5FEt}*B2xM{VVXdL^qGQ`l$53`3A)LCI zBH&XHiBA4U`TaAv@l-3Be>{bH{Iw(DQQo>ksD#*Z;lVqZMFnJj9m1SwyW?mn`Qqz{NO;9HB6WNo=e6xyA>rWLibjL?U0(^ zd6#|LjX~iVlU2rjU>#E{*V6c?YGL_@z5JJ?#o)5NmSb4h?H00*cwQw$sw#(7-Zj!{er9~iZN>P*=u(S7Ow{jzbNhmpgOSa zQVS~kjgfn~Wea5wn5nX@M{uPE1jE_i17wkf6u_6yXcrQ9-~1?1Wz4tN?=GH{w|Mnu zUU$T}j!2ezm!?sbM~%HB0CPWk$#x(T`Hp5i#qpBrmF@HFA6Dw(l02y?NEw+^1Lhn z0TbF`o-X3pis;wejFstIb~QzSbQ8A1BC70|YCid}7Ay!W818KI6ZIA=6Uq` zq6XNw5OPws0@#t;zBt@!aZv&jH)&obX^Z-2auKiD1}QTAQV{whx??8d_%GxX(sD_(KG&!50?^cUkzl6Ql! zD^=;Bn!>a@N}L|K%WLT^5Kg6K*i#pEw~KoqI_5=uTt!SN#(1fQ+?D54te*9R{#ioN zGWpvHoO`$@Be+C2^7Q{9>Z^j{=)!G*kYEV}4?4I82<{ME zf@|>L!DVm;cXxMp2o~Jk9fAxFgF6f`$mKuhRNa@atNO94Yt`QCTN1&I?BUUfcHHUw z%%;mV-?-md;_Tk87;Hvj!;sxHMR8uU1Xv9nw`sS1ynM=~OCOfhnx(2;u!(C-p&0wS z)WS}vtGgEz*gjeDbFm{vRi=O^g1vxTx&P;Jf%$)_EpTwzVwAyA_BAO<*u^*_ETLxK zvEYPk%*%oaj+FN{5cFWFeOAt@aN-N!8CWpheGgcud%W`44}(2fc+s=op!!ceVd`W& zR{OtGX$wd70K%qqC}Z*pBtufCs?UOUDz9;X;?9}w*~N)5eOtL$tP?}tK0vVMQie^r z4b+wsH957Ick^2O^OX2#Z$Zqs;4gHfaEf?R?KW=!WR8!YQCx*emDRPISSB|5dJal~ z%7D|3l`2zmuhz%wWIk#K@Vtr;q(>gECQwbH!hcP4{YQZ zpW;v6?B`5@%IDWMlBQ1St`(Z(-b=`Z3_{wG{!r#v%5n3-j`b6+^gYY1TzwXAD><*f zuH?D49!DX~2`qRgH69Ha+l9g(InlGX(@0>WS1HEbADxVq5IRFr9c+7L%8!IDvuPXl z`pS0C=I4brzn9X<$;yT}vLztc&{iXqYd|ky{@begqlI&V^e;5X2hF9qmvHx+Gz_z7 z@bBT0^57NOfm4F63hS&MAiD3zwT$A0fs&qB_7n74%()LY3Vo! z_&d03OL`DHf^D}}Fqo?u<+gF{RddO$(&k33{0&*H|E&`2xPgkgPl^%PSwPXwS{$oQ zp!u)~@MsrmjPuW~GElz#$N3;6L~EC-3aU!O9gHaox;krjL>W)|KJ$!)R_J(zdO6`b zlBAW}dm+PSYa6V7S1)`9KjkN*i~m zQ)$5#{C-SVPHr>vikm4zRP|BI<8-df`j3Ss%ig^N$8kVgQxpl8M!Bw?$dH-83^I9vJgV=j3@Gy~U%`&H3FZkK zu{`o3Nfq%T} zHc%5bwlqHpVkBpd^(jCzqqin}X8t5#%Ri7EThkub@IARMk{nl=LGM{BqMln)^~*%^ z9oh0HusUM!kX>Lacx5L3ic;GNcp{({aO@L3zN2qt__&D(q9>TKG=D+W)VwK_7v^w z=78n*uO3q-h`y2$yuxNos-f=1Pz2aQ7x0C74M|5w2A@%6I$I;18#oqUpA2XA-`@|n zF7|Fwye&P)C{^NNIBvQkPx*^h29LkZUuB`_Hm;`cLytm>Li`mPnB)YKcwzEU$f?6hfMKeMh~_T$ZwUpb#fM>F(N9 zqEIz7N=2x{^y_?~sd9CD%l!1=kuC&QQ>9w?4%qWl*th#l5lLeDS{^$=j7ILzq~E;V zN8;bRGpR}CnolGQSlk0n2CgAfG^vivM<*AlSCHf!0 zO@@I^*x`M8T22NbAGYcQ4J566ei%FgtqBUoT1HbVnPhP=yYom0B*nc-b4_&(LvI=K z1dn)?edou`_g+l;sAgUgb0UXKVHx#^9N&2AFvYqPempj0@S?KmtBOr+{&?PaOqpDu zl0-!vic7Q5BJGcnYlX_H$V)AT_mL9UH(ubCIWx-ocSfAox z3CKwWbMs#X#Uly1lrkmtX0DLL0fm?-nUZ$P66^v_Qivbn6I?I6_2lZwHMW;JuaBe8 zttklciM6G04}^ynyCO}aYaZp5>SapAk5^(H<$MrZ>mO4YWpKBXEE%`F?||4hBF7zc z-n(x$EB?>!&yf4yZKhJ!y{y*;&ISK=HNG{wAaKhxmy+MtNV>uh(II*EW-l2~y#HH3o)LE+15_g-)ay-R#=UU$xQrvKfY=H(Z^R`<)AC z)u&hOHo*j3$Q!J$5}x2>Hv-CX_I`ha$3ZAqDaPRrDSNKBUL49Xb9y;kS7 zEj3lo+#{%5rqGplF6$JZRSGaRE?~Y=05wLz5$pZ)&y{YnI zj_+KKZGQg1^C9>N6tKPi28cbn^*)N~71vE>#Xa0>=NC8fPu$WXyKfo3b-5T7H1OYQ zB4xU{jPh_!-sr2z15jgS0rWhHyoE*5oF8UqlD){_xX{BYGAXpqJaHppO(!T^60D=+y)iTt?BHU3t*S*BY z-`uyx8hH@NLJVa;iD8XX6j>)#`V)yx5}g(Jed_u56{N z{Xdb;#pw3io=zdF_gk-?`1HJWXsf~b^T-Fe)P5srMER;D`^VnhHzn-$yQsA^WlO0*lj>ZwJVj>cB! zTgCBfQUZ~S&_i#kTEwV#m=fMQv5IBv4{oyJ)BtEp$?Z)0KZo5Bv+#7F0t(P1VXAm# zrr&D<j^fn3$8_s9fnpFQY7;=ek5p_(jOET(GNnMO+uX=VlTlE7yoe@XDt@ zD*;*Wt=L$WDB>cPAD($`oQzf#nM&tq)Af{sp4}*Kl^X0-dHU6(NfpsfhHifJeY58U z^<&V~2(1x1FgnJ@wyDCK(R!SPQaSUr4@u$6ToJ`~4h3KoQ*yFj#iJ!o?kbakGeX<9 zuhq&d{KF-v>=7xj{siDB=*`&X7=jN4N-Xd8EhpDp#PZA=IoW7I^D6+?Z*E zgB_)mR3E%mu6KKXdk;6S1^=vLzFXe5M?2egA99`PUUxq|duPv@JZiJJZNUOey4pWg z<7k|6L7LK|bH@Im$XOk6S8kivS!8>(neM^DeYwxTqG&VRH3Dt&{osUYN$Onu1yu>- zuyHJa64Z&}Kl_9IJvKt>Q-t|}MyZzAP*6<O(ac@B(FG?ymXy)6>wf2xHpOfoa7;u% z0ROTG%bCTYn=0`h=B-!1vTR?;-IyDyvB26Etd&($Us-&n`p4J?*#gR)TG;@l{O(^+ zm|{i88PJ+_ewJywq+M0vTgeVzyfaO^GlDtnYmdW#4;mZd>&yA6K38F!;OLyfM~|7) zWYkw8tLp_e^T7>}cWOmP+2xPQz8d)>^^EwM$46-PBpiPc0*;U`T*GS{Khwh!Jk6tj+c4HTv0U(vF~)d?BS?tSm?drVC>>H zhjtp4Sz_x`Z!IFCFZj5zWDuq^$#z0oDgFI7<41UWhLvBQNTMQ5azMDx|YQ}*6q zPEC^;zNbv1Jg^910U}|KW6)BQ>?iL4eo*&@d1hT<#!z#Ft?~=-jqH*iDVEq#)J?+E zpY(B?6}R$zR+LkM7zLjk>T3?=4I{Cu-rZ~hl-X|_R14)e(ef9iEBT5`p^^e!lV2e zDZYA2hw2aji9)m-`0H+N5Y0_x)H)T(d%Spgy7lq_3sXx$H=m|~)3+|K=o z_PAx7hrsn5#gsAaWTNr`G04(2H*I9iPsOQ{<%03jEwn)r1(Q6VR8Olq@cd>wUqcw~ zHp<9#J{Zfju^1A+=2`!cg<+1ptR8cMy^$D2#PagEy#0$LKxM_z_$i{?K2*6VkS5c{ zhMR4CZGXN>1DX}Qm<}9hIO_DW+o3E{A6afb?<|2*4a%I54xV$fOM0^%RX6YC-K2bJ z1uwtv`$Prm9~rFRIZ&u7{&M#c;e7hFz=TM9dqrhb$4lF@%oWwN)W-Ec!IXsg z4AVwh`2?)fD;Gf@^4t4ciRv6@i;PIsS0-YUd`!eCGToI-Hny!8p6xmkpwImdtURfOm z6#J@W>q9U$^~1?U_}gQjP~wI66X6>RTpnia?DG*0@S7B>AsD!_SA|IXDsE;ltZXsKx<7g#oFUB+G9sV z1e@^Y&)>)mBz<>9+D1lIx2)VsZY6f*baWPDwW6JKyz14S(U&1bQ#Q*mQsS!m#<)vt z?CX(2Y;GHD+GoF#oEWFb0T(k@R9j?6EgP6|2CX|CH01IA%Typ0AEU#c4A*(l@fT)N zacFKB+1LC0$@ZUNjh^?NC>pt-s6?zM_dijjNI?ZM)Hs>&s^VNxQHqt<^U=}wz8!Da zxQ*R|*d5W;)#an*(u54Ru41*|fdK%}OdyGCKUy!ts3DEc*WZiuaV@KE?dPc+V}9oR z>>H^N?g9_XU07S6{{o3KY?{EKkH2j`))(`KleXVd?$K8_$$gy~N$iJ%cMMdE_Elm= zV3wWR()6tqQo4t++QP@zkgj=a%PP6^%pEf0(T*(8W`BZbGe9AK(sQb&tW&7ycf2P^ zrQ|`&gkrdNIe;$RLKfmjIZ!Zw;%!Dljv5k}4%wYggX1NY8oP;@L{>I#RbdzFoR@)s zyhclvE~2qdZeXV%cK~4v{yY_cvuk7nUtr5A5c?(z0k!x$I$of^B2Nu0?z(e`!}PbS z3(xyli4zKk3;8OXIAGjHZw zJk$@J0Z&51w>WA8`X1-+iQabK$EGyi6ZV*$o{ZXUSG!0%_f6)4+O?dGdoemfARc+> z&Tyx0PGcxDK^>?#5>S6I59t`k*k%>0XGD?+{Pl+%9v@52c+bDR%5gyE^ajx|r+c z%e%~J&&>fe1Ag+}E%Dp1KSEXwv^l92qDlwF8*RVRuJ1W+go3dq-LId#jUAe)HLL6} zSMM)Xq@I>ErU}y-+Hh1a!4VToG?V|4sF{Sz|We@HoOQPw+CT0Lp?$ zyv5Z#e&V)($2VT;EvV2QS7DBbNB&NRnHSVUo}VF6Xm@b1TdJK|fO|E+*ej=~+Ll z%FJmjQd@XAmWrVZx#e^wF?mH>TrgzbHBliB=al7j4)T71W4-Bp@Zp+pU~h%$jqC1S z$Wb@xMKG=n+4%>a&*DZy7aXPBhj{;XG&vn)OX)Ls^#Eayq`CG3!EZSsKAQI zC7Gq+VN+dL%=@}l{|(aIRu*48vNueFBQu!YdKpevLhqQ{dwS|vcUO)yPS>zVSalW& zev?k^i#G7S;a(j6`m1-}E!MJ!7!wQgShK!avtdzS_(t@&w>@mWUG_5cJoZBA(`srMeHOoW48@;^E({Y5;2C?3{O!pmL5BNVte4>S9yRrZCY=tYjyd7vdo%JOV5wf!LZNMjfbHppHKHD+y;( zF8w9@-ab?FYkShlJWeVt6=Dwd7f{M%&n%rxmpjSKe8zEk7n4E|aguEqWkPkmuPWVA ztD=KxyiW}fU#~5uQqWX=Ur=;}rdZ33Eu)dWJ|g<4a9&Wf(2~n@e%Y%(D{c5%y0J_g zhgioMV?nWWyPQS0c?2mnlAjuMfBbBn`ZDp^RM+Q;{qHH1ET0~GQck20M1Xn5f_Ym| z&tJ?ew0i+jILXKp@sjt!OLISw%QoqX$2k%k{g9I19^M-a2Y3H9s21s{YyKs?rs7B2 z#EO_ZD>K|`LKj!@LAiR(V)BTnikY&!#mp?hVdV`lb6`%Tr)^GwM3&YPGQc!CCpy=L z{@Wdg&UBcDS6+X$l9)+gn}4EcRAwa&%hiDH_gjYrONP5WKiW|LIjrKeFM1?pt;S@% ze=BE6BgR;czv{O<;fzDon2BP~cD%{4Y1XFaotL6Km;H+9055oH9-Pj>eQQ0G9h26) zg}o!lhT9lc!tce(^;jCbG3PP1UaJT-*d;x6xYFEf5KeWNjA+_Z_iY#D^E#6Amf6on zFN&Dl%=%3_G;}&%NJyZ08~550N3S>)WAT`u=BeXy^sl27--t0YN`~&kK>O;qL#(yi zL`Bte5)%P_-d7!}ujT=nl*i2i%LW#iKinZ!&ZQ4xLuel)Au)B()w%22ryvc3s`!7< zk8U*lteF70S=(JR!@HY0sibnim&tFP(cCn>DWh>;AnhX~rwgUamN4@{)4V_GgFQCw zbGG#A#-2ObuU-}(A5OCRJ7ddV=tcK4XO_a^r;v66e3ZD-Z-bk%j&N7?5-gY-C3Au) zux~HSQy}L4sjUa+TR5cX9{KcBlzG;ZI4$ko%gZ^Xs{@p$yH&TnST51Ik?+w4ToYuK zUeclaSQU^FS=0xo7|6#b58&%+xnznbAFrr6Iya=kARRl?S!NGbki&M{$B9t!vooQV z%DR_C=m;-L{`ua4LvQC@e;39Tku3n?X*1S5o~t{0jW5Kokxih97%e^RT-$n3C6v;b znawF$B4s!U>?)Yye#m`^Pv(3S%sLjAV}qItao=q{r_*La{tiSZ+owCiNdSBl}r1- zb?78bMDY&Ufg5D)lGv-#*(@g-m3ZW6gIj#|1a9#AdEUBRsusQ`)dE!O(H49x`K$y7eATw-in3E!nw7#fuQoo#Gn?mm@ikVXmRWn0J56C`>@46oTwnX~Pj++TVC#K7 zSC2*=R#UA+eGN6Hv?&? zwW4s6k=!b4k%@7=bZ*uX8FE_=D>csg(JHCmec4rfx%Ye~0QrWS=H+s$a0e8;je0+> zJuT4c>~yjTFYVd2I;G?yol$aNzwJxr%H%&rA8!PdCN8<6L zO*nP!J`Oi2CgUo5|7&~iqoY$LNJS|#VarvEjwRLf&f+_1k<(n}>pPOgB`IscE$#va zY!mAxV`EXna5eXH-mR~bja?Z-myz*a9HPiik*j;s70jLx# zwt~$UQo0$-KBakM)>k<~_h;UvzaDCxHR3SFJ*KJ7t-L<;E^O|Fg_TSmW!t&YG{NEOjx0i6tlcdi7!}}fl z$M&84H!lAhTcqLvM!W0lO`ByFwHcOm=OL1%*bXhWB6D;($-S%F(i2;cIF&N=n(6+C zrOm`uh`ym$IU7t?t$3_IzD2t0RIXqZ-?DYm&zx6hele4gjSWZioj)B5M>AeT^kv|3 zEaAM0J&)O7%WGVniKLs2D98cb86DIA397hP`}Fg>OYJ#qhWMd8$@NHe+Y?;!uCzV8 zqks!t9&%DViCRZ#xx^Q>A;9c;6h)$LaCNYz#2ypfgm4|xd6!k$rV15WKRmpG zdC6)V(2@Pi((Dcdj-LQbxU|IOh8x73MUzA2Jj(fAd)1uFv_{+^wHryT{OnpX`!3n( zyiy9w%693<9xY3}2ll9>p2DoWIqO434>q%cx%QSU*bY7I=g+DO9sf`~Ac=18Rrhjp zOCrw|UgV&K%gVRK*=>0dXXjEq>j`J=vm)>79HO-=-lY5>O;oV!{aLB+88{c>pvq6& zQjeC$bV=eI13oMgonN%Jyo-zFS3_5_n$Jf)aT50N5%Mt>y@wK_)!&gle%~FRES7&C zNFsiuJI!9FUFUAOpxB(HFO-6g#m|A?7K4~u-RsuaRXdpce) z(zUlPmQ*QWnwRn6-aXjVf||1gC#=|PF;?9E>L9DGRzm#X0c7l6Si~og%F)be?nv@9%rt%ZxVu<}O zfsiBwD)B8c)uNWq&K0UR)JD|(cS`f=K{~$lZ#;A{^ZuW61VaDe%`$Ozw_byTuOTqapra4byS-8npUWa+{mnIV*cX<{L+u&$ zp$xmfV@-MP_xz*)|7G0$7s0zh28{Cl-~MMLw=~Tpoh<(Z@a{Htt|pnLJ(Ed=3&9d; zYO+S@2kM$B9j|vcm6E;4_QnMyTk=lCh9x2Pfpmf7Wn!_P2($8EPwbS!-W7>DVzJbl z8~)Cv9NZW$s0SDJb$R(QvjZj);~^4!1UHpBVjYG}GG%e%`Z_2i(@^clxrRS|v1611 zhd!wRKD@vO4{MxnKOJWQUJLeRULF|n21mBMGUyo9*?uBL+aE)traJ27H&@%%F`DX# zK_807PSq&8%$T66q}V#@f&_+hzb3hO8pi0agdd1uPn!Ni##0o(t}@#CjfQUnvK(%( zO`cZ;(e;U61FlNO8#i_A!m8wz0z&V7*Zy`@CiG-V_=*ALAvKOA5fjb(tEI#1gWw&e zgHO8 zXOHzS{o*K_)_WeV>F)pJ;-6{jALOo=MicOUcQpFr?wIi!)_XaU|9JOOb*hR0aJO${ zx%KSO?sV7qS>myPpeIl#?I5D@_7x%SjNOGsFYn6t2+S|ILVmYbiQYXqW#PyWRlh~B z#MjQ(;?c&R-yWCtLI#UxEH>)=SVa`(rK3K7$*>z{W;Bt?71ptVZF&NSHq_=}j5WYA zju)Uw4;{YtDk9c@6yKXlpQ_E2J2Es5D#9Vhk?r91X1_43nJ>TpOGZn9L2Lh+m4X6J z+-Fkn4J&=s{ekrK4|nyw^=F~ zr$&!wZcqA-7i;)aL|-%ZX2jx2Lf*8#m_Z4p394C^d>23(&NFeZSVYzLLw@7I6!%8S zw=ZgB+qw4N7lj{&^?whMr$vV>qYQ%$wIS|EmTRGR&x4c(JxFPJdEA%2aJ0v33V1E} z63ScT3|pHx%NuzSM{-SJf{r0Oz$byjOz788^oE^Mtr_R_FiN!TG)pgJH987Q!QUuh z`Eaz(=P~;~r}#`2lf2Sr1dn#BTDet6Yoqoh+9Az#InINIYBb7%)Dl$owD zhX_`(4|XJZj{}}td1+`7-ZO9!BFzJXdA{3!A3Mx1MZMb3WRS>eyTowsJ=nnz&J*-K zV;ztFI)ZccLmWm*=f?I`RSn+v*Y|nACc8Nw5SiOU`0VCpDe`4{nCxd+`3hkI<$E|3 zaTc42$7XT!zupy;6kEiE=+n|uFUTMPJ{q%XuWX52S=#JW@n3NF{WqU%CK7e;>X^wl zO|S0f7(YzK)l0738;)G4t6qu{%sJ@~bPWryFb~b`C%Hve<&^rE>Ca>qc{W;G)u)K5 zF0C6M=^l5d4IYe_fO}kI)BglMu7pYJmA=six;tn=kvpG*WP7vs;Oj){(gQZ(F zUH&XQJO(l1F>lEvJsne-xA2t>SX=@5w9CFU{JeQ~dRQY2a0LO6E1x-y<#`2XGKQ#p zgI5>O?Yd=ug55ah=p)u1!t0rNBf=;-EUmFV(z@!wWaGUODr&#p5+R&%y@(|w{QC8+ zU;+Qd^|I%IrQY*QPKRG>rdj&j+fncZ_c_KfWQk`@$E{T;>)#pYPzZg%q)w@_Q$>7R zt9Z#|b^hc_ualyb5-Iz$kAmv?j1|0I4w3LzrNLF&o#@4;i9XRho_XcQMgaD!dD>w_ zf0;Zi`Z^VoA|j+nV?g@YJZ7e=L%O*MfPuAG4eOGHQcA-;Fv5eLa;^?P_l&RiaztZv zP(xVaP9cj4DcGInFX}1lsrGvl7g#*?4SQC#&Jw)3N`_;fe0CSWeN@-caXHI-TD?pg zbE2L%f4mm&Yd`sAcB}_LY;-g`34cIWPB7mSKHbYTiwK!XI6TVRAmsQEAk>Hwieq zBLqwzo#~%!(LKF>>pe;pRwmHs)Yj~%h<>)d2v5V)A%&&?>MOkPUTtR?c$K&+eqGEz za{ta)BIMBw4k8krh+uA(Z9^BnRvHBUaZX4%vd-jTv~0g7BLrDvv@JN-k-tD4l-|?Q zm}o!rw>1}0UrTv*xG?{B*y|Mg5k4fFJoLJOXfY3mU7jVvF^cNI)VAQ$MP$A&!IJk} zGyf~y#pKIUv!CN<+@y5uZ(t`&IHU1BR1`7^cXj1qve?iicaw&}%|QIDL8~YnwmPu_ z44GHTcP3}j4x9d5n*2lhZNFy0Z&Xt2oN`3I#wHw6i%WPlZn(=f{h)m$Fe*@1(=WeN zD;5XmcKC^sgf^>XF)$N;ww)jZj^QmKg5*8=w=oCRVD=o$hZRPgpo9&0FDm|VPcz`O z_?8@J+4y1eI1>qJXr+214HKZB?O>vrfY-!TE;YL_P~6o3m=moe)~ zf~Hcl(Mf@c7oTc50CeAQ0tvr=`14Naw=XAxRDw}H_lT&lkY%<{4AcxQEQ|GTOy7^9 zD^}szzFVo|CuWXI<%7Fn9vsIXic_{OxNDTpAM?Ttg^}CDf;Y_?{i^ES_$ZIs4!k?dS)?f&I!S-dH+zl7)znyuih}aCSR|$5uCq^a~EcT zKwzaDP*@_GuRtyr@VSH0oVlW!?~M)M0>T#w^Z;Xs+)5SF9}1_9+wBF z%p4WZHevn0c|ho?4)|=ZPkJ`CJ0*9G$t}7XnvRYK!BJTnuxIg2Y{&CN8NqsOJqKpf z44a9qXP&6*TK)(ZhdpWVS@#a zy34@FD=i@)nD^R{T!LS#O6t3Wx$d;r+C1}W%<`z>r|VXh?T?IuRBn0apku>^QwsYv zVW|*^sZKD)daJJ8odBNqxt^v)%mQq2{gNBYosZ!wPX@1`dmtGxff(ikJ!9IV#<_q1 z$0Y&T$hzuC-(iZo-rs+qlv)ZK)y|Mr){kd{UV3iJdMZl>Zw)!W&@=~CdNbO9)LJ3s z_tqNWQ`GN?+9>==v3`9cQWI=xNDeaIlZtACUaqNII%9E`=O-VczIa1qwuJ{~2ksM&-2%y=%|Cej`;Jt;I zCe1&$g^FfA5-eHp9z(y_4OcY)FHN(BUBk2hUQPaxDa?ShMrykSRjB7RH)*<4%DR^d z^}z1j<=47LLiJ1Xx8&o*HNbkZoZj_Pq+(s_Tl~kHmo_cvZc-|{qAg7AGfQZ)AHFtr z%>DC)Ys5DVk}lT(=g99Q)u5mLbU30$5fr~a5P1$!{yHz_i81!h+;)})7vvUr7hDxv z=_)}wG$7Q4y5icMV;KSuR#W&_;1>RxGsPR#7?10%Tlfw%PafxTnXC-K?uUOwnf46J z&OTExp^0%lPJ_9)x46K^VP^Zumg@y2NWRAU#bRkpNy+%yt2HSxaLL2e)oMx^#kWSu z%8dMWweTYlNkP|B8FEGgE5dW8@!8;nC#&=2L4QySqXaN;mdUF5mq|uFCJI>1(f7df zg=!D$l}X>`ZS`qdue&Xz41 zYVE{9T{mQ>c0ecS2ywE;6uD!kz;>kd`XJ&$c!o$5#v{jui{L+f>bmcduiP(?$4_`t zH$q6PqU1|aLa*tuY>=PxL%>lXT11iw+1!Qi{YXp@vWx|)b0}{xLkkzV6y_(?&2UAVJDY;kouo|CnvV zz2)Y)e1VibghGkL0oXZtQQ0R_D>X(Qk3-@Im8;lt@^u49&v9R z-fKI2)$#@Hl&gAv#Pz(2g`%3e*GTY^}nR zBoJ8d2JXKD>v3v&ePSBmElA#$dbuqh4&tIgrdmiUuilG?N?wCPmX~g~A13sc#4IXY zUr&u+-v`J@Kg{k~m~Q|hsc7q3Yl&OiSJPZ(BuVRVvhNEwsvF%5UG4t0-d*48mqhY9 zf=9Nzhp~wZuU9g%?aU$P=J&&5Q5YWxH}c%oe?)uOIeWxu7Y#g<6T6c!+$yuSMwArZ z0>kpF|2R#}9>u&C*tCkFiR4~)H?c771R~OJ9C$~mXZ?N@P2uW}?7*ca=e<(H>zR-d zz7aj9^>=U4h>!pcjQ>040=#d`I4>hA*u6flQumvZ=vF?S9MO#i9PCS{26bI2S1uzrX=gHMk8L$qjtoUe9rMtT07BV$Z(Xs_a@%IZC?-wj$=b zhC{jFsj*&+Cl@XTOSFGDB*Y5P!>CJCUm7nmh7&lJ!VwC3GI}BY0gbQR2{8h9>akS_ z3Jb8i*lG90wYE%H6FV>nTdcrN=+)#|hLT&P)y~5Dgp_7j{ zS~;uf<4UY`K9a{=oiAL%&bjl3NkSCITjV|A|BuAm`R`Qsza$>U+q1d-BJzJoyo>*+ zyZ`UYg}!0oqBsn~QW63dXGkXY;15m4#ououZG7G*(4pE!T2)9?Y2pE$!6DIRF3Ni! zf6Y@W`gl=F!6c(6CRSZyMfWBT)7RC12@QciX1IV&-E*iVD)n*9H@~UIP!)=rvll*S z-1P(h`IucWQY!GPmE=a4oqKqnJDuAL)Jz?8h)&z{$cx~EDvhVPWx({r;S{__J^DCr z7yP81L&{}FDd4FmWX<_JUudf1?78~Ms>aI+KQpNS11?imdCS+eLt$>>@bLOC{GIC( zjR9^c`codEKJPiG9LBoC6OGM7GNfFO0%^q91Fw~O>JP{;^5-NR_y=@VdTK$g4Gmd~GZVDaO#(XF(A$tAzJuuC~H=Oi^;+oflT;#mD2{mE_#Q$l!-jNIF zs)CW2%Z24gQCG@u!tkd=w9#}%=78kjw}}J~M`^b-0)zRwP#_8M;CI zd8w2BWb0SmVJL%pmL5KFc~`4*Sn4dnso}wWhA29;PdRB0nkgt4Q)jr)4QDnQOvHKi zF;V?~XgK-Wy5^cXy6(R#f)OpsW>-de0Y8JbK zfx4wSNkHi~dB@gd%zJ_Y1rr)AocSvvn=RZI*h`9bxvlJ1m`{F3aPFgHtDxS@%&;-f zDiMAru^L$=m3|}7z~JHU#nfW?9+s~;d_7hgm?CD!Rg>5gz&mDkGys3v+$Oo)cn_G+ zpF>%$*=U?7XB!<9ky5F(rTyhb;Z49tb16Hup=uB&u$I22l5e-xbbVUGawP6kLw~)} zrsLXHpQeS0@0BC6SpCZGurp$@_loS6t$}WuWv3W*ny&GuQ$!WIg#alzw_8aBqS)#Q z&Upkc9#>@ISiZPwYhE3$pNd(eqIa#d>x7}RCk}Zs!!Hfm;j&V5D-jRv&8k{y6%E%I zw+3qqcXT;X`(4s%?}-oyE;-c?exRQ=;3CM}LF-i|5&S|WwYtQ%-JLGyMx7m^c*2R= z#KIbh{A!OjZ~5z6=K0h}IL{cMn%Av{^-aG?$7XiF=|wvbd&aXBVHyI|iL(()j&&7j_)d&~uzQ~O+Q6SD^e4CSg0zIW z-7}OY@FZOI{fvBd!FP#Uk3VE^wUo4F`6ucP`B^(eu;!SIPtQGFJTWc^KV7R+e459o z;gtM}4~|VX$}pUYV*LB^4x8bKc~N};^Avnq>RK#g9%tmL@kos#OpL9k! z{BP7eL1OW+sJX<;3;V~(ZMDqQmYFh?n>OiGKPhP6VMlHr-9f&m-9NulPFRW9>+Z2l zbPJJLcb@M%-c;0(myYf z6Ptloa%%?~c~D&o`3q`6hjPf__N0%)aeRlG z8rqh;+nGr?T%O=??J$-iotBC-kC}t!*tzOLI8AWCD(Y9h%i~AOpMFSB|Kz+_mkEL- z^ZpJRGPn)>#Z@slB{N{vK3WSeX75TQv<@$V{`8bEV%3-yyC{{q_2()%@Up*OvAWa^ zPav>4R*G7I7TMBhTH`_3at^QV6WynnVxJA=8xJqc($im;bKV1Yr#c%Fsf|pH28D_S zLT7()W0L%|lWjZGtUPoD%I6#Ixuex8WGP@?SbZ3i zBaJFTxkSv#Lp0Q6I%)EGti*mELrA%1zqi51iVFRUb`OAhc^WU7CF&)AM+v!pvi>QR zy$M}nhTmX5Xqkz^-y^bjvp8S#Xkg=62X%P*YpqG#aDA#&SnlG8Q<#kwoV8cU92olh z4VgJ1{@xG5fLyiG0ecyAGw93dIXr~=EvU(_Pfi5QFgFOPB)|U3IO5jwqKz91jx^$1 zKQvL5N54F=iFHk`isIR!3@EgZ$BmZg zP5J4)z;lKSI{2|5;A}^_qJ@yV<`yG4vh$#WF1UZ$_O*WzPY9GqSa34PpY@Up$~HnO znfQ{#fTCGr;YM->r8y6qi$f(E3?)+RyMz@Dr^vY5DY=_7jgf)Aw6~OiyVPGjQH`#z zc^gYzpI|XhX(Rfzub8I>V~IO`UAtF0L>E`OySIIb&wtaM0naRv*W3L=HoV{dD{+H^ z(-(Uuvh(p84|J-L`PDr|?EeK)6s_yy@yspm7uyrn+=t$ulAoVioq4JdG=N!}qJa3l zJU9n{O#3?f;$4fy=PIuy22dPDQ=OJ8 zYSFy@*n8iZsZ7P*j;_}*)O>%Yr|EIi?)>cLb~{WhpEzJ{r|%DrN3(zK_;$Y2(~U*% z^+Cpdf6sK^!C}8K8{YM`7J5*b`|Z$CI6*-l`@yU3MfXqa`(FESoP*x;DSf%had{p#Xq(nCDq*HU^UiWDtri0*@8XCu*dwj~J?z1D6 zHwX7RlTPJ3$X)Kogp*Mr`z7=qH%-^_hWP1S9N%gZk#MlfmwMum0A%EoaySXj^f)J_ zDm~R##H374Q#=T7sMSfJrca zyAkbE6>@JJZNQOWE1o$;s)|le4SO#Gs0%K_r8=NOYRa~gvq{7!kw*%NAGn9u7NIjI z+a+DG9Z+f@4Tm({GEMQTpR+$cQconoc#YVFenj?sc5FlEv4}$GTQmJrd~Sm=&=3M) z2_SEmms4DJLT=(u27}wxtMDTpeSc-b+Ura8a@+1C6-}R*&(HDEtv&0n85+BCb#C(8R=}lNrH7kBtba!dwus-lKes^vJv!WfvTdUI zeG7)f8{WO?F`Gx3#Z*t@2>o7<>)h+!ba%K4ntx25SKI}AzDBe{+9r}Eb&(t=^%Ok& zjqj^DN$)K28Dv)OiQ#T7*LKCgdW?q$f43i#3zp3{(YT0VPOd@ISOf3nLo!miAz`kT zCcr0ZWU}s2FJ!!H^BP3deMDS?fd^SGdEypq$In%Mr*m}Vw*=j|iqu>IS**m+L8ILL zHIfTVyS;U7u>~&vxP3M+gULk2r@3#qYo(>Vz$4C~KQitvREg@AU^Hv;ZhjYw@Q=Dl zi<)3NyT`U#-s5_cUDPN=d!tZ!vfp$viZ+Or9;REZ`ytOW1vpPl+v^uKelT?(f|LgQ_5 zh#TX3=LD0}N9-NcYIPSm?yZMS01z7h;HAEb?0U|8I%1yUeIrx6xf>%8q+WRUwwFt>B?K&P(NsJ-)gN6!0xKWffo7unzdQ=J{cc{nJXNJyAw z9BQr31VzxmI|0Px?307;ffMWp4m1uq?;kixK``k}0XR_SqJWx79`y?V(s8;@&O|m( z37qVX3OVt6bYvq(Iz=QmW*pNYQ_!!l z8t-=kbFzQ>DwUk$YLTaFg44W$l&8Mc$p^K57WR8M@bz^+KEE95ywmT`vHsYncfRLv z;K=&;6XM1ryO4NlO$y!XemvZxkHm?oejF8&nAnRKSJv0waU>v-OnfCFovw3|6U7W2 zK}Xa|x3jX@fB!Uxza#>rrc4unQ_>B!&_0I8Ovg+!Uu)qY zKA!cMI@%+m#UWOxie(*d$q3Of5Baf{3w}c;#mNBX5-k~HOhR)sR{SJ-1CtmtOQpgXrTjNW{;rElej`AAuCfyc1mf}6e zcupfn{a*c9+3Nlf(9g6J6At4bmrf$(}qfhAfK;kGW-R zbQ`;H$9gjCgRyIaB>6P^&37=yMr-%{k*CoJ=IEy!)-EjxTjj=UeCf;K((4`!bmH!u zXUFdHc%^|aUU>NaT)wK1Z%~#`T@jaEQfIwDd;#{7*|6YP0`Q`Q`XI>(5ez=Wg<0VnK(GP}jer%BlUAk&8bw95XKb zq}?x=`MR7YzP5fyGqnWxisW4I zF+V6mt>!)OV48N|n{%I@I^E};jLf;6Dnogb4FHTEJ`@0i@<$AdD1u6Rg`h23qbp|} zM9f`&8pN#;Nr1yK_jEjV9=lA_#PPcSJoDf)50b||-89Aahf88Qj_f1%>Bg_kV<#RI zkNHuL;!}p>FweZ}JSY287dgAu7xNy+9L_OMGwbUhW*qpvX&NR6IC6J-?wKY4=E-^5 zadx?@em>v&d%WV#5zD*cpsyRV{_4~RaX)zP_ZsiDnCr|u{}tH|k^M1EbJRLhbOMq$C>4Df}=)FCUt(w{p_V?Iu02WbVO}nF6fw!pP|;O zO-FWpb=R6r)ZA-@qMxInps0P^B;5iu$h8(b72vqP=f-A>NH2^`RICRsTX;rR!sSDDnN zV$Wlj(DVrE9s(hJ9@j&w9=T9=A#goLPEs;OCY3KKCy`(K>uL7m`QG7~U!L_H`)utl zM@9Fnxq}F3KbLg>p3P^ld_|_dZ>F9`ZC|GXVF`f#zJK*+;l64BbtPM`@@eETP|H+g zuD9HtZ>M8JujaStzyt%eF-lqN1>=pDkAz06No=U>b3cE3jdgxCtv}v8&3|b_-a_1E zyh}7`MjgnXa{09QpbO7)hx?bNRoM?R`6THTsXFSHs0yoZ2(5v5Jx|x{c~0rF!Q$=BxyR3$8~VE@sRt4|>c`0O)Tk zHv<=8QD~%|4+2L*j)kTYgKuUZ+o z{EiL`Y(1;rJC7P^5Hcxs-Eozqf_xnLKlQY~hVlJ>{6Dyz-Rmv#doMr3nG+ATy7#NL z#@?@xU{$QUCcx)+sfU&R>;oaO^Ym>kg6AyU?Y& zuYlUu^|W_8e_~ymdlUD025>|0BER|N>P*Rz-@QRE5kC4ZVO+%Yxxwa4wa`skMD&g5 zQHC}Wn5Xs$p)m4UAz02kl=z#qf>vn7kNvRI`f&?rlro1X=lygNgzUC4)gZis!$ zTIH?3Wgb&v&)}m#b+w+U9xA^K9RxO z9{+AjYhVBX0016D8@uND?a%&=(L&|DL9}tyoQ?U|ze!2>v5jcm&5R zROri@`}<5U`P2UWxb@ea(Z{`Z^wAV8TBwL<9l2ilPynDtFyB*(3`nM%zEZma1#^Tm z-^t=AoXCab#z*jd<2>JaOe8^0*|nL{A;@s*BR=?ikL-xKzkHowjv|YR^9v_tAhPc(Q>I*dFWDT~M;Ar?n}Xw}sOUb`xtL&HNJ96ieqN4; z{MGb<<3!zSSLUg*%QcIJ?gvGDp7*4$l)B%OKJxX>t{|0;n*Hy&Z_JLm<3JzU0ZJ$y|Le*ep>gOcZz>BLQnuMz{Y=}V^T3KGw#a{9 z8cO{>4NbD1#Z||x?Z8*7&=-?uPu1EMl%0s zeUbma5C?neHa~U$Xop7Q13b@aMQ5dj-3^=OGp7q2v&~vRzvJJT2&Vv$@KERp*&UCt zf;sh_2@^wI&3nF8HH-Sv^Kkyq8~EkC(ugK*2KfstO~UEXc;((PI4M?pP61SBpODbj zn+raF$NivP6Pspvb*oPm-l!ZCt2P$HfQpkNW*TotL-;qs{FriZH#%{(*<+HLtNi+)!F22P((GHZ{~Ga?U&k~ z;{wOt2t6yZ=JAI)%%n!|bNED;!NEv-D=#nHKZ*W`8erKS7uIz9iA9!q|`j2kEtPmA#054iMo1wsA# z`(?Equh<5x^BPE9DcyEkZ9Ud*y~VPI{rK^iXfTRaE+bm>=9_;aU$5V0wAGAkH}Pg_ zmc0MmFKrI^8YkiMMXBom>!bql*l?XB+|OC%@;A{LbA#vlu}eAkyC|4a%gW+?n^L4^ z;5Xwf8feOR_Ivl;@8bIQ^~F>1AV5dT`!s#LAy`0BDu0#TmCJ6?c?zAa?)f@n;*(x^ ze`#*J4>|0`fL8Ox{5_BFw{I^lqqMd3^lNdQ2hM(4$mN!@?>**WlRf0_teb#~>YMG! z&B6h;xwA)I>?6kw0JV&X?qB4uZB@!|OFPm@d&&9FJTL2Wk6k&9UDz;Fc7Og_ zlAqh9A5!{wJnmhouwh@$-mi;32J;5s0N?=LQ@d=JFDN#O9K^Y&_Bz@Z6i~pKU;v<* z<|&U?em>_RlY$v_@%K`s{`cdu{5Z=)hGr@O0000000000003kLd{}?N6CdAi%EfX| cVfq1MvXJHTy&eBc^gciE?{5?}mo)$Y011AC>i_@% literal 0 HcmV?d00001 diff --git a/sound/items/orbie_notification_sound.ogg b/sound/items/orbie_notification_sound.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b43bba41ae5a64bde23a1a1ae050c86e8d46ee8a GIT binary patch literal 68909 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