From 707fc287b42709dd1ebd8ed86704a8f8e976ca61 Mon Sep 17 00:00:00 2001 From: Qustinnus Date: Thu, 4 Feb 2021 04:37:32 +0100 Subject: [PATCH] Replaces intents with combat mode (#56601) About The Pull Request This PR removes intents and replaces them with a combat mode. An explanation of what this means can be found below Major changes: Disarm and Grab intents have been removed. Harm/Help is now combat mode, toggled by F or 4 by default The context/verb/popup menu now only works when you do shift+right-click Right click is now disarm, both in and out of combat mode. Grabbing is now on ctrl-click. If you're in combat mode, and are currently grabbing/pulling someone, and ctrl-click somewhere else, it will not release the grab (To prevent misclicks) Minor interaction changes: Right click to dissasemble tables, racks, filing cabinets (When holding the right tool to do so) Left click to stunbaton, right click to harmbaton Right click to tip cows Right click to malpractice surgery Right click to hold people at gunpoint (if youre holding a gun) Why It's Good For The Game Intents heavily cripple both the code and the UI design of interactions. While I understand that a lot of people will dislike this PR as they are used to intents, they are one of our weakest links in terms of explaining to players how to do specific things, and require a lot more keypresses to do compared to this. As an example, martial arts can now be done without having to juggle 1 2 3 and 4 to switch intents quickly. As some of you who saw the first combat mode PR, the context menu used to be disabled in combat mode. In this version it is instead on shift-right click ensuring that you can always use it in the same way. In this version, combat mode also no longer prevents you from attacking with items when you would so before, as this was something that was commonly complained about. The full intention of this shift in control scheme is that right click will become "secondary interaction" for items, which prevents some of the awkward juggling we have now with item modes etcetera. Changelog cl Qustinnus add: Intents have been replaced with a combat mode. For more info find the PR here: #56601 /cl --- code/__DEFINES/combat.dm | 10 -- code/__DEFINES/dcs/signals.dm | 2 +- code/__DEFINES/keybinding.dm | 5 +- code/__DEFINES/monkeys.dm | 6 +- code/__DEFINES/preferences.dm | 3 +- code/_onclick/click.dm | 10 +- code/_onclick/hud/_defines.dm | 1 + code/_onclick/hud/alien.dm | 10 +- code/_onclick/hud/alien_larva.dm | 10 +- code/_onclick/hud/generic_dextrous.dm | 15 +- code/_onclick/hud/human.dm | 6 +- code/_onclick/hud/robot.dm | 7 +- code/_onclick/hud/screen_objects.dm | 61 ++++--- code/_onclick/item_attack.dm | 11 +- code/_onclick/other_mobs.dm | 32 ++-- code/datums/ai/monkey/monkey_behaviors.dm | 13 +- code/datums/ai/monkey/monkey_controller.dm | 9 +- code/datums/brain_damage/special.dm | 2 +- code/datums/components/bane.dm | 4 +- code/datums/components/butchering.dm | 2 - code/datums/components/food/edible.dm | 2 +- code/datums/components/gunpoint.dm | 4 +- code/datums/components/material_container.dm | 2 +- code/datums/components/punchcooldown.dm | 2 +- code/datums/components/riding/riding_mob.dm | 6 +- .../datums/components/storage/food_storage.dm | 12 +- code/datums/diseases/transformation.dm | 2 +- code/datums/keybinding/carbon.dm | 64 -------- code/datums/keybinding/living.dm | 15 ++ code/datums/keybinding/mob.dm | 30 ---- code/datums/keybinding/robot.dm | 2 +- code/datums/martial/cqc.dm | 2 +- code/datums/martial/psychotic_brawl.dm | 6 +- code/datums/martial/sleeping_carp.dm | 5 +- code/datums/mutations/antenna.dm | 2 +- code/datums/mutations/hulk.dm | 2 +- code/datums/mutations/sight.dm | 2 +- code/datums/status_effects/debuffs.dm | 16 +- code/datums/wounds/_wounds.dm | 7 +- code/datums/wounds/bones.dm | 6 +- code/datums/wounds/slash.dm | 2 +- code/game/machinery/PDApainter.dm | 4 +- code/game/machinery/_machinery.dm | 2 +- code/game/machinery/aug_manipulator.dm | 4 +- code/game/machinery/autolathe.dm | 4 +- code/game/machinery/buttons.dm | 4 +- .../game/machinery/computer/buildandrepair.dm | 4 +- code/game/machinery/constructable_frame.dm | 4 +- code/game/machinery/defibrillator_mount.dm | 2 +- code/game/machinery/deployable.dm | 4 +- code/game/machinery/dish_drive.dm | 2 +- code/game/machinery/doors/airlock.dm | 6 +- code/game/machinery/doors/door.dm | 6 +- code/game/machinery/firealarm.dm | 4 +- code/game/machinery/limbgrower.dm | 4 +- code/game/machinery/newscaster.dm | 6 +- .../porta_turret/portable_turret_cover.dm | 4 +- code/game/machinery/shieldgen.dm | 4 +- code/game/machinery/washing_machine.dm | 8 +- code/game/objects/items.dm | 4 +- code/game/objects/items/cardboard_cutouts.dm | 2 +- code/game/objects/items/cigs_lighters.dm | 6 +- code/game/objects/items/cosmetics.dm | 6 +- code/game/objects/items/defib.dm | 7 +- .../objects/items/devices/geiger_counter.dm | 4 +- .../objects/items/devices/traitordevices.dm | 2 +- code/game/objects/items/extinguisher.dm | 4 +- code/game/objects/items/food/pastries.dm | 6 +- code/game/objects/items/inducer.dm | 6 +- code/game/objects/items/melee/misc.dm | 73 ++++----- code/game/objects/items/pet_carrier.dm | 2 +- code/game/objects/items/pneumaticCannon.dm | 6 +- code/game/objects/items/robot/robot_items.dm | 9 +- code/game/objects/items/singularityhammer.dm | 2 +- code/game/objects/items/storage/book.dm | 2 +- code/game/objects/items/stunbaton.dm | 34 ++-- code/game/objects/items/tail_pin.dm | 2 +- code/game/objects/items/tools/weldingtool.dm | 4 +- code/game/objects/items/toy_mechs.dm | 2 +- code/game/objects/items/weaponry.dm | 9 +- code/game/objects/structures/artstuff.dm | 2 +- .../structures/beds_chairs/alien_nest.dm | 2 +- .../structures/crates_lockers/closets.dm | 4 +- .../structures/crates_lockers/crates/large.dm | 4 +- code/game/objects/structures/displaycase.dm | 16 +- code/game/objects/structures/extinguisher.dm | 4 +- code/game/objects/structures/fireaxe.dm | 4 +- code/game/objects/structures/guillotine.dm | 4 +- code/game/objects/structures/guncase.dm | 4 +- code/game/objects/structures/holosign.dm | 2 +- code/game/objects/structures/kitchen_spike.dm | 4 +- code/game/objects/structures/mineral_doors.dm | 6 +- code/game/objects/structures/mirror.dm | 2 +- .../objects/structures/plaques/_plaques.dm | 4 +- code/game/objects/structures/railings.dm | 2 +- code/game/objects/structures/signs/_signs.dm | 4 +- code/game/objects/structures/tables_racks.dm | 72 ++++----- .../game/objects/structures/tank_dispenser.dm | 4 +- code/game/objects/structures/tank_holder.dm | 4 +- .../objects/structures/training_machine.dm | 8 +- .../structures/transit_tubes/station.dm | 2 +- code/game/objects/structures/watercloset.dm | 37 +++-- code/game/objects/structures/window.dm | 19 +-- code/game/turfs/closed/walls.dm | 4 +- code/game/turfs/open/floor.dm | 4 +- code/modules/antagonists/blob/blob_mobs.dm | 2 +- .../changeling/powers/mutations.dm | 59 ++++--- .../eldritch_cult/knowledge/rust_lore.dm | 4 +- code/modules/antagonists/morph/morph.dm | 2 +- .../antagonists/slaughter/slaughter.dm | 2 +- code/modules/aquarium/aquarium.dm | 4 +- code/modules/assembly/holder.dm | 6 +- .../machinery/portable/canister.dm | 2 +- code/modules/client/preferences.dm | 5 + code/modules/client/preferences_savefile.dm | 14 +- code/modules/client/preferences_toggles.dm | 14 ++ code/modules/client/verbs/suicide.dm | 12 +- code/modules/clothing/clothing.dm | 6 +- code/modules/clothing/neck/_neck.dm | 2 +- code/modules/clothing/under/accessories.dm | 2 +- .../detectivework/footprints_and_rag.dm | 4 +- code/modules/economy/pay_stand.dm | 11 +- code/modules/events/crystal_event.dm | 2 +- code/modules/food_and_drinks/drinks/drinks.dm | 12 +- .../food_and_drinks/drinks/drinks/bottle.dm | 2 +- .../drinks/drinks/drinkingglass.dm | 8 +- .../kitchen_machinery/deep_fryer.dm | 4 +- .../kitchen_machinery/gibber.dm | 2 +- .../kitchen_machinery/microwave.dm | 4 +- .../kitchen_machinery/processor.dm | 13 +- .../kitchen_machinery/smartfridge.dm | 4 +- code/modules/holodeck/items.dm | 4 +- code/modules/hydroponics/biogenerator.dm | 4 +- code/modules/hydroponics/grafts.dm | 2 +- code/modules/hydroponics/grown/towercap.dm | 4 +- code/modules/hydroponics/hydroponics.dm | 4 +- code/modules/hydroponics/seed_extractor.dm | 4 +- code/modules/mining/laborcamp/laborstacker.dm | 2 +- code/modules/mining/machine_silo.dm | 4 +- code/modules/mining/minebot.dm | 4 +- code/modules/mob/dead/new_player/login.dm | 3 + code/modules/mob/living/brain/brain.dm | 1 - code/modules/mob/living/carbon/alien/alien.dm | 2 +- .../mob/living/carbon/alien/alien_defense.dm | 70 ++++---- .../living/carbon/alien/humanoid/humanoid.dm | 1 - .../carbon/alien/humanoid/humanoid_defense.dm | 60 +++---- .../mob/living/carbon/alien/larva/larva.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 11 +- .../mob/living/carbon/carbon_defense.dm | 18 +-- .../mob/living/carbon/carbon_defines.dm | 1 - .../mob/living/carbon/human/examine.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 4 +- .../mob/living/carbon/human/human_defense.dm | 53 ++++--- .../mob/living/carbon/human/human_defines.dm | 1 - .../mob/living/carbon/human/species.dm | 29 ++-- .../carbon/human/species_types/golems.dm | 18 +-- .../carbon/human/species_types/monkeys.dm | 6 +- .../carbon/human/species_types/zombies.dm | 2 +- .../mob/living/carbon/human/suicides.dm | 12 -- code/modules/mob/living/living.dm | 40 ++--- code/modules/mob/living/living_defense.dm | 150 +++++++++--------- code/modules/mob/living/living_defines.dm | 3 + code/modules/mob/living/silicon/ai/ai.dm | 2 +- .../mob/living/silicon/pai/pai_defense.dm | 31 ++-- .../modules/mob/living/silicon/robot/robot.dm | 2 +- .../mob/living/silicon/robot/robot_defense.dm | 12 +- code/modules/mob/living/silicon/silicon.dm | 1 - .../mob/living/silicon/silicon_defense.dm | 32 ++-- .../living/simple_animal/animal_defense.dm | 86 +++++----- .../mob/living/simple_animal/bot/bot.dm | 6 +- .../mob/living/simple_animal/bot/cleanbot.dm | 4 +- .../mob/living/simple_animal/bot/honkbot.dm | 2 +- .../mob/living/simple_animal/bot/medbot.dm | 6 +- .../mob/living/simple_animal/bot/mulebot.dm | 6 +- .../mob/living/simple_animal/bot/secbot.dm | 8 +- .../mob/living/simple_animal/constructs.dm | 2 +- .../living/simple_animal/eldritch_demons.dm | 2 +- .../mob/living/simple_animal/friendly/cat.dm | 2 +- .../simple_animal/friendly/drone/_drone.dm | 1 - .../simple_animal/friendly/farm_animals.dm | 6 +- .../living/simple_animal/friendly/mouse.dm | 4 +- .../living/simple_animal/guardian/guardian.dm | 2 +- .../simple_animal/guardian/types/fire.dm | 2 +- .../simple_animal/guardian/types/ranged.dm | 2 +- .../simple_animal/guardian/types/support.dm | 6 +- .../mob/living/simple_animal/hostile/alien.dm | 4 +- .../mob/living/simple_animal/hostile/bear.dm | 2 +- .../simple_animal/hostile/bosses/boss.dm | 2 +- .../simple_animal/hostile/cat_butcher.dm | 2 +- .../simple_animal/hostile/dark_wizard.dm | 2 +- .../simple_animal/hostile/giant_spider.dm | 2 +- .../simple_animal/hostile/gorilla/gorilla.dm | 1 - .../living/simple_animal/hostile/hivebot.dm | 11 +- .../living/simple_animal/hostile/illusion.dm | 2 +- .../hostile/jungle/_jungle_mobs.dm | 2 +- .../hostile/megafauna/megafauna.dm | 2 +- .../mob/living/simple_animal/hostile/mimic.dm | 2 +- .../hostile/mining_mobs/basilisk.dm | 2 +- .../hostile/mining_mobs/goldgrub.dm | 2 +- .../hostile/mining_mobs/gutlunch.dm | 2 +- .../hostile/mining_mobs/mining_mobs.dm | 2 +- .../living/simple_animal/hostile/mushroom.dm | 2 +- .../simple_animal/hostile/nanotrasen.dm | 2 +- .../mob/living/simple_animal/hostile/ooze.dm | 2 +- .../living/simple_animal/hostile/pirate.dm | 2 +- .../simple_animal/hostile/retaliate/clown.dm | 2 +- .../simple_animal/hostile/retaliate/ghost.dm | 2 +- .../hostile/retaliate/spaceman.dm | 4 +- .../living/simple_animal/hostile/russian.dm | 2 +- .../living/simple_animal/hostile/skeleton.dm | 2 +- .../simple_animal/hostile/space_dragon.dm | 2 +- .../living/simple_animal/hostile/statue.dm | 2 +- .../living/simple_animal/hostile/stickman.dm | 2 +- .../living/simple_animal/hostile/syndicate.dm | 4 +- .../mob/living/simple_animal/hostile/tree.dm | 2 +- .../simple_animal/hostile/venus_human_trap.dm | 2 +- .../living/simple_animal/hostile/wizard.dm | 2 +- .../living/simple_animal/hostile/zombie.dm | 2 +- .../mob/living/simple_animal/parrot.dm | 18 +-- .../mob/living/simple_animal/slime/powers.dm | 2 +- .../mob/living/simple_animal/slime/slime.dm | 13 +- code/modules/mob/mob.dm | 17 +- code/modules/mob/mob_defines.dm | 4 - code/modules/mob/mob_helpers.dm | 40 +---- code/modules/mob/transform_procs.dm | 17 +- .../computers/machinery/modular_computer.dm | 4 +- code/modules/paperwork/filingcabinet.dm | 7 +- code/modules/power/apc.dm | 45 +++--- code/modules/power/gravitygenerator.dm | 4 +- code/modules/power/solar.dm | 4 +- code/modules/power/supermatter/supermatter.dm | 2 +- code/modules/projectiles/gun.dm | 32 ++-- .../projectiles/guns/ballistic/revolver.dm | 2 +- .../projectiles/guns/misc/beam_rifle.dm | 2 +- code/modules/projectiles/projectile/magic.dm | 2 +- .../chemistry/machinery/chem_dispenser.dm | 4 +- .../chemistry/machinery/reagentgrinder.dm | 4 +- code/modules/reagents/reagent_containers.dm | 4 +- .../reagents/reagent_containers/glass.dm | 8 +- code/modules/recycling/conveyor2.dm | 4 +- code/modules/recycling/disposal/bin.dm | 4 +- code/modules/research/destructive_analyzer.dm | 4 +- code/modules/research/experimentor.dm | 4 +- .../research/xenobiology/xenobiology.dm | 2 +- .../lavalandruin_code/elephantgraveyard.dm | 8 +- code/modules/spells/spell_types/summonitem.dm | 2 +- code/modules/surgery/bone_mending.dm | 12 +- code/modules/surgery/burn_dressing.dm | 8 +- code/modules/surgery/limb_augmentation.dm | 4 +- code/modules/surgery/organ_manipulation.dm | 4 +- code/modules/surgery/organs/vocal_cords.dm | 32 ---- code/modules/surgery/repair_puncture.dm | 8 +- code/modules/surgery/surgery.dm | 4 +- code/modules/surgery/tools.dm | 6 +- code/modules/unit_tests/combat.dm | 16 +- code/modules/unit_tests/metabolizing.dm | 4 +- .../mecha/equipment/tools/mining_tools.dm | 4 +- .../mecha/equipment/tools/work_tools.dm | 13 +- .../vehicles/mecha/mech_melee_attack.dm | 15 +- code/modules/vehicles/mecha/mecha_defense.dm | 6 +- code/modules/vehicles/secway.dm | 4 +- code/modules/vending/_vending.dm | 4 +- icons/hud/screen_alien.dmi | Bin 18252 -> 19547 bytes icons/hud/screen_clockwork.dmi | Bin 16243 -> 18064 bytes icons/hud/screen_cyborg.dmi | Bin 27352 -> 25712 bytes icons/hud/screen_gen.dmi | Bin 109428 -> 104282 bytes icons/hud/screen_glass.dmi | Bin 13223 -> 14147 bytes icons/hud/screen_midnight.dmi | Bin 25792 -> 28341 bytes icons/hud/screen_operative.dmi | Bin 28376 -> 30909 bytes icons/hud/screen_plasmafire.dmi | Bin 27585 -> 29797 bytes icons/hud/screen_retro.dmi | Bin 12103 -> 12833 bytes icons/hud/screen_slimecore.dmi | Bin 26346 -> 28294 bytes icons/obj/economy.dmi | Bin 16692 -> 17961 bytes interface/skin.dmf | 52 +++++- sound/misc/ui_togglecombat.ogg | Bin 0 -> 6537 bytes sound/misc/ui_toggleoffcombat.ogg | Bin 0 -> 6934 bytes tgstation.dme | 2 +- 277 files changed, 1137 insertions(+), 1254 deletions(-) create mode 100644 sound/misc/ui_togglecombat.ogg create mode 100644 sound/misc/ui_toggleoffcombat.ogg diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index 34721292017..df5eaa993ca 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -128,16 +128,6 @@ #define ATTACK_EFFECT_MECHTOXIN "mech_toxin" #define ATTACK_EFFECT_BOOP "boop" //Honk -//intent defines -#define INTENT_HELP "help" -#define INTENT_GRAB "grab" -#define INTENT_DISARM "disarm" -#define INTENT_HARM "harm" -//NOTE: INTENT_HOTKEY_* defines are not actual intents! -//they are here to support hotkeys -#define INTENT_HOTKEY_LEFT "left" -#define INTENT_HOTKEY_RIGHT "right" - //the define for visible message range in combat #define COMBAT_MESSAGE_RANGE 3 #define DEFAULT_MESSAGE_RANGE 7 diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 9b06a745e91..c211b501fc1 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -982,7 +982,7 @@ #define COMSIG_ITEM_AFTERATTACK "item_afterattack" ///from base of obj/item/attack_qdeleted(): (atom/target, mob/user, params) #define COMSIG_ITEM_ATTACK_QDELETED "item_attack_qdeleted" -///from base of atom/attack_hand(): (mob/user) +///from base of atom/attack_hand(): (mob/user, modifiers) #define COMSIG_MOB_ATTACK_HAND "mob_attack_hand" ///from base of /obj/item/attack(): (mob/M, mob/user) #define COMSIG_MOB_ITEM_ATTACK "mob_item_attack" diff --git a/code/__DEFINES/keybinding.dm b/code/__DEFINES/keybinding.dm index 7c65fc64ea2..03105c8b48b 100644 --- a/code/__DEFINES/keybinding.dm +++ b/code/__DEFINES/keybinding.dm @@ -19,10 +19,6 @@ #define COMSIG_KB_CARBON_HOLDRUNMOVEINTENT_DOWN "keybinding_carbon_holdrunmoveintent_down" #define COMSIG_KB_CARBON_HOLDRUNMOVEINTENT_UP "keybinding_carbon_holdrunmoveintent_up" #define COMSIG_KB_CARBON_TOGGLETHROWMODE_DOWN "keybinding_carbon_togglethrowmode_down" -#define COMSIG_KB_CARBON_SELECTHELPINTENT_DOWN "keybinding_carbon_selecthelpintent_down" -#define COMSIG_KB_CARBON_SELECTDISARMINTENT_DOWN "keybinding_carbon_selectdisarmintent_down" -#define COMSIG_KB_CARBON_SELECTGRABINTENT_DOWN "keybinding_carbon_selectgrabintent_down" -#define COMSIG_KB_CARBON_SELECTHARMINTENT_DOWN "keybinding_carbon_selectharmintent_down" #define COMSIG_KB_CARBON_GIVEITEM_DOWN "keybinding_carbon_giveitem_down" //Client @@ -46,6 +42,7 @@ #define COMSIG_KB_LIVING_LOOKUP_DOWN "keybinding_living_lookup_down" #define COMSIG_KB_LIVING_LOOKDOWN_DOWN "keybinding_living_lookdown_down" #define COMSIG_KB_LIVING_REST_DOWN "keybinding_living_rest_down" +#define COMSIG_KB_LIVING_TOGGLE_COMBAT_DOWN "keybinding_living_toggle_combat_down" //Mob #define COMSIG_KB_MOB_FACENORTH_DOWN "keybinding_mob_facenorth_down" diff --git a/code/__DEFINES/monkeys.dm b/code/__DEFINES/monkeys.dm index 76b0820da37..c881e5db2cb 100644 --- a/code/__DEFINES/monkeys.dm +++ b/code/__DEFINES/monkeys.dm @@ -25,10 +25,8 @@ /// probability that monkey will get recruited when friend is attacked #define MONKEY_RECRUIT_PROB 25 -/// probability for the monkey to aggro when attacked with harm intent -#define MONKEY_RETALIATE_HARM_PROB 95 -/// probability for the monkey to aggro when attacked with disarm intent -#define MONKEY_RETALIATE_DISARM_PROB 20 +/// probability for the monkey to aggro when attacked +#define MONKEY_RETALIATE_PROB 85 /// amount of aggro to add to an enemy when they attack user #define MONKEY_HATRED_AMOUNT 4 diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index 00984f23953..d0d5c29fc9e 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -22,8 +22,9 @@ #define DEADMIN_POSITION_SILICON (1<<19) #define SOUND_ENDOFROUND (1<<20) #define ADMIN_IGNORE_CULT_GHOST (1<<21) +#define SOUND_COMBATMODE (1<<22) -#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|SOUND_ENDOFROUND|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS) +#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|SOUND_ENDOFROUND|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS|SOUND_COMBATMODE) //Chat toggles #define CHAT_OOC (1<<0) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 24390a3c682..2b084c0d6cf 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -111,7 +111,7 @@ if(HAS_TRAIT(src, TRAIT_HANDS_BLOCKED)) changeNext_move(CLICK_CD_HANDCUFFED) //Doing shit in cuffs shall be vey slow - UnarmedAttack(A) + UnarmedAttack(A, FALSE, modifiers) return if(in_throw_mode) @@ -134,7 +134,7 @@ else if(ismob(A)) changeNext_move(CLICK_CD_MELEE) - UnarmedAttack(A) + UnarmedAttack(A, FALSE, modifiers) return //Can't reach anything else in lockers or other weirdness @@ -148,7 +148,7 @@ else if(ismob(A)) changeNext_move(CLICK_CD_MELEE) - UnarmedAttack(A,1) + UnarmedAttack(A,1,modifiers) else if(W) W.afterattack(A,src,0,params) @@ -258,8 +258,10 @@ * * proximity_flag is not currently passed to attack_hand, and is instead used * in human click code to allow glove touches only at melee range. + * + * modifiers is the click modifiers this attack had, used for */ -/mob/proc/UnarmedAttack(atom/A, proximity_flag) +/mob/proc/UnarmedAttack(atom/A, proximity_flag, modifiers) if(ismob(A)) changeNext_move(CLICK_CD_MELEE) return diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index 2a1e2675c75..75ed7b2d614 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -53,6 +53,7 @@ #define ui_above_intent "EAST-3:24, SOUTH+1:7" #define ui_movi "EAST-2:26,SOUTH:5" #define ui_acti "EAST-3:24,SOUTH:5" +#define ui_combat_toggle "EAST-3:24,SOUTH:5" #define ui_zonesel "EAST-1:28,SOUTH:5" #define ui_acti_alt "EAST-1:28,SOUTH:5" //alternative intent switcher for when the interface is hidden (F12) #define ui_crafting "EAST-4:22,SOUTH:5" diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm index d0db2a3c0d9..0c552a3afa7 100644 --- a/code/_onclick/hud/alien.dm +++ b/code/_onclick/hud/alien.dm @@ -50,11 +50,11 @@ using.hud = src static_inventory += using - using = new /atom/movable/screen/act_intent/alien() - using.icon_state = mymob.a_intent - using.hud = src - static_inventory += using - action_intent = using + action_intent = new /atom/movable/screen/combattoggle/flashy() + action_intent.hud = src + action_intent.icon = ui_style + action_intent.screen_loc = ui_combat_toggle + static_inventory += action_intent if(isalienhunter(mymob)) var/mob/living/carbon/alien/humanoid/hunter/H = mymob diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm index 3b7d8249328..d656b57ea4b 100644 --- a/code/_onclick/hud/alien_larva.dm +++ b/code/_onclick/hud/alien_larva.dm @@ -5,11 +5,11 @@ ..() var/atom/movable/screen/using - using = new /atom/movable/screen/act_intent/alien() - using.icon_state = mymob.a_intent - using.hud = src - static_inventory += using - action_intent = using + action_intent = new /atom/movable/screen/combattoggle/flashy() + action_intent.hud = src + action_intent.icon = ui_style + action_intent.screen_loc = ui_combat_toggle + static_inventory += action_intent healths = new /atom/movable/screen/healths/alien() healths.hud = src diff --git a/code/_onclick/hud/generic_dextrous.dm b/code/_onclick/hud/generic_dextrous.dm index beeacbbccb4..ffddafdc610 100644 --- a/code/_onclick/hud/generic_dextrous.dm +++ b/code/_onclick/hud/generic_dextrous.dm @@ -32,16 +32,11 @@ using.hud = src static_inventory += using - if(mymob.possible_a_intents) - if(mymob.possible_a_intents.len == 4) - // All possible intents - full intent selector - action_intent = new /atom/movable/screen/act_intent/segmented - else - action_intent = new /atom/movable/screen/act_intent - action_intent.icon = ui_style - action_intent.icon_state = mymob.a_intent - action_intent.hud = src - static_inventory += action_intent + action_intent = new /atom/movable/screen/combattoggle/flashy() + action_intent.hud = src + action_intent.icon = ui_style + action_intent.screen_loc = ui_combat_toggle + static_inventory += action_intent zone_select = new /atom/movable/screen/zone_sel() diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 7e179cab3e2..c9fa6b39d3f 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -73,11 +73,13 @@ using.hud = src static_inventory += using - action_intent = new /atom/movable/screen/act_intent/segmented - action_intent.icon_state = mymob.a_intent + action_intent = new /atom/movable/screen/combattoggle/flashy() action_intent.hud = src + action_intent.icon = ui_style + action_intent.screen_loc = ui_combat_toggle static_inventory += action_intent + using = new /atom/movable/screen/mov_intent using.icon = ui_style using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking") diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm index 58fc5611385..132b7634c6c 100644 --- a/code/_onclick/hud/robot.dm +++ b/code/_onclick/hud/robot.dm @@ -141,10 +141,11 @@ using.hud = src static_inventory += using -//Intent - action_intent = new /atom/movable/screen/act_intent/robot() - action_intent.icon_state = mymob.a_intent + //Combat Mode + action_intent = new /atom/movable/screen/combattoggle/robot() action_intent.hud = src + action_intent.icon = ui_style + action_intent.screen_loc = ui_combat_toggle static_inventory += action_intent //Health diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 7c2b0f6446d..4ea6b868989 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -145,7 +145,7 @@ if(inv_item) return inv_item.Click(location, control, params) - if(usr.attack_ui(slot_id)) + if(usr.attack_ui(slot_id, params)) usr.update_inv_hands() return TRUE @@ -266,38 +266,47 @@ if(usr.stat == CONSCIOUS) usr.dropItemToGround(usr.get_active_held_item()) -/atom/movable/screen/act_intent - name = "intent" - icon_state = "help" - screen_loc = ui_acti +/atom/movable/screen/combattoggle + name = "toggle combat mode" + icon = 'icons/hud/screen_midnight.dmi' + icon_state = "combat_off" + screen_loc = ui_combat_toggle -/atom/movable/screen/act_intent/Click(location, control, params) - usr.a_intent_change(INTENT_HOTKEY_RIGHT) +/atom/movable/screen/combattoggle/New(loc, ...) + . = ..() + update_icon() -/atom/movable/screen/act_intent/segmented/Click(location, control, params) - if(usr.client.prefs.toggles & INTENT_STYLE) - var/_x = text2num(params2list(params)["icon-x"]) - var/_y = text2num(params2list(params)["icon-y"]) +/atom/movable/screen/combattoggle/Click() + if(isliving(usr)) + var/mob/living/owner = usr + owner.set_combat_mode(!owner.combat_mode, FALSE) + update_icon() - if(_x<=16 && _y<=16) - usr.a_intent_change(INTENT_HARM) +/atom/movable/screen/combattoggle/update_icon_state() + . = ..() + var/mob/living/user = hud?.mymob + if(!istype(user) || !user.client) + return + icon_state = user.combat_mode ? "combat" : "combat_off" //Treats the combat_mode - else if(_x<=16 && _y>=17) - usr.a_intent_change(INTENT_HELP) +//Version of the combat toggle with the flashy overlay +/atom/movable/screen/combattoggle/flashy + ///Mut appearance for flashy border + var/mutable_appearance/flashy - else if(_x>=17 && _y<=16) - usr.a_intent_change(INTENT_GRAB) +/atom/movable/screen/combattoggle/flashy/update_overlays() + . = ..() + var/mob/living/user = hud?.mymob + if(!istype(user) || !user.client) + return - else if(_x>=17 && _y>=17) - usr.a_intent_change(INTENT_DISARM) - else - return ..() + if(user.combat_mode) + if(!flashy) + flashy = mutable_appearance('icons/hud/screen_gen.dmi', "togglefull_flash") + flashy.color = "#C62727" + . += flashy -/atom/movable/screen/act_intent/alien - icon = 'icons/hud/screen_alien.dmi' - screen_loc = ui_movi - -/atom/movable/screen/act_intent/robot +/atom/movable/screen/combattoggle/robot icon = 'icons/hud/screen_cyborg.dmi' screen_loc = ui_borg_intents diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index ce901fae129..4b229ddfd1d 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -62,7 +62,7 @@ if(..()) return TRUE user.changeNext_move(CLICK_CD_MELEE) - return I.attack(src, user) + return I.attack(src, user, params) /** * Called from [/mob/living/proc/attackby] @@ -70,15 +70,16 @@ * Arguments: * * mob/living/M - The mob being hit by this item * * mob/living/user - The mob hitting with this item + * * params - Click params of this attack */ -/obj/item/proc/attack(mob/living/M, mob/living/user) - var/signal_return = SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, M, user) +/obj/item/proc/attack(mob/living/M, mob/living/user, params) + var/signal_return = SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, M, user, params) if(signal_return & COMPONENT_CANCEL_ATTACK_CHAIN) return TRUE if(signal_return & COMPONENT_SKIP_ATTACK) return - SEND_SIGNAL(user, COMSIG_MOB_ITEM_ATTACK, M, user) + SEND_SIGNAL(user, COMSIG_MOB_ITEM_ATTACK, M, user, params) if(item_flags & NOBLUDGEON) return @@ -106,7 +107,7 @@ user.do_attack_animation(M) M.attacked_by(src, user) - log_combat(user, M, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])") + log_combat(user, M, "attacked", src.name, "(COMBAT MODE: [uppertext(user.combat_mode)]) (DAMTYPE: [uppertext(damtype)])") add_fingerprint(user) diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 148fce2c4c7..c02019e9fb7 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -4,7 +4,7 @@ Otherwise pretty standard. */ -/mob/living/carbon/human/UnarmedAttack(atom/A, proximity) +/mob/living/carbon/human/UnarmedAttack(atom/A, proximity, modifiers) if(HAS_TRAIT(src, TRAIT_HANDS_BLOCKED)) if(src == A) check_self_for_injuries() @@ -25,16 +25,16 @@ if(proximity && istype(G) && G.Touch(A,1)) return //This signal is needed to prevent gloves of the north star + hulk. - if(SEND_SIGNAL(src, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, A, proximity) & COMPONENT_CANCEL_ATTACK_CHAIN) + if(SEND_SIGNAL(src, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, A, proximity, modifiers) & COMPONENT_CANCEL_ATTACK_CHAIN) return - SEND_SIGNAL(src, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, A, proximity) + SEND_SIGNAL(src, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, A, proximity, modifiers) - if(dna?.species?.spec_unarmedattack(src, A)) //Because species like monkeys dont use attack hand + if(dna?.species?.spec_unarmedattack(src, A, modifiers)) //Because species like monkeys dont use attack hand return - A.attack_hand(src) + A.attack_hand(src, modifiers) -/// Return TRUE to cancel other attack hand effects that respect it. -/atom/proc/attack_hand(mob/user) +/// Return TRUE to cancel other attack hand effects that respect it. Modifiers is the assoc list for click info such as if it was a right click. +/atom/proc/attack_hand(mob/user, modifiers) . = FALSE if(!(interaction_flags_atom & INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND)) add_fingerprint(user) @@ -99,16 +99,16 @@ /* Animals & All Unspecified */ -/mob/living/UnarmedAttack(atom/A) +/mob/living/UnarmedAttack(atom/A, proximity, modifiers) if(HAS_TRAIT(src, TRAIT_HANDS_BLOCKED)) return - A.attack_animal(src) + A.attack_animal(src, modifiers) -/atom/proc/attack_animal(mob/user) +/atom/proc/attack_animal(mob/user, modifiers) SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_ANIMAL, user) ///Attacked by monkey -/atom/proc/attack_paw(mob/user) +/atom/proc/attack_paw(mob/user, modifiers) if(SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_PAW, user) & COMPONENT_CANCEL_ATTACK_CHAIN) return TRUE return FALSE @@ -118,12 +118,12 @@ Aliens Defaults to same as monkey in most places */ -/mob/living/carbon/alien/UnarmedAttack(atom/A) +/mob/living/carbon/alien/UnarmedAttack(atom/A, proximity, modifiers) if(HAS_TRAIT(src, TRAIT_HANDS_BLOCKED)) return - A.attack_alien(src) + A.attack_alien(src, modifiers) -/atom/proc/attack_alien(mob/living/carbon/alien/user) +/atom/proc/attack_alien(mob/living/carbon/alien/user, modifiers) attack_paw(user) return @@ -185,13 +185,13 @@ Simple animals */ -/mob/living/simple_animal/UnarmedAttack(atom/A, proximity) +/mob/living/simple_animal/UnarmedAttack(atom/A, proximity, modifiers) if(HAS_TRAIT(src, TRAIT_HANDS_BLOCKED)) return if(!dextrous) return ..() if(!ismob(A)) - A.attack_hand(src) + A.attack_hand(src, modifiers) update_inv_hands() diff --git a/code/datums/ai/monkey/monkey_behaviors.dm b/code/datums/ai/monkey/monkey_behaviors.dm index 16018f95940..567d7f751e6 100644 --- a/code/datums/ai/monkey/monkey_behaviors.dm +++ b/code/datums/ai/monkey/monkey_behaviors.dm @@ -148,11 +148,9 @@ // if the target has a weapon, chance to disarm them if(W && DT_PROB(MONKEY_ATTACK_DISARM_PROB, delta_time)) - living_pawn.a_intent = INTENT_DISARM - monkey_attack(controller, target, delta_time) + monkey_attack(controller, target, delta_time, TRUE) else - living_pawn.a_intent = INTENT_HARM - monkey_attack(controller, target, delta_time) + monkey_attack(controller, target, delta_time, FALSE) /datum/ai_behavior/monkey_attack_mob/finish_action(datum/ai_controller/controller, succeeded) @@ -162,7 +160,7 @@ controller.blackboard[BB_MONKEY_CURRENT_ATTACK_TARGET] = null /// attack using a held weapon otherwise bite the enemy, then if we are angry there is a chance we might calm down a little -/datum/ai_behavior/monkey_attack_mob/proc/monkey_attack(datum/ai_controller/controller, mob/living/target, delta_time) +/datum/ai_behavior/monkey_attack_mob/proc/monkey_attack(datum/ai_controller/controller, mob/living/target, delta_time, disarm) var/mob/living/living_pawn = controller.pawn @@ -175,11 +173,13 @@ living_pawn.face_atom(target) + living_pawn.set_combat_mode(TRUE) + // attack with weapon if we have one if(weapon) weapon.melee_attack_chain(living_pawn, target) else - living_pawn.UnarmedAttack(target) + living_pawn.UnarmedAttack(target, null, disarm ? list("right" = TRUE) : null) //Fake a right click if we're disarming // no de-aggro if(controller.blackboard[BB_MONKEY_AGRESSIVE]) return @@ -216,7 +216,6 @@ if(target.pulledby != living_pawn && !HAS_AI_CONTROLLER_TYPE(target.pulledby, /datum/ai_controller/monkey)) //Dont steal from my fellow monkeys. if(living_pawn.Adjacent(target) && isturf(target.loc)) - living_pawn.a_intent = INTENT_GRAB target.grabbedby(living_pawn) return //Do the rest next turn diff --git a/code/datums/ai/monkey/monkey_controller.dm b/code/datums/ai/monkey/monkey_controller.dm index 9aab86507e2..833093becc8 100644 --- a/code/datums/ai/monkey/monkey_controller.dm +++ b/code/datums/ai/monkey/monkey_controller.dm @@ -160,16 +160,13 @@ have ways of interacting with a specific mob and control it. /datum/ai_controller/monkey/proc/on_attack_hand(datum/source, mob/living/L) SIGNAL_HANDLER - if(L.a_intent == INTENT_HARM && prob(MONKEY_RETALIATE_HARM_PROB)) - retaliate(L) - else if(L.a_intent == INTENT_DISARM && prob(MONKEY_RETALIATE_DISARM_PROB)) + if(prob(MONKEY_RETALIATE_PROB)) retaliate(L) + /datum/ai_controller/monkey/proc/on_attack_paw(datum/source, mob/living/L) SIGNAL_HANDLER - if(L.a_intent == INTENT_HARM && prob(MONKEY_RETALIATE_HARM_PROB)) - retaliate(L) - else if(L.a_intent == INTENT_DISARM && prob(MONKEY_RETALIATE_DISARM_PROB)) + if(prob(MONKEY_RETALIATE_PROB)) retaliate(L) /datum/ai_controller/monkey/proc/on_bullet_act(datum/source, obj/projectile/Proj) diff --git a/code/datums/brain_damage/special.dm b/code/datums/brain_damage/special.dm index c2c644fba41..7d5c9872442 100644 --- a/code/datums/brain_damage/special.dm +++ b/code/datums/brain_damage/special.dm @@ -17,7 +17,7 @@ speak("unstun", TRUE) else if(prob(60) && owner.health <= owner.crit_threshold) speak("heal", TRUE) - else if(prob(30) && owner.a_intent == INTENT_HARM) + else if(prob(30) && owner.combat_mode) speak("aggressive") else speak("neutral", prob(25)) diff --git a/code/datums/components/bane.dm b/code/datums/components/bane.dm index 4ac2c77525a..15c4939c1a4 100644 --- a/code/datums/components/bane.dm +++ b/code/datums/components/bane.dm @@ -41,8 +41,8 @@ return activate(source, target, user) -/datum/component/bane/proc/activate(obj/item/source, mob/living/target, mob/attacker) - if(attacker.a_intent != INTENT_HARM) +/datum/component/bane/proc/activate(obj/item/source, mob/living/target, mob/living/attacker) + if(!attacker.combat_mode) return var/extra_damage = max(0, source.force * damage_multiplier) diff --git a/code/datums/components/butchering.dm b/code/datums/components/butchering.dm index cddebbab6a1..dc541be6076 100644 --- a/code/datums/components/butchering.dm +++ b/code/datums/components/butchering.dm @@ -31,8 +31,6 @@ /datum/component/butchering/proc/onItemAttack(obj/item/source, mob/living/M, mob/living/user) SIGNAL_HANDLER - if(user.a_intent != INTENT_HARM) - return if(M.stat == DEAD && (M.butcher_results || M.guaranteed_butcher_results)) //can we butcher it? if(butchering_enabled && (can_be_blunt || source.get_sharpness())) INVOKE_ASYNC(src, .proc/startButcher, source, M, user) diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm index 4647ce1b039..35fa2228e99 100644 --- a/code/datums/components/food/edible.dm +++ b/code/datums/components/food/edible.dm @@ -257,7 +257,7 @@ Behavior that's still missing from this component that original food items had t var/atom/owner = parent - if(feeder.a_intent == INTENT_HARM) + if(feeder.combat_mode) return if(IsFoodGone(owner, feeder)) diff --git a/code/datums/components/gunpoint.dm b/code/datums/components/gunpoint.dm index 9ae6f8dceb0..be54793eb8f 100644 --- a/code/datums/components/gunpoint.dm +++ b/code/datums/components/gunpoint.dm @@ -85,10 +85,10 @@ qdel(src) ///If the shooter shoves or grabs the target, cancel the holdup to avoid cheesing and forcing the charged shot -/datum/component/gunpoint/proc/check_shove(mob/living/carbon/shooter, mob/shooter_again, mob/living/T) +/datum/component/gunpoint/proc/check_shove(mob/living/carbon/shooter, mob/shooter_again, mob/living/T, datum/martial_art/attacker_style, modifiers) SIGNAL_HANDLER - if(T != target || shooter.a_intent == INTENT_DISARM || shooter.a_intent == INTENT_GRAB) + if(T != target || (modifiers && modifiers["right"])) return shooter.visible_message("[shooter] bumps into [target] and fumbles [shooter.p_their()] aim!", \ "You bump into [target] and fumble your aim!", ignored_mobs = target) diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index 83ec8d61194..38829b111e8 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -112,7 +112,7 @@ SIGNAL_HANDLER var/list/tc = allowed_item_typecache - if(!(mat_container_flags & MATCONTAINER_ANY_INTENT) && user.a_intent != INTENT_HELP) + if(!(mat_container_flags & MATCONTAINER_ANY_INTENT) && user.combat_mode) return if(I.item_flags & ABSTRACT) return diff --git a/code/datums/components/punchcooldown.dm b/code/datums/components/punchcooldown.dm index dd5ab2fe6c4..386ad61dd57 100644 --- a/code/datums/components/punchcooldown.dm +++ b/code/datums/components/punchcooldown.dm @@ -15,7 +15,7 @@ ///Called on COMSIG_HUMAN_MELEE_UNARMED_ATTACK. Yells the warcry and and reduces punch cooldown. /datum/component/wearertargeting/punchcooldown/proc/reducecooldown(mob/living/carbon/M, atom/target) - if(M.a_intent == INTENT_HARM && isliving(target)) + if(M.combat_mode && isliving(target)) M.changeNext_move(CLICK_CD_RAPID) if(warcry) M.say(warcry, ignore_spam = TRUE, forced = "north star warcry") diff --git a/code/datums/components/riding/riding_mob.dm b/code/datums/components/riding/riding_mob.dm index e6f75c6a58e..861b4cf39e8 100644 --- a/code/datums/components/riding/riding_mob.dm +++ b/code/datums/components/riding/riding_mob.dm @@ -116,7 +116,7 @@ return for(var/mob/yeet_mob in user.buckled_mobs) - force_dismount(yeet_mob, (user.a_intent == INTENT_HELP)) // gentle on help, byeeee if not + force_dismount(yeet_mob, (!user.combat_mode)) // gentle on help, byeeee if not /// If the ridden creature has abilities, and some var yet to be made is set to TRUE, the rider will be able to control those abilities /datum/component/riding/creature/proc/setup_abilities(mob/living/M) @@ -179,10 +179,10 @@ return ..() /// If the carrier shoves the person they're carrying, force the carried mob off -/datum/component/riding/creature/human/proc/on_host_unarmed_melee(mob/living/carbon/human/human_parent, atom/target) +/datum/component/riding/creature/human/proc/on_host_unarmed_melee(mob/living/carbon/human/human_parent, atom/target, proximity, modifiers) SIGNAL_HANDLER - if(human_parent.a_intent == INTENT_DISARM && (target in human_parent.buckled_mobs)) + if(modifiers && modifiers["right"] && (target in human_parent.buckled_mobs)) force_dismount(target) return COMPONENT_CANCEL_ATTACK_CHAIN diff --git a/code/datums/components/storage/food_storage.dm b/code/datums/components/storage/food_storage.dm index 7a1d68cfdb3..ffeb4725459 100644 --- a/code/datums/components/storage/food_storage.dm +++ b/code/datums/components/storage/food_storage.dm @@ -19,7 +19,7 @@ /datum/component/food_storage/Initialize(_minimum_weight_class = WEIGHT_CLASS_SMALL, _bad_chance = 0, _good_chance = 100) RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/try_inserting_item) - RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, .proc/try_removing_item) + RegisterSignal(parent, COMSIG_CLICK_CTRL, .proc/try_removing_item) RegisterSignal(parent, COMSIG_FOOD_EATEN, .proc/consume_food_storage) var/atom/food = parent @@ -44,7 +44,7 @@ * inserted_item - the item being placed into the food * user - the person inserting the item */ -/datum/component/food_storage/proc/try_inserting_item(datum/source, obj/item/inserted_item, mob/user, params) +/datum/component/food_storage/proc/try_inserting_item(datum/source, obj/item/inserted_item, mob/living/user, params) SIGNAL_HANDLER // No matryoshka-ing food storage @@ -52,7 +52,7 @@ return //Harm intent will bypass inserting for injecting food with syringes and such - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return if(inserted_item.w_class > minimum_weight_class) @@ -83,12 +83,14 @@ /datum/component/food_storage/proc/try_removing_item(datum/source, mob/user) SIGNAL_HANDLER - if(user.a_intent != INTENT_GRAB) - return + var/atom/food = parent if(QDELETED(stored_item)) return + if(!food.can_interact(user)) + return + user.visible_message("[user.name] begins tearing at \the [parent].", \ "You start to rip into \the [parent].") diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 26c7296a9a6..dc94928cf6b 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -69,7 +69,7 @@ if(istype(new_mob)) if(bantype && is_banned_from(affected_mob.ckey, bantype)) replace_banned_player(new_mob) - new_mob.a_intent = INTENT_HARM + new_mob.set_combat_mode(TRUE) if(affected_mob.mind) affected_mob.mind.transfer_to(new_mob) else diff --git a/code/datums/keybinding/carbon.dm b/code/datums/keybinding/carbon.dm index abc3734aa1c..97419cf60fb 100644 --- a/code/datums/keybinding/carbon.dm +++ b/code/datums/keybinding/carbon.dm @@ -21,70 +21,6 @@ C.toggle_throw_mode() return TRUE - -/datum/keybinding/carbon/select_help_intent - hotkey_keys = list("1") - name = "select_help_intent" - full_name = "Select help intent" - description = "" - category = CATEGORY_CARBON - keybind_signal = COMSIG_KB_CARBON_SELECTHELPINTENT_DOWN - -/datum/keybinding/carbon/select_help_intent/down(client/user) - . = ..() - if(.) - return - user.mob?.a_intent_change(INTENT_HELP) - return TRUE - - -/datum/keybinding/carbon/select_disarm_intent - hotkey_keys = list("2") - name = "select_disarm_intent" - full_name = "Select disarm intent" - description = "" - category = CATEGORY_CARBON - keybind_signal = COMSIG_KB_CARBON_SELECTDISARMINTENT_DOWN - -/datum/keybinding/carbon/select_disarm_intent/down(client/user) - . = ..() - if(.) - return - user.mob?.a_intent_change(INTENT_DISARM) - return TRUE - - -/datum/keybinding/carbon/select_grab_intent - hotkey_keys = list("3") - name = "select_grab_intent" - full_name = "Select grab intent" - description = "" - category = CATEGORY_CARBON - keybind_signal = COMSIG_KB_CARBON_SELECTGRABINTENT_DOWN - -/datum/keybinding/carbon/select_grab_intent/down(client/user) - . = ..() - if(.) - return - user.mob?.a_intent_change(INTENT_GRAB) - return TRUE - - -/datum/keybinding/carbon/select_harm_intent - hotkey_keys = list("4") - name = "select_harm_intent" - full_name = "Select harm intent" - description = "" - category = CATEGORY_CARBON - keybind_signal = COMSIG_KB_CARBON_SELECTHARMINTENT_DOWN - -/datum/keybinding/carbon/select_harm_intent/down(client/user) - . = ..() - if(.) - return - user.mob?.a_intent_change(INTENT_HARM) - return TRUE - /datum/keybinding/carbon/give hotkey_keys = list("G") name = "Give_Item" diff --git a/code/datums/keybinding/living.dm b/code/datums/keybinding/living.dm index 38e324e9769..9f56cdc9549 100644 --- a/code/datums/keybinding/living.dm +++ b/code/datums/keybinding/living.dm @@ -74,3 +74,18 @@ var/mob/living/living_mob = user.mob living_mob.toggle_resting() return TRUE + +/datum/keybinding/living/toggle_combat_mode + hotkey_keys = list("F", "4") + name = "toggle_combat_mode" + full_name = "Toggle Combat Mode" + description = "Toggles combat mode. Like Help/Harm but cooler." + keybind_signal = COMSIG_KB_LIVING_TOGGLE_COMBAT_DOWN + + +/datum/keybinding/living/toggle_combat_mode/down(client/user) + . = ..() + if(.) + return + var/mob/living/user_mob = user.mob + user_mob.set_combat_mode(!user_mob.combat_mode, FALSE) diff --git a/code/datums/keybinding/mob.dm b/code/datums/keybinding/mob.dm index 47bad1b1681..58dc6aaa0fa 100644 --- a/code/datums/keybinding/mob.dm +++ b/code/datums/keybinding/mob.dm @@ -20,36 +20,6 @@ M.stop_pulling() return TRUE -/datum/keybinding/mob/cycle_intent_right - hotkey_keys = list("Northwest") // HOME - name = "cycle_intent_right" - full_name = "cycle intent right" - description = "" - keybind_signal = COMSIG_KB_MOB_CYCLEINTENTRIGHT_DOWN - -/datum/keybinding/mob/cycle_intent_right/down(client/user) - . = ..() - if(.) - return - var/mob/M = user.mob - M.a_intent_change(INTENT_HOTKEY_RIGHT) - return TRUE - -/datum/keybinding/mob/cycle_intent_left - hotkey_keys = list("Insert") - name = "cycle_intent_left" - full_name = "cycle intent left" - description = "" - keybind_signal = COMSIG_KB_MOB_CYCLEINTENTLEFT_DOWN - -/datum/keybinding/mob/cycle_intent_left/down(client/user) - . = ..() - if(.) - return - var/mob/M = user.mob - M.a_intent_change(INTENT_HOTKEY_LEFT) - return TRUE - /datum/keybinding/mob/swap_hands hotkey_keys = list("X", "Northeast") // PAGEUP name = "swap_hands" diff --git a/code/datums/keybinding/robot.dm b/code/datums/keybinding/robot.dm index 5076a5a1868..2dd5a5806e5 100644 --- a/code/datums/keybinding/robot.dm +++ b/code/datums/keybinding/robot.dm @@ -62,7 +62,7 @@ if(.) return var/mob/living/silicon/robot/R = user.mob - R.a_intent_change(INTENT_HOTKEY_LEFT) + R.set_combat_mode(!R.combat_mode) return TRUE /datum/keybinding/robot/unequip_module diff --git a/code/datums/martial/cqc.dm b/code/datums/martial/cqc.dm index 25d741821f9..19380b4e5b7 100644 --- a/code/datums/martial/cqc.dm +++ b/code/datums/martial/cqc.dm @@ -121,7 +121,7 @@ return TRUE /datum/martial_art/cqc/grab_act(mob/living/A, mob/living/D) - if(A.a_intent == INTENT_GRAB && A!=D && can_use(A)) // A!=D prevents grabbing yourself + if(A!=D && can_use(A)) // A!=D prevents grabbing yourself add_to_streak("G",D) if(check_streak(A,D)) //if a combo is made no grab upgrade is done return TRUE diff --git a/code/datums/martial/psychotic_brawl.dm b/code/datums/martial/psychotic_brawl.dm index b8b4ebcbaef..8ff39fbb968 100644 --- a/code/datums/martial/psychotic_brawl.dm +++ b/code/datums/martial/psychotic_brawl.dm @@ -6,12 +6,12 @@ return psycho_attack(A,D) /datum/martial_art/psychotic_brawling/grab_act(mob/living/A, mob/living/D) - return psycho_attack(A,D) + return psycho_attack(A,D, TRUE) /datum/martial_art/psychotic_brawling/harm_act(mob/living/A, mob/living/D) return psycho_attack(A,D) -/datum/martial_art/psychotic_brawling/proc/psycho_attack(mob/living/A, mob/living/D) +/datum/martial_art/psychotic_brawling/proc/psycho_attack(mob/living/A, mob/living/D, grab_attack) var/atk_verb switch(rand(1,8)) if(1) @@ -31,7 +31,7 @@ if(A.pulling) D.drop_all_held_items() D.stop_pulling() - if(A.a_intent == INTENT_GRAB) + if(grab_attack) log_combat(A, D, "grabbed", addition="aggressively") D.visible_message("[A] violently grabs [D]!", \ "You're violently grabbed by [A]!", "You hear sounds of aggressive fondling!", null, A) diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index 203bef763bf..3d7a2357916 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -192,7 +192,7 @@ /obj/item/staff/bostaff/update_icon_state() icon_state = "bostaff0" -/obj/item/staff/bostaff/attack(mob/target, mob/living/user) +/obj/item/staff/bostaff/attack(mob/target, mob/living/user, params) add_fingerprint(user) if((HAS_TRAIT(user, TRAIT_CLUMSY)) && prob(50)) to_chat(user, "You club yourself over the head with [src].") @@ -211,7 +211,8 @@ if(C.stat) to_chat(user, "It would be dishonorable to attack a foe while they cannot retaliate.") return - if(user.a_intent == INTENT_DISARM) + var/list/modifiers = params2list(params) + if(modifiers && modifiers["right"]) if(!wielded) return ..() if(!ishuman(target)) diff --git a/code/datums/mutations/antenna.dm b/code/datums/mutations/antenna.dm index 894aae70d64..1754772a23d 100644 --- a/code/datums/mutations/antenna.dm +++ b/code/datums/mutations/antenna.dm @@ -90,7 +90,7 @@ to_chat(user, "[recent_speech[spoken_memory]]") if(iscarbon(M)) var/mob/living/carbon/human/H = M - to_chat(user, "You find that their intent is to [H.a_intent]...") + to_chat(user, "You find that their intent is to [H.combat_mode ? "Harm" : "Help"]...") if(H.mind) to_chat(user, "You uncover that [H.p_their()] true identity is [H.mind.name].") else diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index d32df4f0858..33510785dbd 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -32,7 +32,7 @@ if(!proximity) return - if(source.a_intent != INTENT_HARM) + if(!source.combat_mode) return if(target.attack_hulk(owner)) if(world.time > (last_scream + scream_delay)) diff --git a/code/datums/mutations/sight.dm b/code/datums/mutations/sight.dm index c97b1211faf..11fef107de3 100644 --- a/code/datums/mutations/sight.dm +++ b/code/datums/mutations/sight.dm @@ -101,7 +101,7 @@ /datum/mutation/human/laser_eyes/proc/on_ranged_attack(mob/living/carbon/human/source, atom/target, mouseparams) SIGNAL_HANDLER - if(source.a_intent != INTENT_HARM) + if(!source.combat_mode) return to_chat(source, "You shoot with your laser eyes!") source.changeNext_move(CLICK_CD_RANGE) diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 9107becd670..e41b1b3f78d 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -725,8 +725,7 @@ owner.log_message("used [I] due to a Muscle Spasm", LOG_ATTACK) I.attack_self(owner) if(3) - var/prev_intent = owner.a_intent - owner.a_intent = INTENT_HARM + owner.set_combat_mode(TRUE) var/range = 1 if(istype(owner.get_active_held_item(), /obj/item/gun)) //get targets to shoot at @@ -740,14 +739,13 @@ to_chat(owner, "Your arm spasms!") owner.log_message(" attacked someone due to a Muscle Spasm", LOG_ATTACK) //the following attack will log itself owner.ClickOn(pick(targets)) - owner.a_intent = prev_intent + owner.set_combat_mode(FALSE) if(4) - var/prev_intent = owner.a_intent - owner.a_intent = INTENT_HARM + owner.set_combat_mode(TRUE) to_chat(owner, "Your arm spasms!") owner.log_message("attacked [owner.p_them()]self to a Muscle Spasm", LOG_ATTACK) owner.ClickOn(owner) - owner.a_intent = prev_intent + owner.set_combat_mode(FALSE) if(5) if(owner.incapacitated()) return @@ -923,8 +921,8 @@ /datum/status_effect/amok/tick() . = ..() - var/prev_intent = owner.a_intent - owner.a_intent = INTENT_HARM + var/prev_combat_mode = owner.combat_mode + owner.set_combat_mode(TRUE) var/list/mob/living/targets = list() for(var/mob/living/potential_target in oview(owner, 1)) @@ -934,7 +932,7 @@ if(LAZYLEN(targets)) owner.log_message(" attacked someone due to the amok debuff.", LOG_ATTACK) //the following attack will log itself owner.ClickOn(pick(targets)) - owner.a_intent = prev_intent + owner.set_combat_mode(prev_combat_mode) /datum/status_effect/cloudstruck id = "cloudstruck" diff --git a/code/datums/wounds/_wounds.dm b/code/datums/wounds/_wounds.dm index 4a57959c9f2..59a37e2c365 100644 --- a/code/datums/wounds/_wounds.dm +++ b/code/datums/wounds/_wounds.dm @@ -258,9 +258,14 @@ */ /datum/wound/proc/try_treating(obj/item/I, mob/user) // first we weed out if we're not dealing with our wound's bodypart, or if it might be an attack - if(QDELETED(I) || limb.body_zone != user.zone_selected || (I.force && user.a_intent != INTENT_HELP)) + if(!I || limb.body_zone != user.zone_selected) return FALSE + if(isliving(user)) + var/mob/living/tendee = user + if(I.force && tendee.combat_mode) + return FALSE + var/allowed = FALSE // check if we have a valid treatable tool diff --git a/code/datums/wounds/bones.dm b/code/datums/wounds/bones.dm index 889446a666c..68ae4b61ab8 100644 --- a/code/datums/wounds/bones.dm +++ b/code/datums/wounds/bones.dm @@ -96,7 +96,7 @@ /datum/wound/blunt/proc/attack_with_hurt_hand(mob/M, atom/target, proximity) SIGNAL_HANDLER - if(victim.get_active_hand() != limb || victim.a_intent == INTENT_HELP || !ismob(target) || severity <= WOUND_SEVERITY_MODERATE) + if(victim.get_active_hand() != limb || !victim.combat_mode || !ismob(target) || severity <= WOUND_SEVERITY_MODERATE) return // With a severe or critical wound, you have a 15% or 30% chance to proc pain on hit @@ -227,7 +227,7 @@ remove_wound() /datum/wound/blunt/moderate/try_handling(mob/living/carbon/human/user) - if(user.pulling != victim || user.zone_selected != limb.body_zone || user.a_intent == INTENT_GRAB) + if(user.pulling != victim || user.zone_selected != limb.body_zone) return FALSE if(user.grab_state == GRAB_PASSIVE) @@ -237,7 +237,7 @@ if(user.grab_state >= GRAB_AGGRESSIVE) user.visible_message("[user] begins twisting and straining [victim]'s dislocated [limb.name]!", "You begin twisting and straining [victim]'s dislocated [limb.name]...", ignored_mobs=victim) to_chat(victim, "[user] begins twisting and straining your dislocated [limb.name]!") - if(user.a_intent == INTENT_HELP) + if(!user.combat_mode) chiropractice(user) else malpractice(user) diff --git a/code/datums/wounds/slash.dm b/code/datums/wounds/slash.dm index 417653f7090..35fc9995fd4 100644 --- a/code/datums/wounds/slash.dm +++ b/code/datums/wounds/slash.dm @@ -149,7 +149,7 @@ suture(I, user) /datum/wound/slash/try_handling(mob/living/carbon/human/user) - if(user.pulling != victim || user.zone_selected != limb.body_zone || user.a_intent == INTENT_GRAB || !isfelinid(user) || !victim.can_inject(user, TRUE)) + if(user.pulling != victim || user.zone_selected != limb.body_zone || !isfelinid(user) || !victim.can_inject(user, TRUE)) return FALSE if(DOING_INTERACTION_WITH_TARGET(user, victim)) to_chat(user, "You're already interacting with [victim]!") diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm index 70cb4f06596..2f8eaf5c00f 100644 --- a/code/game/machinery/PDApainter.dm +++ b/code/game/machinery/PDApainter.dm @@ -64,9 +64,9 @@ storedpda = null update_icon() -/obj/machinery/pdapainter/attackby(obj/item/O, mob/user, params) +/obj/machinery/pdapainter/attackby(obj/item/O, mob/living/user, params) if(machine_stat & BROKEN) - if(O.tool_behaviour == TOOL_WELDER && user.a_intent != INTENT_HARM) + if(O.tool_behaviour == TOOL_WELDER && !user.combat_mode) if(!O.tool_start_check(user, amount=0)) return user.visible_message("[user] is repairing [src].", \ diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index a2d4d64086a..79dbb6818da 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -421,7 +421,7 @@ //////////////////////////////////////////////////////////////////////////////////////////// /obj/machinery/attack_paw(mob/living/user) - if(user.a_intent != INTENT_HARM) + if(!user.combat_mode) return attack_hand(user) else user.changeNext_move(CLICK_CD_MELEE) diff --git a/code/game/machinery/aug_manipulator.dm b/code/game/machinery/aug_manipulator.dm index 5d5a1787cde..b5907426d70 100644 --- a/code/game/machinery/aug_manipulator.dm +++ b/code/game/machinery/aug_manipulator.dm @@ -52,7 +52,7 @@ storedpart = null update_icon() -/obj/machinery/aug_manipulator/attackby(obj/item/O, mob/user, params) +/obj/machinery/aug_manipulator/attackby(obj/item/O, mob/living/user, params) if(default_unfasten_wrench(user, O)) power_change() return @@ -73,7 +73,7 @@ O.add_fingerprint(user) update_icon() - else if(O.tool_behaviour == TOOL_WELDER && user.a_intent != INTENT_HARM) + else if(O.tool_behaviour == TOOL_WELDER && !user.combat_mode) if(obj_integrity < max_integrity) if(!O.tool_start_check(user, amount=0)) return diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index b9cfadc459a..0de547f6f49 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -85,7 +85,7 @@ var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) materials.retrieve_all() -/obj/machinery/autolathe/attackby(obj/item/O, mob/user, params) +/obj/machinery/autolathe/attackby(obj/item/O, mob/living/user, params) if (busy) to_chat(user, "The autolathe is busy. Please wait for completion of previous operation.") return TRUE @@ -101,7 +101,7 @@ wires.interact(user) return TRUE - if(user.a_intent == INTENT_HARM) //so we can hit the machine + if(user.combat_mode) //so we can hit the machine return ..() if(machine_stat) diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 916fc9ebbcf..274bca5cbd6 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -60,7 +60,7 @@ if(board) . += "button-board" -/obj/machinery/button/attackby(obj/item/W, mob/user, params) +/obj/machinery/button/attackby(obj/item/W, mob/living/user, params) if(W.tool_behaviour == TOOL_SCREWDRIVER) if(panel_open || allowed(user)) default_deconstruction_screwdriver(user, "button-open", "[skin]",W) @@ -101,7 +101,7 @@ update_icon() return - if(user.a_intent != INTENT_HARM && !(W.item_flags & NOBLUDGEON)) + if(!user.combat_mode && !(W.item_flags & NOBLUDGEON)) return attack_hand(user) else return ..() diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index c1738f69cab..5236a75201f 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -3,7 +3,7 @@ icon_state = "0" state = 0 -/obj/structure/frame/computer/attackby(obj/item/P, mob/user, params) +/obj/structure/frame/computer/attackby(obj/item/P, mob/living/user, params) add_fingerprint(user) switch(state) if(0) @@ -154,7 +154,7 @@ qdel(src) return - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return ..() diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 3dab1884d5b..1f235deaa73 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -71,7 +71,7 @@ amt += req_components[path] return amt -/obj/structure/frame/machine/attackby(obj/item/P, mob/user, params) +/obj/structure/frame/machine/attackby(obj/item/P, mob/living/user, params) switch(state) if(1) if(istype(P, /obj/item/circuitboard/machine)) @@ -286,7 +286,7 @@ return TRUE to_chat(user, "You cannot add that to the machine!") return FALSE - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return ..() /obj/structure/frame/machine/deconstruct(disassembled = TRUE) diff --git a/code/game/machinery/defibrillator_mount.dm b/code/game/machinery/defibrillator_mount.dm index c35b13ef9fe..9e5bd244ace 100644 --- a/code/game/machinery/defibrillator_mount.dm +++ b/code/game/machinery/defibrillator_mount.dm @@ -137,7 +137,7 @@ /obj/machinery/defibrillator_mount/wrench_act(mob/living/user, obj/item/wrench/W) if(!wallframe_type) return ..() - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return ..() if(defib) to_chat(user, "The mount can't be deconstructed while a defibrillator unit is loaded!") diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index fe6f0cb6d20..5ca54d26af1 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -25,8 +25,8 @@ /obj/structure/barricade/proc/make_debris() return -/obj/structure/barricade/attackby(obj/item/I, mob/user, params) - if(I.tool_behaviour == TOOL_WELDER && user.a_intent != INTENT_HARM && bar_material == METAL) +/obj/structure/barricade/attackby(obj/item/I, mob/living/user, params) + if(I.tool_behaviour == TOOL_WELDER && !user.combat_mode && bar_material == METAL) if(obj_integrity < max_integrity) if(!I.tool_start_check(user, amount=0)) return diff --git a/code/game/machinery/dish_drive.dm b/code/game/machinery/dish_drive.dm index e6ac2417867..579abcd8c46 100644 --- a/code/game/machinery/dish_drive.dm +++ b/code/game/machinery/dish_drive.dm @@ -49,7 +49,7 @@ flick("synthesizer_beam", src) /obj/machinery/dish_drive/attackby(obj/item/I, mob/living/user, params) - if(is_type_in_list(I, collectable_items) && user.a_intent != INTENT_HARM) + if(is_type_in_list(I, collectable_items) && !user.combat_mode) if(!user.transferItemToLoc(I, src)) return LAZYADD(dish_drive_contents, I) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index e0a34cbedeb..7bef7675e5d 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -986,12 +986,12 @@ return ..() -/obj/machinery/door/airlock/try_to_weld(obj/item/weldingtool/W, mob/user) +/obj/machinery/door/airlock/try_to_weld(obj/item/weldingtool/W, mob/living/user) if(!operating && density) if(seal) to_chat(user, "[src] is blocked by a seal!") return - if(user.a_intent != INTENT_HELP) + if(user.combat_mode) if(!W.tool_start_check(user, amount=0)) return user.visible_message("[user] begins [welded ? "unwelding":"welding"] the airlock.", \ @@ -1263,7 +1263,7 @@ if(!density) //Already open return ..() if(locked || welded || seal) //Extremely generic, as aliens only understand the basics of how airlocks work. - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return ..() to_chat(user, "[src] refuses to budge!") return diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index cac4e2107b9..7f320605b47 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -216,8 +216,8 @@ /obj/machinery/door/proc/try_to_crowbar(obj/item/I, mob/user) return -/obj/machinery/door/attackby(obj/item/I, mob/user, params) - if(user.a_intent != INTENT_HARM && (I.tool_behaviour == TOOL_CROWBAR || istype(I, /obj/item/fireaxe))) +/obj/machinery/door/attackby(obj/item/I, mob/living/user, params) + if(!user.combat_mode && (I.tool_behaviour == TOOL_CROWBAR || istype(I, /obj/item/fireaxe))) var/forced_open = FALSE if(istype(I, /obj/item/crowbar)) var/obj/item/crowbar/C = I @@ -227,7 +227,7 @@ else if(I.tool_behaviour == TOOL_WELDER) try_to_weld(I, user) return TRUE - else if(!(I.item_flags & NOBLUDGEON) && user.a_intent != INTENT_HARM) + else if(!(I.item_flags & NOBLUDGEON) && !user.combat_mode) try_to_activate_door(user) return TRUE return ..() diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 88c14af391c..c57114e3997 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -185,7 +185,7 @@ /obj/machinery/firealarm/attack_robot(mob/user) return attack_hand(user) -/obj/machinery/firealarm/attackby(obj/item/W, mob/user, params) +/obj/machinery/firealarm/attackby(obj/item/W, mob/living/user, params) add_fingerprint(user) if(W.tool_behaviour == TOOL_SCREWDRIVER && buildstage == 2) @@ -197,7 +197,7 @@ if(panel_open) - if(W.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HELP) + if(W.tool_behaviour == TOOL_WELDER && !user.combat_mode) if(obj_integrity < max_integrity) if(!W.tool_start_check(user, amount=0)) return diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm index 16e16be307f..fe6804ea903 100644 --- a/code/game/machinery/limbgrower.dm +++ b/code/game/machinery/limbgrower.dm @@ -61,7 +61,7 @@ reagents.trans_to(G, G.reagents.maximum_volume) ..() -/obj/machinery/limbgrower/attackby(obj/item/O, mob/user, params) +/obj/machinery/limbgrower/attackby(obj/item/O, mob/living/user, params) if (busy) to_chat(user, "The Limb Grower is busy. Please wait for completion of previous operation.") return @@ -73,7 +73,7 @@ if(panel_open && default_deconstruction_crowbar(O)) return - if(user.a_intent == INTENT_HARM) //so we can hit the machine + if(user.combat_mode) //so we can hit the machine return ..() /obj/machinery/limbgrower/Topic(href, href_list) diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 58698466fc6..395361592e1 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -735,7 +735,7 @@ GLOBAL_LIST_EMPTY(allCasters) to_chat(user, "You [anchored ? "un" : ""]secure [name].") new /obj/item/wallframe/newscaster(loc) qdel(src) - else if(I.tool_behaviour == TOOL_WELDER && user.a_intent != INTENT_HARM) + else if(I.tool_behaviour == TOOL_WELDER && !user.combat_mode) if(machine_stat & BROKEN) if(!I.tool_start_check(user, amount=0)) return @@ -778,8 +778,8 @@ GLOBAL_LIST_EMPTY(allCasters) playsound(loc, 'sound/effects/glassbr3.ogg', 100, TRUE) -/obj/machinery/newscaster/attack_paw(mob/user) - if(user.a_intent != INTENT_HARM) +/obj/machinery/newscaster/attack_paw(mob/living/user) + if(!user.combat_mode) to_chat(user, "The newscaster controls are far too complicated for your tiny brain!") else take_damage(5, BRUTE, MELEE) diff --git a/code/game/machinery/porta_turret/portable_turret_cover.dm b/code/game/machinery/porta_turret/portable_turret_cover.dm index 9508f0158db..926de47ca7d 100644 --- a/code/game/machinery/porta_turret/portable_turret_cover.dm +++ b/code/game/machinery/porta_turret/portable_turret_cover.dm @@ -29,8 +29,8 @@ /obj/machinery/porta_turret_cover/attack_robot(mob/user) return ..() || parent_turret.attack_robot(user) -/obj/machinery/porta_turret_cover/attack_hand(mob/user) - return ..() || parent_turret.attack_hand(user) +/obj/machinery/porta_turret_cover/attack_hand(mob/user, modifiers) + return ..() || parent_turret.attack_hand(user, modifiers) /obj/machinery/porta_turret_cover/attack_ghost(mob/user) return ..() || parent_turret.attack_ghost(user) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 75d9481d48b..1143c68287f 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -76,8 +76,8 @@ ///The rune that created the shield itself. Used to delete the rune when the shield is destroyed. var/obj/effect/rune/parent_rune -/obj/structure/emergency_shield/cult/barrier/attack_hand(mob/living/user) - parent_rune.attack_hand(user) +/obj/structure/emergency_shield/cult/barrier/attack_hand(mob/living/user, modifiers) + parent_rune.attack_hand(user, modifiers) /obj/structure/emergency_shield/cult/barrier/attack_animal(mob/living/simple_animal/user) if(iscultist(user)) diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index e8736c9c546..8f4e4df3c42 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -293,7 +293,7 @@ GLOBAL_LIST_INIT(dye_registry, list( if(panel_open) . += "wm_panel" -/obj/machinery/washing_machine/attackby(obj/item/W, mob/user, params) +/obj/machinery/washing_machine/attackby(obj/item/W, mob/living/user, params) if(panel_open && !busy && default_unfasten_wrench(user, W)) return @@ -301,7 +301,7 @@ GLOBAL_LIST_INIT(dye_registry, list( update_icon() return - else if(user.a_intent != INTENT_HARM) + else if(!user.combat_mode) if (!state_open) to_chat(user, "Open the door first!") return TRUE @@ -324,7 +324,7 @@ GLOBAL_LIST_INIT(dye_registry, list( else return ..() -/obj/machinery/washing_machine/attack_hand(mob/user) +/obj/machinery/washing_machine/attack_hand(mob/living/user) . = ..() if(.) return @@ -332,7 +332,7 @@ GLOBAL_LIST_INIT(dye_registry, list( to_chat(user, "[src] is busy!") return - if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) + if(user.pulling && isliving(user.pulling)) var/mob/living/L = user.pulling if(L.buckled || L.has_buckled_mobs()) return diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index d1db20ca797..2beb6327c91 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -342,7 +342,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb add_fingerprint(usr) return ..() -/obj/item/attack_hand(mob/user) +/obj/item/attack_hand(mob/user, modifiers) . = ..() if(.) return @@ -604,7 +604,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "eye_stab", /datum/mood_event/eye_stab) - log_combat(user, M, "attacked", "[src.name]", "(INTENT: [uppertext(user.a_intent)])") + log_combat(user, M, "attacked", "[src.name]", "(Combat mode: [user.combat_mode ? "On" : "Off"])") var/obj/item/organ/eyes/eyes = M.getorganslot(ORGAN_SLOT_EYES) if(!eyes) diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index f6e6104c09e..51259e42c73 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -39,7 +39,7 @@ //ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/cardboard_cutout/attack_hand(mob/living/user) - if(user.a_intent == INTENT_HELP || pushed_over) + if(!user.combat_mode || pushed_over) return ..() user.visible_message("[user] pushes over [src]!", "You push over [src]!") playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 2bc8e485d47..fb429ae3266 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -82,7 +82,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM message_admins("[ADMIN_LOOKUPFLW(user)] set [key_name_admin(M)] on fire with [src] at [AREACOORD(user)]") log_game("[key_name(user)] set [key_name(M)] on fire with [src] at [AREACOORD(user)]") var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) - if(lit && cig && user.a_intent == INTENT_HELP) + if(lit && cig && !user.combat_mode) if(cig.lit) to_chat(user, "[cig] is already lit!") if(M == user) @@ -296,7 +296,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM light("[user] lights [src] with [M]'s burning body. What a cold-blooded badass.") return var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) - if(lit && cig && user.a_intent == INTENT_HELP) + if(lit && cig && !user.combat_mode) if(cig.lit) to_chat(user, "The [cig.name] is already lit!") if(M == user) @@ -734,7 +734,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM message_admins("[ADMIN_LOOKUPFLW(user)] set [key_name_admin(M)] on fire with [src] at [AREACOORD(user)]") log_game("[key_name(user)] set [key_name(M)] on fire with [src] at [AREACOORD(user)]") var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) - if(lit && cig && user.a_intent == INTENT_HELP) + if(lit && cig && !user.combat_mode) if(cig.lit) to_chat(user, "The [cig.name] is already lit!") if(M == user) diff --git a/code/game/objects/items/cosmetics.dm b/code/game/objects/items/cosmetics.dm index 1ce3e4e492f..cabdcdf449c 100644 --- a/code/game/objects/items/cosmetics.dm +++ b/code/game/objects/items/cosmetics.dm @@ -123,7 +123,7 @@ playsound(loc, 'sound/items/welder2.ogg', 20, TRUE) -/obj/item/razor/attack(mob/M, mob/user) +/obj/item/razor/attack(mob/M, mob/living/user) if(ishuman(M)) var/mob/living/carbon/human/H = M var/location = user.zone_selected @@ -131,7 +131,7 @@ to_chat(user, "[H] doesn't have a head!") return if(location == BODY_ZONE_PRECISE_MOUTH) - if(user.a_intent == INTENT_HELP) + if(!user.combat_mode) if(H.gender == MALE) if (H == user) to_chat(user, "You need a mirror to properly style your own facial hair!") @@ -178,7 +178,7 @@ shave(H, location) else if(location == BODY_ZONE_HEAD) - if(user.a_intent == INTENT_HELP) + if(!user.combat_mode) if (H == user) to_chat(user, "You need a mirror to properly style your own hair!") return diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 213a3e04e69..38ab2ef8a83 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -410,7 +410,7 @@ forceMove(defib) defib.update_power() -/obj/item/shockpaddles/attack(mob/M, mob/user) +/obj/item/shockpaddles/attack(mob/M, mob/living/user, params) if(busy) return if(req_defib && !defib.powered) @@ -430,7 +430,8 @@ to_chat(user, "[src] are recharging!") return - if(user.a_intent == INTENT_DISARM) + var/list/modifiers = params2list(params) + if(modifiers && modifiers["right"]) do_disarm(M, user) return @@ -446,7 +447,7 @@ to_chat(user, "You need to target your patient's chest with [src]!") return - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) do_harm(H, user) return diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm index 0679ff2b5f4..d9358847d4b 100644 --- a/code/game/objects/items/devices/geiger_counter.dm +++ b/code/game/objects/items/devices/geiger_counter.dm @@ -123,9 +123,9 @@ update_icon() to_chat(user, "[icon2html(src, user)] You switch [scanning ? "on" : "off"] [src].") -/obj/item/geiger_counter/afterattack(atom/target, mob/user) +/obj/item/geiger_counter/afterattack(atom/target, mob/living/user, params) . = ..() - if(user.a_intent == INTENT_HELP) + if(!user.combat_mode) if(!(obj_flags & EMAGGED)) user.visible_message("[user] scans [target] with [src].", "You scan [target]'s radiation levels with [src]...") addtimer(CALLBACK(src, .proc/scan, target, user), 20, TIMER_UNIQUE) // Let's not have spamming GetAllContents diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 3f80d8ce224..3e4ab5466ed 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -276,7 +276,7 @@ effective or pretty fucking useless. new /obj/item/wirecutters(src) /obj/item/storage/toolbox/emergency/turret/attackby(obj/item/I, mob/living/user, params) - if(I.tool_behaviour == TOOL_WRENCH && user.a_intent == INTENT_HARM) + if(I.tool_behaviour == TOOL_WRENCH && user.combat_mode) user.visible_message("[user] bashes [src] with [I]!", \ "You bash [src] with [I]!", null, COMBAT_MESSAGE_RANGE) playsound(src, "sound/items/drill_use.ogg", 80, TRUE, -1) diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index 5cc08d51e0c..71444e0ea2b 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -89,8 +89,8 @@ to_chat(user, "The safety is [safety ? "on" : "off"].") return -/obj/item/extinguisher/attack(mob/M, mob/user) - if(user.a_intent == INTENT_HELP && !safety) //If we're on help intent and going to spray people, don't bash them. +/obj/item/extinguisher/attack(mob/M, mob/living/user) + if(!user.combat_mode && !safety) //If we're on help intent and going to spray people, don't bash them. return FALSE else return ..() diff --git a/code/game/objects/items/food/pastries.dm b/code/game/objects/items/food/pastries.dm index 844bf5eb124..45a28642c37 100644 --- a/code/game/objects/items/food/pastries.dm +++ b/code/game/objects/items/food/pastries.dm @@ -833,11 +833,11 @@ add_overlay(pancake_visual) update_icon() -/obj/item/food/pancakes/attack(mob/M, mob/user, def_zone, stacked = TRUE) - if(user.a_intent == INTENT_HARM || !contents.len || !stacked) +/obj/item/food/pancakes/attack(mob/M, mob/living/user, params, stacked = TRUE) + if(user.combat_mode || !contents.len || !stacked) return ..() var/obj/item/O = contents[contents.len] - . = O.attack(M, user, def_zone, FALSE) + . = O.attack(M, user, params, FALSE) update_icon() #undef PANCAKE_MAX_STACK diff --git a/code/game/objects/items/inducer.dm b/code/game/objects/items/inducer.dm index 3b67ce325ff..f5928a3ef61 100644 --- a/code/game/objects/items/inducer.dm +++ b/code/game/objects/items/inducer.dm @@ -34,7 +34,7 @@ cell.emp_act(severity) /obj/item/inducer/attack_obj(obj/O, mob/living/carbon/user) - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return ..() if(cantbeused(user)) @@ -135,8 +135,8 @@ recharging = FALSE -/obj/item/inducer/attack(mob/M, mob/user) - if(user.a_intent == INTENT_HARM) +/obj/item/inducer/attack(mob/M, mob/living/user) + if(user.combat_mode) return ..() if(cantbeused(user)) diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 7f46f525433..a90379987ae 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -244,7 +244,7 @@ /obj/item/melee/classic_baton/proc/additional_effects_silicon(mob/living/target, mob/living/user) return -/obj/item/melee/classic_baton/attack(mob/living/target, mob/living/user) +/obj/item/melee/classic_baton/attack(mob/living/target, mob/living/user, params) if(!on) return ..() @@ -264,7 +264,7 @@ return if(iscyborg(target)) // We don't stun if we're on harm. - if (user.a_intent != INTENT_HARM) + if (!user.combat_mode) if (affect_silicon) var/list/desc = get_silicon_stun_description(target, user) @@ -284,44 +284,45 @@ return if(!isliving(target)) return - if (user.a_intent == INTENT_HARM) - if(!..()) + var/list/modifiers = params2list(params) + + if(modifiers && modifiers["right"]) + ..() + return + if(cooldown_check > world.time) + var/wait_desc = get_wait_description() + if (wait_desc) + to_chat(user, wait_desc) + return + if(ishuman(target)) + var/mob/living/carbon/human/H = target + if (H.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK)) return - if(!iscyborg(target)) + if(check_martial_counter(H, user)) return + + var/list/desc = get_stun_description(target, user) + + if (stun_animation) + user.do_attack_animation(target) + + playsound(get_turf(src), on_stun_sound, 75, TRUE, -1) + target.Knockdown(knockdown_time_carbon) + target.apply_damage(stamina_damage, STAMINA, BODY_ZONE_CHEST) + additional_effects_carbon(target, user) + + log_combat(user, target, "stunned", src) + add_fingerprint(user) + + target.visible_message(desc["visible"], desc["local"]) + + if(!iscarbon(user)) + target.LAssailant = null else - if(cooldown_check <= world.time) - if(ishuman(target)) - var/mob/living/carbon/human/H = target - if (H.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK)) - return - if(check_martial_counter(H, user)) - return + target.LAssailant = user + cooldown_check = world.time + cooldown + return - var/list/desc = get_stun_description(target, user) - - if (stun_animation) - user.do_attack_animation(target) - - playsound(get_turf(src), on_stun_sound, 75, TRUE, -1) - target.Knockdown(knockdown_time_carbon) - target.apply_damage(stamina_damage, STAMINA, BODY_ZONE_CHEST) - additional_effects_carbon(target, user) - - log_combat(user, target, "stunned", src) - add_fingerprint(user) - - target.visible_message(desc["visible"], desc["local"]) - - if(!iscarbon(user)) - target.LAssailant = null - else - target.LAssailant = user - cooldown_check = world.time + cooldown - else - var/wait_desc = get_wait_description() - if (wait_desc) - to_chat(user, wait_desc) /obj/item/conversion_kit name = "conversion kit" diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index 347fbb97c5e..71d9f806ce5 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -82,7 +82,7 @@ update_icon() /obj/item/pet_carrier/attack(mob/living/target, mob/living/user) - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return ..() if(!open) to_chat(user, "You need to open [src]'s door!") diff --git a/code/game/objects/items/pneumaticCannon.dm b/code/game/objects/items/pneumaticCannon.dm index 2f05b4519db..77afe486d27 100644 --- a/code/game/objects/items/pneumaticCannon.dm +++ b/code/game/objects/items/pneumaticCannon.dm @@ -70,8 +70,8 @@ out += "[icon2html(tank, user)] It has \a [tank] mounted onto it." . += out.Join("\n") -/obj/item/pneumatic_cannon/attackby(obj/item/W, mob/user, params) - if(user.a_intent == INTENT_HARM) +/obj/item/pneumatic_cannon/attackby(obj/item/W, mob/living/user, params) + if(user.combat_mode) return ..() if(istype(W, /obj/item/tank/internals)) if(!tank) @@ -135,7 +135,7 @@ /obj/item/pneumatic_cannon/afterattack(atom/target, mob/living/user, flag, params) . = ..() - if(flag && user.a_intent == INTENT_HARM) //melee attack + if(flag && user.combat_mode)//melee attack return if(!istype(user)) return diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 351007f9c97..b384adaf4f8 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -30,7 +30,7 @@ playsound(loc, 'sound/weapons/egloves.ogg', 50, TRUE, -1) - log_combat(user, M, "stunned", src, "(INTENT: [uppertext(user.a_intent)])") + log_combat(user, M, "stunned", src, "(Combat mode: [user.combat_mode ? "On" : "Off"])") /obj/item/borg/cyborghug name = "hugging module" @@ -64,14 +64,15 @@ if(3) to_chat(user, "ERROR: ARM ACTUATORS OVERLOADED.") -/obj/item/borg/cyborghug/attack(mob/living/M, mob/living/silicon/robot/user) +/obj/item/borg/cyborghug/attack(mob/living/M, mob/living/silicon/robot/user, params) if(M == user) return switch(mode) if(0) if(M.health >= 0) if(isanimal(M)) - M.attack_hand(user) //This enables borgs to get the floating heart icon and mob emote from simple_animal's that have petbonus == true. + var/list/modifiers = params2list(params) + M.attack_hand(user, modifiers) //This enables borgs to get the floating heart icon and mob emote from simple_animal's that have petbonus == true. return if(user.zone_selected == BODY_ZONE_HEAD) user.visible_message("[user] playfully boops [M] on the head!", \ @@ -910,7 +911,7 @@ . += arm /obj/item/borg/apparatus/beaker/attack_self(mob/living/silicon/robot/user) - if(stored && !user.client?.keys_held["Alt"] && user.a_intent != "help") + if(stored && !user.client?.keys_held["Alt"] && user.combat_mode) var/obj/item/reagent_containers/C = stored C.SplashReagents(get_turf(user)) loc.visible_message("[user] spills the contents of the [C] all over the floor.") diff --git a/code/game/objects/items/singularityhammer.dm b/code/game/objects/items/singularityhammer.dm index 07e0fec1ac1..09b3a436880 100644 --- a/code/game/objects/items/singularityhammer.dm +++ b/code/game/objects/items/singularityhammer.dm @@ -68,7 +68,7 @@ step_towards(H,pull) step_towards(H,pull) -/obj/item/singularityhammer/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity) +/obj/item/singularityhammer/afterattack(atom/A as mob|obj|turf|area, mob/living/user, proximity) . = ..() if(!proximity) return diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index a021146bf14..ba157f1bf6f 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -294,7 +294,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning", desc += "The name [ownername] is written in blood inside the cover." /obj/item/storage/book/bible/syndicate/attack(mob/living/M, mob/living/carbon/human/user, heal_mode = TRUE) - if (user.a_intent == INTENT_HELP) + if (!user.combat_mode) return ..() else return ..(M,user,heal_mode = FALSE) diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 28af846a784..018142bb62c 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -1,6 +1,6 @@ /obj/item/melee/baton name = "stun baton" - desc = "A stun baton for incapacitating people with." + desc = "A stun baton for incapacitating people with. Left click to harm, right click to stun." icon_state = "stunbaton" inhand_icon_state = "baton" @@ -179,7 +179,7 @@ return TRUE return FALSE -/obj/item/melee/baton/attack(mob/M, mob/living/carbon/human/user) +/obj/item/melee/baton/attack(mob/M, mob/living/carbon/human/user, params) if(clumsy_check(user)) return FALSE @@ -193,23 +193,25 @@ if(check_martial_counter(L, user)) return - if(user.a_intent != INTENT_HARM) - if(turned_on) - if(attack_cooldown_check <= world.time) - if(baton_effect(M, user)) - user.do_attack_animation(M) - return - else - to_chat(user, "The baton is still charging!") - else - M.visible_message("[user] prods [M] with [src]. Luckily it was off.", \ - "[user] prods you with [src]. Luckily it was off.") - else + var/list/modifiers = params2list(params) + if(modifiers && modifiers["right"]) if(turned_on) if(attack_cooldown_check <= world.time) baton_effect(M, user) ..() - + return + else if(turned_on) + if(attack_cooldown_check <= world.time) + if(baton_effect(M, user)) + user.do_attack_animation(M) + return + else + to_chat(user, "The baton is still charging!") + return + else + M.visible_message("[user] prods [M] with [src]. Luckily it was off.", \ + "[user] prods you with [src]. Luckily it was off.") + return /obj/item/melee/baton/proc/baton_effect(mob/living/L, mob/user) if(shields_blocked(L, user)) @@ -277,7 +279,7 @@ //Makeshift stun baton. Replacement for stun gloves. /obj/item/melee/baton/cattleprod name = "stunprod" - desc = "An improvised stun baton." + desc = "An improvised stun baton. Left click to harm, right click to stun." icon_state = "stunprod" inhand_icon_state = "prod" worn_icon_state = null diff --git a/code/game/objects/items/tail_pin.dm b/code/game/objects/items/tail_pin.dm index 5e00e4d1df1..4e8729c5da2 100644 --- a/code/game/objects/items/tail_pin.dm +++ b/code/game/objects/items/tail_pin.dm @@ -31,7 +31,7 @@ . = ..() if(!istype(I,/obj/item/tail_pin)) return - if(!(user.a_intent != INTENT_HARM && !(I.item_flags & ABSTRACT))) //We're using the same trick that tables use for placing objects x and y onto the click location. + if(!(I.item_flags & ABSTRACT)) //We're using the same trick that tables use for placing objects x and y onto the click location. return if(!user.transferItemToLoc(I, drop_location(), silent = FALSE)) return diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index 8edfca40aa5..f24ef46f4f6 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -113,13 +113,13 @@ dyn_explosion(T, plasmaAmount/5)//20 plasma in a standard welder has a 4 power explosion. no breaches, but enough to kill/dismember holder qdel(src) -/obj/item/weldingtool/attack(mob/living/carbon/human/H, mob/user) +/obj/item/weldingtool/attack(mob/living/carbon/human/H, mob/living/user) if(!istype(H)) return ..() var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected)) - if(affecting && affecting.status == BODYPART_ROBOTIC && user.a_intent != INTENT_HARM) + if(affecting && affecting.status == BODYPART_ROBOTIC && !user.combat_mode) if(src.use_tool(H, user, 0, volume=50, amount=1)) if(user == H) user.visible_message("[user] starts to fix some of the dents on [H]'s [affecting.name].", diff --git a/code/game/objects/items/toy_mechs.dm b/code/game/objects/items/toy_mechs.dm index bf28081ba07..c9c89276ee5 100644 --- a/code/game/objects/items/toy_mechs.dm +++ b/code/game/objects/items/toy_mechs.dm @@ -156,7 +156,7 @@ if(target == user) to_chat(user, "Target another toy mech if you want to start a battle with yourself.") return - else if(user.a_intent != INTENT_HARM) + else if(!user.combat_mode) if(wants_to_battle) //prevent spamming someone with offers to_chat(user, "You already are offering battle to someone!") return diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index d4c341ebc7c..3dcf6d30e7e 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -23,13 +23,13 @@ oranges says: This is a meme relating to the english translation of the ss13 rus mrdoombringer sez: and remember kids, if you try and PR a fix for this item's grammar, you are admitting that you are, indeed, a newfriend. for further reading, please see: https://github.com/tgstation/tgstation/pull/30173 and https://translate.google.com/translate?sl=auto&tl=en&js=y&prev=_t&hl=en&ie=UTF-8&u=%2F%2Flurkmore.to%2FSS13&edit-text=&act=url */ -/obj/item/banhammer/attack(mob/M, mob/user) +/obj/item/banhammer/attack(mob/M, mob/living/user) if(user.zone_selected == BODY_ZONE_HEAD) M.visible_message("[user] are stroking the head of [M] with a bangammer.", "[user] are stroking your head with a bangammer.", "You hear a bangammer stroking a head.") // see above comment else M.visible_message("[M] has been banned FOR NO REISIN by [user]!", "You have been banned FOR NO REISIN by [user]!", "You hear a banhammer banning someone.") playsound(loc, 'sound/effects/adminhelp.ogg', 15) //keep it at 15% volume so people don't jump out of their skin too much - if(user.a_intent != INTENT_HELP) + if(user.combat_mode) return ..(M, user) /obj/item/sord @@ -961,12 +961,13 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 name = "\improper ACME Extendo-Hand" desc = "A novelty extendo-hand produced by the ACME corporation. Originally designed to knock out roadrunners." -/obj/item/extendohand/attack(atom/M, mob/living/carbon/human/user) +/obj/item/extendohand/attack(atom/M, mob/living/carbon/human/user, params) var/dist = get_dist(M, user) if(dist < min_reach) to_chat(user, "[M] is too close to use [src] on.") return - M.attack_hand(user) + var/list/modifiers = params2list(params) + M.attack_hand(user, modifiers) /obj/item/gohei name = "gohei" diff --git a/code/game/objects/structures/artstuff.dm b/code/game/objects/structures/artstuff.dm index 5c83faa8b46..4cb788a3b58 100644 --- a/code/game/objects/structures/artstuff.dm +++ b/code/game/objects/structures/artstuff.dm @@ -88,7 +88,7 @@ ui.open() /obj/item/canvas/attackby(obj/item/I, mob/living/user, params) - if(user.a_intent == INTENT_HELP) + if(!user.combat_mode) ui_interact(user) else return ..() diff --git a/code/game/objects/structures/beds_chairs/alien_nest.dm b/code/game/objects/structures/beds_chairs/alien_nest.dm index 350804546ed..ea18039b346 100644 --- a/code/game/objects/structures/beds_chairs/alien_nest.dm +++ b/code/game/objects/structures/beds_chairs/alien_nest.dm @@ -84,7 +84,7 @@ playsound(loc, 'sound/items/welder.ogg', 100, TRUE) /obj/structure/bed/nest/attack_alien(mob/living/carbon/alien/user) - if(user.a_intent != INTENT_HARM) + if(!user.combat_mode) return attack_hand(user) else return ..() diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index df26a03e182..384795735b4 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -256,7 +256,7 @@ else return ..() -/obj/structure/closet/proc/tool_interact(obj/item/W, mob/user)//returns TRUE if attackBy call shouldn't be continued (because tool was used/closet was of wrong type), FALSE if otherwise +/obj/structure/closet/proc/tool_interact(obj/item/W, mob/living/user)//returns TRUE if attackBy call shouldn't be continued (because tool was used/closet was of wrong type), FALSE if otherwise . = TRUE if(opened) if(istype(W, cutting_tool)) @@ -303,7 +303,7 @@ user.visible_message("[user] [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground.", \ "You [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground.", \ "You hear a ratchet.") - else if(user.a_intent != INTENT_HARM) + else if(!user.combat_mode) var/item_is_id = W.GetID() if(!item_is_id) return FALSE diff --git a/code/game/objects/structures/crates_lockers/crates/large.dm b/code/game/objects/structures/crates_lockers/crates/large.dm index 655c42a0826..8ec3ef4c94d 100644 --- a/code/game/objects/structures/crates_lockers/crates/large.dm +++ b/code/game/objects/structures/crates_lockers/crates/large.dm @@ -22,7 +22,7 @@ else to_chat(user, "You need a crowbar to pry this open!") -/obj/structure/closet/crate/large/attackby(obj/item/W, mob/user, params) +/obj/structure/closet/crate/large/attackby(obj/item/W, mob/living/user, params) if(W.tool_behaviour == TOOL_CROWBAR) if(manifest) tear_manifest(user) @@ -41,7 +41,7 @@ qdel(src) else - if(user.a_intent == INTENT_HARM) //Only return ..() if intent is harm, otherwise return 0 or just end it. + if(user.combat_mode) //Only return ..() if intent is harm, otherwise return 0 or just end it. return ..() //Stops it from opening and turning invisible when items are used on it. else diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index 9fde572f584..198b3bd3ef9 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -113,14 +113,14 @@ else if(!open) . += "[initial(icon_state)]_closed" -/obj/structure/displaycase/attackby(obj/item/W, mob/user, params) +/obj/structure/displaycase/attackby(obj/item/W, mob/living/user, params) if(W.GetID() && !broken && openable) if(allowed(user)) to_chat(user, "You [open ? "close":"open"] [src].") toggle_lock(user) else to_chat(user, "Access denied.") - else if(W.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HELP && !broken) + else if(W.tool_behaviour == TOOL_WELDER && !user.combat_mode && !broken) if(obj_integrity < max_integrity) if(!W.tool_start_check(user, amount=5)) return @@ -177,7 +177,7 @@ /obj/structure/displaycase/attack_paw(mob/user) return attack_hand(user) -/obj/structure/displaycase/attack_hand(mob/user) +/obj/structure/displaycase/attack_hand(mob/living/user) . = ..() if(.) return @@ -192,7 +192,7 @@ //prevents remote "kicks" with TK if (!Adjacent(user)) return - if (user.a_intent == INTENT_HELP) + if (!user.combat_mode) if(!user.is_blind()) user.examinate(src) return @@ -293,11 +293,11 @@ GLOB.trophy_cases -= src return ..() -/obj/structure/displaycase/trophy/attackby(obj/item/W, mob/user, params) +/obj/structure/displaycase/trophy/attackby(obj/item/W, mob/living/user, params) if(!user.Adjacent(src)) //no TK museology return - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return ..() if(user.is_holding_item_of_type(/obj/item/key/displaycase)) @@ -539,7 +539,7 @@ /obj/structure/displaycase/forsale/wrench_act(mob/living/user, obj/item/I) . = ..() - if(open && user.a_intent == INTENT_HELP ) + if(open && !user.combat_mode) if(anchored) to_chat(user, "You start unsecuring [src]...") else @@ -553,7 +553,7 @@ to_chat(user, "You secure [src].") set_anchored(!anchored) return - else if(!open && user.a_intent == INTENT_HELP) + else if(!open && !user.combat_mode) to_chat(user, "[src] must be open to move it.") return diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm index 05d9f292556..5fd75a6e75a 100644 --- a/code/game/objects/structures/extinguisher.dm +++ b/code/game/objects/structures/extinguisher.dm @@ -46,7 +46,7 @@ stored_extinguisher = null update_icon() -/obj/structure/extinguisher_cabinet/attackby(obj/item/I, mob/user, params) +/obj/structure/extinguisher_cabinet/attackby(obj/item/I, mob/living/user, params) if(I.tool_behaviour == TOOL_WRENCH && !stored_extinguisher) to_chat(user, "You start unsecuring [name]...") I.play_tool_sound(src) @@ -68,7 +68,7 @@ return TRUE else toggle_cabinet(user) - else if(user.a_intent != INTENT_HARM) + else if(!user.combat_mode) toggle_cabinet(user) else return ..() diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm index dbe6be222f2..afee2a03d32 100644 --- a/code/game/objects/structures/fireaxe.dm +++ b/code/game/objects/structures/fireaxe.dm @@ -22,10 +22,10 @@ QDEL_NULL(fireaxe) return ..() -/obj/structure/fireaxecabinet/attackby(obj/item/I, mob/user, params) +/obj/structure/fireaxecabinet/attackby(obj/item/I, mob/living/user, params) if(iscyborg(user) || I.tool_behaviour == TOOL_MULTITOOL) toggle_lock(user) - else if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HELP && !broken) + else if(I.tool_behaviour == TOOL_WELDER && !user.combat_mode && !broken) if(obj_integrity < max_integrity) if(!I.tool_start_check(user, amount=2)) return diff --git a/code/game/objects/structures/guillotine.dm b/code/game/objects/structures/guillotine.dm index 4e4c8a6d6a9..1b4e739f56c 100644 --- a/code/game/objects/structures/guillotine.dm +++ b/code/game/objects/structures/guillotine.dm @@ -66,7 +66,7 @@ if (LAZYLEN(buckled_mobs)) . += "Someone appears to be strapped in. You can help them out, or you can harm them by activating the guillotine." -/obj/structure/guillotine/attack_hand(mob/user) +/obj/structure/guillotine/attack_hand(mob/living/user) add_fingerprint(user) // Currently being used by something @@ -83,7 +83,7 @@ return if (GUILLOTINE_BLADE_RAISED) if (LAZYLEN(buckled_mobs)) - if (user.a_intent == INTENT_HARM) + if (user.combat_mode) user.visible_message("[user] begins to pull the lever!", "You begin to the pull the lever.") current_action = GUILLOTINE_ACTION_INUSE diff --git a/code/game/objects/structures/guncase.dm b/code/game/objects/structures/guncase.dm index 32bead1b45f..7140288b7cf 100644 --- a/code/game/objects/structures/guncase.dm +++ b/code/game/objects/structures/guncase.dm @@ -34,7 +34,7 @@ else . += "[icon_state]_door" -/obj/structure/guncase/attackby(obj/item/I, mob/user, params) +/obj/structure/guncase/attackby(obj/item/I, mob/living/user, params) if(iscyborg(user) || isalien(user)) return if(istype(I, gun_category) && open) @@ -47,7 +47,7 @@ to_chat(user, "[src] is full.") return - else if(user.a_intent != INTENT_HARM) + else if(!user.combat_mode) open = !open update_icon() else diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index 1df2573c83d..e5f264057e9 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -162,7 +162,7 @@ return TRUE /obj/structure/holosign/barrier/medical/attack_hand(mob/living/user) - if(CanPass(user) && user.a_intent == INTENT_HELP) + if(CanPass(user) && !user.combat_mode) force_allaccess = !force_allaccess to_chat(user, "You [force_allaccess ? "deactivate" : "activate"] the biometric scanners.") //warning spans because you can make the station sick! else diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm index 074c2acf214..bf348b1d260 100644 --- a/code/game/objects/structures/kitchen_spike.dm +++ b/code/game/objects/structures/kitchen_spike.dm @@ -61,8 +61,8 @@ return TRUE //ATTACK HAND IGNORING PARENT RETURN VALUE -/obj/structure/kitchenspike/attack_hand(mob/user) - if(VIABLE_MOB_CHECK(user.pulling) && user.a_intent == INTENT_GRAB && !has_buckled_mobs()) +/obj/structure/kitchenspike/attack_hand(mob/living/user) + if(VIABLE_MOB_CHECK(user.pulling) && user.combat_mode && !has_buckled_mobs()) var/mob/living/L = user.pulling if(do_mob(user, src, 120)) if(has_buckled_mobs()) //to prevent spam/queing up attacks diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index 70112a8f40c..c4db8c84820 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -127,10 +127,10 @@ /obj/structure/mineral_door/update_icon_state() icon_state = "[initial(icon_state)][door_opened ? "open":""]" -/obj/structure/mineral_door/attackby(obj/item/I, mob/user) +/obj/structure/mineral_door/attackby(obj/item/I, mob/living/user) if(pickaxe_door(user, I)) return - else if(user.a_intent != INTENT_HARM) + else if(!user.combat_mode) return attack_hand(user) else return ..() @@ -341,7 +341,7 @@ fire_act(I.get_temperature()) return - if((user.a_intent != INTENT_HARM) && istype(I, /obj/item/paper) && (obj_integrity < max_integrity)) + if((!user.combat_mode) && istype(I, /obj/item/paper) && (obj_integrity < max_integrity)) user.visible_message("[user] starts to patch the holes in [src].", "You start patching some of the holes in [src]!") if(do_after(user, 2 SECONDS, src)) obj_integrity = min(obj_integrity+4,max_integrity) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 44d9c28ec14..efb88a8664e 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -70,7 +70,7 @@ /obj/structure/mirror/welder_act(mob/living/user, obj/item/I) ..() - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return FALSE if(!broken) diff --git a/code/game/objects/structures/plaques/_plaques.dm b/code/game/objects/structures/plaques/_plaques.dm index 272b729ae85..4850057b2df 100644 --- a/code/game/objects/structures/plaques/_plaques.dm +++ b/code/game/objects/structures/plaques/_plaques.dm @@ -60,7 +60,7 @@ /obj/structure/plaque/welder_act(mob/living/user, obj/item/I) . = ..() - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return FALSE if(obj_integrity == max_integrity) to_chat(user, "This plaque is already in perfect condition.") @@ -78,7 +78,7 @@ /obj/item/plaque/welder_act(mob/living/user, obj/item/I) . = ..() - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return FALSE if(obj_integrity == max_integrity) to_chat(user, "This plaque is already in perfect condition.") diff --git a/code/game/objects/structures/railings.dm b/code/game/objects/structures/railings.dm index b67e5f07a2c..ee4384e5fac 100644 --- a/code/game/objects/structures/railings.dm +++ b/code/game/objects/structures/railings.dm @@ -30,7 +30,7 @@ ..() add_fingerprint(user) - if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HELP) + if(I.tool_behaviour == TOOL_WELDER && !user.combat_mode) if(obj_integrity < max_integrity) if(!I.tool_start_check(user, amount=0)) return diff --git a/code/game/objects/structures/signs/_signs.dm b/code/game/objects/structures/signs/_signs.dm index 8b2cd278641..bbc2fb33d89 100644 --- a/code/game/objects/structures/signs/_signs.dm +++ b/code/game/objects/structures/signs/_signs.dm @@ -93,7 +93,7 @@ /obj/structure/sign/welder_act(mob/living/user, obj/item/I) . = ..() - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return FALSE if(obj_integrity == max_integrity) to_chat(user, "This sign is already in perfect condition.") @@ -111,7 +111,7 @@ /obj/item/sign/welder_act(mob/living/user, obj/item/I) . = ..() - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return FALSE if(obj_integrity == max_integrity) to_chat(user, "This sign is already in perfect condition.") diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 34358041ad4..d48182f184e 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -69,15 +69,16 @@ if(pushed_mob.buckled) to_chat(user, "[pushed_mob] is buckled to [pushed_mob.buckled]!") return - if(user.a_intent == INTENT_GRAB) - if(user.grab_state < GRAB_AGGRESSIVE) - to_chat(user, "You need a better grip to do that!") - return - if(user.grab_state >= GRAB_NECK) - tablelimbsmash(user, pushed_mob) - else - tablepush(user, pushed_mob) - if(user.a_intent == INTENT_HELP) + if(user.combat_mode) + switch(user.grab_state) + if(GRAB_PASSIVE) + to_chat(user, "You need a better grip to do that!") + return + if(GRAB_AGGRESSIVE) + tablepush(user, pushed_mob) + if(GRAB_NECK to GRAB_KILL) + tablelimbsmash(user, pushed_mob) + else pushed_mob.visible_message("[user] begins to place [pushed_mob] onto [src]...", \ "[user] begins to place [pushed_mob] onto [src]...") if(do_after(user, 35, target = pushed_mob)) @@ -161,8 +162,9 @@ log_combat(user, pushed_mob, "head slammed", null, "against [src]") SEND_SIGNAL(pushed_mob, COMSIG_ADD_MOOD_EVENT, "table", /datum/mood_event/table_limbsmash, banged_limb) -/obj/structure/table/attackby(obj/item/I, mob/user, params) - if(!(flags_1 & NODECONSTRUCT_1) && user.a_intent != INTENT_HELP) +/obj/structure/table/attackby(obj/item/I, mob/living/user, params) + var/list/modifiers = params2list(params) + if(!(flags_1 & NODECONSTRUCT_1) && modifiers && modifiers["right"]) if(I.tool_behaviour == TOOL_SCREWDRIVER && deconstruction_ready) to_chat(user, "You start disassembling [src]...") if(I.use_tool(src, user, 20, volume=50)) @@ -192,30 +194,26 @@ var/mob/living/carried_mob = riding_item.rider if(carried_mob == user) //Piggyback user. return - switch(user.a_intent) - if(INTENT_HARM) - user.unbuckle_mob(carried_mob) - tablelimbsmash(user, carried_mob) - if(INTENT_HELP) - var/tableplace_delay = 3.5 SECONDS - var/skills_space = "" - if(HAS_TRAIT(user, TRAIT_QUICKER_CARRY)) - tableplace_delay = 2 SECONDS - skills_space = " expertly" - else if(HAS_TRAIT(user, TRAIT_QUICK_CARRY)) - tableplace_delay = 2.75 SECONDS - skills_space = " quickly" - carried_mob.visible_message("[user] begins to[skills_space] place [carried_mob] onto [src]...", - "[user] begins to[skills_space] place [carried_mob] onto [src]...") - if(do_after(user, tableplace_delay, target = carried_mob)) - user.unbuckle_mob(carried_mob) - tableplace(user, carried_mob) - else + if(user.combat_mode) + user.unbuckle_mob(carried_mob) + tablelimbsmash(user, carried_mob) + else + var/tableplace_delay = 3.5 SECONDS + var/skills_space = "" + if(HAS_TRAIT(user, TRAIT_QUICKER_CARRY)) + tableplace_delay = 2 SECONDS + skills_space = " expertly" + else if(HAS_TRAIT(user, TRAIT_QUICK_CARRY)) + tableplace_delay = 2.75 SECONDS + skills_space = " quickly" + carried_mob.visible_message("[user] begins to[skills_space] place [carried_mob] onto [src]...", + "[user] begins to[skills_space] place [carried_mob] onto [src]...") + if(do_after(user, tableplace_delay, target = carried_mob)) user.unbuckle_mob(carried_mob) tablepush(user, carried_mob) return TRUE - if(user.a_intent != INTENT_HARM && !(I.item_flags & ABSTRACT)) + if(!user.combat_mode && !(I.item_flags & ABSTRACT)) if(user.transferItemToLoc(I, drop_location(), silent = FALSE)) var/list/click_params = params2list(params) //Center the icon where the user clicked. @@ -511,8 +509,9 @@ else return "The top cover is firmly welded on." -/obj/structure/table/reinforced/attackby(obj/item/W, mob/user, params) - if(W.tool_behaviour == TOOL_WELDER && user.a_intent != INTENT_HELP) +/obj/structure/table/reinforced/attackby(obj/item/W, mob/living/user, params) + var/list/modifiers = params2list(params) + if(W.tool_behaviour == TOOL_WELDER && modifiers && modifiers["right"]) if(!W.tool_start_check(user, amount=0)) return @@ -632,12 +631,13 @@ if(O.loc != src.loc) step(O, get_dir(O, src)) -/obj/structure/rack/attackby(obj/item/W, mob/user, params) - if (W.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1) && user.a_intent != INTENT_HELP) +/obj/structure/rack/attackby(obj/item/W, mob/living/user, params) + var/list/modifiers = params2list(params) + if (W.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1) && modifiers && modifiers["right"]) W.play_tool_sound(src) deconstruct(TRUE) return - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return ..() if(user.transferItemToLoc(W, drop_location())) return 1 diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm index 0dcd0655e41..a8cf55105cd 100644 --- a/code/game/objects/structures/tank_dispenser.dm +++ b/code/game/objects/structures/tank_dispenser.dm @@ -38,7 +38,7 @@ if(5 to TANK_DISPENSER_CAPACITY) . += "plasma-5" -/obj/structure/tank_dispenser/attackby(obj/item/I, mob/user, params) +/obj/structure/tank_dispenser/attackby(obj/item/I, mob/living/user, params) var/full if(istype(I, /obj/item/tank/internals/plasma)) if(plasmatanks < TANK_DISPENSER_CAPACITY) @@ -53,7 +53,7 @@ else if(I.tool_behaviour == TOOL_WRENCH) default_unfasten_wrench(user, I, time = 20) return - else if(user.a_intent != INTENT_HARM) + else if(!user.combat_mode) to_chat(user, "[I] does not fit into [src].") return else diff --git a/code/game/objects/structures/tank_holder.dm b/code/game/objects/structures/tank_holder.dm index 9210cb17ae7..09ebafa70a1 100644 --- a/code/game/objects/structures/tank_holder.dm +++ b/code/game/objects/structures/tank_holder.dm @@ -37,8 +37,8 @@ . = ..() . += "It is held together by some screws." -/obj/structure/tank_holder/attackby(obj/item/W, mob/user, params) - if(user.a_intent == INTENT_HARM) +/obj/structure/tank_holder/attackby(obj/item/W, mob/living/user, params) + if(user.combat_mode) return ..() if(!SEND_SIGNAL(W, COMSIG_CONTAINER_TRY_ATTACH, src, user)) to_chat(user, "[W] does not fit in [src].") diff --git a/code/game/objects/structures/training_machine.dm b/code/game/objects/structures/training_machine.dm index ac8a2921df1..1a85c22baa9 100644 --- a/code/game/objects/structures/training_machine.dm +++ b/code/game/objects/structures/training_machine.dm @@ -107,8 +107,8 @@ * Meant for attaching an item to the machine, should only be a training toolbox or target. If emagged, the * machine will gain an auto-attached syndicate toolbox, so in that case we shouldn't be able to swap it out */ -/obj/structure/training_machine/attackby(obj/item/target, mob/user) - if (user.a_intent != INTENT_HELP) +/obj/structure/training_machine/attackby(obj/item/target, mob/living/user) + if (!user.combat_mode) return ..() if (!istype(target, /obj/item/training_toolbox) && !istype(target, /obj/item/target)) return ..() @@ -357,9 +357,9 @@ ///Number of hits made since the Lap button (alt-click) was last pushed var/lap_hits = 0 -/obj/item/training_toolbox/afterattack(atom/target, mob/user, proximity) +/obj/item/training_toolbox/afterattack(atom/target, mob/living/user, proximity) . = ..() - if (!proximity || target == user || user.a_intent == INTENT_HELP) + if (!proximity || target == user || !user.combat_mode) return if (check_hit(target)) user.changeNext_move(CLICK_CD_MELEE) diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm index 3bf286696d3..f6f47e7799e 100644 --- a/code/game/objects/structures/transit_tubes/station.dm +++ b/code/game/objects/structures/transit_tubes/station.dm @@ -64,7 +64,7 @@ if(.) return if(!pod_moving) - if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) + if(user.pulling && isliving(user.pulling)) if(open_status == STATION_TUBE_OPEN) var/mob/living/GM = user.pulling if(user.grab_state >= GRAB_AGGRESSIVE) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index d0e31829e30..57b908f5e7e 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -29,7 +29,7 @@ log_combat(user, swirlie, "swirlied (brute)") swirlie.adjustBruteLoss(5) - else if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) + else if(user.pulling && isliving(user.pulling)) user.changeNext_move(CLICK_CD_MELEE) var/mob/living/GM = user.pulling if(user.grab_state >= GRAB_AGGRESSIVE) @@ -103,21 +103,20 @@ else if(I.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1)) I.play_tool_sound(src) deconstruct() - else if(cistern) - if(user.a_intent != INTENT_HARM) - if(I.w_class > WEIGHT_CLASS_NORMAL) - to_chat(user, "[I] does not fit!") - return - if(w_items + I.w_class > WEIGHT_CLASS_HUGE) - to_chat(user, "The cistern is full!") - return - if(!user.transferItemToLoc(I, src)) - to_chat(user, "\The [I] is stuck to your hand, you cannot put it in the cistern!") - return - w_items += I.w_class - to_chat(user, "You carefully place [I] into the cistern.") + else if(cistern && !user.combat_mode) + if(I.w_class > WEIGHT_CLASS_NORMAL) + to_chat(user, "[I] does not fit!") + return + if(w_items + I.w_class > WEIGHT_CLASS_HUGE) + to_chat(user, "The cistern is full!") + return + if(!user.transferItemToLoc(I, src)) + to_chat(user, "\The [I] is stuck to your hand, you cannot put it in the cistern!") + return + w_items += I.w_class + to_chat(user, "You carefully place [I] into the cistern.") - else if(istype(I, /obj/item/reagent_containers)) + else if(istype(I, /obj/item/reagent_containers) && !user.combat_mode) if (!open) return if(istype(I, /obj/item/food/monkeycube)) @@ -160,11 +159,11 @@ . = ..() hiddenitem = new /obj/item/food/urinalcake -/obj/structure/urinal/attack_hand(mob/user) +/obj/structure/urinal/attack_hand(mob/living/user) . = ..() if(.) return - if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) + if(user.pulling && isliving(user.pulling)) var/mob/living/GM = user.pulling if(user.grab_state >= GRAB_AGGRESSIVE) if(GM.loc != get_turf(src)) @@ -394,7 +393,7 @@ if(O.item_flags & ABSTRACT) //Abstract items like grabs won't wash. No-drop items will though because it's still technically an item in your hand. return - if(user.a_intent != INTENT_HARM) + if(!user.combat_mode) to_chat(user, "You start washing [O]...") busy = TRUE if(!do_after(user, 40, target = src)) @@ -577,7 +576,7 @@ if(O.item_flags & ABSTRACT) //Abstract items like grabs won't wash. No-drop items will though because it's still technically an item in your hand. return - if(user.a_intent != INTENT_HARM) + if(!user.combat_mode) to_chat(user, "You start washing [O]...") busy = TRUE if(!do_after(user, 4 SECONDS, target = src)) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index c7fc3edf3bb..6d3ef5b40b0 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -138,7 +138,7 @@ return . = ..() -/obj/structure/window/attack_hand(mob/user) +/obj/structure/window/attack_hand(mob/living/user) . = ..() if(.) return @@ -146,7 +146,7 @@ return user.changeNext_move(CLICK_CD_MELEE) - if(user.a_intent != INTENT_HARM) + if(!user.combat_mode) user.visible_message("[user] knocks on [src].", \ "You knock on [src].") playsound(src, knocksound, 50, TRUE) @@ -169,7 +169,7 @@ add_fingerprint(user) - if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HELP) + if(I.tool_behaviour == TOOL_WELDER && !user.combat_mode) if(obj_integrity < max_integrity) if(!I.tool_start_check(user, amount=0)) return @@ -384,10 +384,11 @@ //this is shitcode but all of construction is shitcode and needs a refactor, it works for now //If you find this like 4 years later and construction still hasn't been refactored, I'm so sorry for this //Adding a timestamp, I found this in 2020, I hope it's from this year -Lemon +//2021 AND STILLLL GOING STRONG /obj/structure/window/reinforced/attackby(obj/item/I, mob/living/user, params) switch(state) if(RWINDOW_SECURE) - if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HARM) + if(I.tool_behaviour == TOOL_WELDER && user.combat_mode) user.visible_message("[user] holds \the [I] to the security screws on \the [src]...", "You begin heating the security screws on \the [src]...") if(I.use_tool(src, user, 150, volume = 100)) @@ -516,7 +517,7 @@ /obj/structure/window/plasma/reinforced/attackby(obj/item/I, mob/living/user, params) switch(state) if(RWINDOW_SECURE) - if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HARM) + if(I.tool_behaviour == TOOL_WELDER && user.combat_mode) user.visible_message("[user] holds \the [I] to the security screws on \the [src]...", "You begin heating the security screws on \the [src]...") if(I.use_tool(src, user, 180, volume = 100)) @@ -774,11 +775,11 @@ for (var/i in 1 to rand(1,4)) . += new /obj/item/paper/natural(location) -/obj/structure/window/paperframe/attack_hand(mob/user) +/obj/structure/window/paperframe/attack_hand(mob/living/user) . = ..() if(.) return - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) take_damage(4,BRUTE,MELEE, 0) if(!QDELETED(src)) update_icon() @@ -796,11 +797,11 @@ QUEUE_SMOOTH(src) -/obj/structure/window/paperframe/attackby(obj/item/W, mob/user) +/obj/structure/window/paperframe/attackby(obj/item/W, mob/living/user) if(W.get_temperature()) fire_act(W.get_temperature()) return - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return ..() if(istype(W, /obj/item/paper) && obj_integrity < max_integrity) user.visible_message("[user] starts to patch the holes in \the [src].") diff --git a/code/game/turfs/closed/walls.dm b/code/game/turfs/closed/walls.dm index 93cf8043ed7..5b95d0acbea 100644 --- a/code/game/turfs/closed/walls.dm +++ b/code/game/turfs/closed/walls.dm @@ -196,8 +196,8 @@ return ..() -/turf/closed/wall/proc/try_clean(obj/item/W, mob/user, turf/T) - if((user.a_intent != INTENT_HELP) || !LAZYLEN(dent_decals)) +/turf/closed/wall/proc/try_clean(obj/item/W, mob/living/user, turf/T) + if((user.combat_mode) || !LAZYLEN(dent_decals)) return FALSE if(W.tool_behaviour == TOOL_WELDER) diff --git a/code/game/turfs/open/floor.dm b/code/game/turfs/open/floor.dm index 58d440d38e0..95827083d95 100644 --- a/code/game/turfs/open/floor.dm +++ b/code/game/turfs/open/floor.dm @@ -151,7 +151,7 @@ W.update_icon() return W -/turf/open/floor/attackby(obj/item/object, mob/user, params) +/turf/open/floor/attackby(obj/item/object, mob/living/user, params) if(!object || !user) return TRUE . = ..() @@ -160,7 +160,7 @@ if(intact && istype(object, /obj/item/stack/tile)) try_replace_tile(object, user, params) return TRUE - if(user.a_intent == INTENT_HARM && istype(object, /obj/item/stack/sheet)) + if(user.combat_mode && istype(object, /obj/item/stack/sheet)) var/obj/item/stack/sheet/sheets = object return sheets.on_attack_floor(user, params) return FALSE diff --git a/code/modules/antagonists/blob/blob_mobs.dm b/code/modules/antagonists/blob/blob_mobs.dm index 9cb33f38952..1dcdf3f5231 100644 --- a/code/modules/antagonists/blob/blob_mobs.dm +++ b/code/modules/antagonists/blob/blob_mobs.dm @@ -14,7 +14,7 @@ minbodytemp = 0 maxbodytemp = INFINITY unique_name = 1 - a_intent = INTENT_HARM + combat_mode = TRUE see_in_dark = 8 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE initial_language_holder = /datum/language_holder/empty diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index 28447293d71..df654003ea7 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -266,7 +266,9 @@ /obj/item/gun/magic/tentacle/shoot_with_empty_chamber(mob/living/user as mob|obj) to_chat(user, "The [name] is not ready yet.") -/obj/item/gun/magic/tentacle/process_fire() +/obj/item/gun/magic/tentacle/process_fire(atom/target, mob/living/user, message, params, zone_override, bonus_spread) + var/obj/projectile/tentacle/tentacle_shot = chambered.BB //Gets the actual projectile we will fire + tentacle_shot.fire_modifiers = params2list(params) . = ..() if(charges == 0) qdel(src) @@ -303,6 +305,8 @@ hitsound = 'sound/weapons/thudswoosh.ogg' var/chain var/obj/item/ammo_casing/magic/tentacle/source //the item that shot it + ///Click params that were used to fire the tentacle shot + var/list/fire_modifiers /obj/projectile/tentacle/Initialize() source = loc @@ -354,39 +358,32 @@ if(!L.anchored && !L.throwing)//avoid double hits if(iscarbon(L)) var/mob/living/carbon/C = L - var/firer_intent = INTENT_HARM - var/mob/M = firer - if(istype(M)) - firer_intent = M.a_intent - switch(firer_intent) - if(INTENT_HELP) - C.visible_message("[L] is pulled by [H]'s tentacle!","A tentacle grabs you and pulls you towards [H]!") - C.throw_at(get_step_towards(H,C), 8, 2) - return BULLET_ACT_HIT - - if(INTENT_DISARM) - var/obj/item/I = C.get_active_held_item() - if(I) - if(C.dropItemToGround(I)) - C.visible_message("[I] is yanked off [C]'s hand by [src]!","A tentacle pulls [I] away from you!") - on_hit(I) //grab the item as if you had hit it directly with the tentacle - return BULLET_ACT_HIT - else - to_chat(firer, "You can't seem to pry [I] off [C]'s hands!") - return BULLET_ACT_BLOCK - else - to_chat(firer, "[C] has nothing in hand to disarm!") + var/firer_combat_mode = TRUE + var/mob/living/living_shooter = firer + if(istype(living_shooter)) + firer_combat_mode = living_shooter.combat_mode + if(fire_modifiers && fire_modifiers["right"]) + var/obj/item/I = C.get_active_held_item() + if(I) + if(C.dropItemToGround(I)) + C.visible_message("[I] is yanked off [C]'s hand by [src]!","A tentacle pulls [I] away from you!") + on_hit(I) //grab the item as if you had hit it directly with the tentacle return BULLET_ACT_HIT - - if(INTENT_GRAB) - C.visible_message("[L] is grabbed by [H]'s tentacle!","A tentacle grabs you and pulls you towards [H]!") - C.throw_at(get_step_towards(H,C), 8, 2, H, TRUE, TRUE, callback=CALLBACK(src, .proc/tentacle_grab, H, C)) + else + to_chat(firer, "You can't seem to pry [I] off [C]'s hands!") + return BULLET_ACT_BLOCK + else + to_chat(firer, "[C] has nothing in hand to disarm!") return BULLET_ACT_HIT + if(firer_combat_mode) + C.visible_message("[L] is thrown towards [H] by a tentacle!","A tentacle grabs you and throws you towards [H]!") + C.throw_at(get_step_towards(H,C), 8, 2, H, TRUE, TRUE, callback=CALLBACK(src, .proc/tentacle_stab, H, C)) + return BULLET_ACT_HIT + else + C.visible_message("[L] is grabbed by [H]'s tentacle!","A tentacle grabs you and pulls you towards [H]!") + C.throw_at(get_step_towards(H,C), 8, 2, H, TRUE, TRUE, callback=CALLBACK(src, .proc/tentacle_grab, H, C)) + return BULLET_ACT_HIT - if(INTENT_HARM) - C.visible_message("[L] is thrown towards [H] by a tentacle!","A tentacle grabs you and throws you towards [H]!") - C.throw_at(get_step_towards(H,C), 8, 2, H, TRUE, TRUE, callback=CALLBACK(src, .proc/tentacle_stab, H, C)) - return BULLET_ACT_HIT else L.visible_message("[L] is pulled by [H]'s tentacle!","A tentacle grabs you and pulls you towards [H]!") L.throw_at(get_step_towards(H,L), 8, 2) diff --git a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm index 6dfe3d309bd..d4d37d382bc 100644 --- a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm +++ b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm @@ -19,7 +19,7 @@ var/static/list/blacklisted_turfs = typecacheof(list(/turf/closed,/turf/open/space,/turf/open/lava,/turf/open/chasm,/turf/open/floor/plating/rust)) route = PATH_RUST -/datum/eldritch_knowledge/rust_fist/on_mansus_grasp(atom/target, mob/user, proximity_flag, click_parameters) +/datum/eldritch_knowledge/rust_fist/on_mansus_grasp(atom/target, mob/living/user, proximity_flag, click_parameters) . = ..() var/check = FALSE if(ismob(target)) @@ -28,7 +28,7 @@ return FALSE else check = TRUE - if(user.a_intent == INTENT_HARM || check) + if(user.combat_mode || check) target.rust_heretic_act() return TRUE diff --git a/code/modules/antagonists/morph/morph.dm b/code/modules/antagonists/morph/morph.dm index ef92118d75e..532a8406547 100644 --- a/code/modules/antagonists/morph/morph.dm +++ b/code/modules/antagonists/morph/morph.dm @@ -9,7 +9,7 @@ icon_living = "morph" icon_dead = "morph_dead" speed = 2 - a_intent = INTENT_HARM + combat_mode = TRUE stop_automated_movement = 1 status_flags = CANPUSH pass_flags = PASSTABLE diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm index c7309c455c4..0a5a901176a 100644 --- a/code/modules/antagonists/slaughter/slaughter.dm +++ b/code/modules/antagonists/slaughter/slaughter.dm @@ -18,7 +18,7 @@ icon_living = "imp" mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speed = 1 - a_intent = INTENT_HARM + combat_mode = TRUE stop_automated_movement = TRUE status_flags = CANPUSH attack_sound = 'sound/magic/demon_attack1.ogg' diff --git a/code/modules/aquarium/aquarium.dm b/code/modules/aquarium/aquarium.dm index 6a4e48b64c1..502dbcf743e 100644 --- a/code/modules/aquarium/aquarium.dm +++ b/code/modules/aquarium/aquarium.dm @@ -134,7 +134,7 @@ return NONE /obj/structure/aquarium/interact(mob/user) - if(!broken && user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) + if(!broken && user.pulling && isliving(user.pulling)) var/mob/living/living_pulled = user.pulling SEND_SIGNAL(living_pulled, COMSIG_AQUARIUM_BEFORE_INSERT_CHECK,src) var/datum/component/aquarium_content/content_component = living_pulled.GetComponent(/datum/component/aquarium_content) @@ -147,7 +147,7 @@ /// Tries to put mob pulled by the user in the aquarium after a delay /obj/structure/aquarium/proc/try_to_put_mob_in(mob/user) - if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) + if(user.pulling && isliving(user.pulling)) var/mob/living/living_pulled = user.pulling if(living_pulled.buckled || living_pulled.has_buckled_mobs()) to_chat(user, "[living_pulled] is attached to something!") diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index 1d9a88de6e0..b029d295ba2 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -93,14 +93,14 @@ if(a_right) a_right.dropped() -/obj/item/assembly_holder/attack_hand()//Perhapse this should be a holder_pickup proc instead, can add if needbe I guess +/obj/item/assembly_holder/attack_hand(mob/living/user, modifiers)//Perhapse this should be a holder_pickup proc instead, can add if needbe I guess . = ..() if(.) return if(a_left) - a_left.attack_hand() + a_left.attack_hand(user, modifiers) if(a_right) - a_right.attack_hand() + a_right.attack_hand(user, modifiers) /obj/item/assembly_holder/screwdriver_act(mob/user, obj/item/tool) if(..()) diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index efdba629485..5ab375300cb 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -400,7 +400,7 @@ /obj/machinery/portable_atmospherics/canister/welder_act(mob/living/user, obj/item/I) ..() - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return FALSE if(!I.tool_start_check(user, amount=0)) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 69bbd4170ed..7832ecf37b1 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -4,6 +4,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/client/parent //doohickeys for savefiles var/path + var/save_path var/default_slot = 1 //Holder so it doesn't default to slot 1, rather the last one used var/max_save_slots = 3 @@ -702,6 +703,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Play Admin MIDIs: [(toggles & SOUND_MIDI) ? "Enabled":"Disabled"]
" dat += "Play Lobby Music: [(toggles & SOUND_LOBBY) ? "Enabled":"Disabled"]
" dat += "Play End of Round Sounds: [(toggles & SOUND_ENDOFROUND) ? "Enabled":"Disabled"]
" + dat += "Play Combat Mode Sounds: [(toggles & SOUND_COMBATMODE) ? "Enabled":"Disabled"]
" dat += "See Pull Requests: [(chat_toggles & CHAT_PULLR) ? "Enabled":"Disabled"]
" dat += "
" @@ -1766,6 +1768,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("endofround_sounds") toggles ^= SOUND_ENDOFROUND + if("combat_mode_sound") + toggles ^= SOUND_COMBATMODE + if("ghost_ears") chat_toggles ^= CHAT_GHOSTEARS diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index bb99ee0e212..d2ef18a8362 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -5,7 +5,7 @@ // You do not need to raise this if you are adding new values that have sane defaults. // Only raise this value when changing the meaning/format/name/layout of an existing value // where you would want the updater procs below to run -#define SAVEFILE_VERSION_MAX 38 +#define SAVEFILE_VERSION_MAX 39 /* SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn @@ -87,6 +87,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if (!found_block_movement) LAZYADD(key_bindings["Ctrl"], "block_movement") + if (current_version < 39) + LAZYADD(key_bindings["F"], "toggle_combat_mode") + LAZYADD(key_bindings["4"], "toggle_combat_mode") + /datum/preferences/proc/update_character(current_version, savefile/S) return @@ -133,7 +137,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car /datum/preferences/proc/load_path(ckey,filename="preferences.sav") if(!ckey) return + if(fexists("data/player_saves/combat_test/[ckey[1]]/[ckey]/[filename]")) + path = "data/player_saves/combat_test/[ckey[1]]/[ckey]/[filename]" + return path = "data/player_saves/[ckey[1]]/[ckey]/[filename]" + save_path = "data/player_saves/combat_test/[ckey[1]]/[ckey]/[filename]" /datum/preferences/proc/load_preferences() if(!path) @@ -273,7 +281,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car /datum/preferences/proc/save_preferences() if(!path) return FALSE - var/savefile/S = new /savefile(path) + var/savefile/S = new /savefile() if(!S) return FALSE S.cd = "/" @@ -495,7 +503,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car /datum/preferences/proc/save_character() if(!path) return FALSE - var/savefile/S = new /savefile(path) + var/savefile/S = new /savefile(save_path) if(!S) return FALSE S.cd = "/character[default_slot]" diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index 803c3cda43d..48d08dcfb23 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -178,6 +178,20 @@ TOGGLE_CHECKBOX(/datum/verbs/menu/settings/sound, toggleendofroundsounds)() /datum/verbs/menu/settings/sound/toggleendofroundsounds/Get_checked(client/C) return C.prefs.toggles & SOUND_ENDOFROUND +TOGGLE_CHECKBOX(/datum/verbs/menu/settings/sound, togglecombatmodesound)() + set name = "Hear/Silence Combat Mode Toggle Sound" + set category = "Preferences" + set desc = "Hear Combat Mode Toggle Sound" + usr.client.prefs.toggles ^= SOUND_COMBATMODE + usr.client.prefs.save_preferences() + if(usr.client.prefs.toggles & SOUND_COMBATMODE) + to_chat(usr, "You will now hear a sound when combat mode is turned on.") + else + to_chat(usr, "You will no longer hear a sound when combat mode is turned on.") + SSblackbox.record_feedback("nested tally", "preferences_verb", 1, list("Toggle Combat Mode Toggle Sounds", "[usr.client.prefs.toggles & SOUND_COMBATMODE ? "Enabled" : "Disabled"]")) + +/datum/verbs/menu/settings/sound/togglecombatmodesound/Get_checked(client/C) + return C.prefs.toggles & SOUND_COMBATMODE TOGGLE_CHECKBOX(/datum/verbs/menu/settings/sound, togglemidis)() set name = "Hear/Silence Midis" diff --git a/code/modules/client/verbs/suicide.dm b/code/modules/client/verbs/suicide.dm index 62ab5f96a28..9e45ba8d08d 100644 --- a/code/modules/client/verbs/suicide.dm +++ b/code/modules/client/verbs/suicide.dm @@ -81,17 +81,7 @@ var/suicide_message - if(a_intent == INTENT_DISARM) - if(prob(25)) - disarm_suicide() // Snowflake suicide for a tired joke. - return //above proc handles logging and death - suicide_message = pick("[src] is attempting to push [p_their()] own head off [p_their()] shoulders! It looks like [p_theyre()] trying to commit suicide.", \ - "[src] is pushing [p_their()] thumbs into [p_their()] eye sockets! It looks like [p_theyre()] trying to commit suicide.") - else if(a_intent == INTENT_GRAB) - suicide_message = pick("[src] is attempting to pull [p_their()] own head off! It looks like [p_theyre()] trying to commit suicide.", \ - "[src] is aggressively grabbing [p_their()] own neck! It looks like [p_theyre()] trying to commit suicide.", \ - "[src] is pulling [p_their()] eyes out of their sockets! It looks like [p_theyre()] trying to commit suicide.") - else if(a_intent == INTENT_HELP) + if(!combat_mode) var/obj/item/organ/brain/userbrain = getorgan(/obj/item/organ/brain) if(userbrain?.damage >= 75) suicide_message = "[src] pulls both arms outwards in front of [p_their()] chest and pumps them behind [p_their()] back, repeats this motion in a smaller range of motion \ diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 2930cf9ca1f..293c730ade4 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -121,13 +121,13 @@ else qdel(src) -/obj/item/clothing/attack(mob/attacker, mob/user, def_zone) - if(user.a_intent != INTENT_HARM && ismoth(attacker)) +/obj/item/clothing/attack(mob/attacker, mob/living/user, params) + if(!user.combat_mode && ismoth(attacker)) if (isnull(moth_snack)) moth_snack = new moth_snack.name = name moth_snack.clothing = WEAKREF(src) - moth_snack.attack(attacker, user, def_zone) + moth_snack.attack(attacker, user, params) else return ..() diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index ec80b053499..b2a1dcb88f1 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -57,7 +57,7 @@ /obj/item/clothing/neck/stethoscope/attack(mob/living/carbon/human/M, mob/living/user) if(ishuman(M) && isliving(user)) - if(user.a_intent == INTENT_HELP) + if(!user.combat_mode) var/body_part = parse_zone(user.zone_selected) var/heart_strength = "no" diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 86967a36718..85f4d194f87 100755 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -115,7 +115,7 @@ //Pinning medals on people /obj/item/clothing/accessory/medal/attack(mob/living/carbon/human/M, mob/living/user) - if(ishuman(M) && (user.a_intent == INTENT_HELP)) + if(ishuman(M) && !user.combat_mode) if(M.wear_suit) if((M.wear_suit.flags_inv & HIDEJUMPSUIT)) //Check if the jumpsuit is covered diff --git a/code/modules/detectivework/footprints_and_rag.dm b/code/modules/detectivework/footprints_and_rag.dm index 1754347b82a..9cd26327c57 100644 --- a/code/modules/detectivework/footprints_and_rag.dm +++ b/code/modules/detectivework/footprints_and_rag.dm @@ -20,7 +20,7 @@ user.visible_message("[user] is smothering [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (OXYLOSS) -/obj/item/reagent_containers/glass/rag/afterattack(atom/A as obj|turf|area, mob/user,proximity) +/obj/item/reagent_containers/glass/rag/afterattack(atom/A as obj|turf|area, mob/living/user,proximity) . = ..() if(!proximity) return @@ -28,7 +28,7 @@ var/mob/living/carbon/C = A var/reagentlist = pretty_string_from_reagent_list(reagents) var/log_object = "containing [reagentlist]" - if(user.a_intent == INTENT_HARM && !C.is_mouth_covered()) + if(user.combat_mode && !C.is_mouth_covered()) reagents.trans_to(C, reagents.total_volume, transfered_by = user, methods = INGEST) C.visible_message("[user] smothers \the [C] with \the [src]!", "[user] smothers you with \the [src]!", "You hear some struggling and muffled cries of surprise.") log_combat(user, C, "smothered", src, log_object) diff --git a/code/modules/economy/pay_stand.dm b/code/modules/economy/pay_stand.dm index 5a55694237c..2ee4fabad88 100644 --- a/code/modules/economy/pay_stand.dm +++ b/code/modules/economy/pay_stand.dm @@ -15,13 +15,18 @@ /obj/machinery/paystand/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/card/id)) if(W == my_card) - if(user.a_intent == INTENT_DISARM) + var/list/items = list( + "Rename" = image(icon = 'icons/obj/economy.dmi', icon_state = "name"), + "Set the fee" = image(icon = 'icons/obj/economy.dmi', icon_state = "fee") + ) + var/choice = show_radial_menu(user, src, items, null, require_near = TRUE, tooltips = TRUE) + if(choice == "Rename") var/rename_msg = stripped_input(user, "Rename the Paystand:", "Paystand Naming", name) if(!rename_msg || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return name = rename_msg return - else if(user.a_intent == INTENT_GRAB) + else if(choice == "Set the fee") var/force_fee_input = input(user,"Set the fee!","Set a fee!",0) as num|null if(isnull(force_fee_input) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return @@ -136,4 +141,4 @@ if(force_fee) . += "This paystand forces a payment of [force_fee] credit\s per swipe instead of a variable amount." if(user.get_active_held_item() == my_card) - . += "Paystands can be edited through swiping your card with different intents. Disarm allows editing the name while Grab changes payment functionality." + . += "Paystands can be edited through swiping your card." diff --git a/code/modules/events/crystal_event.dm b/code/modules/events/crystal_event.dm index decc393d610..ae11f529b7b 100644 --- a/code/modules/events/crystal_event.dm +++ b/code/modules/events/crystal_event.dm @@ -653,7 +653,7 @@ This section is for the crystal monsters variations turns_per_move = 1 speak_emote = list("resonates") emote_see = list("resonates") - a_intent = INTENT_HARM + combat_mode = TRUE minbodytemp = 0 maxbodytemp = 1500 healable = 0 //they're crystals how would bruise packs help them?? diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 20764d3c590..0ca47c61653 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -345,11 +345,11 @@ return FALSE . = ..() -/obj/item/reagent_containers/food/drinks/waterbottle/attack(mob/target, mob/user, def_zone) +/obj/item/reagent_containers/food/drinks/waterbottle/attack(mob/target, mob/living/user, def_zone) if(!target) return - if(user.a_intent != INTENT_HARM) + if(!user.combat_mode) if(cap_on && reagents.total_volume && istype(target)) to_chat(user, "You must remove the cap before you can do that!") return @@ -359,8 +359,8 @@ if(!cap_on) SplashReagents(target) -/obj/item/reagent_containers/food/drinks/waterbottle/afterattack(obj/target, mob/user, proximity) - if(cap_on && (target.is_refillable() || target.is_drainable() || (reagents.total_volume && user.a_intent == INTENT_HARM))) +/obj/item/reagent_containers/food/drinks/waterbottle/afterattack(obj/target, mob/living/user, proximity) + if(cap_on && (target.is_refillable() || target.is_drainable() || (reagents.total_volume && !user.combat_mode))) to_chat(user, "You must remove the cap before you can do that!") return @@ -640,8 +640,8 @@ sleep(20) //dramatic pause return TOXLOSS -/obj/item/reagent_containers/food/drinks/soda_cans/attack(mob/M, mob/user) - if(istype(M, /mob/living/carbon) && !reagents.total_volume && user.a_intent == INTENT_HARM && user.zone_selected == BODY_ZONE_HEAD) +/obj/item/reagent_containers/food/drinks/soda_cans/attack(mob/M, mob/living/user) + if(istype(M, /mob/living/carbon) && !reagents.total_volume && user.combat_mode && user.zone_selected == BODY_ZONE_HEAD) if(M == user) user.visible_message("[user] crushes the can of [src] on [user.p_their()] forehead!", "You crush the can of [src] on your forehead.") else diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index c190e274e2d..c4d252923c9 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -68,7 +68,7 @@ if(!target) return - if(user.a_intent != INTENT_HARM || !isGlass) + if(!user.combat_mode || !isGlass) return ..() if(HAS_TRAIT(user, TRAIT_PACIFISM)) diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm index 5ecf173cf3c..ff0d5719bca 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -124,8 +124,8 @@ else ..() -/obj/item/reagent_containers/food/drinks/drinkingglass/attack(obj/target, mob/user) - if(user.a_intent == INTENT_HARM && ismob(target) && target.reagents && reagents.total_volume) +/obj/item/reagent_containers/food/drinks/drinkingglass/attack(obj/target, mob/living/user) + if(user.combat_mode && ismob(target) && target.reagents && reagents.total_volume) target.visible_message("[user] splashes the contents of [src] onto [target]!", \ "[user] splashes the contents of [src] onto you!") log_combat(user, target, "splashed", src) @@ -134,12 +134,12 @@ return ..() -/obj/item/reagent_containers/food/drinks/drinkingglass/afterattack(obj/target, mob/user, proximity) +/obj/item/reagent_containers/food/drinks/drinkingglass/afterattack(obj/target, mob/living/user, proximity) . = ..() if((!proximity) || !check_allowed_items(target,target_self=1)) return - else if(reagents.total_volume && user.a_intent == INTENT_HARM) + else if(reagents.total_volume && user.combat_mode) user.visible_message("[user] splashes the contents of [src] onto [target]!", \ "You splash the contents of [src] onto [target].") reagents.expose(target, TOUCH) diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index ff55a183a4a..45978644c63 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -107,7 +107,7 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list( /obj/machinery/deepfryer/attack_ai(mob/user) return -/obj/machinery/deepfryer/attack_hand(mob/user) +/obj/machinery/deepfryer/attack_hand(mob/living/user) if(frying) if(frying.loc == src) to_chat(user, "You eject [frying] from [src].") @@ -122,7 +122,7 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list( frying_burnt = FALSE fry_loop.stop() return - else if(user.pulling && user.a_intent == "grab" && iscarbon(user.pulling) && reagents.total_volume) + else if(user.pulling && iscarbon(user.pulling) && reagents.total_volume) if(user.grab_state < GRAB_AGGRESSIVE) to_chat(user, "You need a better grip to do that!") return diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index 8a198ca4391..d0fa1145d1d 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -74,7 +74,7 @@ to_chat(user, "[src] cannot be used unless bolted to the ground!") return - if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) + if(user.pulling && isliving(user.pulling)) var/mob/living/L = user.pulling if(!iscarbon(L)) to_chat(user, "This item is not suitable for the gibber!") diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index e10e4041409..184ecbcceeb 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -101,7 +101,7 @@ else icon_state = "mw" -/obj/machinery/microwave/attackby(obj/item/O, mob/user, params) +/obj/machinery/microwave/attackby(obj/item/O, mob/living/user, params) if(operating) return if(default_deconstruction_crowbar(O)) @@ -178,7 +178,7 @@ to_chat(user, "You insert [loaded] items into \the [src].") return - if(O.w_class <= WEIGHT_CLASS_NORMAL && !istype(O, /obj/item/storage) && user.a_intent == INTENT_HELP) + if(O.w_class <= WEIGHT_CLASS_NORMAL && !istype(O, /obj/item/storage) && !user.combat_mode) if(ingredients.len >= max_n_of_items) to_chat(user, "\The [src] is full, you can't put anything in!") return TRUE diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm index 2b6eb0e7342..45f02741e1f 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm @@ -50,7 +50,7 @@ continue return recipe -/obj/machinery/processor/attackby(obj/item/O, mob/user, params) +/obj/machinery/processor/attackby(obj/item/O, mob/living/user, params) if(processing) to_chat(user, "[src] is in the process of processing!") return TRUE @@ -89,18 +89,17 @@ user.transferItemToLoc(O, src, TRUE) LAZYADD(processor_contents, O) return 1 + else if(!user.combat_mode) + to_chat(user, "That probably won't blend!") + return 1 else - if(user.a_intent != INTENT_HARM) - to_chat(user, "That probably won't blend!") - return 1 - else - return ..() + return ..() /obj/machinery/processor/interact(mob/user) if(processing) to_chat(user, "[src] is in the process of processing!") return TRUE - if(user.a_intent == INTENT_GRAB && ismob(user.pulling) && select_recipe(user.pulling)) + if(ismob(user.pulling) && select_recipe(user.pulling)) if(user.grab_state < GRAB_AGGRESSIVE) to_chat(user, "You need a better grip to do that!") return diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 44375a426a3..071d1c089d0 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -65,7 +65,7 @@ * Item Adding ********************/ -/obj/machinery/smartfridge/attackby(obj/item/O, mob/user, params) +/obj/machinery/smartfridge/attackby(obj/item/O, mob/living/user, params) if(default_deconstruction_screwdriver(user, icon_state, icon_state, O)) cut_overlays() if(panel_open) @@ -125,7 +125,7 @@ to_chat(user, "There is nothing in [O] to put in [src]!") return FALSE - if(user.a_intent != INTENT_HARM) + if(!user.combat_mode) to_chat(user, "\The [src] smartly refuses [O].") updateUsrDialog() return FALSE diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm index ede30059713..d6a888c7a77 100644 --- a/code/modules/holodeck/items.dm +++ b/code/modules/holodeck/items.dm @@ -108,11 +108,11 @@ if(user.transferItemToLoc(W, drop_location())) visible_message("[user] dunks [W] into \the [src]!") -/obj/structure/holohoop/attack_hand(mob/user) +/obj/structure/holohoop/attack_hand(mob/living/user) . = ..() if(.) return - if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) + if(user.pulling && isliving(user.pulling)) var/mob/living/L = user.pulling if(user.grab_state < GRAB_AGGRESSIVE) to_chat(user, "You need a better grip to do that!") diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index fedd36ac1d1..e22091f64b4 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -71,8 +71,8 @@ else icon_state = "biogen-work" -/obj/machinery/biogenerator/attackby(obj/item/O, mob/user, params) - if(user.a_intent == INTENT_HARM) +/obj/machinery/biogenerator/attackby(obj/item/O, mob/living/user, params) + if(user.combat_mode) return ..() if(processing) diff --git a/code/modules/hydroponics/grafts.dm b/code/modules/hydroponics/grafts.dm index e5e4ddd3e0a..622ac866556 100644 --- a/code/modules/hydroponics/grafts.dm +++ b/code/modules/hydroponics/grafts.dm @@ -50,7 +50,7 @@ return ..() /obj/item/graft/attackby(obj/item/I, mob/living/user, params) - if(istype(I, /obj/item/plant_analyzer) && user.a_intent == INTENT_HELP) + if(istype(I, /obj/item/plant_analyzer) && !user.combat_mode) to_chat(user, get_graft_text()) return ..() diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index d34bd080bc5..e91bf4cbb50 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -173,7 +173,7 @@ . = ..() StartBurning() -/obj/structure/bonfire/attackby(obj/item/W, mob/user, params) +/obj/structure/bonfire/attackby(obj/item/W, mob/living/user, params) if(istype(W, /obj/item/stack/rods) && !can_buckle && !grill) var/obj/item/stack/rods/R = W var/choice = input(user, "What would you like to construct?", "Bonfire") as null|anything in list("Stake","Grill") @@ -196,7 +196,7 @@ if(W.get_temperature()) StartBurning() if(grill) - if(user.a_intent != INTENT_HARM && !(W.item_flags & ABSTRACT)) + if(!user.combat_mode && !(W.item_flags & ABSTRACT)) if(user.temporarilyRemoveItemFromInventory(W)) W.forceMove(get_turf(src)) var/list/click_params = params2list(params) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index e568dc15976..ee97e8ca2c7 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -98,8 +98,8 @@ myseed = null return ..() -/obj/machinery/hydroponics/constructable/attackby(obj/item/I, mob/user, params) - if (user.a_intent != INTENT_HARM) +/obj/machinery/hydroponics/constructable/attackby(obj/item/I, mob/living/user, params) + if (!user.combat_mode) // handle opening the panel if(default_deconstruction_screwdriver(user, icon_state, icon_state, I)) return diff --git a/code/modules/hydroponics/seed_extractor.dm b/code/modules/hydroponics/seed_extractor.dm index 4e634480102..ca3ad1fb1de 100644 --- a/code/modules/hydroponics/seed_extractor.dm +++ b/code/modules/hydroponics/seed_extractor.dm @@ -78,7 +78,7 @@ if(in_range(user, src) || isobserver(user)) . += "The status display reads: Extracting [seed_multiplier] seed(s) per piece of produce.
Machine can store up to [max_seeds]% seeds.
" -/obj/machinery/seed_extractor/attackby(obj/item/O, mob/user, params) +/obj/machinery/seed_extractor/attackby(obj/item/O, mob/living/user, params) if(default_deconstruction_screwdriver(user, "sextractor_open", "sextractor", O)) return @@ -114,7 +114,7 @@ to_chat(user, "You add [O] to [src.name].") updateUsrDialog() return - else if(user.a_intent != INTENT_HARM) + else if(!user.combat_mode) to_chat(user, "You can't extract any seeds from \the [O.name]!") else return ..() diff --git a/code/modules/mining/laborcamp/laborstacker.dm b/code/modules/mining/laborcamp/laborstacker.dm index 04e29e4e405..c068f0c8284 100644 --- a/code/modules/mining/laborcamp/laborstacker.dm +++ b/code/modules/mining/laborcamp/laborstacker.dm @@ -135,7 +135,7 @@ GLOBAL_LIST(labor_sheet_values) ..() /obj/machinery/mineral/stacking_machine/laborstacker/attackby(obj/item/I, mob/living/user) - if(istype(I, /obj/item/stack/sheet) && user.canUnEquip(I) && user.a_intent == INTENT_HELP) + if(istype(I, /obj/item/stack/sheet) && user.canUnEquip(I) && !user.combat_mode) var/obj/item/stack/sheet/inp = I points += inp.point_value * inp.amount return ..() diff --git a/code/modules/mining/machine_silo.dm b/code/modules/mining/machine_silo.dm index de05a2e612e..4e318f0cce0 100644 --- a/code/modules/mining/machine_silo.dm +++ b/code/modules/mining/machine_silo.dm @@ -47,10 +47,10 @@ GLOBAL_LIST_EMPTY(silo_access_logs) return ..() -/obj/machinery/ore_silo/proc/remote_attackby(obj/machinery/M, mob/user, obj/item/stack/I, breakdown_flags=NONE) +/obj/machinery/ore_silo/proc/remote_attackby(obj/machinery/M, mob/living/user, obj/item/stack/I, breakdown_flags=NONE) var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) // stolen from /datum/component/material_container/proc/OnAttackBy - if(user.a_intent != INTENT_HELP) + if(user.combat_mode) return if(I.item_flags & ABSTRACT) return diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index 7d3f1fcad14..19bd7bd607c 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -12,7 +12,7 @@ status_flags = CANSTUN|CANKNOCKDOWN|CANPUSH mouse_opacity = MOUSE_OPACITY_ICON faction = list("neutral") - a_intent = INTENT_HARM + combat_mode = TRUE atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 move_to_delay = 10 @@ -126,7 +126,7 @@ . = ..() if(.) return - if(M.a_intent == INTENT_HELP) + if(!M.combat_mode) toggle_mode() switch(mode) if(MINEDRONE_COLLECT) diff --git a/code/modules/mob/dead/new_player/login.dm b/code/modules/mob/dead/new_player/login.dm index 19aa1525057..35c509c6f74 100644 --- a/code/modules/mob/dead/new_player/login.dm +++ b/code/modules/mob/dead/new_player/login.dm @@ -20,6 +20,9 @@ if(GLOB.admin_notice) to_chat(src, "Admin Notice:\n \t [GLOB.admin_notice]") + to_chat(src, "Combat Mode Changes\n \t") + to_chat(src, "READ THIS PR BEFORE PLAYING TODAY: https://github.com/tgstation/tgstation/pull/56601 \n \t") + var/spc = CONFIG_GET(number/soft_popcap) if(spc && living_player_count() >= spc) to_chat(src, "Server Notice:\n \t [CONFIG_GET(string/soft_popcap_message)]") diff --git a/code/modules/mob/living/brain/brain.dm b/code/modules/mob/living/brain/brain.dm index 1c777dcf672..8f49ad99421 100644 --- a/code/modules/mob/living/brain/brain.dm +++ b/code/modules/mob/living/brain/brain.dm @@ -5,7 +5,6 @@ var/datum/dna/stored/stored_dna // dna var for brain. Used to store dna, brain dna is not considered like actual dna, brain.has_dna() returns FALSE. stat = DEAD //we start dead by default see_invisible = SEE_INVISIBLE_LIVING - possible_a_intents = list(INTENT_HELP, INTENT_HARM) //for mechas speech_span = SPAN_ROBOT /mob/living/brain/Initialize() diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 1e553005bf6..9e0a51ebbb6 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -74,7 +74,7 @@ /mob/living/carbon/alien/get_status_tab_items() . = ..() - . += "Intent: [a_intent]" + . += "Combat mode: [combat_mode ? "On" : "Off"]" /mob/living/carbon/alien/getTrail() if(getBruteLoss() < 200) diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm index 55dc90671d4..a4893fd07d2 100644 --- a/code/modules/mob/living/carbon/alien/alien_defense.dm +++ b/code/modules/mob/living/carbon/alien/alien_defense.dm @@ -13,63 +13,53 @@ As such, they can either help or harm other aliens. Help works like the human help command while harm is a simple nibble. In all, this is a lot like the monkey code. /N */ -/mob/living/carbon/alien/attack_alien(mob/living/carbon/alien/M) +/mob/living/carbon/alien/attack_alien(mob/living/carbon/alien/M, modifiers) if(isturf(loc) && istype(loc.loc, /area/start)) to_chat(M, "No attacking people at spawn, you jackass.") return - switch(M.a_intent) + if(M.combat_mode) + if(M == src && check_self_for_injuries()) + return + set_resting(FALSE) + AdjustStun(-60) + AdjustKnockdown(-60) + AdjustImmobilized(-60) + AdjustParalyzed(-60) + AdjustUnconscious(-60) + AdjustSleeping(-100) + visible_message("[M.name] nuzzles [src] trying to wake [p_them()] up!") + else if(health > 0) + M.do_attack_animation(src, ATTACK_EFFECT_BITE) + playsound(loc, 'sound/weapons/bite.ogg', 50, TRUE, -1) + visible_message("[M.name] bites [src]!", \ + "[M.name] bites you!", "You hear a chomp!", COMBAT_MESSAGE_RANGE, M) + to_chat(M, "You bite [src]!") + adjustBruteLoss(1) + log_combat(M, src, "attacked") + updatehealth() + else + to_chat(M, "[name] is too injured for that.") - if ("help") - if(M == src && check_self_for_injuries()) - return - set_resting(FALSE) - AdjustStun(-60) - AdjustKnockdown(-60) - AdjustImmobilized(-60) - AdjustParalyzed(-60) - AdjustUnconscious(-60) - AdjustSleeping(-100) - visible_message("[M.name] nuzzles [src] trying to wake [p_them()] up!") - - if ("grab") - grabbedby(M) - - else - if(health > 0) - M.do_attack_animation(src, ATTACK_EFFECT_BITE) - playsound(loc, 'sound/weapons/bite.ogg', 50, TRUE, -1) - visible_message("[M.name] bites [src]!", \ - "[M.name] bites you!", "You hear a chomp!", COMBAT_MESSAGE_RANGE, M) - to_chat(M, "You bite [src]!") - adjustBruteLoss(1) - log_combat(M, src, "attacked") - updatehealth() - else - to_chat(M, "[name] is too injured for that.") /mob/living/carbon/alien/attack_larva(mob/living/carbon/alien/larva/L) return attack_alien(L) -/mob/living/carbon/alien/attack_hand(mob/living/carbon/human/M) +/mob/living/carbon/alien/attack_hand(mob/living/carbon/human/M, modifiers) . = ..() if(.) //to allow surgery to return properly. return FALSE - switch(M.a_intent) - if("help") - help_shake_act(M) - if("grab") - grabbedby(M) - if ("harm") - M.do_attack_animation(src, ATTACK_EFFECT_PUNCH) - return TRUE - if("disarm") + if(M.combat_mode) + if(modifiers && modifiers["right"]) M.do_attack_animation(src, ATTACK_EFFECT_DISARM) return TRUE - return FALSE + M.do_attack_animation(src, ATTACK_EFFECT_PUNCH) + return TRUE + else + help_shake_act(M) /mob/living/carbon/alien/attack_paw(mob/living/carbon/human/M) diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index c3629113fc8..c80c80d88fc 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -3,7 +3,6 @@ icon_state = "alien" pass_flags = PASSTABLE butcher_results = list(/obj/item/food/meat/slab/xeno = 5, /obj/item/stack/sheet/animalhide/xeno = 1) - possible_a_intents = list(INTENT_HELP, INTENT_DISARM, INTENT_GRAB, INTENT_HARM) limb_destroyer = 1 hud_type = /datum/hud/alien melee_damage_lower = 20 //Refers to unarmed damage, aliens do unarmed attacks. diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm index ca84d8aa729..2677c1a30d2 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm @@ -14,31 +14,10 @@ "[user] [hitverb]s you!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, user) to_chat(user, "You [hitverb] [src]!") -/mob/living/carbon/alien/humanoid/attack_hand(mob/living/carbon/human/M) +/mob/living/carbon/alien/humanoid/attack_hand(mob/living/carbon/human/M, modifiers) if(..()) - switch(M.a_intent) - if ("harm") - var/damage = rand(1, 9) - if (prob(90)) - playsound(loc, "punch", 25, TRUE, -1) - visible_message("[M] punches [src]!", \ - "[M] punches you!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, M) - to_chat(M, "You punch [src]!") - if ((stat != DEAD) && (damage > 9 || prob(5)))//Regular humans have a very small chance of knocking an alien down. - Unconscious(40) - visible_message("[M] knocks [src] down!", \ - "[M] knocks you down!", "You hear a sickening sound of flesh hitting flesh!", null, M) - to_chat(M, "You knock [src] down!") - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) - apply_damage(damage, BRUTE, affecting) - log_combat(M, src, "attacked") - else - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, TRUE, -1) - visible_message("[M]'s punch misses [src]!", \ - "You avoid [M]'s punch!", "You hear a swoosh!", COMBAT_MESSAGE_RANGE, M) - to_chat(M, "Your punch misses [src]!") - - if ("disarm") + if(M.combat_mode) + if(modifiers && modifiers["right"]) if (body_position == STANDING_UP) if (prob(5)) Unconscious(40) @@ -47,19 +26,26 @@ visible_message("[M] pushes [src] down!", \ "[M] pushes you down!", "You hear aggressive shuffling followed by a loud thud!", null, M) to_chat(M, "You push [src] down!") - else - if (prob(50)) - dropItemToGround(get_active_held_item()) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) - visible_message("[M] disarms [src]!", \ - "[M] disarms you!", "You hear aggressive shuffling!", COMBAT_MESSAGE_RANGE, M) - to_chat(M, "You disarm [src]!") - else - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, TRUE, -1) - visible_message("[M] fails to disarm [src]!",\ - "[M] fails to disarm you!", "You hear a swoosh!", COMBAT_MESSAGE_RANGE, M) - to_chat(M, "You fail to disarm [src]!") - + return TRUE + var/damage = rand(1, 9) + if (prob(90)) + playsound(loc, "punch", 25, TRUE, -1) + visible_message("[M] punches [src]!", \ + "[M] punches you!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, M) + to_chat(M, "You punch [src]!") + if ((stat != DEAD) && (damage > 9 || prob(5)))//Regular humans have a very small chance of knocking an alien down. + Unconscious(40) + visible_message("[M] knocks [src] down!", \ + "[M] knocks you down!", "You hear a sickening sound of flesh hitting flesh!", null, M) + to_chat(M, "You knock [src] down!") + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) + apply_damage(damage, BRUTE, affecting) + log_combat(M, src, "attacked") + else + playsound(loc, 'sound/weapons/punchmiss.ogg', 25, TRUE, -1) + visible_message("[M]'s punch misses [src]!", \ + "You avoid [M]'s punch!", "You hear a swoosh!", COMBAT_MESSAGE_RANGE, M) + to_chat(M, "Your punch misses [src]!") /mob/living/carbon/alien/humanoid/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect) diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 2874e2dddac..f5fdbf63203 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -57,7 +57,7 @@ ..(amount) //can't equip anything -/mob/living/carbon/alien/larva/attack_ui(slot_id) +/mob/living/carbon/alien/larva/attack_ui(slot_id, params) return diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 8f663711d0c..d3321d572d8 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -65,14 +65,15 @@ else mode() // Activate held item -/mob/living/carbon/attackby(obj/item/I, mob/user, params) +/mob/living/carbon/attackby(obj/item/I, mob/living/user, params) for(var/datum/surgery/S in surgeries) if(body_position == LYING_DOWN || !S.lying_required) - if((S.self_operable || user != src) && (user.a_intent == INTENT_HELP || user.a_intent == INTENT_DISARM)) - if(S.next_step(user,user.a_intent)) + var/list/modifiers = params2list(params) + if((S.self_operable || user != src) && !user.combat_mode) + if(S.next_step(user, modifiers)) return 1 - if(!all_wounds || !(user.a_intent == INTENT_HELP || user == src)) + if(!all_wounds || !(!user.combat_mode || user == src)) return ..() for(var/i in shuffle(all_wounds)) @@ -454,7 +455,7 @@ . = ..() . += add_abilities_to_panel() -/mob/living/carbon/attack_ui(slot) +/mob/living/carbon/attack_ui(slot, params) if(!has_hand_for_held_index(active_hand_index)) return 0 return ..() diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 41096b9d5f5..779dba225f3 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -140,7 +140,7 @@ return //so we don't call the carbon's attack_hand(). //ATTACK HAND IGNORING PARENT RETURN VALUE -/mob/living/carbon/attack_hand(mob/living/carbon/human/user) +/mob/living/carbon/attack_hand(mob/living/carbon/human/user, modifiers) if(SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_HAND, user) & COMPONENT_CANCEL_ATTACK_CHAIN) . = TRUE @@ -156,8 +156,8 @@ for(var/datum/surgery/S in surgeries) if(body_position == LYING_DOWN || !S.lying_required) - if(user.a_intent == INTENT_HELP || user.a_intent == INTENT_DISARM) - if(S.next_step(user, user.a_intent)) + if(!user.combat_mode) + if(S.next_step(user, modifiers)) return TRUE for(var/i in all_wounds) @@ -165,13 +165,13 @@ if(W.try_handling(user)) return TRUE - if (user.apply_martial_art(src)) + if (user.apply_martial_art(src, modifiers)) return TRUE return FALSE -/mob/living/carbon/attack_paw(mob/living/carbon/human/M) +/mob/living/carbon/attack_paw(mob/living/carbon/human/M, modifiers) if(can_inject(M, TRUE)) for(var/thing in diseases) @@ -184,7 +184,7 @@ if(D.spread_flags & DISEASE_SPREAD_CONTACT_SKIN) ContactContractDisease(D) - if(M.a_intent == INTENT_HELP) + if(!M.combat_mode) help_shake_act(M) return FALSE @@ -246,7 +246,7 @@ */ /mob/living/carbon/proc/disarm(mob/living/carbon/target) if(zone_selected == BODY_ZONE_PRECISE_MOUTH) - var/target_on_help_and_unarmed = target.a_intent == INTENT_HELP && !target.get_active_held_item() + var/target_on_help_and_unarmed = !target.combat_mode && !target.get_active_held_item() if(target_on_help_and_unarmed || HAS_TRAIT(target, TRAIT_RESTRAINED)) do_slap_animation(target) playsound(target.loc, 'sound/weapons/slap.ogg', 50, TRUE, -1) @@ -450,7 +450,7 @@ null, "You hear a soft patter.", DEFAULT_MESSAGE_RANGE, list(M, src)) to_chat(M, "You give [src] a pat on the head to make [p_them()] feel better!") to_chat(src, "[M] gives you a pat on the head to make you feel better! ") - + if(HAS_TRAIT(src, TRAIT_BADTOUCH)) to_chat(M, "[src] looks visibly upset as you pat [p_them()] on the head.") @@ -492,7 +492,7 @@ SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "friendly_hug", /datum/mood_event/besthug, M) else if (hugger_mood.sanity >= SANITY_DISTURBED) SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "friendly_hug", /datum/mood_event/betterhug, M) - + if(HAS_TRAIT(src, TRAIT_BADTOUCH)) to_chat(M, "[src] looks visibly upset as you hug [p_them()].") diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index ada5e1ec9b1..1ea7f1c9c32 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -2,7 +2,6 @@ blood_volume = BLOOD_VOLUME_NORMAL gender = MALE pressure_resistance = 15 - possible_a_intents = list(INTENT_HELP, INTENT_HARM) hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD,GLAND_HUD,NANITE_HUD,DIAG_NANITE_FULL_HUD) has_limbs = 1 held_items = list(null, null) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index f8dcec43784..65d19303adc 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -316,7 +316,7 @@ if(src != user) if(HAS_TRAIT(user, TRAIT_EMPATH)) - if (a_intent != INTENT_HELP) + if (combat_mode) msg += "[t_He] seem[p_s()] to be on guard.\n" if (getOxyLoss() >= 10) msg += "[t_He] seem[p_s()] winded.\n" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index bac132474e6..430b2509a49 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -62,7 +62,7 @@ /mob/living/carbon/human/get_status_tab_items() . = ..() - . += "Intent: [a_intent]" + . += "Combat mode: [combat_mode ? "On" : "Off"]" . += "Move Mode: [m_intent]" if (internal) if (!internal.air_contents) @@ -1036,7 +1036,7 @@ return ..() /mob/living/carbon/human/mouse_buckle_handling(mob/living/M, mob/living/user) - if(pulling != M || grab_state != GRAB_AGGRESSIVE || stat != CONSCIOUS || a_intent != INTENT_GRAB) + if(pulling != M || grab_state != GRAB_AGGRESSIVE || stat != CONSCIOUS) return FALSE //If they dragged themselves to you and you're currently aggressively grabbing them try to piggyback diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index ef76e7a8190..a710317f099 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -190,7 +190,7 @@ SSblackbox.record_feedback("tally", "zone_targeted", 1, target_area) // the attacked_by code varies among species - return dna.species.spec_attacked_by(I, user, affecting, a_intent, src) + return dna.species.spec_attacked_by(I, user, affecting, src) /mob/living/carbon/human/attack_hulk(mob/living/carbon/human/user) @@ -206,23 +206,21 @@ to_chat(user, "You [hulk_verb] [src]!") apply_damage(15, BRUTE, wound_bonus=10) -/mob/living/carbon/human/attack_hand(mob/user) +/mob/living/carbon/human/attack_hand(mob/user, modifiers) if(..()) //to allow surgery to return properly. return if(ishuman(user)) var/mob/living/carbon/human/H = user - dna.species.spec_attack_hand(H, src) + dna.species.spec_attack_hand(H, src, null, modifiers) -/mob/living/carbon/human/attack_paw(mob/living/carbon/human/M) +/mob/living/carbon/human/attack_paw(mob/living/carbon/human/M, modifiers) var/dam_zone = pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) if(!affecting) affecting = get_bodypart(BODY_ZONE_CHEST) - if(M.a_intent == INTENT_HELP) - ..() //shaking - return FALSE - if(M.a_intent == INTENT_DISARM) //Always drop item in hand, if no item, get stunned instead. + + if(modifiers && modifiers["right"]) //Always drop item in hand, if no item, get stunned instead. var/obj/item/I = get_active_held_item() if(I && !(I.item_flags & ABSTRACT) && dropItemToGround(I)) playsound(loc, 'sound/weapons/slash.ogg', 25, TRUE, -1) @@ -244,6 +242,10 @@ "[M] tackles you down!", "You hear aggressive shuffling followed by a loud thud!", null, M) to_chat(M, "You tackle [src] down!") + if(!M.combat_mode) + ..() //shaking + return FALSE + if(M.limb_destroyer) dismembering_strike(M, affecting.body_zone) @@ -258,7 +260,7 @@ apply_damage(damage, BRUTE, affecting, run_armor_check(affecting, MELEE)) return TRUE -/mob/living/carbon/human/attack_alien(mob/living/carbon/alien/humanoid/M) +/mob/living/carbon/human/attack_alien(mob/living/carbon/alien/humanoid/M, modifiers) if(check_shields(M, 0, "the M.name")) visible_message("[M] attempts to touch [src]!", \ "[M] attempts to touch you!", "You hear a swoosh!", null, M) @@ -267,7 +269,23 @@ . = ..() if(!.) return - if(M.a_intent == INTENT_HARM) + + if(modifiers && modifiers["right"]) //Always drop item in hand, if no item, get stun instead. + var/obj/item/I = get_active_held_item() + if(I && dropItemToGround(I)) + playsound(loc, 'sound/weapons/slash.ogg', 25, TRUE, -1) + visible_message("[M] disarms [src]!", \ + "[M] disarms you!", "You hear aggressive shuffling!", null, M) + to_chat(M, "You disarm [src]!") + else + playsound(loc, 'sound/weapons/pierce.ogg', 25, TRUE, -1) + Paralyze(100) + log_combat(M, src, "tackled") + visible_message("[M] tackles [src] down!", \ + "[M] tackles you down!", "You hear aggressive shuffling followed by a loud thud!", null, M) + to_chat(M, "You tackle [src] down!") + + if(M.combat_mode) if (w_uniform) w_uniform.add_fingerprint(M) var/damage = prob(90) ? rand(M.melee_damage_lower, M.melee_damage_upper) : 0 @@ -291,20 +309,7 @@ return TRUE apply_damage(damage, BRUTE, affecting, armor_block) - if(M.a_intent == INTENT_DISARM) //Always drop item in hand, if no item, get stun instead. - var/obj/item/I = get_active_held_item() - if(I && dropItemToGround(I)) - playsound(loc, 'sound/weapons/slash.ogg', 25, TRUE, -1) - visible_message("[M] disarms [src]!", \ - "[M] disarms you!", "You hear aggressive shuffling!", null, M) - to_chat(M, "You disarm [src]!") - else - playsound(loc, 'sound/weapons/pierce.ogg', 25, TRUE, -1) - Paralyze(100) - log_combat(M, src, "tackled") - visible_message("[M] tackles [src] down!", \ - "[M] tackles you down!", "You hear aggressive shuffling followed by a loud thud!", null, M) - to_chat(M, "You tackle [src] down!") + /mob/living/carbon/human/attack_larva(mob/living/carbon/alien/larva/L) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 2cd30251489..8d351944d42 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -7,7 +7,6 @@ appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE|LONG_GLIDE hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD, NANITE_HUD, DIAG_NANITE_FULL_HUD,ANTAG_HUD,GLAND_HUD,SENTIENT_DISEASE_HUD,FAN_HUD) hud_type = /datum/hud/human - possible_a_intents = list(INTENT_HELP, INTENT_DISARM, INTENT_GRAB, INTENT_HARM) pressure_resistance = 25 can_buckle = TRUE buckle_lying = 0 diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 33171ee4580..50e77b21293 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1418,7 +1418,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) /datum/species/proc/spec_hitby(atom/movable/AM, mob/living/carbon/human/H) return -/datum/species/proc/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style) +/datum/species/proc/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style, modifiers) if(!istype(M)) return CHECK_DNA_AND_SPECIES(M) @@ -1428,27 +1428,24 @@ GLOBAL_LIST_EMPTY(roundstart_races) return if(M.mind) attacker_style = M.mind.martial_art - if((M != H) && M.a_intent != INTENT_HELP && H.check_shields(M, 0, M.name, attack_type = UNARMED_ATTACK)) + if((M != H) && M.combat_mode && H.check_shields(M, 0, M.name, attack_type = UNARMED_ATTACK)) log_combat(M, H, "attempted to touch") H.visible_message("[M] attempts to touch [H]!", \ "[M] attempts to touch you!", "You hear a swoosh!", COMBAT_MESSAGE_RANGE, M) to_chat(M, "You attempt to touch [H]!") return + SEND_SIGNAL(M, COMSIG_MOB_ATTACK_HAND, M, H, attacker_style) - switch(M.a_intent) - if("help") - help(M, H, attacker_style) - if("grab") - grab(M, H, attacker_style) + if(modifiers && modifiers["right"]) + disarm(M, H, attacker_style) + return // dont attack after + if(M.combat_mode) + harm(M, H, attacker_style) + else + help(M, H, attacker_style) - if("harm") - harm(M, H, attacker_style) - - if("disarm") - disarm(M, H, attacker_style) - -/datum/species/proc/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) +/datum/species/proc/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, mob/living/carbon/human/H) // Allows you to put in item-specific reactions based on species if(user != H) if(H.check_shields(I, I.force, "the [I.name]", MELEE_ATTACK, I.armour_penetration)) @@ -1470,7 +1467,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/Iwound_bonus = I.wound_bonus // this way, you can't wound with a surgical tool on help intent if they have a surgery active and are lying down, so a misclick with a circular saw on the wrong limb doesn't bleed them dry (they still get hit tho) - if((I.item_flags & SURGICAL_TOOL) && user.a_intent == INTENT_HELP && H.body_position == LYING_DOWN && (LAZYLEN(H.surgeries) > 0)) + if((I.item_flags & SURGICAL_TOOL) && !user.combat_mode && H.body_position == LYING_DOWN && (LAZYLEN(H.surgeries) > 0)) Iwound_bonus = CANT_WOUND var/weakness = check_species_weakness(I, user) @@ -2139,7 +2136,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) . |= BIO_JUST_BONE ///Species override for unarmed attacks because the attack_hand proc was made by a mouth-breathing troglodyte on a tricycle. Also to whoever thought it would be a good idea to make it so the original spec_unarmedattack was not actually linked to unarmed attack needs to be checked by a doctor because they clearly have a vast empty space in their head. -/datum/species/proc/spec_unarmedattack(mob/living/carbon/human/user, atom/target) +/datum/species/proc/spec_unarmedattack(mob/living/carbon/human/user, atom/target, modifiers) return FALSE diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index d4e63eec819..a0c7c218519 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -350,10 +350,10 @@ /datum/species/golem/uranium/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style) ..() - if(COOLDOWN_FINISHED(src, radiation_emission_cooldown) && M != H && M.a_intent != INTENT_HELP) + if(COOLDOWN_FINISHED(src, radiation_emission_cooldown) && M != H && M.combat_mode) radiation_emission(H) -/datum/species/golem/uranium/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) +/datum/species/golem/uranium/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, mob/living/carbon/human/H) ..() if(COOLDOWN_FINISHED(src, radiation_emission_cooldown) && user != H) radiation_emission(H) @@ -466,10 +466,10 @@ /datum/species/golem/bluespace/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style) ..() - if(world.time > last_teleport + teleport_cooldown && M != H && M.a_intent != INTENT_HELP) + if(world.time > last_teleport + teleport_cooldown && M != H && M.combat_mode) reactive_teleport(H) -/datum/species/golem/bluespace/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) +/datum/species/golem/bluespace/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, mob/living/carbon/human/H) ..() if(world.time > last_teleport + teleport_cooldown && user != H) reactive_teleport(H) @@ -586,11 +586,11 @@ /datum/species/golem/bananium/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style) ..() - if(world.time > last_banana + banana_cooldown && M != H && M.a_intent != INTENT_HELP) + if(world.time > last_banana + banana_cooldown && M != H && M.combat_mode) new/obj/item/grown/bananapeel/specialpeel(get_turf(H)) last_banana = world.time -/datum/species/golem/bananium/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) +/datum/species/golem/bananium/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, mob/living/carbon/human/H) ..() if(world.time > last_banana + banana_cooldown && user != H) new/obj/item/grown/bananapeel/specialpeel(get_turf(H)) @@ -840,10 +840,10 @@ /datum/species/golem/bronze/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style) ..() - if(world.time > last_gong_time + gong_cooldown && M.a_intent != INTENT_HELP) + if(world.time > last_gong_time + gong_cooldown && M.combat_mode) gong(H) -/datum/species/golem/bronze/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) +/datum/species/golem/bronze/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, mob/living/carbon/human/H) ..() if(world.time > last_gong_time + gong_cooldown) gong(H) @@ -906,7 +906,7 @@ var/last_creation = 0 var/brother_creation_cooldown = 300 -/datum/species/golem/cardboard/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) +/datum/species/golem/cardboard/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, mob/living/carbon/human/H) . = ..() if(user != H) return FALSE //forced reproduction is rape. diff --git a/code/modules/mob/living/carbon/human/species_types/monkeys.dm b/code/modules/mob/living/carbon/human/species_types/monkeys.dm index 1a5be133150..85ccc73be20 100644 --- a/code/modules/mob/living/carbon/human/species_types/monkeys.dm +++ b/code/modules/mob/living/carbon/human/species_types/monkeys.dm @@ -60,13 +60,13 @@ C.butcher_results = null C.dna.remove_mutation(RACEMUT) -/datum/species/monkey/spec_unarmedattack(mob/living/carbon/human/user, atom/target) +/datum/species/monkey/spec_unarmedattack(mob/living/carbon/human/user, atom/target, modifiers) . = ..() if(HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) if(!iscarbon(target)) return TRUE var/mob/living/carbon/victim = target - if(user.a_intent != INTENT_HARM || user.is_muzzled()) + if(user.is_muzzled()) return TRUE var/obj/item/bodypart/affecting = null if(ishuman(victim)) @@ -88,7 +88,7 @@ var/datum/disease/bite_infection = d victim.ForceContractDisease(bite_infection) return TRUE - target.attack_paw(user) + target.attack_paw(user, modifiers) return TRUE diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm index 3af4cb86ff2..fbcf38e52e1 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -53,7 +53,7 @@ /datum/species/zombie/infectious/spec_life(mob/living/carbon/C) . = ..() - C.a_intent = INTENT_HARM // THE SUFFERING MUST FLOW + C.set_combat_mode(TRUE) // THE SUFFERING MUST FLOW //Zombies never actually die, they just fall down until they regenerate enough to rise back up. //They must be restrained, beheaded or gibbed to stop being a threat. diff --git a/code/modules/mob/living/carbon/human/suicides.dm b/code/modules/mob/living/carbon/human/suicides.dm index bde239a36d4..8aac47d188d 100644 --- a/code/modules/mob/living/carbon/human/suicides.dm +++ b/code/modules/mob/living/carbon/human/suicides.dm @@ -3,15 +3,3 @@ adjustBruteLoss(max(200 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) death(FALSE) ghostize(FALSE) // Disallows reentering body and disassociates mind - -/mob/living/carbon/human/proc/disarm_suicide() - var/suicide_message = "[src] is ripping [p_their()] own arms off! It looks like [p_theyre()] trying to commit suicide." //heheh get it? - visible_message("[suicide_message]", "[suicide_message]") - - var/timer = 15 - for(var/obj/item/bodypart/thing in bodyparts) - if(thing.body_part == ARM_LEFT || thing.body_part == ARM_RIGHT) - addtimer(CALLBACK(thing, /obj/item/bodypart/.proc/dismember), timer) - addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/effects/cartoon_pop.ogg', 70), timer) - timer += 15 - addtimer(CALLBACK(src, /mob/living/carbon/human/.proc/delayed_suicide, FALSE), timer-10) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index c9032074e77..3e749eb5000 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -122,12 +122,12 @@ mob_swap = TRUE else //You can swap with the person you are dragging on grab intent, and restrained people in most cases - if(M.pulledby == src && a_intent == INTENT_GRAB && !too_strong) + if(M.pulledby == src && !too_strong) mob_swap = TRUE else if( !(HAS_TRAIT(M, TRAIT_NOMOBSWAP) || HAS_TRAIT(src, TRAIT_NOMOBSWAP))&&\ - ((HAS_TRAIT(M, TRAIT_RESTRAINED) && !too_strong) || M.a_intent == INTENT_HELP) &&\ - (HAS_TRAIT(src, TRAIT_RESTRAINED) || a_intent == INTENT_HELP) + ((HAS_TRAIT(M, TRAIT_RESTRAINED) && !too_strong) || !combat_mode) &&\ + (HAS_TRAIT(src, TRAIT_RESTRAINED) || !combat_mode) ) mob_swap = TRUE if(mob_swap) @@ -168,8 +168,10 @@ if(HAS_TRAIT(L, TRAIT_PUSHIMMUNE)) return TRUE //If they're a human, and they're not in help intent, block pushing - if(ishuman(M) && (M.a_intent != INTENT_HELP)) - return TRUE + if(ishuman(M)) + var/mob/living/carbon/human/human = M + if(human.combat_mode) + return TRUE //anti-riot equipment is also anti-push for(var/obj/item/I in M.held_items) if(!istype(M, /obj/item/clothing)) @@ -300,6 +302,7 @@ M.LAssailant = usr if(isliving(M)) var/mob/living/L = M + SEND_SIGNAL(M, COMSIG_LIVING_GET_PULLED, src) //Share diseases that are spread by touch for(var/thing in diseases) @@ -362,7 +365,7 @@ if(istype(AM) && Adjacent(AM)) start_pulling(AM) - else + else if(!combat_mode) //Don;'t cancel pulls if misclicking in combat mode. stop_pulling() /mob/living/stop_pulling() @@ -1900,7 +1903,7 @@ * It is also used to process martial art attacks by nonhumans, even against humans * Human vs human attacks are handled in species code right now. */ -/mob/living/proc/apply_martial_art(mob/living/target) +/mob/living/proc/apply_martial_art(mob/living/target, modifiers, is_grab) if(HAS_TRAIT(target, TRAIT_MARTIAL_ARTS_IMMUNE)) return FALSE if(ishuman(target) && ishuman(src)) //Human vs human are handled in species code @@ -1908,15 +1911,16 @@ var/datum/martial_art/style = mind?.martial_art var/attack_result = FALSE if (style) - switch (a_intent) - if (INTENT_GRAB) - attack_result = style.grab_act(src, target) - if (INTENT_HARM) - if (HAS_TRAIT(src, TRAIT_PACIFISM)) - return FALSE - attack_result = style.harm_act(src, target) - if (INTENT_DISARM) - attack_result = style.disarm_act(src, target) - if (INTENT_HELP) - attack_result = style.help_act(src, target) + if (is_grab) + attack_result = style.grab_act(src, target) + if(modifiers && modifiers["right"]) + attack_result = style.disarm_act(src, target) + if(combat_mode) + if (HAS_TRAIT(src, TRAIT_PACIFISM)) + return FALSE + attack_result = style.harm_act(src, target) + else + attack_result = style.help_act(src, target) + + return attack_result diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index a45d056ff13..2aafb1ae89b 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -68,6 +68,19 @@ else return 0 +/mob/living/proc/set_combat_mode(new_mode, silent = TRUE) + if(combat_mode == new_mode) + return + . = combat_mode + combat_mode = new_mode + if(hud_used?.action_intent) + hud_used.action_intent.update_icon() + if(silent || !(client?.prefs.toggles & SOUND_COMBATMODE)) + return + if(combat_mode) + playsound_local(src, 'sound/misc/ui_togglecombat.ogg', 25, FALSE, pressure_affected = FALSE) //Sound from interbay! + else + playsound_local(src, 'sound/misc/ui_toggleoffcombat.ogg', 25, FALSE, pressure_affected = FALSE) //Slightly modified version of the above /mob/living/hitby(atom/movable/AM, skipcatch, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum) if(isitem(AM)) @@ -144,9 +157,6 @@ return FALSE if(!user.pulling || user.pulling != src || user.grab_state != old_grab_state) return FALSE - if(user.a_intent != INTENT_GRAB) - to_chat(user, "You must be on grab intent to upgrade your grab further!") - return FALSE user.setGrabState(user.grab_state + 1) switch(user.grab_state) if(GRAB_AGGRESSIVE) @@ -223,95 +233,85 @@ log_combat(M, src, "attacked") return TRUE -/mob/living/attack_hand(mob/living/carbon/human/user) +/mob/living/attack_hand(mob/living/carbon/human/user, modifiers) . = ..() - if (user.apply_martial_art(src)) + if (user.apply_martial_art(src, modifiers)) return TRUE -/mob/living/attack_paw(mob/living/carbon/human/M) +/mob/living/attack_paw(mob/living/carbon/human/M, modifiers) if(isturf(loc) && istype(loc.loc, /area/start)) to_chat(M, "No attacking people at spawn, you jackass.") return FALSE - if (M.apply_martial_art(src)) + if (M.apply_martial_art(src, modifiers)) return TRUE - - switch (M.a_intent) - if (INTENT_HARM) - if(HAS_TRAIT(M, TRAIT_PACIFISM)) - to_chat(M, "You don't want to hurt anyone!") - return FALSE - - if(M.is_muzzled() || M.is_mouth_covered(FALSE, TRUE)) - to_chat(M, "You can't bite with your mouth covered!") - return FALSE - M.do_attack_animation(src, ATTACK_EFFECT_BITE) - if (prob(75)) - log_combat(M, src, "attacked") - playsound(loc, 'sound/weapons/bite.ogg', 50, TRUE, -1) - visible_message("[M.name] bites [src]!", \ - "[M.name] bites you!", "You hear a chomp!", COMBAT_MESSAGE_RANGE, M) - to_chat(M, "You bite [src]!") - return TRUE - else - visible_message("[M.name]'s bite misses [src]!", \ - "You avoid [M.name]'s bite!", "You hear the sound of jaws snapping shut!", COMBAT_MESSAGE_RANGE, M) - to_chat(M, "Your bite misses [src]!") - if (INTENT_GRAB) - grabbedby(M) + if(modifiers && modifiers["right"]) + if (M != src) + M.disarm(src) + return TRUE + if (M.combat_mode) + if(HAS_TRAIT(M, TRAIT_PACIFISM)) + to_chat(M, "You don't want to hurt anyone!") return FALSE - if (INTENT_DISARM) - if (M != src) - M.disarm(src) - return TRUE + + if(M.is_muzzled() || M.is_mouth_covered(FALSE, TRUE)) + to_chat(M, "You can't bite with your mouth covered!") + return FALSE + M.do_attack_animation(src, ATTACK_EFFECT_BITE) + if (prob(75)) + log_combat(M, src, "attacked") + playsound(loc, 'sound/weapons/bite.ogg', 50, TRUE, -1) + visible_message("[M.name] bites [src]!", \ + "[M.name] bites you!", "You hear a chomp!", COMBAT_MESSAGE_RANGE, M) + to_chat(M, "You bite [src]!") + return TRUE + else + visible_message("[M.name]'s bite misses [src]!", \ + "You avoid [M.name]'s bite!", "You hear the sound of jaws snapping shut!", COMBAT_MESSAGE_RANGE, M) + to_chat(M, "Your bite misses [src]!") + return FALSE /mob/living/attack_larva(mob/living/carbon/alien/larva/L) - switch(L.a_intent) - if("help") - visible_message("[L.name] rubs its head against [src].", \ - "[L.name] rubs its head against you.", null, null, L) - to_chat(L, "You rub your head against [src].") - return FALSE + if(L.combat_mode) + if(HAS_TRAIT(L, TRAIT_PACIFISM)) + to_chat(L, "You don't want to hurt anyone!") + return + L.do_attack_animation(src) + if(prob(90)) + log_combat(L, src, "attacked") + visible_message("[L.name] bites [src]!", \ + "[L.name] bites you!", "You hear a chomp!", COMBAT_MESSAGE_RANGE, L) + to_chat(L, "You bite [src]!") + playsound(loc, 'sound/weapons/bite.ogg', 50, TRUE, -1) + return TRUE else - if(HAS_TRAIT(L, TRAIT_PACIFISM)) - to_chat(L, "You don't want to hurt anyone!") - return - - L.do_attack_animation(src) - if(prob(90)) - log_combat(L, src, "attacked") - visible_message("[L.name] bites [src]!", \ - "[L.name] bites you!", "You hear a chomp!", COMBAT_MESSAGE_RANGE, L) - to_chat(L, "You bite [src]!") - playsound(loc, 'sound/weapons/bite.ogg', 50, TRUE, -1) - return TRUE - else - visible_message("[L.name]'s bite misses [src]!", \ - "You avoid [L.name]'s bite!", "You hear the sound of jaws snapping shut!", COMBAT_MESSAGE_RANGE, L) - to_chat(L, "Your bite misses [src]!") + visible_message("[L.name]'s bite misses [src]!", \ + "You avoid [L.name]'s bite!", "You hear the sound of jaws snapping shut!", COMBAT_MESSAGE_RANGE, L) + to_chat(L, "Your bite misses [src]!") + else + visible_message("[L.name] rubs its head against [src].", \ + "[L.name] rubs its head against you.", null, null, L) + to_chat(L, "You rub your head against [src].") + return FALSE return FALSE -/mob/living/attack_alien(mob/living/carbon/alien/humanoid/M) - switch(M.a_intent) - if ("help") - visible_message("[M] caresses [src] with its scythe-like arm.", \ - "[M] caresses you with its scythe-like arm.", null, null, M) - to_chat(M, "You caress [src] with your scythe-like arm.") +/mob/living/attack_alien(mob/living/carbon/alien/humanoid/M, modifiers) + if(modifiers && modifiers["right"]) + M.do_attack_animation(src, ATTACK_EFFECT_DISARM) + return TRUE + if(M.combat_mode) + if(HAS_TRAIT(M, TRAIT_PACIFISM)) + to_chat(M, "You don't want to hurt anyone!") return FALSE - if ("grab") - grabbedby(M) - return FALSE - if("harm") - if(HAS_TRAIT(M, TRAIT_PACIFISM)) - to_chat(M, "You don't want to hurt anyone!") - return FALSE - M.do_attack_animation(src) - return TRUE - if("disarm") - M.do_attack_animation(src, ATTACK_EFFECT_DISARM) - return TRUE + M.do_attack_animation(src) + return TRUE + else + visible_message("[M] caresses [src] with its scythe-like arm.", \ + "[M] caresses you with its scythe-like arm.", null, null, M) + to_chat(M, "You caress [src] with your scythe-like arm.") + return FALSE /mob/living/attack_hulk(mob/living/carbon/human/user) ..() diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 3d5cf896f5d..3091f3bfc25 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -159,6 +159,9 @@ var/icon/head_icon = 'icons/mob/pets_held.dmi'//what it looks like on your head var/held_state = ""//icon state for the above + ///If combat mode is on or not + var/combat_mode = FALSE + /// Is this mob allowed to be buckled/unbuckled to/from things? var/can_buckle_to = TRUE diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index c649a275e6d..40a7f89deb9 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -20,7 +20,7 @@ move_resist = MOVE_FORCE_OVERPOWERING density = TRUE status_flags = CANSTUN|CANPUSH - a_intent = INTENT_HARM //so we always get pushed instead of trying to swap + combat_mode = TRUE //so we always get pushed instead of trying to swap sight = SEE_TURFS | SEE_MOBS | SEE_OBJS see_in_dark = 8 hud_type = /datum/hud/ai diff --git a/code/modules/mob/living/silicon/pai/pai_defense.dm b/code/modules/mob/living/silicon/pai/pai_defense.dm index c01426ddc73..cfc77011c6b 100644 --- a/code/modules/mob/living/silicon/pai/pai_defense.dm +++ b/code/modules/mob/living/silicon/pai/pai_defense.dm @@ -40,23 +40,20 @@ fold_in(force = 1) Paralyze(200) -/mob/living/silicon/pai/attack_hand(mob/living/carbon/human/user) - switch(user.a_intent) - if("help") - visible_message("[user] gently pats [src] on the head, eliciting an off-putting buzzing from its holographic field.") - if("disarm") - visible_message("[user] boops [src] on the head!") - if("harm") - user.do_attack_animation(src) - if (user.name == master) - visible_message("Responding to its master's touch, [src] disengages its holochassis emitter, rapidly losing coherence.") - if(do_after(user, 1 SECONDS, src)) - fold_in() - if(user.put_in_hands(card)) - user.visible_message("[user] promptly scoops up [user.p_their()] pAI's card.") - else - visible_message("[user] stomps on [src]!.") - take_holo_damage(2) +/mob/living/silicon/pai/attack_hand(mob/living/carbon/human/user, modifiers) + if(user.combat_mode) + user.do_attack_animation(src) + if (user.name == master) + visible_message("Responding to its master's touch, [src] disengages its holochassis emitter, rapidly losing coherence.") + if(do_after(user, 1 SECONDS, TRUE, src)) + fold_in() + if(user.put_in_hands(card)) + user.visible_message("[user] promptly scoops up [user.p_their()] pAI's card.") + else + visible_message("[user] stomps on [src]!.") + take_holo_damage(2) + else + visible_message("[user] gently pats [src] on the head, eliciting an off-putting buzzing from its holographic field.") /mob/living/silicon/pai/bullet_act(obj/projectile/Proj) if(Proj.stun) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index bfa35ee2c52..a55d7a3ffa5 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -861,7 +861,7 @@ /mob/living/silicon/robot/mouse_buckle_handling(mob/living/M, mob/living/user) //Don't try buckling on INTENT_HARM so that silicons can search people's inventories without loading them - if(can_buckle && isliving(user) && isliving(M) && !(M in buckled_mobs) && ((user != src) || (a_intent != INTENT_HARM))) + if(can_buckle && isliving(user) && isliving(M) && !(M in buckled_mobs) && ((user != src) || (!combat_mode))) return user_buckle_mob(M, user, check_loc = FALSE) /mob/living/silicon/robot/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE, buckle_mob_flags= RIDER_NEEDS_ARM) diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index c7659e374ce..4f8bd4b14cc 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -4,8 +4,8 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real /obj/item/clothing/head/chameleon/broken \ ))) -/mob/living/silicon/robot/attackby(obj/item/W, mob/user, params) - if(W.tool_behaviour == TOOL_WELDER && (user.a_intent != INTENT_HARM || user == src)) +/mob/living/silicon/robot/attackby(obj/item/W, mob/living/user, params) + if(W.tool_behaviour == TOOL_WELDER && (!user.combat_mode || user == src)) user.changeNext_move(CLICK_CD_MELEE) if (!getBruteLoss()) to_chat(user, "[src] is already in good condition!") @@ -99,7 +99,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real deconstruct() return - if(W.slot_flags & ITEM_SLOT_HEAD && hat_offset != INFINITY && user.a_intent == INTENT_HELP && !is_type_in_typecache(W, GLOB.blacklisted_borg_hats)) + if(W.slot_flags & ITEM_SLOT_HEAD && hat_offset != INFINITY && !user.combat_mode && !is_type_in_typecache(W, GLOB.blacklisted_borg_hats)) if(hat && HAS_TRAIT(hat, TRAIT_NODROP)) to_chat(user, "You can't seem to remove [src]'s existing headwear!") return @@ -109,7 +109,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real if (user.temporarilyRemoveItemFromInventory(W, TRUE)) place_on_head(W) return - if(istype(W, /obj/item/defibrillator) && user.a_intent == "help") + if(istype(W, /obj/item/defibrillator) && !user.combat_mode) if(!opened) to_chat(user, "You must access the cyborg's internals!") return @@ -235,8 +235,8 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real spark_system.start() return ..() -/mob/living/silicon/robot/attack_alien(mob/living/carbon/alien/humanoid/M) - if (M.a_intent == INTENT_DISARM) +/mob/living/silicon/robot/attack_alien(mob/living/carbon/alien/humanoid/M, modifiers) + if (modifiers && modifiers["right"]) if(body_position == STANDING_UP) M.do_attack_animation(src, ATTACK_EFFECT_DISARM) var/obj/item/I = get_active_held_item() diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index ec2e5b69708..c662d773522 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -9,7 +9,6 @@ see_in_dark = 8 bubble_icon = "machine" weather_immunities = list("ash") - possible_a_intents = list(INTENT_HELP, INTENT_HARM) mob_biotypes = MOB_ROBOTIC deathsound = 'sound/voice/borg_deathsound.ogg' speech_span = SPAN_ROBOT diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index 23250aeff0f..52db1f7c58b 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -46,7 +46,7 @@ return attack_hand(user) /mob/living/silicon/attack_larva(mob/living/carbon/alien/larva/L) - if(L.a_intent == INTENT_HELP) + if(!L.combat_mode) visible_message("[L.name] rubs its head against [src].") /mob/living/silicon/attack_hulk(mob/living/carbon/human/user) @@ -60,27 +60,25 @@ to_chat(user, "You punch [src]!") //ATTACK HAND IGNORING PARENT RETURN VALUE -/mob/living/silicon/attack_hand(mob/living/carbon/human/M) +/mob/living/silicon/attack_hand(mob/living/carbon/human/M, modifiers) . = FALSE if(SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_HAND, M) & COMPONENT_CANCEL_ATTACK_CHAIN) . = TRUE - switch(M.a_intent) - if ("help") - visible_message("[M] pets [src].", \ - "[M] pets you.", null, null, M) - to_chat(M, "You pet [src].") - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT_RND, "pet_borg", /datum/mood_event/pet_borg) - if("grab") - grabbedby(M) - else - M.do_attack_animation(src, ATTACK_EFFECT_PUNCH) - playsound(src.loc, 'sound/effects/bang.ogg', 10, TRUE) - visible_message("[M] punches [src], but doesn't leave a dent!", \ - "[M] punches you, but doesn't leave a dent!", null, COMBAT_MESSAGE_RANGE, M) - to_chat(M, "You punch [src], but don't leave a dent!") + if(M.combat_mode) + M.do_attack_animation(src, ATTACK_EFFECT_PUNCH) + playsound(src.loc, 'sound/effects/bang.ogg', 10, TRUE) + visible_message("[M] punches [src], but doesn't leave a dent!", \ + "[M] punches you, but doesn't leave a dent!", null, COMBAT_MESSAGE_RANGE, M) + to_chat(M, "You punch [src], but don't leave a dent!") + else + visible_message("[M] pets [src].", \ + "[M] pets you.", null, null, M) + to_chat(M, "You pet [src].") + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT_RND, "pet_borg", /datum/mood_event/pet_borg) + /mob/living/silicon/attack_drone(mob/living/simple_animal/drone/M) - if(M.a_intent == INTENT_HARM) + if(M.combat_mode) return return ..() diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm index aa72860d725..2f8a956040f 100644 --- a/code/modules/mob/living/simple_animal/animal_defense.dm +++ b/code/modules/mob/living/simple_animal/animal_defense.dm @@ -1,52 +1,48 @@ -/mob/living/simple_animal/attack_hand(mob/living/carbon/human/M) +/mob/living/simple_animal/attack_hand(mob/living/carbon/human/M, modifiers) // so that martial arts don't double dip if (..()) return TRUE - switch(M.a_intent) - if("help") - if (stat == DEAD) - return - visible_message("[M] [response_help_continuous] [src].", \ - "[M] [response_help_continuous] you.", null, null, M) - to_chat(M, "You [response_help_simple] [src].") - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) - if(pet_bonus) - funpet(M) - if("grab") - grabbedby(M) - - if("disarm") - M.do_attack_animation(src, ATTACK_EFFECT_DISARM) - playsound(src, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) - var/shove_dir = get_dir(M, src) - if(!Move(get_step(src, shove_dir), shove_dir)) - log_combat(M, src, "shoved", "failing to move it") - M.visible_message("[M.name] shoves [src]!", - "You shove [src]!", "You hear aggressive shuffling!", COMBAT_MESSAGE_RANGE, list(src)) - to_chat(src, "You're shoved by [M.name]!") - return TRUE - log_combat(M, src, "shoved", "pushing it") - M.visible_message("[M.name] shoves [src], pushing [p_them()]!", - "You shove [src], pushing [p_them()]!", "You hear aggressive shuffling!", COMBAT_MESSAGE_RANGE, list(src)) - to_chat(src, "You're pushed by [M.name]!") + if(modifiers && modifiers["right"]) + M.do_attack_animation(src, ATTACK_EFFECT_DISARM) + playsound(src, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + var/shove_dir = get_dir(M, src) + if(!Move(get_step(src, shove_dir), shove_dir)) + log_combat(M, src, "shoved", "failing to move it") + M.visible_message("[M.name] shoves [src]!", + "You shove [src]!", "You hear aggressive shuffling!", COMBAT_MESSAGE_RANGE, list(src)) + to_chat(src, "You're shoved by [M.name]!") return TRUE + log_combat(M, src, "shoved", "pushing it") + M.visible_message("[M.name] shoves [src], pushing [p_them()]!", + "You shove [src], pushing [p_them()]!", "You hear aggressive shuffling!", COMBAT_MESSAGE_RANGE, list(src)) + to_chat(src, "You're pushed by [M.name]!") + return TRUE - if("harm") - if(HAS_TRAIT(M, TRAIT_PACIFISM)) - to_chat(M, "You don't want to hurt [src]!") - return - M.do_attack_animation(src, ATTACK_EFFECT_PUNCH) - visible_message("[M] [response_harm_continuous] [src]!",\ - "[M] [response_harm_continuous] you!", null, COMBAT_MESSAGE_RANGE, M) - to_chat(M, "You [response_harm_simple] [src]!") - playsound(loc, attacked_sound, 25, TRUE, -1) - attack_threshold_check(harm_intent_damage) - log_combat(M, src, "attacked") - updatehealth() - return TRUE + if(!M.combat_mode) + if (stat == DEAD) + return + visible_message("[M] [response_help_continuous] [src].", \ + "[M] [response_help_continuous] you.", null, null, M) + to_chat(M, "You [response_help_simple] [src].") + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + if(pet_bonus) + funpet(M) + else + if(HAS_TRAIT(M, TRAIT_PACIFISM)) + to_chat(M, "You don't want to hurt [src]!") + return + M.do_attack_animation(src, ATTACK_EFFECT_PUNCH) + visible_message("[M] [response_harm_continuous] [src]!",\ + "[M] [response_harm_continuous] you!", null, COMBAT_MESSAGE_RANGE, M) + to_chat(M, "You [response_harm_simple] [src]!") + playsound(loc, attacked_sound, 25, TRUE, -1) + attack_threshold_check(harm_intent_damage) + log_combat(M, src, "attacked") + updatehealth() + return TRUE /** *This is used to make certain mobs (pet_bonus == TRUE) emote when pet, make a heart emoji at their location, and give the petter a moodlet. @@ -74,7 +70,7 @@ var/damage = rand(1, 3) attack_threshold_check(damage) return 1 - if (M.a_intent == INTENT_HELP) + if (!M.combat_mode) if (health > 0) visible_message("[M.name] [response_help_continuous] [src].", \ "[M.name] [response_help_continuous] you.", null, COMBAT_MESSAGE_RANGE, M) @@ -82,9 +78,9 @@ playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) -/mob/living/simple_animal/attack_alien(mob/living/carbon/alien/humanoid/M) +/mob/living/simple_animal/attack_alien(mob/living/carbon/alien/humanoid/M, modifiers) if(..()) //if harm or disarm intent. - if(M.a_intent == INTENT_DISARM) + if(modifiers && modifiers["right"]) playsound(loc, 'sound/weapons/pierce.ogg', 25, TRUE, -1) visible_message("[M] [response_disarm_continuous] [name]!", \ "[M] [response_disarm_continuous] you!", null, COMBAT_MESSAGE_RANGE, M) @@ -122,7 +118,7 @@ return attack_threshold_check(damage) /mob/living/simple_animal/attack_drone(mob/living/simple_animal/drone/M) - if(M.a_intent == INTENT_HARM) //No kicking dogs even as a rogue drone. Use a weapon. + if(M.combat_mode) //No kicking dogs even as a rogue drone. Use a weapon. return return ..() diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 92929243fc2..c3d4b82bbaa 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -292,7 +292,7 @@ /mob/living/simple_animal/bot/attack_hand(mob/living/carbon/human/H) - if(H.a_intent == INTENT_HELP) + if(!H.combat_mode) interact(H) else return ..() @@ -325,7 +325,7 @@ to_chat(user, "Controls are now [locked ? "locked" : "unlocked"].") return TRUE -/mob/living/simple_animal/bot/attackby(obj/item/W, mob/user, params) +/mob/living/simple_animal/bot/attackby(obj/item/W, mob/living/user, params) if(W.tool_behaviour == TOOL_SCREWDRIVER) if(!locked) open = !open @@ -347,7 +347,7 @@ ejectpai(user) else user.changeNext_move(CLICK_CD_MELEE) - if(W.tool_behaviour == TOOL_WELDER && user.a_intent != INTENT_HARM) + if(W.tool_behaviour == TOOL_WELDER && !user.combat_mode) if(health >= maxHealth) to_chat(user, "[src] does not need a repair!") return diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index 6daf0b49036..539509a116b 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -159,7 +159,7 @@ weapon.attack(C, src) C.Knockdown(20) -/mob/living/simple_animal/bot/cleanbot/attackby(obj/item/W, mob/user, params) +/mob/living/simple_animal/bot/cleanbot/attackby(obj/item/W, mob/living/user, params) if(W.GetID()) if(bot_core.allowed(user) && !open && !emagged) locked = !locked @@ -171,7 +171,7 @@ to_chat(user, "Please close the access panel before locking it.") else to_chat(user, "\The [src] doesn't seem to respect your authority.") - else if(istype(W, /obj/item/kitchen/knife) && user.a_intent != INTENT_HARM) + else if(istype(W, /obj/item/kitchen/knife) && !user.combat_mode) to_chat(user, "You start attaching \the [W] to \the [src]...") if(do_after(user, 25, target = src)) deputize(W, user) diff --git a/code/modules/mob/living/simple_animal/bot/honkbot.dm b/code/modules/mob/living/simple_animal/bot/honkbot.dm index b83202bb5a5..5b0bcf652a8 100644 --- a/code/modules/mob/living/simple_animal/bot/honkbot.dm +++ b/code/modules/mob/living/simple_animal/bot/honkbot.dm @@ -113,7 +113,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, mode = BOT_HUNT /mob/living/simple_animal/bot/honkbot/attack_hand(mob/living/carbon/human/H) - if(H.a_intent == "harm") + if(H.combat_mode) retaliate(H) addtimer(CALLBACK(src, .proc/react_buzz), 5) return ..() diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index 77ecbec30fe..dbf2309ec95 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -449,12 +449,12 @@ if(damagetype_healer == "all" && treat_me_for.len) return TRUE -/mob/living/simple_animal/bot/medbot/attack_hand(mob/living/carbon/human/H) +/mob/living/simple_animal/bot/medbot/attack_hand(mob/living/carbon/human/H, modifiers) if(DOING_INTERACTION_WITH_TARGET(H, src)) to_chat(H, "You're already interacting with [src].") return - if(H.a_intent == INTENT_DISARM && mode != BOT_TIPPED) + if(modifiers && modifiers["right"] && mode != BOT_TIPPED) H.visible_message("[H] begins tipping over [src].", "You begin tipping over [src]...") if(world.time > last_tipping_action_voice + 15 SECONDS) @@ -467,7 +467,7 @@ if(do_after(H, 3 SECONDS, target=src)) tip_over(H) - else if(H.a_intent == INTENT_HELP && mode == BOT_TIPPED) + else if(!H.combat_mode && mode == BOT_TIPPED) H.visible_message("[H] begins righting [src].", "You begin righting [src]...") if(do_after(H, 3 SECONDS, target=src)) set_right(H) diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 99454a745e9..b595e5cf049 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -19,7 +19,7 @@ health = 50 maxHealth = 50 damage_coeff = list(BRUTE = 0.5, BURN = 0.7, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) - a_intent = INTENT_HARM //No swapping + combat_mode = TRUE //No swapping buckle_lying = 0 mob_size = MOB_SIZE_LARGE buckle_prevents_pull = TRUE // No pulling loaded shit @@ -131,7 +131,7 @@ ..() reached_target = FALSE -/mob/living/simple_animal/bot/mulebot/attackby(obj/item/I, mob/user, params) +/mob/living/simple_animal/bot/mulebot/attackby(obj/item/I, mob/living/user, params) if(I.tool_behaviour == TOOL_SCREWDRIVER) . = ..() if(open) @@ -148,7 +148,7 @@ diag_hud_set_mulebotcell() visible_message("[user] inserts \a [cell] into [src].", "You insert [cell] into [src].") - else if(I.tool_behaviour == TOOL_CROWBAR && open && user.a_intent != INTENT_HARM) + else if(I.tool_behaviour == TOOL_CROWBAR && open && !user.combat_mode) if(!cell) to_chat(user, "[src] doesn't have a power cell!") return diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 25e05c3ccb5..e5fc2a71793 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -21,7 +21,7 @@ data_hud_type = DATA_HUD_SECURITY_ADVANCED path_image_color = "#FF0000" - a_intent = "harm" + combat_mode = TRUE var/baton_type = /obj/item/melee/baton var/obj/item/weapon @@ -197,7 +197,7 @@ Auto Patrol: []"}, return /mob/living/simple_animal/bot/secbot/attack_hand(mob/living/carbon/human/H) - if((H.a_intent == INTENT_HARM) || (H.a_intent == INTENT_DISARM)) + if(H.combat_mode) retaliate(H) if(special_retaliate_after_attack(H)) return @@ -213,9 +213,9 @@ Auto Patrol: []"}, return ..() -/mob/living/simple_animal/bot/secbot/attackby(obj/item/W, mob/user, params) +/mob/living/simple_animal/bot/secbot/attackby(obj/item/W, mob/living/user, params) ..() - if(W.tool_behaviour == TOOL_WELDER && user.a_intent != INTENT_HARM) // Any intent but harm will heal, so we shouldn't get angry. + if(W.tool_behaviour == TOOL_WELDER && !user.combat_mode) // Any intent but harm will heal, so we shouldn't get angry. return if(W.tool_behaviour != TOOL_SCREWDRIVER && (W.force) && (!target) && (W.damtype != STAMINA) ) // Added check for welding tool to fix #2432. Welding tool behavior is handled in superclass. retaliate(user) diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index e45e590ac4d..a5f1af571cb 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -14,7 +14,7 @@ speak_chance = 1 icon = 'icons/mob/cult.dmi' speed = 0 - a_intent = INTENT_HARM + combat_mode = TRUE stop_automated_movement = 1 status_flags = CANPUSH attack_sound = 'sound/weapons/punch1.ogg' diff --git a/code/modules/mob/living/simple_animal/eldritch_demons.dm b/code/modules/mob/living/simple_animal/eldritch_demons.dm index 72c03458f01..b2fdc337898 100644 --- a/code/modules/mob/living/simple_animal/eldritch_demons.dm +++ b/code/modules/mob/living/simple_animal/eldritch_demons.dm @@ -14,7 +14,7 @@ speak_chance = 1 icon = 'icons/mob/eldritch_mobs.dmi' speed = 0 - a_intent = INTENT_HARM + combat_mode = TRUE stop_automated_movement = 1 AIStatus = AI_OFF attack_sound = 'sound/weapons/punch1.ogg' diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 98cbb94d31e..34142870332 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -317,6 +317,6 @@ /mob/living/simple_animal/pet/cat/cak/attack_hand(mob/living/L) ..() - if(L.a_intent == INTENT_HARM && L.reagents && !stat) + if(L.combat_mode && L.reagents && !stat) L.reagents.add_reagent(/datum/reagent/consumable/nutriment, 0.4) L.reagents.add_reagent(/datum/reagent/consumable/nutriment/vitamin, 0.4) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index 49a7fb61d0f..34c83f2facc 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -45,7 +45,6 @@ icon_state = "drone_maint_grey" icon_living = "drone_maint_grey" icon_dead = "drone_maint_dead" - possible_a_intents = list(INTENT_HELP, INTENT_HARM) health = 30 maxHealth = 30 unsuitable_atmos_damage = 0 diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 6e7e697dbff..18989404203 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -178,8 +178,8 @@ if(stat == CONSCIOUS) udder.generateMilk() -/mob/living/simple_animal/cow/attack_hand(mob/living/carbon/M) - if(!stat && M.a_intent == INTENT_DISARM && icon_state != icon_dead) +/mob/living/simple_animal/cow/attack_hand(mob/living/carbon/M, modifiers) + if(!stat && modifiers && modifiers["right"] && icon_state != icon_dead) M.visible_message("[M] tips over [src].", "You tip over [src].") to_chat(src, "You are tipped over by [M]!") @@ -222,7 +222,7 @@ ///Give intense wisdom to the attacker if they're being friendly about it /mob/living/simple_animal/cow/wisdom/attack_hand(mob/living/carbon/M) - if(!stat && M.a_intent == INTENT_HELP) + if(!stat && !M.combat_mode) to_chat(M, "[src] whispers you some intense wisdoms and then disappears!") M.mind?.adjust_experience(pick(GLOB.skill_types), 500) do_smoke(1, get_turf(src)) diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 39c6528e1f4..cf661c43c4d 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -209,8 +209,8 @@ if (reagents?.has_reagent(/datum/reagent/yuck) || reagents?.has_reagent(/datum/reagent/fuel)) . += "It's dripping with fuel and smells terrible." -/obj/item/food/deadmouse/attackby(obj/item/I, mob/user, params) - if(I.get_sharpness() && user.a_intent == INTENT_HARM) +/obj/item/food/deadmouse/attackby(obj/item/I, mob/living/user, params) + if(I.get_sharpness() && user.combat_mode) if(isturf(loc)) new /obj/item/food/meat/slab/mouse(loc) to_chat(user, "You butcher [src].") diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 43d75e0eb80..fd6f1e52530 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -23,7 +23,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians icon_living = "magicbase" icon_dead = "magicbase" speed = 0 - a_intent = INTENT_HARM + combat_mode = TRUE stop_automated_movement = 1 is_flying_animal = TRUE // Immunity to chasms and landmines, etc. attack_sound = 'sound/weapons/punch1.ogg' diff --git a/code/modules/mob/living/simple_animal/guardian/types/fire.dm b/code/modules/mob/living/simple_animal/guardian/types/fire.dm index 8ccdd12e996..5108ceb7e02 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/fire.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/fire.dm @@ -1,6 +1,6 @@ //Fire /mob/living/simple_animal/hostile/guardian/fire - a_intent = INTENT_HELP + combat_mode = FALSE melee_damage_lower = 7 melee_damage_upper = 7 attack_sound = 'sound/items/welder.ogg' diff --git a/code/modules/mob/living/simple_animal/guardian/types/ranged.dm b/code/modules/mob/living/simple_animal/guardian/types/ranged.dm index d959e51bc3d..01724cf0233 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/ranged.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/ranged.dm @@ -7,7 +7,7 @@ armour_penetration = 100 /mob/living/simple_animal/hostile/guardian/ranged - a_intent = INTENT_HELP + combat_mode = FALSE friendly_verb_continuous = "quietly assesses" friendly_verb_simple = "quietly assess" melee_damage_lower = 10 diff --git a/code/modules/mob/living/simple_animal/guardian/types/support.dm b/code/modules/mob/living/simple_animal/guardian/types/support.dm index c5256950040..0392137aa06 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/support.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/support.dm @@ -1,6 +1,6 @@ //Healer /mob/living/simple_animal/hostile/guardian/healer - a_intent = INTENT_HARM + combat_mode = TRUE friendly_verb_continuous = "heals" friendly_verb_simple = "heal" speed = 0 @@ -46,7 +46,7 @@ /mob/living/simple_animal/hostile/guardian/healer/ToggleMode() if(src.loc == summoner) if(toggle) - a_intent = INTENT_HARM + set_combat_mode(TRUE) speed = 0 damage_coeff = list(BRUTE = 0.7, BURN = 0.7, TOX = 0.7, CLONE = 0.7, STAMINA = 0, OXY = 0.7) melee_damage_lower = 15 @@ -54,7 +54,7 @@ to_chat(src, "You switch to combat mode.") toggle = FALSE else - a_intent = INTENT_HELP + set_combat_mode(FALSE) speed = 1 damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) melee_damage_lower = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index 12d3fce4d9a..c0d01a722b3 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -20,7 +20,7 @@ attack_verb_simple = "slash" speak_emote = list("hisses") bubble_icon = "alien" - a_intent = INTENT_HARM + combat_mode = TRUE attack_sound = 'sound/weapons/bladeslice.ogg' atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) faction = list(ROLE_ALIEN) @@ -151,7 +151,7 @@ name = "lusty xenomorph maid" melee_damage_lower = 0 melee_damage_upper = 0 - a_intent = INTENT_HELP + combat_mode = FALSE friendly_verb_continuous = "caresses" friendly_verb_simple = "caress" obj_damage = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index 7eae53a1044..f7c3b4ce099 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -155,7 +155,7 @@ /mob/living/simple_animal/hostile/bear/butter/attack_hand(mob/living/L) //Borrowed code from Cak, feeds people if they hit you. More nutriment but less vitamin to represent BUTTER. ..() - if(L.a_intent == INTENT_HARM && L.reagents && !stat) + if(L.combat_mode && L.reagents && !stat) L.reagents.add_reagent(/datum/reagent/consumable/nutriment, 1) L.reagents.add_reagent(/datum/reagent/consumable/nutriment/vitamin, 0.1) diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm b/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm index 0fc0b43596c..d9f9c65a410 100644 --- a/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm +++ b/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm @@ -4,7 +4,7 @@ robust_searching = 1 stat_attack = HARD_CRIT status_flags = 0 - a_intent = INTENT_HARM + combat_mode = TRUE sentience_type = SENTIENCE_BOSS gender = NEUTER var/list/boss_abilities = list() //list of /datum/action/boss diff --git a/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm b/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm index 63254b39bfb..b009b0bc3ba 100644 --- a/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm +++ b/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm @@ -19,7 +19,7 @@ attack_verb_continuous = "slashes at" attack_verb_simple = "slash at" attack_sound = 'sound/weapons/circsawhit.ogg' - a_intent = INTENT_HARM + combat_mode = TRUE mob_biotypes = MOB_ORGANIC|MOB_HUMANOID loot = list(/obj/effect/mob_spawn/human/corpse/cat_butcher, /obj/item/circular_saw) atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) diff --git a/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm b/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm index 962bed7e57c..9d6b47640e9 100644 --- a/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm @@ -17,7 +17,7 @@ melee_damage_lower = 5 melee_damage_upper = 5 attack_verb_continuous = "staves" - a_intent = INTENT_HARM + combat_mode = TRUE speak_emote = list("chants") attack_sound = 'sound/weapons/bladeslice.ogg' aggro_vision_range = 9 diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index 38750ef13b1..2ef13615e55 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -60,7 +60,7 @@ obj_damage = 30 melee_damage_lower = 20 melee_damage_upper = 25 - a_intent = INTENT_HARM + combat_mode = TRUE faction = list("spiders") pass_flags = PASSTABLE move_to_delay = 6 diff --git a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm index 3554c6ce72e..fb81da5530b 100644 --- a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm +++ b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm @@ -32,7 +32,6 @@ attack_sound = 'sound/weapons/punch1.ogg' dextrous = TRUE held_items = list(null, null) - possible_a_intents = list(INTENT_HELP, INTENT_GRAB, INTENT_DISARM, INTENT_HARM) faction = list("jungle") robust_searching = TRUE stat_attack = HARD_CRIT diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index e80b67f7b84..97fc8a72256 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -24,7 +24,6 @@ faction = list("hivebot") check_friendly_fire = 1 atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - possible_a_intents = list(INTENT_HELP, INTENT_GRAB, INTENT_DISARM, INTENT_HARM) minbodytemp = 0 verb_say = "states" verb_ask = "queries" @@ -44,21 +43,19 @@ /mob/living/simple_animal/hostile/hivebot/Aggro() . = ..() - a_intent_change(INTENT_HARM) + set_combat_mode(TRUE) + update_icons() if(prob(5)) say(pick("INTRUDER DETECTED!", "CODE 7-34.", "101010!!"), forced = type) /mob/living/simple_animal/hostile/hivebot/LoseAggro() . = ..() - a_intent_change(INTENT_HELP) - -/mob/living/simple_animal/hostile/hivebot/a_intent_change(input as text) - . = ..() + set_combat_mode(FALSE) update_icons() /mob/living/simple_animal/hostile/hivebot/update_icons() QDEL_NULL(alert_light) - if(a_intent != INTENT_HELP) + if(combat_mode) icon_state = "[initial(icon_state)]_attack" alert_light = mob_light(6, 0.4, COLOR_RED_LIGHT) else diff --git a/code/modules/mob/living/simple_animal/hostile/illusion.dm b/code/modules/mob/living/simple_animal/hostile/illusion.dm index fe410b194f3..ea9216ef0d2 100644 --- a/code/modules/mob/living/simple_animal/hostile/illusion.dm +++ b/code/modules/mob/living/simple_animal/hostile/illusion.dm @@ -9,7 +9,7 @@ mob_biotypes = NONE melee_damage_lower = 5 melee_damage_upper = 5 - a_intent = INTENT_HARM + combat_mode = TRUE attack_verb_continuous = "gores" attack_verb_simple = "gore" maxHealth = 100 diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm b/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm index 08e1045b3df..e7a9b874522 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm @@ -10,7 +10,7 @@ response_harm_continuous = "strikes" response_harm_simple = "strike" status_flags = NONE - a_intent = INTENT_HARM + combat_mode = TRUE see_in_dark = 4 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE mob_size = MOB_SIZE_LARGE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index 609bdf0b122..928ad200f9f 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -3,7 +3,7 @@ desc = "Attack the weak point for massive damage." health = 1000 maxHealth = 1000 - a_intent = INTENT_HARM + combat_mode = TRUE sentience_type = SENTIENCE_BOSS environment_smash = ENVIRONMENT_SMASH_RWALLS mob_biotypes = MOB_ORGANIC|MOB_EPIC diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index 70963e8b0b9..a5618ee83d7 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -306,7 +306,7 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca /mob/living/simple_animal/hostile/mimic/xenobio/attack_hand(mob/living/carbon/human/M) . = ..() - if(M.a_intent != "help") + if(M.combat_mode) return toggle_open() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index 0b8205c6da1..8cf0cc0e234 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -106,7 +106,7 @@ melee_damage_upper = 15 attack_verb_continuous = "impales" attack_verb_simple = "impale" - a_intent = INTENT_HARM + combat_mode = TRUE speak_emote = list("telepathically cries") attack_sound = 'sound/weapons/bladeslice.ogg' stat_attack = HARD_CRIT diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm index 836f3b6842a..994b9f0d340 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm @@ -22,7 +22,7 @@ attack_verb_continuous = "barrels into" attack_verb_simple = "barrel into" attack_sound = 'sound/weapons/punch1.ogg' - a_intent = INTENT_HELP + combat_mode = FALSE speak_emote = list("screeches") throw_message = "sinks in slowly, before being pushed out of " deathmessage = "stops moving as green liquid oozes from the carcass!" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm index 614cf2b350d..7eb185cffd3 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm @@ -26,7 +26,7 @@ response_harm_simple = "squish" friendly_verb_continuous = "pinches" friendly_verb_simple = "pinch" - a_intent = INTENT_HELP + combat_mode = FALSE ventcrawler = VENTCRAWLER_ALWAYS gold_core_spawnable = FRIENDLY_SPAWN stat_attack = HARD_CRIT diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm index a3c143eb815..e3ace991812 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm @@ -12,7 +12,7 @@ response_harm_continuous = "strikes" response_harm_simple = "strike" status_flags = 0 - a_intent = INTENT_HARM + combat_mode = TRUE var/crusher_loot var/throw_message = "bounces off of" var/fromtendril = FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index b35e733db45..9b38f63ac72 100644 --- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -171,7 +171,7 @@ /mob/living/simple_animal/hostile/mushroom/attack_hand(mob/living/carbon/human/M) ..() - if(M.a_intent == INTENT_HARM) + if(M.combat_mode) Bruise() /mob/living/simple_animal/hostile/mushroom/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) diff --git a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm index 4417e68e2ec..c69a5d94082 100644 --- a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm +++ b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm @@ -20,7 +20,7 @@ attack_verb_continuous = "punches" attack_verb_simple = "punch" attack_sound = 'sound/weapons/punch1.ogg' - a_intent = INTENT_HARM + combat_mode = TRUE loot = list(/obj/effect/mob_spawn/human/corpse/nanotrasensoldier) atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) unsuitable_atmos_damage = 15 diff --git a/code/modules/mob/living/simple_animal/hostile/ooze.dm b/code/modules/mob/living/simple_animal/hostile/ooze.dm index 9c63c946dde..f08a3365ad9 100644 --- a/code/modules/mob/living/simple_animal/hostile/ooze.dm +++ b/code/modules/mob/living/simple_animal/hostile/ooze.dm @@ -23,7 +23,7 @@ attack_verb_continuous = "slimes" attack_verb_simple = "slime" attack_sound = 'sound/effects/blobattack.ogg' - a_intent = INTENT_HARM + combat_mode = TRUE environment_smash = ENVIRONMENT_SMASH_STRUCTURES mob_size = MOB_SIZE_LARGE initial_language_holder = /datum/language_holder/slime diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm index 26833549505..c18567cc855 100644 --- a/code/modules/mob/living/simple_animal/hostile/pirate.dm +++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm @@ -19,7 +19,7 @@ attack_verb_continuous = "punches" attack_verb_simple = "punch" attack_sound = 'sound/weapons/punch1.ogg' - a_intent = INTENT_HARM + combat_mode = TRUE atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) unsuitable_atmos_damage = 15 speak_emote = list("yarrs") diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm index 8b514e44c50..8c265b08ed1 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm @@ -16,7 +16,7 @@ speak = list("HONK", "Honk!", "Welcome to clown planet!") emote_see = list("honks", "squeaks") speak_chance = 1 - a_intent = INTENT_HARM + combat_mode = TRUE maxHealth = 75 health = 75 speed = 1 diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm index 17301c463f8..10117905227 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm @@ -9,7 +9,7 @@ turns_per_move = 5 response_help_continuous = "passes through" response_help_simple = "pass through" - a_intent = INTENT_HARM + combat_mode = TRUE healable = 0 speed = 0 maxHealth = 40 diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm index 5137b82ea2e..dc721f10936 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm @@ -12,7 +12,7 @@ response_disarm_simple = "gently push aside" response_harm_continuous = "punches" response_harm_simple = "punch" - a_intent = INTENT_HARM + combat_mode = TRUE maxHealth = 100 health = 100 speed = 0 @@ -49,7 +49,7 @@ attack_verb_simple = "punch" attack_sound = 'sound/weapons/punch1.ogg' faction = list("nanotrasenprivate") - a_intent = INTENT_HARM + combat_mode = TRUE loot = list(/obj/effect/mob_spawn/human/corpse/nanotrasensoldier) atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) unsuitable_atmos_damage = 15 diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm index 597db74bcb1..589d508d50c 100644 --- a/code/modules/mob/living/simple_animal/hostile/russian.dm +++ b/code/modules/mob/living/simple_animal/hostile/russian.dm @@ -18,7 +18,7 @@ attack_verb_continuous = "punches" attack_verb_simple = "punch" attack_sound = 'sound/weapons/punch1.ogg' - a_intent = INTENT_HARM + combat_mode = TRUE loot = list(/obj/effect/mob_spawn/human/corpse/russian, /obj/item/kitchen/knife) atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) diff --git a/code/modules/mob/living/simple_animal/hostile/skeleton.dm b/code/modules/mob/living/simple_animal/hostile/skeleton.dm index 477233566f3..5dc96fd65ee 100644 --- a/code/modules/mob/living/simple_animal/hostile/skeleton.dm +++ b/code/modules/mob/living/simple_animal/hostile/skeleton.dm @@ -10,7 +10,7 @@ turns_per_move = 5 speak_emote = list("rattles") emote_see = list("rattles") - a_intent = INTENT_HARM + combat_mode = TRUE maxHealth = 40 health = 40 speed = 1 diff --git a/code/modules/mob/living/simple_animal/hostile/space_dragon.dm b/code/modules/mob/living/simple_animal/hostile/space_dragon.dm index 54d7468afe7..d5f60812798 100644 --- a/code/modules/mob/living/simple_animal/hostile/space_dragon.dm +++ b/code/modules/mob/living/simple_animal/hostile/space_dragon.dm @@ -30,7 +30,7 @@ desc = "A vile, leviathan-esque creature that flies in the most unnatural way. Looks slightly similar to a space carp." maxHealth = 400 health = 400 - a_intent = INTENT_HARM + combat_mode = TRUE speed = 0 attack_verb_continuous = "chomps" attack_verb_simple = "chomp" diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index 70f520ca9b3..2abc62b78f1 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -8,7 +8,7 @@ icon_living = "human_male" icon_dead = "human_male" gender = NEUTER - a_intent = INTENT_HARM + combat_mode = TRUE mob_biotypes = MOB_HUMANOID response_help_continuous = "touches" diff --git a/code/modules/mob/living/simple_animal/hostile/stickman.dm b/code/modules/mob/living/simple_animal/hostile/stickman.dm index 1eb03b07650..653cf5c27ce 100644 --- a/code/modules/mob/living/simple_animal/hostile/stickman.dm +++ b/code/modules/mob/living/simple_animal/hostile/stickman.dm @@ -22,7 +22,7 @@ attack_verb_continuous = "punches" attack_verb_simple = "punch" attack_sound = 'sound/weapons/punch1.ogg' - a_intent = INTENT_HARM + combat_mode = TRUE atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) unsuitable_atmos_damage = 15 faction = list("hostile","stickman") diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 65a9e813b1a..785061cfc8a 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -36,7 +36,7 @@ attack_verb_continuous = "punches" attack_verb_simple = "punch" attack_sound = 'sound/weapons/punch1.ogg' - a_intent = INTENT_HARM + combat_mode = TRUE loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) unsuitable_atmos_damage = 15 @@ -288,7 +288,7 @@ icon_state = "viscerator_attack" icon_living = "viscerator_attack" pass_flags = PASSTABLE | PASSMOB - a_intent = INTENT_HARM + combat_mode = TRUE mob_biotypes = MOB_ROBOTIC health = 25 maxHealth = 25 diff --git a/code/modules/mob/living/simple_animal/hostile/tree.dm b/code/modules/mob/living/simple_animal/hostile/tree.dm index 31b558d12a9..2711f41e84a 100644 --- a/code/modules/mob/living/simple_animal/hostile/tree.dm +++ b/code/modules/mob/living/simple_animal/hostile/tree.dm @@ -93,7 +93,7 @@ /mob/living/simple_animal/hostile/tree/festivus/attack_hand(mob/living/carbon/human/M) . = ..() - if(M.a_intent == "help") + if(!M.combat_mode) visible_message("[src] crackles with static electricity!") for(var/obj/item/stock_parts/cell/C in range(2, get_turf(src))) C.give(75) diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm index 6e3b5852ded..48a9158dd90 100644 --- a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm +++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm @@ -100,7 +100,7 @@ obj_damage = 60 melee_damage_lower = 25 melee_damage_upper = 25 - a_intent = INTENT_HARM + combat_mode = TRUE del_on_death = TRUE deathmessage = "collapses into bits of plant matter." attacked_sound = 'sound/creatures/venus_trap_hurt.ogg' diff --git a/code/modules/mob/living/simple_animal/hostile/wizard.dm b/code/modules/mob/living/simple_animal/hostile/wizard.dm index 6016ed85044..20ded1a4112 100644 --- a/code/modules/mob/living/simple_animal/hostile/wizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/wizard.dm @@ -17,7 +17,7 @@ attack_verb_continuous = "punches" attack_verb_simple = "punch" attack_sound = 'sound/weapons/punch1.ogg' - a_intent = INTENT_HARM + combat_mode = TRUE atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) unsuitable_atmos_damage = 15 faction = list(ROLE_WIZARD) diff --git a/code/modules/mob/living/simple_animal/hostile/zombie.dm b/code/modules/mob/living/simple_animal/hostile/zombie.dm index 6d3e5f1505b..4c98cd4cdde 100644 --- a/code/modules/mob/living/simple_animal/hostile/zombie.dm +++ b/code/modules/mob/living/simple_animal/hostile/zombie.dm @@ -15,7 +15,7 @@ attack_verb_continuous = "bites" attack_verb_simple = "bite" attack_sound = 'sound/hallucinations/growl1.ogg' - a_intent = INTENT_HARM + combat_mode = TRUE atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 status_flags = CANPUSH diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index e1c2dcac5ff..e79d902c343 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -57,7 +57,7 @@ response_harm_continuous = "swats" response_harm_simple = "swat" stop_automated_movement = 1 - a_intent = INTENT_HARM //parrots now start "aggressive" since only player parrots will nuzzle. + combat_mode = TRUE //parrots now start "aggressive" since only player parrots will nuzzle. attack_verb_continuous = "chomps" attack_verb_simple = "chomp" friendly_verb_continuous = "grooms" @@ -152,7 +152,7 @@ . = ..() . += "" . += "Held Item: [held_item]" - . += "Mode: [a_intent]" + . += "Combat mode: [combat_mode ? "On" : "Off"]" /mob/living/simple_animal/parrot/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans, list/message_mods = list()) . = ..() @@ -286,7 +286,7 @@ ..() if(client) return - if(!stat && M.a_intent == INTENT_HARM) + if(!stat && M.combat_mode) icon_state = icon_living //It is going to be flying regardless of whether it flees or attacks @@ -301,7 +301,7 @@ else parrot_state |= PARROT_FLEE //Otherwise, fly like a bat out of hell! drop_held_item(0) - if(stat != DEAD && M.a_intent == INTENT_HELP) + if(stat != DEAD && !M.combat_mode) handle_automated_speech(1) //assured speak/emote return @@ -571,7 +571,7 @@ var/mob/living/L = parrot_interest if(melee_damage_upper == 0) melee_damage_upper = parrot_damage_upper - a_intent = INTENT_HARM + set_combat_mode(TRUE) //If the mob is close enough to interact with if(Adjacent(parrot_interest)) @@ -865,13 +865,13 @@ if(stat || !client) return - if(a_intent != INTENT_HELP) + if(combat_mode) melee_damage_upper = 0 - a_intent = INTENT_HELP + set_combat_mode(FALSE) else melee_damage_upper = parrot_damage_upper - a_intent = INTENT_HARM - to_chat(src, "You will now [a_intent] others.") + set_combat_mode(TRUE) + to_chat(src, "You will now [combat_mode ? "Harm" : "Help"] others.") return /* diff --git a/code/modules/mob/living/simple_animal/slime/powers.dm b/code/modules/mob/living/simple_animal/slime/powers.dm index 2c8fbe447ae..0aad2e96937 100644 --- a/code/modules/mob/living/simple_animal/slime/powers.dm +++ b/code/modules/mob/living/simple_animal/slime/powers.dm @@ -204,7 +204,7 @@ SEND_SIGNAL(M, COMSIG_NANITE_SYNC, original_nanites, TRUE, TRUE) //The trues are to copy activation as well var/mob/living/simple_animal/slime/new_slime = pick(babies) - new_slime.a_intent = INTENT_HARM + new_slime.set_combat_mode(TRUE) if(src.mind) src.mind.transfer_to(new_slime) else diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index cdffb7158f3..fc0267c8048 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -269,7 +269,7 @@ /mob/living/simple_animal/slime/start_pulling(atom/movable/AM, state, force = move_force, supress_message = FALSE) return -/mob/living/simple_animal/slime/attack_ui(slot) +/mob/living/simple_animal/slime/attack_ui(slot, params) return /mob/living/simple_animal/slime/attack_slime(mob/living/simple_animal/slime/M) @@ -309,7 +309,7 @@ return discipline_slime(user) -/mob/living/simple_animal/slime/attack_hand(mob/living/carbon/human/M) +/mob/living/simple_animal/slime/attack_hand(mob/living/carbon/human/M, modifiers) if(buckled) M.do_attack_animation(src, ATTACK_EFFECT_DISARM) if(buckled == M) @@ -339,9 +339,9 @@ discipline_slime(M) else if(stat == DEAD && surgeries.len) - if(M.a_intent == INTENT_HELP || M.a_intent == INTENT_DISARM) + if(!M.combat_mode || (modifiers && modifiers["right"])) for(var/datum/surgery/S in surgeries) - if(S.next_step(M,M.a_intent)) + if(S.next_step(M, modifiers)) return 1 if(..()) //successful attack attacked += 10 @@ -354,9 +354,10 @@ /mob/living/simple_animal/slime/attackby(obj/item/W, mob/living/user, params) if(stat == DEAD && surgeries.len) - if(user.a_intent == INTENT_HELP || user.a_intent == INTENT_DISARM) + var/list/modifiers = params2list(params) + if(!user.combat_mode || (modifiers && modifiers["right"])) for(var/datum/surgery/S in surgeries) - if(S.next_step(user,user.a_intent)) + if(S.next_step(user, modifiers)) return 1 if(istype(W, /obj/item/stack/sheet/mineral/plasma) && !stat) //Let's you feed slimes plasma. if (user in Friends) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index cd5a278d3f9..ca46d0c08d4 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -294,7 +294,7 @@ * Mostly tries to put the item into the slot if possible, or call attack hand * on the item in the slot if the users active hand is empty */ -/mob/proc/attack_ui(slot) +/mob/proc/attack_ui(slot, params) var/obj/item/W = get_active_held_item() if(istype(W)) @@ -305,7 +305,8 @@ // Activate the item var/obj/item/I = get_item_by_slot(slot) if(istype(I)) - I.attack_hand(src) + var/list/modifiers = params2list(params) + I.attack_hand(src, modifiers) return FALSE @@ -513,10 +514,10 @@ //now we touch the thing we're examining /// our current intent, so we can go back to it after touching - var/previous_intent = a_intent - a_intent = INTENT_HELP + var/previous_combat_mode = combat_mode + set_combat_mode(FALSE) INVOKE_ASYNC(examined_thing, /atom/proc/attack_hand, src) - a_intent = previous_intent + set_combat_mode(previous_combat_mode) return TRUE @@ -818,7 +819,11 @@ if(ismob(dropping) && src == user && dropping != user) var/mob/M = dropping var/mob/U = user - if(!iscyborg(U) || U.a_intent == INTENT_HARM) + if(iscyborg(U)) + var/mob/living/silicon/robot/cyborg = U + if(cyborg.combat_mode) + M.show_inv(cyborg) + else M.show_inv(U) ///Is the mob muzzled (default false) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 3cd864f05a7..05993942dbc 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -107,10 +107,6 @@ /// How many ticks this mob has been over reating var/overeatduration = 0 // How long this guy is overeating //Carbon - /// The current intent of the mob - var/a_intent = INTENT_HELP//Living - /// List of possible intents a mob can have - var/list/possible_a_intents = null//Living /// The movement intent of the mob (run/wal) var/m_intent = MOVE_INTENT_RUN//Living diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 1ceafc17745..cbb9484a763 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -248,44 +248,6 @@ firstname.Find(real_name) return firstname.match - -/** - * change a mob's act-intent. - * - * Input the intent as a string such as "help" or use "right"/"left - */ -/mob/verb/a_intent_change(input as text) - set name = "a-intent" - set hidden = TRUE - - if(!possible_a_intents || !possible_a_intents.len) - return - - if(input in possible_a_intents) - a_intent = input - else - var/current_intent = possible_a_intents.Find(a_intent) - - if(!current_intent) - // Failsafe. Just in case some badmin was playing with VV. - current_intent = 1 - - if(input == INTENT_HOTKEY_RIGHT) - current_intent += 1 - if(input == INTENT_HOTKEY_LEFT) - current_intent -= 1 - - // Handle looping - if(current_intent < 1) - current_intent = possible_a_intents.len - if(current_intent > possible_a_intents.len) - current_intent = 1 - - a_intent = possible_a_intents[current_intent] - - if(hud_used?.action_intent) - hud_used.action_intent.icon_state = "[a_intent]" - ///Returns a mob's real name between brackets. Useful when you want to display a mob's name alongside their real name /mob/proc/get_realname_string() if(real_name && real_name != name) @@ -490,7 +452,7 @@ colored_message = "(ASAY) [colored_message]" if(LOG_EMOTE) colored_message = "(EMOTE) [colored_message]" - + var/list/timestamped_message = list("\[[time_stamp()]\] [key_name(src)] [loc_name(src)] (Event #[LAZYLEN(logging[smessage_type])])" = colored_message) logging[smessage_type] += timestamped_message diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 076e1391b4a..e243a654d00 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -184,7 +184,7 @@ if("Drone") new_xeno = new /mob/living/carbon/alien/humanoid/drone(loc) - new_xeno.a_intent = INTENT_HARM + new_xeno.set_combat_mode(TRUE) new_xeno.key = key update_atom_languages() @@ -218,7 +218,7 @@ new_slime = pick(babies) else new_slime = new /mob/living/simple_animal/slime(loc) - new_slime.a_intent = INTENT_HARM + new_slime.set_combat_mode(TRUE) new_slime.key = key to_chat(new_slime, "You are now a slime. Skreee!") @@ -246,7 +246,7 @@ qdel(t) var/mob/living/simple_animal/pet/dog/corgi/new_corgi = new /mob/living/simple_animal/pet/dog/corgi (loc) - new_corgi.a_intent = INTENT_HARM + new_corgi.set_combat_mode(TRUE) new_corgi.key = key to_chat(new_corgi, "You are now a Corgi. Yap Yap!") @@ -270,7 +270,7 @@ icon = null invisibility = INVISIBILITY_MAXIMUM var/mob/living/simple_animal/hostile/gorilla/new_gorilla = new (get_turf(src)) - new_gorilla.a_intent = INTENT_HARM + new_gorilla.set_combat_mode(TRUE) if(mind) mind.transfer_to(new_gorilla) else @@ -303,11 +303,10 @@ for(var/t in bodyparts) qdel(t) - var/mob/new_mob = new mobpath(src.loc) + var/mob/living/new_mob = new mobpath(src.loc) new_mob.key = key - new_mob.a_intent = INTENT_HARM - + new_mob.set_combat_mode(TRUE) to_chat(new_mob, "You suddenly feel more... animalistic.") . = new_mob @@ -322,10 +321,10 @@ to_chat(usr, "Sorry but this mob type is currently unavailable.") return - var/mob/new_mob = new mobpath(src.loc) + var/mob/living/new_mob = new mobpath(src.loc) new_mob.key = key - new_mob.a_intent = INTENT_HARM + new_mob.set_combat_mode(TRUE) to_chat(new_mob, "You feel more... animalistic.") . = new_mob diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm index 1409b208b1a..daabe7b7eb4 100644 --- a/code/modules/modular_computers/computers/machinery/modular_computer.dm +++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm @@ -115,8 +115,8 @@ if(cpu) return cpu.screwdriver_act(user, tool) -/obj/machinery/modular_computer/attackby(obj/item/W as obj, mob/user) - if (user.a_intent == INTENT_HELP && cpu && !(flags_1 & NODECONSTRUCT_1)) +/obj/machinery/modular_computer/attackby(obj/item/W as obj, mob/living/user) + if (!user.combat_mode && cpu && !(flags_1 & NODECONSTRUCT_1)) return cpu.attackby(W, user) return ..() diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm index f9d01f30fc9..c2cdbbe1172 100644 --- a/code/modules/paperwork/filingcabinet.dm +++ b/code/modules/paperwork/filingcabinet.dm @@ -45,8 +45,9 @@ I.forceMove(loc) qdel(src) -/obj/structure/filingcabinet/attackby(obj/item/P, mob/user, params) - if(P.tool_behaviour == TOOL_WRENCH && user.a_intent != INTENT_HELP) +/obj/structure/filingcabinet/attackby(obj/item/P, mob/living/user, params) + var/list/modifiers = params2list(params) + if(P.tool_behaviour == TOOL_WRENCH && modifiers && modifiers["right"]) to_chat(user, "You begin to [anchored ? "unwrench" : "wrench"] [src].") if(P.use_tool(src, user, 20, volume=50)) to_chat(user, "You successfully [anchored ? "unwrench" : "wrench"] [src].") @@ -59,7 +60,7 @@ sleep(5) icon_state = initial(icon_state) updateUsrDialog() - else if(user.a_intent != INTENT_HARM) + else if(!user.combat_mode) to_chat(user, "You can't put [P] in [src]!") else return ..() diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 0dd781421b0..d962c9cf1b1 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -799,7 +799,7 @@ // attack with hand - remove cell (if cover open) or interact with the APC -/obj/machinery/power/apc/attack_hand(mob/user) +/obj/machinery/power/apc/attack_hand(mob/user, params) . = ..() if(.) return @@ -808,7 +808,28 @@ var/mob/living/carbon/human/H = user var/datum/species/ethereal/E = H.dna.species var/charge_limit = ETHEREAL_CHARGE_DANGEROUS - APC_POWER_GAIN - if((H.a_intent == INTENT_HARM) && (E.drain_time < world.time)) + var/list/modifiers = params2list(params) + if(H.combat_mode && E.drain_time < world.time) + if(modifiers && modifiers["right"]) //Disarm + if(cell.charge == cell.maxcharge) + to_chat(H, "The APC is full!") + return + var/obj/item/organ/stomach/ethereal/stomach = H.getorganslot(ORGAN_SLOT_STOMACH) + if(stomach.crystal_charge < 10) + to_chat(H, "Your charge is too low!") + return + E.drain_time = world.time + 75 + to_chat(H, "You start channeling power through your body into the APC.") + if(do_after(user, 75, target = src)) + if(cell.charge == cell.maxcharge || (stomach.crystal_charge < 10)) + return + if(istype(stomach)) + to_chat(H, "You transfer some power to the APC.") + stomach.adjust_charge(-10) + cell.charge += 10 + else + to_chat(H, "You can't transfer power to the APC!") + return if(cell.charge <= (cell.maxcharge / 2)) // ethereals can't drain APCs under half charge, this is so that they are forced to look to alternative power sources if the station is running low to_chat(H, "The APC's syphon safeties prevent you from draining power!") return @@ -828,26 +849,6 @@ else to_chat(H, "You can't receive charge from the APC!") return - if((H.a_intent == INTENT_GRAB) && (E.drain_time < world.time)) - if(cell.charge >= cell.maxcharge - APC_POWER_GAIN) - to_chat(H, "The APC is full!") - return - var/obj/item/organ/stomach/ethereal/stomach = H.getorganslot(ORGAN_SLOT_STOMACH) - if(stomach.crystal_charge < APC_POWER_GAIN) - to_chat(H, "Your charge is too low!") - return - E.drain_time = world.time + APC_DRAIN_TIME - to_chat(H, "You start channeling power through your body into the APC.") - if(do_after(user, APC_DRAIN_TIME, target = src)) - if(cell.charge == cell.maxcharge || (stomach.crystal_charge < APC_POWER_GAIN)) - return - if(istype(stomach)) - to_chat(H, "You transfer some power to the APC.") - stomach.adjust_charge(-APC_POWER_GAIN) - cell.charge += APC_POWER_GAIN - else - to_chat(H, "You can't transfer power to the APC!") - return if(opened && (!issilicon(user))) if(cell) diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 4b3fcfd91bc..ee48b3e4357 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -87,8 +87,8 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne /obj/machinery/gravity_generator/part/get_status() return main_part?.get_status() -/obj/machinery/gravity_generator/part/attack_hand(mob/user) - return main_part.attack_hand(user) +/obj/machinery/gravity_generator/part/attack_hand(mob/user, modifiers) + return main_part.attack_hand(user, modifiers) /obj/machinery/gravity_generator/part/set_broken() ..() diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 81f78112220..b8465b178dc 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -406,7 +406,7 @@ return TRUE return FALSE -/obj/machinery/power/solar_control/attackby(obj/item/I, mob/user, params) +/obj/machinery/power/solar_control/attackby(obj/item/I, mob/living/user, params) if(I.tool_behaviour == TOOL_SCREWDRIVER) if(I.use_tool(src, user, 20, volume=50)) if (src.machine_stat & BROKEN) @@ -432,7 +432,7 @@ A.icon_state = "4" A.set_anchored(TRUE) qdel(src) - else if(user.a_intent != INTENT_HARM && !(I.item_flags & NOBLUDGEON)) + else if(!user.combat_mode && !(I.item_flags & NOBLUDGEON)) attack_hand(user) else return ..() diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 1c4930f62f0..6af1aeb03c0 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -934,7 +934,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) Consume(dust_arm) qdel(W) return - if(cig.lit || user.a_intent != INTENT_HELP) + if(cig.lit || user.combat_mode) user.visible_message("A hideous sound echoes as [W] is ashed out on contact with \the [src]. That didn't seem like a good idea...") playsound(src, 'sound/effects/supermatter.ogg', 150, TRUE) Consume(W) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 3459589525a..ef64587f478 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -193,6 +193,16 @@ for(var/obj/O in contents) O.emp_act(severity) +/obj/item/gun/attack(mob/M, mob/living/user, params) + var/list/modifiers = params2list(params) + if(ismob(M) && modifiers && modifiers["right"]) //Right click to hold someone up + if(user.GetComponent(/datum/component/gunpoint)) + to_chat(user, "You are already holding someone up!") + return + user.AddComponent(/datum/component/gunpoint, M, src) + return TRUE + return ..() + /obj/item/gun/afterattack(atom/target, mob/living/user, flag, params) . = ..() if(QDELETED(target)) @@ -202,16 +212,10 @@ if(flag) //It's adjacent, is the user, or is on the user's person if(target in user.contents) //can't shoot stuff inside us. return - if(!ismob(target) || user.a_intent == INTENT_HARM) //melee attack + if(!ismob(target) || !user.combat_mode) //melee attack return if(target == user && user.zone_selected != BODY_ZONE_PRECISE_MOUTH) //so we can't shoot ourselves (unless mouth selected) return - if(ismob(target) && user.a_intent == INTENT_GRAB) - if(user.GetComponent(/datum/component/gunpoint)) - to_chat(user, "You are already holding someone up!") - return - user.AddComponent(/datum/component/gunpoint, target, src) - return if(iscarbon(target)) var/mob/living/carbon/C = target for(var/i in C.all_wounds) @@ -243,7 +247,7 @@ //DUAL (or more!) WIELDING var/bonus_spread = 0 var/loop_counter = 0 - if(ishuman(user) && user.a_intent == INTENT_HARM) + if(ishuman(user) && user.combat_mode) var/mob/living/carbon/human/H = user for(var/obj/item/gun/G in H.held_items) if(G == src || G.weapon_weight >= WEAPON_MEDIUM) @@ -380,8 +384,8 @@ /obj/item/gun/proc/reset_semicd() semicd = FALSE -/obj/item/gun/attack(mob/M as mob, mob/user) - if(user.a_intent == INTENT_HARM) //Flogging +/obj/item/gun/attack(mob/M, mob/living/user) + if(user.combat_mode) //Flogging if(bayonet) M.attackby(bayonet, user) return @@ -389,15 +393,15 @@ return ..() return -/obj/item/gun/attack_obj(obj/O, mob/user) - if(user.a_intent == INTENT_HARM) +/obj/item/gun/attack_obj(obj/O, mob/living/user) + if(user.combat_mode) if(bayonet) O.attackby(bayonet, user) return return ..() -/obj/item/gun/attackby(obj/item/I, mob/user, params) - if(user.a_intent == INTENT_HARM) +/obj/item/gun/attackby(obj/item/I, mob/living/user, params) + if(user.combat_mode) return ..() else if(istype(I, /obj/item/flashlight/seclite)) if(!can_flashlight) diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index 21f08ee3469..756942d7e70 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -158,7 +158,7 @@ if(flag) if(!(target in user.contents) && ismob(target)) - if(user.a_intent == INTENT_HARM) // Flogging action + if(user.combat_mode) // Flogging action return if(isliving(user)) diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm index 9d925540481..f0e9045d435 100644 --- a/code/modules/projectiles/guns/misc/beam_rifle.dm +++ b/code/modules/projectiles/guns/misc/beam_rifle.dm @@ -300,7 +300,7 @@ if(flag) //It's adjacent, is the user, or is on the user's person if(target in user.contents) //can't shoot stuff inside us. return - if(!ismob(target) || user.a_intent == INTENT_HARM) //melee attack + if(!ismob(target) || user.combat_mode) //melee attack return if(target == user && user.zone_selected != BODY_ZONE_PRECISE_MOUTH) //so we can't shoot ourselves (unless mouth selected) return diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 1a0bbaf0aa2..e271eaecd1a 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -290,7 +290,7 @@ M.log_message("became [new_mob.real_name]", LOG_ATTACK, color="orange") - new_mob.a_intent = INTENT_HARM + new_mob.set_combat_mode(TRUE) M.wabbajack_act(new_mob) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 3dd17c2d728..c87a79cb4c7 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -333,7 +333,7 @@ recording_recipe = null . = TRUE -/obj/machinery/chem_dispenser/attackby(obj/item/I, mob/user, params) +/obj/machinery/chem_dispenser/attackby(obj/item/I, mob/living/user, params) if(default_unfasten_wrench(user, I)) return if(default_deconstruction_screwdriver(user, icon_state, icon_state, I)) @@ -349,7 +349,7 @@ replace_beaker(user, B) to_chat(user, "You add [B] to [src].") updateUsrDialog() - else if(user.a_intent != INTENT_HARM && !istype(I, /obj/item/card/emag)) + else if(!user.combat_mode && !istype(I, /obj/item/card/emag)) to_chat(user, "You can't load [I] into [src]!") return ..() else diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 0ba45939874..daae29cebbd 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -121,7 +121,7 @@ update_icon() return TRUE -/obj/machinery/reagentgrinder/attackby(obj/item/I, mob/user, params) +/obj/machinery/reagentgrinder/attackby(obj/item/I, mob/living/user, params) //You can only screw open empty grinder if(!beaker && !length(holdingitems) && default_deconstruction_screwdriver(user, icon_state, icon_state, I)) return @@ -162,7 +162,7 @@ return TRUE if(!I.grind_results && !I.juice_results) - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return ..() else to_chat(user, "You cannot grind [I] into reagents!") diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index e0069554965..d4337140907 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -57,8 +57,8 @@ to_chat(user, "[src]'s transfer amount is now [amount_per_transfer_from_this] units.") return -/obj/item/reagent_containers/attack(mob/M, mob/user, def_zone) - if(user.a_intent == INTENT_HARM) +/obj/item/reagent_containers/attack(mob/M, mob/living/user, def_zone) + if(user.combat_mode) return ..() /obj/item/reagent_containers/proc/canconsume(mob/eater, mob/user) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 1a460dbf595..4bfb7d2d91f 100755 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -9,7 +9,7 @@ resistance_flags = ACID_PROOF -/obj/item/reagent_containers/glass/attack(mob/M, mob/user, obj/target) +/obj/item/reagent_containers/glass/attack(mob/M, mob/living/user, obj/target) if(!canconsume(M, user)) return @@ -21,7 +21,7 @@ return if(istype(M)) - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) var/R M.visible_message("[user] splashes the contents of [src] onto [M]!", \ "[user] splashes the contents of [src] onto you!") @@ -63,7 +63,7 @@ if(LAZYLEN(diseases_to_add)) AddComponent(/datum/component/infective, diseases_to_add) -/obj/item/reagent_containers/glass/afterattack(obj/target, mob/user, proximity) +/obj/item/reagent_containers/glass/afterattack(obj/target, mob/living/user, proximity) . = ..() if((!proximity) || !check_allowed_items(target,target_self=1)) return @@ -96,7 +96,7 @@ to_chat(user, "You fill [src] with [trans] unit\s of the contents of [target].") else if(reagents.total_volume) - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) user.visible_message("[user] splashes the contents of [src] onto [target]!", \ "You splash the contents of [src] onto [target].") reagents.expose(target, TOUCH) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index a4fb1d63a32..8c74e0a4b9b 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -169,7 +169,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) conveying = FALSE // attack with item, place item on conveyor -/obj/machinery/conveyor/attackby(obj/item/I, mob/user, params) +/obj/machinery/conveyor/attackby(obj/item/I, mob/living/user, params) if(I.tool_behaviour == TOOL_CROWBAR) user.visible_message("[user] struggles to pry up \the [src] with \the [I].", \ "You struggle to pry up \the [src] with \the [I].") @@ -193,7 +193,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) update_move_direction() to_chat(user, "You reverse [src]'s direction.") - else if(user.a_intent != INTENT_HARM) + else if(!user.combat_mode) user.transferItemToLoc(I, drop_location()) else return ..() diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm index 396b5bff976..6443a519f92 100644 --- a/code/modules/recycling/disposal/bin.dm +++ b/code/modules/recycling/disposal/bin.dm @@ -80,7 +80,7 @@ air_contents.merge(removed) trunk_check() -/obj/machinery/disposal/attackby(obj/item/I, mob/user, params) +/obj/machinery/disposal/attackby(obj/item/I, mob/living/user, params) add_fingerprint(user) if(!pressure_charging && !full_pressure && !flush) if(I.tool_behaviour == TOOL_SCREWDRIVER) @@ -98,7 +98,7 @@ deconstruct() return - if(user.a_intent != INTENT_HARM) + if(!user.combat_mode) if((I.item_flags & ABSTRACT) || !user.temporarilyRemoveItemFromInventory(I)) return place_item_in_disposal(I, user) diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index d8a228b5f9a..d922edc685b 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -25,8 +25,8 @@ Note: Must be placed within 3 tiles of the R&D Console temp_list[O] = text2num(temp_list[O]) return temp_list -/obj/machinery/rnd/destructive_analyzer/Insert_Item(obj/item/O, mob/user) - if(user.a_intent != INTENT_HARM) +/obj/machinery/rnd/destructive_analyzer/Insert_Item(obj/item/O, mob/living/user) + if(!user.combat_mode) . = 1 if(!is_insertion_ready(user)) return diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 19f77849f0a..d7ed78da2f5 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -107,8 +107,8 @@ return FALSE return TRUE -/obj/machinery/rnd/experimentor/Insert_Item(obj/item/O, mob/user) - if(user.a_intent != INTENT_HARM) +/obj/machinery/rnd/experimentor/Insert_Item(obj/item/O, mob/living/user) + if(!user.combat_mode) . = 1 if(!is_insertion_ready(user)) return diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index df10316643e..b154188846a 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -137,7 +137,7 @@ user.visible_message("[user] starts shaking violently!","Your [name] starts pulsing violently...") if(do_after(user, 50, target = user)) var/mob/living/simple_animal/S = create_random_mob(user.drop_location(), HOSTILE_SPAWN) - if(user.a_intent != INTENT_HARM) + if(!user.combat_mode) S.faction |= "neutral" else S.faction |= "slime" diff --git a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm index 67a1974b37c..d02e61e82a0 100644 --- a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm +++ b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm @@ -84,7 +84,7 @@ reagents.expose(M, TOUCH, 20) //Covers target in 20u of oil. to_chat(M, "You touch the pool of oil, only to get oil all over yourself. It would be wise to wash this off with water.") -/obj/structure/sink/oil_well/attackby(obj/item/O, mob/user, params) +/obj/structure/sink/oil_well/attackby(obj/item/O, mob/living/user, params) flick("puddle-oil-splash",src) if(O.tool_behaviour == TOOL_SHOVEL && !(flags_1&NODECONSTRUCT_1)) //attempt to deconstruct the puddle with a shovel to_chat(user, "You fill in the oil well with soil.") @@ -100,7 +100,7 @@ return TRUE to_chat(user, "\The [RG] is full.") return FALSE - if(user.a_intent != INTENT_HARM) + if(!user.combat_mode) to_chat(user, "You won't have any luck getting \the [O] out if you drop it in the oil.") return 1 else @@ -161,7 +161,7 @@ to_chat(user, "The grave has already been dug up.") /obj/structure/closet/crate/grave/tool_interact(obj/item/S, mob/living/carbon/user) - if(user.a_intent == INTENT_HELP) //checks to attempt to dig the grave, must be done on help intent only. + if(!user.combat_mode) //checks to attempt to dig the grave, must be done with combat mode off only. if(!opened) if(istype(S,cutting_tool) && S.tool_behaviour == TOOL_SHOVEL) to_chat(user, "You start start to dig open \the [src] with \the [S]...") @@ -184,7 +184,7 @@ to_chat(user, "The grave has already been dug up.") return 1 - else if((user.a_intent != INTENT_HELP) && opened) //checks to attempt to remove the grave entirely. + else if((user.combat_mode) && opened) //checks to attempt to remove the grave entirely. if(istype(S,cutting_tool) && S.tool_behaviour == TOOL_SHOVEL) to_chat(user, "You start to remove \the [src] with \the [S].") if (do_after(user,15, target = src)) diff --git a/code/modules/spells/spell_types/summonitem.dm b/code/modules/spells/spell_types/summonitem.dm index 8636211941c..f0f2ca68e16 100644 --- a/code/modules/spells/spell_types/summonitem.dm +++ b/code/modules/spells/spell_types/summonitem.dm @@ -59,7 +59,7 @@ var/obj/item/organ/organ = item_to_retrieve if(organ.owner) // If this code ever runs I will be happy - log_combat(L, organ.owner, "magically removed [organ.name] from", addition="INTENT: [uppertext(L.a_intent)]") + log_combat(L, organ.owner, "magically removed [organ.name] from", addition="COMBAT MODE: [uppertext(L.combat_mode)]") organ.Remove(organ.owner) else while(!isturf(item_to_retrieve.loc) && infinite_recursion < 10) //if it's in something you get the whole thing. diff --git a/code/modules/surgery/bone_mending.dm b/code/modules/surgery/bone_mending.dm index 9937226a8a4..8894e6dbd53 100644 --- a/code/modules/surgery/bone_mending.dm +++ b/code/modules/surgery/bone_mending.dm @@ -50,7 +50,7 @@ else user.visible_message("[user] looks for [target]'s [parse_zone(user.zone_selected)].", "You look for [target]'s [parse_zone(user.zone_selected)]...") -/datum/surgery_step/repair_bone_hairline/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) +/datum/surgery_step/repair_bone_hairline/success(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) if(surgery.operated_wound) if(istype(tool, /obj/item/stack)) var/obj/item/stack/used_stack = tool @@ -58,7 +58,7 @@ display_results(user, target, "You successfully repair the fracture in [target]'s [parse_zone(target_zone)].", "[user] successfully repairs the fracture in [target]'s [parse_zone(target_zone)] with [tool]!", "[user] successfully repairs the fracture in [target]'s [parse_zone(target_zone)]!") - log_combat(user, target, "repaired a hairline fracture in", addition="INTENT: [uppertext(user.a_intent)]") + log_combat(user, target, "repaired a hairline fracture in", addition="COMBAT_MODE: [uppertext(user.combat_mode)]") qdel(surgery.operated_wound) else to_chat(user, "[target] has no hairline fracture there!") @@ -86,7 +86,7 @@ else user.visible_message("[user] looks for [target]'s [parse_zone(user.zone_selected)].", "You look for [target]'s [parse_zone(user.zone_selected)]...") -/datum/surgery_step/reset_compound_fracture/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) +/datum/surgery_step/reset_compound_fracture/success(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) if(surgery.operated_wound) if(istype(tool, /obj/item/stack)) var/obj/item/stack/used_stack = tool @@ -94,7 +94,7 @@ display_results(user, target, "You successfully reset the bone in [target]'s [parse_zone(target_zone)].", "[user] successfully resets the bone in [target]'s [parse_zone(target_zone)] with [tool]!", "[user] successfully resets the bone in [target]'s [parse_zone(target_zone)]!") - log_combat(user, target, "reset a compound fracture in", addition="INTENT: [uppertext(user.a_intent)]") + log_combat(user, target, "reset a compound fracture in", addition="COMBAT MODE: [uppertext(user.combat_mode)]") else to_chat(user, "[target] has no compound fracture there!") return ..() @@ -120,7 +120,7 @@ else user.visible_message("[user] looks for [target]'s [parse_zone(user.zone_selected)].", "You look for [target]'s [parse_zone(user.zone_selected)]...") -/datum/surgery_step/repair_bone_compound/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) +/datum/surgery_step/repair_bone_compound/success(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) if(surgery.operated_wound) if(istype(tool, /obj/item/stack)) var/obj/item/stack/used_stack = tool @@ -128,7 +128,7 @@ display_results(user, target, "You successfully repair the fracture in [target]'s [parse_zone(target_zone)].", "[user] successfully repairs the fracture in [target]'s [parse_zone(target_zone)] with [tool]!", "[user] successfully repairs the fracture in [target]'s [parse_zone(target_zone)]!") - log_combat(user, target, "repaired a compound fracture in", addition="INTENT: [uppertext(user.a_intent)]") + log_combat(user, target, "repaired a compound fracture in", addition="COMBAT MODE: [uppertext(user.combat_mode)]") qdel(surgery.operated_wound) else to_chat(user, "[target] has no compound fracture there!") diff --git a/code/modules/surgery/burn_dressing.dm b/code/modules/surgery/burn_dressing.dm index aed5432bdfe..8856b5b0e9c 100644 --- a/code/modules/surgery/burn_dressing.dm +++ b/code/modules/surgery/burn_dressing.dm @@ -41,13 +41,13 @@ else user.visible_message("[user] looks for [target]'s [parse_zone(user.zone_selected)].", "You look for [target]'s [parse_zone(user.zone_selected)]...") -/datum/surgery_step/debride/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) +/datum/surgery_step/debride/success(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) var/datum/wound/burn/burn_wound = surgery.operated_wound if(burn_wound) display_results(user, target, "You successfully excise some of the infected flesh from [target]'s [parse_zone(target_zone)].", "[user] successfully excises some of the infected flesh from [target]'s [parse_zone(target_zone)] with [tool]!", "[user] successfully excises some of the infected flesh from [target]'s [parse_zone(target_zone)]!") - log_combat(user, target, "excised infected flesh in", addition="INTENT: [uppertext(user.a_intent)]") + log_combat(user, target, "excised infected flesh in", addition="COMBAT MODE: [uppertext(user.combat_mode)]") surgery.operated_bodypart.receive_damage(brute=3, wound_bonus=CANT_WOUND) burn_wound.infestation -= 0.5 burn_wound.sanitization += 0.5 @@ -87,13 +87,13 @@ else user.visible_message("[user] looks for [target]'s [parse_zone(user.zone_selected)].", "You look for [target]'s [parse_zone(user.zone_selected)]...") -/datum/surgery_step/dress/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) +/datum/surgery_step/dress/success(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) var/datum/wound/burn/burn_wound = surgery.operated_wound if(burn_wound) display_results(user, target, "You successfully wrap [target]'s [parse_zone(target_zone)] with [tool].", "[user] successfully wraps [target]'s [parse_zone(target_zone)] with [tool]!", "[user] successfully wraps [target]'s [parse_zone(target_zone)]!") - log_combat(user, target, "dressed burns in", addition="INTENT: [uppertext(user.a_intent)]") + log_combat(user, target, "dressed burns in", addition="COMBAT MODE: [uppertext(user.combat_mode)]") burn_wound.sanitization += 3 burn_wound.flesh_healing += 5 var/obj/item/bodypart/the_part = target.get_bodypart(target_zone) diff --git a/code/modules/surgery/limb_augmentation.dm b/code/modules/surgery/limb_augmentation.dm index 568d2cd45a5..8be3d7d6334 100644 --- a/code/modules/surgery/limb_augmentation.dm +++ b/code/modules/surgery/limb_augmentation.dm @@ -44,7 +44,7 @@ //SURGERY STEP SUCCESSES -/datum/surgery_step/replace_limb/success(mob/user, mob/living/carbon/target, target_zone, obj/item/bodypart/tool, datum/surgery/surgery, default_display_results = FALSE) +/datum/surgery_step/replace_limb/success(mob/living/user, mob/living/carbon/target, target_zone, obj/item/bodypart/tool, datum/surgery/surgery, default_display_results = FALSE) if(L) if(istype(tool, /obj/item/organ_storage)) tool.icon_state = initial(tool.icon_state) @@ -56,7 +56,7 @@ display_results(user, target, "You successfully augment [target]'s [parse_zone(target_zone)].", "[user] successfully augments [target]'s [parse_zone(target_zone)] with [tool]!", "[user] successfully augments [target]'s [parse_zone(target_zone)]!") - log_combat(user, target, "augmented", addition="by giving him new [parse_zone(target_zone)] INTENT: [uppertext(user.a_intent)]") + log_combat(user, target, "augmented", addition="by giving him new [parse_zone(target_zone)] COMBAT MODE: [uppertext(user.combat_mode)]") else to_chat(user, "[target] has no organic [parse_zone(target_zone)] there!") return ..() diff --git a/code/modules/surgery/organ_manipulation.dm b/code/modules/surgery/organ_manipulation.dm index a2def07ad41..9e5af70143f 100644 --- a/code/modules/surgery/organ_manipulation.dm +++ b/code/modules/surgery/organ_manipulation.dm @@ -129,7 +129,7 @@ return -1 -/datum/surgery_step/manipulate_organs/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results) +/datum/surgery_step/manipulate_organs/success(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results) if(current_type == "insert") if(istype(tool, /obj/item/organ_storage)) I = tool.contents[1] @@ -150,7 +150,7 @@ display_results(user, target, "You successfully extract [I] from [target]'s [parse_zone(target_zone)].", "[user] successfully extracts [I] from [target]'s [parse_zone(target_zone)]!", "[user] successfully extracts something from [target]'s [parse_zone(target_zone)]!") - log_combat(user, target, "surgically removed [I.name] from", addition="INTENT: [uppertext(user.a_intent)]") + log_combat(user, target, "surgically removed [I.name] from", addition="COMBAT MODE: [uppertext(user.combat_mode)]") I.Remove(target) I.forceMove(get_turf(target)) else diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index 01ac922758d..d9f02a9bac7 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -413,38 +413,6 @@ if(L.m_intent != MOVE_INTENT_RUN) L.toggle_move_intent() - //HELP INTENT - else if((findtext(message, helpintent_words))) - cooldown = COOLDOWN_MEME - for(var/mob/living/carbon/human/H in listeners) - addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_HELP), i * 2) - addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2) - i++ - - //DISARM INTENT - else if((findtext(message, disarmintent_words))) - cooldown = COOLDOWN_MEME - for(var/mob/living/carbon/human/H in listeners) - addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_DISARM), i * 2) - addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2) - i++ - - //GRAB INTENT - else if((findtext(message, grabintent_words))) - cooldown = COOLDOWN_MEME - for(var/mob/living/carbon/human/H in listeners) - addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_GRAB), i * 2) - addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2) - i++ - - //HARM INTENT - else if((findtext(message, harmintent_words))) - cooldown = COOLDOWN_MEME - for(var/mob/living/carbon/human/H in listeners) - addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_HARM), i * 2) - addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2) - i++ - //THROW/CATCH else if((findtext(message, throwmode_words))) cooldown = COOLDOWN_MEME diff --git a/code/modules/surgery/repair_puncture.dm b/code/modules/surgery/repair_puncture.dm index 7c3e07fba89..bec6c8bc4c3 100644 --- a/code/modules/surgery/repair_puncture.dm +++ b/code/modules/surgery/repair_puncture.dm @@ -46,7 +46,7 @@ "[user] begins to realign the torn blood vessels in [target]'s [parse_zone(user.zone_selected)] with [tool].", "[user] begins to realign the torn blood vessels in [target]'s [parse_zone(user.zone_selected)].") -/datum/surgery_step/repair_innards/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) +/datum/surgery_step/repair_innards/success(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) var/datum/wound/pierce/pierce_wound = surgery.operated_wound if(!pierce_wound) to_chat(user, "[target] has no puncture wound there!") @@ -55,7 +55,7 @@ display_results(user, target, "You successfully realign some of the blood vessels in [target]'s [parse_zone(target_zone)].", "[user] successfully realigns some of the blood vessels in [target]'s [parse_zone(target_zone)] with [tool]!", "[user] successfully realigns some of the blood vessels in [target]'s [parse_zone(target_zone)]!") - log_combat(user, target, "excised infected flesh in", addition="INTENT: [uppertext(user.a_intent)]") + log_combat(user, target, "excised infected flesh in", addition="COMBAT MODE: [uppertext(user.combat_mode)]") surgery.operated_bodypart.receive_damage(brute=3, wound_bonus=CANT_WOUND) pierce_wound.blood_flow -= 0.25 return ..() @@ -88,7 +88,7 @@ "[user] begins to meld some of the split blood vessels in [target]'s [parse_zone(user.zone_selected)] with [tool].", "[user] begins to meld some of the split blood vessels in [target]'s [parse_zone(user.zone_selected)].") -/datum/surgery_step/seal_veins/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) +/datum/surgery_step/seal_veins/success(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) var/datum/wound/pierce/pierce_wound = surgery.operated_wound if(!pierce_wound) to_chat(user, "[target] has no puncture there!") @@ -97,7 +97,7 @@ display_results(user, target, "You successfully meld some of the split blood vessels in [target]'s [parse_zone(target_zone)] with [tool].", "[user] successfully melds some of the split blood vessels in [target]'s [parse_zone(target_zone)] with [tool]!", "[user] successfully melds some of the split blood vessels in [target]'s [parse_zone(target_zone)]!") - log_combat(user, target, "dressed burns in", addition="INTENT: [uppertext(user.a_intent)]") + log_combat(user, target, "dressed burns in", addition="COMBAT MODE: [uppertext(user.combat_mode)]") pierce_wound.blood_flow -= 0.5 if(pierce_wound.blood_flow > 0) surgery.status = REALIGN_INNARDS diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index 4ab5af6b9e5..5dcacc53252 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -93,14 +93,14 @@ if(type in opcomputer.advanced_surgeries) return TRUE -/datum/surgery/proc/next_step(mob/user, intent) +/datum/surgery/proc/next_step(mob/living/user, modifiers) if(location != user.zone_selected) return FALSE if(step_in_progress) return TRUE var/try_to_fail = FALSE - if(intent == INTENT_DISARM) + if(modifiers && modifiers["right"]) try_to_fail = TRUE var/datum/surgery_step/S = get_surgery_step() diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index 98039237b44..9524390d158 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -192,7 +192,7 @@ /obj/item/circular_saw/augment desc = "A small but very fast spinning saw. It rips and tears until it is done." - w_class = WEIGHT_CLASS_SMALL + w_class = WEIGHT_CLASS_SMALL toolspeed = 0.5 @@ -359,8 +359,8 @@ sharpness = SHARP_EDGED custom_premium_price = PAYCHECK_MEDIUM * 14 -/obj/item/shears/attack(mob/living/M, mob/user) - if(!iscarbon(M) || user.a_intent != INTENT_HELP) +/obj/item/shears/attack(mob/living/M, mob/living/user) + if(!iscarbon(M) || user.combat_mode) return ..() if(user.zone_selected == BODY_ZONE_CHEST) diff --git a/code/modules/unit_tests/combat.dm b/code/modules/unit_tests/combat.dm index 30bad721751..a2a98ecbd5a 100644 --- a/code/modules/unit_tests/combat.dm +++ b/code/modules/unit_tests/combat.dm @@ -5,8 +5,8 @@ // Avoid all randomness in tests ADD_TRAIT(puncher, TRAIT_PERFECT_ATTACKER, INNATE_TRAIT) - puncher.a_intent_change(INTENT_HARM) - victim.attack_hand(puncher) + puncher.set_combat_mode(TRUE) + victim.attack_hand(puncher, list("right" = FALSE)) TEST_ASSERT(victim.getBruteLoss() > 0, "Victim took no brute damage after being punched") @@ -16,7 +16,7 @@ var/obj/item/storage/toolbox/toolbox = allocate(/obj/item/storage/toolbox) tider.put_in_active_hand(toolbox, forced = TRUE) - tider.a_intent_change(INTENT_HARM) + tider.set_combat_mode(TRUE) victim.attackby(toolbox, tider) TEST_ASSERT(victim.getBruteLoss() > 0, "Victim took no brute damage after being hit by a toolbox") @@ -27,7 +27,8 @@ var/obj/item/weldingtool/welding_tool = allocate(/obj/item/weldingtool) attacker.put_in_active_hand(welding_tool, forced = TRUE) - attacker.a_intent_change(INTENT_HARM) + attacker.set_combat_mode(TRUE) + welding_tool.attack_self(attacker) // Turn it on victim.attackby(welding_tool, attacker) @@ -58,7 +59,7 @@ RegisterSignal(toolbox, COMSIG_ITEM_AFTERATTACK, .proc/post_attack_hit) attacker.put_in_active_hand(toolbox, forced = TRUE) - attacker.a_intent_change(INTENT_HARM) + attacker.set_combat_mode(TRUE) toolbox.melee_attack_chain(attacker, victim) TEST_ASSERT(pre_attack_hit, "Pre-attack signal was not fired") @@ -71,7 +72,6 @@ var/obj/item/storage/toolbox/toolbox = allocate(/obj/item/storage/toolbox) victim.put_in_active_hand(toolbox, forced = TRUE) - attacker.a_intent_change(INTENT_DISARM) var/obj/structure/barricade/dense_object = allocate(/obj/structure/barricade) @@ -82,7 +82,7 @@ // First disarm, world should now look like: // Attacker --> Empty space --> Victim --> Wall - victim.attack_hand(attacker) + victim.attack_hand(attacker, list("right" = TRUE)) TEST_ASSERT_EQUAL(victim.loc.x, run_loc_bottom_left.x + 2, "Victim wasn't moved back after being pushed") TEST_ASSERT(!victim.has_status_effect(STATUS_EFFECT_KNOCKDOWN), "Victim was knocked down despite not being against a wall") @@ -91,7 +91,7 @@ attacker.forceMove(get_step(attacker, EAST)) // Second disarm, victim was against wall and should be down - victim.attack_hand(attacker) + victim.attack_hand(attacker, list("right" = TRUE)) TEST_ASSERT_EQUAL(victim.loc.x, run_loc_bottom_left.x + 2, "Victim was moved after being pushed against a wall") TEST_ASSERT(victim.has_status_effect(STATUS_EFFECT_KNOCKDOWN), "Victim was not knocked down after being pushed against a wall") diff --git a/code/modules/unit_tests/metabolizing.dm b/code/modules/unit_tests/metabolizing.dm index 3040d3bacda..f7b689574c6 100644 --- a/code/modules/unit_tests/metabolizing.dm +++ b/code/modules/unit_tests/metabolizing.dm @@ -74,7 +74,7 @@ syringe.reagents.add_reagent(meth.type, meth.addiction_threshold) syringe.mode = SYRINGE_INJECT - syringe_user.a_intent = INTENT_HARM + syringe_user.set_combat_mode(TRUE) syringe.afterattack(syringe_user, syringe_user, TRUE) syringe_user.Life() @@ -91,7 +91,7 @@ pill_two.reagents.add_reagent(meth.type, (meth.addiction_threshold * 0.5) + 1) pill_two.attack(pill_syringe_user, pill_syringe_user) - pill_syringe_user.a_intent = INTENT_HARM + pill_syringe_user.set_combat_mode(TRUE) syringe.mode = SYRINGE_INJECT syringe.afterattack(pill_syringe_user, pill_syringe_user, TRUE) diff --git a/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm b/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm index 3de1c41c0e8..9e382dd7bc3 100644 --- a/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm +++ b/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm @@ -122,10 +122,10 @@ var/datum/component/butchering/butchering = src.GetComponent(/datum/component/butchering) butchering.butchering_enabled = FALSE -/obj/item/mecha_parts/mecha_equipment/drill/proc/drill_mob(mob/living/target, mob/user) +/obj/item/mecha_parts/mecha_equipment/drill/proc/drill_mob(mob/living/target, mob/living/user) target.visible_message("[chassis] is drilling [target] with [src]!", \ "[chassis] is drilling you with [src]!") - log_combat(user, target, "drilled", "[name]", "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])") + log_combat(user, target, "drilled", "[name]", "Combat mode: [user.combat_mode ? "On" : "Off"])(DAMTYPE: [uppertext(damtype)])") if(target.stat == DEAD && target.getBruteLoss() >= (target.maxHealth * 2)) log_combat(user, target, "gibbed", name) if(LAZYLEN(target.butcher_results) || LAZYLEN(target.guaranteed_butcher_results)) diff --git a/code/modules/vehicles/mecha/equipment/tools/work_tools.dm b/code/modules/vehicles/mecha/equipment/tools/work_tools.dm index dd8ef9423ef..fe9936ac830 100644 --- a/code/modules/vehicles/mecha/equipment/tools/work_tools.dm +++ b/code/modules/vehicles/mecha/equipment/tools/work_tools.dm @@ -37,7 +37,7 @@ . = ..() cargo_holder = null -/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/action(mob/source, atom/target, params) +/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/action(mob/living/source, atom/target, params) if(!action_checks(target)) return if(!cargo_holder) @@ -91,7 +91,10 @@ var/mob/living/M = target if(M.stat == DEAD) return - if(source.a_intent == INTENT_HELP) + + var/list/modifiers = params2list(params) + + if(!source.combat_mode) step_away(M,chassis) if(killer_clamp) target.visible_message("[chassis] tosses [target] like a piece of paper!", \ @@ -101,7 +104,7 @@ chassis.visible_message("[chassis] pushes [target] out of the way.", \ "[chassis] pushes you aside.") return ..() - else if(source.a_intent == INTENT_DISARM && iscarbon(M))//meme clamp here + else if(modifiers && modifiers["right"] && iscarbon(M))//meme clamp here if(!killer_clamp) to_chat(source, "You longingly wish to tear [M]'s arms off.") return @@ -121,7 +124,7 @@ playsound(src, get_dismember_sound(), 80, TRUE) target.visible_message("[chassis] rips [target]'s arms off!", \ "[chassis] rips your arms off!") - log_combat(source, M, "removed both arms with a real clamp,", "[name]", "(INTENT: [uppertext(source.a_intent)]) (DAMTYPE: [uppertext(damtype)])") + log_combat(source, M, "removed both arms with a real clamp,", "[name]", "(COMBAT MODE: [uppertext(source.combat_mode)] (DAMTYPE: [uppertext(damtype)])") return ..() M.take_overall_damage(clamp_damage) @@ -132,7 +135,7 @@ target.visible_message("[chassis] squeezes [target]!", \ "[chassis] squeezes you!",\ "You hear something crack.") - log_combat(source, M, "attacked", "[name]", "(INTENT: [uppertext(source.a_intent)]) (DAMTYPE: [uppertext(damtype)])") + log_combat(source, M, "attacked", "[name]", "(Combat mode: [source.combat_mode ? "On" : "Off"]) (DAMTYPE: [uppertext(damtype)])") return ..() diff --git a/code/modules/vehicles/mecha/mech_melee_attack.dm b/code/modules/vehicles/mecha/mech_melee_attack.dm index fbbe472a9c2..cdd3d78abac 100644 --- a/code/modules/vehicles/mecha/mech_melee_attack.dm +++ b/code/modules/vehicles/mecha/mech_melee_attack.dm @@ -46,8 +46,8 @@ return return ..() -/mob/living/mech_melee_attack(obj/vehicle/sealed/mecha/mecha_attacker, mob/user) - if(user.a_intent == INTENT_HARM) +/mob/living/mech_melee_attack(obj/vehicle/sealed/mecha/mecha_attacker, mob/living/user) + if(user.combat_mode) if(HAS_TRAIT(user, TRAIT_PACIFISM)) to_chat(user, "You don't want to harm other living beings!") return @@ -70,7 +70,7 @@ visible_message("[mecha_attacker.name] hits [src]!", \ "[mecha_attacker.name] hits you!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, mecha_attacker) to_chat(mecha_attacker, "You hit [src]!") - log_combat(user, src, "attacked", mecha_attacker, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(mecha_attacker.damtype)])") + log_combat(user, src, "attacked", mecha_attacker, "(COMBAT MODE: [uppertext(user.combat_mode)]) (DAMTYPE: [uppertext(mecha_attacker.damtype)])") else step_away(src, mecha_attacker) log_combat(user, src, "pushed", mecha_attacker) @@ -78,8 +78,11 @@ "[mecha_attacker] pushes you out of the way.", "You hear aggressive shuffling!", 5, list(mecha_attacker)) to_chat(mecha_attacker, "You push [src] out of the way.") -/mob/living/carbon/human/mech_melee_attack(obj/vehicle/sealed/mecha/mecha_attacker, mob/user) - if(user.a_intent == INTENT_HARM) +/mob/living/carbon/human/mech_melee_attack(obj/vehicle/sealed/mecha/mecha_attacker, mob/living/user) + if(!isliving(user)) + return ..() + var/mob/living/attacker = user + if(attacker.combat_mode) if(HAS_TRAIT(user, TRAIT_PACIFISM)) to_chat(user, "You don't want to harm other living beings!") return @@ -112,6 +115,6 @@ visible_message("[mecha_attacker.name] hits [src]!", \ "[mecha_attacker.name] hits you!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, list(mecha_attacker)) to_chat(mecha_attacker, "You hit [src]!") - log_combat(user, src, "attacked", mecha_attacker, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(mecha_attacker.damtype)])") + log_combat(user, src, "attacked", mecha_attacker, "(COMBAT MODE: [uppertext(user.combat_mode)] (DAMTYPE: [uppertext(mecha_attacker.damtype)])") else return ..() diff --git a/code/modules/vehicles/mecha/mecha_defense.dm b/code/modules/vehicles/mecha/mecha_defense.dm index efbf0292574..164ae41f594 100644 --- a/code/modules/vehicles/mecha/mecha_defense.dm +++ b/code/modules/vehicles/mecha/mecha_defense.dm @@ -300,7 +300,7 @@ /obj/vehicle/sealed/mecha/welder_act(mob/living/user, obj/item/W) . = ..() - if(user.a_intent == INTENT_HARM) + if(user.combat_mode) return . = TRUE if(internal_damage & MECHA_INT_TANK_BREACH) @@ -328,12 +328,12 @@ target.reagents.add_reagent(/datum/reagent/toxin, force/2.5) -/obj/vehicle/sealed/mecha/mech_melee_attack(obj/vehicle/sealed/mecha/M, mob/user) +/obj/vehicle/sealed/mecha/mech_melee_attack(obj/vehicle/sealed/mecha/M, mob/living/user) if(!has_charge(melee_energy_drain)) return NONE use_power(melee_energy_drain) if(M.damtype == BRUTE || M.damtype == BURN) - log_combat(user, src, "attacked", M, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(M.damtype)])") + log_combat(user, src, "attacked", M, "(COMBAT MODE: [uppertext(user.combat_mode)] (DAMTYPE: [uppertext(M.damtype)])") . = ..() /obj/vehicle/sealed/mecha/proc/full_repair(charge_cell) diff --git a/code/modules/vehicles/secway.dm b/code/modules/vehicles/secway.dm index 65bd9857c07..5c8808c0b8d 100644 --- a/code/modules/vehicles/secway.dm +++ b/code/modules/vehicles/secway.dm @@ -28,8 +28,8 @@ smoke.set_up(0, src) smoke.start() -/obj/vehicle/ridden/secway/attackby(obj/item/W, mob/user, params) - if(W.tool_behaviour == TOOL_WELDER && user.a_intent != INTENT_HARM) +/obj/vehicle/ridden/secway/attackby(obj/item/W, mob/living/user, params) + if(W.tool_behaviour == TOOL_WELDER && !user.combat_mode) if(obj_integrity < max_integrity) if(W.use_tool(src, user, 0, volume = 50, amount = 1)) user.visible_message("[user] repairs some damage to [name].", "You repair some damage to \the [src].") diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 404eacb89b5..efb7944ad7c 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -435,7 +435,7 @@ GLOBAL_LIST_EMPTY(vending_products) to_chat(user, "You must first secure [src].") return TRUE -/obj/machinery/vending/attackby(obj/item/I, mob/user, params) +/obj/machinery/vending/attackby(obj/item/I, mob/living/user, params) if(panel_open && is_wire_tool(I)) wires.interact(user) return @@ -458,7 +458,7 @@ GLOBAL_LIST_EMPTY(vending_products) else to_chat(user, "There's nothing to restock!") return - if(compartmentLoadAccessCheck(user) && user.a_intent != INTENT_HARM) + if(compartmentLoadAccessCheck(user) && !user.combat_mode) if(canLoadItem(I)) loadingAttempt(I,user) updateUsrDialog() //can't put this on the proc above because we spam it below diff --git a/icons/hud/screen_alien.dmi b/icons/hud/screen_alien.dmi index 0a2c525b998d1b7cd97d550ba5791a3b8fff98b8..307c41075efb0393592910d9c1cddca02cbff33a 100644 GIT binary patch literal 19547 zcmZsDbyQSe^zR+IQ$TtM2}wm7Dd`lIlnx1zZWtI)q`Q%Bq*IXYlJ4$q>7m~B`+IM# z_ttuU3~Mg;-m~vLXPWZF=v>VtA+X3-tLW=>)ZMJQW2AWPBitx$wioU=uo73oDOGyd)8+T zWv(RnTlGCA{BWE8_PSX0+%20wtBkkb*KKS`Wg#P% zBm>Ne9Od99jA&*1i3-byY~+wLjHa}K8Oib=h3kYK-hJI>@+Ew2QPK?8G1wgYV+4Mk zOY!on z8nbVjGMMy2C?+K}$h^u_h0ngq=2agSN`jQXI8k{QfiIer1f$iNan{6{>?G_;Z&H17 zQrT6V7v@tM5^}Wn6S1Vecu{0~f5b1Vr$_yqjSW>xTu(0*8J>%Xi;HU)(j);^>hh<8 zjT7-a8#jbk?24gLO~BxH6q=$7OpUm&$Rc+$*>sEF@S5+0KcWt~u|0mE>q+nBd^G^E z(A&{n*15-uNwH{ZcaEZMIc`t*UaLBg78F41`JsG3n#y)F{rSP^I3VSHx38<-kj3h~ z@V?=!E}w6OzC7wdJoduzpg`3x;-!F8a&W&wW>)39w|kMakAIQKfR*kI-pRw^^UF5Z zRmB{$;m}Vn-hBEUC#F+<;bz*y+PqxxasDd%|Z-RP8IgaIl1yDZviW4?xqz3Ar8 zxr@epm+kk_JalEV7qQ1R@ll&P{**N2I5%*5%u%1E_ljI2`B?{Y6Xy(lXK8a(JP~w6 zTKB?<&nt8v(3o)T477Qdtc%-VW|M%pLCdTb!^Z%x?yQCQ;`gO?OO-%uRGRJ z-1^l~Lvhxg+?g?zsY2Gafi&CVw)dsaZ(gc$ z=taC}i7QEOQ_PU)U`;e2-hyLUk!+n?UovUr!yGyHIyj zz&m?;i8Hd2)1}@L`f_~~N;HD4c`6hS-STT9uPP1nQi)&G)F}D zt+>Ixs^Sy#K0Gjcwxf==60e~ts-b++)#?adY(~#ZQZH{gv0A)bhYQ#p^y&kl43&k* zR_G_&X*!MC8XTT50~6e(SQ_aAZ=Scw1RUnsTkwgL=-8>ueMY7~@wO2k6PxQ$Lx1 zD(J>Whw$wGiJrJl{g%xW_W3m~Mu?sb03UWu@?M%+?<>?&BOF65bH2MMxe%Pakv@m% z%z3GGj4KUfoN44eQ;W1+4O7X z7Q8wo%wg7rl~6f8uHolNW2_s~Va^ z(%xQ?4I!ksgj)j97>Ecu?DbtTOM1S77KC08zIx>G@qP(@u_KLL?;@k^h?cxXh3>iJ zpm5p?4|`gjj`c$I9-;@o;u}T8PLFz&)Pzc3IL58x+lgyrb!j~-<9&II`$3?aI$mR z(J`>%)<@q$;5XQc_BReZjjwSNg|Fm86bn>@;pq{2t%`P_{qX zwDcoI0O0JC`8L?e+nrg&$#TkFC%w=w1u_c+?kKn2!C|%5y|PpU^0o0ubt76|vB&<3 znd;BSRUags=v|M+Iu6t#C7@=Q>o3%k1Ktwo7L&Z-HYd8 z7e1mc5CO7HN&nWi1fOlU>k3&^o`!$|7n%ElTuk7k>Gco(U)~FT9k=)cNd1=vhck`G z7t3q5&A;|r{~awL?6HBBuS2TbcQ#kPhb?mzS8S{3|4m(UAL*CJx^~q*WVe4MQ`WIadz^KY+1(BjQ^(JgUg+0>#tBi&7gDOP)DV5 zp~$C6_yZ(%AIOoO1?dRV)DFk-p#0H`3l4Uzom1n++F~owO&RIjyitoi- zOu3xjY&3q5E6JI*UHBeT(o&fdYE@oiI6L;pWJ$j7mkf1PMBtyC`dZ=bl)xT60N`lJ zfghKV*2&v%;Bl1AkuN5O|AnACaYF9l!nz~ z=mTJ?wa3jf!Oo>WedPo*Hc?A`*VE=w8gF*bo0cv0y8qrhT!}7kCOU~(MfQ~DT^W4i zdEcnJZN}X3Vm+tpSLOxKQjeI|WHCTt&h^XKQOTd@p3x)c>5 zAh6Ox97Qz}GLKIM9hjwxTyk06g8we_v0-@}huu3a!ge!%Dfg5opi!<#apHO+*S?<6 zBCbWo+-fzw{j`8&ub&ft6n*TVBLAIdOLyciQbIA;Q{Yw8BfZAr>1#JnipU?a-#Kjq z{GZ_rrBzyO@J<<$Y}f<{WVytBDW;0(c_Kk=OppE{vD$*H(2rlzXe>)F%0=AR&s|hc zb>RNnx>x89+tuLjjBq2{A-`{?6n6h+kc6azmRUIk-*w~yKBnZ?v}_HM0qzcluQR2U zDI4GAZlTXK!g@@2Uqm4zNe&?U&!@@THn=CqnjYns)TE*1$kn7{xr;?({~nq5k0v3R zKpp&%`o;Z6shy#tc+RpW7`{mx7P62Ph9#$YZv~-aB*-Vfyu4#96J5cTN0hy&I{@H* zS+M5^eC}SaNKWjBkUyiq%eggX!y+rq*#Gk*m3qZHPodzJj?-f4z*@WhH&?CSMu;(C zO}Aa2iOEwM$_@^mL;GzFNeX&AMOe#>#&G|YYThRXWfQT3Fou~r;kNEIwNmt%GM86O z4&v}-NR$-MkI+vs!)=$@vgLJqBu6Am?R>Cs@aXx80UVuJxv zd)ReMl!c!a_x|hs6sZd8)TrD&tJ(e0-0Guf=&K7T3biY9ua-#v#etmC1{{O2O*gTc z1-cVC9D2Y^b^p)dKu@D`NtF{0v+G}kRqz_l7j9%0e}kbIIq0n+^+5*Zls?Q)yh~$s zX$SKy_JEc*Oe^>Rm;6`Hs0CGFxcSP5#e^wtKI;gFY?D)#X=HdvM<%~z5Yvko{`mNA&G)eHqN_zlZRl@YiNR{xdl zA7w(`Bob6@O^iiMuUh{TNjOEJ=goJ4XCm1a=u+Hka7n#xr0 zXHAW%JuG$*%M`NHGym{>d#Q3yZ}bnua`#$AeD0IpwKsIRvZkiK_oo}Jt!$!$;ss9sy=yz@yo%b zPm7!5dXXY$S&+pWcRz-`1hnM~QePa}ot7)r+?~#mPpWBZ1}MZFc`5Wpi0NOHbaS=^ z5Vr{I?d=tFzR@+gOpWNMAby4UW$H|fZmw@gD@!$7O{cn#&BXy$YFp?{zk)BiTewwy zL_ywQs1T-DY^1@dz&1O0QQtg^n1DpBm~^`_?iS8IC9k>_fox^n{q4iS?!W1Vpfs8% zSbiy*c=v!&a_RUXq^ zO#N0QT-KO*B6&6D(Uxy&#E663Vb58mjRDUTM0%=d5_7_O4(hqML$ zB;ujcH=-tLHi}cM5#!Ho847qi@TV5^iweC3l>bgnVdoVc;1p`OWEUvkQWl3mv;(Nb z8cOG0?BFV9P7!|CHLV`1UlM%jK~ro~XzlMU4m>yKC{|e}&Nhi=Y55S&=fUaMl>L*# z0YtB1x$E!7HO7tgWEiOkJZWme^#%`jU1PG~cl0RPF$UvUoQ9d;gHXOoGJbYl1myZmn(E zk}Hqb?HA{h=l^Vk#SZVBqVI2zA9x!6GI_Dr8avb#_~Pw+4=nhY;RCvo)A{!YDCd*s z>1>#@5M^g2qDwJX@wrH@Phc|NXY&3B|5<)>)wTRwboqIS-z4)k+-b!05qY$byJGw_ zfz1XXp26^H4W1UAk`hIyT|-4sc#pjW3?yB|ZcesGB4bTD^kXr;4v2nSfyfaPwceK9 z=IJt=hMcpT0@p^z_OZCBJ@}u7Pyt=tX1W|y*`mFaMiBAhM);&HH0XJ?lamCjw^; z1eRc?+0i?LxJ{jQlbYbcL%oNResSI#bJ8ADOay zhG~kX+^60YQOR6n`|F*X;jz&4FjNq4;BgI#<<-+9HAXZ+ft5+k^vfV*#r8}4`d_GJi*k5-N`6be zaoccvF^|n>?AF51*~YszDJ91PE(Osxwzcs~96J4wc@)#pGNLN5lDIg(Bwt@K@4}AX0a&}?o%&w=*kG$lVxHxDYNk2nMlzQQ z$qaOOn+mF2z>2X){HZXMM~v*_cPx8S4WRXN$p!rCm9qwD@y>j`Wk(2w0WXk4QTn%l zfftClv;}9rc+YrJwe%XGpNB*w0YE_F8CEXo&*mEaD=OrNGpZ-=NTmhokHi^e=SVvR zi4SsAsR{5gF5yks#J#DxpevZjUiMEJ95}>~>%0(o8OT13wub|91r-Eq)NVEsqTsj~ z8_lcXe6E9D21uMwrf7jF28~im>u3Irv*9v(&W_JxT@*IL&|FSW&1Y@C&d(TU@W|>; z#+TNw%?qjEZl?irM3myKf@tEjf;FPdkzP-I<8u!!MyQf1i!+6=n-&r^TEvSk4*Bcf zrMx+kBzb;=0YErgwcm!TsPZtqdk=wTxD@2r@(EE*m!q{V_<4<%pp2qH9mN!wFAdke zxf#8pbH4v5V?U4ch0jGF1Nx;*y&O|Nm!v!G;tI?p77xG9;N@+-RQL-jFw z)T`s>S(nF!e|)HVLtIRx>EW@eOmxQcz7G=h2s+rrD)2zd@BZgwqCR{Rl@m-jPhzT{ zU9*aRzVAK#NiE9_gO=w-DB&-%ZZ=~uK7}zhwJ<*0(hiN6-sLl^@ikfdQ(pP$iCDPxvz`I(yVEn=RbRiWYZ%UNbk<#)MCZGP;}OH zNh`69=P4$CO$~ge&2?;=*^Gzrr8E%XU;bKgI#Td>NVxdbOVcH%t+HK;Q?L3|(L4gZ zFL>1&L{>YdQ>T}&Ms!IU(m}e(=t4fERuo^H&+iL*HQ36cB^bQ{XzN4F6$pGi&@XKn zTL9pxE&9ZIo0QdaST}Qd=}LClebjaPIQy3Pw~xT}*A$Hsg>tIUm$ORVCmW4`cYtL0 zBiYS<`AM)C5VM{u(Q7E25`50?Q9A#m#-QIBlWd%X_sczEeh2l9Lum0hlo!5pI^rlX zgj_!ZSux!&8`-t&ZfUu1DbKMhvs#vH*gXSG8Nlhft5-KZj#I!WJbML_H`>k8+Q<@f znUNtUIVwoWJH&DyX*YQuK(Y~bK)30}Z7=E4qdA{WICCNIAPA<~Je8X5Ai_Q4+DM!g zHQtB{*eRkei*gY-s9;qS-nL>l)sMORK?u8SIR18r_6A9;{si4~&TJFu&b_VPahqa{ z=l$|jjiHwg6=5w}Xj236Oe4ze-0mFw2bm7iXS*EX7xhnrkVghod(RW+aBGrj_vA!x zRe`@N*|lPl3->kggDgF9-$^VNiGL?3@i};3H94Gv>OIDdeiwJ?_ z^AHeTS*NLT5R3r}^g{X^rMzkF^3XXPe-l((Z6G~=on5= zg_$1Oz4#p3ph_mca|z?j8l`$R-y&b+n4)`bvv4KU(ZYK|g&}Wa3m*@b2(f`02~w}v zAfrlA&*FZs0lOmw@&3`LI{wRiJn~pdYoe)&9Y&p^p4}YktP5eB2VK z?&^gPhG`xB=!AEUB{D(Zy_F{Yl6ZM5CM{5Po8k-lYsLG`AoD*r=t2bm-q2ckBxn%? zYZ^kB+GUMPmVL<1(ldz7@o?cBPJ;1g^r^F9@i;^I4GXj!E!sJOd{?`&(%6|1@^aBLdSq|)_@!45XF{IRnIwf|7}m;{Cu`n^T5-E9NHp4*08XXKy+sCcp&yd ziE8G_P|KVk^W-L@{BZ4$ECzILcdBd~mSn_>_t>O;Y1ba_>k5?Jvw2BEwJp#L@|ye| zv~Au|e94!_@x*y(*dy z{a3ycv>n5xen?HeLV0|-2g`h30mpm&Z=F$33xi%z+)ehM&V`wZBnr@BW3386Ye^MK z)cN}cz4R2kh{1`U(_>RTC9iA{rV`eO)!^ms%Qg}w50Y&+nrV(DFDoL?w*RodbmA-? z`K1R0gJvmPb#Dv=4@_Bbf6)i&02=%0Ikh+hXVjJVtO=-sG)Ro;O* z!^s-^Kg^J;o3*Rb+G>WXCK0TxRh=O~23h+^FEs6Lb}CR0hjC|%MA-ghbGh$w;9_t( zAHp&bB9<}u1|#w=z#&PyU^iyvJo}TC^tsb-(p8~T&eeuV3kC+62+D!Z+pz3D@s9lgW_d&Ej|Osi`gVPdF`3|sA+5MN&O<~fOyf57c?BOO>_2t zB^BOlg0MGXynumL23jOS%s-b960*g>NrN{KgTriOXdex;*H)#Ro%xmg%S-;)s~b)iEY z!tR9`jr|@TyeV2Nq<8PfxcQE(Gvw-q-TR1*lnvfrw{w20AN7J;dwcMd%pb;+$FSt) zH@eH85OjhW{=g?3gdGnXZpgNvJ#ogPIS#_~7J7>bhNtb!Euood1>9U7h+&U{#M#ToiT?-uYovXQ+lcAeQn;pLT+N!!xT$O~R-0#8?FU8Q9>{#>~6VTKkAHs(q3 zIVLsn#ZCu0@e*8{1zZOVJAKO;3d~sIqwXuhzfOK&6Aqa~=-8n%N_t;gk7(PgvI2%G zQwQ*iGQ8k7zSYf>oR4t#eiof-4C~kV`s3JHVjILh%$CA)QI!p`-bXIT0%Ktaq%hCgu_Rcd~-bt0mEcs;z6gxjXP3P$JM>f>CRby%B19%d1|_ii1o z1L{xmII?`ryI$ue#_&>heeR-My1R1+;1lFkkt>OGHjeAhffa{iGA(;s)*;wR*JRsg z3s@1g;t@;t97)lM#Ao8j74hZ5VL+VcQQ|zp(`t1I-^rRVp#kD_j`%wNb0Pn<#W4*P zitqMgvDJ6U#SnYPe07g_;nw%lC!cTCpDL7ctdH)+@AKYi3+Deko}S_gnRB@E20r@j z7YRW*df#F{Yq$QRDxW`~*e$_a^u7r9J<+AxE5ddw7)SBcui$^hP5|D{_~M!cdAMZg zBLo=gl&%W`%N67s`D`kkkg_w!SLm-hkc8VE#F^mcl2`ZhU*lel~lG6?~=Nd@J<) zR|EAC6L<1jmqB}MOe|~4Iy1#a-9>nW-mt3hVnkZ=Pvm!Rv~Qj3^AnoWK1N3Hj_upY zWbtI#qJg~EGpn|3jqQ?Nl|Q-r>`J}T^q)|yJ(2lOb6;U-x!7}ZE)d89!dJctqQ6sN zk5t|_KkiRlu2!@fT4b2SA75zrU{AKRVE3wOF-{-5f7`oK@eaSuebwVnc`tDMT6Hn; zWU7u1w&zs~{P;0vFWzWVF^ju``{)TB@mIS-9fj2`MowKd5OpAkNKS;sE_nyuAgiv6 zgXJL?Ya68G+|kdIDbdNzbm&h;j?l+M)}LDp_6!o?qGwV45ICssQy!V7r=cdOza`o- z9qj(SCx!xeoRU3b&rDx#Rc7R_VUHn*3?z3-E$ypXb5R);q%OOOEL9}R+J`jGU41`1 z*S>n!B99}v;rD5==Vy#-w&kGFETVY*$5~zzcL1%|TPb{_D;NG70@)j!PZ)<-YrilVFl6)!TF<u|3?deX@v8ONhoT!SE7=EBqmV`i3rS`AEyCzKOxw!R_{r2Wppe?YQPX+BlscSlGnJUEmO;F(f&PuP2=HfBS?pSXwcC z@W!c_i1ywBFL0Jtd-%|sl)CBR<(;h=`76VVufkAEk$I56=uH7gI|?bjfl+Pb#-HpB zaR!8q-sCTuZ|LB_kRnO}I`W!A@zlTGjf~bli;jB9K;lTfn;68%*eb#GU>LZsY|IqR zJslMuMV?@1l9tHxjwxrh2VZ!Ht3LbbugBeK``gDFq$=}438VID?&TvF`_Qdsm|$E)o( zOPYYocjLU>kVVisA{KnG4b4H1gH5Y7zYSE(W)fBFSy)c!$JMz+I)_E$Bwxztl&U!^8Do(5jzyS3Mmh(Hq%fdO<6lLi8j3-QK=1wC_HW zPZWDT+}L~U0Dh-B8f{iLHXcH!+tIaY{4tYv#6{x0J+yxoBX(dWiCQ}ab<^!)lKIq7 zJ!BK1(^-VvFE`u{_2YlVm_jla`R$1lcDjG@rlF9Y3YKpAPQpe)mUql`fvnY)SA%cf z;sZs?sIJeEd=dkZ9#J29&3oC4k=Dg%VWO`o?+m6P93Q-D30m)BofbX_mfx`Mws!K) zHompGo#^QOZB@k;ZKl#^S$;!yv*Dns;;w;Fbdk@qK3)1IF{M*L=0%YF@05jm$Vdas z*Mv}%SY;pusbPt+^ByB6=4p#dD(A34&6As=_^gU8mT+p(=af+|(=Pn8>`w`~-SLhP zUWzLW86VbVAGqwOV_lRgAWnuc#?FJ2YYm*W1C2`mrJc}=tF|}uy z-IWid#mX*YP!daYl-_MK2hvz%fHXg^KkrnJUAbrgER+;`IDrxvX*q)sH)rvrUF{RO z@%{+!7rvbvQo8n`(7_jEn28W>dBb*ci4?44J<%X}CCS!=x^T93jBeX-qjT&Ej|Xt3 z+3n2C|C}88m&J7avrbH_)ceCWCcNNnu`3Uoa*eGPw_l0kCp{GLn5F}1)qh3Y)Ypze zyQ-SuZg@u7`}&QKdq#}8L!Dqy>fHR1z&##?f`OP^;kS#KQhEl3ypA!4013AGlHlxD zKK7wsf@SLC4qcQ?f+7UDNueaIFlllx;Dtf8%iEuJLd1 z=X{W>MGmfRCOzGO_iDY`xCa+Q0sXVg8LT_W8n@nqc<|wajZv{xwBv5#*Tlw=&CpW;Id=Sm8TpXRc95P1}O=@#Q@C0?9Xo z_s>JS;;9Jq9lh(44lVnLnS5+uXkFwm7y>ktYrdF%k?zvBlYa31IPX!`d&!dqFom_t zQBpNoS(Ms_d5^e=n`-pni1YPakVtFdv}XyPS+ZG_ys!%uB3Khal-*j0cGcTc!Vc6N z$#Y2ew){zdH!Ysm1j?eLTpza|NCSbcCbd_dDnli8jJlmOIJ7qUWVUnD#66Kt3?#_N zzG7bDe_jXPN5H$2v$YzGNt7F-38D4P&WP`~evrQ@Zv#4LFQ&K$@*T)DZ4^^v^Yh6; z{9kC*kmgOQ^x554(V6BB{%%6)=pXRxQjXt0Zi z#2@X%?|t%+=1jH0RROuR_k#4xV`iL_t1NZRHwe0m@8;A5z#Jb-4y-j1IVq|sS_t=D zHp;i99)&M9pNlSP0yWWdHm;d#o>E?|md+nTfZ48$9_p&&ynWg4G5efhRV zA8J?wdd?A?3a`RX6HdS_J1@+{`4mR5Zp6*!gr+d_K97~b1+ahONzf)`j^ zR?DsnQYle5CO2^whUlz7qWbYCqsPIBn1NHQS zzf{uEpf5k>PNDvsLX#VWaJ(8p*8g%4V~B{7QZ@*^MnLG_73i&+)@n2Xgsc;vGM^!= zAniD?;0{8&0QHBN$q@r{W|+FRHf!URt!xdKT&eBP=6{tw+-CP7k-4t5JmY&a$4=jN z+fTVhxH*}^h>vzFdt`0>RB&y_n9qb4mJ(kLx6UVACd_@VWxUTup|@zccvq)0n3Qa?wN2bAdVZC#&H8B&-z#hpLPv zP~uXi70_GSI>Zp+t4Md+iRrAEnqu#?O42nCq#E}$H8il?yHo^tLdvV%+&}oOqL(N? zZ4~)-RLVKg=!g-;LTBErFCPqPm*ypLkDk@K+q7Qnnm)cvKPQyylWR zf;w-n{dB?U?=5w=m_Vy7UJJqLJ$g}aE#i8eP#aK?Pufg((nrvLmq9z-7_OB$7=XIg zH5!|XZ)_q?OVXp#q%Y*56cps0nXDQ(7S8RB4x2x%Ul&D)(VU_~KNU#Ll0jBh9JS8} zpe!x1Ux%A$%JEj;n&AEoPOW~F)xJP;Q)SgLcDTQu(mWXo`W1NC2(qH5pMG^dUR^Z|vEOQ>p9T{&6U6t~jANcvR$*2aAWd|!w2cOVXunQAX6kiGgmg#k2Mz#-$9-d+4)KDtm`Du&&wm(TnQBCj+zyP_?`MirU< zJUUR&ys!UnsNI)Y)avM*@43FqIt>u-9peLy>&=0wk8a}p0EgT_4)cQW#IxH!N!lpK zZ^`ae<43tzIEXw_lDRi$@8~a6?M36 zk#zsjI|ME8-Rr9psnj!Ll7g0?fH}CF%NXtQ=y!W3WCC+{rTI}#wvL^?hNx%%nJ2i0e8#ONAIq=0|%A6&*h_&L_7$$J6!BuA=yhk z9v-L5aBTE_=7p7rXI$RC7uM(f{$Z#oUR0J4?)6Jo+9=s4&B~?JVpDhg$D;Td-b+`f z24mP`uZ1;<#WJfsJ#Wdj!N*-&!Yg#SDw*HDTc1V*>*LNGk=Jmd*6tR^#cAP`7$dEu zt&2I$x`JG8J?bBCeM5r{ z5~~Ac>|UPHVK*qp31zhBNIzZH2*K;KcPfq+#=G*qX&j|40O8t>7b3v|281O!l#Nk?U8>k2zg$0USI3xz zOlucp^gzm4d{$X#yNc2$ei*4)nwk31_|6WD&#>uj5GsuC_1cJ5-U07V-MkCy%n5WT zT5xU={hBubU5(*__^^4j$p2tnX9@UX?;Ks)dbVt9mNv(Zz zSIoGa9>Ur;o&IzX4`H4Y0%LVgJ!8jvd7Mxx$llPp^NLHzl9y+cftf7eVavD z4)Tu^gdQP&<;!Km?B>5v#S^N^!cu(N3zu9(=sAR0n?5DPu}rz=YC4%)%@dxVLo&8f z-w-;AgXDEJNe$t>#cx^$#3>f8_(5vCGd@Z#58Y9ARtq(CQ^sT8Wn^?-F&hNBALF>4 zZk@r4(f>tNvhgdR-YldWH`aC7EqpSOvCCv=uvkpA9e0UI>>i zd|YY?BBOWL4UR>ozl(U}bPbh>5Yu6~SWlG_Kkz?T;;LmJ{H#4!QIGlR3aR&utrHfz z5#pX4fOaHvpWMOHhhLm(e8xxJbZEz&`XI+!Kz*+GSFz&vbh?T5;yfNCE1NZHsVbe- zpy&(R-mMsRp3iown7DlNj?Piz89D*V=xFQ)!wS#l=bA6lut)Q@b8VFuJ#X}hUEjAC zgSz3^c~s#?c927Ext|q7W9Rp{8*S}9?V${BG|pcc(pL-+akCJ&wo;v+m#Zi7376Il zm>4SGFM#FUrKIMO5EL;TW~q83I&TW@1G@JO=c9+u&zE7Ex)B1jHIHz_fB*4I_3;DT zk9sn-KABQ)BHjvmSB45?1Tozo5z5G?3SyfWgs+XoNoaqS$?l=$h(#D_bQDc~J47)q zqgaa4Jb1$Q`$)Qjxo1bR_BE#aAm{tvI5ih>>CWf1>mwDvEO|G&n$Mg}g&KBcziN&9 z_`5S2>ESgTkoY6h55&&z?jrvMo)j+h3Tdi~1C{GH_|Bw6tQdu88Cuw)@N*28PDcz% z+lGX2$?2$Zl~k15WC6@tzVFUdR%NrvR3%n&4ZEK+w@M}H;?K>Jp6=eUCX}do%fz$R zV&|z+&>;o7;q?YKkDk$T+;f)~H$~{1^x7dosfj6o_yx64lB-x_l_~2d28yj>DtE}0 z#9g#K4E*}&z}>IDX8`=s&~gP3u~3(KbP`2bw%#7*opP1dV{mslY84maDh8X(-$%vVoFa<7suzMevx9U!os3u0J|d=Da3RK{#bM zgO*bV0iOXXE|p?-{NSt&P~NK!<6rCesBC)S;kQ}o0Xm{O*#Et~-qqUuFFX^FP87KE zO)M0PIIEj@_ehk5@8Tv1p`m&{6K_G>Ej-WDLNP(E8yg=$TwKi5Hs-JP{`a_J-DW?Qh&#-ak8 zHZs3i&0bua`1_RH_T0&dAqjypE#Ug&HyfwLkgKvF&ab~SYu2iH1qFYtd8|EsXa1*s zaNii~5&Rx)lVfZMc|u!DH9a)S3k0p#2DXnh@EI2S&5QYy0seGs`QzKGdkhZw^xk;hDXPhd zmNQj8!ybeC8Hkq8g9&C$Pq|%cQZc{RoTlTy+{Zfo&G6I~iziqoV0-(!Yj{BlZCbQbWlyI7_fEA}0Py%6RSVG| z#%hz@yB@44FPsn5_&fhMWYXpySr4Ce9lwCAu*)qm+eryD^#O-j!+1{KdB2n$VUjmr z_RSCvw073J$gNRfYk)b*)x(NP!Cmde%c~6+u?{{ypH>Lv}RX(_KD@V!7g z9h0>=ZG)TjV075aR&wa?%)j$f=sQ>U%iakilHFzww~Oyt5M1{c1J`HiubHqVG1I+* zB7~Do_m!9U-fK8^yVOHX3(sgHKx-XQP+lftBq54s$2ATQi=)C5yk(KEoiHH;f7{!2RKZRt%o(>Vw}Cijw?|=Oq*8^e=r{fZ}0=*IERL!fj?H zrt%lofIgvT6z$C?LcZoje}-jtq!Z6rpT7W@#L8UIek)b=BLF^F7I&zOpDkRa<36pr z2}1uB+~c$Ds&=;Y7&R%<)qWE}Mg)0W*pb8{zM=+kUMK{>dcq8eHBbYGt<9Vg+$eeEit5snAkHj^YbqX<51H$N6KdCEEySHmv9#N`gfzl<{BZcRl2l zKxdj81M_RD^EpvFnCI@JkZVo3=khNq_>LdV@io}sGlGZ0mUsX7#ny4-$SAkQ^^Xz* zRK{&ymAU}%CskOsHgyurBBM~D=AYCiR2m8Enqe36c61VQ_3T6l zP(e+HPP5r~YJHfPvJ!)=1AAB}oFhu^SXHw9rv-?%9bj`=>k*p`A8RKXM=DKjKKfHY zg~#k-guZYryxsM`p=HZ*%XDnBh0M7-ux6Ksx#8DhqK1ivK%CU%XeVCpu`w~3z=i_Co5J=Qjyl>Kbv;hSE~NtB zP@;@7w{2Uv1RXds{CgtF@4DZDAIE8=Pi70RZTH-v9A#u?d2hF~Wj8A)&v|#T{&v}2 z69WYI%9?jW%v7)kjBZTwmoI5liM{< zwFj{dM zq-+Lr+lmZ;gz+8&7)`bm``%g#iLw>Sng|FWTczl?N9m0c5+`L+92?US^r|YJbX2yC zs{wt-0kj9Sa`{xz`usK`E{O_$^`rEBT$YQEwItt`1?ZZSrvALSX@`@2dOdlf!140C zZ}^-H#_Kmf_e}?fzg3k3`---j_X`*wn{Sb==T4N{=l7FTk0=S+tik2&5Bd*<)2Ouf58R?Am(DZFCD zNoQo=7Re{+!eYr42*$>zOHf19uHMX;nGw6=F;fWayscmBYI*F*9Na*(-d~Li_8r~D z^ltk~PV(#E+UigS6cU*twD6eoX78vkS{?I*uWL)4)lYC!vX47TzN6m-nYH60SA8$q zJ(C5^f1i0=CzEt}jWT?yvr(p_@Hr!#8t?eUpZW{}O17gm%7!;=0m+b*?!)2fXD{3sHJ|k+JRfj*Xl5|?M>haM{ZY{D<^xqRHK{2cxBD1I=_F!9sUiTOG_5xSs5J&6fHx=#-FdQ-crU}i$EYe zdXj8jT#Gz}?ua7L&{kM_V@tMaqwI)Dw-yzU+s4dFS@)MM$iAu;<}8EJ0hdh3bf0{5 z8xq(NBtheo7mSuZ5&J4MZMR*Mm^iVf8YA3Ksmo0~rjig7QfTg>W;BDy9sV%75|bP) zBb;vYdn^KM;mJD0a{mnITfFkjSEQEomKPe%K zh8MOL=m(10KpWf*SBFmEhCC`p0+0c;fZB1gNX_<7_9_{O3&Z2pZCeMp4t|A+(niO1 z1lj+i{m@s^ld8GLkNLpnSw6CE8OSM`iWf)eM5Y>9oahC=e5p|HCHUA}N!P;%o~ ztXH7`wfXi6ty*V!Li+`{xR{|{pQ_eoSC=zxJ0Kh5$JFG+C2&RCoa~7=g2U|LXU4UeEZs!27sGMW17fuqB`ju}UpOxE6#w z2=avd+kXp6Vpu@35wJT(*p5YwfE;GstCv(Y$m@0jm$Dkz8qo&9@m0(#@TY;@J+iyz zj3)&A+1=pg>X&0xBMz4+jc@b>jtaXnO>DCpiqM_&?>o3fFFQ#a9j^~9sPF^8xci}K z74`c4YZ)Z`RZzMH7bCbqrzi64m^!D9E_v)ak$Wm#iw>qmSQ`Ecm2w z_^&PKF27$07d1OBCE`lqZq~GtqT@B<9W3J<80d%4Es;i=Ak!cI$v!+cYg(0mDHz=r zkQ!cdJYf#NdGcQad3@kTnppl1tLK3N(tW#xhKe8KCZ*Tx3U~}^tpzW+%HmM*g%4D5 z|Lr)Z@jg&%OKpmuashkNG(s(k{{LA@Y~NZ7w>pYbHK?7c8vC&IK*VQoQfMIGn`s{| zNOtcFC8!DZy|W0tfR%)n*$A=4a!l+qhu!P)ivEAe-^TD>rJaEIMru8|$})(pUv=FB zYq3;0FV>1=mqDS>Xri+?RXBA}4OJvNCiQM-73uq=r(qqd7R0+y!Y=`~dv;WxHH))| zV@`((M$LY@a;B}XCHn4~NQ&7#-aBb@+A+(l@9<2{Ve?pt2~de=Q-~%DB&w8EfNOy3 z-C?YLYo${~YIM@PBUl(+glzr`?XBU|TM zG6n$v%l+T)0{Di&w%s|jo~#N&RoEjj63=!}uW$WJ&`+$EDf2A4+1}$)i0s(?5!b-p zqTXuqko1#eHDq*xGsJ~UiQ{q~jXacC6W&nI*s^J`gyBYER0^ z|JBHqheNsc;dcyXBx9mX*+qrVlEgQ*vSf&%1w#%}c1M|vZHT6^4O7V1v8CuJB@P)& zL-w&u$3#?4mS{puh}5LyjPs1ncYWWV=dZcm_j<1D`8~gFe%Jfl_Z@Stv$Of95VU6# z$LMatikYmPRKVhES2O38(e}AgPbn2LMkABP&T(HzuD!p%vgIRKaaGv58tUA*pLq>5 zQOOxWEJ|~Qo%5{nQwXTM-4Y@7+qT`bO^L*p5H-W^cM4|ehi>x3KK2^iJsD9ZSu>2$ zo;a~6+0&nDRdihQ^4tU?RLIc)B|ud@q?E3{d$R#L7j&CFCm<~q8Yq(m*dmWT!9lJE z@M+g9kBCSsjrv)s{Z6RD`SodG12w>xQcZC1H#3+o$H?bHl_Rl5uhN{K77>kLHd-sw zwT3QX)!>Wv7UU6!SM99x^Bf)P5eI_}8&7Mv5Lu>UKR}zVA!3Vm+K>oaWh|qY#(1jr z_%PKW>g)ct$bFkrv-DdcR*@oMsXXNVEM0P1a?#3olzy zS-Bl_3IO!61vfy41y7={%jGV6q0(gU<;zpBpaFG%{v?wR-F%h!?z2<_aiLk7Dj?EGh_G|RC;IF&y}%3Hc~wG&Gi2a!Co$_HHWP{V&BD0h4%#1y-zX~I7H(2vFHj~!8Bk2v zeHodm?+E&OWEq^b^a8hlkXif_%x&l=lYYRI1za8JWb^>Jz{ttCICD(-$ja)@1~`MR zR44hd5Po3(WA@?HQAtOV<$7ZjCO?lA_8FvFl$+2nF5np zk|}+(lbei;u{?8JV85e3@_W+2)PUriI7y4nxO|xU<0V>8QvX}hv4bvK$6?@2c6k|+<6!W2 z)(98l*H3xNWwxlE zD=u>Y0wzh1(lhi7coYx1Q=;nlZW6Y}4lk~H=wD)Kh8DCZ!U`%w7~Ft^N~w|l|FYqN z0jDR*D0k;{vSOLKR!1-U;V_ z1B3srQ$`nYak&fO>a|yzhrdt0DetBSykx9O-5RC*8GNSxP#VhsGot=#nO(BLQs*34 zDO}f&af5Nbt3zLy4<5GEh{t=meYSwYR$u)7r8MQG@JL?4(CE~IE$ohF55iUPy;(Uh zUv&!RdF@=>^q)9L!J_`byw>TZ6I!&*)fW}PCG+j2B6otJ(Y3;i>6#j?#jig|e=<)8 z0Ln7NtZ0Jdb4oXV*P7HV&uNSq+2#nU*V;eJcUO+%T-%4zYSs*fcZv-yvnHlA6-={K zI7N~WlX=mmy)@VRGpN8u(P_$PoVmwBghG@3Se!XT;VV2E3;^u!&-`NvK_>t)33}Mm zxD_HY7By2z?hif;geHKVsCOB4zc&dGp|lCE!RK8kJ*6!Zx$yRi>O<*>3QvgEKXs`p zQ3T5u>3^yVL0&vwijS;+1z)%$TLj(sFb~7Lub{Rh0eIDM-1vC;?T_PgO!My55=uU? zeSD{kbz+y6y0VnoLzGs3csh>~LiU(Fp*C~I-WNg>KgPrr@`9uZ78yXugTwYo2c)83 z0Zd1(c{Rpk%4=_vGz8olsZw1z4BE}RZDzy; zL#T+dmZ;WcSKKJ}O^69gv5MGFm?vQsKOvEpcfOQU%TvxO*#lnNNPLi$iBRgm-boC4 zZ;srPP&>$FrW!%-h&zr;;p2aL~zMUoXzU_l#a1zTDZ46rge5K4}^DWzEJ5KKA z^Z$4y0Lr4)QB)Qe@Fi)`Wb7}1 zQ<{g%RGeOJ^;OL5zW+t60?0!EL6Uacfnm#<>YG(kO!9480!a*- z!)#omZ@gWRf+#8HR_yjX-rQnPQJNMdBigVQAM1adGh%OLeTvlGBt0WYBe{#X!x3eV zHl0ToqGm_r>>71^#{}&O*-=z}>LUlCTj?KYG|_-!ordCJ5IrI7pMcFy8QK8kPgpqp z>&_R^u8;I{e;odbi7M}GUV@%(pOXVTXUM;z)+86?N`b$NrMeN%-A+e^>U?R$m=hy`y{|AV02&e-m8qql!YC8BBf#MUK1BK?8A7q(+1W zBD#1veNIE+*=2$K^d^}!)}RfL$9Wg_Z%LVC&JgH+!&9`?5i7D|Fsj#7aLM~7dM1}q S`U!}JK}T(!k5pOvQvU)7&jD=! literal 18252 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 Hr-UW|i*ni` literal 16243 zcmZX5WmJ@5xAwpYNOvoUq##HN%FwN(G)PEyHw>X5(x5a_(%mUAG)PPL(2evE1I&4N z-*eXb*7|-hJbCxC@4c_<+F`27a`-qjI3N%RUqN2_1Mq+4;qNgf@JqvKvkC&CS^8+` zxJjG4nz~p!xmi0pfIwb9>!w;AzHk$PR;V*N-yzr)ephRR732Nk(4iEv!!=ch6Hkgl zL;2(0YIr_v4m#iUxBI7)Hq*6mVuvU&h4x4?uudc=6(|{SW}7^$nTVC$op4stp_)w^opOgjY|BBph!N@>hl<|(lVr`BlGPsji=o~w>D`) zrzGYi3XT1_Gw}0!FLWz7QT5)0ls(Z@KTG=~RHAbB#cN)vCkJb4YV_+uGR8er0a6#U zaFM92!@E+gQpI6*_@xc6V*;esU#y|vPNlL-j2Yi++nn?z5C+& zv>h1#XCMV>2@S8Ghfrv&`Zn|*qZY~U67yD**5|y2+-6^Rh-c9*C8?Y?8haEiZ4M>{ zepnYQ@~2ok+QNDNUEO%}{z

bzqrUCn(CMr*7a%uYb|j5xo>``=i+oT`JMS`6`x& zg_c5R;S`6WEQy?hiPIMq>n{g8+k=jVy5;6vWLR3r&0juAha;Vr;b;D0ZTI*7c5oVc zs$q0cWg&Uik@6QYUp0=(qv3me(8q?O4ueL6dx!Z;PMe_3Kl}&;-6gq ziF?u(V2lS^$%j^uG)Eljue;vdoyAxTQldT?@xBw2S3-{?u#AitZFV&Ex z+>=DAXWwA~Yi~QuJi`$=eHEyKy;Tiu7=$Y!?`6t*6w$+beZ^)7K#%3nqh$h#q8}Y! zCH?-c@=rl_q6qTghfK^)K2%Z!Ql+_-K8RT23TQY)%GHcP434(vP}~cXOxrQ-f`p=pTNx_rEF+f{3>g9pam)aj=uv zn28A(K6cMx#spnwy&~Q{)z;wVxTKmBJPR&5k?gmjky(%(vYqnhOvXo~UEh@yK+Dic zXeSrI(!O8DM_LE&bu8XaKD7z^8xgC#X)4t<_sH@M$7S-I;AyvM%C0KBdOCTEzt|4! zvL#S+#FRSaU(*(FQGZ0~$bIVd6QeOnJ474okg3D@1pC=MZTG;!+v97fk^MPt8xr+ z)+~$DgNu|P(xqiE`1ihCaB{SL1Lpbb*Bb0*manuI9YeCyjdx)~{LNCF_^GzE4Erpi1VZvSZYUw6R1vT&<^>0MF z1$qf0>Y!S*t@d^|-EHr#1WOv3NLBeABit}UEIu@18BWl6ciTwVKO9&ys_pMeY&a*T zck;X9cI!E4Y%NZC^Di}maZxi)dhnz_23d7p#q`F^*=RIrC?BVtmc(KKvfhLzocq$$?Y&9{2YI^OzNTFYA3l?e^*&)&Gm z3_uaca`v%&>If04mon<(BbKn8SJgAH)XyNE5fHb*`Bxn+CUSHHd}YZ zWXJccDs%SHdPau!w>7ACv4zB6(W)$i$xeSV!jZsT4Z2nNtY0fKV^HO8w7@+70vx@7 zMw~)DNiBc<_eP3{d-oijYc>&Jemo#P4gcC&e`BfH1gUWp74rn(K1FK{FEVTMqm-Rp^xKetO`x#vXIyrPIR@bUgNN)jO)7 z!Kk~7WS5h`PG22pR9`LC(^hx{44hktoZ=1{?rFH&)@?4A;_b*$5$0|YZT7W@r~y?J znvQholQ~N=_4nv)NWh1rGH3^ z6f{D*W|Q3@w@gwzt8V{d7H&BKx>!_Vve-PW^xK5KVt0n0qFO^n_bwBIDl<*^;ZmH? zw{bmQMj!Fi?;Npgr`_06MoO`jcO%`dFGl-EKUq^97pt3B30~jc@lJ4LyZt+GZnx5IH)=%9%F2FD*f(hUw_R9j4TVbRwg$`c(qoa ztb`^vZKSgg*?0C#oa%k(pq}Yeq$G(3xxzGmSzgls!-#kI7rJ6CBG2(^?+Js7n3Va~ z>;WTt>;+6;7ob?(Z7{Vw$_ll?_bsD^%og5c8g{4>L;t-?As!r?X%r*t3O^X(Z_)O; zLLtkd;Gl;q8fOrx&y1)Q!Li2Fg#5&$zs|c|As@C$>bAihD7=k840Pz8E_7PvvY(^niV(ppE=Mnncm(Bd+p!= zXVQSt8wyjOAxS&hjZ7DE=LD>(<->JBJ(KIKieJoTwsfj?CVyCZy5a&&&jKBIo*6IC zRE6thNGWl>S=bfRgjMv^<7my5(jeC$$Jv>ROn}kRo7n~|VI9t&!A$KB)%rJO4qUT) zNJ<#&HKmR!v#A>G6YI7-u`S-0MUmR^ zJPTD5%c8@xa@R?RRn~E5r3rbv@S+vUJwG(D5=xu(Q?bMpFVI9D;^syVoTjc8 z>r}n+MO}p#0%hyeapjsqY#c}!i?t-s5Zl?{JeC}GL)nwW>|)VpC5KfT@=f^4D+zJ) z9f>B4K||m?_3IBEwAzv;D{kyYby#+o!3$gF-QKl&#to28`!n9wK|PMnvR(y?SM#Kx zmm1=lwn2OZRSZY>MEht7c4k;g4J2R1?M>$Ds#dKJf6s1Fs6}DX3@Wk?bp1Yk*Uw?Z zNyjaqYX(ZiE%-c5P3E~K{F8R&|T{Gjv z@z{KHIF{qIA)>54H#)s;!US_ijW1RjSu^kvXtsD7qnBd>nEa=H%95Md!w1^DpO_<) zM~CizO;>xS-ZI5Rr-g?omO8pWW#XYzHAIsrvEt@dD^2bjJ`|3!Xn-Fa8MPiDgKm68 ziFsA5rrLx~nL2UKiXc4cIGCW&(1Kqv0j(SPmx0K=pT&MUyfQM?|r;QiP=@;SxJAJXNnhm&Qte3@XPY@ zHy0vt%2kjY%~r`#|Fe~P*K~h>4Z`!=jtOUde&hpH6ppPkl=}fTSGhvO@%(JYYqUm% z(8sG-Ew>4XiYHV9_X=2|V!meDBGyl?e)^;QBJ_BUr#P415^lzClQM{+hSy0!Ai+c5 zwU_@)0RQUY5hfKa!ckUWP?zfe&k3B#XHYia^5?SQ4Dh76om*3_OhYV97r4?6$ND!6 zh|$Fm0)j=_Alo=qq0wfHOqlA8Rv}H$|Z04Tq!SJ`1Q8^Z0M7$vWw zGSSlbrs4GK);1{RF3b%Lblj~@Ya*V4mL8sD1wZu{FOQX8DG01`>YI!+a|Ue`kR+As zn|vxkq)B9sy(omh9-o-)44jFu27Rw_e-6_`ETN}=Gkk?f_Q_hVWe2-Re1{F^E$LTH z>AopzA>{IJZ-&IhrjMR?z)mgXwG;jVSJ;_dKj$1fJ$T?Of-RjbE1}__+x~6X@H_v( zwNDnX4DK2gJo(IX1NUCFGK774xNO!s{m!SB=OkbuZx+_e-dw_G!c^{kIi5eb0vY!d z9rj6^(N4^)7~=`oiw*JLTfmjhIc2LMlNoq^Rq0XEZmjoNzKuBQHCt~kX*_jWfX}-PUS&^ z=I*+#xp^IQ>|$FQcg?G4ss7YmkJD@$s5rq?ag^T0TqAVcu+oLQB<_Qw0HTQA z>O$Ho%L6JIj+K{*D)&>&p*ufSjmV`5F*FGrm$w|+A$yxOyTP?Jm>Z3a_C{U1D^NCP z*+Z_|_LH&m6G@C5iXctJd#FkU45=(6qd^G!gtWX@+u z^50#HQ$&mFjo0~0jzX%aI&4QQL% za0kH3*j3(i1_nBdsZO6iD&7a@6*vS>$H!~_adlb1G88Vd4xT`PazBadmJqQ~eAA42 zq&5@1_OV1X<0+v{x3reD@ZsJX_1vb?C`paRIpH4#tzrZPNA^2<6$>K)!WYT`&ix0Z z?_DVB2iv>-%oa+Yk3&sxgIB1)B;5nrxJYNEM;{UoBgn+m*D)5Gnnij!W&zjYot?*r znMsb&eUa=bp|EBT<=yqUAj!PGT3Xfj_YodNi($~6CVmpO>hHvSI_4XGV+A@v>cOQ& zCB^ZJXgcPSx;H%otZm>$iMe4^F;%RfSkFK~@%5t`O19XvKas#>#c{!UjW=2w_t;eF zc0YuG$I?HfD{m?t>RUgbR;Q0q9k#0VaKtZGU4yXAfOmn269}*bE<#I7rL)~=usgnM zfQp!jHDFaXMsfF4t@|yfC*{~P*0nhV76XCR0$J5qQ+wV`&~z?Z-;8&p?eZM$(b0i( zAlxybAeEfIR&#EOWjUklzagmZ``D-Ch9%B>ct{{-;#BG{=*0~K5s`+N+EzKnA5{-% zn`jx}4k_Pj3lOrE_*o1U+>{Np#c}C#a#z2a=*cl4ShJz$i@)I|2a8VaZRk=*)lXbj z+9W;OCoF4G65)K*kCdX&7f&<;HUBl)H{?J>ou+qsHG?#`>vQm|UZZc5ofRDjlJFWp z$_H}yl88!oNT+}OV6D!=Q!Z;)n=7{r_;#>hT_;o)Zfixw zl-(z#k;o%5H=DtRin88F)zsbYo5K@Dvq%pQEha2$OyT%Y$=`!0=`p^aa0f}ouQDqVZBV9IwsJu#k+QLH7`5Ae{>X35Ql*DufhSqi}87>(>(PfO*bU+gv|?0YqK z=~J0?HALw@1|tLAPEIQooO&VqlWlLjPQ3gMM+p~E#e5V|Cm~+93@4km!S6}|`^64F zvEGO&wepSW)`%8zq+@+Qy6ok#7p)!CWyt(;ttxb#a*tU_mMFvpXlKa%{e7PQ9#I<~ z|7xlzZH1rF?CG>rG@p?^R|_Bom>G5~p1``%Rm-HlXaPB;D8|XG^~9)7Pgh80Xi+N2}M$pKkrh zI1F}D3Iux$eNJ>fPk))8#;OJDiHy#G$4w@EUis94`RqmKu2JmAl%fF0Bx3Zv>3Pff zT2*%@%&+N31L&WP#LDAIIbQ!W6#`1!nvJ2rcPB(QcpDbAaO$U#b$;`65*c%mB*bQB z*NU;54PIiX^y1RTlc!aAgjST*lnnE>N_how+~Zs81q}LVVqGlH$k;(2?;Ee|Y|xHd zRPDdA{CRnAKu+=R^!?LJEZ1Xj!K}pskt&y1bFUcZSB3OOb7;FwyHPNNsCX-PO;*wl zqfp>jPk%o2ToA}}1SNhjAsX)SJ-T8nB-irLJY z)i$JG8nR1WoER3Vi55}tOA~hv*UXK#ZegViWYXrw?szTV0pKz#=T&Ob&(RJcA9Q<5 z^g!&Gx%a_4+1R(fqC2?mn1dOfuZ7wy&?xic>R2AL6RS)?c|DjW6VSRIo3WV$oWYEF=~YEP+#5FzmH3X&fLeq3PuwEE9c@iuM-x+&~{oYcH(4G%$rAP zga3YU?A7GS3ZL^zR%<%AnN}fHf!xWIQS0+Omf{9{I+Caqx+ick%T0}93lO<i>5f9;b)S$jv zAWRU?^|H&^+37~Tu~IJ#<@LIc@a7^t&0ITJtuqGU&@LI zu9I{tH3dffs4@o=1IV7S+*raWR?49rn=OXw=6YWisWScG4m&GPwh-zM2R$5{B&JWW z73WEB#zrbRXr%7h(K%$PiDCoRopDXHQU>N+4WU1O71g&+`BMl}8sjA8?k=xqb}gzp z2&Bd!hnbIVR!AA)W+7hnw#XZO;9J7y5oo5klOD+{B@iILZsXD(Gp{ zfrV6`QqaXOf=2?v=A3~hd@WKw8h&9S_%ae{7!HS_wiHN*j(D_-0+W&$b1ZiEE=xwz zftvs=t&TAf6B#@?^u|@i$vsTL%PxU0P{B{uWbv8b6u)q_sIX~4ZU{6gCihru5-416 z-b4lJBUe*<+Vm?Sglq_mrnl@fI9M!o_yreZ(N>SHo+w$*VrYZsrSWqC!`Njxl)h%T%_9JAboBA~dKY^^Xvv2h zmKj?Kw#lR=B<;dp3rGD^jc^NiT1A{m`olhiZyvX4UtdfF2Lvqlo(oyzaW{AMlA`_^ zP=tVpb?}e#MQ@=jEoB=EOhqLMO_!O{-EU}+SL|{^npskYU2$vkoj?fo04k-(lx_X` z>Ck1RLd(hP|8Fj++jW$H>52f<91|M)`<6ejV8O`JEK@ij$KWx5pfi2dolQ%!?rn`r zq*m3yT#L{&U#-E8r7eX};qc50WSL@Gg|7HWgW#`ar0nG>O7qgWH}24yEWL8* zy5zO%!dz&9Nt?xUw56sjhrM;Q9w}ECQOwMpu_4b8r+u3R`WvIEWx?hcR7JDOkf3uw zx}Dgsq3gls*B*$~qJfGOgp>{5PA+fBW4_lrfSV9XFl66-a=wPvj$A%~XT8|Kd*k;K zbuwP_HT6BQLh%2t*W<(4u{X~qIBkPP=hOOFrK|eiycikB`_?xYkxkn~U#@%b8w0+V z#sfT3f|aUCKl%l$VFmC)uvT^_ypLBfZvzWdwmZJ)AEU+YO-zBGDrP!d^P?{}G0|_UNxWzHKvz1R=Qrc)s z|KAa9Fd9us%ocv9*Ks?`8p_{(TOk$oK8n(C`H0h8Lc zgn1FVKGjPb6>W_KQ%e<*`46LJl}`a9TiXw1;;sN~>##3nCbolQ;x}08nLqN>EBTBA@uit$=Htp@PK6sTKXhX3pKW zsLH03gUP3!b(_S` zBjH@>dt)yI4;%s3(CcVDh;KaD5tI| zP7a=%DpB7Z7s!Erun0$Bo)97jy+Q=zW-J!=hiVUNPTbtdK~`4nt6imlrWgfi9va zMYJ4py8c3mMwR=&FH3)+P@|~(-Q8`}45jviF;?NX{LXJ-M0J~`dsBb>2YG;Ld;54o9?AchFO{?8EHV1)qb$d@aolmcox6{} zIf*k%NM*J!3WN#MF#~1N?@PotF&()O*8r^K1~zI*F?zqK5RaJL+&hDZoeRofF!htD zM;WFcGz>e431COwuF<^p4SxlupR{I?(MIo?8CeUlT~)W}r}v=BX9qJn(E-I&s;{%mDJK`>H`f7@_LIMgYQxnpzJnS6 zt_#lecd-44Dr^TwESEul2p#>^2)#_5T4NuKPKoa3kF?eGQ+uJyWwO`siInRan1ZZa zjk)MSV8^D9g3RfcHd3pzd%v@ZJ1TD5lbhDR0X?V(Ah**zjbc+i2) zt2!HT=iHV>ApSZ%WHc3Wr>;yx0VE#K$Awt^&W|dnkFq&ho&8#CR@_}rEkK~BzaO*! zavvI-=m|k|zKt){7Qfwjy}HeMsRo&u5KB7L*A3fvWL9DY(Cnpe&e7<7h5WNq6^3mN z>FF}Uqb(xduKJ0s-CG^6*Q?^@^GyUpA?nw$LpO5KV2iMk)STQSds+JXdTUtq$5hgdrMs+9F=kJh$NGPj`K}4wSPh?#8 ziCN=V8cH_BBTRYwYt(se^f0dZf-p_GHZhu8FL+;*=nd++Zb^)mZaC!f&ZPM0Zx8NQ z-Z|PJD7^|NMqq_|D3|JumrkL(p+Edpeyt^>*{fr$TBhT?T(I{h!)W2I#=tT1LIkzH zBvzApzxwxMGQ7r4jeEE&krT%zI{HnW?B!xPl$iauNlPTlo;l+B zUGivv#l18VUCgJPBEH07{6D;}n-y4qRYjS_>~j1aT~30~Tc|h<_1m-o8AFjwgJ$UHa{jI;&`7+tqMPIb0I9 z^j7QfqWAtSVNZY9O<*;{5<8mr;U@;k2f( zYN*0~2sNna{dId=#9Us?Se+-|`v#+QSs9((`@{EouMU1E8>BYJ6Sg=V>{URjb1ypE z1bb^o`=&Xmc;BPuG`OmdOtfYcbGA=W+R~q2_#Zu#Jr8cXeGhvnjNUxTcJ~XKaS1Uh z+k!1AxYjU0b(_LHy2%wRUZdUpcWk=P;1SyW|4xwV>mg&QTmg0fq-*=h*ORappwohP zf~}YdLk6|hoS@?N@&fz<_?d)OxWivYv7W8qwzxC+4t~kBMLq^C)1)?UcC^*U_=&D` zw3*BjhUO=VQXOL~zcYkwc8u0R&!@-Y5!VY#_YliYD@RpN{#Kh06X9GTLej%Cj^jl2 zLT;SOcJ!ID_v4{6t6(BM)t}FDk8aO4fl)C+`t5X@?o;5&fUdYKPIya*)}V3I-rn#Y zyB^n0K_vc!7$g;Ug3qgE*PHDA^mj_0k^UIE|Iy%)MWX-VSvIbyxFkpF=GacvRi4{3hH1qSjy&9QZV5 zISQc70p*46p%%9L`El|j-4wErv$H`K$N3NenDIc}i#Ef>DVwxWfHsok*l;if|4PAovThd`G> z$Nk@@aS!Kcz3F<_hr3w%aOIJH3_qfUeFA7)@o^5$V8<(phD8nuD;I@>y4RMR~64WJo>ZXFHfYPof=*gbl!n^Yw& z55LUYrmjjqXnQz3+&N84M1yge^4`BNea?d#PVVn-dmK&(I#?3%ss#)C-@nqK&m_?e~L%dsrC*S-5irF1@Afq0-C5) zEE4m2oe)t-rTW#zld=CkQ=XFDBRg$wyYysoDP1g0VY}-m+NJZBH%c!#ImG{WV;Qpm z_$9em81&nmMpmQ8wV$;^OvWhn+&e1E0di5J)C@;v6qvckEair0^A#$7Qw%zw_sjwz zb3B2a;q5=+Q?+==n?>BsMYv#=4iGZ$4wlF3z!m8a>KrFPR`3MkhEa6#xi@)(TPSVd zN!)Av6Ut0`;Xey2Yx4O*H0)oWLQ(T;7Yz*oY|(xLvXVKi5~Z_0K6Zt!YM=M3Ft0Nj z1sa8zaf-?OI=*kuN)s?fV}wjWzXuJ^ZAb(KTzey$mXo`whO3`3ZI-o%byucA}YV# zRpRJq)WO~n4h*EQudPrlix!*gsqD(p_Zde6nq!8!*M!wb%{bM$g6N~58D*2f`n8t2 zbUs6k%Jm@4U07l!_QOEAyVVoCamEKlQc>mV>ZaTm> z7fb&gEE{P{je!x~)zwJM*jCUU zy>(;Oa*fvz(K-jp>cK!@2pXw^w4G?sG=s_qw=l5lshwO}Krh+vciL@PchNY0wMuaQ z1s$VfR?#(HT%PfD?aR3g60~@b06Hh-)_}v8AbWy$6xbYLSO?y^jI$^0CO0o$jxTv2 z+M;CY8S>u<7z+LNyj;QY5zX{1nQqgCC`VE9%X#hH*;?+>-DF1~2MUM%(C&<29a#m`M^7O9g?0C(LSU%}lu;fA`G6+}d{(O$Rk0ocyE3{w zkW^vYBsA|eY}s=M^QT!)k%4dTfNizh_@v{KF!EDZI&P(%n(B5k;vd~dwfFS1Y;^Gr zWP~@F|Kdkb`(-?gc%v~`b#OjxYu*k_NC?^+vZPvQ&(|3TB zkWBlx5dQ}o=DW$-Eh3{wJaZhpBs$bDZAk$QmH;sBIS8wIJTAC{a5T{bLADsMOY*xtJGjL zld-&&7BCY#{?+zd*u#)YwHt3(JsG{|9vifNma=vLq_rk7W1c_~dkHR^Pg0U5Jv$B} z6mNT`i-^=a&?dzaMxea`KQQG0=Ui=g&4}szeK`_sJFFLw5IOKiePQp|TUgMJ932X_ zW{T%EJ^CjBh`-43Bq9}H>M|@(uy+#C3?RUmG(1FZI|0HJiDV}03GY(p^ zd$e;(ip*U4?MnnK0~0TPPc4tHOgyogNUb$su}rYTmzTZ>@d|lsC0_orFF~A17(K`n zdQK&bzIA%dsa{H&8D?BoTTYt59iAM_V}&a}OCQ)z6hlw=aTMs!6$@_wY(;Zj_PL@i zsXo8}5(^USEmR)SaFn*S8qi{p$?lJox3xks%F;EMGx%13*<2sGu7>Kt-|+ub0=7{q z#u&MiXS3;e0`J5w#LRbDJys*x_W86217%OLY#~QgY>#!9BN(f+ZdN)8z7ZM44rPvV zv;%F{+y9dI=??-!%a(pj5I<^-JC19%o=}7L8Ghqqa5QMcH3*B)prh68a4cc(CXj#o zQG6?&_w@I^g8N0B)7w09RPz?m-PiKJo;lsFd)s#@fUCtp(ffgU<8p?Vp6R{V8#LV; zZTNBq*Il^@Wpnbq&5d!fSFF8_Zt`Ypy0>_FSifMqC=gA5_IL|wMtf~Ak>(-ujV4UX zLpFJCd%I+u04T8x-K!wq_ux~J>HU8 zIN&RM7P!XsxLNl1QqTRHxp&bUZj58RchWx8C3O`vjIll0G|0eZ?C&{P=fX^Z19?`D z_DImC>pL~Mv+T}ed;?Bz@{sO~S=Gdn(^v`-Fm2|HmX9t>SR-!5N-@%k@NDj&yG}_UZp?z!;n5ej}M^X*X}p? zW%Gijpnse14!sRrf6QO`{Ua2AIZs6uQ=PwUE*FOGSQq$3dbhm6@ zQUQ2@zqkqhpXT>Vj^>P`YkUW@Nl$l;1qq5x84gM@nEToN|1|BV=6U=UZ5H-MMP43W zx##%fWHGO>1zr@x3!l-VvxMl51oI!GTLCJTc;q7uY-@*a|G<&j0~$a4KPM9cF5-Mt zC3>YOA-m`x8=b{#TZ4#!hKc^^O>|IeU@_(BK;o0Xq8H%ZtfEevPAlsj`nsN9%**~gQ%7gx)68*N%a(?mK&s-n z0wP}vpLTzs3i+YEF|0NctYIDcwT9eAurAjqfskLD-IOcm+!etW5jw;IO77A2VEg`e zurI|DFbQRuJ!$41+MR_5XA`4W;sb)H4W~|mZtNZ?$4Ozwyq7d)sKi2&K#lM|7V)GPoB0NkXy z8h%(GlC$_8&)XKXsK5Tj&5-tKLR6<3laSZipj5m0*eyK@=F;DIDvGW-2B??-HD+n0 zk1B5>CbcYd2dDg*pm-qBAajj!KpVmI#Nq0GIE-5HR2)wCQc0MhwMg(tK57au?@4b}xb1%J6TemiHCJjNW$ z`#Crn;UndO(@j(CpkEe-tAxLfo>KpW(6%*EwQOqt9tTz8$iqBEOUO$ToOFBDnQj9T zTBKT76k1A&qHtd401U&`@dr`o>-Cm=4@ScZmb*te`;b?q`2m0sHt%+ed(hXxDA7MB zsUmm?z;IGc7XS@rFH?&aG9}3nl1P+MP}4&e7Vo@1syY{gz;uT9{@W;@>HFnoQqMMC z4IrJ&CO=WPn}g}X^gGib!-FH;fatBIzpL9aZh+(~Na^RMW_*tVKz)slmbsy?@$HH~ zzY(K*72!H5l`ZSX^7OGrwMfAO#`6H9UhO41*jEXln1UIDE^50YD?Kl>Ua!5P({u*3 z)w$}|IVMlKw_)CX=ot`QY*&#xSL%g^UaXyuswr%PP}<*lxK(gbUXRJ0RI1+0^i;D` zGl#vLslM-6!cM<$0r?&ap!ZuX7S-c3>-_k2;l>NZodg#Xi$ZV8j@hbxoP&h~9#b)J z$hfR9RJ7}E@fWX%(ISkKW(2_Te_e;C+X!D6JmKKXzUMYY@M#SkH*2(kT#C=pWTRw# z9C(Kljrz<1=tb7Mo$VVdEoqW6ad+_#LLZ7^wmJ+Zb8aOIv?3sp22xIfX{uglHh-*# z)n5`T`f-0c9h`R}Z2Qc2m2rOO+RSX6w^^Xntxv4LFJ;q0v?u%ifCJX_*m6W=?Yv6y zCH?tsBJ1C`EwbdbShj#9uS{I?zDQvuJuXQCPv_Nb?lyVRolpIvNIic&jN0elt-k&@ zwL!?$|AVl|-g#A|gZGEph7V8venI~4+h(w3yl-^ZEAMjj(4U`ay<8}-?Y)ug!-J{9b}zND{CLllrU$R+=uI_*$=ZK)^kL}<7}_T7YHHU6>J=_!l0^C&U%IYKSNWZYdhjfzoWI$uBvq;(xvLX=N&PJyL zQ}A$5#ctgep33-s5rV$_0svX))Pb2fLV%y(mh)Pdhwvh_FHnYG1U#NC*gyOj{A%8r zc&$Uha5D|#n5yzyzPb2Ym!Dd{0XVztG=X4B!A%P47c7V~zxbcKrs8_=xhR*O94u1s zLs)ilLeR5BrlnmqV=FdW@TcveXngPhRgBaD(p@UxF_2Y3J+{a0QKPx*I@RWt`EVZt zJpPzfHRIh1RHPFi`!>F`NgL&!+(9@>X7`)uo$D7U=f+Ljp94J>?ZoaEVGAWaZJ(0- z*yFz>_G;3#?j`!f1X}H@V^jZC*?c-AF%Uhsh+O>Mr}y@$JHN^9P;W-5fZuDa_T(tf z7o1n;lO!F<`NiAlDN06_5Yfj%t5MH8_s z7jonSC-6cd6^AWDtM16?19rhBBbN=va>mWlMZo#OLgiswl-^Z91|$b+D{qz$ot)~fPE#FMhKF97VZ`&>-p z^}i{hcgj#;(%NFOW450#2mm*5T+W^NE zTG+)tC@`%{aJ8->W@S9Vx$OEyr!^+i)t#u_P2In-_708|{7bG$X#LgHT4He1P@tB^ z_u>#Xd8x6d3V*w9m^83~G$b65Kowo+0O=%7N;h>-%-Hmx|7a&y**IEz9>@Asuj3si zXr-=!aJAw7%6fxDY`jf4YSPTPwnkv`^8_mkZ#wQBdFBMOMSLF2FvBRA9i{%GXJU}1 zBaj!Vr3utl7%mNP(5djYEFJoy7`ZcF&-5o-%U36AefbhzH;z%Y ztPbS=uCJX~D6q-puM%4sP_^QVrP}WH*ilr;spZl_A4Fos@06W>=KbI&G@6o)96;_c7D$!A{ zos`{$SMLWix72|oLJv{Zk1v>tnKW_L$cxrA_zP^?9&==5Q6%>SsBygAx2I=(MYnWu zlRRBZN-6sLr+=gc4?=l2)e8Qweaa;nMrU+fK50O;9$dyFg4R0Sl$fpiS94Bck}?D| zv}AtS-uq1Z5zA&|>CJ}0EMenq3!6vvPy)eVJ$`RqU>`1cHX-M_)}*z5G?%pC`QJ^Q zKWLagUse*E2kC=s5ARrs!VM?T&sOSUOk{#G zMr=4qG_U)olh#hOY0XEa&Lm3$qvG>VS30DK{j;3MHG+N0`byCXh8(Xo zX3xjWj=@ns@}Ki(OQ%eLxwP!>$1r}=r9N&xly`8HIa&EsE&*d`2*TUx_<|LKCgSBp zP6zfmUU?3|JYVUM@p`x(aZEM#1&eZ(Cku;^tJ74RknUr5!DqCk>1`x``|w??YtyZT z2>5MQ%w=d)j63tV8f9;2SFdwmBp!Fo__+9^;#&SbaP=1 zpp_#L5}xLApz)@GXP;Vi607!xq~siE7wJKto4r_W@vVpGoy?L%9{|kz-jzGvX^`@} zzk~m$T}(RAu>EX89gb9EvHX1`L(eH7MLA~UdG=|0!suhbO5G2+w6a^94xp=_r;-}6 z1;Mt-!`DU}W}BBu0XG!)3k^pzOAY1=sTY9E%h1kjaW6~-A53C#_WstoAEhU;>3P^y zbs=uf3^|_vlLJcK6R*%aF8U;1a^s=oMHlsT?kB45a}xaaHhB8Hg>DDZ3}}LSMhak! z{xc2!K5oGGG?8c|Fh*c*6D-8ovHQ+g4z8R{xU-k7s1%DT&(BPvukbsJ_#N{hCPP+Y zzvyTOvsNmFhG9hBiI?}kd4yQw{CBh$AP}E{Ba0DR zTFKdUcM?V|DT;BxOxmletQdji5S$-P7L!B?7Jd<3=##JBO!VMEw>9VK7a%P(>5qT} znAuAU6s9%>BW^R1!xk)U*Ynq{O<4TGJW(c&H!th?^;R<^WdRVPjBC67M!yf3FkF7T UZ`q{^B-4WwWR#`LC5=D-58UXes{jB1 diff --git a/icons/hud/screen_cyborg.dmi b/icons/hud/screen_cyborg.dmi index 04de1b140ea5c69a28d1af7bda60ab35d34d80af..dd288e6950a2c9eb12fca0c031aea5412d025c40 100644 GIT binary patch delta 23789 zcmbrmXH-;K*EL!tIp-V|5s)Y-SwNAXAc#uNAfiZ4MJPChARtjCgMfkp3KB#z6d5E4 zC=w*+oQhaT`u6F5p7-AIj(h*y+oMN!Q%#+-&)#dzIoDk4I6Q#d`i^|X0;!M^BM^w^ zKXUvK2xOSwLnF^yb{@9wPhCBqx;P^cK5xGylsE@V(5l!UGZ{!S>tDGTEnocbAUxp4D5+_j8%=tjinSy> z%jlH@QBt9~hP&>pna&#%&A|6Wc0yWbBBp99Nw3YgJM3PYIi@zOY&`S)M%CP-L|o zj)^NnUSXjZQG>|h?-)NB{Mqm|E@{oZIyvuC^7FV8j+0m} z1=L1M(+i3#wr!N~k8!62JOnfi3UR!IEJ&p|SwaJ(b6hMTJ2QM!_c={gO5*Nx1(u@P zZSq7B7`YSJ1!!;{f+(Z@ehiGmw3LzWO%z~9{)Xtd%;xf2EW z1l)&LP>@u-{`jloX^CxnvFr3rGc1}dl103&GeH=MU=g=y`Sc)H!g)-VQ_+VuTRpl7 z>_Cars5Ga%Cn<-tBPKUj0F6e!N=u83ilV%D@#54>Yvj^MSw7@=y1eUI`;^=#P8%sf z)1a@OqKKd%T$sFica^pOPJBiN^?rqsh2gBid`W+l?G!(FC~cIaz@;Y zdYY2);8JL5R1s$dW$D}G&xn@Ah38pr zAu+Md+3CqULGt>uQw4d{Mid#tB`a{jxB_Bc66f)VipfBZxPD@ODX_bEJU-b)G2gIA zT}_SXOiw{=1yZD(%QhPC-%PyYu*XmglSiq(F&Pc?H>;C&wEiW0uqoZ5nbd_Fu ztqxjuC5mq0a5qNFopAWs*yjFzh95tEeEmYJEc7awf-GpH{L4mCrYaAXPT0M>sa%-4MS?IisFbv{?w3l?TcExTc z+WJ#ZrI7Ump`QxwZ9QoEI6$Q0=`8k3FhVAL)ko>j`CRz~B7SA?iz&5NBUO&_m7%Wq zisfEkG1<1YCx_krThoqVTD|>tVKj@AI)#C!hxUrN76w`0?Te?IXQwoFc6LTJ-lEK6 zX5k>PcrRZjUmq!JUigs);g+&vFUZTYBkq}-NB{o)aBZxLK}}69S;G2UZEbC_*Q$Zq zaZ}Sx#qIBWd7nNt_Ptkq{puAaR_QNkjrV%fzWKTe;xoFdBG= zgbfQ@qS&Oiro(t_PX6vy`t4m#O-sW~1=HBfwncwEWMX1k`u&N)5Dr;zV&ri69BhnV zdGwuj$y5GGnMp0Kjl-zQo&WOX%lAx8BZn;fsW$7+lnlO@ydWTw^Kd%=&$104sQ9o3&Tk5zfV2;0)$K0E4C-})m>#_jL!QxNS9 zRuU>jL)j%IbT3}K@Y$?8=wAQpzW2vI(;7rm^3|vG6X>10YZG-GnF0H3%pyjZckg%+ z4c&336tUtF=N4FICEpHkiwr(rKogOW*n*J$-qF!m>$?L36E@(;X0X7x(g$||d=nAJ zMkz(`=c`?uE+r3Fq&QaP{(bu6lauMy)yQ6@BT6h5>$CDHR{}ak$3;?dDwjKr-n(}X z)0HI7cj*#wnzU0Bhf6Jzhli(jr$-@K%AOidw6!%y5z}%?V`F3dM$M+{;kKO`T6y^b z0&_iXf$|oC_qs`(C>1Mz-Kd{X>Gh8X$q!ZF{)^nca{jt!=vI0q_i z8j$3b=tD`r-KC&w&jzRBTB+c?PP5zT>gs|Il#)%7(BuoVX}RMKCnwQMcT+>)6PJ42 z-4IH}Az|G_C}L5|3gD@2ce%d=edzAFF~-)PtE*vT#0uw=kFT##ASwRy@&iHtX(VDk zTZ2Hs+bZ^{@wW@lE0_8;mwx}DvI<*nbnx|+Ls)^ud_8c9bD@?vSCJL>p85i`H)Ppf z_G}0yKC?PMrb+1RdMG8^bG>Z!#^z=Mkjh(ITMg@@6}TTVlT)8^Gj7`2@_{1=eyS5y!#7QS!9^l3ArIa&@RkLtmdMM>jLZyv92SfbII|kXe0dD*HnNgDllB z>ZSf%nhBp-swfT_Y621i>RWbp{PNyw;Y`8?f-?sInOVfl8o+sX2hIQ8TkTuj8!mgs z^0lLymjqQsoT!NUG#Q`z;LA-UtBVc z&m&iZi0U^pGbIkHq0{_~qQpt?e%HS&$2G zy262-&l1q`4LS?lUHVCo8TeNyhEwibL{_oOq>_m7SHhH(6hU$EcD`7}=Zl#THvkGj z5R{=s^{4D{zi5RBY}={hPHEjB5Yw`*Q;6ESy6N@xXmHxLK;6KfDE(dHgEN}plD3M4 z1$RckzA^sr@cjAn|LnV)TS?Xw39HMuU=o_PoV#ffRt<;`A3vTK5upU>t9t7e;YQto z1xy1n&SMQL1Nrb1=Hy&b-07CWAJm^kD{NE}^yl1-+n}SC{PUH_e}Ap9Et;;LA<0lY$XV8Q1+?f_~RyeoD)ziyBCr1auGY4yb7)Yo&RdRLG`}+DYU;}1)mCtU~2cB#J+=4>{&Uh}= zSWs?eAbXmOOB=Y_77#(xzdmaD01~9*;fXCM5P?|~M4MrYi-SWG2@e_rD2|bd$$D+L z1U@Oi24Qf*;c>IF0e`Q?a9@vrU{rv$-$1@04DB}HSAoJ2-rpFHyb(-n4FU##dbA1S z+8^{MnPGSB)g3F(rknFih=Qv$Mg%ySKTCUb}@)ewrX|RcOzFc^}4?__IO*% zbNLt1X6+6&yjUPp-ai{E6ciF_gt@gRUBR|Do&Ljjdrt^EE3%N$%2g}4>GZDkHj#5CLm;XKUDp^d>L|0r4*4fwSZ ztw2QQeg1qC$Q(UDhTxNTSy|_xV;qT%jm^~j{0p6Q`RU)E9t_t*%HSGN;27bj!2?cX z#GP1mEPhn0fqGuG+*%qeyw+Pp)GbsnX2wuWW$bJ~^nkA+voke0Ih-?Qlv(oKS4*{p z4ed2A6YRDp+lHx|`vCp(!e40!slAx0?w|Ay2TUuLO^KY=w@JE(Hqtba&%6?KLpi50 zPs!|5UB^Yudomidw6cF%P1O3rIRlv0ZF}x^OIsT>gKOt$2N69zJstG+EobfFLfUY( zmoPCkXE?xpO7^RyP9xtMSuD{(m6fvSV_f^z&W@_9t3)6W^?%TomX@$cf{8Zp>;z?2 z>qA$A+H9L@48}FnC|d!3A1-&|P>*5_+F9(K-Jb8t%g=AlQj4TzV(nG z6N3b6Mok9fF5#a&dj_w}BW?(2PAdskxZ?QcGReKzo7oNs6*p`fYYl!I4=@^6QGY@O z%QHmt#u4%3 zD=n?jw%Hm`Y-nt3?7Py0(b;e-#AA6&IkDv46G@Mk^LLy`MD}^_tyot}O=8j{?INDk zxIB2k0Aer<0AX6vpEq>p=ZyR@x#OsalHl1=_IK@SoyRZlGB2)^f>X%oLM!Nq95qg` zTmh?bTj*w^3G(f9}6o$Kvbj z3#+lt&Q6%xOYM7SdK5NW{*>BJ&&~$pX4|vBex--e9Y#YNsD%_h)USs?WCh2@(!jI> z6yFr6|CWY|c)Zt!gMb);b#Y)|pbxH<A}=Np|0x0T<{2`({#@sB-*O@5=dA=y0*Jl z3B51R1t!Q^mwn|;ruQgxHxr%g65fyK!Od4&=In@yNfS3))I|kEFMG~CS469Iv>XGe}U=@ku8-D8)g4&%ozTSQSphG3mO>t#bQTh@J!w9ujsig?SQ`?{#@1;J_Rf2O2S)H-I36D~`Fjxp$WJfvmEwydeMY>FEW5 zBenr}1!Kr1?PScsgg*^XS{fD^M!kfC+dDhW#nw(ngnG!yd{?f{US)MvSM5I+^S=FfdMI>BwNa>~w#JbsS)1x1g zpRkHa(H3$W4UCM8{IOm$R%=&12Jr3&8^axV%Z2mTQFlr@mf5>376|1w?>zWZku`OF za_*H~|KW#?G*_5HKo#T$#33yCU{MQ8B0yDHU@MpYlnUI@($WL*2v_AmUJMnQH^agi z0tL9u-pT-ey<$?r;kTgT+3^k#)i<6#{p1+v=O_R5>(^qxJ%?Z&rrwW)?>3B<3#JrlZ^zo0I4i1+ecPGDJ!XND}2Ll9Z9v$U? zl@c|lEC$FruI5mPN)@O^X~$uVMV;UK@^WS%Jmg`~3)qtuR-B;rd-dkcb0A#EZr{Ew z8+a@Ws4+jhcM(%nMZ7z^AeE!+_lFJ9&iHe#|AX#w%TFTVGti7psj!%+Xu=x)t*}zN1BmMnt|qo_ z)#&w_J@X)1)shlXSq+kldfw#(izQ##DqX66z9}6`l%CGkh`n(2DkGf9fMehQ1O~-B zES5VcC`j}6?M9E@>m(rJVbKlhpO&B58b6Ab3=9ozL8ku$pS%6KvmKB?W(&|1m(w!S z)1v`}zAr4K4mjGsR&nO%>kI1{7_ra+0YBfXl2CHW(oRfFzyaQqsT|wTpyDAQckS9W z)~iom%`Bb+Fw_c=@#hy)nK1z7tP%iEyOWV1TwxXgWnOznoPZku2|g()2H>tVK&LxA zkmuSk9jGi|AqD8+3MfoIr5H+r|Y6vC$F{Yc8-zs2Pi3-z2|DmyQS^H_1ot4EXqZ%$hb*Ia(aK|no z*L>^PCTtE#BV$bcH}3E;XG71~N2qmOV0f@%THbRB10? zQ4n-EpF~Pc9h#ZR16xsI=GB11l^TFxjZxUFWdO$3El>j_id)7238AUVmI@F8V1Vn^ z)D8IAfu(RuMFj!ZmY_7gb?X+dm>9K^k`e$0h{?ito(Xo`N_&-p!@@{1(A&2`$vE|; zVxkGu!;JRlwKEjiT;-Xgng==BH_XksxP7LO-Dxs304r`*IFI+0Ju|G` z8#INTh63YK2{hjI7)Y5)fIF}|a!XBZdiaW6Mtm=lhd|z-{XTiV?<3aV-9VPNq^cKwh&NZz>WR?iNrR zlsp>}1M)3906N--y~AC<>!2)no|Sb0i1TScDZvAZym8`M)TRYsA#xymV2<|NUwaAG0kaq$*d?$;>Q22z z@$~6a)+;uI?j9ajyw{B46B5oVDRBe6*$UJc9V251te*GR{%GEr@vgjF;JrTb9(Yxd zEE+EX7vk~pjGS`rgkjWNaM;lTwTmPmewUL&Orv}(@$1(w*fM}E3gweshMTIYKTB*i z;M4`S3`lfL)~qtP4y*}l|E}c25)X!;Q zl2q~sF0Vv!N>JbaUG4P@wy_%<8;yXUWZ^SS1j>eH#ZyyvcS-DDXhj$e4iQ)e#0Etc z(J(22(zS9i!{2r8J00M8>-o+Eqpy!%UN{9Mc=*hW&GA+ZYc!JaGDBi!l?{IrYr8oeI!qX(tLzwBrF#f(glea@p&UqKATUYwEJD)aa) z{mH83SrfqKpM~ZMaDhi0j09T*i-emu&%tmEirjAw1LSa{0HDBikkz0+!G_=IRfffC z?N$>7tiXU!0#(P$akMT45hDvr7?8Cfo*@oyZf>9H7c9lVtl3>1qJfS^C;I?}J-Ny* zVpd6;iQXm){JSjBopGI`J(fo!Qz_ux&nK`~{Ci;FJz!hlUkq1yTC6{mamX!D`@@NiOtjq91S(X-v7jF_tQ zsIKcpAD_P}E#>8;BTR@mry|sSi{#IlpS zt=BrGVvp1hHdUYls>W_tt3m=1Hkxki`I#B{3t~OGuL+b;8=Um?^k9j4K!I8}hr%s` zK8Lcc?d_)TulaDB&>05|?Ww7$TO9(KQ(fZqEqkj&|IoXF0!O+6N*x4MU%8WMt17*| zq2Vkz4GrMex~&e1I*wJ+5eGLO-*3x=pwpKgi#@@$3cZ``=y zbF^OJcC_z=1_aD16EiwmRte6r*#E#eic5hR;7dF3GGI@)7GSvM-Meazjv{ag11{J! zG{o|3u%HpBn+Sl|io1QPprfVgvR)DWcK2UvJXf}1V&3SV0&d| zhL)LygkJzNyeVEtK&^AfW-q)=-^`42W@g4H+i`e|>*IZ?^8#F*DaN!mXnSvslt<)$ zaaJ@a7mB!^)dW7QN*(CNbxc&YaJtgG_ATA==4ya(5&h?jE#W%WIYxr-@JL# z2a*A}pCpDw7HWXdbl%FIPlNDV)?;q%T;VY>>OgLE0yEWf>7I|j|Lkf}eOrRCVIMZY zpYysOBcq!2-1pa{X-t?t~#);y7@SAKYkRFKLvQrbauR`j01;j^&|C~ z(YGgbSy@@dc3sSlBj3nC$rGHE!~$0}z|uSq1RYQ&>L3NU1M$|d`UYhZTn}FHSkQ)L z<0N_~+7Ww?hq~L0egvt32)81%STJ=xNQHDT(%Up#n61?oPkTdc5=G92Ez~3tqJU6A zy^ZWGMrV^InHmjn1u=XhTsJ0gD<{OIS5@-79%JiB?yp+297itaCjcT5QO%>8(PYxB zP0Jm3B-xX7@Rx$?4W^SH{pw9?Wnvlnx%;#>q`%)^Xe1D@sI2!ItJ2Y$)L1R#%K$J_ z8d&5d9*a5`1q5b6yxasn;>zl(+hoAOG%){Vp;N^S=+yTZ_<^mbCr7ZD^6~S#09XQ8 z)OsyvEBQqdAdlhm0F4b+&?VTYKMRE2O@R9FHsC-74s$8&Sp%c(b!uuvLCgR&Nvy&BBx^Gl>oc#nijc zpUK_a-174B8bDtD93BpbjfL4*97>bS~&-9>9d-PBeHjhB=j$w zejfl13j!*ZipGyga``OlIv@X>TU_Mh=Wj(+I&1RElY%DDQ$${;?(N%G-fnuaBKp?j zzaIQ{Vv5UcLp7Y7nx4zl6%rC6w*Re>+kg8jS>~2`<51r^-7eA6Ww&}n8UAV#bp&Qv z^jci9xc1eIJr$>t5-Bewr>cFrZ+e5HeV^^F{`>_sW{8tk-$V<%8$m0{W$U>A3DL#( zEIg}h7OP1!u}&aC_c~R^8kJO&M%xkQdbX;JB%So-KRQ>68Vf-w)l1DWBhRS0g?xAic5Tz&Va3ub!le@ zM;;aAB7;G*dQ2=`w3F9*&?EWL{A*5bZs|F3(eupLH}gg>|KK4go|t|-8023NBkz4l zxt;}MFDopQlIRql9QKqAf@f9$D=htLd}1E^{nq?hqA^ z1h+?MSjB@$1KsRA&i7`n5m~RUv@};8-*m%jgyudte8{dmssHqqe0t2#ab9cEIM=+= zgRS?^exPOiD_bP}LqF%XI$fr-m7A5h8}+hRk$J<7BEUV@=@%m_fne#mUCB?nt~tJp zc}R!5{qu}3<~GY`ymV;@9WbqTfB1|;{REL|B2ND3oo~tWDP65|Or&Gd`k*1rxjP*C zATssmvrlgRet&;o@K)~Jm8|A8Ppq=IgHE3ncP{KjVusQgU!`bUoc>ST9qHvSX#VocQVmlZ_6VR-H4=!e1fvA3 z5BHtkX?G!#bA=E*<=YKW%4xgJmo@+XEF;^ zrI$u2oK@$NoU=AlFR~51^U}Ma;#qV*0uvTQL1Vfy9h7ZAdLF4`~pNw#3b24hwlq6aUbMgnYgFwvm3eOU~kxuRp%0 zP~{`?iI(1iv}Iz=ysX80U%#3=1QMkQBvy#7+mWB%)633im5id#V^}` zJLya?xl7B>&mS?i31kV^-zjafGf>wrJT+bAWy37*>%5oN$CjIGKxOsigxL7s3&ES) z#nWHETt!$tQtYEnloQ?UFbs83wsFWKByZ^PAx&Mk_AcJ_>~r+?7eg5n*ejT-Rh)@| zD0CYPmhF&FHY;Wi8XgErGI;dpL)P{>jd@vq*o}|Jxr0U-3&6mhP)u)iZN9@<^$3wT zl2EF#c0Wy=zwA&GnlpafJkKsTeSbNM&iERg*p%-d#gW7_`J&$;YVpMe?M7paX?3* z|M#GR`o(@zUwHo=rP>OVjRxRBE4_VaxB{O8KeKz$Ffef;?GxzoECG{+bIt;2os!P8YoC3oJ5 z(=-A#XQLQ`#~C(b+cv9nng$#awing&!GDLJO1ghY^OA;Y2v!^(aJ%Zn%*zxRapaZ$ zwY!%lE`ybg6t6k=a$A_Uf@;{zqETM%%`C>B%jT*mVW*|W?$B%X>>!JxBr!o%&op6Z zT~Sq4)s%BG2f^8m|5K#Sj2SsTOXw!aadi6+x8~Ix(3b=jb4zzoJNV-qglkaifI<1G+@2ppgy)&D+jspgc`X zQqS}81$(uD+g3?&JD&<0qS+8Jo-yTHTta1s28Z=#Lfs^ZX(W^?5_S;uO-KUzeaDxV z*{i|-QG7|RqFyAh&R_SJ@(M=WbaZr#oE{zEU@sMo=YH-en*RRPBQ7K-S3DkH7(aqG zFqNn{M@~>YhUG;}2Xb3Ha|k7FQ+l3IZGDAgZ1t7fZ;JdtjNDgtvfxLm$MbV*=YuYO zEPbSM?^*hpRZAhF+v}SLWEsdND0;1TN3JEt&CS3zUoJwt-MYQCm2CgYvEi&~8By00 z4(6FiIV%Gm8q8GsW9Hc(l|Rq9w7iIBi*(O$Tlg^M(C0|AGwPhX!GP~@bjRM9BtHn< zw^}kX=i%gGsUb^mfGlU8PpjE+__H&5q{(;;~f z=i-4_$j7-NnkNHT5XJOsVOv0SmS-{IQdZBB4h@*5%*-YUdcp8LJp9pJ zOB9)>+Pb6y{%#7)-ya8wruOc{ri-Q{%lp_ zI#ml!5@NmShr4pTgOpR0Zj(Tyh_hpmU9Hoa9b`%&nH_#n|5lsxdGPQ1w=W_X=;-J^T{K`%%^ztB83`cG+ya7o{H2RCLC$o~24!#$0iz$e z4j!oIkWDdkBKTB5=Pd$p^{SD@MnO?g1qU|+13^R^~1s4Xjn%vDTU9KmeU8MwO6d^)YuNXAQ{OT;g!Zmd3rPpN@jXA z`3O!nHX)&%z49x!c1-^24ZT5~o`gNC>O0p~8W%C?#_;zR z%*>`Sq?1tH;qj4V;4j_R>2j`LbOesSjp^@Axtkf&EMR}c4(R@l8^lx@|qgCKzq93<8*b@{5=xA?68F!3) zpy}$g2zJbm6vrfImGd@%HAZ82_(tlkc1tV&;%rK}y?Xm#y^&@=-!AFtB2LX!x`ntOwL;Dv}! zpFejNu7e!-H+|w*6)r<^yHuBy^cY_Z4;xK*!5O5B-)O1me2&pM#_^O51|71Y-%Rav zy!ZMV)GLs-I>)Q@AYx^PP)RG^$NcT}i%}m~+c$ST%%ArPxSw>yjSOX)VfP|gd+Lyy z5#Yu}<-e5zn^59P!U%zj7ZFF72&`lThXw~t$kjBuCaQ{xprWkK?=w5M-|2|WQvANH zuf*Cez7^MHht9dR^5)ems|;^;%UcHR%AR@E=(z8D2Q0OxkG8LY*-$XG#jITqj59$& z!Fv`+L`g{rn6F?k)6M0hQ<`Q_ny%r?oX5mPM5rii-D)!zHEA?A)Pzy@e?a#<8YI1V z6G{N<#UX)kmI^n>FB`G;@F>k9k54iU^?7U%0&f)Ar1{~3qSY0S4H)s_A{1{!lrJ`% z!jJfA|Gf_fxX)AkO9mVQ6H2VL?HW*rf0E_S$YA@3)ay_kf9aH%p+2>-$QuE%!Ryk( z&CW)n7rGei?Dlt_634mhU3%L{OM@XUec%21CKd7OJTV!8i-cyZw8LDpkQZKS3zdo= z>Iy1E6sF)i|1wQaLMZBYw=ck}Ki}Hk4)-3Y~`K&SyoA%aHz-5z(wTW7r#cO zDgfZRXuwxfPe@3xo^E=fLxV-=A_kY|s+4o^=jiLqJ_$!fT@C!_8FFfr1KRDOYQ)BE zA%4}ET5o%>2~8E>nR=3#V+qQ=oyN*_{Oa!YSr-mHiLX+LxNN)LJm7UN9f}{{|7e+a z+|vI9V|gFBQt)*hkjQwtrGdf1*C~qOCCsu2`TH6QRNb2(_2sYdlLyl5*ZzKBs>DXw z(4ak4-n1_cZiQN`F^S-WB*srWJUzR=e&d)c%&j=srzVm45*gb&UX;DEl{A&MF@i<~ z@H<)k$O!{pubqMm1h3Li3yc{VJaww2Hqv(AF>`u)me7py=6bl8#)*)z*V}k7HTtK4 zOG?!1Y0qQXU1~TLC*QQJV%F*UslKL*Pt7wCS5g0F0|5bTv8@|)D`4O3i!6AnEo!6B zTz$&^iRNpJz-KQmmN=v~T8>k7lieD1+3u7N<2fCgK6oXTZNwENqw)=`MF4Fmtf*+_ zny!z?85MKtn4XVVM(bt}-c505X0 zPywQ#e_2H@-pV1tJ;6=s{4gEyv=pA&pWqFgFbUgS>N3}4B+|g3>)^Y$8^b&T@D&)a zCV-l$si?}Hwf`f$|G}D&O&xS8K~GPQbbL}07y$ZSct=wRj97!gHDIF_)X@I>)f${J zb!A?j=C|k;x-3YL9Ata#>i_6~1R`WQ0rwffyTOs<_WA#XP!Ry3Tz1a-ZUB$1PDlFq zjLQT-mE7Cj`xG^&1(q$Y8&oRyH+l?B9e9+%B2#}YdrHWD_VD0#OOrK1%7R(SVHq|= z&5f$^asxRbd3G$8va^lOO^~N}izv{&GHyef8H(iL`XZL8d(P|r-m$=tWn}GXys>=2qxeRnx z4LbW!K>Ik|^0(JV|B!*Lxl_?$ zLM(La?A-C<0ox&yjL5N+%v$}aR_1HeNe#o~%H2vl-Un_&iP!DYBie~9sw9(jl;V>J z9w5x5aHG(K?OD(0UxI}Ckv5i_wp4SS8Rz>Q6*$PGv)FylSVcxL1{2a#*o*)TeP~C!O?*2%IMaKx3 z3Lvk>CuL&`C}lg1+)7Q%v3=qUBtu$PGE1PDLF1#Hu9Y88_N~U-5@hdQ8K>o`xczFAlw^$(OHZ

a9ACjASNVgMxXonzfRMI1?QT!2VKzN20f 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 delta 25334 zcmaI82UHZ>)-~Dzw6v{zi+(v#{bS>j3Y>O)!uupx#pZ}mD}Huqd$?a86Y$n`Wa(nz{KC=og@Zi;;hFL|{)>H+Fx9Ok9KQe~i>{=97Run-!&XFtU&<(_ z{(9*`(xX3XG8q9+-u@zv<9?Ht-sjOfnN)v$TA$_H3 zS>xDLcJbkkKa2Fa&U9R^SEsfLjb-HN^}jR3Q&qkLYvs!)e>%7}Aw(`~$s`Ruvz=1I z)tcweR@T4fxaQqBJNs*3mB(PAh}l7l?@FPmcD!cXc(d{wxsjKCrF*yISD6lAG9HY^vb8+>f+qi){3m z_6ez+_B9lNetghk6n#pJVwVjK;qYbjm~>;PKRqzS9Usp(oSzE$(x2|@uaADguW{dK z%2JLHwrC@Vzl}Y`=fLN{j>mFbU_koDN?g!Gvd2bWV5Wy}>iqjIBROIBdkIRRh7-{Q zLF4e)`U_0>)Ac^Fzb^1Y8~GP2uzR&ut7w_E&`+8Tg5a zMcXA_USgM}-uNB`_jN}4>raBZ5``=}-f}-Kx28kP%(X^Hx~*Ppi(&~0B%(Bjmm%XW zP~k8geJ2EEHs2Pt{pU|mObn&7i_4ogZ~TLTE*RB%QXAK}$3r~|scF#?>PUyTe27J4 zRVQyO5jqol!jkub&EiSe;Ly-*1)i?HK2>%BD@vcMPKo|j$^A?t;Wd}2+x%khXoZSg zA9CqzaZK2WpHDDLpw*%C!%Y}Hyl6R}Em6cI3zMXm*m;>g1_6F7~|V?&{FR57d;Il76!*he&Z_Ox5H> zD3(A986rOZgn|1vJebgR6Z9*t(q%7(2(9|kTHkW330w8DKD_wq?DW{;{OojjqFT(^ z*?D`Xon!uBWBhwhPivt;Y02|}%L2yVE~fh&FqJ*Io|Vm)?X*5BqTEP{`1I-1>$J3J zEcVvPb~9xLFKNU1nT)i@W+VyiRdjnaTWkU0B_g}=;L53&WU+&U++se*?l>GS$wAg; zxbU{JGQr!}Sdr)bmjp~|8F@6*l)xos!n`)x6vz^ka7{0r@V8%dvDb*g@DJ9Ju@yx8 z&{Ci3lPApJ&|lTo%3^jqco@ZP8A-{=zF2nApUiWdV?hdhahz3rYH697lXGEhq_`cQ zQufk&==84}{D@WOXUDTED`BIfkAM99X$IEpxe%}a`t93*>xLB>HX}t13Kn{`73)~v7u%lyxEG@a&G26G-Cut~CXb(9SF@ys{gw;G1Khr=NSH%6|L7 z1Bzf2TR2D@3~n}Lw9Z@N?4YtC(_y+EWLC>SwyM)&HxsKoh7s%#oRZJFll&>=aR?T1 zTkOvQ{eg*zNFojl)q8Qfw>`xlKHSRJNYyWS+ChUkT1b3c`i$b6$5u4wo#0#fL$?cl z&h3wwwtvzsc&Mf2|LfP2e;{kC?y%(LzBQ|)BLcucE4(6bIebS`pZ$1SU-CjWf%Nf( z-eTd{8>Aj&wY#L>+&9AiiPZ{HZV220J~5C8^8j!XdN>q(Wo6~$wDk2uq+Ax!r+@c9 zeEitR0iF1tA2*yg*Lv;s1B7j9Z=ZkfP~X_|Uc%|`pBEt7v1s92#Ut5YzEHn<^~&>b z(xYeNuk-#&e!6*M0724?7c^6z^Azi2r9|nzfBE2G%gDHdz;?$zA&U`;#G}7BFPid` zU0^t15ko*kWC5b@dq+njKd&0 zO>=U3I=i+Op{a0svA(|EbM<3>3Azz4Hk_PQ0W3}H;X^+Fi&w5*C44X8(6(0Gfa2ib zs69OxPZG02!HKrMZYy9~&uU;`fIAp>a5~zxRK_T*Tt@iS#V(L5;oDD2#|ls|a+kKh zP@Y}9EraCv+Q4PGcp(3 zLctFuTsM5W*VWY}^7K0uIg{vxC!gs-8Y$b^UBCL^T@WY&G-A)Xu>h+@%$hC;7<|1@ z=`h{)XJzP%c`K>w<^L|E&bwq`Z6vdp{c8jtl?yrtSyFvQbeY}zq zBwZ^AAE&*=2bhzc_R+Ezw6TelwvW0JuEVE2v$jS?Nl6K=&C1L~uB@zp(ywA*z(gc;! z`@$6@IXRhENT~fvjBLPCI>a6$|Cbl8x5f2;Nn;17`0!npG-6MwoFEXvl8!To+Pb>g zjg2U9wibZPz(0{c*}enkFYQ(JTP7y#X+8%AxT7OZPR@UJ*~#fk)(jD&Lm5EVHc$~o z&{#xHZZ0PP?#XX%ca)SaY}Or`tWP&^NZ3zc-`%uV~5a$dhq0g42?lf2 zvDay?AaBHK(HPQz&7@{$kLK4ex^(Fh0;FtnY(0$x#Nms(P2B+S9$t&I+iFm7FkzY9 zI6ZWB!~+gHM5rEz$0qH1OG5*-Sv8N6J^eE@`qh%meQPSpq2ZK1QP8+)NK+vShw}vW z%?#|xXo*?iWnUc~+9~MV2Nbl-4)T6UFycquflp>L1jXkQu1clxue1!4ZK z9;9nf3<;j_E5F1w5{=@44sB|u>)iowqJV__Yrlr58N`%h! z!ZL?8bf^>)MQS|$kn%7#^eJLEkWIaH;yHP?z}^Bu^_+a+-+~J!^))$SyHNE;y}9`_ zRo*vo`1CGy0wQ0ptPeRt9oPepPzY5R5`(i*$mEN;G+)D#fulAnK7&M)?f;j{?CRIaN*X;*J!m$_X%b& z@kGMg22)SZZM5=9Nr^ByyDa1R=@tYd5*)kPsxc}cjek`-#DLNV|AdZ?4mTg8Kt)T7 z4>Hkp^#=*4P)(EyCw`5AMDzWbcb0#Z^TP)N@bdAl*NXwDNQ_H_8kC{#y)}djDZj)> zko}#6_qvTgh_~~#teEAkKP`fsXbXuVStie-(1kM&ZF%7Zcr{#?bX*I5X< zlm-3rdG$B3gj@CTAabw#_^LKmI&~qIQ&kfEL~)GD$U`l$lxKTz@cE4-1xOynD(Sbl z_$)=%i{{H0=!+-7hc7RNu6lZUUgF^)a;V)QtN`@PAD`&5j0{U4A%!BSw%bQb=~n~= zQ5-&hs83E#s90GeO`%g=@#&EfhPs#gP2O8|A=A(~8-tKZ3xEk>uw$6>(?hskz}ZZF zMP&xy7Yy;MtE(lRJLXC%DosN}v>VWPWr#|4BcK%9prBrpJ_CgsJlWvHZ@1Yd0zmlx ztc_3tWNinq1f!Yk!KlS(t(TZDP!J~@4p1{-OEG|_p%=T8tGxEE0(LFQT7}?v-1}M^k&Rrx;3$Extdw?gnjc+;2C`@8=dUc=E*wZ+X7o$$ z)sH4ybZO`|GOyMiM@GmI$GuG2?3S1TRsZs@&G8>Uf&gvE1VOlHS@BefSZbJk=EY&E z`T7j5kZ{@QjVNSZ+Uh0K1WsW|bUK>0%eUlEnH)S#ij)gsa|mTS$XP-K1%(?D5*BkU zVV-}W0o8$eA8!CjFgI;%Yy`{+t{ybBv|qdr?bj!&X=!;hS_X5~c6Pgju84?e4U9XU zoV62Xs;kB14V@5zp8P*Bj!l=qf0K*6i(Nq%3yih=;20clmW*DK?6ux%XwTm}Iwy>=V2~D_y5KoYeD-y5fBz~Lk6aNGqt(^bg#izgp@0H? zsM!2h*$dD0FYPdf0|;##A7>dG8(SXAr>wA_3}-OKP-m+|X`fJCzga8{omYd1dOVvq@<*lM~XQJQLLd!NsNykJwk&c9BG0gxe>un_VOwZa7?f8tP?whnbID-*2gx_rOsSw$Y*Od=`#bfIA3rWh zNHBnc*Un#D8vs(F89d>G2M?A6&_~v@UgeanFH$o0l;unmw|&@*=$i zD|t4p-mgV|)fh2cXZ-`49YVCU=XbY8?M;1qVQqdg^R;ry0f?earZmYVe%^XP8husg z{zS#}+?=_~v7m%QvY^NI%x#ypptoSl+dHj~Q?+fKzqNf$l)BwpGx+GBhu2d`SnBDR ztNh2~s}q2`i#W|G8P#K$z}E1<6b)u_pya|^`SM^rY;aH;#3LF6Eo?M^zuX2=2tu#^ z_y{w1-{TF5NamZQeG2EY*4EY!pFFwtJ{{=D!a@O{Hwghpfq`mgK$QcgTmbgP4yo5c zyn@0vQR_u3wJEL(HYj~I+epOG63HZ10+eG;PR>kzy00Q&&e0qS z(LToqd~x%x`Fj7v?bg$v@iQDP?`Gxw>*$dOhM5KGFilJ^${F^BqSss zii=gz=u6t#+Hm>1T|6=m0J0tHj}I67J^pV$fBuBYAPk={mGFdsUf${8N&miRWo2an z>f?ukf;&Kk_G~nmn3%xy21YDXQ&ZUF0lOAdSt$Vr_})_A6=C82iF+DA(h*WH=isWb zKR)VwvFc-YT^ptViiU%boY4<#J{E*4s3J|98P}k?rs6ReJB0=1R`RS zaaYpQqaPd`ECIw_;Bg7!o$&nqMzzGOnGlZSKG{9;H1AER zJ)0R*%nm_7VBqZ1Qb?{^VirtMKzZ8%++ns?W~-&hxTb$}G?b2C54|;2H~26ZMhJib ztg@a|@Y-7=7^tbJ{J^hem6T9XQ&WdVL<9mqK(81wi2?$F2>?It&yeQq?5saeI)+AG zUfy%BM*I%wJqLe$hG9 zA6*p{6&1D_79i)4XH_^q5rY}7?bufWpxGte)suM^T(Ip3^*I3bq1#G&`Vb*8M+ zGWD8Bpyb6zMPG z7vHtI8N`ToZD11^|HY%mA}n#9$Y-@5?hd@5KO5r=054l2gz7^9dcnvGcx5x-K_U)Q zvg=cIEWk5(4o%m~0V#!7XA%PxM+V@kFJ8QW3prSW<9r(hKnz~kJ!tCdqXbeJ1pKSS zLXe+Fu^86p}wbagp7|;=?MsW~)8|cwgCWYs0vOMAH&rPyGQB z3~;?RnXTGD;6hvh+5(nGKx>M)uRk8ca1y=8w@{!`oa^#)%yF??Jl_r5YNzKg9eD4k zp5H}I(Cu#Oo$F2?l-;^|??HZPbuq~=0##+@WR5B)2rx#=#AAY>Qu{UfgW7NV08;qq|#?SiogYfZK{b0 zqewOxdP_^o(3qHZKrLZ5c7cE(6EK$~IdAc|Z>!jfNDDwoe?IvQx{2bDk7Sp7d5N2w zKsB1R5mqxG?1EmsGQ;{IVK)O5qsX$d8*pZNAFMY5(;%q7|Do&pC^ekAz_0^}p0SLh z1fK&qAzd->Okj!$_Hcf8p$k3&Jbe5eu$4{i?L@GwQB+ji2I!grSX4h`UG6y-#sl9H zu#=hknH#t^VoLJ6zn{ zjR>@{21=c*uws_1Q+%JmOfx+GF_p72{RNKcsc5GbE>}E0OHpItX_0;&ywjEC`b*t{ zRe>mfLJLD-oo7om5H^mJ^Q(}hbB+UYZch3d^N+ojFj`_#(k56S;kM1d-Y~=~C2*;c!q@+X&LBPh~z-%L7qwA*4FkF;W@7^WetX^Vgm2$oS>O5?N z0k`{8=s6G;SyfexfM?5vM??(t_xtV4w_gzzr2)z(2(Yu=y}g}rhX&3oSMULL!?vc# zi$N|J6h0ePwt>WRS{uF&s)8I0a@&2-nU1(ABrv>wGj$%0Ze7H5G<#HPp5=gWJ!iXa zdzIw6t|MM(YdRT&V2Q6~?|T`Bg-BT&`H%?_K@>hC<~?3XsdSX9GJOzcYnCxt=FRX5 z6$gidzJtx$@MjpIx(%qxX!BBwS#9xC#t?{0h`MfFREUilyx1BL{CMfIeD$LUJsbP^}-x+U!rCNP%fT+I(2{ z@RpO46MV*La*+27z+CuHfYqha;Cs4V*>Fk$tbstFNIl(!BoF`(A zA_TJdwy`nW>e||y9krjIYu`;>>CqDVnxWA zi>}Pgom`Zf0bl`pDBuxq-nVPKWf7T-dvNn=cist<6uwiE|LMZFwM-pIniqzxg z$c!3%*+35ncBTfZU94cg2l!CBvRqnjZa3wR*Tr17rr3c0+yo31v@m10kmbn{w3IIC zvB@g!x{Ua&7XkJP?!gE%l6x*DTTxxS7z8`7u&)PrxWChURh@A}0XRn(hk)pSoxVs8 z1$MOrfkwE@{P^*xrL8Rs$aY3)S6+;d&lmTNCvZpL?%liCJCt%kpg{lx$~%rhzKsY) z4Gt88AY_EqW!wt{y)FtwRm%`hF%Y?CPEHS<@j_3}=A>t4a=7$jo*T8cwsHyzM&IlV z?wQoOc9Yh5Ff%2YfV0ixnMd5cybKP?1INP(;gwnwsX4MAAQs=QN2zrq52*~=>C$QK zxdR=pyPHxep2}~3wh)Yo&RTG>xjA31CW9TU+Z0403>bnIPt1Vh!6i-@o5Yk#tfNKL-@6YCc+qij6JG z&kqrom}s%wp9xc5eN&%TASN>abA^irFsA@(qz2pT2CWUxzG5)Jg1m{+`}`zXRa`?& zO~>^FM)9+wK4=brPTQ|?n=i0tS5`IysSV5T;bK$RYE(}WM%H+2sXTjjm5`D>5^!}{ z&{2U+K~TQ80W*SSIisZGrTVkKHe;AfdDf(At}^^+1XUw(ZFl9&=1nLSVfULu8ZkQ( zw$fXagz}X1o879#M?5BQkBp?1M5a!02(#hl=I46DrWJ9muu#F zRjZFlPxJ$iAHf(>`G%R+Ryb%VHvZ`i;neL1givaeNJmb(LCa5Vyg%jxXIOZNO^54Q!KM*zPL z39{cmKc6QcAfUu;O;7m*_M+iDPM7zY0gWVp%JXN(TkSx!Qv;&}R*HZ`ivv~Tczj?7 z8_0m+egNGI0Q3;(p6%}L3Im%JFznk-EPq~e-hp)=kdHGH)h;;DciUOcj=2nAzP!9V zN!*V4&r7*9&p8sz>HY|#*fVm_Z=+&h2ni1-h4V5hDk@3R>9YLa8pW#JkU-;=y1=)7#Ra68bZhnh4x(^@=rYb-Ny02*H<1$2Xeo);0sxS zKujeN`h7Zyi@Vr-WDQ_W_NcJ#7(`6-tIB7~-EbORBY2JYH2R)07&eG7Z4TmC&WgW%mCn~hpA-46S zfDHZ?54=x3OR-|BT!{~GL0h)!vpQ^iICs&^{xMD)6D$1;eNOAvrXfuEYSTkr#jwE z#z?yb)*FQG97(@j>ZJF5M@_Cn;2HD4dWzjQvCMVv8&~x$e^O8*=r{;(-1<|nF01to z^)7Y%)u&I7=ff#23@;v=H;C^D*CM(%`}!1?XC=?d!$JmTS;W&(^1Z!y11pg0vim26 zE+?9Lt)jnlT&|NJ8xw5eaV^_nxk`kOMtv(DQ)J@DueE+<9 zT;A;Duc=NEkL@C%KkGYE@onUWMz)djB37QBGW&M>H^MuqI|=f6Nty1*rgRBiT=IVE zDIKqwyR&B;Pxx_Y#j_{o31)0kYg2-N1`2jWNDDC7GFxwMF$)XVDKV z%*`(lmFPwYG5PK7?TJV#OhcV@3p?s$*Dby&=7Qd8C276$V-zD*Vyl(=Vz=9bcKXB% zLtKVwz>wdD;{wJx-|Nu}L~xTQO~TeFseDV02sH9#e8 z{rzH@eEs%aUbSW>0g?KY`S^F0AzSODkC^=`E?U~}SymfH&(pojuPnHM5Hs{b5SFBr zB{5&~zfym(rYCXssgSyDg)^2S(peEzg&fotm5s}8dAhrkx`BamalP*KiqqADz3Z*crVaLK73HY6 z$Rzu%i`F^|Hsfy4qhlMj8MS+M@;E_C7QylR_z0CY{0(&SkYYN<5_fPVFZg~2Vm&e> zV~qV7k(wq^&$G%U=fs_%W!j?B`gy@gPQr<0s(KRS4!Pu zNsPO_XA?rlIk~cwTudL^{O>1?UFdc9v);?i5uesYF$!1g3%;-p-qc(>G0EF2Z|(lH z;>Y8fgz9{8h3&rBWNKgBV8tVDJM7fd)LYA(gLvn3OIuW?0CA?z_Ku|#`b+JTO;3Vo z`}0Tdg}BR)`u!$Rw)2##Qpu!c%>-EICP=X>{%$mWz3{;9cGUZE{)*`3;w!lu)zS9& zdS8VSEpPXGm6ts)jf;&9Y~ebf+bXFYp>JWJG3|EdPOro(yQ23PDTPY%3KvP;MD-dv zIe%rZdb{Aq@hooXnN;ZKD}TH0e#FoJhCGyR zdH#ert^r;i=ugy{2pK;NUKZDfet8842UkeeKR`+*?Ub5E2_VXk&iRum)yL+Zu<^}3 z30v0curOzp6PJEJ@D?XdfG$rzsgX&S*t>mK^gZWqNwn4d9)Zx$Bl1cTRqjEASBEB# z{Bm6|RuZ>C^Q6$IdT`ZNKf*x=p*N2FCX+6SZVxZEQPLNkOx0A=p!H9J0DV~hWkLb& zpY%Td64$0(n-&vZ#V#8-th>$_f;dU^vo?I4V(*u{KIcsWB1GzkTm1PBriPuBExn!- zVU!49mIs4<1+6cscox7sfmLt^c;su5;I=MSvJ)rzML1Ce>k6ygtcI&WUbzcn z($aT0JEZX>rFnODjQPrs3M)jqcoO{cQ8zkZNYMEYFdcWX9BRgG}Ye_+r% zMYue@NkiBXjO*$cyMuS{zEy``#<0|RW2iAQY3=zE)RRgUm+)@sh}9ej-hwYbSz8n5 zOXlb1E*vwS73_Te6<}FLLAKM%DqIjlbZc8fEMn)`#B+a%xu&*AWvM<%7j65S&nrTX z>?(B*Nlu=MOHF4u1bN@_7IqalNJa0xk`8vt%aLw&;_+3ZS(v-=G(-xG2n7PJ2i9-i zel!q9--_o$kCoI6SDF_AjSKdV6yG6*#FyP}`H*Dow?y4+4865!?roQkzplC@eQ4$7 zC~-(A^{yQXi@C{;LgQq%5C}d0Q!05u!Ct+%%knO#=c3b}@QjGMy~s4e zx7KCR&C6d3MV6|ZEBM)d$PT~kmWutc89gw0RQ5JJyt^TdCOf;QE1PMk;u`3|BOxSm z@u;auu|U*%8@`8qj02O;>`*%J`ztP!r1QyFc9p6NP8)b(%`DpRN@|gRR&1DR7gFNC zY@>PKpATD|V7{p{D@(a?5r35UGD!M!LFdKl4$>l+qB2OYp#0j%M4^CNQElynY!7*m z_1;Z$g%BM;aC<$k0Y39OJ|5y;sV1Jj33FV0L?plbx+8shg)-B$U)I{Kz2XP16b;Q1 z^uG7+htFb!u2hcmjnq=KEmVu8%M-P{L#A+UjyqcKDB}yGt0h_aq#8rEjk`PuRqwI= zm>V*Z=0)UHmZ_W93-@~tBolUI+hIx)yc;eHr{0-*W$si>_hP!y3w2TKQSpdYPRb zJM4{#u~f5uFF!@iMw0Yx@HP3W&l!8;1o&78zhJ_yuGIbgefMU-eQs&Rp+&{Pr3lIA zcLmwypRz-cEFvSb@vSUy_*DS$cC7#T-jOg+mf`HjleNS83R$5kwx~w5pURaqH$~iL zFVXU4(Spl{-98cVNN1#EJ-agwLB;&8%Ut>syK{_bc86t;%qR8=-}C5CA+o+z$$blB zhLrO4x(Io%T`p#3W-hkA{k4(L2~thPmkF-;)!_;+^+B zf>fS)D9a_0-&}2+2;pBfqw~9R5yrg=3lvQk|vHMroHF?58Qj^C#m zujF5Cbak@+5qNxB^Nn3GzoB$B^E*;3_Xgz;(7yq8;@e|xjK@+b0LrlI;GQ9g`i#G& z(M9W@L+UW9KeBzikB=&bo3+{n{^^$Cd8hBAK2%YSWZ*i0shy^px~H zj@l+^SlIcDSE7>bZ_);ih9a;t;;MszO=0VeBwo*Xe=I&+vKOrxK84Fdo zxG_y0bR5qOP8(^!=^LOP_i8GMfbQ>Dx!nJxj}A&wMrQn>iAgjlIyKigbC;K&KQDjs z^y$-*O~oKh9QfL71LzF?Hl)6>g(p0ViiM@CCK}E&lIc{Oo&i;Vn8I21u#~Vupe7AQ zUaCwZmg5l}6!hleJTBF@NNxK_sYt;~`}l8cSEVm?bF~EG9vqB66MnUW&u+CMfQRDH z=T8yqgbQH!K`nFn`IyY%{=V)bCIgH-$&U_8jKB29PNI1nfvyr8VYZeRHx^zP@WATh={WItLwPD=Yj zBN%tSWHv)VxH6y;g^|ofK_q8_wC69S`suJYX-y3pE}tCtB5&M-A4w<&^p?BRDTln1{`s=-LemLaare z)01rEyHYr|OpBJEg)DR>UI8;X_wLaojAddMhiD-|f|#H*NncV%qgEe+#G1fR*FRefs^)$fi0R{`A#NM}u=t*x{n6@!@;L z45ZTC`^-_I40p9G3w^4-p+4=!d>ya<6A_p0$xN}WcI{TGZUx&cL<@4btFzOH9)o0I z6HZm;boH1m(iiRLHP(YyzSWqP_|m$IClJY)L^7c_dZrAj&n8A+?G1k3xI%Jtv_XP< z;Kcr)gQ=<6nLM|ho$6z^M{H*_m?7i$TSdh=6oq4dgqzSMwo4oTB&ju@tn9?K&ru`D zhQ+bWt>@2+ev8}p zRdPCLz20(|t0cik1VvwlgGN6LRcmIZ;%i@YGo8-QO`452oJRe#c9Cc=&jp#LOBljw zGlyFM;b`l%>zkMJ773q~;wSbo#|^O^&vX4J>LNhV&&CZZsk11SOZ)~DR`Ets z@uD)PxOjpG+kYYN^VdrmF4%bp@k5$ruZp$B>b{n73f3x&rZ}QBLyURlCy%VvHs;|_*8yyjP}R-8_li9&5kG>5iwkkg zgO8Tr9T^_J2JtAXHjn6!NnS=R;M3P*HBpH>$uu9;6cq!!e!aj@8?c@CXRhu(FyG0} z{<*MsFGJ%~+WGIlHg85aDv$2Orl-gJ{{6J^b@5MYFp-SbAuzYF0E5;%RlWGAZVC8_Ma0J-MMRKW=2d*EZlb=^o^gybN+XGY}rHIFQxm^M)SQ~ zzOp8cMoc_o{H$kF9teivl;hE;o$iy%aH@d7AWhedo+0b_7u|lH4aL5axCccBY}$n$ zbN>r|Ea?k=FFe7^B?$LjQI8v%hRT3lB|6+V4+@(W?rv(3ISoGDX3-VjTjMBURj_Hv zBC7e&6_R`SA+-3qn%X&2@ipkO#p7hvp7Bes<8a}ghL%6yUu7*Kbxz*{AKt-Vo>r;9*;WZMptKpZf!_cDpOeG2;9Y*F zj;V*eaJ-5ppD&MPZeE;Zmu=QBwNZc0&-i;{Ip1uhn2Ku@1Lv1Ex9zUjCw3G-H001!WgnK&K7hXZgQ`m8F6~d8xqU_ zpqxUiU6W83;rRP;=6`Ph{qG%C%tqv0Jv`)#@%3~HYsyJck6&+HCMrzYLKCg?)_+Dt zZvR|3R^sJdzfjFGor{!|l{FIm9OYK2*Ni0FF<$VC-(}nIV{2I&{~-ZNs912C zI{AVksXYVgBWan^Sst-m8ejZ((^##v7){m^BY7umID~_AiIz7pR?@c|9L903MV}v~ zeSTzMcm#5=-SUTjGHrJvbz{4S0Rlxy2`1l@KB21e(;2RDbxIB)WnL9yku`7oCgD4p zn3;T%y494}&fx5KztzpJaieLV+L+PSDZ{nM4wbWZyP>CTGDhwM?BSlrB|V~d*MIvS z;UGa0ENEeV?UL?7Qm)#wUjCMq)g)e@iW+@^Nk)zS#0=-{o}UI4i<*8%UZWdA9&C&2 zVY|A-ec!Gu*yJ@|q}h0weEcO*s1k*-<*V1h7iRNZ(Yo#8;=)}y;J4#m6UgeQsUT$Z z?GZl{M(N015}m(mDT%&`vqIuRSRj{Fh+HhqE3-N?Xu9d>5joYDu)6MHBYlhaJnFra zk8i5~{kt?j{)AF>FMjwo>K_nIz2l9a^`0fE2W9S|^UgthyHFytbzHFZQR8xZ`?LBP z!?D4AXTj-R7uDsXSIj5c*b^K6%k*$^H9U%(t1qn zKeW&Ex_lQhB>4Wh619$Q{Dxrsf5_lu?0}8{^gvTKJ~WFL^dWbPuKWW%9z6BB^g*Q| zzhA%og;^Hx^8F#*eo&SZ2P5pgfIgm(;SNIiblalXK%6??rwCe{z`fe;TSW>ZCXgQT zasE&v+R?-WK0tei0Ze)B!A{M)K2j_g`C5GOEYR7`?(+kfHA3Z2u0B0C zZe`E`Q_&^R*H;RzAHHE?AD=8gcRRw+e2DGB;kjwYQ?~6yr0faKiYXT<92u$vM*O!u zkBLq3I(-2q3Erfn2t4;He{vnPp`YGK4v&gbHa1S3`3v4jutxj~f!x!poUEUptK`J! zQSBcoHITGlgj`xIpWIVcUS!~>W&57LMny%1P7@Lk__s*K3$5usg+aHlx_WH${!UoH zzRgzjj2OQBUc{w;f!d)LpT2aqm&)$^1@(V;CQJJMHBrDAso$*q&U7aL{z>SBE*EGA zQB!~9qVWp@-#^lhV4;n^>jO#E7|LgEBEmu^9^@#Xn<_uu0pkGo@83^p%9D|qEeM2J zHz?5cQivf(D~~o#S0qjSH;g@-sF;|+8ayk6z)DPG=HsM4_?&?HV!dtffa=D{(diDt zFPtUe_pF!%SFlce=AhMo2&k#CyfM+UZMUa0mZG@Tj6V=gLV4LsHG}SLb^`wFl=Nt2gm?}Y3<_*0)^TCyfEQx$D_8ue+I&rXPR?*~ zvoQIy)Ve4hh{=l40iV1d>zN|G>}X__%n%!`eQ*lX?*IonKNdm8D-Eybvy!q)5}x#p z^FvMgiJDyrGi#wH>MVkYX`;C7NE&%xxj&(|$=&t0f*TqX5NQ2r z_-f@#u2C6(bM;3Ox+MAs3nqLQT2%QBVHCiw75xS{`d4ReBg#kZX4Zc`3jbu&guhYBFEz%cm=gc{Y3MDJ zrp+$8%NVyK#c!@1bB;pB=EXzLgN%!{y$aANFv8aI76$C{@vP}7(@H8IPmd#%ih`YjRW_!GWl zY+w6SRHU*%ckp+0)%+p@L-X|X^n^-#JS&kBh@Jbu&Nv8rU6do%+Mb{OM@?=)|4G93 z0@$gDV+x4kX73(>nX05&I`LzV@76Rv+WLCBS!&$g#=7W>cr_Qow?Lz`;S~_T!lrRk z7tJD1oSmmyIteSuh%Rkz<8XgseWg5vzkCf6>RHlR>b>PCY@yINyn!uSzjqryCq|1> z?wVHE+^X@Sc-5+(@wO_rJKa_j@3~gM_>|i~#TEo}eFF^W+4v6n8d*`f>2;?(s(-$< zalPszuL6lk{~Gz%BaygZ4+Z!J*3E?3Yq@N~*F|`2V_H~=OW6cf7y>)5WmAN$&^$Nc zxjHtj0QN5e_mx%nG{;9Lh+Qhrol0KoBKPv!!0}hvE;YiVFNszSKXGChwv)}D$!|lO zL%)NNz7n<(;N#Y2Rk$C9-G8L7j~~A-E-nAcJ0yFLZv3Cbu-c|8M-FMI-&O1_2=S0a zV7t^jr-PaYVmKwf8}!W1h_W`1ZtZ{_2Ia&~SxOpJ@; z>d1*P?KM>MF+0({^e938EKMA94oBHcDPD<2KEARRua63|pla^38oMu(=4_2r03V8Q ztilpRkBd!%y*I0ge*SEj1B0Q|6C=e9XV*GP7jUg_r;T^uq=d$sc}|hE@)3RO(J{po zo_*}@-VPcX(MK)utCmqKfZC^`6a9Mi)XvUGrt5G5M6Arr)+5m?l}fgBAT*b(f8Vtj zx3?|)GASWGEPb5$?Hel@JJzq2z~+Xn zs=ADssua3B2G*1mpl~tJ(eYVdDN_czAi>wQ7fy&J+ETWpmC%(6bS}yh%&Z4Y8h!c) z{fZV1DLX&X_FB?TtVk0be7D3;*AyS=xQ)rX__LJ+lW?&Damf$?K55<3MD0$vFi;1|WZY>J&hWV`ghhXw`XT0IwzP^=ovR`>!3fo#g5N z$`68~n~6KXrh!a4s?Tm79UXx=5PJ0n_{AY!-ja`a|2pAD4bBVqDG*Ki$(j*coGDjs zfO&TW7R**7;gRLS5Jzhcg*zZ!o?sI2HLhI~Z7@pwzxXTg0dZx^C{AF>9tQ}e|Myrw zkNcTTGQEy9lc1F~L@Ds|tHr|e6_2R$#$P7e)w^!f-4FIy+5!%5%zumI;gS$IK&#F% zhYLFdrvILDY?Oo|q|8eh_b)L4VW!@kKFvXi_)ukbk6qrS`Q?p)2h=YcwLFg={UujA zj>{?eB5ji9}#VX=5>6$|ZPP3R564yO=86%YqiB>?;gJwYw1>IQHNTYPF?J@rHTY2}5kM%Yh!)FsmtvO9ndN(>xa2+uKX= zG{Kv1Y;A{od$F!b|L6k>2EQ%*PA!$4^Lf69{dZy*ThJc+_AWyDHJ?0^^N$EWWnXg0 z8Hg30I$DwOy=*Zlz0zYh6%4N|%KTd$c-`*WlrI=qUt9q%2EX1`eoE&jL=cDn25Mrt zpho~tY71l0n_qkSTL;~*F9!Q46_`JA7@7>(QpNKzCz))v9sB3Au3r-pQU$|JcJ97l zjP=w4H+{|27z{@YSUkh-jO>4iU==6@O$~{Ir~^*FCI=1UoybSHq5=gI#$ZFRnfhm zjruW(gA1G^(?f?k7m6GG&5|bC5SY2UR$MZoug{PThDOiM&KAYZi$K3H+~v@eXg;hI zwO(_=BAkZ#lb>SuJH-zm;AVH_&r{?rFwwhJq1Z)|&Vx8s@@o(wNeHot*NtCpVmd3h zCQRyY97JS!;kOi8@Lj!&niQhGM$Usps#y+jwHh(g@28f}p1sT0(SdZl66MZt^Lln^ zuJ1n>5v|&T6$>nA@AqfZ#Pb$SS=!?lp+*UyN9OuFf|0u%+*KRK49&>UN{5}v>LZO5 z33baA&7!LDLi~p`?1IU|cR=Os#mMI;#K*q^qnhuQz^i8D2)!;auGDRpR#tzs$g(F7 z26eA@x~sz0Gh|B?JQ?|7Hq@ zvR5FHCpRU96}-L<@Q+p?@ve{+p+J+w{Wti}hW(76O{694;UiiBc)^CAN z$W$Zyp<%+PIQQ)AHYr)`!YyDROvY>0l;=P>T>ML_{9ww{Z-B|U9E{I_slDW-wRbRnb!+0|S^vfF)gI2%qw3yWM-jtAd zY+LzIl~KL^WYdRBY5Y|59~|gPjO8yVWDXK)v7+c)i9U6Lttk1~f>vO@0LQ+@UA=+Z zs^CB7$z+&=J9ca=)>V}`R$ZL@|Hp*-A@(?vIn;w>W1aIhSF5D2b*iiCUhnU{jup4B zv*%m=(o)MOrPUf5lIL_kUl~D*_dKf33WxfE2ztJweT)MLFlk`T(NJ(yh)8+;8nK>E z?l+lXWN2tJ)a&Ep^O=Ek6cU?;xbk_Xy3} z@Lg()MqcOl-`GBhj^vT_|FzKnSl zM*hj|9}L>yWpg|{yzV{lo`Rm`e>Veim?R`$I~*u~^7$v~{rmTHx_(lFyrq{xzQHNi zDY1l%7<04=tvE0H_mZf-mvqUn#`*5H`>+NNcFs4i{i||l{$EZy+z@O(lLT7zeF(9G-{9F%^kvJ<1D&m~T}lf^Q4@0WB*G&wMx(6U6G z1Y46efVy?VKq}k-1s}Q9HZaa3Vq&a}abSkGoJAe{+a;R2s5`jTU5c7W9*&|!d}Cx! zY!go!rz+F*Yy9VLxjG$jRnLCgyxp)E@6-p!W6GZH&@ci0Emx{{gRtnD&j72#N0L;* zFpQX{0&XTSypjjAkK=(PrjFJMx~NKxY74KD^b2Vl$&F$1o}-L;tV*gea7l~bNgfjE zLay3&EdgBth7JBtW#<_UXV>oW89foACE5s4qJ{`jq6a~Ev=lvv2qICV5BDI^l89cS z_Xt6V7L3uO^CTkC>*#ebGYDtT^Pcmrv)=RRtY!HytlQq#ecyXu*MDFCAAqMBd$Lpj zyd2DS?4$djDZA9Km{AL;TtTi9@wmr(`C8N6H+0sWU_;P;Me+M6kX2e~^m&Y@R~Vy7 z72qym0_CJTY1z;E0#kFdJSK+WXC?Rstn&u3%zR)}0<6C`tPVBT737sZSwC**HEd0e z%d;}oRR{vIiNndQ+@j~jX(hx)_%9F__YQbA=;v)5zn-ise+^V%+}(9YxO!czl~pu! zB+UkU8)9V1t2rTI<9^8_y`m-I-eb|}sd*qESy7wd%omMnG```zgO>c5c&e|I$RZhX(r*Yn~HFV+}>CkzpG_}0|#j_M?HOg(gsC^ zg}dSbz$Eu+46!1kQ~!?&r3+PCM1FEmo~^D9eBgMhx75qB@zP5vy*IgG>LDZg4>DkN z`6(!9u%34S%>fv13jKnBi5zBAEhZq)F@e=y1I{DKtt#M#iTkJeGWKy5@bPguDy@a& zV2kvjYsh*g^GzXi+YS4fn( znVbNb8_jc)$4Yunmo`G-j)tKi`Rc(UnjX=&N2}{JV|Z7 zWomD6ZQ9>ZKkAm7TZP7r#YpsaTWc!}1{@-B;}EHQ(87*zj5peR#gXUafww%P%fUq} z&J{AN|9GeU__yc}MylCb1p0?)%Gqz}2LHT=Q8$E&6b`y{NUO!m@{2%p zR##Ww7<0dWKhbI&tij-`fq8lzRaI3*x45_n?8B8MOvX{s(P0ltKr0#*v?dOUR+8r7 z0@6}(5fP^6eC{uWqHX~?&DKrQp8)&doP|$k-gnXIm7A1JR@(n5M;Xm|xgW%c#XUka zs}Ghm^JE$5mowL&AO;*FJ^z>$<;dfyc!WW)%4_~Rk&U{5VrF7O{fUQHa6$>r&dwcp zCa(U5U!x}Z)@ql2_pyG6|A@R6Z9OCSu9u(}`9pxz)UqLsjwp?WmJRXPw02-7a2B8M zy-Fog20Tn*fpb4~{J0v9Qpf*HOnr`7`+W#>9dyOY`Xq1$rZ-F!oAXlhij?bP+C(C;* z(7$JSvx>0r`)fh>`k2_g<89hH-guXmH%CAIPDE2d=Gw z`y(c%P5w9Dr=_{?%xU604%>58R+yuqhRlnBxz}%aV)Y(7IN&ZRl7hu4adJh)+Lz25 zLf3lmwJP8{3O-H``>x4kS|!2|AFmu=YzHYX@QOx6N8bke*(UnP1?Pc1GYZBtrJ#h% zpT9{_4=QjUhagXTa>b2f%Z$voQ^B#0$EODa$}&-Fmh zwCc*QLrFJye-4?de{uH3I?Fk|Y!^iL9W$Qt{0+~yR94&>mZ36~o`gmp zWaP1NuyvTUNK!P@%q{QmeVD4JwDT)oB@)@k{Du)cJ57rg$^3H>H}by@q3bVS-{E-3 ztAU*BZ8hi}q>=v!?>FO`!pn+T?OctY=fH$-1%}yd!Ca`d+~%_a<)+-opyN8rPlLLP zH>(}#V+d2b^>AMZz|G9Au~% zZxxkPkqYW$%3^t|{#98Cy!3S6GpuMM)+1qOK{ayg()3Tb^IOp`t}YRx@WxAHP*pv9 zz+X#U-?t+TkiUtIh=oHgd%~aIt(+&l;dP>(y#B6x^Ts&nLgPV;e?I=4TSn5POeR8T zXL81jX1prK>vb+-^(Pt`G2@WP z-8C+`G7UM^xrVMhemCS{h91UN$$;W{pr z{Ky-c3iQ2>SN@{E*;(Ig-BlgcPY7D+CH!{n?Ho}VDJJJf%OYLQ-kR=;9c2sN9+bH9 zb9?>f2ZzUxZBCAfpjfkRKaV1fN@b3_{p4fYujY~Pvju1PPSo-j9c=c#zx(`*NK2T? zW!+9b^to!V(y!lJHl-s0n+xcAH%1#W$_DL6t4cJ?rm(ZK!%!0w6OM8q_)mk(gQ!j# zmtY59ZkQo{7@SnlH=FL?lu<_0xjwUC?Qq}mjMw*vGfXR>1z;rer|5&ynJL7P-$k9n z&MuBA;AAI}o`8q`wqi0EU4{yBMR&bLW*jkRk%o-UtijdPvB(n`rUR6r{;=D~Ip!=v z2q8>U-ah?ZJfU4sc}H`HPB^08b18bQ)ym3h{$|!cpW4qk(}UyVr=VPll>F9}1_KhtpAXlVds=L+mA!U&@}%>{F~G3|^9{Zt8Yl@QamNK) z8}cL##`i1vb=KAk<{+1+n)?m(2MPX~b*zUc-S|Jc#SkzDnwh0O$G-;dB!rT`^y({L zfO2TTU{KEkH8nNQ!bnqUPmXhS!#Hztwjc-`R`(<#X3L{9fKezMkglGef{HN7?tf;u ze;EPu?1BQ#fKSbg|GG|M`968{!_vm7@`Qu9Od=0`>c9)z{jk^yvZDC#&@>pbpj;;1?gfT-%2m1Krx5Jmp(pR&G zXTG;}pX5Z}qew$-=?BFIeEJjE5K}$mPk*;U82Kz{+%C-1erfPM2UbNV%fuIZIY z#{H9OnAo9;s<*P8#8YfWqTGl?g^coC+C9b~vtu<$KrVs7eLFq^e@f>m0Lve2qRkt1adzewc&c#y z8VBf9_%>(`(Pa1gN(g%8acB98974}Z|CaJQKD3w}eSO7mP^GwRH(Jp0>^FaGTUBtc z((0Pi_re@c_aY8C1M;FCeRcy&iWwbP*9&_CvgMGGGu)w{_VhxpOs)}>+6zvE;=^8J z!+(s8t(wi;_%@GsU7?Is#+SK&3Mij;De+~+Z9xp9Py-p;;UkKI#FF4a7mY@h-$XsJ z<;*v(Y=?CnA!W)80mXvv+thyPE-o$Q;Y^EGL;5%GZy})z{{1ztZM|Aw&({T842*?4 zGxdjKW@vp+POie`GDnpA$4`k{B7NNfH0rhC!#-8qCgNT;ZJpe_O0K+Nc@r_~$T(Bt zpP(CVP#B`(GK~-1ms?dCwPMI6K7Oda@2}~GsbShs)dcU_7jpgnG`8CL@uLAjZO%;8 zc&Pev1G`3mF6#k;$ThH+WfD60Lk||49F`PYz9rMKP=gzh@~20!UscII?1)`Wuji3 zb3AIcy!)0;0m_zF3Jly((2|tC7F8Z%M-#-@K0L2w*yKsuxobRv!%2O?<;tu6Ci>UM z9(joj3)2_@Dj$d8#WCS|L3X4>$|>J>h)+EBi_ok3-Ut6Z>3kY(A=r2>zP zN7B?H3f2H<79`-J(|gW1v`8Vv$`k zzaKWEJt!@7hO5HPXKexDfeEwHlAqaE=-EC>o>uQqI`3|R)!2ikmb(hDqP`oU``TOV zZs~k)WvP$6mZ;O-g!Ry_q*mevt2GsWjBT-2Y|UcU=vrd0N}b_yQ{0p>ivHy(kVhUA zv?-?7qY zYMliixQmI!25IePxP?y&2oS9ayDj!vQFOREk34^7;cW)MD%7_$#emxC^ib>{8JRcO@7 z4kL$|Hc(o}p}(xX*p6xs4RfSz+f^dI9G`m=bSRm06@o+47JFnT#;0Wk$*A8ezef~S zUhzm}C1^a_#0S1SB2;Fc_ZRHj9Z9}5j-UNT>3N|gSaQjE>4kHRW*Id@Jh{x0dn&Hl z^Q+ydxl3{FLP$59)4RTj=ihtx#Q)j5cXmAU^!+b?>k|}+-P^2%E#jR@HBduI^r1c2aSDtvek0 zZXIdNR80GHvsSm(`rHXkZ2*He28(-Sq(S}DUaoUB;_berz$1RkWi|^f#Y}`GYy1_`SBhQ!ov=bPzDFF@<)B}~j%hN~YP>rUiVeGNE!`<0ZwwR(dve;o%q?Fo~6IKmTPkV zq84VJ_I~=!^24SN-4DfUY1F)Nhdq-JNASAq!%A$tbw=+6LFfr?c~%6jjybS3V&V5cok`B>sdxZ7)+7Z`s@YD-se zL8zvWhQ4&K+Hlh+?K8Jqe@&TTpb#s3<@9{tp<%mqC(>0m|QYQcj6AW#y&kEw=8|b$8F$DF;Lb4;H~mOia;fI zSvNdjzeAo+A`z?0uH{m zfIrHRM95w1Ka&=qCYRdGM@8NDc(b=e-quqhf+jG6YbRbU_XsW;!u@yex23;s&kNl3 zMsKvsJz3$}E;78!BARoMFr;7;4|ou<0G2c`p#P~ai9M8D)T-<26aJy-z?U-f7kBdZ?;#TmhKCM$MQ> zC-%Iz6bY%^_pyj;qOaq~qZg-GG}o6T;!%W(88gVy3bEj@P6NyiZDtS5G$E7*9S_3cJ0|i4Gcn>o#rklQtxEN=PdE zllezw2-PrwOR>F|Ke&X;r`x?95`~qj8HY2_P^;krBYaQIVOJs+YEc_>EgXZ>`DewG?iD#@YxfKtF#-9l(7BP#3O6qwGo^rkM2B(b#bF zmPLGi>LenL|A1_;5z1>ki&EW1ZnB^#dwXvuLvJ2=y7ALa_hw~xGf`;IX~0cAhPh#% zAsEZ6+t_bnYua*g2}~Je3>^kZEDSpO?1+lK^YF)u-_=z=BRw!4y0n;wO0V7=P{e_H z(hT;brAri@DJ+#mRxxospNB=$$U(!yC@S~Y0VO}$_vF{^;>1@C;l&xXx$hr^@?%Qn zA)8@7+lVdsEQQO5(CU@DMCZ9s<1c4^-<5eqv`cGRnzxDAGFH7Pc}7W?_?Qlp+ZDoW zEtVBYX%)zGU?{e{O8&XX9Ic3Wsl%VFL7zh4XVQt8^T250n$N%-3CE}B%9(Rb2^pb6 z?~~My-FNGC$?DgUc~^BnmhxAjK&12sA#DU|FDz z8=#5EU=(EVXIk9XoWhhO^{KUyc*2B0uqFN1;Us>Kyd`xpWNm0!gnf#3cTtK51_0$8 zU0t;R`jadeW!u{`JUli{C_kKYJ^7x4)Z`pzlR`ssY1fpwS|)p@9?V zHenLY=*A{Tc%cE5ifM|@6FhFmr@PA52B-ZkWxo`^kSIm1Xio;4nH5aRbv%)+zRFyy z_>h$?xEU}9+ma$J^p6Q3)ZJ3@0Aj%hFp!$CsHiB|%jA*SL~1g4KrO2Y{k=udM;pOJ0%VP(K)VlicmbbUe*Mq_r^guLNgL+|u-EiDn+_I^dB zbk|#1=b`*Mb?Lz~fHWdus8QSMvg5lN2V^|x5+vhYzS|k}#=N9ox^!j~kaa-aN1`ik zY;24zi^}jPCCW-mYc%RN^0fdL)Ankxe`%u%T|oJ}>{8#F&T_et!bDf%0Ivzb>GU(K z+=cMAlel*9iH3rH7U~Vy-B}HG^Rw#r&d!;Qo_n47=Jr3M0fy)-^^J-1+2EGJ&XL1G ze5!X7&!@PdCTPrdx^{obPy+{{*ogJGhkBvwJlx8g>Oa`8{lyk@AIXus>YrT_m zS&B>4+p#s%M514!*Q%Vqf54kA&D9OnKPa92d?P(iwHKy$T-mw1-ZM<{HgmLD(MF`Xv6H#k+FoYSbiZH< zfm5;1(cnE17B8pJLk1}8C>H>_iIW1TKKp1L{rvpSmZuY@aDmFxDNxNJgG6(GTCCZV z%s!;1QQh-k{_u0~6#gvJq5oVUkGk9O|FJ%bk`|?0m{@(I$7J_MK-FN0&4RO2+SKo# Z>d#rhlD@Ele`^7Q>1gU}l-;rk`7aj%62$-j diff --git a/icons/hud/screen_gen.dmi b/icons/hud/screen_gen.dmi index 5fdfbdaceef6bda748011a2930bd43f846ef5091..59eb7c3978016c63f3857b9932f991a06c7cbf8a 100644 GIT binary patch literal 104282 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

4*bTM270mQ~5aXx%q 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≀WW$l*Hq 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 z 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 LojXOhtwR0}cq&y+ diff --git a/icons/hud/screen_glass.dmi b/icons/hud/screen_glass.dmi index 6a306f80fc6d4e0c76bcf8165c015130019be2bb..2012716ba89edf44c86d26348bae6f37e1636832 100644 GIT binary patch literal 14147 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 Z<#oin@<{2V!T*2*P>==5)JU6#{T~@mM9lyI diff --git a/icons/hud/screen_midnight.dmi b/icons/hud/screen_midnight.dmi index 37d76643718788db5c21348ea7824aade2acd0d3..605b845efc2161309c976e4f8c4259f19f448fca 100644 GIT binary patch delta 10642 zcmZvCRahKNv@Ha8ch}(V?(P!Y-3ji4yK8{p0fG}`a0UtP5;RzFcOB%;f6l{wIsMjM zRsB`%y|%9E8-s4$fKH_aXb0%%d&$^%T6s9QdpWqdLP7a`&sv;vjo?6q+U6FKUEHh$ zu4hdwR-cpvM~$M<#~~smsHQ#K345)7eQ>1=zM)t#x(yLBb3O3uX~C$)Rpu-34_s}X zA`V2a;BJTkA`u2}AEIz_|IzlKm&!;wfc%&BMPkn<D}pO8 zOI;3X$OP%z9{h`fX`X)XfQbzA4^CV5&d$BsuSIlabeSJ3iSfHfOsMhdW>_o_@d=Zu za$WE`iz5P4Ncz8qw={Yl#0%*)ocWSC>7ElixHcro`!e2IXN^2N$)>IY96(T7&-kSi zND=2f0Hx%U@mml9RxVMlL7@PTUG;u zj-i_aX=@o9TN_*5IKxHy4U(kz zuV1F(8?cZFIWVq6|I$a5MKlbiN`KLT*;Tya*>PSjD zN=lvVjduJn9MvY0aXCc z@C7&l?hC^ls^A?)G%_SP4vX_5n5c_ei5 z)s)f~#Y%Yl(ck7A5f)NCAh_05b*4o?e>Ly4%-Lp+@Al)dvF|zB&+2$}40Be~-`}4& z1bNX!@d!DvzlszUoY#5_6U0Ty%)OrZJCK;Y4ovyeMJ_FoFItRg7?GU1KIiSerh

    RBoKJ@?sfbzSTL6=0>A5mm_Ldrxh=dTOFf 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 v8*}v5q#-)%wj5apNG6_X#;pEuJ^X<{6y|S=< delta 8073 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

    h%pUTo17V+( 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 literal 28376 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

    JWt{~Vn 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 diff --git a/icons/hud/screen_plasmafire.dmi b/icons/hud/screen_plasmafire.dmi index 7cd72b6a63419072a54797c238361ecbeadb2430..61a99bab97476ee3adbaa473dcbf384c4e2d138b 100644 GIT binary patch literal 29797 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�u=P8#PV-c{9sq&l+_fUZ zpck6^&v?yyp_&CrMN@dkniraslaOB0mjF8#WP*WV`}MN2cY!Y3zt23yo80Ay)nDvc zF8iDAH%~BH5ZL$*83O__r+*yI3)bu|x~e`y9bCTQP)xV!DFnn?O$ZWK+yxU?RBb1U z6;IB5GXJgtW%$77C9L@2v1|H8t)EBB0uYl+I}6tA|4}}Ce{z8VP2Qzl?(s?2&tDK% zw8X@Tj%QET4gK4RGwf2<4ROIv?C=rF*3^5$#2pysUI8h~k(*Q5HWJp8HT?Z}zl?<7 z{Sxf=vxRTu%S9a$X{z4kbiTVF9UC&O3g5io&$uelXT-GCD<5Ss3y_MEhX+4rwzbuU zE+4h4IF>oj5Yz&IZvH3CW>NR`F?rCa$$P=`FOnelF+EtU7k}AGdo!@5d$Yn%P6Jxt zHW5>A44D$BDUZ_nfOT2L%Cd;#htrkJ|IX3gbAlQvp|4TWawu!d8l4OLiGNr>P*8l$ zF>E!j)8cIMyGh{Y1DoEG4s!Y7{9m4ENyR$XK-Vze}jSts%OQ!~*Gc=sMGZSibVz5n(bO z(8O%n5J?hwn)DY*1t+Wxy`jBwijcY{CHfPx=6_BY`OxqWOL{cJG%wq)Qmx~~E7X~8k3*Q}mR{9GSzt*7EU;XgsOD0a60z&u+oe)+Ly_S5n ziEYo07-$@$LVtarf1*Gm#Qu9t(k8*Lm7~Mq`onzys#MjprkH8fQ>@GJ)Xy~DQv{N#1Q$~o5t|)mHkg7NfTtLd zdgrgw_thSx8VDR*{nvvonOy*1{BFA+WG9-8Lc#W*xE(fjrHC0p6R5| zZ~lnF1b4bF@Do$>LYTH1nT*LCLe6s#r#IceaD&@q1n-vD_p9D3WYmuUrChMNdx>uC zm-oy8^V0&f5VRE$9@N!$Ga`;Pn|py{>D^HK1%rs9j>t>3)2Cyg2ViYzM7Q1G$*6q4|=aaRwnudkOG6HcbpAUO?l911z#{iS8=-o<+fu?mmB z6;|tvxRsouY8MX`WS02`bLTdgBT6BuBaaUY(-oBkKTTvly6$~W03+qn=6vykP_w&K zb-pNa3PrD-x>UsV{_tKg>aje{RSm$xRD|#4fR{WvUi>A059H%poy(;h46HZzSATV= zga#Uf-PJ;4>_SLV9evwyAR3eN(<%zMNpPvd>U4j(e$#(=J#Ye&f@wvecGwmLrf%iv zdbQQUFrteXl#w>SF!EW|t=EeBBP27#2YpJB4R(lCt3s^9T#KjmZ#qi1YtIG`2WUdxJTK}?5Y_6#Hsz42=@&(G+4>V|YUFiAR=9Zax2{BZ%i8jn) zVrPc~%?K+-ZShZK!rivFEoS2Ck%5&Iw5y^r8qRk9j|`9TvEX1UUkJ*Ipm?s#6>D9N zsNoz8?Kl4XBe&Q-ZA!|-L~+^QV(_3&tOMTe!cw|9Om>FlnR~wB z$5>WG|Eb2Zht6SMdI3a2U?xM!G@Xx!hLt;)t;IYZzP0NnGZa%*G4I*+z=zB92I|)` z?h^D_aDArStHxMKAZ4){)%%pWPEtW6;XGXPklj-pFys)vfC&>KlFX#0TSqaXsJS^_ zriid)L{5}AS6N3*73#Nb?oq?dc~s zmX44?e%L>`3D!_?>?CK1v@ ztBkT6d{;=SLql0@EsiOM;*9Lgfsf`p6kxp%ezQ{sQIN3hJPHLki%sVb9mg?n12U4C zO(qE=xWIuI8DpjeRN4neU>&J6>Wg1qFFt>0s#c^H+p}mr|+L! znO+ZdaN|csEeB)8)K;lzkUuPHs?7$qiY%ZjvaUaOQ1MXw66Bej+q*%#cSqyOBN z&Sd=y`a4r#sf@N`pvCnwjJFH+28$gFSN%Am7UduJI(Vpyl%O?!sz z8Hf68{bqX|CQtjn-XeuTGnw}HczLiwJ>n!$&@XM`x7o|lZra8jPimvaHG2x8h&ei<&aQ&>1v}=zX93(9)v5tJ+d2_62O|1@I)XF?D@nNUXMyZ{ zw+aoN+XUT~7oV;?qL`D-w8|dV8XTKE>tluWnheg2NSkp6NW&%ru`?N#eE5HU-zH7I zdm`{jiOrI(iS#e_Sgc#G-*)CQIqptFy%!o#-9Ti0sPIA)TgxPXJi5ka&~ zR6pkd$gWrR;X;9?Y;*gacJtX*Hj=b!lcwK!W#3kf6i6Q`sPy*J70KW~T(+jYEt4c< zip=j`qKNHNd_N;n2n_Ph%D9#d@Yu9B?{WiYd-EA=EGt(2#IIIc=_GWnE+{vyny=W= zAV_uPf-BeHeTL$0WJce6jTnhzABBa9$D8|LzBmgCQDNb#Z|~lG-wAMA#8oZadRtT1M=Z+Ot5>`NqDHZn>c*T_ii_sK*$UaU`kmmWy()t*BjZNU^|DC*BeIA-Zmof`RLX1&w#oJXOr zL)l-y73Ey8hM0s)awW-8Bp!&G=K4pqISR5RS74b0|IG5B!W%klS8yo)NI*yEUROXS zd0$#gdxC{GNb=Ds|J6m~F%&3GokFKsb=}YqbEe~V`AXMD9evDu(;XOBHc}I;q4B3$(m1e4Usr2 zsaWxdjeXBs*!ld&xQ?c5JAj@2?6oeT!8tq+XtZc->~1fJ)0)kmroR>(j61_U!wYdk zE^rs9%4mpAa86NG*qK;QN5WFl52y}AKV!-P>j8-(4rfvi9tYSxwaQzY@}}c^P-4|@ z*PPwgF%g_%+Rxs4yOP+t4X+DNhj<%gq~zccS;bmbKN20RQbad47d?yEma^~#xAF6ZA<;Sysz6Cm1P z@U}XBj7KHy`>J1-azCE-Na~Kl-i}dJ8EO96#GSb`4tiUet%}B&KXLHTp!ak8*@Eq` zMv7Iv^Gyjd1D43-e3->|vOi_K0>X!$$X#&{Xes_(KR*K8D;@wgq^*AUo67%=5X>^r zCwrmE^#RQ5n2JaLf_FraR}J)NOws%D3T3^na6+1#>F4yR-;yXz9H4K!m;_n}KHwDtWMk8J?O-C&19l#NeM&z(!gRS>@2- zyRs?52=g@W5ihX$vw~C}g&W+cr!2lovvXS3N$?h?hh}M)P#FJciHVlQ%F~^DGZ5M6 zqFw$f;Z|wH8BG*Xy{!A^6U*^>%XZB08hkQpjiYVYOSQsVP>)*YwQy7EQ_O{($d4d^ zfn}brCw}dse!4TGL!2_R?>!-DvLK4}i>!G+Pe{$>sgM;Iuad%s$v@4T5P}dB@=Fln=LRwo5*B48WxAmRL^!xsUa^MJRnxu z4^)(V7gW zpg*LS)_jA?$Rl{w$vw3wMZiJr-DjKwrdPY2A7BWt22IMP;|2z^a*&V}sTfAdX^T%E zaH*h^KKK18F&-F?EUtF*xTheEEa>88ivorW5m2<&Q#>WKuC7nXdp#W+5i{&z`6h+~ z8T&N&LwxTiq;#dLfYrg`h?X-rD%x6KcX$3oVH8GqRelZJRH=Wu9-$Y88wm2rawB5p zISDjfWoFao-3r8>_g*+d%H^T>0@G!+X{7&vaXwq?fCw!9v$LA?MqL)7gge7I!x$57 z+T;T_S40?(KIp?oz32<(0dWy`RrgxZ(Ap0ggH83|2u$#Z{#rJ^@+zqh~137G`Pv zAceW-rC~gNm^=T6oG7f?`(az@0}gP6&AkBK_V%agZS6H}Y;XAm#;kvFAGh{vcEb$>I+W=o5p|vS{OMq!{|5~Q63n}Z5QdvNYE7Q*5Hl*Uh;hS z3hDfO4*cAJx{xDS)QA_#{FVB;a#2`5!K6+3*sSfKd-Dbe2zr140ckXIrgqSA} zjQWR)xA@waWAhR~na&lONQDqAaBtk=G{h05b7s_=zxj8%-&}Eft4^B#m*WtEGRPK9 zIx0>8i`^uB1~np7JKP{h(P0_?G8gs0+FFA#SuRK(AtiKb|%b6wp`HS5KX zjRaW2If^@3XQ*;NHcOngEGhGxsmy}{F+D6`e{1%$Ror%dxvUQ^YANIRbD;IdUAfsu zs(hu=vGx2U^_U*?@;T1;8gGR;;6++Q@$Qyj{_K^aL2iqs!et_W`~9lLpi2J6#-Q2j zKf~I+I+x*jPm|hl(m`~x?dii5cAmb4bgYR%Da&mIF*-|Fw9c?(Dt?mN5U~=DX!}O@ zaV-M?NT}@Yuio%t^DMEV8FF)zU||Cw;b1m@*B_4i;;WZ+H67GZ$x3y2-h^kTi0iBz z!8u|moecfEr<_dlG%R7Gd=1i4$IYprnh+^^`0^FPQIajDKT=tF%)&i!p5JMnCN(`f zTjzT&*rRp!q3!7+1!0mD-Bym?8fsej_*`rhEK2t!Ry}S1OD`sW2=#s{n837qm5+qG z!#dzQ4E9^@M?%DD^|%$NTsn#(hAps(9!U8A2EVxSCfWWZ)C4#=VH1&%Xy|xK!!Sog z_T^5*>wQw!R>93RtFMB?x|E33w;uogQ9Qf}{ZI2-+{^qEX+zjFdsvqOKCA)#-@k4GI@f^`~O;XJ=Qq*X(Wwmc1CT zW@Eclm&TKqlHGFj~{6i-ruq?P+d1 z!-Fs1J$WH%`27nZ-NGZccrBFk6F0BUu+?;J4CZ%O(p6UeN9mYviS4IK7RL_Z%eRg? zegg%4I|ZDt42@3P4`w-(3v5hyJxGr2a|-Msy^&N@$B_QtxHf8UjRu<|o%kUwhwS)F zP?cbm{XZIp5X`|9$YZ|u1voZE%?EFS>z}rWgKLHc-wt6eFoGd*=yg1@H){7Z$cNn~ z$AfDZVsvb@*na99zr=uGc}5mOLVN^@QTC(W6_I?zS6Ub8O8q5xveuJ9LO8$^k`&wJ z|2o+13ir-rf0Aic)U)td581^+CRDy!IwudoWnPg8k1}(#+JIddUeO+9bp^E{mh`>6 z@EehPwb(xetk63?7yP&ntaXKQz)N;WL>p2Y~*Ai5w-5hv*u**SyIW za?zT)%?)b>Bi`Mrb8U?^3c2@j2>#-lN1=7m@3$Q1gdKL51l*EXi39@TIg@LDhTSmm zxu1q^*+5O>kZ3yPZI5~ z&hdN%Kt-S!SMl%M|1NRM&W%=H#fpMNrnFGL0I9}$fpL=X0o|WJ0w&TRw|$l9l)+c8 zgnh_70$6KlgNxQ`8TN>!R1i3=kGJD1nmR~6xxa#}*F|PH?Oa*`(F2hMJ!by%;xuq63f*$w;ip5beLo+DCTc(`qFN=#0Z_9 zAy+3ApL@8!YJSF=jKxCKAald&q}YVHJcuEEUpwuXTBSXE;a5igP>W!bGZipCAI2!% zruo^I0o_OCu|~b8kt#6l7Q8SdEz)`7Ux3=~04*VHS*!k_n_5=cw8u{OT0Xq-a(aC0-B0tqsoMH54_WrlY=GrvPDacawOE5N z9=i}&HVViZ#|nq@$@FPK?<2m8faDu=uhIU+MjBGYCd+@({KYEuaumVqzLkjtl4uzH zNp;t>iZACfqZ@`ED>qHp<_nOqf4oG8_$nDbCnH~14SMPIPal1YgI%_K{*b3Unq1o5QHDeU_8Tp3J@8PcYgfKLX<81CoV;LyC&H$@s0iM`|sL zPv8g39hoLpp74+AYOnezlzeW&Gyit<>ROCswAzbJp{H}h-gVSM$9wH0NE?}=M?kv_ zVYKUu{xIA$?zxT^KbT=1)L?kcHCcA&)<%dYfuU~elkoXq5z zaJ==vgew#NWik+Vx7#D&V=asQ45P!qc#8sGVK*Sz;MKOg8h)Kc)0;uC>4)vt{M~M9 z-?f#Ycz$4gBHQ8LLH)G3j{sr*&~P(>y5OD^Ku`;6tnu!}Q)VWrYTfl%fWJg66(zrQ z*r(%1$Aap?|4kN%ykb6NJ^)JxD*HJtw`3jhDSDS(jB!Q6t|mdB5C`Ss;rIcHZ{yYM zpvK_qGp36xycHL6r-5;=|E=D4qec2FFp114prVhaRn>cx*Qi4(`1O^VtTX*j9&d=b z(W#4#nBJ}7UE~z!vOLnrY~ zMEtiatwpQniNeJ_sCXtUGH+nH^^NK$0ZS4Ya+uY0ha=jky3S=1A-tB%&=il!1le7i zKmZ0dHf;j!7dffOz1O2>GC*OK--f{>eEa-`Fs)i1@3N#|p9`*=gBo6NoR0$nOSWLo zE6!|V-$vky6YO45VI`1DBRaX;ws?9^9r}*a;CdXk7C#!^$fc~QiI2_8@WrxEWzWad z6ARF51K{yZ<0e6zfvm?ws_YJ(4RwYmhUy`q5EstO&hm7$2e}qkVCG}DarnygL=zEb zLoYBDrxV{tB_#CpPRUx_hgaQyOj7)hA;Z;u&vc@=-5LX{`oFyTWuQEFJLBqdL4R)s zmmb<77L!VwD5{9EFpu)}e#%4Iy+yd`0txQQ#3luw*T?8alVHUhdH?fs*oO#WUA;u} z+o{R|BlxeFrxReUYvwS^S_-P^4LV`Rw{P=1YnTsw0!swU5bncGyGqj_C0nQE3oQ(q ztgdcx<5o4>q{PJV1EAuodeq)2%kt@JGFW3WAwT)`Vpx4l*}`K_9nHOoG=RnvdsBtbAGJ^bgnp4HTyse%dSUpEsd)Lp;z2;K?!coYeX{)^7 zwP^qep=`*?x`H6CLzMl`Uf)c)O)-I&Pr=I_!{n+pm z>E>O7IW#>-G2zXeGeOTA?r^LPx?_w^)RgK7?B-5ELL1!J5e3SIS|p*0@LwVAdYh0R zH(9_cDk_fbN3KU2BM`qbDBP0)K7?)%dFHM)HtHv8=PmQtP9yf>UyV8`!I$;qSJ~sY z@Yhdj28RAK^;!|22o@7ByFRT9{kw_PNO=!6#p4}bjxTpZ140Xa=O@S$443Wme)`o< zF~ie>*bd@BHALa_gJZEi@V*zYZ#QM*AVm2QiUoB6$IT&k{jKqRPpzPN!i8#y zqkRt!|3gnv;6@H<(9w`PDd7F4r{K$Fmy^nCE&Ii;r>NbB&6p$Miu0?tB<=NE{bJk? z^H;R&_q)pi;wITxd}L@0LsQ%@o{7@qXUhoQR`eX-`z>s5=PSK5ZLb z-t`qIP?QTsA;%JyPerKVutSP2NHBom_GgiLJ;6Ua)4Dt~8GS4DCT#DqkORE)?ON=n ztplr*y7p?;d)MTo>2?f`oMkU-$WKC>+e_dGt(lV7-3Rel7dm{z&o=FZ>us6Vzb?Bv zBmgtxJ_szpt({WW$ zA}6%xEe3S=*m{4-C&T@iISCzU2$W66iv@TvQVKOhXCCGnz(^Os3zJl&|7nQK%+d-) zMSyJ29!>GYCq(SZS^i)MmQinfg5%*F$BK-%s7``VcO3S^_ybP^36i5IA8xfe0h*F~ z9p?Su?qc&{uR$sWHPOyijkz(l;{3D-X*KTCy8Jxq$_f4(a5z>JB?G+Qm618nmSW2W zGcBtwbJ4jP0jVLt!Pjw4M@6%9{QCIG;l=JQ;fST5?t@l+H0@IjMnr_Jptz>KTCv&3 z??IKWY*--b3;qG~Cf*-JlE0BjLY7hFn!~72+v=ThNg=IaOB`LP+G^Vmi4AL|zai-2oHI0-i4IVJ97s&SAdv3hlB z@kTc9boRTb=1+nmb&i1!e#8-s9jFJso1IjKqN5!_=Rh*a7P!&e<=TU@Z>G^5R&|)v z;Zr38Wp|1jY78AkLHPg6hB%KK?fKb9LWM)A&sC0)A4;9JsuTITLO~OB>L~h5z|b~r z!G{7>`=4dj6pO(E1+vs^dM{5#=9;W7NUBVPs0E}(hg(@)BYd5&)t>0kGR%KrLeH{4 zO?6v(YY9&Of5`-e+$*z{@H*;3EKv6U@MNMG6MFJ=(^3VG+=3Ncw^MOHbZnG=iNz!g zL#gY}Tei8_P|&>#GjBu>#GQ8ARMpMv`jzNgLyj``G3Lwxq#__WXLR(Q_F@SIheypjFhqOLu0DYY~}t42I7 zA_8-?;aC3Sul+w-oUK6`@e&V^ z!>WHY76>w54f+jsdh?}}I->qg+Z$YVNPPWn+pEH8~xv(;=6&52@e!I}{QFf{VK=w9&& z(DR)iO%>Qr&H;JeucwTAN?_^Y34Dih^!t!Q?*9$Bg*oH=4g(`qKi7vfI8&QxygdPR zAglei?-fxA_y8fR%^AMou@V_tvnKUHPmzgOZ9A{LGMy1_pHkx{o3`N6-42gQB-_mS z?j7)+BdZEEHVv>NC@2~jI2fBu<$=VGsu6K$BJ=V&PUh4vHI}!2umgaIg-U^#@N7+T zD=5m90l~=Owfu|qTcHu8pGZH($uUqs8qKS%ZK9ZcGc_MSF)0o*;GS&ko7hajLs)2C z>+;zQ@uKjUr0S^XXiGxX;qTvjzxPDx+xnd0v6dS>0<_Y{F}IfeivwRHudB4X%ZvYE z@nmQdR;T?FU@;ui#}QKQBal~O>ly@4ZVKr^Vae6#E1|-U*lL6)+FacmJ2n@6*Nden z9zSPib22as{WA4tKRn-r&&_v3Y5yLg#BN{9_|4oqKyg^ zuP8yYI2ysgPxr9El}6bbbddONaKf*sLp`1IJDF>7eKR!&8$tvn+usyP4h}Q>SLGdE zSKGWxA3`KBKrQDkxLiy4n*^WD zS>=I+I9z>cDDy|IfA(q0GEF>DKgX3iNME;O*3Df17hR3`@sTA8 zefMkAK2CQL_ZXcRZUpcuPW(S!;Phr=5jovQQxqY!Mi?WSKKr8dl~I2yDr6fUjm0Kb zL_aiSzwgViSAEWqbDlk}WV9`jXYXE)_OtQdLoc;m0#B>|5UZip?(ULF8K@IO%P^HL zN)~)mERak;((U@6tR{tgMj(6V5AT$GV-zsx@f+8gC@;d9aj6}`4*njG&!~vT2+vAFrv}f>Nq8Lec&2 z`;HqNmzTLXizJvx3NdRqewYMYTij3lGJh5Q(1axPCS6ZHJZNoTutC*m?zbw} zq)8vpSnHZc0Idp-jC94*`7!pN;!F=b&ZhJ2z8ly=9x-Q>guCd9yhL5YuGYeuMupeU mbzWVvQ$yQ05hy5?-iwA)K literal 27585 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 diff --git a/icons/hud/screen_retro.dmi b/icons/hud/screen_retro.dmi index 6bd82f31efe29f2e0deb302e2e00e8d7b83b93b4..d3574b8824f109ca6a371169b7b2b7355d446fc6 100644 GIT binary patch literal 12833 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 literal 12103 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 NqM#{XD`ye*e*n?ShTH%E diff --git a/icons/hud/screen_slimecore.dmi b/icons/hud/screen_slimecore.dmi index b73b52485156aa2c8f68b9dc220cefa8d9186eb1..96185ed3cf6d7e78478e3bc9df2e6c53de819740 100644 GIT binary patch delta 11222 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 DC@UBh delta 9259 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 literal 16692 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 diff --git a/interface/skin.dmf b/interface/skin.dmf index 653d2ed7f5d..31f94eb0662 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -1,4 +1,12 @@ macro "default" + elem ".winset :map.right-click=false" + name = "SHIFT+Shift" + elem "Shift" + name = "SHIFT" + command = ".winset :map.right-click=false" + elem "ShiftUp" + name = "SHIFT+UP" + command = ".winset :map.right-click=true" menu "menu" @@ -50,21 +58,25 @@ menu "menu" window "mainwindow" elem "mainwindow" type = MAIN - pos = 0,0 + pos = 281,0 size = 640x440 anchor1 = none anchor2 = none + background-color = none is-default = true saved-params = "pos;size;is-minimized;is-maximized" icon = 'icons\\tg_32.png' macro = "default" menu = "menu" + outer-size = 656x518 + inner-size = 640x459 elem "split" type = CHILD pos = 3,0 size = 634x417 anchor1 = 0,0 anchor2 = 100,100 + background-color = none saved-params = "splitter" left = "mapwindow" right = "infowindow" @@ -85,6 +97,7 @@ window "mainwindow" size = 40x20 anchor1 = 100,100 anchor2 = none + background-color = none saved-params = "is-checked" text = "Chat" command = ".winset \"saybutton.is-checked=true ? input.command=\"!say \\\"\" : input.command=\"\"saybutton.is-checked=true ? mebutton.is-checked=false\"\"saybutton.is-checked=true ? oocbutton.is-checked=false\"" @@ -95,6 +108,7 @@ window "mainwindow" size = 40x20 anchor1 = 100,100 anchor2 = none + background-color = none saved-params = "is-checked" text = "OOC" command = ".winset \"oocbutton.is-checked=true ? input.command=\"!ooc \\\"\" : input.command=\"\"oocbutton.is-checked=true ? mebutton.is-checked=false\"\"oocbutton.is-checked=true ? saybutton.is-checked=false\"" @@ -105,6 +119,7 @@ window "mainwindow" size = 40x20 anchor1 = 100,100 anchor2 = none + background-color = none saved-params = "is-checked" text = "Me" command = ".winset \"mebutton.is-checked=true ? input.command=\"!me \\\"\" : input.command=\"\"mebutton.is-checked=true ? saybutton.is-checked=false\"\"mebutton.is-checked=true ? oocbutton.is-checked=false\"" @@ -115,6 +130,7 @@ window "mainwindow" size = 200x200 anchor1 = none anchor2 = none + background-color = none is-visible = false saved-params = "" elem "tooltip" @@ -123,18 +139,22 @@ window "mainwindow" size = 999x999 anchor1 = none anchor2 = none + background-color = none is-visible = false saved-params = "" window "mapwindow" elem "mapwindow" type = MAIN - pos = 0,0 + pos = 281,0 size = 640x480 anchor1 = none anchor2 = none + background-color = none saved-params = "pos;size;is-minimized;is-maximized" is-pane = true + outer-size = 656x538 + inner-size = 640x499 elem "map" type = MAP pos = 0,0 @@ -143,26 +163,30 @@ window "mapwindow" anchor2 = 100,100 font-family = "Arial" font-size = 7 - text-color = none is-default = true + right-click = true saved-params = "zoom;letterbox;zoom-mode" style = ".center { text-align: center; } .maptext { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; } .command_headset { font-weight: bold;\tfont-size: 8px; } .small { font-size: 6px; } .big { font-size: 8px; } .reallybig { font-size: 8px; } .extremelybig { font-size: 8px; } .greentext { color: #00FF00; font-size: 7px; } .redtext { color: #FF0000; font-size: 7px; } .clown { color: #FF69Bf; font-size: 7px; font-weight: bold; } .his_grace { color: #15D512; } .hypnophrase { color: #0d0d0d; font-weight: bold; } .yell { font-weight: bold; } .italics { font-size: 6px; }" window "infowindow" elem "infowindow" type = MAIN - pos = 0,0 + pos = 281,0 size = 640x480 anchor1 = none anchor2 = none + background-color = none saved-params = "pos;size;is-minimized;is-maximized" is-pane = true + outer-size = 656x538 + inner-size = 640x499 elem "info" type = CHILD pos = 0,30 size = 640x445 anchor1 = 0,0 anchor2 = 100,100 + background-color = none saved-params = "splitter" left = "statwindow" right = "outputwindow" @@ -173,6 +197,7 @@ window "infowindow" size = 104x20 anchor1 = 3,0 anchor2 = 19,0 + background-color = none saved-params = "is-checked" text = "Changelog" command = "changelog" @@ -182,6 +207,7 @@ window "infowindow" size = 100x20 anchor1 = 19,0 anchor2 = 34,0 + background-color = none saved-params = "is-checked" text = "Rules" command = "rules" @@ -191,6 +217,7 @@ window "infowindow" size = 100x20 anchor1 = 34,0 anchor2 = 50,0 + background-color = none saved-params = "is-checked" text = "Wiki" command = "wiki" @@ -200,6 +227,7 @@ window "infowindow" size = 100x20 anchor1 = 50,0 anchor2 = 66,0 + background-color = none saved-params = "is-checked" text = "Forum" command = "forum" @@ -209,6 +237,7 @@ window "infowindow" size = 100x20 anchor1 = 66,0 anchor2 = 81,0 + background-color = none saved-params = "is-checked" text = "Github" command = "github" @@ -218,6 +247,7 @@ window "infowindow" size = 100x20 anchor1 = 81,0 anchor2 = 97,0 + background-color = none saved-params = "is-checked" text = "Report Issue" command = "report-issue" @@ -225,12 +255,15 @@ window "infowindow" window "outputwindow" elem "outputwindow" type = MAIN - pos = 0,0 + pos = 281,0 size = 640x480 anchor1 = none anchor2 = none + background-color = none saved-params = "pos;size;is-minimized;is-maximized" is-pane = true + outer-size = 656x538 + inner-size = 640x499 elem "browseroutput" type = BROWSER pos = 0,0 @@ -257,10 +290,13 @@ window "popupwindow" size = 120x120 anchor1 = none anchor2 = none + background-color = none is-visible = false saved-params = "pos;size;is-minimized;is-maximized" statusbar = false can-resize = false + outer-size = 136x159 + inner-size = 120x120 window "preferences_window" elem "preferences_window" @@ -291,18 +327,22 @@ window "preferences_window" window "statwindow" elem "statwindow" type = MAIN - pos = 372,0 + pos = 281,0 size = 640x480 anchor1 = none anchor2 = none + background-color = none saved-params = "pos;size;is-minimized;is-maximized" is-pane = true + outer-size = 656x538 + inner-size = 640x499 elem "statbrowser" type = BROWSER pos = 0,0 size = 640x480 anchor1 = 0,0 anchor2 = 100,100 + background-color = none is-visible = false saved-params = "" diff --git a/sound/misc/ui_togglecombat.ogg b/sound/misc/ui_togglecombat.ogg new file mode 100644 index 0000000000000000000000000000000000000000..7336b9cf0e13c24c841a65a297ada9706f533336 GIT binary patch literal 6537 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 literal 0 HcmV?d00001 diff --git a/sound/misc/ui_toggleoffcombat.ogg b/sound/misc/ui_toggleoffcombat.ogg new file mode 100644 index 0000000000000000000000000000000000000000..98df1726e987aeac5c8bf926842af8bd0109cf4f GIT binary patch literal 6934 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