mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-12 16:37:19 +01:00
Psi Rework Part 2: Scenes From A Memory (#21736)
The next step in the Psi Reworks is here, this time adding all of the remaining sources and applications of Psi-sensitivity and Psi-protection that were on my To-Do list. Aside from a variety of tweaks and bugfixes to powers, the most player-facing addition is the new Psi-sensitivity related traits, which are High Psi-sensitivity, and Low Psi-sensitivity. These traits modify the character's psi-sensitivity, which messes with their interactions with psionics in a variety of ways. All of these new sources and interactions with psionics are handled entirely through components, which operate on the previously added COMSIG_PSI signals. Check the changelog file for more specific details on what all was fixed. I've fixed quite a lot of bugs and issues with the various psi powers. I have actually tested this PR and verified that it works as advertised. <img width="1902" height="1015" alt="image" src="https://github.com/user-attachments/assets/e922593c-0595-4b63-bee4-36080d9cb8b4" />
This commit is contained in:
@@ -31,13 +31,13 @@
|
||||
UnregisterSignal(owner, COMSIG_PSI_MIND_POWER)
|
||||
UnregisterSignal(owner, COMSIG_PSI_CHECK_SENSITIVITY)
|
||||
|
||||
/obj/item/organ/internal/augment/bioaug/mind_blanker/proc/cancel_power(var/implantee, var/caster, var/cancelled)
|
||||
/obj/item/organ/internal/augment/bioaug/mind_blanker/proc/cancel_power(var/implantee, var/caster, var/cancelled, var/cancel_return, var/wide_field)
|
||||
SIGNAL_HANDLER
|
||||
if(is_broken())
|
||||
return
|
||||
|
||||
*cancelled = TRUE
|
||||
if(implantee == caster)
|
||||
if(wide_field || implantee == caster)
|
||||
return
|
||||
|
||||
to_chat(implantee, SPAN_DANGER("Your mind wriggles as it repulses an outside thought."))
|
||||
@@ -82,13 +82,13 @@
|
||||
UnregisterSignal(owner, COMSIG_PSI_MIND_POWER)
|
||||
UnregisterSignal(owner, COMSIG_PSI_CHECK_SENSITIVITY)
|
||||
|
||||
/obj/item/organ/internal/augment/bioaug/mind_blanker_lethal/proc/cancel_power_lethal(var/mob/living/carbon/human/implantee, var/caster, var/cancelled)
|
||||
/obj/item/organ/internal/augment/bioaug/mind_blanker_lethal/proc/cancel_power_lethal(var/mob/living/carbon/human/implantee, var/caster, var/cancelled, var/cancel_return, var/wide_field)
|
||||
SIGNAL_HANDLER
|
||||
if(is_broken())
|
||||
return
|
||||
|
||||
*cancelled = TRUE
|
||||
if(implantee == caster)
|
||||
if(wide_field || implantee == caster)
|
||||
return
|
||||
|
||||
to_chat(implantee, SPAN_DANGER("Your mind wriggles as it repulses an outside thought."))
|
||||
@@ -96,7 +96,7 @@
|
||||
var/mob/living/victim = caster
|
||||
victim.adjustBrainLoss(20)
|
||||
victim.confused += 20
|
||||
to_chat(victim, SPAN_DANGER("Agony lances through my mind as [implantee.name]'s mind clamps down upon me!"))
|
||||
*cancel_return = SPAN_DANGER("Agony lances through my brain as their mind clamps down upon me!")
|
||||
|
||||
/obj/item/organ/internal/augment/bioaug/mind_blanker_lethal/proc/modify_sensitivity(var/implantee, var/effective_sensitivity)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/organ/internal/augment/psi
|
||||
/obj/item/organ/internal/augment/bioaug/psi
|
||||
name = "psionic receiver"
|
||||
desc = "A cybernetic implant that allows for the carrier of a receiver to be sensitive enough to accept and interpret psionic signals " \
|
||||
+ "Essentially an implanted and carefully encased cultured zona bovinae, these receivers are regularly found within dionae and vaurca who otherwise lack this specialized portion of the brain entirely." \
|
||||
@@ -6,30 +6,40 @@
|
||||
+ "Some psionically weak skrell will also implant themselves with a receiver in the same way a hearing aid is utilized."
|
||||
organ_tag = BP_AUG_PSI
|
||||
parent_organ = BP_HEAD
|
||||
species_restricted = list(
|
||||
SPECIES_HUMAN_OFFWORLD,
|
||||
SPECIES_HUMAN,
|
||||
SPECIES_SKRELL_AXIORI,
|
||||
SPECIES_SKRELL,
|
||||
SPECIES_TAJARA_MSAI,
|
||||
SPECIES_TAJARA_ZHAN,
|
||||
SPECIES_TAJARA,
|
||||
SPECIES_UNATHI,
|
||||
)
|
||||
var/sensitivity_modifier = 1
|
||||
|
||||
/obj/item/organ/internal/augment/psi/Initialize()
|
||||
/obj/item/organ/internal/augment/bioaug/psi/Initialize()
|
||||
. = ..()
|
||||
if(!owner)
|
||||
return
|
||||
|
||||
RegisterSignal(owner, COMSIG_PSI_CHECK_SENSITIVITY, PROC_REF(modify_sensitivity), override = TRUE)
|
||||
|
||||
/obj/item/organ/internal/augment/psi/replaced()
|
||||
/obj/item/organ/internal/augment/bioaug/psi/replaced()
|
||||
. = ..()
|
||||
if(!owner)
|
||||
return
|
||||
|
||||
RegisterSignal(owner, COMSIG_PSI_CHECK_SENSITIVITY, PROC_REF(modify_sensitivity), override = TRUE)
|
||||
|
||||
/obj/item/organ/internal/augment/psi/removed()
|
||||
/obj/item/organ/internal/augment/bioaug/psi/removed()
|
||||
. = ..()
|
||||
if(!owner)
|
||||
return
|
||||
|
||||
UnregisterSignal(owner, COMSIG_PSI_CHECK_SENSITIVITY)
|
||||
|
||||
/obj/item/organ/internal/augment/psi/proc/modify_sensitivity(var/implantee, var/effective_sensitivity)
|
||||
/obj/item/organ/internal/augment/bioaug/psi/proc/modify_sensitivity(var/implantee, var/effective_sensitivity)
|
||||
SIGNAL_HANDLER
|
||||
if(is_broken())
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user