StationSystem/jobs/partial spawning refactor (#7580)
* Partial work on StationSystem refactor. * WIP station jobs API. * forgor to fire off grid events. * Partial implementation of StationSpawningSystem * whoops infinite loop. * Spawners should work now. * it compiles. * tfw * Vestigial code cleanup. * fix station deletion. * attempt to make tests go brr * add latejoin spawnpoints to test maps. * make sure the station still exists while destructing spawners. * forgot an exists check. * destruction order check. * hopefully fix final test. * fail-safe radstorm. * Deep-clean job code further. This is bugged!!!!! * Fix job bug. (init order moment) * whooo cleanup * New job selection algorithm that tries to distribute fairly across stations. * small nitpicks * Give the heads their weights to replace the head field. * make overflow assign take a station list. * moment * Fixes and test #1 of many. * please fix nullspace * AssignJobs should no longer even consider showing up on a trace. * add comment. * Introduce station configs, praying i didn't miss something. * in one small change stations are now fully serializable. * Further doc comments. * whoops. * Solve bug where assignjobs didn't account for roundstart. * Fix spawning, improve the API. Caught an oversight in stationsystem that should've broke everything but didn't, whoops. * Goodbye JobController. * minor fix.. * fix test fail, remove debug logs. * quick serialization fixes. * fixes.. * sus * partialing * Update Content.Server/Station/Systems/StationJobsSystem.Roundstart.cs Co-authored-by: Kara <lunarautomaton6@gmail.com> * Use dirtying to avoid rebuilding the list 2,100 times. * add a bajillion more lines of docs (mostly in AssignJobs so i don't ever forget how it works) * Update Content.IntegrationTests/Tests/Station/StationJobsTest.cs Co-authored-by: Kara <lunarautomaton6@gmail.com> * Add the Mysteriously Missing Captain Check. * Put maprender back the way it belongs. * I love addressing reviews. * Update Content.Server/Station/Systems/StationJobsSystem.cs Co-authored-by: Kara <lunarautomaton6@gmail.com> * doc cleanup. * Fix bureaucratic error, add job slot tests. * zero cost abstractions when * cri * saner error. * Fix spawning failing certain tests due to gameticker not handling falliability correctly. Can't fix this until I refactor the rest of spawning code. * submodule gaming * Packedenger. * Documentation consistency. Co-authored-by: Kara <lunarautomaton6@gmail.com>
This commit is contained in:
@@ -1,43 +1,45 @@
|
||||
- type: gameMap
|
||||
id: bagelstation
|
||||
mapName: 'Bagel Station'
|
||||
mapNameTemplate: '{0} Bagel Station {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
mapPath: /Maps/bagel.yml
|
||||
minPlayers: 35
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 3, 3 ]
|
||||
Passenger: [ -1, -1 ]
|
||||
Bartender: [ 2, 2 ]
|
||||
Botanist: [ 3, 3]
|
||||
Chef: [ 2, 2 ]
|
||||
Clown: [ 1, 1 ]
|
||||
Janitor: [ 3, 3 ]
|
||||
Mime: [ 1, 1 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 4, 4 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 3, 3 ]
|
||||
Chemist: [ 2, 3 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 4, 4 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 4, 4 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Warden: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
Lawyer: [ 2, 2 ]
|
||||
Quartermaster: [ 1, 1 ]
|
||||
SalvageSpecialist: [ 3, 3 ]
|
||||
Musician: [ 1, 1 ]
|
||||
AtmosphericTechnician: [ 3, 3 ]
|
||||
TechnicalAssistant: [ 2, 2 ]
|
||||
MedicalIntern: [ 2, 2 ]
|
||||
ServiceWorker: [ 2, 2 ]
|
||||
SecurityCadet: [ 2, 2 ]
|
||||
stations:
|
||||
Dart: #TODO: Mapper, fix this name in your map file. (just change the name for every grid with a BecomesStation or PartOfStation component.)
|
||||
mapNameTemplate: '{0} Bagel Station {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 3, 3 ]
|
||||
Passenger: [ -1, -1 ]
|
||||
Bartender: [ 2, 2 ]
|
||||
Botanist: [ 3, 3 ]
|
||||
Chef: [ 2, 2 ]
|
||||
Clown: [ 1, 1 ]
|
||||
Janitor: [ 3, 3 ]
|
||||
Mime: [ 1, 1 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 4, 4 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 3, 3 ]
|
||||
Chemist: [ 2, 3 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 4, 4 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 4, 4 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Warden: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
Lawyer: [ 2, 2 ]
|
||||
Quartermaster: [ 1, 1 ]
|
||||
SalvageSpecialist: [ 3, 3 ]
|
||||
Musician: [ 1, 1 ]
|
||||
AtmosphericTechnician: [ 3, 3 ]
|
||||
TechnicalAssistant: [ 2, 2 ]
|
||||
MedicalIntern: [ 2, 2 ]
|
||||
ServiceWorker: [ 2, 2 ]
|
||||
SecurityCadet: [ 2, 2 ]
|
||||
|
||||
@@ -1,39 +1,41 @@
|
||||
- type: gameMap
|
||||
id: delta
|
||||
mapName: 'Delta Station'
|
||||
mapNameTemplate: '{0} Delta Station {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
mapPath: /Maps/delta.yml
|
||||
minPlayers: 60
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 4, 4 ]
|
||||
Passenger: [ -1, -1 ]
|
||||
Bartender: [ 1, 1 ]
|
||||
Botanist: [ 4, 4]
|
||||
Chef: [ 1, 2 ]
|
||||
Clown: [ 1, 1 ]
|
||||
Janitor: [ 1, 2 ]
|
||||
Mime: [ 1, 1 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 7, 7 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 5, 5 ]
|
||||
Chemist: [ 2, 2 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 7, 7 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 5, 5 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Warden: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
Lawyer: [ 2, 2 ]
|
||||
Quartermaster: [ 1, 1 ]
|
||||
SalvageSpecialist: [ 3, 3 ]
|
||||
Musician: [ 2, 2 ]
|
||||
AtmosphericTechnician: [ 1, 2 ]
|
||||
stations:
|
||||
Station: #TODO: Mapper, add a BecomesStation component to the primary grid of the map.
|
||||
mapNameTemplate: '{0} Delta Station {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 4, 4 ]
|
||||
Passenger: [ -1, -1 ]
|
||||
Bartender: [ 1, 1 ]
|
||||
Botanist: [ 4, 4 ]
|
||||
Chef: [ 1, 2 ]
|
||||
Clown: [ 1, 1 ]
|
||||
Janitor: [ 1, 2 ]
|
||||
Mime: [ 1, 1 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 7, 7 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 5, 5 ]
|
||||
Chemist: [ 2, 2 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 7, 7 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 5, 5 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Warden: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
Lawyer: [ 2, 2 ]
|
||||
Quartermaster: [ 1, 1 ]
|
||||
SalvageSpecialist: [ 3, 3 ]
|
||||
Musician: [ 2, 2 ]
|
||||
AtmosphericTechnician: [ 1, 2 ]
|
||||
|
||||
@@ -1,185 +1,108 @@
|
||||
- type: gameMap
|
||||
id: saltern
|
||||
mapName: 'Saltern'
|
||||
mapNameTemplate: '{0} Saltern {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
mapPath: /Maps/saltern.yml
|
||||
minPlayers: 0
|
||||
maxPlayers: 29
|
||||
fallback: true
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 1, 2 ]
|
||||
Passenger: [ -1, -1 ]
|
||||
Bartender: [ 1, 1 ]
|
||||
Botanist: [ 2, 2 ]
|
||||
Chef: [ 1, 1 ]
|
||||
Clown: [ 1, 1 ]
|
||||
Janitor: [ 1, 1 ]
|
||||
Mime: [ 1, 1 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 2, 3 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 2, 3 ]
|
||||
Chemist: [ 1, 1 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 2, 3 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 2, 3 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
Musician: [ 1, 1 ]
|
||||
Lawyer: [ 1, 1 ]
|
||||
SalvageSpecialist: [ 1, 2 ]
|
||||
Quartermaster: [ 1, 1 ]
|
||||
AtmosphericTechnician: [ 1, 2 ]
|
||||
|
||||
- type: gameMap
|
||||
id: packedstation
|
||||
mapName: 'Packedstation'
|
||||
mapNameTemplate: '{0} Packedstation {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: 'VG'
|
||||
mapPath: /Maps/packedstation.yml
|
||||
minPlayers: 15
|
||||
maxPlayers: 55
|
||||
votable: false
|
||||
conditions:
|
||||
- !type:HolidayMapCondition
|
||||
inverted: true
|
||||
holidays: [ "Christmas" ]
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 2, 3 ]
|
||||
Passenger: [ -1, -1 ]
|
||||
Bartender: [ 1, 1 ]
|
||||
Botanist: [ 2, 2 ]
|
||||
Chef: [ 1, 1 ]
|
||||
Clown: [ 1, 1 ]
|
||||
Janitor: [ 1, 1 ]
|
||||
Mime: [ 1, 1 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 4, 6 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 3, 4 ]
|
||||
Chemist: [ 2, 2 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 3, 4 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 2, 3 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Warden: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
Lawyer: [ 1, 2 ]
|
||||
Musician: [1, 1]
|
||||
AtmosphericTechnician: [ 1, 2 ]
|
||||
|
||||
- type: gameMap
|
||||
id: NSSPillar
|
||||
mapName: 'NSS Pillar'
|
||||
mapNameTemplate: '{0} NSSPillar {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
mapPath: /Maps/nss_pillar.yml
|
||||
minPlayers: 40
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
Passenger: [ -1, -1 ]
|
||||
CargoTechnician: [ 4, 6 ]
|
||||
Bartender: [ 2, 2 ]
|
||||
Botanist: [ 2, 4 ]
|
||||
Chef: [ 2, 4 ]
|
||||
Clown: [ 1, 2 ]
|
||||
Janitor: [ 2, 4 ]
|
||||
Mime: [ 1, 2 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 6, 10 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 6, 10 ]
|
||||
Chemist: [ 2, 3 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 3, 8 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 6, 10 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
Lawyer: [ 1, 2 ]
|
||||
Warden: [ 1, 1 ]
|
||||
Quartermaster: [ 1, 1 ]
|
||||
SalvageSpecialist: [ 4, 6 ]
|
||||
Musician: [1, 1]
|
||||
AtmosphericTechnician: [ 1, 2 ]
|
||||
stations:
|
||||
Pillar:
|
||||
mapNameTemplate: '{0} NSSPillar {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
Passenger: [ -1, -1 ]
|
||||
CargoTechnician: [ 4, 6 ]
|
||||
Bartender: [ 2, 2 ]
|
||||
Botanist: [ 2, 4 ]
|
||||
Chef: [ 2, 4 ]
|
||||
Clown: [ 1, 2 ]
|
||||
Janitor: [ 2, 4 ]
|
||||
Mime: [ 1, 2 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 6, 10 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 6, 10 ]
|
||||
Chemist: [ 2, 3 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 3, 8 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 6, 10 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
Lawyer: [ 1, 2 ]
|
||||
Warden: [ 1, 1 ]
|
||||
Quartermaster: [ 1, 1 ]
|
||||
SalvageSpecialist: [ 4, 6 ]
|
||||
Musician: [ 1, 1 ]
|
||||
AtmosphericTechnician: [ 1, 2 ]
|
||||
|
||||
- type: gameMap
|
||||
id: ssreach
|
||||
mapName: 'Reach'
|
||||
mapNameTemplate: '{0} Reach {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
mapPath: /Maps/ssreach.yml
|
||||
minPlayers: 0
|
||||
maxPlayers: 15
|
||||
votable: false
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 1, 1 ]
|
||||
Passenger: [ 4, 8 ]
|
||||
Bartender: [ 1, 1 ]
|
||||
Botanist: [ 1, 1 ]
|
||||
Chef: [ 1, 1 ]
|
||||
Captain: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 1, 2 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 1, 1 ]
|
||||
Chemist: [ 1, 1 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 2, 4 ]
|
||||
Janitor: [ 1, 1 ]
|
||||
Musician: [1, 1]
|
||||
stations:
|
||||
Reach:
|
||||
mapNameTemplate: '{0} Reach {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 1, 1 ]
|
||||
Passenger: [ 4, 8 ]
|
||||
Bartender: [ 1, 1 ]
|
||||
Botanist: [ 1, 1 ]
|
||||
Chef: [ 1, 1 ]
|
||||
Captain: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 1, 2 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 1, 1 ]
|
||||
Chemist: [ 1, 1 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 2, 4 ]
|
||||
Janitor: [ 1, 1 ]
|
||||
Musician: [1, 1]
|
||||
|
||||
- type: gameMap
|
||||
id: dart
|
||||
mapName: 'Dart'
|
||||
mapNameTemplate: '{0} Dart {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
mapPath: /Maps/dart.yml
|
||||
minPlayers: 0
|
||||
votable: false
|
||||
overflowJobs: []
|
||||
availableJobs:
|
||||
Captain: [ 1, 1 ]
|
||||
stations:
|
||||
Station: #TODO: Mapper, add a BecomesStation component to the primary grid of the map.
|
||||
mapNameTemplate: '{0} Dart {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
overflowJobs: []
|
||||
availableJobs:
|
||||
Captain: [ 1, 1 ]
|
||||
|
||||
- type: gameMap
|
||||
id: moonrise
|
||||
mapName: 'Moonrise ERC'
|
||||
mapNameTemplate: '{0} Moonrise {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: 'VG'
|
||||
mapPath: /Maps/moonrise.yml
|
||||
minPlayers: 0
|
||||
votable: false
|
||||
overflowJobs: []
|
||||
availableJobs:
|
||||
Captain: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
SecurityOfficer: [ 3, 6 ]
|
||||
stations:
|
||||
Station:
|
||||
mapNameTemplate: '{0} Moonrise {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: 'VG'
|
||||
overflowJobs: []
|
||||
availableJobs:
|
||||
Captain: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
SecurityOfficer: [ 3, 6 ]
|
||||
|
||||
@@ -1,36 +1,36 @@
|
||||
- type: gameMap
|
||||
id: packedstationxmas
|
||||
mapName: 'Packedmasstation'
|
||||
mapNameTemplate: '{0} Packedmasstation {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: 'VG'
|
||||
mapPath: /Maps/packedstationxmas.yml
|
||||
minPlayers: 15
|
||||
conditions:
|
||||
- !type:HolidayMapCondition
|
||||
holidays: [ "Christmas" ]
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 2, 3 ]
|
||||
Passenger: [ -1, -1 ]
|
||||
Bartender: [ 1, 1 ]
|
||||
Botanist: [ 2, 2 ]
|
||||
Chef: [ 1, 1 ]
|
||||
Clown: [ 1, 1 ]
|
||||
Janitor: [ 1, 1 ]
|
||||
Mime: [ 1, 1 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 4, 6 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 3, 4 ]
|
||||
Chemist: [ 2, 2 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 3, 4 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 2, 3 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Warden: [ 1, 1 ]
|
||||
#- type: gameMap
|
||||
# id: packedstationxmas
|
||||
# mapName: 'Packedmasstation'
|
||||
# mapNameTemplate: '{0} Packedmasstation {1}'
|
||||
# nameGenerator:
|
||||
# !type:NanotrasenNameGenerator
|
||||
# prefixCreator: 'VG'
|
||||
# mapPath: /Maps/packedstationxmas.yml
|
||||
# minPlayers: 15
|
||||
# conditions:
|
||||
# - !type:HolidayMapCondition
|
||||
# holidays: [ "Christmas" ]
|
||||
# overflowJobs:
|
||||
# - Passenger
|
||||
# availableJobs:
|
||||
# CargoTechnician: [ 2, 3 ]
|
||||
# Passenger: [ -1, -1 ]
|
||||
# Bartender: [ 1, 1 ]
|
||||
# Botanist: [ 2, 2 ]
|
||||
# Chef: [ 1, 1 ]
|
||||
# Clown: [ 1, 1 ]
|
||||
# Janitor: [ 1, 1 ]
|
||||
# Mime: [ 1, 1 ]
|
||||
# Captain: [ 1, 1 ]
|
||||
# HeadOfPersonnel: [ 1, 1 ]
|
||||
# ChiefEngineer: [ 1, 1 ]
|
||||
# StationEngineer: [ 4, 6 ]
|
||||
# ChiefMedicalOfficer: [ 1, 1 ]
|
||||
# MedicalDoctor: [ 3, 4 ]
|
||||
# Chemist: [ 2, 2 ]
|
||||
# ResearchDirector: [ 1, 1 ]
|
||||
# Scientist: [ 3, 4 ]
|
||||
# HeadOfSecurity: [ 1, 1 ]
|
||||
# SecurityOfficer: [ 2, 3 ]
|
||||
# Chaplain: [ 1, 1 ]
|
||||
# Warden: [ 1, 1 ]
|
||||
|
||||
@@ -1,44 +1,46 @@
|
||||
- type: gameMap
|
||||
id: marathonstation
|
||||
mapName: 'Marathon Station'
|
||||
mapNameTemplate: '{0} Marathon Station {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
mapPath: /Maps/marathon.yml
|
||||
minPlayers: 35
|
||||
maxPlayers: 70
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 2, 3 ]
|
||||
Passenger: [ -1, -1 ]
|
||||
Bartender: [ 2, 2 ]
|
||||
Botanist: [ 3, 3]
|
||||
Chef: [ 2, 2 ]
|
||||
Clown: [ 1, 1 ]
|
||||
Janitor: [ 1, 2 ]
|
||||
Mime: [ 1, 1 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 4, 4 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 3, 4 ]
|
||||
Chemist: [ 2, 3 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 3, 4 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 4, 4 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Warden: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
Lawyer: [ 2, 2 ]
|
||||
Quartermaster: [ 1, 1 ]
|
||||
SalvageSpecialist: [ 3, 3 ]
|
||||
Musician: [ 1, 1 ]
|
||||
AtmosphericTechnician: [ 3, 3 ]
|
||||
TechnicalAssistant: [ 2, 2 ]
|
||||
MedicalIntern: [ 2, 2 ]
|
||||
ServiceWorker: [ 2, 2 ]
|
||||
SecurityCadet: [ 2, 2 ]
|
||||
stations:
|
||||
Station: #TODO: Mapper, add a BecomesStation component to the primary grid of the map.
|
||||
mapNameTemplate: '{0} Marathon Station {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 2, 3 ]
|
||||
Passenger: [ -1, -1 ]
|
||||
Bartender: [ 2, 2 ]
|
||||
Botanist: [ 3, 3]
|
||||
Chef: [ 2, 2 ]
|
||||
Clown: [ 1, 1 ]
|
||||
Janitor: [ 1, 2 ]
|
||||
Mime: [ 1, 1 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 4, 6 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 3, 4 ]
|
||||
Chemist: [ 2, 3 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 3, 4 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 4, 4 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Warden: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
Lawyer: [ 2, 2 ]
|
||||
Quartermaster: [ 1, 1 ]
|
||||
SalvageSpecialist: [ 3, 3 ]
|
||||
Musician: [ 1, 1 ]
|
||||
AtmosphericTechnician: [ 3, 3 ]
|
||||
TechnicalAssistant: [ 2, 2 ]
|
||||
MedicalIntern: [ 2, 2 ]
|
||||
ServiceWorker: [ 2, 2 ]
|
||||
SecurityCadet: [ 2, 2 ]
|
||||
|
||||
@@ -1,44 +1,46 @@
|
||||
- type: gameMap
|
||||
id: moosestation
|
||||
mapName: 'Moose Station'
|
||||
mapNameTemplate: '{0} Moose Station {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
mapPath: /Maps/moose.yml
|
||||
minPlayers: 0
|
||||
maxPlayers: 35
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 2, 2 ]
|
||||
Passenger: [ -1, -1 ]
|
||||
Bartender: [ 1, 1 ]
|
||||
Botanist: [ 2, 2]
|
||||
Chef: [ 1, 1 ]
|
||||
Clown: [ 1, 1 ]
|
||||
Janitor: [ 1, 1 ]
|
||||
Mime: [ 1, 1 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 3, 3 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 2, 2 ]
|
||||
Chemist: [ 2, 2 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 3, 3 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 2, 2 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Warden: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
Lawyer: [ 1, 1 ]
|
||||
Quartermaster: [ 1, 1 ]
|
||||
SalvageSpecialist: [ 2, 2 ]
|
||||
Musician: [ 1, 1 ]
|
||||
AtmosphericTechnician: [ 2, 2 ]
|
||||
TechnicalAssistant: [ 1, 1 ]
|
||||
MedicalIntern: [ 1, 1 ]
|
||||
ServiceWorker: [ 1, 1 ]
|
||||
SecurityCadet: [ 1, 1 ]
|
||||
stations:
|
||||
Station: #TODO: Mapper, add a BecomesStation component to the primary grid of the map.
|
||||
mapNameTemplate: '{0} Moose Station {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 2, 2 ]
|
||||
Passenger: [ -1, -1 ]
|
||||
Bartender: [ 1, 1 ]
|
||||
Botanist: [ 2, 2]
|
||||
Chef: [ 1, 1 ]
|
||||
Clown: [ 1, 1 ]
|
||||
Janitor: [ 1, 1 ]
|
||||
Mime: [ 1, 1 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 3, 3 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 2, 2 ]
|
||||
Chemist: [ 2, 2 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 3, 3 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 2, 2 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Warden: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
Lawyer: [ 1, 1 ]
|
||||
Quartermaster: [ 1, 1 ]
|
||||
SalvageSpecialist: [ 2, 2 ]
|
||||
Musician: [ 1, 1 ]
|
||||
AtmosphericTechnician: [ 2, 2 ]
|
||||
TechnicalAssistant: [ 1, 1 ]
|
||||
MedicalIntern: [ 1, 1 ]
|
||||
ServiceWorker: [ 1, 1 ]
|
||||
SecurityCadet: [ 1, 1 ]
|
||||
|
||||
40
Resources/Prototypes/Maps/packedstation.yml
Normal file
40
Resources/Prototypes/Maps/packedstation.yml
Normal file
@@ -0,0 +1,40 @@
|
||||
- type: gameMap
|
||||
id: packedstation
|
||||
mapName: 'Packedstation'
|
||||
mapPath: /Maps/packedstation.yml
|
||||
minPlayers: 15
|
||||
maxPlayers: 55
|
||||
votable: false
|
||||
stations:
|
||||
Packed:
|
||||
mapNameTemplate: '{0} Packedstation {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: 'VG'
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 2, 3 ]
|
||||
Passenger: [ -1, -1 ]
|
||||
Bartender: [ 1, 1 ]
|
||||
Botanist: [ 2, 2 ]
|
||||
Chef: [ 1, 1 ]
|
||||
Clown: [ 1, 1 ]
|
||||
Janitor: [ 1, 1 ]
|
||||
Mime: [ 1, 1 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 4, 6 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 3, 4 ]
|
||||
Chemist: [ 2, 2 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 3, 4 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 2, 3 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Warden: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
Lawyer: [ 1, 2 ]
|
||||
Musician: [1, 1]
|
||||
@@ -1,44 +1,45 @@
|
||||
- type: gameMap
|
||||
id: saltern
|
||||
mapName: 'Saltern'
|
||||
mapNameTemplate: '{0} Saltern {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
mapPath: /Maps/saltern.yml
|
||||
minPlayers: 0
|
||||
maxPlayers: 29
|
||||
fallback: true
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 2, 2 ]
|
||||
Passenger: [ -1, -1 ]
|
||||
Bartender: [ 1, 1 ]
|
||||
Botanist: [ 2, 2 ]
|
||||
Chef: [ 1, 1 ]
|
||||
Clown: [ 1, 1 ]
|
||||
Janitor: [ 1, 1 ]
|
||||
Mime: [ 1, 1 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 3, 3 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 2, 3 ]
|
||||
Chemist: [ 1, 1 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 2, 3 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 3, 3 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
Musician: [ 1, 1 ]
|
||||
Lawyer: [ 1, 1 ]
|
||||
SalvageSpecialist: [ 2, 2 ]
|
||||
Quartermaster: [ 1, 1 ]
|
||||
AtmosphericTechnician: [ 2, 2 ]
|
||||
TechnicalAssistant: [ 2, 2 ]
|
||||
MedicalIntern: [ 2, 2 ]
|
||||
ServiceWorker: [ 2, 2 ]
|
||||
SecurityCadet: [ 2, 2 ]
|
||||
- type: gameMap
|
||||
id: saltern
|
||||
mapName: 'Saltern'
|
||||
mapPath: /Maps/saltern.yml
|
||||
minPlayers: 0
|
||||
maxPlayers: 29
|
||||
fallback: true
|
||||
stations:
|
||||
Saltern:
|
||||
mapNameTemplate: '{0} Saltern {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 1, 2 ]
|
||||
Passenger: [ -1, -1 ]
|
||||
Bartender: [ 1, 1 ]
|
||||
Botanist: [ 2, 2 ]
|
||||
Chef: [ 1, 1 ]
|
||||
Clown: [ 1, 1 ]
|
||||
Janitor: [ 1, 1 ]
|
||||
Mime: [ 1, 1 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 2, 3 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 2, 3 ]
|
||||
Chemist: [ 1, 1 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 2, 3 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 2, 3 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
Musician: [ 1, 1 ]
|
||||
Lawyer: [ 1, 1 ]
|
||||
SalvageSpecialist: [ 1, 2 ]
|
||||
Quartermaster: [ 1, 1 ]
|
||||
TechnicalAssistant: [ 2, 2 ]
|
||||
MedicalIntern: [ 2, 2 ]
|
||||
ServiceWorker: [ 2, 2 ]
|
||||
SecurityCadet: [ 2, 2 ]
|
||||
|
||||
@@ -1,43 +1,45 @@
|
||||
- type: gameMap
|
||||
id: splitstation
|
||||
mapName: 'Split Station'
|
||||
mapNameTemplate: '{0} Split Station {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
mapPath: /Maps/splitstation.yml
|
||||
minPlayers: 60
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 3, 6 ]
|
||||
Passenger: [ -1, -1 ]
|
||||
Bartender: [ 2, 3 ]
|
||||
Botanist: [ 3, 6]
|
||||
Chef: [ 2, 4 ]
|
||||
Clown: [ 1, 2 ]
|
||||
Janitor: [ 2, 4 ]
|
||||
Mime: [ 1, 2 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 6, 8 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 3, 8 ]
|
||||
Chemist: [ 2, 3 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 3, 6 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 8, 10 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Warden: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
Lawyer: [ 2, 2 ]
|
||||
Quartermaster: [ 1, 1 ]
|
||||
SalvageSpecialist: [ 4, 6 ]
|
||||
Musician: [ 1, 1 ]
|
||||
AtmosphericTechnician: [ 1, 2 ]
|
||||
TechnicalAssistant: [ 2, 2 ]
|
||||
MedicalIntern: [ 2, 2 ]
|
||||
ServiceWorker: [ 2, 2 ]
|
||||
SecurityCadet: [ 2, 2 ]
|
||||
minPlayers: 40
|
||||
stations:
|
||||
Dart: #TODO: Mapper, fix this name in your map file. (just change the name for every grid with a BecomesStation or PartOfStation component.)
|
||||
mapNameTemplate: '{0} Split Station {1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
CargoTechnician: [ 3, 6 ]
|
||||
Passenger: [ -1, -1 ]
|
||||
Bartender: [ 2, 3 ]
|
||||
Botanist: [ 3, 6]
|
||||
Chef: [ 2, 4 ]
|
||||
Clown: [ 1, 2 ]
|
||||
Janitor: [ 2, 4 ]
|
||||
Mime: [ 1, 2 ]
|
||||
Captain: [ 1, 1 ]
|
||||
HeadOfPersonnel: [ 1, 1 ]
|
||||
ChiefEngineer: [ 1, 1 ]
|
||||
StationEngineer: [ 6, 8 ]
|
||||
ChiefMedicalOfficer: [ 1, 1 ]
|
||||
MedicalDoctor: [ 3, 8 ]
|
||||
Chemist: [ 2, 3 ]
|
||||
ResearchDirector: [ 1, 1 ]
|
||||
Scientist: [ 3, 6 ]
|
||||
HeadOfSecurity: [ 1, 1 ]
|
||||
SecurityOfficer: [ 8, 10 ]
|
||||
Chaplain: [ 1, 1 ]
|
||||
Warden: [ 1, 1 ]
|
||||
Librarian: [ 1, 1 ]
|
||||
Lawyer: [ 2, 2 ]
|
||||
Quartermaster: [ 1, 1 ]
|
||||
SalvageSpecialist: [ 4, 6 ]
|
||||
Musician: [ 1, 1 ]
|
||||
AtmosphericTechnician: [ 1, 2 ]
|
||||
TechnicalAssistant: [ 2, 2 ]
|
||||
MedicalIntern: [ 2, 2 ]
|
||||
ServiceWorker: [ 2, 2 ]
|
||||
SecurityCadet: [ 2, 2 ]
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
mapPath: /Maps/Test/empty.yml
|
||||
minPlayers: 0
|
||||
votable: false
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
Passenger: [ -1, -1 ]
|
||||
|
||||
stations:
|
||||
Station: #TODO: Add a BecomesStation to empty.yml
|
||||
mapNameTemplate: "Empty"
|
||||
overflowJobs:
|
||||
- Passenger
|
||||
availableJobs:
|
||||
Passenger: [ -1, -1 ]
|
||||
|
||||
Reference in New Issue
Block a user