Refactors some job variables from the Economy file (what the fuck) and swaps created types for lists in bot access assignment.

This commit is contained in:
Zuhayr
2015-02-28 19:33:43 +10:30
parent 92fc2e13e9
commit 64b33c43db
21 changed files with 60 additions and 91 deletions

View File

@@ -931,7 +931,6 @@
#include "code\modules\economy\EFTPOS.dm" #include "code\modules\economy\EFTPOS.dm"
#include "code\modules\economy\Events.dm" #include "code\modules\economy\Events.dm"
#include "code\modules\economy\Events_Mundane.dm" #include "code\modules\economy\Events_Mundane.dm"
#include "code\modules\economy\Job_Departments.dm"
#include "code\modules\economy\TradeDestinations.dm" #include "code\modules\economy\TradeDestinations.dm"
#include "code\modules\events\alien_infestation.dm" #include "code\modules\events\alien_infestation.dm"
#include "code\modules\events\blob.dm" #include "code\modules\events\blob.dm"

View File

@@ -48,7 +48,7 @@ var/global/list/underwear_f = list("Red" = "f1", "White" = "f2", "Yellow" = "f3"
var/global/list/undershirt_t = list("Black Tank top" = "u1", "White Tank top" = "u2", "Black shirt" = "u3", "White shirt" = "u4", "None") var/global/list/undershirt_t = list("Black Tank top" = "u1", "White Tank top" = "u2", "Black shirt" = "u3", "White shirt" = "u4", "None")
//Backpacks //Backpacks
var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt") var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt")
var/global/list/exclude_jobs = list(/datum/job/ai,/datum/job/cyborg)
////////////////////////// //////////////////////////
/////Initial Building///// /////Initial Building/////
////////////////////////// //////////////////////////
@@ -88,7 +88,8 @@ var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Al
sort_surgeries() sort_surgeries()
//List of job. I can't believe this was calculated multiple times per tick! //List of job. I can't believe this was calculated multiple times per tick!
paths = typesof(/datum/job) -list(/datum/job,/datum/job/ai,/datum/job/cyborg) paths = typesof(/datum/job)-/datum/job
paths -= exclude_jobs
for(var/T in paths) for(var/T in paths)
var/datum/job/J = new T var/datum/job/J = new T
joblist[J.title] = J joblist[J.title] = J

View File

@@ -407,7 +407,7 @@
/proc/get_all_jobs() /proc/get_all_jobs()
var/list/all_jobs = list() var/list/all_jobs = list()
var/list/all_datums = typesof(/datum/job) var/list/all_datums = typesof(/datum/job)
all_datums.Remove(list(/datum/job,/datum/job/ai,/datum/job/cyborg)) all_datums -= exclude_jobs
var/datum/job/jobdatum var/datum/job/jobdatum
for(var/jobtype in all_datums) for(var/jobtype in all_datums)
jobdatum = new jobtype jobdatum = new jobtype

View File

@@ -1,6 +1,7 @@
/datum/job/assistant /datum/job/assistant
title = "Assistant" title = "Assistant"
flag = ASSISTANT flag = ASSISTANT
department = "Civilian"
department_flag = CIVILIAN department_flag = CIVILIAN
faction = "Station" faction = "Station"
total_positions = -1 total_positions = -1

View File

@@ -3,6 +3,8 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
/datum/job/captain /datum/job/captain
title = "Captain" title = "Captain"
flag = CAPTAIN flag = CAPTAIN
department = "Command"
head_position = 1
department_flag = ENGSEC department_flag = ENGSEC
faction = "Station" faction = "Station"
total_positions = 1 total_positions = 1
@@ -50,6 +52,8 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
/datum/job/hop /datum/job/hop
title = "Head of Personnel" title = "Head of Personnel"
flag = HOP flag = HOP
department = "Civilian"
head_position = 1
department_flag = CIVILIAN department_flag = CIVILIAN
faction = "Station" faction = "Station"
total_positions = 1 total_positions = 1

View File

