From 22bb0ae283ec6dd925b1ce938ef1af0834a86789 Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Mon, 29 Jul 2024 21:01:36 +0300 Subject: [PATCH] Energy pilons WIP (#326) * split partial magic system * add debug sprited pilons * some energy pilons interactions * Update CP14MagicEnergySystem.Relay.cs * spupers (#322) * spupers * meta * aura nodes + aura scanners * scanner sprites * maid dress * reverse pilon logic * relay delete, code clean up * delete content * Update basic.yml * Update shirt.yml * Update crystal.yml --------- Co-authored-by: Jaraten <116667537+Jaraten@users.noreply.github.com> --- .../MagicEnergy/CP14MagicEnergySystem.Draw.cs | 94 ++++++++++++++++++ .../CP14MagicEnergySystem.Scanner.cs | 60 +++++++++++ .../MagicEnergy/CP14MagicEnergySystem.cs | 82 ++------------- .../Components/CP14AuraNodeComponent.cs | 50 ++++++++++ .../Components/CP14AuraScannerComponent.cs | 6 ++ .../CP14MagicEnergyPointLightController.cs | 16 --- .../SharedCP14MagicEnergySystem.cs | 2 +- .../Audio/_CP14/Effects/attributions.yml | 7 +- .../Audio/_CP14/Effects/aura_scanner.ogg | Bin 0 -> 32474 bytes .../en-US/_CP14/magicEnergy/magic-energy.ftl | 2 + .../ru-RU/_CP14/magicEnergy/magic-energy.ftl | 2 + .../Weapons/Guns/Projectiles/hitscan.yml | 2 +- .../Entities/Clothing/Cloak/basic_cloak.yml | 13 +++ .../_CP14/Entities/Clothing/Pants/pants.yml | 13 ++- .../_CP14/Entities/Clothing/Shirt/shirt.yml | 2 +- .../_CP14/Entities/Effects/visual_effect.yml | 28 +++++- .../_CP14/Entities/Markers/energyNodes.yml | 13 +++ .../Objects/Specific/Thaumaturgy/crystal.yml | 8 +- .../Objects/Specific/Thaumaturgy/tools.yml | 19 ++++ .../Weapons/Ranged/Projectile/hitscan.yml | 14 +++ .../Structures/Flora/grasshighbush.yml | 6 +- .../Specific/Alchemy/normalizer.yml | 27 +---- .../Thaumaturgy/elemental_reactor.yml | 27 +++++ .../Structures/Specific/Thaumaturgy/pilon.yml | 25 +++++ .../Prototypes/_CP14/Loadouts/Jobs/basic.yml | 26 ++++- .../_CP14/Loadouts/loadout_groups.yml | 5 +- .../Cloak/maid_apron.rsi/equipped-CLOAK.png | Bin 0 -> 334 bytes .../Clothing/Cloak/maid_apron.rsi/icon.png | Bin 0 -> 258 bytes .../Clothing/Cloak/maid_apron.rsi/meta.json | 18 ++++ .../Pants/Dress/black.rsi/equipped-PANTS.png | Bin 0 -> 492 bytes .../Clothing/Pants/Dress/black.rsi/icon.png | Bin 0 -> 353 bytes .../Clothing/Pants/Dress/black.rsi/meta.json | 18 ++++ .../Shirt/Cotton/black.rsi/equipped-SHIRT.png | Bin 876 -> 837 bytes .../Clothing/Shirt/Cotton/black.rsi/icon.png | Bin 441 -> 455 bytes .../Clothing/Shirt/Cotton/black.rsi/meta.json | 2 +- .../Effects/Beams/magic.rsi/impact_magic.png | Bin 0 -> 8512 bytes .../_CP14/Effects/Beams/magic.rsi/magic.png | Bin 0 -> 5814 bytes .../_CP14/Effects/Beams/magic.rsi/magic1.png | Bin 0 -> 4523 bytes .../_CP14/Effects/Beams/magic.rsi/meta.json | 70 +++++++++++++ .../Effects/Beams/magic.rsi/muzzle_magic.png | Bin 0 -> 7722 bytes .../Thaumaturgy/aura_scanner.rsi/icon.png | Bin 0 -> 443 bytes .../aura_scanner.rsi/inhand-left.png | Bin 0 -> 408 bytes .../aura_scanner.rsi/inhand-right.png | Bin 0 -> 426 bytes .../Thaumaturgy/aura_scanner.rsi/meta.json | 22 ++++ .../powerline_gauntlet.rsi/icon.png | Bin 0 -> 819 bytes .../powerline_gauntlet.rsi/inhand-left.png | Bin 0 -> 709 bytes .../powerline_gauntlet.rsi/inhand-right.png | Bin 0 -> 729 bytes .../powerline_gauntlet.rsi/meta.json | 22 ++++ .../Thaumaturgy/Spreader.rsi/crystal.png | Bin 0 -> 298 bytes .../Thaumaturgy/Spreader.rsi/meta.json | 17 ++++ .../Thaumaturgy/Spreader.rsi/spreader.png | Bin 0 -> 682 bytes .../elemental_reactor.rsi/base.png | Bin 0 -> 1289 bytes .../elemental_reactor.rsi/meta.json | 14 +++ 53 files changed, 600 insertions(+), 132 deletions(-) create mode 100644 Content.Server/_CP14/MagicEnergy/CP14MagicEnergySystem.Draw.cs create mode 100644 Content.Server/_CP14/MagicEnergy/CP14MagicEnergySystem.Scanner.cs create mode 100644 Content.Server/_CP14/MagicEnergy/Components/CP14AuraNodeComponent.cs create mode 100644 Content.Server/_CP14/MagicEnergy/Components/CP14AuraScannerComponent.cs delete mode 100644 Content.Shared/_CP14/MagicEnergy/Components/CP14MagicEnergyPointLightController.cs create mode 100644 Resources/Audio/_CP14/Effects/aura_scanner.ogg create mode 100644 Resources/Prototypes/_CP14/Entities/Markers/energyNodes.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/tools.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Objects/Weapons/Ranged/Projectile/hitscan.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Structures/Specific/Thaumaturgy/elemental_reactor.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Structures/Specific/Thaumaturgy/pilon.yml create mode 100644 Resources/Textures/_CP14/Clothing/Cloak/maid_apron.rsi/equipped-CLOAK.png create mode 100644 Resources/Textures/_CP14/Clothing/Cloak/maid_apron.rsi/icon.png create mode 100644 Resources/Textures/_CP14/Clothing/Cloak/maid_apron.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Clothing/Pants/Dress/black.rsi/equipped-PANTS.png create mode 100644 Resources/Textures/_CP14/Clothing/Pants/Dress/black.rsi/icon.png create mode 100644 Resources/Textures/_CP14/Clothing/Pants/Dress/black.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Effects/Beams/magic.rsi/impact_magic.png create mode 100644 Resources/Textures/_CP14/Effects/Beams/magic.rsi/magic.png create mode 100644 Resources/Textures/_CP14/Effects/Beams/magic.rsi/magic1.png create mode 100644 Resources/Textures/_CP14/Effects/Beams/magic.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Effects/Beams/magic.rsi/muzzle_magic.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/aura_scanner.rsi/icon.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/aura_scanner.rsi/inhand-left.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/aura_scanner.rsi/inhand-right.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/aura_scanner.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/powerline_gauntlet.rsi/icon.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/powerline_gauntlet.rsi/inhand-left.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/powerline_gauntlet.rsi/inhand-right.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/powerline_gauntlet.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/crystal.png create mode 100644 Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/spreader.png create mode 100644 Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/elemental_reactor.rsi/base.png create mode 100644 Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/elemental_reactor.rsi/meta.json diff --git a/Content.Server/_CP14/MagicEnergy/CP14MagicEnergySystem.Draw.cs b/Content.Server/_CP14/MagicEnergy/CP14MagicEnergySystem.Draw.cs new file mode 100644 index 0000000000..c4383465a3 --- /dev/null +++ b/Content.Server/_CP14/MagicEnergy/CP14MagicEnergySystem.Draw.cs @@ -0,0 +1,94 @@ +using System.Numerics; +using Content.Server._CP14.MagicEnergy.Components; +using Content.Shared._CP14.MagicEnergy.Components; + +namespace Content.Server._CP14.MagicEnergy; + +public partial class CP14MagicEnergySystem +{ + private void InitializeDraw() + { + SubscribeLocalEvent(OnDrawMapInit); + SubscribeLocalEvent(OnRandomRangeMapInit); + + } + + private void OnRandomRangeMapInit(Entity random, ref MapInitEvent args) + { + if (!TryComp(random, out var draw)) + return; + + draw.Energy = _random.NextFloat(random.Comp.MinDraw, random.Comp.MaxDraw); + draw.Range = _random.NextFloat(random.Comp.MinRange, random.Comp.MaxRange); + } + + private void OnDrawMapInit(Entity ent, ref MapInitEvent args) + { + ent.Comp.NextUpdateTime = _gameTiming.CurTime + TimeSpan.FromSeconds(ent.Comp.Delay); + } + + private void UpdateDraw(float frameTime) + { + UpdateEnergyContainer(); + UpdateEnergyCrystalSlot(); + UpdateEnergyRadiusDraw(); + } + + private void UpdateEnergyContainer() + { + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var draw, out var magicContainer)) + { + if (draw.NextUpdateTime >= _gameTiming.CurTime) + continue; + + draw.NextUpdateTime = _gameTiming.CurTime + TimeSpan.FromSeconds(draw.Delay); + + ChangeEnergy(uid, magicContainer, draw.Energy, safe: draw.Safe); + } + } + + private void UpdateEnergyCrystalSlot() + { + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var draw, out var slot)) + { + if (!draw.Enable) + continue; + + if (draw.NextUpdateTime >= _gameTiming.CurTime) + continue; + + draw.NextUpdateTime = _gameTiming.CurTime + TimeSpan.FromSeconds(draw.Delay); + + if (!_magicSlot.TryGetEnergyCrystalFromSlot(uid, out var energyEnt, out var energyComp)) + continue; + + ChangeEnergy(energyEnt.Value, energyComp, draw.Energy, draw.Safe); + } + } + + private void UpdateEnergyRadiusDraw() + { + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var draw)) + { + if (!draw.Enable) + continue; + + if (draw.NextUpdateTime >= _gameTiming.CurTime) + continue; + + draw.NextUpdateTime = _gameTiming.CurTime + TimeSpan.FromSeconds(draw.Delay); + + var containers = _lookup.GetEntitiesInRange(Transform(uid).Coordinates, draw.Range); + foreach (var container in containers) + { + var distance = Vector2.Distance(_transform.GetWorldPosition(uid), _transform.GetWorldPosition(container)); + var energyDraw = draw.Energy * (1 - distance / draw.Range); + + ChangeEnergy(container, container.Comp, energyDraw, true); + } + } + } +} diff --git a/Content.Server/_CP14/MagicEnergy/CP14MagicEnergySystem.Scanner.cs b/Content.Server/_CP14/MagicEnergy/CP14MagicEnergySystem.Scanner.cs new file mode 100644 index 0000000000..389845d73b --- /dev/null +++ b/Content.Server/_CP14/MagicEnergy/CP14MagicEnergySystem.Scanner.cs @@ -0,0 +1,60 @@ +using System.Numerics; +using Content.Server._CP14.MagicEnergy.Components; +using Content.Shared._CP14.MagicEnergy; +using Content.Shared._CP14.MagicEnergy.Components; +using Content.Shared.Examine; +using Content.Shared.FixedPoint; +using Content.Shared.Interaction.Events; +using Content.Shared.Inventory; + +namespace Content.Server._CP14.MagicEnergy; + +public partial class CP14MagicEnergySystem +{ + + private void InitializeScanner() + { + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnMagicScanAttempt); + SubscribeLocalEvent>((e, c, ev) => OnMagicScanAttempt(e, c, ev.Args)); + + SubscribeLocalEvent(OnAuraScannerUseInHand); + } + + private void OnMagicScanAttempt(EntityUid uid, CP14MagicEnergyScannerComponent component, CP14MagicEnergyScanEvent args) + { + args.CanScan = true; + } + + private void OnExamined(Entity ent, ref ExaminedEvent args) + { + if (!TryComp(ent, out var magicContainer)) + return; + + var scanEvent = new CP14MagicEnergyScanEvent(); + RaiseLocalEvent(args.Examiner, scanEvent); + + if (!scanEvent.CanScan) + return; + + args.PushMarkup(GetEnergyExaminedText(ent, magicContainer)); + } + + private void OnAuraScannerUseInHand(Entity scanner, ref UseInHandEvent args) + { + FixedPoint2 sumDraw = 0f; + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var auraUid, out var node, out var xform)) + { + if (xform.MapUid != Transform(scanner).MapUid) + continue; + + var distance = Vector2.Distance(_transform.GetWorldPosition(auraUid), _transform.GetWorldPosition(scanner)); + if (distance > node.Range) + continue; + + sumDraw += node.Energy * (1 - distance / node.Range); + } + _popup.PopupCoordinates(Loc.GetString("cp14-magic-scanner", ("power", sumDraw)), Transform(scanner).Coordinates, args.User); + } +} diff --git a/Content.Server/_CP14/MagicEnergy/CP14MagicEnergySystem.cs b/Content.Server/_CP14/MagicEnergy/CP14MagicEnergySystem.cs index df2aeb72fb..1b14aafd90 100644 --- a/Content.Server/_CP14/MagicEnergy/CP14MagicEnergySystem.cs +++ b/Content.Server/_CP14/MagicEnergy/CP14MagicEnergySystem.cs @@ -1,93 +1,29 @@ -using Content.Server._CP14.MagicEnergy.Components; +using Content.Server.Popups; using Content.Shared._CP14.MagicEnergy; -using Content.Shared._CP14.MagicEnergy.Components; -using Content.Shared.Examine; -using Content.Shared.Inventory; -using Robust.Server.GameObjects; +using Robust.Shared.Random; using Robust.Shared.Timing; namespace Content.Server._CP14.MagicEnergy; public sealed partial class CP14MagicEnergySystem : SharedCP14MagicEnergySystem { + [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; - [Dependency] private readonly PointLightSystem _light = default!; [Dependency] private readonly CP14MagicEnergyCrystalSlotSystem _magicSlot = default!; + [Dependency] private readonly EntityLookupSystem _lookup = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly PopupSystem _popup = default!; public override void Initialize() { - SubscribeLocalEvent(OnMapInit); - - SubscribeLocalEvent(OnEnergyChange); - - SubscribeLocalEvent(OnExamined); - SubscribeLocalEvent(OnMagicScanAttempt); - SubscribeLocalEvent>((e, c, ev) => OnMagicScanAttempt(e, c, ev.Args)); - } - - private void OnEnergyChange(Entity ent, ref CP14MagicEnergyLevelChangeEvent args) - { - if (!TryComp(ent, out var light)) - return; - - var lightEnergy = MathHelper.Lerp(ent.Comp.MinEnergy, ent.Comp.MaxEnergy, (float)(args.NewValue / args.MaxValue)); - _light.SetEnergy(ent, lightEnergy, light); - } - - private void OnMapInit(Entity ent, ref MapInitEvent args) - { - ent.Comp.NextUpdateTime = _gameTiming.CurTime + TimeSpan.FromSeconds(ent.Comp.Delay); - } - - private void OnMagicScanAttempt(EntityUid uid, CP14MagicEnergyScannerComponent component, CP14MagicEnergyScanEvent args) - { - args.CanScan = true; - } - - private void OnExamined(Entity ent, ref ExaminedEvent args) - { - if (!TryComp(ent, out var magicContainer)) - return; - - var scanEvent = new CP14MagicEnergyScanEvent(); - RaiseLocalEvent(args.Examiner, scanEvent); - - if (!scanEvent.CanScan) - return; - - args.PushMarkup(GetEnergyExaminedText(ent, magicContainer)); + InitializeDraw(); + InitializeScanner(); } public override void Update(float frameTime) { base.Update(frameTime); - var query = EntityQueryEnumerator(); - while (query.MoveNext(out var uid, out var draw, out var magicContainer)) - { - if (draw.NextUpdateTime >= _gameTiming.CurTime) - continue; - - draw.NextUpdateTime = _gameTiming.CurTime + TimeSpan.FromSeconds(draw.Delay); - - ChangeEnergy(uid, magicContainer, draw.Energy, safe: draw.Safe); - } - - var query2 = EntityQueryEnumerator(); - while (query2.MoveNext(out var uid, out var draw, out var slot)) - { - if (!draw.Enable) - continue; - - if (draw.NextUpdateTime >= _gameTiming.CurTime) - continue; - - draw.NextUpdateTime = _gameTiming.CurTime + TimeSpan.FromSeconds(draw.Delay); - - if (!_magicSlot.TryGetEnergyCrystalFromSlot(uid, out var energyEnt, out var energyComp)) - continue; - - ChangeEnergy(energyEnt.Value, energyComp, draw.Energy, draw.Safe); - } + UpdateDraw(frameTime); } } diff --git a/Content.Server/_CP14/MagicEnergy/Components/CP14AuraNodeComponent.cs b/Content.Server/_CP14/MagicEnergy/Components/CP14AuraNodeComponent.cs new file mode 100644 index 0000000000..bce76f7c8c --- /dev/null +++ b/Content.Server/_CP14/MagicEnergy/Components/CP14AuraNodeComponent.cs @@ -0,0 +1,50 @@ +using Content.Shared.FixedPoint; + +namespace Content.Server._CP14.MagicEnergy.Components; + +[RegisterComponent, Access(typeof(CP14MagicEnergySystem))] +public sealed partial class CP14AuraNodeComponent : Component +{ + [DataField] + public bool Enable = true; + + [DataField] + public FixedPoint2 Energy = 1f; + + [DataField] + public float Range = 10f; + + /// + /// If not safe, restoring or drawing power across boundaries call dangerous events, that may destroy crystals + /// + [DataField] + public bool Safe = true; + + /// + /// how often objects will try to change magic energy. In Seconds + /// + [DataField] + public float Delay = 5f; + + /// + /// the time of the next magic energy change + /// + [DataField] + public TimeSpan NextUpdateTime { get; set; } = TimeSpan.Zero; +} + +[RegisterComponent, Access(typeof(CP14MagicEnergySystem))] +public sealed partial class CP14RandomAuraNodeComponent : Component +{ + [DataField] + public float MinDraw = -2f; + + [DataField] + public float MaxDraw = 2f; + + [DataField] + public float MinRange = 5f; + + [DataField] + public float MaxRange = 10f; +} diff --git a/Content.Server/_CP14/MagicEnergy/Components/CP14AuraScannerComponent.cs b/Content.Server/_CP14/MagicEnergy/Components/CP14AuraScannerComponent.cs new file mode 100644 index 0000000000..742a8b953d --- /dev/null +++ b/Content.Server/_CP14/MagicEnergy/Components/CP14AuraScannerComponent.cs @@ -0,0 +1,6 @@ +namespace Content.Server._CP14.MagicEnergy.Components; + +[RegisterComponent, Access(typeof(CP14MagicEnergySystem))] +public sealed partial class CP14AuraScannerComponent : Component +{ +} diff --git a/Content.Shared/_CP14/MagicEnergy/Components/CP14MagicEnergyPointLightController.cs b/Content.Shared/_CP14/MagicEnergy/Components/CP14MagicEnergyPointLightController.cs deleted file mode 100644 index 85bf64e9e2..0000000000 --- a/Content.Shared/_CP14/MagicEnergy/Components/CP14MagicEnergyPointLightController.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Content.Shared.Inventory; - -namespace Content.Shared._CP14.MagicEnergy.Components; - -/// -/// Controls the strength of the PointLight component, depending on the amount of mana in the object -/// -[RegisterComponent, Access(typeof(SharedCP14MagicEnergySystem))] -public sealed partial class CP14MagicEnergyPointLightControllerComponent : Component -{ - [DataField] - public float MaxEnergy = 1f; - - [DataField] - public float MinEnergy = 0f; -} diff --git a/Content.Shared/_CP14/MagicEnergy/SharedCP14MagicEnergySystem.cs b/Content.Shared/_CP14/MagicEnergy/SharedCP14MagicEnergySystem.cs index 08a75a2e06..964159c013 100644 --- a/Content.Shared/_CP14/MagicEnergy/SharedCP14MagicEnergySystem.cs +++ b/Content.Shared/_CP14/MagicEnergy/SharedCP14MagicEnergySystem.cs @@ -31,7 +31,7 @@ public partial class SharedCP14MagicEnergySystem : EntitySystem public string GetEnergyExaminedText(EntityUid uid, CP14MagicEnergyContainerComponent ent) { - var power = (int)((ent.Energy / ent.MaxEnergy) * 100); + var power = (int)(ent.Energy / ent.MaxEnergy * 100); var color = "#3fc488"; if (power < 66) diff --git a/Resources/Audio/_CP14/Effects/attributions.yml b/Resources/Audio/_CP14/Effects/attributions.yml index 7222c7e955..40444ae3f7 100644 --- a/Resources/Audio/_CP14/Effects/attributions.yml +++ b/Resources/Audio/_CP14/Effects/attributions.yml @@ -16,4 +16,9 @@ - files: ["thud.ogg"] license: "CC0-1.0" copyright: 'BMacZero of Freesound.org' - source: "https://freesound.org/people/BMacZero/sounds/96138/" \ No newline at end of file + source: "https://freesound.org/people/BMacZero/sounds/96138/" + +- files: ["aura_scanner.ogg"] + license: "CC0-1.0" + copyright: 'Breviceps of Freesound.org' + source: "https://freesound.org/people/Breviceps/sounds/493162/" \ No newline at end of file diff --git a/Resources/Audio/_CP14/Effects/aura_scanner.ogg b/Resources/Audio/_CP14/Effects/aura_scanner.ogg new file mode 100644 index 0000000000000000000000000000000000000000..abcdfbe7a3b4385291f018a4012434c421be02d1 GIT binary patch literal 32474 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 literal 0 HcmV?d00001 diff --git a/Resources/Locale/en-US/_CP14/magicEnergy/magic-energy.ftl b/Resources/Locale/en-US/_CP14/magicEnergy/magic-energy.ftl index d00edb6038..bef1cb2c38 100644 --- a/Resources/Locale/en-US/_CP14/magicEnergy/magic-energy.ftl +++ b/Resources/Locale/en-US/_CP14/magicEnergy/magic-energy.ftl @@ -5,3 +5,5 @@ cp14-magic-energy-crystal-slot-name = Energy crystal cp14-magic-energy-no-crystal = No energy crystal! cp14-magic-energy-insufficient = Not enough energy! cp14-magic-energy-insufficient-unsafe = Crystal cracks from lack of energy! + +cp14-magic-scanner = Polarity of ley lines: {$power} diff --git a/Resources/Locale/ru-RU/_CP14/magicEnergy/magic-energy.ftl b/Resources/Locale/ru-RU/_CP14/magicEnergy/magic-energy.ftl index b9fb9344e8..0ec10efb30 100644 --- a/Resources/Locale/ru-RU/_CP14/magicEnergy/magic-energy.ftl +++ b/Resources/Locale/ru-RU/_CP14/magicEnergy/magic-energy.ftl @@ -5,3 +5,5 @@ cp14-magic-energy-crystal-slot-name = Энергокристалл cp14-magic-energy-no-crystal = Отсутствует энергокристалл! cp14-magic-energy-insufficient = Не достаточно энергии! cp14-magic-energy-insufficient-unsafe = Кристалл трескается от нехватки энергии! + +cp14-magic-scanner = Полярность лей-линий: {$power} diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml index 89db3240be..722187011a 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml @@ -4,7 +4,7 @@ categories: [ HideSpawnMenu ] components: - type: TimedDespawn - lifetime: 2.0 + lifetime: 7.0 - type: Sprite drawdepth: Effects layers: diff --git a/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/basic_cloak.yml b/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/basic_cloak.yml index 42c292cf81..6e613b0c00 100644 --- a/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/basic_cloak.yml +++ b/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/basic_cloak.yml @@ -42,6 +42,19 @@ - type: Clothing sprite: _CP14/Clothing/Cloak/blacksmith_apron.rsi +- type: entity + parent: + - CP14ClothingCloakBase + - ClothingSlotBase + id: CP14ClothingCloakMaidArpon + name: maid's apron + description: Cleanliness, orderliness and obedience are the main traits of a good maid. + components: + - type: Sprite + sprite: _CP14/Clothing/Cloak/maid_apron.rsi + - type: Clothing + sprite: _CP14/Clothing/Cloak/maid_apron.rsi + - type: entity parent: CP14ClothingCloakBase id: CP14ClothingCloakFurcapeBlack diff --git a/Resources/Prototypes/_CP14/Entities/Clothing/Pants/pants.yml b/Resources/Prototypes/_CP14/Entities/Clothing/Pants/pants.yml index 9b17f39f5f..5777d8ad0d 100644 --- a/Resources/Prototypes/_CP14/Entities/Clothing/Pants/pants.yml +++ b/Resources/Prototypes/_CP14/Entities/Clothing/Pants/pants.yml @@ -53,4 +53,15 @@ - type: Sprite sprite: _CP14/Clothing/Pants/loincloth.rsi - type: Clothing - sprite: _CP14/Clothing/Pants/loincloth.rsi \ No newline at end of file + sprite: _CP14/Clothing/Pants/loincloth.rsi + +- type: entity + parent: CP14ClothingPantsBase + id: CP14ClothingDressBlack + name: black dress + description: A roomy, feminine skirt + components: + - type: Sprite + sprite: _CP14/Clothing/Pants/Dress/black.rsi + - type: Clothing + sprite: _CP14/Clothing/Pants/Dress/black.rsi \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Clothing/Shirt/shirt.yml b/Resources/Prototypes/_CP14/Entities/Clothing/Shirt/shirt.yml index 1e89cc6ae7..e2221fdae6 100644 --- a/Resources/Prototypes/_CP14/Entities/Clothing/Shirt/shirt.yml +++ b/Resources/Prototypes/_CP14/Entities/Clothing/Shirt/shirt.yml @@ -86,4 +86,4 @@ - type: Sprite sprite: _CP14/Clothing/Shirt/steampunk.rsi - type: Clothing - sprite: _CP14/Clothing/Shirt/steampunk.rsi \ No newline at end of file + sprite: _CP14/Clothing/Shirt/steampunk.rsi diff --git a/Resources/Prototypes/_CP14/Entities/Effects/visual_effect.yml b/Resources/Prototypes/_CP14/Entities/Effects/visual_effect.yml index 9a8ee691d7..2cda9c5fa7 100644 --- a/Resources/Prototypes/_CP14/Entities/Effects/visual_effect.yml +++ b/Resources/Prototypes/_CP14/Entities/Effects/visual_effect.yml @@ -20,4 +20,30 @@ available: - random: dirt1: "" - dirt2: "" \ No newline at end of file + dirt2: "" + +- type: entity + id: CP14MagicBeam1 + noSpawn: true + components: + - type: Sprite + sprite: /Textures/_CP14/Effects/Beams/magic.rsi + drawdepth: Effects + layers: + - state: magic1 + shader: unshaded + - type: Physics + canCollide: false + - type: PointLight + enabled: true + color: "#4080FF" + radius: 3.5 + softness: 1 + autoRot: true + castShadows: false + - type: Beam + - type: TimedDespawn + lifetime: 3 + - type: Tag + tags: + - HideContextMenu \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Markers/energyNodes.yml b/Resources/Prototypes/_CP14/Entities/Markers/energyNodes.yml new file mode 100644 index 0000000000..b8955a6a95 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Markers/energyNodes.yml @@ -0,0 +1,13 @@ +- type: entity + id: CP14AuraNodeBase + parent: MarkerBase + name: aura node + description: An energy node that affects the elemental energy in the surrounding space. + components: + - type: Sprite + layers: + - state: green + - sprite: Mobs/Animals/mouse.rsi + state: icon-2 #TODO lol + - type: CP14AuraNode + - type: CP14RandomAuraNode \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/crystal.yml b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/crystal.yml index 2924a66380..334e000b39 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/crystal.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/crystal.yml @@ -2,7 +2,7 @@ id: CP14EnergyCrystalBase parent: BaseItem abstract: true - description: Processed quartz crystals are excellent repositories of magical energy. And special connectors allow you to conveniently insert them into magical devices, turning them into energy batteries. + description: Shards of one of the Khyber dragon, used to bind and control elemental energy. components: - type: CP14MagicEnergyCrystal - type: Item @@ -11,13 +11,11 @@ sprite: _CP14/Objects/Specific/Thaumaturgy/crystal.rsi - type: CP14MagicEnergyContainer - type: CP14MagicEnergyExaminable - - type: CP14MagicEnergyPointLightController - - type: entity id: CP14EnergyCrystalSmall parent: CP14EnergyCrystalBase - name: small energy crystal + name: small Khyber shard suffix: Full components: - type: Sprite @@ -48,7 +46,7 @@ - type: entity id: CP14EnergyCrystalMedium parent: CP14EnergyCrystalBase - name: energy crystal + name: Khyber shard suffix: Full components: - type: PointLight diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/tools.yml b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/tools.yml new file mode 100644 index 0000000000..e505dca6a2 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/tools.yml @@ -0,0 +1,19 @@ +- type: entity + id: CP14AuraScanner + parent: BaseItem + name: aura scanner + description: Scans the polarity of the elemental energy flows in this place. + components: + - type: Sprite + sprite: _CP14/Objects/Specific/Thaumaturgy/aura_scanner.rsi + state: icon + - type: Item + sprite: _CP14/Objects/Specific/Thaumaturgy/aura_scanner.rsi + - type: CP14AuraScanner + - type: EmitSoundOnUse + sound: + path: /Audio/_CP14/Effects/aura_scanner.ogg + params: + variation: 0.03 + - type: UseDelay + delay: 4 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Ranged/Projectile/hitscan.yml b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Ranged/Projectile/hitscan.yml new file mode 100644 index 0000000000..2cd08d8ab1 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Ranged/Projectile/hitscan.yml @@ -0,0 +1,14 @@ +- type: hitscan + id: CP14Magic + damage: + types: + Heat: 0 + muzzleFlash: + sprite: _CP14/Effects/Beams/magic.rsi + state: muzzle_magic + travelFlash: + sprite: _CP14/Effects/Beams/magic.rsi + state: magic + impactFlash: + sprite: _CP14/Effects/Beams/magic.rsi + state: impact_magic \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Flora/grasshighbush.yml b/Resources/Prototypes/_CP14/Entities/Structures/Flora/grasshighbush.yml index a87f79b41c..6af340e513 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Flora/grasshighbush.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Flora/grasshighbush.yml @@ -31,7 +31,7 @@ hard: false shape: !type:PhysShapeAabb - bounds: "-0.35,-0.4,0.35,0.4" + bounds: "-0.35,-0.35,0.35,0.35" density: 1000 layer: - WallLayer @@ -69,10 +69,6 @@ # CP14WoodLog: # min: 1 # max: 3 - - type: Material - - type: PhysicalComposition # точно ли это нужно? - materialComposition: - CP14WoodenPlanks: 100 - type: SpeedModifierContacts walkSpeedModifier: 0.5 sprintSpeedModifier: 0.5 diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/normalizer.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/normalizer.yml index 6f7f5f6b6f..024bd32b65 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/normalizer.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/normalizer.yml @@ -1,6 +1,8 @@ - type: entity id: CP14AlchemyNormalizer - parent: BaseStructureDynamic + parent: + - BaseStructureDynamic + - CP14BaseCrystalSlot name: solution normalizer description: An alchemical device that removes fine precipitates from solutions, and stabilizes it for further work placement: @@ -79,25 +81,4 @@ fillBaseName: liq- - type: CP14MagicEnergyDraw energy: -0.2 - delay: 1 - - type: CP14MagicEnergyCrystalSlot - slotId: crystal_slot - - type: ContainerContainer - containers: - crystal_slot: !type:ContainerSlot - - type: ItemSlots - slots: - crystal_slot: - insertSound: - path: /Audio/_CP14/Items/crystal_insert.ogg - params: - variation: 0.05 - ejectSound: - path: /Audio/_CP14/Items/crystal_eject.ogg - params: - variation: 0.05 - ejectOnInteract: true - name: cp14-magic-energy-crystal-slot-name - whitelist: - components: - - CP14MagicEnergyCrystal \ No newline at end of file + delay: 1 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Thaumaturgy/elemental_reactor.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Thaumaturgy/elemental_reactor.yml new file mode 100644 index 0000000000..16bc9892e8 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Thaumaturgy/elemental_reactor.yml @@ -0,0 +1,27 @@ +- type: entity + id: CP14ElementalReactor + name: elemental reactor + description: A work of art created by the dwarves of Zilagro and House Lyrandar, controlling the fire elemental and allowing it to produce vast amounts of energy. + parent: + - BaseStructure + components: + - type: Sprite + sprite: _CP14/Structures/Specific/Thaumaturgy/elemental_reactor.rsi #TODO resprite + state: base + drawdepth: Mobs + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.55,-0.85,0.55,0.85" + density: 1000 + layer: + - WallLayer + - type: Physics + bodyType: Static + - type: CP14MagicEnergyContainer + - type: CP14MagicEnergyExaminable + - type: CP14MagicEnergyDraw + energy: 5 + delay: 1 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Thaumaturgy/pilon.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Thaumaturgy/pilon.yml new file mode 100644 index 0000000000..29139a2c14 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Thaumaturgy/pilon.yml @@ -0,0 +1,25 @@ +- type: entity + id: CP14BaseCrystalSlot #TODO переструктуризовать объекты + abstract: true + components: + - type: CP14MagicEnergyCrystalSlot + slotId: crystal_slot + - type: ContainerContainer + containers: + crystal_slot: !type:ContainerSlot + - type: ItemSlots + slots: + crystal_slot: + insertSound: + path: /Audio/_CP14/Items/crystal_insert.ogg + params: + variation: 0.05 + ejectSound: + path: /Audio/_CP14/Items/crystal_eject.ogg + params: + variation: 0.05 + ejectOnInteract: true + name: cp14-magic-energy-crystal-slot-name + whitelist: + components: + - CP14MagicEnergyCrystal \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Loadouts/Jobs/basic.yml b/Resources/Prototypes/_CP14/Loadouts/Jobs/basic.yml index bc40ef5725..c9b366b599 100644 --- a/Resources/Prototypes/_CP14/Loadouts/Jobs/basic.yml +++ b/Resources/Prototypes/_CP14/Loadouts/Jobs/basic.yml @@ -7,6 +7,15 @@ id: CP14ClothingCloakBlacksmithArpon equipment: cloak: CP14ClothingCloakBlacksmithArpon + +- type: loadout + id: CP14ClothingCloakMaidArpon + equipment: CP14ClothingCloakMaidArpon + +- type: startingGear + id: CP14ClothingCloakMaidArpon + equipment: + cloak: CP14ClothingCloakMaidArpon - type: loadout @@ -90,6 +99,7 @@ equipment: head: CP14ClothingHeadMetalHeadband + - type: loadout id: CP14ClothingHeadTriangularHat equipment: CP14ClothingHeadTriangularHat @@ -99,6 +109,7 @@ equipment: head: CP14ClothingHeadTriangularHat + - type: loadout id: CP14ClothingHeadTriangularHatGolden equipment: CP14ClothingHeadTriangularHatGolden @@ -108,6 +119,7 @@ equipment: head: CP14ClothingHeadTriangularHatGolden + - type: loadout id: CP14ClothingHeadRedBeret equipment: CP14ClothingHeadRedBeret @@ -117,6 +129,7 @@ equipment: head: CP14ClothingHeadRedBeret + - type: loadout id: CP14ClothingHeadPurpleBeret equipment: CP14ClothingHeadPurpleBeret @@ -126,6 +139,7 @@ equipment: head: CP14ClothingHeadPurpleBeret + - type: loadout id: CP14ClothingHeadYellowBeret equipment: CP14ClothingHeadYellowBeret @@ -204,6 +218,16 @@ id: CP14ClothingPantsLoincloth equipment: pants: CP14ClothingPantsLoincloth + + +- type: loadout + id: CP14ClothingDressBlack + equipment: CP14ClothingDressBlack + +- type: startingGear + id: CP14ClothingDressBlack + equipment: + pants: CP14ClothingDressBlack # Shirt @@ -216,7 +240,6 @@ equipment: shirt: CP14ClothingShirtCottonBlue - - type: loadout id: CP14ClothingShirtCottonBlack equipment: CP14ClothingShirtCottonBlack @@ -226,7 +249,6 @@ equipment: shirt: CP14ClothingShirtCottonBlack - - type: loadout id: CP14ClothingShirtCottonPurple equipment: CP14ClothingShirtCottonPurple diff --git a/Resources/Prototypes/_CP14/Loadouts/loadout_groups.yml b/Resources/Prototypes/_CP14/Loadouts/loadout_groups.yml index db70d8b56c..0f5ea7c755 100644 --- a/Resources/Prototypes/_CP14/Loadouts/loadout_groups.yml +++ b/Resources/Prototypes/_CP14/Loadouts/loadout_groups.yml @@ -10,6 +10,7 @@ - CP14ClothingCloakBlacksmithArpon - CP14ClothingCloakFurcapeBlack - CP14ClothingCloakFurcapeBlue + - CP14ClothingCloakMaidArpon - type: loadoutGroup id: CP14BasicEyes @@ -25,6 +26,7 @@ minLimit: 0 loadouts: - CP14Girdles + - type: loadoutGroup id: CP14BasicMask name: cp14-loadout-basic-mask @@ -54,6 +56,7 @@ - CP14ClothingPantsTrouserDarkBlue - CP14ClothingPantsAristocratic - CP14ClothingPantsLoincloth + - CP14ClothingDressBlack - type: loadoutGroup id: CP14BasicShirt @@ -86,4 +89,4 @@ id: CP14CaptainCloak name: cp14-loadout-captain-cloak loadouts: - - CP14ClothingCloakCaptainJacket \ No newline at end of file + - CP14ClothingCloakCaptainJacket diff --git a/Resources/Textures/_CP14/Clothing/Cloak/maid_apron.rsi/equipped-CLOAK.png b/Resources/Textures/_CP14/Clothing/Cloak/maid_apron.rsi/equipped-CLOAK.png new file mode 100644 index 0000000000000000000000000000000000000000..2e7e5f09ac32476a8b106eddcdf3dbc57b52d3fc GIT binary patch literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zIXqn)Ln`LH zy=BPPWFXP@F#fUa3t5Fbr|uq{*f{sJg{76ioVyY`-C}hF7Yp6Kbm@m(XS3ALe@Qcc zbplOFhzm8p_4N0Z&r4TH*S>DwuDHGKLO1`184pYL`4ss*_nz>^@Xhq|(-ZQVDp{ld zNR>6@-@d`Day-ZWbN>E){=HZEPE47!=nPPE?3A4;UX^m%bLPI~Kf5S6ZqL?Ld20O* zt8U8!Z2^OXYf}79Iq941WdD`;$T?4myk}~f)KO*hcddb7Q-9F0`{F8Q>%NxRnL;1dEG4nb)PL`bA{Epp*`=+4AshTq;=674SyC1mjP`vBgu6;pnFD9`pjzoBn^}$;I8l zyg%687E0_%zQ6JRjVBk6b~5%Xu{w0+&Ll+(of!)k?O@T{UijC@jg8HNV@>SVX$zMr zP0uKf>sw*u6{1-oD!M< DqRnQ| literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Clothing/Cloak/maid_apron.rsi/meta.json b/Resources/Textures/_CP14/Clothing/Cloak/maid_apron.rsi/meta.json new file mode 100644 index 0000000000..e19dbe65a9 --- /dev/null +++ b/Resources/Textures/_CP14/Clothing/Cloak/maid_apron.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "All rights reserved for the CrystallPunk14 project only", + "copyright": "CrystallPunk14, by TheShuEd", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-CLOAK", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CP14/Clothing/Pants/Dress/black.rsi/equipped-PANTS.png b/Resources/Textures/_CP14/Clothing/Pants/Dress/black.rsi/equipped-PANTS.png new file mode 100644 index 0000000000000000000000000000000000000000..990b04ed5778490d4e3e2a7412ddad2a62a75173 GIT binary patch literal 492 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zmwCE4hE&XX zduyTpVFwYm5ByCpO4F7&hF?)o%TNfO+|t6*KQk)GJK&F?MpJCltb>yiCTK7nR50K$ zQC#u$RhPo`HPOyh)9>ZQ?wcP~9D9HJ_3U&x2Nx(*^W&}!*S75ackvMa*-KYmL`Cs#5IoSL&SIqLeVjqzX~^%W z*~=K8_1oSz-x-pd^}V#2Vdj(*m%gkQ%&r4QV#Y52_8`BP!@G)wshyX*wl_QyYC W$+MW`&&>&pJ_b)$KbLh*2~7aR$=CM) literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Clothing/Pants/Dress/black.rsi/icon.png b/Resources/Textures/_CP14/Clothing/Pants/Dress/black.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1950887919fc9068d7c30d71413555021600d9c6 GIT binary patch literal 353 zcmV-n0iOPeP)Px$8%ab#R9J=WlRr+wFcgPB5JO(Fw6Z#9$ORgKa)e%irBkJ>h>1fmAxdOuf-NfPHFKj%g1tk(Uhhv8Oh@}hL10vDkL!_ZR@)B#T-a`c>}>E8w+g4G&p42cLLS@1PX>cA-(C6E`TtLx2=(*syzzSi$9%#@<8H$hz( zH8#He>-9BP)g=J8H+TK_hsS#Wp7$?ow>ykE@bUgSYVXl=n-`_?<2DQ($|Pw@*EXZW zg9N+;fJoK{dLd&D072ow0>4Fuga$_i5d*Ts|IoEtr4CipiVhvRFtD@(wagGWHg}+RIaB{Uz*Oz~ zEP#E!?|YAT?=1TP1VIo4K@dbTd;3R0t=J{T$2q~v!x!@Wr@PN^-2rs;QwJR! z9tQ?v0DuMO(uls>lVdtgSBk4+zudiBI|xzw0KoZ7j$y0<09yKw(+2q7BotYrTn4ao zy6^Tv&I{v2kbgEooW6=UrlX%2p;xcp1glXuEn7xeWx=^LRv2Y4hL7*xYG*-`zBn#) zboC!4oou(7Fc?GCvSdV6=buzf`CT06e1@uJ!C(ySR#V6CM156HO?g3H{loyc?f~a! zr)amDvhXc9hxojo`k~(dFdhv{?N$@#XQy!8K~`V0>wnMZQY)%9g#Bv*-Bv<2!_5Vuw(#$?J3$eE_IhmK-znJOI$rPc4FRlNgNQe(KBhm*pBA;^ta# z9;uyIKXC~}O)S>pYU;<`A8eA4{_mxr7Dyd^ErX-(2)FJ0-=t3v1VIo4K@bE%5ClOG z1VQ{a)PL%Y)JBP2plesIXX)yzG2ffW~yR$k@ z7vs^e#MrVW&0s9DZDw1nHb#s`!&1lT27R|DJI1n-dlvx0RsZ1dSf-orO}4%xs7nz* zs1r=5F(Y#Z#7!(3m2?V_E^(SV!Oy)5tRf0f5e*W+LzBd&TJhF0Sgp22-wf?in;-~+ gAR7pRApQY<0sBz->i^^gv;Y7A07*qoM6N<$f}n(Wz5oCK delta 841 zcmV-P1GfCd2J8lqFnma?mIi7P9FdcS&BkRxSoe`5CT9e{dbodWJ!WTN&wJ< z2SSwE1VZ4DrGL7gO@=8KiuZP(6x zu~Oq8EUgHw5&+fZDAehjPN3&R8~w8mkn#vR*J<(u;Q73bgAkKwhCm2KD`1|>P)el9 z6X??F!q4pwgyLH3hvK@l&57bglk|%`FWnQTIC}*4@qfnIZP!kb=lW)KeP4Us+-9!t z>ps-J>qWTRt{rncvyOISwM^})?UgIn-$uWY0|?sE zrl@&0yv3GpqEA#O-$vic0abC&8`Z8rpA>n1v225t1Ef4^A^N3@hwA&p9N)Bq%5C(m z9I%f!4u6SM#nR-dmrvk2ebeb=OWRNIv#-HZR6X8y`?Y~4IgOU8`fM4%YTe{d})tC|$fag%P85Kj@J*Y^qX{uzz@C8arSbE!8BN=~y5IL`irkC(z_+ zApn$YnnW|${7r8a7Y2BV4>sNbW=N_o6jjX;=#x6FeY|l_*>(==OYl{u#>*}k8d`mmHZj81`2j%r z)j~I<6HKkHuis7%FsX*D`{XUPIy=C;bcS%kkO>)$89GGHA$f*j7=~dOraONDaSk)g Tl?U`F00000NkvXXu0mjfK@5)^ diff --git a/Resources/Textures/_CP14/Clothing/Shirt/Cotton/black.rsi/icon.png b/Resources/Textures/_CP14/Clothing/Shirt/Cotton/black.rsi/icon.png index 178c1d0a17063b525084ba61af2d089cc88e6737..2f70773c1d4f7c5951a10a42b1dbab56ea13f82f 100644 GIT binary patch delta 416 zcmV;R0bl;P1IGi9F@J$cL_t(oh3%9fPs2bI$NwXUz74UaAgGy`nV4XPAeLYnk|s^~ z6wAauz~uHN5Twbz0~SYuAebQ#n28w>r6HMi<@5H(;s zZmGFducOoL=T!^PR(f)Jky}InfQ%Vgnu0mOb$F#>hJ%qZFUCGS-fH!=6NtnLu@K5! zPGUG1eKXI}6d5yOArOg`P8xt_0%zx!xikg<<^;BLq`EAUF(VQy5H$cmP2=J2rqrW! z0)g+rB0|$~z<->qg$w2fOc>kA0O8K#pl0^d`|EMtaze#Ft2 zH2^FZ^IG70m`=tB!&J-z delta 402 zcmV;D0d4-r1Gxi`F@JMOL_t(oh3%5Dj)FiChJP+suxPPlwa}PYU_n7+XF+0fy{~W& zYfocgaTFxinGF=c&~b$~8#M+|V{(`5*N|l=`+qaLfW>05{1@iIvJIoS?Wzf*xSa>f z&YDZ!`V@sx-1=$^0QlH^UJc;?z8d3}=v@M<^`@0d!4(3o=YJWYOF;l|JrAxBkV;{- z-t>~VDNtyQh6n)Q3IPC+N}bh6rBD{R*>8wYXx%5jTOf?$b`~r!noP~XWszejebaRq z#qCh~W*-1XlPPAwqSsZtcWn|?_)fpzdLD9p000Ovz)<>_1q(=}On9L+h$;YpPlQ|_ zAjIHSe)j~jG=FjSyRFmIHL^5ufa5)vMQ%bFejizynEL&0>pUgETsx>Na?>#jb=5y5 z!0<@qod-;B*SyF;VqU_ZExA@+bHK@sYA_e^8d101E&B07*qoM6N<$g1IHTO8@`> diff --git a/Resources/Textures/_CP14/Clothing/Shirt/Cotton/black.rsi/meta.json b/Resources/Textures/_CP14/Clothing/Shirt/Cotton/black.rsi/meta.json index 24e83f9ea6..8163f4aba3 100644 --- a/Resources/Textures/_CP14/Clothing/Shirt/Cotton/black.rsi/meta.json +++ b/Resources/Textures/_CP14/Clothing/Shirt/Cotton/black.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "All rights reserved for the CrystallPunk14 project only", - "copyright": "CrystallPunk14, by Jaraten and TheShuEd", + "copyright": "CrystallPunk14, by TheShuEd", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/_CP14/Effects/Beams/magic.rsi/impact_magic.png b/Resources/Textures/_CP14/Effects/Beams/magic.rsi/impact_magic.png new file mode 100644 index 0000000000000000000000000000000000000000..bb2219adcfd2480dd0e65725dfb1e189a116c3c4 GIT binary patch literal 8512 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Β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 JPDHLkV1l3VEZ6`5 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Effects/Beams/magic.rsi/meta.json b/Resources/Textures/_CP14/Effects/Beams/magic.rsi/meta.json new file mode 100644 index 0000000000..a6f780b47c --- /dev/null +++ b/Resources/Textures/_CP14/Effects/Beams/magic.rsi/meta.json @@ -0,0 +1,70 @@ +{ + "version": 1, + "license": "All rights reserved for the CrystallPunk14 project only", + "copyright": "Created by TheShuEd (Github) for CrystallPunk 14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "magic1", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "magic", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "impact_magic", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "muzzle_magic", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CP14/Effects/Beams/magic.rsi/muzzle_magic.png b/Resources/Textures/_CP14/Effects/Beams/magic.rsi/muzzle_magic.png new file mode 100644 index 0000000000000000000000000000000000000000..280836ca168cc638ec218c6ddbb1447f83fe86d0 GIT binary patch literal 7722 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/powerline_gauntlet.rsi/inhand-left.png b/Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/powerline_gauntlet.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..ba4800161e6a0cf149312354f74d186b70212784 GIT binary patch literal 709 zcmV;$0y_PPP)Px%e@R3^RCt{2+OcaIaTEveZ%Tt5NaD@xlEJa$-4hMz6ZC%8r-GT%Q z4jJ+M}hQxL#h)75!bg6@fIvhd^MNSN*iwTIs>tH?F4oxoiv`KlNP2u;w zckh0`yW#f(gb+dqAq0YuU}Tk48e6aBTKntf~Ck@GC`BvTrxqK;xSe7 z8e0QcXMo+d5DEBEtF};I-S_;YnnsrDtNW-`Th4#?-#$Ud9(k^HDke{VU>0a#7HB7( z^3;Hxbjr#4brx{d%WfqcB4Av2C9hE`w&bbURBVYVdCh6$B>&QzJSmPPkV_^=SCy&V z_;v2UTrxqikPi!kbg+L0V<8{PW)F7TV#%}H z7RqK1v5=1??@#Ovu)0I6X<>Bi5v=aeb5_S5VNDBr&YCG*RoK=oXO<8`2qA4}%R-ZD(W7h{L*tf=J?M3-3f=UA~{S7SMS;pqN;c7hl zUfZncszQ-~AF+@Ruj6k303V*;{&)A~bxZuB*VI+TIY;282KFUz>&A38G0(cDrY_*) ztD@`EBkT=`1pM5QXVTOKSluDYW)A@HZg&GW)o14#%ie&`-@bE4{*|sO6b;TJ8k|Q^ zi30%A>8*2*XKz5sY|s1!^#0QTjcyMcKYzQKg;)MFIQarRUWq#E-_1#qE8l?agQL0e r`GN6!VAf0U(vX7`LI@#*5W<}wXgVJa<|u(h00000NkvXXu0mjfLXSph literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/powerline_gauntlet.rsi/inhand-right.png b/Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/powerline_gauntlet.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..def47e05aae9dc7e3b68fd85e546622b080ec335 GIT binary patch literal 729 zcmV;~0w(>5P)Px%lSxEDRCt{2+A(MoVH5}Of7DW4gwmxD0+z@P5w4&v5)_gS2SPBL2qBAO2_-{@ z4h09nt;L~c37nHlrAgh67)l8p98&0!WHI8jwoW97W!WKp5hrDo;ia*3wI(sNW*Q*`Uz3JRUB z<06bKfTibX@9-RE-Iy$)i>hjhHrG{@OEmz%-r>2pj!j3xR8>wQL^+L z+3#0e4tcTzfQwGGpT3i9(b(@c*HyfE4K%G2 zG%LW4cIsBHsTr#Pl~^8+KLXE=-_6XVNSLS;9L(P1a%l3=^CdHg-gB%DD3@w5>jo5g z37Xy(on@q(*ToNL9o-TGfDi9Cpy_SwXs0k*Jt*>$@Gzq+FD?k*({TqR5?gqgUIl=` z=s7NjsG!%Uc4y%8m#@P2bXxbfoqw>kKHK4^LyZ$BM-{>qGSeEEPe#u#Ia{U3e+oJA|nc+H@t00000 LNkvXXu0mjflP*Ts literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/powerline_gauntlet.rsi/meta.json b/Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/powerline_gauntlet.rsi/meta.json new file mode 100644 index 0000000000..6369780fb1 --- /dev/null +++ b/Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/powerline_gauntlet.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "All rights reserved for the CrystallPunk14 project only", + "copyright": "Created by Jaraten (discord/github) for CrystallPunk 14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/crystal.png b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..2a0d186de1d703d148593097aa65bda1f49fb46f GIT binary patch literal 298 zcmV+_0oDGAP)Px#yoloNm(n~`i^Tj00`Lt05-F} zalfu@`1W#pId$lJR(-4n(BVQh5VC2*gQzsVik@k~@^Dq5@8Ou$ZE&1c004OwrtQoJ z$P0xyt+1L8+TgrUR^fo=r|(UPMGhL`47V4%y#Nj=;tyN&o-=07*qoM6N<$f)U_;=>Px# literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/meta.json b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/meta.json new file mode 100644 index 0000000000..05b3a2a7bc --- /dev/null +++ b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "All rights reserved for the CrystallPunk14 project only", + "copyright": "Created by Jaraten (discord/github) for CrystallPunk 14", + "size": { + "x": 32, + "y": 48 + }, + "states": [ + { + "name": "spreader" + }, + { + "name": "crystal" + } + ] +} diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/spreader.png b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/spreader.png new file mode 100644 index 0000000000000000000000000000000000000000..8690e6da04f5d5402f2364ff2015173151ef5bd1 GIT binary patch literal 682 zcmV;b0#*HqP)Px%WJyFpR9J=WmA_9DVHn3hJ?T~q)Pt(}hS_Y`8R`gJ~GbLI*15%mHm$7@)D&?bLH9ccG#7PD`BL&-C2g^E~hO zeSYLXAP@)y0)ap<0CVMxF;~tQgXEB|O3c49G)VB5{MY|0z$|xuX3+&uRo#8RJK?Wd zFkJg?*+;p!A*mXYs&SNy8@+t4RKVDqW#i%jsicfNwTnEpODZXM9d7zwser2Lrc^m$ zJsfobq^9Rl8ahftCpA3}z$ z*H9Wdhp`1H6m4@mTbHM=jj?f^>WjDwIven)@`KsQTL6?QCln`#xD#G>L1zf7svF+F zvd!>gn&T4h5&u6td8|6LMMtRTjJFC@=Rw8h2cV=Qcy=Ir*UVzfjSv|k4xrV)V zJe8CQKlE5Ja{1V*P(N&kFp}BoDxuQQQBRwf{M6GXN<;4(D-Z|-0zof+1Ey*IU^tTm QJpcdz07*qoM6N<$g4$j{1ONa4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/elemental_reactor.rsi/base.png b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/elemental_reactor.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..d2880b3ec79021fd0fb7a31dc946d3268562aa6d GIT binary patch literal 1289 zcmV+k1@`)hP)Px(!%0LzRA_lmIC!bF5-TU5s-`6aD zz*v^=-v6Kb15WX7kz|>CaO<+lLx}0sooG3tCgvr$jTl9OCs4u<+Wk;60D$t9vlHKi zDj^;$5xkmqMf5t2nK4>f6nRfF$R+%8y@KU>MM8pvo=4$iLRlpS54i8Dykzj%@Frv#TBlZ9l+tsw2)an(* zjT;lrQrbmVY8+Mp9jmo^McL)9DAd*#)$-fVT$v^na3yeUZBeAe%FiE@^KXCtlAT*y zTO{Wm+`6o&L?#K^4UAf_X+<={#@uU8wlSoy&XIIXY;5j>GpaGfiH=p}S-kCpUX*A|uqcu0=+r0b6JJ#y~7c)-CSaAHJJYW;C!8Nx( zfBFLeaN&!O$p4!$Zt{?L3J@eQg{4v%0Ka_D!tWmZ3jnzK%_VZ2E)rbH%;W(rG{qR0 zRObHozvH6u_rh$+IhW!gU8ai^pftD3-g3QyjqM()X*c=q4K)Fi#F%?6QKJm|opU?9Gjh;4LL5z}~*X z`c@wcvn8x=^|8Ly$KJle(|a9uZVbeYjPitQ$?)r6j{pE4esD5nZ(rfl^PiDIP)iJR zF_%jtTe(3C>w*@3Z(p5+&Utz)Wr)_>-&`YeDsX517??jJ5OuOgZ1#2mT%3q`dz_@! z4-I(i>_eFw8HFd6uW=m@C%y}zS!g4(VK=thUp@yg3?DNOR(_lZAa7hYGBq+65xb05 z({6%v3eC+!WeVTAHkGt6o}AQ~P^j_PGP+bMkA8dyOd+QdzOmD*JBi7Y1L=Y3)t!X0 zgl%nK9dBKmN}8L8N`LkV;o61SGEv{NA*8KEwSSH=C%BKs$V+*hN|gc2^{ zr3lVY%^>fq*4VoSkq0PYJB=A-GmW`srRcbLQV@Bd)0k13ASYzjTN^1K4OW5jm9yT> zy?sLy3ZJDVcV(iB?m@dhv9>81&AV^Brx6;W90<8J%nMSUg>35oPq3M8w{^R@m>1R| zO9|Hnxovsw;ZtU_#%w~e%(Ee~80Q5FF_+?@)(0}anFF#vKX4_h^vzt*av=1~Cg$w} z5cYC0dOef(+tJv^uZ27va4DDNh3+X%Q4szEhaZ$LpTEVM00000NkvXXu0mjf3wu^4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/elemental_reactor.rsi/meta.json b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/elemental_reactor.rsi/meta.json new file mode 100644 index 0000000000..4ea579c198 --- /dev/null +++ b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/elemental_reactor.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "All rights reserved for the CrystallPunk14 project only", + "copyright": "Created by TheShued (github) for CrystallPunk 14", + "size": { + "x": 48, + "y": 64 + }, + "states": [ + { + "name": "base" + } + ] +}