mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-17 10:03:50 +01:00
New job assignment proc by Rolan7.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2281 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -27,7 +27,7 @@ var/global/datum/controller/gameticker/ticker
|
||||
/datum/controller/gameticker/proc/pregame()
|
||||
|
||||
do
|
||||
pregame_timeleft = 60
|
||||
pregame_timeleft = 90
|
||||
world << "<B><FONT color='blue'>Welcome to the pre-game lobby!</FONT></B>"
|
||||
world << "Please, setup your character and select ready. Game will start in [pregame_timeleft] seconds"
|
||||
while(current_state == GAME_STATE_PREGAME)
|
||||
|
||||
+45
-21
@@ -3,7 +3,7 @@
|
||||
var/list/candidates = list()
|
||||
|
||||
for (var/mob/new_player/player in unassigned)
|
||||
if (player.preferences.occupation[level] == job)
|
||||
if (player.preferences.occupation[job] == level)
|
||||
if (jobban_isbanned(player, job))
|
||||
continue
|
||||
// if (player.jobs_restricted_by_gamemode && (job in player.jobs_restricted_by_gamemode))
|
||||
@@ -20,6 +20,15 @@
|
||||
player.mind.special_role = null
|
||||
return
|
||||
|
||||
/proc/FillHeadPosition(list/unassigned, job)
|
||||
for (var/level = 1 to 3)
|
||||
var/list/candidates = FindOccupationCandidates(unassigned, job, 4-level)
|
||||
if (candidates.len)
|
||||
var/mob/new_player/candidate = pick(candidates)
|
||||
unassigned -= candidate
|
||||
candidate.mind.assigned_role = job
|
||||
return
|
||||
|
||||
/** Proc DivideOccupations
|
||||
* fills var "assigned_role" for all ready players.
|
||||
* This proc must not have any side effects besides of modifying "assigned_role".
|
||||
@@ -31,33 +40,28 @@
|
||||
for (var/mob/new_player/player in world)
|
||||
if (player.client && player.ready && !player.mind.assigned_role)
|
||||
unassigned += player
|
||||
for (var/level = 1 to 3)
|
||||
if (jobban_isbanned(player, player.preferences.occupation[level]))
|
||||
player.preferences.occupation[level] = "Assistant"
|
||||
// for (var/level = 1 to 3)
|
||||
// if (jobban_isbanned(player, player.preferences.occupation[4-level]))
|
||||
// player.preferences.occupation[level] = "Assistant"
|
||||
|
||||
// If someone picked AI before it was disabled, or has a saved profile with it
|
||||
// on a game that now lacks it, this will make sure they don't become the AI,
|
||||
// by changing that choice to Captain.
|
||||
if (!config.allow_ai)
|
||||
for (var/level = 1 to 3)
|
||||
if (player.preferences.occupation[level] == "AI")
|
||||
player.preferences.occupation[level] = "Captain"
|
||||
// if (!config.allow_ai)
|
||||
// for (var/level = 1 to 3)
|
||||
// if (player.preferences.occupation[level] == "AI")
|
||||
// player.preferences.occupation[level] = "Captain"
|
||||
|
||||
if (unassigned.len == 0)
|
||||
return 0
|
||||
|
||||
//Check for a Captain first
|
||||
for (var/level = 1 to 3)
|
||||
var/list/candidates = FindOccupationCandidates(unassigned, "Captain", level)
|
||||
if (candidates.len)
|
||||
var/mob/new_player/candidate = pick(candidates)
|
||||
unassigned -= candidate
|
||||
candidate.mind.assigned_role = "Captain"
|
||||
break
|
||||
//Fill head positions, first Captain than heads from least to most popular
|
||||
for(var/occ in head_positions)
|
||||
FillHeadPosition(unassigned, occ)
|
||||
|
||||
//Then check for an AI
|
||||
for (var/level = 1 to 3)//Malf is a bit special as it replaces a normal job
|
||||
var/list/candidates = FindOccupationCandidates(unassigned, "AI", level)
|
||||
var/list/candidates = FindOccupationCandidates(unassigned, "AI", 4-level)
|
||||
if(ticker.mode.name == "AI malfunction")
|
||||
for(var/mob/new_player/player in candidates)
|
||||
if(!player.preferences.be_special & BE_MALF)
|
||||
@@ -77,13 +81,33 @@
|
||||
player.mind.assigned_role = "AI"
|
||||
unassigned -= player
|
||||
break
|
||||
//Now we can go though the rest of the jobs and players who set prefs
|
||||
|
||||
// Now for most positions. Shuffle the list of unassigned players and go through it, giving them
|
||||
// what they want. Easy for "best", more complicated for "okay" and "good" because we have to
|
||||
// select randomly from their list of okay or good jobs.
|
||||
for (var/level = 1 to 3) // Wish this could be from 3 to 1, but whatever. "Good" to "okay".
|
||||
unassigned = shuffle(unassigned) // Maybe unnecessary to shuffle each time, but it's cheap.
|
||||
for(var/mob/new_player/player in unassigned)
|
||||
var/list/wantedJobs = list()
|
||||
for(var/job in player.preferences.occupation)
|
||||
if(player.preferences.occupation[job] == 4-level)
|
||||
if(!(job in head_positions) && job != "AI" && occupation_eligible[job] != 0 && !jobban_isbanned(player,job))
|
||||
wantedJobs += job
|
||||
if(length(wantedJobs) > 0)
|
||||
player.mind.assigned_role = pick(wantedJobs)
|
||||
occupation_eligible[player.mind.assigned_role]--
|
||||
unassigned -= player
|
||||
else
|
||||
player.mind.assigned_role = "Assistant"
|
||||
|
||||
|
||||
/* //Now we can go though the rest of the jobs and players who set prefs
|
||||
for (var/level = 1 to 3)
|
||||
//Assistants are checked first
|
||||
for (var/occupation in assistant_occupations)
|
||||
if (unassigned.len == 0)
|
||||
break
|
||||
var/list/candidates = FindOccupationCandidates(unassigned, occupation, level)
|
||||
var/list/candidates = FindOccupationCandidates(unassigned, occupation, 4-level)
|
||||
while(candidates.len && assistant_occupations[occupation])
|
||||
assistant_occupations[occupation]--
|
||||
var/mob/new_player/candidate = pick_n_take(candidates)
|
||||
@@ -95,7 +119,7 @@
|
||||
break
|
||||
if (occupation_eligible[occupation] == 0)
|
||||
continue
|
||||
var/list/candidates = FindOccupationCandidates(unassigned, occupation, level)
|
||||
var/list/candidates = FindOccupationCandidates(unassigned, occupation, 4-level)
|
||||
while (candidates.len && occupation_eligible[occupation])
|
||||
occupation_eligible[occupation]--
|
||||
var/mob/new_player/candidate = pick_n_take(candidates)
|
||||
@@ -126,7 +150,7 @@
|
||||
player.mind.assigned_role = pick(occupationsPossible)
|
||||
assistant_occupations[player.mind.assigned_role]--
|
||||
// player.mind.assigned_role = pick(assistant_occupations)
|
||||
|
||||
*/
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/human/proc/Equip_Rank(rank, joined_late)
|
||||
|
||||
+13
-7
@@ -293,16 +293,20 @@ proc/assignment_algorithm(var/list/mob/new_player/players)
|
||||
|
||||
|
||||
var/list/occupations = list(
|
||||
"Captain" = 1,
|
||||
//Civilian jobs
|
||||
"Head of Personnel" = 1,
|
||||
|
||||
//soul
|
||||
"Clown" = 1,
|
||||
"Mime" = 1,
|
||||
"Chaplain" = 1,
|
||||
"Librarian" = 1,
|
||||
|
||||
//body
|
||||
"Bartender" = 1,
|
||||
"Chef" = 1,
|
||||
"Botanist" = 2,
|
||||
"Janitor" = 1,
|
||||
"Quartermaster" = 1,
|
||||
"Cargo Technician" = 3,
|
||||
@@ -318,22 +322,24 @@ var/list/occupations = list(
|
||||
"Warden" = 1,
|
||||
"Detective" = 1,
|
||||
"Security Officer" = 5,
|
||||
"Lawyer" = 2,
|
||||
|
||||
//medbay
|
||||
"Chief Medical Officer" = 1,
|
||||
"Medical Doctor" = 5,
|
||||
"Geneticist" = 2,
|
||||
"Chemist" = 2,
|
||||
|
||||
//science dept
|
||||
"Research Director" = 1,
|
||||
"Geneticist" = 2,
|
||||
"Scientist" = 3,
|
||||
"Botanist" = 2,
|
||||
"Virologist" = 1,
|
||||
|
||||
//I afraid I can't do that, Dave
|
||||
// "AI" = 1,now picked like the captain
|
||||
"Cyborg" = 1
|
||||
"AI" = 1,
|
||||
"Cyborg" = 1,
|
||||
|
||||
"Assistant" = -1
|
||||
|
||||
)
|
||||
|
||||
@@ -351,11 +357,11 @@ var/list/assistant_occupations = list(
|
||||
|
||||
var/list/head_positions = list(
|
||||
"Captain",
|
||||
"Head of Personnel",
|
||||
"Head of Security",
|
||||
"Chief Medical Officer",
|
||||
"Chief Engineer",
|
||||
"Head of Personnel",
|
||||
"Research Director",
|
||||
"Chief Medical Officer"
|
||||
"Head of Security"
|
||||
)
|
||||
|
||||
var/list/nonhuman_positions = list(
|
||||
|
||||
@@ -187,6 +187,8 @@ CLIPBOARDS
|
||||
n_name = copytext(n_name, 1, 32)
|
||||
if ((src.loc == usr && usr.stat == 0))
|
||||
src.name = text("paper[]", (n_name ? text("- '[n_name]'") : null))
|
||||
if(src.icon_state == "paper_blank" && n_name != "")
|
||||
src.icon_state = "paper"
|
||||
src.add_fingerprint(usr)
|
||||
return
|
||||
|
||||
@@ -235,6 +237,8 @@ CLIPBOARDS
|
||||
*/
|
||||
t = text("<font face=calligrapher>[]</font>", t)
|
||||
|
||||
if(src.icon_state == "paper_blank")
|
||||
src.icon_state = "paper"
|
||||
src.info += t
|
||||
|
||||
else
|
||||
@@ -359,6 +363,7 @@ CLIPBOARDS
|
||||
src.amount--
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper
|
||||
P.loc = usr.loc
|
||||
P.icon_state = "paper_blank"
|
||||
if(ishuman(usr))
|
||||
if(!usr.get_active_hand())
|
||||
usr.put_in_hand(P)
|
||||
|
||||
@@ -43,7 +43,7 @@ datum/preferences
|
||||
var/underwear = 1
|
||||
var/bubbles = 0 // 0 if the player doesn't want bubbles to appear
|
||||
|
||||
var/occupation[] = list("No Preference", "No Preference", "No Preference")
|
||||
var/occupation[length(occupations)]
|
||||
var/datum/jobs/wanted_jobs = list()
|
||||
|
||||
var/h_style = "Short Hair"
|
||||
@@ -68,6 +68,8 @@ datum/preferences
|
||||
|
||||
New()
|
||||
randomize_name()
|
||||
for(var/n in occupation)
|
||||
n=1
|
||||
..()
|
||||
|
||||
//The mob should have a gender you want before running this proc.
|
||||
@@ -379,7 +381,7 @@ datum/preferences
|
||||
update_preview_icon()
|
||||
user << browse_rsc(preview_icon, "previewicon.png")
|
||||
|
||||
var/list/destructive = list("Assistant") //only the actual assistants should terminate the list
|
||||
// var/list/destructive = list("Assistant") //only the actual assistants should terminate the list
|
||||
var/dat = "<html><body>"
|
||||
dat += "<b>Name:</b> "
|
||||
dat += "<a href=\"byond://?src=\ref[user];preferences=1;real_name=input\"><b>[real_name]</b></a> "
|
||||
@@ -403,30 +405,8 @@ datum/preferences
|
||||
dat += "<a href='byond://?src=\ref[user];preferences=1;ooccolor=input'>Change colour</a> <font face=\"fixedsys\" size=\"3\" color=\"[ooccolor]\"><table style='display:inline;' bgcolor=\"[ooccolor]\"><tr><td>__</td></tr></table></font>"
|
||||
|
||||
dat += "<hr><b>Occupation Choices</b><br>"
|
||||
if (destructive.Find(occupation[1]))
|
||||
dat += "\t<a href=\"byond://?src=\ref[user];preferences=1;occ=1\"><b>[occupation[1]]</b></a><br>"
|
||||
else
|
||||
if (jobban_isbanned(user, occupation[1]))
|
||||
occupation[1] = "Assistant"
|
||||
if (jobban_isbanned(user, occupation[2]))
|
||||
occupation[2] = "Assistant"
|
||||
if (jobban_isbanned(user, occupation[3]))
|
||||
occupation[3] = "Assistant"
|
||||
if (occupation[1] != "No Preference")
|
||||
dat += "\tFirst Choice: <a href=\"byond://?src=\ref[user];preferences=1;occ=1\"><b>[occupation[1]]</b></a><br>"
|
||||
dat += "\t<a href=\"byond://?src=\ref[user];preferences=1;occ=1\"><b>Set Preferences</b></a><br>"
|
||||
|
||||
if (destructive.Find(occupation[2]))
|
||||
dat += "\tSecond Choice: <a href=\"byond://?src=\ref[user];preferences=1;occ=2\"><b>[occupation[2]]</b></a><BR>"
|
||||
|
||||
else
|
||||
if (occupation[2] != "No Preference")
|
||||
dat += "\tSecond Choice: <a href=\"byond://?src=\ref[user];preferences=1;occ=2\"><b>[occupation[2]]</b></a><BR>"
|
||||
dat += "\tLast Choice: <a href=\"byond://?src=\ref[user];preferences=1;occ=3\"><b>[occupation[3]]</b></a><BR>"
|
||||
|
||||
else
|
||||
dat += "\tSecond Choice: <a href=\"byond://?src=\ref[user];preferences=1;occ=2\">No Preference</a><br>"
|
||||
else
|
||||
dat += "\t<a href=\"byond://?src=\ref[user];preferences=1;occ=1\">No Preference</a><br>"
|
||||
|
||||
dat += "<hr><table><tr><td><b>Body</b> "
|
||||
dat += "(<a href=\"byond://?src=\ref[user];preferences=1;s_tone=random;underwear=random;age=random;b_type=random;hair=random;h_style=random;facial=random;f_style=random;eyes=random\">®</A>)" // Random look
|
||||
@@ -486,118 +466,62 @@ datum/preferences
|
||||
|
||||
user << browse(dat, "window=preferences;size=300x710")
|
||||
|
||||
proc/SetChoices(mob/user, occ=1)
|
||||
proc/SetChoices(mob/user, changedjob)
|
||||
var/HTML = "<body>"
|
||||
HTML += "<tt><center>"
|
||||
switch(occ)
|
||||
if(1.0)
|
||||
HTML += "<b>Which occupation would you like most?</b><br><br>"
|
||||
if(2.0)
|
||||
HTML += "<b>Which occupation would you like if you couldn't have your first?</b><br><br>"
|
||||
if(3.0)
|
||||
HTML += "<b>Which occupation would you like if you couldn't have the others?</b><br><br>"
|
||||
else
|
||||
for(var/job in uniquelist(occupations + assistant_occupations) )
|
||||
if ((job!="AI" || config.allow_ai) && !jobban_isbanned(user, job))
|
||||
HTML += "<a href=\"byond://?src=\ref[user];preferences=1;occ=[occ];job=[job]\">[job]</a><br>"
|
||||
HTML += "<b>Choose occupations</b><br>Unavailable occupations are in red.<br>"
|
||||
for(var/job in occupations )
|
||||
if ((job!="AI" || config.allow_ai))
|
||||
if(jobban_isbanned(user, job))
|
||||
HTML += "<font color=red>"
|
||||
if(job in head_positions || job=="AI")
|
||||
HTML += "<b>[job]<a href=\"byond://?src=\ref[user];preferences=1;occ=1;job=[job]\"></b>"
|
||||
else
|
||||
HTML += "[job]<a href=\"byond://?src=\ref[user];preferences=1;occ=1;job=[job]\">"
|
||||
if(jobban_isbanned(user, job))
|
||||
HTML += "</font>"
|
||||
if (!occupation[job])
|
||||
occupation[job]=0
|
||||
switch(occupation[job])
|
||||
if(0)
|
||||
if(job=="Assistant")
|
||||
HTML += "<font color=red>\[PleaseNo]</font>"
|
||||
else
|
||||
HTML += "<font color=red>\[NEVER]</font>"
|
||||
if(1)
|
||||
HTML += "<font color=orange>\[Okay]</font>"
|
||||
if(2)
|
||||
HTML += "<font color=green>\[Good]</font>"
|
||||
if(3)
|
||||
HTML += "<font color=blue>\[Best!]</font>"
|
||||
else HTML += "*"+occupation[job]+"*"
|
||||
HTML += "</a><br>"
|
||||
|
||||
if(!jobban_isbanned(user, "AI"))
|
||||
HTML += "<a href=\"byond://?src=\ref[user];preferences=1;occ=[occ];job=AI\">AI</a><br>"
|
||||
if(!jobban_isbanned(user, "Captain"))
|
||||
HTML += "<a href=\"byond://?src=\ref[user];preferences=1;occ=[occ];job=Captain\">Captain</a><br>"
|
||||
HTML += "<br>"
|
||||
HTML += "<a href=\"byond://?src=\ref[user];preferences=1;occ=[occ];job=No Preference\">\[No Preference\]</a><br>"
|
||||
HTML += "<a href=\"byond://?src=\ref[user];preferences=1;occ=[occ];cancel\">\[Cancel\]</a>"
|
||||
HTML += "<a href=\"byond://?src=\ref[user];preferences=1;occ=0;job=cancel\">\[Done\]</a>"
|
||||
HTML += "</center></tt>"
|
||||
|
||||
user << browse(null, "window=preferences")
|
||||
user << browse(HTML, "window=mob_occupation;size=320x600")
|
||||
return
|
||||
|
||||
proc/SetJob(mob/user, occ=1, job="Captain")
|
||||
if ((!( occupations.Find(job) ) && !( assistant_occupations.Find(job) ) && (job != "Captain" && job != "AI" && job != "No Preference")))
|
||||
return
|
||||
if (job=="AI" && (!config.allow_ai))
|
||||
return
|
||||
if (jobban_isbanned(user, job))
|
||||
proc/SetJob(mob/user, job="Captain")
|
||||
if ((!( occupations.Find(job) ) && !( assistant_occupations.Find(job) ) && (job != "No Preference")))
|
||||
user << browse(null, "window=mob_occupation")
|
||||
ShowChoices(user)
|
||||
return
|
||||
|
||||
switch(occ)
|
||||
if(1.0)
|
||||
if (job == occupation[1])
|
||||
user << browse(null, "window=mob_occupation")
|
||||
return
|
||||
else
|
||||
if (job == "No Preference")
|
||||
occupation[1] = "No Preference"
|
||||
else
|
||||
if (job == occupation[2])
|
||||
job = occupation[1]
|
||||
occupation[1] = occupation[2]
|
||||
occupation[2] = job
|
||||
else
|
||||
if (job == occupation[3])
|
||||
job = occupation[1]
|
||||
occupation[1] = occupation[3]
|
||||
occupation[3] = job
|
||||
else
|
||||
occupation[1] = job
|
||||
if(2.0)
|
||||
if (job == occupation[2])
|
||||
user << browse(null, "window=mob_occupation")
|
||||
return
|
||||
else
|
||||
if (job == "No Preference")
|
||||
if (occupation[3] != "No Preference")
|
||||
occupation[2] = occupation[3]
|
||||
occupation[3] = "No Preference"
|
||||
else
|
||||
occupation[2] = "No Preference"
|
||||
else
|
||||
if (job == occupation[1])
|
||||
if (occupation[2] == "No Preference")
|
||||
user << browse(null, "window=mob_occupation")
|
||||
return
|
||||
job = occupation[2]
|
||||
occupation[2] = occupation[1]
|
||||
occupation[1] = job
|
||||
else
|
||||
if (job == occupation[3])
|
||||
job = occupation[2]
|
||||
occupation[2] = occupation[3]
|
||||
occupation[3] = job
|
||||
else
|
||||
occupation[2] = job
|
||||
if(3.0)
|
||||
if (job == occupation[3])
|
||||
user << browse(null, "window=mob_occupation")
|
||||
return
|
||||
else
|
||||
if (job == "No Preference")
|
||||
occupation[3] = "No Preference"
|
||||
else
|
||||
if (job == occupation[1])
|
||||
if (occupation[3] == "No Preference")
|
||||
user << browse(null, "window=mob_occupation")
|
||||
return
|
||||
job = occupation[3]
|
||||
occupation[3] = occupation[1]
|
||||
occupation[1] = job
|
||||
else
|
||||
if (job == occupation[2])
|
||||
if (occupation[3] == "No Preference")
|
||||
user << browse(null, "window=mob_occupation")
|
||||
return
|
||||
job = occupation[3]
|
||||
occupation[3] = occupation[2]
|
||||
occupation[2] = job
|
||||
else
|
||||
occupation[3] = job
|
||||
if(occupation[job] == 2) // If it's going from good to best
|
||||
for(var/j in occupation)
|
||||
if(occupation[j] == 3)
|
||||
occupation[j] = 2
|
||||
|
||||
user << browse(null, "window=mob_occupation")
|
||||
ShowChoices(user)
|
||||
occupation[job] = (occupation[job]+1)%4
|
||||
|
||||
return 1
|
||||
|
||||
SetChoices(user)
|
||||
|
||||
return
|
||||
|
||||
proc/process_link(mob/user, list/link_tags)
|
||||
|
||||
@@ -606,9 +530,9 @@ datum/preferences
|
||||
user << browse(null, "window=\ref[user]occupation")
|
||||
return
|
||||
else if(link_tags["job"])
|
||||
SetJob(user, text2num(link_tags["occ"]), link_tags["job"])
|
||||
SetJob(user, link_tags["job"])
|
||||
else
|
||||
SetChoices(user, text2num(link_tags["occ"]))
|
||||
SetChoices(user)
|
||||
|
||||
return 1
|
||||
|
||||
@@ -835,9 +759,8 @@ datum/preferences
|
||||
randomize_name()
|
||||
|
||||
age = 30
|
||||
occupation[1] = "No Preference"
|
||||
occupation[2] = "No Preference"
|
||||
occupation[3] = "No Preference"
|
||||
for(var/o in occupation)
|
||||
occupation[o] = 1
|
||||
underwear = 1
|
||||
//be_syndicate = 0
|
||||
be_special = 0
|
||||
|
||||
@@ -22,9 +22,12 @@ datum/preferences/proc/savefile_save(mob/user)
|
||||
F["real_name"] << src.real_name
|
||||
F["gender"] << src.gender
|
||||
F["age"] << src.age
|
||||
F["occupation_1"] << src.occupation[1]
|
||||
F["occupation_2"] << src.occupation[2]
|
||||
F["occupation_3"] << src.occupation[3]
|
||||
for(var/job in uniquelist(occupations + assistant_occupations))
|
||||
//world << src.occupation[job]
|
||||
F["occupation_"+job] << src.occupation[job]
|
||||
//F["occupation_1"] << src.occupation[1]
|
||||
//F["occupation_2"] << src.occupation[2]
|
||||
//F["occupation_3"] << src.occupation[3]
|
||||
F["hair_red"] << src.r_hair
|
||||
F["hair_green"] << src.g_hair
|
||||
F["hair_blue"] << src.b_hair
|
||||
@@ -83,9 +86,11 @@ datum/preferences/proc/savefile_load(mob/user, var/silent = 1)
|
||||
F["real_name"] >> src.real_name
|
||||
F["gender"] >> src.gender
|
||||
F["age"] >> src.age
|
||||
F["occupation_1"] >> src.occupation[1]
|
||||
F["occupation_2"] >> src.occupation[2]
|
||||
F["occupation_3"] >> src.occupation[3]
|
||||
for(var/job in uniquelist(occupations + assistant_occupations))
|
||||
F["occupation_"+job] >> src.occupation[job]
|
||||
//F["occupation_1"] >> src.occupation[1]
|
||||
//F["occupation_2"] >> src.occupation[2]
|
||||
//F["occupation_3"] >> src.occupation[3]
|
||||
F["hair_red"] >> src.r_hair
|
||||
F["hair_green"] >> src.g_hair
|
||||
F["hair_blue"] >> src.b_hair
|
||||
|
||||
@@ -54,6 +54,15 @@ Stuff which is in development and not yet visible to players or just code relate
|
||||
(ie. code improvements for expandability, etc.) should not be listed here. They
|
||||
should be listed in the changelog upon commit tho. Thanks. -->
|
||||
|
||||
<b><font color='blue'>28 September 2011:</font><b>
|
||||
<ul>
|
||||
<li><b>Rolan7 updated:</b>
|
||||
<ul>
|
||||
<li>New method for job assignment. Remember to review your preferences. Sned all your hate and bug reports to me.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<b><font color='blue'>22 September 2011, OneWebDay:</font><b>
|
||||
<ul>
|
||||
<li><b>Errorage updated:</b>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
Reference in New Issue
Block a user