diff --git a/Content.Client/_Forge/Trade/Controls/NcContractCard.cs b/Content.Client/_Forge/Trade/Controls/NcContractCard.cs index 1011be2a31a..39882c9f433 100644 --- a/Content.Client/_Forge/Trade/Controls/NcContractCard.cs +++ b/Content.Client/_Forge/Trade/Controls/NcContractCard.cs @@ -548,8 +548,32 @@ private void OnPrimaryActionPressed(BaseButton.ButtonEventArgs args) return; } - if (canClaim || canPartialTurnIn) - OnClaim?.Invoke(_data.Id); + if (canClaim) + { + var contractId = _data.Id; + ShowContractConfirmation( + Loc.GetString("nc-store-contract-confirm-claim-title"), + Loc.GetString("nc-store-contract-confirm-claim", ("contract", BuildPrettyTitle(_data))), + Loc.GetString("nc-store-contract-confirm-claim-action"), + Color.FromHex("#243729"), + Color.FromHex("#7DA260"), + PrimaryActionButton, + () => OnClaim?.Invoke(contractId)); + return; + } + + if (canPartialTurnIn) + { + var contractId = _data.Id; + ShowContractConfirmation( + Loc.GetString("nc-store-contract-confirm-partial-title"), + Loc.GetString("nc-store-contract-confirm-partial", ("contract", BuildPrettyTitle(_data))), + Loc.GetString("nc-store-contract-confirm-partial-action"), + Color.FromHex("#243729"), + Color.FromHex("#7DA260"), + PrimaryActionButton, + () => OnClaim?.Invoke(contractId)); + } } private void ShowContractConfirmation( diff --git a/Content.Server/_Forge/AutoSalarySystem/AutoSalaryComponent.cs b/Content.Server/_Forge/AutoSalarySystem/AutoSalaryComponent.cs index 36244cdcb4d..7dc37e32fbb 100644 --- a/Content.Server/_Forge/AutoSalarySystem/AutoSalaryComponent.cs +++ b/Content.Server/_Forge/AutoSalarySystem/AutoSalaryComponent.cs @@ -6,6 +6,9 @@ public sealed partial class AutoSalaryComponent : Component [DataField] public TimeSpan LastSalaryAt = TimeSpan.Zero; + [DataField] + public TimeSpan NextRetryAt = TimeSpan.Zero; + [DataField] public string? JobPrototype; } diff --git a/Content.Server/_Forge/AutoSalarySystem/AutoSalarySystem.cs b/Content.Server/_Forge/AutoSalarySystem/AutoSalarySystem.cs index 3de340faf01..73b49b912ca 100644 --- a/Content.Server/_Forge/AutoSalarySystem/AutoSalarySystem.cs +++ b/Content.Server/_Forge/AutoSalarySystem/AutoSalarySystem.cs @@ -1,11 +1,14 @@ +using Content.Server.Afk; using Content.Server._NF.Bank; using Content.Server._NF.CryoSleep; +using Content.Server.Chat.Managers; using Content.Server.Mind; using Content.Server.Roles.Jobs; using Content.Shared._NF.Bank.Components; using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Systems; -using Content.Server.Popups; +using Content.Shared.SSDIndicator; +using Robust.Shared.Enums; using Robust.Shared.Prototypes; using Robust.Server.Player; using Content.Shared.Roles; @@ -15,19 +18,24 @@ namespace Content.Server._Forge.AutoSalarySystem; public sealed class AutoSalarySystem : EntitySystem { + private static readonly TimeSpan FailedPaymentRetryDelay = TimeSpan.FromMinutes(1); + [Dependency] private readonly IPrototypeManager _proto = default!; [Dependency] private readonly JobSystem _jobs = default!; [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly MobStateSystem _mobState = default!; [Dependency] private readonly MindSystem _mindSystem = default!; - [Dependency] private readonly PopupSystem _popup = default!; [Dependency] private readonly BankSystem _bank = default!; [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly IAfkManager _afkManager = default!; + [Dependency] private readonly IChatManager _chat = default!; public override void Update(float frameTime) { + CleanupSalariesWithoutBankAccounts(); + var query = EntityQueryEnumerator(); - while (query.MoveNext(out var uid, out _)) + while (query.MoveNext(out var uid, out var bank)) { if (!TryGetCurrentJob(uid, out var job) || job.Salary <= 0) @@ -42,6 +50,7 @@ public override void Update(float frameTime) { comp = EnsureComp(uid); comp.LastSalaryAt = _timing.CurTime; + comp.NextRetryAt = TimeSpan.Zero; comp.JobPrototype = job.ID; Dirty(uid, comp); continue; @@ -50,6 +59,7 @@ public override void Update(float frameTime) if (comp.JobPrototype != job.ID) { comp.LastSalaryAt = _timing.CurTime; + comp.NextRetryAt = TimeSpan.Zero; comp.JobPrototype = job.ID; Dirty(uid, comp); continue; @@ -58,11 +68,33 @@ public override void Update(float frameTime) if (comp.LastSalaryAt + job.SalaryInterval > _timing.CurTime) continue; - if (!ShouldSkipEntity(uid)) - TryPaySalary(uid, job.Salary); + if (comp.NextRetryAt > _timing.CurTime) + continue; + + if (ShouldSkipEntity(uid)) + { + MarkSalaryHandled(uid, comp); + continue; + } - comp.LastSalaryAt = _timing.CurTime; - Dirty(uid, comp); + if (!TryPaySalary(uid, bank, job.Salary)) + { + comp.NextRetryAt = _timing.CurTime + FailedPaymentRetryDelay; + Dirty(uid, comp); + continue; + } + + MarkSalaryHandled(uid, comp); + } + } + + private void CleanupSalariesWithoutBankAccounts() + { + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out _)) + { + if (!HasComp(uid)) + RemCompDeferred(uid); } } @@ -70,10 +102,16 @@ private bool HasActivePlayer(EntityUid body) { if (!_mindSystem.TryGetMind(body, out _, out var mind)) return false; - if (!_playerManager.TryGetSessionByEntity(body, out var session) && session == null) + if (!_playerManager.TryGetSessionByEntity(body, out var session)) + return false; + if (session.Status != SessionStatus.InGame) + return false; + if (_afkManager.IsAfk(session)) return false; if (mind.IsVisitingEntity) return false; + if (TryComp(body, out var ssd) && ssd.IsSSD) + return false; return true; } @@ -91,12 +129,26 @@ private bool IsEntityDead(EntityUid body) return !TryComp(body, out var mobState) || _mobState.IsDead(body, mobState); } - private void TryPaySalary(EntityUid body, int salary) + private bool TryPaySalary(EntityUid body, BankAccountComponent bank, int salary) { - if (_bank.TryBankDeposit(body, salary)) - { - _popup.PopupEntity(Loc.GetString("auto-salary-popup", ("salary", salary)), body, body); - } + if (!_bank.TryBankDeposit(body, salary)) + return false; + + var message = Loc.GetString("auto-salary-popup", + ("salary", salary), + ("balance", bank.Balance)); + + if (_playerManager.TryGetSessionByEntity(body, out var session)) + _chat.DispatchServerMessage(session, message, suppressLog: true); + + return true; + } + + private void MarkSalaryHandled(EntityUid body, AutoSalaryComponent comp) + { + comp.LastSalaryAt = _timing.CurTime; + comp.NextRetryAt = TimeSpan.Zero; + Dirty(body, comp); } private bool TryGetCurrentJob(EntityUid body, out JobPrototype job) @@ -104,17 +156,17 @@ private bool TryGetCurrentJob(EntityUid body, out JobPrototype job) job = default!; ProtoId? jobId = null; - if (_mindSystem.TryGetMind(body, out var mindId, out _) + if (TryComp(body, out var playerJob) + && !string.IsNullOrWhiteSpace(playerJob.JobPrototype)) + { + jobId = playerJob.JobPrototype; + } + else if (_mindSystem.TryGetMind(body, out var mindId, out _) && _jobs.MindTryGetJobId(mindId, out var currentMindJobId) && !string.IsNullOrWhiteSpace(currentMindJobId)) { jobId = currentMindJobId; } - else if (TryComp(body, out var playerJob) - && !string.IsNullOrWhiteSpace(playerJob.JobPrototype)) - { - jobId = playerJob.JobPrototype; - } if (jobId is not { } resolvedJobId || !_proto.TryIndex(resolvedJobId, out JobPrototype? resolvedJob)) diff --git a/Content.Server/_Forge/Trade/Contracts/Objectives/DroneHunt/NcContractSystem.Objectives.DroneHunt.cs b/Content.Server/_Forge/Trade/Contracts/Objectives/DroneHunt/NcContractSystem.Objectives.DroneHunt.cs index 9743cdd5060..743ec40f9c4 100644 --- a/Content.Server/_Forge/Trade/Contracts/Objectives/DroneHunt/NcContractSystem.Objectives.DroneHunt.cs +++ b/Content.Server/_Forge/Trade/Contracts/Objectives/DroneHunt/NcContractSystem.Objectives.DroneHunt.cs @@ -66,11 +66,19 @@ ContractServerData contract ) { EnsureObjectiveRuntimeDefaults(contract); - SyncDroneHuntObjectiveProgress(store, contractId, contract); + ScanTrackedDeliveryTransferSources(user, out var userItems, out _, out var crateItems); + RefreshDroneHuntObjectiveProgressFromProofScan(store, contractId, contract, userItems, crateItems); if (contract.Runtime.Failed) return ClaimAttemptResult.Fail(ClaimFailureReason.ObjectiveFailed, contract.Runtime.FailureReason); + if (!contract.Completed) + { + return ClaimAttemptResult.Fail( + ClaimFailureReason.ObjectiveNotCompleted, + $"Drone hunt proof progress {contract.Progress}/{contract.Required} for '{contractId}'."); + } + if (!TryValidateDroneHuntProofClaim(store, user, contractId, contract, out var proofFail)) return proofFail; diff --git a/Resources/Locale/en-US/_Forge/trade/trade.ftl b/Resources/Locale/en-US/_Forge/trade/trade.ftl index b0747bd61b9..8ccd846bf9a 100644 --- a/Resources/Locale/en-US/_Forge/trade/trade.ftl +++ b/Resources/Locale/en-US/_Forge/trade/trade.ftl @@ -78,10 +78,16 @@ nc-store-contract-action-pinpointer-tooltip = Issue a new pinpointer for the cur nc-store-contract-confirm-take-title = Accept Contract nc-store-contract-confirm-skip-title = Skip Contract +nc-store-contract-confirm-claim-title = Complete Contract +nc-store-contract-confirm-partial-title = Turn In Cargo nc-store-contract-confirm-take = Accept contract "{ $contract }"? nc-store-contract-confirm-skip = Skip contract "{ $contract }" and replace it with a new one? +nc-store-contract-confirm-claim = Complete contract "{ $contract }" and receive the reward? +nc-store-contract-confirm-partial = Turn in available cargo for "{ $contract }"? nc-store-contract-confirm-take-action = Accept nc-store-contract-confirm-skip-action = Skip +nc-store-contract-confirm-claim-action = Complete +nc-store-contract-confirm-partial-action = Turn in nc-store-contract-confirm-no = No nc-store-contract-claim-tooltip-single = Complete this one-time contract and receive the full reward. diff --git a/Resources/Locale/ru-RU/_Forge/auto-salary/component.ftl b/Resources/Locale/ru-RU/_Forge/auto-salary/component.ftl index a6047c196bc..3d82f4d1095 100644 --- a/Resources/Locale/ru-RU/_Forge/auto-salary/component.ftl +++ b/Resources/Locale/ru-RU/_Forge/auto-salary/component.ftl @@ -1 +1 @@ -auto-salary-popup = Вам начислена зарплата: { $salary } кредитов +auto-salary-popup = Вам начислена зарплата: { $salary } кредитов. На счете: { $balance } кредитов. diff --git a/Resources/Locale/ru-RU/_Forge/trade/trade.ftl b/Resources/Locale/ru-RU/_Forge/trade/trade.ftl index eee129f60ca..16bbcb3e609 100644 --- a/Resources/Locale/ru-RU/_Forge/trade/trade.ftl +++ b/Resources/Locale/ru-RU/_Forge/trade/trade.ftl @@ -78,10 +78,16 @@ nc-store-contract-action-pinpointer-tooltip = Выдать новый пелен nc-store-contract-confirm-take-title = Взятие контракта nc-store-contract-confirm-skip-title = Пропуск контракта +nc-store-contract-confirm-claim-title = Завершение контракта +nc-store-contract-confirm-partial-title = Сдача груза nc-store-contract-confirm-take = Взять контракт «{ $contract }»? nc-store-contract-confirm-skip = Пропустить контракт «{ $contract }» и заменить его новым? +nc-store-contract-confirm-claim = Завершить контракт «{ $contract }» и получить награду? +nc-store-contract-confirm-partial = Сдать доступный груз для контракта «{ $contract }»? nc-store-contract-confirm-take-action = Взять nc-store-contract-confirm-skip-action = Пропустить +nc-store-contract-confirm-claim-action = Завершить +nc-store-contract-confirm-partial-action = Сдать nc-store-contract-confirm-no = Нет nc-store-contract-claim-tooltip-single = Завершить разовый контракт и получить полную награду. diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Civilian/service_worker.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Civilian/service_worker.yml index 6f72a4f1591..8403d2e08cf 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Civilian/service_worker.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Civilian/service_worker.yml @@ -12,6 +12,7 @@ supervisors: job-supervisors-sr weight: 60 # Frontier displayWeight: 10 # Frontier + salary: 20000 # Frontier assignedCompany: Colonial canBeAntag: false access: diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml index cd6d348eb53..6429f84bc59 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml @@ -13,6 +13,7 @@ startingGear: PrisonGuardGear icon: "JobIconWarden" supervisors: job-supervisors-bailiff # Frontier + salary: 20000 # Frontier canBeAntag: false access: - Security diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Service/mail_carrier.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Service/mail_carrier.yml index f4f896ab76f..37ab0e3d12f 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Service/mail_carrier.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Service/mail_carrier.yml @@ -14,6 +14,7 @@ supervisors: job-supervisors-sr weight: 90 # Frontier displayWeight: 30 # Frontier + salary: 20000 # Frontier assignedCompany: Colonial canBeAntag: false access: diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml index fa6662b621b..6532f3a48e9 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml @@ -17,6 +17,7 @@ icon: "JobIconPrisoner" supervisors: job-supervisors-prisoner displayWeight: 10 # Frontier + salary: 20000 # Frontier special: - !type:AddImplantSpecial implants: [ TrackingImplant ] # Frontier diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml index f10a8b45e77..02b9a93a239 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml @@ -10,6 +10,7 @@ startingGear: CargoTechGear icon: "JobIconCargoTechnician" supervisors: job-supervisors-hire # Frontier + salary: 20000 # Frontier accessGroups: # Frontier - GeneralAccess # Frontier special: diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml index 0f1530596b1..27c7884348f 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml @@ -8,6 +8,7 @@ - !type:OverallPlaytimeRequirement time: 144000 #40 hrs weight: 10 + salary: 20000 # Frontier startingGear: QuartermasterGear icon: "JobIconQuarterMaster" supervisors: job-supervisors-captain diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml b/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml index 77795349417..d7079638196 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml @@ -10,6 +10,7 @@ icon: "JobIconShaftMiner" startingGear: SalvageSpecialistGear supervisors: job-supervisors-hire # Frontier + salary: 20000 # Frontier accessGroups: # Frontier - GeneralAccess # Frontier diff --git a/Resources/Prototypes/Roles/Jobs/CentComm/cburn.yml b/Resources/Prototypes/Roles/Jobs/CentComm/cburn.yml index 51f2dc37e20..6a5cc58f8c0 100644 --- a/Resources/Prototypes/Roles/Jobs/CentComm/cburn.yml +++ b/Resources/Prototypes/Roles/Jobs/CentComm/cburn.yml @@ -7,6 +7,7 @@ startingGear: CBURNGear icon: "JobIconNanotrasen" supervisors: job-supervisors-centcom + salary: 20000 # Frontier canBeAntag: false accessGroups: - AllAccess diff --git a/Resources/Prototypes/Roles/Jobs/CentComm/deathsquad.yml b/Resources/Prototypes/Roles/Jobs/CentComm/deathsquad.yml index 395f5fb0db0..ddc0365c26c 100644 --- a/Resources/Prototypes/Roles/Jobs/CentComm/deathsquad.yml +++ b/Resources/Prototypes/Roles/Jobs/CentComm/deathsquad.yml @@ -7,6 +7,7 @@ startingGear: DeathSquadGear icon: "JobIconNanotrasen" supervisors: job-supervisors-centcom + salary: 20000 # Frontier canBeAntag: false accessGroups: - AllAccess diff --git a/Resources/Prototypes/Roles/Jobs/CentComm/emergencyresponseteam.yml b/Resources/Prototypes/Roles/Jobs/CentComm/emergencyresponseteam.yml index 7edb7b77ae1..ee1cff45cd0 100644 --- a/Resources/Prototypes/Roles/Jobs/CentComm/emergencyresponseteam.yml +++ b/Resources/Prototypes/Roles/Jobs/CentComm/emergencyresponseteam.yml @@ -8,6 +8,7 @@ startingGear: ERTLeaderGearEVA icon: "JobIconNanotrasen" supervisors: job-supervisors-centcom + salary: 20000 # Frontier canBeAntag: false accessGroups: - AllAccess @@ -98,6 +99,7 @@ startingGear: ERTChaplainGear icon: "JobIconNanotrasen" supervisors: job-supervisors-centcom + salary: 20000 # Frontier canBeAntag: false accessGroups: - AllAccess @@ -180,6 +182,7 @@ startingGear: ERTEngineerGearEVA icon: "JobIconNanotrasen" supervisors: job-supervisors-centcom + salary: 20000 # Frontier canBeAntag: false accessGroups: - AllAccess @@ -252,6 +255,7 @@ startingGear: ERTEngineerGearEVA icon: "JobIconNanotrasen" supervisors: job-supervisors-centcom + salary: 20000 # Frontier canBeAntag: false accessGroups: - AllAccess @@ -341,6 +345,7 @@ startingGear: ERTMedicalGearEVA icon: "JobIconNanotrasen" supervisors: job-supervisors-centcom + salary: 20000 # Frontier canBeAntag: false accessGroups: - AllAccess @@ -405,6 +410,7 @@ startingGear: ERTJanitorGearEVA icon: "JobIconNanotrasen" supervisors: job-supervisors-centcom + salary: 20000 # Frontier canBeAntag: false accessGroups: - AllAccess diff --git a/Resources/Prototypes/Roles/Jobs/CentComm/official.yml b/Resources/Prototypes/Roles/Jobs/CentComm/official.yml index 37c73f38e02..2b73a74e24b 100644 --- a/Resources/Prototypes/Roles/Jobs/CentComm/official.yml +++ b/Resources/Prototypes/Roles/Jobs/CentComm/official.yml @@ -7,6 +7,7 @@ startingGear: CentcomGear icon: "JobIconNanotrasen" supervisors: job-supervisors-hos + salary: 20000 # Frontier canBeAntag: false accessGroups: - AllAccess diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml b/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml index 3377d1102cc..4bf8c113832 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml @@ -6,6 +6,7 @@ setPreference: false # Frontier startingGear: PassengerGear icon: "JobIconPassenger" + salary: 20000 # Frontier # supervisors: job-supervisors-everyone accessGroups: # Frontier - GeneralAccess # Frontier diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml b/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml index a7638d4c648..0453801e19b 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml @@ -10,6 +10,7 @@ startingGear: BartenderGear icon: "JobIconBartender" supervisors: job-supervisors-hire # Frontier + salary: 20000 # Frontier accessGroups: # Frontier - GeneralAccess # Frontier diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml b/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml index 642212ae8db..93126114bfa 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml @@ -10,6 +10,7 @@ startingGear: BotanistGear icon: "JobIconBotanist" supervisors: job-supervisors-hire # Frontier + salary: 20000 # Frontier accessGroups: # Frontier - GeneralAccess # Frontier special: diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml b/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml index 724a463d85e..5c3d852d99a 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml @@ -10,6 +10,7 @@ startingGear: ChaplainGear icon: "JobIconChaplain" supervisors: job-supervisors-hire # Frontier + salary: 20000 # Frontier accessGroups: # Frontier - GeneralAccess # Frontier special: diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml b/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml index 3c241182dca..9948f93c0d3 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml @@ -10,6 +10,7 @@ startingGear: ChefGear icon: "JobIconChef" supervisors: job-supervisors-hire # Frontier + salary: 20000 # Frontier accessGroups: # Frontier - GeneralAccess # Frontier special: diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml index 4f8902cf3b5..8e730a72a6f 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml @@ -10,6 +10,7 @@ startingGear: ClownGear icon: "JobIconClown" supervisors: job-supervisors-hire # Frontier + salary: 20000 # Frontier accessGroups: # Frontier - GeneralAccess # Frontier special: diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml b/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml index e663a663b09..778f2f70aa4 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml @@ -7,6 +7,7 @@ startingGear: JanitorGear icon: "JobIconJanitor" supervisors: job-supervisors-hop + salary: 20000 # Frontier # access: # Frontier # - Service # Frontier # - Janitor # Frontier diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml b/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml index 2fa72f14a45..768019db456 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml @@ -10,6 +10,7 @@ startingGear: LawyerGear icon: "JobIconLawyer" supervisors: job-supervisors-hire + salary: 20000 # Frontier canBeAntag: false accessGroups: # Frontier - GeneralAccess # Frontier diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml b/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml index a8653b897e5..54ef17b4a06 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml @@ -10,6 +10,7 @@ startingGear: LibrarianGear icon: "JobIconLibrarian" supervisors: job-supervisors-hire # Frontier + salary: 20000 # Frontier accessGroups: # Frontier - GeneralAccess # Frontier diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml index 825074d0ecd..ff7e824a057 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml @@ -10,6 +10,7 @@ startingGear: MimeGear icon: "JobIconMime" supervisors: job-supervisors-hire # Frontier + salary: 20000 # Frontier accessGroups: # Frontier - GeneralAccess # Frontier special: diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml b/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml index 23a6c59929d..09a44ce2fe6 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml @@ -10,6 +10,7 @@ startingGear: MusicianGear icon: "JobIconMusician" supervisors: job-supervisors-hire # Frontier + salary: 20000 # Frontier accessGroups: # Frontier - GeneralAccess # Frontier special: diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml b/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml index b76afeeac42..548ce054c62 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml @@ -10,6 +10,7 @@ startingGear: ServiceWorkerGear icon: "JobIconServiceWorker" supervisors: job-supervisors-service + salary: 20000 # Frontier accessGroups: # Frontier - GeneralAccess # Frontier # access: # Frontier diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/visitor.yml b/Resources/Prototypes/Roles/Jobs/Civilian/visitor.yml index 8466fd40dfe..7ddddfe713a 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/visitor.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/visitor.yml @@ -5,6 +5,7 @@ playTimeTracker: JobVisitor canBeAntag: false icon: JobIconVisitor + salary: 20000 # Frontier setPreference: false # overrideConsoleVisibility: true # Frontier accessGroups: # Frontier diff --git a/Resources/Prototypes/Roles/Jobs/Command/captain.yml b/Resources/Prototypes/Roles/Jobs/Command/captain.yml index df8c6ebf7dd..e8e8bd9e667 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/captain.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/captain.yml @@ -18,6 +18,7 @@ department: Command time: 54000 # 15 hours weight: 20 + salary: 20000 # Frontier startingGear: CaptainGear icon: "JobIconCaptain" # Frontier: commented out below, separate access diff --git a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml index 74b3575b7b4..bad6329178a 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml @@ -17,6 +17,7 @@ department: Command time: 36000 # 10 hours weight: 20 + salary: 20000 # Frontier startingGear: HoPGear icon: "JobIconHeadOfPersonnel" supervisors: job-supervisors-captain diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml index 4c99555bf6e..320a44a5382 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml @@ -10,6 +10,7 @@ startingGear: AtmosphericTechnicianGear icon: "JobIconAtmosphericTechnician" supervisors: job-supervisors-hire # Frontier + salary: 20000 # Frontier accessGroups: # Frontier - GeneralAccess # Frontier special: diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml index ef9d40a6406..c1f3978e4d1 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml @@ -8,6 +8,7 @@ - !type:OverallPlaytimeRequirement time: 144000 #40 hrs weight: 10 + salary: 20000 # Frontier startingGear: ChiefEngineerGear icon: "JobIconChiefEngineer" supervisors: job-supervisors-captain diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml index def70d63120..d6f4e31bc64 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml @@ -10,6 +10,7 @@ startingGear: StationEngineerGear icon: "JobIconStationEngineer" supervisors: job-supervisors-hire # Frontier + salary: 20000 # Frontier accessGroups: # Frontier - GeneralAccess # Frontier diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml b/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml index 47266984eb1..10c798d0e2f 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml @@ -1,4 +1,4 @@ -- type: job +- type: job id: TechnicalAssistant name: job-name-technical-assistant description: job-description-technical-assistant @@ -13,6 +13,7 @@ startingGear: TechnicalAssistantGear icon: "JobIconTechnicalAssistant" supervisors: job-supervisors-hire # Frontier + salary: 20000 # Frontier canBeAntag: false accessGroups: # Frontier - GeneralAccess # Frontier diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml b/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml index aa85926dd85..096a57e3d7d 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml @@ -10,6 +10,7 @@ startingGear: ChemistGear icon: "JobIconChemist" supervisors: job-supervisors-hire # Frontier + salary: 20000 # Frontier accessGroups: # Frontier - GeneralAccess # Frontier special: diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml index a53935f168d..b70716dd208 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml @@ -10,6 +10,7 @@ - !type:OverallPlaytimeRequirement time: 144000 #40 hrs weight: 10 + salary: 20000 # Frontier startingGear: CMOGear icon: "JobIconChiefMedicalOfficer" supervisors: job-supervisors-captain diff --git a/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml b/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml index cc18b865f16..c9ef2ccc715 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml @@ -10,6 +10,7 @@ startingGear: DoctorGear icon: "JobIconMedicalDoctor" supervisors: job-supervisors-hire # Frontier + salary: 20000 # Frontier accessGroups: # Frontier - GeneralAccess # Frontier # special: # Frontier diff --git a/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml b/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml index 42142a50807..d6233de0ba3 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml @@ -1,4 +1,4 @@ -- type: job +- type: job id: MedicalIntern name: job-name-intern description: job-description-intern @@ -13,6 +13,7 @@ startingGear: MedicalInternGear icon: "JobIconMedicalIntern" supervisors: job-supervisors-medicine + salary: 20000 # Frontier canBeAntag: false # access: # Frontier # - Medical # Frontier diff --git a/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml b/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml index 6d0bfb6ea6f..29a36f6480b 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml @@ -10,6 +10,7 @@ startingGear: ParamedicGear icon: "JobIconParamedic" supervisors: job-supervisors-hire # Frontier + salary: 20000 # Frontier accessGroups: # Frontier - GeneralAccess # Frontier special: diff --git a/Resources/Prototypes/Roles/Jobs/Science/borg.yml b/Resources/Prototypes/Roles/Jobs/Science/borg.yml index 8abdc885b2a..9965d726f17 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/borg.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/borg.yml @@ -13,6 +13,7 @@ canBeAntag: false icon: JobIconStationAi supervisors: job-supervisors-hire # Frontier: rd