diff --git a/ModularTegustation/agent_skills/defensive/hunker_down.dm b/ModularTegustation/agent_skills/defensive/hunker_down.dm new file mode 100644 index 000000000000..681e197544f1 --- /dev/null +++ b/ModularTegustation/agent_skills/defensive/hunker_down.dm @@ -0,0 +1,31 @@ +/datum/action/cooldown/hunkerdown_agent + name = "Hunker Down" + desc = "Decrease movespeed and increase defenses for 10 seconds. Costs 10 SP" + icon_icon = 'icons/hud/screen_skills.dmi' + button_icon_state = "hunkerdown" + cooldown_time = 30 SECONDS + + +/datum/action/cooldown/hunkerdown_agent/Trigger() + . = ..() + if(!.) + return FALSE + if (ishuman(owner)) + var/mob/living/carbon/human/human = owner + human.adjustSanityLoss(10) + human.add_movespeed_modifier(/datum/movespeed_modifier/hunkerdown) + addtimer(CALLBACK(human, TYPE_PROC_REF(/mob, remove_movespeed_modifier), /datum/movespeed_modifier/hunkerdown), 10 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + human.physiology.red_mod *= 0.6 + human.physiology.white_mod *= 0.6 + human.physiology.black_mod *= 0.6 + human.physiology.pale_mod *= 0.6 + addtimer(CALLBACK(src, PROC_REF(Recall),), 10 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + StartCooldown() + +/datum/action/cooldown/hunkerdown_agent/proc/Recall() + var/mob/living/carbon/human/human = owner + human.physiology.red_mod /= 0.6 + human.physiology.white_mod /= 0.6 + human.physiology.black_mod /= 0.6 + human.physiology.pale_mod /= 0.6 + diff --git a/ModularTegustation/agent_skills/defensive/parry.dm b/ModularTegustation/agent_skills/defensive/parry.dm new file mode 100644 index 000000000000..91d6b6914765 --- /dev/null +++ b/ModularTegustation/agent_skills/defensive/parry.dm @@ -0,0 +1,31 @@ +/datum/action/cooldown/parry + name = "Parry" + desc = "Parry 90% of damage for 1 second. Immobilize for 3 seconds. Costs 10 SP" + icon_icon = 'icons/hud/screen_skills.dmi' + button_icon_state = "parry" + cooldown_time = 30 SECONDS + + +/datum/action/cooldown/parry/Trigger() + . = ..() + if(!.) + return FALSE + if (ishuman(owner)) + var/mob/living/carbon/human/human = owner + human.adjustSanityLoss(10) + human.physiology.red_mod *= 0.1 + human.physiology.white_mod *= 0.1 + human.physiology.black_mod *= 0.1 + human.physiology.pale_mod *= 0.1 + addtimer(CALLBACK(src, PROC_REF(Recall),), 1 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + + human.Immobilize(3 SECONDS) + new /obj/effect/temp_visual/weapon_stun(get_turf(owner)) + StartCooldown() + +/datum/action/cooldown/parry/proc/Recall() + var/mob/living/carbon/human/human = owner + human.physiology.red_mod /= 0.1 + human.physiology.white_mod /= 0.1 + human.physiology.black_mod /= 0.1 + human.physiology.pale_mod /= 0.1 diff --git a/ModularTegustation/agent_skills/healing/healing.dm b/ModularTegustation/agent_skills/healing/healing.dm new file mode 100644 index 000000000000..a0131c8514c8 --- /dev/null +++ b/ModularTegustation/agent_skills/healing/healing.dm @@ -0,0 +1,27 @@ +//Curing +/datum/action/cooldown/agent_healing + name = "Healing" + desc = "Heal all humans in a 5 tile radius (except the user) by 15 HP. Costs 10SP" + icon_icon = 'icons/hud/screen_skills.dmi' + button_icon_state = "healing" + cooldown_time = 30 SECONDS + var/healamount = 15 + +/datum/action/cooldown/agent_healing/Trigger() + . = ..() + if(!.) + return FALSE + + if(owner.stat == DEAD) + return FALSE + + for(var/mob/living/carbon/human/H in view(5, get_turf(src))) + if(H.stat >= HARD_CRIT) + continue + if(H == owner) + H.adjustSanityLoss(10) + continue + H.adjustBruteLoss(-healamount) + new /obj/effect/temp_visual/heal(get_turf(H), "#FF4444") + StartCooldown() + diff --git a/ModularTegustation/agent_skills/healing/soothing.dm b/ModularTegustation/agent_skills/healing/soothing.dm new file mode 100644 index 000000000000..c37f7ac8fd56 --- /dev/null +++ b/ModularTegustation/agent_skills/healing/soothing.dm @@ -0,0 +1,27 @@ +//Curing +/datum/action/cooldown/agent_soothing + name = "Soothing" + desc = "Heal all humans in a 5 tile radius (except the user) by 15 SP. Costs 10SP" + icon_icon = 'icons/hud/screen_skills.dmi' + button_icon_state = "soothing" + cooldown_time = 30 SECONDS + var/healamount = 15 + +/datum/action/cooldown/agent_soothing/Trigger() + . = ..() + if(!.) + return FALSE + + if(owner.stat == DEAD) + return FALSE + + for(var/mob/living/carbon/human/H in view(5, get_turf(src))) + if(H.stat >= HARD_CRIT) + continue + if(H == owner) + H.adjustSanityLoss(10) + continue + H.adjustSanityLoss(-healamount) //Healing for those around. + new /obj/effect/temp_visual/heal(get_turf(H), "#6E6EFF") + StartCooldown() + diff --git a/ModularTegustation/agent_skills/ranged/autoloader.dm b/ModularTegustation/agent_skills/ranged/autoloader.dm new file mode 100644 index 000000000000..eebc8730f038 --- /dev/null +++ b/ModularTegustation/agent_skills/ranged/autoloader.dm @@ -0,0 +1,20 @@ +/datum/action/cooldown/autoloader + name = "Autoloader" + desc = "Reload all guns on the user. Costs 10 SP" + icon_icon = 'icons/hud/screen_skills.dmi' + button_icon_state = "autoload" + cooldown_time = 30 SECONDS + + +/datum/action/cooldown/autoloader/Trigger() + . = ..() + if (owner.stat == DEAD) + return FALSE + + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.adjustSanityLoss(10) + playsound(H, 'sound/weapons/gun/general/bolt_rack.ogg', 50, TRUE) + for(var/obj/item/ego_weapon/ranged/Gun in H.contents) + Gun.shotsleft = initial(Gun.shotsleft) + StartCooldown() diff --git a/ModularTegustation/agent_skills/ranged/grenade.dm b/ModularTegustation/agent_skills/ranged/grenade.dm new file mode 100644 index 000000000000..e905f202b184 --- /dev/null +++ b/ModularTegustation/agent_skills/ranged/grenade.dm @@ -0,0 +1,32 @@ + +/datum/action/cooldown/grenade + name = "Grenade Spawn" + desc = "Create a grenade that blows up after 15 seconds. Costs 10SP" + icon_icon = 'icons/hud/screen_skills.dmi' + button_icon_state = "smokedash" + cooldown_time = 20 SECONDS + +/datum/action/cooldown/grenade/Trigger() + . = ..() + if(!.) + return FALSE + + if (owner.stat == DEAD) + return FALSE + + if(!ishuman(owner)) + return FALSE + + var/mob/living/carbon/human/user = owner + user.adjustSanityLoss(10) + + var/obj/item/grenade/r_corp/lcorp/F = new(get_turf(user)) + F.explosion_damage_type = pick(RED_DAMAGE, BLACK_DAMAGE, WHITE_DAMAGE) + F.explosion_damage = get_attribute_level(user, JUSTICE_ATTRIBUTE)*2 + user.equip_in_one_of_slots(F, ITEM_SLOT_HANDS , qdel_on_fail = TRUE) + StartCooldown() + +//This is only used by the grenade launcher ability +/obj/item/grenade/r_corp/lcorp + name = "l-corp grenade" + desc = "An anti-abnormality grenade. It deals 90% less damage to humans." diff --git a/ModularTegustation/agent_skills/ranged/grenade_launcher.dm b/ModularTegustation/agent_skills/ranged/grenade_launcher.dm new file mode 100644 index 000000000000..7546be40a1c3 --- /dev/null +++ b/ModularTegustation/agent_skills/ranged/grenade_launcher.dm @@ -0,0 +1,31 @@ +/obj/effect/proc_holder/ability/aimed/grenade_launcher + name = "Grenade Launcher" + desc = "Use a gun in hand to fire a grenade. Damage type and amount is based off the gun's damage and type. Costs 10 SP" + action_icon_state = "cross_spawn0" + base_icon_state = "cross_spawn" + cooldown_time = 20 SECONDS + +/obj/effect/proc_holder/ability/aimed/grenade_launcher/Perform(target, mob/user) + if(ishuman(user)) + var/mob/living/carbon/human/shooter = user + H.adjustSanityLoss(10) + + var/list/gunsinhand = list() + for(var/obj/item/ego_weapon/ranged/Gun in shooter.held_items) + gunsinhand+=Gun + if(!length(gunsinhand)) + return ..() + + var/obj/item/ego_weapon/ranged/chosengun = pick(gunsinhand) + var/grenadedamage = chosengun.last_projectile_type + + var/obj/item/grenade/r_corp/F = new /obj/item/grenade/r_corp/lcorp + F.explosion_damage_type = grenadedamage + F.explosion_damage = chosengun.last_projectile_damage*3 + F.forceMove(user.loc) + F.throw_at(target, 30, 2, user) + +//This is only used by the grenade launcher ability +/obj/item/grenade/r_corp/lcorp + name = "l-corp grenade" + desc = "An anti-abnormality grenade. It deals 90% less damage to humans." diff --git a/ModularTegustation/agent_skills/ranged/smokedash.dm b/ModularTegustation/agent_skills/ranged/smokedash.dm new file mode 100644 index 000000000000..649dea0fb800 --- /dev/null +++ b/ModularTegustation/agent_skills/ranged/smokedash.dm @@ -0,0 +1,28 @@ +//Smokedash +/datum/action/cooldown/agent_smokedash + name = "Smoke bomb" + desc = "Drop a smoke bomb at your feet, and increase speed for 2 seconds. Costs 10SP" + icon_icon = 'icons/hud/screen_skills.dmi' + button_icon_state = "smokedash" + cooldown_time = 30 SECONDS + +/datum/action/cooldown/agent_smokedash/Trigger() + . = ..() + if(!.) + return FALSE + + if (owner.stat == DEAD) + return FALSE + + //increase speed + var/mob/living/carbon/human/human = owner + human.adjustSanityLoss(10) + human.add_movespeed_modifier(/datum/movespeed_modifier/assault) + addtimer(CALLBACK(human, TYPE_PROC_REF(/mob, remove_movespeed_modifier), /datum/movespeed_modifier/assault), 2 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + + //drop a bit of smoke + var/datum/effect_system/smoke_spread/S = new + S.set_up(4, get_turf(human)) //Make the smoke bigger + S.start() + qdel(S) + StartCooldown() diff --git a/ModularTegustation/agent_skills/skill_chooser.dm b/ModularTegustation/agent_skills/skill_chooser.dm new file mode 100644 index 000000000000..ff4850a0dbf3 --- /dev/null +++ b/ModularTegustation/agent_skills/skill_chooser.dm @@ -0,0 +1,92 @@ +/obj/item/class_chooser + name = "L-Corp agent class chooser accelerator" + desc = "A device used to choose your agent class." + icon = 'icons/obj/device.dmi' + icon_state = "nanite_comm_remote" + +/obj/item/class_chooser/Initialize() + . = ..() + QDEL_IN(src, 60 SECONDS) //You MUST pick within 60 seconds + +/obj/item/class_chooser/attack_self(mob/living/carbon/human/user) + //Let you pick your agent class + var/list/can_class = list( + //Only Agents specifically and Dept Captains get this. + //Might be good for Interns to not have this option + //Captains belong to the "Command" Class + "Agent", + "Department Captain", + ) + + if(!(user?.mind?.assigned_role in can_class)) + return ..() + + + var/list/classes = list( //Classes that aren't standard or Random + "Defensive", + "Healing", + "Ranged", + "Skirmisher", + ) + + var/list/available_classes = list( + "Standard", + //"Random", Currently bugged + ) + + for(var/i in 1 to 3) //You should only get to pick 1-3 of these. + available_classes += pick_n_take(classes) + + qdel(src)//Delete it here so you can't re-roll your class. + + var/choice = input(user, "Which Agent class will you choose?", "Select a class") as null|anything in available_classes + if(!choice || !user.canUseTopic(get_turf(user), BE_CLOSE, FALSE, NO_TK)) + to_chat(user, span_notice("You decide to choose the 'Standard' class.")) + return + + classes-= "Random" + if(choice == "Random") + choice = pick(classes) + + switch(choice) + if("Defensive") + to_chat(user, span_greenannounce("You have chosen the Defensive Agent class. In exchange for -10 Work rate and speed, you get 2 Defensive skills.")) + user.adjust_attribute_bonus(TEMPERANCE_ATTRIBUTE, -10) + + var/datum/action/G = new /datum/action/cooldown/hunkerdown_agent + G.Grant(user) + G = new /datum/action/cooldown/parry + G.Grant(user) + + if("Healing") + to_chat(user, span_greenannounce("You have chosen the Healing Agent class. In exchange for -10 melee damage and movement speed, you get 2 Healing skills.")) + user.adjust_attribute_bonus(JUSTICE_ATTRIBUTE, -10) + + var/datum/action/G = new /datum/action/cooldown/agent_healing + G.Grant(user) + G = new /datum/action/cooldown/agent_soothing + G.Grant(user) + + if("Ranged") + to_chat(user, span_greenannounce("You have chosen the Ranged Agent class. In exchange for 20% slower melee, you get a movement skill, a gun skill, and all guns scale justice 50%.")) + ADD_TRAIT(user, TRAIT_WEAK_MELEE, JOB_TRAIT) + ADD_TRAIT(user, TRAIT_BETTER_GUNS, JOB_TRAIT) + + var/datum/action/G = new /datum/action/cooldown/agent_smokedash + G.Grant(user) + G = new /datum/action/cooldown/autoloader + G.Grant(user) + + if("Skirmisher") + to_chat(user, span_greenannounce("You have chosen the Skirmisher Agent class. In exchange for 15 lower HP and SP, you get 3 skills to increase movement speed.")) + user.adjust_attribute_bonus(FORTITUDE_ATTRIBUTE, -15) + user.adjust_attribute_bonus(PRUDENCE_ATTRIBUTE, -15) + + var/datum/action/G = new /datum/action/cooldown/dash/agent + G.Grant(user) + G = new /datum/action/cooldown/blitz + G.Grant(user) + G = new /datum/action/cooldown/assault_agent + G.Grant(user) + + return ..() diff --git a/ModularTegustation/agent_skills/skirmisher/assault.dm b/ModularTegustation/agent_skills/skirmisher/assault.dm new file mode 100644 index 000000000000..b6d92d82dc1e --- /dev/null +++ b/ModularTegustation/agent_skills/skirmisher/assault.dm @@ -0,0 +1,23 @@ +//Assault +/datum/action/cooldown/assault_agent + cooldown_time = 20 SECONDS + name = "Assault" + desc = "Increase movespeed for 5 seconds. Costs 10SP" + icon_icon = 'icons/hud/screen_skills.dmi' + button_icon_state = "assault" + + +/datum/action/cooldown/assault_agent/Trigger() + . = ..() + if(!.) + return FALSE + if (ishuman(owner)) + var/mob/living/carbon/human/human = owner + human.adjustSanityLoss(10) + human.add_movespeed_modifier(/datum/movespeed_modifier/assault_agent) + addtimer(CALLBACK(human, TYPE_PROC_REF(/mob, remove_movespeed_modifier), /datum/movespeed_modifier/assault_agent), 5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + StartCooldown() + +/datum/movespeed_modifier/assault_agent + variable = TRUE + multiplicative_slowdown = -0.2 diff --git a/ModularTegustation/agent_skills/skirmisher/blitz.dm b/ModularTegustation/agent_skills/skirmisher/blitz.dm new file mode 100644 index 000000000000..6cf7d2e22de5 --- /dev/null +++ b/ModularTegustation/agent_skills/skirmisher/blitz.dm @@ -0,0 +1,36 @@ + +//Retreat + +/datum/action/cooldown/blitz + name = "Blitz" + desc = "Increase movespeed greatly and decrease defenses for 5 seconds. Costs 10SP" + icon_icon = 'icons/hud/screen_skills.dmi' + button_icon_state = "retreat" + cooldown_time = 20 SECONDS + +/datum/action/cooldown/blitz/Trigger() + . = ..() + if(!.) + return FALSE + if (ishuman(owner)) + var/mob/living/carbon/human/human = owner + human.adjustSanityLoss(10) + human.add_movespeed_modifier(/datum/movespeed_modifier/blitz) + addtimer(CALLBACK(human, TYPE_PROC_REF(/mob, remove_movespeed_modifier), /datum/movespeed_modifier/blitz), 5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + human.physiology.red_mod *= 1.3 + human.physiology.white_mod *= 1.3 + human.physiology.black_mod *= 1.3 + human.physiology.pale_mod *= 1.3 + addtimer(CALLBACK(src, PROC_REF(Recall),), 5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + StartCooldown() + +/datum/action/cooldown/blitz/proc/Recall() + var/mob/living/carbon/human/human = owner + human.physiology.red_mod /= 1.3 + human.physiology.white_mod /= 1.3 + human.physiology.black_mod /= 1.3 + human.physiology.pale_mod /= 1.3 + +/datum/movespeed_modifier/blitz + variable = TRUE + multiplicative_slowdown = -0.5 \ No newline at end of file diff --git a/ModularTegustation/agent_skills/skirmisher/dash.dm b/ModularTegustation/agent_skills/skirmisher/dash.dm new file mode 100644 index 000000000000..01bee726ddc0 --- /dev/null +++ b/ModularTegustation/agent_skills/skirmisher/dash.dm @@ -0,0 +1,3 @@ +//Just needs a longer cooldown +/datum/action/cooldown/dash/agent + cooldown_time = 15 SECONDS diff --git a/ModularTegustation/ego_weapons/_ego_weapon.dm b/ModularTegustation/ego_weapons/_ego_weapon.dm index b0c12da5d40e..f5ff87aae7e0 100644 --- a/ModularTegustation/ego_weapons/_ego_weapon.dm +++ b/ModularTegustation/ego_weapons/_ego_weapon.dm @@ -67,6 +67,13 @@ if(!CanUseEgo(user)) return FALSE . = ..() + if(HAS_TRAIT(user, TRAIT_WEAK_MELEE)) + if(!attack_speed) + user.changeNext_move(CLICK_CD_MELEE * 1.2) + else + user.changeNext_move(CLICK_CD_MELEE * attack_speed*1.2) + return TRUE + if(attack_speed) user.changeNext_move(CLICK_CD_MELEE * attack_speed) return TRUE diff --git a/ModularTegustation/ego_weapons/ranged/_ranged_projectile.dm b/ModularTegustation/ego_weapons/ranged/_ranged_projectile.dm index f58e1a8e060e..68085c67a516 100644 --- a/ModularTegustation/ego_weapons/ranged/_ranged_projectile.dm +++ b/ModularTegustation/ego_weapons/ranged/_ranged_projectile.dm @@ -21,6 +21,10 @@ projectile.suppressed = quiet projectile.damage *= projectile_damage_multiplier + + if(HAS_TRAIT(user, TRAIT_BETTER_GUNS)) + projectile.damage += projectile.damage*get_attribute_level(user, JUSTICE_ATTRIBUTE)/130*0.50 + if(temporary_damage_multiplier) projectile.damage *= temporary_damage_multiplier diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 5279ccf5821d..9538accb260e 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -179,6 +179,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_WORK_KNOWLEDGE "work_knowledge" #define TRAIT_WORK_FORBIDDEN "work_forbidden" #define TRAIT_ATTRIBUTES_VISION "attributes_vision" +#define TRAIT_WEAK_MELEE "weak_melee" +#define TRAIT_BETTER_GUNS "better_guns" /// reduces the use time of syringes, pills, patches and medigels but only when using on someone #define TRAIT_FASTMED "fast_med_use" #define TRAIT_NOBREATH "no_breath" diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index a16304e6109f..6ef6ab9df7d0 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -72,6 +72,8 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_WORK_KNOWLEDGE" = TRAIT_WORK_KNOWLEDGE, "TRAIT_WORK_FORBIDDEN" = TRAIT_WORK_FORBIDDEN, "TRAIT_ATTRIBUTES_VISION" = TRAIT_ATTRIBUTES_VISION, + "TRAIT_WEAK_MELEE" = TRAIT_WEAK_MELEE, + "TRAIT_BETTER_GUNS" = TRAIT_BETTER_GUNS, "TRAIT_NOBREATH" = TRAIT_NOBREATH, "TRAIT_ANTIMAGIC" = TRAIT_ANTIMAGIC, "TRAIT_HOLY" = TRAIT_HOLY, diff --git a/code/game/objects/items/fixerskills/level1/movement.dm b/code/game/objects/items/fixerskills/level1/movement.dm index 6fa1a9fdb141..41b7111a73be 100644 --- a/code/game/objects/items/fixerskills/level1/movement.dm +++ b/code/game/objects/items/fixerskills/level1/movement.dm @@ -14,6 +14,8 @@ custom_premium_price = 600 /datum/action/cooldown/dash + name = "Dash" + desc = "Dash fowards a few tiles. Costs stamina." icon_icon = 'icons/hud/screen_skills.dmi' button_icon_state = "dash" name = "Dash" diff --git a/code/modules/jobs/job_types/agent.dm b/code/modules/jobs/job_types/agent.dm index 9fff451173c5..b4e8924edef6 100644 --- a/code/modules/jobs/job_types/agent.dm +++ b/code/modules/jobs/job_types/agent.dm @@ -121,7 +121,6 @@ return ..() - /datum/outfit/job/agent name = "Agent" jobtype = /datum/job/agent @@ -134,6 +133,7 @@ shoes = /obj/item/clothing/shoes/laceup gloves = /obj/item/clothing/gloves/color/black implants = list(/obj/item/organ/cyberimp/eyes/hud/security) + l_hand = /obj/item/class_chooser backpack_contents = list( /obj/item/melee/classic_baton, @@ -164,6 +164,7 @@ name = "Agent Intern" jobtype = /datum/job/agent/intern head = null + l_hand = null backpack_contents = list( /obj/item/melee/classic_baton, diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index a0b2cf991a54..b6fc9cf69ddd 100644 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -31,6 +31,7 @@ head = /obj/item/clothing/head/hos/beret ears = /obj/item/radio/headset/heads/agent_captain/alt l_pocket = /obj/item/commandprojector + l_hand = null backpack_contents = list( /obj/item/melee/classic_baton, diff --git a/icons/hud/screen_skills.dmi b/icons/hud/screen_skills.dmi index 35b3e03251f0..d139a25f7147 100644 Binary files a/icons/hud/screen_skills.dmi and b/icons/hud/screen_skills.dmi differ diff --git a/lobotomy-corp13.dme b/lobotomy-corp13.dme index 16ba50f799ce..a2cfa1606176 100644 --- a/lobotomy-corp13.dme +++ b/lobotomy-corp13.dme @@ -3944,6 +3944,16 @@ #include "ModularTegustation\tegushuttles.dm" #include "ModularTegustation\trusted.dm" #include "ModularTegustation\turfs.dm" +#include "ModularTegustation\agent_skills\skill_chooser.dm" +#include "ModularTegustation\agent_skills\defensive\hunker_down.dm" +#include "ModularTegustation\agent_skills\defensive\parry.dm" +#include "ModularTegustation\agent_skills\healing\healing.dm" +#include "ModularTegustation\agent_skills\healing\soothing.dm" +#include "ModularTegustation\agent_skills\ranged\autoloader.dm" +#include "ModularTegustation\agent_skills\ranged\smokedash.dm" +#include "ModularTegustation\agent_skills\skirmisher\assault.dm" +#include "ModularTegustation\agent_skills\skirmisher\blitz.dm" +#include "ModularTegustation\agent_skills\skirmisher\dash.dm" #include "ModularTegustation\altjobtitles\altjobtitles.dm" #include "ModularTegustation\altjobtitles\LC13.dm" #include "ModularTegustation\altjobtitles\outfits.dm"