@@ -2,6 +2,7 @@
/datum/job/bartender /datum/job/bartender
title = "Bartender" title = "Bartender"
flag = BARTENDER flag = BARTENDER
department = "Civilian"
department_flag = CIVILIAN department_flag = CIVILIAN
faction = "Station" faction = "Station"
total_positions = 1 total_positions = 1
@@ -44,6 +45,7 @@
/datum/job/chef /datum/job/chef
title = "Chef" title = "Chef"
flag = CHEF flag = CHEF
department = "Civilian"
department_flag = CIVILIAN department_flag = CIVILIAN
faction = "Station" faction = "Station"
total_positions = 2 total_positions = 2
@@ -74,6 +76,7 @@
/datum/job/hydro /datum/job/hydro
title = "Gardener" title = "Gardener"
flag = BOTANIST flag = BOTANIST
department = "Civilian"
department_flag = CIVILIAN department_flag = CIVILIAN
faction = "Station" faction = "Station"
total_positions = 2 total_positions = 2
@@ -108,6 +111,7 @@
/datum/job/qm /datum/job/qm
title = "Quartermaster" title = "Quartermaster"
flag = QUARTERMASTER flag = QUARTERMASTER
department = "Cargo"
department_flag = CIVILIAN department_flag = CIVILIAN
faction = "Station" faction = "Station"
total_positions = 1 total_positions = 1
@@ -138,6 +142,7 @@
/datum/job/cargo_tech /datum/job/cargo_tech
title = "Cargo Technician" title = "Cargo Technician"
flag = CARGOTECH flag = CARGOTECH
department = "Cargo"
department_flag = CIVILIAN department_flag = CIVILIAN
faction = "Station" faction = "Station"
total_positions = 2 total_positions = 2
@@ -166,6 +171,7 @@
/datum/job/mining /datum/job/mining
title = "Shaft Miner" title = "Shaft Miner"
flag = MINER flag = MINER
department = "Cargo"
department_flag = CIVILIAN department_flag = CIVILIAN
faction = "Station" faction = "Station"
total_positions = 3 total_positions = 3
@@ -277,6 +283,7 @@
/datum/job/janitor /datum/job/janitor
title = "Janitor" title = "Janitor"
flag = JANITOR flag = JANITOR
department = "Civilian"
department_flag = CIVILIAN department_flag = CIVILIAN
faction = "Station" faction = "Station"
total_positions = 1 total_positions = 1
@@ -305,6 +312,7 @@
/datum/job/librarian /datum/job/librarian
title = "Librarian" title = "Librarian"
flag = LIBRARIAN flag = LIBRARIAN
department = "Civilian"
department_flag = CIVILIAN department_flag = CIVILIAN
faction = "Station" faction = "Station"
total_positions = 1 total_positions = 1
@@ -334,6 +342,7 @@
/datum/job/lawyer /datum/job/lawyer
title = "Internal Affairs Agent" title = "Internal Affairs Agent"
flag = LAWYER flag = LAWYER
department = "Civilian"
department_flag = CIVILIAN department_flag = CIVILIAN
faction = "Station" faction = "Station"
total_positions = 2 total_positions = 2

View File

@@ -2,6 +2,7 @@
/datum/job/chaplain /datum/job/chaplain
title = "Chaplain" title = "Chaplain"
flag = CHAPLAIN flag = CHAPLAIN
department = "Civilian"
department_flag = CIVILIAN department_flag = CIVILIAN
faction = "Station" faction = "Station"
total_positions = 1 total_positions = 1

View File

@@ -1,6 +1,8 @@
/datum/job/chief_engineer /datum/job/chief_engineer
title = "Chief Engineer" title = "Chief Engineer"
flag = CHIEF flag = CHIEF
head_position = 1
department = "Engineering"
department_flag = ENGSEC department_flag = ENGSEC
faction = "Station" faction = "Station"
total_positions = 1 total_positions = 1
@@ -44,6 +46,7 @@
/datum/job/engineer /datum/job/engineer
title = "Station Engineer" title = "Station Engineer"
flag = ENGINEER flag = ENGINEER
department = "Engineering"
department_flag = ENGSEC department_flag = ENGSEC
faction = "Station" faction = "Station"
total_positions = 5 total_positions = 5
@@ -79,6 +82,7 @@
/datum/job/atmos /datum/job/atmos
title = "Atmospheric Technician" title = "Atmospheric Technician"
flag = ATMOSTECH flag = ATMOSTECH
department = "Engineering"
department_flag = ENGSEC department_flag = ENGSEC
faction = "Station" faction = "Station"
total_positions = 3 total_positions = 3

