From 8d8113cd9e20d8fcff6dbbb2ec6558d0bda0b2ef Mon Sep 17 00:00:00 2001
From: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date: Wed, 26 Feb 2025 00:19:25 -0800
Subject: [PATCH] Removes the skyrat crusher overrides for the sake of code
stability and because nobody's maintaining it
---
code/datums/components/style/style.dm | 10 -
code/datums/status_effects/debuffs/debuffs.dm | 5 -
.../kinetic_crusher/kinetic_crusher.dm | 5 +-
.../kinetic_crusher_trophies.dm | 3 -
.../hostile/megafauna/_megafauna.dm | 6 -
.../code/datums/actions/items/toggles.dm | 2 -
.../code/datums/components/crusher.dm | 224 ---------------
.../datums/status_effects/debuffs/debuffs.dm | 36 ---
.../orders/order_items/mining/order_mining.dm | 3 -
.../mining/equipment/kinetic_crusher.dm | 232 ---------------
.../mining/equipment/kinetic_gauntlets.dm | 265 ------------------
.../living/basic/lavaland/watcher/watcher.dm | 3 -
.../code/modules/movespeed/modifiers/items.dm | 2 -
tgstation.dme | 8 -
14 files changed, 1 insertion(+), 803 deletions(-)
delete mode 100644 modular_skyrat/master_files/code/datums/actions/items/toggles.dm
delete mode 100644 modular_skyrat/master_files/code/datums/components/crusher.dm
delete mode 100644 modular_skyrat/master_files/code/datums/status_effects/debuffs/debuffs.dm
delete mode 100644 modular_skyrat/master_files/code/game/machinery/computer/orders/order_items/mining/order_mining.dm
delete mode 100644 modular_skyrat/master_files/code/modules/mining/equipment/kinetic_crusher.dm
delete mode 100644 modular_skyrat/master_files/code/modules/mining/equipment/kinetic_gauntlets.dm
delete mode 100644 modular_skyrat/master_files/code/modules/mob/living/basic/lavaland/watcher/watcher.dm
delete mode 100644 modular_skyrat/master_files/code/modules/movespeed/modifiers/items.dm
diff --git a/code/datums/components/style/style.dm b/code/datums/components/style/style.dm
index 2d60d27ebb8..364db24212f 100644
--- a/code/datums/components/style/style.dm
+++ b/code/datums/components/style/style.dm
@@ -391,23 +391,13 @@
add_action(ACTION_GIBTONITE_DEFUSED, min(40, 20 * (10 - det_time))) // 40 to 180 points depending on speed
-//SKYRAT EDIT START
-/*
/datum/component/style/proc/on_crusher_detonate(datum/source, mob/living/target, obj/item/kinetic_crusher/crusher, backstabbed)
-*/
-/datum/component/style/proc/on_crusher_detonate(datum/component/kinetic_crusher/source, mob/living/target, obj/item/kinetic_crusher/crusher, backstabbed)
-//SKYRAT EDIT END
SIGNAL_HANDLER
if(target.stat == DEAD)
return
- //SKYRAT EDIT START
- /*
var/has_brimdemon_trophy = locate(/obj/item/crusher_trophy/brimdemon_fang) in crusher.trophies
- */
- var/has_brimdemon_trophy = locate(/obj/item/crusher_trophy/brimdemon_fang) in source.stored_trophies
- //SKYRAT EDIT END
add_action(ACTION_MARK_DETONATED, round((backstabbed ? 60 : 30) * (ismegafauna(target) ? 1.5 : 1) * (has_brimdemon_trophy ? 1.25 : 1)))
diff --git a/code/datums/status_effects/debuffs/debuffs.dm b/code/datums/status_effects/debuffs/debuffs.dm
index dcd565376f4..de9e1bfa5ea 100644
--- a/code/datums/status_effects/debuffs/debuffs.dm
+++ b/code/datums/status_effects/debuffs/debuffs.dm
@@ -347,8 +347,6 @@
if(owner.reagents)
owner.reagents.del_reagent(/datum/reagent/water/holywater) //can't be deconverted
-//SKYRAT EDIT START - OVERRIDEN IN MODULAR
-/*
/datum/status_effect/crusher_mark
id = "crusher_mark"
duration = 300 //if you leave for 30 seconds you lose the mark, deal with it
@@ -390,9 +388,6 @@
QDEL_NULL(marked_underlay)
return ..()
-*/
-//SKYRAT EDIT END
-
// Object used to apply a underlay to the mob that gets this status applied
/obj/effect/abstract/crusher_mark
name = "Crusher mark underlay"
diff --git a/code/modules/mining/equipment/kinetic_crusher/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher/kinetic_crusher.dm
index c50e39af38d..7f9fa57e145 100644
--- a/code/modules/mining/equipment/kinetic_crusher/kinetic_crusher.dm
+++ b/code/modules/mining/equipment/kinetic_crusher/kinetic_crusher.dm
@@ -1,4 +1,3 @@
-/* SKYRAT EDIT START - OVERRIDEN IN modular_skyrat/master_files/code/modules/mining/equipment/kinetic_crusher.dm
/**
* Kinetic Crusher
*
@@ -269,7 +268,6 @@
/obj/item/kinetic_crusher/compact //for admins
name = "compact kinetic crusher"
w_class = WEIGHT_CLASS_NORMAL
-*/ // SKYRAT EDIT END
//destablizing force
/obj/projectile/destabilizer
@@ -327,7 +325,6 @@
// If there is a mind, check for skill modifier to allow them to reload faster.
if(carbon_firer.mind && used_crusher)
skill_modifier = carbon_firer.mind.get_skill_modifier(/datum/skill/mining, SKILL_SPEED_MODIFIER)
- // BUBBER TODO - Fix this
- //used_crusher.attempt_recharge_projectile(used_crusher.charge_time * skill_modifier) //If you hit a mineral, you might get a quicker reload. epic gamer style.
+ used_crusher.attempt_recharge_projectile(used_crusher.charge_time * skill_modifier) //If you hit a mineral, you might get a quicker reload. epic gamer style.
return ..()
diff --git a/code/modules/mining/equipment/kinetic_crusher/kinetic_crusher_trophies.dm b/code/modules/mining/equipment/kinetic_crusher/kinetic_crusher_trophies.dm
index 8840d661ab1..be8530a678d 100644
--- a/code/modules/mining/equipment/kinetic_crusher/kinetic_crusher_trophies.dm
+++ b/code/modules/mining/equipment/kinetic_crusher/kinetic_crusher_trophies.dm
@@ -28,8 +28,6 @@
return ..()
add_to(attacking_item, user)
-// SKYRAT EDIT BEGIN - Moved to modular // BUBBER TODO - Fix the override hell
-/*
/// Tries to add the trophy to our crusher
/obj/item/crusher_trophy/proc/add_to(obj/item/kinetic_crusher/crusher, mob/living/user)
for(var/obj/item/crusher_trophy/trophy as anything in crusher.trophies)
@@ -46,7 +44,6 @@
/obj/item/crusher_trophy/proc/remove_from(obj/item/kinetic_crusher/crusher, mob/living/user)
forceMove(get_turf(crusher))
return TRUE
-*/ // SKYRAT EDIT END
/// Does an effect when you hit a mob with a crusher
/obj/item/crusher_trophy/proc/on_melee_hit(mob/living/target, mob/living/user) //the target and the user
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 57de6d87885..232d7e50836 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm
@@ -221,13 +221,7 @@
L.add_mob_memory(/datum/memory/megafauna_slayer, antagonist = src)
L.client.give_award(/datum/award/achievement/boss/boss_killer, L)
L.client.give_award(achievement_type, L)
- //SKYRAT EDIT START
- /*
if(crusher_kill && istype(L.get_active_held_item(), /obj/item/kinetic_crusher))
- */
- var/obj/item/held_item = L.get_active_held_item()
- if(crusher_kill && (istype(held_item, /obj/item/kinetic_gauntlet) || held_item.GetComponent(/datum/component/kinetic_crusher))) //trust me, i hate this just as much as you
- //SKYRAT EDIT END
L.client.give_award(crusher_achievement_type, L)
L.client.give_award(/datum/award/score/boss_score, L) //Score progression for bosses killed in general
L.client.give_award(score_achievement_type, L) //Score progression for specific boss killed
diff --git a/modular_skyrat/master_files/code/datums/actions/items/toggles.dm b/modular_skyrat/master_files/code/datums/actions/items/toggles.dm
deleted file mode 100644
index b4abac4a260..00000000000
--- a/modular_skyrat/master_files/code/datums/actions/items/toggles.dm
+++ /dev/null
@@ -1,2 +0,0 @@
-/datum/action/item_action/extend_gauntlets
- name = "Extend Gauntlets"
diff --git a/modular_skyrat/master_files/code/datums/components/crusher.dm b/modular_skyrat/master_files/code/datums/components/crusher.dm
deleted file mode 100644
index 4a23f95a6ea..00000000000
--- a/modular_skyrat/master_files/code/datums/components/crusher.dm
+++ /dev/null
@@ -1,224 +0,0 @@
-/datum/component/kinetic_crusher
- /// The attached trophies.
- var/list/stored_trophies = list()
- /// How much damage to deal on mark detonation?
- var/detonation_damage
- /// How much EXTRA damage to deal on a backstab?
- var/backstab_bonus
- /// Does what you think it does.
- var/recharge_speed
- /// Callback to check against for most actions.
- var/datum/callback/attack_check
- /// Callback to check against for mark detonation.
- var/datum/callback/detonate_check
- /// Callback to execute after a successful mark detonation.
- var/datum/callback/after_detonate
-
- /// Are we ready to shoot another destabilizer shot?
- var/charged = TRUE
- /// COMSIG_ITEM_ATTACK procs before the damage is applied. Egh.
- var/cached_health = null
-
-/datum/component/kinetic_crusher/Initialize(detonation_damage, backstab_bonus, recharge_speed, datum/callback/attack_check, datum/callback/detonate_check, datum/callback/after_detonate)
- if(!isitem(parent))
- return COMPONENT_INCOMPATIBLE
-
- src.detonation_damage = detonation_damage
- src.backstab_bonus = backstab_bonus
- src.recharge_speed = recharge_speed
-
- src.attack_check = attack_check
- src.detonate_check = detonate_check
- src.after_detonate = after_detonate
-
-/datum/component/kinetic_crusher/RegisterWithParent(datum/parent = src.parent)
- RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine))
- RegisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(on_update_overlays))
- RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(on_attackby))
-
- RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(on_attack))
- RegisterSignal(parent, COMSIG_ITEM_ATTACK_SECONDARY, PROC_REF(on_attack_secondary))
- RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(on_afterattack))
- RegisterSignal(parent, COMSIG_ITEM_INTERACTING_WITH_ATOM, PROC_REF(on_interact))
- RegisterSignal(parent, COMSIG_ITEM_INTERACTING_WITH_ATOM_SECONDARY, PROC_REF(on_interact_secondary))
- RegisterSignal(parent, COMSIG_RANGED_ITEM_INTERACTING_WITH_ATOM_SECONDARY, PROC_REF(on_interact_secondary))
-
-/datum/component/kinetic_crusher/Destroy(force)
- QDEL_LIST(stored_trophies) //dont be a dummy
- attack_check = null
- detonate_check = null
- after_detonate = null
- return ..()
-
-/datum/component/kinetic_crusher/proc/on_examine(obj/item/source, mob/user, list/examine_list)
- SIGNAL_HANDLER
-
- var/force
- var/datum/component/two_handed/comp = source.GetComponent(/datum/component/two_handed)
- if(istype(source, /obj/item/clothing/gloves/kinetic_gauntlets)) //ughhhhh
- var/obj/item/clothing/gloves/kinetic_gauntlets/gauntlets = parent
- force = gauntlets.right_gauntlet?.force || gauntlets.left_gauntlet.force
- else if(comp)
- force = comp.force_wielded
- else
- force = source.force
-
- examine_list += span_notice("Mark a large creature with a destabilizing force with right-click, then hit them in melee to do [force + detonation_damage] damage.")
- examine_list += span_notice("Does [force + detonation_damage + backstab_bonus] damage if the target is backstabbed, instead of [force + detonation_damage].")
- for(var/obj/item/crusher_trophy/trophy as anything in stored_trophies)
- examine_list += span_notice("It has \a [trophy] attached, which causes [trophy.effect_desc()].")
-
-/datum/component/kinetic_crusher/proc/on_update_overlays(atom/source, list/overlays)
- SIGNAL_HANDLER
-
- if(!charged)
- overlays += "[source.icon_state]_uncharged"
-
-/datum/component/kinetic_crusher/proc/on_attackby(datum/source, obj/item/attacking_item, mob/user, params)
- SIGNAL_HANDLER
-
- if(attacking_item.tool_behaviour == TOOL_CROWBAR)
- if(!LAZYLEN(stored_trophies))
- to_chat(user, span_warning("There are no trophies on [source]."))
- return COMPONENT_NO_AFTERATTACK
-
- to_chat(user, span_notice("You remove [source]'s trophies."))
- attacking_item.play_tool_sound(src)
- for(var/obj/item/crusher_trophy/trophy as anything in stored_trophies)
- trophy.remove_from(parent, user, src)
-
- if(istype(parent, /obj/item/clothing/gloves/kinetic_gauntlets))
- var/obj/item/clothing/gloves/kinetic_gauntlets/gauntlets = parent //CODE DEBT CODE DEBT WOOOOO
- gauntlets.left_gauntlet?.force = gauntlets.force * 5
- gauntlets.right_gauntlet?.force = gauntlets.force * 5
-
- return COMPONENT_NO_AFTERATTACK
-
- if(istype(attacking_item, /obj/item/crusher_trophy))
- var/obj/item/crusher_trophy/trophy = attacking_item
- trophy.add_to(parent, user, src)
- return COMPONENT_NO_AFTERATTACK
-
-/datum/component/kinetic_crusher/proc/on_trophy_moved(obj/item/crusher_trophy/source, atom/oldloc, direction)
- SIGNAL_HANDLER
-
- source.remove_from(parent, null, src)
-
-/datum/component/kinetic_crusher/proc/on_attack(obj/item/source, mob/living/target, mob/living/carbon/user)
- SIGNAL_HANDLER
-
- cached_health = target.health
-
- var/cancel_attack = NONE
- if(attack_check && !attack_check.Invoke(user, &cancel_attack))
- return cancel_attack
-
- if(!target.has_status_effect(/datum/status_effect/crusher_damage))
- target.apply_status_effect(/datum/status_effect/crusher_damage)
-
- for(var/obj/item/crusher_trophy/trophy as anything in stored_trophies)
- trophy.on_melee_hit(target, user)
-
-
-/datum/component/kinetic_crusher/proc/on_attack_secondary(obj/item/source, mob/living/victim, mob/living/user, params)
- SIGNAL_HANDLER
-
- var/cancel_attack = NONE
- if(attack_check && !attack_check.Invoke(user, &cancel_attack))
- return cancel_attack
-
- return COMPONENT_SECONDARY_CONTINUE_ATTACK_CHAIN
-
-/datum/component/kinetic_crusher/proc/on_afterattack(obj/item/source, mob/living/target, mob/living/user, click_parameters)
- SIGNAL_HANDLER
-
- if(!isliving(target))
- return
-
- var/datum/status_effect/crusher_damage/damage_effect = target.has_status_effect(/datum/status_effect/crusher_damage) || target.apply_status_effect(/datum/status_effect/crusher_damage)
- if(damage_effect && isnum(cached_health)) //legiooooons
- damage_effect.total_damage += cached_health - target.health //carry over from the /on_attack()
- cached_health = null
-
- if(detonate_check && !detonate_check.Invoke(user))
- return
-
- if(!target.remove_status_effect(/datum/status_effect/crusher_mark, src))
- return
-
- var/backstabbed = FALSE
- var/dealt_damage = detonation_damage
- if(target.dir & get_dir(user, target))
- backstabbed = TRUE
- dealt_damage += backstab_bonus
- playsound(user, 'sound/items/weapons/kinetic_accel.ogg', 100, TRUE)
-
- damage_effect.total_damage += dealt_damage
- new /obj/effect/temp_visual/kinetic_blast(get_turf(target))
-
- var/past_damage = target.maxHealth - target.health
- for(var/obj/item/crusher_trophy/trophy as anything in stored_trophies)
- trophy.on_mark_detonation(target, user)
-
- damage_effect.total_damage += dealt_damage + target.get_total_damage() - past_damage //we did some damage, but let's not assume how much we did
-
- after_detonate?.InvokeAsync(user, target)
- SEND_SIGNAL(user, COMSIG_LIVING_CRUSHER_DETONATE, target, parent, backstabbed)
- target.apply_damage(dealt_damage, BRUTE, blocked = target.getarmor(type = BOMB))
-
-
-/datum/component/kinetic_crusher/proc/on_interact(obj/item/source, mob/living/user, atom/target, modifiers)
- SIGNAL_HANDLER
-
- if(!istype(target, /obj/item/crusher_trophy))
- return
-
- . = ITEM_INTERACT_SUCCESS
- var/obj/item/crusher_trophy/trophy = target
- trophy.add_to(parent, user, src)
-
- if(istype(parent, /obj/item/clothing/gloves/kinetic_gauntlets))
- var/obj/item/clothing/gloves/kinetic_gauntlets/gauntlets = parent //CODE DEBT CODE DEBT WOOOOO
- gauntlets.left_gauntlet?.force = gauntlets.force * 5
- gauntlets.right_gauntlet?.force = gauntlets.force * 5
-
-/datum/component/kinetic_crusher/proc/on_interact_secondary(obj/item/source, mob/living/user, atom/target, list/modifiers)
- SIGNAL_HANDLER
-
- var/_ = TRUE
- if(attack_check && _ /*unused var error*/&& !attack_check.Invoke(user, &_))
- return
-
- if(!charged)
- return
-
- var/turf/proj_turf = user.loc
- if(!isturf(proj_turf))
- return
-
- var/obj/projectile/destabilizer/destabilizer = new(proj_turf)
- for(var/obj/item/crusher_trophy/attached_trophy as anything in stored_trophies)
- attached_trophy.on_projectile_fire(destabilizer, user)
-
- destabilizer.aim_projectile(target, user, modifiers)
- destabilizer.hammer_synced = src
- destabilizer.firer = user
-
- // just typing spawn(-1) is faster ugghhh tg
- INVOKE_ASYNC(destabilizer, TYPE_PROC_REF(/obj/projectile, fire))
- playsound(user, 'sound/items/weapons/plasma_cutter.ogg', 100, TRUE)
-
- var/obj/item/crusher = parent
- charged = FALSE
- crusher.update_appearance()
- addtimer(CALLBACK(src, PROC_REF(recharge_shot)), recharge_speed)
- return ITEM_INTERACT_SUCCESS
-
-
-
-/datum/component/kinetic_crusher/proc/recharge_shot()
- var/obj/item/crusher = parent
- charged = TRUE
- crusher.update_appearance()
- playsound(crusher.loc, 'sound/items/weapons/kinetic_reload.ogg', 60, TRUE)
-
diff --git a/modular_skyrat/master_files/code/datums/status_effects/debuffs/debuffs.dm b/modular_skyrat/master_files/code/datums/status_effects/debuffs/debuffs.dm
deleted file mode 100644
index 5dcbba23467..00000000000
--- a/modular_skyrat/master_files/code/datums/status_effects/debuffs/debuffs.dm
+++ /dev/null
@@ -1,36 +0,0 @@
-/datum/status_effect/crusher_mark
- id = "crusher_mark"
- duration = 300 //if you leave for 30 seconds you lose the mark, deal with it
- status_type = STATUS_EFFECT_MULTIPLE
- alert_type = null
- var/mutable_appearance/marked_underlay
- var/datum/component/kinetic_crusher/hammer_synced
-
-/datum/status_effect/crusher_mark/on_creation(mob/living/new_owner, obj/item/kinetic_crusher/new_hammer_synced)
- hammer_synced = new_hammer_synced
- return ..()
-
-/datum/status_effect/crusher_mark/on_apply()
- if(owner.mob_size >= MOB_SIZE_LARGE && !HAS_TRAIT(owner, TRAIT_CRUSHER_MARK_IMMUNE))
- marked_underlay = mutable_appearance('icons/effects/effects.dmi', "shield2")
- marked_underlay.pixel_x = -owner.pixel_x
- marked_underlay.pixel_y = -owner.pixel_y
-
- var/obj/item/crusher_trophy/watcher_eye/eye = locate() in hammer_synced.stored_trophies
- if(eye) //we must do this here as adding (and deleting!) to atom.underlays works by value, not reference
- marked_underlay.icon_state = "shield-grey"
- marked_underlay.color = eye.used_color
-
- owner.underlays += marked_underlay
- return TRUE
- return FALSE
-
-/datum/status_effect/crusher_mark/Destroy()
- hammer_synced = null
- owner?.underlays -= marked_underlay
- QDEL_NULL(marked_underlay)
- return ..()
-
-//we will only clear ourselves if the crusher is the one that owns us.
-/datum/status_effect/crusher_mark/before_remove(datum/component/kinetic_crusher/attacking_hammer)
- return (attacking_hammer == hammer_synced)
diff --git a/modular_skyrat/master_files/code/game/machinery/computer/orders/order_items/mining/order_mining.dm b/modular_skyrat/master_files/code/game/machinery/computer/orders/order_items/mining/order_mining.dm
deleted file mode 100644
index 6fdbb80ad77..00000000000
--- a/modular_skyrat/master_files/code/game/machinery/computer/orders/order_items/mining/order_mining.dm
+++ /dev/null
@@ -1,3 +0,0 @@
-/datum/orderable_item/mining/kinetic_gauntlets
- purchase_path = /obj/item/clothing/gloves/kinetic_gauntlets
- cost_per_order = 1250
diff --git a/modular_skyrat/master_files/code/modules/mining/equipment/kinetic_crusher.dm b/modular_skyrat/master_files/code/modules/mining/equipment/kinetic_crusher.dm
deleted file mode 100644
index df31e2265be..00000000000
--- a/modular_skyrat/master_files/code/modules/mining/equipment/kinetic_crusher.dm
+++ /dev/null
@@ -1,232 +0,0 @@
-/obj/item/kinetic_crusher
- name = "proto-kinetic crusher"
- desc = "An early design of the proto-kinetic accelerator, it is little more than a combination of various mining tools cobbled together, forming a high-tech club. \
- While it is an effective mining tool, it did little to aid any but the most skilled and/or suicidal miners against local fauna."
- icon = 'icons/obj/mining.dmi'
- icon_state = "crusher"
- inhand_icon_state = "crusher0"
- lefthand_file = 'icons/mob/inhands/weapons/hammers_lefthand.dmi'
- righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi'
- resistance_flags = FIRE_PROOF
- force = 0 //You can't hit stuff unless wielded
- w_class = WEIGHT_CLASS_BULKY
- slot_flags = ITEM_SLOT_BACK
- throwforce = 5
- throw_speed = 4
- armour_penetration = 10
- custom_materials = list(
- /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 1.15,
- /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT * 2.075
- )
- hitsound = 'sound/items/weapons/bladeslice.ogg'
- attack_verb_continuous = list("smashes", "crushes", "cleaves", "chops", "pulps")
- attack_verb_simple = list("smash", "crush", "cleave", "chop", "pulp")
- sharpness = SHARP_EDGED
- actions_types = list(/datum/action/item_action/toggle_light)
- obj_flags = UNIQUE_RENAME
- light_color = "#ffff66"
- light_on = FALSE
- light_power = 1.2
- light_range = 5
- light_system = OVERLAY_LIGHT
-
- var/charge_time = 1.5 SECONDS
- var/detonation_damage = 50
- var/backstab_bonus = 30
-
- var/current_inhand_icon_state = "crusher" //variable used by retool kits when changing the crusher's appearance
- var/projectile_icon = "pulse1" //variable used by retool kits when changing the crusher's projectile sprite
-
- /// List of all crusher trophies attached to this.
- var/list/obj/item/crusher_trophy/trophies = list()
-
-/obj/item/kinetic_crusher/Initialize(mapload)
- . = ..()
- AddComponent(/datum/component/butchering, speed = 6 SECONDS, effectiveness = 110)
- AddComponent(/datum/component/kinetic_crusher, detonation_damage, backstab_bonus, charge_time, CALLBACK(src, PROC_REF(attack_check)), CALLBACK(src, PROC_REF(attack_check)))
- AddComponent(/datum/component/two_handed, force_wielded = 20, force_unwielded = 0, unwield_callback = CALLBACK(src, PROC_REF(on_unwield)))
- RegisterSignal(src, COMSIG_ATOM_SABOTEUR_ACT, PROC_REF(do_saboteur))
-
-/obj/item/kinetic_crusher/proc/attack_check(mob/user, cancel_attack)
- if(HAS_TRAIT(src, TRAIT_WIELDED))
- return TRUE
-
- to_chat(user, span_warning("[src] is too heavy to use with one hand! You fumble and drop everything."))
- user.drop_all_held_items()
- if(cancel_attack)
- *cancel_attack = COMPONENT_CANCEL_ATTACK_CHAIN
- return FALSE
-
-/obj/item/kinetic_crusher/ui_action_click(mob/user, actiontype)
- set_light_on(!light_on)
- playsound(user, 'sound/items/weapons/empty.ogg', 100, TRUE)
- update_appearance()
-
-//////////////////////////////////////////////////////////////////////////////////
-/////// HACK TO WORK AROUND TWOHANDED NOT RESPECTING FORCE_UNWIELDED=0 ///////////
-//////////////////////////////////////////////////////////////////////////////////
-/obj/item/kinetic_crusher/proc/on_unwield()
- SIGNAL_HANDLER
-
- force = 0 //the abrasive comments is so you notice. seriously, this is BAD.
-
-//////////////////////////////////////////////////////////////////////////////////
-/////// HACK TO WORK AROUND TWOHANDED NOT RESPECTING FORCE_UNWIELDED=0 ///////////
-//////////////////////////////////////////////////////////////////////////////////
-
-/obj/item/kinetic_crusher/proc/do_saboteur(datum/source, disrupt_duration)
- set_light_on(FALSE)
- playsound(src, 'sound/items/weapons/empty.ogg', 100, TRUE)
- return COMSIG_SABOTEUR_SUCCESS
-
-/obj/item/kinetic_crusher/update_icon_state()
- inhand_icon_state = "[current_inhand_icon_state][HAS_TRAIT(src, TRAIT_WIELDED)]" // this is not icon_state and not supported by 2hcomponent
- return ..()
-
-/obj/item/kinetic_crusher/update_overlays()
- . = ..()
- if(light_on)
- . += "[icon_state]_lit"
-
-/obj/item/kinetic_crusher/compact //for admins
- name = "compact kinetic crusher"
- w_class = WEIGHT_CLASS_NORMAL
-
-//stupid to have both crusher and crusher_comp as params but it helps with reducing core code mods
-/obj/item/crusher_trophy/proc/add_to(obj/item/crusher, mob/living/user, datum/component/kinetic_crusher/crusher_comp)
- for(var/obj/item/crusher_trophy/trophy as anything in crusher_comp.stored_trophies)
- if(istype(trophy, denied_type) || istype(src, trophy.denied_type))
- to_chat(user, span_warning("You can't seem to attach [src] to [crusher]. Maybe remove a few trophies?"))
- return FALSE
-
- if(!user.transferItemToLoc(src, crusher))
- return
-
- crusher_comp.stored_trophies += src
- crusher_comp.RegisterSignal(src, COMSIG_MOVABLE_MOVED, TYPE_PROC_REF(/datum/component/kinetic_crusher, on_trophy_moved))
- to_chat(user, span_notice("You attach [src] to [crusher]."))
- return TRUE
-
-/obj/item/crusher_trophy/proc/remove_from(obj/item/kinetic_crusher/crusher, mob/living/user, datum/component/kinetic_crusher/crusher_comp)
- crusher_comp.UnregisterSignal(src, COMSIG_MOVABLE_MOVED)
- crusher_comp.stored_trophies -= src
- forceMove(get_turf(crusher))
- return TRUE
-
-/obj/projectile/destabilizer
- name = "destabilizing force"
- damage = 0 //We're just here to mark people. This is still a melee weapon.
- damage_type = BRUTE
- armor_flag = BOMB
- range = 6
- log_override = TRUE
- var/datum/component/kinetic_crusher/hammer_synced
-
-/obj/projectile/destabilizer/Destroy()
- hammer_synced = null
- return ..()
-
-/obj/projectile/destabilizer/on_hit(atom/target, blocked = 0, pierce_hit)
- if(isliving(target))
- var/mob/living/living = target
- var/has_owned_mark = FALSE
- for(var/datum/status_effect/crusher_mark/crusher_mark as anything in living.get_all_status_effect_of_id(/datum/status_effect/crusher_mark))
- if(crusher_mark.hammer_synced != hammer_synced)
- continue
-
- has_owned_mark = TRUE
- break
-
- if(!has_owned_mark)
- living.apply_status_effect(/datum/status_effect/crusher_mark, hammer_synced)
-
- var/turf/closed/mineral/target_turf = get_turf(target) //sure i guess
- if(istype(target_turf))
- new /obj/effect/temp_visual/kinetic_blast(target_turf)
- target_turf.gets_drilled(firer)
-
- return ..()
-
-/obj/item/crusher_trophy/legion_skull/add_to(obj/item/kinetic_crusher/crusher, mob/living/user, datum/component/kinetic_crusher/crusher_comp)
- . = ..()
- if(.)
- crusher_comp.recharge_speed -= bonus_value
-
-/obj/item/crusher_trophy/legion_skull/remove_from(obj/item/kinetic_crusher/crusher, mob/living/user, datum/component/kinetic_crusher/crusher_comp)
- . = ..()
- if(.)
- crusher_comp.recharge_speed += bonus_value
-
-
-/obj/item/crusher_trophy/demon_claws/add_to(obj/item/kinetic_crusher/crusher, mob/living/user, datum/component/kinetic_crusher/crusher_comp)
- . = ..()
- if(!.)
- return
-
- crusher.force += bonus_value * 0.2
- crusher_comp.detonation_damage += bonus_value * 0.8
-
- var/datum/component/two_handed/two_handed = crusher.GetComponent(/datum/component/two_handed)
- two_handed?.force_wielded += bonus_value * 0.2
-
-/obj/item/crusher_trophy/demon_claws/remove_from(obj/item/kinetic_crusher/crusher, mob/living/user, datum/component/kinetic_crusher/crusher_comp)
- . = ..()
- if(!.)
- return
-
- crusher.force -= bonus_value * 0.2
- crusher_comp.detonation_damage -= bonus_value * 0.8
-
- var/datum/component/two_handed/two_handed = crusher.GetComponent(/datum/component/two_handed)
- two_handed?.force_wielded -= bonus_value * 0.2
-
-
-/obj/item/crusher_trophy/wendigo_horn/add_to(obj/item/kinetic_crusher/crusher, mob/living/user)
- . = ..()
- if(!.)
- return
-
- crusher.force *= 2
-
- var/datum/component/two_handed/two_handed = crusher.GetComponent(/datum/component/two_handed)
- two_handed?.force_wielded *= 2
-
-/obj/item/crusher_trophy/wendigo_horn/remove_from(obj/item/kinetic_crusher/crusher, mob/living/user)
- . = ..()
- if(!.)
- return
-
- crusher.force *= 0.5
-
- var/datum/component/two_handed/two_handed = crusher.GetComponent(/datum/component/two_handed)
- two_handed?.force_wielded *= 0.5
-
-
-/obj/item/crusher_trophy/watcher_eye
- name = "watcher eye"
- desc = "An eye ripped out from some unfortunate watcher's eyesocket. Suitable as a trophy for a kinetic crusher."
- icon = 'modular_skyrat/master_files/icons/obj/artifacts.dmi'
- icon_state = "watcher_eye"
- denied_type = /obj/item/crusher_trophy/watcher_eye
- var/used_color = "#ff7777" //gay by default
-
-/obj/item/crusher_trophy/watcher_eye/effect_desc()
- return "very pretty colors to imbue the destabilizer shots"
-
-/obj/item/crusher_trophy/watcher_eye/attack_self(mob/user, modifiers)
- var/chosen_color = tgui_color_picker(user, "Pick a new color", "[src]", used_color) // BUBBERSTATION EDIT: TGUI COLOR PICKER
- if(chosen_color)
- used_color = chosen_color
- to_chat(user, span_notice("You recolor [src]."))
- update_appearance()
-
-/obj/item/crusher_trophy/watcher_eye/update_overlays()
- . = ..()
- var/mutable_appearance/overlay = mutable_appearance('modular_skyrat/master_files/icons/obj/artifacts.dmi', "watcher_eye_iris")
- overlay.color = used_color
- . += overlay
-
-/obj/item/crusher_trophy/watcher_eye/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user)
- marker.icon = 'modular_skyrat/master_files/icons/obj/weapons/guns/projectiles.dmi'
- marker.icon_state = "pulse1_g"
- marker.color = used_color
diff --git a/modular_skyrat/master_files/code/modules/mining/equipment/kinetic_gauntlets.dm b/modular_skyrat/master_files/code/modules/mining/equipment/kinetic_gauntlets.dm
deleted file mode 100644
index d92c6f55309..00000000000
--- a/modular_skyrat/master_files/code/modules/mining/equipment/kinetic_gauntlets.dm
+++ /dev/null
@@ -1,265 +0,0 @@
-/obj/item/clothing/gloves/kinetic_gauntlets
- name = "kinetic gauntlets"
- desc = "Nanotrasen's take on the power-fist, originally designed to help the security department but ultimately scrapped due to causing too much collateral damage. \
- Later on, repurposed into a pair of mining tools after a disgruntled shaft miner complained to R&D about mining \"not being metal enough\"."
- icon = 'modular_skyrat/master_files/icons/obj/mining.dmi'
- icon_state = "kgauntlets"
- worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/gloves.dmi'
- worn_icon_state = "kgauntlets_off"
-
- armor_type = /datum/armor/melee_energy
- custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 1.15, /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT * 2.075) //copied from kc, idk
- light_on = FALSE
- light_power = 5
- light_range = 4
- light_system = OVERLAY_LIGHT_DIRECTIONAL
- resistance_flags = FIRE_PROOF
-
- force = 3 //i guess?
- obj_flags = UNIQUE_RENAME
- throwforce = 3 //why doesnt this have an underscore i hate this
- throw_speed = 2
-
-
- actions_types = list(/datum/action/item_action/extend_gauntlets)
- attack_verb_continuous = list("slaps", "challenges")
- attack_verb_simple = list("slap", "challenge")
- equip_delay_self = 2 SECONDS //that's a lot of bulky
- hitsound = 'sound/items/weapons/slap.ogg'
- slot_flags = ITEM_SLOT_GLOVES
- w_class = WEIGHT_CLASS_BULKY
-
- var/obj/item/kinetic_gauntlet/left/left_gauntlet = null
- var/obj/item/kinetic_gauntlet/right_gauntlet = null
-
-/obj/item/clothing/gloves/kinetic_gauntlets/Initialize(mapload)
- . = ..()
- left_gauntlet = new(src)
- right_gauntlet = new(src)
-
- var/datum/component/crusher_comp = AddComponent(/datum/component/kinetic_crusher, 50, 30, 1.5 SECONDS, CALLBACK(src, PROC_REF(attack_check)), CALLBACK(src, PROC_REF(detonate_check)), CALLBACK(src, PROC_REF(after_detonate)))
- crusher_comp.RegisterWithParent(left_gauntlet)
- crusher_comp.RegisterWithParent(right_gauntlet)
-
-/obj/item/clothing/gloves/kinetic_gauntlets/Destroy()
- QDEL_NULL(left_gauntlet)
- QDEL_NULL(right_gauntlet)
- return ..()
-
-/obj/item/clothing/gloves/kinetic_gauntlets/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change)
- . = ..()
- left_gauntlet?.forceMove(src)
- right_gauntlet?.forceMove(src)
-
-/obj/item/clothing/gloves/kinetic_gauntlets/ui_action_click(mob/user, datum/action/actiontype)
- toggle_gauntlets()
-
-/obj/item/clothing/gloves/kinetic_gauntlets/proc/on_gauntlet_qdel()
- if(QDELETED(left_gauntlet))
- left_gauntlet = null
- if(QDELETED(right_gauntlet))
- right_gauntlet = null
-
- if(isnull(left_gauntlet) && isnull(right_gauntlet) && !QDELING(src))
- qdel(src)
-
-/obj/item/clothing/gloves/kinetic_gauntlets/proc/attack_check(mob/living/user, cancel_attack)
- return left_gauntlet?.loc == user || right_gauntlet?.loc == user
-
-/obj/item/clothing/gloves/kinetic_gauntlets/proc/detonate_check(mob/living/user)
- var/both_gauntlets_deployed = left_gauntlet?.loc == user && right_gauntlet?.loc == user
- if(both_gauntlets_deployed)
- return left_gauntlet.next_attack >= world.time || right_gauntlet.next_attack >= world.time
-
- return FALSE //you WILL glass cannon and you WILL like it.
-
-/obj/item/clothing/gloves/kinetic_gauntlets/proc/after_detonate(mob/living/user, mob/living/target)
- playsound(src, 'sound/items/weapons/resonator_blast.ogg', 40, TRUE)
- var/old_dir_user = user.dir
- var/old_dir_target = user.dir
- step(user, get_dir(target, user))
- step(target, get_dir(user, target))
- user.dir = old_dir_user
- target.dir = old_dir_target
-
-
-/obj/item/clothing/gloves/kinetic_gauntlets/proc/toggle_gauntlets()
- var/mob/living/carbon/human/wearer = loc
- if(!istype(wearer))
- return
-
- if(left_gauntlet.loc == src || right_gauntlet.loc == src)
- deploy_gauntlets()
- else
- retract_gauntlets()
-
-/obj/item/clothing/gloves/kinetic_gauntlets/proc/deploy_gauntlets()
- var/mob/living/carbon/human/wearer = loc
- if(!istype(wearer) || DOING_INTERACTION(wearer, type))
- return
-
- if(wearer.gloves != src)
- to_chat(wearer, span_warning("You must be wearing these to do this!"))
- return
-
- var/left_deployed = isnull(left_gauntlet) || left_gauntlet.loc == wearer
- var/right_deployed = isnull(right_gauntlet) || right_gauntlet.loc == wearer
- if(left_deployed && right_deployed)
- return //nothing to do
-
- var/can_deploy = TRUE
- if(!left_deployed && !wearer.can_put_in_hand(left_gauntlet, 1))
- can_deploy = FALSE
- if(!right_deployed && !wearer.can_put_in_hand(right_gauntlet, 2))
- can_deploy = FALSE
-
- if(!can_deploy)
- playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
- to_chat(wearer, span_warning("You need both free hands to deploy [src]!"))
- return
-
- // equipping/unequipping shall take time
- wearer.add_movespeed_modifier(/datum/movespeed_modifier/equipping_gauntlets)
- if(!do_after(wearer, 1.5 SECONDS, src, IGNORE_USER_LOC_CHANGE, interaction_key = type))
- playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
- to_chat(wearer, span_warning("You fail to deploy [src]!"))
- wearer.remove_movespeed_modifier(/datum/movespeed_modifier/equipping_gauntlets)
- return
-
- wearer.remove_movespeed_modifier(/datum/movespeed_modifier/equipping_gauntlets)
-
- if(!left_deployed && !wearer.can_put_in_hand(left_gauntlet, 1))
- can_deploy = FALSE
- if(!right_deployed && !wearer.can_put_in_hand(right_gauntlet, 2))
- can_deploy = FALSE
-
- if(!can_deploy)
- playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
- to_chat(wearer, span_warning("You need both free hands to deploy [src]!"))
- return
-
- if(!left_deployed)
- wearer.put_in_l_hand(left_gauntlet)
-
- if(!right_deployed)
- wearer.put_in_r_hand(right_gauntlet)
-
- ADD_TRAIT(src, TRAIT_NODROP, type)
-
- playsound(src, 'sound/vehicles/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
- playsound(src, 'sound/vehicles/mecha/mechmove01.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
- to_chat(wearer, span_notice("You deploy [src]."))
-
-/obj/item/clothing/gloves/kinetic_gauntlets/proc/retract_gauntlets()
- var/mob/living/carbon/human/wearer = loc
- if(!istype(wearer) || DOING_INTERACTION(wearer, type))
- return
-
- if(wearer.gloves != src)
- to_chat(wearer, span_warning("You must be wearing these to do this!"))
- return
-
- if(left_gauntlet?.loc == src && right_gauntlet?.loc == src)
- return
-
- wearer.add_movespeed_modifier(/datum/movespeed_modifier/equipping_gauntlets)
- if(!do_after(wearer, 1.5 SECONDS, src, IGNORE_USER_LOC_CHANGE))
- wearer.remove_movespeed_modifier(/datum/movespeed_modifier/equipping_gauntlets)
- playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
- to_chat(wearer, span_warning("You fail to retract [src]!"))
- return
-
- wearer.remove_movespeed_modifier(/datum/movespeed_modifier/equipping_gauntlets)
-
- left_gauntlet?.forceMove(src)
- right_gauntlet?.forceMove(src)
-
- REMOVE_TRAIT(src, TRAIT_NODROP, type)
- playsound(src, 'sound/vehicles/mecha/powerloader_turn2.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
- playsound(src, 'sound/vehicles/mecha/mechmove01.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
- to_chat(wearer, span_notice("You retract [src]."))
-
-
-/obj/item/kinetic_gauntlet
- name = "kinetic gauntlets"
- desc = "Okay, these are pretty metal."
- icon = 'modular_skyrat/master_files/icons/obj/mining.dmi'
- icon_state = "kgauntlet_r"
- inhand_icon_state = "kgauntlet"
- lefthand_file = 'modular_skyrat/master_files/icons/mob/inhands/melee_lefthand.dmi'
- righthand_file = 'modular_skyrat/master_files/icons/mob/inhands/melee_righthand.dmi'
- attack_verb_continuous = list("rams", "fists", "pulverizes", "power-punches")
- attack_verb_simple = list("ram", "fist", "pulverize", "power-punch")
-
- armor_type = /datum/armor/melee_energy
- force = 15 // double hit -> 10 more dmg than crusher
- obj_flags = DROPDEL
- resistance_flags = FIRE_PROOF
-
- secondary_attack_speed = 0.1 SECONDS
-
- var/obj/item/clothing/gloves/kinetic_gauntlets/linked_gauntlets = null
- var/next_attack = 0
-
-/obj/item/kinetic_gauntlet/Initialize(mapload)
- . = ..()
- if(!istype(loc, /obj/item/clothing/gloves/kinetic_gauntlets))
- return INITIALIZE_HINT_QDEL //le sigh
-
- linked_gauntlets = loc
- ADD_TRAIT(src, TRAIT_NODROP, type)
-
-/obj/item/kinetic_gauntlet/Destroy(force)
- if(linked_gauntlets) //fuck c&d
- linked_gauntlets.on_gauntlet_qdel()
- linked_gauntlets = null
- return ..()
-
-/obj/item/kinetic_gauntlet/melee_attack_chain(mob/user, atom/target, params)
- if(next_attack > world.time)
- return
- return ..()
-
-/obj/item/kinetic_gauntlet/attack(mob/living/target_mob, mob/living/user, params)
- . = ..()
- playsound(src, 'sound/items/weapons/genhit2.ogg', 40, TRUE)
- next_attack = world.time + 0.8 SECONDS // same as a crusher
- user.changeNext_move(CLICK_CD_HYPER_RAPID) //forgive me
- if(istype(user.get_inactive_held_item(), /obj/item/kinetic_gauntlet))
- user.swap_hand()
-
-/obj/item/kinetic_gauntlet/attack_self(mob/user, modifiers)
- if(linked_gauntlets.left_gauntlet)
- return linked_gauntlets.left_gauntlet.attack_self(user, modifiers)
- return ..()
-
-/obj/item/kinetic_gauntlet/left
- icon_state = "kgauntlet_l"
- actions_types = list(/datum/action/item_action/toggle_light)
-
-/obj/item/kinetic_gauntlet/left/Initialize(mapload)
- . = ..()
- if(linked_gauntlets)
- RegisterSignal(linked_gauntlets, COMSIG_ATOM_SABOTEUR_ACT, PROC_REF(do_saboteur))
-
-/obj/item/kinetic_gauntlet/left/Destroy(force)
- if(linked_gauntlets)
- UnregisterSignal(linked_gauntlets, COMSIG_ATOM_SABOTEUR_ACT)
- linked_gauntlets.set_light_on(FALSE)
- return ..()
-
-/obj/item/kinetic_gauntlet/left/update_overlays()
- . = ..()
- if(linked_gauntlets.light_on)
- . += "[icon_state]_lit"
-
-/obj/item/kinetic_gauntlet/left/attack_self(mob/user, modifiers)
- linked_gauntlets.set_light_on(!linked_gauntlets.light_on)
- playsound(src, 'sound/items/weapons/empty.ogg', 100, TRUE)
- update_appearance()
-
-/obj/item/kinetic_gauntlet/left/proc/do_saboteur(datum/source, disrupt_duration)
- linked_gauntlets.set_light_on(FALSE)
- playsound(src, 'sound/items/weapons/empty.ogg', 100, TRUE)
- update_appearance()
- return COMSIG_SABOTEUR_SUCCESS
diff --git a/modular_skyrat/master_files/code/modules/mob/living/basic/lavaland/watcher/watcher.dm b/modular_skyrat/master_files/code/modules/mob/living/basic/lavaland/watcher/watcher.dm
deleted file mode 100644
index 3102def462a..00000000000
--- a/modular_skyrat/master_files/code/modules/mob/living/basic/lavaland/watcher/watcher.dm
+++ /dev/null
@@ -1,3 +0,0 @@
-/mob/living/basic/mining/watcher/Initialize(mapload)
- . = ..()
- AddElement(/datum/element/crusher_loot, trophy_type = /obj/item/crusher_trophy/watcher_eye, drop_mod = 5, drop_immediately = FALSE)
diff --git a/modular_skyrat/master_files/code/modules/movespeed/modifiers/items.dm b/modular_skyrat/master_files/code/modules/movespeed/modifiers/items.dm
deleted file mode 100644
index 31dac3faf7d..00000000000
--- a/modular_skyrat/master_files/code/modules/movespeed/modifiers/items.dm
+++ /dev/null
@@ -1,2 +0,0 @@
-/datum/movespeed_modifier/equipping_gauntlets
- multiplicative_slowdown = 0.8
diff --git a/tgstation.dme b/tgstation.dme
index d3a49009c64..76d2290b478 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -6697,11 +6697,9 @@
#include "modular_skyrat\master_files\code\datums\emotes.dm"
#include "modular_skyrat\master_files\code\datums\ert.dm"
#include "modular_skyrat\master_files\code\datums\outfit.dm"
-#include "modular_skyrat\master_files\code\datums\actions\items\toggles.dm"
#include "modular_skyrat\master_files\code\datums\bodypart_overlays\bodypart_overlay.dm"
#include "modular_skyrat\master_files\code\datums\bodypart_overlays\mutant_bodypart_overlay.dm"
#include "modular_skyrat\master_files\code\datums\components\crafting.dm"
-#include "modular_skyrat\master_files\code\datums\components\crusher.dm"
#include "modular_skyrat\master_files\code\datums\components\damage_tracker.dm"
#include "modular_skyrat\master_files\code\datums\components\fullauto.dm"
#include "modular_skyrat\master_files\code\datums\components\grillable.dm"
@@ -6725,7 +6723,6 @@
#include "modular_skyrat\master_files\code\datums\mutations\hulk.dm"
#include "modular_skyrat\master_files\code\datums\mutations\sight.dm"
#include "modular_skyrat\master_files\code\datums\records\record.dm"
-#include "modular_skyrat\master_files\code\datums\status_effects\debuffs\debuffs.dm"
#include "modular_skyrat\master_files\code\datums\storage\storage.dm"
#include "modular_skyrat\master_files\code\datums\storage\subtypes\pockets.dm"
#include "modular_skyrat\master_files\code\datums\votes\_vote_datum.dm"
@@ -6738,7 +6735,6 @@
#include "modular_skyrat\master_files\code\game\machinery\hologram.dm"
#include "modular_skyrat\master_files\code\game\machinery\limbgrower.dm"
#include "modular_skyrat\master_files\code\game\machinery\suit_storage.dm"
-#include "modular_skyrat\master_files\code\game\machinery\computer\orders\order_items\mining\order_mining.dm"
#include "modular_skyrat\master_files\code\game\machinery\doors\firedoor.dm"
#include "modular_skyrat\master_files\code\game\objects\items.dm"
#include "modular_skyrat\master_files\code\game\objects\objs.dm"
@@ -6960,8 +6956,6 @@
#include "modular_skyrat\master_files\code\modules\mapfluff\ruins\objects_and_mobs\necropolis_gate.dm"
#include "modular_skyrat\master_files\code\modules\mapfluff\ruins\spaceruin_code\oldstation\oldstation_cytology.dm"
#include "modular_skyrat\master_files\code\modules\mining\equipment\explorer_gear.dm"
-#include "modular_skyrat\master_files\code\modules\mining\equipment\kinetic_crusher.dm"
-#include "modular_skyrat\master_files\code\modules\mining\equipment\kinetic_gauntlets.dm"
#include "modular_skyrat\master_files\code\modules\mob\login.dm"
#include "modular_skyrat\master_files\code\modules\mob\mob_movement.dm"
#include "modular_skyrat\master_files\code\modules\mob\basic\alien\_alien.dm"
@@ -6977,7 +6971,6 @@
#include "modular_skyrat\master_files\code\modules\mob\living\living_defines.dm"
#include "modular_skyrat\master_files\code\modules\mob\living\living_movement.dm"
#include "modular_skyrat\master_files\code\modules\mob\living\basic\alien\alien.dm"
-#include "modular_skyrat\master_files\code\modules\mob\living\basic\lavaland\watcher\watcher.dm"
#include "modular_skyrat\master_files\code\modules\mob\living\carbon\carbon_defense.dm"
#include "modular_skyrat\master_files\code\modules\mob\living\carbon\death.dm"
#include "modular_skyrat\master_files\code\modules\mob\living\carbon\human_helpers.dm"
@@ -7016,7 +7009,6 @@
#include "modular_skyrat\master_files\code\modules\modular_computers\computers\item\computer.dm"
#include "modular_skyrat\master_files\code\modules\modular_computers\computers\item\laptop_presets.dm"
#include "modular_skyrat\master_files\code\modules\modular_computers\file_system\programs\maintenance\camera.dm"
-#include "modular_skyrat\master_files\code\modules\movespeed\modifiers\items.dm"
#include "modular_skyrat\master_files\code\modules\orders\order_mining.dm"
#include "modular_skyrat\master_files\code\modules\pai\card.dm"
#include "modular_skyrat\master_files\code\modules\paperwork\employment_contract.dm"