mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-13 03:33:21 +00:00
Added spawnpoint datum, moved existing latejoin spawn to datum setup.
This commit is contained in:
@@ -667,6 +667,7 @@
|
|||||||
#include "code\game\verbs\who.dm"
|
#include "code\game\verbs\who.dm"
|
||||||
#include "code\js\byjax.dm"
|
#include "code\js\byjax.dm"
|
||||||
#include "code\js\menus.dm"
|
#include "code\js\menus.dm"
|
||||||
|
#include "code\modules\spawnpoints.dm"
|
||||||
#include "code\modules\admin\admin.dm"
|
#include "code\modules\admin\admin.dm"
|
||||||
#include "code\modules\admin\admin_investigate.dm"
|
#include "code\modules\admin\admin_investigate.dm"
|
||||||
#include "code\modules\admin\admin_memo.dm"
|
#include "code\modules\admin\admin_memo.dm"
|
||||||
|
|||||||
@@ -85,6 +85,9 @@ datum/controller/game_controller/proc/setup()
|
|||||||
var/datum/ore_distribution/O = new()
|
var/datum/ore_distribution/O = new()
|
||||||
O.populate_distribution_map()
|
O.populate_distribution_map()
|
||||||
|
|
||||||
|
//Set up spawn points.
|
||||||
|
populate_spawn_points()
|
||||||
|
|
||||||
spawn(0)
|
spawn(0)
|
||||||
if(ticker)
|
if(ticker)
|
||||||
ticker.pregame()
|
ticker.pregame()
|
||||||
|
|||||||
@@ -40,6 +40,14 @@
|
|||||||
latejoin += loc
|
latejoin += loc
|
||||||
del(src)
|
del(src)
|
||||||
|
|
||||||
|
if("JoinLateGateway")
|
||||||
|
latejoin_gateway += loc
|
||||||
|
del(src)
|
||||||
|
|
||||||
|
if("JoinLateCryo")
|
||||||
|
latejoin_cryo += loc
|
||||||
|
del(src)
|
||||||
|
|
||||||
//prisoners
|
//prisoners
|
||||||
if("prisonwarp")
|
if("prisonwarp")
|
||||||
prisonwarp += loc
|
prisonwarp += loc
|
||||||
|
|||||||
@@ -125,7 +125,12 @@ var/airtunnel_bottom = 72 // default
|
|||||||
var/list/monkeystart = list()
|
var/list/monkeystart = list()
|
||||||
var/list/wizardstart = list()
|
var/list/wizardstart = list()
|
||||||
var/list/newplayer_start = list()
|
var/list/newplayer_start = list()
|
||||||
|
|
||||||
|
//Spawnpoints.
|
||||||
var/list/latejoin = list()
|
var/list/latejoin = list()
|
||||||
|
var/list/latejoin_gateway = list()
|
||||||
|
var/list/latejoin_cryo = list()
|
||||||
|
|
||||||
var/list/prisonwarp = list() //prisoners go to these
|
var/list/prisonwarp = list() //prisoners go to these
|
||||||
var/list/holdingfacility = list() //captured people go here
|
var/list/holdingfacility = list() //captured people go here
|
||||||
var/list/xeno_spawn = list()//Aliens spawn at these.
|
var/list/xeno_spawn = list()//Aliens spawn at these.
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ datum/preferences
|
|||||||
var/be_random_name = 0 //whether we are a random name every round
|
var/be_random_name = 0 //whether we are a random name every round
|
||||||
var/gender = MALE //gender of character (well duh)
|
var/gender = MALE //gender of character (well duh)
|
||||||
var/age = 30 //age of character
|
var/age = 30 //age of character
|
||||||
|
var/spawnpoint = "Arrivals Shuttle" //where this character will spawn (0-2).
|
||||||
var/b_type = "A+" //blood type (not-chooseable)
|
var/b_type = "A+" //blood type (not-chooseable)
|
||||||
var/underwear = 1 //underwear type
|
var/underwear = 1 //underwear type
|
||||||
var/undershirt = 1 //undershirt type
|
var/undershirt = 1 //undershirt type
|
||||||
@@ -247,6 +248,7 @@ datum/preferences
|
|||||||
|
|
||||||
dat += "<b>Gender:</b> <a href='?_src_=prefs;preference=gender'><b>[gender == MALE ? "Male" : "Female"]</b></a><br>"
|
dat += "<b>Gender:</b> <a href='?_src_=prefs;preference=gender'><b>[gender == MALE ? "Male" : "Female"]</b></a><br>"
|
||||||
dat += "<b>Age:</b> <a href='?_src_=prefs;preference=age;task=input'>[age]</a>"
|
dat += "<b>Age:</b> <a href='?_src_=prefs;preference=age;task=input'>[age]</a>"
|
||||||
|
dat += "<b>Spawn Point</b>: <a href='byond://?src=\ref[user];preference=spawnpoint;task=input'>[spawnpoint]</a><br>"
|
||||||
|
|
||||||
dat += "<br>"
|
dat += "<br>"
|
||||||
dat += "<b>UI Style:</b> <a href='?_src_=prefs;preference=ui'><b>[UI_style]</b></a><br>"
|
dat += "<b>UI Style:</b> <a href='?_src_=prefs;preference=ui'><b>[UI_style]</b></a><br>"
|
||||||
@@ -1179,6 +1181,16 @@ datum/preferences
|
|||||||
var/skin_style_name = input(user, "Select a new skin style") as null|anything in list("default1", "default2", "default3")
|
var/skin_style_name = input(user, "Select a new skin style") as null|anything in list("default1", "default2", "default3")
|
||||||
if(!skin_style_name) return
|
if(!skin_style_name) return
|
||||||
|
|
||||||
|
if("spawnpoint")
|
||||||
|
var/list/spawnkeys = list()
|
||||||
|
for(var/S in spawntypes)
|
||||||
|
spawnkeys += S
|
||||||
|
var/choice = input(user, "Where would you like to spawn when latejoining?") as null|anything in spawnkeys
|
||||||
|
if(!choice || !spawntypes[choice])
|
||||||
|
spawnpoint = "Arrivals Shuttle"
|
||||||
|
return
|
||||||
|
spawnpoint = choice
|
||||||
|
|
||||||
else
|
else
|
||||||
switch(href_list["preference"])
|
switch(href_list["preference"])
|
||||||
if("gender")
|
if("gender")
|
||||||
|
|||||||
@@ -108,6 +108,7 @@
|
|||||||
S["age"] >> age
|
S["age"] >> age
|
||||||
S["species"] >> species
|
S["species"] >> species
|
||||||
S["language"] >> language
|
S["language"] >> language
|
||||||
|
S["spawnpoint"] >> spawnpoint
|
||||||
|
|
||||||
//colors to be consolidated into hex strings (requires some work with dna code)
|
//colors to be consolidated into hex strings (requires some work with dna code)
|
||||||
S["hair_red"] >> r_hair
|
S["hair_red"] >> r_hair
|
||||||
@@ -168,6 +169,7 @@
|
|||||||
real_name = reject_bad_name(real_name)
|
real_name = reject_bad_name(real_name)
|
||||||
if(isnull(species)) species = "Human"
|
if(isnull(species)) species = "Human"
|
||||||
if(isnull(language)) language = "None"
|
if(isnull(language)) language = "None"
|
||||||
|
if(isnull(spawnpoint)) spawnpoint = "Arrivals Shuttle"
|
||||||
if(isnull(nanotrasen_relation)) nanotrasen_relation = initial(nanotrasen_relation)
|
if(isnull(nanotrasen_relation)) nanotrasen_relation = initial(nanotrasen_relation)
|
||||||
if(!real_name) real_name = random_name(gender)
|
if(!real_name) real_name = random_name(gender)
|
||||||
be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name))
|
be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name))
|
||||||
|
|||||||
@@ -159,7 +159,7 @@
|
|||||||
src << alert("You are currently not whitelisted to play [client.prefs.species].")
|
src << alert("You are currently not whitelisted to play [client.prefs.species].")
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
AttemptLateSpawn(href_list["SelectedJob"])
|
AttemptLateSpawn(href_list["SelectedJob"],client.prefs.spawnpoint)
|
||||||
return
|
return
|
||||||
|
|
||||||
if(href_list["privacy_poll"])
|
if(href_list["privacy_poll"])
|
||||||
@@ -270,7 +270,7 @@
|
|||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
|
||||||
proc/AttemptLateSpawn(rank)
|
proc/AttemptLateSpawn(rank,var/spawning_at)
|
||||||
if (src != usr)
|
if (src != usr)
|
||||||
return 0
|
return 0
|
||||||
if(!ticker || ticker.current_state != GAME_STATE_PLAYING)
|
if(!ticker || ticker.current_state != GAME_STATE_PLAYING)
|
||||||
@@ -291,7 +291,21 @@
|
|||||||
var/mob/living/carbon/human/character = create_character() //creates the human and transfers vars and mind
|
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
|
job_master.EquipRank(character, rank, 1) //equips the human
|
||||||
EquipCustomItems(character)
|
EquipCustomItems(character)
|
||||||
|
|
||||||
|
//Find our spawning point.
|
||||||
|
var/join_message
|
||||||
|
var/datum/spawnpoint/S
|
||||||
|
|
||||||
|
if(spawning_at)
|
||||||
|
S = spawntypes[spawning_at]
|
||||||
|
|
||||||
|
if(S && istype(S))
|
||||||
|
character.loc = pick(S.turfs)
|
||||||
|
join_message = S.msg
|
||||||
|
else
|
||||||
character.loc = pick(latejoin)
|
character.loc = pick(latejoin)
|
||||||
|
join_message = "has arrived on the station"
|
||||||
|
|
||||||
character.lastarea = get_area(loc)
|
character.lastarea = get_area(loc)
|
||||||
// Moving wheelchair if they have one
|
// Moving wheelchair if they have one
|
||||||
if(character.buckled && istype(character.buckled, /obj/structure/stool/bed/chair/wheelchair))
|
if(character.buckled && istype(character.buckled, /obj/structure/stool/bed/chair/wheelchair))
|
||||||
@@ -305,18 +319,18 @@
|
|||||||
if(character.mind.assigned_role != "Cyborg")
|
if(character.mind.assigned_role != "Cyborg")
|
||||||
data_core.manifest_inject(character)
|
data_core.manifest_inject(character)
|
||||||
ticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc. //TODO!!!!! ~Carn
|
ticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc. //TODO!!!!! ~Carn
|
||||||
AnnounceArrival(character, rank)
|
AnnounceArrival(character, rank, join_message)
|
||||||
|
|
||||||
else
|
else
|
||||||
character.Robotize()
|
character.Robotize()
|
||||||
del(src)
|
del(src)
|
||||||
|
|
||||||
proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank)
|
proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank, var/join_message)
|
||||||
if (ticker.current_state == GAME_STATE_PLAYING)
|
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.
|
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)
|
if(character.mind.role_alt_title)
|
||||||
rank = character.mind.role_alt_title
|
rank = character.mind.role_alt_title
|
||||||
a.autosay("[character.real_name],[rank ? " [rank]," : " visitor," ] has arrived on the station.", "Arrivals Announcement Computer")
|
a.autosay("[character.real_name],[rank ? " [rank]," : " visitor," ] [join_message ? join_message : "has arrived on the station"].", "Arrivals Announcement Computer")
|
||||||
del(a)
|
del(a)
|
||||||
|
|
||||||
proc/LateChoices()
|
proc/LateChoices()
|
||||||
|
|||||||
36
code/modules/spawnpoints.dm
Normal file
36
code/modules/spawnpoints.dm
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
var/list/spawntypes = list()
|
||||||
|
|
||||||
|
/proc/populate_spawn_points()
|
||||||
|
spawntypes = list()
|
||||||
|
for(var/type in typesof(/datum/spawnpoint)-/datum/spawnpoint)
|
||||||
|
var/datum/spawnpoint/S = new type()
|
||||||
|
spawntypes[S.display_name] = S
|
||||||
|
|
||||||
|
/datum/spawnpoint
|
||||||
|
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.
|
||||||
|
|
||||||
|
/datum/spawnpoint/arrivals
|
||||||
|
display_name = "Arrivals Shuttle"
|
||||||
|
msg = "has arrived on the station"
|
||||||
|
|
||||||
|
/datum/spawnpoint/arrivals/New()
|
||||||
|
..()
|
||||||
|
turfs = latejoin
|
||||||
|
|
||||||
|
/datum/spawnpoint/gateway
|
||||||
|
display_name = "Gateway"
|
||||||
|
msg = "has completed translation from offsite gateway"
|
||||||
|
|
||||||
|
/datum/spawnpoint/gateway/New()
|
||||||
|
..()
|
||||||
|
turfs = latejoin_gateway
|
||||||
|
|
||||||
|
/datum/spawnpoint/cryo
|
||||||
|
display_name = "Cryogenic Storage"
|
||||||
|
msg = "has completed cryogenic revival and clocked in"
|
||||||
|
|
||||||
|
/datum/spawnpoint/cryo/New()
|
||||||
|
..()
|
||||||
|
turfs = latejoin_cryo
|
||||||
Reference in New Issue
Block a user