mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-26 13:37:58 +01:00
More work on Respawn Character proc. Now properly grants traitors and whomever their equipment/powers. Will also add them to all databases in-game if specified.
Added a few more names to wizard random gen. Chaplains may now pick/create their religion and their deity. Don't lose that book! git-svn-id: http://tgstation13.googlecode.com/svn/trunk@823 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -192,6 +192,7 @@
|
||||
w_class = 3.0
|
||||
flags = FPRINT | TABLEPASS
|
||||
var/mob/affecting = null
|
||||
var/deity_name = "Christ"
|
||||
|
||||
/obj/item/weapon/storage/bible/booze
|
||||
name = "bible"
|
||||
|
||||
@@ -272,12 +272,39 @@
|
||||
|
||||
switch(rank)
|
||||
if ("Chaplain")
|
||||
src.equip_if_possible(new /obj/item/weapon/storage/bible/booze(src), slot_l_hand)
|
||||
var/obj/item/weapon/storage/bible/B = new /obj/item/weapon/storage/bible(src)
|
||||
src.equip_if_possible(B, slot_l_hand)
|
||||
src.equip_if_possible(new /obj/item/device/pda/chaplain(src), slot_belt)
|
||||
src.equip_if_possible(new /obj/item/clothing/under/rank/chaplain(src), slot_w_uniform)
|
||||
src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes)
|
||||
//if(prob(15))
|
||||
// src.see_invisible = 15 -- Doesn't work as see_invisible is reset every world cycle. -- Skie
|
||||
//The two procs below allow the Chaplain to choose their religion. All it really does is change their bible.
|
||||
spawn(0)
|
||||
var/religion_name = "[religion_name()]"
|
||||
var/new_religion = input(src, "You are the Chaplain. Would you like to change your religion?", "Name change", religion_name)
|
||||
|
||||
if (length(new_religion) == 0)
|
||||
new_religion = religion_name
|
||||
|
||||
if (new_religion)
|
||||
if (length(new_religion) >= 26)
|
||||
new_religion = copytext(new_religion, 1, 26)
|
||||
new_religion = dd_replacetext(new_religion, ">", "'")
|
||||
B.name = "The Holy Book of [new_religion]"
|
||||
|
||||
spawn(1)
|
||||
var/deity_name = "Christ"
|
||||
var/new_deity = input(src, "Would you like to change your deity? Default is Christ.", "Name change", deity_name)
|
||||
|
||||
if ( (length(new_deity) == 0) || (new_deity == "Christ") )
|
||||
new_deity = deity_name
|
||||
|
||||
if(new_deity)
|
||||
if (length(new_deity) >= 26)
|
||||
new_deity = copytext(new_deity, 1, 26)
|
||||
new_deity = dd_replacetext(new_deity, ">", "'")
|
||||
B.deity_name = new_deity
|
||||
|
||||
if ("Geneticist")
|
||||
src.equip_if_possible(new /obj/item/device/radio/headset/headset_med (src), slot_ears) // -- TLE
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
if ((istype(M, /mob/living/carbon/human) && prob(60)))
|
||||
bless(M)
|
||||
for(var/mob/O in viewers(M, null))
|
||||
O.show_message(text("\red <B>[] heals [] with the power of Christ!</B>", user, M), 1)
|
||||
O.show_message(text("\red <B>[] heals [] with the power of [src.deity_name]!</B>", user, M), 1)
|
||||
M << "\red May the power of Christ compel you to be healed!"
|
||||
playsound(src.loc, "punch", 25, 1, -1)
|
||||
else
|
||||
|
||||
@@ -291,6 +291,8 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is
|
||||
/*
|
||||
If a guy was gibbed and you want to revive him, this is a good way to do so.
|
||||
Works kind of like entering the game with a new character. Character receives a new mind if they didn't have one.
|
||||
Traitors and the like can also be revived with the previous role mostly intact.
|
||||
TO DO: actually integrate random appearance and player preference save.
|
||||
/N */
|
||||
/client/proc/respawn_character()
|
||||
set category = "Special Verbs"
|
||||
@@ -322,71 +324,65 @@ Works kind of like entering the game with a new character. Character receives a
|
||||
var/mob/living/carbon/human/new_character = new(src)
|
||||
var/new_character_gender = MALE //to determine character's gender for few of the other lines.
|
||||
|
||||
// if(!preferences.preferences.savefile_load(GDEL, 0))
|
||||
// if(alert("Please specify the character's gender.",,"Male","Female")=="Female")
|
||||
// new_character_gender = FEMALE
|
||||
|
||||
if(alert("Please specify the character's gender.",,"Male","Female")=="Female")
|
||||
new_character_gender = FEMALE
|
||||
|
||||
// else
|
||||
// GDEL.preferences.preferences.savefile_load()
|
||||
// GDEL.preferences.preferences.copy_to(new_character)
|
||||
|
||||
var/RANK = input("Please specify which job the character will be respawned as.", "Assigned role") as null|anything in get_all_jobs()
|
||||
if (!RANK) RANK = "Assistant"
|
||||
|
||||
var/spawn_here = pick(latejoin)//"JoinLate" is a landmark which is deleted on round start. So, latejoin has to be used instead.
|
||||
new_character.gender = new_character_gender
|
||||
|
||||
// var/datum/preferences/preferences
|
||||
// new_character.preferences.randomize_name(new_character)
|
||||
// new_character.preferences = new
|
||||
// new_character.preferences.randomize_name = new_character
|
||||
// new_character.name = preferences.real_name
|
||||
// new_character.real_name = new_character.name
|
||||
// randomize_name(new_character)
|
||||
// randomize_skin_tone()
|
||||
// new_character.preferences.randomize_hair_color(var/target = "hair")
|
||||
// new_character.preferences.randomize_eyes_color(new_character)
|
||||
// new_character.preferences.update_preview_icon(new_character)
|
||||
// if( !( call(/datum/preferences/proc/savefile_load)(G_found, 0) ) )Run time errors.
|
||||
// call(/datum/preferences/proc/copy_to)(new_character)
|
||||
|
||||
var/RANK = input("Please specify which job the character will be respawned as.", "Assigned role") as null|anything in get_all_jobs()
|
||||
if (!RANK) RANK = "Assistant"
|
||||
|
||||
new_character.loc = spawn_here
|
||||
new_character.real_name = G_found.name
|
||||
new_character.name = G_found.name
|
||||
message_admins("\blue [key_name_admin(usr)] has respawned [GKEY] as [new_character.name].", 1) //Here so it doesn't null client if an admin re-spawns themselves.
|
||||
new_character.key = GKEY
|
||||
|
||||
// preferences.copy_to(new_character)//Can't copy preferences as they are created on round start. Or loaded.
|
||||
|
||||
new_character.dna.ready_dna(new_character)
|
||||
|
||||
// new_character:ManifestLateSpawn()//That announces the character on all the systems.
|
||||
|
||||
if(G.mind)
|
||||
if(G_found.mind)
|
||||
new_character.mind = G_found.mind
|
||||
new_character.mind.current = new_character
|
||||
new_character.mind.assigned_role = RANK
|
||||
new_character.mind.memory = ""//Memory erased so it doesn't get clunkered up with useless info.
|
||||
else
|
||||
new_character.mind = new
|
||||
new_character.mind.key = GKEY
|
||||
new_character.mind.current = new_character
|
||||
new_character.mind.assigned_role = RANK
|
||||
|
||||
new_character.Equip_Rank(RANK, joined_late=1)
|
||||
del(G)
|
||||
|
||||
/* var/datum/game_mode/current_mode = ticker.mode
|
||||
//These procs function with the assumption that the mob is already a traitor based on their mind.
|
||||
//So all they do is re-equip the mob with powers and/or items. Or not, if they have no special role.
|
||||
switch(new_character.mind.special_role)
|
||||
if("Changeling")
|
||||
var/datum/game_mode/changeling.grant_changeling_powers(new_character)
|
||||
new_character.Equip_Rank(RANK, joined_late=1)
|
||||
new_character.make_changeling()
|
||||
if("traitor")
|
||||
var/datum/game_mode/traitor.equip_traitor(new_character)
|
||||
if("Wizard"||"Fake Wizard")
|
||||
var/datum/game_mode/new_character.loc = pick(wizardstart)
|
||||
wizard.equip_wizard(new_character)
|
||||
new_character.Equip_Rank(RANK, joined_late=1)
|
||||
ticker.mode.equip_traitor(new_character)
|
||||
if("Wizard","Fake Wizard")
|
||||
new_character.loc = pick(wizardstart)
|
||||
new_character.spellremove(new_character)//to properly clear their special verbs in mind.
|
||||
ticker.mode.equip_wizard(new_character)
|
||||
if("Syndicate")
|
||||
var/datum/game_mode/nuclear.equip_syndicate(new_character)*/
|
||||
var/obj/landmark/synd_spawn = locate("landmark*Syndicate-Spawn")
|
||||
if(synd_spawn)
|
||||
new_character.loc = get_turf(synd_spawn)
|
||||
ticker.mode:equip_syndicate(new_character)
|
||||
else
|
||||
new_character.Equip_Rank(RANK, joined_late=1)
|
||||
|
||||
//Announces the character on all the systems.
|
||||
if(alert("Should this character be added to various databases, such as medical records? Click yes only if the character was observing prior. Wizards and nuke operatives will not be added.",,"No","Yes")=="Yes")
|
||||
call(/mob/new_player/proc/ManifestLateSpawn)(new_character)
|
||||
|
||||
new_character.key = GKEY
|
||||
new_character << "You have been respawned. Enjoy the game."
|
||||
del(G_found)
|
||||
|
||||
message_admins("\blue [key_name_admin(src)] has respawned [GKEY] as [new_character.name].", 1)
|
||||
|
||||
/client/proc/cmd_admin_add_freeform_ai_law()
|
||||
set category = "Fun"
|
||||
|
||||
@@ -31,4 +31,6 @@ Radagast
|
||||
Kreol
|
||||
Kaschei
|
||||
Lina
|
||||
Morgan
|
||||
Morgan
|
||||
Alatar
|
||||
Palando
|
||||
@@ -33,4 +33,7 @@ Honko
|
||||
the Bandit Killer
|
||||
the Dragon Spooker
|
||||
Inverse
|
||||
le Fay
|
||||
le Fay
|
||||
the Blue
|
||||
the Red
|
||||
the Benevolent
|
||||
Reference in New Issue
Block a user