mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-04 11:45:10 +01:00
374e220be6
**Summary** Converts hardsuit NanoUI to TGUI and overhauls much of the associated UI and module code. The conversion alone is what necessitated quite a bit of cleanup of our 11-year-old hardsuit code, for which I leaned heavily upon tg's implementation of MODsuits. Therefore, this is a PARTIAL (???) port of both https://github.com/tgstation/tgstation/pull/59109 and https://github.com/tgstation/tgstation/pull/77022. While a lot of wonderful code and UI design was ported 1:1 (for which I am grateful!), our hardsuits are still NOT MODsuits. Most of our back-end remains the same. Fixes https://github.com/Aurorastation/Aurora.3/issues/22071 changes: - refactor: "Migrates Hardsuit NanoUI to TGUI." - refactor: "Updates Hardsuit module type definitions, configuration data, many misc other functions for the purpose of the UI refactor (general utility and readability improvements)." - balance: "Hardsuits now passively consume a small amount of energy while online, even when retracted." - balance: "Hardsuit boots can no longer be retracted without also retracting the chest piece first." - balance: "Mounted hardsuit storage module max space increased from 9 to 14." - balance: "Plasma cutter (standalone and mounted) damage increased and range decreased by 50% each." - soundadd: "Adds several new sounds for hardsuit use (attribution located w/ files)." - code_imp: "Makes power_wattage_readable() a global proc and adds power_joules_readable()." - code_imp: "Lots of misc DMdoc updates." - bugfix: "Synthetic Charging Stations now charge hardsuit power cells as intended." **Old UI** <img width="804" height="1321" alt="Screenshot 2026-05-04 135705" src="https://github.com/user-attachments/assets/f01957a0-7cec-4fcc-b862-c9dfde0dcc43" /> **New UI** <img width="998" height="782" alt="Screenshot 2026-05-04 174658" src="https://github.com/user-attachments/assets/ad402902-d489-435a-9c16-82150ed82618" /> ### Asset Licenses The following assets that **have not** been created by myself are included in this PR: | Path | Original Author | License | | --- | --- | --- | | icons/mob/rig_modules.dmi (mounted-plasmacutter)| [Ghostsheet](https://github.com/ghostsheet) | CC-BY-SA | --------- Signed-off-by: Batrachophreno <Batrochophreno@gmail.com> Co-authored-by: VMSolidus <evilexecutive@gmail.com>
46 lines
1.6 KiB
Plaintext
46 lines
1.6 KiB
Plaintext
/obj/effect/overlay/burnt_wall
|
|
name = "burnt wall"
|
|
desc = "A wall that had a hole burnt into it. Nasty."
|
|
icon = 'icons/turf/flooring/plating.dmi'
|
|
icon_state = "wall_thermite"
|
|
var/material/material
|
|
var/material/reinf_material
|
|
|
|
/obj/effect/overlay/burnt_wall/Initialize(mapload, new_name, new_mat, new_reinf_mat)
|
|
. = ..()
|
|
name = "burnt [new_name]"
|
|
material = SSmaterials.get_material_by_name(new_mat)
|
|
if(new_reinf_mat)
|
|
reinf_material = SSmaterials.get_material_by_name(new_reinf_mat)
|
|
color = material.icon_colour
|
|
if(material.opacity < 0.5)
|
|
alpha = 125
|
|
|
|
/obj/effect/overlay/burnt_wall/attackby(obj/item/attacking_item, mob/user)
|
|
if(attacking_item.tool_behaviour == TOOL_WELDER)
|
|
var/obj/item/weldingtool/WT = attacking_item
|
|
if(!WT.isOn())
|
|
return TRUE
|
|
if(WT.use(0,user))
|
|
user.visible_message("<b>[user]</b> starts slicing \the [src] apart.", SPAN_NOTICE("You start slicing \the [src] apart."))
|
|
playsound(src, 'sound/items/Welder.ogg', 100, 1)
|
|
var/slice_time = reinf_material ? 100 : 30
|
|
if(WT.use_tool(src, user, slice_time, volume = 50))
|
|
user.visible_message("<b>[user]</b> slices \the [src] apart.", SPAN_NOTICE("You slice \the [src] apart."))
|
|
material.place_sheet(get_turf(src))
|
|
if(reinf_material)
|
|
reinf_material.place_sheet(get_turf(src))
|
|
qdel(src)
|
|
return TRUE
|
|
return ..()
|
|
|
|
/obj/effect/overlay/thermite
|
|
name = "blazing heat"
|
|
desc = "It's blazing wall of heat!"
|
|
icon = 'icons/effects/fire.dmi'
|
|
icon_state = "2"
|
|
anchored = TRUE
|
|
|
|
/obj/effect/overlay/burnt_wall/steel/Initialize(mapload)
|
|
. = ..(mapload, "wall", MATERIAL_STEEL)
|