diff --git a/code/datums/components/shielded.dm b/code/datums/components/shielded.dm index 53fc3308062..8be81267828 100644 --- a/code/datums/components/shielded.dm +++ b/code/datums/components/shielded.dm @@ -28,8 +28,6 @@ var/show_charge_as_alpha = FALSE /// The item we use for recharging var/recharge_path - /// Whether or not we lose a charge when hit by 0 damage items or projectiles - var/lose_charge_on_damageless = FALSE /// The cooldown tracking when we were last hit COOLDOWN_DECLARE(recently_hit_cd) @@ -73,7 +71,6 @@ RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equipped)) RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(lost_wearer)) RegisterSignal(parent, COMSIG_ITEM_HIT_REACT, PROC_REF(on_hit_react)) - RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(check_recharge_rune)) var/atom/shield = parent if(ismob(shield.loc)) var/mob/holder = shield.loc @@ -82,7 +79,7 @@ set_wearer(holder) /datum/component/shielded/UnregisterFromParent() - UnregisterSignal(parent, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED, COMSIG_ITEM_HIT_REACT, COMSIG_ATOM_ATTACKBY)) + UnregisterSignal(parent, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED, COMSIG_ITEM_HIT_REACT)) var/atom/shield = parent if(shield.loc == wearer) lost_wearer(src, wearer) @@ -175,7 +172,7 @@ if(lose_multiple_charges) // if the shield has health like damage we'll lose charges equal to the damage of the hit charge_loss = damage - else if(!lose_charge_on_damageless && !damage) + else if(damage < 3) charge_loss = 0 adjust_charge(-charge_loss) @@ -197,14 +194,3 @@ owner.visible_message(span_danger("[owner]'s shields deflect [attack_text] in a shower of sparks!")) if(current_charges <= 0) owner.visible_message(span_warning("[owner]'s shield overloads!")) - -/datum/component/shielded/proc/check_recharge_rune(datum/source, obj/item/recharge_rune, mob/living/user) - SIGNAL_HANDLER - - if(!istype(recharge_rune, recharge_path)) - return - . = COMPONENT_NO_AFTERATTACK - - adjust_charge(charge_recovery) - to_chat(user, span_notice("You charge \the [parent]. It can now absorb [current_charges] hits.")) - qdel(recharge_rune) diff --git a/code/modules/antagonists/wizard/equipment/spellbook_entries/defensive.dm b/code/modules/antagonists/wizard/equipment/spellbook_entries/defensive.dm index 585385e9d2d..9a55eecd953 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook_entries/defensive.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook_entries/defensive.dm @@ -147,12 +147,7 @@ if(!user.dropItemToGround(user.wear_suit) || !user.dropItemToGround(user.head)) return mod.quick_activation() - -/datum/spellbook_entry/item/battlemage_charge - name = "Battlemage Armour Charges" - desc = "A powerful defensive rune, it will grant eight additional charges to a battlemage shield." - item_path = /obj/item/wizard_armour_charge - category = SPELLBOOK_CATEGORY_DEFENSIVE - cost = 1 + var/obj/item/mod/module/eradication_lock/lock_module = locate() in mod.modules + lock_module.used() #undef SPELLBOOK_CATEGORY_DEFENSIVE diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index c5d58e0bd16..4c3de4475f5 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -299,11 +299,3 @@ stickman.faction |= summoner.faction - FACTION_NEUTRAL //These bad boys shouldn't inherit the neutral faction from the crew COOLDOWN_START(src, summoning_cooldown, 3 SECONDS) - - -// The actual code for this is handled in the shielded component, see [/datum/component/shielded/proc/check_recharge_rune] -/obj/item/wizard_armour_charge - name = "battlemage shield charges" - desc = "A powerful rune that will increase the number of hits a suit of battlemage armour can take before failing.." - icon = 'icons/effects/anomalies.dmi' - icon_state = "flux" diff --git a/code/modules/mod/mod_theme.dm b/code/modules/mod/mod_theme.dm index 1f9de066352..44e58ef580a 100644 --- a/code/modules/mod/mod_theme.dm +++ b/code/modules/mod/mod_theme.dm @@ -1494,8 +1494,8 @@ resistance_flags = FIRE_PROOF|ACID_PROOF max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT siemens_coefficient = 0 - complexity_max = DEFAULT_MAX_COMPLEXITY - 5 - slowdown_deployed = 0.25 + complexity_max = DEFAULT_MAX_COMPLEXITY + slowdown_deployed = 0 ui_theme = "wizard" inbuilt_modules = list(/obj/item/mod/module/anti_magic/wizard) allowed_suit_storage = list( diff --git a/code/modules/mod/mod_types.dm b/code/modules/mod/mod_types.dm index 1b442ed9619..49d54d2372b 100644 --- a/code/modules/mod/mod_types.dm +++ b/code/modules/mod/mod_types.dm @@ -396,6 +396,10 @@ /obj/item/mod/module/energy_shield/wizard, /obj/item/mod/module/emp_shield/advanced, /obj/item/mod/module/quick_cuff, + /obj/item/mod/module/noslip, + /obj/item/mod/module/welding, + /obj/item/mod/module/rad_protection, + /obj/item/mod/module/eradication_lock, ) /obj/item/mod/control/pre_equipped/ninja diff --git a/code/modules/mod/modules/modules_antag.dm b/code/modules/mod/modules/modules_antag.dm index 7f9d113b124..27393e06961 100644 --- a/code/modules/mod/modules/modules_antag.dm +++ b/code/modules/mod/modules/modules_antag.dm @@ -140,8 +140,6 @@ var/charge_recovery = 1 /// Whether or not this shield can lose multiple charges. var/lose_multiple_charges = FALSE - /// The item path to recharge this shielkd. - var/recharge_path = null /// The icon file of the shield. var/shield_icon_file = 'icons/effects/effects.dmi' /// The icon_state of the shield. @@ -154,8 +152,16 @@ charges = max_charges /obj/item/mod/module/energy_shield/on_part_activation() - mod.AddComponent(/datum/component/shielded, max_charges = max_charges, recharge_start_delay = recharge_start_delay, charge_increment_delay = charge_increment_delay, \ - charge_recovery = charge_recovery, lose_multiple_charges = lose_multiple_charges, recharge_path = recharge_path, starting_charges = charges, shield_icon_file = shield_icon_file, shield_icon = shield_icon) + mod.AddComponent(\ + /datum/component/shielded, \ + max_charges = max_charges, \ + recharge_start_delay = recharge_start_delay, \ + charge_increment_delay = charge_increment_delay, \ + charge_recovery = charge_recovery, \ + lose_multiple_charges = lose_multiple_charges, \ + starting_charges = charges, \ + shield_icon_file = shield_icon_file, \ + shield_icon = shield_icon) RegisterSignal(mod.wearer, COMSIG_LIVING_CHECK_BLOCK, PROC_REF(shield_reaction)) /obj/item/mod/module/energy_shield/on_part_deactivation(deleting = FALSE) @@ -188,12 +194,9 @@ icon_state = "battlemage_shield" idle_power_cost = 0 //magic use_energy_cost = 0 //magic too - max_charges = 15 - recharge_start_delay = 0 SECONDS - charge_recovery = 8 + max_charges = 5 shield_icon_file = 'icons/effects/magic.dmi' shield_icon = "mageshield" - recharge_path = /obj/item/wizard_armour_charge required_slots = list() ///Magic Nullifier - Protects you from magic.