Merge branch 'master' into ed-25-08-2025-upstream-sync

# Conflicts:
#	Resources/Prototypes/_CP14/ModularCraft/Blade/axe.yml
#	Resources/Prototypes/_CP14/ModularCraft/Blade/base.yml
#	Resources/Prototypes/_CP14/ModularCraft/Blade/dagger.yml
#	Resources/Prototypes/_CP14/ModularCraft/Blade/hammer.yml
#	Resources/Prototypes/_CP14/ModularCraft/Blade/hoe.yml
#	Resources/Prototypes/_CP14/ModularCraft/Blade/mace.yml
#	Resources/Prototypes/_CP14/ModularCraft/Blade/mop.yml
#	Resources/Prototypes/_CP14/ModularCraft/Blade/pickaxe.yml
#	Resources/Prototypes/_CP14/ModularCraft/Blade/shovel.yml
#	Resources/Prototypes/_CP14/ModularCraft/Blade/sickle.yml
#	Resources/Prototypes/_CP14/ModularCraft/Blade/skimitar.yml
#	Resources/Prototypes/_CP14/ModularCraft/Blade/spear.yml
#	Resources/Prototypes/_CP14/ModularCraft/Blade/sword.yml
#	Resources/Prototypes/_CP14/ModularCraft/Garde/guildmaster.yml
#	Resources/Prototypes/_CP14/ModularCraft/Garde/sharp.yml
This commit is contained in:
Ed
2025-09-08 11:33:44 +03:00
669 changed files with 13311 additions and 13653 deletions

View File

@@ -103,9 +103,9 @@ public sealed partial class MeleeWeaponSystem
case WeaponArcAnimation.CPThrust:
track = EnsureComp<TrackUserComponent>(animationUid);
track.User = user;
_animation.Play(animationUid, CPGetThrustAnimation(sprite, -offset, spriteRotation, length), ThrustAnimationKey);
_animation.Play(animationUid, CPGetThrustAnimation(sprite, -offset * 2, spriteRotation, length), ThrustAnimationKey);
if (arcComponent.Fadeout)
_animation.Play(animationUid, GetFadeAnimation(sprite, 0f, 0.15f), FadeAnimationKey);
_animation.Play(animationUid, GetFadeAnimation(sprite, length * 0.5f, length + 0.15f), FadeAnimationKey);
break;
//CrystallEdge MeleeUpgrade end
}
@@ -260,8 +260,9 @@ public sealed partial class MeleeWeaponSystem
var startRotation = sprite.Rotation + (arc * 0.5f);
var endRotation = sprite.Rotation - (arc * 0.5f);
var startRotationOffset = startRotation.RotateVec(new Vector2(0f, offset));
var endRotationOffset = endRotation.RotateVec(new Vector2(0f, offset));
var startRotationOffset = startRotation.RotateVec(new Vector2(0f, -offset * 0.9f));
var minRotationOffset = sprite.Rotation.RotateVec(new Vector2(0f, -offset * 1.1f));
var endRotationOffset = endRotation.RotateVec(new Vector2(0f, -offset * 0.9f));
startRotation += spriteRotation;
endRotation += spriteRotation;
@@ -279,6 +280,7 @@ public sealed partial class MeleeWeaponSystem
KeyFrames =
{
new AnimationTrackProperty.KeyFrame(Angle.Lerp(startRotation,endRotation,0.0f), length * 0.0f),
new AnimationTrackProperty.KeyFrame(Angle.Lerp(startRotation,endRotation,0.5f), length * 0.3f),
new AnimationTrackProperty.KeyFrame(Angle.Lerp(startRotation,endRotation,1.0f), length * 0.6f),
new AnimationTrackProperty.KeyFrame(Angle.Lerp(startRotation,endRotation,0.8f), length * 1.0f),
}
@@ -290,6 +292,7 @@ public sealed partial class MeleeWeaponSystem
KeyFrames =
{
new AnimationTrackProperty.KeyFrame(Vector2.Lerp(startRotationOffset,endRotationOffset,0.0f), length * 0.0f),
new AnimationTrackProperty.KeyFrame(minRotationOffset, length * 0.3f),
new AnimationTrackProperty.KeyFrame(Vector2.Lerp(startRotationOffset,endRotationOffset,1.0f), length * 0.6f),
new AnimationTrackProperty.KeyFrame(Vector2.Lerp(startRotationOffset,endRotationOffset,0.8f), length * 1.0f),
}
@@ -298,10 +301,10 @@ public sealed partial class MeleeWeaponSystem
};
}
private Animation CPGetThrustAnimation(SpriteComponent sprite, float distance, Angle spriteRotation, float length)
private Animation CPGetThrustAnimation(SpriteComponent sprite, float offset, Angle spriteRotation, float length)
{
var startOffset = sprite.Rotation.RotateVec(new Vector2(0f, -distance / 5f));
var endOffset = sprite.Rotation.RotateVec(new Vector2(0f, -distance));
var startOffset = sprite.Rotation.RotateVec(new Vector2(0f, 0f));
var endOffset = sprite.Rotation.RotateVec(new Vector2(0f, offset / 2));
sprite.Rotation += spriteRotation;

View File

@@ -87,10 +87,6 @@ public sealed class CP14IdentityRecognitionBoundUserInterface : BoundUserInterfa
{
case CP14RememberNameUiState rememberNameUiState:
_rememberedTarget = rememberNameUiState.Target;
var currentName = CurrentName();
if (currentName is not null)
_window.SetCurrentLabel(currentName);
break;
}
}

View File

@@ -42,8 +42,10 @@ 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
.Where(p => !p.Components.ContainsKey("CP14AreaEntityEffect")) // CP14 lightning detonates entities
//CP14
.Where(p => !p.Components.ContainsKey("CP14BiomeSpawner")) // this component delete all entities on this tile
.Where(p => !p.Components.ContainsKey("CP14AreaEntityEffect")) // lightning detonates entities
//CP14 end
.Select(p => p.ID)
.ToList();
@@ -58,7 +60,7 @@ namespace Content.IntegrationTests.Tests
}
});
await server.WaitRunTicks(15); // 15 seconds, enough to trigger most update loops //CP14 returned back to 15 ticks (operation was cancelled github issue)
await server.WaitRunTicks(15);
await server.WaitPost(() =>
{
@@ -107,8 +109,10 @@ 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
//CP14
.Where(p => !p.Components.ContainsKey("CP14BiomeSpawner")) // CP14 this component delete all entities on this tile
.Where(p => !p.Components.ContainsKey("CP14AreaEntityEffect")) // CP14 lightning detonates entities
//CP14 end
.Select(p => p.ID)
.ToList();
foreach (var protoId in protoIds)
@@ -116,7 +120,7 @@ namespace Content.IntegrationTests.Tests
entityMan.SpawnEntity(protoId, map.GridCoords);
}
});
await server.WaitRunTicks(15); // 15 seconds, enough to trigger most update loops //CP14 returned back to 15 ticks (operation was cancelled github issue)
await server.WaitRunTicks(15);
await server.WaitPost(() =>
{
static IEnumerable<(EntityUid, TComp)> Query<TComp>(IEntityManager entityMan)
@@ -169,6 +173,9 @@ namespace Content.IntegrationTests.Tests
.Where(p => !p.Abstract)
.Where(p => !pair.IsTestPrototype(p))
.Where(p => !p.Components.ContainsKey("MapGrid")) // This will smash stuff otherwise.
//CP14
.Where(p => !p.Components.ContainsKey("CP14VampireClanHeart")) //Spawn announcement sound entities on init
//CP14 end
.Select(p => p.ID)
.ToList();
@@ -248,6 +255,9 @@ namespace Content.IntegrationTests.Tests
// makes an announcement on mapInit.
"AnnounceOnSpawn",
//CP14
"CP14VampireClanHeart", //Also announce on spawn
//CP14 end
};
Assert.That(server.CfgMan.GetCVar(CVars.NetPVS), Is.False);
@@ -383,8 +393,6 @@ namespace Content.IntegrationTests.Tests
"DebugExceptionStartup",
"GridFill",
"RoomFill",
"CP14BiomeSpawner", // CP14 this component delete all entities on this tile
"CP14AreaEntityEffect", // CP14 lightning detonates entities
"Map", // We aren't testing a map entity in this test
"MapGrid",
"Broadphase",

View File

@@ -0,0 +1,20 @@
using Content.Server.Movement.Components;
using Content.Shared._CP14.Eye;
namespace Content.Server._CP14.Eye;
public sealed class CP14ToggleableEyeOffsetSystem : EntitySystem
{
public override void Initialize()
{
SubscribeLocalEvent<EyeComponent, CP14EyeOffsetToggleActionEvent>(OnToggleEyeOffset);
}
private void OnToggleEyeOffset(Entity<EyeComponent> ent, ref CP14EyeOffsetToggleActionEvent args)
{
if (!HasComp<EyeCursorOffsetComponent>(ent))
AddComp<EyeCursorOffsetComponent>(ent);
else
RemComp<EyeCursorOffsetComponent>(ent);
}
}

View File

@@ -29,16 +29,16 @@ public sealed class CP14VampireRuleSystem : GameRuleSystem<CP14VampireRuleCompon
var aliveFactions = new HashSet<ProtoId<CP14VampireFactionPrototype>>();
var query = EntityQueryEnumerator<CP14VampireComponent, MobStateComponent>();
while (query.MoveNext(out var vampireUid, out var vampire, out var mobState))
var query = EntityQueryEnumerator<CP14VampireClanHeartComponent>();
while (query.MoveNext(out _, out var heart))
{
if (mobState.CurrentState != MobState.Alive)
if (heart.Faction is null)
continue;
if (vampire.Faction is null)
if (heart.Level < _condition.RequiredHeartLevel)
continue;
aliveFactions.Add(vampire.Faction.Value);
aliveFactions.Add(heart.Faction.Value);
}
args.AddLine($"[head=2][color=#ab1b3d]{Loc.GetString("cp14-vampire-clans-battle")}[/color][/head]");

View File

@@ -4,6 +4,7 @@ using Content.Shared._CP14.MagicEnergy.Components;
using Content.Shared.Damage;
using Content.Shared.Mobs.Components;
using Content.Shared.Mobs.Systems;
using Robust.Shared.Timing;
namespace Content.Server._CP14.MagicEnergy;
@@ -60,7 +61,7 @@ public partial class CP14MagicEnergySystem
if (TryComp<MobStateComponent>(uid, out var mobState) && !_mobState.IsAlive(uid, mobState))
continue;
draw.NextUpdateTime += TimeSpan.FromSeconds(draw.Delay);
draw.NextUpdateTime = _gameTiming.CurTime + TimeSpan.FromSeconds(draw.Delay);
ChangeEnergy((uid, magicContainer), draw.Energy, out _, out _, draw.Safe);
}

View File

@@ -22,6 +22,7 @@ public sealed class CP14VampireObjectiveConditionsSystem : EntitySystem
[Dependency] private readonly IPrototypeManager _proto = default!;
public readonly float RequiredAlivePercentage = 0.5f;
public readonly int RequiredHeartLevel = 3;
public override void Initialize()
{
@@ -84,27 +85,37 @@ public sealed class CP14VampireObjectiveConditionsSystem : EntitySystem
ent.Comp.Faction = vampireComp.Faction;
_meta.SetEntityName(ent, Loc.GetString("cp14-objective-vampire-pure-bood-title"));
_meta.SetEntityDescription(ent, Loc.GetString("cp14-objective-vampire-pure-bood-desc"));
_meta.SetEntityName(ent, Loc.GetString("cp14-objective-vampire-pure-blood-title"));
_meta.SetEntityDescription(ent, Loc.GetString("cp14-objective-vampire-pure-blood-desc"));
_objectives.SetIcon(ent, ent.Comp.Icon);
}
private void OnBloodPurityGetProgress(Entity<CP14VampireBloodPurityConditionComponent> ent, ref ObjectiveGetProgressEvent args)
{
var query = EntityQueryEnumerator<CP14VampireComponent, MobStateComponent>();
var query = EntityQueryEnumerator<CP14VampireClanHeartComponent>();
while (query.MoveNext(out var uid, out var vampire, out var mobState))
var ourHeartReady = false;
var othersHeartsExist = false;
while (query.MoveNext(out var uid, out var vampire))
{
if (vampire.Faction != ent.Comp.Faction)
{
if (mobState.CurrentState == MobState.Dead)
continue;
if (vampire.Faction == ent.Comp.Faction && vampire.Level >= RequiredHeartLevel)
ourHeartReady = true;
args.Progress = 0f;
return;
if (vampire.Faction != ent.Comp.Faction && vampire.Level >= RequiredHeartLevel)
{
othersHeartsExist = true;
break;
}
}
args.Progress = 1f;
var progress = 0f;
if (ourHeartReady)
progress += 0.5f;
if (!othersHeartsExist)
progress += 0.5f;
args.Progress = progress;
}
}

View File

@@ -125,6 +125,13 @@ public sealed partial class CP14RoundEndSystem
sender: "Server"
);
}),
(22, 0, () =>
{
if (!ruDays)
return;
_consoleHost.ExecuteCommand("endround");
}),
(22, 2, () =>
{
if (!ruDays)
@@ -143,6 +150,13 @@ public sealed partial class CP14RoundEndSystem
sender: "Server"
);
}),
(23, 58, () =>
{
if (ruDays)
return;
_consoleHost.ExecuteCommand("endround");
}),
(23, 59, () =>
{
if (ruDays)

View File

@@ -49,6 +49,7 @@ public sealed partial class CP14RoundEndSystem : EntitySystem
_chatSystem.DispatchGlobalAnnouncement(Loc.GetString("cp14-round-end"),
announcementSound: new SoundPathSpecifier("/Audio/_CP14/Announce/event_boom.ogg"));
_roundEnd.EndRound();
_roundEndMoment = TimeSpan.Zero;
}
private void OnFinisherMagicEnergyLevelChange(Entity<CP14MagicContainerRoundFinisherComponent> ent,

View File

@@ -1,11 +1,8 @@
using System.Text;
using Content.Server.Administration.Managers;
using Content.Server.Chat.Systems;
using Content.Shared._CP14.Vampire;
using Content.Shared._CP14.Vampire.Components;
using Content.Shared.Damage;
using Content.Shared.Destructible;
using Content.Shared.Examine;
using Content.Shared.Ghost;
using Robust.Shared.Audio;
using Robust.Shared.Player;
using Robust.Shared.Prototypes;
@@ -16,13 +13,26 @@ public sealed partial class CP14VampireSystem
{
[Dependency] private readonly ChatSystem _chat = default!;
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
[Dependency] private readonly IAdminManager _admin = default!;
private void InitializeAnnounces()
{
SubscribeLocalEvent<CP14VampireClanHeartComponent, MapInitEvent>(OnHeartCreate);
SubscribeLocalEvent<CP14VampireClanHeartComponent, DamageChangedEvent>(OnHeartDamaged);
SubscribeLocalEvent<CP14VampireClanHeartComponent, ComponentRemove>(OnHeartDestructed);
}
private void OnHeartCreate(Entity<CP14VampireClanHeartComponent> ent, ref MapInitEvent args)
{
if (ent.Comp.Faction is null)
return;
if (!Proto.TryIndex(ent.Comp.Faction, out var indexedFaction))
return;
AnnounceToFaction(ent.Comp.Faction.Value, Loc.GetString("cp14-vampire-tree-created", ("name", Loc.GetString(indexedFaction.Name))));
AnnounceToOpposingFactions(ent.Comp.Faction.Value, Loc.GetString("cp14-vampire-tree-created", ("name", Loc.GetString(indexedFaction.Name))));
}
private void OnHeartDamaged(Entity<CP14VampireClanHeartComponent> ent, ref DamageChangedEvent args)
{
@@ -84,6 +94,8 @@ public sealed partial class CP14VampireSystem
filter.AddPlayer(actor.PlayerSession);
}
filter.AddPlayers(_admin.ActiveAdmins);
if (filter.Count == 0)
return;

View File

@@ -170,7 +170,7 @@ public sealed partial class CP14VampireSystem : CP14SharedVampireSystem
heart.NextRegenTime = _timing.CurTime + heart.RegenFrequency;
AddEssence((uid, heart), heart.EssenceRegenPerLevel * heart.Level);
AddEssence((uid, heart), heart.EssenceRegen);
}
}
}

