diff --git a/Content.Server/_CP14/GameTicking/Rules/CP14CommonObjectivesRule.cs b/Content.Server/_CP14/GameTicking/Rules/CP14CommonObjectivesRule.cs index 8165eae20a..5ec5f61745 100644 --- a/Content.Server/_CP14/GameTicking/Rules/CP14CommonObjectivesRule.cs +++ b/Content.Server/_CP14/GameTicking/Rules/CP14CommonObjectivesRule.cs @@ -1,11 +1,15 @@ +using System.Text; using Content.Server._CP14.GameTicking.Rules.Components; using Content.Server._CP14.StationCommonObjectives; using Content.Server.GameTicking; using Content.Server.GameTicking.Rules; using Content.Server.Mind; using Content.Shared.GameTicking.Components; +using Content.Shared.Mind; using Content.Shared.Objectives.Components; +using Content.Shared.Objectives.Systems; using Content.Shared.Random.Helpers; +using Content.Shared.Roles; using Robust.Shared.Prototypes; using Robust.Shared.Random; @@ -16,6 +20,7 @@ public sealed class CP14CommonObjectivesRule : GameRuleSystem(); while (query.MoveNext(out var stationUid, out var stationObj)) { + var mindComp = EnsureComp(stationUid); + component.StationMind = (stationUid, mindComp); + foreach (var jobObj in component.JobObjectives) { foreach (var weightGroupProto in jobObj.Value) @@ -43,7 +51,7 @@ public sealed class CP14CommonObjectivesRule : GameRuleSystem(objectiveProto)) - { - Log.Error($"Invalid objective prototype {objectiveProto}, don't found entity prototype"); - return false; - } - - objective = Spawn(objectiveProto); - - if (!TryComp(objective, out var comp)) //TODO: мы не можем в ObjectiveSystem делать цели без привязки к разуму. Поэтому щиткодим создания тут. - { - Del(objective); - Log.Error($"Invalid objective prototype {objectiveProto}, missing ObjectiveComponent"); - return false; - } - - var afterEv = new ObjectiveAfterAssignEvent(null, null, comp, MetaData(objective.Value)); - RaiseLocalEvent(objective.Value, ref afterEv); - - return true; - } - private void OnPlayerSpawning(PlayerSpawnCompleteEvent args) { //TODO: Multiply station support required @@ -125,4 +108,55 @@ public sealed class CP14CommonObjectivesRule : GameRuleSystem(); + while (query.MoveNext(out var objectives)) + { + var grouped = new Dictionary>(); + foreach (var department in objectives.DepartmentObjectives) + { + var indexedDepartment = _proto.Index(department.Value); + + if (!grouped.ContainsKey(indexedDepartment)) + grouped.Add(indexedDepartment, new List()); + + grouped[indexedDepartment].Add(department.Key); + } + + foreach (var group in grouped) + { + var sb = new StringBuilder(); + sb.Append($"[head=3][color={group.Key.Color.ToHex()}][bold]{Loc.GetString(group.Key.Name)}[/bold][/color][/head]\n"); + + foreach (var objEnt in group.Value) + { + if (!TryComp(objEnt, out var objComp)) + continue; + + if (component.StationMind is null) + continue; + + var progress = _objectives.GetProgress(objEnt, component.StationMind.Value) ?? 0; + var status = "cp14-objective-endtext-status-failure"; + if (progress > 0.75f) + status = "cp14-objective-endtext-status-success-a"; + if (progress > 0.99f) + status = "cp14-objective-endtext-status-success"; + + var meta = MetaData(objEnt); + sb.Append($"{Loc.GetString(objComp.LocIssuer)}: {meta.EntityName}\n"); + sb.Append($"{Loc.GetString("cp14-objective-endtext-progress", ("value", (int)(progress * 100)))} - {Loc.GetString(status)}\n"); + } + + args.AddLine(sb.ToString()); + } + } + } } diff --git a/Content.Server/_CP14/GameTicking/Rules/CP14PersonalObjectivesRule.cs b/Content.Server/_CP14/GameTicking/Rules/CP14PersonalObjectivesRule.cs index e835fb3cd6..6c2f9aeffc 100644 --- a/Content.Server/_CP14/GameTicking/Rules/CP14PersonalObjectivesRule.cs +++ b/Content.Server/_CP14/GameTicking/Rules/CP14PersonalObjectivesRule.cs @@ -1,8 +1,14 @@ +using System.Text; using Content.Server._CP14.GameTicking.Rules.Components; using Content.Server.GameTicking; using Content.Server.GameTicking.Rules; using Content.Server.Mind; +using Content.Shared.GameTicking.Components; +using Content.Shared.Objectives.Components; +using Content.Shared.Objectives.Systems; using Content.Shared.Random.Helpers; +using Content.Shared.Roles.Jobs; +using Robust.Server.Player; using Robust.Shared.Prototypes; using Robust.Shared.Random; @@ -13,6 +19,9 @@ public sealed class CP14PersonalObjectivesRule : GameRuleSystem(objEnt, out var objComp)) + continue; + + var progress = _objectives.GetProgress(objEnt, mind) ?? 0; + var status = "cp14-objective-endtext-status-failure"; + if (progress > 0.75f) + status = "cp14-objective-endtext-status-success-a"; + if (progress > 0.99f) + status = "cp14-objective-endtext-status-success"; + + var meta = MetaData(objEnt); + sb.Append($"{meta.EntityName} - {Loc.GetString(status)} ({(int)(progress * 100)}%)\n"); + } + } + args.AddLine(sb.ToString()); + } } diff --git a/Content.Server/_CP14/GameTicking/Rules/Components/CP14CommonObjectivesRuleComponent.cs b/Content.Server/_CP14/GameTicking/Rules/Components/CP14CommonObjectivesRuleComponent.cs index 851c61742c..0ba1bd036c 100644 --- a/Content.Server/_CP14/GameTicking/Rules/Components/CP14CommonObjectivesRuleComponent.cs +++ b/Content.Server/_CP14/GameTicking/Rules/Components/CP14CommonObjectivesRuleComponent.cs @@ -1,3 +1,4 @@ +using Content.Shared.Mind; using Content.Shared.Random; using Content.Shared.Roles; using Robust.Shared.Prototypes; @@ -7,7 +8,7 @@ namespace Content.Server._CP14.GameTicking.Rules.Components; /// /// A rule that assigns common goals to different roles. Common objectives are generated once at the beginning of a round and are shared between players. /// -[RegisterComponent, Access(typeof(CP14PersonalObjectivesRule))] +[RegisterComponent, Access(typeof(CP14CommonObjectivesRule))] public sealed partial class CP14CommonObjectivesRuleComponent : Component { [DataField] @@ -15,4 +16,10 @@ public sealed partial class CP14CommonObjectivesRuleComponent : Component [DataField] public Dictionary, List>> DepartmentObjectives = new(); + + /// + /// all tasks must have a “mind”. This mind has all the common tasks for compatibility + /// + [DataField] + public Entity? StationMind; } diff --git a/Content.Server/_CP14/GameTicking/Rules/Components/CP14PersonalObjectivesRuleComponent.cs b/Content.Server/_CP14/GameTicking/Rules/Components/CP14PersonalObjectivesRuleComponent.cs index 6db48939b3..c5b4076e54 100644 --- a/Content.Server/_CP14/GameTicking/Rules/Components/CP14PersonalObjectivesRuleComponent.cs +++ b/Content.Server/_CP14/GameTicking/Rules/Components/CP14PersonalObjectivesRuleComponent.cs @@ -1,3 +1,4 @@ +using Content.Shared.Mind; using Content.Shared.Random; using Content.Shared.Roles; using Robust.Shared.Prototypes; @@ -15,4 +16,10 @@ public sealed partial class CP14PersonalObjectivesRuleComponent : Component [DataField] public Dictionary, List>> DepartmentObjectives = new(); + + /// + /// All of the objectives added by this rule. 1 mind -> many objectives + /// + [DataField] + public Dictionary, List> PersonalObjectives = new(); } diff --git a/Content.Server/_CP14/Objectives/Components/CP14TownSendConditionComponent.cs b/Content.Server/_CP14/Objectives/Components/CP14TownSendConditionComponent.cs index 78696f0fce..42eaba434b 100644 --- a/Content.Server/_CP14/Objectives/Components/CP14TownSendConditionComponent.cs +++ b/Content.Server/_CP14/Objectives/Components/CP14TownSendConditionComponent.cs @@ -39,7 +39,4 @@ public sealed partial class CP14TownSendConditionComponent : Component [DataField(required: true)] public LocId DescriptionText; - - [DataField(required: true)] - public LocId DescriptionMultiplyText; } diff --git a/Content.Server/_CP14/Objectives/Systems/CP14CurrencyCollectConditionSystem.cs b/Content.Server/_CP14/Objectives/Systems/CP14CurrencyCollectConditionSystem.cs index 4e34d36857..57b1a3db54 100644 --- a/Content.Server/_CP14/Objectives/Systems/CP14CurrencyCollectConditionSystem.cs +++ b/Content.Server/_CP14/Objectives/Systems/CP14CurrencyCollectConditionSystem.cs @@ -38,14 +38,14 @@ public sealed class CP14CurrencyCollectConditionSystem : EntitySystem private void OnCollectAfterAssign(Entity condition, ref ObjectiveAfterAssignEvent args) { - _metaData.SetEntityName(condition.Owner, Loc.GetString(condition.Comp.ObjectiveText), args.Meta); + _metaData.SetEntityName(condition.Owner, Loc.GetString(condition.Comp.ObjectiveText, ("coins", _currency.GetCurrencyPrettyString(condition.Comp.Currency))), args.Meta); _metaData.SetEntityDescription(condition.Owner, Loc.GetString(condition.Comp.ObjectiveDescription, ("coins", _currency.GetCurrencyPrettyString(condition.Comp.Currency))), args.Meta); _objectives.SetIcon(condition.Owner, condition.Comp.ObjectiveSprite); } private void OnStoredAfterAssign(Entity condition, ref ObjectiveAfterAssignEvent args) { - _metaData.SetEntityName(condition.Owner, Loc.GetString(condition.Comp.ObjectiveText), args.Meta); + _metaData.SetEntityName(condition.Owner, Loc.GetString(condition.Comp.ObjectiveText, ("coins", _currency.GetCurrencyPrettyString(condition.Comp.Currency))), args.Meta); _metaData.SetEntityDescription(condition.Owner, Loc.GetString(condition.Comp.ObjectiveDescription, ("coins", _currency.GetCurrencyPrettyString(condition.Comp.Currency))), args.Meta); _objectives.SetIcon(condition.Owner, condition.Comp.ObjectiveSprite); } diff --git a/Content.Server/_CP14/Objectives/Systems/CP14TownSendConditionSystem.cs b/Content.Server/_CP14/Objectives/Systems/CP14TownSendConditionSystem.cs index e4ed6abfa3..b1f39de9fc 100644 --- a/Content.Server/_CP14/Objectives/Systems/CP14TownSendConditionSystem.cs +++ b/Content.Server/_CP14/Objectives/Systems/CP14TownSendConditionSystem.cs @@ -85,11 +85,8 @@ public sealed class CP14TownSendConditionSystem : EntitySystem var group = _proto.Index(condition.Comp.CollectGroup); - var title = Loc.GetString(condition.Comp.ObjectiveText, ("itemName", Loc.GetString(group.Name))); - - var description = condition.Comp.CollectionSize > 1 - ? Loc.GetString(condition.Comp.DescriptionMultiplyText, ("itemName", Loc.GetString(group.Name)), ("count", condition.Comp.CollectionSize)) - : Loc.GetString(condition.Comp.DescriptionText, ("itemName", Loc.GetString(group.Name))); + var title = Loc.GetString(condition.Comp.ObjectiveText, ("itemName", Loc.GetString(group.Name)), ("count", condition.Comp.CollectionSize)); + var description = Loc.GetString(condition.Comp.DescriptionText, ("itemName", Loc.GetString(group.Name)), ("count", condition.Comp.CollectionSize)); _metaData.SetEntityName(condition.Owner, title, args.Meta); _metaData.SetEntityDescription(condition.Owner, description, args.Meta); diff --git a/Content.Server/_CP14/StealArea/CP14StealAreaAutoJobConnectComponent.cs b/Content.Server/_CP14/StealArea/CP14StealAreaAutoJobConnectComponent.cs index 4b044dae57..b79e7f97b0 100644 --- a/Content.Server/_CP14/StealArea/CP14StealAreaAutoJobConnectComponent.cs +++ b/Content.Server/_CP14/StealArea/CP14StealAreaAutoJobConnectComponent.cs @@ -14,4 +14,7 @@ public sealed partial class CP14StealAreaAutoJobConnectComponent : Component [DataField] public HashSet> Departments = new(); + + [DataField] + public bool Stations = true; } diff --git a/Content.Server/_CP14/StealArea/CP14StealAreaAutoJobConnectSystem.cs b/Content.Server/_CP14/StealArea/CP14StealAreaAutoJobConnectSystem.cs index cb7dac0210..5458d7e760 100644 --- a/Content.Server/_CP14/StealArea/CP14StealAreaAutoJobConnectSystem.cs +++ b/Content.Server/_CP14/StealArea/CP14StealAreaAutoJobConnectSystem.cs @@ -1,3 +1,4 @@ +using Content.Server._CP14.StationCommonObjectives; using Content.Server.GameTicking; using Content.Server.Mind; using Content.Server.Objectives.Components; @@ -27,6 +28,15 @@ public sealed class CP14StealAreaAutoJobConnectSystem : EntitySystem if (!TryComp(autoConnect, out var stealArea)) return; + if (autoConnect.Comp.Stations) + { + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out _)) + { + stealArea.Owners.Add(uid); + } + } + foreach (var player in _playerManager.Sessions) { if (!_mind.TryGetMind(player.UserId, out var playerMind)) diff --git a/Content.Shared/Mind/SharedMindSystem.cs b/Content.Shared/Mind/SharedMindSystem.cs index bf0b5f650a..9275cbac17 100644 --- a/Content.Shared/Mind/SharedMindSystem.cs +++ b/Content.Shared/Mind/SharedMindSystem.cs @@ -340,6 +340,20 @@ public abstract class SharedMindSystem : EntitySystem return true; } + /// + /// CP14 Extension - Tries to create and add an objective from its prototype id, and return objective uid. + /// + /// Returns true if adding the objective succeeded. + public bool TryAddObjective(EntityUid mindId, MindComponent mind, string proto, out EntityUid? objective) + { + objective = _objectives.TryCreateObjective(mindId, mind, proto); + if (objective == null) + return false; + + AddObjective(mindId, mind, objective.Value); + return true; + } + /// /// Adds an objective that already exists, and is assumed to have had its requirements checked. /// diff --git a/Resources/Locale/en-US/_CP14/currency/currency_comp.ftl b/Resources/Locale/en-US/_CP14/currency/currency_comp.ftl index aea1c972b3..b8976db6ad 100644 --- a/Resources/Locale/en-US/_CP14/currency/currency_comp.ftl +++ b/Resources/Locale/en-US/_CP14/currency/currency_comp.ftl @@ -1,4 +1,12 @@ cp14-currency-examine-title = Market price: +cp14-currency-converter-examine-title = Cash: cp14-currency-examine-gp = [color=#ebad3b]{$coin}gp[/color] cp14-currency-examine-sp = [color=#bad1d6]{$coin}sp[/color] -cp14-currency-examine-cp = [color=#824e27]{$coin}cp[/color] \ No newline at end of file +cp14-currency-examine-cp = [color=#824e27]{$coin}cp[/color] + +cp14-currency-converter-insert = {$cash}cp ddeposited! +cp14-verb-categories-currency-converter = Withdraw currency: +cp14-currency-converter-get-cp = As cp (1cp) +cp14-currency-converter-get-sp = As sp (10cp) +cp14-currency-converter-get-gp = As gp (100cp) +cp14-currency-converter-get-pp = As pp (1000cp) \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/objectives/condition/empire-order.ftl b/Resources/Locale/en-US/_CP14/objectives/condition/empire-order.ftl index 1301320896..3c34fbddf8 100644 --- a/Resources/Locale/en-US/_CP14/objectives/condition/empire-order.ftl +++ b/Resources/Locale/en-US/_CP14/objectives/condition/empire-order.ftl @@ -1,8 +1,7 @@ cp14-objective-issuer-town = [color=#fcae38]Orders of the Empire[/color] -cp14-objective-town-send-title = Extract { $itemName } -cp14-objective-town-send-desc = Your task is to mine and ship { $itemName } to the city on a merchant ship. -cp14-objective-town-send-multiply-desc = Your task is to mine and ship { $count } { $itemName } to the city on a merchant ship. +cp14-objective-town-send-title = Extract { $count } { $itemName } +cp14-objective-town-send-desc = Your task is to mine and ship { $count } { $itemName } to the city on a merchant ship. -cp14-objective-bank-earning-title = Increase the bank's wealth -cp14-objective-bank-earning-desc = There must be at least { $coins } in the bank vault. You can use any methods of earning money that do not violate the law. \ No newline at end of file +cp14-objective-bank-earning-title = Accumulate in the vault{ $coins } +cp14-objective-bank-earning-desc = There must be at least{ $coins } in the bank vault. You can use any methods of earning money that do not violate the law. \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/objectives/condition/personal.ftl b/Resources/Locale/en-US/_CP14/objectives/condition/personal.ftl index 333eeb4ecc..8f2023de8b 100644 --- a/Resources/Locale/en-US/_CP14/objectives/condition/personal.ftl +++ b/Resources/Locale/en-US/_CP14/objectives/condition/personal.ftl @@ -1,4 +1,4 @@ cp14-objective-issuer-personal = [color="#95a6c2"]Personal objectives[/color] -cp14-objective-personal-currency-collect-title = Make money -cp14-objective-personal-currency-collect-desc = I plan to earn at least {$coins} by working here. \ No newline at end of file +cp14-objective-personal-currency-collect-title = Earn{$coins} +cp14-objective-personal-currency-collect-desc = I plan to earn at least{$coins} by working here. \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/objectives/end-text.ftl b/Resources/Locale/en-US/_CP14/objectives/end-text.ftl new file mode 100644 index 0000000000..1b6d22133d --- /dev/null +++ b/Resources/Locale/en-US/_CP14/objectives/end-text.ftl @@ -0,0 +1,7 @@ +cp14-objective-endtext-progress = Task completed by [bold]{$value}%[/bold] + +cp14-objective-endtext-status-success = [color=#26f09c]DONe[/color] +cp14-objective-endtext-status-success-a = [color=#f0a926]ALMOST DONE[/color] +cp14-objective-endtext-status-failure = [color=#cc2727]FAILED[/color] + +cp14-objective-unknown = Unknown \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/objectives/steal-targets.ftl b/Resources/Locale/en-US/_CP14/objectives/steal-targets.ftl index 7033b03cb2..7f0acee835 100644 --- a/Resources/Locale/en-US/_CP14/objectives/steal-targets.ftl +++ b/Resources/Locale/en-US/_CP14/objectives/steal-targets.ftl @@ -1 +1,3 @@ -cp14-steal-target-gold-ore = gold ore \ No newline at end of file +cp14-steal-target-dino = yumkaraptors +cp14-steal-target-mole = predatory moles +cp14-steal-target-boar = boars or pigs diff --git a/Resources/Locale/ru-RU/_CP14/objectives/condition/empire-order.ftl b/Resources/Locale/ru-RU/_CP14/objectives/condition/empire-order.ftl index d0fec096d1..a94ad1a577 100644 --- a/Resources/Locale/ru-RU/_CP14/objectives/condition/empire-order.ftl +++ b/Resources/Locale/ru-RU/_CP14/objectives/condition/empire-order.ftl @@ -1,8 +1,7 @@ cp14-objective-issuer-town = [color=#fcae38]Приказ империи[/color] -cp14-objective-town-send-title = Добыть { $itemName } -cp14-objective-town-send-desc = Ваша задача - добыть и отправить { $itemName } в город на торговом корабле. -cp14-objective-town-send-multiply-desc = Ваша задача - добыть и отправить { $count } { $itemName } в город на торговом корабле. +cp14-objective-town-send-title = Добыть { $count } { $itemName } +cp14-objective-town-send-desc = Ваша задача - добыть и отправить { $count } { $itemName } в город на торговом корабле. -cp14-objective-bank-earning-title = Преумножить состояние -cp14-objective-bank-earning-desc = В банковском хранилище должно находиться не меньше { $coins }. Вы можете использовать любые методы заработка, не нарушающие закон. \ No newline at end of file +cp14-objective-bank-earning-title = Накопить в хранилище{ $coins } +cp14-objective-bank-earning-desc = В банковском хранилище должно находиться не меньше{ $coins }. Вы можете использовать любые методы заработка, не нарушающие закон. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/objectives/condition/personal.ftl b/Resources/Locale/ru-RU/_CP14/objectives/condition/personal.ftl index 8f532ebbe6..68430b37fd 100644 --- a/Resources/Locale/ru-RU/_CP14/objectives/condition/personal.ftl +++ b/Resources/Locale/ru-RU/_CP14/objectives/condition/personal.ftl @@ -1,4 +1,4 @@ cp14-objective-issuer-personal = [color="#95a6c2"]Личные цели[/color] -cp14-objective-personal-currency-collect-title = Заработать денег -cp14-objective-personal-currency-collect-desc = Я планирую заработать как минимум {$coins}, работая здесь. \ No newline at end of file +cp14-objective-personal-currency-collect-title = Заработать{$coins} +cp14-objective-personal-currency-collect-desc = Я планирую заработать как минимум{$coins}, работая здесь. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/objectives/end-text.ftl b/Resources/Locale/ru-RU/_CP14/objectives/end-text.ftl new file mode 100644 index 0000000000..f2838f9771 --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/objectives/end-text.ftl @@ -0,0 +1,7 @@ +cp14-objective-endtext-progress = Задача выполнена на [bold]{$value}%[/bold] + +cp14-objective-endtext-status-success = [color=#26f09c]ВЫПОЛНЕНО[/color] +cp14-objective-endtext-status-success-a = [color=#f0a926]ПОЧТИ ВЫПОЛНЕНО[/color] +cp14-objective-endtext-status-failure = [color=#cc2727]ПРОВАЛЕНО[/color] + +cp14-objective-unknown = Неизвестный \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/objectives/steal-targets.ftl b/Resources/Locale/ru-RU/_CP14/objectives/steal-targets.ftl index 2d91970318..e62ee56bf6 100644 --- a/Resources/Locale/ru-RU/_CP14/objectives/steal-targets.ftl +++ b/Resources/Locale/ru-RU/_CP14/objectives/steal-targets.ftl @@ -1 +1,3 @@ -cp14-steal-target-gold-ore = золотой руды \ No newline at end of file +cp14-steal-target-dino = юмкарапторов +cp14-steal-target-mole = хищных кротов +cp14-steal-target-boar = кабанов или свиней diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/animals.yml b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/animals.yml index 32a6ba088a..48ae346b19 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/animals.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/animals.yml @@ -152,6 +152,8 @@ gender: epicene - type: ReplacementAccent accent: pig + - type: StealTarget + stealGroup: CP14Boar - type: entity id: CP14MobBoar @@ -191,3 +193,5 @@ - type: NPCRetaliation attackMemoryLength: 10 - type: FactionException + - type: StealTarget + stealGroup: CP14Boar diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/dinosaurs.yml b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/dinosaurs.yml index 6a41014912..9cb2ee1413 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/dinosaurs.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/dinosaurs.yml @@ -106,6 +106,8 @@ variation: 0.125 - type: SoundWhileAlive - type: FloorOcclusion + - type: StealTarget + stealGroup: CP14Dino - type: entity id: CP14MobDinoSmallHydra diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/monster.yml b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/monster.yml index 39a0beca93..7221fcfea6 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/monster.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/monster.yml @@ -92,6 +92,8 @@ - type: Tag tags: - FootstepSound + - type: StealTarget + stealGroup: CP14Mole - type: entity id: CP14ActionMoleSpellSubterraneanLeap diff --git a/Resources/Prototypes/_CP14/Entities/Objects/ores.yml b/Resources/Prototypes/_CP14/Entities/Objects/ores.yml index c6051057df..4525f28500 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/ores.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/ores.yml @@ -47,6 +47,4 @@ sprite: _CP14/Objects/Materials/gold_ore.rsi layers: - state: ore1 - map: ["random"] - - type: StealTarget - stealGroup: CP14Gold \ No newline at end of file + map: ["random"] \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Objectives/empire_orders.yml b/Resources/Prototypes/_CP14/Objectives/empire_orders.yml index dda750e0f0..351db8e826 100644 --- a/Resources/Prototypes/_CP14/Objectives/empire_orders.yml +++ b/Resources/Prototypes/_CP14/Objectives/empire_orders.yml @@ -19,23 +19,41 @@ maxCollectionSize: 10 objectiveText: cp14-objective-town-send-title descriptionText: cp14-objective-town-send-desc - descriptionMultiplyText: cp14-objective-town-send-multiply-desc - type: Objective - type: entity parent: CP14BaseTownSendObjective - id: CP14TownSendGoldObjective + id: CP14TownSendDinoObjective components: - type: CP14TownSendCondition - collectGroup: CP14Gold - minCollectionSize: 200 - maxCollectionSize: 250 + collectGroup: CP14Dino + minCollectionSize: 10 + maxCollectionSize: 50 + +- type: entity + parent: CP14BaseTownSendObjective + id: CP14TownSendMoleObjective + components: + - type: CP14TownSendCondition + collectGroup: CP14Mole + minCollectionSize: 10 + maxCollectionSize: 50 + +- type: entity + parent: CP14BaseTownSendObjective + id: CP14TownSendBoarObjective + components: + - type: CP14TownSendCondition + collectGroup: CP14Boar + minCollectionSize: 10 + maxCollectionSize: 50 - type: weightedRandom id: CP14TownSendObjectiveGroup weights: - CP14TownSendGoldObjective: 1 - + CP14TownSendDinoObjective: 1 + CP14TownSendMoleObjective: 1 + CP14TownSendBoarObjective: 1 #Bank money - type: entity @@ -51,13 +69,6 @@ state: coin10 - type: Objective -- type: entity - parent: CP14BaseTownBankEarningObjective - id: CP14TownBankEarningObjectiveSmall - components: - - type: CP14CurrencyStoredCondition - currency: 10000 - - type: entity parent: CP14BaseTownBankEarningObjective id: CP14TownBankEarningObjectiveMedium @@ -75,6 +86,5 @@ - type: weightedRandom id: CP14BankEarningObjectiveGroup weights: - CP14TownBankEarningObjectiveSmall: 1 CP14TownBankEarningObjectiveMedium: 0.6 CP14TownBankEarningObjectiveBig: 0.3 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Objectives/personal_objectives.yml b/Resources/Prototypes/_CP14/Objectives/personal_objectives.yml index a7519d6657..7e2e7f9b2e 100644 --- a/Resources/Prototypes/_CP14/Objectives/personal_objectives.yml +++ b/Resources/Prototypes/_CP14/Objectives/personal_objectives.yml @@ -24,28 +24,9 @@ state: coin10 # Collect currency group - - type: entity parent: CP14BasePersonalCurrencyCollectObjective - id: CP14PersonalCurrencyCollectObjectiveSmall - components: - - type: Objective - difficulty: 0.25 - - type: CP14CurrencyCollectCondition - currency: 500 - -- type: entity - parent: CP14BasePersonalCurrencyCollectObjective - id: CP14PersonalCurrencyCollectObjectiveMedium - components: - - type: Objective - difficulty: 0.5 - - type: CP14CurrencyCollectCondition - currency: 750 - -- type: entity - parent: CP14BasePersonalCurrencyCollectObjective - id: CP14PersonalCurrencyCollectObjectiveBig + id: CP14PersonalCurrencyCollectObjective components: - type: Objective difficulty: 1 @@ -55,6 +36,4 @@ - type: weightedRandom id: CP14PersonalCurrencyCollectObjectiveGroup weights: - CP14PersonalCurrencyCollectObjectiveSmall: 0.25 - CP14PersonalCurrencyCollectObjectiveMedium: 0.5 - CP14PersonalCurrencyCollectObjectiveBig: 1 + CP14PersonalCurrencyCollectObjective: 1 diff --git a/Resources/Prototypes/_CP14/Objectives/steal_target_groups.yml b/Resources/Prototypes/_CP14/Objectives/steal_target_groups.yml index 5eda0d4a58..19b66a98d8 100644 --- a/Resources/Prototypes/_CP14/Objectives/steal_target_groups.yml +++ b/Resources/Prototypes/_CP14/Objectives/steal_target_groups.yml @@ -1,6 +1,20 @@ - type: stealTargetGroup - id: CP14Gold - name: cp14-steal-target-gold-ore + id: CP14Dino + name: cp14-steal-target-dino sprite: - sprite: _CP14/Objects/Materials/gold_ore.rsi - state: ore1 \ No newline at end of file + sprite: _CP14/Mobs/Animals/dino.rsi + state: dead + +- type: stealTargetGroup + id: CP14Mole + name: cp14-steal-target-mole + sprite: + sprite: _CP14/Mobs/Monster/mole.rsi + state: dead + +- type: stealTargetGroup + id: CP14Boar + name: cp14-steal-target-boar + sprite: + sprite: _CP14/Mobs/Animals/boar.rsi + state: dead \ No newline at end of file