diff --git a/Content.Server/Access/Systems/PresetIdCardSystem.cs b/Content.Server/Access/Systems/PresetIdCardSystem.cs index 426e523243c..220a5156f48 100644 --- a/Content.Server/Access/Systems/PresetIdCardSystem.cs +++ b/Content.Server/Access/Systems/PresetIdCardSystem.cs @@ -2,6 +2,7 @@ using Content.Server.GameTicking; using Content.Server.Station.Components; using Content.Server.Station.Systems; +using Content.Shared.Access.Components; // Emberfall using Content.Shared.Access.Systems; using Content.Shared.Roles; using Content.Shared.StatusIcon; @@ -79,10 +80,17 @@ private void SetupIdAccess(EntityUid uid, PresetIdCardComponent id, bool extende _accessSystem.SetAccessToJob(uid, job, extended); - _cardSystem.TryChangeJobTitle(uid, job.LocalizedName); + // Begin Emberfall + var card = Comp<IdCardComponent>(uid); + + if (card.JobTitle == null) + _cardSystem.TryChangeJobTitle(uid, job.LocalizedName); + // End Emberfall + _cardSystem.TryChangeJobDepartment(uid, job); - if (_prototypeManager.TryIndex(job.Icon, out var jobIcon)) + if (card.JobIcon == "JobIconUnknown" && // Emberfall - Only set the icon if we're not overwriting it + _prototypeManager.TryIndex(job.Icon, out var jobIcon)) _cardSystem.TryChangeJobIcon(uid, jobIcon); } } diff --git a/Content.Server/Station/Systems/StationSpawningSystem.cs b/Content.Server/Station/Systems/StationSpawningSystem.cs index d27354a25ce..9819ca07dde 100644 --- a/Content.Server/Station/Systems/StationSpawningSystem.cs +++ b/Content.Server/Station/Systems/StationSpawningSystem.cs @@ -235,9 +235,11 @@ public void SetPdaAndIdCardData(EntityUid entity, string characterName, JobProto return; _cardSystem.TryChangeFullName(cardId, characterName, card); - _cardSystem.TryChangeJobTitle(cardId, jobPrototype.LocalizedName, card); + if (card.JobTitle == null) // Emberfall + _cardSystem.TryChangeJobTitle(cardId, jobPrototype.LocalizedName, card); - if (_prototypeManager.TryIndex(jobPrototype.Icon, out var jobIcon)) + if (card.JobIcon == "JobIconUnknown" && // Emberfall + _prototypeManager.TryIndex(jobPrototype.Icon, out var jobIcon)) _cardSystem.TryChangeJobIcon(cardId, jobIcon, card); var extendedAccess = false; diff --git a/Content.Server/StationRecords/Systems/StationRecordsSystem.cs b/Content.Server/StationRecords/Systems/StationRecordsSystem.cs index 6dbc58f4d38..c5310d7d9b4 100644 --- a/Content.Server/StationRecords/Systems/StationRecordsSystem.cs +++ b/Content.Server/StationRecords/Systems/StationRecordsSystem.cs @@ -148,12 +148,18 @@ public void CreateGeneralRecord( return; } + // Before creating the record, we'll get the job information either from the ID card or prototype + var (jobTitle, jobIcon) = idUid is { } uid && _idCard.TryFindIdCard(uid, out var card) + ? (Loc.GetString(card.Comp.JobTitle ?? string.Empty), card.Comp.JobIcon) + : (Loc.GetString(jobPrototype.LocalizedName), jobPrototype.Icon); + + var record = new GeneralStationRecord() { Name = name, Age = age, - JobTitle = jobPrototype.LocalizedName, - JobIcon = jobPrototype.Icon, + JobTitle = jobTitle, // Emberfall + JobIcon = jobIcon, // Emberfall JobPrototype = jobId, Species = species, Gender = gender, diff --git a/Resources/Locale/en-US/_emberfall/atmos/gases.ftl b/Resources/Locale/en-US/_emberfall/atmos/gases.ftl new file mode 100644 index 00000000000..60c25cfcf34 --- /dev/null +++ b/Resources/Locale/en-US/_emberfall/atmos/gases.ftl @@ -0,0 +1 @@ +plasma-smell = Something smells pungent! diff --git a/Resources/Locale/en-US/_emberfall/job/job-names.ftl b/Resources/Locale/en-US/_emberfall/job/job-names.ftl new file mode 100644 index 00000000000..4d18f16bf40 --- /dev/null +++ b/Resources/Locale/en-US/_emberfall/job/job-names.ftl @@ -0,0 +1,4 @@ +job-name-senior-physician = Senior Physician +job-name-senior-researcher = Senior Researcher +job-name-senior-engineer = Senior Engineer +job-name-senior-officer = Senior Officer diff --git a/Resources/Locale/en-US/disease/miasma.ftl b/Resources/Locale/en-US/disease/miasma.ftl index 46e8db33d4c..8be145434c3 100644 --- a/Resources/Locale/en-US/disease/miasma.ftl +++ b/Resources/Locale/en-US/disease/miasma.ftl @@ -1,4 +1,4 @@ -ammonia-smell = Something smells pungent! +ammonia-smell = Something smells foul! ## Perishable diff --git a/Resources/Prototypes/Atmospherics/gases.yml b/Resources/Prototypes/Atmospherics/gases.yml index b6c83091c51..fdb0bd14eaf 100644 --- a/Resources/Prototypes/Atmospherics/gases.yml +++ b/Resources/Prototypes/Atmospherics/gases.yml @@ -34,8 +34,8 @@ specificHeat: 200 heatCapacityRatio: 1.7 molarMass: 120 - gasOverlaySprite: /Textures/Effects/atmospherics.rsi - gasOverlayState: plasma +# gasOverlaySprite: /Textures/Effects/atmospherics.rsi # Emberfall +# gasOverlayState: plasma color: FF3300 reagent: Plasma pricePerMole: 0 @@ -70,8 +70,8 @@ specificHeat: 20 heatCapacityRatio: 1.4 molarMass: 44 - gasOverlaySprite: /Textures/Effects/atmospherics.rsi - gasOverlayState: miasma +# gasOverlaySprite: /Textures/Effects/atmospherics.rsi # Emberfall +# gasOverlayState: miasma gasMolesVisible: 2 gasVisbilityFactor: 3.5 color: 56941E diff --git a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml index 0d224e371f4..a04a20ec9f5 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml @@ -759,6 +759,11 @@ layers: - state: default - state: idseniorengineer + - type: IdCard # Emberfall + jobTitle: job-name-senior-engineer + jobIcon: JobIconSeniorEngineer + - type: PresetIdCard # Emberfall + job: SeniorEngineer - type: entity parent: ResearchIDCard @@ -769,6 +774,9 @@ layers: - state: default - state: idseniorresearcher + - type: IdCard # Emberfall + jobTitle: job-name-senior-researcher + jobIcon: JobIconSeniorResearcher - type: entity parent: MedicalIDCard @@ -779,6 +787,9 @@ layers: - state: default - state: idseniorphysician + - type: IdCard # Emberfall + jobTitle: job-name-senior-physician + jobIcon: JobIconSeniorPhysician - type: entity parent: SecurityIDCard @@ -789,6 +800,9 @@ layers: - state: default - state: idseniorofficer + - type: IdCard # Emberfall + jobTitle: job-name-senior-officer + jobIcon: JobIconSeniorOfficer - type: entity parent: IDCardStandard diff --git a/Resources/Prototypes/Maps/amber.yml b/Resources/Prototypes/Maps/amber.yml index 6d6743123fa..4ab5925c29c 100644 --- a/Resources/Prototypes/Maps/amber.yml +++ b/Resources/Prototypes/Maps/amber.yml @@ -30,7 +30,7 @@ Reporter: [ 1, 1 ] #engineering ChiefEngineer: [ 1, 1 ] - AtmosphericTechnician: [ 2, 2 ] +# AtmosphericTechnician: [ 2, 2 ] StationEngineer: [ 2, 4 ] TechnicalAssistant: [ 1, 1 ] #medical diff --git a/Resources/Prototypes/Maps/bagel.yml b/Resources/Prototypes/Maps/bagel.yml index 793dfc5b21c..91cabbc4bac 100644 --- a/Resources/Prototypes/Maps/bagel.yml +++ b/Resources/Prototypes/Maps/bagel.yml @@ -30,7 +30,7 @@ ServiceWorker: [ 2, 2 ] #engineering ChiefEngineer: [ 1, 1 ] - AtmosphericTechnician: [ 3, 3 ] +# AtmosphericTechnician: [ 3, 3 ] StationEngineer: [ 4, 4 ] TechnicalAssistant: [ 4, 4 ] #medical diff --git a/Resources/Prototypes/Maps/box.yml b/Resources/Prototypes/Maps/box.yml index 9020d71043e..66aaf751b8e 100644 --- a/Resources/Prototypes/Maps/box.yml +++ b/Resources/Prototypes/Maps/box.yml @@ -28,7 +28,7 @@ ServiceWorker: [ 2, 2 ] #engineering ChiefEngineer: [ 1, 1 ] - AtmosphericTechnician: [ 3, 3 ] +# AtmosphericTechnician: [ 3, 3 ] StationEngineer: [ 5, 5 ] TechnicalAssistant: [ 4, 4 ] #medical diff --git a/Resources/Prototypes/Maps/cog.yml b/Resources/Prototypes/Maps/cog.yml index 2f45631bbaf..324572e8a29 100644 --- a/Resources/Prototypes/Maps/cog.yml +++ b/Resources/Prototypes/Maps/cog.yml @@ -28,10 +28,10 @@ Reporter: [ 2, 2 ] Librarian: [ 1, 1 ] ServiceWorker: [ 3, 3 ] - Zookeeper: [ 1, 1 ] + Zookeeper: [ 1, 1 ] #engineering ChiefEngineer: [ 1, 1 ] - AtmosphericTechnician: [ 3, 3 ] +# AtmosphericTechnician: [ 3, 3 ] StationEngineer: [ 4, 4 ] TechnicalAssistant: [ 3, 3 ] #medical diff --git a/Resources/Prototypes/Maps/core.yml b/Resources/Prototypes/Maps/core.yml index e4e280ad667..b823c03a20d 100644 --- a/Resources/Prototypes/Maps/core.yml +++ b/Resources/Prototypes/Maps/core.yml @@ -32,7 +32,7 @@ #engineering ChiefEngineer: [ 1, 1 ] StationEngineer: [ 4, 4 ] - AtmosphericTechnician: [ 2, 2 ] +# AtmosphericTechnician: [ 2, 2 ] TechnicalAssistant: [ 2, 2 ] #medical ChiefMedicalOfficer: [ 1, 1 ] diff --git a/Resources/Prototypes/Maps/elkridge.yml b/Resources/Prototypes/Maps/elkridge.yml index f0b71e99219..7a412342d71 100644 --- a/Resources/Prototypes/Maps/elkridge.yml +++ b/Resources/Prototypes/Maps/elkridge.yml @@ -32,7 +32,7 @@ ServiceWorker: [ 2, 2 ] #engineering ChiefEngineer: [ 1, 1 ] - AtmosphericTechnician: [ 2, 2 ] +# AtmosphericTechnician: [ 2, 2 ] StationEngineer: [ 3, 4 ] TechnicalAssistant: [ 2, 2 ] #medical diff --git a/Resources/Prototypes/Maps/fland.yml b/Resources/Prototypes/Maps/fland.yml index b5c6fe9007d..810bb059821 100644 --- a/Resources/Prototypes/Maps/fland.yml +++ b/Resources/Prototypes/Maps/fland.yml @@ -30,7 +30,7 @@ ServiceWorker: [ 2, 2 ] #engineering ChiefEngineer: [ 1, 1 ] - AtmosphericTechnician: [ 3, 3 ] +# AtmosphericTechnician: [ 3, 3 ] StationEngineer: [ 5, 5 ] TechnicalAssistant: [ 4, 4 ] #medical diff --git a/Resources/Prototypes/Maps/gate.yml b/Resources/Prototypes/Maps/gate.yml index 246baa95510..b0171ff5aa9 100644 --- a/Resources/Prototypes/Maps/gate.yml +++ b/Resources/Prototypes/Maps/gate.yml @@ -30,7 +30,7 @@ Reporter: [ 2, 2 ] #engineering ChiefEngineer: [ 1, 1 ] - AtmosphericTechnician: [ 3, 3 ] +# AtmosphericTechnician: [ 3, 3 ] StationEngineer: [ 4, 4 ] TechnicalAssistant: [ 4, 4 ] #medical diff --git a/Resources/Prototypes/Maps/loop.yml b/Resources/Prototypes/Maps/loop.yml index c8a367d17cd..779f3d0eda0 100644 --- a/Resources/Prototypes/Maps/loop.yml +++ b/Resources/Prototypes/Maps/loop.yml @@ -30,7 +30,7 @@ ServiceWorker: [ 3, 3 ] #engineering ChiefEngineer: [ 1, 1 ] - AtmosphericTechnician: [ 3, 3 ] +# AtmosphericTechnician: [ 3, 3 ] StationEngineer: [ 5, 5 ] TechnicalAssistant: [ 5, 5 ] #medical diff --git a/Resources/Prototypes/Maps/marathon.yml b/Resources/Prototypes/Maps/marathon.yml index 40f6b070021..104472d024a 100644 --- a/Resources/Prototypes/Maps/marathon.yml +++ b/Resources/Prototypes/Maps/marathon.yml @@ -29,7 +29,7 @@ ServiceWorker: [ 2, 2 ] #engineering ChiefEngineer: [ 1, 1 ] - AtmosphericTechnician: [ 3, 3 ] +# AtmosphericTechnician: [ 3, 3 ] StationEngineer: [ 4, 4 ] TechnicalAssistant: [ 3, 3 ] #medical diff --git a/Resources/Prototypes/Maps/meta.yml b/Resources/Prototypes/Maps/meta.yml index c271bf40ce6..1a801c9dd71 100644 --- a/Resources/Prototypes/Maps/meta.yml +++ b/Resources/Prototypes/Maps/meta.yml @@ -29,7 +29,7 @@ Reporter: [ 2, 2 ] #engineering ChiefEngineer: [ 1, 1 ] - AtmosphericTechnician: [ 3, 3 ] +# AtmosphericTechnician: [ 3, 3 ] StationEngineer: [ 6, 8 ] TechnicalAssistant: [ 6, 8 ] #medical diff --git a/Resources/Prototypes/Maps/oasis.yml b/Resources/Prototypes/Maps/oasis.yml index f3953eb8d6c..aa5134c293d 100644 --- a/Resources/Prototypes/Maps/oasis.yml +++ b/Resources/Prototypes/Maps/oasis.yml @@ -30,7 +30,7 @@ Reporter: [ 1, 1 ] #engineering ChiefEngineer: [ 1, 1 ] - AtmosphericTechnician: [ 3, 3 ] +# AtmosphericTechnician: [ 3, 3 ] StationEngineer: [ 5, 5 ] TechnicalAssistant: [ 4, 4 ] #medical diff --git a/Resources/Prototypes/Maps/omega.yml b/Resources/Prototypes/Maps/omega.yml index 031c831f556..1db44c1d194 100644 --- a/Resources/Prototypes/Maps/omega.yml +++ b/Resources/Prototypes/Maps/omega.yml @@ -29,7 +29,7 @@ ServiceWorker: [ 2, 2 ] #engineering ChiefEngineer: [ 1, 1 ] - AtmosphericTechnician: [ 2, 2 ] +# AtmosphericTechnician: [ 2, 2 ] StationEngineer: [ 3, 3 ] TechnicalAssistant: [ 2, 2 ] #medical diff --git a/Resources/Prototypes/Maps/packed.yml b/Resources/Prototypes/Maps/packed.yml index f66207c8834..e66a1f40ca3 100644 --- a/Resources/Prototypes/Maps/packed.yml +++ b/Resources/Prototypes/Maps/packed.yml @@ -29,7 +29,7 @@ ServiceWorker: [ 2, 2 ] #engineering ChiefEngineer: [ 1, 1 ] - AtmosphericTechnician: [ 2, 2 ] +# AtmosphericTechnician: [ 2, 2 ] StationEngineer: [ 4, 4 ] TechnicalAssistant: [ 3, 3 ] #medical diff --git a/Resources/Prototypes/Maps/reach.yml b/Resources/Prototypes/Maps/reach.yml index 376e3366717..ce1c99751e5 100644 --- a/Resources/Prototypes/Maps/reach.yml +++ b/Resources/Prototypes/Maps/reach.yml @@ -29,7 +29,7 @@ Chemist: [ 1, 1 ] Janitor: [ 1, 1 ] Musician: [ 1, 1 ] - AtmosphericTechnician: [ 1, 1 ] +# AtmosphericTechnician: [ 1, 1 ] StationEngineer: [ 1, 2 ] Scientist: [ 1, 1 ] Passenger: [ -1, -1 ] diff --git a/Resources/Prototypes/Maps/saltern.yml b/Resources/Prototypes/Maps/saltern.yml index d0a539d1821..f63a1f56d9a 100644 --- a/Resources/Prototypes/Maps/saltern.yml +++ b/Resources/Prototypes/Maps/saltern.yml @@ -28,7 +28,7 @@ ServiceWorker: [ 2, 2 ] #engineering ChiefEngineer: [ 1, 1 ] - AtmosphericTechnician: [ 2, 2 ] +# AtmosphericTechnician: [ 2, 2 ] StationEngineer: [ 4, 4 ] TechnicalAssistant: [ 4, 4 ] #medical diff --git a/Resources/Prototypes/Maps/train.yml b/Resources/Prototypes/Maps/train.yml index cb37998a8ea..8370d7e800d 100644 --- a/Resources/Prototypes/Maps/train.yml +++ b/Resources/Prototypes/Maps/train.yml @@ -32,7 +32,7 @@ Detective: [ 1, 1 ] #engineering ChiefEngineer: [ 1, 1 ] - AtmosphericTechnician: [ 2, 2 ] +# AtmosphericTechnician: [ 2, 2 ] StationEngineer: [ 4, 4 ] TechnicalAssistant: [ 3, 3 ] #medical diff --git a/Resources/Prototypes/Reagents/gases.yml b/Resources/Prototypes/Reagents/gases.yml index 9ef508feead..cdcc6356a94 100644 --- a/Resources/Prototypes/Reagents/gases.yml +++ b/Resources/Prototypes/Reagents/gases.yml @@ -95,6 +95,15 @@ min: 1.5 clear: True time: 5 + - !type:PopupMessage # Emberfall - colorless, smells pungent + type: Local + visualType: Medium + messages: [ "plasma-smell" ] + probability: 0.8 + conditions: + - !type:ReagentThreshold + reagent: Plasma + min: 0.1 reactiveEffects: Flammable: methods: [ Touch ] diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml index 9810b485713..c9368afd098 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml @@ -3,6 +3,7 @@ name: job-name-atmostech description: job-description-atmostech playTimeTracker: JobAtmosphericTechnician + setPreference: false # Emberfall requirements: - !type:DepartmentTimeRequirement department: Engineering diff --git a/Resources/Prototypes/StatusIcon/job.yml b/Resources/Prototypes/StatusIcon/job.yml index 0abb86aeab8..6aa29e7d89d 100644 --- a/Resources/Prototypes/StatusIcon/job.yml +++ b/Resources/Prototypes/StatusIcon/job.yml @@ -411,7 +411,7 @@ icon: sprite: /Textures/Interface/Misc/job_icons.rsi state: SeniorPhysician - allowSelection: false + allowSelection: true # Emberfall - type: jobIcon parent: JobIcon @@ -419,7 +419,7 @@ icon: sprite: /Textures/Interface/Misc/job_icons.rsi state: SeniorOfficer - allowSelection: false + allowSelection: true # Emberfall - type: jobIcon parent: JobIcon @@ -427,7 +427,7 @@ icon: sprite: /Textures/Interface/Misc/job_icons.rsi state: SeniorEngineer - allowSelection: false + allowSelection: true # Emberfall - type: jobIcon parent: JobIcon @@ -435,7 +435,7 @@ icon: sprite: /Textures/Interface/Misc/job_icons.rsi state: SeniorResearcher - allowSelection: false + allowSelection: true # Emberfall - type: jobIcon parent: JobIcon diff --git a/Resources/Prototypes/_Emberfall/Roles/Jobs/Engineering/senior_engineer.yml b/Resources/Prototypes/_Emberfall/Roles/Jobs/Engineering/senior_engineer.yml new file mode 100644 index 00000000000..458194a931d --- /dev/null +++ b/Resources/Prototypes/_Emberfall/Roles/Jobs/Engineering/senior_engineer.yml @@ -0,0 +1,10 @@ +# yes this needs to exist for the preset even if we're not actually using it as a job, its stupid +- type: job + id: SeniorEngineer + playTimeTracker: JobSeniorEngineer + access: + - Maintenance + - Engineering + - External + - Atmospherics + diff --git a/Resources/Prototypes/_Emberfall/Roles/play_time_trackers.yml b/Resources/Prototypes/_Emberfall/Roles/play_time_trackers.yml new file mode 100644 index 00000000000..614130c4541 --- /dev/null +++ b/Resources/Prototypes/_Emberfall/Roles/play_time_trackers.yml @@ -0,0 +1,2 @@ +- type: playTimeTracker # no its not ever used, but needs to exist + id: JobSeniorEngineer