View File

@@ -66,13 +66,19 @@ public sealed class MeleeHitEvent : HandledEntityEventArgs
/// </remarks>
public bool IsHit = true;
public MeleeHitEvent(List<EntityUid> hitEntities, EntityUid user, EntityUid weapon, DamageSpecifier baseDamage, Vector2? direction)
/// <summary>
/// CP14 Heavy attack flag.
/// </summary>
public bool CP14Heavy;
public MeleeHitEvent(List<EntityUid> hitEntities, EntityUid user, EntityUid weapon, DamageSpecifier baseDamage, Vector2? direction, bool heavy = false)
{
HitEntities = hitEntities;
User = user;
Weapon = weapon;
BaseDamage = baseDamage;
Direction = direction;
CP14Heavy = heavy; //CP14
}
}

View File

@@ -84,7 +84,7 @@ public sealed partial class MeleeWeaponComponent : Component
/// Multiplies damage by this amount for single-target attacks.
/// </summary>
[DataField, AutoNetworkedField]
public FixedPoint2 ClickDamageModifier = FixedPoint2.New(1);
public FixedPoint2 ClickDamageModifier = FixedPoint2.New(1.3); //CP14 default bonus damage
// TODO: Temporarily 1.5 until interactionoutline is adjusted to use melee, then probably drop to 1.2
/// <summary>
@@ -131,7 +131,7 @@ public sealed partial class MeleeWeaponComponent : Component
/// CrystallEdge Melee upgrade. how far away from the player the animation should be played.
/// </summary>
[DataField]
public float CPAnimationOffset = -1f;
public float CPAnimationOffset = 1f;
// Sounds

View File

@@ -498,7 +498,7 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem
LogImpact.Low,
$"{ToPrettyString(user):actor} melee attacked (light) using {ToPrettyString(meleeUid):tool} and missed");
}
var missEvent = new MeleeHitEvent(new List<EntityUid>(), user, meleeUid, damage, null);
var missEvent = new MeleeHitEvent(new List<EntityUid>(), user, meleeUid, damage, null, heavy: false);
RaiseLocalEvent(meleeUid, missEvent);
_meleeSound.PlaySwingSound(user, meleeUid, component);
return;
@@ -507,7 +507,7 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem
// Sawmill.Debug($"Melee damage is {damage.Total} out of {component.Damage.Total}");
// Raise event before doing damage so we can cancel damage if the event is handled
var hitEvent = new MeleeHitEvent(new List<EntityUid> { target.Value }, user, meleeUid, damage, null);
var hitEvent = new MeleeHitEvent(new List<EntityUid> { target.Value }, user, meleeUid, damage, null, heavy: false);
RaiseLocalEvent(meleeUid, hitEvent);
if (hitEvent.Handled)
@@ -600,7 +600,7 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem
LogImpact.Low,
$"{ToPrettyString(user):actor} melee attacked (heavy) using {ToPrettyString(meleeUid):tool} and missed");
}
var missEvent = new MeleeHitEvent(new List<EntityUid>(), user, meleeUid, damage, direction);
var missEvent = new MeleeHitEvent(new List<EntityUid>(), user, meleeUid, damage, direction, heavy: true);
RaiseLocalEvent(meleeUid, missEvent);
// immediate audio feedback
@@ -649,7 +649,7 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem
// Sawmill.Debug($"Melee damage is {damage.Total} out of {component.Damage.Total}");
// Raise event before doing damage so we can cancel damage if the event is handled
var hitEvent = new MeleeHitEvent(targets, user, meleeUid, damage, direction);
var hitEvent = new MeleeHitEvent(targets, user, meleeUid, damage, direction, heavy: true);
RaiseLocalEvent(meleeUid, hitEvent);
if (hitEvent.Handled)

View File

@@ -0,0 +1,7 @@
using Content.Shared.Actions;
namespace Content.Shared._CP14.Eye;
public sealed partial class CP14EyeOffsetToggleActionEvent : InstantActionEvent
{
}

View File

@@ -1,9 +1,9 @@
using Content.Shared.Examine;
using Content.Shared.Ghost;
using Content.Shared.IdentityManagement;
using Content.Shared.IdentityManagement.Components;
using Content.Shared.Mind;
using Content.Shared.Mind.Components;
using Content.Shared.Popups;
using Content.Shared.Verbs;
using Robust.Shared.Player;
using Robust.Shared.Serialization;
@@ -15,7 +15,7 @@ public abstract class CP14SharedIdentityRecognitionSystem : EntitySystem
{
[Dependency] private readonly SharedUserInterfaceSystem _uiSystem = default!;
[Dependency] private readonly SharedMindSystem _mind = default!;
[Dependency] private readonly SharedIdentitySystem _identity = default!;
[Dependency] private readonly SharedPopupSystem _popup = default!;
public override void Initialize()
{
@@ -68,11 +68,17 @@ public abstract class CP14SharedIdentityRecognitionSystem : EntitySystem
Priority = 2,
Icon = new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/VerbIcons/sentient.svg.192dpi.png")),
Text = Loc.GetString("cp14-remember-name-verb"),
Disabled = seeAttemptEv.Cancelled,
Act = () =>
{
_uiSystem.SetUiState(_args.User, CP14RememberNameUiKey.Key, new CP14RememberNameUiState(GetNetEntity(ent)));
_uiSystem.TryToggleUi(_args.User, CP14RememberNameUiKey.Key, actor.PlayerSession);
if (seeAttemptEv.Cancelled)
{
_popup.PopupClient(Loc.GetString("cp14-remember-fail-mask"), _args.Target, _args.User);
}
else
{
_uiSystem.SetUiState(_args.User, CP14RememberNameUiKey.Key, new CP14RememberNameUiState(GetNetEntity(ent)));
_uiSystem.TryToggleUi(_args.User, CP14RememberNameUiKey.Key, actor.PlayerSession);
}
},
};
args.Verbs.Add(verb);

View File

@@ -0,0 +1,27 @@
using Content.Shared.Stunnable;
namespace Content.Shared._CP14.MagicSpell.Spells;
public sealed partial class CP14SpellKnockdown : CP14SpellEffect
{
[DataField]
public float ThrowPower = 10f;
[DataField]
public TimeSpan Time = TimeSpan.FromSeconds(1f);
[DataField]
public bool DropItems = false;
public override void Effect(EntityManager entManager, CP14SpellEffectBaseArgs args)
{
if (args.Target is null || args.User is null)
return;
var targetEntity = args.Target.Value;
var stun = entManager.System<SharedStunSystem>();
stun.TryKnockdown(args.Target.Value, Time, true, true, DropItems);
}
}

View File

@@ -63,5 +63,29 @@ public sealed partial class CP14SpellPointerToVampireClan : CP14SpellEffect
transform.SetWorldRotation(pointer, angle + Angle.FromDegrees(90));
}
var heartsInRange = lookup.GetEntitiesInRange<CP14VampireClanHeartComponent>(originEntPosition, SearchRange);
foreach (var heart in heartsInRange)
{
if (!Inversed)
{
if (heart.Comp.Faction != vampireComponent.Faction)
continue;
}
else
{
if (heart.Comp.Faction == vampireComponent.Faction)
continue;
}
var targetPosition = transform.GetWorldPosition(heart);
//Calculate the rotation
Angle angle = new(targetPosition - originPosition);
var pointer = entManager.Spawn(PointerEntity, new MapCoordinates(originPosition, transform.GetMapId(originEntPosition)));
transform.SetWorldRotation(pointer, angle + Angle.FromDegrees(90));
}
}
}

View File

@@ -44,8 +44,7 @@ public sealed partial class CP14SpellTeleportToVampireSingleton : CP14SpellEffec
if (singleton.Key != indexedVampireFaction.SingletonTeleportKey)
continue;
var randomOffset = new Vector2(random.Next(-1, 1), random.Next(-1, 1));
var second = entManager.SpawnAtPosition(PortalProto, xform.Coordinates.Offset(randomOffset));
var second = entManager.SpawnAtPosition(PortalProto, xform.Coordinates);
linkSys.TryLink(first, second, true);
return;

View File

@@ -0,0 +1,28 @@
using Content.Shared.Damage;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared._CP14.MeleeWeapon.Components;
/// <summary>
/// Adds bonus damage to weapons if targets are at a certain distance from the attacker.
/// </summary>
[RegisterComponent, NetworkedComponent]
public sealed partial class CP14BonusDistanceMeleeDamageComponent : Component
{
[DataField]
public DamageSpecifier BonusDamage = new();
[DataField]
public float MinDistance = 1f;
[DataField]
public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/_CP14/Effects/critical.ogg")
{
Params = AudioParams.Default.WithVariation(0.125f),
};
[DataField]
public EntProtoId VFX = "CP14MeleeCritEffect";
}

View File

@@ -0,0 +1,34 @@
using Content.Shared.Damage;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared._CP14.MeleeWeapon.Components;
/// <summary>
/// After several wide attacks, a light attack deals additional damage.
/// </summary>
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
public sealed partial class CP14ComboBonusMeleeDamageComponent : Component
{
[DataField]
public DamageSpecifier BonusDamage = new();
[DataField]
public int HeavyAttackNeed = 2;
[DataField, AutoNetworkedField]
public int CurrentHeavyAttacks = 0;
[DataField, AutoNetworkedField]
public HashSet<EntityUid> HitEntities = new();
[DataField]
public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/_CP14/Effects/critical_sword.ogg")
{
Params = AudioParams.Default.WithVariation(0.125f),
};
[DataField]
public EntProtoId VFX = "CP14MeleeCritEffect";
}

View File

@@ -0,0 +1,16 @@
using Robust.Shared.GameStates;
namespace Content.Shared._CP14.MeleeWeapon.Components;
/// <summary>
/// After several wide attacks, a light attack deals additional damage.
/// </summary>
[RegisterComponent, NetworkedComponent]
public sealed partial class CP14LightMeleeKnockdownComponent : Component
{
[DataField]
public float ThrowDistance = 0.5f;
[DataField]
public TimeSpan KnockdownTime = TimeSpan.FromSeconds(0.25f);
}

View File

@@ -0,0 +1,16 @@
using Robust.Shared.Audio;
namespace Content.Shared._CP14.MeleeWeapon.Components;
/// <summary>
/// allows this item to be knocked out of your hands by a successful parry
/// </summary>
[RegisterComponent]
public sealed partial class CP14MeleeParriableComponent : Component
{
[DataField]
public TimeSpan LastMeleeHit = TimeSpan.Zero;
[DataField]
public SoundSpecifier ParrySound = new SoundPathSpecifier("/Audio/_CP14/Effects/parry1.ogg", AudioParams.Default.WithVariation(0.2f));
}

View File

@@ -0,0 +1,14 @@
namespace Content.Shared._CP14.MeleeWeapon.Components;
/// <summary>
/// attacks with this item may knock CP14ParriableComponent items out of your hand on a hit
/// </summary>
[RegisterComponent]
public sealed partial class CP14MeleeParryComponent : Component
{
[DataField]
public TimeSpan ParryWindow = TimeSpan.FromSeconds(1f);
[DataField]
public float ParryPower = 1f;
}

View File

@@ -0,0 +1,13 @@
using Robust.Shared.GameStates;
namespace Content.Shared._CP14.MeleeWeapon.Components;
/// <summary>
/// Using this weapon damages the wearer's stamina.
/// </summary>
[RegisterComponent, NetworkedComponent]
public sealed partial class CP14MeleeWeaponStaminaCostComponent : Component
{
[DataField]
public float Stamina = 10f;
}

View File

@@ -1,24 +0,0 @@
using Content.Shared._CP14.MeleeWeapon.Components;
using Content.Shared.Damage;
using Content.Shared.Weapons.Melee.Events;
namespace Content.Shared._CP14.MeleeWeapon.EntitySystems;
public sealed class CP14MeleeSelfDamageSystem : EntitySystem
{
[Dependency] private readonly DamageableSystem _damageable = default!;
public override void Initialize()
{
SubscribeLocalEvent<CP14MeleeSelfDamageComponent, MeleeHitEvent>(OnMeleeHit);
}
private void OnMeleeHit(Entity<CP14MeleeSelfDamageComponent> ent, ref MeleeHitEvent args)
{
if (!args.IsHit)
return;
if (args.HitEntities.Count == 0)
return;
_damageable.TryChangeDamage(ent, ent.Comp.DamageToSelf);
}
}

View File