View File

@@ -41,6 +41,10 @@
//If you have use_age_restriction_for_jobs config option enabled and the database set up, this option will add a requirement for players to be at least minimal_player_age days old. (meaning they first signed in at least that many days before.) //If you have use_age_restriction_for_jobs config option enabled and the database set up, this option will add a requirement for players to be at least minimal_player_age days old. (meaning they first signed in at least that many days before.)
var/minimal_player_age = 0 var/minimal_player_age = 0
var/department = null
var/head_position = 0
/datum/job/proc/equip(var/mob/living/carbon/human/H) /datum/job/proc/equip(var/mob/living/carbon/human/H)
return 1 return 1

View File

@@ -1,6 +1,8 @@
/datum/job/cmo /datum/job/cmo
title = "Chief Medical Officer" title = "Chief Medical Officer"
flag = CMO flag = CMO
head_position = 1
department = "Medical"
department_flag = MEDSCI department_flag = MEDSCI
faction = "Station" faction = "Station"
total_positions = 1 total_positions = 1
@@ -39,6 +41,7 @@
/datum/job/doctor /datum/job/doctor
title = "Medical Doctor" title = "Medical Doctor"
flag = DOCTOR flag = DOCTOR
department = "Medical"
department_flag = MEDSCI department_flag = MEDSCI
faction = "Station" faction = "Station"
total_positions = 5 total_positions = 5
@@ -104,6 +107,7 @@
/datum/job/chemist /datum/job/chemist
title = "Chemist" title = "Chemist"
flag = CHEMIST flag = CHEMIST
department = "Medical"
department_flag = MEDSCI department_flag = MEDSCI
faction = "Station" faction = "Station"
total_positions = 2 total_positions = 2
@@ -135,6 +139,7 @@
/datum/job/geneticist /datum/job/geneticist
title = "Geneticist" title = "Geneticist"
flag = GENETICIST flag = GENETICIST
department = "Medical"
department_flag = MEDSCI department_flag = MEDSCI
faction = "Station" faction = "Station"
total_positions = 0 total_positions = 0
@@ -164,6 +169,7 @@
/datum/job/psychiatrist /datum/job/psychiatrist
title = "Psychiatrist" title = "Psychiatrist"
flag = PSYCHIATRIST flag = PSYCHIATRIST
department = "Medical"
department_flag = MEDSCI department_flag = MEDSCI
faction = "Station" faction = "Station"
total_positions = 1 total_positions = 1
@@ -201,6 +207,7 @@
/datum/job/Paramedic /datum/job/Paramedic
title = "Paramedic" title = "Paramedic"
flag = PARAMEDIC flag = PARAMEDIC
department = "Medical"
department_flag = MEDSCI department_flag = MEDSCI
faction = "Station" faction = "Station"
total_positions = 2 total_positions = 2

View File

@@ -1,6 +1,8 @@
/datum/job/rd /datum/job/rd
title = "Research Director" title = "Research Director"
flag = RD flag = RD
head_position = 1
department = "Science"
department_flag = MEDSCI department_flag = MEDSCI
faction = "Station" faction = "Station"
total_positions = 1 total_positions = 1
@@ -40,6 +42,7 @@
/datum/job/scientist /datum/job/scientist
title = "Scientist" title = "Scientist"
flag = SCIENTIST flag = SCIENTIST
department = "Science"
department_flag = MEDSCI department_flag = MEDSCI
faction = "Station" faction = "Station"
total_positions = 5 total_positions = 5
@@ -72,6 +75,7 @@
/datum/job/xenobiologist /datum/job/xenobiologist
title = "Xenobiologist" title = "Xenobiologist"
flag = XENOBIOLOGIST flag = XENOBIOLOGIST
department = "Science"
department_flag = MEDSCI department_flag = MEDSCI
faction = "Station" faction = "Station"
total_positions = 3 total_positions = 3
@@ -102,6 +106,7 @@
/datum/job/roboticist /datum/job/roboticist
title = "Roboticist" title = "Roboticist"
flag = ROBOTICIST flag = ROBOTICIST
department = "Science"
department_flag = MEDSCI department_flag = MEDSCI
faction = "Station" faction = "Station"
total_positions = 2 total_positions = 2

