Files
Bubberstation/code/modules/projectiles/guns/energy/crank_guns.dm
Cheshify 18ffabca05 Laser Musket & Smoothbore Disabler BUFFS (Crank it AND Run) (#86867)
## About The Pull Request
This rebalances the Laser Musket and Heroic Laser Musket

Replaces glasses with 2 drinking glasses in the crafting recipe
Removes 2-handed demand
Standard shot damage slightly increased and stamina damage greatly
decreased
Heroic shot made a 3-round scatter shot, very powerful, damage and
stamina damage decreased to compensate
Crank-charge weapons, except the thermal revolvers, can be charged while
moving
Muskets can also be worn on jackets

## Why It's Good For The Game

These things were severely underused, and I always kinda wanted them to
be crankable while you moved, I just didn't know how. This should also
help the Militiamen ERT be less of a joke. I would appreciate
balanceposters giving some advice on the numbers if you're seeing this.

The heroic musket is incredibly rare, and SHOULD be pretty powerful.
## Changelog
🆑
balance: laser muskets have been rebalanced
balance: crank weapons can be charged while moving
/🆑
2024-09-28 08:05:19 +12:00

129 lines
5.4 KiB
Plaintext

/obj/item/gun/energy/laser/musket
name = "laser musket"
desc = "A hand-crafted laser weapon, it has a hand crank on the side to charge it up."
icon_state = "musket"
inhand_icon_state = "musket"
worn_icon_state = "las_musket"
ammo_type = list(/obj/item/ammo_casing/energy/laser/musket)
slot_flags = ITEM_SLOT_BACK
obj_flags = UNIQUE_RENAME
/obj/item/gun/energy/laser/musket/add_bayonet_point()
AddComponent(/datum/component/bayonet_attachable, offset_x = 22, offset_y = 11)
/obj/item/gun/energy/laser/musket/Initialize(mapload)
. = ..()
AddComponent( \
/datum/component/crank_recharge, \
charging_cell = get_cell(), \
charge_amount = STANDARD_CELL_CHARGE * 0.5, \
cooldown_time = 2 SECONDS, \
charge_sound = 'sound/items/weapons/laser_crank.ogg', \
charge_sound_cooldown_time = 1.8 SECONDS, \
charge_move = IGNORE_USER_LOC_CHANGE, \
)
/obj/item/gun/energy/laser/musket/update_icon_state()
inhand_icon_state = "[initial(inhand_icon_state)][(get_charge_ratio() == 4 ? "charged" : "")]"
return ..()
/obj/item/gun/energy/laser/musket/prime
name = "heroic laser musket"
desc = "A well-engineered, hand-charged laser weapon. Its capacitors hum with potential."
icon_state = "musket_prime"
inhand_icon_state = "musket_prime"
worn_icon_state = "las_musket_prime"
ammo_type = list(/obj/item/ammo_casing/energy/laser/musket/prime)
/obj/item/gun/energy/disabler/smoothbore
name = "smoothbore disabler"
desc = "A hand-crafted disabler, using a hard knock on an energy cell to fire the stunner laser. A lack of proper focusing means it has no accuracy whatsoever."
icon_state = "smoothbore"
ammo_type = list(/obj/item/ammo_casing/energy/disabler/smoothbore)
shaded_charge = 1
charge_sections = 1
spread = 22.5
/obj/item/gun/energy/disabler/smoothbore/Initialize(mapload)
. = ..()
AddComponent( \
/datum/component/crank_recharge, \
charging_cell = get_cell(), \
charge_amount = STANDARD_CELL_CHARGE, \
cooldown_time = 2 SECONDS, \
charge_sound = 'sound/items/weapons/laser_crank.ogg', \
charge_sound_cooldown_time = 1.8 SECONDS, \
charge_move = IGNORE_USER_LOC_CHANGE, \
)
/obj/item/gun/energy/disabler/smoothbore/add_seclight_point()
AddComponent(/datum/component/seclite_attachable, \
light_overlay_icon = 'icons/obj/weapons/guns/flashlights.dmi', \
light_overlay = "flight", \
overlay_x = 18, \
overlay_y = 12, \
) //i swear 1812 being the overlay numbers was accidental
/obj/item/gun/energy/disabler/smoothbore/prime //much stronger than the other prime variants, so dont just put this in as maint loot
name = "elite smoothbore disabler"
desc = "An enhancement version of the smoothbore disabler pistol. Improved optics and cell type result in good accuracy and the ability to fire twice. \
The disabler bolts also don't dissipate upon impact with armor, unlike the previous model."
icon_state = "smoothbore_prime"
ammo_type = list(/obj/item/ammo_casing/energy/disabler/smoothbore/prime)
charge_sections = 2
spread = 0 //could be like 5, but having just very tiny spread kinda feels like bullshit
//Inferno and Cryo Pistols
/obj/item/gun/energy/laser/thermal //the common parent of these guns, it just shoots hard bullets, somoene might like that?
name = "nanite pistol"
desc = "A modified handcannon with a metamorphic reserve of decommissioned weaponized nanites. Spit globs of angry robots into the bad guys."
icon_state = "infernopistol"
inhand_icon_state = null
ammo_type = list(/obj/item/ammo_casing/energy/nanite)
shaded_charge = TRUE
ammo_x_offset = 1
obj_flags = UNIQUE_RENAME
w_class = WEIGHT_CLASS_NORMAL
dual_wield_spread = 5 //as intended by the coders
/obj/item/gun/energy/laser/thermal/add_bayonet_point()
AddComponent(/datum/component/bayonet_attachable, offset_x = 19, offset_y = 13)
/obj/item/gun/energy/laser/thermal/Initialize(mapload)
. = ..()
AddElement(/datum/element/empprotection, EMP_PROTECT_SELF|EMP_PROTECT_CONTENTS)
AddComponent( \
/datum/component/crank_recharge, \
charging_cell = get_cell(), \
spin_to_win = TRUE, \
charge_amount = LASER_SHOTS(8, STANDARD_CELL_CHARGE), \
cooldown_time = 0.8 SECONDS, \
charge_sound = 'sound/items/weapons/kinetic_reload.ogg', \
charge_sound_cooldown_time = 0.8 SECONDS, \
)
/obj/item/gun/energy/laser/thermal/add_seclight_point()
AddComponent(/datum/component/seclite_attachable, \
light_overlay_icon = 'icons/obj/weapons/guns/flashlights.dmi', \
light_overlay = "flight", \
overlay_x = 15, \
overlay_y = 9)
/obj/item/gun/energy/laser/thermal/inferno //the magma gun
name = "inferno pistol"
desc = "A modified handcannon with a metamorphic reserve of decommissioned weaponized nanites. Spit globs of molten angry robots into the bad guys. \
While it doesn't manipulate temperature in and of itself, it does cause an violent eruption in anyone who is severely cold. Able to generate \
ammunition by manually spinning the weapon's nanite canister."
icon_state = "infernopistol"
ammo_type = list(/obj/item/ammo_casing/energy/nanite/inferno)
/obj/item/gun/energy/laser/thermal/cryo //the ice gun
name = "cryo pistol"
desc = "A modified handcannon with a metamorphic reserve of decommissioned weaponized nanites. Spit shards of frozen angry robots into the bad guys. \
While it doesn't manipulate temperature in and of itself, it does cause an internal explosion in anyone who is severely hot. Able to generate \
ammunition by manually spinning the weapon's nanite canister."
icon_state = "cryopistol"
ammo_type = list(/obj/item/ammo_casing/energy/nanite/cryo)