Compare commits
5 Commits
LocalHelpe
...
ed-15-11-2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
066526807f | ||
|
|
d67f7619c4 | ||
|
|
6e7714d86a | ||
|
|
cb4b92a5f7 | ||
|
|
0ca9ac59f9 |
@@ -170,7 +170,7 @@ namespace Content.Client.Construction.UI
|
||||
if (recipe.Hide)
|
||||
continue;
|
||||
|
||||
if (!recipe.CrystallPunkAllowed) //CrystallPunk clearing recipes
|
||||
if (!recipe.CrystallPunkAllowed) //CrystallEdge clearing recipes
|
||||
continue;
|
||||
|
||||
if (_playerManager.LocalSession == null
|
||||
|
||||
@@ -168,8 +168,8 @@ public sealed partial class GuidebookWindow : FancyWindow, ILinkClickHandler
|
||||
var parent = forcedRoot == null ? null : AddEntry(forcedRoot.Value, null, addedEntries);
|
||||
foreach (var entry in GetSortedEntries(roots))
|
||||
{
|
||||
if (!entry.CrystallPunkAllowed) continue; //CrystallPunk guidebook filter
|
||||
if (entry.LocFilter is not null && entry.LocFilter != ContentLocalizationManager.Culture) continue; //CrystallPunk guidebook filter
|
||||
if (!entry.CrystallPunkAllowed) continue; //CrystallEdge guidebook filter
|
||||
if (entry.LocFilter is not null && entry.LocFilter != ContentLocalizationManager.Culture) continue; //CrystallEdge guidebook filter
|
||||
|
||||
AddEntry(entry.Id, parent, addedEntries);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ public sealed class GuidebookSystem : EntitySystem
|
||||
[Dependency] private readonly RgbLightControllerSystem _rgbLightControllerSystem = default!;
|
||||
[Dependency] private readonly SharedPointLightSystem _pointLightSystem = default!;
|
||||
[Dependency] private readonly TagSystem _tags = default!;
|
||||
[Dependency] private readonly IPrototypeManager _proto = default!; //CrystallPunk guidebook filter
|
||||
[Dependency] private readonly IPrototypeManager _proto = default!; //CrystallEdge guidebook filter
|
||||
|
||||
public event Action<List<ProtoId<GuideEntryPrototype>>,
|
||||
List<ProtoId<GuideEntryPrototype>>?,
|
||||
@@ -47,7 +47,7 @@ public sealed class GuidebookSystem : EntitySystem
|
||||
/// <inheritdoc/>
|
||||
public override void Initialize()
|
||||
{
|
||||
SubscribeLocalEvent<GuideHelpComponent, MapInitEvent>(OnCrystallPunkMapInit); //CrystallPunk guidebook filter
|
||||
SubscribeLocalEvent<GuideHelpComponent, MapInitEvent>(OnCrystallEdgeMapInit); //CrystallEdge guidebook filter
|
||||
SubscribeLocalEvent<GuideHelpComponent, GetVerbsEvent<ExamineVerb>>(OnGetVerbs);
|
||||
SubscribeLocalEvent<GuideHelpComponent, ActivateInWorldEvent>(OnInteract);
|
||||
|
||||
@@ -57,12 +57,12 @@ public sealed class GuidebookSystem : EntitySystem
|
||||
OnGuidebookControlsTestGetAlternateVerbs);
|
||||
}
|
||||
|
||||
//CrystallPunk guidebook filter
|
||||
private void OnCrystallPunkMapInit(Entity<GuideHelpComponent> ent, ref MapInitEvent args)
|
||||
//CrystallEdge guidebook filter
|
||||
private void OnCrystallEdgeMapInit(Entity<GuideHelpComponent> ent, ref MapInitEvent args)
|
||||
{
|
||||
foreach (var guide in ent.Comp.Guides)
|
||||
{
|
||||
var guideProto = _proto.Index<GuideEntryPrototype>(guide);
|
||||
var guideProto = _proto.Index(guide);
|
||||
if (!guideProto.CrystallPunkAllowed) //REMOVE unnecessary guidebook
|
||||
{
|
||||
RemComp<GuideHelpComponent>(ent);
|
||||
@@ -70,7 +70,7 @@ public sealed class GuidebookSystem : EntitySystem
|
||||
}
|
||||
}
|
||||
}
|
||||
//CrystallPunk guidebook filter end
|
||||
//CrystallEdge guidebook filter end
|
||||
|
||||
/// <summary>
|
||||
/// Gets a user entity to use for verbs and examinations. If the player has no attached entity, this will use a
|
||||
|
||||
@@ -20,7 +20,7 @@ public enum WeaponArcAnimation : byte
|
||||
None,
|
||||
Thrust,
|
||||
Slash,
|
||||
//CrystallPunk Melee upgrade
|
||||
//CrystallEdge Melee upgrade
|
||||
CPSlash,
|
||||
CPThrust
|
||||
}
|
||||
|
||||
@@ -43,8 +43,8 @@ public sealed partial class MeleeWeaponSystem
|
||||
return;
|
||||
}
|
||||
|
||||
var length = 1f; //CrystallPunk Melee upgrade
|
||||
var offset = -1f; //CrystallPunk Melee upgrade
|
||||
var length = 1f; //CrystallEdgeMelee upgrade
|
||||
var offset = -1f; //CrystallEdge Melee upgrade
|
||||
|
||||
var spriteRotation = Angle.Zero;
|
||||
if (arcComponent.Animation != WeaponArcAnimation.None
|
||||
@@ -59,8 +59,8 @@ public sealed partial class MeleeWeaponSystem
|
||||
if (meleeWeaponComponent.SwingLeft)
|
||||
angle *= -1;
|
||||
|
||||
length = meleeWeaponComponent.CPAnimationLength; //CrystallPunk Melee upgrade
|
||||
offset = meleeWeaponComponent.CPAnimationOffset; //CrystallPunk Melee upgrade
|
||||
length = meleeWeaponComponent.CPAnimationLength; //CrystallEdge Melee upgrade
|
||||
offset = meleeWeaponComponent.CPAnimationOffset; //CrystallEdge Melee upgrade
|
||||
}
|
||||
sprite.Rotation = localPos.ToWorldAngle();
|
||||
var distance = Math.Clamp(localPos.Length() / 2f, 0.2f, 1f);
|
||||
@@ -92,7 +92,7 @@ public sealed partial class MeleeWeaponSystem
|
||||
if (arcComponent.Fadeout)
|
||||
_animation.Play(animationUid, GetFadeAnimation(sprite, 0f, 0.15f), FadeAnimationKey);
|
||||
break;
|
||||
//CrystallPunk MeleeUpgrade
|
||||
//CrystallEdge MeleeUpgrade
|
||||
case WeaponArcAnimation.CPSlash:
|
||||
track = EnsureComp<TrackUserComponent>(animationUid);
|
||||
track.User = user;
|
||||
@@ -107,7 +107,7 @@ public sealed partial class MeleeWeaponSystem
|
||||
if (arcComponent.Fadeout)
|
||||
_animation.Play(animationUid, GetFadeAnimation(sprite, 0f, 0.15f), FadeAnimationKey);
|
||||
break;
|
||||
//CrystallPunk MeleeUpgrade end
|
||||
//CrystallEdge MeleeUpgrade end
|
||||
}
|
||||
}
|
||||
|
||||
@@ -207,7 +207,7 @@ public sealed partial class MeleeWeaponSystem
|
||||
/// </summary>
|
||||
private Animation GetLungeAnimation(Vector2 direction)
|
||||
{
|
||||
const float length = 0.2f; // 0.1 original, CrystallPunk update
|
||||
const float length = 0.2f; // 0.1 original, CrystallEdge update
|
||||
|
||||
return new Animation
|
||||
{
|
||||
@@ -221,9 +221,9 @@ public sealed partial class MeleeWeaponSystem
|
||||
InterpolationMode = AnimationInterpolationMode.Linear,
|
||||
KeyFrames =
|
||||
{
|
||||
new AnimationTrackProperty.KeyFrame(Vector2.Zero, 0f), //CrystallPunk MeleeUpgrade
|
||||
new AnimationTrackProperty.KeyFrame(direction.Normalized() * 0.15f, length*0.4f), //CrystallPunk MeleeUpgrade
|
||||
new AnimationTrackProperty.KeyFrame(Vector2.Zero, length*0.6f) //CrystallPunk MeleeUpgrade
|
||||
new AnimationTrackProperty.KeyFrame(Vector2.Zero, 0f), //CrystallEdge MeleeUpgrade
|
||||
new AnimationTrackProperty.KeyFrame(direction.Normalized() * 0.15f, length*0.4f), //CrystallEdge MeleeUpgrade
|
||||
new AnimationTrackProperty.KeyFrame(Vector2.Zero, length*0.6f) //CrystallEdge MeleeUpgrade
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -253,7 +253,7 @@ public sealed partial class MeleeWeaponSystem
|
||||
}
|
||||
}
|
||||
|
||||
//CrystallPunk MeleeUpgrade start
|
||||
//CrystallEdge MeleeUpgrade start
|
||||
private Animation CPGetSlashAnimation(SpriteComponent sprite, Angle arc, Angle spriteRotation, float length, float offset = -1f)
|
||||
{
|
||||
var startRotation = sprite.Rotation + (arc * 0.5f);
|
||||
@@ -324,6 +324,6 @@ public sealed partial class MeleeWeaponSystem
|
||||
};
|
||||
}
|
||||
|
||||
//CrystallPunk MeleeUpgrade end
|
||||
//CrystallEdge MeleeUpgrade end
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
using Content.Shared._CP14.MagicSpell;
|
||||
using Content.Shared._CP14.MagicSpell.Components;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Client.Timing;
|
||||
using Robust.Shared.Console;
|
||||
|
||||
namespace Content.Client._CP14.MagicSpell;
|
||||
|
||||
public sealed class CP14ClientMagicVisionSystem : CP14SharedMagicVisionSystem
|
||||
{
|
||||
[Dependency] private readonly IClientGameTiming _timing = default!;
|
||||
|
||||
|
||||
private bool _markersVisible;
|
||||
|
||||
public bool MarkersVisible
|
||||
{
|
||||
get => _markersVisible;
|
||||
set
|
||||
{
|
||||
_markersVisible = value;
|
||||
UpdateVisibilityAll();
|
||||
}
|
||||
}
|
||||
|
||||
private TimeSpan _nextUpdate = TimeSpan.Zero;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<CP14MagicVisionMarkerComponent, ComponentStartup>(OnStartupMarker);
|
||||
}
|
||||
|
||||
private void OnStartupMarker(Entity<CP14MagicVisionMarkerComponent> ent, ref ComponentStartup args)
|
||||
{
|
||||
if (!TryComp<SpriteComponent>(ent, out var sprite))
|
||||
return;
|
||||
|
||||
UpdateVisibility(ent, sprite);
|
||||
}
|
||||
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
base.Update(frameTime);
|
||||
|
||||
if (_timing.CurTime < _nextUpdate)
|
||||
return;
|
||||
|
||||
_nextUpdate = _timing.CurTime + TimeSpan.FromSeconds(0.5f);
|
||||
|
||||
var queryFade = EntityQueryEnumerator<CP14MagicVisionFadeComponent, SpriteComponent>();
|
||||
while (queryFade.MoveNext(out var uid, out var fade, out var sprite))
|
||||
{
|
||||
UpdateOpaque((uid, fade), sprite);
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateVisibility(Entity<CP14MagicVisionMarkerComponent> ent, SpriteComponent sprite)
|
||||
{
|
||||
sprite.Visible = _markersVisible;
|
||||
}
|
||||
|
||||
private void UpdateVisibilityAll()
|
||||
{
|
||||
var query = EntityQueryEnumerator<CP14MagicVisionMarkerComponent, SpriteComponent>();
|
||||
while (query.MoveNext(out var uid, out var marker, out var sprite))
|
||||
{
|
||||
UpdateVisibility((uid, marker), sprite);
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateOpaque(Entity<CP14MagicVisionFadeComponent> ent, SpriteComponent sprite)
|
||||
{
|
||||
var progress = Math.Clamp((_timing.CurTime.TotalSeconds - ent.Comp.SpawnTime.TotalSeconds) / (ent.Comp.EndTime.TotalSeconds - ent.Comp.SpawnTime.TotalSeconds), 0, 1);
|
||||
var alpha = 1 - progress;
|
||||
sprite.Color = Color.White.WithAlpha((float)alpha);
|
||||
}
|
||||
}
|
||||
|
||||
internal sealed class ShowMagicCommand : LocalizedCommands
|
||||
{
|
||||
[Dependency] private readonly IEntitySystemManager _entitySystemManager = default!;
|
||||
|
||||
public override string Command => "cp14_showmagic";
|
||||
|
||||
public override string Help => "Toggle visibility of magic traces";
|
||||
|
||||
public override void Execute(IConsoleShell shell, string argStr, string[] args)
|
||||
{
|
||||
_entitySystemManager.GetEntitySystem<CP14ClientMagicVisionSystem>().MarkersVisible ^= true;
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,7 @@ namespace Content.IntegrationTests.Tests.Access
|
||||
[TestOf(typeof(AccessReaderComponent))]
|
||||
public sealed class AccessReaderTest
|
||||
{
|
||||
/*
|
||||
[Test]
|
||||
public async Task TestProtoTags()
|
||||
{
|
||||
@@ -123,6 +124,6 @@ namespace Content.IntegrationTests.Tests.Access
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
[TestFixture]
|
||||
[TestOf(typeof(AtmosAlarmThreshold))]
|
||||
public sealed class AlarmThresholdTest
|
||||
{
|
||||
{/*
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
- type: alarmThreshold
|
||||
@@ -135,6 +135,6 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
}
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
[TestFixture]
|
||||
[TestOf(typeof(Atmospherics))]
|
||||
public sealed class ConstantsTest
|
||||
{
|
||||
{/*
|
||||
[Test]
|
||||
public async Task TotalGasesTest()
|
||||
{
|
||||
@@ -27,6 +27,6 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
});
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
[TestFixture]
|
||||
[TestOf(typeof(GasMixture))]
|
||||
public sealed class GasMixtureTest
|
||||
{
|
||||
{/*
|
||||
[Test]
|
||||
public async Task TestMerge()
|
||||
{
|
||||
@@ -105,6 +105,6 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace Content.IntegrationTests.Tests.Atmos;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class GridJoinTest
|
||||
{
|
||||
{/*
|
||||
private const string CanisterProtoId = "AirCanister";
|
||||
|
||||
[Test]
|
||||
@@ -49,5 +49,5 @@ public sealed class GridJoinTest
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Content.IntegrationTests.Tests;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class CargoTest
|
||||
{
|
||||
{/*
|
||||
private static readonly HashSet<ProtoId<CargoProductPrototype>> Ignored =
|
||||
[
|
||||
// This is ignored because it is explicitly intended to be able to sell for more than it costs.
|
||||
@@ -265,5 +265,5 @@ public sealed class CargoTest
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Content.IntegrationTests.Tests.Disposal
|
||||
[TestOf(typeof(DisposalEntryComponent))]
|
||||
[TestOf(typeof(DisposalUnitComponent))]
|
||||
public sealed class DisposalUnitTest
|
||||
{
|
||||
{/*
|
||||
[Reflect(false)]
|
||||
private sealed class DisposalUnitTestSystem : EntitySystem
|
||||
{
|
||||
@@ -242,6 +242,6 @@ namespace Content.IntegrationTests.Tests.Disposal
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ using Content.Shared.Wires;
|
||||
namespace Content.IntegrationTests.Tests.EncryptionKeys;
|
||||
|
||||
public sealed class RemoveEncryptionKeys : InteractionTest
|
||||
{
|
||||
{/*
|
||||
[Test]
|
||||
public async Task HeadsetKeys()
|
||||
{
|
||||
@@ -108,5 +108,5 @@ public sealed class RemoveEncryptionKeys : InteractionTest
|
||||
AssertPrototype("TelecomServerFilled");
|
||||
await InteractUsing(Pry);
|
||||
AssertPrototype("MachineFrame");
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace Content.IntegrationTests.Tests.Internals;
|
||||
[TestFixture]
|
||||
[TestOf(typeof(InternalsSystem))]
|
||||
public sealed class AutoInternalsTests
|
||||
{
|
||||
{/*
|
||||
[Test]
|
||||
public async Task TestInternalsAutoActivateInSpaceForStationSpawn()
|
||||
{
|
||||
@@ -81,5 +81,5 @@ public sealed class AutoInternalsTests
|
||||
components:
|
||||
- type: Loadout
|
||||
prototypes: [InternalsDummyGear]
|
||||
";
|
||||
";*/
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ using Robust.Shared.Prototypes;
|
||||
namespace Content.IntegrationTests.Tests;
|
||||
|
||||
public sealed class MachineBoardTest
|
||||
{
|
||||
{/*
|
||||
/// <summary>
|
||||
/// A list of machine boards that can be ignored by this test.
|
||||
/// </summary>
|
||||
@@ -138,5 +138,5 @@ public sealed class MachineBoardTest
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ using Robust.Shared.GameObjects;
|
||||
namespace Content.IntegrationTests.Tests.Payload;
|
||||
|
||||
public sealed class ModularGrenadeTests : InteractionTest
|
||||
{
|
||||
{/*
|
||||
public const string Trigger = "TimerTrigger";
|
||||
public const string Payload = "ExplosivePayload";
|
||||
|
||||
@@ -70,5 +70,5 @@ public sealed class ModularGrenadeTests : InteractionTest
|
||||
// Grenade has exploded.
|
||||
await RunTicks(30);
|
||||
AssertDeleted();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -44,15 +44,15 @@ namespace Content.IntegrationTests.Tests
|
||||
};
|
||||
|
||||
private static readonly string[] GameMaps =
|
||||
{//CrystallPunk Map replacement
|
||||
{//CrystallEdge Map replacement
|
||||
"Dev",
|
||||
"CentComm",
|
||||
"MeteorArena",
|
||||
|
||||
//CrystallPunk maps
|
||||
//CrystallEdge maps
|
||||
"Village",
|
||||
"Island",
|
||||
//CrystallPunk Map replacement end
|
||||
//CrystallEdge Map replacement end
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace Content.IntegrationTests.Tests.Power
|
||||
{
|
||||
[TestFixture]
|
||||
public sealed class PowerTest
|
||||
{
|
||||
{/*
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
- type: entity
|
||||
@@ -1333,7 +1333,7 @@ namespace Content.IntegrationTests.Tests.Power
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace Content.IntegrationTests.Tests;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class ResearchTest
|
||||
{
|
||||
{/*
|
||||
[Test]
|
||||
public async Task DisciplineValidTierPrerequesitesTest()
|
||||
{
|
||||
@@ -117,5 +117,5 @@ public sealed class ResearchTest
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace Content.IntegrationTests.Tests
|
||||
[TestOf(typeof(VendingMachineRestockComponent))]
|
||||
[TestOf(typeof(VendingMachineSystem))]
|
||||
public sealed class VendingMachineRestockTest : EntitySystem
|
||||
{
|
||||
{/*
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
- type: entity
|
||||
@@ -369,7 +369,7 @@ namespace Content.IntegrationTests.Tests
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ namespace Content.Server.Atmos.Components
|
||||
public ProtoId<AlertPrototype> FireAlert = "Fire";
|
||||
|
||||
/// <summary>
|
||||
/// CrystallPunk fireplace fuel
|
||||
/// CrystallEdge fireplace fuel
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public float CP14FireplaceFuel = 10f;
|
||||
|
||||
@@ -317,10 +317,10 @@ namespace Content.Server.Atmos.EntitySystems
|
||||
_ignitionSourceSystem.SetIgnited(uid, false);
|
||||
|
||||
|
||||
//CrystallPunk bonfire moment
|
||||
//CrystallEdge bonfire moment
|
||||
var ev = new OnFireChangedEvent(flammable.OnFire);
|
||||
RaiseLocalEvent(uid, ref ev);
|
||||
//CrystallPunk bonfire moment end
|
||||
//CrystallEdge bonfire moment end
|
||||
|
||||
UpdateAppearance(uid, flammable);
|
||||
}
|
||||
@@ -344,10 +344,10 @@ namespace Content.Server.Atmos.EntitySystems
|
||||
_adminLogger.Add(LogType.Flammable, $"{ToPrettyString(uid):target} set on fire by {ToPrettyString(ignitionSource):actor}");
|
||||
flammable.OnFire = true;
|
||||
|
||||
//CrystallPunk fireplace moment
|
||||
//CrystallEdge fireplace moment
|
||||
var ev = new OnFireChangedEvent(flammable.OnFire);
|
||||
RaiseLocalEvent(uid, ref ev);
|
||||
//CrystallPunk fireplace moment end
|
||||
//CrystallEdge fireplace moment end
|
||||
}
|
||||
|
||||
UpdateAppearance(uid, flammable);
|
||||
|
||||
@@ -14,7 +14,7 @@ public sealed class AmbientSoundSystem : SharedAmbientSoundSystem
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<AmbientOnPoweredComponent, PowerChangedEvent>(HandlePowerChange);
|
||||
SubscribeLocalEvent<AmbientOnPoweredComponent, PowerNetBatterySupplyEvent>(HandlePowerSupply);
|
||||
SubscribeLocalEvent<CP14FlammableAmbientSoundComponent, OnFireChangedEvent>(OnFireChanged); //CrystallPunk bonfire moment
|
||||
SubscribeLocalEvent<CP14FlammableAmbientSoundComponent, OnFireChangedEvent>(OnFireChanged); //CrystallEdge bonfire moment
|
||||
}
|
||||
|
||||
private void HandlePowerSupply(EntityUid uid, AmbientOnPoweredComponent component, ref PowerNetBatterySupplyEvent args)
|
||||
@@ -27,10 +27,10 @@ public sealed class AmbientSoundSystem : SharedAmbientSoundSystem
|
||||
SetAmbience(uid, args.Powered);
|
||||
}
|
||||
|
||||
//CrystallPunk bonfire moment
|
||||
//CrystallEdge bonfire moment
|
||||
private void OnFireChanged(Entity<CP14FlammableAmbientSoundComponent> ent, ref OnFireChangedEvent args)
|
||||
{
|
||||
SetAmbience(ent, args.OnFire);
|
||||
}
|
||||
//CrystallPunk bonfire moment end
|
||||
//CrystallEdge bonfire moment end
|
||||
}
|
||||
|
||||
@@ -37,14 +37,14 @@ namespace Content.Server.Damage.Systems
|
||||
{
|
||||
if (!TerminatingOrDeleted(args.Target))
|
||||
{
|
||||
//CrystallPunk Melee upgrade
|
||||
//CrystallEdge Melee upgrade
|
||||
var damage = component.Damage;
|
||||
|
||||
if (TryComp<CP14SharpenedComponent>(uid, out var sharp))
|
||||
damage *= sharp.Sharpness;
|
||||
|
||||
var dmg = _damageable.TryChangeDamage(args.Target, damage, component.IgnoreResistances, origin: args.Component.Thrower);
|
||||
//CrystallPunk Melee upgrade end
|
||||
//CrystallEdge Melee upgrade end
|
||||
|
||||
// Log damage only for mobs. Useful for when people throw spears at each other, but also avoids log-spam when explosions send glass shards flying.
|
||||
if (dmg != null && HasComp<MobStateComponent>(args.Target))
|
||||
|
||||
@@ -240,7 +240,7 @@ namespace Content.Server.GameTicking
|
||||
_chatSystem.DispatchStationAnnouncement(station,
|
||||
Loc.GetString("latejoin-arrival-announcement-special",
|
||||
("character", MetaData(mob).EntityName),
|
||||
("gender", character.Gender), // CrystallPunk-LastnameGender
|
||||
("gender", character.Gender), // CrystallEdge-LastnameGender
|
||||
("entity", mob),
|
||||
("job", CultureInfo.CurrentCulture.TextInfo.ToTitleCase(jobName))),
|
||||
Loc.GetString("latejoin-arrival-sender"),
|
||||
@@ -252,7 +252,7 @@ namespace Content.Server.GameTicking
|
||||
_chatSystem.DispatchStationAnnouncement(station,
|
||||
Loc.GetString("latejoin-arrival-announcement",
|
||||
("character", MetaData(mob).EntityName),
|
||||
("gender", character.Gender), // CrystallPunk-LastnameGender
|
||||
("gender", character.Gender), // CrystallEdge-LastnameGender
|
||||
("entity", mob),
|
||||
("job", CultureInfo.CurrentCulture.TextInfo.ToTitleCase(jobName))),
|
||||
Loc.GetString("latejoin-arrival-sender"),
|
||||
|
||||
@@ -130,7 +130,6 @@ public sealed partial class DungeonSystem
|
||||
|
||||
var finalRoomRotation = roomTransform.Rotation();
|
||||
|
||||
/*
|
||||
if (clearExisting)
|
||||
{
|
||||
var point1 = Vector2.Transform(-room.Size / 2, roomTransform);
|
||||
@@ -156,7 +155,6 @@ public sealed partial class DungeonSystem
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
var roomCenter = (room.Offset + room.Size / 2f) * grid.TileSize;
|
||||
var tileOffset = -roomCenter + grid.TileSizeHalfVector;
|
||||
@@ -185,14 +183,14 @@ public sealed partial class DungeonSystem
|
||||
_tiles.Add((rounded, tileRef.Tile));
|
||||
|
||||
//CP14 clearExisting variant
|
||||
if (clearExisting)
|
||||
{
|
||||
var anchored = _maps.GetAnchoredEntities((gridUid, grid), rounded);
|
||||
foreach (var ent in anchored)
|
||||
{
|
||||
QueueDel(ent);
|
||||
}
|
||||
}
|
||||
//if (clearExisting)
|
||||
//{
|
||||
// var anchored = _maps.GetAnchoredEntities((gridUid, grid), rounded);
|
||||
// foreach (var ent in anchored)
|
||||
// {
|
||||
// QueueDel(ent);
|
||||
// }
|
||||
//}
|
||||
//CP14 clearExisting variant end
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ public sealed class RandomSpriteSystem: SharedRandomSpriteSystem
|
||||
|
||||
component.Selected.EnsureCapacity(groups.Count);
|
||||
|
||||
Color? previousColor = component.CP14InheritBaseColor; //CrystallPunk
|
||||
Color? previousColor = component.CP14InheritBaseColor; //CrystallEdge
|
||||
|
||||
foreach (var group in groups)
|
||||
{
|
||||
|
||||
@@ -130,12 +130,12 @@ public sealed class TemperatureSystem : EntitySystem
|
||||
public void ChangeHeat(EntityUid uid, float heatAmount, bool ignoreHeatResistance = false,
|
||||
TemperatureComponent? temperature = null)
|
||||
{
|
||||
//CrystallPunk may try place on heater and entity, and solutions
|
||||
//CrystallEdge may try place on heater and entity, and solutions
|
||||
//if (!Resolve(uid, ref temperature, false))
|
||||
// return;
|
||||
if (temperature == null)
|
||||
return;
|
||||
//CrystallPunk may try place on heater and entity, and solutions END
|
||||
//CrystallEdge may try place on heater and entity, and solutions END
|
||||
|
||||
if (!ignoreHeatResistance)
|
||||
{
|
||||
|
||||
24
Content.Server/_CP14/MagicSpell/CP14MagicVisionSystem.cs
Normal file
24
Content.Server/_CP14/MagicSpell/CP14MagicVisionSystem.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using Content.Shared._CP14.MagicSpell;
|
||||
using Content.Shared._CP14.MagicSpell.Components;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
namespace Content.Server._CP14.MagicSpell;
|
||||
|
||||
public sealed class CP14MagicVisionSystem : CP14SharedMagicVisionSystem
|
||||
{
|
||||
[Dependency] private readonly IGameTiming _timing = default!;
|
||||
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
base.Update(frameTime);
|
||||
|
||||
var query = EntityQueryEnumerator<CP14MagicVisionFadeComponent>();
|
||||
while (query.MoveNext(out var uid, out var marker))
|
||||
{
|
||||
if (_timing.CurTime < marker.EndTime)
|
||||
continue;
|
||||
|
||||
QueueDel(uid);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* All right reserved to CrystallPunk.
|
||||
* All right reserved to CrystallEdge.
|
||||
*
|
||||
* BUT this file is sublicensed under MIT License
|
||||
*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* All right reserved to CrystallPunk.
|
||||
* All right reserved to CrystallEdge.
|
||||
*
|
||||
* BUT this file is sublicensed under MIT License
|
||||
*
|
||||
|
||||
@@ -206,7 +206,7 @@ namespace Content.Shared.CCVar
|
||||
/// Prototype to use for map pool.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<string>
|
||||
GameMapPool = CVarDef.Create("game.map_pool", "DefaultMapPool", CVar.SERVERONLY); //CrystallPunk mapPool
|
||||
GameMapPool = CVarDef.Create("game.map_pool", "DefaultMapPool", CVar.SERVERONLY); //CrystallEdge mapPool
|
||||
|
||||
/// <summary>
|
||||
/// The depth of the queue used to calculate which map is next in rotation.
|
||||
@@ -1565,7 +1565,7 @@ namespace Content.Shared.CCVar
|
||||
CVarDef.Create("votekick.ban_duration", 180, CVar.SERVERONLY);
|
||||
|
||||
/// <summary>
|
||||
/// Whether the ghost requirement settings for votekicks should be ignored for the lobby.
|
||||
/// Whether the ghost requirement settings for votekicks should be ignored for the lobby.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<bool> VotekickIgnoreGhostReqInLobby =
|
||||
CVarDef.Create("votekick.ignore_ghost_req_in_lobby", true, CVar.SERVERONLY);
|
||||
|
||||
@@ -78,7 +78,7 @@ public sealed partial class ClothingComponent : Component
|
||||
public TimeSpan StripDelay = TimeSpan.Zero;
|
||||
|
||||
[DataField]
|
||||
public bool BreakOnMove = true; //CrystallPunk weapon unequipping on move
|
||||
public bool BreakOnMove = true; //CrystallEdge weapon unequipping on move
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace Content.Shared.Decals
|
||||
[IdDataField] public string ID { get; } = null!;
|
||||
[DataField("sprite")] public SpriteSpecifier Sprite { get; private set; } = SpriteSpecifier.Invalid;
|
||||
[DataField("tags")] public List<string> Tags = new();
|
||||
[DataField("showMenu")] public bool ShowMenu = false; //CrystallPunk decal filter
|
||||
[DataField("showMenu")] public bool ShowMenu = false; //CrystallEdge decal filter
|
||||
|
||||
/// <summary>
|
||||
/// If the decal is rotated compared to our eye should we snap it to south.
|
||||
|
||||
@@ -47,20 +47,20 @@ namespace Content.Shared.Humanoid
|
||||
switch (gender)
|
||||
{
|
||||
case Gender.Male:
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.MaleFirstNames).Values)); //CrystallPunk name localization
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.MaleFirstNames).Values)); //CrystallEdge name localization
|
||||
case Gender.Female:
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.FemaleFirstNames).Values)); //CrystallPunk name localization
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.FemaleFirstNames).Values)); //CrystallEdge name localization
|
||||
default:
|
||||
if (_random.Prob(0.5f))
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.MaleFirstNames).Values)); //CrystallPunk name localization
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.MaleFirstNames).Values)); //CrystallEdge name localization
|
||||
else
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.FemaleFirstNames).Values)); //CrystallPunk name localization
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.FemaleFirstNames).Values)); //CrystallEdge name localization
|
||||
}
|
||||
}
|
||||
|
||||
public string GetLastName(SpeciesPrototype speciesProto)
|
||||
{
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.LastNames).Values)); //CrystallPunk name localization
|
||||
return Loc.GetString(_random.Pick(_prototypeManager.Index<LocalizedDatasetPrototype>(speciesProto.LastNames).Values)); //CrystallEdge name localization
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,7 +168,7 @@ public abstract partial class InventorySystem
|
||||
target,
|
||||
itemUid)
|
||||
{
|
||||
BreakOnMove = clothing.BreakOnMove, //CrystallPunk weapon unequipping on move
|
||||
BreakOnMove = clothing.BreakOnMove, //CrystallEdge weapon unequipping on move
|
||||
NeedHand = true,
|
||||
};
|
||||
|
||||
@@ -434,7 +434,7 @@ public abstract partial class InventorySystem
|
||||
target,
|
||||
removedItem.Value)
|
||||
{
|
||||
BreakOnMove = clothing.BreakOnMove, //CrystallPunk weapon unequipping on move
|
||||
BreakOnMove = clothing.BreakOnMove, //CrystallEdge weapon unequipping on move
|
||||
NeedHand = true,
|
||||
};
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace Content.Shared.Localizations
|
||||
[Dependency] private readonly ILocalizationManager _loc = default!;
|
||||
|
||||
// If you want to change your codebase's language, do it here.
|
||||
public const string Culture = "ru-RU"; // CrystallPunk-Localization. "ru-RU" or "en-US"
|
||||
public const string Culture = "ru-RU"; // CrystallEdge-Localization. "ru-RU" or "en-US"
|
||||
|
||||
/// <summary>
|
||||
/// Custom format strings used for parsing and displaying minutes:seconds timespans.
|
||||
|
||||
@@ -47,7 +47,7 @@ public sealed class LockSystem : EntitySystem
|
||||
SubscribeLocalEvent<LockComponent, GotEmaggedEvent>(OnEmagged);
|
||||
SubscribeLocalEvent<LockComponent, LockDoAfter>(OnDoAfterLock);
|
||||
SubscribeLocalEvent<LockComponent, UnlockDoAfter>(OnDoAfterUnlock);
|
||||
SubscribeLocalEvent<LockComponent, BeforeDoorOpenedEvent>(OnBeforeDoorOpened); //CrystallPunk Lock System Adapt
|
||||
SubscribeLocalEvent<LockComponent, BeforeDoorOpenedEvent>(OnBeforeDoorOpened); //CrystallEdge Lock System Adapt
|
||||
SubscribeLocalEvent<LockComponent, StorageInteractAttemptEvent>(OnStorageInteractAttempt);
|
||||
|
||||
SubscribeLocalEvent<LockedWiresPanelComponent, LockToggleAttemptEvent>(OnLockToggleAttempt);
|
||||
@@ -68,7 +68,7 @@ public sealed class LockSystem : EntitySystem
|
||||
if (args.Handled || !args.Complex)
|
||||
return;
|
||||
|
||||
//CrystallPunk LockSystem Adapt - we cant unlock\lock objects via direct hand interaction
|
||||
//CrystallEdge LockSystem Adapt - we cant unlock\lock objects via direct hand interaction
|
||||
|
||||
// Only attempt an unlock by default on Activate
|
||||
//if (lockComp.Locked && lockComp.UnlockOnClick)
|
||||
@@ -82,7 +82,7 @@ public sealed class LockSystem : EntitySystem
|
||||
// args.Handled = true;
|
||||
//}
|
||||
|
||||
//CrystallPunk LockSystem Adapt End
|
||||
//CrystallEdge LockSystem Adapt End
|
||||
}
|
||||
private void OnBeforeDoorOpened(EntityUid uid, LockComponent component, BeforeDoorOpenedEvent args)
|
||||
{
|
||||
@@ -275,7 +275,7 @@ public sealed class LockSystem : EntitySystem
|
||||
|
||||
private void AddToggleLockVerb(EntityUid uid, LockComponent component, GetVerbsEvent<AlternativeVerb> args)
|
||||
{
|
||||
//CrystallPunk Lock System Adapt
|
||||
//CrystallEdge Lock System Adapt
|
||||
|
||||
//if (!args.CanAccess || !args.CanInteract)
|
||||
// return;
|
||||
@@ -292,7 +292,7 @@ public sealed class LockSystem : EntitySystem
|
||||
//};
|
||||
//args.Verbs.Add(verb);
|
||||
|
||||
//CrystallPunk Lock System Adapt End
|
||||
//CrystallEdge Lock System Adapt End
|
||||
}
|
||||
|
||||
private void OnEmagged(EntityUid uid, LockComponent component, ref GotEmaggedEvent args)
|
||||
|
||||
@@ -72,7 +72,7 @@ public sealed partial class MeleeWeaponComponent : Component
|
||||
/// </summary>
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public bool ResistanceBypass = false;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Base damage for this weapon. Can be modified via heavy damage or other means.
|
||||
/// </summary>
|
||||
@@ -120,19 +120,19 @@ public sealed partial class MeleeWeaponComponent : Component
|
||||
public bool SwingLeft;
|
||||
|
||||
/// <summary>
|
||||
/// CrystallPunk Melee upgrade. Allows each attack to take turns being either left or right
|
||||
/// CrystallEdge Melee upgrade. Allows each attack to take turns being either left or right
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public bool CPSwingBeverage = true;
|
||||
|
||||
/// <summary>
|
||||
/// CrystallPunk Melee upgrade. Modifier of wide attack animation speed
|
||||
/// CrystallEdge Melee upgrade. Modifier of wide attack animation speed
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public float CPAnimationLength = 0.5f;
|
||||
|
||||
/// <summary>
|
||||
/// CrystallPunk Melee upgrade. how far away from the player the animation should be played.
|
||||
/// CrystallEdge Melee upgrade. how far away from the player the animation should be played.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public float CPAnimationOffset = -1f;
|
||||
|
||||
@@ -398,10 +398,10 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem
|
||||
var ev = new AttemptMeleeEvent();
|
||||
RaiseLocalEvent(weaponUid, ref ev);
|
||||
|
||||
//CrystallPunk melee improvment
|
||||
//CrystallEdge melee improvment
|
||||
if (weapon.CPSwingBeverage)
|
||||
weapon.SwingLeft = !weapon.SwingLeft;
|
||||
//CrystallPunk melee improvment end
|
||||
//CrystallEdge melee improvment end
|
||||
|
||||
if (ev.Cancelled)
|
||||
{
|
||||
|
||||
@@ -4,7 +4,6 @@ using Content.Shared._CP14.MagicEnergy.Components;
|
||||
using Content.Shared._CP14.MagicSpell.Components;
|
||||
using Content.Shared._CP14.MagicSpell.Events;
|
||||
using Content.Shared._CP14.MagicSpell.Spells;
|
||||
using Content.Shared._CP14.MagicSpellStorage;
|
||||
using Content.Shared.Actions;
|
||||
using Content.Shared.DoAfter;
|
||||
using Content.Shared.FixedPoint;
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
using Content.Shared._CP14.MagicSpell.Components;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
namespace Content.Shared._CP14.MagicSpell;
|
||||
|
||||
public abstract class CP14SharedMagicVisionSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly IGameTiming _timing = default!;
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<CP14MagicVisionFadeComponent, ComponentStartup>(OnStartupFade);
|
||||
}
|
||||
|
||||
private void OnStartupFade(Entity<CP14MagicVisionFadeComponent> ent, ref ComponentStartup args)
|
||||
{
|
||||
ent.Comp.SpawnTime = _timing.CurTime;
|
||||
ent.Comp.EndTime = _timing.CurTime + ent.Comp.VisibilityTime;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
namespace Content.Shared._CP14.MagicSpell.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Controls the visibility of this entity to the client, based on the length of time it has existed and the client's ability to see the magic
|
||||
/// </summary>
|
||||
[RegisterComponent, AutoGenerateComponentPause]
|
||||
public sealed partial class CP14MagicVisionFadeComponent : Component
|
||||
{
|
||||
[DataField, AutoPausedField]
|
||||
public TimeSpan SpawnTime = TimeSpan.Zero;
|
||||
|
||||
[DataField, AutoPausedField]
|
||||
public TimeSpan EndTime = TimeSpan.Zero;
|
||||
|
||||
[DataField]
|
||||
public TimeSpan VisibilityTime = TimeSpan.FromMinutes(2f);
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
namespace Content.Shared._CP14.MagicSpell.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Controls the visibility of this entity to the client, based on the length of time it has existed and the client's ability to see the magic
|
||||
/// </summary>
|
||||
[RegisterComponent, AutoGenerateComponentPause]
|
||||
public sealed partial class CP14MagicVisionMarkerComponent : Component
|
||||
{
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
<p align="center"> <img alt="CrystallPunk" width="880" height="440" src="https://github.com/crystallpunk-14/crystall-punk-14/assets/96445749/d1d1907b-aaa4-4491-83da-342de0ac5244" /></p>
|
||||
<p align="center"> <img alt="CrystallEdge" width="880" height="440" src="https://github.com/crystallpunk-14/crystall-punk-14/assets/96445749/d1d1907b-aaa4-4491-83da-342de0ac5244" /></p>
|
||||
|
||||
## Links
|
||||
|
||||
@@ -20,6 +20,6 @@ https://github.com/crystallpunk-14/crystall-punk-14/wiki
|
||||
|
||||
The base code for the original Space Station 14 game is licensed under [MIT License](https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT)
|
||||
|
||||
All CrystallPunk14 codebase contributions [rights reserved](https://github.com/crystallpunk-14/crystall-punk-14/blob/master/LICENSE.TXT).
|
||||
All CrystallEdge codebase contributions [rights reserved](https://github.com/crystallpunk-14/crystall-punk-14/blob/master/LICENSE.TXT).
|
||||
|
||||
Visual and sound assets have their own license, described in the attribution file next to them.
|
||||
|
||||
@@ -10,5 +10,5 @@
|
||||
|
||||
- files: ["arcane_winds.ogg"]
|
||||
license: "CC-BY-SA-3.0"
|
||||
copyright: "'Arcane Winds' by LINK, created for CrystallPunk14"
|
||||
source: "https://github.com/crystallpunk-14/crystall-punk-14"
|
||||
copyright: "'Arcane Winds' by LINK"
|
||||
source: "https://github.com/crystallpunk-14/crystall-punk-14"
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
- !type:CP14SpellSpawnEntityOnTarget
|
||||
spawns:
|
||||
- CP14ImpactEffectCureWounds
|
||||
- CP14MagicTraceCureWounds
|
||||
- !type:CP14SpellApplyEntityEffect
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
@@ -48,13 +49,26 @@
|
||||
sound: !type:SoundPathSpecifier
|
||||
path: /Audio/Magic/rumble.ogg
|
||||
icon:
|
||||
sprite: _CP14/Effects/Magic/spells_icons.rsi
|
||||
sprite: _CP14/Effects/Magic/spells_icons.rsi
|
||||
state: cure_wounds
|
||||
event: !type:CP14DelayedEntityTargetActionEvent
|
||||
cooldown: 10
|
||||
castDelay: 3
|
||||
breakOnMove: false
|
||||
|
||||
|
||||
- type: entity
|
||||
id: CP14MagicTraceCureWounds
|
||||
parent: CP14BaseMagicTrace
|
||||
categories: [ HideSpawnMenu ]
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: cure_wounds
|
||||
shader: unshaded
|
||||
- type: CP14MagicVisionMarker
|
||||
- type: CP14MagicVisionFade
|
||||
visibilityTime: 20
|
||||
|
||||
- type: entity
|
||||
id: CP14RuneCureWounds
|
||||
parent: CP14BaseMagicRune
|
||||
|
||||
@@ -34,4 +34,15 @@
|
||||
- type: Sprite
|
||||
drawdepth: Effects
|
||||
sprite: _CP14/Effects/Magic/cast_impact.rsi
|
||||
noRot: true
|
||||
noRot: true
|
||||
|
||||
- type: entity
|
||||
id: CP14BaseMagicTrace
|
||||
abstract: true
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Effects/Magic/spells_icons.rsi
|
||||
drawdepth: Effects
|
||||
- type: Clickable
|
||||
- type: CP14MagicVisionMarker
|
||||
visibilityTime: 30
|
||||
@@ -2,7 +2,7 @@
|
||||
crystallPunkAllowed: true
|
||||
locFilter: "en-US"
|
||||
id: CP14_EN
|
||||
name: Welcome to CrystallPunk
|
||||
name: Welcome to CrystallEdge
|
||||
text: "/ServerInfo/_CP14/Guidebook_EN/Welcome.xml"
|
||||
children:
|
||||
- CP14_EN_Alchemy
|
||||
@@ -12,8 +12,8 @@
|
||||
crystallPunkAllowed: true
|
||||
locFilter: "ru-RU"
|
||||
id: CP14_RU
|
||||
name: Добро пожаловать в CrystallPunk
|
||||
name: Добро пожаловать в CrystallEdge
|
||||
text: "/ServerInfo/_CP14/Guidebook_RU/Welcome.xml"
|
||||
children:
|
||||
- CP14_RU_Alchemy
|
||||
- CP14_RU_Demiplanes
|
||||
- CP14_RU_Demiplanes
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
- type: Tag
|
||||
id: CP14DemiplanEnterRoom
|
||||
|
||||
- type: entity
|
||||
id: CP14DemiplanEnterRoomMarker
|
||||
categories: [ ForkFiltered ]
|
||||
parent: BaseRoomMarker
|
||||
name: Demiplan enter room marker
|
||||
components:
|
||||
- type: RoomFill
|
||||
clearExisting: true
|
||||
roomWhitelist:
|
||||
tags:
|
||||
- CP14DemiplanEnterRoom
|
||||
#- type: entity
|
||||
# id: CP14DemiplanEnterRoomMarker
|
||||
# categories: [ ForkFiltered ]
|
||||
# parent: BaseRoomMarker
|
||||
# name: Demiplan enter room marker
|
||||
# components:
|
||||
# - type: RoomFill
|
||||
# clearExisting: true
|
||||
# roomWhitelist:
|
||||
# tags:
|
||||
# - CP14DemiplanEnterRoom
|
||||
|
||||
# 7x7
|
||||
- type: dungeonRoom
|
||||
@@ -48,4 +48,4 @@
|
||||
ignoreTile: FloorShuttlePurple
|
||||
offset: 24,0
|
||||
tags:
|
||||
- CP14DemiplanEnterRoom
|
||||
- CP14DemiplanEnterRoom
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<Document>
|
||||
# Welcome to the pre-alpha version of CrystallPunk!
|
||||
# Welcome to the pre-alpha version of CrystallEdge!
|
||||
|
||||
This guide is designed to help you understand how all the mechanics in the game work.
|
||||
Be prepared for a lot of text - CP14 is a very large game with a lot of deep mechanics. We hope you will find these guides interesting.
|
||||
|
||||
## What is CrystallPunk?
|
||||
CrystallPunk is an offshoot of the Space Station 14 game... Eeee, I don't think there's much to write about at this point. We'll fill that in later.
|
||||
## What is CrystallEdge?
|
||||
CrystallEdge is an fork of the Space Station 14 game... Eeee, I don't think there's much to write about at this point. We'll fill that in later.
|
||||
|
||||
## Where to start?
|
||||
No idea, good luck. (This block needs to be rewritten too)
|
||||
</Document>
|
||||
</Document>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<Document>
|
||||
# Добро пожаловать в пре-альфа версию игры CrystallPunk!
|
||||
# Добро пожаловать в пре-альфа версию игры CrystallEdge!
|
||||
|
||||
Данное руководство создано, чтобы помочь вам разобраться в работе всех существующих в игре механик.
|
||||
Будьте готовы, что здесь будет очень много текста - ведь CP14 очень большая игра с большим количеством глубоких механик. Мы надеемся, что вам будет интересно читать эти руководства.
|
||||
Будьте готовы, что здесь будет очень много текста - ведь это очень большая игра с большим количеством глубоких механик. Мы надеемся, что вам будет интересно читать эти руководства.
|
||||
|
||||
## Что такое CrystallPunk?
|
||||
CrystallPunk - ответвление от игры Space Station 14... Иии, я пока считаю что тут не о чем писать. Мы заполним этот блок позже.
|
||||
## Что такое CrystallEdge?
|
||||
CrystallEdge - ответвление от игры Space Station 14... Иии, я пока считаю что тут не о чем писать. Мы заполним этот блок позже.
|
||||
|
||||
## С чего начать?
|
||||
Без понятия, удачи. (Этот блок тоже нужно переписать)
|
||||
</Document>
|
||||
</Document>
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
<Document>
|
||||
# Правила сервера
|
||||
|
||||
Вы находитесь на тестовом сервере CrystallPunk. Если вы попали сюда, значит вы в белом списке.
|
||||
|
||||
Этот сервер предназначен в первую очередь для приоткрытого тестирования наработок. Билд находится в крайне ранней стадии разработки, и на текущий момент не является полноценно играбельным.
|
||||
|
||||
Вы находитесь на тестовом сервере CrystallEdge. Если вы попали сюда, значит вы в белом списке.
|
||||
|
||||
Этот сервер предназначен в первую очередь для приоткрытого тестирования наработок. Билд находится в крайне ранней стадии разработки, и на текущий момент не является полноценно играбельным.
|
||||
Некоторые ключевые механики еще могут быть не реализованы, или работать не правильно.
|
||||
|
||||
|
||||
Это означает, что здесь нет требований с ролевому отыгрышу, и вы можете спокойно общаться внутри игры OOC терминами. Тем не менее, отыгрыш никогда не является чем то лишним, и если вам нравится - на здоровье.
|
||||
|
||||
|
||||
## Основные правила
|
||||
|
||||
|
||||
- Не будьте мудаками.
|
||||
- Не мешайте другим игрокам тестировать механики, если они вас об этом просят.
|
||||
- Сексуальный контент, ERP запрещены.
|
||||
- Обо всех найденных багах сообщайте в дискорд или гитхаб.
|
||||
|
||||
- Обо всех найденных багах сообщайте в дискорд или гитхаб.
|
||||
|
||||
Удачи!
|
||||
</Document>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 45 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 2.2 KiB |
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "Created by jaraten (Discord/Github) for CrystallPunk14",
|
||||
"copyright": "Created by jaraten (Discord/Github)",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "CrystallPunk14, by Pato Grone(discord)",
|
||||
"copyright": "Created by Pato Grone(discord)",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
@@ -23,4 +23,4 @@
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
@@ -23,4 +23,4 @@
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
@@ -23,4 +23,4 @@
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
@@ -23,4 +23,4 @@
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "CrystallPunk14, by hazzloebizhe",
|
||||
"copyright": "Created by hazzloebizhe",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by KBAS5",
|
||||
"copyright": "Created by KBAS5",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by KBAS5",
|
||||
"copyright": "Created by KBAS5",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by KBAS5",
|
||||
"copyright": "Created by KBAS5",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat, recolored by TheShuEd",
|
||||
"copyright": "Created by Prazat, recolored by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat, recolored by TheShuEd",
|
||||
"copyright": "Created by Prazat, recolored by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 48,
|
||||
"y": 48
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 48,
|
||||
"y": 48
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Jaraten",
|
||||
"copyright": "Created by Jaraten",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat, recolored by TheShuEd",
|
||||
"copyright": "Created by Prazat, recolored by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 48,
|
||||
"y": 48
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by KBAS5, edited by TheShuEd",
|
||||
"copyright": "Created by KBAS5, edited by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 48,
|
||||
"y": 48
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 48,
|
||||
"y": 48
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by Prazat",
|
||||
"copyright": "Created by Prazat",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by KBAS5",
|
||||
"copyright": "Created by KBAS5",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by KBAS5",
|
||||
"copyright": "Created by KBAS5",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CLA",
|
||||
"copyright": "CrystallPunk14, by TheShuEd",
|
||||
"copyright": "Created by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user