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:
Alberyk
2017-04-02 00:10:55 +03:00
committed by skull132
parent 59e7377798
commit ae5ebc19f1
14 changed files with 143 additions and 308 deletions
+21 -27
View File
@@ -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."