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:
noisomehollow@lycos.com
2011-01-09 03:39:45 +00:00
parent b890a512ee
commit 28d376664c
12 changed files with 283 additions and 104 deletions
-38
View File
@@ -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"
+42 -5
View File
@@ -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"
+45 -35
View File
@@ -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"