Files
Aurora.3/code/modules/psionics/complexus/complexus_power_cache.dm
Matt Atlas c087a0a0bf Ports a psionic system from Bay. (#7717)
* Ports a psionic system from Bay.

* Rip out this shitcode.

* shitcoden't

* fixes

* it should work fully now

* Admin fixes

* Remove todos

* remove todos part 2

* Removes psi-armour. We don't need this for now.

* Skrell are now operants. Tweaks coercion.

* Adds thralls.

* Temp removal of psiarmour. Fixes psigrabs.

* Thrall assay.

* fixes

* More fixes

* unused define cleanup

* Log and powers

* Skrell powers are done.

* Update code/modules/psionics/events/mini_spasm.dm

Co-Authored-By: Geeves <ggrobler447@gmail.com>

* Update code/modules/psionics/events/mini_spasm.dm

Co-Authored-By: Geeves <ggrobler447@gmail.com>

* Update code/modules/psionics/equipment/cerebro_enhancers.dm

* did this work???

* jargon

* arrow's fixes

Co-authored-by: Geeves <ggrobler447@gmail.com>
2019-12-24 11:32:05 +01:00

50 lines
1.6 KiB
Plaintext

/datum/psi_complexus/proc/rebuild_power_cache()
if(rebuild_power_cache)
melee_powers = list()
grab_powers = list()
ranged_powers = list()
manifestation_powers = list()
powers_by_faculty = list()
for(var/faculty in ranks)
var/relevant_rank = get_rank(faculty)
var/datum/psionic_faculty/faculty_decl = SSpsi.get_faculty(faculty)
for(var/thing in faculty_decl.powers)
var/datum/psionic_power/power = thing
if(relevant_rank >= power.min_rank)
if(!powers_by_faculty[power.faculty]) powers_by_faculty[power.faculty] = list()
powers_by_faculty[power.faculty] += power
if(power.use_ranged)
if(!ranged_powers[faculty]) ranged_powers[faculty] = list()
ranged_powers[faculty] += power
if(power.use_melee)
if(!melee_powers[faculty]) melee_powers[faculty] = list()
melee_powers[faculty] += power
if(power.use_manifest)
manifestation_powers += power
if(power.use_grab)
if(!grab_powers[faculty]) grab_powers[faculty] = list()
grab_powers[faculty] += power
rebuild_power_cache = FALSE
/datum/psi_complexus/proc/get_powers_by_faculty(var/faculty)
rebuild_power_cache()
return powers_by_faculty[faculty]
/datum/psi_complexus/proc/get_melee_powers(var/faculty)
rebuild_power_cache()
return melee_powers[faculty]
/datum/psi_complexus/proc/get_ranged_powers(var/faculty)
rebuild_power_cache()
return ranged_powers[faculty]
/datum/psi_complexus/proc/get_grab_powers(var/faculty)
rebuild_power_cache()
return grab_powers[faculty]
/datum/psi_complexus/proc/get_manifestations()
rebuild_power_cache()
return manifestation_powers