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
+7 -2
View File
@@ -171,7 +171,7 @@
if(!temp)
to_chat(user, "<span class='notice'>You try to use your hand, but realize it is no longer attached!</span>")
return
if(!src.Adjacent(user) && !(TK in user.mutations))
if(!src.Adjacent(user))
to_chat(user, span("notice", "\The [src] slips out of your grasp before you can grab it!")) // because things called before this can move it
return // please don't pick things up
src.pickup(user)
@@ -796,4 +796,9 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
pixel_y = rand(-randpixel, randpixel)
return TRUE
else
return FALSE
return FALSE
/obj/item/do_simple_ranged_interaction(var/mob/user)
if(user)
attack_self(user)
return TRUE
-2
View File
@@ -417,8 +417,6 @@
var/obj/item/grab/G = W
MouseDrop_T(G.affecting, user)
return 0
if(istype(W,/obj/item/tk_grab))
return 0
if(!dropsafety(W))
return
user.drop_item()
@@ -58,6 +58,13 @@
implants -= src
return ..()
/obj/item/implant/proc/removed()
imp_in = null
if(part)
part.implants -= src
part = null
implanted = 0
/obj/item/implant/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/implanter))
var/obj/item/implanter/implanter = I
-9
View File
@@ -108,15 +108,6 @@
if (usr.client && usr.machine==src) // && M.machine == src is omitted because if we triggered this by using the dialog, it doesn't matter if our machine changed in between triggering it and this - the dialog is probably still supposed to refresh.
is_in_use = 1
src.attack_ai(usr)
// check for TK users
if (istype(usr, /mob/living/carbon/human))
if(istype(usr.l_hand, /obj/item/tk_grab) || istype(usr.r_hand, /obj/item/tk_grab/))
if(!(usr in nearby))
if(usr.client && usr.machine==src)
is_in_use = 1
src.attack_hand(usr)
in_use = is_in_use
/obj/proc/updateDialog()
-3
View File
@@ -31,9 +31,6 @@
return ..()
/obj/structure/attack_tk()
return
/obj/structure/ex_act(severity)
switch(severity)
if(1.0)
+1 -1
View File
@@ -433,7 +433,7 @@ LINEN BINS
add_fingerprint(user)
/obj/structure/bedsheetbin/attack_tk(mob/user as mob)
/obj/structure/bedsheetbin/do_simple_ranged_interaction(var/mob/user)
if(amount >= 1)
amount--
@@ -224,8 +224,6 @@
var/obj/item/grab/G = W
MouseDrop_T(G.affecting, user) //act like they were dragged onto the closet
return 0
if(istype(W,/obj/item/tk_grab))
return 0
if(W.iswelder())
var/obj/item/weldingtool/WT = W
if(WT.isOn())
@@ -337,12 +335,6 @@
add_fingerprint(user)
return toggle(user)
// tk grab then use on self
/obj/structure/closet/attack_self_tk(mob/user as mob)
add_fingerprint(user)
if(!toggle())
to_chat(usr, "<span class='notice'>It won't budge!</span>")
/obj/structure/closet/verb/verb_toggleopen()
set src in oview(1)
set category = "Object"
@@ -11,8 +11,6 @@
var/obj/item/grab/G = W
MouseDrop_T(G.affecting, user) //act like they were dragged onto the closet
return 0
if(istype(W,/obj/item/tk_grab))
return 0
if(!dropsafety(W))
return
if(W)
@@ -18,8 +18,6 @@
var/obj/item/grab/G = W
MouseDrop_T(G.affecting, user) //act like they were dragged onto the closet
return 0
if(istype(W,/obj/item/tk_grab))
return 0
if(!dropsafety(W))
return
if(W)
+10 -10
View File
@@ -50,16 +50,6 @@
opened = !opened
update_icon()
/obj/structure/extinguisher_cabinet/attack_tk(mob/user)
if(has_extinguisher)
has_extinguisher.forceMove(loc)
to_chat(user, "<span class='notice'>You telekinetically remove [has_extinguisher] from [src].</span>")
has_extinguisher = null
opened = 1
else
opened = !opened
update_icon()
/obj/structure/extinguisher_cabinet/update_icon()
if(!opened)
icon_state = "extinguisher_closed"
@@ -71,3 +61,13 @@
icon_state = "extinguisher_full"
else
icon_state = "extinguisher_empty"
/obj/structure/extinguisher_cabinet/do_simple_ranged_interaction(var/mob/user)
if(has_extinguisher)
has_extinguisher.dropInto(loc)
has_extinguisher = null
opened = 1
else
opened = !opened
update_icon()
return TRUE
+1 -1
View File
@@ -30,7 +30,7 @@
rack_shotgun = null
icon_state = "shotgun_rack"
/obj/structure/shotgun_rack/attack_tk(mob/user)
/obj/structure/shotgun_rack/do_simple_ranged_interaction(var/mob/user)
if(rack_shotgun)
rack_shotgun.forceMove(loc)
to_chat(user, "<span class='notice'>You telekinetically remove \the [rack_shotgun] from \the [src].</span>")
@@ -23,12 +23,10 @@
SK.master = E
qdel(src)
/obj/structure/bed/chair/attack_tk(mob/user as mob)
if(buckled_mob)
..()
else
rotate()
return
/obj/structure/bed/chair/do_simple_ranged_interaction(var/mob/user)
if(!buckled_mob && user)
rotate(user)
return TRUE
/obj/structure/bed/chair/post_buckle_mob()
update_icon()
+1 -1
View File
@@ -42,7 +42,7 @@
opened = !opened
update_icon()
/obj/structure/tranqcabinet/attack_tk(mob/user)
/obj/structure/tranqcabinet/do_simple_ranged_interaction(var/mob/user)
if(has_tranq)
has_tranq.forceMove(loc)
to_chat(user, "<span class='notice'>You telekinetically remove [has_tranq] from [src].</span>")
+5 -4
View File
@@ -168,10 +168,6 @@
step(src, get_dir(AM, src))
take_damage(tforce)
/obj/structure/window/attack_tk(mob/user as mob)
user.visible_message("<span class='notice'>Something knocks on [src].</span>")
playsound(loc, 'sound/effects/Glasshit.ogg', 60, 1)
/obj/structure/window/attack_hand(mob/user as mob)
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
if(HULK in user.mutations)
@@ -211,6 +207,11 @@
user.do_attack_animation(src)
return 1
/obj/structure/window/do_simple_ranged_interaction(var/mob/user)
visible_message(span("notice", "Something knocks on \the [src]."))
playsound(loc, 'sound/effects/Glasshit.ogg', 50, 1)
return TRUE
/obj/structure/window/attackby(obj/item/W as obj, mob/user as mob)
if(!istype(W)) return//I really wish I did not need this
if (istype(W, /obj/item/grab) && get_dist(src,user)<2)