@@ -0,0 +1,210 @@
using System.Numerics;
using Content.Shared._CP14.MeleeWeapon.Components;
using Content.Shared.Damage;
using Content.Shared.Damage.Systems;
using Content.Shared.Hands.EntitySystems;
using Content.Shared.Popups;
using Content.Shared.Stunnable;
using Content.Shared.Throwing;
using Content.Shared.Weapons.Melee.Events;
using Robust.Shared.Audio.Systems;
using Robust.Shared.Random;
using Robust.Shared.Timing;
namespace Content.Shared._CP14.MeleeWeapon.EntitySystems;
public sealed class CP14MeleeWeaponSystem : EntitySystem
{
[Dependency] private readonly DamageableSystem _damageable = default!;
[Dependency] private readonly SharedTransformSystem _transform = default!;
[Dependency] private readonly SharedAudioSystem _audio = default!;
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly SharedStunSystem _stun = default!;
[Dependency] private readonly ThrowingSystem _throw = default!;
[Dependency] private readonly SharedHandsSystem _hands = default!;
[Dependency] private readonly SharedPopupSystem _popup = default!;
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly SharedStaminaSystem _stamina = default!;
public override void Initialize()
{
SubscribeLocalEvent<CP14MeleeSelfDamageComponent, MeleeHitEvent>(OnMeleeHit);
SubscribeLocalEvent<CP14BonusDistanceMeleeDamageComponent, MeleeHitEvent>(OnDistanceBonusDamage);
SubscribeLocalEvent<CP14ComboBonusMeleeDamageComponent, MeleeHitEvent>(OnComboBonusDamage);
SubscribeLocalEvent<CP14LightMeleeKnockdownComponent, MeleeHitEvent>(OnKnockdownAttack);
SubscribeLocalEvent<CP14MeleeParryComponent, MeleeHitEvent>(OnMeleeParryHit);
SubscribeLocalEvent<CP14MeleeParriableComponent, AttemptMeleeEvent>(OnMeleeParriableHitAttmpt);
SubscribeLocalEvent<CP14MeleeWeaponStaminaCostComponent, MeleeHitEvent>(OnMeleeStaminaCost);
}
private void OnMeleeStaminaCost(Entity<CP14MeleeWeaponStaminaCostComponent> ent, ref MeleeHitEvent args)
{
_stamina.TakeStaminaDamage(args.User, ent.Comp.Stamina);
}
private void OnMeleeParryHit(Entity<CP14MeleeParryComponent> ent, ref MeleeHitEvent args)
{
if (args.HitEntities.Count != 1)
return;
var target = args.HitEntities[0];
var activeTargetHand = _hands.GetActiveHand(target);
var heldItem = _hands.GetHeldItem(target, activeTargetHand);
if (heldItem is null)
return;
if (!TryComp<CP14MeleeParriableComponent>(heldItem, out var meleeParriable))
return;
if (_timing.CurTime > meleeParriable.LastMeleeHit + ent.Comp.ParryWindow)
return;
_hands.TryDrop(target, heldItem.Value);
_throw.TryThrow(heldItem.Value, _random.NextAngle().ToWorldVec(), ent.Comp.ParryPower, target);
_popup.PopupPredicted( Loc.GetString("cp14-successful-parry"), args.User, args.User);
_audio.PlayPredicted(meleeParriable.ParrySound, heldItem.Value, args.User);
}
private void OnMeleeParriableHitAttmpt(Entity<CP14MeleeParriableComponent> ent, ref AttemptMeleeEvent args)
{
ent.Comp.LastMeleeHit = _timing.CurTime;
}
private void OnKnockdownAttack(Entity<CP14LightMeleeKnockdownComponent> ent, ref MeleeHitEvent args)
{
if (args.CP14Heavy)
return;
foreach (var hit in args.HitEntities)
{
_stun.TryKnockdown(hit, ent.Comp.KnockdownTime, true, drop: false);
// Vector from splitter to item
var direction = Transform(hit).Coordinates.Position - Transform(args.User).Coordinates.Position;
if (direction != Vector2.Zero)
{
var dir = direction.Normalized() * ent.Comp.ThrowDistance;
_throw.TryThrow(hit, dir, 3);
}
}
}
private void OnComboBonusDamage(Entity<CP14ComboBonusMeleeDamageComponent> ent, ref MeleeHitEvent args)
{
// Resets combo state
void Reset()
{
ent.Comp.HitEntities.Clear();
ent.Comp.CurrentHeavyAttacks = 0;
Dirty(ent);
}
// No hits this swing → reset
if (args.HitEntities.Count == 0)
{
Reset();
return;
}
var comp = ent.Comp;
// Not enough heavy attacks accumulated yet
if (comp.CurrentHeavyAttacks < comp.HeavyAttackNeed)
{
// Light attack before threshold → reset combo
if (!args.CP14Heavy)
{
Reset();
return;
}
// Heavy attack: track overlapping targets across swings
if (comp.HitEntities.Count == 0)
{
// First heavy: initialize the set with current hits
comp.HitEntities.UnionWith(args.HitEntities);
}
else
{
// Subsequent heavy: keep only targets hit every time
comp.HitEntities.IntersectWith(args.HitEntities);
// Diverged to different targets → reset
if (comp.HitEntities.Count == 0)
{
Reset();
return;
}
}
comp.CurrentHeavyAttacks++;
Dirty(ent);
return;
}
// Light attack after enough heavies → check if it hits any tracked target
if (comp.HitEntities.Overlaps(args.HitEntities) && !args.CP14Heavy)
{
if (_timing.IsFirstTimePredicted)
{
_audio.PlayPredicted(comp.Sound, ent, args.User);
args.BonusDamage += comp.BonusDamage;
// Visual feedback on every hit entity this swing
foreach (var hit in args.HitEntities)
{
PredictedSpawnAtPosition(comp.VFX, Transform(hit).Coordinates);
}
}
Reset();
}
}
private void OnDistanceBonusDamage(Entity<CP14BonusDistanceMeleeDamageComponent> ent, ref MeleeHitEvent args)
{
var critical = true;
if (args.HitEntities.Count == 0)
return;
var userPos = _transform.GetWorldPosition(args.User);
//Crit only if all targets are at distance
foreach (var hit in args.HitEntities)
{
var targetPos = _transform.GetWorldPosition(hit);
var distance = (userPos - targetPos).Length();
if (distance < ent.Comp.MinDistance)
{
critical = false;
break;
}
}
if (!critical)
return;
if (!_timing.IsFirstTimePredicted)
return;
_audio.PlayPredicted(ent.Comp.Sound, ent, args.User);
args.BonusDamage += ent.Comp.BonusDamage;
//Visual effect!
foreach (var hit in args.HitEntities)
{
PredictedSpawnAtPosition(ent.Comp.VFX, Transform(hit).Coordinates);
}
}
private void OnMeleeHit(Entity<CP14MeleeSelfDamageComponent> ent, ref MeleeHitEvent args)
{
if (!args.IsHit)
return;
if (args.HitEntities.Count == 0)
return;
_damageable.TryChangeDamage(ent, ent.Comp.DamageToSelf);
}
}

View File

@@ -54,7 +54,7 @@ public abstract partial class CP14SharedTradingPlatformSystem : EntitySystem
var repComp = EnsureComp<CP14TradingReputationComponent>(args.User);
repComp.Reputation.TryAdd(ent.Comp.Faction, 0);
_audio.PlayLocal(new SoundCollectionSpecifier("CP14CoinImpact"), args.User, args.User);
_popup.PopupPredicted(Loc.GetString("cp14-trading-contract-use", ("name", Loc.GetString(indexedFaction.Name))), args.User, args.User);
_popup.PopupClient(Loc.GetString("cp14-trading-contract-use", ("name", Loc.GetString(indexedFaction.Name))), args.User, args.User);
if (_net.IsServer)
QueueDel(ent);

View File

@@ -32,7 +32,7 @@ public sealed partial class CP14VampireClanHeartComponent : Component
public FixedPoint2 Level4 = 21f;
[DataField]
public FixedPoint2 EssenceRegenPerLevel = 0.1f;
public FixedPoint2 EssenceRegen = 0.2f;
[DataField]
public TimeSpan RegenFrequency = TimeSpan.FromMinutes(1);

View File

@@ -132,3 +132,13 @@
license: "CC0-1.0"
copyright: 'Created by qubodup on Freesound.org'
source: "https://freesound.org/people/qubodup/sounds/814055/"
- files: ["critical.ogg"]
license: "CC-BY-3.0"
copyright: 'Created by CpawsMusic on Freesound.org'
source: "https://freesound.org/people/CpawsMusic/sounds/437113/"
- files: ["critical_sword.ogg"]
license: "CC-BY-3.0"
copyright: 'Created by Merrick079 on Freesound.org'
source: "https://freesound.org/people/Merrick079/sounds/568170/"

Binary file not shown.

Binary file not shown.

View File

@@ -1904,3 +1904,109 @@
id: 8239
time: '2025-09-02T08:52:37.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1662
- author: TheShuEd
changes:
- message: Blacksmith removed (temporarily)
type: Remove
- message: All equipment modularity has been removed. Including weapons, tools,
armor, and arrows.
type: Remove
- message: All weapon martial skills have been removed (temporarily)
type: Remove
- message: The entire arsenal of weapons has been reintroduced into the game. Each
weapon type now has its own characteristics and gameplay.
type: Add
- message: Added 3 types of shields. A buckler that can be used to parry, a regular
shield, and a large tower shield that can be used to stun.
type: Add
- message: Pinok no longer picks up objects from people's hands.
type: Tweak
- message: All weapons, shields, and arrows can now be purchased in the store.
type: Add
id: 8240
time: '2025-09-05T21:59:59.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1711
- author: Viator-MV
changes:
- message: Added red and blue magical robes an hats!
type: Add
id: 8241
time: '2025-09-05T22:05:11.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1725
- author: TheShuEd
changes:
- message: Reverted adding red and blue magical robes an hats
type: Remove
id: 8242
time: '2025-09-06T11:17:42.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1737
- author: TheShuEd
changes:
- message: Innkeepers now have starting seeds, hoes, and hatchets, while alchemists
have roundstart sickles.
type: Add
- message: If you try to remember the name of a person wearing a mask, a warning
will appear stating that you cannot remember the name of a person who is hiding
their face.
type: Fix
- message: Admins can now also see vampire notifications about clan heart progression.
type: Add
- message: Lurkers can no longer pull items and mobs.
type: Remove
- message: The teleport spell to the vampire glyph no longer has a random 1-tile
shift, which caused people to get stuck in walls.
type: Fix
- message: The spell to search for enemy vampire clans is now T2 instead of T3,
and also now points to enemy hearts.
type: Tweak
- message: 'Changed the main goal of the vampire clan: Now the clan must upgrade
its heart to level 3 and prevent other clans from doing so.'
type: Tweak
- message: The suffocation healing spell now heals suffocation much more effectively.
type: Fix
id: 8243
time: '2025-09-07T11:22:30.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1741
- author: TheShuEd
changes:
- message: Guildmaster returns (Comoss only)
type: Add
- message: 'New job added: Guild Worker (Comoss only)'
type: Add
- message: New building for the Adventurers' Guild, with quest boards (Comoss only)
type: Add
- message: Guildmasters and guild workers receive salaries, just like guards.
type: Tweak
id: 8244
time: '2025-09-07T16:15:29.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1745
- author: KittyCat432
changes:
- message: Changed lurker now has a very slight health regen.
type: Tweak
- message: Changed mosquitos description now tell how to kill them
type: Tweak
- message: Changed dash consumes 20 stamina instead of 40.
type: Tweak
- message: Changed spear now swings at 0.5 speed instead of 1
type: Tweak
- message: Fixed merchants start off with the weapon contract.
type: Fix
id: 8245
time: '2025-09-07T22:37:54.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1749
- author: omsoyk
changes:
- message: Resprite satchels
type: Tweak
id: 8246
time: '2025-09-07T22:38:18.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1748
- author: KittyCat432
changes:
- message: Changed alchemy target solutions guidebook entry has been reworked into
categories.
type: Tweak
id: 8247
time: '2025-09-07T23:45:11.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1717

View File

@@ -75,3 +75,6 @@ mob_pushing = true
discord_auth_enabled = true
closet_beta_test = true
sponsor_enabled = true
[viewport]
maximum_width = 29

View File

@@ -2,4 +2,5 @@ cp14-remember-name-verb = Remember name
cp14-remember-name-name = Name
cp14-remember-name-examine = You remember this character as [color=yellow]{$name}[/color]
cp14-remember-name-examine = You remember this character as [color=yellow]{$name}[/color]
cp14-remember-fail-mask = You cannot remember those who hide their faces.

View File

@@ -20,7 +20,10 @@ cp14-job-desc-merchant = You have the ability to buy and sell almost anything in
# Mercenary
cp14-job-name-guildmaster = Guildmaster
cp14-job-desc-guildmaster = Protect the lives of your adventurers, provide them with everything they need, and make sure they do their job.
cp14-job-desc-guildmaster = Establish a connection between the needs of the city and the desires of adventurers to earn money. Organize the delivery of resources and provide adventurers with everything they need for their work.
cp14-job-name-guildworker = Guild Worker
cp14-job-desc-guildworker = Working under the guidance of the guildmaster, issue and accept quests, organize parties of lone adventurers, and train newbies so they don't die from the first fly.
cp14-job-name-adventurer = Adventurer
cp14-job-desc-adventurer = A hunter for thrills, riches and fame, constantly risking his life. Fulfill the most dangerous orders, earning a living by mining resources or killing monsters.

View File

@@ -41,4 +41,5 @@ cp14-lock-shaper-guard-barracks = barracks
cp14-lock-shaper-guard-commander = guard commander house
cp14-lock-shape-guildmaster = guildmaster
cp14-lock-shape-demiplane-crystal = demiplane crystal
cp14-lock-shape-demiplane-crystal = demiplane crystal
cp14-lock-shape-adventure-guild = Adventure guild

View File

@@ -1,7 +1,7 @@
cp14-objective-issuer-vampire = [color="#c20034"]Vampire clan[/color]
cp14-objective-vampire-pure-bood-title = Expel foreign vampire clans
cp14-objective-vampire-pure-bood-desc = Intruders from other vampire clans are hiding among the residents. Eliminate them so that the settlement belongs only to you.
cp14-objective-vampire-pure-blood-title = Expel foreign vampire clans
cp14-objective-vampire-pure-blood-desc = Build your clan's heart to at least level 3, and don't let other clans do it. Only your clan's heart should exist!
cp14-objective-vampire-defence-settlement-title = Keep your property
cp14-objective-vampire-defence-settlement-desc = The inhabitants of this city are your property and your food. Don't let them die. At least {$count}% of the inhabitants must survive.

View File

@@ -9,4 +9,5 @@ cp14-trade-faction-butchers = Master Butchers Union
cp14-trade-faction-dairy = Golden Udder Dairy
cp14-trade-faction-tailors = Silk & Needle Tailors Guild
cp14-trade-faction-guard = Imperial Guard
cp14-trade-faction-vampire-market = Vampire's lair
cp14-trade-faction-vampire-market = Vampire's lair
cp14-trade-faction-helmir-child = Helmir's childs

View File

@@ -25,6 +25,7 @@ cp14-vampire-gather-essence-no-left = Здесь больше нет эссен
cp14-vampire-sender = Vampire instinct
cp14-vampire-tree-created = The heart of the “{$name}” clan has been created!
cp14-vampire-tree-growing = "{$name}" clan heart grows to level {$level}!
cp14-vampire-tree-growing-self = Your clan heart grows to level {$level}!
cp14-vampire-tree-damaged = Your clan's heart has been attacked!

View File

@@ -2,4 +2,5 @@ cp14-remember-name-verb = Запомнить имя
cp14-remember-name-name = Имя
cp14-remember-name-examine = Вы помните этого персонажа как [color=yellow]{$name}[/color]
cp14-remember-name-examine = Вы помните этого персонажа как [color=yellow]{$name}[/color]
cp14-remember-fail-mask = Вы не можете запомнить тех, кто скрывает свое лицо.

View File

@@ -20,7 +20,10 @@ cp14-job-desc-merchant = В ваших руках возможность пок
# Mercenary
cp14-job-name-guildmaster = Гильдмастер
cp14-job-desc-guildmaster = Оберегайте жизни ваших авантюристов, обеспечивайте их всем необходимым, и контролируйте чтобы они выполняли свою работу.
cp14-job-desc-guildmaster = Наладьте связь между потребностями города и желаниями авантюристов заработать. Организуйте поставки ресурсов и обеспечьте авантюристов всем необходимым для их работы.
cp14-job-name-guildworker = Работник гильдии
cp14-job-desc-guildworker = Работая под руководством гильдмастера, выдавайте и принимайте квесты, организуйте партии из авантюристов одиночек, и обучайте новичков, чтобы они не померли от первой мухи.
cp14-job-name-adventurer = Авантюрист
cp14-job-desc-adventurer = Охотник за острыми эмоциями, богатствами и славой, постоянно рискующий своей жизнью. Выполняйте самые опасные заказы, зарабатывая на жизнь добычей ресурсов или убийством монстров.

View File

@@ -41,4 +41,5 @@ cp14-lock-shaper-guard-barracks = казармы
cp14-lock-shaper-guard-commander = дом главы стражи
cp14-lock-shape-guildmaster = гильдмастер
cp14-lock-shape-demiplane-crystal = кристалл демиплана
cp14-lock-shape-demiplane-crystal = кристалл демиплана
cp14-lock-shape-adventure-guild = Гильдия авантюристов

