mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-22 12:29:46 +01:00
Ghostrap update and minor fixes (#2019)
-moves skeleton minions,wizard familiars and syndicate borgs to the ghost trap system -allow syndicate command and deathsquid to deploy their suit fully when equipped -fix some wrong hardsuit modules names in rd -fix immortal skeletons being able to spam immortality -removes the alien death proc -fix items not dropping when hands, feet or heads are cut off -removes the paint from cargo spam
This commit is contained in:
@@ -59,39 +59,33 @@
|
||||
if(uses == 0)
|
||||
usr << "This book is out of uses."
|
||||
return
|
||||
var/client/C = get_player()
|
||||
if(!C)
|
||||
usr << "There are no souls willing to become a familiar."
|
||||
return
|
||||
|
||||
var/datum/ghosttrap/ghost = get_ghost_trap("wizard familiar")
|
||||
var path = text2path(href_list["path"])
|
||||
if(!ispath(path))
|
||||
usr << "Invalid mob path in [src]. Contact a coder."
|
||||
return
|
||||
|
||||
if(!(path in monster))
|
||||
return
|
||||
|
||||
var/mob/living/simple_animal/familiar/F = new path(get_turf(src))
|
||||
F.ckey = C.ckey
|
||||
F.faction = usr.faction
|
||||
F.add_spell(new /spell/contract/return_master(usr),"const_spell_ready")
|
||||
if(C.mob && C.mob.mind)
|
||||
C.mob.mind.transfer_to(F)
|
||||
F << "<B>You are [F], a familiar to [usr]. He is your master and your friend. Aid him in his wizarding duties to the best of your ability.</B>"
|
||||
var/newname = input(F,"Please choose a name. Leaving it blank or canceling will choose the default.", "Name",F.name) as null|text
|
||||
if(newname)
|
||||
F.name = newname
|
||||
temp = "You have summoned \the [F]"
|
||||
var/mob/living/simple_animal/F = new path(get_turf(src))
|
||||
temp = "You have attempted summoning \the [F]"
|
||||
ghost.request_player(F,"A wizard is requesting a familiar.", 60 SECONDS)
|
||||
uses--
|
||||
spawn(600)
|
||||
if(F)
|
||||
if(!F.ckey || !F.client)
|
||||
F.visible_message("With no soul to keep \the [F] linked to this plane, it fades away.")
|
||||
qdel(F)
|
||||
uses++
|
||||
else
|
||||
F.faction = usr.faction
|
||||
F.add_spell(new /spell/contract/return_master(usr), "const_spell_ready")
|
||||
F << "<B>You are [F], a familiar to [usr]. He is your master and your friend. Aid him in his wizarding duties to the best of your ability.</B>"
|
||||
|
||||
if(Adjacent(usr))
|
||||
src.interact(usr)
|
||||
|
||||
if(Adjacent(usr))
|
||||
src.interact(usr)
|
||||
else
|
||||
usr << browse(null,"window=monstermanual")
|
||||
|
||||
/obj/item/weapon/monster_manual/proc/get_player()
|
||||
for(var/mob/O in dead_mob_list)
|
||||
if(O.client)
|
||||
var/getResponse = alert(O,"A wizard is requesting a familiar. Would you like to play as one?", "Wizard familiar summons","Yes","No")
|
||||
if(getResponse == "Yes")
|
||||
return O.client
|
||||
return null
|
||||
else
|
||||
usr << browse(null,"window=monstermanual")
|
||||
|
||||
@@ -106,13 +106,18 @@
|
||||
var/mob/living/carbon/human/skeleton/F = new(get_turf(target))
|
||||
target.visible_message("<span class='cult'>\The [target] explodes in a shower of gore, a skeleton emerges from the remains!</span>")
|
||||
target.gib()
|
||||
var/client/C = get_player()
|
||||
F.ckey = C.ckey
|
||||
F.faction = usr.faction
|
||||
if(C.mob && C.mob.mind)
|
||||
C.mob.mind.transfer_to(F)
|
||||
F << "<B>You are a skeleton minion to [usr], they are your master. Obey and protect your master at all costs, you have no free will.</B>"
|
||||
|
||||
var/datum/ghosttrap/ghost = get_ghost_trap("skeleton minion")
|
||||
ghost.request_player(F,"A wizard is requesting a skeleton minion.", 60 SECONDS)
|
||||
spawn(600)
|
||||
if(F)
|
||||
if(!F.ckey || !F.client)
|
||||
F.visible_message("With no soul to keep \the [F] linked to this plane, it turns into dust.")
|
||||
F.dust()
|
||||
|
||||
else
|
||||
F << "<B>You are a skeleton minion to [usr], they are your master. Obey and protect your master at all costs, you have no free will.</B>"
|
||||
F.faction = usr.faction
|
||||
|
||||
//equips the skeleton war gear
|
||||
F.equip_to_slot_or_del(new /obj/item/clothing/under/gladiator(F), slot_w_uniform)
|
||||
F.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(F), slot_shoes)
|
||||
@@ -120,14 +125,6 @@
|
||||
F.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/bone(F), slot_head)
|
||||
F.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/bone(F), slot_wear_suit)
|
||||
|
||||
/spell/targeted/raise_dead/proc/get_player()
|
||||
for(var/mob/O in dead_mob_list)
|
||||
if(O.client)
|
||||
var/getResponse = alert(O,"A wizard is requesting a skeleton minion. Would you like to play as one?", "Skeleton minion summons","Yes","No")
|
||||
if(getResponse == "Yes")
|
||||
return O.client
|
||||
return null
|
||||
|
||||
/spell/targeted/lichdom
|
||||
name = "Lichdom"
|
||||
desc = "Trade your life and soul for immortality and power."
|
||||
|
||||
Reference in New Issue
Block a user