Merge branch 'master' into MagicWands

This commit is contained in:
comasqw
2024-12-05 00:46:27 +04:00
126 changed files with 8812 additions and 6653 deletions

View File

@@ -0,0 +1,15 @@
using Content.Shared._CP14.LockKey;
using Robust.Shared.Prototypes;
namespace Content.Server._CP14.LockKey;
[RegisterComponent]
public sealed partial class CP14AbstractKeyComponent : Component
{
[DataField(required: true)]
public ProtoId<CP14LockGroupPrototype> Group = default;
[DataField]
public bool DeleteOnFailure = true;
}

View File

@@ -0,0 +1,67 @@
using Content.Server.Station.Events;
using Content.Shared._CP14.LockKey;
using Content.Shared._CP14.LockKey.Components;
using Content.Shared.Station.Components;
using Robust.Shared.Prototypes;
using Robust.Shared.Random;
using Robust.Shared.Utility;
namespace Content.Server._CP14.LockKey;
public sealed partial class CP14KeyDistributionSystem : EntitySystem
{
[Dependency] private readonly IPrototypeManager _proto = default!;
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly CP14KeyholeGenerationSystem _keyGeneration = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<CP14AbstractKeyComponent, MapInitEvent>(OnMapInit);
}
private void OnMapInit(Entity<CP14AbstractKeyComponent> ent, ref MapInitEvent args)
{
if (!TrySetShape(ent) && ent.Comp.DeleteOnFailure)
QueueDel(ent);
}
private bool TrySetShape(Entity<CP14AbstractKeyComponent> ent)
{
var grid = Transform(ent).GridUid;
if (grid is null)
return false;
if (!TryComp<CP14KeyComponent>(ent, out var key))
return false;
if (!TryComp<StationMemberComponent>(grid.Value, out var member))
return false;
if (!TryComp<CP14StationKeyDistributionComponent>(member.Station, out var distribution))
return false;
var keysList = new List<ProtoId<CP14LockTypePrototype>>(distribution.Keys);
while (keysList.Count > 0)
{
var randomIndex = _random.Next(keysList.Count);
var keyA = keysList[randomIndex];
var indexedKey = _proto.Index(keyA);
if (indexedKey.Group != ent.Comp.Group)
{
keysList.RemoveAt(randomIndex);
continue;
}
_keyGeneration.SetShape((ent, key), indexedKey);
distribution.Keys.Remove(indexedKey);
return true;
}
return false;
}
}

View File

