Merge pull request #7023 from GinjaNinja32/borg_latejoin

Fix cyborg latejoining, allow mid-round joining, add robot cryo equivalent
This commit is contained in:
Chinsky
2014-11-17 04:15:18 +03:00
9 changed files with 198 additions and 59 deletions
+22 -1
View File
@@ -10,6 +10,17 @@ var/list/spawntypes = list()
var/msg //Message to display on the arrivals computer.
var/list/turfs //List of turfs to spawn on.
var/display_name //Name used in preference setup.
var/list/restrict_job = null
var/list/disallow_job = null
proc/check_job_spawning(job)
if(restrict_job && !(job in restrict_job))
return 0
if(disallow_job && (job in disallow_job))
return 0
return 1
/datum/spawnpoint/arrivals
display_name = "Arrivals Shuttle"
@@ -30,7 +41,17 @@ var/list/spawntypes = list()
/datum/spawnpoint/cryo
display_name = "Cryogenic Storage"
msg = "has completed cryogenic revival"
disallow_job = list("Cyborg")
/datum/spawnpoint/cryo/New()
..()
turfs = latejoin_cryo
turfs = latejoin_cryo
/datum/spawnpoint/cyborg
display_name = "Cyborg Storage"
msg = "has been activated from storage"
restrict_job = list("Cyborg")
/datum/spawnpoint/cyborg/New()
..()
turfs = latejoin_cyborg
+20 -6
View File
@@ -302,8 +302,8 @@
job_master.AssignRole(src, rank, 1)
var/mob/living/carbon/human/character = create_character() //creates the human and transfers vars and mind
job_master.EquipRank(character, rank, 1) //equips the human
var/mob/living/character = create_character() //creates the human and transfers vars and mind
character = job_master.EquipRank(character, rank, 1) //equips the human
UpdateFactionList(character)
EquipCustomItems(character)
@@ -315,8 +315,13 @@
S = spawntypes[spawning_at]
if(S && istype(S))
character.loc = pick(S.turfs)
join_message = S.msg
if(S.check_job_spawning(rank))
character.loc = pick(S.turfs)
join_message = S.msg
else
character << "Your chosen spawnpoint ([S.display_name]) is unavailable for your chosen job. Spawning you at the Arrivals shuttle instead."
character.loc = pick(latejoin)
join_message = "has arrived on the station"
else
character.loc = pick(latejoin)
join_message = "has arrived on the station"
@@ -338,9 +343,9 @@
//Grab some data from the character prefs for use in random news procs.
AnnounceArrival(character, rank, join_message)
else
character.Robotize()
AnnounceCyborg(character, rank, join_message)
del(src)
proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank, var/join_message)
@@ -351,6 +356,15 @@
a.autosay("[character.real_name],[rank ? " [rank]," : " visitor," ] [join_message ? join_message : "has arrived on the station"].", "Arrivals Announcement Computer")
del(a)
proc/AnnounceCyborg(var/mob/living/character, var/rank, var/join_message)
if (ticker.current_state == GAME_STATE_PLAYING)
var/obj/item/device/radio/intercom/a = new /obj/item/device/radio/intercom(null)// BS12 EDIT Arrivals Announcement Computer, rather than the AI.
if(character.mind.role_alt_title)
rank = character.mind.role_alt_title
// can't use their name here, since cyborg namepicking is done post-spawn, so we'll just say "A new Cyborg has arrived"/"A new Android has arrived"/etc.
a.autosay("A new[rank ? " [rank]" : " visitor" ] [join_message ? join_message : "has arrived on the station"].", "Arrivals Announcement Computer")
del(a)
proc/LateChoices()
var/mills = world.time // 1/10 of a second, not real milliseconds but whatever
//var/secs = ((mills % 36000) % 600) / 10 //Not really needed, but I'll leave it here for refrence.. or something