mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-18 02:24:11 +01:00
Some revisions for removing wizard spells, along with minor mind.dm revisions.
Wizards can no-longer cast when dead. Fixed issues with Transfer Mind spell. Wizards now begin with a random name (but can choose a different one). Wizards may now re-use their spell book to memorize a new set of spells (can only be done on the wizard shuttle). Added special role for cultists, revs, and nuke operatives for that round type. Respawn Character special admin verb should now give the target the same mind if they were gibbed/had a mind as a ghost. This means traitors, changelings, etc, would retain their traitor status but not their powers/equipment. General updates to that proc. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@819 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -1326,44 +1326,6 @@
|
||||
explosion(epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range)
|
||||
message_admins("\blue [src.ckey] creating an admin explosion at [epicenter.loc].")
|
||||
|
||||
/client/proc/make_cultist(var/mob/M in world) // -- TLE, modified by Urist
|
||||
set category = "Admin"
|
||||
set name = "Make Cultist"
|
||||
set desc = "Makes target a cultist"
|
||||
if(!wordtravel)
|
||||
runerandom()
|
||||
if(M)
|
||||
if(cultists.Find(M))
|
||||
return
|
||||
else
|
||||
if(alert("Spawn that person a tome?",,"Yes","No")=="Yes")
|
||||
M << "\red You catch a glimpse of the Realm of Nar-Sie, The Geometer of Blood. You now see how flimsy the world is, you see that it should be open to the knowledge of Nar-Sie. A tome, a message from your new master, appears on the ground."
|
||||
new /obj/item/weapon/tome(M.loc)
|
||||
else
|
||||
M << "\red You catch a glimpse of the Realm of Nar-Sie, The Geometer of Blood. You now see how flimsy the world is, you see that it should be open to the knowledge of Nar-Sie."
|
||||
var/glimpse=pick("1","2","3","4","5","6","7","8")
|
||||
switch(glimpse)
|
||||
if("1")
|
||||
M << "\red You remembered one thing from the glimpse... [wordtravel] is travel..."
|
||||
if("2")
|
||||
M << "\red You remembered one thing from the glimpse... [wordblood] is blood..."
|
||||
if("3")
|
||||
M << "\red You remembered one thing from the glimpse... [wordjoin] is join..."
|
||||
if("4")
|
||||
M << "\red You remembered one thing from the glimpse... [wordhell] is Hell..."
|
||||
if("5")
|
||||
M << "\red You remembered one thing from the glimpse... [worddestr] is destroy..."
|
||||
if("6")
|
||||
M << "\red You remembered one thing from the glimpse... [wordtech] is technology..."
|
||||
if("7")
|
||||
M << "\red You remembered one thing from the glimpse... [wordself] is self..."
|
||||
if("8")
|
||||
M << "\red You remembered one thing from the glimpse... [wordsee] is see..."
|
||||
cultists.Add(M)
|
||||
src << "Made [M] a cultist."
|
||||
if(ticker.mode.name == "cult")
|
||||
ticker.mode:cult += M.mind
|
||||
|
||||
/client/proc/check_words() // -- Urist
|
||||
set category = "Special Verbs"
|
||||
set name = "Check Rune Words"
|
||||
|
||||
@@ -114,10 +114,6 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
returnval = call(procname)(arglist(lst)) // Pass the lst as an argument list to the proc
|
||||
usr << "\blue Proc returned: [returnval ? returnval : "null"]"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/client/proc/Cell()
|
||||
set category = "Debug"
|
||||
set name = "Air Status in Location"
|
||||
@@ -153,7 +149,6 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
else
|
||||
alert("Invalid mob")
|
||||
|
||||
|
||||
/client/proc/cmd_admin_alienize(var/mob/M in world)
|
||||
set category = "Admin"
|
||||
set name = "Make Alien"
|
||||
@@ -195,6 +190,8 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
spawn(10)
|
||||
M.absorbed_dna[M.real_name] = M.dna
|
||||
M.make_changeling()
|
||||
if(M.mind)
|
||||
M.mind.special_role = "Changeling"
|
||||
else
|
||||
alert("Invalid mob")
|
||||
|
||||
@@ -214,6 +211,46 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.make_abomination()
|
||||
*/
|
||||
|
||||
/client/proc/make_cultist(var/mob/M in world) // -- TLE, modified by Urist
|
||||
set category = "Admin"
|
||||
set name = "Make Cultist"
|
||||
set desc = "Makes target a cultist"
|
||||
if(!wordtravel)
|
||||
runerandom()
|
||||
if(M)
|
||||
if(cultists.Find(M))
|
||||
return
|
||||
else
|
||||
if(alert("Spawn that person a tome?",,"Yes","No")=="Yes")
|
||||
M << "\red You catch a glimpse of the Realm of Nar-Sie, The Geometer of Blood. You now see how flimsy the world is, you see that it should be open to the knowledge of Nar-Sie. A tome, a message from your new master, appears on the ground."
|
||||
new /obj/item/weapon/tome(M.loc)
|
||||
else
|
||||
M << "\red You catch a glimpse of the Realm of Nar-Sie, The Geometer of Blood. You now see how flimsy the world is, you see that it should be open to the knowledge of Nar-Sie."
|
||||
var/glimpse=pick("1","2","3","4","5","6","7","8")
|
||||
switch(glimpse)
|
||||
if("1")
|
||||
M << "\red You remembered one thing from the glimpse... [wordtravel] is travel..."
|
||||
if("2")
|
||||
M << "\red You remembered one thing from the glimpse... [wordblood] is blood..."
|
||||
if("3")
|
||||
M << "\red You remembered one thing from the glimpse... [wordjoin] is join..."
|
||||
if("4")
|
||||
M << "\red You remembered one thing from the glimpse... [wordhell] is Hell..."
|
||||
if("5")
|
||||
M << "\red You remembered one thing from the glimpse... [worddestr] is destroy..."
|
||||
if("6")
|
||||
M << "\red You remembered one thing from the glimpse... [wordtech] is technology..."
|
||||
if("7")
|
||||
M << "\red You remembered one thing from the glimpse... [wordself] is self..."
|
||||
if("8")
|
||||
M << "\red You remembered one thing from the glimpse... [wordsee] is see..."
|
||||
cultists.Add(M)
|
||||
if(M.mind)
|
||||
M.mind.special_role = "Cultist"
|
||||
src << "Made [M] a cultist."
|
||||
if(ticker.mode.name == "cult")
|
||||
ticker.mode:cult += M.mind
|
||||
|
||||
/client/proc/cmd_debug_del_all()
|
||||
set category = "Debug"
|
||||
set name = "Del-All"
|
||||
|
||||
@@ -290,8 +290,7 @@ 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.
|
||||
Since gibbed traitors retain their mind through their ghost, I might add some functionality to bring them back.
|
||||
Works kind of like entering the game with a new character. Character receives a new mind if they didn't have one.
|
||||
/N */
|
||||
/client/proc/respawn_character()
|
||||
set category = "Special Verbs"
|
||||
@@ -303,18 +302,18 @@ Since gibbed traitors retain their mind through their ghost, I might add some fu
|
||||
var/input = input(src, "Please specify which key will be respawned. Make sure their key is properly capitalized. That person will not retain their traitor/other status when respawned.", "Key", "")
|
||||
if(!input)
|
||||
return
|
||||
var/GNAME //To auto-copy the mob's name.
|
||||
var/GDEL //To properly delete the mob later on.
|
||||
|
||||
var/mob/dead/observer/G
|
||||
var/mob/G_found
|
||||
|
||||
var/GKEY = "null"//To later check if a person was found or not.
|
||||
for(var/mob/dead/observer/G in world)
|
||||
|
||||
for(G in world)
|
||||
if(G.client)
|
||||
if(G.key==input)
|
||||
GNAME = G.real_name
|
||||
GDEL = G
|
||||
G_found = G
|
||||
GKEY = input
|
||||
goto NEXT//Stops processing once it finds a match.
|
||||
|
||||
NEXT
|
||||
break
|
||||
|
||||
if(GKEY == "null")
|
||||
alert("There is no active key like that in the game or the person is not currently a ghost. Aborting command.")
|
||||
@@ -322,31 +321,20 @@ Since gibbed traitors retain their mind through their ghost, I might add some fu
|
||||
|
||||
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
|
||||
var/list/JOBLIST
|
||||
JOBLIST = list("Virologist","Chief Medical Officer","Research Director","Chief Engineer","Chief Engineer","Cargo Technician","Quartermaster","Lawyer","Librarian","Botanist","Roboticist","Chef","Barman","Atmospheric Technician","Head of Personnel","Head of Security","Scientist","Warden","Security Officer","Captain","Medical Doctor","Detective","Assistant","Station Engineer","Mime","Clown","Janitor","Chemist","Geneticist","Chaplain")
|
||||
|
||||
TRYAGAIN
|
||||
|
||||
var/input2 = input(src, "Please specify which job the character will be respawned as. Start with a capital, such as Assistant or Research Director. Leaving the box as blank will default to Assistant.", "Rank", "")
|
||||
if(!input2)
|
||||
RANK = "Assistant"
|
||||
else
|
||||
if(JOBLIST.Find(input2)==0)
|
||||
src << "That job is not valid. Check your spelling or leave the box as blank."
|
||||
goto TRYAGAIN
|
||||
else
|
||||
RANK = input2
|
||||
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
|
||||
@@ -364,19 +352,41 @@ Since gibbed traitors retain their mind through their ghost, I might add some fu
|
||||
// new_character.preferences.update_preview_icon(new_character)
|
||||
|
||||
new_character.loc = spawn_here
|
||||
new_character.real_name = GNAME
|
||||
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.
|
||||
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(GDEL)
|
||||
|
||||
// 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)
|
||||
new_character.mind = G_found.mind
|
||||
new_character.mind.current = new_character
|
||||
new_character.mind.assigned_role = RANK
|
||||
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
|
||||
switch(new_character.mind.special_role)
|
||||
if("Changeling")
|
||||
var/datum/game_mode/changeling.grant_changeling_powers(new_character)
|
||||
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)
|
||||
if("Syndicate")
|
||||
var/datum/game_mode/nuclear.equip_syndicate(new_character)*/
|
||||
|
||||
/client/proc/cmd_admin_add_freeform_ai_law()
|
||||
set category = "Fun"
|
||||
|
||||
Reference in New Issue
Block a user