View File

@@ -1,6 +1,8 @@
/datum/job/hos /datum/job/hos
title = "Head of Security" title = "Head of Security"
flag = HOS flag = HOS
head_position = 1
department = "Security"
department_flag = ENGSEC department_flag = ENGSEC
faction = "Station" faction = "Station"
total_positions = 1 total_positions = 1
@@ -47,6 +49,7 @@
/datum/job/warden /datum/job/warden
title = "Warden" title = "Warden"
flag = WARDEN flag = WARDEN
department = "Security"
department_flag = ENGSEC department_flag = ENGSEC
faction = "Station" faction = "Station"
total_positions = 1 total_positions = 1
@@ -84,6 +87,7 @@
/datum/job/detective /datum/job/detective
title = "Detective" title = "Detective"
flag = DETECTIVE flag = DETECTIVE
department = "Security"
department_flag = ENGSEC department_flag = ENGSEC
faction = "Station" faction = "Station"
total_positions = 2 total_positions = 2
@@ -128,6 +132,7 @@
/datum/job/officer /datum/job/officer
title = "Security Officer" title = "Security Officer"
flag = OFFICER flag = OFFICER
department = "Security"
department_flag = ENGSEC department_flag = ENGSEC
faction = "Station" faction = "Station"
total_positions = 3 total_positions = 3

View File

@@ -225,10 +225,11 @@ var/global/datum/controller/occupations/job_master
SetupOccupations() SetupOccupations()
//Holder for Triumvirate is stored in the ticker, this just processes it //Holder for Triumvirate is stored in the ticker, this just processes it
if(ticker) if(ticker && ticker.triai)
for(var/datum/job/ai/A in occupations) for(var/datum/job/A in occupations)
if(ticker.triai) if(A.title == "AI")
A.spawn_positions = 3 A.spawn_positions = 3
break
//Get the players who are ready //Get the players who are ready
for(var/mob/new_player/player in player_list) for(var/mob/new_player/player in player_list)
@@ -245,7 +246,7 @@ var/global/datum/controller/occupations/job_master
//People who wants to be assistants, sure, go on. //People who wants to be assistants, sure, go on.
Debug("DO, Running Assistant Check 1") Debug("DO, Running Assistant Check 1")
var/datum/job/assist = new /datum/job/assistant() var/datum/job/assist = new DEFAULT_TYPE ()
var/list/assistant_candidates = FindOccupationCandidates(assist, 3) var/list/assistant_candidates = FindOccupationCandidates(assist, 3)
Debug("AC1, Candidates: [assistant_candidates.len]") Debug("AC1, Candidates: [assistant_candidates.len]")
for(var/mob/new_player/player in assistant_candidates) for(var/mob/new_player/player in assistant_candidates)

View File

@@ -51,8 +51,7 @@
should_patrol = 1 should_patrol = 1
src.botcard = new /obj/item/weapon/card/id(src) src.botcard = new /obj/item/weapon/card/id(src)
var/datum/job/janitor/J = new/datum/job/janitor src.botcard.access = list(access_janitor, access_maint_tunnels)
src.botcard.access = J.get_access()
src.locked = 0 // Start unlocked so roboticist can set them to patrol. src.locked = 0 // Start unlocked so roboticist can set them to patrol.

View File

@@ -75,8 +75,7 @@
src.botcard = new /obj/item/weapon/card/id(src) src.botcard = new /obj/item/weapon/card/id(src)
if(isnull(src.botcard_access) || (src.botcard_access.len < 1)) if(isnull(src.botcard_access) || (src.botcard_access.len < 1))
var/datum/job/doctor/J = new/datum/job/doctor src.botcard.access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics)
src.botcard.access = J.get_access()
else else
src.botcard.access = src.botcard_access src.botcard.access = src.botcard_access

View File

