[MIRROR] Modular Shield Generators, Also Adds a new perimeter algorithm to _helpers/math_dm [MDB IGNORE] (#21426)

* Modular Shield Generators, Also Adds a new perimeter algorithm to _helpers/math_dm (#75328)

Disclaimer im mostly making this pr for the experience if anything.
Also anyone can replace the sprites if they want to I`m just making them
so itl be done, idk what a plasteel machine is supposed to look like.

The circuit boards to make these machines are unlocked by the advanced
power manipulation tech

The entire shield

- Has one big healthpool (base of 50)
- Has a configurable radius
- Takes damage from hot gas and emp
- Has regeneration (it gets nerfed by alot of things that I have to talk
about separately)
- When the shield is broken the generator must regenerate at 0.25x speed
before coming online again
- can be configured to either only generate a shield externally (in
space) or both internally and externally at the cost of half the regen
rate
- Regen rate is also reduced based on the ratio of the shield radius and
the max radius that the generator is capable of generating
- Alot more that im too tired to explain at the moment

The base stats of the shield (max health, regen rate, max radius) all
scale with the tier of parts used in the main generator.

4 other machines (3 are finished code-wise as of now) the charger (regen
rate), the relay (max radius) the well (max health) the node (allows for
more connections) can all be connected to the main generator to boost
its core stats based on their part tiers

In the future there is a possibility of specialization / modifications
to the forcefield at the cost to the core stats

* Modular Shield Generators, Also Adds a new perimeter algorithm to _helpers/math_dm

---------

Co-authored-by: moocowswag <62126254+moocowswag@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-05-25 23:13:30 +01:00
committed by GitHub
parent 72743383ca
commit f3d405da28
8 changed files with 965 additions and 8 deletions

View File

@@ -167,6 +167,56 @@
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE
/datum/design/board/modular_shield_generator
name = "Modular Shield Generator Board"
desc = "The circuit board for a modular shield generator."
id = "modular_shield_generator"
build_path = /obj/item/circuitboard/machine/modular_shield_generator
category = list(
RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ENGINEERING
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/board/modular_shield_node
name = "Modular Shield Node Board"
desc = "The circuit board for a modular shield node."
id = "modular_shield_node"
build_path = /obj/item/circuitboard/machine/modular_shield_node
category = list(
RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ENGINEERING
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/board/modular_shield_relay
name = "Modular Shield Relay Board"
desc = "The circuit board for a modular shield relay."
id = "modular_shield_relay"
build_path = /obj/item/circuitboard/machine/modular_shield_relay
category = list(
RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ENGINEERING
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/board/modular_shield_charger
name = "Modular Shield Charger Board"
desc = "The circuit board for a modular shield charger."
id = "modular_shield_charger"
build_path = /obj/item/circuitboard/machine/modular_shield_charger
category = list(
RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ENGINEERING
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/board/modular_shield_well
name = "Modular Shield Well Board"
desc = "The circuit board for a modular shield well."
id = "modular_shield_well"
build_path = /obj/item/circuitboard/machine/modular_shield_well
category = list(
RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ENGINEERING
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/board/teleconsole
name = "Teleporter Console Board"
desc = "Allows for the construction of circuit boards used to build a teleporter control console."

View File

@@ -708,6 +708,11 @@
"turbine_compressor",
"turbine_rotor",
"turbine_stator",
"modular_shield_generator",
"modular_shield_node",
"modular_shield_relay",
"modular_shield_charger",
"modular_shield_well",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500)
discount_experiments = list(/datum/experiment/scanning/points/machinery_pinpoint_scan/tier2_capacitors = 2500)