View File

@@ -1,7 +1,7 @@
cp14-objective-issuer-vampire = [color="#c20034"]Клан вампиров[/color]
cp14-objective-vampire-pure-bood-title = Изгнать чужие вампирские кланы
cp14-objective-vampire-pure-bood-desc = Чужаки из других вампирских кланов скрываются среди жителей. Уничтожьте их, чтобы поселение принадлежало только вам.
cp14-objective-vampire-pure-blood-title = Стать правителем этих земель
cp14-objective-vampire-pure-blood-desc = Постройте сердце своего клана минимум 3 уровня, и не позвольте это сделать другим кланам. Только сердце вашего клана должно существовать!
cp14-objective-vampire-defence-settlement-title = Сохранить своё имущество
cp14-objective-vampire-defence-settlement-desc = Жители этого города - ваше имущество и ваша еда. Не позвольте им умереть. Как минимум {$count}% жителей должны выжить.

View File

@@ -9,4 +9,5 @@ cp14-trade-faction-butchers = Союз мастеровых мясников
cp14-trade-faction-dairy = Молочная ферма 'Златовымя'
cp14-trade-faction-tailors = Гильдия портных 'Шелк и игла'
cp14-trade-faction-guard = Имперская стража
cp14-trade-faction-vampire-market = Вампирское логово
cp14-trade-faction-vampire-market = Вампирское логово
cp14-trade-faction-helmir-child = Хельмировы потомки

View File

@@ -25,6 +25,7 @@ cp14-vampire-gather-essence-no-left = There is no more essence here!
cp14-vampire-sender = Вампирское чутье
cp14-vampire-tree-created = Создано сердце клана "{$name}"!
cp14-vampire-tree-growing = Сердце клана "{$name}" вырастает до {$level} уровня!
cp14-vampire-tree-growing-self = Ваше сердце клана вырастает до {$level} уровня!
cp14-vampire-tree-damaged = Ваше сердце клана атаковано!

File diff suppressed because it is too large Load Diff

View File

@@ -4,8 +4,8 @@ meta:
engineVersion: 265.0.0
forkId: ""
forkVersion: ""
time: 08/11/2025 09:33:17
entityCount: 23409
time: 09/07/2025 13:44:45
entityCount: 23413
maps:
- 1
grids:
@@ -749,48 +749,6 @@ entities:
- type: Transform
pos: 49.269325,-15.964533
parent: 1
- proto: CP14BaseShield
entities:
- uid: 23375
components:
- type: Transform
parent: 23374
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23376
components:
- type: Transform
parent: 23374
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23377
components:
- type: Transform
parent: 23374
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23378
components:
- type: Transform
parent: 23374
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23379
components:
- type: Transform
parent: 23374
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23406
components:
- type: Transform
pos: 22.628853,-17.18603
parent: 1
- proto: CP14BaseVat
entities:
- uid: 27
@@ -99799,7 +99757,7 @@ entities:
- type: Transform
pos: -6.616871,-35.262444
parent: 1
- proto: CP14ClothingBeltQuiverIronArrow
- proto: CP14ClothingBeltQuiverArrows
entities:
- uid: 23381
components:
@@ -100000,6 +99958,27 @@ entities:
canCollide: False
- proto: CP14CopperCoin1
entities:
- uid: 19655
components:
- type: Transform
parent: 19654
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 19656
components:
- type: Transform
parent: 19654
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 19657
components:
- type: Transform
parent: 19654
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 19754
components:
- type: Transform
@@ -100025,6 +100004,58 @@ entities:
- type: Transform
pos: 37.238976,38.83274
parent: 1
- uid: 20653
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 78.04069,28.695343
parent: 1
- uid: 20654
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 78.686516,29.049511
parent: 1
- uid: 20656
components:
- type: Transform
pos: 57.78772,-39.823143
parent: 1
- uid: 23392
components:
- type: Transform
parent: 23391
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23393
components:
- type: Transform
parent: 23391
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23394
components:
- type: Transform
parent: 23391
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23395
components:
- type: Transform
parent: 23391
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23396
components:
- type: Transform
parent: 23391
- type: Physics
canCollide: False
- type: InsideEntityStorage
- proto: CP14CraneBarrel
entities:
- uid: 19759
@@ -104952,138 +104983,7 @@ entities:
parent: 1
- type: Fixtures
fixtures: {}
- proto: CP14ModularBladeBoneSword
entities:
- uid: 20653
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 78.04069,28.695343
parent: 1
- proto: CP14ModularGripIronLongGuard
entities:
- uid: 19655
components:
- type: Transform
parent: 19654
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 19656
components:
- type: Transform
parent: 19654
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 19657
components:
- type: Transform
parent: 19654
- type: Physics
canCollide: False
- type: InsideEntityStorage
- proto: CP14ModularGripWoodenLong
entities:
- uid: 20654
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 78.686516,29.049511
parent: 1
- proto: CP14ModularGuardHalberd
entities:
- uid: 23392
components:
- type: Transform
parent: 23391
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23393
components:
- type: Transform
parent: 23391
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23394
components:
- type: Transform
parent: 23391
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23395
components:
- type: Transform
parent: 23391
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23396
components:
- type: Transform
parent: 23391
- type: Physics
canCollide: False
- type: InsideEntityStorage
- proto: CP14ModularInlayQuartzWater
entities:
- uid: 20656
components:
- type: Transform
pos: 57.78772,-39.823143
parent: 1
- proto: CP14ModularIronDagger
entities:
- uid: 20657
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 31.32473,-9.408573
parent: 1
- type: CollisionWake
enabled: False
- uid: 20658
components:
- type: Transform
pos: -9.242605,-0.28940845
parent: 1
- uid: 20659
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -9.204089,-0.0896281
parent: 1
- proto: CP14ModularIronPickaxe
entities:
- uid: 20660
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 37.62259,39.517784
parent: 1
- uid: 20661
components:
- type: Transform
pos: -73.40671,32.00686
parent: 1
- uid: 20662
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -70.56778,28.4129
parent: 1
- proto: CP14ModularIronShovel
entities:
- uid: 20663
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -71.14161,31.674646
parent: 1
- proto: CP14ModularWoodMop
- proto: CP14Mop
entities:
- uid: 25
components:
@@ -117259,6 +117159,36 @@ entities:
fixtures: {}
- proto: CP14WallmountTorchAlwaysPowered
entities:
- uid: 22011
components:
- type: Transform
pos: 13.5,-15.5
parent: 1
- type: Fixtures
fixtures: {}
- uid: 22012
components:
- type: Transform
pos: 18.5,-19.5
parent: 1
- type: Fixtures
fixtures: {}
- uid: 22015
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: 20.5,-21.5
parent: 1
- type: Fixtures
fixtures: {}
- uid: 22017
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: 11.5,-18.5
parent: 1
- type: Fixtures
fixtures: {}
- uid: 22241
components:
- type: Transform
@@ -122838,6 +122768,96 @@ entities:
rot: -1.5707963267948966 rad
pos: 1.3843646,-18.70323
parent: 1
- proto: CP14WeaponDaggerIron
entities:
- uid: 20657
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 31.32473,-9.408573
parent: 1
- type: CollisionWake
enabled: False
- uid: 20658
components:
- type: Transform
pos: -9.242605,-0.28940845
parent: 1
- uid: 20659
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -9.204089,-0.0896281
parent: 1
- proto: CP14WeaponPickaxeIron
entities:
- uid: 20660
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 37.62259,39.517784
parent: 1
- uid: 20661
components:
- type: Transform
pos: -73.40671,32.00686
parent: 1
- uid: 20662
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -70.56778,28.4129
parent: 1
- proto: CP14WeaponShieldWooden
entities:
- uid: 23375
components:
- type: Transform
parent: 23374
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23376
components:
- type: Transform
parent: 23374
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23377
components:
- type: Transform
parent: 23374
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23378
components:
- type: Transform
parent: 23374
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23379
components:
- type: Transform
parent: 23374
- type: Physics
canCollide: False
- type: InsideEntityStorage
- uid: 23406
components:
- type: Transform
pos: 22.628853,-17.18603
parent: 1
- proto: CP14WeaponShovelIron
entities:
- uid: 20663
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -71.14161,31.674646
parent: 1
- proto: CP14WindowStoneBrick
entities:
- uid: 23411

View File

@@ -5,6 +5,8 @@
components:
- type: StorageFill
contents:
- id: CP14WeaponDaggerSickle
amount: 2
- id: CP14HandLabeler
- id: CP14Lighter
- id: CP14ManaOperationGlove
@@ -17,23 +19,16 @@
amount: 1
- id: CP14Dropper
amount: 1
- id: CP14VialTinyReinforced
amount: 1
- id: CP14VialTiny
amount: 3
- id: CP14VialSmallReinforced
amount: 1
- id: CP14VialSmall
amount: 3
- id: CP14VialSkullReinforced
prob: 0.3
- id: CP14VialSkull
prob: 0.5
- id: CP14PaperFolderBlue
- id: CP14PenFeather
amount: 1
- id: CP14WoodenPlanks20
#Random start resource
- id: CP14VialMediumEarthEssence
- id: CP14VialMediumFireEssence
- id: CP14VialMediumWaterEssence
@@ -98,7 +93,6 @@
- id: CP14StampDenied
- id: CP14StampApproved
- id: CP14PaperFolderBlue
- id: CP14ArmorIronChainmailPresets
- type: entity
parent: CP14WoodenCloset
@@ -107,17 +101,20 @@
components:
- type: StorageFill
contents:
- id: CP14WeaponFork
amount: 2
- id: CP14Fork
amount: 2
- id: CP14Spoon
amount: 2
- id: CP14WeaponDaggerHatchet
amount: 2
- id: CP14FryingPan
- id: CP14CookingPot
- id: CP14ModularIronDagger
- id: CP14SackFarmingSeed
- id: CP14PlateWooden
amount: 2
- id: CP14BowlWooden
amount: 2
- id: CP14BookTieflingGambit
- id: CP14GuidebookCooking
- id: CP14SackFarmingSeedFull

View File

@@ -51,13 +51,8 @@
- id: CP14Scissors
- id: CP14Torch
- id: CP14Lighter
- id: CP14ModularIronShovel
- id: CP14KeyFile
- id: CP14ModularWoodMop
- id: CP14LockCopper
- id: CP14ModularCopperPickaxe
- id: CP14ModularIronSickle
- id: CP14ModularIronPickaxe
weight: 0.3

View File

@@ -5,7 +5,7 @@
description: You make a quick dash to the chosen position to quickly close the distance or dodge danger.
components:
- type: CP14ActionStaminaCost
stamina: 40
stamina: 20
- type: CP14MagicEffect
effects:
- !type:CP14SpellDash

View File

@@ -0,0 +1,15 @@
- type: entity
id: CP14ActionToggleKeenEye
name: Keen Eye
parent: BaseMentalAction
description: You gaze into the distance, which allows you to see things that are farther away.
components:
- type: Action
useDelay: 5 # Spamming prevention
icon:
sprite: _CP14/Actions/Spells/physical.rsi
state: keen_eye
checkCanInteract: false
itemIconStyle: BigAction
- type: InstantAction
event: !type:CP14EyeOffsetToggleActionEvent

View File

@@ -13,12 +13,10 @@
stamina: 40
- type: CP14MagicEffect
effects:
- !type:CP14SpellApplyEntityEffect
effects:
- !type:Paralyze
paralyzeTime: 1
- !type:CP14SpellKnockdown
- !type:CP14SpellThrowFromUser
throwPower: 9
distance: 1.5
throwPower: 5
- !type:CP14SpellSpawnEntityOnTarget
spawns:
- CP14DustEffectKickSound

View File

@@ -18,7 +18,7 @@
- !type:HealthChange
damage:
types:
Asphyxiation: -2
Asphyxiation: -5
- !type:Jitter
- type: CP14MagicEffectCastingVisual
proto: CP14RuneAirSaturation

View File

@@ -20,7 +20,7 @@
- !type:CP14SpellApplyEntityEffect
effects:
- !type:CP14ManaChange
manaDelta: -15
manaDelta: -5
safe: false
- type: CP14MagicEffectCastingVisual
proto: CP14RuneMagicSplitting

View File

@@ -29,7 +29,7 @@
parent: CP14ActionSpellBloodConnection
id: CP14ActionSpellBloodEnemySearch
name: Blood identification
description: You are searching within a large radius for all vampires from other factions.
description: You are searching within a large radius for all vampires from other factions and their clan hearts.
components:
- type: CP14MagicEffect
effects:

View File

@@ -33,54 +33,32 @@
castDelay: 0.5
breakOnMove: false
- type: entity
parent: CP14BaseSpellScrollWater
id: CP14SpellScrollIceArrow
name: ice arrow spell scroll
components:
- type: CP14SpellStorage
spells:
- CP14ActionSpellIceArrow
- type: entity
id: CP14IceArrow
parent: BaseItem
parent: CP14ArrowBase
name: ice arrow
description: A sharp ice arrow created with magic. It melts and will soon disappear, but you can shoot it once with your bow.
categories: [ ForkFiltered ]
components:
- type: Sprite
sprite: _CP14/Objects/Weapons/Ranged/Projectiles/ice_arrow.rsi
state: icon
- type: Item
storedRotation: 0
- type: Fixtures
fixtures:
fix1:
shape: !type:PhysShapeCircle
radius: 0.2
density: 5
mask:
- ItemMask
restitution: 0.3
friction: 0.2
projectile:
shape:
!type:PhysShapeAabb
bounds: "-0.1,-0.1,0.1,0.1"
hard: false
mask:
- Impassable
- BulletImpassable
- type: EmbeddableProjectile
sound: /Audio/Weapons/star_hit.ogg
embedOnThrow: false
- type: ThrowingAngle
angle: 0
- type: Ammo
muzzleFlash: null
- type: Tag
tags:
- CP14Arrow
layers:
- state: icon
- state: solution1
map: ["enum.SolutionContainerLayers.Fill"]
- type: Projectile
deleteOnCollide: false
onlyCollideWhenShot: true
damage:
types:
Piercing: 15
Cold: 5
- type: Damageable
- type: Destructible
thresholds:
- trigger:
@@ -93,18 +71,4 @@
- !type:DoActsBehavior
acts: ["Destruction"]
- type: TimedDespawn
lifetime: 240
- type: DamageOnLand
damage:
types:
Blunt: 10
- type: entity
parent: CP14BaseSpellScrollWater
id: CP14SpellScrollIceArrow
name: ice arrow spell scroll
components:
- type: CP14SpellStorage
spells:
- CP14ActionSpellIceArrow
lifetime: 240

View File

