Compare commits
37 Commits
welcoming-
...
fishing
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6575aa19c4 | ||
|
|
7ac03a54e4 | ||
|
|
874c524538 | ||
|
|
8623324fab | ||
|
|
80e429c8fa | ||
|
|
355fc410a3 | ||
|
|
948d711336 | ||
|
|
de5ec12791 | ||
|
|
41b84f43eb | ||
|
|
d96a4b6638 | ||
|
|
0decd375e4 | ||
|
|
d201dc0695 | ||
|
|
5b3688fc89 | ||
|
|
f7b5e40f23 | ||
|
|
d0a185cca0 | ||
|
|
f7f7feb837 | ||
|
|
06863d9986 | ||
|
|
d5ce5d9f37 | ||
|
|
56299c62d6 | ||
|
|
e77645d9d6 | ||
|
|
d81dbe4c20 | ||
|
|
d3be599ccb | ||
|
|
4efbb6f307 | ||
|
|
b4ab1a714c | ||
|
|
b04b95cae4 | ||
|
|
32b077af63 | ||
|
|
52c06249ea | ||
|
|
bb2fbd1baf | ||
|
|
48a5620099 | ||
|
|
ad70108cdf | ||
|
|
97d08097fe | ||
|
|
961f365f52 | ||
|
|
78c711950a | ||
|
|
c0221b1445 | ||
|
|
dbcf17bab2 | ||
|
|
a88e0ee00f | ||
|
|
ba60bc7176 |
149
Content.Client/_CP14/Fishing/CP14FishingOverlay.cs
Normal file
149
Content.Client/_CP14/Fishing/CP14FishingOverlay.cs
Normal file
@@ -0,0 +1,149 @@
|
||||
using System.Numerics;
|
||||
using Content.Client.Resources;
|
||||
using Content.Shared._CP14.Fishing.Components;
|
||||
using Content.Shared._CP14.Fishing.Prototypes;
|
||||
using Content.Shared._CP14.Fishing.Systems;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Client.Graphics;
|
||||
using Robust.Client.Player;
|
||||
using Robust.Client.ResourceManagement;
|
||||
using Robust.Shared.Enums;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Client._CP14.Fishing;
|
||||
|
||||
public sealed class CP14FishingOverlay : Overlay
|
||||
{
|
||||
[Dependency] private readonly IComponentFactory _factory = default!;
|
||||
[Dependency] private readonly IEntityManager _entity = default!;
|
||||
[Dependency] private readonly IPlayerManager _player = default!;
|
||||
[Dependency] private readonly IPrototypeManager _prototype = default!;
|
||||
[Dependency] private readonly IResourceCache _resourceCache = default!;
|
||||
|
||||
private readonly SpriteSystem _sprite;
|
||||
private readonly TransformSystem _transform;
|
||||
private readonly CP14SharedFishingProcessSystem _sharedFishingProcess;
|
||||
|
||||
private Texture _backgroundTexture = default!;
|
||||
private Texture _handleTopTexture = default!;
|
||||
private Texture _handleMiddleTexture = default!;
|
||||
private Texture _handleBottomTexture = default!;
|
||||
|
||||
private Texture _lootTexture = default!;
|
||||
|
||||
private Vector2 _backgroundOffset;
|
||||
private Vector2 _backgroundHandleOffset;
|
||||
private Vector2 _backgroundHandleSize;
|
||||
|
||||
private Vector2 _progressOffset;
|
||||
private Vector2 _progressSize;
|
||||
|
||||
private EntityUid _process = EntityUid.Invalid;
|
||||
|
||||
public override OverlaySpace Space => OverlaySpace.WorldSpace;
|
||||
|
||||
public CP14FishingOverlay()
|
||||
{
|
||||
IoCManager.InjectDependencies(this);
|
||||
|
||||
_sprite = _entity.System<SpriteSystem>();
|
||||
_transform = _entity.System<TransformSystem>();
|
||||
_sharedFishingProcess = _entity.System<CP14SharedFishingProcessSystem>();
|
||||
}
|
||||
|
||||
protected override void Draw(in OverlayDrawArgs args)
|
||||
{
|
||||
if (_player.LocalEntity is not { } localEntity)
|
||||
return;
|
||||
|
||||
if (!_sharedFishingProcess.TryGetByUser(localEntity, out var fishingProcess))
|
||||
return;
|
||||
|
||||
// Refresh the texture cache, with a new fishing process
|
||||
if (_process != fishingProcess.Value.Owner)
|
||||
{
|
||||
_process = fishingProcess.Value.Owner;
|
||||
|
||||
UpdateCachedStyleSheet(_sharedFishingProcess.GetStyle(fishingProcess.Value));
|
||||
|
||||
var prototype = _prototype.Index(fishingProcess.Value.Comp.LootProtoId);
|
||||
var iconPath = CP14FishingIconComponent.DefaultTexturePath;
|
||||
|
||||
if (prototype.Components.TryGetComponent(_factory.GetComponentName(typeof(CP14FishingIconComponent)), out var iconComponent))
|
||||
{
|
||||
var comp = (CP14FishingIconComponent) iconComponent;
|
||||
iconPath = comp.TexturePath;
|
||||
}
|
||||
|
||||
_lootTexture = _resourceCache.GetTexture(iconPath);
|
||||
}
|
||||
|
||||
// Getting the position of the player we will be working from
|
||||
var worldPosition = _transform.GetWorldPosition(localEntity);
|
||||
|
||||
// Calculate the shift of the player relative to the bottom of the coordinates
|
||||
var playerOffset = fishingProcess.Value.Comp.PlayerPositionNormalized * _backgroundHandleSize;
|
||||
var playerHalfSize = fishingProcess.Value.Comp.PlayerHalfSizeNormalized * _backgroundHandleSize;
|
||||
|
||||
var lootOffset = fishingProcess.Value.Comp.LootPositionNormalized * _backgroundHandleSize + Vector2.UnitX * _backgroundHandleSize.X / 2;
|
||||
|
||||
DrawBackground(args.WorldHandle, worldPosition - _backgroundOffset);
|
||||
DrawProgress(args.WorldHandle, worldPosition - _backgroundOffset + _progressOffset, _progressSize, fishingProcess.Value.Comp.Progress);
|
||||
DrawHandle(args.WorldHandle, worldPosition - _backgroundOffset + _backgroundHandleOffset + playerOffset, playerHalfSize);
|
||||
DrawLoot(args.WorldHandle, worldPosition - _backgroundOffset + _backgroundHandleOffset + lootOffset);
|
||||
}
|
||||
|
||||
private void DrawBackground(DrawingHandleWorld handle, Vector2 position)
|
||||
{
|
||||
handle.DrawTexture(_backgroundTexture, position);
|
||||
}
|
||||
|
||||
private void DrawProgress(DrawingHandleWorld handle, Vector2 position, Vector2 size, float progress)
|
||||
{
|
||||
var vectorA = position;
|
||||
var vectorB = position + new Vector2(size.X, size.Y * progress);
|
||||
var box = new Box2(vectorA, vectorB);
|
||||
|
||||
handle.DrawRect(box, Color.Aqua);
|
||||
}
|
||||
|
||||
private void DrawHandle(DrawingHandleWorld handle, Vector2 position, Vector2 halfSize)
|
||||
{
|
||||
var cursor = position - halfSize;
|
||||
|
||||
// Bottom
|
||||
handle.DrawTexture(_handleBottomTexture, cursor);
|
||||
cursor += new Vector2(0, _handleBottomTexture.Height / 32f);
|
||||
|
||||
// Middle
|
||||
while (cursor.Y < position.Y + halfSize.Y - _handleTopTexture.Height / 32f)
|
||||
{
|
||||
handle.DrawTexture(_handleMiddleTexture, cursor);
|
||||
cursor += new Vector2(0, _handleMiddleTexture.Height / 32f);
|
||||
}
|
||||
|
||||
// Front
|
||||
handle.DrawTexture(_handleTopTexture, cursor);
|
||||
}
|
||||
|
||||
private void DrawLoot(DrawingHandleWorld handle, Vector2 position)
|
||||
{
|
||||
handle.DrawTexture(_lootTexture, position - _lootTexture.Size / 64f);
|
||||
}
|
||||
|
||||
private void UpdateCachedStyleSheet(CP14FishingProcessStyleSheetPrototype styleSheet)
|
||||
{
|
||||
_backgroundTexture = _resourceCache.GetTexture(styleSheet.Background.Texture);
|
||||
_handleTopTexture = _resourceCache.GetTexture(styleSheet.Handle.TopTexture);
|
||||
_handleMiddleTexture = _resourceCache.GetTexture(styleSheet.Handle.MiddleTexture);
|
||||
_handleBottomTexture = _resourceCache.GetTexture(styleSheet.Handle.BottomTexture);
|
||||
|
||||
_backgroundOffset = styleSheet.Background.Offset + Vector2.UnitX * _backgroundTexture.Width / 32f;
|
||||
|
||||
_backgroundHandleOffset = styleSheet.Background.HandleOffset;
|
||||
_backgroundHandleSize = styleSheet.Background.HandleSize;
|
||||
|
||||
_progressOffset = styleSheet.Background.ProgressOffset;
|
||||
_progressSize = styleSheet.Background.ProgressSize;
|
||||
}
|
||||
}
|
||||
23
Content.Client/_CP14/Fishing/CP14FishingOverlaySystem.cs
Normal file
23
Content.Client/_CP14/Fishing/CP14FishingOverlaySystem.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using Content.Client.Overlays;
|
||||
using Robust.Client.Graphics;
|
||||
|
||||
namespace Content.Client._CP14.Fishing;
|
||||
|
||||
public sealed class CP14FishingOverlaySystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly IOverlayManager _overlay = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
_overlay.AddOverlay(new CP14FishingOverlay());
|
||||
}
|
||||
|
||||
public override void Shutdown()
|
||||
{
|
||||
base.Shutdown();
|
||||
|
||||
_overlay.RemoveOverlay<StencilOverlay>();
|
||||
}
|
||||
}
|
||||
5
Content.Client/_CP14/Fishing/CP14FishingProcessSystem.cs
Normal file
5
Content.Client/_CP14/Fishing/CP14FishingProcessSystem.cs
Normal file
@@ -0,0 +1,5 @@
|
||||
using Content.Shared._CP14.Fishing.Systems;
|
||||
|
||||
namespace Content.Client._CP14.Fishing;
|
||||
|
||||
public sealed class CP14FishingProcessSystem : CP14SharedFishingProcessSystem;
|
||||
35
Content.Client/_CP14/Fishing/CP14FishingRodSystem.cs
Normal file
35
Content.Client/_CP14/Fishing/CP14FishingRodSystem.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using Content.Client.Hands.Systems;
|
||||
using Content.Shared._CP14.Fishing.Components;
|
||||
using Content.Shared._CP14.Fishing.Systems;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Shared.Input;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
namespace Content.Client._CP14.Fishing;
|
||||
|
||||
public sealed class CP14FishingRodSystem : CP14SharedFishingRodSystem
|
||||
{
|
||||
[Dependency] private readonly IGameTiming _timing = default!;
|
||||
[Dependency] private readonly InputSystem _input = default!;
|
||||
[Dependency] private readonly HandsSystem _hands = default!;
|
||||
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
base.Update(frameTime);
|
||||
|
||||
if (!_timing.IsFirstTimePredicted)
|
||||
return;
|
||||
|
||||
var handUid = _hands.GetActiveHandEntity();
|
||||
|
||||
if (!TryComp<CP14FishingRodComponent>(handUid, out var fishingRodComponent))
|
||||
return;
|
||||
|
||||
var reelKey = _input.CmdStates.GetState(EngineKeyFunctions.UseSecondary) == BoundKeyState.Down;
|
||||
|
||||
if (fishingRodComponent.Reeling == reelKey)
|
||||
return;
|
||||
|
||||
RaisePredictiveEvent(new RequestFishingRodReelMessage(reelKey));
|
||||
}
|
||||
}
|
||||
@@ -40,6 +40,7 @@ namespace Content.IntegrationTests.Tests
|
||||
.Where(p => !pair.IsTestPrototype(p))
|
||||
.Where(p => !p.Components.ContainsKey("MapGrid")) // This will smash stuff otherwise.
|
||||
.Where(p => !p.Components.ContainsKey("RoomFill")) // This comp can delete all entities, and spawn others
|
||||
.Where(p => !p.Components.ContainsKey("CP14BiomeSpawner")) // CP14 this component delete all entities on this tile
|
||||
.Select(p => p.ID)
|
||||
.ToList();
|
||||
|
||||
@@ -103,6 +104,7 @@ namespace Content.IntegrationTests.Tests
|
||||
.Where(p => !pair.IsTestPrototype(p))
|
||||
.Where(p => !p.Components.ContainsKey("MapGrid")) // This will smash stuff otherwise.
|
||||
.Where(p => !p.Components.ContainsKey("RoomFill")) // This comp can delete all entities, and spawn others
|
||||
.Where(p => !p.Components.ContainsKey("CP14BiomeSpawner")) // CP14 this component delete all entities on this tile
|
||||
.Select(p => p.ID)
|
||||
.ToList();
|
||||
foreach (var protoId in protoIds)
|
||||
@@ -344,6 +346,7 @@ namespace Content.IntegrationTests.Tests
|
||||
"DebugExceptionStartup",
|
||||
"GridFill",
|
||||
"RoomFill",
|
||||
"CP14BiomeSpawner", // CP14 this component delete all entities on this tile
|
||||
"Map", // We aren't testing a map entity in this test
|
||||
"MapGrid",
|
||||
"Broadphase",
|
||||
|
||||
@@ -70,7 +70,6 @@ namespace Content.IntegrationTests.Tests
|
||||
"Dev",
|
||||
"MeteorArena",
|
||||
"Comoss",
|
||||
"Factoria",
|
||||
//CrystallEdge Map replacement end
|
||||
};
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Content.Server.Construction.Components;
|
||||
using Content.Shared._CP14.Workbench.Prototypes;
|
||||
using Content.Shared.ActionBlocker;
|
||||
using Content.Shared.Construction;
|
||||
using Content.Shared.Construction.Prototypes;
|
||||
@@ -236,6 +237,36 @@ namespace Content.Server.Construction
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
//CP14 stack group support
|
||||
case CP14StackGroupConstructionGraphStep stackGroupStep:
|
||||
foreach (var entity in new HashSet<EntityUid>(EnumerateNearby(user)))
|
||||
{
|
||||
if (!stackGroupStep.EntityValid(entity, out var stack))
|
||||
continue;
|
||||
|
||||
if (used.Contains(entity))
|
||||
continue;
|
||||
|
||||
var splitStack = _stackSystem.Split(entity, stackGroupStep.Amount, user.ToCoordinates(0, 0), stack);
|
||||
|
||||
if (splitStack == null)
|
||||
continue;
|
||||
|
||||
if (string.IsNullOrEmpty(stackGroupStep.Store))
|
||||
{
|
||||
if (!_container.Insert(splitStack.Value, container))
|
||||
continue;
|
||||
}
|
||||
else if (!_container.Insert(splitStack.Value, GetContainer(stackGroupStep.Store)))
|
||||
continue;
|
||||
|
||||
handled = true;
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
//CP14 stack group support end
|
||||
}
|
||||
|
||||
if (handled == false)
|
||||
|
||||
121
Content.Server/_CP14/Fishing/CP14FishingProcessSystem.cs
Normal file
121
Content.Server/_CP14/Fishing/CP14FishingProcessSystem.cs
Normal file
@@ -0,0 +1,121 @@
|
||||
using Content.Shared._CP14.Fishing.Components;
|
||||
using Content.Shared._CP14.Fishing.Core;
|
||||
using Content.Shared._CP14.Fishing.Core.Behaviors;
|
||||
using Content.Shared._CP14.Fishing.Events;
|
||||
using Content.Shared._CP14.Fishing.Systems;
|
||||
using Content.Shared.Throwing;
|
||||
using Robust.Shared.Random;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
namespace Content.Server._CP14.Fishing;
|
||||
|
||||
public sealed class CP14FishingProcessSystem : CP14SharedFishingProcessSystem
|
||||
{
|
||||
[Dependency] private readonly IGameTiming _timing = default!;
|
||||
[Dependency] private readonly IRobustRandom _random = default!;
|
||||
[Dependency] private readonly ThrowingSystem _throwing = default!;
|
||||
[Dependency] private readonly CP14FishingPoolSystem _pool = default!;
|
||||
|
||||
/*
|
||||
private readonly TimeSpan _dirtyDelay = TimeSpan.FromTicks(10000000000000);
|
||||
private TimeSpan _dirtyDelayTime;
|
||||
*/
|
||||
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
// DON'T CALL BASE METHOD!!!
|
||||
|
||||
var query = EntityQueryEnumerator<CP14FishingProcessComponent>();
|
||||
while (query.MoveNext(out var entityUid, out var processComponent))
|
||||
{
|
||||
Update((entityUid, processComponent), frameTime * 2);
|
||||
}
|
||||
}
|
||||
|
||||
public override void FishPreUpdate(Entity<CP14FishingProcessComponent> process, Fish fish, float frameTime)
|
||||
{
|
||||
base.FishPreUpdate(process, fish, frameTime);
|
||||
|
||||
fish.UpdateSpeed(_random, _timing);
|
||||
Dirty(process);
|
||||
}
|
||||
|
||||
public override void UpdateDirty(Entity<CP14FishingProcessComponent> process)
|
||||
{
|
||||
base.UpdateDirty(process);
|
||||
|
||||
/*
|
||||
if (_timing.CurTime < _dirtyDelayTime)
|
||||
return;
|
||||
|
||||
_dirtyDelayTime = _timing.CurTime + _dirtyDelay;
|
||||
Dirty(process);
|
||||
*/
|
||||
}
|
||||
|
||||
public override void Finish(Entity<CP14FishingProcessComponent> process, bool success)
|
||||
{
|
||||
base.Finish(process, success);
|
||||
|
||||
if (success)
|
||||
{
|
||||
Reward(process);
|
||||
}
|
||||
|
||||
// Raising events before deletion
|
||||
var ev = new CP14FishingFinishedEvent(success);
|
||||
RaiseLocalEvent(process, ref ev, true);
|
||||
|
||||
// Either way, we need to delete the process
|
||||
Stop(process);
|
||||
}
|
||||
|
||||
public override void Reward(Entity<CP14FishingProcessComponent> process)
|
||||
{
|
||||
base.Reward(process);
|
||||
|
||||
var pool = GetPool(process);
|
||||
var rod = GetRod(process);
|
||||
|
||||
var coordinates = Transform(pool).Coordinates;
|
||||
var targetCoordinates = Transform(process.Comp.User!.Value).Coordinates;
|
||||
|
||||
var loot = Spawn(process.Comp.LootProtoId, coordinates);
|
||||
|
||||
_throwing.TryThrow(loot, targetCoordinates, rod.Comp.ThrowPower);
|
||||
}
|
||||
|
||||
public Entity<CP14FishingProcessComponent> Start(
|
||||
Entity<CP14FishingRodComponent> fishingRod,
|
||||
Entity<CP14FishingPoolComponent> fishingPool,
|
||||
EntityUid user)
|
||||
{
|
||||
var process = CreateProcess(fishingRod.Owner);
|
||||
var loot = _pool.GetLootPrototypeId(fishingPool);
|
||||
var style = GetStyle(fishingRod);
|
||||
|
||||
// Save entities
|
||||
process.Comp.FishingRod = fishingRod;
|
||||
process.Comp.FishingPool = fishingPool;
|
||||
process.Comp.User = user;
|
||||
|
||||
process.Comp.Player = new Player(fishingRod.Comp.Size);
|
||||
process.Comp.Fish = new Fish(new MixedBehavior(), _timing.CurTime + TimeSpan.FromSeconds(0.5f));
|
||||
|
||||
process.Comp.LootProtoId = loot;
|
||||
process.Comp.StyleSheet = style;
|
||||
|
||||
Dirty(process);
|
||||
|
||||
Log.Debug($"Started new fishing process at {process}");
|
||||
return process;
|
||||
}
|
||||
|
||||
public Entity<CP14FishingProcessComponent> CreateProcess(EntityUid parent)
|
||||
{
|
||||
var entityUid = SpawnAttachedTo(null, Transform(parent).Coordinates);
|
||||
var ensureComponent = AddComp<CP14FishingProcessComponent>(entityUid);
|
||||
|
||||
return (entityUid, ensureComponent);
|
||||
}
|
||||
}
|
||||
31
Content.Server/_CP14/Fishing/CP14FishingRodSystem.cs
Normal file
31
Content.Server/_CP14/Fishing/CP14FishingRodSystem.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using Content.Shared._CP14.Fishing.Components;
|
||||
using Content.Shared._CP14.Fishing.Systems;
|
||||
using Content.Shared.Interaction;
|
||||
|
||||
namespace Content.Server._CP14.Fishing;
|
||||
|
||||
public sealed class CP14FishingRodSystem : CP14SharedFishingRodSystem
|
||||
{
|
||||
[Dependency] private readonly CP14FishingProcessSystem _fishingProcess = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<CP14FishingPoolComponent, AfterInteractUsingEvent>(OnAfterInteractUsing);
|
||||
}
|
||||
|
||||
private void OnAfterInteractUsing(Entity<CP14FishingPoolComponent> entity, ref AfterInteractUsingEvent args)
|
||||
{
|
||||
if (args.Handled || !args.CanReach)
|
||||
return;
|
||||
|
||||
if (!TryComp<CP14FishingRodComponent>(args.Used, out var fishingRodComponent))
|
||||
return;
|
||||
|
||||
if (fishingRodComponent.Process is not null)
|
||||
return;
|
||||
|
||||
fishingRodComponent.Process = _fishingProcess.Start((args.Used, fishingRodComponent), entity, args.User);
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
* https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT
|
||||
*/
|
||||
|
||||
using System.Numerics;
|
||||
using Content.Server.DoAfter;
|
||||
using Content.Server.Popups;
|
||||
using Content.Server.Stack;
|
||||
@@ -15,6 +16,7 @@ using Content.Shared.UserInterface;
|
||||
using Robust.Server.Audio;
|
||||
using Robust.Server.GameObjects;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Server._CP14.Workbench;
|
||||
|
||||
@@ -29,6 +31,7 @@ public sealed partial class CP14WorkbenchSystem : SharedCP14WorkbenchSystem
|
||||
[Dependency] private readonly UserInterfaceSystem _userInterface = default!;
|
||||
[Dependency] private readonly SharedSolutionContainerSystem _solutionContainer = default!;
|
||||
[Dependency] private readonly SharedTransformSystem _transform = default!;
|
||||
[Dependency] private readonly IRobustRandom _random = default!;
|
||||
|
||||
private EntityQuery<MetaDataComponent> _metaQuery;
|
||||
private EntityQuery<StackComponent> _stackQuery;
|
||||
@@ -94,13 +97,13 @@ public sealed partial class CP14WorkbenchSystem : SharedCP14WorkbenchSystem
|
||||
|
||||
foreach (var req in recipe.Requirements)
|
||||
{
|
||||
req.PostCraft(EntityManager, placedEntities, args.User);
|
||||
req.PostCraft(EntityManager, _proto, placedEntities, args.User);
|
||||
}
|
||||
|
||||
//We teleport result to workbench AFTER craft.
|
||||
foreach (var resultEntity in resultEntities)
|
||||
{
|
||||
_transform.SetCoordinates(resultEntity, Transform(ent).Coordinates);
|
||||
_transform.SetCoordinates(resultEntity, Transform(ent).Coordinates.Offset(new Vector2(_random.NextFloat(-0.25f, 0.25f), _random.NextFloat(-0.25f, 0.25f))));
|
||||
}
|
||||
|
||||
UpdateUIRecipes(ent, args.User);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Robust.Shared.Serialization;
|
||||
using Content.Shared._CP14.Workbench.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Serialization.Manager;
|
||||
using Robust.Shared.Serialization.Markdown.Mapping;
|
||||
using Robust.Shared.Serialization.Markdown.Validation;
|
||||
@@ -46,6 +47,13 @@ namespace Content.Shared.Construction.Steps
|
||||
return typeof(PartAssemblyConstructionGraphStep);
|
||||
}
|
||||
|
||||
//CP14 stack group support
|
||||
if (node.Has("stackGroup"))
|
||||
{
|
||||
return typeof(CP14StackGroupConstructionGraphStep);
|
||||
}
|
||||
//CP14 stack group support end
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -204,11 +204,14 @@ public abstract partial class CP14SharedFarmingSystem
|
||||
return false;
|
||||
}
|
||||
|
||||
if (_map.GetAnchoredEntities((map.Value, gridComp), position).ToList().Count > 0)
|
||||
foreach (var anchored in _map.GetAnchoredEntities((map.Value, gridComp), position))
|
||||
{
|
||||
if (user is not null && _timing.IsFirstTimePredicted && _net.IsClient)
|
||||
_popup.PopupEntity(Loc.GetString("cp14-farming-soil-occupied"), user.Value, user.Value);
|
||||
return false;
|
||||
if (PlantQuery.TryComp(anchored, out var plant))
|
||||
{
|
||||
if (user is not null && _timing.IsFirstTimePredicted && _net.IsClient)
|
||||
_popup.PopupEntity(Loc.GetString("cp14-farming-soil-occupied"), user.Value, user.Value);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Components;
|
||||
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
public sealed partial class CP14FishingIconComponent : Component
|
||||
{
|
||||
public static readonly ResPath DefaultTexturePath = new("/Textures/_CP14/Interface/Fishing/Icons/default.png");
|
||||
|
||||
[DataField]
|
||||
public ResPath TexturePath = DefaultTexturePath;
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using Content.Shared._CP14.Fishing.Prototypes;
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Components;
|
||||
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
public sealed partial class CP14FishingPoolComponent : Component
|
||||
{
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public ProtoId<CP14FishingPoolLootTablePrototype> LootTable = "Default";
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
using System.Numerics;
|
||||
using Content.Shared._CP14.Fishing.Core;
|
||||
using Content.Shared._CP14.Fishing.Prototypes;
|
||||
using Content.Shared._CP14.Fishing.Systems;
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Components;
|
||||
|
||||
[Access(typeof(CP14SharedFishingProcessSystem))]
|
||||
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
|
||||
public sealed partial class CP14FishingProcessComponent : Component
|
||||
{
|
||||
/**
|
||||
* Boxes
|
||||
*/
|
||||
|
||||
[ViewVariables, AutoNetworkedField]
|
||||
public Player? Player;
|
||||
|
||||
[ViewVariables, AutoNetworkedField]
|
||||
public Fish? Fish;
|
||||
|
||||
/**
|
||||
* Progress
|
||||
*/
|
||||
|
||||
[ViewVariables, AutoNetworkedField]
|
||||
public float Progress;
|
||||
|
||||
/**
|
||||
* Saved entities
|
||||
*/
|
||||
|
||||
[ViewVariables, AutoNetworkedField]
|
||||
public EntityUid? FishingRod = null;
|
||||
|
||||
[ViewVariables, AutoNetworkedField]
|
||||
public EntityUid? User = null;
|
||||
|
||||
[ViewVariables, AutoNetworkedField]
|
||||
public EntityUid? FishingPool = null;
|
||||
|
||||
/**
|
||||
* Loot
|
||||
*/
|
||||
|
||||
[ViewVariables, AutoNetworkedField]
|
||||
public EntProtoId LootProtoId;
|
||||
|
||||
/**
|
||||
* Style
|
||||
*/
|
||||
|
||||
[ViewVariables]
|
||||
public CP14FishingProcessStyleSheetPrototype? StyleSheet;
|
||||
|
||||
/**
|
||||
* Normalized
|
||||
*/
|
||||
|
||||
public Vector2 LootPositionNormalized => Vector2.UnitY * Fish?.Position ?? Vector2.Zero;
|
||||
public Vector2 PlayerPositionNormalized => Vector2.UnitY * Player?.Position ?? Vector2.Zero;
|
||||
public Vector2 PlayerHalfSizeNormalized => Vector2.UnitY * Player?.HalfSize ?? Vector2.Zero;
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using Content.Shared._CP14.Fishing.Prototypes;
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Components;
|
||||
|
||||
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
|
||||
public sealed partial class CP14FishingRodComponent : Component
|
||||
{
|
||||
[ViewVariables]
|
||||
public static readonly ProtoId<CP14FishingProcessStyleSheetPrototype> DefaultStyle = "Default";
|
||||
|
||||
[ViewVariables]
|
||||
public EntityUid? Process;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public bool Reeling;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public float Speed = 0.1f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public float Gravity = 0.075f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public float MaxVelocity = 0.3f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public float MinVelocity = -0.325f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public float Bouncing = 0.07f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public float Drag = 0.98f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public float Size = 0.25f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public float ThrowPower = 10f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public ProtoId<CP14FishingProcessStyleSheetPrototype> Style = DefaultStyle;
|
||||
}
|
||||
18
Content.Shared/_CP14/Fishing/Core/Behaviors/Behavior.cs
Normal file
18
Content.Shared/_CP14/Fishing/Core/Behaviors/Behavior.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.Random;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Core.Behaviors;
|
||||
|
||||
[ImplicitDataDefinitionForInheritors, MeansImplicitUse]
|
||||
[Serializable, NetSerializable]
|
||||
public abstract partial class Behavior
|
||||
{
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public float Speed { get; set; } = 0.25f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public float Difficulty { get; set; } = 2f;
|
||||
|
||||
public abstract float CalculateSpeed(IRobustRandom random);
|
||||
}
|
||||
11
Content.Shared/_CP14/Fishing/Core/Behaviors/DartBehavior.cs
Normal file
11
Content.Shared/_CP14/Fishing/Core/Behaviors/DartBehavior.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Core.Behaviors;
|
||||
|
||||
public sealed partial class DartBehavior : Behavior
|
||||
{
|
||||
public override float CalculateSpeed(IRobustRandom random)
|
||||
{
|
||||
return Speed * (0.5f + random.NextFloat() * Difficulty);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Core.Behaviors;
|
||||
|
||||
public sealed partial class FloaterBehaviour : Behavior
|
||||
{
|
||||
public override float CalculateSpeed(IRobustRandom random)
|
||||
{
|
||||
return Speed * (0.5f + random.NextFloat() * Difficulty);
|
||||
}
|
||||
}
|
||||
13
Content.Shared/_CP14/Fishing/Core/Behaviors/MixedBehavior.cs
Normal file
13
Content.Shared/_CP14/Fishing/Core/Behaviors/MixedBehavior.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using Robust.Shared.Random;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Core.Behaviors;
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public sealed partial class MixedBehavior : Behavior
|
||||
{
|
||||
public override float CalculateSpeed(IRobustRandom random)
|
||||
{
|
||||
return Speed * (random.NextFloat() - 0.5f);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Core.Behaviors;
|
||||
|
||||
public sealed partial class SinkerBehavior : Behavior
|
||||
{
|
||||
public override float CalculateSpeed(IRobustRandom random)
|
||||
{
|
||||
return Speed * (1.0f + random.NextFloat() * 0.5f);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Core.Behaviors;
|
||||
|
||||
public sealed partial class SmoothBehavior : Behavior
|
||||
{
|
||||
public override float CalculateSpeed(IRobustRandom random)
|
||||
{
|
||||
return Speed * (0.5f + random.NextFloat() * Difficulty);
|
||||
}
|
||||
}
|
||||
49
Content.Shared/_CP14/Fishing/Core/Fish.cs
Normal file
49
Content.Shared/_CP14/Fishing/Core/Fish.cs
Normal file
@@ -0,0 +1,49 @@
|
||||
using Content.Shared._CP14.Fishing.Core.Behaviors;
|
||||
using Robust.Shared.Random;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Core;
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public sealed class Fish
|
||||
{
|
||||
private const float MaxPosition = 1f;
|
||||
private const float MinPosition = 0f;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float Position { get; private set; }
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
private readonly Behavior _behavior;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
private float _speed;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
private TimeSpan _updateSpeedTime;
|
||||
|
||||
public Fish(Behavior behavior, TimeSpan updateSpeedTime)
|
||||
{
|
||||
_behavior = behavior;
|
||||
_updateSpeedTime = updateSpeedTime;
|
||||
}
|
||||
|
||||
public void Update(float frameTime)
|
||||
{
|
||||
// Update position
|
||||
Position += _speed * frameTime;
|
||||
|
||||
// Clamp position
|
||||
Position = Math.Clamp(Position, MinPosition, MaxPosition);
|
||||
}
|
||||
|
||||
public void UpdateSpeed(IRobustRandom random, IGameTiming timing)
|
||||
{
|
||||
if (_updateSpeedTime > timing.CurTime)
|
||||
return;
|
||||
|
||||
_speed = _behavior.CalculateSpeed(random);
|
||||
_updateSpeedTime = timing.CurTime + TimeSpan.FromSeconds(random.NextFloat(1.5f - 1f / _behavior.Difficulty, 2.5f - 1f / _behavior.Difficulty));
|
||||
}
|
||||
}
|
||||
25
Content.Shared/_CP14/Fishing/Core/Player.cs
Normal file
25
Content.Shared/_CP14/Fishing/Core/Player.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Core;
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public sealed class Player
|
||||
{
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float Size;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float Position;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float Velocity;
|
||||
|
||||
[ViewVariables]
|
||||
public float HalfSize => Size / 2f;
|
||||
|
||||
public Player(float size = 0.25f)
|
||||
{
|
||||
Size = size;
|
||||
Position = HalfSize;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
namespace Content.Shared._CP14.Fishing.Events;
|
||||
|
||||
[ByRefEvent]
|
||||
public readonly struct CP14FishingFinishedEvent
|
||||
{
|
||||
public readonly bool Success;
|
||||
|
||||
public CP14FishingFinishedEvent(bool success)
|
||||
{
|
||||
Success = success;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Prototypes;
|
||||
|
||||
[Prototype("CP14FishingPoolLootTable")]
|
||||
public sealed class CP14FishingPoolLootTablePrototype : IPrototype
|
||||
{
|
||||
[IdDataField]
|
||||
public string ID { get; } = string.Empty;
|
||||
|
||||
[DataField]
|
||||
public List<EntProtoId> Prototypes = [];
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Prototypes;
|
||||
|
||||
[Prototype("CP14FishingProcess")]
|
||||
public sealed class CP14FishingProcessPrototype : IPrototype
|
||||
{
|
||||
[IdDataField]
|
||||
public string ID { get; } = string.Empty;
|
||||
|
||||
[DataField, ViewVariables]
|
||||
public EntProtoId LootProtoId;
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
using System.Numerics;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Prototypes;
|
||||
|
||||
/// <summary>
|
||||
/// Represents the style sheet for the fishing process, containing UI elements like background and handle configurations.
|
||||
/// </summary>
|
||||
[Prototype("CP14FishingProcessStyleSheet")]
|
||||
public sealed partial class CP14FishingProcessStyleSheetPrototype : IPrototype
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the unique identifier for this fishing process style sheet prototype.
|
||||
/// </summary>
|
||||
[IdDataField]
|
||||
public string ID { get; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Background settings for the fishing process UI.
|
||||
/// </summary>
|
||||
[DataField, ViewVariables]
|
||||
public BackgroundData Background = new();
|
||||
|
||||
/// <summary>
|
||||
/// Handle settings for the fishing process UI.
|
||||
/// </summary>
|
||||
[DataField, ViewVariables]
|
||||
public HandleData Handle = new();
|
||||
|
||||
/// <summary>
|
||||
/// Contains data related to the background of the fishing process UI.
|
||||
/// </summary>
|
||||
[DataDefinition, Serializable]
|
||||
public sealed partial class BackgroundData
|
||||
{
|
||||
/// <summary>
|
||||
/// Path to the background texture image.
|
||||
/// </summary>
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public string Texture = "/Textures/_CP14/Interface/Fishing/background.png";
|
||||
|
||||
/// <summary>
|
||||
/// Offset of the background texture in pixels.
|
||||
/// </summary>
|
||||
[DataField("offset"), ViewVariables(VVAccess.ReadWrite)]
|
||||
public Vector2 OffsetPixels = new(10, 0);
|
||||
|
||||
/// <summary>
|
||||
/// Offset of the handle in pixels.
|
||||
/// </summary>
|
||||
[DataField("handleOffset"), ViewVariables(VVAccess.ReadWrite)]
|
||||
public Vector2 HandleOffsetPixels = new(16, 4);
|
||||
|
||||
/// <summary>
|
||||
/// Size of the handle in pixels.
|
||||
/// </summary>
|
||||
[DataField("handleSize"), ViewVariables(VVAccess.ReadWrite)]
|
||||
public Vector2 HandleSizePixels = new(149, 0);
|
||||
|
||||
/// <summary>
|
||||
/// Offset of the progress bar in pixels.
|
||||
/// </summary>
|
||||
[DataField("progressOffset"), ViewVariables(VVAccess.ReadWrite)]
|
||||
public Vector2 ProgressOffsetPixels = new(31, 3);
|
||||
|
||||
/// <summary>
|
||||
/// Size of the progress bar in pixels.
|
||||
/// </summary>
|
||||
[DataField("progressSize"), ViewVariables(VVAccess.ReadWrite)]
|
||||
public Vector2 ProgressSizePixels = new(4, 144);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the background offset in units (pixels divided by 32).
|
||||
/// </summary>
|
||||
[ViewVariables]
|
||||
public Vector2 Offset => OffsetPixels / 32f;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the handle offset in units (pixels divided by 32).
|
||||
/// </summary>
|
||||
[ViewVariables]
|
||||
public Vector2 HandleOffset => HandleOffsetPixels / 32f;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the progress bar offset in units (pixels divided by 32).
|
||||
/// </summary>
|
||||
[ViewVariables]
|
||||
public Vector2 ProgressOffset => ProgressOffsetPixels / 32f;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the progress bar size in units (pixels divided by 32).
|
||||
/// </summary>
|
||||
[ViewVariables]
|
||||
public Vector2 ProgressSize => ProgressSizePixels / 32f;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the handle size in units (pixels divided by 32).
|
||||
/// </summary>
|
||||
[ViewVariables]
|
||||
public Vector2 HandleSize => HandleSizePixels / 32f;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Contains data related to the handle elements of the fishing process UI.
|
||||
/// </summary>
|
||||
[DataDefinition, Serializable]
|
||||
public sealed partial class HandleData
|
||||
{
|
||||
/// <summary>
|
||||
/// Path to the texture for the top part of the handle.
|
||||
/// </summary>
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public string TopTexture = "/Textures/_CP14/Interface/Fishing/Handle/top.png";
|
||||
|
||||
/// <summary>
|
||||
/// Path to the texture for the middle part of the handle.
|
||||
/// </summary>
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public string MiddleTexture = "/Textures/_CP14/Interface/Fishing/Handle/middle.png";
|
||||
|
||||
/// <summary>
|
||||
/// Path to the texture for the bottom part of the handle.
|
||||
/// </summary>
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public string BottomTexture = "/Textures/_CP14/Interface/Fishing/Handle/bottom.png";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using Content.Shared._CP14.Fishing.Components;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Systems;
|
||||
|
||||
public sealed class CP14FishingPoolSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly IPrototypeManager _prototype = default!;
|
||||
[Dependency] private readonly IRobustRandom _random = default!;
|
||||
|
||||
public EntProtoId GetLootPrototypeId(Entity<CP14FishingPoolComponent> pool)
|
||||
{
|
||||
var lootTable = _prototype.Index(pool.Comp.LootTable);
|
||||
var loot = _random.Pick(lootTable.Prototypes);
|
||||
|
||||
return loot;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
using Content.Shared._CP14.Fishing.Components;
|
||||
using Content.Shared._CP14.Fishing.Core;
|
||||
using Content.Shared._CP14.Fishing.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Systems;
|
||||
|
||||
public abstract partial class CP14SharedFishingProcessSystem
|
||||
{
|
||||
protected Entity<CP14FishingRodComponent> GetRod(Entity<CP14FishingProcessComponent> process)
|
||||
{
|
||||
var entityUid = process.Comp.FishingRod!.Value;
|
||||
var component = FishingRod.GetComponent(entityUid);
|
||||
return (entityUid, component);
|
||||
}
|
||||
|
||||
protected Entity<CP14FishingPoolComponent> GetPool(Entity<CP14FishingProcessComponent> process)
|
||||
{
|
||||
var entityUid = process.Comp.FishingPool!.Value;
|
||||
var component = FishingPool.GetComponent(entityUid);
|
||||
return (entityUid, component);
|
||||
}
|
||||
|
||||
public CP14FishingProcessStyleSheetPrototype GetStyle(Entity<CP14FishingProcessComponent> process)
|
||||
{
|
||||
return GetStyle(GetRod(process));
|
||||
}
|
||||
|
||||
public CP14FishingProcessStyleSheetPrototype GetStyle(Entity<CP14FishingRodComponent> fishingRod)
|
||||
{
|
||||
if (_prototype.TryIndex(fishingRod.Comp.Style, out var style))
|
||||
return style;
|
||||
|
||||
Log.Error($"Failed to retrieve fishing rod style, {fishingRod.Comp.Style} not found. Reverting to default style.");
|
||||
return _prototype.Index(CP14FishingRodComponent.DefaultStyle);
|
||||
}
|
||||
|
||||
protected static bool Collide(Fish fish, Player player)
|
||||
{
|
||||
var playerMin = player.Position - player.HalfSize;
|
||||
var playerMax = player.Position + player.HalfSize;
|
||||
return fish.Position >= playerMin && fish.Position <= playerMax;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using Content.Shared._CP14.Fishing.Components;
|
||||
using Content.Shared._CP14.Fishing.Core;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Systems;
|
||||
|
||||
public abstract partial class CP14SharedFishingProcessSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly IPrototypeManager _prototype = default!;
|
||||
|
||||
protected EntityQuery<CP14FishingRodComponent> FishingRod;
|
||||
protected EntityQuery<CP14FishingPoolComponent> FishingPool;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
FishingRod = GetEntityQuery<CP14FishingRodComponent>();
|
||||
FishingPool = GetEntityQuery<CP14FishingPoolComponent>();
|
||||
}
|
||||
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
base.Update(frameTime);
|
||||
|
||||
var query = EntityQueryEnumerator<CP14FishingProcessComponent>();
|
||||
while (query.MoveNext(out var entityUid, out var processComponent))
|
||||
{
|
||||
Update((entityUid, processComponent), frameTime);
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateReeling(Entity<CP14FishingProcessComponent> process,
|
||||
Entity<CP14FishingRodComponent> fishingRod,
|
||||
float frameTime)
|
||||
{
|
||||
if (process.Comp.Player is not { } player)
|
||||
return;
|
||||
|
||||
if (fishingRod.Comp.Reeling)
|
||||
{
|
||||
player.Velocity += fishingRod.Comp.Speed * frameTime;
|
||||
return;
|
||||
}
|
||||
|
||||
player.Velocity -= fishingRod.Comp.Gravity * frameTime;
|
||||
}
|
||||
|
||||
private void UpdateVelocity(Entity<CP14FishingProcessComponent> process,
|
||||
Entity<CP14FishingRodComponent> fishingRod)
|
||||
{
|
||||
if (process.Comp.Player is not { } player)
|
||||
return;
|
||||
|
||||
player.Velocity *= fishingRod.Comp.Drag;
|
||||
player.Velocity = Math.Clamp(player.Velocity,
|
||||
fishingRod.Comp.MinVelocity,
|
||||
fishingRod.Comp.MaxVelocity);
|
||||
}
|
||||
|
||||
private void UpdatePosition(Entity<CP14FishingProcessComponent> process,
|
||||
float frameTime)
|
||||
{
|
||||
if (process.Comp.Player is not { } player)
|
||||
return;
|
||||
|
||||
player.Position += process.Comp.Player.Velocity * frameTime;
|
||||
|
||||
var halfSize = process.Comp.Player.HalfSize;
|
||||
process.Comp.Player.Position = Math.Clamp(process.Comp.Player.Position, halfSize, 1 - halfSize);
|
||||
}
|
||||
|
||||
public void Update(Entity<CP14FishingProcessComponent> process, float frameTime)
|
||||
{
|
||||
if (process.Comp.Player is not { } player)
|
||||
return;
|
||||
|
||||
var fishingRod = GetRod(process);
|
||||
|
||||
UpdateReeling(process, fishingRod, frameTime);
|
||||
UpdateVelocity(process, fishingRod);
|
||||
UpdatePosition(process, frameTime);
|
||||
|
||||
if (process.Comp.Fish is { } fish)
|
||||
{
|
||||
FishPreUpdate(process, fish, frameTime);
|
||||
|
||||
fish.Update(frameTime);
|
||||
var collides = Collide(fish, player);
|
||||
|
||||
var progressAdditive = collides ? 0.1f : -0.2f;
|
||||
process.Comp.Progress = Math.Clamp(process.Comp.Progress + progressAdditive * frameTime, 0, 1);
|
||||
}
|
||||
|
||||
UpdateDirty(process);
|
||||
|
||||
if (process.Comp.Progress is 1 or 0)
|
||||
Finish(process, process.Comp.Progress is 1);
|
||||
}
|
||||
|
||||
public virtual void FishPreUpdate(Entity<CP14FishingProcessComponent> process, Fish fish, float frameTime)
|
||||
{
|
||||
}
|
||||
|
||||
public virtual void UpdateDirty(Entity<CP14FishingProcessComponent> process)
|
||||
{
|
||||
}
|
||||
|
||||
public virtual void Finish(Entity<CP14FishingProcessComponent> process, bool success)
|
||||
{
|
||||
}
|
||||
|
||||
public void Stop(Entity<CP14FishingProcessComponent> process)
|
||||
{
|
||||
var rod = GetRod(process);
|
||||
rod.Comp.Process = null;
|
||||
Dirty(rod);
|
||||
|
||||
Del(process);
|
||||
}
|
||||
|
||||
public virtual void Reward(Entity<CP14FishingProcessComponent> process)
|
||||
{
|
||||
}
|
||||
|
||||
public bool TryGetByUser(EntityUid userEntityUid, [NotNullWhen(true)] out Entity<CP14FishingProcessComponent>? process)
|
||||
{
|
||||
process = null;
|
||||
|
||||
var query = EntityQueryEnumerator<CP14FishingProcessComponent>();
|
||||
while (query.MoveNext(out var entityUid, out var processComponent))
|
||||
{
|
||||
if (processComponent.User != userEntityUid)
|
||||
continue;
|
||||
|
||||
process = (entityUid, processComponent);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
using Content.Shared._CP14.Fishing.Components;
|
||||
using Content.Shared.Hands;
|
||||
using Content.Shared.Hands.Components;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Systems;
|
||||
|
||||
public abstract class CP14SharedFishingRodSystem : EntitySystem
|
||||
{
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeAllEvent<RequestFishingRodReelMessage>(OnReel);
|
||||
SubscribeLocalEvent<CP14FishingRodComponent, HandDeselectedEvent>(OnDeselected);
|
||||
}
|
||||
|
||||
private void OnReel(RequestFishingRodReelMessage msg, EntitySessionEventArgs args)
|
||||
{
|
||||
var player = args.SenderSession.AttachedEntity;
|
||||
|
||||
if (!TryComp<HandsComponent>(player, out var hands))
|
||||
return;
|
||||
|
||||
if (!TryComp<CP14FishingRodComponent>(hands.ActiveHandEntity, out var fishingRodComponent))
|
||||
return;
|
||||
|
||||
if (fishingRodComponent.Reeling == msg.Reeling)
|
||||
return;
|
||||
|
||||
fishingRodComponent.Reeling = msg.Reeling;
|
||||
Dirty(hands.ActiveHandEntity.Value, fishingRodComponent);
|
||||
}
|
||||
|
||||
private void OnDeselected(Entity<CP14FishingRodComponent> entity, ref HandDeselectedEvent args)
|
||||
{
|
||||
entity.Comp.Reeling = false;
|
||||
Dirty(entity);
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
protected sealed class RequestFishingRodReelMessage : EntityEventArgs
|
||||
{
|
||||
public bool Reeling;
|
||||
|
||||
public RequestFishingRodReelMessage(bool reeling)
|
||||
{
|
||||
Reeling = reeling;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is sublicensed under MIT License
|
||||
* https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT
|
||||
*/
|
||||
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using Content.Shared.Construction;
|
||||
using Content.Shared.Construction.Steps;
|
||||
using Content.Shared.Examine;
|
||||
using Content.Shared.Stacks;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Shared._CP14.Workbench.Prototypes;
|
||||
|
||||
[DataDefinition]
|
||||
public sealed partial class CP14StackGroupConstructionGraphStep : EntityInsertConstructionGraphStep
|
||||
{
|
||||
[DataField]
|
||||
public ProtoId<CP14StackGroupPrototype> StackGroup = default!;
|
||||
|
||||
[DataField]
|
||||
public int Amount = 1;
|
||||
|
||||
public override void DoExamine(ExaminedEvent examinedEvent)
|
||||
{
|
||||
var group = IoCManager.Resolve<IPrototypeManager>().Index(StackGroup);
|
||||
|
||||
examinedEvent.PushMarkup(Loc.GetString("construction-insert-material-entity", ("amount", Amount), ("materialName", Loc.GetString(group.Name))));
|
||||
}
|
||||
|
||||
public override bool EntityValid(EntityUid uid, IEntityManager entityManager, IComponentFactory compFactory)
|
||||
{
|
||||
var group = IoCManager.Resolve<IPrototypeManager>().Index(StackGroup);
|
||||
|
||||
return entityManager.TryGetComponent(uid, out StackComponent? stack) && group.Stacks.Contains(stack.StackTypeId) && stack.Count >= Amount;
|
||||
}
|
||||
|
||||
public bool EntityValid(EntityUid entity, [NotNullWhen(true)] out StackComponent? stack)
|
||||
{
|
||||
var group = IoCManager.Resolve<IPrototypeManager>().Index(StackGroup);
|
||||
|
||||
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(entity, out StackComponent? otherStack) && group.Stacks.Contains(otherStack.StackTypeId) && otherStack.Count >= Amount)
|
||||
stack = otherStack;
|
||||
else
|
||||
stack = null;
|
||||
|
||||
return stack != null;
|
||||
}
|
||||
|
||||
public override ConstructionGuideEntry GenerateGuideEntry()
|
||||
{
|
||||
var proto = IoCManager.Resolve<IPrototypeManager>();
|
||||
var group = proto.Index(StackGroup);
|
||||
|
||||
var firstStack = group.Stacks.FirstOrNull();
|
||||
|
||||
return new ConstructionGuideEntry()
|
||||
{
|
||||
Localization = "construction-presenter-material-step",
|
||||
Arguments = new (string, object)[]{("amount", Amount), ("material", Loc.GetString(group.Name))},
|
||||
Icon = firstStack != null ? proto.Index(firstStack.Value).Icon : SpriteSpecifier.Invalid,
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* This file is sublicensed under MIT License
|
||||
* https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT
|
||||
*/
|
||||
|
||||
using Content.Shared.Stacks;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Workbench.Prototypes;
|
||||
|
||||
/// <summary>
|
||||
/// Allows you to group several different kinds of stacks into one group. Can be used for situations where different stacks are appropriate for a particular situation
|
||||
/// </summary>
|
||||
[Prototype("CP14StackGroup")]
|
||||
public sealed class CP14StackGroupPrototype : IPrototype
|
||||
{
|
||||
[IdDataField]
|
||||
public string ID { get; private set; } = default!;
|
||||
|
||||
[DataField(required: true)]
|
||||
public LocId Name = default!;
|
||||
|
||||
[DataField(required: true)]
|
||||
public List<ProtoId<StackPrototype>> Stacks = new();
|
||||
}
|
||||
@@ -34,7 +34,7 @@ public sealed partial class SkillRequired : CP14WorkbenchCraftRequirement
|
||||
return haveAllSkills;
|
||||
}
|
||||
|
||||
public override void PostCraft(EntityManager entManager, HashSet<EntityUid> placedEntities, EntityUid user)
|
||||
public override void PostCraft(EntityManager entManager, IPrototypeManager protoManager, HashSet<EntityUid> placedEntities, EntityUid user)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ public sealed partial class MaterialResource : CP14WorkbenchCraftRequirement
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void PostCraft(EntityManager entManager, HashSet<EntityUid> placedEntities, EntityUid user)
|
||||
public override void PostCraft(EntityManager entManager, IPrototypeManager protoManager, HashSet<EntityUid> placedEntities, EntityUid user)
|
||||
{
|
||||
var stackSystem = entManager.System<SharedStackSystem>();
|
||||
|
||||
|
||||
@@ -30,9 +30,7 @@ public sealed partial class ProtoIdResource : CP14WorkbenchCraftRequirement
|
||||
return indexedIngredients.TryGetValue(ProtoId, out var availableQuantity) && availableQuantity >= Count;
|
||||
}
|
||||
|
||||
public override void PostCraft(EntityManager entManager,
|
||||
HashSet<EntityUid> placedEntities,
|
||||
EntityUid user)
|
||||
public override void PostCraft(EntityManager entManager,IPrototypeManager protoManager, HashSet<EntityUid> placedEntities, EntityUid user)
|
||||
{
|
||||
var requiredCount = Count;
|
||||
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
* This file is sublicensed under MIT License
|
||||
* https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT
|
||||
*/
|
||||
|
||||
using Content.Shared._CP14.Workbench.Prototypes;
|
||||
using Content.Shared.Stacks;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Shared._CP14.Workbench.Requirements;
|
||||
|
||||
public sealed partial class StackGroupResource : CP14WorkbenchCraftRequirement
|
||||
{
|
||||
public override bool HideRecipe { get; set; } = false;
|
||||
|
||||
[DataField(required: true)]
|
||||
public ProtoId<CP14StackGroupPrototype> Group;
|
||||
|
||||
[DataField]
|
||||
public int Count = 1;
|
||||
|
||||
public override bool CheckRequirement(EntityManager entManager,
|
||||
IPrototypeManager protoManager,
|
||||
HashSet<EntityUid> placedEntities,
|
||||
EntityUid user,
|
||||
CP14WorkbenchRecipePrototype recipe)
|
||||
{
|
||||
if (!protoManager.TryIndex(Group, out var indexedGroup))
|
||||
return false;
|
||||
|
||||
var count = 0;
|
||||
foreach (var ent in placedEntities)
|
||||
{
|
||||
if (!entManager.TryGetComponent<StackComponent>(ent, out var stack))
|
||||
continue;
|
||||
|
||||
if (!indexedGroup.Stacks.Contains(stack.StackTypeId))
|
||||
continue;
|
||||
|
||||
count += stack.Count;
|
||||
}
|
||||
|
||||
if (count < Count)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void PostCraft(EntityManager entManager, IPrototypeManager protoManager,
|
||||
HashSet<EntityUid> placedEntities,
|
||||
EntityUid user)
|
||||
{
|
||||
var stackSystem = entManager.System<SharedStackSystem>();
|
||||
|
||||
if (!protoManager.TryIndex(Group, out var indexedGroup))
|
||||
return;
|
||||
|
||||
var requiredCount = Count;
|
||||
foreach (var placedEntity in placedEntities)
|
||||
{
|
||||
if (!entManager.TryGetComponent<StackComponent>(placedEntity, out var stack))
|
||||
continue;
|
||||
|
||||
if (!indexedGroup.Stacks.Contains(stack.StackTypeId))
|
||||
continue;
|
||||
|
||||
var count = (int)MathF.Min(requiredCount, stack.Count);
|
||||
|
||||
if (stack.Count - count <= 0)
|
||||
entManager.DeleteEntity(placedEntity);
|
||||
else
|
||||
stackSystem.SetCount(placedEntity, stack.Count - count, stack);
|
||||
|
||||
requiredCount -= count;
|
||||
}
|
||||
}
|
||||
|
||||
public override string GetRequirementTitle(IPrototypeManager protoManager)
|
||||
{
|
||||
var indexedGroup = protoManager.Index(Group);
|
||||
|
||||
return $"{Loc.GetString(indexedGroup.Name)} x{Count}";
|
||||
}
|
||||
|
||||
public override EntityPrototype? GetRequirementEntityView(IPrototypeManager protoManager)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public override SpriteSpecifier? GetRequirementTexture(IPrototypeManager protoManager)
|
||||
{
|
||||
var indexedGroup = protoManager.Index(Group);
|
||||
|
||||
return !protoManager.TryIndex(indexedGroup.Stacks.FirstOrNull(), out var indexedStack) ? null : indexedStack.Icon;
|
||||
}
|
||||
}
|
||||
@@ -44,7 +44,7 @@ public sealed partial class StackResource : CP14WorkbenchCraftRequirement
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void PostCraft(EntityManager entManager,
|
||||
public override void PostCraft(EntityManager entManager, IPrototypeManager protoManager,
|
||||
HashSet<EntityUid> placedEntities,
|
||||
EntityUid user)
|
||||
{
|
||||
|
||||
@@ -50,7 +50,7 @@ public sealed partial class TagResource : CP14WorkbenchCraftRequirement
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void PostCraft(EntityManager entManager, HashSet<EntityUid> placedEntities, EntityUid user)
|
||||
public override void PostCraft(EntityManager entManager, IPrototypeManager protoManager, HashSet<EntityUid> placedEntities, EntityUid user)
|
||||
{
|
||||
var tagSystem = entManager.System<TagSystem>();
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ public abstract partial class CP14WorkbenchCraftRequirement
|
||||
/// An event that is triggered after crafting. This is the place to put important things like removing items, spending stacks or other things.
|
||||
/// </summary>
|
||||
public abstract void PostCraft(EntityManager entManager,
|
||||
IPrototypeManager protoManager,
|
||||
HashSet<EntityUid> placedEntities,
|
||||
EntityUid user);
|
||||
|
||||
|
||||
2
Resources/Locale/en-US/_CP14/markings/carcat-tails.ftl
Normal file
2
Resources/Locale/en-US/_CP14/markings/carcat-tails.ftl
Normal file
@@ -0,0 +1,2 @@
|
||||
marking-CP14CarcatTail = Tail
|
||||
marking-CP14CarcatTailFluffy = Fluffy Tail
|
||||
@@ -1,14 +1,34 @@
|
||||
marking-CP14HumanFacialHair3Clock = 3 O'clock
|
||||
marking-CP14HumanFacialHairAbe = Abe
|
||||
marking-CP14HumanFacialHairDwarf = Dwarf
|
||||
marking-CP14HumanFacialHairGoateeMush = Goatee
|
||||
marking-CP14HumanFacialHairBriefs = Briefs
|
||||
marking-CP14HumanFacialHairCircle = Circle
|
||||
marking-CP14HumanFacialHairEspanol = Espanol
|
||||
marking-CP14HumanFacialHairImperial = Imperial
|
||||
marking-CP14HumanFacialHairMachete = Machete
|
||||
marking-CP14HumanFacialHairMutton = Mutton
|
||||
marking-CP14HumanFacialHairPigtail = Pigtail
|
||||
marking-CP14HumanFacialHairSage = Sage
|
||||
marking-CP14HumanFacialHairWatson = Watson
|
||||
marking-CP14HumanFacialHairWhiskers = Whiskers
|
||||
marking-CP14HumanFacialHair3Clock = morning stubble
|
||||
marking-CP14HumanFacialHair5oclockmoustache = evening mustache
|
||||
marking-CP14HumanFacialHair7oclock = dusk stubble
|
||||
marking-CP14HumanFacialHair7oclockmoustache = dusk mustache
|
||||
marking-CP14HumanFacialHairAbe = elderborn
|
||||
marking-CP14HumanFacialHairChinlessbeard = chinless
|
||||
marking-CP14HumanFacialHairDwarf = stone short
|
||||
marking-CP14HumanFacialHairDwarf2 = forge battle
|
||||
marking-CP14HumanFacialHairElvis = curled courtly
|
||||
marking-CP14HumanFacialHairFiveoclock = noon shadow
|
||||
marking-CP14HumanFacialHairFullbeard = full war
|
||||
marking-CP14HumanFacialHairFumanchu = mustache of desert winds
|
||||
marking-CP14HumanFacialHairGoateemush = mossy goat
|
||||
marking-CP14HumanFacialHairGt = steel trim
|
||||
marking-CP14HumanFacialHairHip = wildgrass
|
||||
marking-CP14HumanFacialHairHogan = stormblade
|
||||
marking-CP14HumanFacialHairJensen = northern hold
|
||||
marking-CP14HumanFacialHairLongbeard = longhang
|
||||
marking-CP14HumanFacialHairMartialartist = path of silence
|
||||
marking-CP14HumanFacialHairMartialartist2 = path of the blade
|
||||
marking-CP14HumanFacialHairMoonshiner = moon wanderer
|
||||
marking-CP14HumanFacialHairMoustache = commoner’s mustache
|
||||
marking-CP14HumanFacialHairMutton = road whiskers
|
||||
marking-CP14HumanFacialHairMuttonmus = herald’s whiskers
|
||||
marking-CP14HumanFacialHairNeckbeard = shadow chin
|
||||
marking-CP14HumanFacialHairPencilstache = line of the mustached
|
||||
marking-CP14HumanFacialHairSelleck = hunter’s cluster
|
||||
marking-CP14HumanFacialHairSideburn = side mark
|
||||
marking-CP14HumanFacialHairSmallstache = page’s mustache
|
||||
marking-CP14HumanFacialHairVandyke = evening branch
|
||||
marking-CP14HumanFacialHairVolaju = steppe fringe
|
||||
marking-CP14HumanFacialHairWalrus = walrus storm
|
||||
marking-CP14HumanFacialHairWatson = scholarly classic
|
||||
marking-CP14HumanFacialHairWise = runebound
|
||||
@@ -1,6 +1,8 @@
|
||||
cp14-stack-dirt-block = dirt blocks
|
||||
cp14-stack-stone-block = stone blocks
|
||||
cp14-stack-wood-planks = wooden planks
|
||||
cp14-stack-marble-block = marble rocks
|
||||
cp14-stack-wood-planks = oak planks
|
||||
cp14-stack-wood-planks-birch = birch planks
|
||||
cp14-stack-nails = nails
|
||||
cp14-stack-cloth = rolls of fabric
|
||||
cp14-stack-flora = tufts of grass
|
||||
@@ -21,3 +23,5 @@ cp14-stack-wallpaper = rolls of wallpaper
|
||||
cp14-stack-glass-sheet = glass
|
||||
|
||||
cp14-stack-ash-pile = pile of ashes
|
||||
|
||||
cp14-stack-group-wooden-planks-any = planks (any)
|
||||
@@ -22,6 +22,9 @@ ent-CP14WoodenChestFilledSmallHealingBlood = сундук с зельями во
|
||||
ent-CP14WoodenChestFilledSmallHealingMana = сундук с зельями маны
|
||||
.desc = { ent-CP14WoodenChest.desc }
|
||||
|
||||
ent-CP14WoodenChestFilledSmallHealingManaDepletion = сундук с зельями лечения магического истощения
|
||||
.desc = { ent-CP14WoodenChest.desc }
|
||||
|
||||
ent-CP14WoodenChestFilledSmallSpeedUp = сундук с зельями ускорения
|
||||
.desc = { ent-CP14WoodenChest.desc }
|
||||
|
||||
@@ -31,6 +34,9 @@ ent-CP14WoodenChestFilledSmallRainbow = сундук с веселыми зел
|
||||
ent-CP14WoodenChestFilledCandles = сундук со свечами
|
||||
.desc = { ent-CP14WoodenChest.desc }
|
||||
|
||||
ent-CP14WoodenChestFilledSmokePowder = сундук с курительным шалфеем
|
||||
.desc = { ent-CP14WoodenChest.desc }
|
||||
|
||||
ent-CP14WoodenChestFilledFarmSeeds = сундук с семенами
|
||||
.desc = { ent-CP14WoodenChest.desc }
|
||||
|
||||
@@ -40,7 +46,7 @@ ent-CP14WoodenChestFilledCheese = сундук с сыром
|
||||
ent-CP14WoodenChestFilledBureaucracy = сундук с бюрократией
|
||||
.desc = { ent-CP14WoodenChest.desc }
|
||||
|
||||
ent-CP14WoodenChestFilledEnergyCrystals = energy crystals chest
|
||||
ent-CP14WoodenChestFilledEnergyCrystals = сундук с энергокристаллами
|
||||
.desc = { ent-CP14WoodenChest.desc }
|
||||
|
||||
ent-CP14WoodenClosetAlchemyFilled = { ent-CP14WoodenCloset }
|
||||
@@ -95,12 +101,12 @@ ent-CP14WoodenCabinetGuildmaster = { ent-CP14WoodenCabinet }
|
||||
.desc = { ent-CP14WoodenCabinet.desc }
|
||||
.suffix = Гильдмастер, Заполненный
|
||||
|
||||
ent-CP14BaseFlammableSpreadingStrong = { ent-CP14BaseFlammableSpreading }
|
||||
.desc = { ent-CP14BaseFlammableSpreading.desc }
|
||||
|
||||
ent-CP14Fire = огонь
|
||||
.desc = Это огонь!
|
||||
|
||||
ent-CP14BaseFlammableSpreadingStrong = { ent-CP14BaseFlammableSpreading }
|
||||
.desc = { ent-CP14BaseFlammableSpreading.desc }
|
||||
|
||||
ent-CP14ActionZLevelUp = Вверх
|
||||
.desc = Перейти на 1 Z-уровень вверх
|
||||
|
||||
@@ -213,6 +219,32 @@ ent-CP14ImpactEffectEarthWall = { ent-CP14BaseMagicImpact }
|
||||
ent-CP14SpellScrollEarthWall = свиток заклинания земляной стены
|
||||
.desc = { ent-CP14BaseSpellScrollEarth.desc }
|
||||
|
||||
ent-CP14ActionSpellFireball = Огненный шар
|
||||
.desc = Эффективный метод уничтожения - взрывной огненный шар.
|
||||
|
||||
ent-CP14RuneFireball = { ent-CP14BaseMagicRune }
|
||||
.desc = { ent-CP14BaseMagicRune.desc }
|
||||
|
||||
ent-CP14ImpactEffectFireball = { ent-CP14BaseMagicImpact }
|
||||
.desc = { ent-CP14BaseMagicImpact.desc }
|
||||
|
||||
ent-CP14Fireball = огненный шар
|
||||
|
||||
ent-CP14SpellScrollFireball = свиток заклинания огненного шара
|
||||
.desc = { ent-CP14BaseSpellScrollFire.desc }
|
||||
|
||||
ent-CP14ActionSpellFireRune = Руна огня
|
||||
.desc = Вы создаете зону, в которой обжигающий поток огня возникает практически мгновенно.
|
||||
|
||||
ent-CP14TelegraphyFireRune = { ent-CP14BaseMagicImpact }
|
||||
.desc = { ent-CP14BaseMagicImpact.desc }
|
||||
|
||||
ent-CP14AreaEntityEffectFireRune = { ent-CP14BaseMagicImpact }
|
||||
.desc = { ent-CP14BaseMagicImpact.desc }
|
||||
|
||||
ent-CP14SpellScrollFireRune = свиток заклинаний руны огня
|
||||
.desc = { ent-CP14BaseSpellScrollFire.desc }
|
||||
|
||||
ent-CP14ActionSpellFlameCreation = Создание пламени
|
||||
.desc = В вашей руке образуется искусственное пламя, освещающее окружающее пространство. Вы можете бросить его, чтобы использовать в качестве одноразового оружия.
|
||||
|
||||
@@ -243,38 +275,21 @@ ent-CP14ImpactEffectTieflingRevenge = { ent-CP14BaseMagicImpact }
|
||||
ent-CP14RuneTieflingRevenge = { ent-CP14BaseMagicRune }
|
||||
.desc = { ent-CP14BaseMagicRune.desc }
|
||||
|
||||
ent-CP14ActionSpellFireball = Огненный шар
|
||||
.desc = Эффективный метод уничтожения - взрывной огненный шар.
|
||||
|
||||
ent-CP14RuneFireball = { ent-CP14BaseMagicRune }
|
||||
.desc = { ent-CP14BaseMagicRune.desc }
|
||||
|
||||
ent-CP14ImpactEffectFireball = { ent-CP14BaseMagicImpact }
|
||||
.desc = { ent-CP14BaseMagicImpact.desc }
|
||||
|
||||
ent-CP14Fireball = искусственное пламя
|
||||
|
||||
ent-CP14SpellScrollFireball = свиток заклинания огненного шара
|
||||
.desc = { ent-CP14BaseSpellScrollFire.desc }
|
||||
|
||||
ent-CP14ActionSpellFireRune = Руна огня
|
||||
.desc = Вы создаете зону, в которой обжигающий поток огня возникает практически мгновенно.
|
||||
|
||||
ent-CP14TelegraphyFireRune = { ent-CP14BaseMagicImpact }
|
||||
.desc = { ent-CP14BaseMagicImpact.desc }
|
||||
|
||||
ent-CP14AreaEntityEffectFireRune = { ent-CP14BaseMagicImpact }
|
||||
.desc = { ent-CP14BaseMagicImpact.desc }
|
||||
|
||||
ent-CP14SpellScrollFireRune = свиток заклинаний руны огня
|
||||
.desc = { ent-CP14BaseSpellScrollFire.desc }
|
||||
|
||||
ent-CP14ActionSpellMagicalAcceleration = Магическое ускорение
|
||||
.desc = Затрачивая магическую энергию, вы значительно ускоряете скорость передвижения.
|
||||
|
||||
ent-CP14SpellScrollMagicalAcceleration = Свиток заклинания магического ускорения
|
||||
.desc = { ent-CP14BaseSpellScrollHealing.desc }
|
||||
|
||||
ent-CP14ActionSpellSheepPolymorph = Полиморф в овечку
|
||||
.desc = Вы проклинаете цель, превращая ее на короткое время в глупую овцу.
|
||||
|
||||
ent-CP14RuneSheepPolymorph = { ent-CP14BaseMagicRune }
|
||||
.desc = { ent-CP14BaseMagicRune.desc }
|
||||
|
||||
ent-CP14ImpactEffectSheepPolymorph = { ent-CP14BaseMagicImpact }
|
||||
.desc = { ent-CP14BaseMagicImpact.desc }
|
||||
|
||||
ent-CP14ActionSpellCureBurn = Лечение ожогов
|
||||
.desc = Вы излечиваете кожные повреждения, вызванные крайне высокой или низкой температурой.
|
||||
|
||||
@@ -443,12 +458,12 @@ ent-CP14RuneManaConsume = { ent-CP14BaseMagicRune }
|
||||
ent-CP14ImpactEffectManaConsume = { ent-CP14BaseMagicImpact }
|
||||
.desc = { ent-CP14BaseMagicImpact.desc }
|
||||
|
||||
ent-CP14DummyActionSpellManaManipulation = Манипуляция маной
|
||||
.desc = Вы можете манипулировать маной, отдавая ее другим предметам или забирая у них.
|
||||
|
||||
ent-CP14ActionSpellManaGift = Передача маны
|
||||
.desc = Вы можете передать небольшое количество своей магической энергии целевому существу или магическому объекту.
|
||||
|
||||
ent-CP14ActionSpellManaGiftElf = Аккуратная передача маны
|
||||
.desc = Вы передаете ману с огромной скоростью, не нанося цели урона.
|
||||
|
||||
ent-CP14RuneManaGift = { ent-CP14BaseMagicRune }
|
||||
.desc = { ent-CP14BaseMagicRune.desc }
|
||||
|
||||
@@ -497,30 +512,6 @@ ent-CP14ActionSpellVampireBloodStep = Шаг крови
|
||||
ent-CP14ImpactEffectBloodStep = { ent-CP14BaseMagicImpact }
|
||||
.desc = { ent-CP14BaseMagicImpact.desc }
|
||||
|
||||
ent-CP14ActionSpellFreeze = Заморозка
|
||||
.desc = Вы начинаете сильно охлаждать цель, замедляя скорость ее передвижения.
|
||||
|
||||
ent-CP14ImpactEffectFreeze = { ent-CP14BaseMagicImpact }
|
||||
.desc = { ent-CP14BaseMagicImpact.desc }
|
||||
|
||||
ent-CP14RunePlantFreeze = { ent-CP14BaseMagicRune }
|
||||
.desc = { ent-CP14BaseMagicRune.desc }
|
||||
|
||||
ent-CP14SpellScrollFreeze = свиток заклинания заморозки
|
||||
.desc = { ent-CP14BaseSpellScrollWater.desc }
|
||||
|
||||
ent-CP14ActionSpellWaterCreation = Создание воды
|
||||
.desc = Создайте сгусток воды, который удерживается в форме парящего шара в течение некоторого времени.
|
||||
|
||||
ent-CP14RuneWaterCreation = { ent-CP14BaseMagicRune }
|
||||
.desc = { ent-CP14BaseMagicRune.desc }
|
||||
|
||||
ent-CP14ImpactEffectWaterCreation = { ent-CP14BaseMagicImpact }
|
||||
.desc = { ent-CP14BaseMagicImpact.desc }
|
||||
|
||||
ent-CP14SpellScrollWaterCreation = свиток заклинания создания воды
|
||||
.desc = { ent-CP14BaseSpellScrollWater.desc }
|
||||
|
||||
ent-CP14ActionSpellBeerCreation = Создание пива
|
||||
.desc = Секретное заклинание, создающее пиво из чистой маны.
|
||||
|
||||
@@ -537,6 +528,33 @@ ent-CP14ImpactEffectBeerCreation = { ent-CP14BaseMagicImpact }
|
||||
ent-CP14SpellScrollBeerCreation = свиток заклинания создания пива
|
||||
.desc = { ent-CP14BaseSpellScrollWater.desc }
|
||||
|
||||
ent-CP14ActionSpellFreeze = Заморозка
|
||||
.desc = Вы начинаете сильно охлаждать цель, замедляя скорость ее передвижения.
|
||||
|
||||
ent-CP14ImpactEffectFreeze = { ent-CP14BaseMagicImpact }
|
||||
.desc = { ent-CP14BaseMagicImpact.desc }
|
||||
|
||||
ent-CP14RunePlantFreeze = { ent-CP14BaseMagicRune }
|
||||
.desc = { ent-CP14BaseMagicRune.desc }
|
||||
|
||||
ent-CP14SpellScrollFreeze = свиток заклинания заморозки
|
||||
.desc = { ent-CP14BaseSpellScrollWater.desc }
|
||||
|
||||
ent-CP14ActionSpellIceArrow = Ледяная стрела
|
||||
.desc = Вы создаете временную острую ледяную стрелу, которую можно использовать как одноразовый снаряд для лука.
|
||||
|
||||
ent-CP14IceArrow = ледяная стрела
|
||||
.desc = Острая ледяная стрела, созданная с помощью магии. Она тает и вскоре исчезает, но вы можете один раз выстрелить в нее из своего лука.
|
||||
|
||||
ent-CP14SpellScrollIceArrow = свиток заклинания ледяной стрелы
|
||||
.desc = { ent-CP14BaseSpellScrollWater.desc }
|
||||
|
||||
ent-CP14ActionSpellIceDagger = Ледяной кинжал
|
||||
.desc = Вы создаете ледяной острый кинжал, который подойдет для временного использования.
|
||||
|
||||
ent-CP14SpellScrollIceDagger = свиток заклинания ледяного кинжала
|
||||
.desc = { ent-CP14BaseSpellScrollWater.desc }
|
||||
|
||||
ent-CP14ActionSpellIceShards = Ледяные осколки
|
||||
.desc = Быстрые ледяные иглы для быстрой стрельбы по мишеням.
|
||||
|
||||
@@ -548,6 +566,18 @@ ent-CP14IceShard = ледяной осколок
|
||||
ent-CP14SpellScrollIceShards = свиток заклинания ледяных осколков
|
||||
.desc = { ent-CP14BaseSpellScrollWater.desc }
|
||||
|
||||
ent-CP14ActionSpellWaterCreation = Создание воды
|
||||
.desc = Создайте сгусток воды, который удерживается в форме парящего шара в течение некоторого времени.
|
||||
|
||||
ent-CP14RuneWaterCreation = { ent-CP14BaseMagicRune }
|
||||
.desc = { ent-CP14BaseMagicRune.desc }
|
||||
|
||||
ent-CP14ImpactEffectWaterCreation = { ent-CP14BaseMagicImpact }
|
||||
.desc = { ent-CP14BaseMagicImpact.desc }
|
||||
|
||||
ent-CP14SpellScrollWaterCreation = свиток заклинания создания воды
|
||||
.desc = { ent-CP14BaseSpellScrollWater.desc }
|
||||
|
||||
ent-CP14HeadSkeleton = череп
|
||||
.desc = Бедный Йорик...
|
||||
|
||||
@@ -633,6 +663,9 @@ ent-CP14ClothingGlovesGirdles = железные наручи
|
||||
ent-CP14ClothingGlovesJagermeister = перчатки егермейстера
|
||||
.desc = Кожаные перчатки, любимые местными егермейстерами.
|
||||
|
||||
ent-CP14ClothingGlovesBlacksmith = кузнечные перчатки
|
||||
.desc = Говорят, в них можно взять в руки только что отлитый слиток. Но проверять это все равно не стоит.
|
||||
|
||||
ent-CP14ClothingHeadCapellina = капеллина
|
||||
.desc = Защита от ударов крупными предметами по голове.
|
||||
|
||||
@@ -695,12 +728,15 @@ ent-CP14ClothingMaskNeckerchief = шейный платок
|
||||
ent-CP14ClothingMaskBoneMask = костяная маска
|
||||
.desc = Заколдованная маска, ранее принадлежавшая волшебному существу.
|
||||
|
||||
ent-CP14ClothingMaskBoneHornedMask = костяная рогатая маска
|
||||
.desc = Заколдованная маска, ранее принадлежавшая волшебному существу.
|
||||
ent-CP14ClothingMaskBoneHornedMask = рогатая костяная маска
|
||||
.desc = Костяная маска какого-то животного.
|
||||
|
||||
ent-CP14ClothingMaskBoneMaskMind = { ent-CP14ClothingMaskBoneMask }
|
||||
.desc = { ent-CP14ClothingMaskBoneMask.desc }
|
||||
|
||||
ent-CP14ClothingMaskMime = маска тишины
|
||||
.desc = ...
|
||||
|
||||
ent-CP14ArmorIronCuirassPresets = полная железная кираса
|
||||
.desc = Полные железные доспехи, защищающие владельца от другого острого железа.
|
||||
|
||||
@@ -713,12 +749,6 @@ ent-CP14ArmorCopperCuirassPresets = полная медная кираса
|
||||
ent-CP14ArmorMithrilCuirassPresets = полная мифриловая кираса
|
||||
.desc = Мечта любого искателя приключений, мифриловая броня - прочная, крепкая и почти не стесняющая движений. Если и существует идеал, то это именно он.
|
||||
|
||||
ent-CP14ArmorIronChainmailPresets = полная железная кольчуга
|
||||
.desc = Полные железные кольчужные доспехи, легкие и с достойной защитой.
|
||||
|
||||
ent-CP14ArmorMithrilChainmailPresets = полная мифриловая кольчуга
|
||||
.desc = Полная мифриловая кольчуга, которую, возможно, медленно и кропотливо собирали гномьи кузнецы. Ценнейшая работа.
|
||||
|
||||
ent-CP14ClothingOuterClothingCopperArmor = медная броня
|
||||
.desc = Качественная медная броня.
|
||||
|
||||
@@ -947,6 +977,9 @@ ent-CP14ClothinGreenLightDress = светло-зеленое платье
|
||||
ent-CP14ClothingWarriorsGarbDress = воинское одеяние
|
||||
.desc = Покажите свою силу.
|
||||
|
||||
ent-CP14ClothinShirtMaidDress = платье горничной
|
||||
.desc = { ent-CP14ClothingShirtBase.desc }
|
||||
|
||||
ent-CP14ClothingShirtGuardBase = кольчуга стражника
|
||||
.desc = Рубашка с вшитой подкладкой из кольчуги, окрашенная в стандартные цвета униформы Имперской гвардии.
|
||||
|
||||
@@ -982,6 +1015,10 @@ ent-CP14LongLeatherBoots = длинные кожаные сапоги
|
||||
ent-CP14ClothingShoesJestersRingers = шутовские звонари
|
||||
.desc = Все вокруг должны знать, что ты существуешь, приятель.
|
||||
|
||||
ent-CP14ClothingShoesArtifactFrogs = жаботапы
|
||||
.desc = Для любителей сред
|
||||
.suffix = Артефакт
|
||||
|
||||
ent-CP14Mist = облако
|
||||
|
||||
ent-CP14DemiplaneEntryPointMarker = точка входа в демиплан
|
||||
@@ -1157,6 +1194,7 @@ ent-CP14ActionSpellIceShardsGhost = { ent-CP14ActionSpellIceShards }
|
||||
|
||||
ent-CP14MobMonsterInvisibleWhistler = невидимый свистун
|
||||
.desc = Невидимое обычным глазом чудовище, обожающее пожирать жертвы, измученные страхом и непониманием.
|
||||
.suffix = AI
|
||||
|
||||
ent-CP14MobMonsterMole = хищный крот
|
||||
.desc = Охотится в темноте и любит вкус мяса и крови во рту.
|
||||
@@ -1165,28 +1203,28 @@ ent-CP14MobMonsterMole = хищный крот
|
||||
ent-CP14MobUndeadSkeletonDemiplane = скелет
|
||||
.desc = Оживленный темной магией хрупкий скелет. Обычно скелеты - чрезвычайно разумные существа, управляемые недавно умершей душой.
|
||||
|
||||
ent-CP14MobUndeadSkeletonHalberd = скелет
|
||||
.desc = { ent-CP14MobUndeadSkeleton.desc }
|
||||
ent-CP14MobUndeadSkeletonHalberd = { ent-CP14MobUndeadSkeletonDemiplane }
|
||||
.desc = { ent-CP14MobUndeadSkeletonDemiplane.desc }
|
||||
.suffix = Алебардщик
|
||||
|
||||
ent-CP14MobUndeadSkeletonSword = скелет
|
||||
.desc = { ent-CP14MobUndeadSkeleton.desc }
|
||||
ent-CP14MobUndeadSkeletonSword = { ent-CP14MobUndeadSkeletonDemiplane }
|
||||
.desc = { ent-CP14MobUndeadSkeletonDemiplane.desc }
|
||||
.suffix = Мечник
|
||||
|
||||
ent-CP14MobUndeadSkeletonDodger = скелет
|
||||
.desc = { ent-CP14MobUndeadSkeleton.desc }
|
||||
ent-CP14MobUndeadSkeletonDodger = { ent-CP14MobUndeadSkeletonDemiplane }
|
||||
.desc = { ent-CP14MobUndeadSkeletonDemiplane.desc }
|
||||
.suffix = Кинжал
|
||||
|
||||
ent-CP14MobUndeadSkeletonArcher = скелет
|
||||
.desc = { ent-CP14MobUndeadSkeleton.desc }
|
||||
ent-CP14MobUndeadSkeletonArcher = { ent-CP14MobUndeadSkeletonDemiplane }
|
||||
.desc = { ent-CP14MobUndeadSkeletonDemiplane.desc }
|
||||
.suffix = Лучник
|
||||
|
||||
ent-CP14MobUndeadSkeletonWizard = скелет
|
||||
.desc = { ent-CP14MobUndeadSkeleton.desc }
|
||||
ent-CP14MobUndeadSkeletonWizard = { ent-CP14MobUndeadSkeletonDemiplane }
|
||||
.desc = { ent-CP14MobUndeadSkeletonDemiplane.desc }
|
||||
.suffix = Маг
|
||||
|
||||
ent-CP14MobUndeadSkeletonBard = скелет
|
||||
.desc = { ent-CP14MobUndeadSkeleton.desc }
|
||||
ent-CP14MobUndeadSkeletonBard = { ent-CP14MobUndeadSkeletonDemiplane }
|
||||
.desc = { ent-CP14MobUndeadSkeletonDemiplane.desc }
|
||||
.suffix = Бард
|
||||
|
||||
ent-SpawnPointGhostDemiplaneSkeleton = точка спавна роли призрака
|
||||
@@ -1217,6 +1255,12 @@ ent-SpawnPointGhostDemiplaneSkeletonBard = точка спавна роли пр
|
||||
.desc = { ent-SpawnPointGhostDemiplaneSkeleton.desc }
|
||||
.suffix = скелет-бард
|
||||
|
||||
ent-CP14MobWatcherIce = ледяной наблюдатель
|
||||
.desc = { ent-CP14MobWatcherBase.desc }
|
||||
|
||||
ent-CP14MobWatcherMagma = магмовый наблюдатель
|
||||
.desc = { ent-CP14MobWatcherBase.desc }
|
||||
|
||||
ent-CP14MobSpaceCobra = кобра
|
||||
|
||||
ent-CP14MobUndeadZombie = ходячий труп
|
||||
@@ -1234,6 +1278,10 @@ ent-CP14MobUndeadZombieGearEasy3 = { ent-CP14MobUndeadZombie }
|
||||
.desc = { ent-CP14MobUndeadZombie.desc }
|
||||
.suffix = Зомби. Легкий
|
||||
|
||||
ent-CP14MobSlimeBase = слайм
|
||||
.desc = Сгусток полуразумной слизи, чувствительной к стихиям. Он с удовольствием слижет кожу с вашего лица.
|
||||
.suffix = AI
|
||||
|
||||
ent-CP14ActionSpellSlimeJump = Слаймопрыжок
|
||||
.desc = Прыгай! ПРЫГАЙ!
|
||||
|
||||
@@ -1335,9 +1383,6 @@ ent-CP14GuidebookBase = { ent-CP14BookBase }
|
||||
.desc = { ent-CP14BookBase.desc }
|
||||
.suffix = Путеводитель
|
||||
|
||||
ent-CP14BookKnowledgeBase = книга знаний
|
||||
.desc = В этой книге содержатся ценные знания, которые вы можете освоить... если будете к этому готовы.
|
||||
|
||||
ent-CP14GuidebookImperialLaws = имперские законы
|
||||
.desc = Книга об императорских законах.
|
||||
.suffix = Путеводитель
|
||||
@@ -1350,34 +1395,6 @@ ent-CP14GuidebookDemiplanes = руководство по исследовани
|
||||
.desc = Приключение на 20 минут: туда и назад.
|
||||
.suffix = Путеводитель
|
||||
|
||||
ent-CP14BookKnowledgeWoodWork = { ent-CP14BookKnowledgeBase }
|
||||
.desc = { ent-CP14BookKnowledgeBase.desc }
|
||||
.suffix = Работа по дереву
|
||||
|
||||
ent-CP14BookKnowledgeMetallMelting = { ent-CP14BookKnowledgeBase }
|
||||
.desc = { ent-CP14BookKnowledgeBase.desc }
|
||||
.suffix = Плавка металла
|
||||
|
||||
ent-CP14BookKnowledgeMetallForging = { ent-CP14BookKnowledgeBase }
|
||||
.desc = { ent-CP14BookKnowledgeBase.desc }
|
||||
.suffix = Ковка металла
|
||||
|
||||
ent-CP14BookKnowledgeGlasswork = { ent-CP14BookKnowledgeBase }
|
||||
.desc = { ent-CP14BookKnowledgeBase.desc }
|
||||
.suffix = Работа со стеклом
|
||||
|
||||
ent-CP14BookKnowledgeClothingSewing = { ent-CP14BookKnowledgeBase }
|
||||
.desc = { ent-CP14BookKnowledgeBase.desc }
|
||||
.suffix = Шитье одежды
|
||||
|
||||
ent-CP14BookKnowledgeWallpaperCraft = { ent-CP14BookKnowledgeBase }
|
||||
.desc = { ent-CP14BookKnowledgeBase.desc }
|
||||
.suffix = Изготовление обоев
|
||||
|
||||
ent-CP14BookKnowledgeAdvancedClothingSewing = { ent-CP14BookKnowledgeBase }
|
||||
.desc = { ent-CP14BookKnowledgeBase.desc }
|
||||
.suffix = Продвинутое шитье одежды
|
||||
|
||||
ent-CP14BookRandom = { ent-CP14BookWriteableBase }
|
||||
.desc = Каждая книга уникальна! Что спрятано в этой?
|
||||
.suffix = Случайный визуал
|
||||
@@ -1706,8 +1723,8 @@ ent-CP14AgaricMushroom = мухомор
|
||||
ent-CP14ChromiumSlime = хромиевая слизь
|
||||
.desc = Это редкое густое вещество можно обнаружить в потоке воды, как будто оно обладает собственным разумом. При попытке изменить саму слизь - она меняет реагент, с которым взаимодействует.
|
||||
|
||||
ent-CP14WildSage = корень дикого шалфея
|
||||
.desc = Корень повсеместно распространенного лекарственного растения, неплохо заживляющего физические повреждения и вызывающего откашливание.
|
||||
ent-CP14WildSage = шалфей
|
||||
.desc = Цветы шалфея. Хорошая лекарственная трава, которая при правильной обработке действует как галлюциноген.
|
||||
|
||||
ent-CP14LumiMushroom = люмигриб
|
||||
.desc = Слабо светящийся гриб. Часто используется алхимиками как средство для концентрации растворов.
|
||||
@@ -2033,6 +2050,22 @@ ent-CP14DyePurple = фиолетовый краситель
|
||||
ent-CP14DyeBlack = черный краситель
|
||||
.desc = { ent-CP14BaseDye.desc }
|
||||
|
||||
ent-CP14FloraMaterial1 = растительный материал
|
||||
.desc = Органический материал, используемый в лечебных или строительных целях.
|
||||
.suffix = 1
|
||||
|
||||
ent-CP14FloraMaterial10 = { ent-CP14FloraMaterial1 }
|
||||
.desc = { ent-CP14FloraMaterial1.desc }
|
||||
.suffix = 10
|
||||
|
||||
ent-CP14CompostMaterial1 = компост
|
||||
.desc = Когда-то это было красивое и яркое растение или еда. Теперь это вонючая куча разлагающейся органики.
|
||||
.suffix = 1
|
||||
|
||||
ent-CP14CompostMaterial10 = { ent-CP14CompostMaterial1 }
|
||||
.desc = { ent-CP14CompostMaterial1.desc }
|
||||
.suffix = 10
|
||||
|
||||
ent-CP14OreCopper1 = медная руда
|
||||
.desc = Кусок бледной, тяжелой меди.
|
||||
|
||||
@@ -2145,14 +2178,6 @@ ent-CP14Nail50 = { ent-CP14Nail1 }
|
||||
.desc = { ent-CP14Nail1.desc }
|
||||
.suffix = 50
|
||||
|
||||
ent-CP14FloraMaterial1 = растительный материал
|
||||
.desc = Органический материал, используемый в лечебных или строительных целях.
|
||||
.suffix = 1
|
||||
|
||||
ent-CP14FloraMaterial10 = { ent-CP14FloraMaterial1 }
|
||||
.desc = { ent-CP14FloraMaterial1.desc }
|
||||
.suffix = 10
|
||||
|
||||
ent-CP14String = нитки
|
||||
.desc = Тонкая нить. Материал для починки одежды или пошива новой.
|
||||
|
||||
@@ -2299,6 +2324,9 @@ ent-CP14ModularGripCopper = медная рукоять
|
||||
ent-CP14ModularGripMithril = мифриловая рукоять
|
||||
.desc = { ent-CP14ModularGripShort.desc }
|
||||
|
||||
ent-CP14ModularGripGuildmaster = рукоять рапиры гильдмастера
|
||||
.desc = { ent-CP14ModularGripShort.desc }
|
||||
|
||||
ent-CP14ModularGripWoodenLong = длинная деревянная рукоять
|
||||
.desc = { ent-CP14ModularGripLong.desc }
|
||||
|
||||
@@ -2374,6 +2402,21 @@ ent-CP14ModularBladeCopperHammer = медный наболдашник моло
|
||||
ent-CP14ModularBladeMithrilHammer = мифриловый наболдашник молота
|
||||
.desc = { ent-CP14ModularBladeHammerBase.desc }
|
||||
|
||||
ent-CP14ModularBladeHoeBase = None
|
||||
.desc = Лезвие мотыги без рукояти. Кузнец может использовать его как запасную часть для создания инструмента.
|
||||
|
||||
ent-CP14ModularBladeIronHoe = железное лезвие мотыги
|
||||
.desc = { ent-CP14ModularBladeHoeBase.desc }
|
||||
|
||||
ent-CP14ModularBladeCopperHoe = медное лезвие мотыги
|
||||
.desc = { ent-CP14ModularBladeHoeBase.desc }
|
||||
|
||||
ent-CP14ModularBladeGoldHoe = золотое лезвие мотыги
|
||||
.desc = { ent-CP14ModularBladeHoeBase.desc }
|
||||
|
||||
ent-CP14ModularBladeMithrilHoe = мифриловое лезвие мотыги
|
||||
.desc = { ent-CP14ModularBladeSickleBase.desc }
|
||||
|
||||
ent-CP14ModularBladeMaceBase = None
|
||||
.desc = Булава-шар без рукояти. Кузнец может использовать его как запасную часть для создания оружия.
|
||||
|
||||
@@ -2485,6 +2528,9 @@ ent-CP14ModularBladeBoneSword = костяное лезвие меча
|
||||
ent-CP14ModularGardeBase = None
|
||||
.desc = Гарда? Гарда!
|
||||
|
||||
ent-CP14ModularGardeGuildmaster = гарда рапиры гильдмастера
|
||||
.desc = { ent-CP14ModularGardeBase.desc }
|
||||
|
||||
ent-CP14ModularGardeSharpIron = острая железная гарда
|
||||
.desc = { ent-CP14ModularGardeBase.desc }
|
||||
|
||||
@@ -2634,7 +2680,11 @@ ent-CP14VialSmallSpeedUp = зелье ускорения Брада
|
||||
|
||||
ent-CP14VialSmallRainbow = веселое зелье Брада
|
||||
.desc = { ent-CP14VialSmall.desc }
|
||||
.suffix = Радуга и пьяные 20%
|
||||
.suffix = Радуга и пьянь 20%
|
||||
|
||||
ent-CP14VialSmallHealingManaDepletion = мана-лечебное зелье Брада
|
||||
.desc = { ent-CP14VialSmall.desc }
|
||||
.suffix = Лечение мана-истощения 10%
|
||||
|
||||
ent-CP14BaseAlchemyBomb = алхимическая бомба
|
||||
.desc = Флакон с жидкостью, который при броске взрывается облаком алхимических реагентов.
|
||||
@@ -2675,12 +2725,12 @@ ent-CP14SeedCucumber = семена огурцов
|
||||
ent-CP14SeedTomato = семена помидоров
|
||||
.desc = Похоже на порошок! Они такие маленькие, эти семена.
|
||||
|
||||
ent-CP14SeedOnion = семена лука
|
||||
.desc = Семена лука, мелкие, но крепкие.
|
||||
|
||||
ent-CP14SeedPepper = семена перца
|
||||
.desc = Семена перца, с перчинкой внутри.
|
||||
|
||||
ent-CP14SeedSage = семена шалфея
|
||||
.desc = Семена шалфея. Пришло время выращивать интересные травы!
|
||||
|
||||
ent-CP14HerbalBandage = травяной бинт
|
||||
.desc = Бинт для перевязки, сплетенный из травы. Не самая надежная и полезная вещь, но лучше, чем ничего.
|
||||
.suffix = 5
|
||||
@@ -2861,12 +2911,18 @@ ent-CP14ModularIronDagger = железный кинжал
|
||||
ent-CP14ModularIronHammer = железный молоток
|
||||
.desc = Небольшой молоток. Хорошо подходит для плотницких работ, а также для раскалывания черепов.
|
||||
|
||||
ent-CP14ModularIronHoe = железная мотыга
|
||||
.desc = Мотыга. Идеальный инструмент для обработки земли и подготовки ее к садоводству.
|
||||
|
||||
ent-CP14ModularIronMace = железная булава
|
||||
.desc = Тяжелый кусок металла на длинной палке. Что может быть проще этого?
|
||||
|
||||
ent-CP14ModularIronPickaxe = железная кирка
|
||||
.desc = Идеальна для забуривания в камни.
|
||||
|
||||
ent-CP14ModularGuildmasterRapier = личная рапира гильдмастера
|
||||
.desc = Личное оружие, выдаваемое каждому гильдмастеру. Сочетает в себе надежность и убойную силу.
|
||||
|
||||
ent-CP14ModularIronShovel = железная лопата
|
||||
.desc = Орудие для вскапывания земли, рытья грядок или могил.
|
||||
|
||||
@@ -3458,87 +3514,62 @@ ent-CP14CrystalShardOrder = ordo осколок кварца
|
||||
ent-CP14CrystalShardChaos = perditio осколок кварца
|
||||
.desc = { ent-CP14CrystalShardBase.desc }
|
||||
|
||||
ent-CP14GatherableWildBase = { ent-CP14GatherableBase }
|
||||
.desc = { ent-CP14GatherableBase.desc }
|
||||
|
||||
ent-CP14GatherablePlantBase = { ent-CP14GatherableBase }
|
||||
.desc = { ent-CP14GatherableBase.desc }
|
||||
|
||||
ent-CP14PlantCabbage = капуста
|
||||
.desc = Вы видите перед собой капусту. Возможно, вы родились в такой же.
|
||||
|
||||
ent-CP14PlantCucumber = огурцы
|
||||
.desc = Не доверяйте людям, которые умеют превращаться в огурцы.
|
||||
|
||||
ent-CP14PlantOnion = лук
|
||||
.desc = Он такой милый, что у меня на глаза наворачиваются слезы, когда я его разрезаю.
|
||||
|
||||
ent-CP14PlantPepper = перцы
|
||||
.desc = Русская рулетка. Острый или сладкий перец?
|
||||
|
||||
ent-CP14PlantPotato = картошка
|
||||
.desc = Некоторые любят ассоциировать себя с картошкой. Такие люди не могут быть плохими.
|
||||
|
||||
ent-CP14PlantPumpkin = тыква
|
||||
.desc = Легенды гласят, что есть тыквенный король, который заглядывает вам в душу сквозь кроны деревьев.
|
||||
|
||||
ent-CP14PlantSage = шалфей
|
||||
.desc = Лекарственный шалфей. Одни любят его за лечебные свойства, другие - за наркотические. А вы на чьей стороне?
|
||||
|
||||
ent-CP14PlantTomatoes = помидоры
|
||||
.desc = С одной стороны, это вкусный плод. Но зачем его есть, если гораздо интереснее использовать помидоры в качестве метательного снаряда?
|
||||
|
||||
ent-CP14PlantWheat = пшеница
|
||||
.desc = Самая популярная культура. Неприхотливая, она открывает путь к изобилию мучных изделий.
|
||||
|
||||
ent-CP14GatherableBloodFlower = кровьцветы
|
||||
.desc = Алые цветы растут там, где пролилась кровь.
|
||||
.suffix = Gatherable
|
||||
|
||||
ent-CP14GatherableBlueAmanita = лазурная аманита
|
||||
.desc = Небесно-голубой цветок, известный своими лечебными и магическими свойствами.
|
||||
.suffix = Gatherable
|
||||
|
||||
ent-CP14GatherableChromiumSlime = хромовая слизь
|
||||
.desc = Это редкое густое вещество можно обнаружить в потоке воды, как будто оно обладает собственным разумом. При попытке изменить саму слизь - она меняет реагент, с которым взаимодействует.
|
||||
.suffix = Gatherable
|
||||
|
||||
ent-CP14GatherableDayflin = желтые днецветы
|
||||
.desc = Желтый солнечный цветок, пахнущий топленым молоком. Может быть переработан в желтый краситель.
|
||||
.suffix = Gatherable
|
||||
|
||||
ent-CP14GatherableFlyAgaric = мухомор
|
||||
.desc = Этот ядовитый гриб часто можно встретить вблизи водоемов или других влажных мест. Он не рекомендуется для употребления в пищу.
|
||||
.suffix = Gatherable
|
||||
|
||||
ent-CP14WaterLilies = кувшинки
|
||||
.desc = Ух ты, это растения, которые растут не на суше, а в воде! Природа удивительна.
|
||||
|
||||
ent-CP14WaterReeds = рогоз
|
||||
.desc = Обычно растет на болотах и по берегам рек.
|
||||
|
||||
ent-CP14GatherableBloodFlower = кровавая роза
|
||||
.desc = Алые цветы растут там, где пролилась кровь.
|
||||
.suffix = Собираемый
|
||||
|
||||
ent-CP14GatherableDayflin = желтый днецвет
|
||||
.desc = Желтый солнечный цветок, пахнущий топленым молоком. Может быть переработан в желтый краситель.
|
||||
.suffix = Собираемый
|
||||
|
||||
ent-CP14GatherableFlyAgaric = мухоморы
|
||||
.desc = Этот ядовитый гриб часто можно встретить вблизи водоемов или других влажных мест. Он не рекомендуется для употребления в пищу.
|
||||
.suffix = Собираемый
|
||||
|
||||
ent-CP14GatherableChromiumSlime = хромиевая слизь
|
||||
.desc = Это редкое густое вещество можно обнаружить в потоке воды, как будто оно обладает собственным разумом. При попытке изменить саму слизь - она меняет реагент, с которым взаимодействует.
|
||||
.suffix = Собираемый
|
||||
|
||||
ent-CP14GatherableWildSage = дикий шалфей
|
||||
.desc = Корень этого повсеместно распространенного лекарственного растения неплохо заживляет физические повреждения и вызывает кашель.
|
||||
.suffix = Собираемый
|
||||
|
||||
ent-CP14GatherableLumiMushroom = люмигрибы
|
||||
.desc = Слабо светящийся гриб. Часто используется алхимиками как средство для концентрации растворов.
|
||||
.suffix = Собираемый
|
||||
|
||||
ent-CP14GatherableBlueAmanita = лазурная аманита
|
||||
.desc = Небесно-голубой цветок, известный своими лечебными и магическими свойствами.
|
||||
.suffix = Собираемый
|
||||
|
||||
ent-CP14PlantCabbage = капуста
|
||||
|
||||
ent-CP14PlantCabbageDeath = мёртвая капуста
|
||||
.desc = Печальное зрелище выброшенной еды.
|
||||
|
||||
ent-CP14PlantCucumber = огурец
|
||||
|
||||
ent-CP14PlantCucumberDeath = мёртвый огурец
|
||||
.desc = Печальное зрелище выброшенной еды.
|
||||
|
||||
ent-CP14PlantOnion = лук
|
||||
|
||||
ent-CP14PlantOnionDeath = мёртвый лук
|
||||
.desc = Печальное зрелище выброшенной еды.
|
||||
|
||||
ent-CP14PlantPepper = перец
|
||||
|
||||
ent-CP14PlantPepperDeath = мёртвый перец
|
||||
.desc = Печальное зрелище выброшенной еды.
|
||||
|
||||
ent-CP14PlantPotato = картофель
|
||||
|
||||
ent-CP14PlantPotatoDeath = мёртвая картошка
|
||||
.desc = Печальное зрелище выброшенной еды.
|
||||
|
||||
ent-CP14PlantPumpkin = тыква
|
||||
|
||||
ent-CP14PlantPumpkinDeath = мёртвая тыква
|
||||
.desc = Печальное зрелище выброшенной еды.
|
||||
|
||||
ent-CP14PlantTomatoes = помидоры
|
||||
|
||||
ent-CP14PlantTomatoesDeath = мёртвые помидоры
|
||||
.desc = Печальное зрелище выброшенной еды.
|
||||
|
||||
ent-CP14PlantWheat = пшеница
|
||||
.desc = Наиболее популярная культура. Непритязательна, и открывает дорогу к разнообразию мучных изделий.
|
||||
|
||||
ent-CP14PlantWheatDeath = мертвая пшеница
|
||||
.desc = Грустное зрелище потерянной еды.
|
||||
|
||||
ent-CP14BarrelWater = { ent-CP14BaseBarrel }
|
||||
.desc = { ent-CP14BaseBarrel.desc }
|
||||
.suffix = Вода
|
||||
@@ -3881,9 +3912,6 @@ ent-CP14TradingPortalSpiceStream = { ent-CP14TradingPortalBase }
|
||||
.desc = { ent-CP14TradingPortalBase.desc }
|
||||
.suffix = SpiceStream
|
||||
|
||||
ent-CP14SeedbedWooden = грядка
|
||||
.desc = Деревянная кадка с кучей земли, приспособленная для выращивания растений.
|
||||
|
||||
ent-CP14BaseEssenceNode = узел эссенции
|
||||
.desc = Естественное накопление магической эссенции.
|
||||
|
||||
@@ -3997,9 +4025,23 @@ ent-CP14WindowIceBlock = блок льда
|
||||
ent-CP14AstralCorrosion = астральное заражение
|
||||
.desc = Светящиеся трещины в реальности. Возможно, это нормально.
|
||||
|
||||
ent-CP14SkillTreePyrokineticLoadoutDummy = Пирокинетика
|
||||
|
||||
ent-CP14SkillTreeHydrosophistryLoadoutDummy = Гидрософистика
|
||||
|
||||
ent-CP14SkillTreeIllusionLoadoutDummy = Иллюзия
|
||||
|
||||
ent-CP14SkillTreeMetamagicLoadoutDummy = Метамагия
|
||||
|
||||
ent-CP14SkillTreeHealingLoadoutDummy = Животворение
|
||||
|
||||
ent-CP14SkillTreeAtlethicLoadoutDummy = Атлетика
|
||||
|
||||
ent-CP14DemiplaneArtifactRoomSpawner = Спавнер комнаты артефактов в демиплане
|
||||
|
||||
ent-CP14DemiplanEnterRoomMarker = Демиплановый маркер входа в комнату
|
||||
ent-CP14DemiplanEnterRoomMarker = Спавнер комнаты входа в демиплан
|
||||
|
||||
ent-CP14DemiplaneRuinsRoomSpawner = Спавнер руин демиплана
|
||||
|
||||
ent-CP14MindRoleDemiplaneAntag = Роль антага в демиплане
|
||||
|
||||
@@ -4020,6 +4062,12 @@ ent-CP14LiquidDropWater = парящая капля жидкости
|
||||
.desc = Сгусток жидкости, удерживаемый в форме шара с помощью магии.
|
||||
.suffix = Вода
|
||||
|
||||
ent-CP14ClothingCloakAmuletGold = золотой амулет
|
||||
.desc = Золотой амулет, ценная безделушка.
|
||||
|
||||
ent-CP14ClothingCloakAmuletMana = мана амулет
|
||||
.desc = Золотой амулет с магическим камнем внутри, который поможет вам легче колдовать.
|
||||
|
||||
ent-CP14ClothingCloakMaidArpon = фартук горничной
|
||||
.desc = Чистота, порядок и послушание - главные черты хорошей горничной.
|
||||
|
||||
@@ -4062,14 +4110,21 @@ ent-CP14ClothingOuterClothingMerchantWaistCoat = купеческий жилет
|
||||
ent-CP14SimpleMobBase = None
|
||||
.suffix = AI
|
||||
|
||||
ent-CP14SimpleMobNoLifeBase = None
|
||||
.suffix = AI
|
||||
|
||||
ent-CP14SimpleSpaceMobNoLifeBase = None
|
||||
.suffix = AI
|
||||
|
||||
ent-CP14MobIceSpectre = ледяной спектр
|
||||
.desc = Непогребенная душа замерзших искателей приключений. Ее ярость против мира лишает ее разума.
|
||||
|
||||
ent-CP14MobMonsterMosquito = рой москитов-кровопийц
|
||||
ent-CP14MobMonsterMosquito = рой комаров кровопийц
|
||||
.desc = Кровожадный рой мелких комаров только и ждет мягкой плоти для кровавого пиршества.
|
||||
.suffix = AI
|
||||
|
||||
ent-CP14MobSlimeBase = слайм
|
||||
.desc = Сгусток полуразумной слизи, чувствительной к стихиям. И с удовольствием слижет кожу с вашего лица.
|
||||
ent-CP14MobWatcherBase = наблюдатель
|
||||
.desc = Как будто он смотрит прямо сквозь вас.
|
||||
.suffix = AI
|
||||
|
||||
ent-CP14BaseMobSkeleton = Мистер Скелет
|
||||
@@ -4100,9 +4155,6 @@ ent-CP14BaseShield = щит
|
||||
ent-CP14BaseCrowbar = лом
|
||||
.desc = Универсальная и полезная железяка, предназначенная для разборки полов и других предметов.
|
||||
|
||||
ent-CP14BaseHoe = мотыга
|
||||
.desc = Садовый инструмент для подготовки почвы к посадке или для удаления сорняков
|
||||
|
||||
ent-CP14BaseMop = деревянная швабра
|
||||
.desc = Швабра для мытья полов от различных неприятных жидкостей
|
||||
|
||||
@@ -4313,3 +4365,4 @@ ent-CP14WallCardboard = картонная стена
|
||||
|
||||
ent-CP14WindowWooden = деревянное окно
|
||||
.desc = Деревянная стена со стеклянным окном в ней.
|
||||
|
||||
|
||||
2
Resources/Locale/ru-RU/_CP14/markings/carcat-tails.ftl
Normal file
2
Resources/Locale/ru-RU/_CP14/markings/carcat-tails.ftl
Normal file
@@ -0,0 +1,2 @@
|
||||
marking-CP14CarcatTail = Хвост
|
||||
marking-CP14CarcatTailFluffy = Пушистый хвост
|
||||
@@ -1,6 +1,8 @@
|
||||
cp14-stack-dirt-block = блоки земли
|
||||
cp14-stack-stone-block = каменные блоки
|
||||
cp14-stack-wood-planks = деревянные доски
|
||||
cp14-stack-marble-block = мраморные камни
|
||||
cp14-stack-wood-planks = дубовые доски
|
||||
cp14-stack-wood-planks-birch = березовые доски
|
||||
cp14-stack-nails = гвозди
|
||||
cp14-stack-cloth = рулоны ткани
|
||||
cp14-stack-flora = пучки травы
|
||||
@@ -21,3 +23,7 @@ cp14-stack-wallpaper = рулон обоев
|
||||
cp14-stack-glass-sheet = стекло
|
||||
|
||||
cp14-stack-ash-pile = кучка пепла
|
||||
|
||||
|
||||
|
||||
cp14-stack-group-wooden-planks-any = доски (любые)
|
||||
@@ -1,11 +1,11 @@
|
||||
meta:
|
||||
format: 7
|
||||
category: Map
|
||||
engineVersion: 248.0.2
|
||||
engineVersion: 250.0.0
|
||||
forkId: ""
|
||||
forkVersion: ""
|
||||
time: 03/18/2025 21:57:21
|
||||
entityCount: 14429
|
||||
time: 04/05/2025 10:23:32
|
||||
entityCount: 14385
|
||||
maps:
|
||||
- 2
|
||||
grids:
|
||||
@@ -65,8 +65,8 @@ entities:
|
||||
id: Comoss
|
||||
- type: CP14WeatherController
|
||||
entries:
|
||||
- visuals: null
|
||||
weight: 3
|
||||
- weight: 3
|
||||
visuals: null
|
||||
- visuals: CP14Mist
|
||||
- visuals: CP14Rain
|
||||
- type: LightCycle
|
||||
@@ -976,24 +976,6 @@ entities:
|
||||
- type: Transform
|
||||
pos: -1.7708926,13.337564
|
||||
parent: 2
|
||||
- proto: CP14BaseHoe
|
||||
entities:
|
||||
- uid: 33
|
||||
components:
|
||||
- type: Transform
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: -20.17605,-13.383461
|
||||
parent: 2
|
||||
- uid: 34
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -19.952974,-13.253024
|
||||
parent: 2
|
||||
- uid: 35
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 12.486586,-56.600544
|
||||
parent: 2
|
||||
- proto: CP14BaseLightCrossbow
|
||||
entities:
|
||||
- uid: 36
|
||||
@@ -44740,6 +44722,24 @@ entities:
|
||||
- type: Transform
|
||||
pos: 10.025342,-7.197178
|
||||
parent: 2
|
||||
- proto: CP14ModularIronHoe
|
||||
entities:
|
||||
- uid: 33
|
||||
components:
|
||||
- type: Transform
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: -20.17605,-13.383461
|
||||
parent: 2
|
||||
- uid: 34
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -19.952974,-13.253024
|
||||
parent: 2
|
||||
- uid: 35
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 12.486586,-56.600544
|
||||
parent: 2
|
||||
- proto: CP14ModularIronMace
|
||||
entities:
|
||||
- uid: 8182
|
||||
@@ -61032,228 +61032,6 @@ entities:
|
||||
- type: Transform
|
||||
pos: 7.7062325,2.3277578
|
||||
parent: 2
|
||||
- proto: CP14SeedbedWooden
|
||||
entities:
|
||||
- uid: 10509
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -24.5,-11.5
|
||||
parent: 2
|
||||
- uid: 10510
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -23.5,-11.5
|
||||
parent: 2
|
||||
- uid: 10511
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -24.5,-12.5
|
||||
parent: 2
|
||||
- uid: 10512
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -24.5,-13.5
|
||||
parent: 2
|
||||
- uid: 10513
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -24.5,-14.5
|
||||
parent: 2
|
||||
- uid: 10514
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -23.5,-14.5
|
||||
parent: 2
|
||||
- uid: 10515
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -23.5,-13.5
|
||||
parent: 2
|
||||
- uid: 10516
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -23.5,-12.5
|
||||
parent: 2
|
||||
- uid: 10517
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -24.5,-16.5
|
||||
parent: 2
|
||||
- uid: 10518
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -24.5,-17.5
|
||||
parent: 2
|
||||
- uid: 10519
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -24.5,-18.5
|
||||
parent: 2
|
||||
- uid: 10520
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -23.5,-16.5
|
||||
parent: 2
|
||||
- uid: 10521
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -23.5,-17.5
|
||||
parent: 2
|
||||
- uid: 10522
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -23.5,-18.5
|
||||
parent: 2
|
||||
- uid: 10523
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -21.5,-16.5
|
||||
parent: 2
|
||||
- uid: 10524
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -21.5,-17.5
|
||||
parent: 2
|
||||
- uid: 10525
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -21.5,-18.5
|
||||
parent: 2
|
||||
- uid: 10526
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -20.5,-16.5
|
||||
parent: 2
|
||||
- uid: 10527
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -20.5,-17.5
|
||||
parent: 2
|
||||
- uid: 10528
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -20.5,-18.5
|
||||
parent: 2
|
||||
- uid: 10529
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -24.5,-20.5
|
||||
parent: 2
|
||||
- uid: 10530
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -24.5,-21.5
|
||||
parent: 2
|
||||
- uid: 10531
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -24.5,-22.5
|
||||
parent: 2
|
||||
- uid: 10532
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -23.5,-20.5
|
||||
parent: 2
|
||||
- uid: 10533
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -23.5,-21.5
|
||||
parent: 2
|
||||
- uid: 10534
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -23.5,-22.5
|
||||
parent: 2
|
||||
- uid: 10535
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -21.5,-20.5
|
||||
parent: 2
|
||||
- uid: 10536
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -21.5,-21.5
|
||||
parent: 2
|
||||
- uid: 10537
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -21.5,-22.5
|
||||
parent: 2
|
||||
- uid: 10538
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -20.5,-20.5
|
||||
parent: 2
|
||||
- uid: 10539
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -20.5,-21.5
|
||||
parent: 2
|
||||
- uid: 10540
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -20.5,-22.5
|
||||
parent: 2
|
||||
- uid: 10541
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 16.5,-62.5
|
||||
parent: 2
|
||||
- uid: 10542
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 17.5,-62.5
|
||||
parent: 2
|
||||
- uid: 10543
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 18.5,-53.5
|
||||
parent: 2
|
||||
- uid: 10544
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 18.5,-54.5
|
||||
parent: 2
|
||||
- uid: 10545
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 15.5,-54.5
|
||||
parent: 2
|
||||
- uid: 10546
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 15.5,-52.5
|
||||
parent: 2
|
||||
- uid: 10547
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 15.5,-57.5
|
||||
parent: 2
|
||||
- uid: 10548
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 17.5,-57.5
|
||||
parent: 2
|
||||
- uid: 10549
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 15.5,-53.5
|
||||
parent: 2
|
||||
- uid: 10550
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 18.5,-52.5
|
||||
parent: 2
|
||||
- uid: 10551
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 18.5,-57.5
|
||||
parent: 2
|
||||
- uid: 10552
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 16.5,-57.5
|
||||
parent: 2
|
||||
- proto: CP14SilverCoin1
|
||||
entities:
|
||||
- uid: 10553
|
||||
@@ -61384,14 +61162,13 @@ entities:
|
||||
- 8184
|
||||
- 8182
|
||||
- 8181
|
||||
- uid: 10555
|
||||
components:
|
||||
- type: Transform
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: -12.5,-5.5
|
||||
parent: 2
|
||||
- proto: CP14SmallWoodenCrateFilled
|
||||
entities:
|
||||
- uid: 10509
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -12.5,-5.5
|
||||
parent: 2
|
||||
- uid: 10556
|
||||
components:
|
||||
- type: Transform
|
||||
@@ -61784,11 +61561,6 @@ entities:
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: 0.5,-53.5
|
||||
parent: 2
|
||||
- uid: 10628
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 15.5,-60.5
|
||||
parent: 2
|
||||
- uid: 10629
|
||||
components:
|
||||
- type: Transform
|
||||
@@ -64380,6 +64152,21 @@ entities:
|
||||
fixtures: {}
|
||||
- proto: CP14WallmountLampEmpty
|
||||
entities:
|
||||
- uid: 1
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -14.5,-5.5
|
||||
parent: 2
|
||||
- type: Fixtures
|
||||
fixtures: {}
|
||||
- uid: 7131
|
||||
components:
|
||||
- type: Transform
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: -16.5,-4.5
|
||||
parent: 2
|
||||
- type: Fixtures
|
||||
fixtures: {}
|
||||
- uid: 11062
|
||||
components:
|
||||
- type: Transform
|
||||
@@ -81689,6 +81476,12 @@ entities:
|
||||
parent: 2
|
||||
- proto: CP14WoodenDoorPersonalHouse3
|
||||
entities:
|
||||
- uid: 10510
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: -6.5,16.5
|
||||
parent: 2
|
||||
- uid: 14352
|
||||
components:
|
||||
- type: Transform
|
||||
@@ -81738,12 +81531,6 @@ entities:
|
||||
parent: 2
|
||||
- proto: CP14WoodenDoorPersonalHouse8
|
||||
entities:
|
||||
- uid: 14359
|
||||
components:
|
||||
- type: Transform
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: -6.5,16.5
|
||||
parent: 2
|
||||
- uid: 14360
|
||||
components:
|
||||
- type: Transform
|
||||
@@ -82154,7 +81941,7 @@ entities:
|
||||
pos: 29.5,15.5
|
||||
parent: 2
|
||||
- type: WarpPoint
|
||||
location: Blacksmith 2
|
||||
location: Blacksmith
|
||||
- uid: 14429
|
||||
components:
|
||||
- type: Transform
|
||||
@@ -82162,7 +81949,7 @@ entities:
|
||||
pos: 14.5,3.5
|
||||
parent: 2
|
||||
- type: WarpPoint
|
||||
location: Alchemist 2
|
||||
location: Alchemist
|
||||
- uid: 14430
|
||||
components:
|
||||
- type: Transform
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -9,7 +9,7 @@
|
||||
|
||||
- type: storePositionSell
|
||||
id: CP14SpellScroll
|
||||
price: 150
|
||||
price: 50
|
||||
factions:
|
||||
- Sylphoria
|
||||
service: !type:CP14SellWhitelistService
|
||||
|
||||
@@ -84,4 +84,27 @@
|
||||
- type: Sprite
|
||||
sprite: _CP14/Clothing/Cloak/Roles/General/insulated_mantle.rsi
|
||||
- type: Clothing
|
||||
sprite: _CP14/Clothing/Cloak/Roles/General/insulated_mantle.rsi
|
||||
sprite: _CP14/Clothing/Cloak/Roles/General/insulated_mantle.rsi
|
||||
|
||||
- type: entity
|
||||
parent: CP14ClothingCloakBase
|
||||
id: CP14ClothingCloakBlackSyurko
|
||||
name: black surcoats
|
||||
description: A long and roomy cloak that serves to protect your armour.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Clothing/Cloak/Roles/General/black_syurko.rsi
|
||||
- type: Clothing
|
||||
sprite: _CP14/Clothing/Cloak/Roles/General/black_syurko.rsi
|
||||
|
||||
- type: entity
|
||||
parent: CP14ClothingCloakBase
|
||||
id: CP14ClothingCloakRedSyurko
|
||||
name: red surcoats
|
||||
description: A long and roomy cloak that serves to protect your armour.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Clothing/Cloak/Roles/General/red_syurko.rsi
|
||||
- type: Clothing
|
||||
sprite: _CP14/Clothing/Cloak/Roles/General/red_syurko.rsi
|
||||
|
||||
|
||||
@@ -12,4 +12,15 @@
|
||||
- type: Sprite
|
||||
sprite: _CP14/Clothing/Cloak/Roles/Guard/blue.rsi
|
||||
- type: Clothing
|
||||
sprite: _CP14/Clothing/Cloak/Roles/Guard/blue.rsi
|
||||
sprite: _CP14/Clothing/Cloak/Roles/Guard/blue.rsi
|
||||
|
||||
- type: entity
|
||||
parent: CP14ClothingCloakGuardBase
|
||||
id: CP14ClothingCloakGuardSyurko
|
||||
name: guard surcoats
|
||||
description: A long and roomy cloak that serves to protect your armour.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Clothing/Cloak/Roles/Guard/guard_syurko.rsi
|
||||
- type: Clothing
|
||||
sprite: _CP14/Clothing/Cloak/Roles/Guard/guard_syurko.rsi
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
- type: entity
|
||||
id: CP14ConstrainedSpawnerBase
|
||||
abstract: true
|
||||
parent: MarkerBase
|
||||
description: lol
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- type: Physics
|
||||
bodyType: Static
|
||||
fixedRotation: true
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
spawn:
|
||||
shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 15
|
||||
hard: false
|
||||
layer:
|
||||
- AllMask
|
||||
- type: TriggerOnCollide
|
||||
fixtureID: spawn
|
||||
- type: StepTrigger
|
||||
requiredTriggeredSpeed: 0
|
||||
stepOn: true
|
||||
|
||||
- type: entity
|
||||
parent: CP14ConstrainedSpawnerBase
|
||||
id: CP14ConstrainedSpawnerXeno
|
||||
name: xeno constrained spawner
|
||||
components:
|
||||
- type: TriggerOnCollide
|
||||
fixtureID: spawn
|
||||
- type: CP14ConstrainedSpawnerOnTrigger
|
||||
prototypes:
|
||||
- CP14MobXeno
|
||||
- CP14MobXenoDrone
|
||||
- CP14MobSpaceCobra
|
||||
- CP14MobSmallPurpleSnake
|
||||
- CP14MobPurpleSnake
|
||||
- MobLuminousEntity
|
||||
- MobLuminousObject
|
||||
- CP14MobWatcherMagmawing
|
||||
@@ -0,0 +1,45 @@
|
||||
- type: marking
|
||||
id: CP14CarcatTail
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
speciesRestriction: [ CP14Carcat ]
|
||||
followSkinColor: true
|
||||
forcedColoring: true
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/carcat_tail.rsi
|
||||
state: tail
|
||||
|
||||
- type: marking
|
||||
id: CP14CarcatTailFluffy
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
speciesRestriction: [ CP14Carcat ]
|
||||
followSkinColor: true
|
||||
forcedColoring: true
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/carcat_tail.rsi
|
||||
state: tail_fluffy
|
||||
|
||||
# Animation
|
||||
|
||||
- type: marking
|
||||
id: CP14CarcatTailAnimated
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
speciesRestriction: []
|
||||
followSkinColor: true
|
||||
forcedColoring: true
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/carcat_tail.rsi
|
||||
state: tail_waggin
|
||||
|
||||
- type: marking
|
||||
id: CP14CarcatTailFluffyAnimated
|
||||
bodyPart: Tail
|
||||
markingCategory: Tail
|
||||
speciesRestriction: []
|
||||
followSkinColor: true
|
||||
forcedColoring: true
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/carcat_tail.rsi
|
||||
state: tail_fluffy_waggin
|
||||
@@ -6,6 +6,30 @@
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: 3oclock
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHair5oclockmoustache
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: 5oclockmoustache
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHair7oclock
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: 7oclock
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHair7oclockmoustache
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: 7oclockmoustache
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairAbe
|
||||
bodyPart: FacialHair
|
||||
@@ -14,6 +38,14 @@
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: abe
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairChinlessbeard
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: chinlessbeard
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairDwarf
|
||||
bodyPart: FacialHair
|
||||
@@ -23,7 +55,47 @@
|
||||
state: dwarf
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairGoateeMush
|
||||
id: CP14HumanFacialHairDwarf2
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: dwarf2
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairElvis
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: elvis
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairFiveoclock
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: fiveoclock
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairFullbeard
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: fullbeard
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairFumanchu
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: fumanchu
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairGoateemush
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
@@ -31,44 +103,76 @@
|
||||
state: goateemush
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairBriefs
|
||||
id: CP14HumanFacialHairGt
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: briefs
|
||||
state: gt
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairCircle
|
||||
id: CP14HumanFacialHairHip
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: circle
|
||||
state: hip
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairEspanol
|
||||
id: CP14HumanFacialHairHogan
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: espanol
|
||||
state: hogan
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairImperial
|
||||
id: CP14HumanFacialHairJensen
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: imperial
|
||||
state: jensen
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairMachete
|
||||
id: CP14HumanFacialHairLongbeard
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: machete
|
||||
state: longbeard
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairMartialartist
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: martialartist
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairMartialartist2
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: martialartist2
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairMoonshiner
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: moonshiner
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairMoustache
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: moustache
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairMutton
|
||||
@@ -79,20 +183,76 @@
|
||||
state: mutton
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairPigtail
|
||||
id: CP14HumanFacialHairMuttonmus
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: pigtail
|
||||
state: muttonmus
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairSage
|
||||
id: CP14HumanFacialHairNeckbeard
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: sage
|
||||
state: neckbeard
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairPencilstache
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: pencilstache
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairSelleck
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: selleck
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairSideburn
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: sideburn
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairSmallstache
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: smallstache
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairVandyke
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: vandyke
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairVolaju
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: volaju
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairWalrus
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: walrus
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairWatson
|
||||
@@ -103,9 +263,9 @@
|
||||
state: watson
|
||||
|
||||
- type: marking
|
||||
id: CP14HumanFacialHairWhiskers
|
||||
id: CP14HumanFacialHairWise
|
||||
bodyPart: FacialHair
|
||||
markingCategory: FacialHair
|
||||
sprites:
|
||||
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
|
||||
state: whiskers
|
||||
state: wise
|
||||
@@ -45,8 +45,10 @@
|
||||
0: Alive
|
||||
50: Dead
|
||||
- type: MovementSpeedModifier
|
||||
baseWalkSpeed: 5
|
||||
baseSprintSpeed: 7
|
||||
baseWalkSpeed: 2
|
||||
baseSprintSpeed: 4
|
||||
friction: 0.5
|
||||
acceleration: 3
|
||||
- type: ProjectileBatteryAmmoProvider
|
||||
proto: WatcherBolt
|
||||
fireCost: 50
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
- type: entity
|
||||
id: CP14MobXeno
|
||||
parent: MobXeno
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
- CP14Monster
|
||||
|
||||
- type: entity
|
||||
id: CP14MobXenoDrone
|
||||
parent: MobXenoDrone
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
- CP14Monster
|
||||
|
||||
- type: entity
|
||||
id: CP14MobSpaceCobra
|
||||
name: cobra
|
||||
parent: MobCobraSpace
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
- CP14Monster
|
||||
- type: MeleeChemicalInjector
|
||||
transferAmount: 2
|
||||
- type: MeleeWeapon
|
||||
hidden: true
|
||||
soundHit:
|
||||
path: /Audio/Effects/bite.ogg
|
||||
angle: 0
|
||||
animation: WeaponArcBite
|
||||
damage:
|
||||
types:
|
||||
Piercing: 2
|
||||
Poison: 2
|
||||
|
||||
- type: entity
|
||||
id: CP14MobPurpleSnake
|
||||
parent: MobPurpleSnake
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
- CP14Monster
|
||||
- type: MeleeWeapon
|
||||
angle: 0
|
||||
animation: WeaponArcBite
|
||||
damage:
|
||||
types:
|
||||
Piercing: 1
|
||||
- type: MeleeChemicalInjector
|
||||
transferAmount: 3
|
||||
|
||||
- type: entity
|
||||
id: CP14MobSmallPurpleSnake
|
||||
parent: MobSmallPurpleSnake
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
- CP14Monster
|
||||
- type: SolutionTransfer
|
||||
maxTransferAmount: 0.2
|
||||
- type: MeleeWeapon
|
||||
angle: 0
|
||||
animation: WeaponArcBite
|
||||
damage:
|
||||
types:
|
||||
Piercing: 0.5
|
||||
- type: MeleeChemicalInjector
|
||||
transferAmount: 2
|
||||
|
||||
- type: entity
|
||||
id: CP14MobWatcherMagmawing
|
||||
parent: MobWatcherMagmawing
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
- CP14Monster
|
||||
@@ -22,6 +22,7 @@
|
||||
- type: Speech
|
||||
speechSounds: CP14Carcat
|
||||
- type: Thirst
|
||||
- type: Wagging
|
||||
- type: Butcherable
|
||||
butcheringType: Spike
|
||||
spawned:
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
damageContainer: CP14Biological
|
||||
damageModifierSet: CP14Tiefling
|
||||
- type: PassiveDamage
|
||||
damageCap: 0
|
||||
allowedStates:
|
||||
- Alive
|
||||
- Critical
|
||||
|
||||
@@ -61,14 +61,6 @@
|
||||
layers:
|
||||
- state: stone
|
||||
map: ["base"]
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
collection: CP14Digging #TODO
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorFoundation
|
||||
- type: Appearance
|
||||
- type: Stack
|
||||
stackType: CP14Stone
|
||||
@@ -94,204 +86,6 @@
|
||||
- type: Stack
|
||||
count: 10
|
||||
|
||||
- type: entity
|
||||
id: CP14WoodLog
|
||||
parent: BaseItem
|
||||
name: wooden log
|
||||
description: A piece of unprocessed wood. Good material for building, or starting a fire.
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Item
|
||||
size: Normal
|
||||
shape:
|
||||
- 0,0,1,0
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/wood.rsi
|
||||
layers:
|
||||
- state: log
|
||||
map: ["random"]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
log: ""
|
||||
log_2: ""
|
||||
log_3: ""
|
||||
- type: Tag
|
||||
tags:
|
||||
- CP14FireplaceFuel
|
||||
- Wooden
|
||||
- type: Flammable
|
||||
fireSpread: false
|
||||
canResistFire: false
|
||||
alwaysCombustible: true
|
||||
canExtinguish: true
|
||||
cP14FireplaceFuel: 30
|
||||
damage:
|
||||
types:
|
||||
Heat: 1
|
||||
- type: Log
|
||||
spawnedPrototype: CP14WoodenPlanks1
|
||||
spawnCount: 3
|
||||
- type: Appearance
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Wood
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 25
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: WoodDestroy
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
|
||||
- type: entity
|
||||
id: CP14WoodenPlanks1
|
||||
parent: BaseItem
|
||||
name: wooden planks
|
||||
description: Treated and ready-to-use wood.
|
||||
categories: [ ForkFiltered ]
|
||||
suffix: 1
|
||||
components:
|
||||
- type: Item
|
||||
size: Normal
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/wood.rsi
|
||||
layers:
|
||||
- state: planks
|
||||
map: ["base"]
|
||||
- type: Tag
|
||||
tags:
|
||||
- CP14FireplaceFuel
|
||||
- Wooden
|
||||
- type: Flammable
|
||||
fireSpread: false
|
||||
canResistFire: false
|
||||
alwaysCombustible: true
|
||||
canExtinguish: true
|
||||
cP14FireplaceFuel: 12
|
||||
damage:
|
||||
types:
|
||||
Heat: 1
|
||||
- type: Appearance
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
path: /Audio/Effects/woodenclosetclose.ogg
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorOakWoodPlanks # TODO
|
||||
- type: Stack
|
||||
stackType: CP14WoodenPlanks
|
||||
count: 1
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- planks
|
||||
- planks_2
|
||||
- planks_3
|
||||
- type: Material
|
||||
- type: PhysicalComposition # точно ли это нужно?
|
||||
materialComposition:
|
||||
CP14WoodenPlanks: 100
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Wood
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 25
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: WoodDestroy
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
|
||||
- type: entity
|
||||
id: CP14WoodenPlanks10
|
||||
parent: CP14WoodenPlanks1
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Stack
|
||||
count: 10
|
||||
|
||||
- type: entity
|
||||
id: CP14WoodenPlanks20
|
||||
parent: CP14WoodenPlanks1
|
||||
suffix: 20
|
||||
components:
|
||||
- type: Stack
|
||||
count: 20
|
||||
|
||||
- type: entity
|
||||
id: CP14LucensWoodLog
|
||||
parent: CP14WoodLog
|
||||
name: lucens log
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/lucens_wood.rsi
|
||||
layers:
|
||||
- state: log
|
||||
map: ["random"]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
log: ""
|
||||
log_2: ""
|
||||
log_3: ""
|
||||
- type: Log
|
||||
spawnedPrototype: CP14LucensWoodenPlanks1
|
||||
spawnCount: 3
|
||||
|
||||
- type: entity
|
||||
id: CP14LucensWoodenPlanks1
|
||||
parent: CP14WoodenPlanks1
|
||||
name: lucens planks
|
||||
suffix: 1
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/lucens_wood.rsi
|
||||
layers:
|
||||
- state: planks
|
||||
map: ["base"]
|
||||
- type: Stack
|
||||
stackType: CP14LucensWoodenPlanks
|
||||
count: 1
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- planks
|
||||
- planks_2
|
||||
- planks_3
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
path: /Audio/Effects/woodenclosetclose.ogg
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorLucensWoodPlanks
|
||||
|
||||
- type: entity
|
||||
id: CP14LucensWoodenPlanks10
|
||||
parent: CP14LucensWoodenPlanks1
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Stack
|
||||
count: 10
|
||||
|
||||
- type: entity
|
||||
id: CP14LucensWoodenPlanks20
|
||||
parent: CP14LucensWoodenPlanks1
|
||||
suffix: 20
|
||||
components:
|
||||
- type: Stack
|
||||
count: 20
|
||||
|
||||
- type: entity
|
||||
id: CP14Nail1
|
||||
parent: BaseItem
|
||||
|
||||
241
Resources/Prototypes/_CP14/Entities/Objects/Materials/wood.yml
Normal file
241
Resources/Prototypes/_CP14/Entities/Objects/Materials/wood.yml
Normal file
@@ -0,0 +1,241 @@
|
||||
- type: entity
|
||||
id: CP14WoodLog
|
||||
parent: BaseItem
|
||||
name: wooden log
|
||||
description: A piece of unprocessed wood. Good material for building, or starting a fire.
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Item
|
||||
size: Normal
|
||||
shape:
|
||||
- 0,0,1,0
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/wood.rsi
|
||||
layers:
|
||||
- state: log
|
||||
map: ["random"]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
log: ""
|
||||
log_2: ""
|
||||
log_3: ""
|
||||
- type: Tag
|
||||
tags:
|
||||
- CP14FireplaceFuel
|
||||
- Wooden
|
||||
- type: Flammable
|
||||
fireSpread: false
|
||||
canResistFire: false
|
||||
alwaysCombustible: true
|
||||
canExtinguish: true
|
||||
cP14FireplaceFuel: 30
|
||||
damage:
|
||||
types:
|
||||
Heat: 1
|
||||
- type: Log
|
||||
spawnedPrototype: CP14WoodenPlanks1
|
||||
spawnCount: 3
|
||||
- type: Appearance
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Wood
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 25
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: WoodDestroy
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
|
||||
- type: entity
|
||||
id: CP14WoodenPlanks1
|
||||
parent: BaseItem
|
||||
name: wooden planks
|
||||
description: Treated and ready-to-use wood.
|
||||
categories: [ ForkFiltered ]
|
||||
suffix: 1
|
||||
components:
|
||||
- type: Item
|
||||
size: Normal
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/wood.rsi
|
||||
layers:
|
||||
- state: planks
|
||||
map: ["base"]
|
||||
- type: Tag
|
||||
tags:
|
||||
- CP14FireplaceFuel
|
||||
- Wooden
|
||||
- type: Flammable
|
||||
fireSpread: false
|
||||
canResistFire: false
|
||||
alwaysCombustible: true
|
||||
canExtinguish: true
|
||||
cP14FireplaceFuel: 12
|
||||
damage:
|
||||
types:
|
||||
Heat: 1
|
||||
- type: Appearance
|
||||
- type: Stack
|
||||
stackType: CP14WoodenPlanks
|
||||
count: 1
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- planks
|
||||
- planks_2
|
||||
- planks_3
|
||||
- type: Material
|
||||
- type: PhysicalComposition # точно ли это нужно?
|
||||
materialComposition:
|
||||
CP14WoodenPlanks: 100
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Wood
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 25
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: WoodDestroy
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
|
||||
- type: entity
|
||||
id: CP14WoodenPlanks10
|
||||
parent: CP14WoodenPlanks1
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Stack
|
||||
count: 10
|
||||
|
||||
- type: entity
|
||||
id: CP14WoodenPlanks20
|
||||
parent: CP14WoodenPlanks1
|
||||
suffix: 20
|
||||
components:
|
||||
- type: Stack
|
||||
count: 20
|
||||
|
||||
# Lucen
|
||||
|
||||
- type: entity
|
||||
id: CP14LucensWoodLog
|
||||
parent: CP14WoodLog
|
||||
name: lucens log
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/wood_lucens.rsi
|
||||
layers:
|
||||
- state: log
|
||||
map: ["random"]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
log: ""
|
||||
log_2: ""
|
||||
log_3: ""
|
||||
- type: Log
|
||||
spawnedPrototype: CP14LucensWoodenPlanks1
|
||||
spawnCount: 3
|
||||
|
||||
- type: entity
|
||||
id: CP14LucensWoodenPlanks1
|
||||
parent: CP14WoodenPlanks1
|
||||
name: lucens planks
|
||||
suffix: 1
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/wood_lucens.rsi
|
||||
layers:
|
||||
- state: planks
|
||||
map: ["base"]
|
||||
- type: Stack
|
||||
stackType: CP14LucensWoodenPlanks
|
||||
count: 1
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- planks
|
||||
- planks_2
|
||||
- planks_3
|
||||
|
||||
- type: entity
|
||||
id: CP14LucensWoodenPlanks10
|
||||
parent: CP14LucensWoodenPlanks1
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Stack
|
||||
count: 10
|
||||
|
||||
- type: entity
|
||||
id: CP14LucensWoodenPlanks20
|
||||
parent: CP14LucensWoodenPlanks1
|
||||
suffix: 20
|
||||
components:
|
||||
- type: Stack
|
||||
count: 20
|
||||
|
||||
#Birch
|
||||
|
||||
- type: entity
|
||||
id: CP14BirchWoodLog
|
||||
parent: CP14WoodLog
|
||||
name: birch log
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/wood_birch.rsi
|
||||
layers:
|
||||
- state: log
|
||||
map: ["random"]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
log: ""
|
||||
log_2: ""
|
||||
log_3: ""
|
||||
- type: Log
|
||||
spawnedPrototype: CP14BirchWoodenPlanks1
|
||||
spawnCount: 3
|
||||
|
||||
- type: entity
|
||||
id: CP14BirchWoodenPlanks1
|
||||
parent: CP14WoodenPlanks1
|
||||
name: birch planks
|
||||
suffix: 1
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/wood_birch.rsi
|
||||
layers:
|
||||
- state: planks
|
||||
map: ["base"]
|
||||
- type: Stack
|
||||
stackType: CP14BirchWoodenPlanks
|
||||
count: 1
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- planks
|
||||
- planks_2
|
||||
- planks_3
|
||||
|
||||
- type: entity
|
||||
id: CP14BirchWoodenPlanks10
|
||||
parent: CP14BirchWoodenPlanks1
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Stack
|
||||
count: 10
|
||||
|
||||
- type: entity
|
||||
id: CP14BirchWoodenPlanks20
|
||||
parent: CP14BirchWoodenPlanks1
|
||||
suffix: 20
|
||||
components:
|
||||
- type: Stack
|
||||
count: 20
|
||||
264
Resources/Prototypes/_CP14/Entities/Objects/Misc/tiles.yml
Normal file
264
Resources/Prototypes/_CP14/Entities/Objects/Misc/tiles.yml
Normal file
@@ -0,0 +1,264 @@
|
||||
- type: entity
|
||||
parent: BaseItem
|
||||
id: CP14FloorTileBase
|
||||
description: Makes the floor more pleasant for your feet. And your eyes.
|
||||
abstract: true
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Tile/tile.rsi
|
||||
- type: Item
|
||||
sprite: _CP14/Objects/Tile/tile.rsi
|
||||
size: Normal
|
||||
- type: Stack
|
||||
count: 1
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
collection: CP14Digging #TODO
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 30
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 20
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: MetalBreak
|
||||
params:
|
||||
volume: -8
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileFoundation
|
||||
name: foundation floor tile
|
||||
components:
|
||||
- type: Sprite
|
||||
state: foundation
|
||||
- type: FloorTile
|
||||
outputs:
|
||||
- CP14FloorFoundation
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileFoundation
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileMarbleBrick
|
||||
name: marble brick
|
||||
components:
|
||||
- type: Sprite
|
||||
state: marble
|
||||
- type: FloorTile
|
||||
outputs:
|
||||
- CP14FloorMarble
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileMarbleBrick
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileOakWoodplanks
|
||||
name: oak woodplanks
|
||||
components:
|
||||
- type: Sprite
|
||||
state: oak_woodplanks
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
path: /Audio/Effects/woodenclosetclose.ogg
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorOakWoodPlanks
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileOakWoodplanks
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileOakWoodplanksBig
|
||||
name: oak big woodplanks
|
||||
components:
|
||||
- type: Sprite
|
||||
state: oak_woodplanks_big
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
path: /Audio/Effects/woodenclosetclose.ogg
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorOakWoodPlanksBig
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileOakWoodplanksBig
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileOakWoodplanksCruciform
|
||||
name: oak cruciform woodplanks
|
||||
components:
|
||||
- type: Sprite
|
||||
state: oak_woodplanks_cruciform
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
path: /Audio/Effects/woodenclosetclose.ogg
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorOakWoodPlanksCruciform
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileOakWoodplanksCruciform
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileOakWoodplanksStairs
|
||||
name: oak stairs woodplanks
|
||||
components:
|
||||
- type: Sprite
|
||||
state: oak_woodplanks_stairways
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
path: /Audio/Effects/woodenclosetclose.ogg
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorOakWoodPlanksStairways
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileOakWoodplanksStairs
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileStonebricks
|
||||
name: stonebrick
|
||||
components:
|
||||
- type: Sprite
|
||||
state: stonebrick
|
||||
- type: FloorTile
|
||||
outputs:
|
||||
- CP14FloorStonebricks
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileStonebricks
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileStonebricksSmallCarved
|
||||
name: small carved stonebricks
|
||||
components:
|
||||
- type: Sprite
|
||||
state: stonebrick_small_carved
|
||||
- type: FloorTile
|
||||
outputs:
|
||||
- CP14FloorStonebricksSmallCarved1
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileStonebricksSmallCarved
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileStonebricksSmallCarved2
|
||||
name: small carved stonebricks 2
|
||||
components:
|
||||
- type: Sprite
|
||||
state: stonebrick_small_carved2
|
||||
- type: FloorTile
|
||||
outputs:
|
||||
- CP14FloorStonebricksSmallCarved2
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileStonebricksSmallCarved2
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileStonebricksSquareCarved
|
||||
name: square carved stonebricks
|
||||
components:
|
||||
- type: Sprite
|
||||
state: stonebrick_square_carved
|
||||
- type: FloorTile
|
||||
outputs:
|
||||
- CP14FloorStonebricksSquareCarved
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileStonebricksSquareCarved
|
||||
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileBirchWoodplanks
|
||||
name: birch woodplanks
|
||||
components:
|
||||
- type: Sprite
|
||||
state: birch_woodplanks
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
path: /Audio/Effects/woodenclosetclose.ogg
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorBirchWoodPlanks
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileBirchWoodplanks
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileBirchWoodplanksBig
|
||||
name: birch big woodplanks
|
||||
components:
|
||||
- type: Sprite
|
||||
state: birch_woodplanks_big
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
path: /Audio/Effects/woodenclosetclose.ogg
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorBirchWoodPlanksBig
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileBirchWoodplanksBig
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileBirchWoodplanksCruciform
|
||||
name: birch cruciform woodplanks
|
||||
components:
|
||||
- type: Sprite
|
||||
state: birch_woodplanks_cruciform
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
path: /Audio/Effects/woodenclosetclose.ogg
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorBirchWoodPlanksCruciform
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileBirchWoodplanksCruciform
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileBirchWoodplanksStairs
|
||||
name: birch stairs woodplanks
|
||||
components:
|
||||
- type: Sprite
|
||||
state: birch_woodplanks_stairways
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
path: /Audio/Effects/woodenclosetclose.ogg
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorBirchWoodPlanksStairways
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileBirchWoodplanksStairs
|
||||
@@ -88,7 +88,6 @@
|
||||
- type: CP14Seed
|
||||
plantProto: CP14PlantPepper
|
||||
|
||||
|
||||
- type: entity
|
||||
id: CP14SeedSage
|
||||
name: sage seeds
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
- type: entity
|
||||
parent: BaseItem
|
||||
id: CP14FishingRod
|
||||
name: fishing rod
|
||||
description: Wooden stick with string attached.
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Item
|
||||
shape:
|
||||
- 0,0,0,1
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Tools/fishing_rod.rsi
|
||||
state: icon
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 50
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: MetalBreak
|
||||
- !type:CP14ModularDisassembleBehavior
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- type: CP14ModularCraftStartPoint
|
||||
startSlots:
|
||||
- FishingRodShaft
|
||||
- type: MeleeWeapon
|
||||
angle: 45
|
||||
attackRate: 1
|
||||
wideAnimationRotation: 135
|
||||
wideAnimation: CP14WeaponArcSlash
|
||||
damage:
|
||||
types:
|
||||
Blunt: 0.1
|
||||
soundHit:
|
||||
collection: MetalThud
|
||||
cPAnimationLength: 0.25
|
||||
- type: Clothing
|
||||
equipDelay: 0.25
|
||||
unequipDelay: 0.25
|
||||
quickEquip: false
|
||||
breakOnMove: false
|
||||
slots:
|
||||
- neck
|
||||
- type: CP14FishingRod
|
||||
@@ -9,6 +9,7 @@
|
||||
snap:
|
||||
- Wall
|
||||
components:
|
||||
- type: CP14FishingPool
|
||||
- type: PlacementReplacement
|
||||
key: floorTile
|
||||
- type: Sprite
|
||||
@@ -120,4 +121,4 @@
|
||||
- CP14GatherableWaterAirLily
|
||||
chance: 1
|
||||
offset: 0.2
|
||||
deleteSpawnerAfterSpawn: false
|
||||
deleteSpawnerAfterSpawn: false
|
||||
|
||||
@@ -20,5 +20,5 @@
|
||||
id: CP14GatherCucumber
|
||||
entries:
|
||||
- id: CP14FoodCucumber
|
||||
amount: 1
|
||||
maxAmount: 3
|
||||
amount: 2
|
||||
maxAmount: 4
|
||||
|
||||
@@ -22,5 +22,5 @@
|
||||
id: CP14GatherPepper
|
||||
entries:
|
||||
- id: CP14FoodPepper
|
||||
amount: 1
|
||||
maxAmount: 3
|
||||
amount: 2
|
||||
maxAmount: 4
|
||||
|
||||
@@ -21,4 +21,4 @@
|
||||
entries:
|
||||
- id: CP14FoodPumpkin
|
||||
amount: 2
|
||||
maxAmount: 3
|
||||
maxAmount: 4
|
||||
|
||||
@@ -22,5 +22,5 @@
|
||||
id: CP14GatherSage
|
||||
entries:
|
||||
- id: CP14WildSage
|
||||
amount: 1
|
||||
maxAmount: 3
|
||||
amount: 2
|
||||
maxAmount: 4
|
||||
|
||||
@@ -20,5 +20,5 @@
|
||||
id: CP14GatherTomatoes
|
||||
entries:
|
||||
- id: CP14FoodTomatoes
|
||||
amount: 1
|
||||
maxAmount: 3
|
||||
amount: 2
|
||||
maxAmount: 4
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.35,-0.4,0.35,0.4"
|
||||
bounds: "-0.2,-0.2,0.2,0.2"
|
||||
density: 1000
|
||||
layer:
|
||||
- WallLayer
|
||||
@@ -82,15 +82,6 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
offset: 0,1.55
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.18,-0.35,0.18,0.35"
|
||||
density: 2000
|
||||
layer:
|
||||
- WallLayer
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
@@ -148,7 +139,7 @@
|
||||
id: CP14FloraTreeSnow
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Structures/Flora/snow_trees.rsi
|
||||
sprite: _CP14/Structures/Flora/tree_snow.rsi
|
||||
layers:
|
||||
- state: tree01
|
||||
map: ["random"]
|
||||
@@ -256,15 +247,6 @@
|
||||
- random:
|
||||
tree01: ""
|
||||
tree02: ""
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.18,-0.35,0.18,0.35"
|
||||
density: 2000
|
||||
layer:
|
||||
- WallLayer
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
@@ -297,3 +279,151 @@
|
||||
CP14LucensWoodLog:
|
||||
min: 3
|
||||
max: 6
|
||||
|
||||
- type: entity
|
||||
parent: CP14BaseTree
|
||||
id: CP14FloraTreeBirchSmall
|
||||
suffix: Small
|
||||
components:
|
||||
- type: Sprite
|
||||
offset: 0,1.3
|
||||
sprite: _CP14/Structures/Flora/tree_birch_small.rsi
|
||||
layers:
|
||||
- state: tree01
|
||||
map: ["random"]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
tree01: ""
|
||||
tree02: ""
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTypeTrigger
|
||||
damageType: Heat
|
||||
damage: 100
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 200
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 75
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
path: /Audio/Effects/tree_fell.ogg
|
||||
params:
|
||||
volume: 5
|
||||
variation: 0.05
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
CP14BirchWoodLog:
|
||||
min: 1
|
||||
max: 2
|
||||
|
||||
- type: entity
|
||||
parent: CP14BaseTree
|
||||
id: CP14FloraTreeBirchMedium
|
||||
suffix: Medium
|
||||
components:
|
||||
- type: Sprite
|
||||
offset: 0,1.8
|
||||
sprite: _CP14/Structures/Flora/tree_birch_medium.rsi
|
||||
layers:
|
||||
- state: tree01
|
||||
map: ["random"]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
tree01: ""
|
||||
tree02: ""
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTypeTrigger
|
||||
damageType: Heat
|
||||
damage: 100
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 200
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 75
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
path: /Audio/Effects/tree_fell.ogg
|
||||
params:
|
||||
volume: 5
|
||||
variation: 0.05
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
CP14BirchWoodLog:
|
||||
min: 2
|
||||
max: 4
|
||||
|
||||
- type: entity
|
||||
parent: CP14BaseTree
|
||||
id: CP14FloraTreeBirchLarge
|
||||
suffix: Large
|
||||
components:
|
||||
- type: Sprite
|
||||
offset: 0,2.6
|
||||
sprite: _CP14/Structures/Flora/tree_birch_big.rsi
|
||||
layers:
|
||||
- state: tree01
|
||||
map: ["random"]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
tree01: ""
|
||||
tree02: ""
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTypeTrigger
|
||||
damageType: Heat
|
||||
damage: 100
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 200
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 75
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
path: /Audio/Effects/tree_fell.ogg
|
||||
params:
|
||||
volume: 5
|
||||
variation: 0.05
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
CP14BirchWoodLog:
|
||||
min: 3
|
||||
max: 6
|
||||
|
||||
|
||||
@@ -128,6 +128,18 @@
|
||||
node: WallWooden
|
||||
- type: CP14WallpaperHolder
|
||||
|
||||
- type: entity
|
||||
id: CP14WallWoodenBirch
|
||||
parent: CP14WallWooden
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Structures/Walls/wooden_wall_birch.rsi
|
||||
- type: Icon
|
||||
sprite: _CP14/Structures/Walls/wooden_wall_birch.rsi
|
||||
- type: Construction
|
||||
graph: CP14WallWood
|
||||
node: WallWoodenBirch
|
||||
|
||||
- type: entity
|
||||
id: CP14WallWoodenPalisade
|
||||
name: palisade
|
||||
|
||||
4
Resources/Prototypes/_CP14/Fishing/lootTables.yml
Normal file
4
Resources/Prototypes/_CP14/Fishing/lootTables.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
- type: CP14FishingPoolLootTable
|
||||
id: Default
|
||||
prototypes:
|
||||
- CP14BaseLockpick
|
||||
13
Resources/Prototypes/_CP14/Fishing/styleSheets.yml
Normal file
13
Resources/Prototypes/_CP14/Fishing/styleSheets.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
- type: CP14FishingProcessStyleSheet
|
||||
id: Default
|
||||
background:
|
||||
texture: /Textures/_CP14/Interface/Fishing/Styles/Default/background.png
|
||||
offset: 10, 0
|
||||
handleOffset: 14, 5
|
||||
handleSize: 11, 141
|
||||
progressOffset: 4, 4
|
||||
progressSize: 2, 142
|
||||
handle:
|
||||
topTexture: /Textures/_CP14/Interface/Fishing/Styles/Default/Handle/top.png
|
||||
middleTexture: /Textures/_CP14/Interface/Fishing/Styles/Default/Handle/middle.png
|
||||
bottomTexture: /Textures/_CP14/Interface/Fishing/Styles/Default/Handle/bottom.png
|
||||
@@ -14,6 +14,8 @@
|
||||
- CP14ClothingCloakBlue
|
||||
- CP14ClothingCloakFurCoat
|
||||
- CP14ClothingCloakInsulated
|
||||
- CP14ClothingCloakBlackSyurko
|
||||
- CP14ClothingCloakRedSyurko
|
||||
|
||||
- type: loadout
|
||||
id: CP14ClothingCloakFurcapeBlack
|
||||
@@ -25,6 +27,16 @@
|
||||
equipment:
|
||||
cloak: CP14ClothingCloakFurcapeBlue
|
||||
|
||||
- type: loadout
|
||||
id: CP14ClothingCloakBlackSyurko
|
||||
equipment:
|
||||
cloak: CP14ClothingCloakBlackSyurko
|
||||
|
||||
- type: loadout
|
||||
id: CP14ClothingCloakRedSyurko
|
||||
equipment:
|
||||
cloak: CP14ClothingCloakRedSyurko
|
||||
|
||||
- type: loadout
|
||||
id: CP14ClothingCloakMaidArpon
|
||||
equipment:
|
||||
|
||||
@@ -7,12 +7,18 @@
|
||||
minLimit: 0
|
||||
loadouts:
|
||||
- CP14ClothingCloakGuardBlue
|
||||
- CP14ClothingCloakGuardSyurko
|
||||
|
||||
- type: loadout
|
||||
id: CP14ClothingCloakGuardBlue
|
||||
equipment:
|
||||
cloak: CP14ClothingCloakGuardBlue
|
||||
|
||||
- type: loadout
|
||||
id: CP14ClothingCloakGuardSyurko
|
||||
equipment:
|
||||
cloak: CP14ClothingCloakGuardSyurko
|
||||
|
||||
# Head
|
||||
|
||||
- type: loadoutGroup
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
id: CP14SkillTreePyrokinetic
|
||||
dummyEntity: CP14SkillTreePyrokineticLoadoutDummy
|
||||
skillTree:
|
||||
Pyrokinetic: 1
|
||||
Pyrokinetic: 2
|
||||
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
id: CP14SkillTreeHydrosophistry
|
||||
dummyEntity: CP14SkillTreeHydrosophistryLoadoutDummy
|
||||
skillTree:
|
||||
Hydrosophistry: 1
|
||||
Hydrosophistry: 2
|
||||
|
||||
|
||||
- type: entity
|
||||
@@ -59,7 +59,7 @@
|
||||
id: CP14SkillTreeIllusion
|
||||
dummyEntity: CP14SkillTreeIllusionLoadoutDummy
|
||||
skillTree:
|
||||
Illusion: 1
|
||||
Illusion: 2
|
||||
|
||||
|
||||
- type: entity
|
||||
@@ -75,7 +75,7 @@
|
||||
id: CP14SkillTreeMetamagic
|
||||
dummyEntity: CP14SkillTreeMetamagicLoadoutDummy
|
||||
skillTree:
|
||||
Metamagic: 1
|
||||
Metamagic: 2
|
||||
|
||||
|
||||
- type: entity
|
||||
@@ -91,7 +91,7 @@
|
||||
id: CP14SkillTreeHealing
|
||||
dummyEntity: CP14SkillTreeHealingLoadoutDummy
|
||||
skillTree:
|
||||
Healing: 1
|
||||
Healing: 2
|
||||
|
||||
|
||||
- type: entity
|
||||
@@ -107,4 +107,4 @@
|
||||
id: CP14SkillTreeAtlethic
|
||||
dummyEntity: CP14SkillTreeAtlethicLoadoutDummy
|
||||
skillTree:
|
||||
Atlethic: 1
|
||||
Atlethic: 2
|
||||
@@ -1,54 +0,0 @@
|
||||
- type: gameMap
|
||||
id: Factoria
|
||||
mapName: "Factoria"
|
||||
mapPath: /Maps/_CP14/factoria.yml
|
||||
maxRandomOffset: 0
|
||||
randomRotation: false
|
||||
minPlayers: 0
|
||||
stations:
|
||||
Factoria:
|
||||
stationProto: CP14BaseExpedition
|
||||
components:
|
||||
- type: StationNameSetup
|
||||
mapNameTemplate: "Factoria"
|
||||
- type: StationJobs
|
||||
availableJobs:
|
||||
#Mercenary
|
||||
CP14Guildmaster: [1, 1]
|
||||
CP14Adventurer: [ -1, -1 ]
|
||||
#Artisans
|
||||
CP14Apprentice: [ 5, 5 ]
|
||||
CP14Alchemist: [ 2, 2 ]
|
||||
CP14Blacksmith: [ 2, 2 ]
|
||||
CP14Innkeeper: [ 3, 4 ]
|
||||
CP14Merchant: [2, 2]
|
||||
#Guard
|
||||
CP14Guard: [8, 8]
|
||||
CP14GuardCommander: [1, 1]
|
||||
- type: CP14StationZLevels
|
||||
defaultMapLevel: 0
|
||||
levels:
|
||||
-1:
|
||||
path: /Maps/_CP14/factoria_d.yml
|
||||
- type: CP14StationKeyDistribution
|
||||
keys:
|
||||
- Alchemy1
|
||||
- Alchemy2
|
||||
- Blacksmith1
|
||||
- Blacksmith2
|
||||
- PersonalHouse1
|
||||
- PersonalHouse2
|
||||
- PersonalHouse3
|
||||
- PersonalHouse4
|
||||
- PersonalHouse5
|
||||
- PersonalHouse6
|
||||
- PersonalHouse7
|
||||
- PersonalHouse8
|
||||
- PersonalHouse9
|
||||
- PersonalHouse10
|
||||
- PersonalHouse11
|
||||
- PersonalHouse12
|
||||
- PersonalHouse13
|
||||
- PersonalHouse14
|
||||
- PersonalHouse15
|
||||
- PersonalHouse16
|
||||
@@ -84,7 +84,7 @@
|
||||
stackEntity: CP14LucensWoodenPlanks1
|
||||
name: cp14-material-lucens-planks
|
||||
unit: materials-unit-bar
|
||||
icon: { sprite: _CP14/Objects/Materials/lucens_wood.rsi, state: planks_2 }
|
||||
icon: { sprite: _CP14/Objects/Materials/wood_lucens.rsi, state: planks_2 }
|
||||
color: "#1a1e22"
|
||||
price: 0
|
||||
|
||||
|
||||
@@ -220,7 +220,7 @@
|
||||
- CP14DemiplaneHot
|
||||
layers:
|
||||
- !type:OreDunGen
|
||||
entity: CP14MobSlimeBase
|
||||
entity: CP14MobWatcherIce
|
||||
count: 2
|
||||
minGroupSize: 2
|
||||
maxGroupSize: 3
|
||||
@@ -239,7 +239,7 @@
|
||||
- CP14DemiplaneCold
|
||||
layers:
|
||||
- !type:OreDunGen
|
||||
entity: CP14MobSlimeBase
|
||||
entity: CP14MobWatcherMagma
|
||||
count: 2
|
||||
minGroupSize: 2
|
||||
maxGroupSize: 3
|
||||
|
||||
@@ -126,8 +126,12 @@
|
||||
- CP14FloorGrassLight
|
||||
- CP14FloorGrassTall
|
||||
entities:
|
||||
- CP14FloraTreeGreen
|
||||
- CP14FloraTreeGreen
|
||||
- CP14FloraTreeGreenLarge
|
||||
- CP14FloraTreeBirchSmall
|
||||
- CP14FloraTreeBirchMedium
|
||||
- CP14FloraTreeBirchLarge
|
||||
- !type:BiomeEntityLayer # More Rocks
|
||||
threshold: 0.7
|
||||
noise:
|
||||
@@ -174,8 +178,12 @@
|
||||
- CP14FloorGrassLight
|
||||
- CP14FloorGrassTall
|
||||
entities:
|
||||
- CP14FloraTreeGreen
|
||||
- CP14FloraTreeGreen
|
||||
- CP14FloraTreeGreenLarge
|
||||
- CP14FloraTreeBirchSmall
|
||||
- CP14FloraTreeBirchMedium
|
||||
- CP14FloraTreeBirchLarge
|
||||
|
||||
- type: biomeTemplate
|
||||
id: CP14GrasslandHills # Холмы
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14WoodenBed
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 2
|
||||
- material: CP14Cloth
|
||||
amount: 1
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
completed:
|
||||
- !type:SnapToGrid
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 3
|
||||
- material: CP14Nail
|
||||
amount: 2
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
completed:
|
||||
- !type:SnapToGrid
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 4
|
||||
- material: CP14Nail
|
||||
amount: 2
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14CurtainsWhite
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 1
|
||||
doAfter: 2
|
||||
- material: CP14Nail
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
- material: CP14Stone
|
||||
amount: 3
|
||||
doAfter: 2
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
completed:
|
||||
- !type:SnapToGrid { }
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 5
|
||||
doAfter: 3
|
||||
- node: CP14mannequin
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14WallmountOrdersBorder
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 3
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14ChairWooden
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- node: CP14ChairWooden
|
||||
@@ -24,7 +24,7 @@
|
||||
edges:
|
||||
- to: CP14BenchWood
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 2
|
||||
- node: CP14BenchWood
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14TableWooden
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 2
|
||||
- node: CP14TableWooden
|
||||
@@ -24,7 +24,7 @@
|
||||
edges:
|
||||
- to: CP14TableWoodenRound
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 2
|
||||
- node: CP14TableWoodenRound
|
||||
@@ -40,7 +40,7 @@
|
||||
edges:
|
||||
- to: CP14TableWoodenCounter
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 2
|
||||
- node: CP14TableWoodenCounter
|
||||
@@ -56,7 +56,7 @@
|
||||
edges:
|
||||
- to: CP14Workbench
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 2
|
||||
- node: CP14Workbench
|
||||
@@ -72,7 +72,7 @@
|
||||
edges:
|
||||
- to: CP14WorkbenchCooking
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 2
|
||||
- node: CP14WorkbenchCooking
|
||||
@@ -88,7 +88,7 @@
|
||||
edges:
|
||||
- to: CP14WorkbenchSewing
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 2
|
||||
- node: CP14WorkbenchSewing
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14WoodenPallet
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- node: CP14WoodenPallet
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
- !type:SnapToGrid
|
||||
southRotation: true
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
|
||||
@@ -18,16 +18,13 @@
|
||||
edges:
|
||||
- to: start
|
||||
completed:
|
||||
- !type:GivePrototype
|
||||
prototype: CP14WoodenPlanks1
|
||||
amount: 2
|
||||
- !type:DeleteEntity {}
|
||||
steps:
|
||||
- tool: Screwing
|
||||
doAfter: 1
|
||||
- to: CP14target
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 1
|
||||
- material: CP14Nail
|
||||
@@ -64,7 +61,7 @@
|
||||
completed:
|
||||
- !type:SnapToGrid
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 5
|
||||
- material: CP14Cloth
|
||||
amount: 2
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14BaseBarrel
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 5
|
||||
doAfter: 3
|
||||
- material: CP14Nail
|
||||
@@ -27,7 +27,7 @@
|
||||
edges:
|
||||
- to: CP14CraneBarrel
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 5
|
||||
doAfter: 3
|
||||
- material: CP14Nail
|
||||
@@ -46,7 +46,7 @@
|
||||
edges:
|
||||
- to: CP14CraneBarrelSmall
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 3
|
||||
- material: CP14Nail
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14WoodenChestFrame
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
edges:
|
||||
- to: CP14WoodenChest
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- material: CP14Nail
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
completed:
|
||||
- !type:SnapToGrid
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 3
|
||||
- material: CP14Cloth
|
||||
amount: 2
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
completed:
|
||||
- !type:SnapToGrid
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 2
|
||||
- material: CP14Nail
|
||||
amount: 1
|
||||
@@ -26,7 +26,7 @@
|
||||
completed:
|
||||
- !type:SnapToGrid
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 4
|
||||
- material: CP14Nail
|
||||
amount: 2
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14WoodenDoorFrame
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
doAfter: 1
|
||||
- to: CP14WoodenDoor
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- to: CP14WoodenDoorWindowed
|
||||
@@ -47,9 +47,6 @@
|
||||
edges:
|
||||
- to: start
|
||||
completed:
|
||||
- !type:SpawnPrototype
|
||||
prototype: CP14WoodenPlanks1
|
||||
amount: 2
|
||||
- !type:DeleteEntity {}
|
||||
steps:
|
||||
- tool: Prying #TODO - new tool
|
||||
@@ -76,10 +73,6 @@
|
||||
entity: CP14WoodenDoor
|
||||
edges:
|
||||
- to: CP14WoodenDoorFrame
|
||||
completed:
|
||||
- !type:SpawnPrototype
|
||||
prototype: CP14WoodenPlanks1
|
||||
amount: 2
|
||||
steps:
|
||||
- tool: Prying #TODO - new tool
|
||||
doAfter: 5
|
||||
@@ -88,10 +81,6 @@
|
||||
entity: CP14WoodenDoorMirrored
|
||||
edges:
|
||||
- to: CP14WoodenDoorFrameMirrored
|
||||
completed:
|
||||
- !type:SpawnPrototype
|
||||
prototype: CP14WoodenPlanks1
|
||||
amount: 2
|
||||
steps:
|
||||
- tool: Prying #TODO - new tool
|
||||
doAfter: 5
|
||||
@@ -100,10 +89,6 @@
|
||||
entity: CP14WoodenDoorWindowed
|
||||
edges:
|
||||
- to: CP14WoodenDoorFrame
|
||||
completed:
|
||||
- !type:SpawnPrototype
|
||||
prototype: CP14WoodenPlanks1
|
||||
amount: 2
|
||||
steps:
|
||||
- tool: Prying #TODO - new tool
|
||||
doAfter: 5
|
||||
@@ -112,10 +97,6 @@
|
||||
entity: CP14WoodenDoorWindowedMirrored
|
||||
edges:
|
||||
- to: CP14WoodenDoorFrameMirrored
|
||||
completed:
|
||||
- !type:SpawnPrototype
|
||||
prototype: CP14WoodenPlanks1
|
||||
amount: 2
|
||||
steps:
|
||||
- tool: Prying #TODO - new tool
|
||||
doAfter: 5
|
||||
|
||||
@@ -8,32 +8,32 @@
|
||||
edges:
|
||||
- to: CP14FenceWoodSmallStraight
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- to: CP14FenceWoodSmallCorner
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- to: CP14FenceWoodSmallGate
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- to: CP14FenceWoodStraight
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 4
|
||||
doAfter: 2
|
||||
- to: CP14FenceWoodCorner
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 4
|
||||
doAfter: 2
|
||||
- to: CP14FenceWoodGate
|
||||
steps:
|
||||
- material: CP14WoodenPlanks
|
||||
- stackGroup: WoodenPlanks
|
||||
amount: 4
|
||||
doAfter: 2
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user