mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-19 20:15:47 +01:00
The Laser Musket (2023) (Settlement Helper Edition) (#76231)
## About The Pull Request This adds a craftable laser musket to the game. It's slow and unwieldy, but consistent! I'd be happy to tweak the numbers if it's too good/bad. This PR also adds an independent militia ERT, who travels the spinward sector to help defend stations! TO DO LIST: - [x] Finish worn sprites - [x] Add a crafting recipe on par with the pipegun - [x] Add bayonets - [x] Separate charging into two stages and REDO THE AUDIO AAAA - [x] Clean up code (Needs review, totally) Scrapped: - Possibly add overcharge mechanic (This is just beyond my skill level for now) - Find a unique sound for the weapon firing (We have a unique projectile, and I can't a sound that fits more than the laser gun one)      Inhands by RedSentry27 Suit sprite by Kinnebian Prime Laser Musket sprites by RedSentry27 Balance Considerations (ew): 25 damage (30 on prime) Normal wound 40 Stamina damage (45 on prime) Weak to armour (prime not weak to armor) 2 second charge time, needs to be charged twice No overcharge Requires two hands to hold (like a chainsaw) Crafting Recipe: One rifle stock Fifteen Cable Coils Four Iron Rods One micro laser One capacitor One pair of prescription glasses One drinking glass Craft for 10 seconds with a wirecutter and screwdriver Prime crafting recipe: (REQUIRES READING MAINTENANCE LOOT: "journal of a space ranger") One laser musket Fifteen cable coils Five silver One water recycler Fifteen units of nuka cola Craft for 30 seconds with a screwdriver while wearing cowboy boots and a cowboy hat ## Why It's Good For The Game The idea of assistants and revs forming firing lines in the halls to shoot eachother sounds hilarious. Besides, we need a parallel to the pipegun, and this is the funniest way to do so. ## Changelog 🆑 Cheshify, Kinnebian, and RedSentry27 add: Maintenance engineers have sent out blueprints across the sector for a new laser musket. admin: A new energy-gun toting ERT is available to send to the crew. --------- Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
This commit is contained in:
@@ -24,6 +24,13 @@
|
||||
/obj/item/ammo_casing/energy/laser/hos
|
||||
e_cost = 120
|
||||
|
||||
/obj/item/ammo_casing/energy/laser/musket
|
||||
projectile_type = /obj/projectile/beam/laser/musket
|
||||
e_cost = 1000
|
||||
|
||||
/obj/item/ammo_casing/energy/laser/musket/prime
|
||||
projectile_type = /obj/projectile/beam/laser/musket/prime
|
||||
|
||||
/obj/item/ammo_casing/energy/laser/practice
|
||||
projectile_type = /obj/projectile/beam/practice
|
||||
select_name = "practice"
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
/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
|
||||
can_bayonet = TRUE
|
||||
knife_x_offset = 22
|
||||
knife_y_offset = 11
|
||||
/// Indicates if the weapon has been fully charged or not
|
||||
var/is_charging = FALSE
|
||||
/// Prevents the weapon's charge sound from being spammed
|
||||
COOLDOWN_DECLARE(charge_sound_cooldown)
|
||||
|
||||
/obj/item/gun/energy/laser/musket/attack_self(mob/living/user as mob)
|
||||
var/obj/item/stock_parts/cell/charging_cell = get_cell()
|
||||
if(charging_cell.charge >= charging_cell.maxcharge)
|
||||
balloon_alert(user, "already charged!")
|
||||
return
|
||||
if(is_charging)
|
||||
return
|
||||
is_charging = TRUE
|
||||
if(COOLDOWN_FINISHED(src, charge_sound_cooldown))
|
||||
COOLDOWN_START(src, charge_sound_cooldown, 1.8 SECONDS)
|
||||
playsound(src, 'sound/weapons/laser_crank.ogg', 40)
|
||||
balloon_alert(user, "charging...")
|
||||
if (!do_after(user, 2 SECONDS, src, interaction_key = DOAFTER_SOURCE_CHARGE_MUSKET))
|
||||
is_charging = FALSE
|
||||
return
|
||||
charging_cell.give(500)
|
||||
update_appearance()
|
||||
is_charging = FALSE
|
||||
balloon_alert(user, "charged")
|
||||
|
||||
/obj/item/gun/energy/laser/musket/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/two_handed, require_twohands = TRUE, force_wielded = 10)
|
||||
|
||||
/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)
|
||||
@@ -55,6 +55,21 @@
|
||||
else if(isturf(target))
|
||||
impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser/wall
|
||||
|
||||
/obj/projectile/beam/laser/musket
|
||||
name = "low-power laser"
|
||||
icon_state = "laser_musket"
|
||||
impact_effect_type = /obj/effect/temp_visual/impact_effect/purple_laser
|
||||
damage = 25
|
||||
stamina = 40
|
||||
light_color = COLOR_STRONG_VIOLET
|
||||
weak_against_armour = TRUE
|
||||
|
||||
/obj/projectile/beam/laser/musket/prime
|
||||
name = "mid-power laser"
|
||||
damage = 30
|
||||
stamina = 45
|
||||
weak_against_armour = FALSE
|
||||
|
||||
/obj/projectile/beam/weak
|
||||
damage = 15
|
||||
|
||||
|
||||
Reference in New Issue
Block a user