Psionics Rework: Kyoushiki Murasaki (#16951)

* Your unbeatable smile wrecks the media

 We wanna know your secret, so mysterious

* Even the things she lacks end up in her area

Such a perfect liar, you are

* Miss ingenious, godly idol!

(You're my savior, you're my saving grace)

* So, what'd you eat today?

What's your favorite book?

* And if you wanna go to play, where are you gonna go?

I haven't eaten at all

* That's a secret

No matter what you ask

* She's elusive, evasive

* So nonchalant

Yet still shining bright;

* Her secret: out of sight, as if visible, has the taste of honey

There is none, none, none of this

* And also none, none, none of that

What type of guy do you like?

* Who is your partner?

Come on, answer me

* "I don't understand what falling in love with someone else is like" (Hey! Hey!)

I cannot tell what is true from what is a lie (Hey! Hey! Hey! Hey!)

* And yet again, someone falls for such words (Hey! Hey! Hey! Hey!)

Gently lulled into love

* Drawing everyone's eyes

You are the perfect, ultimate idol

* Never to appear again

A reincarnation of Venus

* With that smile, with that "I love you"

You captivate everyone

* Even if those eyes, those words, are false

They make up a perfect love (Ai)

* Yeah, yeah, that girl stands out, exceptional

We were extras from the beginning

* BS that acted as adornments for the star's leading role

Everything we've accomplished is thanks to her — no!

* How impudent

How could envy and jealousy not exist?

* examine

* This isn't some made-up drama for appearances

So I cannot forgive

* You're not perfect, I cannot forgive you

I cannot forgive myself

* I cannot accept any version of you other than the one stronger than everyone else

* Everybody trusts and worships

The very strongest, most invincible idol

* Weaknesses and whatnot are not to be found

Carrying the morning star within

* Showing any weakness is no good, no good (Hey! Hey!)

Don't let them see anything that they don't want to know (Hey! Hey! Hey! Hey!)

* Anything but being one-of-a-kind is a definite no, no (Hey! Hey! Hey! Hey!)

That is the real love (Hey!)

* can commune fixes

* can commune rename

* fix is psi blocked

* fixes agian

* My signature smile that fires up the media

The only secret that I shall keep is this:

* My career was built upon fake "I love you"s

This is love, in my own way

* Even the flowing sweats are beautiful Aqua

These eyelids that hid the Ruby within

* Sing, dance, flutter, I am Maria —

Right, lying is the most exquisite form of love

* I have never been loved by anyone

Nor have I loved anyone else

* That such lies of mine will become true someday

I trust in it

* Someday, surely, I will have it all in hand

I am such a greedy idol

* Because I wish to love everybody properly in a life-sized way

I shall lie today as well (Hey! Hey! Hey! Hey!)

* a

* b

* c

* d

* And yet, still, (Hey! Hey!)

I have been unable to tell you, and you, alone (Hey! Hey! Hey! Hey!)

* jesus christ

* Update code/controllers/subsystems/processing/psi.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/controllers/subsystems/processing/psi.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/controllers/subsystems/processing/psi.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/game/gamemodes/technomancer/spell_objs.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/mob/living/carbon/human/human.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/mob/living/carbon/human/human_helpers.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/organs/organ_external.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/abilities/assay.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/abilities/command.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/abilities/emotional_suggestion.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/abilities/grip.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/abilities/grip.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/abilities/mend.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/abilities/mend.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/abilities/mend.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/abilities/psi_search.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/abilities/shockwave.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/abilities/shockwave.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/abilities/singularity.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/abilities/time_stop.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

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

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/interface/ui_hub.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/interface/ui_hub.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/interface/ui_hub.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/interface/ui_hub.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/interface/ui_hub.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/modules/psionics/interface/ui_hub.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* cl update

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
This commit is contained in:
Matt Atlas
2023-07-31 20:56:52 +02:00
committed by GitHub
co-authored by Fluffy Matt Atlas
parent a894c77990
commit d9b79db97b
146 changed files with 3213 additions and 1617 deletions
+13
View File
@@ -0,0 +1,13 @@
/datum/component/armor/psionic
full_block_message = "You block the blow with your mind!"
partial_block_message = "You soften the blow with your mind!"
/datum/component/armor/psionic/Initialize(list/armor, armor_type)
. = ..()
var/datum/psi_complexus/PC = parent
PC.armor_component = src
/datum/component/armor/psionic/Destroy()
var/datum/psi_complexus/PC = parent
PC.armor_component = null
return ..()
+7 -6
View File
@@ -5,16 +5,17 @@
..()
if(psi)
psi.update(TRUE)
if(!psi.suppressed)
psi.show_auras()
/mob/living/Destroy()
QDEL_NULL(psi)
. = ..()
/mob/living/proc/set_psi_rank(var/faculty, var/rank, var/take_larger, var/defer_update, var/temporary)
/mob/living/proc/set_psi_rank(var/rank, var/defer_update, var/temporary)
if(HAS_TRAIT(src, TRAIT_PSIONICALLY_DEAF))
to_chat(src, SPAN_WARNING("Something tingles in your head."))
return
if(!psi)
psi = new(src)
var/current_rank = psi.get_rank(faculty)
if(current_rank != rank && (!take_larger || current_rank < rank))
psi.set_rank(faculty, rank, defer_update, temporary)
var/current_rank = psi.get_rank()
if(current_rank != rank && current_rank < rank)
psi.set_rank(rank, defer_update, temporary)
-79
View File
@@ -1,79 +0,0 @@
/mob/living/proc/show_psi_assay(var/mob/viewer)
if(!viewer) viewer = usr
var/use_He_is = "You are"
var/use_He_has = "You have"
if(istype(machine) || viewer != src)
use_He_is = "[get_pronoun("He")] [get_pronoun("is")]"
use_He_has = "[get_pronoun("He")] [get_pronoun("has")]"
var/list/dat = list()
dat += "<h2>Summary</h2>"
dat += "<hr>"
if(psi)
// Hi Warhammer 40k rating system, how are you?
// I hope you get along with the Galactic Milieu metapsychics.
var/use_rating
var/effective_rating = psi.rating
if(effective_rating > 1 && psi.suppressed)
effective_rating = max(0, psi.rating-2)
var/rating_descriptor
if(viewer != usr && thralls.is_antagonist(mind) && ishuman(viewer))
var/mob/living/H = viewer
if(H.psi && H.psi.get_rank(PSI_REDACTION) >= PSI_RANK_GRANDMASTER)
dat += "<font color='#FF0000'><b>Their mind has been cored like an apple, and enslaved by another operant psychic.</b></font>"
if(!use_rating)
switch(effective_rating)
if(1)
use_rating = "[effective_rating]-Epsilon"
rating_descriptor = "This indicates the presence of minor latent psi potential with little or no operant capabilities."
if(2)
use_rating = "[effective_rating]-Delta"
rating_descriptor = "This indicates the presence of minor psi capabilities of the Operant rank or higher."
if(3)
use_rating = "<font color = '#F4F441'>[effective_rating]-Gamma</font>"
rating_descriptor = "This indicates the presence of psi capabilities of the Master rank or higher."
if(4)
use_rating = "<font color = '#F4BC42'>[effective_rating]-Beta</font>"
rating_descriptor = "This indicates the presence of significant psi capabilities of the Grandmaster rank or higher."
if(5)
use_rating = "<font color = '#FF0000'>[effective_rating]-Alpha</font>"
rating_descriptor = "This indicates the presence of major psi capabilities of the Paramount Grandmaster rank or higher."
else
use_rating = "[effective_rating]-Lambda"
rating_descriptor = "This indicates the presence of trace latent psi capabilities."
dat += "[use_He_has] an overall psi rating of [use_rating].<br><i>[rating_descriptor]</i><hr>"
dat += "[use_He_is] currently <b>[psi.suppressed ? "suppressing" : "not suppressing"]</b> your psychic operancy.<br>"
dat += "[use_He_has] <b>[psi.stamina]/[psi.max_stamina]</b> psi stamina remaining.<br>"
dat += "<hr>"
for(var/faculty_id in psi.ranks)
var/datum/psionic_faculty/faculty = SSpsi.get_faculty(faculty_id)
if(psi.ranks[faculty.id] > 0)
dat += "[use_He_is] assayed at the rank of <b>[psychic_ranks_to_strings[psi.ranks[faculty.id]]]</b> for the <b>[faculty.name] faculty</b>.<br>"
else
dat += "[use_He_has] no notable power within the <b>[faculty.name] faculty</b>.<br>"
dat += "<hr>"
if(viewer == usr)
dat += "<table width = 100% border = 1><tr><td colspan = 2><h2>Psi-power Usage</h2></td></tr>"
for(var/faculty_id in psi.ranks)
var/list/check_powers = psi.get_powers_by_faculty(faculty_id)
if(LAZYLEN(check_powers))
var/datum/psionic_faculty/faculty = SSpsi.get_faculty(faculty_id)
dat += "<tr><td colspan = 2>[use_He_has] access to the following psi-powers within the <b>[faculty.name] faculty</b>:</td></tr>"
for(var/datum/psionic_power/power in check_powers)
dat += "<tr><td><b>[power.name]</b></td><td>[power.use_description]</td></tr>"
dat += "</table>"
var/datum/browser/popup = new(viewer, "psi_assay_\ref[src]", "Psi-Assay")
popup.set_content(jointext(dat,null))
popup.open()
+11 -8
View File
@@ -6,21 +6,24 @@
return psiaug && !psiaug.is_broken()
/mob/living/proc/is_psi_blocked()
return !can_commune()
return !has_psionics()
/mob/living/carbon/is_psi_blocked()
if(!psi && !has_psi_aug())
if(isSynthetic())
return SPAN_ALIEN("Reaching out, your mind grasps at nothing.")
if (isvaurca(src))
return SPAN_CULT("You reach out into the Nlom; your call sails right through and yields no response.")
if (is_diona())
return SPAN_ALIEN("[src]'s mind is incompatible, formless.")
if(HAS_TRAIT(src, TRAIT_PSIONICALLY_DEAF))
return SPAN_WARNING("[src]'s mind is inaccessible, like hitting a brick wall.")
for (var/obj/item/implant/mindshield/I in src)
if (I.implanted)
return SPAN_WARNING("[src]'s mind is inaccessible, like hitting a brick wall.")
return FALSE
/mob/living/proc/has_zona_bovinae()
return TRUE
/mob/living/carbon/has_zona_bovinae()
if(HAS_TRAIT(src, TRAIT_PSIONICALLY_DEAF))
return FALSE
return TRUE
/mob/living/proc/is_psi_pingable()
return !is_psi_blocked()
@@ -1,37 +0,0 @@
#define INVOKE_PSI_POWERS(holder, powers, target, return_on_invocation) \
if(holder && holder.psi && holder.psi.can_use()) { \
for(var/thing in powers) { \
var/datum/psionic_power/power = thing; \
var/obj/item/result = power.invoke(holder, target); \
if(result) { \
power.handle_post_power(holder, target); \
if(istype(result)) { \
sound_to(holder, sound('sound/effects/psi/power_evoke.ogg')); \
LAZYADD(holder.psi.manifested_items, result); \
holder.put_in_hands(result); \
} \
return return_on_invocation; \
} \
} \
}
/mob/living/UnarmedAttack(var/atom/A, var/proximity)
. = ..()
if(. && psi)
INVOKE_PSI_POWERS(src, psi.get_melee_powers(SSpsi.faculties_by_intent[a_intent]), A, FALSE)
/mob/living/RangedAttack(var/atom/A, var/params)
if(psi)
INVOKE_PSI_POWERS(src, psi.get_ranged_powers(SSpsi.faculties_by_intent[a_intent]), A, TRUE)
. = ..()
/mob/living/proc/check_psi_grab(var/obj/item/grab/grab)
if(psi && ismob(grab.affecting))
INVOKE_PSI_POWERS(src, psi.get_grab_powers(SSpsi.faculties_by_intent[a_intent]), grab.affecting, FALSE)
/mob/living/attack_empty_hand(var/bp_hand)
if(psi)
INVOKE_PSI_POWERS(src, psi.get_manifestations(), src, FALSE)
. = ..()
#undef INVOKE_PSI_POWERS