@@ -1,4 +1,5 @@
using System.Linq;
using Content.Server.Labels;
using Content.Shared._CP14.LockKey;
using Content.Shared._CP14.LockKey.Components;
using Content.Shared.Examine;
@@ -12,8 +13,9 @@ public sealed partial class CP14KeyholeGenerationSystem : EntitySystem
{
[Dependency] private readonly IPrototypeManager _proto = default!;
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly LabelSystem _label = default!;
private Dictionary<ProtoId<CP14LockCategoryPrototype>, List<int>> _roundKeyData = new();
private Dictionary<ProtoId<CP14LockTypePrototype>, List<int>> _roundKeyData = new();
public override void Initialize()
{
@@ -37,7 +39,7 @@ public sealed partial class CP14KeyholeGenerationSystem : EntitySystem
{
if (keyEnt.Comp.AutoGenerateShape != null)
{
keyEnt.Comp.LockShape = GetKeyLockData(keyEnt.Comp.AutoGenerateShape.Value);
SetShape(keyEnt, keyEnt.Comp.AutoGenerateShape.Value);
}
}
@@ -45,7 +47,7 @@ public sealed partial class CP14KeyholeGenerationSystem : EntitySystem
{
if (lockEnt.Comp.AutoGenerateShape != null)
{
lockEnt.Comp.LockShape = GetKeyLockData(lockEnt.Comp.AutoGenerateShape.Value);
SetShape(lockEnt, lockEnt.Comp.AutoGenerateShape.Value);
}
}
#endregion
@@ -69,7 +71,7 @@ public sealed partial class CP14KeyholeGenerationSystem : EntitySystem
args.PushMarkup(markup);
}
private List<int> GetKeyLockData(ProtoId<CP14LockCategoryPrototype> category)
private List<int> GetKeyLockData(ProtoId<CP14LockTypePrototype> category)
{
if (_roundKeyData.ContainsKey(category))
return _roundKeyData[category];
@@ -79,7 +81,25 @@ public sealed partial class CP14KeyholeGenerationSystem : EntitySystem
return newData;
}
private List<int> GenerateNewUniqueLockData(ProtoId<CP14LockCategoryPrototype> category)
public void SetShape(Entity<CP14KeyComponent> keyEnt, ProtoId<CP14LockTypePrototype> type)
{
keyEnt.Comp.LockShape = GetKeyLockData(type);
var indexedType = _proto.Index(type);
if (indexedType.Name is not null)
_label.Label(keyEnt, Loc.GetString(indexedType.Name.Value));
}
public void SetShape(Entity<CP14LockComponent> lockEnt, ProtoId<CP14LockTypePrototype> type)
{
lockEnt.Comp.LockShape = GetKeyLockData(type);
var indexedType = _proto.Index(type);
if (indexedType.Name is not null)
_label.Label(lockEnt, Loc.GetString(indexedType.Name.Value));
}
private List<int> GenerateNewUniqueLockData(ProtoId<CP14LockTypePrototype> category)
{
List<int> newKeyData = new();
var categoryData = _proto.Index(category);

View File

@@ -1,19 +0,0 @@
using Robust.Shared.Prototypes;
namespace Content.Shared._CP14.LockKey;
/// <summary>
/// A prototype of the lock category. Need a roundstart mapping to ensure that keys and locks will fit together despite randomization.
/// </summary>
[Prototype("CP14LockCategory")]
public sealed partial class CP14LockCategoryPrototype : IPrototype
{
[ViewVariables]
[IdDataField]
public string ID { get; private set; } = default!;
/// <summary>
/// The number of elements that will be generated for the category.
/// </summary>
[DataField] public int Complexity = 3;
}

View File

@@ -0,0 +1,15 @@
using Robust.Shared.Prototypes;
namespace Content.Shared._CP14.LockKey;
/// <summary>
/// Group Affiliation. Used for “abstract key” mechanics,
/// where the key takes one of the free forms from identical rooms (10 different kinds of tavern rooms for example).
/// </summary>
[Prototype("CP14LockGroup")]
public sealed partial class CP14LockGroupPrototype : IPrototype
{
[ViewVariables]
[IdDataField]
public string ID { get; private set; } = default!;
}

View File

@@ -0,0 +1,32 @@
using Robust.Shared.Prototypes;
namespace Content.Shared._CP14.LockKey;
/// <summary>
/// A lock or key shape, pre-generated at the start of the round.
/// Allows a group of doors and keys to have the same shape within the same round and fit together,
/// but is randomized from round to round
/// </summary>
[Prototype("CP14LockType")]
public sealed partial class CP14LockTypePrototype : IPrototype
{
[ViewVariables]
[IdDataField]
public string ID { get; private set; } = default!;
/// <summary>
/// The number of elements that will be generated for the category.
/// </summary>
[DataField]
public int Complexity = 3;
/// <summary>
/// Group Affiliation. Used for “abstract key” mechanics,
/// where the key takes one of the free forms from identical rooms (10 different kinds of tavern rooms for example).
/// </summary>
[DataField]
public ProtoId<CP14LockGroupPrototype>? Group;
[DataField]
public LocId? Name;
}

View File

@@ -15,5 +15,5 @@ public sealed partial class CP14KeyComponent : Component
/// If not null, automatically generates a key for the specified category on initialization. This ensures that the lock will be opened with a key of the same category.
/// </summary>
[DataField]
public ProtoId<CP14LockCategoryPrototype>? AutoGenerateShape = null;
public ProtoId<CP14LockTypePrototype>? AutoGenerateShape = null;
}

View File

@@ -5,10 +5,10 @@ namespace Content.Shared._CP14.LockKey.Components;
/// <summary>
/// A component of a lock that stores its keyhole shape, complexity, and current state.
/// </summary>
[RegisterComponent]
[RegisterComponent, AutoGenerateComponentState]
public sealed partial class CP14LockComponent : Component
{
[DataField]
[DataField, AutoNetworkedField]
public List<int>? LockShape = null;
[DataField]
@@ -30,5 +30,5 @@ public sealed partial class CP14LockComponent : Component
/// If not null, automatically generates a lock for the specified category on initialization. This ensures that the lock will be opened with a key of the same category.
/// </summary>
[DataField]
public ProtoId<CP14LockCategoryPrototype>? AutoGenerateShape = null;
public ProtoId<CP14LockTypePrototype>? AutoGenerateShape = null;
}

View File

@@ -0,0 +1,13 @@
using Robust.Shared.Prototypes;
namespace Content.Shared._CP14.LockKey.Components;
/// <summary>
///
/// </summary>
[RegisterComponent]
public sealed partial class CP14StationKeyDistributionComponent : Component
{
[DataField]
public List<ProtoId<CP14LockTypePrototype>> Keys = new();
}

View File

@@ -31,6 +31,7 @@ cp14-loadout-guard-cloak = Guard's cloak
cp14-loadout-guard-head = Guard's head
cp14-loadout-guard-pants = Guard's pants
cp14-loadout-guard-shirt = Guard's shirt
cp14-loadout-guard-spells = Guard's spells
# Bank
@@ -39,4 +40,4 @@ cp14-loadout-commandant-head = Commandant's hat
cp14-loadout-commandant-cloak = Commandant's cloak
cp14-loadout-bank-shirt = Bank Employee shirt
cp14-loadout-bank-pants = Bank Employee pants
cp14-loadout-bank-shoes = Bank Employee shoes
cp14-loadout-bank-shoes = Bank Employee shoes

View File

@@ -0,0 +1,35 @@
cp14-lock-shape-bank-entrance = bank hall
cp14-lock-shape-bank-staff = bank offices
cp14-lock-shape-bank-commandant = commandant's house
cp14-lock-shape-bank-safe = bank safes
cp14-lock-shape-bank-vault = bank vault
cp14-lock-shape-tavern-hall = tavern hall
cp14-lock-shape-tavern-staff = tavern staff quarters
cp14-lock-shape-tavern-dorm1 = tavern room №1
cp14-lock-shape-tavern-dorm2 = tavern room №2
cp14-lock-shape-tavern-dorm3 = tavern room №3
cp14-lock-shape-tavern-dorm4 = tavern room №4
cp14-lock-shape-tavern-dorm5 = tavern room №5
cp14-lock-shape-alchemist1 = alchemist's lab №1
cp14-lock-shape-alchemist2 = alchemist's lab №2
cp14-lock-shape-blacksmith1 = forge №1
cp14-lock-shape-blacksmith2 = forge №2
cp14-lock-shape-personalhouse1 = house №1
cp14-lock-shape-personalhouse2 = house №2
cp14-lock-shape-personalhouse3 = house №3
cp14-lock-shape-personalhouse4 = house №4
cp14-lock-shape-personalhouse5 = house №5
cp14-lock-shape-personalhouse6 = house №6
cp14-lock-shape-personalhouse7 = house №7
cp14-lock-shape-personalhouse8 = house №8
cp14-lock-shape-personalhouse9 = house №9
cp14-lock-shape-personalhouse10 = house №10
cp14-lock-shaper-guard-entrance = barracks, entrance
cp14-lock-shaper-guard-staff = barracks
cp14-lock-shaper-guard-commander = guardhouse
cp14-lock-shaper-guard-weapon-storage = weapons storage

View File

@@ -1,3 +1,4 @@
cp14-stamp-denied = Denied
cp14-stamp-approved = Approved
cp14-stamp-bank = Commandant
cp14-stamp-bank = Commandant
cp14-stamp-guard-commander = Guard commander

View File

@@ -75,48 +75,6 @@ ent-CP14BaseKey = ключ
ent-CP14BaseLockpick = отмычка
.desc = Воровской инструмент, позволяющий с достаточными навыками и сноровкой открыть любой замок.
ent-CP14KeyTavernHall = ключ от таверны
.desc = { ent-CP14BaseKey.desc }
ent-CP14KeyTavernStaff = ключ от служебных помещений таверны
.desc = { ent-CP14BaseKey.desc }
ent-CP14KeyTavernDorms1 = ключ от комнаты таверны 1
.desc = { ent-CP14BaseKey.desc }
ent-CP14KeyTavernDorms2 = ключ от комнаты таверны 2
.desc = { ent-CP14BaseKey.desc }
ent-CP14KeyTavernDorms3 = ключ от комнаты таверны 3
.desc = { ent-CP14BaseKey.desc }
ent-CP14KeyTavernDorms4 = ключ от комнаты таверны 4
.desc = { ent-CP14BaseKey.desc }
ent-CP14KeyTavernDorms5 = ключ от комнаты таверны 5
.desc = { ent-CP14BaseKey.desc }
ent-CP14KeyAlchemy = ключ алхимика
.desc = { ent-CP14BaseKey.desc }
ent-CP14KeyBlacksmith = ключ кузнеца
.desc = { ent-CP14BaseKey.desc }
ent-CP14KeyBankEntrance = ключ к входу в банк
.desc = { ent-CP14BaseKey.desc }
ent-CP14KeyBankStaff = ключ служебных помещений банка
.desc = { ent-CP14BaseKey.desc }
ent-CP14KeyBankVault = ключ банковского хранилища
.desc = { ent-CP14BaseKey.desc }
ent-CP14KeyBankCommandantRoom = ключ комнаты комеднанта
.desc = { ent-CP14BaseKey.desc }
ent-CP14KeyBankSafe = ключ от банковских сейфов
.desc = { ent-CP14BaseKey.desc }
ent-CP14BaseSubdimensionalKey = ключ демиплана
.desc = Ядро, соединяющее реальный мир с демипланом. Используйте его, чтобы открыть временный проход в другой мир.

View File

@@ -32,6 +32,7 @@ cp14-loadout-guard-cloak = Накидка стражи
cp14-loadout-guard-head = Шляпа стражи
cp14-loadout-guard-pants = Штаны стражи
cp14-loadout-guard-shirt = Рубашка стражи
cp14-loadout-guard-spells = Заклинания стражи
# Bank
@@ -40,4 +41,4 @@ cp14-loadout-commandant-head = Шляпа коменданта
cp14-loadout-commandant-cloak = Накидка коменданта
cp14-loadout-bank-shirt = Рубашка работника банка
cp14-loadout-bank-pants = Штаны работника банка
cp14-loadout-bank-shoes = Ботинки работника банка
cp14-loadout-bank-shoes = Ботинки работника банка

View File

@@ -0,0 +1,35 @@
cp14-lock-shape-bank-entrance = холл банка
cp14-lock-shape-bank-staff = служебные помещения банка
cp14-lock-shape-bank-commandant = дом комменданта
cp14-lock-shape-bank-safe = сейфы банка
cp14-lock-shape-bank-vault = хранилище банка
cp14-lock-shape-tavern-hall = зал таверны
cp14-lock-shape-tavern-staff = служебные помещения таверны
cp14-lock-shape-tavern-dorm1 = комната таверны №1
cp14-lock-shape-tavern-dorm2 = комната таверны №2
cp14-lock-shape-tavern-dorm3 = комната таверны №3
cp14-lock-shape-tavern-dorm4 = комната таверны №4
cp14-lock-shape-tavern-dorm5 = комната таверны №5
cp14-lock-shape-alchemist1 = лаборатория алхимика №1
cp14-lock-shape-alchemist2 = лаборатория алхимика №2
cp14-lock-shape-blacksmith1 = кузня №1
cp14-lock-shape-blacksmith2 = кузня №2
cp14-lock-shape-personalhouse1 = дом №1
cp14-lock-shape-personalhouse2 = дом №2
cp14-lock-shape-personalhouse3 = дом №3
cp14-lock-shape-personalhouse4 = дом №4
cp14-lock-shape-personalhouse5 = дом №5
cp14-lock-shape-personalhouse6 = дом №6
cp14-lock-shape-personalhouse7 = дом №7
cp14-lock-shape-personalhouse8 = дом №8
cp14-lock-shape-personalhouse9 = дом №9
cp14-lock-shape-personalhouse10 = дом №10
cp14-lock-shaper-guard-entrance = казармы, вход
cp14-lock-shaper-guard-staff = казармы
cp14-lock-shaper-guard-commander = дом главы стражи
cp14-lock-shaper-guard-weapon-storage = хранилище оружия

View File

@@ -1,3 +1,4 @@
cp14-stamp-denied = Отказано
cp14-stamp-approved = Утверждено
cp14-stamp-bank = Комендант
cp14-stamp-bank = Комендант
cp14-stamp-guard-commander = Командир стражи

File diff suppressed because it is too large Load Diff

View File

@@ -34,7 +34,8 @@
bounds: "-0.25,-0.25,0.25,0.25"
density: 20
mask:
- ItemMask
#- ItemMask # CP14 swap ItemMask to Impassable only
- Impassable
restitution: 0.3 # fite me
friction: 0.2
- type: Sprite

View File

@@ -5,7 +5,6 @@
components:
- type: StorageFill
contents:
- id: CP14KeyRingAlchemist
- id: HandLabeler #TODO custom cp14 labeler
- id: CP14Syringe
amount: 2
@@ -43,7 +42,6 @@
components:
- type: StorageFill
contents:
- id: CP14KeyRingBanker
- id: HandLabeler #TODO custom cp14 labeler
- id: CP14StampDenied
- id: CP14StampApproved
@@ -73,7 +71,6 @@
components:
- type: StorageFill
contents:
- id: CP14KeyRingCommandant
- id: HandLabeler #TODO custom cp14 labeler
- id: CP14StampDenied
- id: CP14StampApproved
@@ -109,11 +106,52 @@
parent: CP14WoodenCloset
id: CP14WoodenClosetBlacksmithFilled
suffix: Blacksmith, Filled
#components:
#- type: StorageFill
# contents:
# - id: CP14KeyRingCommandant
# - id: HandLabeler #TODO custom cp14 labeler
# - id: CP14StampDenied
# - id: CP14StampApproved
# - id: CP14StampCommandant
components:
- type: StorageFill
contents:
- id: HandLabeler #TODO custom cp14 labeler
- id: CP14WoodenPlanks10
- id: CP14Nail10
- id: CP14CopperBar10
- id: CP14IronBar5
- type: entity
parent: CP14WoodenCloset
id: CP14WoodenClosetGuardFilled
suffix: Guard, Filled
components:
- type: StorageFill
contents:
- id: CP14Rope
- id: CP14Rope
- id: CP14ModularGuardHalberd
- id: CP14BaseShield
- id: CP14ModularGripIronLongGuard
- id: CP14ModularGripIronLongGuard
- id: CP14BaseLightCrossbow
- id: CP14Crossbolt
- id: CP14Crossbolt
- id: CP14Crossbolt
- id: CP14Crossbolt
- id: CP14Crossbolt
- id: CP14EnergyCrystalSmall
- id: CP14CrystalLampBlueEmpty
- id: CP14BookImperialLawsHandBook
- type: entity
parent: CP14WoodenCloset
id: CP14WoodenClosetGuardCommanderFilled
suffix: Guard Commander, Filled
components:
- type: StorageFill
contents:
- id: CP14Rope
- id: CP14Rope
- id: CP14ModularGuardHalberd
- id: CP14BaseShield
- id: CP14ModularGripIronLongGuard
- id: CP14ModularGripIronLongGuard
- id: CP14EnergyCrystalSmall
- id: CP14CrystalLampBlueEmpty
- id: CP14StampGuardCommander
- id: CP14BookImperialLawsHandBook

View File

@@ -58,18 +58,40 @@
parent: CP14WoodenCabinet
id: CP14WoodenCabinetBlacksmith
suffix: Blacksmith, Filled
#components:
#- type: StorageFill
# contents:
# - id: CP14ClothingCloakCommandantJacket
# prob: 1
# - id: CP14ClothingHeadBowlerGolden
# prob: 0.5
# - id: CP14ClothingPantsAristocratic
# prob: 0.5
# - id: CP14ClothingShirtBanker
# prob: 0.5
# - id: CP14ClothingEyesMonocle
# prob: 0.2
# - id: CP14ClothingEyesGlasses
# prob: 0.3
components:
- type: StorageFill
contents:
- id: CP14ClothingCloakBlacksmithArpon
prob: 1
- type: entity
parent: CP14WoodenCabinet
id: CP14WoodenCabinetGuard
suffix: Guard, Filled
components:
- type: StorageFill
contents:
- id: CP14ClothingHeadGuardHelmet
prob: 0.7
- id: CP14ClothingPantsGuardsChainmailSkirt
prob: 0.7
- id: CP14ClothingShirtGuardsChainmailShirtB
prob: 0.7
- id: CP14ClothingCloakGuardBlue
prob: 0.5
- type: entity
parent: CP14WoodenCabinet
id: CP14WoodenCabinetGuardCommander
suffix: Guard Commander, Filled
components:
- type: StorageFill
contents:
- id: CP14ClothingHeadGuardHelmet
prob: 0.7
- id: CP14ClothingPantsGuardsChainmailSkirt
prob: 0.7
- id: CP14ClothingShirtGuardsChainmailShirtB
prob: 0.7
- id: CP14ClothingCloakGuardCommander
prob: 1

View File

@@ -5,15 +5,6 @@
name: "guard's cloak"
description: Shoulder cape in the standard Imperial Guard colors
- type: entity
parent: CP14ClothingCloakGuardBase
id: CP14ClothingCloakGuardWhite
components:
- type: Sprite
sprite: _CP14/Clothing/Cloak/Roles/Guard/white.rsi
- type: Clothing
sprite: _CP14/Clothing/Cloak/Roles/Guard/white.rsi
- type: entity
parent: CP14ClothingCloakGuardBase
id: CP14ClothingCloakGuardBlue

View File

@@ -29,4 +29,13 @@
- type: Sprite
sprite: _CP14/Clothing/Cloak/Roles/General/cheetah_skin.rsi
- type: Clothing
sprite: _CP14/Clothing/Cloak/Roles/General/cheetah_skin.rsi
sprite: _CP14/Clothing/Cloak/Roles/General/cheetah_skin.rsi
- type: entity
parent: CP14ClothingCloakBase
id: CP14ClothingCloakWhite
components:
- type: Sprite
sprite: _CP14/Clothing/Cloak/Roles/General/white.rsi
- type: Clothing
sprite: _CP14/Clothing/Cloak/Roles/General/white.rsi

View File

@@ -0,0 +1,28 @@
- type: entity
parent: CP14ClothingHeadBase
id: CP14ClothingHeadGuardBase
abstract: true
components:
- type: Armor
modifiers:
coefficients:
Blunt: 0.95
Slash: 0.95
Piercing: 0.90
Heat: 0.95
- type: entity
parent: CP14ClothingHeadGuardBase
id: CP14ClothingHeadGuardHelmet
name: "guard's helmet"
components:
- type: Sprite
sprite: _CP14/Clothing/Head/Roles/Guard/helmet.rsi
- type: Clothing
sprite: _CP14/Clothing/Head/Roles/Guard/helmet.rsi
- type: HideLayerClothing
slots:
- Hair
- Snout
- HeadTop
- HeadSide

View File

@@ -5,6 +5,6 @@
description: Skirt with stitched clutch padding, in standard Imperial Guard uniform colors.
components:
- type: Sprite
sprite: _CP14/Clothing/Pants/Roles/Guard/wb_chainmail.rsi
sprite: _CP14/Clothing/Pants/Roles/Guard/b_chainmail.rsi
- type: Clothing
sprite: _CP14/Clothing/Pants/Roles/Guard/wb_chainmail.rsi
sprite: _CP14/Clothing/Pants/Roles/Guard/b_chainmail.rsi

View File

@@ -13,15 +13,6 @@
Piercing: 0.85
Heat: 0.90
- type: entity
parent: CP14ClothingShirtGuardBase
id: CP14ClothingShirtGuardsChainmailShirtWB
components:
- type: Sprite
sprite: _CP14/Clothing/Shirt/Roles/Guard/wb_chainmail.rsi
- type: Clothing
sprite: _CP14/Clothing/Shirt/Roles/Guard/wb_chainmail.rsi
- type: entity
parent: CP14ClothingShirtGuardBase
id: CP14ClothingShirtGuardsChainmailShirtB

View File

@@ -56,4 +56,17 @@
stampedColor: "#e8c348"
stampState: "bank_on_paper"
- type: Sprite
state: bank
state: bank
- type: entity
id: CP14StampGuardCommander
parent: CP14StampBase
name: guard commander stamp
suffix: DO NOT MAP
components:
- type: Stamp
stampedName: cp14-stamp-guard-commander
stampedColor: "#436a92"
stampState: "guard_on_paper"
- type: Sprite
state: guard

View File

@@ -0,0 +1,23 @@
- type: entity
parent: CP14BaseKey
id: CP14KeyTavernAlchemistAbstract
suffix: Abstract Alchemist
components:
- type: CP14AbstractKey
group: Alchemist
- type: entity
parent: CP14BaseKey
id: CP14KeyAlchemy1
suffix: Alchemy 1
components:
- type: CP14Key
autoGenerateShape: Alchemy1
- type: entity
parent: CP14BaseKey
id: CP14KeyAlchemy2
suffix: Alchemy 2
components:
- type: CP14Key
autoGenerateShape: Alchemy2

View File

@@ -0,0 +1,48 @@
- type: entity
parent: CP14BaseKey
id: CP14KeyBankEntrance
suffix: Bank Entrance
components:
- type: CP14Key
autoGenerateShape: BankEntrance
- type: entity
parent: CP14BaseKey
id: CP14KeyBankStaff
suffix: Bank Staff
components:
- type: CP14Key
autoGenerateShape: BankStaff
- type: entity
parent: CP14BaseKey
id: CP14KeyBankVault
name: golden key
suffix: Bank Vault
components:
- type: Sprite
layers:
- state: vault_key
map: [ "random" ]
- type: RandomSprite
available:
- random:
vault_key: ""
- type: CP14Key
autoGenerateShape: BankVault
- type: entity
parent: CP14BaseKey
id: CP14KeyBankCommandantRoom
suffix: Commandant
components:
- type: CP14Key
autoGenerateShape: BankCommandantRoom
- type: entity
parent: CP14BaseKey
id: CP14KeyBankSafe
suffix: Bank Safes
components:
- type: CP14Key
autoGenerateShape: BankSafe

View File

@@ -0,0 +1,59 @@
- type: entity
parent: BaseItem
id: CP14BaseKey
abstract: true
categories: [ ForkFiltered ]
name: key
description: A small, intricate piece of metal that opens some locks. Don't give it to anyone!
components:
- type: Tag
tags:
- CP14Key
- type: Item
size: Tiny
- type: Sprite
sprite: _CP14/Objects/keys.rsi
layers:
- state: key1
map: [ "random" ]
- type: RandomSprite
available:
- random:
key1: ""
key2: ""
key3: ""
key4: ""
key5: ""
key6: ""
key7: ""
key8: ""
key9: ""
key10: ""
key11: ""
key12: ""
key13: ""
key14: ""
key15: ""
key16: ""
key17: ""
key18: ""
- type: CP14Key
- type: EmitSoundOnLand
sound:
path: /Audio/_CP14/Items/key_drop.ogg
params:
variation: 0.05
- type: entity
parent: BaseItem
id: CP14BaseLockpick
name: lockpick
description: A thief's tool that, with proper skill and skill, allows you to pick any lock.
categories: [ ForkFiltered ]
components:
- type: Item
storedRotation: -90
- type: Sprite
sprite: _CP14/Objects/keys.rsi
state: lockpick
- type: CP14Lockpick

View File

@@ -0,0 +1,15 @@
- type: entity
parent: CP14BaseKey
id: CP14KeyTavernBlacksmithAbstract
suffix: Abstract Blacksmith
components:
- type: CP14AbstractKey
group: Blacksmith
- type: entity
parent: CP14BaseKey
id: CP14KeyBlacksmith
suffix: Blacksmith 1
components:
- type: CP14Key
autoGenerateShape: Blacksmith1

View File

@@ -0,0 +1,31 @@
- type: entity
parent: CP14BaseKey
id: CP14KeyGuardEntrance
suffix: Guard Entrance
components:
- type: CP14Key
autoGenerateShape: GuardEntrance
- type: entity
parent: CP14BaseKey
id: CP14KeyGuard
suffix: Guard
components:
- type: CP14Key
autoGenerateShape: Guard
- type: entity
parent: CP14BaseKey
id: CP14KeyGuardCommander
suffix: Guard Commander
components:
- type: CP14Key
autoGenerateShape: GuardCommander
- type: entity
parent: CP14BaseKey
id: CP14KeyGuardWeaponStorage
suffix: Guard Weapon Storage
components:
- type: CP14Key
autoGenerateShape: GuardWeaponStorage

View File

@@ -46,11 +46,11 @@
contents:
- id: CP14KeyTavernHall
- id: CP14KeyTavernStaff
- id: CP14KeyTavernDorms1
- id: CP14KeyTavernDorms2
- id: CP14KeyTavernDorms3
- id: CP14KeyTavernDorms4
- id: CP14KeyTavernDorms5
- id: CP14KeyTavernDormsAbstract # TODO: Move to main innkeeper
- id: CP14KeyTavernDormsAbstract
- id: CP14KeyTavernDormsAbstract
- id: CP14KeyTavernDormsAbstract
- id: CP14KeyTavernDormsAbstract
- type: entity
parent: CP14BaseKeyRing
@@ -59,7 +59,16 @@
components:
- type: StorageFill
contents:
- id: CP14KeyBlacksmith
- id: CP14KeyTavernBlacksmithAbstract
- type: entity
parent: CP14BaseKeyRing
id: CP14KeyRingPersonalHouse
suffix: Personal House
components:
- type: StorageFill
contents:
- id: CP14KeyPersonalHouseAbstract
- type: entity
parent: CP14BaseKeyRing
@@ -68,7 +77,7 @@
components:
- type: StorageFill
contents:
- id: CP14KeyAlchemy
- id: CP14KeyTavernAlchemistAbstract
- type: entity
parent: CP14BaseKeyRing
@@ -92,4 +101,26 @@
- id: CP14KeyBankVault
- id: CP14KeyBankEntrance
- id: CP14KeyBankStaff
- id: CP14KeyBankSafe
- id: CP14KeyBankSafe
- type: entity
parent: CP14BaseKeyRing
id: CP14KeyRingGuard
suffix: Guardian
components:
- type: StorageFill
contents:
- id: CP14KeyGuardEntrance
- id: CP14KeyGuard
- type: entity
parent: CP14BaseKeyRing
id: CP14KeyRingGuardCommander
suffix: Guard Commander
components:
- type: StorageFill
contents:
- id: CP14KeyGuardEntrance
- id: CP14KeyGuard
- id: CP14KeyGuardCommander
#- id: CP14KeyGuardWeaponStorage

View File

@@ -0,0 +1,87 @@
- type: entity
parent: CP14BaseKey
id: CP14KeyPersonalHouseAbstract
suffix: Abstract Personal house
components:
- type: CP14AbstractKey
group: PersonalHouse
- type: entity
parent: CP14BaseKey
id: CP14KeyPersonalHouse1
suffix: PersonalHouse1
components:
- type: CP14Key
autoGenerateShape: PersonalHouse1
- type: entity
parent: CP14BaseKey
id: CP14KeyPersonalHouse2
suffix: PersonalHouse2
components:
- type: CP14Key
autoGenerateShape: PersonalHouse2
- type: entity
parent: CP14BaseKey
id: CP14KeyPersonalHouse3
suffix: PersonalHouse3
components:
- type: CP14Key
autoGenerateShape: PersonalHouse3
- type: entity
parent: CP14BaseKey
id: CP14KeyPersonalHouse4
suffix: PersonalHouse4
components:
- type: CP14Key
autoGenerateShape: PersonalHouse4
- type: entity
parent: CP14BaseKey
id: CP14KeyPersonalHouse5
suffix: PersonalHouse5
components:
- type: CP14Key
autoGenerateShape: PersonalHouse5
- type: entity
parent: CP14BaseKey
id: CP14KeyPersonalHouse6
suffix: PersonalHouse6
components:
- type: CP14Key
autoGenerateShape: PersonalHouse6
- type: entity
parent: CP14BaseKey
id: CP14KeyPersonalHouse7
suffix: PersonalHouse7
components:
- type: CP14Key
autoGenerateShape: PersonalHouse7
- type: entity
parent: CP14BaseKey
id: CP14KeyPersonalHouse8
suffix: PersonalHouse8
components:
- type: CP14Key
autoGenerateShape: PersonalHouse8
- type: entity
parent: CP14BaseKey
id: CP14KeyPersonalHouse9
suffix: PersonalHouse9
components:
- type: CP14Key
autoGenerateShape: PersonalHouse9
- type: entity
parent: CP14BaseKey
id: CP14KeyPersonalHouse10
suffix: PersonalHouse10
components:
- type: CP14Key
autoGenerateShape: PersonalHouse10

View File

@@ -0,0 +1,63 @@
- type: entity
parent: CP14BaseKey
id: CP14KeyTavernHall
suffix: Tavern Hall
components:
- type: CP14Key
autoGenerateShape: TavernHall
- type: entity
parent: CP14BaseKey
id: CP14KeyTavernStaff
suffix: Tavern Staff
components:
- type: CP14Key
autoGenerateShape: TavernStaff
- type: entity
parent: CP14BaseKey
id: CP14KeyTavernDormsAbstract
suffix: Abstract Tavern Dorms
components:
- type: CP14AbstractKey
group: TavernDorms
- type: entity
parent: CP14BaseKey
id: CP14KeyTavernDorms1
suffix: Tavern Dorms 1
components:
- type: CP14Key
autoGenerateShape: TavernDorms1
- type: entity
parent: CP14BaseKey
id: CP14KeyTavernDorms2
suffix: Tavern Dorms 2
components:
- type: CP14Key
autoGenerateShape: TavernDorms2
- type: entity
parent: CP14BaseKey
id: CP14KeyTavernDorms3
suffix: Tavern Dorms 3
components:
- type: CP14Key
autoGenerateShape: TavernDorms3
- type: entity
parent: CP14BaseKey
id: CP14KeyTavernDorms4
suffix: Tavern Dorms 4
components:
- type: CP14Key
autoGenerateShape: TavernDorms4
- type: entity
parent: CP14BaseKey
id: CP14KeyTavernDorms5
suffix: Tavern Dorms 5
components:
- type: CP14Key
autoGenerateShape: TavernDorms5

View File

@@ -221,6 +221,16 @@
- !type:DoActsBehavior
acts: ["Destruction"]
- type: entity
parent: CP14ModularGripIronLong
id: CP14ModularGripIronLongGuard
components:
- type: Sprite
sprite: _CP14/Objects/ModularTools/GripLong/iron_grip_long_guard.rsi
state: icon
- type: CP14ModularCraftStartPoint
startProtoPart: CP14ModularGripIronLongGuard
- type: entity
parent: CP14ModularGripLong
id: CP14ModularGripGoldLong

View File

@@ -11,4 +11,22 @@
state: icon
- type: CP14ModularCraftAutoAssemble
details:
- BladeIronSword
- BladeIronSword
- type: entity
id: CP14ModularGuardHalberd
parent: CP14ModularGripIronLongGuard
name: "guard's halberd"
description: The standard issue armament of the imperial guard. A long iron halberd adorned with blue feathers and brass
components:
- type: Sprite
layers:
- state: icon
- sprite: _CP14/Objects/ModularTools/iron_sword.rsi
state: icon
- sprite: _CP14/Objects/ModularTools/Garde/iron_sharp.rsi
state: icon
- type: CP14ModularCraftAutoAssemble
details:
- BladeIronSword
- GardeSharpIron

View File

@@ -0,0 +1,19 @@
- type: entity
id: CP14BookImperialLawsHandBook
parent: BaseGuidebook
name: imperial laws
description: A book about Imperial Laws.
categories: [ ForkFiltered ]
components:
- type: Sprite
layers:
- state: paper
- state: cover_base
color: "#871619"
- state: decor_wingette
color: "#a3181d"
- state: icon_law
- type: GuideHelp
guides:
- CP14_RU_Imperial_Laws
- CP14_EN_Imperial_Laws

View File

@@ -1,12 +1,12 @@
- type: entity
id: CP14WallmountFlagBase
abstract: true
parent:
parent:
- CP14BaseWallmount
- CP14BaseFlammableSpreadingStrong
categories: [ ForkFiltered ]
name: tapestry
description: A piece of cloth pinned to the wall.
description: A piece of cloth pinned to the wall.
components:
- type: Sprite
sprite: _CP14/Structures/Decoration/flags_wallmount.rsi
@@ -55,11 +55,12 @@
parent: CP14WallmountFlagBase
id: CP14WallmountFlagTavern
name: tavern tapestry
description: A tapestry with a ?? symbol, indicating that blacksmiths dwell here.
description: A tapestry with a beer symbol, indicating that tavern is here.
components:
- type: Sprite
layers:
- state: fill_mercenary #TODO: Icon
- state: fill_mercenary
- state: icon_tavern
# Bank
@@ -72,7 +73,8 @@
- type: Sprite
layers:
- state: fill_bank
- state: icon_coins
- state: icon_coin
color: "#ad633b"
- type: entity
parent: CP14WallmountFlagBase
@@ -83,7 +85,20 @@
- type: Sprite
layers:
- state: fill_bank
- state: icon_vault
- state: icon_safe
color: "#ad633b"
- type: entity
parent: CP14WallmountFlagBase
id: CP14WallmountFlagBankCrates
name: bank crates tapestry
description: A tapestry with a crates symbol indicating that this is where the bank vaults reside.
components:
- type: Sprite
layers:
- state: fill_bank
- state: icon_crates
color: "#ad633b"
- type: entity
parent: CP14WallmountFlagBase
@@ -95,13 +110,51 @@
layers:
- state: fill_bank
- state: icon_ship
color: "#ad633b"
- type: entity
parent: CP14WallmountFlagBase
id: CP14WallmountFlagBankCommandant
name: commandant tapestry
description: A tapestry with a ?? symbol indicating that the Commandant lives here.
description: A tapestry with a star symbol indicating that the commandant lives here.
components:
- type: Sprite
layers:
- state: fill_bank #TODO: Icon
- state: fill_bank
- state: icon_star
color: "#ad633b"
# Guard
- type: entity
parent: CP14WallmountFlagBase
id: CP14WallmountFlagGuardSwords
name: guard tapestry
description: A tapestry with a swords symbol denoting that the guards are here.
components:
- type: Sprite
layers:
- state: fill_guard
- state: icon_swords
- type: entity
parent: CP14WallmountFlagBase
id: CP14WallmountFlagGuardShield
name: guard tapestry
description: A tapestry with a shield symbol denoting that the guards are here.
components:
- type: Sprite
layers:
- state: fill_guard
- state: icon_shield
- type: entity
parent: CP14WallmountFlagBase
id: CP14WallmountFlagGuardCommander
name: guard commander tapestry
description: A tapestry with a star symbol indicating that the Guard Commandant lives here.
components:
- type: Sprite
layers:
- state: fill_guard
- state: icon_star

View File

@@ -0,0 +1,35 @@
# Wooden
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorTavernAlchemy1
suffix: Alchemy 1
components:
- type: CP14Lock
autoGenerateShape: Alchemy1
- type: Lock
locked: true
- type: entity
parent:
- CP14WoodenDoorTavernAlchemy1
- CP14WoodenDoorMirrored
id: CP14WoodenDoorTavernAlchemyMirrored1
suffix: Alchemy 1, Mirrored
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorTavernAlchemy2
suffix: Alchemy 2
components:
- type: CP14Lock
autoGenerateShape: Alchemy2
- type: Lock
locked: true
- type: entity
parent:
- CP14WoodenDoorTavernAlchemy2
- CP14WoodenDoorMirrored
id: CP14WoodenDoorTavernAlchemyMirrored2
suffix: Alchemy 2, Mirrored

View File

@@ -0,0 +1,75 @@
# Iron
- type: entity
parent: CP14IronDoor
id: CP14IronDoorBankStaff
suffix: Bank Staff
components:
- type: CP14Lock
autoGenerateShape: BankStaff
- type: Lock
locked: true
- type: entity
parent:
- CP14IronDoorBankStaff
- CP14IronDoorMirrored
id: CP14IronDoorMirroredBankStaff
suffix: Bank Staff, Mirrored
- type: entity
parent: CP14IronDoor
id: CP14IronDoorBankVault
suffix: Bank Vault
components:
- type: CP14Lock
autoGenerateShape: BankVault
- type: Lock
locked: true
- type: entity
parent:
- CP14IronDoorBankVault
- CP14IronDoorMirrored
id: CP14IronDoorMirroredBankVault
suffix: Bank Vault, Mirrored
- type: entity
parent: CP14IronDoor
id: CP14IronDoorBankSafe
suffix: Bank Safe
components:
- type: CP14Lock
autoGenerateShape: BankSafe
- type: Lock
locked: true
- type: entity
parent: CP14IronDoor
id: CP14IronDoorBankCommandantRoom
suffix: Bank Commandant room
components:
- type: CP14Lock
autoGenerateShape: BankCommandantRoom
- type: Lock
locked: true
# Iron Windowed
- type: entity
parent: CP14IronDoorWindowed
id: CP14IronDoorWindowedBankEntrance
suffix: Bank Entrance
components:
- type: CP14Lock
autoGenerateShape: BankEntrance
- type: Lock
locked: true
- type: entity
parent:
- CP14IronDoorWindowedBankEntrance
- CP14IronDoorWindowedMirrored
id: CP14IronDoorWindowedMirroredBankEntrance
suffix: Bank Entrance, Mirrored

View File

@@ -0,0 +1,33 @@
- type: entity
parent: CP14IronDoor
id: CP14IronDoorBlacksmith1
suffix: Blacksmith
components:
- type: CP14Lock
autoGenerateShape: Blacksmith1
- type: Lock
locked: true
- type: entity
parent:
- CP14IronDoorBlacksmith1
- CP14IronDoorMirrored
id: CP14IronDoorMirroredBlacksmith1
suffix: Blacksmith, Mirrored
- type: entity
parent: CP14IronDoor
id: CP14IronDoorBlacksmith2
suffix: Blacksmith
components:
- type: CP14Lock
autoGenerateShape: Blacksmith2
- type: Lock
locked: true
- type: entity
parent:
- CP14IronDoorBlacksmith2
- CP14IronDoorMirrored
id: CP14IronDoorMirroredBlacksmith2
suffix: Blacksmith, Mirrored

View File

@@ -0,0 +1,63 @@
# Iron
- type: entity
parent: CP14IronDoor
id: CP14IronDoorGuard
suffix: Guard
components:
- type: CP14Lock
autoGenerateShape: Guard
- type: Lock
locked: true
- type: entity
parent: CP14IronDoor
id: CP14IronDoorGuardCommandantRoom
suffix: Guard Commander
components:
- type: CP14Lock
autoGenerateShape: GuardCommander
- type: Lock
locked: true
- type: entity
parent: CP14IronDoor
id: CP14IronDoorGuardWeaponStorage
suffix: Guard, Weapon Storage
components:
- type: CP14Lock
autoGenerateShape: GuardWeaponStorage
- type: Lock
locked: true
# Iron windowed
- type: entity
parent: CP14IronDoorWindowed
id: CP14IronDoorWindowedGuardEntrance
suffix: Guard, Entrance
components:
- type: CP14Lock
autoGenerateShape: GuardEntrance
- type: Lock
locked: true
- type: entity
parent:
- CP14IronDoorWindowedGuardEntrance
- CP14IronDoorWindowedMirrored
id: CP14IronDoorWindowedMirroredGuardEntrance
suffix: Guard, Entrance, Mirrored
# Grill Gate
- type: entity
parent: CP14FenceIronGrilleGate
id: CP14FenceIronGrilleGateGuard
suffix: Guard
components:
- type: CP14Lock
autoGenerateShape: Guard
- type: Lock
locked: true

View File

@@ -0,0 +1,151 @@
# Wooden
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorPersonalHouse1
suffix: PersonalHouse1
components:
- type: CP14Lock
autoGenerateShape: PersonalHouse1
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorPersonalHouse2
suffix: PersonalHouse2
components:
- type: CP14Lock
autoGenerateShape: PersonalHouse2
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorPersonalHouse3
suffix: PersonalHouse3
components:
- type: CP14Lock
autoGenerateShape: PersonalHouse3
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorPersonalHouse4
suffix: PersonalHouse4
components:
- type: CP14Lock
autoGenerateShape: PersonalHouse4
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorPersonalHouse5
suffix: PersonalHouse5
components:
- type: CP14Lock
autoGenerateShape: PersonalHouse5
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorPersonalHouse6
suffix: PersonalHouse6
components:
- type: CP14Lock
autoGenerateShape: PersonalHouse6
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorPersonalHouse7
suffix: PersonalHouse7
components:
- type: CP14Lock
autoGenerateShape: PersonalHouse7
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorPersonalHouse8
suffix: PersonalHouse8
components:
- type: CP14Lock
autoGenerateShape: PersonalHouse8
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorPersonalHouse9
suffix: PersonalHouse9
components:
- type: CP14Lock
autoGenerateShape: PersonalHouse9
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorPersonalHouse10
suffix: PersonalHouse10
components:
- type: CP14Lock
autoGenerateShape: PersonalHouse10
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorPersonalHouse11
suffix: PersonalHouse11
components:
- type: CP14Lock
autoGenerateShape: PersonalHouse10
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorPersonalHouse12
suffix: PersonalHouse12
components:
- type: CP14Lock
autoGenerateShape: PersonalHouse10
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorPersonalHouse13
suffix: PersonalHouse13
components:
- type: CP14Lock
autoGenerateShape: PersonalHouse10
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorPersonalHouse14
suffix: PersonalHouse14
components:
- type: CP14Lock
autoGenerateShape: PersonalHouse10
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorPersonalHouse15
suffix: PersonalHouse15
components:
- type: CP14Lock
autoGenerateShape: PersonalHouse10
- type: Lock
locked: true

View File

@@ -0,0 +1,87 @@
# Wooden
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorTavernStaff
suffix: Tavern Staff
components:
- type: CP14Lock
autoGenerateShape: TavernStaff
- type: Lock
locked: true
- type: entity
parent:
- CP14WoodenDoorTavernStaff
- CP14WoodenDoorMirrored
id: CP14WoodenDoorTavernStaffMirrored
suffix: Tavern Staff, Mirrored
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorTavernDorms1
suffix: Tavern Dorms 1
components:
- type: CP14Lock
autoGenerateShape: TavernDorms1
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorTavernDorms2
suffix: Tavern Dorms 2
components:
- type: CP14Lock
autoGenerateShape: TavernDorms2
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorTavernDorms3
suffix: Tavern Dorms 3
components:
- type: CP14Lock
autoGenerateShape: TavernDorms3
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorTavernDorms4
suffix: Tavern Dorms 4
components:
- type: CP14Lock
autoGenerateShape: TavernDorms4
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorTavernDorms5
suffix: Tavern Dorms 5
components:
- type: CP14Lock
autoGenerateShape: TavernDorms5
- type: Lock
locked: true
# Wooden windowed
- type: entity
parent: CP14WoodenDoorWindowed
id: CP14WoodenDoorWindowedTavernHall
suffix: Tavern Hall
components:
- type: CP14Lock
autoGenerateShape: TavernHall
- type: Lock
locked: true
- type: entity
parent:
- CP14WoodenDoorWindowedTavernHall
- CP14WoodenDoorWindowedMirrored
id: CP14WoodenDoorTavernHallMirrored
suffix: Tavern Hall, Mirrored

View File

@@ -42,80 +42,3 @@
#- type: Construction
# graph: CP14WoodenDoor
# node: CP14WoodenDoorMirrored
#Blacksmith
- type: entity
parent: CP14IronDoor
id: CP14IronDoorBlacksmith
suffix: Blacksmith
components:
- type: CP14Lock
autoGenerateShape: Blacksmith
- type: Lock
locked: true
- type: entity
parent:
- CP14IronDoorBlacksmith
- CP14IronDoorMirrored
id: CP14IronDoorMirroredBlacksmith
suffix: Blacksmith, Mirrored
# Bank
- type: entity
parent: CP14IronDoor
id: CP14IronDoorBankStaff
suffix: Bank Staff
components:
- type: CP14Lock
autoGenerateShape: BankStaff
- type: Lock
locked: true
- type: entity
parent:
- CP14IronDoorBankStaff
- CP14IronDoorMirrored
id: CP14IronDoorMirroredBankStaff
suffix: Bank Staff, Mirrored
- type: entity
parent: CP14IronDoor
id: CP14IronDoorBankVault
suffix: Bank Vault
components:
- type: CP14Lock
autoGenerateShape: BankVault
- type: Lock
locked: true
- type: entity
parent:
- CP14IronDoorBankVault
- CP14IronDoorMirrored
id: CP14IronDoorMirroredBankVault
suffix: Bank Vault, Mirrored
- type: entity
parent: CP14IronDoor
id: CP14IronDoorBankSafe
suffix: Bank Safe
components:
- type: CP14Lock
autoGenerateShape: BankSafe
- type: Lock
locked: true
- type: entity
parent: CP14IronDoor
id: CP14IronDoorBankCommandantRoom
suffix: Bank Commandant room
components:
- type: CP14Lock
autoGenerateShape: BankCommandantRoom
- type: Lock
locked: true

View File

@@ -45,39 +45,3 @@
#- type: Construction
# graph: CP14WoodenDoor
# node: CP14WoodenDoorMirrored
# Bank
- type: entity
parent: CP14IronDoorWindowed
id: CP14IronDoorWindowedBankEntrance
suffix: Bank Entrance
components:
- type: CP14Lock
autoGenerateShape: BankEntrance
- type: Lock
locked: true
- type: entity
parent:
- CP14IronDoorWindowedBankEntrance
- CP14IronDoorWindowedMirrored
id: CP14IronDoorWindowedMirroredBankEntrance
suffix: Bank Entrance, Mirrored
- type: entity
parent: CP14IronDoorWindowed
id: CP14IronDoorWindowedBlacksmith
suffix: Blacksmith
components:
- type: CP14Lock
autoGenerateShape: Blacksmith
- type: Lock
locked: true
- type: entity
parent:
- CP14IronDoorWindowedBlacksmith
- CP14IronDoorWindowedMirrored
id: CP14IronDoorWindowedMirroredBlacksmith
suffix: Blacksmith, Mirrored

View File

@@ -42,92 +42,4 @@
closedSpriteState: closed_mirrored
- type: Construction
graph: CP14WoodenDoor
node: CP14WoodenDoorMirrored
# Tavern
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorTavernStaff
suffix: Tavern Staff
components:
- type: CP14Lock
autoGenerateShape: TavernStaff
- type: Lock
locked: true
- type: entity
parent:
- CP14WoodenDoorTavernStaff
- CP14WoodenDoorMirrored
id: CP14WoodenDoorTavernStaffMirrored
suffix: Tavern Staff, Mirrored
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorTavernDorms1
suffix: Tavern Dorms 1
components:
- type: CP14Lock
autoGenerateShape: TavernDorms1
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorTavernDorms2
suffix: Tavern Dorms 2
components:
- type: CP14Lock
autoGenerateShape: TavernDorms2
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorTavernDorms3
suffix: Tavern Dorms 3
components:
- type: CP14Lock
autoGenerateShape: TavernDorms3
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorTavernDorms4
suffix: Tavern Dorms 4
components:
- type: CP14Lock
autoGenerateShape: TavernDorms4
- type: Lock
locked: true
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorTavernDorms5
suffix: Tavern Dorms 5
components:
- type: CP14Lock
autoGenerateShape: TavernDorms5
- type: Lock
locked: true
# Alchemy
- type: entity
parent: CP14WoodenDoor
id: CP14WoodenDoorTavernAlchemy
suffix: Alchemy
components:
- type: CP14Lock
autoGenerateShape: Alchemy
- type: Lock
locked: true
- type: entity
parent:
- CP14WoodenDoorTavernAlchemy
- CP14WoodenDoorMirrored
id: CP14WoodenDoorTavernAlchemyMirrored
suffix: Alchemy, Mirrored
node: CP14WoodenDoorMirrored

View File

@@ -46,22 +46,3 @@
- type: Construction
graph: CP14WoodenDoor
node: CP14WoodenDoorWindowedMirrored
# Tavern
- type: entity
parent: CP14WoodenDoorWindowed
id: CP14WoodenDoorWindowedTavernHall
suffix: Tavern Hall
components:
- type: CP14Lock
autoGenerateShape: TavernHall
- type: Lock
locked: true
- type: entity
parent:
- CP14WoodenDoorWindowedTavernHall
- CP14WoodenDoorWindowedMirrored
id: CP14WoodenDoorTavernHallMirrored
suffix: Tavern Hall, Mirrored

View File

@@ -15,6 +15,8 @@
bodyType: Static
- type: Transform
anchored: true
- type: PlacementReplacement
key: walls
- type: entity
parent: CP14BaseFence

View File

@@ -41,7 +41,7 @@
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,-0.29"
bounds: "-0.5,-0.15,0.5,0.15"
density: 1000
mask:
- FullTileMask
@@ -50,42 +50,6 @@
- LowImpassable
- WallLayer
- type: entity
parent:
- CP14BaseFenceCorner
- CP14FenceIronGrilleBase
id: CP14FenceIronGrilleCorner
suffix: Corner
components:
- type: Icon
state: corner
- type: Sprite
state: corner
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,-0.29"
density: 1000
mask:
- TableMask
layer:
- MidImpassable
- LowImpassable
- WallLayer
fix2:
shape:
!type:PhysShapeAabb
bounds: "0.29,-0.49,0.49,0.49"
density: 1000
mask:
- TableMask
layer:
- MidImpassable
- LowImpassable
- WallLayer
- type: entity
parent:
- CP14BaseFenceDoor
@@ -104,4 +68,17 @@
openSound:
collection: MetalScrape
closeSound:
collection: MetalScrape
collection: MetalScrape
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.5,-0.15,0.5,0.15"
density: 1000
mask:
- FullTileMask
layer:
- MidImpassable
- LowImpassable
- WallLayer

View File

@@ -0,0 +1,50 @@
- type: entity
parent:
- CP14BaseFence
id: CP14FenceIronGrilleWindowBase
name: iron grille window
description: A strong barrier made of iron bars welded together. The absence of the bottom part allows you to slip objects through it.
abstract: true
components:
- type: Sprite
sprite: _CP14/Structures/Fences/iron_grille_top.rsi
- type: Icon
sprite: _CP14/Structures/Fences/iron_grille_top.rsi
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: StructuralMetallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 250
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
parent:
- CP14FenceIronGrilleWindowBase
- CP14BaseFenceStraight
id: CP14FenceIronGrilleWindowStraight
suffix: Straight
components:
- type: Icon
state: straight
- type: Sprite
state: straight
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.5,-0.15,0.5,0.15"
density: 1000
mask:
- Impassable
layer:
- MidImpassable
- HighImpassable

View File

@@ -1,178 +0,0 @@
- type: entity
parent: BaseItem
id: CP14BaseKey
abstract: true
categories: [ ForkFiltered ]
name: key
description: A small, intricate piece of iron that opens certain locks. Don't give it to just anyone!
components:
- type: Tag
tags:
- CP14Key
- type: Item
size: Tiny
- type: Sprite
sprite: _CP14/Objects/keys.rsi
- type: CP14Key
autoGenerateShape: Debug
- type: EmitSoundOnLand
sound:
path: /Audio/_CP14/Items/key_drop.ogg
params:
variation: 0.05
- type: entity
parent: BaseItem
id: CP14BaseLockpick
name: lockpick
description: A thief's tool that, with proper skill and skill, allows you to pick any lock.
categories: [ ForkFiltered ]
components:
- type: Item
storedRotation: -90
- type: Sprite
sprite: _CP14/Objects/keys.rsi
state: lockpick
- type: CP14Lockpick
# Tavern
- type: entity
parent: CP14BaseKey
id: CP14KeyTavernHall
name: tavern hall key
components:
- type: Sprite
state: key1
- type: CP14Key
autoGenerateShape: TavernHall
- type: entity
parent: CP14BaseKey
id: CP14KeyTavernStaff
name: tavern staff key
components:
- type: Sprite
state: key2
- type: CP14Key
autoGenerateShape: TavernStaff
- type: entity
parent: CP14BaseKey
id: CP14KeyTavernDorms1
name: tavern room 1 key
components:
- type: Sprite
state: key3
- type: CP14Key
autoGenerateShape: TavernDorms1
- type: entity
parent: CP14BaseKey
id: CP14KeyTavernDorms2
name: tavern room 2 key
components:
- type: Sprite
state: key4
- type: CP14Key
autoGenerateShape: TavernDorms2
- type: entity
parent: CP14BaseKey
id: CP14KeyTavernDorms3
name: tavern room 3 key
components:
- type: Sprite
state: key5
- type: CP14Key
autoGenerateShape: TavernDorms3
- type: entity
parent: CP14BaseKey
id: CP14KeyTavernDorms4
name: tavern room 4 key
components:
- type: Sprite
state: key6
- type: CP14Key
autoGenerateShape: TavernDorms4
- type: entity
parent: CP14BaseKey
id: CP14KeyTavernDorms5
name: tavern room 5 key
components:
- type: Sprite
state: key7
- type: CP14Key
autoGenerateShape: TavernDorms5
- type: entity
parent: CP14BaseKey
id: CP14KeyAlchemy
name: alchemist key
components:
- type: Sprite
state: key8
- type: CP14Key
autoGenerateShape: Alchemy
- type: entity
parent: CP14BaseKey
id: CP14KeyBlacksmith
name: blacksmith key
components:
- type: Sprite
state: key8
- type: CP14Key
autoGenerateShape: Blacksmith
- type: entity
parent: CP14BaseKey
id: CP14KeyBankEntrance
name: bank entrance key
components:
- type: Sprite
state: key9
- type: CP14Key
autoGenerateShape: BankEntrance
- type: entity
parent: CP14BaseKey
id: CP14KeyBankStaff
name: bank staff key
components:
- type: Sprite
state: key10
- type: CP14Key
autoGenerateShape: BankStaff
- type: entity
parent: CP14BaseKey
id: CP14KeyBankVault
name: bank vault key
components:
- type: Sprite
state: key11
- type: CP14Key
autoGenerateShape: BankVault
- type: entity
parent: CP14BaseKey
id: CP14KeyBankCommandantRoom
name: bank commandant room key
components:
- type: Sprite
state: key11
- type: CP14Key
autoGenerateShape: BankCommandantRoom
- type: entity
parent: CP14BaseKey
id: CP14KeyBankSafe
name: bank safe key
components:
- type: Sprite
state: key12
- type: CP14Key
autoGenerateShape: BankSafe

View File

@@ -27,4 +27,11 @@
id: CP14_EN_Demiplanes
name: Demiplanes exploration
text: "/ServerInfo/_CP14/Guidebook_EN/Demiplanes.xml"
filterEnabled: True
filterEnabled: True
- type: guideEntry
crystallPunkAllowed: true
id: CP14_EN_Imperial_Laws
name: Imperial laws
text: "/ServerInfo/_CP14/Guidebook_EN/ImperialLaws.xml"
filterEnabled: True

View File

@@ -27,4 +27,11 @@
id: CP14_RU_Demiplanes
name: Исследование демипланов
text: "/ServerInfo/_CP14/Guidebook_RU/Demiplanes.xml"
filterEnabled: True
filterEnabled: True
- type: guideEntry
crystallPunkAllowed: true
id: CP14_RU_Imperial_Laws
name: Имперские законы
text: "/ServerInfo/_CP14/Guidebook_RU/ImperialLaws.xml"
filterEnabled: True

View File

@@ -7,6 +7,7 @@
children:
- CP14_EN_Alchemy
- CP14_EN_Demiplanes
- CP14_EN_Imperial_Laws
- type: guideEntry
crystallPunkAllowed: true
@@ -17,3 +18,4 @@
children:
- CP14_RU_Alchemy
- CP14_RU_Demiplanes
- CP14_RU_Imperial_Laws

View File

@@ -9,6 +9,7 @@
- CP14ClothingCloakFurcapeBlue
- CP14ClothingCloakMaidArpon
- CP14ClothingCloakRitualAttireLeather
- CP14ClothingCloakWhite
- type: loadout
id: CP14ClothingCloakFurcapeBlack
@@ -30,6 +31,11 @@
equipment:
cloak: CP14ClothingCloakRitualAttireLeather
- type: loadout
id: CP14ClothingCloakWhite
equipment:
cloak: CP14ClothingCloakWhite
# Eyes
- type: loadoutGroup

View File

@@ -7,12 +7,6 @@
minLimit: 0
loadouts:
- CP14ClothingCloakGuardBlue
- CP14ClothingCloakGuardWhite
- type: loadout
id: CP14ClothingCloakGuardWhite
equipment:
cloak: CP14ClothingCloakGuardWhite
- type: loadout
id: CP14ClothingCloakGuardBlue
@@ -24,9 +18,14 @@
- type: loadoutGroup
id: CP14GuardHead
name: cp14-loadout-guard-head
minLimit: 0
minLimit: 1
loadouts:
- CP14ClothingHeadMetalHeadband
- CP14ClothingHeadGuardHelmet
- type: loadout
id: CP14ClothingHeadGuardHelmet
equipment:
head: CP14ClothingHeadGuardHelmet
# Pants
@@ -47,15 +46,23 @@
id: CP14GuardShirt
name: cp14-loadout-guard-shirt
loadouts:
- CP14ClothingShirtGuardsChainmailShirtWB
- CP14ClothingShirtGuardsChainmailShirtB
- type: loadout
id: CP14ClothingShirtGuardsChainmailShirtWB
equipment:
shirt: CP14ClothingShirtGuardsChainmailShirtWB
- type: loadout
id: CP14ClothingShirtGuardsChainmailShirtB
equipment:
shirt: CP14ClothingShirtGuardsChainmailShirtB
shirt: CP14ClothingShirtGuardsChainmailShirtB
# Spells
- type: loadoutGroup
id: CP14GuardSpells
name: cp14-loadout-guard-spells
loadouts:
- CP14ActionSpellFlashLight
- type: loadout
id: CP14ActionSpellFlashLight
dummyEntity: CP14ActionSpellFlashLight
actions:
- CP14ActionSpellFlashLight

View File

@@ -68,6 +68,7 @@
- CP14GeneralShoes
- CP14GeneralBack
- CP14GeneralTrinkets
- CP14GuardSpells
- type: roleLoadout
id: JobCP14Guard
@@ -82,6 +83,7 @@
- CP14GeneralShoes
- CP14GeneralBack
- CP14GeneralTrinkets
- CP14GuardSpells
- type: roleLoadout
id: JobCP14Commandant
@@ -106,4 +108,4 @@
- CP14BankPants
- CP14BankShoes
- CP14GeneralBack
- CP14GeneralTrinkets
- CP14GeneralTrinkets

View File

@@ -1,66 +1,11 @@
- type: CP14LockCategory
id: Debug
complexity: 10
- type: CP14LockGroup
id: TavernDorms
# Bank
- type: CP14LockCategory
id: BankEntrance
complexity: 3
- type: CP14LockCategory
id: BankStaff
complexity: 5
- type: CP14LockCategory
id: BankVault
complexity: 7
- type: CP14LockCategory
id: BankCommandantRoom
complexity: 7
- type: CP14LockCategory
id: BankSafe
complexity: 5
# Tavern
- type: CP14LockCategory
id: TavernHall
complexity: 3
- type: CP14LockCategory
id: TavernStaff
complexity: 5
- type: CP14LockCategory
id: TavernDorms1
complexity: 3
- type: CP14LockCategory
id: TavernDorms2
complexity: 3
- type: CP14LockCategory
id: TavernDorms3
complexity: 3
- type: CP14LockCategory
id: TavernDorms4
complexity: 3
- type: CP14LockCategory
id: TavernDorms5
complexity: 3
# Mercenary
- type: CP14LockCategory
id: Alchemy
complexity: 5
- type: CP14LockCategory
- type: CP14LockGroup
id: Blacksmith
complexity: 5
- type: CP14LockGroup
id: Alchemist
- type: CP14LockGroup
id: PersonalHouse

View File

@@ -0,0 +1,178 @@
# Bank
- type: CP14LockType
id: BankEntrance
complexity: 3
name: cp14-lock-shape-bank-entrance
- type: CP14LockType
id: BankStaff
complexity: 4
name: cp14-lock-shape-bank-staff
- type: CP14LockType
id: BankCommandantRoom
complexity: 5
name: cp14-lock-shape-bank-commandant
- type: CP14LockType
id: BankSafe
complexity: 6
name: cp14-lock-shape-bank-safe
- type: CP14LockType
id: BankVault
complexity: 7
name: cp14-lock-shape-bank-vault
# Tavern
- type: CP14LockType
id: TavernHall
complexity: 3
name: cp14-lock-shape-tavern-hall
- type: CP14LockType
id: TavernStaff
complexity: 4
name: cp14-lock-shape-tavern-staff
- type: CP14LockType
id: TavernDorms1
group: TavernDorms
complexity: 3
name: cp14-lock-shape-tavern-dorm1
- type: CP14LockType
id: TavernDorms2
group: TavernDorms
complexity: 3
name: cp14-lock-shape-tavern-dorm2
- type: CP14LockType
id: TavernDorms3
group: TavernDorms
complexity: 3
name: cp14-lock-shape-tavern-dorm3
- type: CP14LockType
id: TavernDorms4
group: TavernDorms
complexity: 3
name: cp14-lock-shape-tavern-dorm4
- type: CP14LockType
id: TavernDorms5
group: TavernDorms
complexity: 3
name: cp14-lock-shape-tavern-dorm5
# Mercenary
- type: CP14LockType
id: Alchemy1
group: Alchemist
complexity: 4
name: cp14-lock-shape-alchemist1
- type: CP14LockType
id: Alchemy2
group: Alchemist
complexity: 4
name: cp14-lock-shape-alchemist2
- type: CP14LockType
id: Blacksmith1
group: Blacksmith
complexity: 4
name: cp14-lock-shape-blacksmith1
- type: CP14LockType
id: Blacksmith2
group: Blacksmith
complexity: 4
name: cp14-lock-shape-blacksmith2
# Personal house
- type: CP14LockType
id: PersonalHouse1
group: PersonalHouse
complexity: 3
name: cp14-lock-shape-personalhouse1
- type: CP14LockType
id: PersonalHouse2
group: PersonalHouse
complexity: 3
name: cp14-lock-shape-personalhouse2
- type: CP14LockType
id: PersonalHouse3
group: PersonalHouse
complexity: 3
name: cp14-lock-shape-personalhouse3
- type: CP14LockType
id: PersonalHouse4
group: PersonalHouse
complexity: 3
name: cp14-lock-shape-personalhouse4
- type: CP14LockType
id: PersonalHouse5
group: PersonalHouse
complexity: 3
name: cp14-lock-shape-personalhouse5
- type: CP14LockType
id: PersonalHouse6
group: PersonalHouse
complexity: 3
name: cp14-lock-shape-personalhouse6
- type: CP14LockType
id: PersonalHouse7
group: PersonalHouse
complexity: 3
name: cp14-lock-shape-personalhouse7
- type: CP14LockType
id: PersonalHouse8
group: PersonalHouse
complexity: 3
name: cp14-lock-shape-personalhouse8
- type: CP14LockType
id: PersonalHouse9
group: PersonalHouse
complexity: 3
name: cp14-lock-shape-personalhouse9
- type: CP14LockType
id: PersonalHouse10
group: PersonalHouse
complexity: 3
name: cp14-lock-shape-personalhouse10
# Guard
- type: CP14LockType
id: GuardEntrance
complexity: 3
name: cp14-lock-shaper-guard-entrance
- type: CP14LockType
id: Guard
complexity: 5
name: cp14-lock-shaper-guard-staff
- type: CP14LockType
id: GuardCommander
complexity: 7
name: cp14-lock-shaper-guard-commander
- type: CP14LockType
id: GuardWeaponStorage
complexity: 7
name: cp14-lock-shaper-guard-weapon-storage

View File

@@ -58,8 +58,31 @@
availableJobs:
CP14Adventurer: [ -1, -1 ]
CP14Alchemist: [ 2, 4 ]
CP14Blacksmith: [ 1, 1 ]
CP14Blacksmith: [ 1, 2 ]
CP14Innkeeper: [ 3, 4 ]
CP14Commandant: [1, 1]
CP14Banker: [3, 4]
#CP14GuardCommander: [1, 1]
CP14Guard: [8, 8]
CP14GuardCommander: [1, 1]
- type: CP14StationKeyDistribution
keys:
- TavernDorms1
- TavernDorms2
- TavernDorms3
- Alchemy1
- Alchemy2
- Blacksmith1
- PersonalHouse1
- PersonalHouse2
- PersonalHouse3
- PersonalHouse4
- PersonalHouse5
- PersonalHouse6
- PersonalHouse7
- PersonalHouse8
- PersonalHouse9
- PersonalHouse10
- PersonalHouse11
- PersonalHouse12
- PersonalHouse13
- PersonalHouse14

View File

@@ -14,4 +14,5 @@
- type: startingGear
id: CP14GuardGear
equipment:
keys: CP14KeyRingGuard
belt1: CP14WalletFilledTest

View File

@@ -19,4 +19,5 @@
- type: startingGear
id: CP14GuardCommanderGear
equipment:
keys: CP14KeyRingGuardCommander
belt1: CP14WalletFilledTest

View File

@@ -14,4 +14,5 @@
- type: startingGear
id: CP14AdventurerGear
equipment:
keys: CP14KeyRingPersonalHouse
belt1: CP14WalletFilledTest

View File

@@ -0,0 +1,177 @@
<Document>
# Imperial Laws
Publication of the official jurisdictional body of the Zellasian Empire .
## Preamble
This set of laws of the Empire is designed to ensure order, justice and security throughout the territory of the Empire. The laws are mandatory for all citizens, temporary residents and guests of the Empire. Ignoring or violating the provisions set out in this book is punishable in accordance with the established norms.
Every crime recorded on the territory of the Empire is assessed according to the following parameters:
Severity category - determines the basic level of punishment.
Modifiers - increase or decrease responsibility.
Sentence - the final measure of punishment is determined by the authorized body (or designated persons).
## Section I. Categories of Crimes
### Minor violations
Crimes that do not cause significant harm to person or property.
[bold]Examples:[/bold]
1) Insult to the Empire.
2) Damage to property or cruelty to animals.
3) Petty theft (up to 1 silver coin).
4) Disturbance of public order
[bold]Punishments:[/bold]
1) Fines, not only material, but also limiting rights and services for a certain period of time
2) Community service for the benefit of the injured party or the city as a whole
3) Apology to the injured party.
[bold]One type of punishment is selected without taking into account modifiers.[/bold]
### Mild violations
Actions that affect authorities or cause moderate harm to others.
[bold]Examples:[/bold]
1) Resistance to government officials.
2) Negligence in the performance of duties.
3) Failure to pay protection fee and/or licence trade tax.
4) Steal from 1 silver coin to 1 gold coin.
5) Causing minor bodily harm.
[bold]Punishments:[/bold]
1) Fines, not only material, but also limiting rights and services for a certain period of time
2) Double compensation for damages to the injured party.
3) Public works for the benefit of the Empire.
[bold]Are selected without taking into account modifiers[/bold]
### Moderate violations
Actions that cause significant harm or threaten the stability of the Empire.
[bold]Examples:[/bold]
1) Arbitrariness or abuse of authority.
2) Sabotage.
3) Robbery (from 1 gold coin).
4) Causing moderate harm to health.
[bold]Punishments:[/bold]
1) Double compensation for damages to the injured party.
2) Expulsion from a faction, camp (both temporary and permanent)
3) Atonement for punishment through the demiplane to complete the task.
4) The victim has the right to challenge the accused to a duel. The accused's victory in the duel removes the charges.
[bold]One type of punishment is selected without taking into account modifiers[/bold]
### Serious violations
Crimes with a high level of danger to society and the structures of the Empire.
[bold]Examples:[/bold]
1) Forced religious conversion.
2) Membership in criminal groups.
3) Racketeering is an illegal extortion of money from entrepreneurs by criminal elements, racketeers, carried out through threats and blackmail.
4) Murder
[bold]Punishments:[/bold]
1) Double compensation for damages to the injured party.
2) Expulsion from a faction, camp (both temporary and permanent)
3) Atonement for punishment through the demiplane to complete the task.
4) The victim has the right to challenge the accused to a duel. The murderer's victory in the duel removes the charges.
[bold]Two types of punishment are selected without taking into account modifiers[/bold]
### Extremely severe violations
Particularly dangerous acts that threaten the foundations of the Empire.
[bold]Examples:[/bold]
1) Betrayal of the Crown.
2) Terrorist act or robbery raid
3) especially large-scale theft.
4) Destruction of the body
[bold]Punishments:[/bold]
1) Public execution.
2) Payment of a fine by the head of the defendant's faction
3) Sent to the Imperial City Court
[bold]One type of punishment is selected without taking into account modifiers[/bold]
## Section II. Crime Modifiers
1. Mitigating circumstances
Self-defense: if the crime is committed in defense of life.
Necessity: The action is taken to prevent a greater threat.
Repentance: admission of guilt and cooperation with authorities.
Inexperience (ignorance): If the offender has no previous offenses or does not understand the rules (e.g. new player), the punishment may be replaced by training or a warning. Applies only to minor and minor-moderate offenses
Effect:
The punishment is reduced by one level (for example, an average violation is considered light-average).
2. Aggravating circumstances
Recidivism: repeat commission of a crime.
Cultural aspect: if the crime violates the canons of religion, traditions or laws of a specific race/faction, this is taken into account (for example, desecration of a shrine).
Presence of victims: If the crime resulted in serious injury, death, or destruction of important objects.
Complicity in collusion: group participation in a violation.
Effect:
The punishment in the current category is increased.
3. Extremely aggravating circumstances
Direct assault: If the offender acted openly and threatened others
Wartime: If the crime is committed during a crisis or war, the punishment is more severe.
Cruelty: If the crime is committed with particular cruelty or sophistication
The organizer of the conspiracy: the leader of a criminal group
Effect:
Transferring the crime to the next level of complexity.
## Section III. The Judicial System
The case is being considered:
Representatives of the guards - for minor and moderate crimes.
By the Imperial Court or the commander of the guard - for medium and serious crimes. The commander of the guard also has the right to delegate authority to a trusted person.
When considering a case, government officials have the right to independently choose a punishment consistent with the category of crimes after taking into account all modifiers, and also if the victim of the crime did not use the right to a duel.
Note for players:
This document is designed to provide a fully immersive gaming experience. The laws of the Empire maintain a fair balance between role-playing and mechanics. Violations and penalties are assessed individually, taking into account modifiers and circumstances.
</Document>

View File

@@ -0,0 +1,178 @@
<Document>
# Имперские Законы
Издание официального юрисдикционного органа Империи Зелласиан.
## Преамбула
Настоящий свод законов Империи разработан с целью обеспечения порядка, справедливости и безопасности на всей территории Империи. Законы обязательны для соблюдения всеми гражданами, временными жителями и гостями Империи. Игнорирование или нарушение положений, изложенных в данной книге, карается в соответствии с установленными нормами.
Каждое преступление, зафиксированное на территории Империи, оценивается по следующим параметрам:
Категория тяжести — определяет базовую степень наказания.
Модификаторы — усиливают или смягчают ответственность.
Приговор — итоговая мера наказания определяется уполномоченным органом (или назначенными лицами).
## Раздел I. Категории преступлений
### Легкие нарушения
Преступления, не наносящие значительного вреда личности или имуществу.
[bold]Примеры:[/bold]
1) Оскорбление Империи.
2) Порча имущества или жестокое обращение с животными.
3) Мелкая кража (до 1 серебряной монеты).
4) Нарушение общественного порядка
[bold]Наказания:[/bold]
1) Штрафы, не только материальные, но и ограничивающие права и услуги на определенное время
2) Общественные работы на благо пострадавшей стороне или городу в целом
3) Извинение перед пострадавшей стороной.
[bold]Выбирается один тип наказания без учета модификаторов.[/bold]
### Легко-средние нарушения
Действия, затрагивающие органы власти или наносящие умеренный ущерб другим.
[bold]Примеры:[/bold]
1) Сопротивление представителям власти.
2) Халатность в выполнении обязанностей.
3) Неуплата защитного сбора и/или налога на лицензионную торговлю
4) Кража от 1 серебряной монеты до 1 золотой монеты.
5) Нанесение легких телесных повреждений.
[bold]Наказания:[/bold]
1) Штрафы, не только материальные, но и ограничивающие права и услуги на определенное время
2) Возмещение ущерба пострадавшей стороне в двойном размере.
3) Общественные работы на благо Империи.
[bold]Выбираются два типа наказания без учета модификаторов[/bold]
### Средние нарушения
Действия, наносящие значительный вред, либо угрожающие стабильности Империи.
[bold]Примеры:[/bold]
1) Самоуправство или превышение полномочий.
2) Саботаж.
3) Грабеж (от 1 золотой монеты).
4) Причинение среднего вреда здоровью.
[bold]Наказания:[/bold]
1) Возмещение ущерба пострадавшей стороне в двойном размере.
2) Изгнание из фракции, лагеря (как временное, так и постоянное)
3) Искупления наказания через демиплан для выполнения задания.
4) Жертва имеет право вызвать обвиняемого на дуэль. Победа обвиняемого в дуэли снимает обвинения.
[bold]Выбирается один тип наказания без учета модификаторов[/bold]
### Средне-тяжелые нарушения
Преступления с высоким уровнем опасности для общества и структур Империи.
[bold]Примеры:[/bold]
1) Насильственное обращение в религию.
2) Членство в преступных группировках.
3) Рекет - незаконное, производимое путем угроз, шантажа вымогательство денег от предпринимателей со стороны преступных элементов, рэкетиров
4) Убийство
[bold]Наказания:[/bold]
1) Возмещение ущерба пострадавшей стороне в двойном размере.
2) Изгнание из фракции, лагеря (как временное, так и постоянное)
3) Искупления наказания через демиплан для выполнения задания.
4) Жертва имеет право вызвать обвиняемого на дуэль. Победа убийцы в дуэли снимает обвинения.
[bold]Выбираются два типа наказания без учета модификаторов[/bold]
### Тяжелые нарушения
Особо опасные деяния, угрожающие основам Империи.
[bold]Примеры:[/bold]
1) Предательство короны.
2) Террористический акт или разбойничий налёт
3) Крупное хищение.
4) Уничтожение тела
[bold]Наказания:[/bold]
1) Публичная казнь.
2) Уплата виры главой фракции подсудимого
3) Отправка в суд имперского города
[bold]Выбирается один тип наказания без учета модификаторов[/bold]
## Раздел II. Модификаторы преступлений
1. Смягчающие обстоятельства
Самооборона: если преступление совершено для защиты жизни.
Необходимость: действие совершено для предотвращения большей угрозы.
Покаяние: признание вины и сотрудничество с властями.
Неопытность (незнание): Если преступник ранее не совершал правонарушений или не понимает правил (например, новый игрок), наказание может быть заменено на обучение или предупреждение. Применяется только к легким и легко-средним нарушениям
Эффект:
Наказание смягчается на одну ступень (например, среднее нарушение рассматривается как легко-среднее).
2. Отягчающие обстоятельства
Рецидив: повторное совершение преступления.
Культурный аспект: если преступление нарушает каноны религии, традиции или законы конкретной расы/фракции, это учитывается (например, осквернение святыни).
Наличие жертв: Если преступление привело к серьёзным ранениям, смерти или разрушению важных объектов.
Соучастие в сговоре: групповое участие в нарушении.
Эффект:
Усиливается наказание в текущей категории.
3. Крайне отягчающие обстоятельства
Прямое нападение: Если преступник действовал открыто и угрожал другим
Военное время: Если преступление совершено во время кризиса или войны, наказание ужесточается.
Жестокость: Если преступление совершено с особой жестокостью или изощрённостью
Организатор сговора: лидер преступной группировки
Эффект:
Перевод преступления на следующую категорию сложности.
## Раздел III. Судебная система
Рассмотрение дела осуществляется:
Представителями стражи — для преступлений легкой и средней тяжести.
Имперским судом или командиром стражи — для среднетяжелых и тяжких преступлений. Так же командир стражи имеет право на делегирование полномочий доверенному лицу.
При рассмотрении дела представители власти имеют право на самостоятельный выбор наказания согласованному к категории преступлений после учета всех модификаторов, а также если жертва преступления не использовало право дуэли.
Примечание для игроков:
Настоящий документ разработан с целью обеспечить полное погружение в игровой процесс. Законы Империи поддерживают справедливый баланс между ролевой игрой и механикой. Нарушения и наказания оцениваются индивидуально с учетом модификаторов и обстоятельств.
</Document>

