diff --git a/code/defines/obj/storage.dm b/code/defines/obj/storage.dm index 508d42050b2..a5b2ce2cd12 100644 --- a/code/defines/obj/storage.dm +++ b/code/defines/obj/storage.dm @@ -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" diff --git a/code/game/jobs/jobprocs.dm b/code/game/jobs/jobprocs.dm index 8f7c4dfba50..644e3817f0b 100644 --- a/code/game/jobs/jobprocs.dm +++ b/code/game/jobs/jobprocs.dm @@ -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 diff --git a/code/game/objects/storage/bible.dm b/code/game/objects/storage/bible.dm index 200c08a7e28..5f2f543a476 100644 --- a/code/game/objects/storage/bible.dm +++ b/code/game/objects/storage/bible.dm @@ -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 [] heals [] with the power of Christ!", user, M), 1) + O.show_message(text("\red [] heals [] with the power of [src.deity_name]!", user, M), 1) M << "\red May the power of Christ compel you to be healed!" playsound(src.loc, "punch", 25, 1, -1) else diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 788391fa3d7..2285bcebced 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -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" diff --git a/config/names/wizardfirst.txt b/config/names/wizardfirst.txt index 00ed4677d10..408ae3b447e 100644 --- a/config/names/wizardfirst.txt +++ b/config/names/wizardfirst.txt @@ -31,4 +31,6 @@ Radagast Kreol Kaschei Lina -Morgan \ No newline at end of file +Morgan +Alatar +Palando \ No newline at end of file diff --git a/config/names/wizardsecond.txt b/config/names/wizardsecond.txt index 35244f2ba5c..d1e2e734862 100644 --- a/config/names/wizardsecond.txt +++ b/config/names/wizardsecond.txt @@ -33,4 +33,7 @@ Honko the Bandit Killer the Dragon Spooker Inverse -le Fay \ No newline at end of file +le Fay +the Blue +the Red +the Benevolent \ No newline at end of file