mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-28 11:02:08 +00:00
* tgui the beginning * binaries and the like * Bring in the last of it * Example radio UI * delete example * NTOS Main Menu, start on manifest, tgui states * tasks.json * gunnery ui pt 1 * okay * fix everything * scss update * oops * manifest gigablast * downloader part 1 * download prt 2 * NTOSDownloader final * mfw committing to_worlds * gunnery console pt2 * i cooked * targeting (finished) * one vueui down * voting ui almost done * MY MIND FEELS LIKE AN ARCH ENEMYYYY * voting ui down * photocopier * ntos config + download fixes * photocopier 2 * refactor define * NTOS client manager + fixes * fax machine final (it also uses toner now) * marching forwards... left behind... * ntnrc part 1 * canister * add quotes * portable pumps pt1 + more backgrounds * oops * finish the portable pump * freezers so I'll keep on pushing forward... you haven't seen the last of me... oooooooh... * doors ui pt1 * finish doors UI (forgive me wildkins it's a bit of shitcode) * vitals monitor, make things use labeled lists, new backgrounds * mais j'envoyé aucun mayday... * maglock pt1 * pour ça je me suis perdu... * infrared * fix that * prox sensor pt1 * prox sensor * signaler (this was actually pretty hard) * atmos control pt1 * atmos control pt1.1 * atmos pt 2 * fuel injector * multitool UI * jammer * list viewer * APC * portgen * targeting console updates + SMES ui * new themes, shield generator * supermatter * Add ore detector and (shitty) NTNet Relay * orderterminal pt1 * orderterminal pt2 * smartfridge * Add (air-)tank GUI update ore detector size * Adds Transfer Valves * Add AtmoScrubber * analyzer pt1 * weapons analyzer pt2 * bodyscanner pt1 * bodyscanner pt2 * fix this shitcode * seed storage * appearance changer * appearance changer final * sleeper pt1 * sleeper * gps * vehicles * chem dispenser * lily request * holopad * tgui modules pt1 * ppanel * damage menu * fixes * im here too now * follow menu, search bars * quikpay * quikpay fixes * circuit printer * ppanel * ppanel updates * pai * turret controls (i want to kill myself) * tweak * remove the boardgame * guntracker * implant tracker * penal mechs come close to me, come close to me * chem codex * pai radio * doorjack * pai directives * signaler removal, sensors * ghost spawner * spawnpoint * fixes * teleporter * one more to the chopping block * account database * remove divider * scanner, atmos * latejoin ui pt1 * latejoin * records pt1 * RECORDS UI DONE * delete interpreter & records * CHAT FUCKING CLIENT * data updates * fix some things * final UI, log * basic nanoui fix * antag panel * remove vueui * atm update * vending update * warrants, cameras * ntmonitor * time comes for all * preserve this legacy * bring that back (oops) * rcon, ui auto update for computer UIs, remove rcon computers * alarm monitoring (a bit broke and also todo: add custom alarm monitoring programs to a few consoles) * A LIKE SUPREME * a * power monitor * lights on * fuck this code, fuck nanoui modules, and fuck nanoui * LEAVE IT OH SO FAR BEHIND * fix alarm monitoring for synths * I SAW IN YOU WHAT LIFE WAS MISSING * comms console * idcard and record updates * turn the light on * arcade * pt2 * news browser * static * crusher * f * COULD I JUST SLEIGH THE GOLD FROM THE BALLS? I'M SO FRUSTRATED OH COULD YOU TELL? IF I HEAR ONE MORE VUEUI OR ONE NANOUI I'M GONNA LOSE IT SO LET ME GOOOOOOOOOOOOOOOOO * codeowners & suit sensors * html ui style removal * make lint happy * tgchat * tgpanels pt1 * THE SOUL LONGS FOR OBLIVION!!!!!!!!!!!!!!!!! * figure out why stat isnt working * goodbye ping * shhh * stat updates * An oath sworn in scors! Omni vortex lies! * final almost edits * fix that * last skin adjustments * resist and disorder * i slowly get up and turn off the noise, already fed up... * pleaseeeeeeeeeeeeeee * THE CREDIT LARP IS NECESSARY * i hold the keys * RISE UP * fix that? * harry's suggestions xoxo * runtime fix pt2 * You are the only thing that I still care about * fix runtimes and cl * whoops * misc fixes * fix that too * adds build workflow * f * Update update_tgui.yml * adds some needed steps * ATM * misc fixes and tweaks * fixes 2 * make newscasters usable and fix use power on freezers * turret control is clearer * remove duplicate * makes some verb tabs work properly * makes verbs work properly for real * sans moi * fixes pt2 * fix the chat unnecessarily reloading * fixes * epic * fixes * fix missing consoles --------- Co-authored-by: John Wildkins <john.wildkins@gmail.com> Co-authored-by: Matt Atlas <liermattia@gmail.com> Co-authored-by: harryob <55142896+harryob@users.noreply.github.com> Co-authored-by: Werner <Arrow768@users.noreply.github.com> Co-authored-by: Geeves <ggrobler447@gmail.com> Co-authored-by: harryob <me@harryob.live>
93 lines
3.7 KiB
Plaintext
93 lines
3.7 KiB
Plaintext
/datum/psi_complexus
|
|
|
|
var/announced = FALSE // Whether or not we have been announced to our holder yet.
|
|
var/suppressed = TRUE // Whether or not we are suppressing our psi powers.
|
|
var/use_psi_armor = TRUE // Whether or not we should automatically deflect/block incoming damage.
|
|
var/rebuild_power_cache = TRUE // Whether or not we need to rebuild our cache of psi powers.
|
|
|
|
var/rating = 0 // Overall psi rating.
|
|
var/cost_modifier = 1 // Multiplier for power use stamina costs.
|
|
var/stun = 0 // Number of process ticks we are stunned for.
|
|
var/next_power_use = 0 // world.time minimum before next power use.
|
|
var/stamina = 50 // Current psi pool.
|
|
var/max_stamina = 50 // Max psi pool.
|
|
|
|
var/list/latencies // List of all currently latent faculties.
|
|
var/list/ranks // Assoc list of psi faculties to current rank.
|
|
var/list/base_ranks // Assoc list of psi faculties to base rank, in case reset is needed
|
|
var/list/manifested_items // List of atoms manifested/maintained by psychic power.
|
|
var/next_latency_trigger = 0 // world.time minimum before a trigger can be attempted again.
|
|
var/last_armor_check // world.time of last armor check.
|
|
var/last_aura_size
|
|
var/last_aura_alpha
|
|
var/last_aura_color
|
|
var/aura_color = "#ff0022"
|
|
|
|
// Cached powers.
|
|
var/list/melee_powers // Powers used in melee range.
|
|
var/list/grab_powers // Powers use by using a grab.
|
|
var/list/ranged_powers // Powers used at range.
|
|
var/list/manifestation_powers // Powers that create an item.
|
|
var/list/powers_by_faculty // All powers within a given faculty.
|
|
|
|
var/obj/screen/psi/hub/ui // Reference to the master psi UI object.
|
|
var/mob/living/owner // Reference to our owner.
|
|
var/image/_aura_image // Client image
|
|
|
|
/datum/psi_complexus/proc/get_aura_image()
|
|
if(_aura_image && !istype(_aura_image))
|
|
var/atom/A = _aura_image
|
|
log_debug("Non-image found in psi complexus: \ref[A] - \the [A] - [istype(A) ? A.type : "non-atom"]")
|
|
destroy_aura_image(_aura_image)
|
|
_aura_image = null
|
|
if(!_aura_image)
|
|
_aura_image = create_aura_image(owner)
|
|
return _aura_image
|
|
|
|
/proc/create_aura_image(var/newloc)
|
|
var/image/aura_image = image(loc = newloc, icon = 'icons/effects/psi_aura_small.dmi', icon_state = "aura")
|
|
aura_image.blend_mode = BLEND_MULTIPLY
|
|
aura_image.appearance_flags = NO_CLIENT_COLOR | RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM
|
|
aura_image.layer = TURF_LAYER + 0.5
|
|
aura_image.alpha = 0
|
|
aura_image.pixel_x = -64
|
|
aura_image.pixel_y = -64
|
|
aura_image.mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
|
aura_image.appearance_flags = 0
|
|
for(var/thing in SSpsi.processing)
|
|
var/datum/psi_complexus/psychic = thing
|
|
if(psychic.owner.client && !psychic.suppressed)
|
|
psychic.owner.client.images += aura_image
|
|
SSpsi.all_aura_images[aura_image] = TRUE
|
|
return aura_image
|
|
|
|
/proc/destroy_aura_image(var/image/aura_image)
|
|
for(var/thing in SSpsi.processing)
|
|
var/datum/psi_complexus/psychic = thing
|
|
if(psychic.owner.client)
|
|
psychic.owner.client.images -= aura_image
|
|
SSpsi.all_aura_images -= aura_image
|
|
|
|
/datum/psi_complexus/New(var/mob/_owner)
|
|
owner = _owner
|
|
START_PROCESSING(SSpsi, src)
|
|
|
|
/datum/psi_complexus/Destroy()
|
|
destroy_aura_image(_aura_image)
|
|
STOP_PROCESSING(SSpsi, src)
|
|
if(owner)
|
|
cancel()
|
|
if(owner.client)
|
|
owner.client.screen -= ui
|
|
for(var/thing in SSpsi.all_aura_images)
|
|
owner.client.images -= thing
|
|
QDEL_NULL(ui)
|
|
owner.psi = null
|
|
owner = null
|
|
|
|
if(manifested_items)
|
|
for(var/thing in manifested_items)
|
|
qdel(thing)
|
|
manifested_items.Cut()
|
|
. = ..()
|