@@ -16,7 +16,7 @@
- CP14ImpactEffectWaterCreation
- !type:CP14SpellSpawnInHandEntity
spawns:
- CP14IceDagger
- CP14WeaponDaggerIce
- type: CP14ActionSpeaking
startSpeech: "Un pittore sulla..."
endSpeech: "soglia della mano"
@@ -35,92 +35,25 @@
- type: entity
name: ice dagger
parent: BaseItem
id: CP14IceDagger
parent: CP14BaseWeaponDagger
id: CP14WeaponDaggerIce
description: A sharp ice dagger, not very durable but can temporarily replace real weapons.
categories: [ ForkFiltered ]
components:
- type: Sharp
- type: Sprite
sprite: _CP14/Objects/Weapons/Melee/ice_dagger.rsi
sprite: _CP14/Objects/Weapons/Melee/Dagger/ice.rsi
state: icon
- type: MeleeWeapon
resetOnHandSelected: false #Fast swap
range: 1.0 # 1.5 standart
cPAnimationOffset: -0.75 #-1 standart
attackRate: 1.5 # 1 standart
angle: 45
wideAnimationRotation: 135
wideAnimation: CP14WeaponArcSlash
damage:
types:
Slash: 2
Piercing: 5
Cold: 3
soundHit:
path: /Audio/Weapons/bladeslice.ogg
cPAnimationLength: 0.25
- type: Clothing
equipDelay: 0.25
unequipDelay: 0.25
quickEquip: false
breakOnMove: false
slots:
- belt
- type: Item
shape:
- 0,0,0,1
storedOffset: 0, 5
storedRotation: 45
size: Normal
- type: ExaminableDamage
messages: CP14WeaponMessages
- type: DisarmMalus
- type: ThrowingAngle
angle: 135
- type: EmbeddableProjectile
offset: -0.15,-0.15
removalTime: 0.5
- type: LandAtCursor
Slash: 3
Piercing: 3
Cold: 4
- type: DamageOtherOnHit
damage:
types:
Piercing: 10
Cold: 5
- type: DamageOnLand
damage:
types:
Blunt: 5
- type: Fixtures
fixtures:
fix1:
shape: !type:PolygonShape
vertices:
- -0.40,-0.30
- -0.30,-0.40
- 0.40,0.30
- 0.30,0.40
density: 10
mask:
- ItemMask
restitution: 0.3
friction: 0.2
- type: CP14SharpeningStone
- type: UseDelay
- type: Tool
qualities:
- Slicing
useSound:
path: /Audio/Items/Culinary/chop.ogg
- type: Utensil
types:
- Knife
- type: CP14WallpaperRemover
- type: CP14MeleeSelfDamage
damageToSelf:
types:
Blunt: 1 # 20 hits
- type: Damageable
Slash: 3
Piercing: 3
Cold: 4
- type: Destructible
thresholds:
- trigger:
@@ -134,7 +67,6 @@
acts: ["Destruction"]
- type: TimedDespawn
lifetime: 60
- type: Execution
- type: entity
parent: CP14BaseSpellScrollWater

View File

@@ -39,55 +39,11 @@
- type: entity
parent: CP14ClothingBeltQuiver
id: CP14ClothingBeltQuiverIronArrow
id: CP14ClothingBeltQuiverArrows
categories: [ ForkFiltered ]
suffix: Full. Iron. Arrow
suffix: Filled with arrows
components:
- type: StorageFill
contents:
- id: CP14ModularIronArrow
amount: 16
- type: entity
parent: CP14ClothingBeltQuiver
id: CP14ClothingBeltQuiverCopperArrow
categories: [ ForkFiltered ]
suffix: Full. Copper. Arrow
components:
- type: StorageFill
contents:
- id: CP14ModularCopperArrow
amount: 16
- type: entity
parent: CP14ClothingBeltQuiver
id: CP14ClothingBeltQuiverMithrilArrow
categories: [ ForkFiltered ]
suffix: Full. Mithril. Arrow
components:
- type: StorageFill
contents:
- id: CP14ModularMithrilArrow
amount: 16
- type: entity
parent: CP14ClothingBeltQuiver
id: CP14ClothingBeltQuiverCrossbolt
categories: [ ForkFiltered ]
suffix: Full. Iron. Crossbolt
components:
- type: StorageFill
contents:
- id: CP14CrossboltIron
amount: 32
- type: entity
parent: CP14ClothingBeltQuiver
id: CP14ClothingBeltQuiverBigCrossbolt
categories: [ ForkFiltered ]
suffix: Full. Iron. BigCrossbolt
components:
- type: StorageFill
contents:
- id: CP14BigCrossboltIron
- id: CP14Arrow
amount: 16

View File

@@ -1,82 +0,0 @@
- type: entity
parent: BaseItem
id: CP14ModularAventailBase
abstract: true
categories: [ ForkFiltered ]
components:
- type: Item
size: Small
storedRotation: 0
shape:
- 0,0,0,0
- type: entity
parent: CP14ModularAventailBase
id: CP14ModularAventailIronChainmail
name: iron aventail chainmail
description: A aventail of chainmail to protect the neck from blows and piercing at vital points.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Aventail/chainmail.rsi
layers:
- state: icon
- type: CP14ModularCraftPart
possibleParts:
- AventailIronChainmail
- type: PhysicalComposition
materialComposition:
CP14Iron: 10
- type: entity
parent: CP14ModularAventailBase
id: CP14ModularAventailGoldChainmail
name: golden aventail chainmail
description: A aventail of chainmail to protect the neck from blows and piercing at vital points.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Aventail/chainmail.rsi
layers:
- state: icon
color: "#ffe269"
- type: CP14ModularCraftPart
possibleParts:
- AventailGoldChainmail
- type: PhysicalComposition
materialComposition:
CP14Gold: 10
- type: entity
parent: CP14ModularAventailBase
id: CP14ModularAventailCopperChainmail
name: copper aventail chainmail
description: A aventail of chainmail to protect the neck from blows and piercing at vital points.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Aventail/chainmail.rsi
layers:
- state: icon
color: "#e28f08"
- type: CP14ModularCraftPart
possibleParts:
- AventailCopperChainmail
- type: PhysicalComposition
materialComposition:
CP14Copper: 10
- type: entity
parent: CP14ModularAventailBase
id: CP14ModularAventailMithrilChainmail
name: mithril aventail chainmail
description: A aventail of chainmail to protect the neck from blows and piercing at vital points.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Aventail/chainmail.rsi
layers:
- state: icon
color: "#38f0b3"
- type: CP14ModularCraftPart
possibleParts:
- AventailMithrilChainmail
- type: PhysicalComposition
materialComposition:
CP14Mithril: 10

View File

@@ -1,70 +0,0 @@
- type: entity
parent: CP14ModularAventailBase
id: CP14ModularAventailIronPlate
name: iron aventail plate
description: An iron sheet aventail to protect the neck from blows and piercing in vital places. Uncomfortable.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Aventail/plate.rsi
layers:
- state: icon
- type: CP14ModularCraftPart
possibleParts:
- AventailIronPlate
- type: PhysicalComposition
materialComposition:
CP14Iron: 10
- type: entity
parent: CP14ModularAventailBase
id: CP14ModularAventailGoldPlate
name: golden aventail plate
description: An golden sheet aventail to protect the neck from blows and piercing in vital places. Uncomfortable.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Aventail/plate.rsi
layers:
- state: icon
color: "#ffe269"
- type: CP14ModularCraftPart
possibleParts:
- AventailGoldPlate
- type: PhysicalComposition
materialComposition:
CP14Gold: 10
- type: entity
parent: CP14ModularAventailBase
id: CP14ModularAventailCopperPlate
name: copper aventail plate
description: An copper sheet aventail to protect the neck from blows and piercing in vital places. Uncomfortable.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Aventail/plate.rsi
layers:
- state: icon
color: "#e28f08"
- type: CP14ModularCraftPart
possibleParts:
- AventailCopperPlate
- type: PhysicalComposition
materialComposition:
CP14Copper: 10
- type: entity
parent: CP14ModularAventailBase
id: CP14ModularAventailMithrilPlate
name: mithril aventail plate
description: An mithril sheet aventail to protect the neck from blows and piercing in vital places. Uncomfortable.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Aventail/plate.rsi
layers:
- state: icon
color: "#38f0b3"
- type: CP14ModularCraftPart
possibleParts:
- AventailMithrilPlate
- type: PhysicalComposition
materialComposition:
CP14Mithril: 10

View File

@@ -1,143 +0,0 @@
- type: entity
parent: CP14ClothingHeadBase
id: CP14ModularHeadBase
abstract: true
categories: [ ForkFiltered ]
components:
- type: ClothingSpeedModifier
walkModifier: 1
sprintModifier: 1
- type: CP14LabeledRenaming
- type: CP14ModularCraftStartPoint
startSlots:
- Visor
- Aventail
- type: entity
parent: CP14ModularHeadBase
id: CP14HelmetIronCapellina
name: iron capellina
description: Protects against large object strikes to the head.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Helmet/capellina.rsi
- type: Clothing
sprite: _CP14/Clothing/Head/ModularArmor/Helmet/capellina.rsi
- type: Armor
modifiers:
coefficients:
Blunt: 0.93
Slash: 0.94
Piercing: 0.97
- type: ClothingSpeedModifier
walkModifier: 0.97
sprintModifier: 0.97
- type: CP14ModularCraftStartPoint
startProtoPart: CP14HelmetIronCapellina
- type: CP14MagicManacostModify
globalModifier: 1.05
- type: PhysicalComposition
materialComposition:
CP14Iron: 20
- type: entity
parent: CP14ModularHeadBase
id: CP14HelmetGoldCapellina
name: golden capellina
description: Protects against large object strikes to the head.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Helmet/capellina.rsi
layers:
- state: icon
color: "#ffe269"
- type: Clothing
sprite: _CP14/Clothing/Head/ModularArmor/Helmet/capellina.rsi
clothingVisuals:
head:
- state: equipped-HELMET
color: "#ffe269"
- type: Armor
modifiers:
coefficients:
Blunt: 0.96
Slash: 0.98
Piercing: 0.99
- type: ClothingSpeedModifier
walkModifier: 0.96
sprintModifier: 0.96
- type: CP14ModularCraftStartPoint
startProtoPart: CP14HelmetGoldCapellina
- type: CP14MagicManacostModify
globalModifier: 1.01
- type: PhysicalComposition
materialComposition:
CP14Gold: 20
- type: entity
parent: CP14ModularHeadBase
id: CP14HelmetCopperCapellina
name: copper capellina
description: Protects against large object strikes to the head.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Helmet/capellina.rsi
layers:
- state: icon
color: "#e28f08"
- type: Clothing
sprite: _CP14/Clothing/Head/ModularArmor/Helmet/capellina.rsi
clothingVisuals:
head:
- state: equipped-HELMET
color: "#e28f08"
- type: Armor
modifiers:
coefficients:
Blunt: 0.95
Slash: 0.96
Piercing: 0.98
- type: ClothingSpeedModifier
walkModifier: 0.98
sprintModifier: 0.98
- type: CP14ModularCraftStartPoint
startProtoPart: CP14HelmetCopperCapellina
- type: CP14MagicManacostModify
globalModifier: 1.03
- type: PhysicalComposition
materialComposition:
CP14Copper: 20
- type: entity
parent: CP14ModularHeadBase
id: CP14HelmetMithrilCapellina
name: mithril capellina
description: Protects against large object strikes to the head.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Helmet/capellina.rsi
layers:
- state: icon
color: "#38f0b3"
- type: Clothing
sprite: _CP14/Clothing/Head/ModularArmor/Helmet/capellina.rsi
clothingVisuals:
head:
- state: equipped-HELMET
color: "#38f0b3"
- type: Armor
modifiers:
coefficients:
Blunt: 0.91
Slash: 0.92
Piercing: 0.95
- type: ClothingSpeedModifier
walkModifier: 0.98
sprintModifier: 0.98
- type: CP14ModularCraftStartPoint
startProtoPart: CP14HelmetMithrilCapellina
- type: CP14MagicManacostModify
globalModifier: 0.98
- type: PhysicalComposition
materialComposition:
CP14Mithril: 20

View File

@@ -1,130 +0,0 @@
- type: entity
parent: CP14ModularHeadBase
id: CP14HelmetIronPalmHelmet
name: iron palm helmet
description: A tight fitting helmet that protects your head from impact.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Helmet/palm_helmet.rsi
- type: Clothing
sprite: _CP14/Clothing/Head/ModularArmor/Helmet/palm_helmet.rsi
- type: Armor
modifiers:
coefficients:
Blunt: 0.92
Slash: 0.97
Piercing: 0.95
Heat: 0.98
- type: ClothingSpeedModifier
walkModifier: 0.97
sprintModifier: 0.97
- type: CP14ModularCraftStartPoint
startProtoPart: CP14HelmetIronCapellina
- type: CP14MagicManacostModify
globalModifier: 1.05
- type: PhysicalComposition
materialComposition:
CP14Iron: 20
- type: entity
parent: CP14ModularHeadBase
id: CP14HelmetGoldPalmHelmet
name: golden palm helmet
description: A tight fitting helmet that protects your head from impact.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Helmet/palm_helmet.rsi
layers:
- state: icon
color: "#ffe269"
- type: Clothing
sprite: _CP14/Clothing/Head/ModularArmor/Helmet/palm_helmet.rsi
clothingVisuals:
head:
- state: equipped-HELMET
color: "#ffe269"
- type: Armor
modifiers:
coefficients:
Blunt: 0.95
Slash: 0.96
Piercing: 0.96
- type: ClothingSpeedModifier
walkModifier: 0.96
sprintModifier: 0.96
- type: CP14ModularCraftStartPoint
startProtoPart: CP14HelmetGoldPalmHelmet
- type: CP14MagicManacostModify
globalModifier: 1.01
- type: PhysicalComposition
materialComposition:
CP14Gold: 20
- type: entity
parent: CP14ModularHeadBase
id: CP14HelmetCopperPalmHelmet
name: copper palm helmet
description: A tight fitting helmet that protects your head from impact.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Helmet/palm_helmet.rsi
layers:
- state: icon
color: "#e28f08"
- type: Clothing
sprite: _CP14/Clothing/Head/ModularArmor/Helmet/palm_helmet.rsi
clothingVisuals:
head:
- state: equipped-HELMET
color: "#e28f08"
- type: Armor
modifiers:
coefficients:
Blunt: 0.94
Slash: 0.98
Piercing: 0.96
- type: ClothingSpeedModifier
walkModifier: 0.98
sprintModifier: 0.98
- type: CP14ModularCraftStartPoint
startProtoPart: CP14HelmetCopperPalmHelmet
- type: CP14MagicManacostModify
globalModifier: 1.03
- type: PhysicalComposition
materialComposition:
CP14Copper: 20
- type: entity
parent: CP14ModularHeadBase
id: CP14HelmetMithrilPalmHelmet
name: mithril palm helmet
description: A tight fitting helmet that protects your head from impact.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Helmet/palm_helmet.rsi
layers:
- state: icon
color: "#38f0b3"
- type: Clothing
sprite: _CP14/Clothing/Head/ModularArmor/Helmet/palm_helmet.rsi
clothingVisuals:
head:
- state: equipped-HELMET
color: "#38f0b3"
- type: Armor
modifiers:
coefficients:
Blunt: 0.90
Slash: 0.95
Piercing: 0.93
Heat: 0.98
- type: ClothingSpeedModifier
walkModifier: 0.98
sprintModifier: 0.98
- type: CP14ModularCraftStartPoint
startProtoPart: CP14HelmetMithrilPalmHelmet
- type: CP14MagicManacostModify
globalModifier: 0.98
- type: PhysicalComposition
materialComposition:
CP14Mithril: 20

View File

