mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
* Set max version * Updates most references to .proc (Leaves a couple to check check_grep) * Actually add check * Oops * Hopefully exclude the one place we do want .proc * AAAAAAA * Trying this instead * Hopefully checks go green * Switch to NAMEOF_STATIC * Makes 515 acutally build * LIBCALL
26 lines
1.2 KiB
Plaintext
26 lines
1.2 KiB
Plaintext
/datum/component/rad_insulation
|
|
var/amount // Multiplier for radiation strength passing through
|
|
|
|
/datum/component/rad_insulation/Initialize(_amount=RAD_MEDIUM_INSULATION, protects=TRUE, contamination_proof=TRUE)
|
|
if(!isatom(parent))
|
|
return COMPONENT_INCOMPATIBLE
|
|
|
|
if(protects) // Does this protect things in its contents from being affected?
|
|
RegisterSignal(parent, COMSIG_ATOM_RAD_PROBE, PROC_REF(rad_probe_react))
|
|
if(contamination_proof) // Can this object be contaminated?
|
|
RegisterSignal(parent, COMSIG_ATOM_RAD_CONTAMINATING, PROC_REF(rad_contaminating))
|
|
if(_amount != 1) // If it's 1 it wont have any impact on radiation passing through anyway
|
|
RegisterSignal(parent, COMSIG_ATOM_RAD_WAVE_PASSING, PROC_REF(rad_pass))
|
|
|
|
amount = _amount
|
|
|
|
/datum/component/rad_insulation/proc/rad_probe_react(datum/source)
|
|
return COMPONENT_BLOCK_RADIATION
|
|
|
|
/datum/component/rad_insulation/proc/rad_contaminating(datum/source, strength)
|
|
return COMPONENT_BLOCK_CONTAMINATION
|
|
|
|
/datum/component/rad_insulation/proc/rad_pass(datum/source, datum/radiation_wave/wave, width)
|
|
wave.intensity = wave.intensity*(1-((1-amount)/width)) // The further out the rad wave goes the less it's affected by insulation (larger width)
|
|
return COMPONENT_RAD_WAVE_HANDLED
|