Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP]Energy weapon gameplay enhancement #2677

Open
wants to merge 83 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 64 commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
f6a1bbc
limb sprite addition test
Pockets-byte Mar 20, 2024
84f5e84
adds inital sprites for augments
Pockets-byte Mar 20, 2024
f195f10
Added a number of augment skins from paradise/bay
Pockets-byte Mar 20, 2024
cb4f10d
Add comments to augment icon lists
Pockets-byte Mar 24, 2024
3ff6f12
Merge branch 'BeeStation:master' into patch-1
Pockets-byte Mar 24, 2024
13d3284
moved augment sprites to NSV directory
Pockets-byte Mar 24, 2024
b810d0b
fixed the bad, replaced misplaced files, and fixed paths
Pockets-byte Mar 24, 2024
fee976e
added a little more detail to the comment
Pockets-byte Mar 24, 2024
b48910a
Update code/game/machinery/aug_manipulator.dm
Bokkiewokkie Mar 29, 2024
0628c34
Merge branch 'BeeStation:master' into patch-1
Pockets-byte Apr 27, 2024
95cadb1
Merge branch 'BeeStation:master' into patch-1
Pockets-byte May 6, 2024
eeaa255
Merge branch 'BeeStation:master' into patch-1
Pockets-byte May 14, 2024
37c75c6
Merge branch 'BeeStation:master' into patch-1
Pockets-byte May 22, 2024
0e585ba
Merge branch 'BeeStation:master' into patch-1
Pockets-byte Jun 1, 2024
118c6aa
energy weapons rework?
Pockets-byte Jun 5, 2024
67c2c21
blah minigame
Pockets-byte Jun 5, 2024
3a6cb59
Update phaser.dm
Pockets-byte Jun 5, 2024
5c10d26
it works now
Pockets-byte Jun 5, 2024
d6fda76
A
Pockets-byte Jun 5, 2024
123a928
little bit of balancing stuff, some bugfixing
Pockets-byte Jun 5, 2024
5ff9d82
AAAAAAAAAAAAAAAAA game no work
Pockets-byte Jun 5, 2024
9ef2982
tgui hell
Pockets-byte Jun 5, 2024
ff8852a
why
Pockets-byte Jun 5, 2024
05c6630
AAAAAAAAAAAAAA
Pockets-byte Jun 5, 2024
587bba8
heat management stuff!
Pockets-byte Jun 5, 2024
8555e0c
magic cooling is really dead now
Pockets-byte Jun 5, 2024
16e47ee
AAAAAAAAAAAA
Pockets-byte Jun 5, 2024
4d7ad96
removes slowprocess
Pockets-byte Jun 5, 2024
a5020e6
removes atmos cooling. beginning of game-magic cooling
Pockets-byte Jun 5, 2024
ae3ef3d
AAAAAAAAAAAAAaaaaaaaa
Pockets-byte Jun 5, 2024
2cf2cd5
Update Aetherwhisp2.dmm
Pockets-byte Jun 5, 2024
eb5e1c5
A
Pockets-byte Jun 5, 2024
0f84efc
blah
Pockets-byte Jun 6, 2024
91256ad
cooling work
Pockets-byte Jun 6, 2024
ca43fb8
icons for testing
Pockets-byte Jun 6, 2024
de4e85d
AAAAAAAAaaaaaaaaaaaaaaaaaaaa subspace cooler work
Pockets-byte Jun 6, 2024
5b1febc
"works"
Pockets-byte Jun 6, 2024
b629386
subspace heat management v1 partial completion
Pockets-byte Jun 7, 2024
8ba19dc
no more punching subspace units
Pockets-byte Jun 7, 2024
20bd0ed
hapazard balancing and prep for venting
Pockets-byte Jun 8, 2024
4f6492a
venting work, makes the BSA exempt from Energy mechanics
Pockets-byte Jun 8, 2024
db043f6
venting things
Pockets-byte Jun 8, 2024
9b97e85
uncomments
Pockets-byte Jun 8, 2024
feb5d39
venting, and more balance stuff
Pockets-byte Jun 9, 2024
506c1f8
Merge branch 'BeeStation:master' into energy-weapon-gameplay
Pockets-byte Jun 9, 2024
a217d41
fixes the damage done to the wisp and maps new energy weapon bits
Pockets-byte Jun 9, 2024
eb7f898
Merge branch 'BeeStation:master' into energy-weapon-gameplay
Pockets-byte Jun 14, 2024
b5e13c0
I don't know what I'm doing
DeltaFire15 Jun 28, 2024
cec528d
Research and fixing comments
Pockets-byte Aug 25, 2024
255781d
please let this fix the merge conflict
Pockets-byte Aug 25, 2024
6307cc6
Merge branch 'BeeStation:master' into energy-weapon-gameplay
Pockets-byte Aug 25, 2024
0bfeaeb
fixes everything
Pockets-byte Aug 25, 2024
9f82af6
Merge branch 'BeeStation:master' into energy-weapon-gameplay
Pockets-byte Sep 1, 2024
3f60748
Update job_changes.dm temporarily
Pockets-byte Sep 6, 2024
e625c42
Update job_changes.dm
Pockets-byte Sep 6, 2024
329b988
Delete nsv13_unit_test_focus_file.dm
Pockets-byte Sep 7, 2024
1c2eac4
Apply suggestions from code review
Pockets-byte Sep 7, 2024
733e882
Delete job_changes.dm
Pockets-byte Sep 7, 2024
20366cf
mistake
Pockets-byte Sep 7, 2024
786a43c
Revert "Delete job_changes.dm"
Pockets-byte Sep 7, 2024
d5bbe5d
MINOR SPELLING MISTAKE
Pockets-byte Sep 7, 2024
1794197
Merge branch 'BeeStation:master' into energy-weapon-gameplay
Pockets-byte Sep 8, 2024
ba1b6ad
new sprite
Pockets-byte Sep 8, 2024
a4f1b4a
applies sprites
Pockets-byte Sep 8, 2024
7bbf638
Update phaser.dm
Pockets-byte Sep 8, 2024
091defc
Update phaser.dm
Pockets-byte Sep 8, 2024
2d534b0
Fixes venting, maybe?
Pockets-byte Sep 8, 2024
ddb1999
fixes some of the issues, moves energy weapon vars, etc
Pockets-byte Sep 9, 2024
7ef0ecd
storage sprite
Pockets-byte Sep 9, 2024
acbeb40
null reference exception!
Pockets-byte Sep 10, 2024
d211a01
Update nsv13/code/modules/munitions/ship_weapons/energy_weapons/phase…
Pockets-byte Sep 10, 2024
8d3ff18
small stuff
Pockets-byte Sep 10, 2024
e815574
no more multi-linking
Pockets-byte Sep 10, 2024
490e929
Update subspacecooling.dm
Pockets-byte Sep 10, 2024
a4bd409
"quick" fix
Pockets-byte Sep 14, 2024
f8b7374
Merge branch 'BeeStation:master' into energy-weapon-gameplay
Pockets-byte Sep 14, 2024
e57ea3f
Merge branch 'BeeStation:master' into energy-weapon-gameplay
Pockets-byte Oct 19, 2024
58bcbf7
funny stock item for de-looting, and variables to use later
Pockets-byte Oct 27, 2024
4e41766
comment
Pockets-byte Oct 27, 2024
f6ba70b
Merge branch 'energy-weapon-gameplay' of https://github.com/Pockets-b…
Pockets-byte Oct 27, 2024
b5668ba
Merge branch 'BeeStation:master' into energy-weapon-gameplay
Pockets-byte Oct 27, 2024
2f4706a
Variable name was taken
Pockets-byte Oct 30, 2024
9a8dca7
Merge branch 'BeeStation:master' into energy-weapon-gameplay
Pockets-byte Nov 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 28 additions & 7 deletions _maps/map_files/Aetherwhisp/Aetherwhisp2.dmm

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 1 addition & 14 deletions _maps/map_files/Aetherwhisp/job_changes.dm
Original file line number Diff line number Diff line change
@@ -1,19 +1,6 @@