@@ -1,82 +0,0 @@
- type: entity
parent: BaseItem
id: CP14ModularVisorBase
abstract: true
categories: [ ForkFiltered ]
components:
- type: Item
size: Small
storedRotation: 0
shape:
- 0,0,0,0
- type: entity
parent: CP14ModularVisorBase
id: CP14ModularVisorIronChainmail
name: iron visor chainmail
description: A chainmail visor that protects the face from nasty damage and leaves the wearer looking all that beautiful. And the skin breathes.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Visor/chainmail.rsi
layers:
- state: icon
- type: CP14ModularCraftPart
possibleParts:
- VisorIronChainmail
- type: PhysicalComposition
materialComposition:
CP14Iron: 10
- type: entity
parent: CP14ModularVisorBase
id: CP14ModularVisorGoldChainmail
name: golden visor chainmail
description: A chainmail visor that protects the face from nasty damage and leaves the wearer looking all that beautiful. And the skin breathes.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Visor/chainmail.rsi
layers:
- state: icon
color: "#ffe269"
- type: CP14ModularCraftPart
possibleParts:
- VisorGoldChainmail
- type: PhysicalComposition
materialComposition:
CP14Gold: 10
- type: entity
parent: CP14ModularVisorBase
id: CP14ModularVisorCopperChainmail
name: copper visor chainmail
description: A chainmail visor that protects the face from nasty damage and leaves the wearer looking all that beautiful. And the skin breathes.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Visor/chainmail.rsi
layers:
- state: icon
color: "#e28f08"
- type: CP14ModularCraftPart
possibleParts:
- VisorCopperChainmail
- type: PhysicalComposition
materialComposition:
CP14Copper: 10
- type: entity
parent: CP14ModularVisorBase
id: CP14ModularVisorMithrilChainmail
name: mithril visor chainmail
description: A chainmail visor that protects the face from nasty damage and leaves the wearer looking all that beautiful. And the skin breathes.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Visor/chainmail.rsi
layers:
- state: icon
color: "#38f0b3"
- type: CP14ModularCraftPart
possibleParts:
- VisorMithrilChainmail
- type: PhysicalComposition
materialComposition:
CP14Mithril: 10

View File

@@ -1,70 +0,0 @@
- type: entity
parent: CP14ModularVisorBase
id: CP14ModularVisorIronPlate
name: iron visor plate
description: A iron plate visor that protects the face from nasty damage and leaves the wearer looking all that good-looking. Not as comfortable.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Visor/plate.rsi
layers:
- state: icon
- type: CP14ModularCraftPart
possibleParts:
- VisorIronPlate
- type: PhysicalComposition
materialComposition:
CP14Iron: 10
- type: entity
parent: CP14ModularVisorBase
id: CP14ModularVisorGoldPlate
name: golden visor plate
description: A golden plate visor that protects the face from nasty damage and leaves the wearer looking all that good-looking. Very uncomfortable.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Visor/plate.rsi
layers:
- state: icon
color: "#ffe269"
- type: CP14ModularCraftPart
possibleParts:
- VisorGoldPlate
- type: PhysicalComposition
materialComposition:
CP14Gold: 10
- type: entity
parent: CP14ModularVisorBase
id: CP14ModularVisorCopperPlate
name: copper visor plate
description: A copper plate visor that protects the face from nasty damage and leaves the wearer looking all that good-looking. Not as comfortable.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Visor/plate.rsi
layers:
- state: icon
color: "#e28f08"
- type: CP14ModularCraftPart
possibleParts:
- VisorCopperPlate
- type: PhysicalComposition
materialComposition:
CP14Copper: 10
- type: entity
parent: CP14ModularVisorBase
id: CP14ModularVisorMithrilPlate
name: mithril visor plate
description: A mithril plate visor that protects the face from nasty damage and leaves the wearer looking all that good-looking.
components:
- type: Sprite
sprite: _CP14/Clothing/Head/ModularArmor/Visor/plate.rsi
layers:
- state: icon
color: "#38f0b3"
- type: CP14ModularCraftPart
possibleParts:
- VisorMithrilPlate
- type: PhysicalComposition
materialComposition:
CP14Mithril: 10

View File

@@ -1,119 +0,0 @@
- type: entity
id: CP14ArmorIronCuirassPresets
parent: CP14ArmorIronCuirass
name: full iron cuirass
description: A full iron armour to protect its wearer from other sharp iron.
components:
- type: Sprite
layers:
- state: icon
- sprite: _CP14/Clothing/OuterClothing/ModularArmor/Cuisses/Cuirass/cuirass.rsi
state: icon
- sprite: _CP14/Clothing/OuterClothing/ModularArmor/Greave/Cuirass/cuirass.rsi
state: icon
- type: CP14ModularCraftAutoAssemble
details:
- CP14ModularCuissesIronPlate
- CP14ModularGreaveIronPlate
- type: entity
id: CP14ArmorGoldCuirassPresets
parent: CP14ArmorGoldCuirass
name: full golden cuirass
description: A full armour of purest gold, it is as expensive as it is uncomfortable, it is hard to imagine who would wear it and why.
components:
- type: Sprite
layers:
- state: icon
color: "#ffaf47"
- sprite: _CP14/Clothing/OuterClothing/ModularArmor/Cuisses/Cuirass/cuirass.rsi
state: icon
color: "#ffaf47"
- sprite: _CP14/Clothing/OuterClothing/ModularArmor/Greave/Cuirass/cuirass.rsi
state: icon
color: "#ffaf47"
- type: CP14ModularCraftAutoAssemble
details:
- CP14ModularCuissesGoldPlate
- CP14ModularGreaveGoldPlate
- type: entity
id: CP14ArmorCopperCuirassPresets
parent: CP14ArmorCopperCuirass
name: full copper cuirass
description: Full copper armour, cheap and surly, some even find it more comfortable than iron armour.
components:
- type: Sprite
layers:
- state: icon
color: "#bd712f"
- sprite: _CP14/Clothing/OuterClothing/ModularArmor/Cuisses/Cuirass/cuirass.rsi
state: icon
color: "#bd712f"
- sprite: _CP14/Clothing/OuterClothing/ModularArmor/Greave/Cuirass/cuirass.rsi
state: icon
color: "#bd712f"
- type: CP14ModularCraftAutoAssemble
details:
- CP14ModularCuissesCopperPlate
- CP14ModularGreaveCopperPlate
- type: entity
id: CP14ArmorMithrilCuirassPresets
parent: CP14ArmorMithrilCuirass
name: full mithril cuirass
description: Every adventurer's dream, mithril armour is strong, sturdy and almost unrestrictive to movement. If there's an ideal, this is it.
components:
- type: Sprite
layers:
- state: icon
color: "#45d2a4"
- sprite: _CP14/Clothing/OuterClothing/ModularArmor/Cuisses/Cuirass/cuirass.rsi
state: icon
color: "#45d2a4"
- sprite: _CP14/Clothing/OuterClothing/ModularArmor/Greave/Cuirass/cuirass.rsi
state: icon
color: "#45d2a4"
- type: CP14ModularCraftAutoAssemble
details:
- CP14ModularCuissesMithrilPlate
- CP14ModularGreaveMithrilPlate
- type: entity
id: CP14ArmorIronChainmailPresets
parent: CP14ArmorIronChainmail
name: full iron chainmail
description: Full iron ringed armour, lightweight and has decent protection.
components:
- type: Sprite
layers:
- state: icon
- sprite: _CP14/Clothing/OuterClothing/ModularArmor/Cuisses/Chainmail/chainmail.rsi
state: icon
- sprite: _CP14/Clothing/OuterClothing/ModularArmor/Greave/Chainmail/chainmail.rsi
state: icon
- type: CP14ModularCraftAutoAssemble
details:
- CP14ModularCuissesIronChainmail
- CP14ModularGreaveIronChainmail
- type: entity
id: CP14ArmorMithrilChainmailPresets
parent: CP14ArmorMithrilChainmail
name: full mithril chainmail
description: A full mithril armour that may have been slowly and painstakingly assembled by dwarven smiths. A most valuable piece of work.
components:
- type: Sprite
layers:
- state: icon
color: "#45d2a4"
- sprite: _CP14/Clothing/OuterClothing/ModularArmor/Cuisses/Chainmail/chainmail.rsi
state: icon
color: "#45d2a4"
- sprite: _CP14/Clothing/OuterClothing/ModularArmor/Greave/Chainmail/chainmail.rsi
state: icon
color: "#45d2a4"
- type: CP14ModularCraftAutoAssemble
details:
- CP14ModularCuissesMithrilChainmail
- CP14ModularGreaveMithrilChainmail

View File

@@ -1,152 +0,0 @@
- type: entity
parent: CP14ModularArmorBase
id: CP14ArmorIronChainmail
name: iron chainmail
description: Ringed armour made of many small metal rings.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Chainmail/chainmail.rsi
- type: Clothing
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Chainmail/chainmail.rsi
- type: Armor
modifiers:
coefficients:
Blunt: 0.96
Slash: 0.85
Piercing: 0.96
- type: ClothingSpeedModifier
walkModifier: 0.99
sprintModifier: 0.99
- type: CP14ModularCraftStartPoint
startProtoPart: CP14ArmorIronChainmail
- type: CP14MagicManacostModify
globalModifier: 1.15
- type: PhysicalComposition
materialComposition:
CP14Iron: 40
- type: entity
parent: CP14ModularArmorBase
id: CP14ArmorGoldChainmail
name: golden chainmail
description: Ringed armour made of many small metal rings.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Chainmail/chainmail.rsi
layers:
- state: icon
color: "#ffe269"
- type: Clothing
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Chainmail/chainmail.rsi
clothingVisuals:
outerClothing:
- state: equipped-OUTERCLOTHING
color: "#ffe269"
- type: Item
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Chainmail/chainmail.rsi
inhandVisuals:
left:
- state: inhand-left
color: "#ffe269"
right:
- state: inhand-right
color: "#ffe269"
- type: Armor
modifiers:
coefficients:
Blunt: 0.98
Slash: 0.92
Piercing: 0.99
- type: ClothingSpeedModifier
walkModifier: 0.98
sprintModifier: 0.98
- type: CP14ModularCraftStartPoint
startProtoPart: CP14ArmorGoldChainmail
- type: CP14MagicManacostModify
globalModifier: 1.05
- type: PhysicalComposition
materialComposition:
CP14Gold: 40
- type: entity
parent: CP14ModularArmorBase
id: CP14ArmorCopperChainmail
name: copper chainmail
description: Ringed armour made of many small metal rings.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Chainmail/chainmail.rsi
layers:
- state: icon
color: "#e28f08"
- type: Clothing
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Chainmail/chainmail.rsi
clothingVisuals:
outerClothing:
- state: equipped-OUTERCLOTHING
color: "#e28f08"
- type: Item
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Chainmail/chainmail.rsi
inhandVisuals:
left:
- state: inhand-left
color: "#e28f08"
right:
- state: inhand-right
color: "#e28f08"
- type: Armor
modifiers:
coefficients:
Blunt: 0.98
Slash: 0.90
Piercing: 0.99
- type: CP14ModularCraftStartPoint
startProtoPart: CP14ArmorCopperChainmail
- type: CP14MagicManacostModify
globalModifier: 1.1
- type: PhysicalComposition
materialComposition:
CP14Copper: 40
- type: entity
parent: CP14ModularArmorBase
id: CP14ArmorMithrilChainmail
name: mithril chainmail
description: Ringed armour made of many small metal rings.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Chainmail/chainmail.rsi
layers:
- state: icon
color: "#38f0b3"
- type: Clothing
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Chainmail/chainmail.rsi
clothingVisuals:
outerClothing:
- state: equipped-OUTERCLOTHING
color: "#38f0b3"
- type: Item
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Chainmail/chainmail.rsi
inhandVisuals:
left:
- state: inhand-left
color: "#38f0b3"
right:
- state: inhand-right
color: "#38f0b3"
- type: Armor
modifiers:
coefficients:
Blunt: 0.90
Slash: 0.80
Piercing: 0.95
- type: ClothingSpeedModifier
walkModifier: 0.99
sprintModifier: 0.99
- type: CP14ModularCraftStartPoint
startProtoPart: CP14ArmorMithrilChainmail
- type: CP14MagicManacostModify
globalModifier: 0.96
- type: PhysicalComposition
materialComposition:
CP14Mithril: 40

View File

@@ -1,174 +0,0 @@
- type: entity
parent: CP14ClothingOuterClothingBase
id: CP14ModularArmorBase
abstract: true
categories: [ ForkFiltered ]
components:
- type: ClothingSpeedModifier
walkModifier: 1
sprintModifier: 1
- type: CP14LabeledRenaming
- type: CP14ModularCraftStartPoint
startSlots:
- Cuisses
- Greave
- type: entity
parent: CP14ModularArmorBase
id: CP14ArmorIronCuirass
name: iron cuirass
description: Light armour plate on the chest, little protection, little heaviness.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/cuirass.rsi
- type: Clothing
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/cuirass.rsi
- type: Armor
modifiers:
coefficients:
Blunt: 0.87
Slash: 0.95
Piercing: 0.87
Heat: 0.92
- type: ClothingSpeedModifier
walkModifier: 0.95
sprintModifier: 0.95
- type: CP14ModularCraftStartPoint
startProtoPart: CP14ArmorIronCuirass
- type: CP14MagicManacostModify
globalModifier: 1.2
- type: PhysicalComposition
materialComposition:
CP14Iron: 50
- type: entity
parent: CP14ModularArmorBase
id: CP14ArmorGoldCuirass
name: golden cuirass
description: Light armour plate on the chest, little protection, little heaviness.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/cuirass.rsi
layers:
- state: icon
color: "#ffe269"
- type: Clothing
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/cuirass.rsi
clothingVisuals:
outerClothing:
- state: equipped-OUTERCLOTHING
color: "#ffe269"
- type: Item
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/cuirass.rsi
inhandVisuals:
left:
- state: inhand-left
color: "#ffe269"
right:
- state: inhand-right
color: "#ffe269"
- type: Armor
modifiers:
coefficients:
Blunt: 0.94
Slash: 0.98
Piercing: 0.90
Caustic: 0.90
- type: ClothingSpeedModifier
walkModifier: 0.90
sprintModifier: 0.90
- type: CP14ModularCraftStartPoint
startProtoPart: CP14ArmorGoldCuirass
- type: CP14MagicManacostModify
globalModifier: 1.1
- type: PhysicalComposition
materialComposition:
CP14Gold: 50
- type: entity
parent: CP14ModularArmorBase
id: CP14ArmorCopperCuirass
name: copper cuirass
description: Light armour plate on the chest, little protection, little heaviness.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/cuirass.rsi
layers:
- state: icon
color: "#e28f08"
- type: Clothing
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/cuirass.rsi
clothingVisuals:
outerClothing:
- state: equipped-OUTERCLOTHING
color: "#e28f08"
- type: Item
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/cuirass.rsi
inhandVisuals:
left:
- state: inhand-left
color: "#e28f08"
right:
- state: inhand-right
color: "#e28f08"
- type: Armor
modifiers:
coefficients:
Blunt: 0.92
Slash: 0.99
Piercing: 0.92
Heat: 0.95
- type: ClothingSpeedModifier
walkModifier: 0.98
sprintModifier: 0.98
- type: CP14ModularCraftStartPoint
startProtoPart: CP14ArmorCopperCuirass
- type: CP14MagicManacostModify
globalModifier: 1.15
- type: PhysicalComposition
materialComposition:
CP14Copper: 50
- type: entity
parent: CP14ModularArmorBase
id: CP14ArmorMithrilCuirass
name: mithril cuirass
description: Light armour plate on the chest, little protection, little heaviness.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/cuirass.rsi
layers:
- state: icon
color: "#38f0b3"
- type: Clothing
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/cuirass.rsi
clothingVisuals:
outerClothing:
- state: equipped-OUTERCLOTHING
color: "#38f0b3"
- type: Item
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/cuirass.rsi
inhandVisuals:
left:
- state: inhand-left
color: "#38f0b3"
right:
- state: inhand-right
color: "#38f0b3"
- type: Armor
modifiers:
coefficients:
Blunt: 0.82
Slash: 0.92
Piercing: 0.82
Heat: 0.84
- type: ClothingSpeedModifier
walkModifier: 0.98
sprintModifier: 0.98
- type: CP14ModularCraftStartPoint
startProtoPart: CP14ArmorMithrilCuirass
- type: CP14MagicManacostModify
globalModifier: 0.95
- type: PhysicalComposition
materialComposition:
CP14Mithril: 50

View File

@@ -1,159 +0,0 @@
- type: entity
parent: CP14ModularArmorBase
id: CP14ArmorIronInfantryCuirass
name: iron infantry cuirass
description: The light infantry cuirass, unlike the original, also protects from the back.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/infantry_cuirass.rsi
- type: Clothing
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/infantry_cuirass.rsi
- type: Armor
modifiers:
coefficients:
Blunt: 0.84
Slash: 0.94
Piercing: 0.84
Heat: 0.88
- type: ClothingSpeedModifier
walkModifier: 0.93
sprintModifier: 0.93
- type: CP14ModularCraftStartPoint
startProtoPart: CP14ArmorIronInfantryCuirass
- type: CP14MagicManacostModify
globalModifier: 1.24
- type: PhysicalComposition
materialComposition:
CP14Iron: 60
- type: entity
parent: CP14ModularArmorBase
id: CP14ArmorGoldInfantryCuirass
name: golden infantry cuirass
description: The light infantry cuirass, unlike the original, also protects from the back.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/infantry_cuirass.rsi
layers:
- state: icon
color: "#ffe269"
- type: Clothing
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/infantry_cuirass.rsi
clothingVisuals:
outerClothing:
- state: equipped-OUTERCLOTHING
color: "#ffe269"
- type: Item
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/infantry_cuirass.rsi
inhandVisuals:
left:
- state: inhand-left
color: "#ffe269"
right:
- state: inhand-right
color: "#ffe269"
- type: Armor
modifiers:
coefficients:
Blunt: 0.91
Slash: 0.98
Piercing: 0.88
Caustic: 0.86
- type: ClothingSpeedModifier
walkModifier: 0.88
sprintModifier: 0.88
- type: CP14ModularCraftStartPoint
startProtoPart: CP14ArmorGoldInfantryCuirass
- type: CP14MagicManacostModify
globalModifier: 1.14
- type: PhysicalComposition
materialComposition:
CP14Gold: 60
- type: entity
parent: CP14ModularArmorBase
id: CP14ArmorCopperInfantryCuirass
name: copper infantry cuirass
description: The light infantry cuirass, unlike the original, also protects from the back.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/infantry_cuirass.rsi
layers:
- state: icon
color: "#e28f08"
- type: Clothing
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/infantry_cuirass.rsi
clothingVisuals:
outerClothing:
- state: equipped-OUTERCLOTHING
color: "#e28f08"
- type: Item
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/infantry_cuirass.rsi
inhandVisuals:
left:
- state: inhand-left
color: "#e28f08"
right:
- state: inhand-right
color: "#e28f08"
- type: Armor
modifiers:
coefficients:
Blunt: 0.90
Slash: 0.98
Piercing: 0.90
Heat: 0.92
- type: ClothingSpeedModifier
walkModifier: 0.96
sprintModifier: 0.96
- type: CP14ModularCraftStartPoint
startProtoPart: CP14ArmorCopperInfantryCuirass
- type: CP14MagicManacostModify
globalModifier: 1.18
- type: PhysicalComposition
materialComposition:
CP14Copper: 60
- type: entity
parent: CP14ModularArmorBase
id: CP14ArmorMithrilInfantryCuirass
name: mithril infantry cuirass
description: The light infantry cuirass, unlike the original, also protects from the back.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/infantry_cuirass.rsi
layers:
- state: icon
color: "#38f0b3"
- type: Clothing
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/infantry_cuirass.rsi
clothingVisuals:
outerClothing:
- state: equipped-OUTERCLOTHING
color: "#38f0b3"
- type: Item
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Breastplate/Cuirass/infantry_cuirass.rsi
inhandVisuals:
left:
- state: inhand-left
color: "#38f0b3"
right:
- state: inhand-right
color: "#38f0b3"
- type: Armor
modifiers:
coefficients:
Blunt: 0.80
Slash: 0.89
Piercing: 0.80
Heat: 0.81
- type: ClothingSpeedModifier
walkModifier: 0.96
sprintModifier: 0.96
- type: CP14ModularCraftStartPoint
startProtoPart: CP14ArmorMithrilInfantryCuirass
- type: CP14MagicManacostModify
globalModifier: 0.92
- type: PhysicalComposition
materialComposition:
CP14Mithril: 60

View File

@@ -1,70 +0,0 @@
- type: entity
parent: CP14ModularCuissesBase
id: CP14ModularCuissesIronChainmail
name: iron chainmail cuisses
description: Ringed armour for the upper legs, the weight is virtually imperceptible.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Cuisses/Chainmail/chainmail.rsi
layers:
- state: icon
- type: CP14ModularCraftPart
possibleParts:
- CuissesIronChainmail
- type: PhysicalComposition
materialComposition:
CP14Iron: 10
- type: entity
parent: CP14ModularCuissesBase
id: CP14ModularCuissesGoldChainmail
name: golden chainmail cuisses
description: Ringed armour for the upper legs, the weight is virtually imperceptible.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Cuisses/Chainmail/chainmail.rsi
layers:
- state: icon
color: "#ffe269"
- type: CP14ModularCraftPart
possibleParts:
- CuissesGoldChainmail
- type: PhysicalComposition
materialComposition:
CP14Gold: 10
- type: entity
parent: CP14ModularCuissesBase
id: CP14ModularCuissesCopperChainmail
name: copper chainmail cuisses
description: Ringed armour for the upper legs, the weight is virtually imperceptible.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Cuisses/Chainmail/chainmail.rsi
layers:
- state: icon
color: "#e28f08"
- type: CP14ModularCraftPart
possibleParts:
- CuissesCopperChainmail
- type: PhysicalComposition
materialComposition:
CP14Copper: 10
- type: entity
parent: CP14ModularCuissesBase
id: CP14ModularCuissesMithrilChainmail
name: mithril chainmail cuisses
description: Ringed armour for the upper legs, the weight is virtually imperceptible.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Cuisses/Chainmail/chainmail.rsi
layers:
- state: icon
color: "#38f0b3"
- type: CP14ModularCraftPart
possibleParts:
- CuissesMithrilChainmail
- type: PhysicalComposition
materialComposition:
CP14Mithril: 10

View File

@@ -1,85 +0,0 @@
- type: entity
parent: BaseItem
id: CP14ModularCuissesBase
abstract: true
categories: [ ForkFiltered ]
components:
- type: Item
size: Small
storedRotation: 0
shape:
- 0,0,0,0
- type: CP14ModularCraftStartPoint
startSlots:
- Greave
- type: entity
parent: CP14ModularCuissesBase
id: CP14ModularCuissesIronPlate
name: iron cuisses
description: Protects the top of your legs, it's harder to move in this one, but the extra protection might be worth it.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Cuisses/Cuirass/cuirass.rsi
layers:
- state: icon
- type: CP14ModularCraftPart
possibleParts:
- CuissesIronPlate
- type: PhysicalComposition
materialComposition:
CP14Iron: 20
- type: entity
parent: CP14ModularCuissesBase
id: CP14ModularCuissesGoldPlate
name: golden cuisses
description: Protects the top of the legs, protection is questionable, weight is decent.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Cuisses/Cuirass/cuirass.rsi
layers:
- state: icon
color: "#ffe269"
- type: CP14ModularCraftPart
possibleParts:
- CuissesGoldPlate
- type: PhysicalComposition
materialComposition:
CP14Gold: 20
- type: entity
parent: CP14ModularCuissesBase
id: CP14ModularCuissesCopperPlate
name: copper cuisses
description: Protects the top of your legs, it's harder to move in this one, but the extra protection might be worth it.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Cuisses/Cuirass/cuirass.rsi
layers:
- state: icon
color: "#e28f08"
- type: CP14ModularCraftPart
possibleParts:
- CuissesCopperPlate
- type: PhysicalComposition
materialComposition:
CP14Copper: 20
- type: entity
parent: CP14ModularCuissesBase
id: CP14ModularCuissesMithrilPlate
name: mithril cuisses
description: Protects the top of your legs, it's harder to move in this one, but the extra protection might be worth it.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Cuisses/Cuirass/cuirass.rsi
layers:
- state: icon
color: "#38f0b3"
- type: CP14ModularCraftPart
possibleParts:
- CuissesMithrilPlate
- type: PhysicalComposition
materialComposition:
CP14Mithril: 20

View File

@@ -1,70 +0,0 @@
- type: entity
parent: CP14ModularGreaveBase
id: CP14ModularGreaveIronChainmail
name: iron chainmail greave
description: Ringed greaves, comfortable and even protects a bit.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Greave/Chainmail/chainmail.rsi
layers:
- state: icon
- type: CP14ModularCraftPart
possibleParts:
- GreaveIronChainmail
- type: PhysicalComposition
materialComposition:
CP14Iron: 10
- type: entity
parent: CP14ModularGreaveBase
id: CP14ModularGreaveGoldChainmail
name: golden chainmail greave
description: Ringed greaves, comfortable and even protects a bit.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Greave/Chainmail/chainmail.rsi
layers:
- state: icon
color: "#ffe269"
- type: CP14ModularCraftPart
possibleParts:
- GreaveGoldChainmail
- type: PhysicalComposition
materialComposition:
CP14Gold: 10
- type: entity
parent: CP14ModularGreaveBase
id: CP14ModularGreaveCopperChainmail
name: copper chainmail greave
description: Ringed greaves, comfortable and even protects a bit.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Greave/Chainmail/chainmail.rsi
layers:
- state: icon
color: "#e28f08"
- type: CP14ModularCraftPart
possibleParts:
- GreaveCopperChainmail
- type: PhysicalComposition
materialComposition:
CP14Copper: 10
- type: entity
parent: CP14ModularGreaveBase
id: CP14ModularGreaveMithrilChainmail
name: mithril chainmail greave
description: Ringed greaves, comfortable and even protects a bit.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Greave/Chainmail/chainmail.rsi
layers:
- state: icon
color: "#38f0b3"
- type: CP14ModularCraftPart
possibleParts:
- GreaveMithrilChainmail
- type: PhysicalComposition
materialComposition:
CP14Mithril: 10

View File

@@ -1,82 +0,0 @@
- type: entity
parent: BaseItem
id: CP14ModularGreaveBase
abstract: true
categories: [ ForkFiltered ]
components:
- type: Item
size: Small
storedRotation: 0
shape:
- 0,0,0,0
- type: entity
parent: CP14ModularGreaveBase
id: CP14ModularGreaveIronPlate
name: iron greave
description: Protects the lower part of the legs, also makes it difficult to move, but sometimes extra protection is more important than speed.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Greave/Cuirass/cuirass.rsi
layers:
- state: icon
- type: CP14ModularCraftPart
possibleParts:
- GreaveIronPlate
- type: PhysicalComposition
materialComposition:
CP14Iron: 20
- type: entity
parent: CP14ModularGreaveBase
id: CP14ModularGreaveGoldPlate
name: golden greave
description: Protects the lower part of the legs, also makes it difficult to move, though the use of gold as armour seems questionable.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Greave/Cuirass/cuirass.rsi
layers:
- state: icon
color: "#ffe269"
- type: CP14ModularCraftPart
possibleParts:
- GreaveGoldPlate
- type: PhysicalComposition
materialComposition:
CP14Gold: 20
- type: entity
parent: CP14ModularGreaveBase
id: CP14ModularGreaveCopperPlate
name: copper greave
description: Protects the lower part of the legs, also makes it difficult to move, but sometimes extra protection is more important than speed.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Greave/Cuirass/cuirass.rsi
layers:
- state: icon
color: "#e28f08"
- type: CP14ModularCraftPart
possibleParts:
- GreaveCopperPlate
- type: PhysicalComposition
materialComposition:
CP14Copper: 20
- type: entity
parent: CP14ModularGreaveBase
id: CP14ModularGreaveMithrilPlate
name: mithril greave
description: Protects the lower part of the legs, also makes it difficult to move, but sometimes extra protection is more important than speed.
components:
- type: Sprite
sprite: _CP14/Clothing/OuterClothing/ModularArmor/Greave/Cuirass/cuirass.rsi
layers:
- state: icon
color: "#38f0b3"
- type: CP14ModularCraftPart
possibleParts:
- GreaveMithrilPlate
- type: PhysicalComposition
materialComposition:
CP14Mithril: 20

View File

@@ -17,9 +17,6 @@
- type: ClothingSpeedModifier
walkModifier: 0.98
sprintModifier: 0.98
- type: Construction
graph: CP14BoneArmor
node: cp14bonearmor
- type: PhysicalComposition
materialComposition:
CP14Bone: 120

View File

@@ -1,3 +1,26 @@
- type: entity
id: CP14MeleeCritEffect
categories: [ HideSpawnMenu ]
save: false
components:
- type: Sprite
sprite: _CP14/Effects/sparks.rsi
drawdepth: Effects
noRot: true
layers:
- state: 1
map: [ "random" ]
- type: RandomSprite
available:
- random:
1: ""
2: ""
- type: TimedDespawn
lifetime: 1.5
- type: Tag
tags:
- HideContextMenu
- type: entity
id: CP14DirtEffect
categories: [ HideSpawnMenu ]

View File

@@ -82,6 +82,20 @@
- state: green
- state: guildmaster
- type: entity
id: CP14SpawnPointGuildworker
parent: CP14SpawnPointJobBase
name: guildworker
categories:
- Spawner
components:
- type: SpawnPoint
job_id: CP14GuildWorker
- type: Sprite
layers:
- state: green
- state: guildmaster #TODO
# Artisans
- type: entity

View File

@@ -81,7 +81,7 @@
reagents:
- ReagentId: CP14ChromiumSlime
Quantity: 20
- ReagentId: CP14BasicEffectEmpty
- ReagentId: CP14SideEffectEmpty
Quantity: 30
- type: Destructible
thresholds:

View File

@@ -64,7 +64,6 @@
- id: CP14OreIron1
- id: CP14ScrapCopper
- id: CP14ScrapIron
- id: CP14ModularInlayQuartzElectric
- id: CP14CopperCoin1
weight: 3

View File

@@ -22,7 +22,7 @@
Quantity: 20
- ReagentId: CP14EssenceFire
Quantity: 20
- ReagentId: CP14BasicEffectDamageHeat
- ReagentId: CP14DamageEffectDamageHeat
Quantity: 10
- type: MeleeWeapon
damage:
@@ -66,7 +66,6 @@
- id: CP14ScrapCopper
- id: CP14ScrapIron
- id: CP14FoodMeatLambCutletCooked
- id: CP14ModularInlayQuartzFire
- id: CP14CopperCoin1
- id: CP14Bone1