Binary file not shown.

After

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 950 B

After

Width:  |  Height:  |  Size: 966 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 534 B

After

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 682 B

After

Width:  |  Height:  |  Size: 691 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 913 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 B

View File

@@ -3,15 +3,15 @@
"license": "CLA",
"copyright": "Created by TheShuEd",
"size": {
"x": 32,
"y": 32
"x": 48,
"y": 48
},
"states": [
{
"name": "icon"
},
{
"name": "equipped-SHIRT",
"name": "equipped-HELMET",
"directions": 4
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 842 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 789 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1001 B

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 492 B

After

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

View File

@@ -33,6 +33,9 @@
{
"name": "bank_on_paper"
},
{
"name": "guard_on_paper"
},
{
"name": "denied_on_paper"
},

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 B

View File

@@ -15,6 +15,9 @@
},
{
"name": "denied"
},
{
"name": "guard"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 760 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 748 B

View File

@@ -0,0 +1,34 @@
{
"version": 1,
"size": {
"x": 48,
"y": 48
},
"license": "CLA",
"copyright": "Created by TheShuEd (Github) ",
"states": [
{
"name": "equipped-NECK",
"directions": 4
},
{
"name": "icon"
},
{
"name": "inhand-left",
"directions": 4
},
{
"name": "inhand-right",
"directions": 4
},
{
"name": "wielded-inhand-left",
"directions": 4
},
{
"name": "wielded-inhand-right",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 752 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 763 B

Some files were not shown because too many files have changed in this diff Show More