mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-22 04:22:39 +01:00
Antag Psionics were generally kind of underwhelming (especially in the face of more interesting power sets like the Vampire/Ling jumpstarters), so to add a new option for autotraitor rounds, I've given Loner back their Awaken and Drain powers that they were allegedly supposed to have according to the wiki. There is now also a new Loner Jumpstarter available in the (Traitor-only) Antag Uplink, which changes the user into a Loner antag. I have also reduced the cost of the standard Psi Jumpstarter to 15tc, which yes that does put it within the realms of what Mercs can buy. In the grand scheme of balance it's still really underwhelming in comparison to everything else Mercs can roll with, though I am very interested in seeing mercs pull more antag psionic gimmicks. <img width="1918" height="970" alt="image" src="https://github.com/user-attachments/assets/33d21a21-9d26-40ac-b9c1-758fc7af2809" />
213 lines
7.4 KiB
Plaintext
213 lines
7.4 KiB
Plaintext
//Psi-boosting item (antag only)
|
|
/obj/item/clothing/head/helmet/space/psi_amp
|
|
name = "cerebro-energetic enhancer"
|
|
desc = "A matte-black, eyeless cerebro-energetic enhancement helmet. It uses highly sophisticated, and illegal, techniques to drill into your brain and install psi-infected AIs into the fluid cavities between your lobes."
|
|
action_button_name = "Install Boosters"
|
|
icon = 'icons/obj/clothing/hats.dmi'
|
|
contained_sprite = FALSE
|
|
icon_state = "amp"
|
|
|
|
item_state_slots = list(
|
|
slot_l_hand_str = "helmet",
|
|
slot_r_hand_str = "helmet"
|
|
)
|
|
|
|
var/operating = FALSE
|
|
var/boosted_rank = PSI_RANK_HARMONIOUS
|
|
var/boosted_psipower = 120
|
|
|
|
/obj/item/clothing/head/helmet/space/psi_amp/mechanics_hints(mob/user, distance, is_adjacent)
|
|
. += ..()
|
|
. += "Due to the nature of this headgear, it will also protect you from the pressure of space."
|
|
. += "When installing the boosters, your chosen faculties will be boosted to the headgear's maximum potential, but the unchosen faculties will also be boosted somewhat."
|
|
|
|
/obj/item/clothing/head/helmet/space/psi_amp/lesser
|
|
name = "psionic amplifier"
|
|
desc = "A crown-of-thorns cerebro-energetic enhancer that interfaces directly with the brain, isolating and strengthening psionic signals. It kind of looks like a tiara."
|
|
flags_inv = 0
|
|
body_parts_covered = 0
|
|
|
|
boosted_rank = PSI_RANK_HARMONIOUS
|
|
boosted_psipower = 50
|
|
|
|
/obj/item/clothing/head/helmet/space/psi_amp/Initialize()
|
|
. = ..()
|
|
verbs += /obj/item/clothing/head/helmet/space/psi_amp/proc/integrate
|
|
|
|
/obj/item/clothing/head/helmet/space/psi_amp/proc/deintegrate()
|
|
set name = "Remove Psi-Amp"
|
|
set desc = "Removes your psi-amp."
|
|
set category = "Abilities"
|
|
set src in usr
|
|
|
|
if(operating)
|
|
return
|
|
|
|
if(canremove)
|
|
return
|
|
|
|
var/mob/living/carbon/human/H = loc
|
|
if(!istype(H) || H.head != src)
|
|
canremove = TRUE
|
|
return
|
|
|
|
to_chat(H, SPAN_WARNING("You feel a strange tugging sensation as \the [src] begins removing the slave-minds from your brain..."))
|
|
playsound(H, 'sound/weapons/circsawhit.ogg', 50, 1, -1)
|
|
operating = TRUE
|
|
|
|
sleep(80)
|
|
|
|
if(H.psi)
|
|
H.psi.reset()
|
|
|
|
to_chat(H, SPAN_NOTICE("\The [src] chimes quietly as it finishes removing the slave-minds from your brain."))
|
|
|
|
canremove = TRUE
|
|
operating = FALSE
|
|
|
|
verbs -= /obj/item/clothing/head/helmet/space/psi_amp/proc/deintegrate
|
|
verbs |= /obj/item/clothing/head/helmet/space/psi_amp/proc/integrate
|
|
|
|
action_button_name = "Integrate Psionic Amplifier"
|
|
H.update_action_buttons()
|
|
|
|
set_light(0)
|
|
|
|
/obj/item/clothing/head/helmet/space/psi_amp/Move()
|
|
var/lastloc = loc
|
|
. = ..()
|
|
if(.)
|
|
var/mob/living/carbon/human/H = lastloc
|
|
if(istype(H) && H.psi)
|
|
H.psi.reset()
|
|
H = loc
|
|
if(!istype(H) || H.head != src)
|
|
canremove = TRUE
|
|
|
|
/obj/item/clothing/head/helmet/space/psi_amp/proc/integrate()
|
|
set name = "Integrate Psionic Amplifier"
|
|
set desc = "Enhance your brainpower."
|
|
set category = "Abilities"
|
|
set src in usr
|
|
|
|
if(operating)
|
|
return
|
|
|
|
if(!canremove)
|
|
return
|
|
|
|
var/mob/living/carbon/human/H = loc
|
|
if(!istype(H) || H.head != src)
|
|
to_chat(usr, SPAN_WARNING("\The [src] must be worn on your head in order to be activated."))
|
|
return
|
|
|
|
canremove = FALSE
|
|
operating = TRUE
|
|
to_chat(H, SPAN_WARNING("You feel a series of sharp pinpricks as \the [src] anaesthetises your scalp before drilling down into your brain."))
|
|
playsound(H, 'sound/weapons/circsawhit.ogg', 50, 1, -1)
|
|
|
|
sleep(80)
|
|
|
|
H.set_psi_rank(boosted_rank, temporary = TRUE)
|
|
if(H.psi)
|
|
H.psi.max_stamina = boosted_psipower
|
|
H.psi.stamina = H.psi.max_stamina
|
|
H.psi.update(force = TRUE)
|
|
|
|
to_chat(H, SPAN_NOTICE("You experience a brief but powerful wave of deja vu as \the [src] finishes modifying your brain."))
|
|
verbs |= /obj/item/clothing/head/helmet/space/psi_amp/proc/deintegrate
|
|
verbs -= /obj/item/clothing/head/helmet/space/psi_amp/proc/integrate
|
|
operating = FALSE
|
|
action_button_name = "Remove Psionic Amplifier"
|
|
H.update_action_buttons()
|
|
H.client.init_verbs()
|
|
|
|
set_light(0.5, 0.1, 3, 2, l_color = "#880000")
|
|
|
|
/obj/item/psionic_jumpstarter
|
|
name = "psionic jumpstarter"
|
|
desc = "Use this to jumpstart your psionic rank to Psionically Harmonious, enabling you to use the Psionic Point Shop and buy offensive psionic abilities. \
|
|
This won't work on species with no Zona Bovinae, like synthetics, vaurcae or dionae! This item is definitely not canon."
|
|
icon = 'icons/obj/clothing/hats.dmi'
|
|
icon_state = "amp"
|
|
contained_sprite = FALSE
|
|
|
|
/**
|
|
* The psi rank that this jumpstarter will set a user to.
|
|
* If the user is below this psi-rank, it will upgrade them
|
|
*/
|
|
var/psi_rank_to_set = PSI_RANK_HARMONIOUS
|
|
|
|
/**
|
|
* The amount of psi-points this jumpstarter will set a user to have.
|
|
* Due to limitations of the current psionics code, it's not actually feasible for me to make this a modifier.
|
|
* If this is set to -1, it will set the points to whatever the default point total is for the given psi-rank.
|
|
*/
|
|
var/psi_points_override = 8
|
|
|
|
/// The message displayed to a character that is not eligible for psionics when attempting to use the psionic jumpstarter.
|
|
var/non_eligible_message = SPAN_WARNING("You don't have a Zona Bovinae!")
|
|
|
|
/// The message displayed to a character that is already at or above the jumpstarter's psionic rating.
|
|
var/already_psionic_message = SPAN_WARNING("You've already awakened your psionic potential!")
|
|
|
|
/// The message displayed to a player who successfully uses a psionic jumpstarter.
|
|
var/awakening_message = SPAN_NOTICE("You've awakened your psionic potential. Note that you have a reduced point pool than usual.")
|
|
|
|
/// Optionally also give the user specific additional psi-power datums
|
|
var/list/singleton/psionic_power/additional_powers = list()
|
|
|
|
/obj/item/psionic_jumpstarter/attack_self(mob/user)
|
|
. = ..()
|
|
if(!ishuman(user))
|
|
return
|
|
var/mob/living/carbon/human/H = user
|
|
if(!H.has_zona_bovinae())
|
|
to_chat(H, non_eligible_message)
|
|
return
|
|
|
|
if(H.psi && H.psi.get_rank() >= psi_rank_to_set)
|
|
to_chat(H, already_psionic_message)
|
|
return
|
|
|
|
H.set_psi_rank(psi_rank_to_set)
|
|
|
|
if(psi_points_override != -1)
|
|
H.psi.psi_points = psi_points_override
|
|
|
|
to_chat(H, awakening_message)
|
|
|
|
for (var/power in additional_powers)
|
|
astype(GET_SINGLETON(power), /singleton/psionic_power)?.apply(H)
|
|
|
|
qdel(src)
|
|
|
|
/obj/item/psionic_jumpstarter/sensitive
|
|
name = "psionic awakener"
|
|
desc = "Use this to jumpstart your psionic rank to Psionically Sensitive, enabling you to use the Psionic Point Shop and buy basic psionic abilities. \
|
|
This won't work on species with no Zona Bovinae, like synthetics, vaurcae or dionae! This item is definitely not canon."
|
|
psi_rank_to_set = PSI_RANK_SENSITIVE
|
|
psi_points_override = 3
|
|
awakening_message = SPAN_NOTICE("You've awakened your psionic potential.")
|
|
|
|
/obj/item/psionic_jumpstarter/loner
|
|
name = "loner jumpstarter"
|
|
desc = "Use this to gain the powers of a Loner, enabling you to use the Psionic Point Shop, as well as the Zona Absorbtion, Awaken, and Drain powers. \
|
|
This won't work on species with no Zona Bovinae, like synthetics, vaurcae or dionae! This item is definitely not canon."
|
|
psi_points_override = 10
|
|
awakening_message = SPAN_DANGER("The curtain of reality parts before your mind, revealing the truth of all existence.")
|
|
|
|
/// Same as Loner bonus powers
|
|
additional_powers = list(
|
|
/singleton/psionic_power/zona_absorption,
|
|
/singleton/psionic_power/awaken,
|
|
/singleton/psionic_power/psi_drain)
|
|
|
|
/obj/item/psionic_jumpstarter/loner/attack_self(mob/user)
|
|
. = ..()
|
|
if (!ishuman(user))
|
|
return
|
|
|
|
var/mob/living/carbon/human/character = user
|
|
GLOB.loners.add_antagonist(character.mind, do_not_equip = TRUE, do_not_announce = TRUE, preserve_appearance = TRUE)
|