mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-28 06:27:26 +01:00
Wizard Update Part 8
- Fixes horsemask spell to work on non-human races. - Removes ability of Summon Item to mark and recall brains due to problems with organ system. - Makes weeping angels turn back to their human form after Flesh to Stone wears off if they were created via F to S and the Staff of Animation. (/tg/ port)
This commit is contained in:
@@ -22,11 +22,11 @@
|
||||
return
|
||||
|
||||
var/mob/living/carbon/target = targets[1]
|
||||
|
||||
|
||||
if(!target)
|
||||
return
|
||||
|
||||
if(!(target.type in compatible_mobs))
|
||||
if(target.type in compatible_mobs || ishuman(target))
|
||||
user << "<span class='notice'>It'd be stupid to curse [target] with a horse's head!</span>"
|
||||
return
|
||||
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
if(!marked_item) //linking item to the spell
|
||||
message = "<span class='notice'>"
|
||||
for(var/obj/item in hand_items)
|
||||
if(istype(item, /obj/item/brain)) //Yeah, sadly this doesn't work due to the organ system.
|
||||
break
|
||||
marked_item = item
|
||||
message += "You mark [item] for recall.</span>"
|
||||
name = "Recall [item]"
|
||||
@@ -32,7 +34,6 @@
|
||||
message = "<span class='caution'>You aren't holding anything that can be marked for recall.</span>"
|
||||
else
|
||||
message = "<span class='notice'>You must hold the desired item in your hands to mark it for recall.</span>"
|
||||
|
||||
else if(marked_item && marked_item in hand_items) //unlinking item to the spell
|
||||
message = "<span class='notice'>You remove the mark on [marked_item] to use elsewhere.</span>"
|
||||
name = "Instant Summons"
|
||||
@@ -60,14 +61,15 @@
|
||||
|
||||
M.u_equip(item_to_retrive)
|
||||
|
||||
if(iscarbon(M)) //Edge case housekeeping
|
||||
var/mob/living/carbon/C = M
|
||||
if(C.internal_organs && item_to_retrive in C.internal_organs) //KALIMA!
|
||||
C.internal_organs -= item_to_retrive
|
||||
if(istype(marked_item,/obj/item/brain)) //If this code ever runs I will be happy
|
||||
var/obj/item/brain/B
|
||||
if(ishuman(M)) //Edge case housekeeping
|
||||
var/mob/living/carbon/human/C = M
|
||||
/*if(C.internal_organs_by_name && item_to_retrive in C.internal_organs_by_name ) //This won't work, as we use organ datums instead of objects. --DZD
|
||||
C.internal_organs_by_name -= item_to_retrive
|
||||
if(istype(marked_item, /obj/item/brain)) //If this code ever runs I will be happy
|
||||
var/obj/item/brain/B = new /obj/item/brain(user.loc)
|
||||
B.transfer_identity(C)
|
||||
add_logs(user, C, "magically debrained", addition="INTENT: [uppertext(user.a_intent)]")
|
||||
C.death()
|
||||
add_logs(user, C, "magically debrained", addition="INTENT: [uppertext(user.a_intent)]")*/
|
||||
if(C.stomach_contents && item_to_retrive in C.stomach_contents)
|
||||
C.stomach_contents -= item_to_retrive
|
||||
|
||||
|
||||
@@ -62,6 +62,17 @@
|
||||
|
||||
/obj/structure/closet/statue/dump_contents()
|
||||
|
||||
if(istype(src.loc, /mob/living/simple_animal/hostile/statue))
|
||||
var/mob/living/simple_animal/hostile/statue/S = src.loc
|
||||
src.loc = S.loc
|
||||
if(S.mind)
|
||||
for(var/mob/M in contents)
|
||||
S.mind.transfer_to(M)
|
||||
M << "As the animating magic wears off you feel yourself coming back to your senses. You are yourself again!"
|
||||
break
|
||||
qdel(S)
|
||||
|
||||
|
||||
for(var/obj/O in src)
|
||||
O.loc = src.loc
|
||||
|
||||
@@ -74,7 +85,6 @@
|
||||
M.client.perspective = MOB_PERSPECTIVE
|
||||
|
||||
|
||||
|
||||
/obj/structure/closet/statue/open()
|
||||
return
|
||||
|
||||
|
||||
@@ -48,11 +48,12 @@
|
||||
sight = SEE_SELF|SEE_MOBS|SEE_OBJS|SEE_TURFS
|
||||
anchored = 1
|
||||
// status_flags = GODMODE // Cannot push also
|
||||
var/mob/living/creator = null
|
||||
|
||||
|
||||
// No movement while seen code.
|
||||
|
||||
/mob/living/simple_animal/hostile/statue/New()
|
||||
/mob/living/simple_animal/hostile/statue/New(loc, var/mob/living/creator)
|
||||
..()
|
||||
// Give spells
|
||||
spell_list += new /obj/effect/proc_holder/spell/wizard/aoe_turf/flicker_lights(src)
|
||||
@@ -62,6 +63,10 @@
|
||||
// Give nightvision
|
||||
see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING
|
||||
|
||||
// Set creator
|
||||
if(creator)
|
||||
src.creator = creator
|
||||
|
||||
/mob/living/simple_animal/hostile/statue/Move(var/turf/NewLoc)
|
||||
if(can_be_seen(NewLoc))
|
||||
icon_state = "angelseen"
|
||||
@@ -173,12 +178,17 @@
|
||||
// Stop attacking clientless mobs
|
||||
|
||||
/mob/living/simple_animal/hostile/statue/CanAttack(var/atom/the_target)
|
||||
if(mind && mind.key && !ckey)
|
||||
return 0
|
||||
if(isliving(the_target))
|
||||
var/mob/living/L = the_target
|
||||
if(!L.client && !L.ckey)
|
||||
return 0
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/statue/ListTargets()
|
||||
. = ..()
|
||||
return . - creator
|
||||
|
||||
// Statue powers
|
||||
|
||||
|
||||
@@ -32,6 +32,8 @@ obj/item/weapon/gun/magic/staff/chaos
|
||||
max_charges = 10
|
||||
recharge_rate = 2
|
||||
|
||||
no_den_usage = 1
|
||||
|
||||
/obj/item/weapon/gun/magic/staff/chaos/process_chambered() //Snowflake proc, because this uses projectile_type instead of ammo_casing for whatever reason.
|
||||
projectile_type = pick(typesof(/obj/item/projectile/magic))
|
||||
if(in_chamber) return 1
|
||||
|
||||
Reference in New Issue
Block a user