// If you continue to complain that munitechs have nothing to do, then I guess you really have nothing to do now don't you?
// I'm replacing your job with bridge officers who are perfectly capable of pushing a button on lasers
// MAP_REMOVE_JOB(master_at_arms)
MAP_REMOVE_JOB(munitions_tech)

/datum/job/munitions_tech/New()
..()
MAP_JOB_CHECK
total_positions = 0
spawn_positions = 0

/datum/job/master_at_arms/New()
..()
MAP_JOB_CHECK
total_positions = 0
spawn_positions = 0
// this file should be obsolete

#undef JOB_MODIFICATION_MAP_NAME
1 change: 1 addition & 0 deletions nsv13.dme
Original file line number Diff line number Diff line change
Expand Up @@ -3995,6 +3995,7 @@
#include "nsv13\code\modules\munitions\ship_weapons\energy_weapons\laser_ams.dm"
#include "nsv13\code\modules\munitions\ship_weapons\energy_weapons\laser_pd.dm"
#include "nsv13\code\modules\munitions\ship_weapons\energy_weapons\phaser.dm"
#include "nsv13\code\modules\munitions\ship_weapons\energy_weapons\subspacecooling.dm"
#include "nsv13\code\modules\munitions\ship_weapons\hybrid_weapons\hybrid_railgun.dm"
#include "nsv13\code\modules\overmap\ai-skynet.dm"
#include "nsv13\code\modules\overmap\ai_interiors.dm"
Expand Down
30 changes: 30 additions & 0 deletions nsv13/code/game/objects/items/nsv_circuitboards.dm
Original file line number Diff line number Diff line change
Expand Up @@ -477,3 +477,33 @@
icon_state = "science"
build_path = /obj/machinery/navbeacon
req_components = list()

