Playtest polishing (#383)

* fix predicting sharpening

* finish shadow step

* tweak ice dagger

* shadow grab test

* fireball spell

* ice shards spell

* battle royale crates

* loot tables

* remove expedition ship

* dev update

* br map update

* spells tweak

* tips update

* some fixes

* biome forest spawner

* give keys to orgs

* mobs and aura spawners

* expedition update: goal, new ship, new map

* fix doors layers

* add new map proto

* translate keys

* Update crates.yml

* Update PostMapInitTest.cs

* fix spawning on expedition ship

* Fuck you, Randy. Remove nails

* fix lock systems

* localize tips

* some tweaks

* update ship, remove shrooms.

* fixes

* Update StationSystem.cs

* Revert "Update StationSystem.cs"

This reverts commit f632241324.

* Update expedition_test.yml
This commit is contained in:
Ed
2024-08-05 15:22:14 +03:00
committed by GitHub
parent 9a07a9a052
commit 1f4b7f68bf
76 changed files with 95407 additions and 765 deletions

View File

@@ -51,6 +51,7 @@ namespace Content.IntegrationTests.Tests
//CrystallPunk maps
"AlchemyTest",
"BattleRoyale",
"ExpeditionTest",
//CrystallPunk Map replacement end
};

View File

@@ -68,6 +68,8 @@ public sealed class StationSpawningSystem : SharedStationSpawningSystem
_spawnerCallbacks = new Dictionary<SpawnPriorityPreference, Action<PlayerSpawningEvent>>()
{
{ SpawnPriorityPreference.Arrivals, _CP14expedition.HandlePlayerSpawning }, //CP14 expedition system replaced
{ SpawnPriorityPreference.Cryosleep, _CP14expedition.HandlePlayerSpawning }, //CP14 expedition system replaced
/*
{
SpawnPriorityPreference.Cryosleep, ev =>
{
@@ -76,7 +78,7 @@ public sealed class StationSpawningSystem : SharedStationSpawningSystem
else
_containerSpawnPointSystem.HandlePlayerSpawning(ev);
}
}
}*/
};
}

View File

@@ -1,14 +1,10 @@
using System.Linq;
using Content.Server.GameTicking.Events;
using Content.Shared._CP14.LockKey;
using Content.Shared.Containers.ItemSlots;
using Content.Shared._CP14.LockKey.Components;
using Content.Shared.Examine;
using Content.Shared.Lock;
using Content.Shared.Popups;
using Content.Shared.GameTicking;
using Robust.Shared.Prototypes;
using Robust.Shared.Random;
using CP14KeyComponent = Content.Shared._CP14.LockKey.Components.CP14KeyComponent;
using CP14LockComponent = Content.Shared._CP14.LockKey.Components.CP14LockComponent;
namespace Content.Server._CP14.LockKey;
@@ -16,9 +12,6 @@ public sealed partial class CP14KeyholeGenerationSystem : EntitySystem
{
[Dependency] private readonly IPrototypeManager _proto = default!;
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly SharedPopupSystem _popup = default!;
[Dependency] private readonly ItemSlotsSystem _itemSlots = default!;
[Dependency] private readonly LockSystem _lock = default!;
private Dictionary<ProtoId<CP14LockCategoryPrototype>, List<int>> _roundKeyData = new();
@@ -28,7 +21,7 @@ public sealed partial class CP14KeyholeGenerationSystem : EntitySystem
{
base.Initialize();
SubscribeLocalEvent<RoundStartingEvent>(OnRoundStart);
SubscribeLocalEvent<RoundRestartCleanupEvent>(OnRoundEnd);
SubscribeLocalEvent<CP14LockComponent, MapInitEvent>(OnLockInit);
SubscribeLocalEvent<CP14KeyComponent, MapInitEvent>(OnKeyInit);
@@ -37,7 +30,7 @@ public sealed partial class CP14KeyholeGenerationSystem : EntitySystem
}
#region Init
private void OnRoundStart(RoundStartingEvent ev)
private void OnRoundEnd(RoundRestartCleanupEvent ev)
{
_roundKeyData = new();
}
@@ -68,7 +61,7 @@ public sealed partial class CP14KeyholeGenerationSystem : EntitySystem
if (key.Comp.LockShape == null)
return;
var markup = Loc.GetString("cp-lock-examine-key", ("item", MetaData(key).EntityName));
var markup = Loc.GetString("cp14-lock-examine-key", ("item", MetaData(key).EntityName));
markup += " (";
foreach (var item in key.Comp.LockShape)
{

View File

@@ -35,7 +35,7 @@ public sealed class CP14ExpeditionSystem : EntitySystem
SubscribeLocalEvent<CP14StationExpeditionTargetComponent, StationPostInitEvent>(OnPostInitSetupExpeditionShip);
SubscribeLocalEvent<CP14StationExpeditionTargetComponent, FTLCompletedEvent>(OnArrivalsDocked);
SubscribeLocalEvent<CP14StationExpeditionTargetComponent, FTLCompletedEvent>(OnExpeditionShipLanded);
ArrivalTime = _cfgManager.GetCVar(CCVars.CP14ExpeditionArrivalTime);
_cfgManager.OnValueChanged(CCVars.CP14ExpeditionArrivalTime, time => ArrivalTime = time, true);
@@ -76,7 +76,7 @@ public sealed class CP14ExpeditionSystem : EntitySystem
}
}
private void OnArrivalsDocked(Entity<CP14StationExpeditionTargetComponent> ent, ref FTLCompletedEvent args)
private void OnExpeditionShipLanded(Entity<CP14StationExpeditionTargetComponent> ent, ref FTLCompletedEvent args)
{
//Some announsement logic?
}
@@ -114,8 +114,10 @@ public sealed class CP14ExpeditionSystem : EntitySystem
var possiblePositions = new List<EntityCoordinates>();
while (points.MoveNext(out var uid, out var spawnPoint, out var xform))
{
if (ev.Job != null && spawnPoint.Job != ev.Job.Prototype)
continue;
if (spawnPoint.SpawnType != SpawnPointType.LateJoin || xform.GridUid != gridUid)
if (xform.GridUid != gridUid)
continue;
possiblePositions.Add(xform.Coordinates);

View File

@@ -13,7 +13,7 @@ namespace Content.Shared.CCVar
#region CP14
public static readonly CVarDef<float> CP14ExpeditionArrivalTime =
CVarDef.Create("cp14.arrival_time", 60f, CVar.SERVERONLY);
CVarDef.Create("cp14.arrival_time", 180f, CVar.SERVERONLY);
#endregion
@@ -511,7 +511,7 @@ namespace Content.Shared.CCVar
/// The dataset prototype to use when selecting a random tip.
/// </summary>
public static readonly CVarDef<string> TipsDataset =
CVarDef.Create("tips.dataset", "Tips");
CVarDef.Create("tips.dataset", "CP14Tips");
/// <summary>
/// The number of seconds between each tip being displayed when the round is not actively going

View File

@@ -26,9 +26,8 @@ namespace Content.Shared.Localizations
public void Initialize()
{
var culture = new CultureInfo(Culture);
// Uncomment for Ru localization
_loc.LoadCulture(culture);
// Uncomment for Ru localization
var fallbackCulture = new CultureInfo("en-US");
_loc.LoadCulture(fallbackCulture);
_loc.SetFallbackCluture(fallbackCulture);

View File

@@ -109,17 +109,14 @@ public sealed class LockSystem : EntitySystem
//CrystallPunk Lock System Adapt Start
if (lockComp.LockSlotId != null && _lockCp14.TryGetLockFromSlot(uid, out var lockEnt))
{
args.PushText(Loc.GetString("cp-lock-examine-lock-slot", ("lock", MetaData(lockEnt.Value).EntityName)));
args.PushText(Loc.GetString("cp14-lock-examine-lock-slot", ("lock", MetaData(lockEnt.Value).EntityName)));
args.PushMarkup(Loc.GetString(lockComp.Locked
? "lock-comp-on-examined-is-locked"
: "lock-comp-on-examined-is-unlocked",
("entityName", Identity.Name(uid, EntityManager))));
if (lockEnt.Value.Comp.LockpickeddFailMarkup)
args.PushMarkup(Loc.GetString("cp-lock-examine-lock-lockpicked", ("lock", MetaData(lockEnt.Value).EntityName)));
} else
{
args.PushText(Loc.GetString("cp-lock-examine-lock-null"));
args.PushMarkup(Loc.GetString("cp14-lock-examine-lock-lockpicked", ("lock", MetaData(lockEnt.Value).EntityName)));
}
//CrystallPunk Lock System Adapt End
}
@@ -158,7 +155,7 @@ public sealed class LockSystem : EntitySystem
_sharedPopupSystem.PopupClient(Loc.GetString("lock-comp-do-lock-success",
("entityName", Identity.Name(uid, EntityManager))), uid, user);
_audio.PlayPredicted(lockComp.LockSound, uid, user);
_audio.PlayPvs(lockComp.LockSound, uid);
lockComp.Locked = true;
_appearanceSystem.SetData(uid, LockVisuals.Locked, true);
@@ -189,7 +186,7 @@ public sealed class LockSystem : EntitySystem
("entityName", Identity.Name(uid, EntityManager))), uid, user.Value);
}
_audio.PlayPredicted(lockComp.UnlockSound, uid, user);
_audio.PlayPvs(lockComp.UnlockSound, uid);
lockComp.Locked = false;
_appearanceSystem.SetData(uid, LockVisuals.Locked, false);
@@ -309,7 +306,7 @@ public sealed class LockSystem : EntitySystem
if (!component.Locked || !component.BreakOnEmag)
return;
_audio.PlayPredicted(component.UnlockSound, uid, args.UserUid);
_audio.PlayPvs(component.UnlockSound, uid);
component.Locked = false;
_appearanceSystem.SetData(uid, LockVisuals.Locked, false);

View File

