Soul Vessels have a few more names and the fluff moniker will persist through new mobs (#22182)

* Soul Vessels have a few more names and the fluff moniker will persist through different mobs

* better

* yarrrrr

* in order, now
This commit is contained in:
Joan Lung
2016-12-15 17:09:19 -05:00
committed by oranges
parent 2696021b8a
commit 6c9a9d0594
3 changed files with 16 additions and 9 deletions

View File

@@ -18,13 +18,14 @@
The purpose of your existence is to further the goals of the servants and Ratvar himself. Above all else, serve Ratvar.</b>"
new_mob_message = "<span class='brass'>The soul vessel emits a jet of steam before its cogwheel smooths out.</span>"
dead_message = "<span class='deadsay'>Its cogwheel, scratched and dented, lies motionless.</span>"
fluff_names = list("Servant")
fluff_names = list("Judge", "Guard", "Servant", "Smith", "Auger")
clockwork = TRUE
autoping = FALSE
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/device/mmi/posibrain/soul_vessel/New()
..()
braintype = picked_fluff_name
all_clockwork_objects += src
/obj/item/device/mmi/posibrain/soul_vessel/Destroy()
@@ -47,7 +48,7 @@
if(!is_servant_of_ratvar(user) || !ishuman(target) || used || (brainmob && brainmob.key))
..()
if(is_servant_of_ratvar(target))
user << "<span class='heavy_alloy'>\"It would be more wise to revive your allies, friend.\"</span>"
user << "<span class='nezbere'>\"It would be more wise to revive your allies, friend.\"</span>"
return
var/mob/living/carbon/human/H = target
var/obj/item/bodypart/head/HE = H.get_bodypart("head")
@@ -76,15 +77,19 @@
return
playsound(H, 'sound/misc/splort.ogg', 60, 1, -1)
playsound(H, 'sound/magic/clockwork/anima_fragment_attack.ogg', 40, 1, -1)
var/prev_fakedeath = (H.status_flags & FAKEDEATH)
H.status_flags |= FAKEDEATH //we want to make sure they don't deathgasp and maybe possibly explode
H.death()
if(!prev_fakedeath)
H.status_flags &= ~FAKEDEATH
brainmob.name = H.real_name
brainmob.real_name = H.real_name
picked_fluff_name = "Slave"
braintype = picked_fluff_name
brainmob.timeofhostdeath = H.timeofdeath
user.visible_message("<span class='warning'>[user] presses [src] to [H]'s head, ripping through the skull and carefully extracting the brain!</span>", \
"<span class='brass'>You extract [H]'s consciousness from [H.p_their()] body, trapping it in the soul vessel.</span>")
transfer_personality(H)
brainmob.fully_replace_character_name(null, "[braintype] [H.real_name]")
name = "[initial(name)] ([brainmob.name])"
B.Remove(H)
qdel(B)
H.update_hair()

View File

@@ -14,15 +14,16 @@
return 0
var/obj/item/device/mmi/posibrain/soul_vessel/S = I
if(!S.brainmob)
user << "<span class='warning'>[S] hasn't trapped a spirit! Turn it on first.</span>"
user << "<span class='warning'>[S] is inactive! Turn it on or capture a mind first.</span>"
return 0
if(S.brainmob && (!S.brainmob.client || !S.brainmob.mind))
user << "<span class='warning'>[S]'s trapped spirit appears inactive!</span>"
user << "<span class='warning'>[S]'s trapped consciousness appears inactive!</span>"
return 0
user.visible_message("<span class='notice'>[user] places [S] in [src], where it fuses to the shell.</span>", "<span class='brass'>You place [S] in [src], fusing it to the shell.</span>")
var/mob/living/simple_animal/A = new mobtype(get_turf(src))
A.visible_message("<span class='brass'>[src][spawn_message]</span>")
S.brainmob.mind.transfer_to(A)
A.fully_replace_character_name(null, "[initial(A.name)] ([S.brainmob.name])")
user.drop_item()
qdel(S)
qdel(src)

View File

@@ -26,6 +26,7 @@ var/global/posibrain_notif_cooldown = 0
var/new_mob_message = "<span class='notice'>The positronic brain chimes quietly.</span>"
var/dead_message = "<span class='deadsay'>It appears to be completely inactive. The reset light is blinking.</span>"
var/list/fluff_names = list("PBU","HIU","SINA","ARMA","OSI","HBL","MSO","RR","CHRI","CDB","HG","XSI","ORNG","GUN","KOR","MET","FRE","XIS","SLI","PKP","HOG","RZH","GOOF","MRPR","JJR","FIRC","INC","PHL","BGB","ANTR","MIW","WJ","JRD","CHOC","ANCL","JLLO","JNLG","KOS","TKRG","XAL","STLP","CBOS","DUNC","FXMC","DRSD")
var/picked_fluff_name //which fluff name we picked
/obj/item/device/mmi/posibrain/Topic(href, href_list)
@@ -94,7 +95,6 @@ var/global/posibrain_notif_cooldown = 0
brainmob.mind.remove_all_antag()
brainmob.mind.wipe_memory()
update_icon()
return
/obj/item/device/mmi/posibrain/proc/transfer_personality(mob/candidate)
if(used || (brainmob && brainmob.key)) //Prevents hostile takeover if two ghosts get the prompt or link for the same brain.
@@ -147,7 +147,8 @@ var/global/posibrain_notif_cooldown = 0
/obj/item/device/mmi/posibrain/New()
brainmob = new(src)
brainmob.name = "[pick(fluff_names)]-[rand(100, 999)]"
picked_fluff_name = pick(fluff_names)
brainmob.name = "[picked_fluff_name]-[rand(100, 999)]"
brainmob.real_name = brainmob.name
brainmob.loc = src
brainmob.container = src