Adds borer as its own gamemode. Switches some psionics around. (#7976)

This commit is contained in:
Matt Atlas
2020-01-14 08:48:42 +01:00
committed by GitHub
parent d1649dd546
commit 81c538da9b
10 changed files with 101 additions and 31 deletions
@@ -169,7 +169,7 @@
var/new_latencies = rand(2,4)
var/list/faculties = list(PSI_COERCION, PSI_REDACTION, PSI_ENERGISTICS, PSI_PSYCHOKINESIS)
for(var/i = 1 to new_latencies)
to_chat(src, span("danger", "<font size = 3>[pick(psi_operancy_messages)]</font>"))
custom_pain(span("danger", "<font size = 3>[pick(psi_operancy_messages)]</font>"), 25)
set_psi_rank(pick_n_take(faculties), 1)
sleep(30)
psi.update()
@@ -403,7 +403,7 @@
/mob/living/simple_animal/borer/verb/awaken_psionics()
set category = "Abilities"
set name = "Awaken Host Psionics (100)"
set name = "Awaken Host Psionics (150)"
set desc = "Probe into your host an unlock their psionic potential."
if(!host)
@@ -415,13 +415,13 @@
if(stat)
to_chat(src, span("notice", "You cannot do that in your current state."))
return
if(chemicals < 100)
if(chemicals < 150)
to_chat(src, span("warning", "You don't have enough chemicals!"))
return
chemicals -= 100
chemicals -= 150
to_chat(src, span("notice", "You probe your tendrils deep within your host's zona bovinae, seeking to unleash their potential."))
to_chat(host, span("warning", "You feel a burning tingling sensation at the back of your head."))
to_chat(host, span("danger", "You feel some tendrils probe at the back of your head..."))
addtimer(CALLBACK(src, .proc/jumpstart_psi), 100)
/mob/living/simple_animal/borer/proc/jumpstart_psi()
@@ -45,4 +45,4 @@
if(istype(M, /mob/abstract/new_player))
continue
else if(M.stat == DEAD && M.client.prefs.toggles & CHAT_GHOSTEARS)
to_chat(M, "[src.truename] whispers to [host], \"[message]\"")
to_chat(M, "<b>[src.truename]</b> whispers to <b>[host]</b>, \"[message]\"")
@@ -160,6 +160,15 @@
if(isliving(target))
tesla_zap(target, 3, 5000)
/obj/item/projectile/energy/tesla/master
damage = 15
/obj/item/projectile/energy/tesla/grandmaster
damage = 20
/obj/item/projectile/energy/tesla/paramount
damage = 25
/obj/item/projectile/energy/gravitydisabler
name = "gravity disabler"
icon = 'icons/obj/projectiles.dmi'
+27 -25
View File
@@ -7,24 +7,28 @@
/datum/psionic_power/energistics
faculty = PSI_ENERGISTICS
/datum/psionic_power/energistics/disrupt
name = "Disrupt"
cost = 10
/datum/psionic_power/energistics/electropulse
name = "Electropulse"
cost = 40
cooldown = 100
use_melee = TRUE
min_rank = PSI_RANK_MASTER
use_description = "Target the head, eyes or mouth while on harm intent to use a melee attack that causes a localized electromagnetic pulse."
use_description = "Target the right hand while on harm intent and click an object to use a melee attack that causes a localized EMP. This activates the EMP function on things, but it takes a while and applies a long cooldown, in addition to being expensive."
/datum/psionic_power/energistics/disrupt/invoke(var/mob/living/user, var/mob/living/target)
if(user.zone_sel.selecting != BP_HEAD && user.zone_sel.selecting != BP_EYES && user.zone_sel.selecting != "mouth")
/datum/psionic_power/energistics/electropulse/invoke(var/mob/living/user, var/mob/living/target)
if(user.zone_sel.selecting != BP_R_HAND)
return FALSE
if(istype(target, /turf))
if(istype(target, /turf) || ismob(target))
return FALSE
. = ..()
if(.)
user.visible_message("<span class='danger'>\The [user] releases a gout of crackling static and arcing lightning over \the [target]!</span>")
empulse(target, 0, 1)
return TRUE
user.visible_message("<span class='warning'>[user] holds their hands over \the [target]...</span>")
if(do_after(user, 100, TRUE, target))
user.visible_message("<span class='danger'>\The [user] releases a gout of arcing lightning over \the [target]!</span>")
playsound(target, 'sound/magic/LightningShock.ogg', 75)
var/severity = 1 + user.psi.get_rank(PSI_ENERGISTICS)
target.emp_act(severity)
return TRUE
/datum/psionic_power/energistics/electrocute
name = "Electrocute"
@@ -51,36 +55,34 @@
charging_cell.give(rand(15,45))
return TRUE
/datum/psionic_power/energistics/zorch
name = "Zorch"
/datum/psionic_power/energistics/lightning
name = "Lightning"
cost = 20
cooldown = 20
use_ranged = TRUE
min_rank = PSI_RANK_MASTER
use_description = "Use this ranged laser attack while on harm intent. Your mastery of Energistics will determine how powerful the laser is. Be wary of overuse, and try not to fry your own brain."
use_description = "Use this ranged lightning attack while on harm intent. Your mastery of Energistics will determine how powerful the lightning is. Be wary of overuse, and try not to fry your own brain."
/datum/psionic_power/energistics/zorch/invoke(var/mob/living/user, var/mob/living/target)
/datum/psionic_power/energistics/lightning/invoke(var/mob/living/user, var/mob/living/target)
. = ..()
if(.)
user.visible_message("<span class='danger'>\The [user]'s eyes flare with light!</span>")
user.visible_message("<span class='danger'>\The [user] suddenly holds their hand out!</span>")
var/user_rank = user.psi.get_rank(faculty)
var/obj/item/projectile/pew
var/pew_sound
var/pew_sound = 'sound/magic/LightningShock.ogg'
switch(user_rank)
if(PSI_RANK_PARAMOUNT)
pew = new /obj/item/projectile/beam/heavylaser(get_turf(user))
pew.name = "gigawatt mental laser"
pew_sound = 'sound/weapons/lasercannonfire.ogg'
pew = new /obj/item/projectile/energy/tesla/paramount(get_turf(user))
pew.name = "thunderstrike"
pew_sound = 'sound/effects/psi/thunderstrike.ogg'
if(PSI_RANK_GRANDMASTER)
pew = new /obj/item/projectile/beam/midlaser(get_turf(user))
pew.name = "megawatt mental laser"
pew_sound = 'sound/weapons/Laser.ogg'
pew = new /obj/item/projectile/energy/tesla/grandmaster(get_turf(user))
pew.name = "lightning shock"
if(PSI_RANK_MASTER)
pew = new /obj/item/projectile/beam/stun(get_turf(user))
pew.name = "mental laser"
pew_sound = 'sound/weapons/Taser.ogg'
pew = new /obj/item/projectile/energy/tesla/master(get_turf(user))
pew.name = "lightning beam"
if(istype(pew))
playsound(pew.loc, pew_sound, 25, 1)