mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-21 20:11:04 +01:00
Psipower Tweakery (#9023)
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user