@@ -59,9 +59,7 @@
..() ..()
wires = new(src) wires = new(src)
botcard = new(src) botcard = new(src)
var/datum/job/cargo_tech/J = new/datum/job/cargo_tech botcard.access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mint, access_mining, access_mining_station)
botcard.access = J.get_access()
// botcard.access += access_robotics //Why --Ikki
cell = new(src) cell = new(src)
cell.charge = 2000 cell.charge = 2000
cell.maxcharge = 2000 cell.maxcharge = 2000

View File

@@ -91,8 +91,7 @@
update_icon() update_icon()
spawn(3) spawn(3)
src.botcard = new /obj/item/weapon/card/id(src) src.botcard = new /obj/item/weapon/card/id(src)
var/datum/job/detective/J = new/datum/job/detective src.botcard.access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court)
src.botcard.access = J.get_access()
if(radio_controller) if(radio_controller)
radio_controller.add_object(src, control_freq, filter = RADIO_SECBOT) radio_controller.add_object(src, control_freq, filter = RADIO_SECBOT)
radio_controller.add_object(src, beacon_freq, filter = RADIO_NAVBEACONS) radio_controller.add_object(src, beacon_freq, filter = RADIO_NAVBEACONS)

View File

@@ -281,8 +281,7 @@
registered_name = "Captain" registered_name = "Captain"
assignment = "Captain" assignment = "Captain"
New() New()
var/datum/job/captain/J = new/datum/job/captain access = get_all_accesses()
access = J.get_access()
..() ..()
/obj/item/weapon/card/id/centcom /obj/item/weapon/card/id/centcom

View File

@@ -257,3 +257,5 @@ var/max_explosion_range = 14
// Announcer intercom, because too much stuff creates an intercom for one message then hard del()s it. // Announcer intercom, because too much stuff creates an intercom for one message then hard del()s it.
var/global/obj/item/device/radio/intercom/global_announcer = new(null) var/global/obj/item/device/radio/intercom/global_announcer = new(null)
var/list/station_departments = list("Command", "Medical", "Engineering", "Science", "Security", "Cargo", "Civilian")

View File

@@ -1,70 +0,0 @@
var/list/station_departments = list("Command", "Medical", "Engineering", "Science", "Security", "Cargo", "Civilian")
// The department the job belongs to.
/datum/job/var/department = null
// Whether this is a head position
/datum/job/var/head_position = 0
/datum/job/captain/department = "Command"
/datum/job/captain/head_position = 1
/datum/job/hop/department = "Civilian"
/datum/job/hop/head_position = 1
/datum/job/assistant/department = "Civilian"
/datum/job/bartender/department = "Civilian"
/datum/job/chef/department = "Civilian"
/datum/job/hydro/department = "Civilian"
/datum/job/mining/department = "Civilian"
/datum/job/janitor/department = "Civilian"
/datum/job/librarian/department = "Civilian"
/datum/job/lawyer/department = "Civilian"
/datum/job/chaplain/department = "Civilian"
/datum/job/qm/department = "Cargo"
/datum/job/qm/head_position = 1
/datum/job/cargo_tech/department = "Cargo"
/datum/job/chief_engineer/department = "Engineering"
/datum/job/chief_engineer/head_position = 1
/datum/job/engineer/department = "Engineering"
/datum/job/atmos/department = "Engineering"
/datum/job/cmo/department = "Medical"
/datum/job/cmo/head_position = 1
/datum/job/doctor/department = "Medical"
/datum/job/chemist/department = "Medical"
/datum/job/geneticist/department = "Medical"
/datum/job/psychiatrist/department = "Medical"
/datum/job/rd/department = "Science"
/datum/job/rd/head_position = 1
/datum/job/scientist/department = "Science"
/datum/job/roboticist/department = "Science"
/datum/job/hos/department = "Security"
/datum/job/hos/head_position = 1
/datum/job/warden/department = "Security"
/datum/job/detective/department = "Security"
/datum/job/officer/department = "Security"

View File

@@ -762,3 +762,5 @@ var/list/be_special_flags = list(
//General-purpose life speed define for plants. //General-purpose life speed define for plants.
#define HYDRO_SPEED_MULTIPLIER 1 #define HYDRO_SPEED_MULTIPLIER 1
#define NANO_IGNORE_DISTANCE 1 #define NANO_IGNORE_DISTANCE 1
#define DEFAULT_TYPE /datum/job/assistant