//energy weapon cooling
/obj/item/circuitboard/machine/cooling
name = "subspace cooling unit circuit board"
icon = 'icons/obj/module.dmi'
icon_state = "command"
materials = list(/datum/material/glass=1000)
w_class = WEIGHT_CLASS_SMALL
req_components = list(
/obj/item/stack/cable_coil = 30,
/obj/item/stock_parts/matter_bin = 1,
/obj/item/stack/sheet/mineral/copper = 15,
/obj/item/stock_parts/capacitor = 4,
/obj/item/stock_parts/micro_laser = 4,
/obj/item/stack/ore/bluespace_crystal = 1)


/obj/item/circuitboard/machine/cooling/storage
name = "subspace heatsink unit circuit board"
icon = 'icons/obj/module.dmi'
icon_state = "command"
materials = list(/datum/material/glass=1000)
w_class = WEIGHT_CLASS_SMALL
req_components = list(
/obj/item/stack/cable_coil = 30,
/obj/item/stock_parts/matter_bin = 4,
/obj/item/stack/sheet/mineral/copper = 30,
Copy link
Contributor

@DeltaFire15 DeltaFire15 Sep 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please don't use this level of "true" sheet use for any machinery. It makes them loot pinatas if mapspawned and also is in itself a bit hillarious.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do think it makes sense for a heat related machine, and unless you don't want functional weapons, you can't scrap them, then again.
I don't want them to be super cheap though, should I make the boards more expensive in that case?

Copy link
Contributor

@DeltaFire15 DeltaFire15 Sep 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could use custom components which are expensive to print, for example; This makes them somewhat harder to efficiently cannibalize (and adds a layer of ambiguosity), over just ejecting & slamming in a stack of 30 copper.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's true. Probably a much cleverer idea than just slamming in a minecart's worth of raw metal
It will need sprites tho

/obj/item/stock_parts/capacitor = 2,
/obj/item/stock_parts/micro_laser = 2,
/obj/item/stack/ore/bluespace_crystal = 1)
7 changes: 6 additions & 1 deletion nsv13/code/modules/munitions/ship_weapons/_ship_weapon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,13 @@

