From 93ed28d34cec43de0f6b84eebcdf479c075d7c4b Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Wed, 12 Mar 2025 00:51:58 +0300 Subject: [PATCH] Trading content (#1010) * reroll positions * more trading content * bugfixes * more content * guidebook uodate * Update buy.yml --- .../CP14RerollSpecialPositionsService.cs | 64 ++++++ .../_CP14/Cargo/CP14CargoSystem.UI.cs | 22 +- Content.Server/_CP14/Cargo/CP14CargoSystem.cs | 10 +- .../Currency/CP14CurrencySystem.Converter.cs | 4 +- .../_CP14/Currency/CP14CurrencySystem.cs | 4 +- .../CP14CurrencyCollectConditionSystem.cs | 2 +- .../Systems/CP14RichestJobCondtionSystem.cs | 4 +- .../CP14StoreBuyPositionPrototype.cs | 2 +- .../CP14StoreSellPositionPrototype.cs | 10 +- .../Currency/CP14SharedCurrencySystem.cs | 2 +- .../Locale/en-US/_CP14/cargo/buyPositions.ftl | 2 + .../Locale/ru-RU/_CP14/cargo/buyPositions.ftl | 2 + Resources/Maps/_CP14/comoss.yml | 4 +- Resources/Maps/_CP14/comoss_d.yml | 4 +- .../Catalog/Cargo/Store/BradFamily/buy.yml | 43 +++- .../Cargo/Store/BradFamily/sell_special.yml | 10 - .../_CP14/Catalog/Cargo/Store/General/buy.yml | 21 ++ .../Cargo/Store/General/sell_special.yml | 23 --- .../Cargo/Store/SpiceStream/buy_special.yml | 45 +++++ .../Cargo/Store/SpiceStream/sell_special.yml | 102 +++++++++- .../Catalog/Cargo/Store/Sylphoria/buy.yml | 68 +++++++ .../Cargo/Store/Sylphoria/sell_special.yml | 188 ++++++++++++------ .../Specific/Economy/trade_board.yml | 6 +- .../Specific/Economy/trade_portal.yml | 12 +- .../_CP14/Guidebook/Eng/alchemy.yml | 8 +- .../Prototypes/_CP14/Guidebook/Eng/jobs.yml | 39 ++++ .../Prototypes/_CP14/Guidebook/Eng/misc.yml | 21 +- .../Prototypes/_CP14/Guidebook/Ru/alchemy.yml | 8 +- .../Prototypes/_CP14/Guidebook/Ru/jobs.yml | 39 ++++ .../Prototypes/_CP14/Guidebook/Ru/misc.yml | 21 +- .../Prototypes/_CP14/Guidebook/entry.yml | 6 +- .../ServerInfo/_CP14/Guidebook_EN/Jobs.xml | 7 + .../Guidebook_EN/JobsTabs/Adventurers.xml | 11 + .../AdventurersTabs}/Demiplanes.xml | 0 .../_CP14/Guidebook_EN/JobsTabs/Alchemist.xml | 11 + .../{ => JobsTabs/AlchemistTabs}/Alchemy.xml | 0 .../AlchemistTabs}/AlchemyTabs/Essence.xml | 0 .../AlchemistTabs}/AlchemyTabs/Precurser.xml | 0 .../AlchemyTabs/TargetEffects.xml | 0 .../_CP14/Guidebook_EN/JobsTabs/Merchant.xml | 17 ++ .../JobsTabs/MerchantTabs/Trading.xml | 41 ++++ .../ServerInfo/_CP14/Guidebook_RU/Jobs.xml | 7 + .../Guidebook_RU/JobsTabs/Adventurers.xml | 11 + .../AdventurersTabs}/Demiplanes.xml | 0 .../_CP14/Guidebook_RU/JobsTabs/Alchemist.xml | 11 + .../{ => JobsTabs/AlchemistTabs}/Alchemy.xml | 0 .../AlchemistTabs}/AlchemyTabs/Essence.xml | 0 .../AlchemistTabs}/AlchemyTabs/Precurser.xml | 0 .../AlchemyTabs/TargetEffects.xml | 0 .../_CP14/Guidebook_RU/JobsTabs/Merchant.xml | 17 ++ .../JobsTabs/MerchantTabs/Trading.xml | 41 ++++ .../_CP14/Interface/Misc/reroll.rsi/meta.json | 14 ++ .../Interface/Misc/reroll.rsi/reroll.png | Bin 0 -> 828 bytes 53 files changed, 827 insertions(+), 157 deletions(-) create mode 100644 Content.Server/_CP14/Cargo/BuyServices/CP14RerollSpecialPositionsService.cs create mode 100644 Resources/Locale/en-US/_CP14/cargo/buyPositions.ftl create mode 100644 Resources/Locale/ru-RU/_CP14/cargo/buyPositions.ftl create mode 100644 Resources/Prototypes/_CP14/Catalog/Cargo/Store/General/buy.yml create mode 100644 Resources/Prototypes/_CP14/Catalog/Cargo/Store/SpiceStream/buy_special.yml create mode 100644 Resources/Prototypes/_CP14/Catalog/Cargo/Store/Sylphoria/buy.yml create mode 100644 Resources/Prototypes/_CP14/Guidebook/Eng/jobs.yml create mode 100644 Resources/Prototypes/_CP14/Guidebook/Ru/jobs.yml create mode 100644 Resources/ServerInfo/_CP14/Guidebook_EN/Jobs.xml create mode 100644 Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Adventurers.xml rename Resources/ServerInfo/_CP14/Guidebook_EN/{ => JobsTabs/AdventurersTabs}/Demiplanes.xml (100%) create mode 100644 Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Alchemist.xml rename Resources/ServerInfo/_CP14/Guidebook_EN/{ => JobsTabs/AlchemistTabs}/Alchemy.xml (100%) rename Resources/ServerInfo/_CP14/Guidebook_EN/{ => JobsTabs/AlchemistTabs}/AlchemyTabs/Essence.xml (100%) rename Resources/ServerInfo/_CP14/Guidebook_EN/{ => JobsTabs/AlchemistTabs}/AlchemyTabs/Precurser.xml (100%) rename Resources/ServerInfo/_CP14/Guidebook_EN/{ => JobsTabs/AlchemistTabs}/AlchemyTabs/TargetEffects.xml (100%) create mode 100644 Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Merchant.xml create mode 100644 Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/MerchantTabs/Trading.xml create mode 100644 Resources/ServerInfo/_CP14/Guidebook_RU/Jobs.xml create mode 100644 Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Adventurers.xml rename Resources/ServerInfo/_CP14/Guidebook_RU/{ => JobsTabs/AdventurersTabs}/Demiplanes.xml (100%) create mode 100644 Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Alchemist.xml rename Resources/ServerInfo/_CP14/Guidebook_RU/{ => JobsTabs/AlchemistTabs}/Alchemy.xml (100%) rename Resources/ServerInfo/_CP14/Guidebook_RU/{ => JobsTabs/AlchemistTabs}/AlchemyTabs/Essence.xml (100%) rename Resources/ServerInfo/_CP14/Guidebook_RU/{ => JobsTabs/AlchemistTabs}/AlchemyTabs/Precurser.xml (100%) rename Resources/ServerInfo/_CP14/Guidebook_RU/{ => JobsTabs/AlchemistTabs}/AlchemyTabs/TargetEffects.xml (100%) create mode 100644 Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Merchant.xml create mode 100644 Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/MerchantTabs/Trading.xml create mode 100644 Resources/Textures/_CP14/Interface/Misc/reroll.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Interface/Misc/reroll.rsi/reroll.png diff --git a/Content.Server/_CP14/Cargo/BuyServices/CP14RerollSpecialPositionsService.cs b/Content.Server/_CP14/Cargo/BuyServices/CP14RerollSpecialPositionsService.cs new file mode 100644 index 0000000000..9a928cd0bc --- /dev/null +++ b/Content.Server/_CP14/Cargo/BuyServices/CP14RerollSpecialPositionsService.cs @@ -0,0 +1,64 @@ +using Content.Shared._CP14.Cargo; +using Content.Shared._CP14.Cargo.Prototype; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; +using Robust.Shared.Utility; + +namespace Content.Server._CP14.Cargo.BuyServices; + +public sealed partial class CP14RerollSpecialPositionsService : CP14StoreBuyService +{ + [DataField] public int RerollBuy; + [DataField] public int RerollSell; + + public override void Buy(EntityManager entManager, IPrototypeManager prototype, Entity portal) + { + var randomSystem = IoCManager.Resolve(); + var cargoSystem = entManager.System(); + + if (RerollBuy > 0) + { + var removed = 0; + for (var i = 0; i < RerollBuy; i++) + { + if (portal.Comp.CurrentSpecialBuyPositions.Count == 0) + break; + removed++; + var position = randomSystem.Pick(portal.Comp.CurrentSpecialBuyPositions); + portal.Comp.CurrentSpecialBuyPositions.Remove(position.Key); + } + + cargoSystem.AddRandomBuySpecialPosition(portal, removed); + } + + if (RerollSell > 0) + { + var removed = 0; + for (var i = 0; i < RerollSell; i++) + { + if (portal.Comp.CurrentSpecialSellPositions.Count == 0) + break; + removed++; + var position = randomSystem.Pick(portal.Comp.CurrentSpecialSellPositions); + portal.Comp.CurrentSpecialSellPositions.Remove(position.Key); + } + + cargoSystem.AddRandomSellSpecialPosition(portal, removed); + } + } + + public override string GetName(IPrototypeManager protoMan) + { + return string.Empty; + } + + public override EntProtoId? GetEntityView(IPrototypeManager protoManager) + { + return null; + } + + public override SpriteSpecifier? GetTexture(IPrototypeManager protoManager) + { + return null; + } +} diff --git a/Content.Server/_CP14/Cargo/CP14CargoSystem.UI.cs b/Content.Server/_CP14/Cargo/CP14CargoSystem.UI.cs index 861b2cc88e..5b20d4843d 100644 --- a/Content.Server/_CP14/Cargo/CP14CargoSystem.UI.cs +++ b/Content.Server/_CP14/Cargo/CP14CargoSystem.UI.cs @@ -47,9 +47,8 @@ public sealed partial class CP14CargoSystem //Add special buy positions foreach (var (proto, price) in tradePortalComp.CurrentSpecialBuyPositions) { - var name = proto.NameOverride ?? proto.Service.GetName(_proto); + var name = proto.NameOverride is null ? proto.Service.GetName(_proto) : Loc.GetString(proto.NameOverride); var desc = new StringBuilder(); - //desc.Append(Loc.GetString(proto.Desc) + "\n"); desc.Append("\n" + Loc.GetString("cp14-store-buy-hint", ("name", name), ("code", "[color=yellow][bold]#" + proto.Code + "[/bold][/color]"))); prodBuy.Add(new CP14StoreUiProductEntry(proto.ID, proto.IconOverride ?? proto.Service.GetTexture(_proto), proto.Service.GetEntityView(_proto), name, desc.ToString(), price, true)); @@ -58,9 +57,8 @@ public sealed partial class CP14CargoSystem //Add static buy positions foreach (var (proto, price) in tradePortalComp.CurrentBuyPositions) { - var name = proto.NameOverride ?? proto.Service.GetName(_proto); + var name = proto.NameOverride is null ? proto.Service.GetName(_proto) : Loc.GetString(proto.NameOverride); var desc = new StringBuilder(); - //desc.Append(Loc.GetString(proto.Desc) + "\n"); desc.Append("\n" + Loc.GetString("cp14-store-buy-hint", ("name", name), ("code", "[color=yellow][bold]#" + proto.Code + "[/bold][/color]"))); prodBuy.Add(new CP14StoreUiProductEntry(proto.ID, proto.IconOverride ?? proto.Service.GetTexture(_proto), proto.Service.GetEntityView(_proto), name, desc.ToString(), price, false)); @@ -69,10 +67,9 @@ public sealed partial class CP14CargoSystem //Add special sell positions foreach (var (proto, price) in tradePortalComp.CurrentSpecialSellPositions) { - var name = proto.Service.GetName(_proto); + var name = proto.NameOverride is null ? proto.Service.GetName(_proto) : Loc.GetString(proto.NameOverride); var desc = new StringBuilder(); - //desc.Append(Loc.GetString(proto.Desc) + "\n"); desc.Append("\n" + Loc.GetString("cp14-store-sell-hint", ("name", name))); prodSell.Add(new CP14StoreUiProductEntry( @@ -86,21 +83,20 @@ public sealed partial class CP14CargoSystem } //Add static sell positions - foreach (var proto in tradePortalComp.CurrentSellPositions) + foreach (var (proto, price) in tradePortalComp.CurrentSellPositions) { - var name = proto.Key.Service.GetName(_proto); + var name = proto.NameOverride is null ? proto.Service.GetName(_proto) : Loc.GetString(proto.NameOverride); var desc = new StringBuilder(); - //desc.Append(Loc.GetString(proto.Key.Desc) + "\n"); desc.Append("\n" + Loc.GetString("cp14-store-sell-hint", ("name", name))); prodSell.Add(new CP14StoreUiProductEntry( - proto.Key.ID, - proto.Key.Service.GetTexture(_proto), - proto.Key.Service.GetEntityView(_proto), + proto.ID, + proto.Service.GetTexture(_proto), + proto.Service.GetEntityView(_proto), name, desc.ToString(), - proto.Value, + price, false)); } diff --git a/Content.Server/_CP14/Cargo/CP14CargoSystem.cs b/Content.Server/_CP14/Cargo/CP14CargoSystem.cs index 8bdbf3b726..e0e4bb57b4 100644 --- a/Content.Server/_CP14/Cargo/CP14CargoSystem.cs +++ b/Content.Server/_CP14/Cargo/CP14CargoSystem.cs @@ -5,6 +5,7 @@ using Content.Server.Storage.Components; using Content.Server.Storage.EntitySystems; using Content.Shared._CP14.Cargo; using Content.Shared._CP14.Cargo.Prototype; +using Content.Shared._CP14.Currency; using Content.Shared.Paper; using Content.Shared.Throwing; using Robust.Server.GameObjects; @@ -105,7 +106,7 @@ public sealed partial class CP14CargoSystem : CP14SharedCargoSystem } } - private void AddRandomBuySpecialPosition(Entity portal, int count) + public void AddRandomBuySpecialPosition(Entity portal, int count) { if (_buyProto is null) return; @@ -137,7 +138,7 @@ public sealed partial class CP14CargoSystem : CP14SharedCargoSystem } } - private void AddRandomSellSpecialPosition(Entity portal, int count) + public void AddRandomSellSpecialPosition(Entity portal, int count) { if (_sellProto is null) return; @@ -215,10 +216,9 @@ public sealed partial class CP14CargoSystem : CP14SharedCargoSystem var cash = 0; foreach (var stored in storage.Contents.ContainedEntities) { - var price = _currency.GetTotalCurrency(stored); - if (price > 0) + if (TryComp(stored, out var currency)) { - cash += price; + cash += currency.Currency; QueueDel(stored); } } diff --git a/Content.Server/_CP14/Currency/CP14CurrencySystem.Converter.cs b/Content.Server/_CP14/Currency/CP14CurrencySystem.Converter.cs index 14ff0a3009..04dd347b04 100644 --- a/Content.Server/_CP14/Currency/CP14CurrencySystem.Converter.cs +++ b/Content.Server/_CP14/Currency/CP14CurrencySystem.Converter.cs @@ -121,7 +121,7 @@ public sealed partial class CP14CurrencySystem if (ent.Comp.Whitelist is not null && !_whitelist.IsValid(ent.Comp.Whitelist, args.Used)) return; - var delta = GetTotalCurrency(args.Used); + var delta = GetTotalCurrencyRecursive(args.Used); ent.Comp.Balance += delta; QueueDel(args.Used); @@ -206,7 +206,7 @@ public sealed partial class CP14CurrencySystem private bool ProcessEntity(EntityUid ent, ref int remainder, HashSet spawns) { - var singleCurrency = GetTotalCurrency(ent); + var singleCurrency = GetTotalCurrencyRecursive(ent); if (singleCurrency > remainder) { diff --git a/Content.Server/_CP14/Currency/CP14CurrencySystem.cs b/Content.Server/_CP14/Currency/CP14CurrencySystem.cs index 6809b95e49..200e2d9587 100644 --- a/Content.Server/_CP14/Currency/CP14CurrencySystem.cs +++ b/Content.Server/_CP14/Currency/CP14CurrencySystem.cs @@ -54,7 +54,7 @@ public sealed partial class CP14CurrencySystem : CP14SharedCurrencySystem { foreach (var containedEnt in container.ContainedEntities) { - total += GetTotalCurrency(containedEnt); + total += GetTotalCurrencyRecursive(containedEnt); } } @@ -63,7 +63,7 @@ public sealed partial class CP14CurrencySystem : CP14SharedCurrencySystem private void OnExamine(Entity currency, ref ExaminedEvent args) { - var total = GetTotalCurrency(currency); + var total = GetTotalCurrencyRecursive(currency); var push = Loc.GetString("cp14-currency-examine-title"); push += GetCurrencyPrettyString(total); diff --git a/Content.Server/_CP14/Objectives/Systems/CP14CurrencyCollectConditionSystem.cs b/Content.Server/_CP14/Objectives/Systems/CP14CurrencyCollectConditionSystem.cs index d83a695190..8200f95f95 100644 --- a/Content.Server/_CP14/Objectives/Systems/CP14CurrencyCollectConditionSystem.cs +++ b/Content.Server/_CP14/Objectives/Systems/CP14CurrencyCollectConditionSystem.cs @@ -45,7 +45,7 @@ public sealed class CP14CurrencyCollectConditionSystem : EntitySystem if (mind.OwnedEntity is null) return 0; - count += _currency.GetTotalCurrency(mind.OwnedEntity.Value); + count += _currency.GetTotalCurrencyRecursive(mind.OwnedEntity.Value); var result = count / (float)condition.Currency; result = Math.Clamp(result, 0, 1); diff --git a/Content.Server/_CP14/Objectives/Systems/CP14RichestJobCondtionSystem.cs b/Content.Server/_CP14/Objectives/Systems/CP14RichestJobCondtionSystem.cs index 102e983d7e..3a62d4293a 100644 --- a/Content.Server/_CP14/Objectives/Systems/CP14RichestJobCondtionSystem.cs +++ b/Content.Server/_CP14/Objectives/Systems/CP14RichestJobCondtionSystem.cs @@ -45,7 +45,7 @@ public sealed class CP14RichestJobConditionSystem : EntitySystem if (mind.OwnedEntity is null) return 0; - var ourValue = _currency.GetTotalCurrency(mind.OwnedEntity.Value); + var ourValue = _currency.GetTotalCurrencyRecursive(mind.OwnedEntity.Value); var otherMaxValue = 0; var allHumans = _mind.GetAliveHumans(mindId); @@ -63,7 +63,7 @@ public sealed class CP14RichestJobConditionSystem : EntitySystem if (otherHuman.Comp.OwnedEntity is null) continue; - var otherValue = _currency.GetTotalCurrency(otherHuman.Comp.OwnedEntity.Value); + var otherValue = _currency.GetTotalCurrencyRecursive(otherHuman.Comp.OwnedEntity.Value); if (otherValue > otherMaxValue) otherMaxValue = otherValue; } diff --git a/Content.Shared/_CP14/Cargo/Prototype/CP14StoreBuyPositionPrototype.cs b/Content.Shared/_CP14/Cargo/Prototype/CP14StoreBuyPositionPrototype.cs index fef042f03f..1a30ad0068 100644 --- a/Content.Shared/_CP14/Cargo/Prototype/CP14StoreBuyPositionPrototype.cs +++ b/Content.Shared/_CP14/Cargo/Prototype/CP14StoreBuyPositionPrototype.cs @@ -22,7 +22,7 @@ public sealed partial class CP14StoreBuyPositionPrototype : IPrototype [DataField(required: true)] public string Code = string.Empty; - [DataField(required: true)] + [DataField(required: true, serverOnly: true)] public CP14StoreBuyService Service = default!; [DataField] diff --git a/Content.Shared/_CP14/Cargo/Prototype/CP14StoreSellPositionPrototype.cs b/Content.Shared/_CP14/Cargo/Prototype/CP14StoreSellPositionPrototype.cs index f3fe161cc6..35da395c21 100644 --- a/Content.Shared/_CP14/Cargo/Prototype/CP14StoreSellPositionPrototype.cs +++ b/Content.Shared/_CP14/Cargo/Prototype/CP14StoreSellPositionPrototype.cs @@ -17,9 +17,15 @@ public sealed partial class CP14StoreSellPositionPrototype : IPrototype [DataField(required: true)] public int Price = 100; - [DataField(required: true)] + [DataField(required: true, serverOnly: true)] public CP14StoreSellService Service = default!; + [DataField] + public SpriteSpecifier? IconOverride; + + [DataField] + public LocId? NameOverride; + [DataField] public bool RoundstartAvailable = true; @@ -27,7 +33,7 @@ public sealed partial class CP14StoreSellPositionPrototype : IPrototype /// If true, this item will randomly appear under the ‘Special Offer’ heading. With a chance to show up every time the ship arrives. /// [DataField] - public bool Special = false; + public bool Special; [DataField] public HashSet> Factions = new(); diff --git a/Content.Shared/_CP14/Currency/CP14SharedCurrencySystem.cs b/Content.Shared/_CP14/Currency/CP14SharedCurrencySystem.cs index 61b6e6595d..5e66bb4bd3 100644 --- a/Content.Shared/_CP14/Currency/CP14SharedCurrencySystem.cs +++ b/Content.Shared/_CP14/Currency/CP14SharedCurrencySystem.cs @@ -37,7 +37,7 @@ public partial class CP14SharedCurrencySystem : EntitySystem return sb.ToString(); } - public int GetTotalCurrency(EntityUid uid) + public int GetTotalCurrencyRecursive(EntityUid uid) { var ev = new CP14GetCurrencyEvent(); RaiseLocalEvent(uid, ev); diff --git a/Resources/Locale/en-US/_CP14/cargo/buyPositions.ftl b/Resources/Locale/en-US/_CP14/cargo/buyPositions.ftl new file mode 100644 index 0000000000..16aa360891 --- /dev/null +++ b/Resources/Locale/en-US/_CP14/cargo/buyPositions.ftl @@ -0,0 +1,2 @@ +cp14-buy-position-reroll-buy = Reroll purchase offers +cp14-buy-position-reroll-sell = Reroll sales offers \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/cargo/buyPositions.ftl b/Resources/Locale/ru-RU/_CP14/cargo/buyPositions.ftl new file mode 100644 index 0000000000..d52e6da1a4 --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/cargo/buyPositions.ftl @@ -0,0 +1,2 @@ +cp14-buy-position-reroll-buy = Реролл предложений покупки +cp14-buy-position-reroll-sell = Реролл предложений продажи \ No newline at end of file diff --git a/Resources/Maps/_CP14/comoss.yml b/Resources/Maps/_CP14/comoss.yml index 7dd200530b..5def44cf68 100644 --- a/Resources/Maps/_CP14/comoss.yml +++ b/Resources/Maps/_CP14/comoss.yml @@ -67584,14 +67584,14 @@ entities: - type: Transform pos: 105.5,61.5 parent: 2 -- proto: CP14TradingPortalBradFamily +- proto: CP14SpawnUniqueTradepost entities: - uid: 8847 components: - type: Transform pos: 104.5,61.5 parent: 2 -- proto: CP14TradingPortalSpiceStream +- proto: CP14SpawnUniqueTradepost entities: - uid: 1051 components: diff --git a/Resources/Maps/_CP14/comoss_d.yml b/Resources/Maps/_CP14/comoss_d.yml index 4a45928b41..83a48e140e 100644 --- a/Resources/Maps/_CP14/comoss_d.yml +++ b/Resources/Maps/_CP14/comoss_d.yml @@ -110813,14 +110813,14 @@ entities: - type: Transform pos: 52.5,-12.5 parent: 2 -- proto: CP14TradingPortalHelmirWeapon +- proto: CP14SpawnUniqueTradepost entities: - uid: 4176 components: - type: Transform pos: 51.5,-12.5 parent: 2 -- proto: CP14TradingPortalSylphoria +- proto: CP14SpawnUniqueTradepost entities: - uid: 4163 components: diff --git a/Resources/Prototypes/_CP14/Catalog/Cargo/Store/BradFamily/buy.yml b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/BradFamily/buy.yml index d40bb75065..655c79b037 100644 --- a/Resources/Prototypes/_CP14/Catalog/Cargo/Store/BradFamily/buy.yml +++ b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/BradFamily/buy.yml @@ -185,4 +185,45 @@ - type: StorageFill contents: - id: CP14VialSmallRainbow - amount: 5 \ No newline at end of file + amount: 5 + + +- type: storePositionBuy + id: Candles + code: CANDLES + price: 100 + iconOverride: + sprite: Objects/Misc/candles.rsi + state: loadout + factions: + - BradFamily + service: !type:CP14BuyItemsService + product: CP14WoodenChestFilledCandles + +- type: entity + parent: CP14WoodenChest + id: CP14WoodenChestFilledCandles + name: candles chest + components: + - type: StorageFill + contents: + - id: CP14CandleRed + amount: 2 + - id: CP14CandleBlue + amount: 2 + - id: CP14CandleBlack + amount: 2 + - id: CP14CandleGreen + amount: 2 + - id: CP14CandlePurple + amount: 2 + - id: CP14CandleRedSmall + amount: 2 + - id: CP14CandleBlueSmall + amount: 2 + - id: CP14CandleBlackSmall + amount: 2 + - id: CP14CandleGreenSmall + amount: 2 + - id: CP14CandlePurpleSmall + amount: 2 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Catalog/Cargo/Store/BradFamily/sell_special.yml b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/BradFamily/sell_special.yml index 19e669480e..17e6134c9b 100644 --- a/Resources/Prototypes/_CP14/Catalog/Cargo/Store/BradFamily/sell_special.yml +++ b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/BradFamily/sell_special.yml @@ -78,16 +78,6 @@ proto: CP14AirLily count: 5 -- type: storePositionSell - id: CP14CrystalShardBase - special: true - price: 50 - factions: - - BradFamily - service: !type:CP14SellPrototypeService - proto: CP14CrystalShardBase - count: 5 - - type: storePositionSell id: CP14BaseAlchemyBomb special: true diff --git a/Resources/Prototypes/_CP14/Catalog/Cargo/Store/General/buy.yml b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/General/buy.yml new file mode 100644 index 0000000000..4ed8160a84 --- /dev/null +++ b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/General/buy.yml @@ -0,0 +1,21 @@ +- type: storePositionBuy + id: RerollSell + code: REROLL_SELL + price: 20 + nameOverride: cp14-buy-position-reroll-sell + iconOverride: + sprite: _CP14/Interface/Misc/reroll.rsi + state: reroll + service: !type:CP14RerollSpecialPositionsService + rerollSell: 5 + +#- type: storePositionBuy #Неактуально, т.к. позиций таких нет +# id: RerollBuy +# code: REROLL_BUY +# price: 20 +# nameOverride: cp14-buy-position-reroll-buy +# iconOverride: +# sprite: _CP14/Interface/Misc/reroll.rsi +# state: reroll +# service: !type:CP14RerollSpecialPositionsService +# rerollBuy: 5 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Catalog/Cargo/Store/General/sell_special.yml b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/General/sell_special.yml index 213e4a7946..e69de29bb2 100644 --- a/Resources/Prototypes/_CP14/Catalog/Cargo/Store/General/sell_special.yml +++ b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/General/sell_special.yml @@ -1,23 +0,0 @@ -- type: storePositionSell - id: CP14FoodPieMeat - special: true - price: 60 - service: !type:CP14SellPrototypeService - proto: CP14FoodPieMeat - count: 1 - -- type: storePositionSell - id: CP14FoodPiePumpkin - special: true - price: 60 - service: !type:CP14SellPrototypeService - proto: CP14FoodPiePumpkin - count: 1 - -- type: storePositionSell - id: CP14FoodBreadBun - special: true - price: 20 - service: !type:CP14SellPrototypeService - proto: CP14FoodBreadBun - count: 3 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Catalog/Cargo/Store/SpiceStream/buy_special.yml b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/SpiceStream/buy_special.yml new file mode 100644 index 0000000000..5556f95f67 --- /dev/null +++ b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/SpiceStream/buy_special.yml @@ -0,0 +1,45 @@ +# ANCHORABLE PROBLEMS + +#- type: storePositionBuy +# id: DwarfBeer +# code: BEER_DWARF +# special: true +# nameOverride: cp14-reagent-name-dwarfbeer +# price: 150 +# factions: +# - SpiceStream +# service: !type:CP14BuyItemsService +# product: CP14CraneBarrelDwarfBeer +# +#- type: storePositionBuy +# id: BeerGerbil +# code: BEER_BREEZE +# special: true +# nameOverride: cp14-reagent-name-breeze +# price: 70 +# factions: +# - SpiceStream +# service: !type:CP14BuyItemsService +# product: CP14CraneBarrelSmallBeerBreeze +# +#- type: storePositionBuy +# id: AleBottomless +# code: BEER_BOTTOMLESS +# special: true +# nameOverride: cp14-reagent-name-bottomless +# price: 70 +# factions: +# - SpiceStream +# service: !type:CP14BuyItemsService +# product: CP14CraneBarrelSmallAleBottomless +# +#- type: storePositionBuy +# id: WineZellasian +# code: WINE_ZELLASIAN +# special: true +# nameOverride: cp14-reagent-name-zellasian-pleasure +# price: 150 +# factions: +# - SpiceStream +# service: !type:CP14BuyItemsService +# product: CP14CraneBarrelWineZellasianPleasure \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Catalog/Cargo/Store/SpiceStream/sell_special.yml b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/SpiceStream/sell_special.yml index 5fadbb18e2..53a4171c79 100644 --- a/Resources/Prototypes/_CP14/Catalog/Cargo/Store/SpiceStream/sell_special.yml +++ b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/SpiceStream/sell_special.yml @@ -26,4 +26,104 @@ - SpiceStream service: !type:CP14SellPrototypeService proto: CP14DyeBlue - count: 5 \ No newline at end of file + count: 5 + +- type: storePositionSell + id: CP14FoodPieMeat + special: true + price: 60 + factions: + - SpiceStream + service: !type:CP14SellPrototypeService + proto: CP14FoodPieMeat + count: 1 + +- type: storePositionSell + id: CP14FoodPiePumpkin + special: true + price: 60 + factions: + - SpiceStream + service: !type:CP14SellPrototypeService + proto: CP14FoodPiePumpkin + count: 1 + +- type: storePositionSell + id: CP14FoodBreadBun + special: true + price: 20 + factions: + - SpiceStream + service: !type:CP14SellPrototypeService + proto: CP14FoodBreadBun + count: 3 + +- type: storePositionSell + id: CP14FoodCabbage + special: true + price: 80 + factions: + - SpiceStream + service: !type:CP14SellPrototypeService + proto: CP14FoodCabbage + count: 10 + +- type: storePositionSell + id: CP14FoodPumpkin + special: true + price: 80 + factions: + - SpiceStream + service: !type:CP14SellPrototypeService + proto: CP14FoodPumpkin + count: 10 + +- type: storePositionSell + id: CP14FoodPotato + special: true + price: 80 + factions: + - SpiceStream + service: !type:CP14SellPrototypeService + proto: CP14FoodPotato + count: 10 + +- type: storePositionSell + id: CP14FoodCucumber + special: true + price: 80 + factions: + - SpiceStream + service: !type:CP14SellPrototypeService + proto: CP14FoodCucumber + count: 10 + +- type: storePositionSell + id: CP14FoodTomatoes + special: true + price: 80 + factions: + - SpiceStream + service: !type:CP14SellPrototypeService + proto: CP14FoodTomatoes + count: 10 + +- type: storePositionSell + id: CP14FoodPepper + special: true + price: 80 + factions: + - SpiceStream + service: !type:CP14SellPrototypeService + proto: CP14FoodPepper + count: 10 + +- type: storePositionSell + id: CP14FoodOnion + special: true + price: 80 + factions: + - SpiceStream + service: !type:CP14SellPrototypeService + proto: CP14FoodOnion + count: 10 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Catalog/Cargo/Store/Sylphoria/buy.yml b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/Sylphoria/buy.yml new file mode 100644 index 0000000000..64be84efd8 --- /dev/null +++ b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/Sylphoria/buy.yml @@ -0,0 +1,68 @@ +- type: storePositionBuy + id: CP14SpellScrollResurrection + code: SCROLL_RESURRECTION + price: 100 + factions: + - Sylphoria + service: !type:CP14BuyItemsService + product: CP14SpellScrollResurrection + +- type: storePositionBuy + id: CP14SpellScrollCureWounds + code: CURE_WOUNDS + price: 100 + factions: + - Sylphoria + service: !type:CP14BuyItemsService + product: CP14SpellScrollCureWounds + count: 5 + +- type: storePositionBuy + id: CP14SpellScrollCureBurn + code: CURE_BURN + price: 100 + factions: + - Sylphoria + service: !type:CP14BuyItemsService + product: CP14SpellScrollCureBurn + count: 5 + +- type: storePositionBuy + id: CP14SpellScrollBloodPurification + code: BLOOD_PURE + price: 100 + factions: + - Sylphoria + service: !type:CP14BuyItemsService + product: CP14SpellScrollBloodPurification + count: 5 + +- type: storePositionBuy + id: CP14SpellscrollSignalLightBlue + code: SIGNAL_BLUE + price: 50 + factions: + - Sylphoria + service: !type:CP14BuyItemsService + product: CP14SpellscrollSignalLightBlue + count: 5 + +- type: storePositionBuy + id: CP14SpellscrollSignalLightYellow + code: SIGNAL_YELLOW + price: 50 + factions: + - Sylphoria + service: !type:CP14BuyItemsService + product: CP14SpellscrollSignalLightYellow + count: 5 + +- type: storePositionBuy + id: CP14SpellscrollSignalLightRed + code: SIGNAL_RED + price: 50 + factions: + - Sylphoria + service: !type:CP14BuyItemsService + product: CP14SpellscrollSignalLightRed + count: 5 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Catalog/Cargo/Store/Sylphoria/sell_special.yml b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/Sylphoria/sell_special.yml index 933fa31103..4ec3641d68 100644 --- a/Resources/Prototypes/_CP14/Catalog/Cargo/Store/Sylphoria/sell_special.yml +++ b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/Sylphoria/sell_special.yml @@ -1,17 +1,17 @@ - type: storePositionSell id: BountyTorch special: true - price: 200 + price: 20 factions: - Sylphoria service: !type:CP14SellPrototypeService proto: CP14Torch - count: 20 + count: 5 - type: storePositionSell id: BountyLucenPlanks special: true - price: 300 + price: 200 factions: - Sylphoria service: !type:CP14SellStackService @@ -21,152 +21,122 @@ - type: storePositionSell id: CP14SpellScrollIceShards special: true - price: 50 + price: 20 factions: - Sylphoria service: !type:CP14SellPrototypeService proto: CP14SpellScrollIceShards - count: 3 + count: 1 - type: storePositionSell id: CP14SpellScrollShadowGrab special: true - price: 50 + price: 20 factions: - Sylphoria service: !type:CP14SellPrototypeService proto: CP14SpellScrollShadowGrab - count: 3 + count: 1 - type: storePositionSell id: CP14SpellScrollSphereOfLight special: true - price: 50 + price: 20 factions: - Sylphoria service: !type:CP14SellPrototypeService proto: CP14SpellScrollSphereOfLight - count: 3 - -- type: storePositionSell - id: CP14SpellScrollCureWounds - special: true - price: 50 - factions: - - Sylphoria - service: !type:CP14SellPrototypeService - proto: CP14SpellScrollCureWounds - count: 3 - -- type: storePositionSell - id: CP14SpellScrollBloodPurification - special: true - price: 50 - factions: - - Sylphoria - service: !type:CP14SellPrototypeService - proto: CP14SpellScrollBloodPurification - count: 3 - -- type: storePositionSell - id: CP14SpellScrollCureBurn - special: true - price: 50 - factions: - - Sylphoria - service: !type:CP14SellPrototypeService - proto: CP14SpellScrollCureBurn - count: 3 + count: 1 - type: storePositionSell id: CP14SpellScrollFlameCreation special: true - price: 50 + price: 20 factions: - Sylphoria service: !type:CP14SellPrototypeService proto: CP14SpellScrollFlameCreation - count: 3 + count: 1 - type: storePositionSell id: CP14SpellScrollEarthWall special: true - price: 50 + price: 20 factions: - Sylphoria service: !type:CP14SellPrototypeService proto: CP14SpellScrollEarthWall - count: 3 + count: 1 - type: storePositionSell id: CP14SpellScrollFlashLight special: true - price: 50 + price: 20 factions: - Sylphoria service: !type:CP14SellPrototypeService proto: CP14SpellScrollFlashLight - count: 3 + count: 1 - type: storePositionSell id: CP14SpellScrollWaterCreation special: true - price: 50 + price: 20 factions: - Sylphoria service: !type:CP14SellPrototypeService proto: CP14SpellScrollWaterCreation - count: 3 + count: 1 - type: storePositionSell id: CP14SpellScrollPlantGrowth special: true - price: 50 + price: 20 factions: - Sylphoria service: !type:CP14SellPrototypeService proto: CP14SpellScrollPlantGrowth - count: 3 + count: 1 - type: storePositionSell id: CP14SpellScrollMagicSplitting special: true - price: 50 + price: 20 factions: - Sylphoria service: !type:CP14SellPrototypeService proto: CP14SpellScrollMagicSplitting - count: 3 + count: 1 - type: storePositionSell id: CP14SpellScrollMagicalAcceleration special: true - price: 50 + price: 20 factions: - Sylphoria service: !type:CP14SellPrototypeService proto: CP14SpellScrollMagicalAcceleration - count: 3 + count: 1 - type: storePositionSell id: CP14SpellScrollShadowStep special: true - price: 100 + price: 40 factions: - Sylphoria service: !type:CP14SellPrototypeService proto: CP14SpellScrollShadowStep - count: 3 + count: 1 - type: storePositionSell id: CP14SpellScrollFireball special: true - price: 100 + price: 40 factions: - Sylphoria service: !type:CP14SellPrototypeService proto: CP14SpellScrollFireball - count: 3 + count: 1 - type: storePositionSell id: CP14SpellScrollBeerCreation @@ -176,7 +146,7 @@ - Sylphoria service: !type:CP14SellPrototypeService proto: CP14SpellScrollBeerCreation - count: 3 + count: 1 - type: storePositionSell id: CP14EnergyCrystalSmallEmpty @@ -186,4 +156,104 @@ - Sylphoria service: !type:CP14SellPrototypeService proto: CP14EnergyCrystalSmallEmpty - count: 5 \ No newline at end of file + count: 5 + +- type: storePositionSell + id: CP14EnergyCrystalMediumEmpty + special: true + price: 80 + factions: + - Sylphoria + service: !type:CP14SellPrototypeService + proto: CP14EnergyCrystalMediumEmpty + count: 3 + +- type: storePositionSell + id: CP14ClothingRingIceShards + special: true + price: 100 + factions: + - Sylphoria + service: !type:CP14SellPrototypeService + proto: CP14ClothingRingIceShards + count: 1 + +- type: storePositionSell + id: CP14ClothingRingFlashLight + special: true + price: 100 + factions: + - Sylphoria + service: !type:CP14SellPrototypeService + proto: CP14ClothingRingFlashLight + count: 1 + +- type: storePositionSell + id: CP14BaseLockpick + special: true + price: 100 + factions: + - Sylphoria + service: !type:CP14SellPrototypeService + proto: CP14BaseLockpick + count: 10 + +- type: storePositionSell + id: CP14MobRabbit + special: true + price: 20 + factions: + - Sylphoria + service: !type:CP14SellPrototypeService + proto: CP14MobRabbit + count: 5 + +- type: storePositionSell + id: CP14MobPig + special: true + price: 100 + factions: + - Sylphoria + service: !type:CP14SellPrototypeService + proto: CP14MobPig + count: 5 + +- type: storePositionSell + id: CP14MobBoar + special: true + price: 120 + factions: + - Sylphoria + service: !type:CP14SellPrototypeService + proto: CP14MobBoar + count: 5 + +- type: storePositionSell + id: CP14MobFrog + special: true + price: 10 + factions: + - Sylphoria + service: !type:CP14SellPrototypeService + proto: CP14MobFrog + count: 5 + +- type: storePositionSell + id: CP14MobMonsterMole + special: true + price: 30 + factions: + - Sylphoria + service: !type:CP14SellPrototypeService + proto: CP14MobMonsterMole + count: 1 + +- type: storePositionSell + id: CP14PartsMonsterGlands + special: true + price: 80 + factions: + - Sylphoria + service: !type:CP14SellPrototypeService + proto: CP14PartsMonsterGlands + count: 1 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Economy/trade_board.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Economy/trade_board.yml index 82d303050a..9b4987cbe6 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Economy/trade_board.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Economy/trade_board.yml @@ -20,4 +20,8 @@ - type: UserInterface interfaces: enum.CP14StoreUiKey.Key: - type: CP14StoreBoundUserInterface \ No newline at end of file + type: CP14StoreBoundUserInterface + - type: GuideHelp + guides: + - CP14_RU_Trading + - CP14_EN_Trading \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Economy/trade_portal.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Economy/trade_portal.yml index 8afbaae5e3..d55464dd2a 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Economy/trade_portal.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Economy/trade_portal.yml @@ -46,6 +46,10 @@ stateBaseClosed: base stateDoorOpen: base_open stateDoorClosed: base_door + - type: GuideHelp + guides: + - CP14_RU_Trading + - CP14_EN_Trading - type: entity parent: CP14TradingPortalBase @@ -62,7 +66,7 @@ - state: flag_sylphoria - type: CP14TradingPortal faction: Sylphoria - specialSellPositionCount: 3 + specialSellPositionCount: 5 - type: entity parent: CP14TradingPortalBase @@ -79,6 +83,7 @@ - state: flag_helmir - type: CP14TradingPortal faction: HelmirWeapon + specialSellPositionCount: 5 - type: entity parent: CP14TradingPortalBase @@ -95,7 +100,7 @@ - state: flag_bard - type: CP14TradingPortal faction: BradFamily - specialSellPositionCount: 3 + specialSellPositionCount: 5 - type: entity parent: CP14TradingPortalBase @@ -111,4 +116,5 @@ shader: unshaded - state: flag_spice - type: CP14TradingPortal - faction: SpiceStream \ No newline at end of file + faction: SpiceStream + specialSellPositionCount: 5 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Guidebook/Eng/alchemy.yml b/Resources/Prototypes/_CP14/Guidebook/Eng/alchemy.yml index 083b881293..8335a94c7e 100644 --- a/Resources/Prototypes/_CP14/Guidebook/Eng/alchemy.yml +++ b/Resources/Prototypes/_CP14/Guidebook/Eng/alchemy.yml @@ -2,7 +2,7 @@ crystallPunkAllowed: true id: CP14_EN_Alchemy name: Alchemy - text: "/ServerInfo/_CP14/Guidebook_EN/Alchemy.xml" + text: "/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AlchemistTabs/Alchemy.xml" children: - CP14_EN_Precurser - CP14_EN_ThaumaturgyEssence @@ -13,19 +13,19 @@ crystallPunkAllowed: true id: CP14_EN_Precurser name: Precursers - text: "/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/Precurser.xml" + text: "/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AlchemistTabs/AlchemyTabs/Precurser.xml" filterEnabled: True - type: guideEntry crystallPunkAllowed: true id: CP14_EN_ThaumaturgyEssence name: Thaumaturgic essences - text: "/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/Essence.xml" + text: "/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AlchemistTabs/AlchemyTabs/Essence.xml" filterEnabled: True - type: guideEntry crystallPunkAllowed: true id: CP14_EN_TargetEffects name: Target alchemical solutions - text: "/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/TargetEffects.xml" + text: "/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AlchemistTabs/AlchemyTabs/TargetEffects.xml" filterEnabled: True \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Guidebook/Eng/jobs.yml b/Resources/Prototypes/_CP14/Guidebook/Eng/jobs.yml new file mode 100644 index 0000000000..45399c76c8 --- /dev/null +++ b/Resources/Prototypes/_CP14/Guidebook/Eng/jobs.yml @@ -0,0 +1,39 @@ +- type: guideEntry + crystallPunkAllowed: true + id: CP14_EN_Jobs + name: Jobs + text: "/ServerInfo/_CP14/Guidebook_EN/Jobs.xml" + children: + - CP14_EN_JobAdventurer + - CP14_EN_JobAlchemist + - CP14_EN_JobMerchant + filterEnabled: True + + + +- type: guideEntry + crystallPunkAllowed: true + id: CP14_EN_JobAdventurer + name: Adventurers + text: "/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Adventurers.xml" + children: + - CP14_EN_Demiplanes + filterEnabled: True + +- type: guideEntry + crystallPunkAllowed: true + id: CP14_EN_JobAlchemist + name: Alchemist + text: "/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Alchemist.xml" + children: + - CP14_EN_Alchemy + filterEnabled: True + +- type: guideEntry + crystallPunkAllowed: true + id: CP14_EN_JobMerchant + name: Merchant + text: "/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Merchant.xml" + children: + - CP14_EN_Trading + filterEnabled: True \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Guidebook/Eng/misc.yml b/Resources/Prototypes/_CP14/Guidebook/Eng/misc.yml index 39529f1339..0241f31b61 100644 --- a/Resources/Prototypes/_CP14/Guidebook/Eng/misc.yml +++ b/Resources/Prototypes/_CP14/Guidebook/Eng/misc.yml @@ -1,13 +1,20 @@ -- type: guideEntry - crystallPunkAllowed: true - id: CP14_EN_Demiplanes - name: Demiplanes exploration - text: "/ServerInfo/_CP14/Guidebook_EN/Demiplanes.xml" - filterEnabled: True - - type: guideEntry crystallPunkAllowed: true id: CP14_EN_Imperial_Laws name: Imperial laws text: "/ServerInfo/_CP14/Guidebook_EN/ImperialLaws.xml" + filterEnabled: True + +- type: guideEntry + crystallPunkAllowed: true + id: CP14_EN_Demiplanes + name: Demiplanes exploration + text: "/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AdventurersTabs/Demiplanes.xml" + filterEnabled: True + +- type: guideEntry + crystallPunkAllowed: true + id: CP14_EN_Trading + name: External trade + text: "/ServerInfo/_CP14/Guidebook_EN/JobsTabs/MerchantTabs/Trading.xml" filterEnabled: True \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Guidebook/Ru/alchemy.yml b/Resources/Prototypes/_CP14/Guidebook/Ru/alchemy.yml index 3e1f42cb6d..5e7561b8a3 100644 --- a/Resources/Prototypes/_CP14/Guidebook/Ru/alchemy.yml +++ b/Resources/Prototypes/_CP14/Guidebook/Ru/alchemy.yml @@ -2,7 +2,7 @@ crystallPunkAllowed: true id: CP14_RU_Alchemy name: Алхимия - text: "/ServerInfo/_CP14/Guidebook_RU/Alchemy.xml" + text: "/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AlchemistTabs/Alchemy.xml" children: - CP14_RU_Precurser - CP14_RU_ThaumaturgyEssence @@ -13,19 +13,19 @@ crystallPunkAllowed: true id: CP14_RU_Precurser name: Природные исходники - text: "/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/Precurser.xml" + text: "/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AlchemistTabs/AlchemyTabs/Precurser.xml" filterEnabled: True - type: guideEntry crystallPunkAllowed: true id: CP14_RU_ThaumaturgyEssence name: Тауматургические эссенции - text: "/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/Essence.xml" + text: "/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AlchemistTabs/AlchemyTabs/Essence.xml" filterEnabled: True - type: guideEntry crystallPunkAllowed: true id: CP14_RU_TargetEffects name: Целевые алхимические растворы - text: "/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/TargetEffects.xml" + text: "/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AlchemistTabs/AlchemyTabs/TargetEffects.xml" filterEnabled: True \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Guidebook/Ru/jobs.yml b/Resources/Prototypes/_CP14/Guidebook/Ru/jobs.yml new file mode 100644 index 0000000000..d517b0d45b --- /dev/null +++ b/Resources/Prototypes/_CP14/Guidebook/Ru/jobs.yml @@ -0,0 +1,39 @@ +- type: guideEntry + crystallPunkAllowed: true + id: CP14_RU_Jobs + name: Игровые роли + text: "/ServerInfo/_CP14/Guidebook_RU/Jobs.xml" + children: + - CP14_RU_JobAdventurer + - CP14_RU_JobAlchemist + - CP14_RU_JobMerchant + filterEnabled: True + + + +- type: guideEntry + crystallPunkAllowed: true + id: CP14_RU_JobAdventurer + name: Авантюрист + text: "/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Adventurers.xml" + children: + - CP14_RU_Demiplanes + filterEnabled: True + +- type: guideEntry + crystallPunkAllowed: true + id: CP14_RU_JobAlchemist + name: Алхимик + text: "/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Alchemist.xml" + children: + - CP14_RU_Alchemy + filterEnabled: True + +- type: guideEntry + crystallPunkAllowed: true + id: CP14_RU_JobMerchant + name: Торговец + text: "/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Merchant.xml" + children: + - CP14_RU_Trading + filterEnabled: True \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Guidebook/Ru/misc.yml b/Resources/Prototypes/_CP14/Guidebook/Ru/misc.yml index f2014933e3..a50dd45411 100644 --- a/Resources/Prototypes/_CP14/Guidebook/Ru/misc.yml +++ b/Resources/Prototypes/_CP14/Guidebook/Ru/misc.yml @@ -1,13 +1,20 @@ -- type: guideEntry - crystallPunkAllowed: true - id: CP14_RU_Demiplanes - name: Исследование демипланов - text: "/ServerInfo/_CP14/Guidebook_RU/Demiplanes.xml" - filterEnabled: True - - type: guideEntry crystallPunkAllowed: true id: CP14_RU_Imperial_Laws name: Имперские законы text: "/ServerInfo/_CP14/Guidebook_RU/ImperialLaws.xml" + filterEnabled: True + +- type: guideEntry + crystallPunkAllowed: true + id: CP14_RU_Demiplanes + name: Исследование демипланов + text: "/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AdventurersTabs/Demiplanes.xml" + filterEnabled: True + +- type: guideEntry + crystallPunkAllowed: true + id: CP14_RU_Trading + name: Внешняя торговля + text: "/ServerInfo/_CP14/Guidebook_RU/JobsTabs/MerchantTabs/Trading.xml" filterEnabled: True \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Guidebook/entry.yml b/Resources/Prototypes/_CP14/Guidebook/entry.yml index 45f5b1ea0c..a3e332bb5f 100644 --- a/Resources/Prototypes/_CP14/Guidebook/entry.yml +++ b/Resources/Prototypes/_CP14/Guidebook/entry.yml @@ -6,8 +6,7 @@ text: "/ServerInfo/_CP14/Guidebook_EN/Welcome.xml" children: - CP14_EN_Species - - CP14_EN_Alchemy - - CP14_EN_Demiplanes + - CP14_EN_Jobs - CP14_EN_Imperial_Laws - type: guideEntry @@ -18,6 +17,5 @@ text: "/ServerInfo/_CP14/Guidebook_RU/Welcome.xml" children: - CP14_RU_Species - - CP14_RU_Alchemy - - CP14_RU_Demiplanes + - CP14_RU_Jobs - CP14_RU_Imperial_Laws diff --git a/Resources/ServerInfo/_CP14/Guidebook_EN/Jobs.xml b/Resources/ServerInfo/_CP14/Guidebook_EN/Jobs.xml new file mode 100644 index 0000000000..ed862fcd97 --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_EN/Jobs.xml @@ -0,0 +1,7 @@ + + +# Jobs + +TODO + + \ No newline at end of file diff --git a/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Adventurers.xml b/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Adventurers.xml new file mode 100644 index 0000000000..64a3dd6fe1 --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Adventurers.xml @@ -0,0 +1,11 @@ + + +# Adventurer + +The Adventurer is one of the available game roles, focused on obtaining resources for the settlement, through risky ventures. + +## Ways to make money + +- [textlink="Demiplane exploration" link="CP14_EN_Demiplanes"] + + \ No newline at end of file diff --git a/Resources/ServerInfo/_CP14/Guidebook_EN/Demiplanes.xml b/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AdventurersTabs/Demiplanes.xml similarity index 100% rename from Resources/ServerInfo/_CP14/Guidebook_EN/Demiplanes.xml rename to Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AdventurersTabs/Demiplanes.xml diff --git a/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Alchemist.xml b/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Alchemist.xml new file mode 100644 index 0000000000..8e62e9b7f6 --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Alchemist.xml @@ -0,0 +1,11 @@ + + +# Alchemist + +TODO + +## Ways to make money + +- [textlink="Alchemy" link="CP14_EN_Alchemy"] + + \ No newline at end of file diff --git a/Resources/ServerInfo/_CP14/Guidebook_EN/Alchemy.xml b/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AlchemistTabs/Alchemy.xml similarity index 100% rename from Resources/ServerInfo/_CP14/Guidebook_EN/Alchemy.xml rename to Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AlchemistTabs/Alchemy.xml diff --git a/Resources/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/Essence.xml b/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AlchemistTabs/AlchemyTabs/Essence.xml similarity index 100% rename from Resources/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/Essence.xml rename to Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AlchemistTabs/AlchemyTabs/Essence.xml diff --git a/Resources/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/Precurser.xml b/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AlchemistTabs/AlchemyTabs/Precurser.xml similarity index 100% rename from Resources/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/Precurser.xml rename to Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AlchemistTabs/AlchemyTabs/Precurser.xml diff --git a/Resources/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/TargetEffects.xml b/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AlchemistTabs/AlchemyTabs/TargetEffects.xml similarity index 100% rename from Resources/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/TargetEffects.xml rename to Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AlchemistTabs/AlchemyTabs/TargetEffects.xml diff --git a/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Merchant.xml b/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Merchant.xml new file mode 100644 index 0000000000..e7d4176cf2 --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Merchant.xml @@ -0,0 +1,17 @@ + + +# Merchant + +The Merchant is one of the available game roles, focusing on social interactions between players. + +The Merchant always has one of the [color=#a4885c]Shops[/color] located in the city at his disposal. You can use this construction to centralize other players' interactions with you. + +## Economic Race + +The main goal of the merchant as a role is to become the richest of the merchants. To fulfill this goal, you must have more currency on hand at the end of the round than the other merchants, and you must be alive. + +## Ways to make money + +- [textlink="External trade" link="CP14_EN_Trading"] + + \ No newline at end of file diff --git a/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/MerchantTabs/Trading.xml b/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/MerchantTabs/Trading.xml new file mode 100644 index 0000000000..ba03fbefbd --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/MerchantTabs/Trading.xml @@ -0,0 +1,41 @@ + +# Trade with the outside world + +Trade outposts are one of the main ways where you can spend money, or from where you can acquire it. + + + + + + + +There are trading outposts belonging to different factions that can be found in different locations throughout the game map. They are located in different places each round, so they have yet to be found. + +Different factions offer different items for sale or purchase. If you want to buy weapons, you'll obviously need to find an outpost of Helmir's Descendants. + + + + + +## Sel + +To sell an item - put the requested items into an open outpost, and close it. After a few seconds, the item will be picked up and payment will be thrown to you. + + + + + + +### Purchase + +To buy an item - you need to compose a paper with an order. Each purchase item has a unique code that you can see in the sales table. It starts with the symbol #. + +On any paper, write any number of these unique codes, each starting with #, with a quill pen. + +Put the paper with your order and the required amount of money in the outpost. In a few seconds, your order will be delivered to you and your change will be returned. + +## One-time offers + +Many outposts have "One Time Offers" - special items to buy or sell that are upgraded after use. These items are often particularly lucrative, and you can make more money with them. + + \ No newline at end of file diff --git a/Resources/ServerInfo/_CP14/Guidebook_RU/Jobs.xml b/Resources/ServerInfo/_CP14/Guidebook_RU/Jobs.xml new file mode 100644 index 0000000000..c59ca9337a --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_RU/Jobs.xml @@ -0,0 +1,7 @@ + + +# Игровые роли + +TODO + + \ No newline at end of file diff --git a/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Adventurers.xml b/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Adventurers.xml new file mode 100644 index 0000000000..b7aad2e889 --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Adventurers.xml @@ -0,0 +1,11 @@ + + +# Авантюрист + +Авантюрист - одна из доступных игровых ролей, сосредоточенная на добыче ресурсов для поселения, путем рискованных авантюр. + +## Способы заработка + +- [textlink="Исследование демипланов" link="CP14_RU_Demiplanes"] + + \ No newline at end of file diff --git a/Resources/ServerInfo/_CP14/Guidebook_RU/Demiplanes.xml b/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AdventurersTabs/Demiplanes.xml similarity index 100% rename from Resources/ServerInfo/_CP14/Guidebook_RU/Demiplanes.xml rename to Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AdventurersTabs/Demiplanes.xml diff --git a/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Alchemist.xml b/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Alchemist.xml new file mode 100644 index 0000000000..c5d1f0f8ac --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Alchemist.xml @@ -0,0 +1,11 @@ + + +# Алхимик + +TODO + +## Способы заработка + +- [textlink="Алхимия" link="CP14_RU_Alchemy"] + + \ No newline at end of file diff --git a/Resources/ServerInfo/_CP14/Guidebook_RU/Alchemy.xml b/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AlchemistTabs/Alchemy.xml similarity index 100% rename from Resources/ServerInfo/_CP14/Guidebook_RU/Alchemy.xml rename to Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AlchemistTabs/Alchemy.xml diff --git a/Resources/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/Essence.xml b/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AlchemistTabs/AlchemyTabs/Essence.xml similarity index 100% rename from Resources/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/Essence.xml rename to Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AlchemistTabs/AlchemyTabs/Essence.xml diff --git a/Resources/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/Precurser.xml b/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AlchemistTabs/AlchemyTabs/Precurser.xml similarity index 100% rename from Resources/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/Precurser.xml rename to Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AlchemistTabs/AlchemyTabs/Precurser.xml diff --git a/Resources/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/TargetEffects.xml b/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AlchemistTabs/AlchemyTabs/TargetEffects.xml similarity index 100% rename from Resources/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/TargetEffects.xml rename to Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AlchemistTabs/AlchemyTabs/TargetEffects.xml diff --git a/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Merchant.xml b/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Merchant.xml new file mode 100644 index 0000000000..5edb9f7ae3 --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Merchant.xml @@ -0,0 +1,17 @@ + + +# Торговец + +Торговец - одна из доступных игровых ролей, сосредоточенная на социальных взаимодействиях между игроками. + +Торговец всегда имеет в своем распоряжении один из [color=#a4885c]Магазинов[/color], расположенных в городе. Вы можете использовать эту постройку для централизации взаимодействия других игроков с вами. + +## Экономическая гонка + +Основная цель торговца как роли - стать самым богатым из торговцев. Чтобы выполнить эту цель, у вас на руках на момент конца раунда должно быть больше валюты, чем у других торговцев, и вы должны быть живыми. + +## Способы заработка + +- [textlink="Внешняя торговля" link="CP14_RU_Trading"] + + \ No newline at end of file diff --git a/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/MerchantTabs/Trading.xml b/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/MerchantTabs/Trading.xml new file mode 100644 index 0000000000..2db8718a56 --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/MerchantTabs/Trading.xml @@ -0,0 +1,41 @@ + +# Торговля с внешним миром + +Торговые аванпосты - один из основных способов куда можно потратить деньги, или откуда их можно приобрести. + + + + + + + +Существуют торговые аванпосты, принадлежащие к различным фракциям, которые можно найти в разных местах по всей игровой карте. Каждый раунд они располагаются в разных местах, так что их еще предстоит найти. + +Разные фракции предлагают различные товары на продажу или покупку. Если вы хотите прикупить оружие, вам явно нужно найти аванпост Хельмировых потомков. + + + + + +## Продажа + +Чтобы продать товар - положите в открытый аванпост запрошенные товары, и закройте его. Через несколько секунд товар заберут, а вам выбросят оплату. + + + + + + +### Покупка + +Чтобы купить товар - вам необходимо составить бумагу с заказом. У каждой позиции покупки есть уникальный код, который можно увидеть в торговом столе. Он начинается с символа #. + +На любой бумаге напишите писчим пером любое количество этих уникальных кодов, начиная каждый с # + +Положите в аванпост бумагу с заказом, и необходимое количество денег. Через несколько секунд вам доставят ваш заказ, и вернут сдачу. + +## Разовые предложения + +Многие аванпосты имеют "Разовые предложения" - особые позиции в покупке или продаже, которые обновляются после использования. Часто такие позиции особо выгодные, и с их помощью можно заработать больше денег. + + \ No newline at end of file diff --git a/Resources/Textures/_CP14/Interface/Misc/reroll.rsi/meta.json b/Resources/Textures/_CP14/Interface/Misc/reroll.rsi/meta.json new file mode 100644 index 0000000000..9dd25b4e99 --- /dev/null +++ b/Resources/Textures/_CP14/Interface/Misc/reroll.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-4.0", + "copyright": "Created by TheShuEd (Github)", + "states": [ + { + "name": "reroll" + } + ] +} diff --git a/Resources/Textures/_CP14/Interface/Misc/reroll.rsi/reroll.png b/Resources/Textures/_CP14/Interface/Misc/reroll.rsi/reroll.png new file mode 100644 index 0000000000000000000000000000000000000000..d2998fa853d0ffc89717ff8412cc15f3e4a51700 GIT binary patch literal 828 zcmV-C1H=4@P)Px%_DMuRR9Jy;3k%CKLKKmV76MIjC(GItWX`jDv*$Ar(^%fy-T&LUnVmU6u-fjH zmd2mMJV`uQeL!^a5}l()>N(Ak#$EHD1OUK*;G)GaLMe=mbwlN2q=KnoG64v}7Tu`d z8f#A5^CCO_tPTTV+g)xT8M{RdYyC6~?Aoojdrq?kkIE!Iq90q_hs0(~C zEv#0Qw11{JJ?k7bypakpQi1WBieV&XPl5k2-9NV8K%-hw&P}pF2*S=95kRuuK%?7P zM7Oh;c@h^0hmh7LIZp4sT2WYD@We>x#?wp>k2UVDfVdCu&4HL%uC+-P43(d_NfIBa z0OyB0u!Z#SSl^%RVP?@Z ztpR-i{*u#c69H^tBjUfl)1pw^Pp0@wYoZ8wAroNYJ?;>?Z-2vFeftsU)mz-3?KvT& z@!Zwx*Y{A{Lgh{6>Fa$R_giDQ+9!AmUvlp|Rr!pX?==AUA3i6+D0!f~sh$S_NJsr# zeH+{Z!TOJ>_Do{H4ie{;D@1*;evm1e)xa28z;o4E!E!{sEh;rIRM=AYz$9};y?sha zl!_ehGn@c)Z`)odZz?ZpwlvU6{@Y!YZFIc@UaEUa0Qi+jjfBhWK(p7!Y$SZdDeA0Z4QWzT_ zG-T4pO745xzS$&`N;-%CF8~(|x2*4lVi@KATzeLCLH`Bj2OT>0YJC9!0000