mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 03:25:49 +01:00
Fixed female/male side sprites missing some pixels.
Updates to deathsquads (now have mind and spawn message). Updates to the re-spawn command, including mind and some minor corrections. Still WIP but getting better. Minor changes to CentCom. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@680 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -256,24 +256,27 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is
|
||||
var/mob/living/carbon/alien/humanoid/new_xeno = new(spawn_here.loc)
|
||||
new_xeno.plasma = 250
|
||||
|
||||
var/list/candidates = list() // Picks a random ghost for the role. Mostly a copy of alien burst code.
|
||||
var/list/candidates = list() // Picks a random ghost for the role. Mostly a copy of alien burst code. Doesn't spawn the one using the command.
|
||||
for(var/mob/dead/observer/G in world)
|
||||
if(G.client)
|
||||
if(!G.client.holder && ((G.client.inactivity/10)/60) <= 5)
|
||||
candidates.Add(G)
|
||||
if(candidates.len)
|
||||
var/mob/dead/observer/G = pick(candidates)
|
||||
new_xeno.key = G.client.key
|
||||
message_admins("\blue [key_name_admin(usr)] has spawned [G.key] as a filthy xeno.", 1)
|
||||
new_xeno.client = G.client
|
||||
del(G)
|
||||
else
|
||||
alert("There are no available ghosts to throw into the xeno. Aborting command.")
|
||||
del(new_xeno)
|
||||
return
|
||||
message_admins("\blue [key_name_admin(usr)] has spawned a filthy xeno at [spawn_here.loc].", 1)
|
||||
|
||||
|
||||
//If a guy was gibbed and you want to revive him, this is a good way to do so.
|
||||
//Works much like entering the game with a new character. Doesn't retain mind. /N
|
||||
/*Current project. Currently trying to get preferences save to work for characteristics. That and randomized characteristics.
|
||||
Will probably check for admin status at some point or with possible other spawn options other than Assistant.
|
||||
Re-spawning traitors or traitor targets is more tricky.
|
||||
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.
|
||||
They spawn as an assistant but there is no announcement. /N */
|
||||
/client/proc/respawn_character()
|
||||
set category = "Special Verbs"
|
||||
set name = "Respawn Character"
|
||||
@@ -286,22 +289,48 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is
|
||||
return
|
||||
|
||||
var/GKEY = input
|
||||
var/GNAME = "none"
|
||||
var/mob/dead/observer/GDEL //to properly delete the mob later on.
|
||||
for(var/mob/dead/observer/G in world)
|
||||
if(G.key==input)
|
||||
GDEL = G
|
||||
GNAME = G.real_name
|
||||
else
|
||||
alert("There is no such key in the game or the person is not currently a ghost. Aborting command.")
|
||||
return
|
||||
|
||||
var/new_character_gender = MALE //to determine character's gender for few of the other procs.
|
||||
if(alert("Please specify the character's gender.",,"Male","Female")=="Female")
|
||||
new_character_gender = FEMALE
|
||||
|
||||
var/spawn_here = pick(latejoin)//"JoinLate" is a landmark which is deleted on round start. So, latejoin has to be used instead.
|
||||
var/mob/living/carbon/human/new_character = new(src)
|
||||
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)
|
||||
|
||||
new_character.loc = spawn_here
|
||||
new_character.real_name = GNAME
|
||||
message_admins("\blue [key_name_admin(usr)] has respawned [GKEY] as [new_character.name].", 1) //Here so it doesn't null name if an admin re-spawns themselves.
|
||||
new_character.key = GKEY
|
||||
// preferences.copy_to(new_character)
|
||||
new_character.dna.ready_dna(new_character)
|
||||
// new_character:ManifestLateSpawn()
|
||||
new_character.mind = new
|
||||
new_character.mind.key = GKEY
|
||||
new_character.mind.current = new_character
|
||||
new_character.mind.assigned_role = "Assistant"
|
||||
new_character.Equip_Rank("Assistant", joined_late=1)
|
||||
message_admins("\blue [key_name_admin(usr)] has respawned [GKEY] at [new_character.loc].", 1) //Here so it doesn't null name if an admin re-spawns themselves.
|
||||
new_character.key = GKEY
|
||||
del(GDEL)
|
||||
|
||||
/client/proc/cmd_admin_add_freeform_ai_law()
|
||||
|
||||
@@ -19,6 +19,12 @@ var/global/sent_strike_team = 0
|
||||
if(alert("Do you want to send in the CentCom death squad? Once enabled, this is irreversible.",,"Yes","No")=="No")
|
||||
return
|
||||
alert("This 'mode' will go on until everyone is dead or the station is destroyed. You may also admin-call the evac shuttle when appropriate. Spawned commandos have internals cameras which are viewable through a monitor inside the Spec. Ops. Office. Assigning the team's task is recommended from there.")
|
||||
|
||||
TRYAGAIN
|
||||
|
||||
var/input = input(usr, "Please specify which mission the death commando squad shall undertake.", "Specify Mission", "")
|
||||
if(!input)
|
||||
goto TRYAGAIN
|
||||
sent_strike_team = 1
|
||||
|
||||
if (emergency_shuttle.direction == 1 && emergency_shuttle.online == 1)
|
||||
@@ -30,6 +36,9 @@ var/global/sent_strike_team = 0
|
||||
var/commando_leader_rank = pick("Lieutenant", "Captain", "Major")
|
||||
var/list/commando_names = dd_file2list("config/names/last.txt")
|
||||
|
||||
//Code for spawning a nuke auth code.
|
||||
var/nuke_code = "[rand(10000, 99999.0)]"
|
||||
|
||||
//Spawns commandos and equips them.
|
||||
|
||||
for (var/obj/landmark/STARTLOC in world)
|
||||
@@ -49,9 +58,15 @@ var/global/sent_strike_team = 0
|
||||
else
|
||||
new_commando.age = rand(35,45)
|
||||
new_commando.b_type = pick("A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-")
|
||||
new_commando.dna.ready_dna(new_commando)
|
||||
del(STARTLOC)
|
||||
new_commando.dna.ready_dna(new_commando) //creates DNA
|
||||
//Creates mind stuff.
|
||||
new_commando.mind = new
|
||||
new_commando.mind.current = new_commando
|
||||
new_commando.mind.assigned_role = "Death Commando"
|
||||
new_commando.mind.store_memory("<B>Nuke Code:</B> \red [nuke_code].")
|
||||
new_commando.mind.store_memory("<B>Mission:</B> \red [input].")
|
||||
|
||||
del(STARTLOC)
|
||||
|
||||
var/obj/machinery/camera/cam = new /obj/machinery/camera(new_commando) //Gives all the commandos internals cameras.
|
||||
cam.network = "CREED"
|
||||
@@ -93,6 +108,7 @@ var/global/sent_strike_team = 0
|
||||
new_commando.equip_if_possible(GUN, new_commando.slot_s_store)
|
||||
// new_commando.equip_if_possible(new /obj/item/weapon/gun/energy/pulse_rifle(new_commando), new_commando.slot_l_hand)
|
||||
//Commented out because Commandos now have their rifles spawn in front of them, along with operation manuals.
|
||||
//Useful for copy pasta since I'm lazy.
|
||||
|
||||
var/obj/item/weapon/card/id/W = new(new_commando)
|
||||
W.name = "[new_commando.real_name]'s ID Card"
|
||||
@@ -104,21 +120,26 @@ var/global/sent_strike_team = 0
|
||||
var/list/candidates = list() // Picks a random ghost for the role. Mostly a copy of alien burst code.
|
||||
for(var/mob/dead/observer/G in world)
|
||||
if(G.client)
|
||||
if(!G.client.holder && ((G.client.inactivity/10)/60) <= 5)
|
||||
// if(!G.client.holder && ((G.client.inactivity/10)/60) <= 5) //!G.client.holder means that whoever called/has the proc won't be added to the list.
|
||||
if(((G.client.inactivity/10)/60) <= 5) //Removing it allows even the caller to jump in.
|
||||
candidates.Add(G)
|
||||
if(candidates.len)
|
||||
var/mob/dead/observer/G = pick(candidates)
|
||||
new_commando.key = G.client.key
|
||||
new_commando.mind.key = G.key//For mind stuff.
|
||||
new_commando.client = G.client
|
||||
del(G)
|
||||
else
|
||||
new_commando.key = "null"
|
||||
|
||||
commando_number = commando_number-1
|
||||
|
||||
//Code for spawning a nuke auth code and bombs. Targets any nukes in the world and changes their auth code as needed.
|
||||
//Bad news for Nuke operatives--or great news.
|
||||
if (leader_selected == 0)
|
||||
new_commando << "\blue \nYou are a Special Ops. commando in the service of Central Command. Check the table ahead for detailed instructions.\nYour current mission is: \red<B>[input]</B>"
|
||||
else
|
||||
new_commando << "\blue \nYou are a Special Ops. <B>LEADER</B> in the service of Central Command. Check the table ahead for detailed instructions.\nYour current mission is: \red<B>[input]</B>"
|
||||
|
||||
var/nuke_code = "[rand(10000, 99999.0)]"
|
||||
//Targets any nukes in the world and changes their auth code as needed.
|
||||
//Bad news for Nuke operatives--or great news.
|
||||
for(var/obj/machinery/nuclearbomb/NUAK in world)
|
||||
if (NUAK.name == "Nuclear Fission Explosive")
|
||||
NUAK.r_code = nuke_code
|
||||
|
||||
Reference in New Issue
Block a user