From a4bd409b9c195b06b3511b66905f58f28c8c1b4b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E1=9B=88=E1=9B=9F=E1=9A=B2=E1=9A=B2=E1=9B=96=E1=9B=8F?=
=?UTF-8?q?=E1=9B=8B?= <55299415+Pockets-byte@users.noreply.github.com>
Date: Fri, 13 Sep 2024 22:13:41 -0600
Subject: [PATCH] "quick" fix
---
_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm | 34 ++++++++------
.../game/objects/items/nsv_circuitboards.dm | 20 ++++----
.../ship_weapons/energy_weapons/phaser.dm | 26 +++++-----
.../energy_weapons/subspacecooling.dm | 47 +++++--------------
4 files changed, 51 insertions(+), 76 deletions(-)
diff --git a/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm b/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm
index 2058d99929b..bcd941f187c 100644
--- a/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm
+++ b/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm
@@ -1625,18 +1625,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 4
},
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/structure/window/reinforced{
- layer = 2.89
- },
-/obj/structure/table,
-/obj/item/multitool{
- pixel_x = 4;
- pixel_y = -1
- },
-/obj/item/screwdriver,
+/obj/machinery/cooling/storage,
/turf/open/floor/engine,
/area/nsv/weapons/starboard)
"bfj" = (
@@ -8625,6 +8614,7 @@
/obj/structure/cable/white{
icon_state = "1-2"
},
+/obj/machinery/cooling/cooler,
/turf/open/floor/carpet/ship/orange_carpet,
/area/nsv/weapons/starboard)
"fLO" = (
@@ -14517,6 +14507,7 @@
/obj/structure/cable/white{
icon_state = "1-8"
},
+/obj/machinery/cooling/cooler,
/turf/open/floor/carpet/ship/orange_carpet,
/area/nsv/weapons/starboard)
"jNL" = (
@@ -21004,6 +20995,11 @@
pixel_y = 26
},
/obj/structure/table,
+/obj/item/multitool{
+ pixel_x = 4;
+ pixel_y = -1
+ },
+/obj/item/screwdriver,
/turf/open/floor/engine,
/area/nsv/weapons/starboard)
"ovd" = (
@@ -27743,6 +27739,10 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/wood,
/area/library)
+"sGF" = (
+/obj/machinery/cooling/storage,
+/turf/open/floor/carpet/ship/orange_carpet,
+/area/nsv/weapons/starboard)
"sGH" = (
/obj/machinery/chem_dispenser,
/turf/open/floor/plating,
@@ -30306,6 +30306,10 @@
/obj/effect/landmark/start/cyborg,
/turf/open/floor/carpet/ship/purple_carpet,
/area/science/robotics/lab)
+"uNg" = (
+/obj/machinery/cooling/cooler,
+/turf/open/floor/carpet/ship/orange_carpet,
+/area/nsv/weapons/starboard)
"uNA" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -80758,7 +80762,7 @@ xjr
ouM
beV
gKC
-gKC
+beV
gKC
iRW
gKC
@@ -81526,13 +81530,13 @@ nZT
nZT
hbT
xjr
+uNg
wrq
wrq
wrq
wrq
wrq
-wrq
-wrq
+sGF
seW
iyw
xMP
diff --git a/nsv13/code/game/objects/items/nsv_circuitboards.dm b/nsv13/code/game/objects/items/nsv_circuitboards.dm
index 7196fd366b5..6a526f864d2 100644
--- a/nsv13/code/game/objects/items/nsv_circuitboards.dm
+++ b/nsv13/code/game/objects/items/nsv_circuitboards.dm
@@ -481,29 +481,25 @@
//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
+ materials = list(/datum/material/glass=1000, /datum/material/copper=15000)
+ build_path = /obj/machinery/cooling/cooler
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/stock_parts/subspace/ansible = 1,
+ /obj/item/stock_parts/subspace/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
+ materials = list(/datum/material/glass=1000, /datum/material/copper=15000)
+ build_path = /obj/machinery/cooling/storage
req_components = list(
/obj/item/stack/cable_coil = 30,
/obj/item/stock_parts/matter_bin = 4,
- /obj/item/stack/sheet/mineral/copper = 30,
/obj/item/stock_parts/capacitor = 2,
/obj/item/stock_parts/micro_laser = 2,
- /obj/item/stack/ore/bluespace_crystal = 1)
+ /obj/item/stock_parts/subspace/ansible = 1,
+ /obj/item/stock_parts/subspace/crystal =1)
diff --git a/nsv13/code/modules/munitions/ship_weapons/energy_weapons/phaser.dm b/nsv13/code/modules/munitions/ship_weapons/energy_weapons/phaser.dm
index b53c27e8b91..a03c0f36d65 100644
--- a/nsv13/code/modules/munitions/ship_weapons/energy_weapons/phaser.dm
+++ b/nsv13/code/modules/munitions/ship_weapons/energy_weapons/phaser.dm
@@ -33,8 +33,7 @@
var/combo = null
var/combocount = 0 //How far into the combo are they?
var/overheat_sound = 'sound/effects/smoke.ogg'
- var/list/coolers = list()
- var/list/storages = list()
+ var/list/cooling = list()
var/cooling_amount = 0
var/storage_amount = 0
var/storage_rate = 100
@@ -45,7 +44,7 @@
var/heat = 0
var/charge_rate = 430000 //How quickly do we charge?
var/charge_per_shot = 660000 //How much power per shot do we have to use?
- var/heat_per_shot = 100 //how much heat do we make per shot
+ var/heat_per_shot = 250 //how much heat do we make per shot
var/heat_rate = 10 // how fast do we discharge heat
var/max_heat = 1000 //how much heat before ::fun:: happens
var/overloaded = 0 //have we cooked ourself
@@ -60,11 +59,11 @@
energy_weapon_type = /datum/ship_weapon/phaser
circuit = /obj/item/circuitboard/machine/phase_cannon
charge_rate = 800000 // At power level 5, requires 3MW per tick to charge(this is wrong. but I don't have the proper numbers)
- charge_per_shot = 4000000 // At power level 5, requires 20MW total to fire, takes about 12 seconds to gain 1 charge (ditto)
+ charge_per_shot = 3800000 // At power level 5, requires 20MW total to fire, takes about 12 seconds to gain 1 charge (ditto). I'm actually making this less demanding so that heat becomes the limiting factor, especially for this one.
max_charge = 8000000 // Store 2 charges
power_modifier_cap = 5 //Allows you to do insanely powerful oneshot lasers. Maximum theoretical damage of 500.
max_heat = 2000
- heat_per_shot = 800
+ heat_per_shot = 1200
heat_rate = 5
storage_rate = 140
@@ -75,7 +74,7 @@
/obj/machinery/ship_weapon/energy/examine(mob/user)
. = ..()
- . += "The Thermal Transceiver is currently at [length(storages)+length(coolers)]0% connection capacity."
+ . += "The Thermal Transceiver is currently at [length(cooling)]0% connection capacity."
if(in_range(user, src) || isobserver(user))
. += "The heatsink display reads [(heat)] out of [(max_heat)]."
if(maint_state != MSTATE_CLOSED)
@@ -101,7 +100,7 @@
ui.set_autoupdate(TRUE)
/obj/machinery/ship_weapon/energy/proc/vent()
- if(heat > max_heat/4)
+ if(heat > max_heat*0.25)
weapon_state = STATE_VENTING
ventnumber = max_heat*0.25
else
@@ -265,11 +264,12 @@
/obj/machinery/ship_weapon/energy/proc/process_heat()//heat management. don't push your weapons too hard. actual heat generation is in _ship_weapons.dm
-
- for(var/obj/machinery/cooling/cooler/C in coolers)
+ cooling_amount = 0
+ for(var/obj/machinery/cooling/cooler/C in cooling)
if(!(C.machine_stat & (BROKEN|NOPOWER|MAINT)))
cooling_amount++
- for(var/obj/machinery/cooling/storage/C in storages)
+ storage_amount = 0
+ for(var/obj/machinery/cooling/storage/C in cooling)
if(!(C.machine_stat & (BROKEN|NOPOWER|MAINT)))
storage_amount++
max_heat = initial(max_heat) + (storage_amount*storage_rate)
@@ -283,10 +283,10 @@
else
return
if(STATE_VENTING)
- if(heat <= max_heat-ventnumber)
+ if(heat <= ventnumber)
weapon_state = STATE_NOTHING
return
- heat = max(heat-(H+H*0.2),0)
+ heat = max(heat-(cooling_amount*(heat_rate+(0.25*heat_rate))),0)
return
if(heat >= max_heat)
overload()
@@ -404,6 +404,6 @@
return ..()
/obj/machinery/ship_weapon/energy/Destroy()
- for(var/obj/machinery/cooling/E in storages | coolers)
+ for(var/obj/machinery/cooling/E in cooling)
E.parent = null
. = ..()
diff --git a/nsv13/code/modules/munitions/ship_weapons/energy_weapons/subspacecooling.dm b/nsv13/code/modules/munitions/ship_weapons/energy_weapons/subspacecooling.dm
index b88406d68d0..55d80081a50 100644
--- a/nsv13/code/modules/munitions/ship_weapons/energy_weapons/subspacecooling.dm
+++ b/nsv13/code/modules/munitions/ship_weapons/energy_weapons/subspacecooling.dm
@@ -3,7 +3,6 @@
desc = "A subspace unit."
icon = 'nsv13/icons/obj/subspace.dmi'
icon_state = "cooler"
- circuit = /obj/item/circuitboard/machine
bound_width = 32
pixel_x = 0
pixel_y = 0
@@ -11,7 +10,6 @@
var/obj/machinery/ship_weapon/energy/parent
var/on = FALSE
density = TRUE
- critical_machine = TRUE
/obj/machinery/cooling/cooler
name = "subspace cooling unit"
@@ -20,26 +18,11 @@
-/obj/machinery/cooling/cooler/Initialize(mapload)
- . = ..()
- var/obj/machinery/ship_weapon/energy/E = locate(/obj/machinery/ship_weapon/energy) in orange(1, src) //I have no idea what I'm doing and this causes errors so
- E.coolers |= src
- parent = E
-
-/obj/machinery/cooling/storage/Initialize(mapload)
- . = ..()
- var/obj/machinery/ship_weapon/energy/E = locate(/obj/machinery/ship_weapon/energy) in orange(1, src)
- E.storages |= src
- parent = E
-
-
-/obj/machinery/cooling/cooler/Destroy()
- parent.coolers -= src
+/obj/machinery/cooling/Destroy()
+ if(parent)
+ parent.cooling -= src
. = ..()
-/obj/machinery/cooling/storage/Destroy()
- parent.storages -= src
- . = ..()
/obj/machinery/cooling/attack_hand(mob/user)
. = ..()
@@ -87,23 +70,15 @@
to_chat(user, "-% Cannot link machines across power zones. %-")
return
-
- if(istype(src,/obj/machinery/cooling/cooler))
- parent.coolers -= src
- parent = null
- parent = P.buffer
- .=TRUE
- parent.coolers |= src
- to_chat(user, "-% Successfully linked [P.buffer] with [src] %-")
- if(istype(src,/obj/machinery/cooling/storage))
- parent.storages -= src
+ if(parent)
+ parent.cooling -= src
parent = null
- parent = P.buffer
- .=TRUE
- parent.storages |= src
- to_chat(user, "-% Successfully linked [P.buffer] with [src] %-")
- if(length(parent.storages)+length(parent.coolers) >= 11)
- var/E = pick(parent.storages+parent.coolers)
+ parent = P.buffer
+ .=TRUE
+ parent.cooling |= src
+ to_chat(user, "-% Successfully linked [P.buffer] with [src] %-")
+ if(length(parent.cooling) >= 11)
+ var/E = pick(parent.cooling)
explosion(get_turf(E), 0, 1, 3, 5, flame_range = 4)
return