mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-25 14:08:31 +01:00
fixes golems not getting antag and other things when switching shells (#45941)
fixes golems not getting antag and other things when switching shells
This commit is contained in:
@@ -174,16 +174,19 @@
|
||||
if(.)
|
||||
return
|
||||
if(isgolem(user) && can_transfer)
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/transfer_choice = alert("Transfer your soul to [src]? (Warning, your old body will die!)",,"Yes","No")
|
||||
if(transfer_choice != "Yes")
|
||||
return
|
||||
if(QDELETED(src) || uses <= 0)
|
||||
return
|
||||
log_game("[key_name(user)] golem-swapped into [src]")
|
||||
user.visible_message("<span class='notice'>A faint light leaves [user], moving to [src] and animating it!</span>","<span class='notice'>You leave your old body behind, and transfer into [src]!</span>")
|
||||
log_game("[key_name(H)] golem-swapped into [src]")
|
||||
H.visible_message("<span class='notice'>A faint light leaves [H], moving to [src] and animating it!</span>","<span class='notice'>You leave your old body behind, and transfer into [src]!</span>")
|
||||
show_flavour = FALSE
|
||||
create(ckey = user.ckey,name = user.real_name)
|
||||
user.death()
|
||||
var/mob/living/carbon/human/newgolem = create(newname = H.real_name)
|
||||
H.transfer_trait_datums(newgolem)
|
||||
H.mind.transfer_to(newgolem)
|
||||
H.death()
|
||||
return
|
||||
|
||||
/obj/effect/mob_spawn/human/golem/servant
|
||||
|
||||
@@ -69,10 +69,13 @@
|
||||
/obj/effect/mob_spawn/proc/equip(mob/M)
|
||||
return
|
||||
|
||||
/obj/effect/mob_spawn/proc/create(ckey, name)
|
||||
/obj/effect/mob_spawn/proc/create(ckey, newname)
|
||||
var/mob/living/M = new mob_type(get_turf(src)) //living mobs only
|
||||
if(!random)
|
||||
M.real_name = mob_name ? mob_name : M.name
|
||||
if(!random || newname)
|
||||
if(newname)
|
||||
M.real_name = newname
|
||||
else
|
||||
M.real_name = mob_name ? mob_name : M.name
|
||||
if(!mob_gender)
|
||||
mob_gender = pick(MALE, FEMALE)
|
||||
M.gender = mob_gender
|
||||
@@ -106,12 +109,13 @@
|
||||
A.objectives += O
|
||||
if(assignedrole)
|
||||
M.mind.assigned_role = assignedrole
|
||||
special(M, name)
|
||||
special(M)
|
||||
MM.name = M.real_name
|
||||
if(uses > 0)
|
||||
uses--
|
||||
if(!permanent && !uses)
|
||||
qdel(src)
|
||||
return M
|
||||
|
||||
// Base version - place these on maps/templates.
|
||||
/obj/effect/mob_spawn/human
|
||||
|
||||
Reference in New Issue
Block a user