mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-21 12:56:10 +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>
109 lines
2.9 KiB
Plaintext
109 lines
2.9 KiB
Plaintext
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
|
|
|
|
/obj/effect/accelerated_particle
|
|
name = "Accelerated Particles"
|
|
desc = "Small things moving very fast."
|
|
icon = 'icons/obj/machinery/particle_accelerator.dmi'
|
|
icon_state = "particle"//Need a new icon for this
|
|
anchored = TRUE
|
|
density = FALSE
|
|
var/active = FALSE
|
|
var/movement_range = 10
|
|
var/energy = 10 //energy in eV
|
|
var/mega_energy = 0 //energy in MeV
|
|
var/frequency = 1
|
|
var/ionizing = 0
|
|
var/particle_type
|
|
var/additional_particles = 0
|
|
var/turf/target
|
|
var/turf/source
|
|
var/movetotarget = 1
|
|
|
|
/obj/effect/accelerated_particle/weak
|
|
movement_range = 8
|
|
energy = 5
|
|
|
|
/obj/effect/accelerated_particle/strong
|
|
movement_range = 15
|
|
energy = 15
|
|
|
|
// Can only be obtained by hacking the machine
|
|
/obj/effect/accelerated_particle/powerful
|
|
movement_range = 20
|
|
energy = 50
|
|
|
|
/obj/effect/accelerated_particle/Initialize(maploading, dir = 2)
|
|
. = ..()
|
|
set_dir(dir)
|
|
if(movement_range > 20)
|
|
movement_range = 20
|
|
active = TRUE
|
|
move(1)
|
|
|
|
/obj/effect/accelerated_particle/Collide(atom/A)
|
|
if (!active)
|
|
return
|
|
if (A)
|
|
if(ismob(A))
|
|
toxmob(A)
|
|
if((istype(A,/obj/machinery/the_singularitygen))||(istype(A,/obj/singularity)))
|
|
var/obj/singularity/singulo = A
|
|
singulo.energy += energy
|
|
else if(istype(A, /obj/machinery/power/fusion_core))
|
|
var/obj/machinery/power/fusion_core/collided_core = A
|
|
if(particle_type && particle_type != "neutron")
|
|
if(collided_core.AddParticles(particle_type, 12 + additional_particles))
|
|
collided_core.owned_field.plasma_temperature += mega_energy
|
|
collided_core.owned_field.energy += energy
|
|
qdel(src)
|
|
else if(istype(A, /obj/effect/fusion_particle_catcher))
|
|
var/obj/effect/fusion_particle_catcher/PC = A
|
|
if(particle_type && particle_type != "neutron")
|
|
if(PC.parent.owned_core.AddParticles(particle_type, 12 + additional_particles))
|
|
PC.parent.plasma_temperature += mega_energy
|
|
PC.parent.energy += energy
|
|
qdel(src)
|
|
|
|
/obj/effect/accelerated_particle/CollidedWith(atom/bumped_atom)
|
|
. = ..()
|
|
if (!active)
|
|
return
|
|
if(ismob(bumped_atom))
|
|
toxmob(bumped_atom)
|
|
|
|
/obj/effect/accelerated_particle/ex_act(severity)
|
|
if (!active)
|
|
return
|
|
qdel(src)
|
|
|
|
/obj/effect/accelerated_particle/proc/toxmob(mob/living/M)
|
|
if (!active)
|
|
return
|
|
var/radiation = (energy*2)
|
|
M.apply_damage((radiation*3), DAMAGE_RADIATION, damage_flags = DAMAGE_FLAG_DISPERSED)
|
|
M.updatehealth()
|
|
|
|
/obj/effect/accelerated_particle/proc/move(lag)
|
|
set waitfor = FALSE
|
|
if(QDELETED(src))
|
|
return
|
|
if (!active)
|
|
return
|
|
var/destination
|
|
if(target)
|
|
destination = movetotarget ? get_step_towards(src, target) : get_step_away(src, source)
|
|
else
|
|
destination = get_step(src, dir)
|
|
if(!step_towards(src, destination))
|
|
if(QDELETED(src))
|
|
return
|
|
forceMove(destination)
|
|
if(target && movetotarget && (get_dist(src,target) < 1))
|
|
movetotarget = FALSE
|
|
movement_range--
|
|
if(movement_range <= 0)
|
|
qdel(src)
|
|
return
|
|
sleep(lag)
|
|
move(lag)
|