Ports a psionic system from Bay. (#7717)

* Ports a psionic system from Bay.

* Rip out this shitcode.

* shitcoden't

* fixes

* it should work fully now

* Admin fixes

* Remove todos

* remove todos part 2

* Removes psi-armour. We don't need this for now.

* Skrell are now operants. Tweaks coercion.

* Adds thralls.

* Temp removal of psiarmour. Fixes psigrabs.

* Thrall assay.

* fixes

* More fixes

* unused define cleanup

* Log and powers

* Skrell powers are done.

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

Co-Authored-By: Geeves <ggrobler447@gmail.com>

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

Co-Authored-By: Geeves <ggrobler447@gmail.com>

* Update code/modules/psionics/equipment/cerebro_enhancers.dm

* did this work???

* jargon

* arrow's fixes

Co-authored-by: Geeves <ggrobler447@gmail.com>
This commit is contained in:
Matt Atlas
2019-12-24 11:32:05 +01:00
committed by Werner
co-authored by Geeves
parent 6fe1c9c3b4
commit c087a0a0bf
94 changed files with 2284 additions and 413 deletions
+20
View File
@@ -93,6 +93,26 @@ proc/admin_notice(var/message, var/rights)
<A href='?src=\ref[src];subtlemessage=\ref[M]'>Subtle message</A>
"}
body += "<br><br>"
body += "<b>Psionics:</b><br/>"
if(isliving(M))
var/mob/living/psyker = M
if(psyker.psi)
body += "<a href='?src=\ref[src];remove_psionics=\ref[psyker.psi]'>Remove psionics.</a><br/><br/>"
body += "<a href='?src=\ref[src];trigger_psi_latencies\ref[psyker.psi]'>Trigger latencies.</a><br/>"
body += "<table width = '100%'>"
for(var/faculty in list(PSI_COERCION, PSI_PSYCHOKINESIS, PSI_REDACTION, PSI_ENERGISTICS))
var/datum/psionic_faculty/faculty_decl = SSpsi.get_faculty(faculty)
var/faculty_rank = psyker.psi ? psyker.psi.get_rank(faculty) : 0
body += "<tr><td><b>[faculty_decl.name]</b></td>"
for(var/i = 1 to LAZYLEN(psychic_ranks_to_strings))
var/psi_title = psychic_ranks_to_strings[i]
if(i == faculty_rank)
psi_title = "<b>[psi_title]</b>"
body += "<td><a href='?src=\ref[psyker.mind];set_psi_faculty_rank=[i];set_psi_faculty=[faculty]'>[psi_title]</a></td>"
body += "</tr>"
body += "</table>"
if (M.client)
if(!istype(M, /mob/abstract/new_player))
body += "<br><br>"
+12 -45
View File
@@ -573,6 +573,18 @@
Game() // updates the main game menu
.(href, list("f_secret"=1))
else if(href_list["remove_psionics"])
var/datum/psi_complexus/psi = locate(href_list["remove_psionics"])
if(psi && psi.owner && !QDELETED(psi))
to_chat(psi.owner, span("notice", "<b>Your psionic powers vanish abruptly, leaving you cold and empty.</b>"))
log_and_message_admins("removed all psionics from [key_name(psi.owner)].")
QDEL_NULL(psi)
else if(href_list["trigger_psi_latencies"])
var/datum/psi_complexus/psi = locate(href_list["trigger_psi_latencies"])
log_and_message_admins("triggered psi latencies for [key_name(psi.owner)].")
psi.check_latency_trigger(100, "outside intervention", redactive = TRUE)
else if(href_list["monkeyone"])
if(!check_rights(R_SPAWN)) return
@@ -1075,51 +1087,6 @@
return
else if(href_list["SolGovFaxReply"])
//TODO
/*
var/mob/living/carbon/human/H = locate(href_list["SolGovFaxReply"])
var/obj/machinery/photocopier/faxmachine/fax = locate(href_list["originfax"])
var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via secure connection. NOTE: BBCode does not work, but HTML tags do! Use <br> for line breaks.", "Outgoing message from Centcomm", "") as message|null
if(!input) return
var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null
for(var/obj/machinery/photocopier/faxmachine/F in machines)
if(F == fax)
if(! (F.stat & (BROKEN|NOPOWER) ) )
// animate! it's alive!
flick("faxreceive", F)
// give the sprite some time to flick
spawn(20)
var/obj/item/paper/P = new /obj/item/paper( F.loc )
P.name = "Sol Government- [customname]"
P.info = input
P.update_icon()
playsound(F.loc, "sound/items/polaroid1.ogg", 50, 1)
// Stamps
var/image/stampoverlay = image('icons/obj/bureaucracy.dmi')
stampoverlay.icon_state = "paper_stamp-cap"
if(!P.stamped)
P.stamped = new
P.stamped += /obj/item/stamp
P.overlays += stampoverlay
P.stamps += "<HR><i>This paper has been stamped and encrypted by the Sol Government Quantum Relay.</i>"
to_chat(src.owner, "Message reply to transmitted successfully.")
log_admin("[key_name(src.owner)] replied to a fax message from [key_name(H)]: [input]")
message_admins("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]", 1)
return
to_chat(src.owner, "/red Unable to locate fax!")
*/
else if(href_list["jumpto"])
if(!check_rights(R_ADMIN)) return
+1 -1
View File
@@ -181,7 +181,7 @@
if(ispath(objholder,/mob) && !check_rights(R_DEBUG,0))
objholder = /obj/structure/closet
if(3)
var/list/locked = list("vars", "key", "ckey", "client", "firemut", "ishulk", "telekinesis", "xray", "virus", "viruses", "cuffed", "ka", "last_eaten", "urine")
var/list/locked = list("vars", "key", "ckey", "client", "firemut", "ishulk", "xray", "virus", "viruses", "cuffed", "ka", "last_eaten", "urine")
master.buildmode.varholder = input(usr,"Enter variable name:" ,"Name", "name")
if(master.buildmode.varholder in locked && !check_rights(R_DEBUG,0))