mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-22 21:38:47 +01:00
b3b4f4b9c6
Fixes https://github.com/Aurorastation/Aurora.3/issues/18951 Fixes https://github.com/Aurorastation/Aurora.3/issues/19447 Fixes https://github.com/Aurorastation/Aurora.3/issues/20283 Fixes https://github.com/Aurorastation/Aurora.3/issues/21395 Overhauls a wide variety of INDRA behaviors and related gas/material properties. changes: - balance: "Fusion reaction modifications. Higher radiation and temperature output, comparable power output." - balance: "Increased rad resistance modifier of Borosilicate Windows from 1 -> 4 and (closed) Blast Doors from 1 -> 6." - balance: "INDRA Field Strength minima/maxima changed from 1-100 -> 20-120. Power costs increased significantly." - balance: "INDRA instability increase per tick now limited, similar to Supermatter (prevents sudden instability spike from instantly nuking it)." - balance: "APC cell charge rate increased 10x." - balance: "Rebalanced contents of INDRA hard storage compartment." - balance: "SMES coils capacities halved, throughputs doubled." - balance: "SMES unit maximum coil capacity increased from 6 -> 8." - balance: "TEG maximum power output increased from 500000 -> 2500000." - balance: "Power wasted from exceeding TEG maximum power output decreased from 50% to 33%." - balance: "Portable generators of all types have had their power generation capacity doubled." - rscadd: "New 'Fusion Codex' app added for all crew with ACCESS_ENGINE that details all available nuclear fusion chains." - rscadd: "Boron added as a singleton/reagent. Poisonous to vaurca, still usable in nuclear fusion as fuel assembly rods." - rscadd: "INDRA Field Strength now scales plasma temperature entropy, power output from temperature multiplier, and instability increase per tick." - refactor: "'Boron' gas renamed to 'Helium-3'. Boron is not a gas. Deal with it." - refactor: "'Steam' gas renamed to 'Water Vapor'." - code_imp: "Descriptions added to gas singletons for future use." - qol: "Minor remap of INDRA control room for usability." - qol: "Standardized gas canister naming conventions." - qol: "INDRA and APC TGUI interfaces now use use kW, MW abbreviations for high wattages." - bugfix: "INDRA Kinetic Harvester no longer rapidly deselects materials for harvest when too many are being generated at once." - bugfix: "INDRA EM Field effect no longer considers the camera within its reactor chamber a destabilizing influence." - bugfix: "INDRA reactor core now produces radiation as intended." - bugfix: "Deuterium and Tritium canisters no longer contain 50% standard hydrogen (inheritance issue)." --------- Signed-off-by: Batrachophreno <Batrochophreno@gmail.com> Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it> Co-authored-by: Geeves <22774890+Geevies@users.noreply.github.com>
313 lines
12 KiB
Plaintext
313 lines
12 KiB
Plaintext
/obj/random/tool
|
|
name = "random tool"
|
|
desc = "This is a random tool"
|
|
icon_state = "tool"
|
|
spawnlist = list(
|
|
/obj/item/screwdriver,
|
|
/obj/item/wirecutters,
|
|
/obj/item/weldingtool,
|
|
/obj/item/crowbar,
|
|
/obj/item/wrench,
|
|
/obj/item/hammer,
|
|
/obj/item/device/flashlight
|
|
)
|
|
|
|
/obj/random/technology_scanner
|
|
name = "random scanner"
|
|
desc = "This is a random technology scanner."
|
|
icon = 'icons/obj/item/device/air_analyzer.dmi'
|
|
icon_state = "analyzer"
|
|
problist = list(
|
|
/obj/item/device/t_scanner = 5,
|
|
/obj/item/device/radio = 2,
|
|
/obj/item/device/analyzer = 5
|
|
)
|
|
|
|
/obj/random/powercell
|
|
name = "random powercell"
|
|
desc = "This is a random powercell."
|
|
icon_state = "cell"
|
|
problist = list(
|
|
/obj/item/cell = 40,
|
|
/obj/item/cell/high = 40,
|
|
/obj/item/cell/crap = 10,
|
|
/obj/item/cell/mecha = 10,
|
|
/obj/item/cell/super = 9,
|
|
/obj/item/cell/mecha/nuclear = 5,
|
|
/obj/item/cell/hyper = 1
|
|
)
|
|
|
|
/obj/random/bomb_supply
|
|
name = "bomb supply"
|
|
desc = "This is a random bomb supply."
|
|
icon = 'icons/obj/assemblies/new_assemblies.dmi'
|
|
icon_state = "signaller"
|
|
problist = list(
|
|
/obj/item/device/assembly/igniter = 2,
|
|
/obj/item/device/assembly/prox_sensor = 2,
|
|
/obj/item/device/assembly/signaler = 2,
|
|
/obj/item/device/multitool = 1,
|
|
/obj/item/device/transfer_valve = 0.5
|
|
)
|
|
|
|
/obj/random/toolbox
|
|
name = "random toolbox"
|
|
desc = "This is a random toolbox."
|
|
icon_state = "toolbox"
|
|
spawnlist = list(
|
|
/obj/item/storage/toolbox/mechanical = 3,
|
|
/obj/item/storage/toolbox/electrical = 2,
|
|
/obj/item/storage/toolbox/emergency = 1
|
|
)
|
|
|
|
/obj/random/tech_supply
|
|
name = "random tech supply"
|
|
desc = "This is a random piece of technology supplies."
|
|
icon_state = "tech_supply"
|
|
problist = list(
|
|
/obj/random/powercell = 3,
|
|
/obj/random/technology_scanner = 2,
|
|
/obj/item/stack/packageWrap = 1,
|
|
/obj/random/bomb_supply = 2,
|
|
/obj/item/extinguisher = 1,
|
|
/obj/item/clothing/gloves/yellow/budget = 1,
|
|
/obj/item/stack/cable_coil = 3,
|
|
/obj/random/toolbox = 2,
|
|
/obj/item/storage/belt/utility = 2,
|
|
/obj/random/tool = 5,
|
|
/obj/item/tape_roll = 2
|
|
)
|
|
|
|
/// Spawns a random AI lawboard with 'evil' law sets
|
|
/obj/random/bad_ai
|
|
name = "random evil AI module"
|
|
desc = "Contains a random evil AI module."
|
|
icon = 'icons/obj/module.dmi'
|
|
icon_state = "std_mod"
|
|
spawnlist = list(
|
|
/obj/item/aiModule/antimov = 0.5,
|
|
/obj/item/aiModule/asimov = 1,
|
|
/obj/item/aiModule/purge = 1,
|
|
/obj/item/aiModule/robocop = 0.5,
|
|
/obj/item/aiModule/tyrant = 0.5,
|
|
/obj/item/aiModule/paladin = 0.5,
|
|
/obj/item/aiModule/hadiist = 0.2,
|
|
/obj/item/aiModule/freeform = 1,
|
|
/obj/item/aiModule/oneHuman = 0.5,
|
|
/obj/item/aiModule/oxygen = 1
|
|
)
|
|
|
|
/obj/random/rig_module
|
|
name = "random rig module"
|
|
desc = "Contains a random rig module worthy of vault protection."
|
|
icon = 'icons/obj/rig_modules.dmi'
|
|
icon_state = "actuators"
|
|
spawnlist = list(
|
|
/obj/item/rig_module/actuators/combat = 1,
|
|
/obj/item/rig_module/chem_dispenser/combat = 1,
|
|
/obj/item/rig_module/chem_dispenser/injector = 1,
|
|
/obj/item/rig_module/device/emag_hand = 1,
|
|
/obj/item/rig_module/device/rfd_c = 1,
|
|
/obj/item/rig_module/electrowarfare_suite = 0.5,
|
|
/obj/item/rig_module/emp_shielding = 0.5,
|
|
/obj/item/rig_module/fabricator/energy_net = 1,
|
|
/obj/item/rig_module/fabricator = 0.5,
|
|
/obj/item/rig_module/grenade_launcher = 0.5,
|
|
/obj/item/rig_module/maneuvering_jets = 0.5,
|
|
/obj/item/rig_module/mounted/egun = 1,
|
|
/obj/item/rig_module/mounted/smg = 0.5,
|
|
/obj/item/rig_module/vision/multi = 0.5
|
|
)
|
|
|
|
/obj/random/voidsuit/freebooter
|
|
name = "random freebooter voidsuit"
|
|
suitmap = list(
|
|
/obj/item/clothing/suit/space/void/engineering = /obj/item/clothing/head/helmet/space/void/engineering,
|
|
/obj/item/clothing/suit/space/void/mining = /obj/item/clothing/head/helmet/space/void/mining,
|
|
/obj/item/clothing/suit/space/void/merc = /obj/item/clothing/head/helmet/space/void/merc,
|
|
/obj/item/clothing/suit/space/void/freelancer = /obj/item/clothing/head/helmet/space/void/freelancer,
|
|
/obj/item/rig/industrial,
|
|
/obj/item/rig/eva,
|
|
/obj/item/rig/hazard,
|
|
/obj/item/clothing/suit/space/syndicate/black/red = /obj/item/clothing/head/helmet/space/syndicate/black/red,
|
|
/obj/item/clothing/suit/space/syndicate/black = /obj/item/clothing/head/helmet/space/syndicate/black
|
|
)
|
|
problist = list(
|
|
/obj/item/clothing/suit/space/void/engineering = 3,
|
|
/obj/item/clothing/suit/space/void/mining = 3,
|
|
/obj/item/clothing/suit/space/void/merc = 1,
|
|
/obj/item/clothing/suit/space/void/freelancer = 1,
|
|
/obj/item/rig/industrial = 2,
|
|
/obj/item/rig/hazard = 1,
|
|
/obj/item/rig/eva = 2,
|
|
/obj/item/clothing/suit/space/syndicate/black = 1,
|
|
/obj/item/clothing/suit/space/syndicate/black/red = 1
|
|
)
|
|
has_postspawn = TRUE
|
|
|
|
/obj/random/voidsuit
|
|
name = "random voidsuit"
|
|
var/damaged = 0
|
|
var/list/suitmap = list(
|
|
/obj/item/clothing/suit/space/void = /obj/item/clothing/head/helmet/space/void,
|
|
/obj/item/clothing/suit/space/void/engineering = /obj/item/clothing/head/helmet/space/void/engineering,
|
|
/obj/item/clothing/suit/space/void/mining = /obj/item/clothing/head/helmet/space/void/mining,
|
|
/obj/item/clothing/suit/space/void/medical = /obj/item/clothing/head/helmet/space/void/medical,
|
|
/obj/item/clothing/suit/space/void/security = /obj/item/clothing/head/helmet/space/void/security,
|
|
/obj/item/clothing/suit/space/void/atmos = /obj/item/clothing/head/helmet/space/void/atmos,
|
|
/obj/item/clothing/suit/space/void/merc = /obj/item/clothing/head/helmet/space/void/merc,
|
|
/obj/item/clothing/suit/space/void/captain = /obj/item/clothing/head/helmet/space/void/captain,
|
|
/obj/item/clothing/suit/space/void/cruiser = /obj/item/clothing/head/helmet/space/void/cruiser,
|
|
/obj/item/clothing/suit/space/void/coalition = /obj/item/clothing/head/helmet/space/void/coalition,
|
|
/obj/item/clothing/suit/space/void/hos = /obj/item/clothing/head/helmet/space/void/hos,
|
|
/obj/item/clothing/suit/space/void/lancer = /obj/item/clothing/head/helmet/space/void/lancer,
|
|
/obj/item/clothing/suit/space/void/sci = /obj/item/clothing/head/helmet/space/void/sci,
|
|
/obj/item/clothing/suit/space/void/sol = /obj/item/clothing/head/helmet/space/void/sol,
|
|
/obj/item/clothing/suit/space/void/hephaestus = /obj/item/clothing/head/helmet/space/void/hephaestus,
|
|
/obj/item/clothing/suit/space/void/zenghu = /obj/item/clothing/head/helmet/space/void/zenghu,
|
|
/obj/item/clothing/suit/space/void/einstein = /obj/item/clothing/head/helmet/space/void/einstein,
|
|
/obj/item/clothing/suit/space/void/zavodskoi = /obj/item/clothing/head/helmet/space/void/zavodskoi
|
|
)
|
|
problist = list(
|
|
/obj/item/clothing/suit/space/void = 2,
|
|
/obj/item/clothing/suit/space/void/engineering = 2,
|
|
/obj/item/clothing/suit/space/void/mining = 2,
|
|
/obj/item/clothing/suit/space/void/medical = 2.3,
|
|
/obj/item/clothing/suit/space/void/security = 1,
|
|
/obj/item/clothing/suit/space/void/atmos = 1.5,
|
|
/obj/item/clothing/suit/space/void/merc = 0.5,
|
|
/obj/item/clothing/suit/space/void/captain = 0.3,
|
|
/obj/item/clothing/suit/space/void/cruiser = 0.5,
|
|
/obj/item/clothing/suit/space/void/coalition = 1,
|
|
/obj/item/clothing/suit/space/void/hos = 0.3,
|
|
/obj/item/clothing/suit/space/void/lancer = 0.3,
|
|
/obj/item/clothing/suit/space/void/sci = 2,
|
|
/obj/item/clothing/suit/space/void/sol = 0.5,
|
|
/obj/item/clothing/suit/space/void/zavodskoi = 0.5,
|
|
/obj/item/clothing/suit/space/void/einstein = 0.5,
|
|
/obj/item/clothing/suit/space/void/hephaestus = 0.5,
|
|
/obj/item/clothing/suit/space/void/zenghu = 0.5
|
|
)
|
|
has_postspawn = TRUE
|
|
|
|
/obj/random/voidsuit/no_nanotrasen
|
|
suitmap = list(
|
|
/obj/item/clothing/suit/space/void = /obj/item/clothing/head/helmet/space/void,
|
|
/obj/item/clothing/suit/space/void/merc = /obj/item/clothing/head/helmet/space/void/merc,
|
|
/obj/item/clothing/suit/space/void/cruiser = /obj/item/clothing/head/helmet/space/void/cruiser,
|
|
/obj/item/clothing/suit/space/void/coalition = /obj/item/clothing/head/helmet/space/void/coalition,
|
|
/obj/item/clothing/suit/space/void/lancer = /obj/item/clothing/head/helmet/space/void/lancer,
|
|
/obj/item/clothing/suit/space/void/sol = /obj/item/clothing/head/helmet/space/void/sol,
|
|
/obj/item/clothing/suit/space/void/hephaestus = /obj/item/clothing/head/helmet/space/void/hephaestus,
|
|
/obj/item/clothing/suit/space/void/zenghu = /obj/item/clothing/head/helmet/space/void/zenghu,
|
|
/obj/item/clothing/suit/space/void/einstein = /obj/item/clothing/head/helmet/space/void/einstein,
|
|
/obj/item/clothing/suit/space/void/zavodskoi = /obj/item/clothing/head/helmet/space/void/zavodskoi
|
|
)
|
|
problist = list(
|
|
/obj/item/clothing/suit/space/void = 2,
|
|
/obj/item/clothing/suit/space/void/merc = 0.5,
|
|
/obj/item/clothing/suit/space/void/cruiser = 0.5,
|
|
/obj/item/clothing/suit/space/void/coalition = 1,
|
|
/obj/item/clothing/suit/space/void/lancer = 0.3,
|
|
/obj/item/clothing/suit/space/void/sol = 0.5,
|
|
/obj/item/clothing/suit/space/void/zavodskoi = 0.5,
|
|
/obj/item/clothing/suit/space/void/einstein = 0.5,
|
|
/obj/item/clothing/suit/space/void/hephaestus = 0.5,
|
|
/obj/item/clothing/suit/space/void/zenghu = 0.5
|
|
)
|
|
|
|
/obj/random/voidsuit/Initialize(mapload, _damaged = 0)
|
|
damaged = _damaged
|
|
. = ..(mapload)
|
|
|
|
/obj/random/voidsuit/post_spawn(obj/item/clothing/suit/space/suit)
|
|
var/helmet = suitmap[suit.type]
|
|
if (helmet)
|
|
new helmet(loc)
|
|
else
|
|
log_debug("random_obj (voidsuit): Type [suit.type] was unable to spawn a matching helmet!")
|
|
new /obj/item/clothing/shoes/magboots(loc)
|
|
if (damaged && prob(60))
|
|
suit.create_breaches(pick(DAMAGE_BRUTE, DAMAGE_BURN), rand(1, 5))
|
|
/obj/random/vault_rig
|
|
name = "random rigsuit"
|
|
desc = "Contains a random rigsuit found in the vault."
|
|
icon = 'icons/obj/rig_modules.dmi'
|
|
icon_state = "breacher_rig"
|
|
spawnlist = list(
|
|
/obj/item/rig/ce = 1,
|
|
/obj/item/rig/eva= 1,
|
|
/obj/item/rig/hazard = 1,
|
|
/obj/item/rig/hazmat = 1,
|
|
/obj/item/rig/medical = 1,
|
|
/obj/item/rig/industrial = 1
|
|
)
|
|
|
|
/obj/random/safe_rig
|
|
name = "random rigsuit"
|
|
desc = "contains a random highvalue rigsuit found in the vault"
|
|
icon = 'icons/obj/rig_modules.dmi'
|
|
icon_state = "breacher_rig"
|
|
spawnlist = list(
|
|
/obj/item/rig/combat/equipped = 0.8,
|
|
/obj/item/rig/military = 0.3,
|
|
/obj/item/rig/hazard/equipped = 0.8,
|
|
/obj/item/rig/retro/equipped = 0.8,
|
|
/obj/item/rig/ert/security = 0.3,
|
|
/obj/item/rig/unathi = 0.4
|
|
)
|
|
|
|
/obj/random/canister
|
|
name = "random canister"
|
|
icon_state = "canister"
|
|
spawn_nothing_percentage = 20
|
|
problist = list(
|
|
/obj/random/canister/empty = 0.6,
|
|
/obj/random/canister/filled = 0.4,
|
|
)
|
|
|
|
/obj/random/canister/empty
|
|
name = "random empty canister"
|
|
problist = list(
|
|
// common:
|
|
/obj/machinery/portable_atmospherics/canister/empty = 1,
|
|
/obj/machinery/portable_atmospherics/canister/empty/air = 1,
|
|
/obj/machinery/portable_atmospherics/canister/empty/air = 1,
|
|
/obj/machinery/portable_atmospherics/canister/empty/carbon_dioxide = 1,
|
|
/obj/machinery/portable_atmospherics/canister/empty/carbon_dioxide = 1,
|
|
/obj/machinery/portable_atmospherics/canister/empty/hydrogen = 1,
|
|
/obj/machinery/portable_atmospherics/canister/empty/nitrogen = 1,
|
|
/obj/machinery/portable_atmospherics/canister/empty/oxygen = 1,
|
|
/obj/machinery/portable_atmospherics/canister/empty/oxygen = 1,
|
|
/obj/machinery/portable_atmospherics/canister/empty/sleeping_agent = 1,
|
|
// rare:
|
|
/obj/machinery/portable_atmospherics/canister/empty/heliumfuel = 0.1,
|
|
/obj/machinery/portable_atmospherics/canister/empty/chlorine = 0.1,
|
|
/obj/machinery/portable_atmospherics/canister/empty/helium = 0.1,
|
|
/obj/machinery/portable_atmospherics/canister/empty/nitrogen_dioxide = 0.1,
|
|
/obj/machinery/portable_atmospherics/canister/empty/phoron = 0.1,
|
|
)
|
|
|
|
/obj/random/canister/filled
|
|
name = "random filled canister"
|
|
problist = list(
|
|
// common:
|
|
/obj/machinery/portable_atmospherics/canister/air = 1,
|
|
/obj/machinery/portable_atmospherics/canister/air = 1,
|
|
/obj/machinery/portable_atmospherics/canister/carbon_dioxide = 1,
|
|
/obj/machinery/portable_atmospherics/canister/carbon_dioxide = 1,
|
|
/obj/machinery/portable_atmospherics/canister/hydrogen = 1,
|
|
/obj/machinery/portable_atmospherics/canister/nitrogen = 1,
|
|
/obj/machinery/portable_atmospherics/canister/oxygen = 1,
|
|
/obj/machinery/portable_atmospherics/canister/oxygen = 1,
|
|
/obj/machinery/portable_atmospherics/canister/sleeping_agent = 1,
|
|
// rare:
|
|
/obj/machinery/portable_atmospherics/canister/heliumfuel = 0.1,
|
|
/obj/machinery/portable_atmospherics/canister/chlorine = 0.1,
|
|
/obj/machinery/portable_atmospherics/canister/helium = 0.1,
|
|
/obj/machinery/portable_atmospherics/canister/nitrogen_dioxide = 0.1,
|
|
/obj/machinery/portable_atmospherics/canister/phoron_scarce = 0.1,
|
|
// extra rare:
|
|
/obj/machinery/portable_atmospherics/canister/phoron = 0.01,
|
|
)
|