@@ -28,7 +28,6 @@ public sealed class SharedCP14LockKeySystem : EntitySystem
private const int DepthComplexity = 2; //TODO - fix this constant duplication from KeyholeGenerationSystem.cs
public override void Initialize()
{
base.Initialize();
@@ -54,7 +53,6 @@ public sealed class SharedCP14LockKeySystem : EntitySystem
if (!TryComp<StorageComponent>(keyring, out var storageComp))
return;
if (TryComp<LockComponent>(args.Target, out var lockComp) &&
TryGetLockFromSlot(args.Target.Value, out var lockEnt))
{
@@ -71,7 +69,7 @@ public sealed class SharedCP14LockKeySystem : EntitySystem
args.Handled = true;
return;
}
_popup.PopupEntity(Loc.GetString("cp-lock-keyring-use-nofit"), args.Target.Value, args.User);
_popup.PopupEntity(Loc.GetString("cp14-lock-keyring-use-nofit"), args.Target.Value, args.User);
}
}
@@ -117,10 +115,11 @@ public sealed class SharedCP14LockKeySystem : EntitySystem
{
TryHackDoorElement(user, target, lockpick, lockItemComp, lockComp, height);
},
Text = Loc.GetString("cp-lock-verb-lockpick-use-text") + $" {height}",
Message = Loc.GetString("cp-lock-verb-lockpick-use-message"),
Text = Loc.GetString("cp14-lock-verb-lockpick-use-text") + $" {height}",
Message = Loc.GetString("cp14-lock-verb-lockpick-use-message"),
Category = VerbCategory.Lockpick,
Priority = height,
CloseMenu = false,
};
args.Verbs.Add(verb);
@@ -141,19 +140,19 @@ public sealed class SharedCP14LockKeySystem : EntitySystem
if (lockComp.Locked)
{
_lock.TryUnlock(target, user, lockComp);
_popup.PopupEntity(Loc.GetString("cp-lock-unlock-lock", ("lock", MetaData(lockEnt.Owner).EntityName)), target, user);
_popup.PopupEntity(Loc.GetString("cp14-lock-unlock-lock", ("lock", MetaData(lockEnt.Owner).EntityName)), target, user);
lockEnt.LockpickStatus = 0;
return true;
}
else
{
_lock.TryLock(target, user, lockComp);
_popup.PopupEntity(Loc.GetString("cp-lock-lock-lock", ("lock", MetaData(lockEnt.Owner).EntityName)), target, user);
_popup.PopupEntity(Loc.GetString("cp14-lock-lock-lock", ("lock", MetaData(lockEnt.Owner).EntityName)), target, user);
lockEnt.LockpickStatus = 0;
return true;
}
}
_popup.PopupEntity(Loc.GetString("cp-lock-lockpick-success"), target, user);
_popup.PopupEntity(Loc.GetString("cp14-lock-lockpick-success"), target, user);
return true;
}
else //Fail
@@ -164,16 +163,16 @@ public sealed class SharedCP14LockKeySystem : EntitySystem
lockpick.Comp.Health--;
if (lockpick.Comp.Health > 0)
{
_popup.PopupEntity(Loc.GetString("cp-lock-lockpick-failed-damage", ("lock", MetaData(lockEnt.Owner).EntityName)), target, user);
_popup.PopupEntity(Loc.GetString("cp14-lock-lockpick-failed-damage", ("lock", MetaData(lockEnt.Owner).EntityName)), target, user);
} else
{
_popup.PopupEntity(Loc.GetString("cp-lock-lockpick-failed-break", ("lock", MetaData(lockEnt.Owner).EntityName)), target, user);
_popup.PopupEntity(Loc.GetString("cp14-lock-lockpick-failed-break", ("lock", MetaData(lockEnt.Owner).EntityName)), target, user);
QueueDel(lockpick);
}
}
else
{
_popup.PopupEntity(Loc.GetString("cp-lock-lockpick-failed", ("lock", MetaData(lockEnt.Owner).EntityName)), target, user);
_popup.PopupEntity(Loc.GetString("cp14-lock-lockpick-failed", ("lock", MetaData(lockEnt.Owner).EntityName)), target, user);
}
lockEnt.LockpickeddFailMarkup = true;
lockEnt.LockpickStatus = 0;
@@ -205,8 +204,8 @@ public sealed class SharedCP14LockKeySystem : EntitySystem
TryUseKeyOnLock(user, target, key, new Entity<CP14LockComponent>(target, lockItemComp));
},
IconEntity = GetNetEntity(key),
Text = Loc.GetString(lockComp.Locked ? "cp-lock-verb-use-key-text-open" : "cp-lock-verb-use-key-text-close", ("item", MetaData(args.Target).EntityName)),
Message = Loc.GetString("cp-lock-verb-use-key-message", ("item", MetaData(args.Target).EntityName))
Text = Loc.GetString(lockComp.Locked ? "cp14-lock-verb-use-key-text-open" : "cp14-lock-verb-use-key-text-close", ("item", MetaData(args.Target).EntityName)),
Message = Loc.GetString("cp14-lock-verb-use-key-message", ("item", MetaData(args.Target).EntityName)),
};
args.Verbs.Add(verb);
@@ -220,14 +219,10 @@ public sealed class SharedCP14LockKeySystem : EntitySystem
if (args.Container.ID != lockSlot.Comp.LockSlotId)
return;
if (!TryComp<CP14LockComponent>(args.EntityUid, out var lockComp))
{
args.Cancel();
if (TryComp<CP14LockComponent>(args.EntityUid, out var lockComp))
return;
}
if (lockComp == null)
return;
args.Cancel();
//if (lockComp.Locked)
//{
@@ -309,18 +304,18 @@ public sealed class SharedCP14LockKeySystem : EntitySystem
if (lockComp.Locked)
{
if(_lock.TryUnlock(target, user))
_popup.PopupEntity(Loc.GetString("cp-lock-unlock-lock", ("lock", MetaData(lockEnt).EntityName)), lockEnt, user);
_popup.PopupEntity(Loc.GetString("cp14-lock-unlock-lock", ("lock", MetaData(lockEnt).EntityName)), lockEnt, user);
}
else
{
if (_lock.TryLock(target, user))
_popup.PopupEntity(Loc.GetString("cp-lock-lock-lock", ("lock", MetaData(lockEnt).EntityName)), lockEnt, user);
_popup.PopupEntity(Loc.GetString("cp14-lock-lock-lock", ("lock", MetaData(lockEnt).EntityName)), lockEnt, user);
}
return true;
}
else
{
_popup.PopupEntity(Loc.GetString("cp-lock-key-use-nofit"), lockEnt, user);
_popup.PopupEntity(Loc.GetString("cp14-lock-key-use-nofit"), lockEnt, user);
}
return false;
}

View File

@@ -89,7 +89,9 @@ public partial class CP14SharedMagicSystem : EntitySystem
{
BreakOnMove = delayedEffect.BreakOnMove,
BreakOnDamage = delayedEffect.BreakOnDamage,
Hidden = delayedEffect.Hidden,
BlockDuplicate = true,
DistanceThreshold = 100f,
};
_doAfter.TryStartDoAfter(doAfterEventArgs);
@@ -126,7 +128,9 @@ public partial class CP14SharedMagicSystem : EntitySystem
{
BreakOnMove = delayedEffect.BreakOnMove,
BreakOnDamage = delayedEffect.BreakOnDamage,
Hidden = delayedEffect.Hidden,
BlockDuplicate = true,
DistanceThreshold = 100f,
};
_doAfter.TryStartDoAfter(doAfterEventArgs);
@@ -158,7 +162,9 @@ public partial class CP14SharedMagicSystem : EntitySystem
{
BreakOnMove = delayedEffect.BreakOnMove,
BreakOnDamage = delayedEffect.BreakOnDamage,
Hidden = delayedEffect.Hidden,
BlockDuplicate = true,
DistanceThreshold = 100f,
};
_doAfter.TryStartDoAfter(doAfterEventArgs);

View File

@@ -16,6 +16,9 @@ public sealed partial class CP14DelayedWorldTargetActionEvent : WorldTargetActio
[DataField]
public bool BreakOnDamage { get; private set; } = true;
[DataField]
public bool Hidden { get; private set; } = false;
}
[Serializable, NetSerializable]
@@ -38,6 +41,9 @@ public sealed partial class CP14DelayedEntityTargetActionEvent : EntityTargetAct
[DataField]
public bool BreakOnDamage { get; private set; } = true;
[DataField]
public bool Hidden { get; private set; } = false;
}
[Serializable, NetSerializable]
@@ -56,6 +62,9 @@ public sealed partial class CP14DelayedInstantActionEvent : InstantActionEvent,
[DataField]
public bool BreakOnDamage { get; private set; } = true;
[DataField]
public bool Hidden { get; private set; } = false;
}
[Serializable, NetSerializable]

View File

@@ -10,4 +10,6 @@ public interface ICP14DelayedMagicEffect // The speak n spell interface
public bool BreakOnMove { get; }
public bool BreakOnDamage { get; }
public bool Hidden{ get; }
}

View File

@@ -1,3 +1,5 @@
using Content.Shared.Examine;
using Content.Shared.Popups;
using Robust.Shared.Map;
using Robust.Shared.Prototypes;
@@ -5,6 +7,9 @@ namespace Content.Shared._CP14.MagicSpell.Spells;
public sealed partial class CP14SpellCasterTeleport : CP14SpellEffect
{
[DataField]
public bool NeedVision = true;
public override void Effect(EntityManager entManager, CP14SpellEffectBaseArgs args)
{
EntityCoordinates? targetPoint = null;
@@ -17,6 +22,15 @@ public sealed partial class CP14SpellCasterTeleport : CP14SpellEffect
return;
var transform = entManager.System<SharedTransformSystem>();
var examine = entManager.System<ExamineSystemShared>();
var popup = entManager.System<SharedPopupSystem>();
if (NeedVision && !examine.InRangeUnOccluded(args.User.Value, targetPoint.Value))
{
// can only dash if the destination is visible on screen
popup.PopupEntity(Loc.GetString("dash-ability-cant-see"), args.User.Value, args.User.Value);
return;
}
transform.SetCoordinates(args.User.Value, targetPoint.Value);
}

View File

@@ -3,7 +3,7 @@ using Robust.Shared.Prototypes;
namespace Content.Shared._CP14.MagicSpell.Spells;
public sealed partial class CP14SpellSpawnEntity : CP14SpellEffect
public sealed partial class CP14SpellSpawnEntityOnTarget : CP14SpellEffect
{
[DataField]
public List<EntProtoId> Spawns = new();

View File

@@ -0,0 +1,21 @@
using Robust.Shared.Map;
using Robust.Shared.Prototypes;
namespace Content.Shared._CP14.MagicSpell.Spells;
public sealed partial class CP14SpellSpawnEntityOnUser : CP14SpellEffect
{
[DataField]
public List<EntProtoId> Spawns = new();
public override void Effect(EntityManager entManager, CP14SpellEffectBaseArgs args)
{
if (args.User is null || !entManager.TryGetComponent<TransformComponent>(args.User.Value, out var transformComponent))
return;
foreach (var spawn in Spawns)
{
entManager.SpawnAtPosition(spawn, transformComponent.Coordinates);
}
}
}

View File

@@ -0,0 +1,23 @@
using Content.Shared.Throwing;
namespace Content.Shared._CP14.MagicSpell.Spells;
public sealed partial class CP14SpellThrowToUser : CP14SpellEffect
{
[DataField]
public float ThrowPower = 10f;
public override void Effect(EntityManager entManager, CP14SpellEffectBaseArgs args)
{
if (args.Target is null)
return;
var targetEntity = args.Target.Value;
var throwing = entManager.System<ThrowingSystem>();
if (!entManager.TryGetComponent<TransformComponent>(args.User, out var xform))
return;
throwing.TryThrow(targetEntity, xform.Coordinates, ThrowPower);
}
}

View File

@@ -9,6 +9,7 @@ using Content.Shared.Timing;
using Content.Shared.Weapons.Melee.Events;
using Content.Shared.Wieldable;
using Robust.Shared.Audio.Systems;
using Robust.Shared.Network;
namespace Content.Shared._CP14.MeleeWeapon.EntitySystems;
@@ -18,6 +19,7 @@ public sealed class CP14SharpeningSystem : EntitySystem
[Dependency] private readonly UseDelaySystem _useDelay = default!;
[Dependency] private readonly SharedAudioSystem _audio = default!;
[Dependency] private readonly SharedPopupSystem _popup = default!;
[Dependency] private readonly INetManager _net = default!;
public override void Initialize()
{
@@ -82,16 +84,19 @@ public sealed class CP14SharpeningSystem : EntitySystem
if (!ev.Canceled)
{
_audio.PlayPvs(stone.Comp.SharpeningSound, target);
Spawn("EffectSparks", Transform(target).Coordinates);
_audio.PlayPredicted(stone.Comp.SharpeningSound, target, user);
_damageableSystem.TryChangeDamage(stone, stone.Comp.SelfDamage);
_damageableSystem.TryChangeDamage(target, stone.Comp.TargetDamage);
component.Sharpness = MathHelper.Clamp01(component.Sharpness + stone.Comp.SharpnessHeal);
if (component.Sharpness >= 0.99)
_popup.PopupEntity(Loc.GetString("sharpening-ready"), target, user);
if (_net.IsServer)
{
Spawn("EffectSparks", Transform(target).Coordinates);
if (component.Sharpness >= 0.99)
_popup.PopupEntity(Loc.GetString("sharpening-ready"), target, user);
}
}
_useDelay.TryResetDelay(stone);

View File

@@ -0,0 +1,21 @@
cp14-lock-verb-lockpick-use-text = Push: {$height}
cp14-lock-verb-lockpick-use-message = If you engage the lock prongs in the correct sequence, you can unlock the lock.
cp14-lock-keyring-use-nofit = The key does not fit!
cp14-lock-unlock-lock = You have opened {$lock}
cp14-lock-lock-lock = You closed {$lock}
cp14-lock-lockpick-success = You have successfully picked the lock!
cp14-lock-lockpick-failed = {$lock} is reset to its original position.
cp14-lock-lockpick-failed-damage = {$lock} is reset to its original position, damaging your lockpick.
cp14-lock-lockpick-failed-break = {$lock} resets to its original position, breaking your lockpick.
cp14-lock-verb-use-key-text-open = Open the lock with {$item}.
cp14-lock-verb-use-key-text-close = Close the lock with {$item}
cp14-lock-verb-use-key-message = Use {$item} to lock or unlock the lock.
cp14-lock-examine-lock-slot = {$lock} is hanging here.
cp14-lock-examine-lock-lockpicked = {$lock} looks shabby.
cp14-lock-examine-key = The {$item} has prongs of the following shape:

View File

@@ -12,4 +12,6 @@ cp14-loadout-basic-shoes = Shoes
# Org
cp14-loadout-captain-cloak = Captain's cloak
cp14-loadout-captain-head = Captain's head
cp14-loadout-captain-head = Captain's head
cp14-loadout-guard-commander-cloak = Guard commander's cloak

View File

@@ -0,0 +1,12 @@
cp14-tips-1 = Keep an eye on the condition of your weapon! You can inspect it to see its condition and sharpness.
cp14-tips-2 = If your weapon is dull, you can sharpen it with sharpening stones.
cp14-tips-3 = Some light weapons, such as daggers or sickles, are effective for dual wield combat.
cp14-tips-4 = Some magic items can only work after being attuned. To customize the binding, press the RMB and select the desired action.
cp14-tips-5 = As an alchemist, if you mix some reagents together, you can no longer separate them! Look for the right alchemical reactions that will allow you to edit your solution.
cp14-tips-6 = As an alchemist, remember to keep your cauldron off the stove or fire. Your potion may boil over, releasing a reagent cloud.
cp14-tips-7 = DEBUG: To see all crafting recipes available on workbenches - look for them in the context menu on the RMB.
cp14-tips-8 = If you run out of magic energy, you can still use spells and spend mana, but it will damage you and potentially render you unconscious!
cp14-tips-9 = There are places in the world with positive or negative magical polarity. In these places, mana regenerates faster, or conversely, can be passively spent. To find such places, use the Aura Scanner.
cp14-tips-10 = Tall bushes are good for hiding your character! But they slow you down a lot and make a lot of noise if you move in them.
cp14-tips-11 = Don't forget to lock your doors if you don't want anyone to get in!
cp14-tips-12 = DEBUG: Be careful with fire! Until we add ways to comfortably put out fires!

View File

@@ -18,15 +18,9 @@ ent-CP14BaseKey = ключ
ent-CP14BaseLockpick = отмычка
.desc = Воровской инструмент, при должном умении и сноровке позволяющий взламывать любые замки.
ent-CP14KeyTavern = ключ от таверны
.desc = { ent-CP14BaseKey.desc }
ent-CP14BaseLock = стальной замок
.desc = Он запирает вещи. И вам потребуется ключ, чтобы открыть их обратно.
ent-CP14LockTavern = замок от таверны
.desc = { ent-CP14BaseLock.desc }
ent-CP14BaseMagicRune = magic rune
.desc = manifestation of magical energy in the physical plane

View File

@@ -0,0 +1,21 @@
cp14-lock-verb-lockpick-use-text = Надавить: {$height}
cp14-lock-verb-lockpick-use-message = Если вы в правильной последовательности заденете зубчики замка, вы сможете разблокировать его.
cp14-lock-keyring-use-nofit = Ключ не подходит!
cp14-lock-unlock-lock = Вы открыли {$lock}
cp14-lock-lock-lock = Вы закрыли {$lock}
cp14-lock-lockpick-success = Вы успешно взломали замок!
cp14-lock-lockpick-failed = {$lock} сбрасывается в исходное положение.
cp14-lock-lockpick-failed-damage = {$lock} сбрасывается в исходное положение, повреждая вашу отмычку.
cp14-lock-lockpick-failed-break = {$lock} сбрасывается в исходное положение, ломая вашу отмычку.
cp14-lock-verb-use-key-text-open = Открыть замок при помощи {$item}
cp14-lock-verb-use-key-text-close = Закрыть замок при помощи {$item}
cp14-lock-verb-use-key-message = Использовать {$item} чтобы заблокировать или разблокировать замок.
cp14-lock-examine-lock-slot = Здесь висит {$lock}
cp14-lock-examine-lock-lockpicked = {$lock} выглядит потрепанным.
cp14-lock-examine-key = {$item} имеет зубцы следующей формы:

View File

@@ -11,4 +11,7 @@ cp14-loadout-basic-shoes = Обувь
# Org
cp14-loadout-captain-cloak = Капитанская накидка
cp14-loadout-captain-cloak = Капитанская накидка
cp14-loadout-captain-head = Капитанская шляпа
cp14-loadout-guard-commander-cloak = Накидка командира стражи

View File

@@ -0,0 +1,12 @@
cp14-tips-1 = Следите за состоянием вашего оружия! Вы можете осмотреть его, чтобы увидеть его состояние и остроту.
cp14-tips-2 = Если ваше оружие затупилось, вы можете заточить его при помощи точильных камней.
cp14-tips-3 = Некоторое легкое оружие, такое как кинжалы или серпы, эффективно для боя с двух рук.
cp14-tips-4 = Некоторые магические предметы могут работать только после привязки. Чтобы настроить привязку, нажмите ПКМ и выберите нужное действие.
cp14-tips-5 = Будучи алхимиком, если вы смешали какие-то реагенты вместе, вы больше не сможете их разделить! Ищите нужные алхемические реакции, которые позволят вам редактировать ваш раствор.
cp14-tips-6 = Будучи алхимиком, не забывайте убрать ваш котелок с печки или костра. Ваше зелье может выкипеть, выпустив реагентное облако.
cp14-tips-7 = DEBUG: Чтобы увидеть все рецепты крафта, доступные на верстаках - ищите из в контекстном меню на ПКМ.
cp14-tips-8 = Если у вас кончилась магическая энергия, вы все еще можете использовать заклинания и тратить ману, но это будет наносить вам урон, и потенциально может лишить вас сознания!
cp14-tips-9 = В мире существуют места, с положительной или отрицательной магической полярностью. В этих местах мана регенерирует быстрее, или наоборот, может пассивно тратиться. Чтобы найти такие места, используйте сканер ауры.
cp14-tips-10 = Высокие кусты неплохо прячут вашего персонажа! Но сильно замедляют передвижение и шумят, если вы двигаетесь в них.
cp14-tips-11 = Не забывайте закрывать двери на ключ, если не хотите чтобы туда заходил кто попало!
cp14-tips-12 = DEBUG: Будьте осторожны с огнем! Пока мы не добавили способов комфортно тушить пожары!

File diff suppressed because it is too large Load Diff

View File

@@ -140,7 +140,7 @@ entities:
version: 6
0,-2:
ind: 0,-2
tiles: HAAAAAAFHAAAAAADHAAAAAABHAAAAAABHAAAAAAACQAAAAAGCQAAAAAFCQAAAAAACQAAAAADCQAAAAALCQAAAAAJCQAAAAAKCQAAAAACCQAAAAAGCQAAAAAMCQAAAAAIHAAAAAADHAAAAAAEHAAAAAABHAAAAAADHAAAAAAECQAAAAANCQAAAAACCQAAAAANCQAAAAAICQAAAAAMCQAAAAAICQAAAAACCQAAAAAFCQAAAAADCQAAAAAFCQAAAAANHAAAAAAFHAAAAAACHAAAAAACHAAAAAAEHAAAAAABCQAAAAANCQAAAAAHCQAAAAAHCQAAAAAECQAAAAAECQAAAAALCQAAAAABCQAAAAAACQAAAAAGCQAAAAAFCQAAAAALHAAAAAAECQAAAAAJCQAAAAAKCQAAAAAJCQAAAAAJCQAAAAAFCQAAAAAACQAAAAAHCQAAAAAFCQAAAAAECQAAAAAFCQAAAAABCQAAAAAMCQAAAAANCQAAAAAFCQAAAAAICQAAAAAMCQAAAAAJCQAAAAAECQAAAAAFCQAAAAANCQAAAAABCQAAAAAGCQAAAAAJCQAAAAANCQAAAAABCQAAAAACCQAAAAAHCQAAAAAFCQAAAAAICQAAAAANCQAAAAAGCQAAAAACCQAAAAAACQAAAAAGCQAAAAAIHAAAAAAAHAAAAAAAHAAAAAAACQAAAAACCQAAAAAMCQAAAAAICQAAAAAHCQAAAAABCQAAAAAGCQAAAAAECQAAAAAFCQAAAAADCQAAAAACCQAAAAAICQAAAAANCQAAAAANHAAAAAAAHAAAAAAAHAAAAAAACQAAAAACCQAAAAAACQAAAAAFCQAAAAAKCQAAAAAACQAAAAAECQAAAAAHCQAAAAAICQAAAAAGCQAAAAABCQAAAAAGCQAAAAADCQAAAAACHAAAAAAAHAAAAAAAHAAAAAAACQAAAAACCQAAAAABCQAAAAAHCQAAAAALCQAAAAAECQAAAAAGCQAAAAADCQAAAAAMCQAAAAAECQAAAAAJCQAAAAADCQAAAAADCQAAAAALCQAAAAAFCQAAAAAICQAAAAAICQAAAAAMCQAAAAAMCQAAAAAGCQAAAAAGCQAAAAAFCQAAAAAJCQAAAAAHCQAAAAAECQAAAAACCQAAAAAECQAAAAAKCQAAAAABCQAAAAADCQAAAAABCQAAAAACCQAAAAAECQAAAAAICQAAAAALCQAAAAAKCQAAAAAMCQAAAAANCQAAAAABCQAAAAALCQAAAAAFCQAAAAAJCQAAAAAGCQAAAAACCQAAAAAICQAAAAAMCQAAAAACCQAAAAADCQAAAAAMCQAAAAAMCQAAAAAKCQAAAAANCQAAAAAICQAAAAAGCQAAAAAHCQAAAAABCQAAAAAECQAAAAALCQAAAAAEHAAAAAAAHAAAAAAAHAAAAAAACQAAAAAMCQAAAAACCQAAAAAMCQAAAAAICQAAAAAECQAAAAAHCQAAAAALCQAAAAAECQAAAAANCQAAAAAKCQAAAAAACQAAAAAICQAAAAAJHAAAAAAAHAAAAAAAHAAAAAAACQAAAAAJCQAAAAABCQAAAAAACQAAAAAICQAAAAANCQAAAAAJCQAAAAAMCQAAAAACCQAAAAAFCQAAAAABCQAAAAAGCQAAAAACCQAAAAAIHAAAAAAAHAAAAAAAHAAAAAAACQAAAAALCQAAAAAACQAAAAAICQAAAAAGCQAAAAAGCQAAAAADCQAAAAAICQAAAAAACQAAAAAJCQAAAAAKCQAAAAAECQAAAAABCQAAAAANCQAAAAALCQAAAAAKCQAAAAAECQAAAAANCQAAAAAHCQAAAAAKCQAAAAADCQAAAAAJCQAAAAAJCQAAAAAECQAAAAAHCQAAAAACCQAAAAAHCQAAAAAJCQAAAAALCQAAAAAECQAAAAAFCQAAAAAFCQAAAAAICQAAAAAKCQAAAAAMCQAAAAACCQAAAAACCQAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHQAAAAAAHQAAAAAA
tiles: HAAAAAAFHAAAAAADHAAAAAABHAAAAAABHAAAAAAACQAAAAAGCQAAAAAFCQAAAAAACQAAAAADCQAAAAALCQAAAAAJCQAAAAAKCQAAAAACCQAAAAAGCQAAAAAMCQAAAAAIHAAAAAADHAAAAAAEHAAAAAABHAAAAAADHAAAAAAECQAAAAANCQAAAAACCQAAAAANCQAAAAAICQAAAAAMCQAAAAAICQAAAAACCQAAAAAFCQAAAAADCQAAAAAFCQAAAAANHAAAAAAFHAAAAAACHAAAAAACHAAAAAAEHAAAAAABCQAAAAANCQAAAAAHCQAAAAAHCQAAAAAECQAAAAAECQAAAAALCQAAAAABCQAAAAAACQAAAAAGCQAAAAAFCQAAAAALHAAAAAAECQAAAAAJCQAAAAAKCQAAAAAJCQAAAAAJCQAAAAAFCQAAAAAACQAAAAAHCQAAAAAFCQAAAAAECQAAAAAFCQAAAAABCQAAAAAMCQAAAAANCQAAAAAFCQAAAAAICQAAAAAMCQAAAAAJCQAAAAAECQAAAAAFCQAAAAANCQAAAAABCQAAAAAGCQAAAAAJCQAAAAANCQAAAAABCQAAAAACCQAAAAAHCQAAAAAFCQAAAAAICQAAAAANCQAAAAAGCQAAAAACCQAAAAAACQAAAAAGCQAAAAAIHAAAAAAAHAAAAAAAHAAAAAAACQAAAAACCQAAAAAMCQAAAAAICQAAAAAHCQAAAAABCQAAAAAGCQAAAAAECQAAAAAFCQAAAAADCQAAAAACCQAAAAAICQAAAAANCQAAAAANHAAAAAAAHAAAAAAAHAAAAAAACQAAAAACCQAAAAAACQAAAAAFCQAAAAAKCQAAAAAACQAAAAAECQAAAAAHCQAAAAAICQAAAAAGCQAAAAABCQAAAAAGCQAAAAADCQAAAAACHAAAAAAAHAAAAAAAHAAAAAAACQAAAAACCQAAAAABCQAAAAAHCQAAAAALCQAAAAAECQAAAAAGCQAAAAADCQAAAAAMCQAAAAAECQAAAAAJCQAAAAADCQAAAAADCQAAAAALCQAAAAAFCQAAAAAICQAAAAAICQAAAAAMCQAAAAAMCQAAAAAGCQAAAAAGCQAAAAAFCQAAAAAJCQAAAAAHCQAAAAAECQAAAAACCQAAAAAECQAAAAAKCQAAAAABCQAAAAADCQAAAAABCQAAAAACCQAAAAAECQAAAAAICQAAAAALCQAAAAAKCQAAAAAMCQAAAAANCQAAAAABCQAAAAALCQAAAAAFCQAAAAAJCQAAAAAGCQAAAAACCQAAAAAICQAAAAAMCQAAAAACCQAAAAADCQAAAAAMCQAAAAAMCQAAAAAKCQAAAAANCQAAAAAICQAAAAAGCQAAAAAHCQAAAAABCQAAAAAECQAAAAALCQAAAAAEHAAAAAAAHAAAAAAAHAAAAAAACQAAAAAMCQAAAAACCQAAAAAMCQAAAAAICQAAAAAECQAAAAAHCQAAAAALCQAAAAAECQAAAAANCQAAAAAKCQAAAAAACQAAAAAICQAAAAAJHAAAAAAAHAAAAAAAHAAAAAAACQAAAAAJCQAAAAABCQAAAAAACQAAAAAICQAAAAANCQAAAAAJCQAAAAAMCQAAAAACCQAAAAAFCQAAAAABCQAAAAAGCQAAAAACCQAAAAAIHAAAAAAAHAAAAAAAHAAAAAAACQAAAAALCQAAAAAACQAAAAAICQAAAAAGCQAAAAAGCQAAAAADCQAAAAAICQAAAAAACQAAAAAJCQAAAAAKCQAAAAAECQAAAAABCQAAAAANCQAAAAALCQAAAAAKCQAAAAAECQAAAAANCQAAAAAHCQAAAAAKCQAAAAADCQAAAAAJHQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAACQAAAAALCQAAAAAECQAAAAAFCQAAAAAFCQAAAAAICQAAAAAKCQAAAAAMCQAAAAACCQAAAAACCQAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHQAAAAAAHQAAAAAA
version: 6
0,-3:
ind: 0,-3
@@ -34502,11 +34502,6 @@ entities:
- type: Transform
pos: 14.5,-6.5
parent: 2
- uid: 5616
components:
- type: Transform
pos: 14.5,-17.5
parent: 2
- uid: 5617
components:
- type: Transform
@@ -34617,11 +34612,6 @@ entities:
- type: Transform
pos: 13.5,-6.5
parent: 2
- uid: 5652
components:
- type: Transform
pos: 13.5,-17.5
parent: 2
- uid: 5655
components:
- type: Transform
@@ -34722,11 +34712,6 @@ entities:
- type: Transform
pos: 12.5,-6.5
parent: 2
- uid: 5688
components:
- type: Transform
pos: 12.5,-17.5
parent: 2
- uid: 5692
components:
- type: Transform
@@ -34837,11 +34822,6 @@ entities:
- type: Transform
pos: 11.5,-6.5
parent: 2
- uid: 5724
components:
- type: Transform
pos: 11.5,-17.5
parent: 2
- uid: 5728
components:
- type: Transform
@@ -34957,11 +34937,6 @@ entities:
- type: Transform
pos: 22.5,-7.5
parent: 2
- uid: 5760
components:
- type: Transform
pos: 10.5,-17.5
parent: 2
- uid: 5764
components:
- type: Transform
@@ -35062,11 +35037,6 @@ entities:
- type: Transform
pos: 22.5,-8.5
parent: 2
- uid: 5796
components:
- type: Transform
pos: 9.5,-17.5
parent: 2
- uid: 5799
components:
- type: Transform
@@ -44196,11 +44166,6 @@ entities:
- type: InsideEntityStorage
- proto: CP14CrateCoffin
entities:
- uid: 788
components:
- type: Transform
pos: -37.5,-13.5
parent: 2
- uid: 797
components:
- type: Transform
@@ -45365,6 +45330,83 @@ entities:
rot: 1.5707963267948966 rad
pos: 0.5,-54.5
parent: 2
- proto: CP14LargeWoodenCrateFilled
entities:
- uid: 762
components:
- type: Transform
pos: 9.5,-17.5
parent: 2
- uid: 763
components:
- type: Transform
pos: 11.5,-17.5
parent: 2
- uid: 5644
components:
- type: Transform
pos: -37.5,-13.5
parent: 2
- uid: 5645
components:
- type: Transform
pos: 33.5,7.5
parent: 2
- uid: 5646
components:
- type: Transform
pos: 31.5,14.5
parent: 2
- uid: 5647
components:
- type: Transform
pos: -31.5,-17.5
parent: 2
- uid: 5678
components:
- type: Transform
pos: 1.5,-51.5
parent: 2
- uid: 5688
components:
- type: Transform
pos: -1.5,-58.5
parent: 2
- uid: 6031
components:
- type: Transform
pos: -16.5,29.5
parent: 2
- uid: 6060
components:
- type: Transform
pos: -25.5,43.5
parent: 2
- uid: 6061
components:
- type: Transform
pos: -21.5,43.5
parent: 2
- uid: 6066
components:
- type: Transform
pos: -3.5,31.5
parent: 2
- uid: 6067
components:
- type: Transform
pos: -1.5,22.5
parent: 2
- uid: 6097
components:
- type: Transform
pos: 22.5,31.5
parent: 2
- uid: 6154
components:
- type: Transform
pos: 29.5,-27.5
parent: 2
- proto: CP14Nail1
entities:
- uid: 6837
@@ -45982,16 +46024,16 @@ entities:
- type: Transform
pos: -26.5,4.5
parent: 2
- uid: 5651
components:
- type: Transform
pos: -37.5,-11.5
parent: 2
- uid: 5654
components:
- type: Transform
pos: 34.5,9.5
parent: 2
- uid: 5714
components:
- type: Transform
pos: 33.5,7.5
parent: 2
- uid: 5719
components:
- type: Transform
@@ -46012,6 +46054,11 @@ entities:
- type: Transform
pos: 16.5,26.5
parent: 2
- uid: 5724
components:
- type: Transform
pos: -35.5,-10.5
parent: 2
- uid: 5850
components:
- type: Transform
@@ -46694,6 +46741,218 @@ entities:
- type: Transform
pos: -10.5,42.5
parent: 2
- proto: CP14SmallWoodenCrateFilled
entities:
- uid: 774
components:
- type: Transform
pos: 10.5,-17.5
parent: 2
- uid: 775
components:
- type: Transform
pos: 12.5,-17.5
parent: 2
- uid: 788
components:
- type: Transform
pos: 13.5,-17.5
parent: 2
- uid: 5616
components:
- type: Transform
pos: 3.5,-31.5
parent: 2
- uid: 5650
components:
- type: Transform
pos: -37.5,-21.5
parent: 2
- uid: 5652
components:
- type: Transform
pos: -37.5,-16.5
parent: 2
- uid: 5653
components:
- type: Transform
pos: -37.5,-14.5
parent: 2
- uid: 5679
components:
- type: Transform
pos: 2.5,-51.5
parent: 2
- uid: 5680
components:
- type: Transform
pos: 6.5,-53.5
parent: 2
- uid: 5681
components:
- type: Transform
pos: 5.5,-49.5
parent: 2
- uid: 5687
components:
- type: Transform
pos: -1.5,-55.5
parent: 2
- uid: 5689
components:
- type: Transform
pos: -8.5,-43.5
parent: 2
- uid: 5714
components:
- type: Transform
pos: -8.5,-40.5
parent: 2
- uid: 5717
components:
- type: Transform
pos: -13.5,-32.5
parent: 2
- uid: 5718
components:
- type: Transform
pos: 0.5,-30.5
parent: 2
- uid: 5760
components:
- type: Transform
pos: -40.5,-13.5
parent: 2
- uid: 5796
components:
- type: Transform
pos: -23.5,-11.5
parent: 2
- uid: 6030
components:
- type: Transform
pos: -15.5,-6.5
parent: 2
- uid: 6032
components:
- type: Transform
pos: -16.5,30.5
parent: 2
- uid: 6033
components:
- type: Transform
pos: -19.5,29.5
parent: 2
- uid: 6034
components:
- type: Transform
pos: -19.5,34.5
parent: 2
- uid: 6035
components:
- type: Transform
pos: -31.5,43.5
parent: 2
- uid: 6036
components:
- type: Transform
pos: -27.5,43.5
parent: 2
- uid: 6062
components:
- type: Transform
pos: -17.5,44.5
parent: 2
- uid: 6064
components:
- type: Transform
pos: -17.5,52.5
parent: 2
- uid: 6065
components:
- type: Transform
pos: -10.5,52.5
parent: 2
- uid: 6068
components:
- type: Transform
pos: -1.5,19.5
parent: 2
- uid: 6069
components:
- type: Transform
pos: -3.5,30.5
parent: 2
- uid: 6096
components:
- type: Transform
pos: -1.5,34.5
parent: 2
- uid: 6119
components:
- type: Transform
pos: 21.5,31.5
parent: 2
- uid: 6133
components:
- type: Transform
pos: 22.5,32.5
parent: 2
- uid: 6134
components:
- type: Transform
pos: 18.5,29.5
parent: 2
- uid: 6135
components:
- type: Transform
pos: 30.5,14.5
parent: 2
- uid: 6136
components:
- type: Transform
pos: 36.5,14.5
parent: 2
- uid: 6137
components:
- type: Transform
pos: 32.5,7.5
parent: 2
- uid: 6138
components:
- type: Transform
pos: 46.5,-10.5
parent: 2
- uid: 6150
components:
- type: Transform
pos: 49.5,-7.5
parent: 2
- uid: 6151
components:
- type: Transform
pos: 50.5,-4.5
parent: 2
- uid: 6152
components:
- type: Transform
pos: 48.5,2.5
parent: 2
- uid: 6153
components:
- type: Transform
pos: 5.5,-46.5
parent: 2
- uid: 6155
components:
- type: Transform
pos: 28.5,-32.5
parent: 2
- uid: 6156
components:
- type: Transform
pos: 25.5,-31.5
parent: 2
- proto: CP14SpawnPointAdventurer
entities:
- uid: 796
@@ -46876,12 +47135,6 @@ entities:
rot: -1.5707963267948966 rad
pos: 32.5,14.5
parent: 2
- uid: 5678
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 31.5,14.5
parent: 2
- uid: 5685
components:
- type: Transform
@@ -46958,11 +47211,6 @@ entities:
- type: Transform
pos: 20.5,34.5
parent: 2
- uid: 8092
components:
- type: Transform
pos: -31.5,-17.5
parent: 2
- uid: 8095
components:
- type: Transform
@@ -52045,30 +52293,6 @@ entities:
showEnts: False
occludes: True
ent: null
- proto: CP14WoodenPlanks1
entities:
- uid: 6298
components:
- type: Transform
pos: -37.58222,-16.442198
parent: 2
- uid: 6299
components:
- type: Transform
pos: -37.012318,-16.644596
parent: 2
- uid: 6300
components:
- type: Transform
pos: -36.967327,-16.142347
parent: 2
- proto: CP14WoodenPlanks10
entities:
- uid: 6297
components:
- type: Transform
pos: -37.357258,-14.47818
parent: 2
- proto: CrateWoodenGrave
entities:
- uid: 2082

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,5 @@
- type: localizedDataset
id: CP14Tips
values:
prefix: cp14-tips-
count: 12

View File

@@ -6,11 +6,11 @@
- type: CP14MagicEffect
manaCost: 15
telegraphyEffects:
- !type:CP14SpellSpawnEntity
- !type:CP14SpellSpawnEntityOnTarget
spawns:
- CP14ImpactEffectCureWounds
effects:
- !type:CP14SpellSpawnEntity
- !type:CP14SpellSpawnEntityOnTarget
spawns:
- CP14ImpactEffectCureWounds
- !type:CP14SpellApplyEntityEffect

View File

@@ -0,0 +1,91 @@
- type: entity
id: CP14ActionSpellFireball
name: Fireball
description: An effective method of destruction - an explosive fireball
components:
- type: CP14MagicEffect
manaCost: 20
effects:
- !type:CP14SpellSpawnEntityOnUser
spawns:
- CP14ImpactEffectFireball
- !type:CP14SpellProjectile
prototype: CP14Fireball
- type: CP14MagicEffectVerbalAspect
startSpeech: "Quaeso, quemdam inter vos quaero... "
endSpeech: "A pila!"
- type: CP14MagicEffectSomaticAspect
- type: CP14MagicEffectCastingVisual
proto: CP14RuneFireball
- type: WorldTargetAction
useDelay: 20
checkCanAccess: false
raiseOnUser: true
range: 60
itemIconStyle: BigAction
sound: !type:SoundPathSpecifier
path: /Audio/Magic/rumble.ogg
icon:
sprite: _CP14/Effects/Magic/spells_icons.rsi
state: fireball
event: !type:CP14DelayedWorldTargetActionEvent
delay: 3
breakOnMove: false
- type: entity
id: CP14RuneFireball
parent: CP14BaseMagicRune
categories: [ HideSpawnMenu ]
components:
- type: PointLight
color: "#eea911"
- type: Sprite
layers:
- state: sun
color: "#eea911"
shader: unshaded
- state: medium_circle
color: "#fdda5d"
shader: unshaded
- type: entity
id: CP14ImpactEffectFireball
parent: CP14BaseMagicImpact
categories: [ HideSpawnMenu ]
components:
- type: Sprite
layers:
- state: wave_up
color: "#eea911"
shader: unshaded
- type: entity
id: CP14Fireball
parent: BulletRocket
name: artificial flame
categories: [ HideSpawnMenu ]
components:
- type: PointLight
color: "#E25822"
radius: 2.0
energy: 5.0
- type: Projectile
damage:
types:
Heat: 10
- type: IgnitionSource
temperature: 400
ignited: true
- type: IgniteOnCollide
fireStacks: 0.35
- type: Sprite
sprite: Objects/Weapons/Guns/Projectiles/magic.rsi
layers:
- state: fireball
shader: unshaded
- type: Explosive
explosionType: FireBomb
totalIntensity: 15
intensitySlope: 1
maxIntensity: 6
canCreateVacuum: false

View File

@@ -6,7 +6,7 @@
- type: CP14MagicEffect
manaCost: 5
effects:
- !type:CP14SpellSpawnEntity
- !type:CP14SpellSpawnEntityOnTarget
spawns:
- CP14ImpactEffectFlameCreation
- !type:CP14SpellSpawnInHandEntity
@@ -28,6 +28,7 @@
state: flame_creation
event: !type:CP14DelayedInstantActionEvent
delay: 1
breakOnMove: false
- type: entity
id: CP14RuneFlameCreation

View File

@@ -6,7 +6,7 @@
- type: CP14MagicEffect
manaCost: 15
effects:
- !type:CP14SpellSpawnEntity
- !type:CP14SpellSpawnEntityOnTarget
spawns:
- CP14ImpactEffectIceDagger
- !type:CP14SpellSpawnInHandEntity
@@ -25,6 +25,7 @@
state: ice_dagger
event: !type:CP14DelayedInstantActionEvent
delay: 0.5
breakOnMove: false
- type: entity
id: CP14RuneIceDagger
@@ -76,6 +77,10 @@
types:
Piercing: 5
Cold: 5
- type: CP14MeleeSelfDamage
damageToSelf:
types:
Blunt: 2 # 5 hits
- type: Destructible
thresholds:
- trigger:

View File

@@ -0,0 +1,64 @@
- type: entity
id: CP14ActionSpellIceShards
name: Ice Shards
description: Fast ice needles, for rapid shooting of targets.
components:
- type: CP14MagicEffect
manaCost: 5
effects:
- !type:CP14SpellProjectile
prototype: CP14IceShard
- type: CP14MagicEffectVerbalAspect
endSpeech: "Glacies acus!"
- type: CP14MagicEffectSomaticAspect
- type: CP14MagicEffectCastingVisual
proto: CP14RuneIceShards
- type: WorldTargetAction
useDelay: 0.5
repeat: true
checkCanAccess: false
raiseOnUser: true
range: 60
itemIconStyle: BigAction
sound: !type:SoundPathSpecifier
path: /Audio/Magic/rumble.ogg
icon:
sprite: _CP14/Effects/Magic/spells_icons.rsi
state: ice_shards
event: !type:CP14DelayedWorldTargetActionEvent
delay: 0.5
breakOnMove: false
- type: entity
id: CP14RuneIceShards
parent: CP14BaseMagicRune
categories: [ HideSpawnMenu ]
components:
- type: PointLight
color: "#5eabeb"
- type: Sprite
layers:
- state: double_outer
color: "#5eabeb"
shader: unshaded
- type: entity
id: CP14IceShard
parent: BaseBullet
name: ice shard
categories: [ HideSpawnMenu ]
components:
- type: PointLight
color: "#5eabeb"
radius: 1.1
energy: 1.0
- type: Projectile
damage:
types:
Cold: 4
Piercing: 4
- type: Sprite
sprite: _CP14/Objects/Weapons/Melee/Dagger/ice_dagger.rsi
layers:
- state: shard
shader: unshaded

View File

@@ -0,0 +1,45 @@
- type: entity
id: CP14ActionSpellShadowGrab
name: Shadow grab
description: You attract a ghostly hand that draws an object or entity to you
components:
- type: CP14MagicEffect
manaCost: 10
telegraphyEffects:
- !type:CP14SpellSpawnEntityOnTarget
spawns:
- CP14ImpactEffectShadowStep
- !type:CP14SpellSpawnEntityOnUser
spawns:
- CP14ImpactEffectShadowGrab
effects:
- !type:CP14SpellThrowToUser
throwPower: 10
- !type:CP14SpellSpawnEntityOnTarget
spawns:
- CP14ImpactEffectShadowStep
- type: CP14MagicEffectSomaticAspect
- type: EntityTargetAction
canTargetSelf: false
checkCanAccess: false
range: 10
useDelay: 10
itemIconStyle: BigAction
sound: !type:SoundPathSpecifier
path: /Audio/Magic/rumble.ogg
icon:
sprite: _CP14/Effects/Magic/spells_icons.rsi
state: shadow_grab
event: !type:CP14DelayedEntityTargetActionEvent
delay: 2
hidden: true
- type: entity
id: CP14ImpactEffectShadowGrab
parent: CP14BaseMagicImpact
categories: [ HideSpawnMenu ]
components:
- type: Sprite
layers:
- state: particles_up
color: "#5e427e"

View File

@@ -1,25 +1,22 @@
- type: entity
id: CP14ActionSpellShadowStep
name: Shadow step
description: A step through the gash of reality that allows you to cover a lot of distance quickly
description: A step through the gash of reality that allows you to cover a small of distance quickly
components:
- type: CP14MagicEffect
manaCost: 40
manaCost: 20
telegraphyEffects:
- !type:CP14SpellSpawnEntity
- !type:CP14SpellSpawnEntityOnTarget
spawns:
- CP14ImpactEffectShadowStep
effects:
- !type:CP14SpellSpawnEntity
spawns:
- CP14ImpactEffectShadowStep
- !type:CP14SpellCasterTeleport
- type: CP14MagicEffectVerbalAspect
startSpeech: "Tenebrae, accipe me..."
endSpeech: "in alium locum"
- type: CP14MagicEffectCastingVisual
proto: CP14ImpactEffectShadowStep
- type: CP14MagicEffectSomaticAspect
- type: WorldTargetAction
useDelay: 15
range: 10
useDelay: 10
range: 7
checkCanAccess: false
itemIconStyle: BigAction
sound: !type:SoundPathSpecifier
@@ -29,6 +26,8 @@
state: shadow_step
event: !type:CP14DelayedWorldTargetActionEvent
delay: 1
hidden: true
breakOnMove: false
- type: entity
id: CP14ImpactEffectShadowStep
@@ -37,6 +36,5 @@
components:
- type: Sprite
layers:
- state: particles_up
color: "#79b330"
shader: unshaded
- state: wave_up
color: "#5e427e"

View File

@@ -29,6 +29,24 @@
spells:
- CP14ActionSpellIceDagger
- type: entity
id: CP14ClothingRingIceShards
parent: CP14ClothingRingBase
name: conductive ring
suffix: Ice Shards
description: A standard mana-conductive ring that allows the user to summon ice shards.
components:
- type: Sprite
layers:
- state: brass_ring
- state: saphhire_stone_small
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:
- CP14ActionSpellIceShards
- type: entity
id: CP14ClothingRingFlameCreation
parent: CP14ClothingRingBase
@@ -47,6 +65,24 @@
spells:
- CP14ActionSpellFlameCreation
- type: entity
id: CP14ClothingRingFireball
parent: CP14ClothingRingBase
name: conductive ring
description: A standard mana-conductive ring that allows the user to summon fireballs.
suffix: Fireball
components:
- type: Sprite
layers:
- state: brass_ring
- state: ruby_stone_small
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:
- CP14ActionSpellFireball
- type: entity
id: CP14ClothingRingCureWounds
parent: CP14ClothingRingBase
@@ -63,4 +99,40 @@
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:
- CP14ActionSpellCureWounds
- CP14ActionSpellCureWounds
- type: entity
id: CP14ClothingRingShadowStep
parent: CP14ClothingRingBase
name: conductive ring
description: A standard mana-conductive ring that allows the user to step throught shadows.
suffix: Shadow step
components:
- type: Sprite
layers:
- state: brass_ring
- state: amethyst_stone_small
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:
- CP14ActionSpellShadowStep
- type: entity
id: CP14ClothingRingShadowGrab
parent: CP14ClothingRingBase
name: conductive ring
description: A standard mana-conductive ring that allows the user to summon grabbing shadow hand.
suffix: Shadow grab
components:
- type: Sprite
layers:
- state: brass_ring
- state: amethyst_stone_small
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:
- CP14ActionSpellShadowGrab

View File

@@ -34,13 +34,6 @@
shader: unshaded
- type: Physics
canCollide: false
- type: PointLight
enabled: true
color: "#4080FF"
radius: 3.5
softness: 1
autoRot: true
castShadows: false
- type: Beam
- type: TimedDespawn
lifetime: 3

View File

@@ -35,5 +35,10 @@
- type: CP14ConstrainedSpawnerOnTrigger
prototypes:
- CP14MobXeno
- CP14MobXenoPraetorian
- CP14MobXenoDrone
- CP14MobXenoDrone
- CP14MobSpaceCobra
- CP14MobSmallPurpleSnake
- CP14MobPurpleSnake
- MobLuminousEntity
- MobLuminousObject
- CP14MobWatcherMagmawing

View File

@@ -39,4 +39,16 @@
- state: cave
- state: frame
- type: CP14BiomeSpawner
biome: CP14CavesGeneric
biome: CP14CavesGeneric
- type: entity
id: CP14BiomeSpawnerForest
parent: CP14BaseBiomeSpawner
suffix: Forest
components:
- type: Sprite
layers:
- state: forest
- state: frame
- type: CP14BiomeSpawner
biome: CP14GrasslandHills

View File

@@ -18,41 +18,28 @@
- CP14BaseBattleStaff
- CP14BaseDagger
- CP14BaseDagger
- CP14BaseHandheldAxe
- CP14BaseLightHammer
- CP14BaseMace
- CP14BaseSickle
- CP14BaseThrowableSpear
- CP14BaseTwoHandedSword
- CP14TwoHandedSwordScythe
- CP14BaseLightCrossbow
- CP14Crossbolt
- CP14Crossbolt
- CP14Crossbolt
- CP14Crossbolt
- CP14BaseSharpeningStone
- CP14BaseSharpeningStone
- CP14BaseShovel
- CP14BaseHoe
- CP14BasePickaxe
- CP14OldLantern
- ClothingBackpackCargo
- ClothingBackpackCargo
- ClothingBackpackCargo
- ClothingBackpackCargo
- CP14CopperCoin5
- CP14CopperCoin5
- CP14CopperCoin5
- CP14CopperCoin5
- CP14CopperCoin1
- CP14CopperCoin1
- CP14CopperCoin1
- CP14CopperCoin1
- CP14CopperCoin1
- CP14CopperCoin1
- CP14CopperCoin1
- CP14CopperCoin1
- CP14CopperCoin1
- CP14CopperCoin1
- HealingToolbox
- HealingToolbox
- HealingToolbox
- CP14SilverCoin1
- CP14SilverCoin1
- CP14SilverCoin1
- CP14AuraNodeBase
- CP14AuraNodeBase
- CP14AuraNodeBase
- CP14AuraNodeBase
- type: entity
id: CP14RandomSpawnerBattleRoyaleLootTools
@@ -70,74 +57,26 @@
state: icon
- type: RandomSpawner
prototypes:
- CP14ClothingCloakArmoredRed
- CP14ClothingCloakBlacksmithArpon
- CP14ClothingCloakFurcapeBlack
- CP14ClothingCloakFurcapeBlue
- CP14ClothingCloakSimpleWhite
- CP14ClothingCloakSimpleDarkBlue
- CP14ClothingEyesMonocle
- CP14ClothingEyesGlasses
- CP14ClothingEyesAlchemyGlasses
- CP14ClothingEyesAlchemyMonocle
- CP14ClothingEyesThaumaturgyGlasses
- CP14ClothingGlovesGirdles
- CP14ClothingHeadMetalHeadband
- CP14ClothingHeadTriangularHat
- CP14ClothingHeadTriangularHatGolden
- CP14ClothingHeadRedBeret
- CP14ClothingHeadPurpleBeret
- CP14ClothingHeadYellowBeret
- CP14ClothingHeadBlueBeret
- CP14ClothingHeadBlackBeret
- CP14ClothingPantsTrouserWhite
- CP14ClothingPantsTrouserDarkBlue
- CP14ClothingPantsAristocratic
- CP14ClothingPantsLoincloth
- CP14ClothingShirtCottonBlue
- CP14ClothingShirtCottonBlack
- CP14ClothingShirtCottonPurple
- CP14ClothingShirtCottonRed
- CP14ClothingShirtCottonWhite
- CP14ClothingShirtCottonYellow
- CP14ClothingShirtSteampunk
- CP14ClothingShoesBlack
- CP14ClothingShoesAristocraticBlack
- CP14ClothingShoesSandals
- CP14DirtBlock10
- CP14StoneBlock10
- CP14WoodLog
- CP14WoodenPlanks10
- CP14Nail1
- CP14Nail110
- CP14BloodGrass
- CP14AgaricMushroom
- CP14ChromiumSlime
- CP14WildSage
- CP14QuartzShard
- CP14LumiMushroom
- CP14Cauldron
- CP14Pestle
- CP14Mortar
- CP14Dropper
- CP14VialSmallBloodgrassSap
- CP14VialSmallAgaricMushroom
- CP14VialSmallGroundQuartz
- CP14VialSmallWildSage
- CP14VialSmallChromiumSlime
- CP14VialSmallLumiMushroom
- CP14EnergyCrystalMedium
- CP14EnergyCrystalSmall
- CP14AlchemyNormalizer
- CP14CopperCoin5
- CP14CopperCoin5
- CP14CopperCoin5
- CP14CopperCoin5
- CP14CopperCoin1
- CP14CopperCoin1
- CP14CopperCoin1
- CP14CopperCoin1
- CP14CopperCoin1
- CP14CopperCoin1
- CP14CopperCoin1
- CP14CopperCoin1
- CP14CopperCoin1
- CP14CopperCoin1
- HealingToolbox
- HealingToolbox
- CP14SilverCoin1
- CP14SilverCoin1
- CP14SilverCoin1
- CP14AuraNodeBase
- CP14AuraNodeBase
- CP14AuraNodeBase
- CP14AuraNodeBase

View File

@@ -26,6 +26,20 @@
- state: green
- state: zookeeper #TODO Replace
- type: entity
id: CP14SpawnPointInnkeeper
parent: SpawnPointJobBase
name: innkeeper
categories:
- Spawner
components:
- type: SpawnPoint
job_id: CP14Innkeeper
- type: Sprite
layers:
- state: green
- state: zookeeper #TODO Replace
- type: entity
id: CP14SpawnPointCaptain
parent: SpawnPointJobBase
@@ -35,6 +49,34 @@
components:
- type: SpawnPoint
job_id: CP14Captain
- type: Sprite
layers:
- state: green
- state: zookeeper #TODO Replace
- type: entity
id: CP14SpawnPointGuardCommander
parent: SpawnPointJobBase
name: guard commander
categories:
- Spawner
components:
- type: SpawnPoint
job_id: CP14GuardCommander
- type: Sprite
layers:
- state: green
- state: zookeeper #TODO Replace
- type: entity
id: CP14SpawnPointHouseKeeper
parent: SpawnPointJobBase
name: house keeper
categories:
- Spawner
components:
- type: SpawnPoint
job_id: CP14HouseKeeper
- type: Sprite
layers:
- state: green

View File

@@ -5,13 +5,32 @@
- type: CP14OutPVSDespawn
- type: entity
id: CP14MobXenoPraetorian
parent: MobXenoPraetorian
id: CP14MobXenoDrone
parent: MobXenoDrone
components:
- type: CP14OutPVSDespawn
- type: entity
id: CP14MobXenoDrone
parent: MobXenoDrone
id: CP14MobSpaceCobra
name: cobra
parent: MobCobraSpace
components:
- type: CP14OutPVSDespawn
- type: entity
id: CP14MobPurpleSnake
parent: MobPurpleSnake
components:
- type: CP14OutPVSDespawn
- type: entity
id: CP14MobSmallPurpleSnake
parent: MobSmallPurpleSnake
components:
- type: CP14OutPVSDespawn
- type: entity
id: CP14MobWatcherMagmawing
parent: MobWatcherMagmawing
components:
- type: CP14OutPVSDespawn

View File

@@ -9,7 +9,7 @@
description: A heavy piece of metal on a long stick. What could be simpler than that?
components:
- type: Item
size: Large
size: Normal
- type: Sprite
sprite: _CP14/Objects/Weapons/Melee/Mace/mace.rsi
layers:

View File

@@ -29,6 +29,7 @@
acts: [ "Destruction" ]
- type: Climbable
- type: Sprite
snapCardinals: true
drawdepth: Mobs
layers:
- map: [ base ]
@@ -124,3 +125,182 @@
components:
- type: Sprite
sprite: _CP14/Structures/Storage/Crates/small_wooden_crate.rsi
- type: entity
abstract: true
id: BRFilledTemp
components:
- type: StorageFill
contents:
- id: CP14Crossbolt
prob: 0.2
- id: CP14Crossbolt
prob: 0.2
- id: CP14Crossbolt
prob: 0.2
- id: CP14BaseSharpeningStone
prob: 0.2
- id: CP14BaseSharpeningStone
prob: 0.2
- id: CP14BaseBattleStaff
prob: 0.2
onGroup: Weapon
- id: CP14BaseDagger
prob: 0.2
onGroup: Weapon
- id: CP14BaseHandheldAxe
prob: 0.2
onGroup: Weapon
- id: CP14BaseLightHammer
prob: 0.2
onGroup: Weapon
- id: CP14BaseMace
prob: 0.2
onGroup: Weapon
- id: CP14BaseSickle
prob: 0.2
onGroup: Weapon
- id: CP14BaseThrowableSpear
prob: 0.2
onGroup: Weapon
- id: CP14BaseLightCrossbow
prob: 0.2
onGroup: Weapon
- id: CP14BaseShovel
prob: 0.2
onGroup: Weapon2
- id: CP14BaseHoe
prob: 0.2
onGroup: Weapon2
- id: CP14BasePickaxe
prob: 0.2
onGroup: Weapon2
- id: CP14OldLantern
prob: 0.2
onGroup: Weapon2
- id: CP14ClothingRingIceDagger
prob: 0.2
onGroup: Weapon2
- id: CP14ClothingRingIceShards
prob: 0.2
onGroup: Weapon2
- id: CP14ClothingRingFlameCreation
prob: 0.2
onGroup: Weapon2
- id: CP14ClothingRingFireball
prob: 0.2
onGroup: Weapon2
- id: CP14ClothingRingCureWounds
prob: 0.2
onGroup: Weapon2
- id: CP14ClothingRingShadowStep
prob: 0.2
onGroup: Weapon2
- id: CP14ClothingRingShadowGrab
prob: 0.2
onGroup: Weapon2
- id: CP14AuraScanner
prob: 0.2
onGroup: Weapon2
- id: ClothingBackpackCargo
prob: 0.2
onGroup: Tool
- id: CP14CopperCoin1
prob: 0.2
onGroup: Currency
- id: CP14CopperCoin5
prob: 0.2
onGroup: Currency
- id: CP14CopperCoin
prob: 0.2
onGroup: Currency
- id: CP14SilverCoin1
prob: 0.2
onGroup: Currency
- id: CP14SilverCoin5
prob: 0.2
onGroup: Currency
- id: CP14DirtBlock10
prob: 0.2
onGroup: Material
- id: CP14StoneBlock10
prob: 0.2
onGroup: Material
- id: CP14WoodLog
prob: 0.2
onGroup: Material
- id: CP14WoodenPlanks10
prob: 0.2
onGroup: Material
- id: CP14Nail1
prob: 0.2
onGroup: Material
- id: CP14Nail110
prob: 0.2
onGroup: Material
- id: CP14BloodGrass
prob: 0.2
onGroup: Material
- id: CP14AgaricMushroom
prob: 0.2
onGroup: Material
- id: CP14ChromiumSlime
prob: 0.2
onGroup: Material
- id: CP14WildSage
prob: 0.2
onGroup: Material
- id: CP14QuartzShard
prob: 0.2
onGroup: Material
- id: CP14LumiMushroom
prob: 0.2
onGroup: Material
- id: CP14Pestle
prob: 0.2
onGroup: Material
- id: CP14Mortar
prob: 0.2
onGroup: Material
- id: CP14Dropper
prob: 0.2
onGroup: Material
- id: CP14VialSmallBloodgrassSap
prob: 0.2
onGroup: Material
- id: CP14VialSmallAgaricMushroom
prob: 0.2
onGroup: Material
- id: CP14VialSmallGroundQuartz
prob: 0.2
onGroup: Material
- id: CP14VialSmallWildSage
prob: 0.2
onGroup: Material
- id: CP14VialSmallChromiumSlime
prob: 0.2
onGroup: Material
- id: CP14VialSmallLumiMushroom
prob: 0.2
onGroup: Material
- id: CP14EnergyCrystalMedium
prob: 0.2
onGroup: Material
- id: CP14EnergyCrystalSmall
prob: 0.2
onGroup: Material
- type: entity
id: CP14SmallWoodenCrateFilled
parent:
- CP14SmallWoodenCrate
#- BRFilledTemp
suffix: Filled, Battleroyale
- type: entity
id: CP14LargeWoodenCrateFilled
suffix: Filled, Battleroyale
parent:
- CP14LargeWoodenCrate
#- BRFilledTemp

View File

@@ -50,6 +50,7 @@
layer:
- MidImpassable
- LowImpassable
- WallLayer
- type: entity
parent: CP14IronGrilleBase
@@ -83,6 +84,7 @@
layer:
- MidImpassable
- LowImpassable
- WallLayer
- type: entity
parent: CP14IronGrilleBase
@@ -116,6 +118,7 @@
layer:
- MidImpassable
- LowImpassable
- WallLayer
- type: entity
parent: CP14IronGrilleBase
@@ -140,6 +143,7 @@
layer:
- MidImpassable
- LowImpassable
- WallLayer
- type: InteractionOutline
- type: Door
openSpriteState: door_opened
@@ -154,6 +158,8 @@
closeTimeTwo: 0
openTimeOne: 0
openTimeTwo: 0
closedDrawDepth: Mobs
openDrawDepth: Mobs
openingAnimationTime: 0
closingAnimationTime: 0
openSound:
@@ -161,3 +167,26 @@
closeSound:
collection: MetalScrape
- type: Appearance
- type: entity
parent: CP14IronGrilleGate
id: CP14IronGrilleGateLockedTavern
suffix: Tavern locked
components:
- type: ContainerContainer
containers:
lock_slot: !type:ContainerSlot
- type: Lock
locked: true
lockSlotId: lock_slot
- type: ItemSlots
slots:
lock_slot:
name: cp-lock-slot-component-slot-name-default
startingItem: CP14LockTavern
disableEject: true
insertOnInteract: false
ejectOnBreak: true
whitelist:
components:
- CPLock

View File

@@ -195,6 +195,8 @@
closeTimeTwo: 0
openTimeOne: 0
openTimeTwo: 0
closedDrawDepth: Mobs
openDrawDepth: Mobs
openingAnimationTime: 0
closingAnimationTime: 0
openSound:
@@ -331,6 +333,8 @@
closeTimeTwo: 0
openTimeOne: 0
openTimeTwo: 0
closedDrawDepth: Mobs
openDrawDepth: Mobs
openingAnimationTime: 0
closingAnimationTime: 0
openSound:

View File

@@ -1,9 +1,9 @@
- type: entity
parent: BaseItem
id: CP14BaseKeyRing
suffix: Пустое
name: кольцо для ключей
description: Позволяет комфортно хранить большое количество ключей в одном месте.
suffix: Empty
name: key ring
description: Allows you to comfortably store a large number of keys in one place.
components:
- type: CP14KeyRing
- type: Sprite
@@ -30,11 +30,15 @@
- type: ContainerContainer
containers:
storagebase: !type:Container
- type: Clothing
quickEquip: false
slots:
- belt
- type: entity
parent: CP14BaseKeyRing
id: CP14KeyRingInnkeeper
suffix: Трактирщик
suffix: Innkeeper
components:
- type: StorageFill
contents:

View File

@@ -2,8 +2,8 @@
parent: BaseItem
id: CP14BaseKey
abstract: true
name: ключ
description: Небольшая заковыристая железяка, открывающая определенные замки. Не отдавайте кому попало!
name: key
description: A small, intricate piece of iron that opens certain locks. Don't give it to just anyone!
components:
- type: Tag
tags:
@@ -23,8 +23,8 @@
- type: entity
parent: BaseItem
id: CP14BaseLockpick
name: отмычка
description: Воровской инструмент, при должном умении и сноровке позволяющий взламывать любые замки.
name: lockpick
description: A thief's tool that, with proper skill and skill, allows you to pick any lock.
components:
- type: Sprite
sprite: _CP14/Objects/keys.rsi
@@ -34,7 +34,7 @@
- type: entity
parent: CP14BaseKey
id: CP14KeyTavern
name: ключ от таверны
name: captain key
components:
- type: Sprite
state: key1

View File

@@ -2,8 +2,8 @@
parent: BaseItem
abstract: true
id: CP14BaseLock
name: стальной замок
description: Он запирает вещи. И вам потребуется ключ, чтобы открыть их обратно.
name: steel lock
description: It locks things up. And you'll need a key to open them back up.
components:
- type: CP14Lock
lockPickDamageChance: 0.2
@@ -16,7 +16,7 @@
- type: entity
parent: CP14BaseLock
id: CP14LockTavern
name: замок от таверны
name: captain's lock
components:
- type: CP14Lock
autoGenerateShape: Tavern

View File

@@ -0,0 +1,10 @@
# Cloak
- type: loadout
id: CP14ClothingCloakArmoredRed
equipment: CP14ClothingCloakArmoredRed
- type: startingGear
id: CP14ClothingCloakArmoredRed
equipment:
cloak: CP14ClothingCloakArmoredRed

View File

@@ -90,3 +90,9 @@
name: cp14-loadout-captain-cloak
loadouts:
- CP14ClothingCloakCaptainJacket
- type: loadoutGroup
id: CP14GuardCommanderCloak
name: cp14-loadout-guard-commander-cloak
loadouts:
- CP14ClothingCloakArmoredRed

View File

@@ -23,7 +23,7 @@
- CP14BasicShoes
- type: roleLoadout
id: CP14JobInnkeeper
id: JobCP14Innkeeper
groups:
- CP14BasicHead
- CP14BasicEyes
@@ -47,24 +47,24 @@
- CP14BasicShoes
- type: roleLoadout
id: CP14JobGuardCommander
id: JobCP14GuardCommander
groups:
- CP14BasicHead
- CP14BasicEyes
- CP14BasicMask
- CP14BasicCloak
- CP14GuardCommanderCloak
- CP14BasicGloves
- CP14BasicShirt
- CP14BasicPants
- CP14BasicShoes
- type: roleLoadout
id: CP14JobHouseKeeper
id: JobCP14HouseKeeper
groups:
- CP14BasicHead
- CP14BasicEyes
- CP14BasicMask
- CP14BasicCloak
- CP14CaptainCloak
- CP14BasicGloves
- CP14BasicShirt
- CP14BasicPants

View File

@@ -55,5 +55,27 @@
CP14Captain: [1, 1]
- type: StationBiome
biome: CP14GrassFill
- type: gameMap
id: ExpeditionTest
mapName: Expedition test
mapPath: /Maps/_CP14/expedition_test.yml
maxRandomOffset: 0
randomRotation: false
minPlayers: 0
stations:
ExpeditionTest:
stationProto: StandardStationArena
components:
- type: StationNameSetup
mapNameTemplate: "Expedition test"
- type: StationJobs
availableJobs:
CP14Adventurer: [ -1, -1 ]
CP14Alchemist: [ -1, -1 ]
CP14Innkeeper: [ -1, -1 ]
CP14Captain: [1, 1]
CP14GuardCommander: [1, 1]
CP14HouseKeeper: [1, 1]
- type: CP14StationExpeditionTarget
shuttlePath: /Maps/_CP14/Shuttles/test-ship.yml

View File

@@ -28,8 +28,8 @@
- type: CP14ExpeditionCollectCondition
verifyMapExistence: false
collectGroup: CP14Gold
minCollectionSize: 25
maxCollectionSize: 50
minCollectionSize: 100
maxCollectionSize: 150
- type: Objective
difficulty: 1

View File

@@ -30,31 +30,31 @@
id: CP14PersonalCurrencyCollectObjectiveSmall
components:
- type: Objective
difficulty: 0.5
difficulty: 0.25
- type: CP14CurrencyCollectCondition
currency: 500
currency: 250
- type: entity
parent: CP14BasePersonalCurrencyCollectObjective
id: CP14PersonalCurrencyCollectObjectiveMedium
components:
- type: Objective
difficulty: 1
difficulty: 0.5
- type: CP14CurrencyCollectCondition
currency: 1000
currency: 500
- type: entity
parent: CP14BasePersonalCurrencyCollectObjective
id: CP14PersonalCurrencyCollectObjectiveBig
components:
- type: Objective
difficulty: 3
difficulty: 1
- type: CP14CurrencyCollectCondition
currency: 3000
currency: 1000
- type: weightedRandom
id: CP14PersonalCurrencyCollectObjectiveGroup
weights:
CP14PersonalCurrencyCollectObjectiveSmall: 2
CP14PersonalCurrencyCollectObjectiveMedium: 1
CP14PersonalCurrencyCollectObjectiveBig: 0.3
CP14PersonalCurrencyCollectObjectiveSmall: 1
CP14PersonalCurrencyCollectObjectiveMedium: 0.5
CP14PersonalCurrencyCollectObjectiveBig: 0.25

View File

@@ -86,6 +86,23 @@
- CP14FloorBase
entities:
- CP14GatherableLumiMushroom
- !type:BiomeEntityLayer # lumishroom sage
threshold: 0.8
noise:
seed: 8
noiseType: OpenSimplex2
fractalType: Ridged
frequency: 0.85
octaves: 3
lacunarity: 1.8
gain: 0.7
domainWarpType: OpenSimplex2
domainWarpAmp: 120
allowedTiles:
- CP14FloorBase
entities:
- CP14ConstrainedSpawnerXeno
- CP14AuraNodeBase
# Lakes start
- !type:BiomeEntityLayer
allowedTiles:

View File

@@ -168,6 +168,22 @@
- CP14FloorGrass
entities:
- CP14GatherableWildSage
- !type:BiomeEntityLayer # Mobs and aura
threshold: 0.8
noise:
seed: 8
noiseType: OpenSimplex2
fractalType: Ridged
frequency: 0.85
octaves: 3
lacunarity: 1.8
gain: 0.7
domainWarpType: OpenSimplex2
domainWarpAmp: 120
allowedTiles:
- CP14FloorGrass
entities:
- CP14AuraNodeBase
# Подбиомы лугов
@@ -177,7 +193,7 @@
- !type:BiomeMetaLayer
template: CP14Grassland
- !type:BiomeEntityLayer # More Trees
threshold: 0.5
threshold: 0.2
noise:
seed: 4
noiseType: OpenSimplex2

View File

@@ -13,4 +13,4 @@
- type: startingGear
id: CP14CaptainGear
equipment:
belt1: CP14WalletFilledTest
belt1: CP14KeyRingInnkeeper

View File

@@ -13,4 +13,4 @@
- type: startingGear
id: CP14GuardCommanderGear
equipment:
belt1: CP14WalletFilledTest
belt1: CP14KeyRingInnkeeper

View File

@@ -13,4 +13,4 @@
- type: startingGear
id: CP14HouseKeeperGear
equipment:
belt1: CP14WalletFilledTest
belt1: CP14KeyRingInnkeeper

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 B

View File

@@ -18,6 +18,9 @@
},
{
"name": "emerald_stone_small"
},
{
"name": "amethyst_stone_small"
}
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -21,6 +21,21 @@
0.2
]
]
},
{
"name": "wave_up",
"delays": [
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
]
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -13,11 +13,20 @@
{
"name": "flame_creation"
},
{
"name": "fireball"
},
{
"name": "ice_dagger"
},
{
"name": "ice_shards"
},
{
"name": "shadow_step"
},
{
"name": "shadow_grab"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 B

View File

@@ -15,6 +15,9 @@
},
{
"name": "grass"
},
{
"name": "forest"
}
]
}

View File

@@ -10,6 +10,9 @@
{
"name": "icon"
},
{
"name": "shard"
},
{
"name": "inhand-left",
"directions": 4

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B