From 4d51a932d2d0ebca6168f2809a3ff56672ed94e9 Mon Sep 17 00:00:00 2001 From: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com> Date: Sat, 30 Nov 2024 04:51:41 -0500 Subject: [PATCH] Refactors ebows and kpa's to the same parent (#11939) * recharging energy weps * that too * oops --- _maps/RuinGeneration/17x17_charliecrew.dmm | 2 +- _maps/shuttles/hunter/hunter_bounty.dmm | 2 +- beestation.dme | 1 + code/game/objects/items/storage/belt.dm | 2 +- .../game/objects/items/storage/uplink_kits.dm | 2 +- .../role_preference/role_antagonists.dm | 2 +- code/modules/clothing/outfits/standard.dm | 2 +- code/modules/clothing/spacesuits/hardsuit.dm | 8 +- code/modules/clothing/suits/cloaks.dm | 2 +- code/modules/clothing/suits/wintercoats.dm | 2 +- code/modules/jobs/job_types/shaft_miner.dm | 4 +- .../modules/mining/equipment/explorer_gear.dm | 4 +- code/modules/mining/machine_vending.dm | 2 +- code/modules/mining/mine_items.dm | 2 +- code/modules/mining/minebot.dm | 2 +- .../mob/living/silicon/robot/robot_modules.dm | 2 +- code/modules/projectiles/gun.dm | 2 +- .../guns/energy/kinetic_accelerator.dm | 166 +++++------------- .../projectiles/guns/energy/recharge.dm | 147 ++++++++++++++++ .../projectiles/guns/energy/special.dm | 44 ----- .../research/designs/weapon_designs.dm | 2 +- .../spells/spell_types/rightandwrong.dm | 4 +- code/modules/uplink/uplink_items.dm | 4 +- 23 files changed, 221 insertions(+), 189 deletions(-) create mode 100644 code/modules/projectiles/guns/energy/recharge.dm diff --git a/_maps/RuinGeneration/17x17_charliecrew.dmm b/_maps/RuinGeneration/17x17_charliecrew.dmm index c51fd1c848505..d21194279512e 100644 --- a/_maps/RuinGeneration/17x17_charliecrew.dmm +++ b/_maps/RuinGeneration/17x17_charliecrew.dmm @@ -116,7 +116,7 @@ /turf/open/floor/iron, /area/ruin/unpowered) "hQ" = ( -/obj/item/gun/energy/kinetic_accelerator, +/obj/item/gun/energy/recharge/kinetic_accelerator, /obj/structure/rack, /obj/effect/turf_decal/tile/purple, /turf/open/floor/iron/white, diff --git a/_maps/shuttles/hunter/hunter_bounty.dmm b/_maps/shuttles/hunter/hunter_bounty.dmm index 30b300768d265..b59efb7fe7381 100644 --- a/_maps/shuttles/hunter/hunter_bounty.dmm +++ b/_maps/shuttles/hunter/hunter_bounty.dmm @@ -68,7 +68,7 @@ }, /obj/item/gun/energy/e_gun/mini, /obj/item/gun/energy/e_gun/mini, -/obj/item/gun/energy/kinetic_accelerator/crossbow/large{ +/obj/item/gun/energy/recharge/ebow/large{ pixel_y = -8; pin = /obj/item/firing_pin }, diff --git a/beestation.dme b/beestation.dme index 0bf66503a6aec..91f6f964e1b09 100644 --- a/beestation.dme +++ b/beestation.dme @@ -3622,6 +3622,7 @@ #include "code\modules\projectiles\guns\energy\laser_gatling.dm" #include "code\modules\projectiles\guns\energy\mounted.dm" #include "code\modules\projectiles\guns\energy\pulse.dm" +#include "code\modules\projectiles\guns\energy\recharge.dm" #include "code\modules\projectiles\guns\energy\special.dm" #include "code\modules\projectiles\guns\energy\stun.dm" #include "code\modules\projectiles\guns\magic\staff.dm" diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index ac463a578ca7e..455251c530167 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -468,7 +468,7 @@ /obj/item/skeleton_key, /obj/item/discovery_scanner, /obj/item/gun/energy/e_gun/mini/exploration, - /obj/item/gun/energy/kinetic_accelerator, + /obj/item/gun/energy/recharge/kinetic_accelerator, /obj/item/gun/energy/plasmacutter, /obj/item/grenade/exploration, /obj/item/exploration_detonator, diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index bfde721929f7c..83c65bd81ca00 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -32,7 +32,7 @@ new /obj/item/chameleon(src) // 7 tc if("stealth") - new /obj/item/gun/energy/kinetic_accelerator/crossbow(src) + new /obj/item/gun/energy/recharge/ebow(src) new /obj/item/pen/sleepy(src) new /obj/item/healthanalyzer/rad_laser(src) new /obj/item/chameleon(src) diff --git a/code/modules/antagonists/role_preference/role_antagonists.dm b/code/modules/antagonists/role_preference/role_antagonists.dm index 55c885ceb53a0..44111cecfddfe 100644 --- a/code/modules/antagonists/role_preference/role_antagonists.dm +++ b/code/modules/antagonists/role_preference/role_antagonists.dm @@ -32,7 +32,7 @@ gloves = /obj/item/clothing/gloves/combat mask = /obj/item/clothing/mask/gas l_hand = /obj/item/melee/transforming/energy/sword - r_hand = /obj/item/gun/energy/kinetic_accelerator/crossbow + r_hand = /obj/item/gun/energy/recharge/ebow /datum/outfit/traitor/post_equip(mob/living/carbon/human/H, visualsOnly) var/obj/item/melee/transforming/energy/sword/sword = locate() in H.held_items diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 1d21dce3b330b..c215d0e44b4a2 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -219,7 +219,7 @@ qdel(briefcase_item) for(var/i = 3 to 0 step -1) SEND_SIGNAL(sec_briefcase, COMSIG_TRY_STORAGE_INSERT, new /obj/item/stack/spacecash/c1000, null, TRUE, TRUE) - SEND_SIGNAL(sec_briefcase, COMSIG_TRY_STORAGE_INSERT, new /obj/item/gun/energy/kinetic_accelerator/crossbow, null, TRUE, TRUE) + SEND_SIGNAL(sec_briefcase, COMSIG_TRY_STORAGE_INSERT, new /obj/item/gun/energy/recharge/ebow, null, TRUE, TRUE) SEND_SIGNAL(sec_briefcase, COMSIG_TRY_STORAGE_INSERT, new /obj/item/gun/ballistic/revolver/mateba, null, TRUE, TRUE) SEND_SIGNAL(sec_briefcase, COMSIG_TRY_STORAGE_INSERT, new /obj/item/ammo_box/a357, null, TRUE, TRUE) SEND_SIGNAL(sec_briefcase, COMSIG_TRY_STORAGE_INSERT, new /obj/item/grenade/plastic/x4, null, TRUE, TRUE) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 2a17d4a2f90a0..bb3793fd174d5 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -351,7 +351,7 @@ heat_protection = HEAD armor = list(MELEE = 30, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 50, BIO = 100, RAD = 50, FIRE = 50, ACID = 75, STAMINA = 40, BLEED = 70) light_range = 7 - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/recharge/kinetic_accelerator) high_pressure_multiplier = 0.6 /obj/item/clothing/head/helmet/space/hardsuit/mining/Initialize(mapload) @@ -386,7 +386,7 @@ heat_protection = HEAD armor = list(MELEE = 35, BULLET = 15, LASER = 20, ENERGY = 10, BOMB = 50, BIO = 100, RAD = 50, FIRE = 50, ACID = 75, STAMINA = 20, BLEED = 70) light_range = 6 - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/recharge/kinetic_accelerator) actions_types = list( /datum/action/item_action/toggle_helmet_light, /datum/action/item_action/toggle_beacon_hud/explorer @@ -888,7 +888,7 @@ icon_state = "hardsuit0-ancient" item_state = "anc_helm" armor = list(MELEE = 30, BULLET = 5, LASER = 5, ENERGY = 10, BOMB = 50, BIO = 100, RAD = 100, FIRE = 100, ACID = 75, STAMINA = 30, BLEED = 70) - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/gun/energy/plasmacutter, /obj/item/gun/energy/plasmacutter/adv, /obj/item/gun/energy/laser/retro, /obj/item/gun/energy/laser/retro/old, /obj/item/gun/energy/e_gun/old) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/recharge/kinetic_accelerator, /obj/item/gun/energy/plasmacutter, /obj/item/gun/energy/plasmacutter/adv, /obj/item/gun/energy/laser/retro, /obj/item/gun/energy/laser/retro/old, /obj/item/gun/energy/e_gun/old) hardsuit_type = "ancient" resistance_flags = FIRE_PROOF @@ -898,7 +898,7 @@ icon_state = "hardsuit-ancient" item_state = "anc_hardsuit" armor = list(MELEE = 30, BULLET = 5, LASER = 5, ENERGY = 10, BOMB = 50, BIO = 100, RAD = 100, FIRE = 100, ACID = 75, STAMINA = 30, BLEED = 70) - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/bag/ore, /obj/item/pickaxe, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/gun/energy/laser/retro, /obj/item/gun/energy/laser/retro/old, /obj/item/gun/energy/e_gun/old) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/bag/ore, /obj/item/pickaxe, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/recharge/kinetic_accelerator, /obj/item/gun/energy/laser/retro, /obj/item/gun/energy/laser/retro/old, /obj/item/gun/energy/e_gun/old) slowdown = 3 helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ancient resistance_flags = FIRE_PROOF diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index 2e2214d96b77f..cd1322e2543bb 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -81,7 +81,7 @@ name = "drake armour" icon_state = "dragon" desc = "A suit of armour fashioned from the remains of an ash drake." - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/spear) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/recharge/kinetic_accelerator, /obj/item/pickaxe, /obj/item/spear) armor = list(MELEE = 70, BULLET = 30, LASER = 50, ENERGY = 40, BOMB = 70, BIO = 60, RAD = 50, FIRE = 100, ACID = 100, STAMINA = 30, BLEED = 50) hoodtype = /obj/item/clothing/head/hooded/cloakhood/drake heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS diff --git a/code/modules/clothing/suits/wintercoats.dm b/code/modules/clothing/suits/wintercoats.dm index 7a65f42337de7..5423c6961e8fa 100644 --- a/code/modules/clothing/suits/wintercoats.dm +++ b/code/modules/clothing/suits/wintercoats.dm @@ -362,7 +362,7 @@ /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, - /obj/item/gun/energy/kinetic_accelerator, + /obj/item/gun/energy/recharge/kinetic_accelerator, /obj/item/reagent_containers/cup/glass/bottle, /obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm index 1c3ad34cdf10c..c22955627c696 100644 --- a/code/modules/jobs/job_types/shaft_miner.dm +++ b/code/modules/jobs/job_types/shaft_miner.dm @@ -52,7 +52,7 @@ duffelbag = /obj/item/storage/backpack/duffelbag box = /obj/item/storage/box/survival/mining - chameleon_extras = /obj/item/gun/energy/kinetic_accelerator + chameleon_extras = /obj/item/gun/energy/recharge/kinetic_accelerator /datum/outfit/job/miner/equipped name = "Shaft Miner (Equipment)" @@ -66,7 +66,7 @@ /obj/item/knife/combat/survival=1, /obj/item/mining_voucher=1, /obj/item/t_scanner/adv_mining_scanner/lesser=1, - /obj/item/gun/energy/kinetic_accelerator=1,\ + /obj/item/gun/energy/recharge/kinetic_accelerator=1,\ /obj/item/stack/marker_beacon/ten=1) /datum/outfit/job/miner/equipped/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index 080ee5fad139e..467d6464a9af5 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -19,7 +19,7 @@ /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, - /obj/item/gun/energy/kinetic_accelerator, + /obj/item/gun/energy/recharge/kinetic_accelerator, /obj/item/pickaxe ) resistance_flags = FIRE_PROOF @@ -84,7 +84,7 @@ resistance_flags = FIRE_PROOF | LAVA_PROOF slowdown = 0 armor = list(MELEE = 70, BULLET = 40, LASER = 20, ENERGY = 20, BOMB = 50, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, STAMINA = 40, BLEED = 50) - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/recharge/kinetic_accelerator, /obj/item/pickaxe) high_pressure_multiplier = 0.6 /obj/item/clothing/suit/space/hostile_environment/Initialize(mapload) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 85c8da179e38d..319673f7c94c4 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -157,7 +157,7 @@ icon_deny = "mining-deny" prize_list = list( //if you add something to this, please, for the love of god, sort it by price/type. use tabs and not spaces. //Direct mining tools go here - new /datum/data/vendor_equipment("Proto-Kinetic Accelerator", /obj/item/gun/energy/kinetic_accelerator, 500), + new /datum/data/vendor_equipment("Proto-Kinetic Accelerator", /obj/item/gun/energy/recharge/kinetic_accelerator, 500), new /datum/data/vendor_equipment("Proto-Kinetic Crusher", /obj/item/kinetic_crusher, 800), new /datum/data/vendor_equipment("Mining Conscription Kit", /obj/item/storage/backpack/duffelbag/mining_conscript, 1000), new /datum/data/vendor_equipment("Plasma Cutter", /obj/item/gun/energy/plasmacutter, 2000), diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 63cb84d979023..7b92133cf8d0c 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -63,7 +63,7 @@ new /obj/item/storage/bag/plants(src) new /obj/item/storage/bag/ore(src) new /obj/item/t_scanner/adv_mining_scanner/lesser(src) - new /obj/item/gun/energy/kinetic_accelerator(src) + new /obj/item/gun/energy/recharge/kinetic_accelerator(src) new /obj/item/clothing/glasses/meson(src) new /obj/item/survivalcapsule(src) new /obj/item/assault_pod/mining(src) diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index 8d203c326d6e2..22541a75e7d9d 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -53,7 +53,7 @@ var/mode = MODE_MINING /// What mode the minebot is in var/mining_enabled = FALSE /// Whether or not the minebot will mine new ores while in mining mode. var/list/installed_upgrades /// A list of all the minebot's installed upgrades - var/obj/item/gun/energy/kinetic_accelerator/minebot/stored_pka /// The minebot's stored PKA + var/obj/item/gun/energy/recharge/kinetic_accelerator/minebot/stored_pka /// The minebot's stored PKA var/obj/item/gun/energy/plasmacutter/stored_cutter /// The minebot's stored plasma cutter var/obj/item/pickaxe/drill/stored_drill /// The minebot's stored drill var/obj/item/t_scanner/adv_mining_scanner/stored_scanner /// The minebot's stored mining scanner diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 3a3cd3f151ba2..3e15fb60590f4 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -592,7 +592,7 @@ /obj/item/weldingtool/cyborg/mini, /obj/item/extinguisher/mini, /obj/item/storage/bag/sheetsnatcher/borg, - /obj/item/gun/energy/kinetic_accelerator/cyborg, + /obj/item/gun/energy/recharge/kinetic_accelerator/cyborg, /obj/item/gps/cyborg, /obj/item/stack/marker_beacon) emag_modules = list(/obj/item/borg/stun) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index b98d0f1e51171..a122e86690b80 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -231,7 +231,7 @@ return loc != user ? TRUE : FALSE /obj/item/gun/proc/shoot_with_empty_chamber(mob/living/user as mob|obj) - balloon_alert(user, "[src] clicks.") + balloon_alert_to_viewers("*click*") playsound(src, dry_fire_sound, 30, TRUE) /obj/item/gun/proc/fire_sounds() diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 4311e4548f739..ab643adb8de73 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -1,37 +1,28 @@ -/obj/item/gun/energy/kinetic_accelerator +/obj/item/gun/energy/recharge/kinetic_accelerator name = "proto-kinetic accelerator" desc = "A self recharging, ranged mining tool that does increased damage in low pressure." - automatic_charge_overlays = FALSE icon_state = "kineticgun" item_state = "kineticgun" ammo_type = list(/obj/item/ammo_casing/energy/kinetic) - cell_type = /obj/item/stock_parts/cell/emproof item_flags = NONE obj_flags = UNIQUE_RENAME weapon_weight = WEAPON_LIGHT - automatic_charge_overlays = FALSE - var/overheat_time = 16 - var/holds_charge = FALSE - var/unique_frequency = FALSE // modified by KA modkits - var/overheat = FALSE can_bayonet = TRUE knife_x_offset = 20 knife_y_offset = 12 has_weapon_slowdown = FALSE - + var/mob/holder var/max_mod_capacity = 100 var/list/modkits = list() - var/recharge_timerid - -/obj/item/gun/energy/kinetic_accelerator/add_seclight_point() +/obj/item/gun/energy/recharge/kinetic_accelerator/add_seclight_point() AddComponent(/datum/component/seclite_attachable, \ light_overlay_icon = 'icons/obj/guns/flashlights.dmi', \ light_overlay = "flight", \ overlay_x = 15, \ overlay_y = 9) -/obj/item/gun/energy/kinetic_accelerator/examine(mob/user) +/obj/item/gun/energy/recharge/kinetic_accelerator/examine(mob/user) . = ..() if(max_mod_capacity) . += "[get_remaining_mod_capacity()]% mod capacity remaining." @@ -39,7 +30,7 @@ var/obj/item/borg/upgrade/modkit/M = A . += "[icon2html(M, user)] There is \a [M] installed, using [M.cost]% capacity." -/obj/item/gun/energy/kinetic_accelerator/crowbar_act(mob/living/user, obj/item/I) +/obj/item/gun/energy/recharge/kinetic_accelerator/crowbar_act(mob/living/user, obj/item/I) . = TRUE if(modkits.len) to_chat(user, "You pry the modifications out.") @@ -49,113 +40,44 @@ else to_chat(user, "There are no modifications currently installed.") -/obj/item/gun/energy/kinetic_accelerator/attackby(obj/item/I, mob/user) +/obj/item/gun/energy/recharge/kinetic_accelerator/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/borg/upgrade/modkit)) var/obj/item/borg/upgrade/modkit/MK = I MK.install(src, user) else ..() -/obj/item/gun/energy/kinetic_accelerator/proc/get_remaining_mod_capacity() +/obj/item/gun/energy/recharge/kinetic_accelerator/proc/get_remaining_mod_capacity() var/current_capacity_used = 0 for(var/A in get_modkits()) var/obj/item/borg/upgrade/modkit/M = A current_capacity_used += M.cost return max_mod_capacity - current_capacity_used -/obj/item/gun/energy/kinetic_accelerator/proc/get_modkits() +/obj/item/gun/energy/recharge/kinetic_accelerator/proc/get_modkits() . = list() for(var/A in modkits) . += A -/obj/item/gun/energy/kinetic_accelerator/proc/modify_projectile(obj/projectile/kinetic/K) +/obj/item/gun/energy/recharge/kinetic_accelerator/proc/modify_projectile(obj/projectile/kinetic/K) K.kinetic_gun = src //do something special on-hit, easy! for(var/A in get_modkits()) var/obj/item/borg/upgrade/modkit/M = A M.modify_projectile(K) -/obj/item/gun/energy/kinetic_accelerator/cyborg +/obj/item/gun/energy/recharge/kinetic_accelerator/cyborg holds_charge = TRUE unique_frequency = TRUE requires_wielding = FALSE max_mod_capacity = 80 -/obj/item/gun/energy/kinetic_accelerator/minebot +/obj/item/gun/energy/recharge/kinetic_accelerator/minebot trigger_guard = TRIGGER_GUARD_ALLOW_ALL - overheat_time = 20 + recharge_time = 2 SECONDS holds_charge = TRUE requires_wielding = FALSE unique_frequency = TRUE -/obj/item/gun/energy/kinetic_accelerator/Initialize(mapload) - . = ..() - if(!holds_charge) - empty() - -/obj/item/gun/energy/kinetic_accelerator/shoot_live_shot(mob/user) - . = ..() - attempt_reload(user) - -/obj/item/gun/energy/kinetic_accelerator/equipped(mob/user) - . = ..() - if(!can_shoot()) - attempt_reload(user) - -/obj/item/gun/energy/kinetic_accelerator/dropped() - ..() - if(!QDELING(src) && !holds_charge) - // Put it on a delay because moving item from slot to hand - // calls dropped(). - addtimer(CALLBACK(src, PROC_REF(empty_if_not_held)), 2) - -/obj/item/gun/energy/kinetic_accelerator/proc/empty_if_not_held() - if(!ismob(loc)) - empty() - -/obj/item/gun/energy/kinetic_accelerator/proc/empty() - if(cell) - cell.use(cell.charge) - update_icon() - -/obj/item/gun/energy/kinetic_accelerator/proc/attempt_reload(mob/user, recharge_time) - if(!cell) - return - if(overheat) - return - if(!recharge_time) - recharge_time = overheat_time - overheat = TRUE - - var/carried = 0 - if(!unique_frequency) - for(var/obj/item/gun/energy/kinetic_accelerator/K in loc.GetAllContents()) - if(!K.unique_frequency) - carried++ - - carried = max(carried, 1) - else - carried = 1 - - // If we are overriding a crosshair, then clear it - if (deltimer(recharge_timerid)) - user?.client.clear_cooldown_cursor() - recharge_timerid = addtimer(CALLBACK(src, PROC_REF(reload)), recharge_time * carried, TIMER_STOPPABLE) - user?.client?.give_cooldown_cursor(recharge_time * carried + 1) - -/obj/item/gun/energy/kinetic_accelerator/proc/reload() - cell.give(cell.maxcharge) - if(!suppressed) - playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1) - else - to_chat(loc, "[src] silently charges up.") - update_icon() - overheat = FALSE - -/obj/item/gun/energy/kinetic_accelerator/update_overlays() - . = ..() - if(!can_shoot()) - . += "[icon_state]_empty" - //Casing /obj/item/ammo_casing/energy/kinetic projectile_type = /obj/projectile/kinetic @@ -165,8 +87,8 @@ /obj/item/ammo_casing/energy/kinetic/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") ..() - if(loc && istype(loc, /obj/item/gun/energy/kinetic_accelerator)) - var/obj/item/gun/energy/kinetic_accelerator/KA = loc + if(loc && istype(loc, /obj/item/gun/energy/recharge/kinetic_accelerator)) + var/obj/item/gun/energy/recharge/kinetic_accelerator/KA = loc KA.modify_projectile(BB) //Projectiles @@ -181,7 +103,7 @@ var/pressure_decrease_active = FALSE var/pressure_decrease = 0.5 - var/obj/item/gun/energy/kinetic_accelerator/kinetic_gun + var/obj/item/gun/energy/recharge/kinetic_accelerator/kinetic_gun /obj/projectile/kinetic/Destroy() kinetic_gun = null @@ -252,7 +174,7 @@ . += "Occupies [cost]% of mod capacity." /obj/item/borg/upgrade/modkit/attackby(obj/item/A, mob/user) - if(istype(A, /obj/item/gun/energy/kinetic_accelerator) && !issilicon(user)) + if(istype(A, /obj/item/gun/energy/recharge/kinetic_accelerator) && !issilicon(user)) install(A, user) else ..() @@ -260,10 +182,10 @@ /obj/item/borg/upgrade/modkit/action(mob/living/silicon/robot/R) . = ..() if (.) - for(var/obj/item/gun/energy/kinetic_accelerator/cyborg/H in R.module.modules) + for(var/obj/item/gun/energy/recharge/kinetic_accelerator/cyborg/H in R.module.modules) return install(H, usr) -/obj/item/borg/upgrade/modkit/proc/install(obj/item/gun/energy/kinetic_accelerator/KA, mob/user) +/obj/item/borg/upgrade/modkit/proc/install(obj/item/gun/energy/recharge/kinetic_accelerator/KA, mob/user) . = TRUE if(restricted_mod_type) var/restricted_mod_count = 0 @@ -290,10 +212,10 @@ /obj/item/borg/upgrade/modkit/deactivate(mob/living/silicon/robot/R, user = usr) . = ..() if (.) - for(var/obj/item/gun/energy/kinetic_accelerator/cyborg/KA in R.module.modules) + for(var/obj/item/gun/energy/recharge/kinetic_accelerator/cyborg/KA in R.module.modules) uninstall(KA) -/obj/item/borg/upgrade/modkit/proc/uninstall(obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/proc/uninstall(obj/item/gun/energy/recharge/kinetic_accelerator/KA) forceMove(get_turf(KA)) KA.modkits -= src @@ -302,11 +224,11 @@ /obj/item/borg/upgrade/modkit/proc/modify_projectile(obj/projectile/kinetic/K) //use this one for effects you want to trigger before any damage is done at all and before damage is decreased by pressure -/obj/item/borg/upgrade/modkit/proc/projectile_prehit(obj/projectile/kinetic/K, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/proc/projectile_prehit(obj/projectile/kinetic/K, atom/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA) //use this one for effects you want to trigger before mods that do damage -/obj/item/borg/upgrade/modkit/proc/projectile_strike_predamage(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/proc/projectile_strike_predamage(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA) //and this one for things that don't need to trigger before other damage-dealing mods -/obj/item/borg/upgrade/modkit/proc/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/proc/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA) //Range /obj/item/borg/upgrade/modkit/range @@ -335,13 +257,13 @@ modifier = 3.2 restricted_mod_type = /obj/item/borg/upgrade/modkit/cooldown/repeater -/obj/item/borg/upgrade/modkit/cooldown/install(obj/item/gun/energy/kinetic_accelerator/KA, mob/user) +/obj/item/borg/upgrade/modkit/cooldown/install(obj/item/gun/energy/recharge/kinetic_accelerator/KA, mob/user) . = ..() if(.) - KA.overheat_time -= modifier + KA.recharge_time -= modifier -/obj/item/borg/upgrade/modkit/cooldown/uninstall(obj/item/gun/energy/kinetic_accelerator/KA) - KA.overheat_time += modifier +/obj/item/borg/upgrade/modkit/cooldown/uninstall(obj/item/gun/energy/recharge/kinetic_accelerator/KA) + KA.recharge_time += modifier ..() @@ -353,7 +275,7 @@ restricted_mod_type = /obj/item/borg/upgrade/modkit/aoe maximum_of_type = 2 -/obj/item/borg/upgrade/modkit/aoe/install(obj/item/gun/energy/kinetic_accelerator/KA, mob/user) +/obj/item/borg/upgrade/modkit/aoe/install(obj/item/gun/energy/recharge/kinetic_accelerator/KA, mob/user) . = ..() if(.) for(var/obj/item/borg/upgrade/modkit/aoe/AOE in KA.modkits) //make sure only one of the aoe modules has values if somebody has multiple @@ -365,7 +287,7 @@ AOE.turf_aoe = FALSE AOE.stats_stolen = TRUE -/obj/item/borg/upgrade/modkit/aoe/uninstall(obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/aoe/uninstall(obj/item/gun/energy/recharge/kinetic_accelerator/KA) ..() modifier = initial(modifier) //get our modifiers back turf_aoe = initial(turf_aoe) @@ -374,7 +296,7 @@ /obj/item/borg/upgrade/modkit/aoe/modify_projectile(obj/projectile/kinetic/K) K.name = "kinetic explosion" -/obj/item/borg/upgrade/modkit/aoe/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/aoe/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA) if(stats_stolen) return new /obj/effect/temp_visual/explosion/fast(target_turf) @@ -418,7 +340,7 @@ modifier = -14 //Makes the cooldown 3 seconds(with no cooldown mods) if you miss. Don't miss. cost = 50 -/obj/item/borg/upgrade/modkit/cooldown/repeater/projectile_strike_predamage(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/cooldown/repeater/projectile_strike_predamage(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA) var/valid_repeat = FALSE if(isliving(target)) var/mob/living/L = target @@ -427,8 +349,8 @@ if(ismineralturf(target_turf)) valid_repeat = TRUE if(valid_repeat) - KA.overheat = FALSE - KA.attempt_reload(K.firer, KA.overheat_time * 0.25) //If you hit, the cooldown drops to 0.75 seconds. + KA.cell.use(KA.cell.charge) + KA.attempt_reload(K.firer, KA.recharge_time * 0.25) //If you hit, the cooldown drops to 0.75 seconds. /obj/item/borg/upgrade/modkit/lifesteal name = "lifesteal crystal" @@ -438,7 +360,7 @@ cost = 0 //Obtained only from chests in limited quantities var/static/list/damage_heal_order = list(BRUTE, BURN, OXY) -/obj/item/borg/upgrade/modkit/lifesteal/projectile_prehit(obj/projectile/kinetic/K, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/lifesteal/projectile_prehit(obj/projectile/kinetic/K, atom/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA) if(isliving(target) && isliving(K.firer)) var/mob/living/L = target if(L.stat == DEAD) @@ -452,7 +374,7 @@ restricted_mod_type = /obj/item/borg/upgrade/modkit/resonator_blasts modifier = 0.25 //A bonus 15 damage if you burst the field on a target, 60 if you lure them into it. -/obj/item/borg/upgrade/modkit/resonator_blasts/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/resonator_blasts/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA) if(target_turf && !ismineralturf(target_turf)) //Don't make fields on mineral turfs. var/obj/effect/temp_visual/resonance/R = locate(/obj/effect/temp_visual/resonance) in target_turf if(R) @@ -469,7 +391,7 @@ var/maximum_bounty = 25 var/list/bounties_reaped = list() -/obj/item/borg/upgrade/modkit/bounty/projectile_prehit(obj/projectile/kinetic/K, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/bounty/projectile_prehit(obj/projectile/kinetic/K, atom/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA) if(isliving(target)) var/mob/living/L = target var/list/existing_marks = L.has_status_effect_list(STATUS_EFFECT_SYPHONMARK) @@ -480,7 +402,7 @@ qdel(SM) L.apply_status_effect(STATUS_EFFECT_SYPHONMARK, src) -/obj/item/borg/upgrade/modkit/bounty/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/bounty/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA) if(isliving(target)) var/mob/living/L = target if(bounties_reaped[L.type]) @@ -518,12 +440,12 @@ cost = 0 restricted_mod_type = /obj/item/borg/upgrade/modkit/trigger_guard -/obj/item/borg/upgrade/modkit/trigger_guard/install(obj/item/gun/energy/kinetic_accelerator/KA, mob/user) +/obj/item/borg/upgrade/modkit/trigger_guard/install(obj/item/gun/energy/recharge/kinetic_accelerator/KA, mob/user) . = ..() if(.) KA.trigger_guard = TRIGGER_GUARD_ALLOW_ALL -/obj/item/borg/upgrade/modkit/trigger_guard/uninstall(obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/trigger_guard/uninstall(obj/item/gun/energy/recharge/kinetic_accelerator/KA) KA.trigger_guard = TRIGGER_GUARD_NORMAL ..() @@ -538,15 +460,21 @@ var/chassis_icon = "kineticgun_u" var/chassis_name = "super-kinetic accelerator" -/obj/item/borg/upgrade/modkit/chassis_mod/install(obj/item/gun/energy/kinetic_accelerator/KA, mob/user) +/obj/item/borg/upgrade/modkit/chassis_mod/install(obj/item/gun/energy/recharge/kinetic_accelerator/KA, mob/user) . = ..() if(.) KA.icon_state = chassis_icon KA.name = chassis_name + if(iscarbon(KA.loc)) + var/mob/living/carbon/holder = KA.loc + holder.update_inv_hands() -/obj/item/borg/upgrade/modkit/chassis_mod/uninstall(obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/chassis_mod/uninstall(obj/item/gun/energy/recharge/kinetic_accelerator/KA) KA.icon_state = initial(KA.icon_state) KA.name = initial(KA.name) + if(iscarbon(KA.loc)) + var/mob/living/carbon/holder = KA.loc + holder.update_inv_hands() ..() /obj/item/borg/upgrade/modkit/chassis_mod/orange diff --git a/code/modules/projectiles/guns/energy/recharge.dm b/code/modules/projectiles/guns/energy/recharge.dm new file mode 100644 index 0000000000000..75db236aba82f --- /dev/null +++ b/code/modules/projectiles/guns/energy/recharge.dm @@ -0,0 +1,147 @@ + + +//Recharge subtype - used by stuff like protokinetic accelerators and ebows, one shot at a time, recharges. +/obj/item/gun/energy/recharge + icon_state = "kineticgun" + base_icon_state = "kineticgun" + desc = "A self recharging gun. Holds one shot at a time." + automatic_charge_overlays = FALSE + cell_type = /obj/item/stock_parts/cell/emproof + /// If set to something, instead of an overlay, sets the icon_state directly. + var/no_charge_state + /// Does it hold charge when not put away? + var/holds_charge = FALSE + /// How much time we need to recharge + var/recharge_time = 1.6 SECONDS + /// Sound we use when recharged + var/recharge_sound = 'sound/weapons/kenetic_reload.ogg' + /// An ID for our recharging timer. + var/recharge_timerid + /// Do we recharge slower with more of our type? + var/unique_frequency = FALSE + +/obj/item/gun/energy/recharge/Initialize(mapload) + . = ..() + if(!holds_charge) + empty() + +/obj/item/gun/energy/recharge/shoot_live_shot(mob/living/user, pointblank = 0, atom/pbtarget = null, message = 1) + . = ..() + attempt_reload() + +/obj/item/gun/energy/recharge/equipped(mob/user) + . = ..() + if(!can_shoot()) + attempt_reload() + +/obj/item/gun/energy/recharge/dropped() + . = ..() + if(!QDELING(src) && !holds_charge) + // Put it on a delay because moving item from slot to hand + // calls dropped(). + addtimer(CALLBACK(src, PROC_REF(empty_if_not_held)), 0.1 SECONDS) + +/obj/item/gun/energy/recharge/process_chamber() + . = ..() + attempt_reload() + +/obj/item/gun/energy/recharge/proc/empty_if_not_held() + if(!ismob(loc)) + empty() + deltimer(recharge_timerid) + +/obj/item/gun/energy/recharge/proc/empty() + if(cell) + cell.use(cell.charge) + update_appearance() + +/obj/item/gun/energy/recharge/proc/attempt_reload(mob/user, set_recharge_time) + if(!cell) + return + if(cell.charge == cell.maxcharge) + return + if(!set_recharge_time) + set_recharge_time = recharge_time + var/carried = 0 + if(!unique_frequency) + for(var/obj/item/gun/energy/recharge/recharging_gun in loc.GetAllContents()) + if(recharging_gun.type != type || recharging_gun.unique_frequency) + continue + carried++ + carried = max(carried, 1) + + // If we are overriding a crosshair, then clear it + if (deltimer(recharge_timerid)) + user?.client.clear_cooldown_cursor() + recharge_timerid = addtimer(CALLBACK(src, PROC_REF(reload)), set_recharge_time * carried, TIMER_STOPPABLE) + user?.client?.give_cooldown_cursor(set_recharge_time * carried + 1) + +/obj/item/gun/energy/recharge/emp_act(severity) + return + +/obj/item/gun/energy/recharge/proc/reload() + cell.give(cell.maxcharge) + if(!suppressed && recharge_sound) + playsound(src.loc, recharge_sound, 60, TRUE) + else + to_chat(loc, "[src] silently charges up.") + update_appearance() + +/obj/item/gun/energy/recharge/update_overlays() + . = ..() + if(!no_charge_state && !can_shoot()) + . += "[base_icon_state]_empty" + +/obj/item/gun/energy/recharge/update_icon_state() + . = ..() + if(no_charge_state && !can_shoot()) + icon_state = no_charge_state + +/obj/item/gun/energy/recharge/ebow + name = "mini energy crossbow" + desc = "A weapon favored by syndicate stealth specialists." + icon_state = "crossbow" + base_icon_state = "crossbow" + item_state = "crossbow" + no_charge_state = "crossbow_empty" + w_class = WEIGHT_CLASS_SMALL + custom_materials = list(/datum/material/iron=2000) + suppressed = TRUE + ammo_type = list(/obj/item/ammo_casing/energy/bolt) + recharge_time = 2 SECONDS + holds_charge = TRUE + unique_frequency = TRUE + can_bayonet = TRUE + knife_x_offset = 20 + knife_y_offset = 12 + +/obj/item/gun/energy/recharge/ebow/halloween + name = "candy corn crossbow" + desc = "A weapon favored by Syndicate trick-or-treaters." + icon_state = "crossbow_halloween" + base_icon_state = "crossbow_halloween" + no_charge_state = "crossbow_halloween_empty" + ammo_type = list(/obj/item/ammo_casing/energy/bolt/halloween) + +/obj/item/gun/energy/recharge/ebow/large + name = "energy crossbow" + desc = "A reverse engineered weapon using syndicate technology." + icon_state = "crossbowlarge" + base_icon_state = "crossbowlarge" + no_charge_state = "crossbowlarge_empty" + w_class = WEIGHT_CLASS_NORMAL + custom_materials = list(/datum/material/iron=4000) + suppressed = null + ammo_type = list(/obj/item/ammo_casing/energy/bolt/large) + pin = null + +/obj/item/gun/energy/recharge/ebow/radbow + name = "gamma bow" + desc = "A weapon favored by Madmen." + icon_state = "crossbow" + item_state = "crossbow" + ammo_type = list(/obj/item/ammo_casing/energy/bolt/radbolt) + recharge_time = 250 + +/obj/item/gun/energy/recharge/ebow/add_seclight_point() + return diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 416c973ddfaf4..6fa3812ad6a64 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -97,50 +97,6 @@ ammo_type = list(/obj/item/ammo_casing/energy/mindflayer) ammo_x_offset = 2 -/obj/item/gun/energy/kinetic_accelerator/crossbow - name = "mini energy crossbow" - desc = "A weapon favored by syndicate stealth specialists." - icon_state = "crossbow" - item_state = "crossbow" - w_class = WEIGHT_CLASS_SMALL - custom_materials = list(/datum/material/iron=2000) - suppressed = TRUE - ammo_type = list(/obj/item/ammo_casing/energy/bolt) - weapon_weight = WEAPON_LIGHT - obj_flags = 0 - overheat_time = 20 - holds_charge = TRUE - unique_frequency = TRUE - max_mod_capacity = 0 - -/obj/item/gun/energy/kinetic_accelerator/crossbow/add_seclight_point() - return - -/obj/item/gun/energy/kinetic_accelerator/crossbow/halloween - name = "candy corn crossbow" - desc = "A weapon favored by Syndicate trick-or-treaters." - icon_state = "crossbow_halloween" - item_state = "crossbow" - ammo_type = list(/obj/item/ammo_casing/energy/bolt/halloween) - -/obj/item/gun/energy/kinetic_accelerator/crossbow/large - name = "energy crossbow" - desc = "A reverse engineered weapon using syndicate technology." - icon_state = "crossbowlarge" - w_class = WEIGHT_CLASS_NORMAL - custom_materials = list(/datum/material/iron=4000) - suppressed = null - ammo_type = list(/obj/item/ammo_casing/energy/bolt/large) - pin = null - -/obj/item/gun/energy/kinetic_accelerator/crossbow/radbow - name = "gamma bow" - desc = "A weapon favored by Madmen." - icon_state = "crossbow" - item_state = "crossbow" - ammo_type = list(/obj/item/ammo_casing/energy/bolt/radbolt) - overheat_time = 250 - /obj/item/gun/energy/plasmacutter name = "plasma cutter" desc = "A mining tool capable of expelling concentrated plasma bursts. You could use it to cut limbs off xenos! Or, you know, mine stuff." diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 4fe37792e9299..c43da8e7f5985 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -396,7 +396,7 @@ id = "largecrossbow" build_type = PROTOLATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 1500, /datum/material/uranium = 1500, /datum/material/silver = 1500) - build_path = /obj/item/gun/energy/kinetic_accelerator/crossbow/large + build_path = /obj/item/gun/energy/recharge/ebow/large category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY diff --git a/code/modules/spells/spell_types/rightandwrong.dm b/code/modules/spells/spell_types/rightandwrong.dm index 7e5371b6d878a..c301093154e1a 100644 --- a/code/modules/spells/spell_types/rightandwrong.dm +++ b/code/modules/spells/spell_types/rightandwrong.dm @@ -23,7 +23,7 @@ GLOBAL_LIST_INIT(summoned_guns, list( /obj/item/pneumatic_cannon/speargun, /obj/item/gun/ballistic/automatic/mini_uzi, /obj/item/gun/energy/lasercannon, - /obj/item/gun/energy/kinetic_accelerator/crossbow/large, + /obj/item/gun/energy/recharge/ebow/large, /obj/item/gun/energy/e_gun/nuclear, /obj/item/gun/ballistic/automatic/proto, /obj/item/gun/ballistic/automatic/c20r, @@ -35,7 +35,7 @@ GLOBAL_LIST_INIT(summoned_guns, list( /obj/item/gun/energy/pulse/carbine, /obj/item/gun/energy/decloner, /obj/item/gun/energy/mindflayer, - /obj/item/gun/energy/kinetic_accelerator, + /obj/item/gun/energy/recharge/kinetic_accelerator, /obj/item/gun/energy/plasmacutter/adv, /obj/item/gun/energy/wormhole_projector, /obj/item/gun/ballistic/automatic/wt550, diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index b98bdcc0cff5c..750ed038d02c4 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -832,7 +832,7 @@ GLOBAL_LIST_INIT(illegal_tech_blacklist, typecacheof(list( and fire bolts tipped with dangerous toxins that will disorient and \ irradiate targets. It can produce an infinite number of bolts \ which automatically recharge roughly 25 seconds after each shot." - item = /obj/item/gun/energy/kinetic_accelerator/crossbow/radbow + item = /obj/item/gun/energy/recharge/ebow/radbow cost = 8 surplus = 50 @@ -844,7 +844,7 @@ GLOBAL_LIST_INIT(illegal_tech_blacklist, typecacheof(list( toxin that will damage and disorient targets, causing them to \ slur as if inebriated. It can produce an infinite number \ of bolts, but takes a small amount of time to automatically recharge after each shot." - item = /obj/item/gun/energy/kinetic_accelerator/crossbow + item = /obj/item/gun/energy/recharge/ebow cost = 12 surplus = 50 purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS)