mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-31 12:41:46 +00:00
* IT WORKS UP UNTIL THIS POINT * Consolidates SLOT_FLAG and SLOT_HUD into one * Remove cover_both_ears * SLOT_HUD to ITEM_SLOT * Remove clothing_trait changes for the time being * Remove accidental copy-paste * Re-add no-slip var * More failure to copy-paste correctly * Leftover flag * Combine left and right slot flags where possible * UNGOOF MY DEFINES, PHAND IS NOT A THING * Minor spacing changes * Some more fixes from merge * Seperates ITEM SLOT AMOUNT into two defines * ON SECOND THOUGHT LETS NOT DO THAT. * Addresses Contra's review * Thank you GREP * Rename ITEM_SLOT_FEET to ITEM_SLOT_SHOES * Added a comment to the bitmasks in clothing defines * Rename ITEM_SLOT_TIE to ITEM_SLOT_ACCESSORY * These are for a seperate PR. * Magboot fixes * Requested changes * Re-add accidental removal * Wrong flags * Update code/__DEFINES/clothing_defines.dm Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com> Signed-off-by: Chap <erwin@lombok.demon.nl> * Requested changes * Merge fixes * Fix double headset * Fixes multiple accessories --------- Signed-off-by: Chap <erwin@lombok.demon.nl> Co-authored-by: Adrer <adrermail@gmail.com> Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
74 lines
2.4 KiB
Plaintext
74 lines
2.4 KiB
Plaintext
/datum/spell/touch
|
|
var/hand_path = /obj/item/melee/touch_attack
|
|
var/obj/item/melee/touch_attack/attached_hand = null
|
|
var/on_remove_message = TRUE
|
|
invocation_type = "none" //you scream on connecting, not summoning
|
|
|
|
/datum/spell/touch/create_new_targeting()
|
|
return new /datum/spell_targeting/self
|
|
|
|
/datum/spell/touch/Click(mob/user = usr)
|
|
if(attached_hand)
|
|
discharge_hand(user, TRUE)
|
|
return FALSE
|
|
charge_hand(user)
|
|
|
|
/datum/spell/touch/proc/charge_hand(mob/living/carbon/user)
|
|
var/hand_handled = 1
|
|
attached_hand = new hand_path(src)
|
|
RegisterSignal(user, COMSIG_MOB_WILLINGLY_DROP, PROC_REF(discharge_hand))
|
|
if(isalien(user))
|
|
user.put_in_hands(attached_hand)
|
|
return
|
|
if(user.hand) //left active hand
|
|
if(!user.equip_to_slot_if_possible(attached_hand, ITEM_SLOT_LEFT_HAND, FALSE, TRUE))
|
|
if(!user.equip_to_slot_if_possible(attached_hand, ITEM_SLOT_RIGHT_HAND, FALSE, TRUE))
|
|
hand_handled = 0
|
|
else //right active hand
|
|
if(!user.equip_to_slot_if_possible(attached_hand, ITEM_SLOT_RIGHT_HAND, FALSE, TRUE))
|
|
if(!user.equip_to_slot_if_possible(attached_hand, ITEM_SLOT_LEFT_HAND, FALSE, TRUE))
|
|
hand_handled = 0
|
|
if(!hand_handled)
|
|
qdel(attached_hand)
|
|
attached_hand = null
|
|
to_chat(user, "<span class='warning'>Your hands are full!</span>")
|
|
return 0
|
|
to_chat(user, "<span class='notice'>You channel the power of the spell to your hand.</span>")
|
|
return 1
|
|
|
|
/datum/spell/touch/proc/discharge_hand(atom/target, any = FALSE)
|
|
SIGNAL_HANDLER
|
|
var/mob/living/carbon/user = action.owner
|
|
if(!istype(attached_hand))
|
|
return
|
|
if(!any && attached_hand != user.get_active_hand())
|
|
return
|
|
QDEL_NULL(attached_hand)
|
|
if(on_remove_message)
|
|
to_chat(user, "<span class='notice'>You draw the power out of your hand.</span>")
|
|
|
|
|
|
/datum/spell/touch/disintegrate
|
|
name = "Disintegrate"
|
|
desc = "This spell charges your hand with vile energy that can be used to violently explode victims."
|
|
hand_path = /obj/item/melee/touch_attack/disintegrate
|
|
|
|
school = "evocation"
|
|
base_cooldown = 600
|
|
clothes_req = TRUE
|
|
cooldown_min = 200 //100 deciseconds reduction per rank
|
|
|
|
action_icon_state = "gib"
|
|
|
|
/datum/spell/touch/flesh_to_stone
|
|
name = "Flesh to Stone"
|
|
desc = "This spell charges your hand with the power to turn victims into inert statues for a long period of time."
|
|
hand_path = /obj/item/melee/touch_attack/fleshtostone
|
|
|
|
school = "transmutation"
|
|
base_cooldown = 600
|
|
clothes_req = TRUE
|
|
cooldown_min = 200 //100 deciseconds reduction per rank
|
|
|
|
action_icon_state = "statue"
|