View File

@@ -80,7 +80,6 @@
- id: CP14ScrapIron
- id: CP14Snowball
- id: CP14CopperCoin1
- id: CP14ModularInlayQuartzWater
- type: entity
id: CP14AreaEntityEffectSlimeFroze

View File

@@ -2,7 +2,7 @@
id: CP14MobMonsterMosquito
parent: [ CP14SimpleMobBase, FlyingMobBase ]
name: bloodworm mosquitoes
description: A bloodthirsty swarm of small mosquitoes just waiting for a soft flesh for a bloody feast.
description: A bloodthirsty swarm of small mosquitoes just waiting for a soft flesh for a bloody feast. They seem to only disperse from heat or cold.
categories: [ ForkFiltered ]
components:
- type: HTN

View File

@@ -104,9 +104,6 @@
spawned:
- id: CP14FoodMeatMonster
amount: 1
- id: CP14ModularInlayQuartzWater
amount: 1
prob: 0.1
- id: CP14ScrapLeather
amount: 1
maxAmount: 3
@@ -139,9 +136,6 @@
spawned:
- id: CP14FoodMeatMonster
amount: 1
- id: CP14ModularInlayQuartzFire
amount: 1
prob: 0.1
- id: CP14ScrapLeather
amount: 1
maxAmount: 3

View File

@@ -22,8 +22,8 @@
skillPoints:
Memory:
max: 0
freeLearnedSkills:
- SwordMastery
#freeLearnedSkills:
#- SwordMastery
- type: CP14SpellStorage
grantAccessToSelf: true
spells:
@@ -42,8 +42,8 @@
skillPoints:
Memory:
max: 0
freeLearnedSkills:
- SwordMastery
#freeLearnedSkills:
#- SwordMastery
- type: CP14SpellStorage
grantAccessToSelf: true
spells:
@@ -63,7 +63,7 @@
Memory:
max: 0
freeLearnedSkills:
- SkimitarMastery
#- SkimitarMastery
- AthleticT1
- AthleticT2
- CP14ActionSpellKick

View File

@@ -23,7 +23,9 @@
Memory:
max: 0
freeLearnedSkills:
- SwordMastery
#- SwordMastery
- AthleticT1
- AthleticT2
- type: CP14SpellStorage
grantAccessToSelf: true
spells:
@@ -42,8 +44,8 @@
skillPoints:
Memory:
max: 0
freeLearnedSkills:
- SwordMastery
#freeLearnedSkills:
#- SwordMastery
- type: CP14SpellStorage
grantAccessToSelf: true
spells:
@@ -63,7 +65,7 @@
Memory:
max: 0
freeLearnedSkills:
- SkimitarMastery
#- SkimitarMastery
- AthleticT1
- AthleticT2
- AthleticT3
@@ -91,7 +93,6 @@
max: 1
freeLearnedSkills:
- HydrosophistryT1
- SwordMastery
learnedSkills:
- CP14ActionSpellIceArrow
@@ -123,7 +124,7 @@
Memory:
max: 4
freeLearnedSkills:
- SwordMastery
#- SwordMastery
- HydrosophistryT1
- HydrosophistryT2
- MetamagicT1

View File

@@ -56,6 +56,14 @@
thresholds:
0: Alive
100: Dead
- type: PassiveDamage # Slight passive regen. Assuming one damage type, comes out to about 2 damage a minute from base.yml.
allowedStates:
- Alive
damageCap: 100
damage:
groups:
Brute: -0.035
Burn: -0.035
- type: SlowOnDamage
speedModifierThresholds:
50: 0.6
@@ -81,8 +89,6 @@
- id: CP14ClothingMaskBoneHornedMask
amount: 1
- type: FloorOcclusion
- type: Puller
needsHands: false
- type: GhostTakeoverAvailable
- type: TypingIndicator
proto: alien

View File

@@ -146,6 +146,14 @@
32:
sprite: _CP14/Mobs/Species/Carcat/displacement.rsi
state: gloves
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Carcat/displacement48.rsi
state: neck
49:
sprite: _CP14/Mobs/Species/Carcat/displacement48.rsi
state: neck
- type: Hands
leftHandDisplacement:
sizeMaps:
@@ -222,6 +230,14 @@
32:
sprite: _CP14/Mobs/Species/Carcat/displacement.rsi
state: gloves
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Carcat/displacement48.rsi
state: neck
49:
sprite: _CP14/Mobs/Species/Carcat/displacement48.rsi
state: neck
- type: Hands
leftHandDisplacement:
sizeMaps:

View File

@@ -27,6 +27,14 @@
32:
sprite: _CP14/Mobs/Species/Dwarf/displacement.rsi
state: pants
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: male_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: male_neck
- type: entity
parent: CP14BaseSpeciesDummy
@@ -48,4 +56,12 @@
32:
sprite: _CP14/Mobs/Species/Dwarf/displacement.rsi
state: pants
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: male_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: male_neck

View File

@@ -66,6 +66,14 @@
32:
sprite: _CP14/Mobs/Species/Elf/displacement.rsi
state: male_shirt
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: female_neck
femaleDisplacements:
outerClothing:
sizeMaps:
@@ -92,6 +100,14 @@
32:
sprite: _CP14/Mobs/Species/Elf/displacement.rsi
state: female_shirt
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: female_neck
- type: entity
parent: CP14BaseSpeciesDummy
@@ -128,6 +144,14 @@
32:
sprite: _CP14/Mobs/Species/Elf/displacement.rsi
state: male_shirt
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: female_neck
femaleDisplacements:
outerClothing:
sizeMaps:
@@ -154,4 +178,12 @@
32:
sprite: _CP14/Mobs/Species/Elf/displacement.rsi
state: female_shirt
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: female_neck

View File

@@ -183,6 +183,14 @@
32:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: shoes
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: neck
48:
sprite: _CP14/Mobs/Species/Goblin/displacement48.rsi
state: neck
- type: entity
parent: CP14BaseSpeciesDummy
@@ -257,3 +265,11 @@
32:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: shoes
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: neck
48:
sprite: _CP14/Mobs/Species/Goblin/displacement48.rsi
state: neck

View File

@@ -18,6 +18,15 @@
max: 5.5 # +0.5 memory point
- type: Inventory
templateId: CP14Human
displacements:
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: male_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: male_neck
femaleDisplacements:
outerClothing:
sizeMaps:
@@ -39,6 +48,14 @@
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_shirt
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: female_neck
- type: entity
parent: CP14BaseSpeciesDummy
@@ -49,6 +66,15 @@
species: CP14Human
- type: Inventory
templateId: CP14Human
displacements:
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: male_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: male_neck
femaleDisplacements:
cloak:
sizeMaps:
@@ -75,3 +101,11 @@
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_shirt
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: female_neck

View File

@@ -99,6 +99,14 @@
32:
sprite: _CP14/Mobs/Species/Elf/displacement.rsi
state: male_shirt
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: female_neck
femaleDisplacements:
outerClothing:
sizeMaps:
@@ -125,6 +133,14 @@
32:
sprite: _CP14/Mobs/Species/Elf/displacement.rsi
state: female_shirt
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: female_neck
- type: entity
parent: CP14BaseSpeciesDummy
@@ -210,6 +226,14 @@
32:
sprite: _CP14/Mobs/Species/Elf/displacement.rsi
state: male_shirt
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: female_neck
femaleDisplacements:
outerClothing:
sizeMaps:
@@ -236,4 +260,12 @@
32:
sprite: _CP14/Mobs/Species/Elf/displacement.rsi
state: female_shirt
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: female_neck

View File

@@ -116,6 +116,15 @@
- type: ContainerContainer
- type: Inventory
templateId: CP14Human
displacements:
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: male_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: male_neck
- type: TransferMindOnGib
- type: GhostTakeoverAvailable
- type: CP14DemiplaneBlockInteractions
@@ -129,3 +138,12 @@
species: CP14Skeleton
- type: Inventory
templateId: CP14Human
displacements:
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: male_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: male_neck

View File

@@ -41,6 +41,15 @@
- PyrokineticT2
- type: Inventory
templateId: CP14Human
displacements:
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: male_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: male_neck
femaleDisplacements:
outerClothing:
sizeMaps:
@@ -67,6 +76,14 @@
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_shirt
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: female_neck
- type: entity
@@ -78,6 +95,15 @@
species: CP14Tiefling
- type: Inventory
templateId: CP14Human
displacements:
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: male_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: male_neck
femaleDisplacements:
cloak:
sizeMaps:
@@ -104,3 +130,11 @@
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_shirt
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: female_neck

View File

@@ -151,6 +151,15 @@
- CP14Mosquito
- type: Inventory
templateId: CP14Partial
displacements:
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: male_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: male_neck
femaleDisplacements:
outerClothing:
sizeMaps:
@@ -172,6 +181,14 @@
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_shirt
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: male_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: male_neck
- type: entity
parent: CP14BaseSpeciesDummy
@@ -182,6 +199,15 @@
species: CP14Zombie
- type: Inventory
templateId: CP14Partial
displacements:
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: male_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: male_neck
femaleDisplacements:
cloak:
sizeMaps:
@@ -208,3 +234,11 @@
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: female_shirt
neck:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: male_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: male_neck

View File

@@ -125,4 +125,15 @@
- type: Sprite
state: guard
- type: CP14TradingContract
faction: Guards
faction: Guards
- type: entity
parent: CP14TradeContractBase
id: CP14TradeContractHelmirChild
description: Trading contract with the "Helmirs childs". Allows you to purchase various weapons and ammunition
suffix: Helmirs childs
components:
- type: Sprite
state: helmir_child
- type: CP14TradingContract
faction: HelmirChild

View File

@@ -18,7 +18,7 @@
- WoodwindInstrument
- type: PhysicalComposition
materialComposition:
CP14WoodenPlanks: 40
CP14WoodenPlanks: 10
- type: entity
parent: BaseHandheldInstrument

View File

@@ -8,9 +8,8 @@
- type: entity
parent: CP14KeyGoldBlank
id: CP14KeyDemiplaneCrystal
suffix: Demiplane Crystal
id: CP14KeyAdventureGuild
suffix: Adventure Guild
components:
- type: CP14Key
autoGenerateShape: DemiplaneCrystal
autoGenerateShape: AdventureGuild

View File

@@ -127,4 +127,13 @@
- type: StorageFill
contents:
- id: CP14KeyGuildmaster
- id: CP14KeyDemiplaneCrystal
- id: CP14KeyAdventureGuild
- type: entity
parent: CP14BaseKeyRing
id: CP14KeyRingGuildworker
suffix: Guildworker
components:
- type: StorageFill
contents:
- id: CP14KeyAdventureGuild

View File

@@ -1,95 +0,0 @@
- type: entity
parent: BaseItem
id: CP14ModularBladeAxeBase
categories: [ ForkFiltered ]
abstract: true
description: A axe blade without a hilt. A blacksmith can use it as a spare part to create a weapon.
components:
- type: Item
storedRotation: 45
shape:
- 0,0,0,0
storedOffset: 0, 5
- type: entity
parent: CP14ModularBladeAxeBase
id: CP14ModularBladeIronAxe
name: iron axe blade
components:
- type: Sprite
sprite: _CP14/Objects/ModularTools/Blade/Axe/metall_axe.rsi
layers:
- state: icon
- type: CP14ModularCraftPart
possibleParts:
- BladeIronAxe
- type: PhysicalComposition
materialComposition:
CP14Iron: 20
- type: entity
parent: CP14ModularBladeAxeBase
id: CP14ModularBladeGoldAxe
name: golden axe blade
components:
- type: Sprite
sprite: _CP14/Objects/ModularTools/Blade/Axe/metall_axe.rsi
layers:
- state: icon
color: "#ffe269"
- type: CP14ModularCraftPart
possibleParts:
- BladeGoldAxe
- type: PhysicalComposition
materialComposition:
CP14Gold: 20
- type: entity
parent: CP14ModularBladeAxeBase
id: CP14ModularBladeCopperAxe
name: copper axe blade
components:
- type: Sprite
sprite: _CP14/Objects/ModularTools/Blade/Axe/metall_axe.rsi
layers:
- state: icon
color: "#e28f08"
- type: CP14ModularCraftPart
possibleParts:
- BladeCopperAxe
- type: PhysicalComposition
materialComposition:
CP14Copper: 20
- type: entity
parent: CP14ModularBladeAxeBase
id: CP14ModularBladeMithrilAxe
name: mithril axe blade
components:
- type: Sprite
sprite: _CP14/Objects/ModularTools/Blade/Axe/metall_axe.rsi
layers:
- state: icon
color: "#38f0b3"
- type: CP14ModularCraftPart
possibleParts:
- BladeMithrilAxe
- type: PhysicalComposition
materialComposition:
CP14Mithril: 20
- type: entity
parent: CP14ModularBladeAxeBase
id: CP14ModularBladeWoodenAxe
name: wooden axe blade
components:
- type: Sprite
sprite: _CP14/Objects/ModularTools/Blade/Axe/wooden_axe.rsi
layers:
- state: icon
- type: CP14ModularCraftPart
possibleParts:
- BladeWoodenAxe
- type: PhysicalComposition
materialComposition:
CP14WoodenPlanks: 20

View File

@@ -1,79 +0,0 @@
- type: entity
parent: BaseItem
id: CP14ModularBladeDaggerBase
categories: [ ForkFiltered ]
abstract: true
description: A dagger blade without a hilt. A blacksmith can use it as a spare part to create a weapon.
components:
- type: Item
storedRotation: 45
shape:
- 0,0,0,0
storedOffset: 0, 5
- type: entity
parent: CP14ModularBladeDaggerBase
id: CP14ModularBladeIronDagger
name: iron dagger blade
components:
- type: Sprite
sprite: _CP14/Objects/ModularTools/Blade/Dagger/metall_dagger.rsi
layers:
- state: icon
- type: CP14ModularCraftPart
possibleParts:
- BladeIronDagger
- type: PhysicalComposition
materialComposition:
CP14Iron: 10
- type: entity
parent: CP14ModularBladeDaggerBase
id: CP14ModularBladeGoldDagger
name: golden dagger blade
components:
- type: Sprite
sprite: _CP14/Objects/ModularTools/Blade/Dagger/metall_dagger.rsi
layers:
- state: icon
color: "#ffe269"
- type: CP14ModularCraftPart
possibleParts:
- BladeGoldDagger
- type: PhysicalComposition
materialComposition:
CP14Gold: 10
- type: entity
parent: CP14ModularBladeDaggerBase
id: CP14ModularBladeCopperDagger
name: copper dagger blade
components:
- type: Sprite
sprite: _CP14/Objects/ModularTools/Blade/Dagger/metall_dagger.rsi
layers:
- state: icon
color: "#e28f08"
- type: CP14ModularCraftPart
possibleParts:
- BladeCopperDagger
- type: PhysicalComposition
materialComposition:
CP14Copper: 10
- type: entity
parent: CP14ModularBladeDaggerBase
id: CP14ModularBladeMithrilDagger
name: mithril dagger blade
components:
- type: Sprite
sprite: _CP14/Objects/ModularTools/Blade/Dagger/metall_dagger.rsi
layers:
- state: icon
color: "#38f0b3"
- type: CP14ModularCraftPart
possibleParts:
- BladeMithrilDagger
- type: PhysicalComposition
materialComposition:
CP14Mithril: 10

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