Psipower Tweakery (#9023)

This commit is contained in:
Geeves
2020-08-28 11:39:18 +02:00
committed by GitHub
parent b14574c0ad
commit d3e70ca0d5
5 changed files with 43 additions and 26 deletions
+7 -2
View File
@@ -2,8 +2,10 @@
name = "psychic power"
icon = 'icons/obj/psychic_powers.dmi'
flags = 0
simulated = 1
anchored = 1
anchored = TRUE
throwforce = 0 //Just to be on the safe side
throw_range = 0
throw_speed = 0
var/maintain_cost = 3
var/mob/living/owner
@@ -31,6 +33,9 @@
/obj/item/psychic_power/dropped()
..()
QDEL_IN(src, 1)
/obj/item/psychic_power/on_give()
qdel(src)
/obj/item/psychic_power/process()
@@ -1,39 +1,45 @@
/obj/item/psychic_power/tinker
name = "psychokinetic crowbar"
icon_state = "tinker"
force = 1
var/emulating = "Crowbar"
icon_state = "crowbar"
force = 5
var/emulating = "crowbar"
var/list/tools = list("crowbar", "wrench", "screwdriver", "cutters")
/obj/item/psychic_power/tinker/Initialize(mapload, ...)
. = ..()
var/list/new_tools = list()
for(var/tool_name in tools)
var/image/radial_image = image('icons/obj/psychic_powers.dmi', tool_name)
new_tools[capitalize_first_letters(tool_name)] = radial_image
tools = new_tools
/obj/item/psychic_power/tinker/iscrowbar()
return emulating == "Crowbar"
return emulating == "crowbar"
/obj/item/psychic_power/tinker/iswrench()
return emulating == "Wrench"
return emulating == "wrench"
/obj/item/psychic_power/tinker/isscrewdriver()
return emulating == "Screwdriver"
return emulating == "screwdriver"
/obj/item/psychic_power/tinker/iswirecutter()
return emulating == "Wirecutters"
/obj/item/psychic_power/tinker/attack_self()
return emulating == "cutters"
/obj/item/psychic_power/tinker/attack_self(mob/user)
if(!owner || loc != owner)
return
var/choice = input("Select a tool to emulate.","Power") as null|anything in list("Crowbar","Wrench","Screwdriver","Wirecutters","Dismiss")
var/choice = show_radial_menu(user, user, tools, radius = 42, tooltips = TRUE)
if(!choice)
return
if(!owner || loc != owner)
return
if(choice == "Dismiss")
sound_to(owner, 'sound/effects/psi/power_fail.ogg')
playsound(get_turf(src), 'sound/effects/psi/power_fail.ogg', 40, TRUE)
owner.drop_from_inventory(src)
return
emulating = choice
name = "psychokinetic [lowertext(emulating)]"
to_chat(owner, "<span class='notice'>You begin emulating \a [lowertext(emulating)].</span>")
sound_to(owner, 'sound/effects/psi/power_fabrication.ogg')
if(!owner || loc != owner)
return
emulating = lowertext(choice)
name = "psychokinetic [emulating]"
icon_state = emulating
to_chat(owner, SPAN_NOTICE("You begin emulating \a [emulating]."))
playsound(get_turf(src), 'sound/effects/psi/power_fabrication.ogg', 40, TRUE)
@@ -15,7 +15,6 @@
. = ..()
/obj/item/psychic_power/telekinesis/proc/set_focus(var/atom/movable/_focus)
if(!_focus.simulated || !istype(_focus.loc, /turf))
return FALSE
@@ -51,7 +50,6 @@
return focus.do_simple_ranged_interaction(user)
/obj/item/psychic_power/telekinesis/afterattack(var/atom/target, var/mob/living/user, var/proximity)
if(!target || !user || (isobj(target) && !isturf(target.loc)) || !user.psi || !user.psi.can_use() || !user.psi.spend_power(5))
return
@@ -93,4 +91,4 @@
O.icon_state = "nothing"
flick("empdisable",O)
sleep(5)
qdel(O)
qdel(O)