// These variables only pertain to energy weapons, but need to be checked later in /proc/fire
var/charge = 0
var/heat = 0
var/charge_rate = 0 //How quickly do we charge?
var/charge_per_shot = 0 //How much power per shot do we have to use?

var/heat_per_shot = 0 //how much heat do we make per shot
var/heat_rate = 0 // how fast do we discharge heat
var/max_heat = 0 //how much heat before ::fun:: happens
var/overloaded = 0 //have we cooked ourself
Pockets-byte marked this conversation as resolved.
Show resolved Hide resolved
/**
* Constructor for /obj/machinery/ship_weapon
* Attempts to link the weapon to an overmap ship.
Expand Down Expand Up @@ -521,6 +525,7 @@
local_fire()
overmap_fire(target)
charge -= charge_per_shot
heat += heat_per_shot
after_fire()
. = TRUE
if(shots > 1)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -227,3 +227,10 @@
var/mob/living/goodbye = target
goodbye.dust(TRUE, FALSE)
explosion(get_turf(target), 6, 8, 9, 12, ignorecap = TRUE, flame_range = 6) //I have to keep myself from letting it just truncate ships because thats a bit annoying to fix for the receiving side, even if accurate to appearance.


/obj/machinery/ship_weapon/energy/beam/bsa/after_fire() //NT gets to cheat and have no degadation or heating on their weapon because muni has enough to do and the BSA doesn't need buffs/nerfs
. = ..()
heat = 0
alignment = 100
freq = 100
Comment on lines +232 to +236
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bit hacky.
Potentially use a var to determine if the weapon uses a maintenance system and lock out maintenance need generation- aswell as resolving actions if not yes.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd have to add a check for that in every part of the system though right? Would that be better

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's the classic "address now vs. address later" issue.
For now it's probably fine with a single energy weapon that works this way, but if more appear, it may get a bit less convenient.
(Besides the fact you can do all the related maintenance steps on the BSA with this most likely despite them having no effect, and even get the examine talking about these things.)

Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,14 @@
idle_power_usage = 2500
active = FALSE
charge = 0
max_heat = 800
heat_per_shot = 200
heat_rate = 30
storage_rate = 50


// Hitscan antimissile laser, charges relatively quickly, but can't hold a decent buffer!
charge_rate = 1000000 // At power level 2, requires 2MW per tick to charge
charge_rate = 1500000 // At power level 2, requires 3MW per tick to charge
charge_per_shot = 3000000 // At power level 2, requires 6MW total to fire, takes about 3 seconds to gain 1 charge
max_charge = 3000000 // Store 1 charge

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@
fire_mode = FIRE_MODE_LASER_PD
energy_weapon_type = /datum/ship_weapon/phaser_pd
charge = 0
charge_rate = 500000
charge_per_shot = 1000000 // requires 2 MW to fire a burst
charge_rate = 700000
charge_per_shot = 1000000 // requires 1 MW to fire a burst
max_charge = 4000000 // Stores 1 burst base
power_modifier_cap = 1 // PL cap of 2
static_charge = TRUE
Expand All @@ -76,6 +76,11 @@
var/gunning_component_type = /datum/component/overmap_gunning/laser_pd
var/mob/gunner = null
var/gun_id = 0 // Used for map linkage
max_heat = 1000
heat_per_shot = 80
heat_rate = 15
storage_rate = 100


/obj/machinery/ship_weapon/energy/laser_pd/proc/start_gunning(mob/user)
if(gunner)
Expand Down
Loading
Loading