diff --git a/Content.Server/_CP14/Alchemy/Components/CP14SolutionNormalizerComponent.cs b/Content.Server/_CP14/Alchemy/Components/CP14SolutionNormalizerComponent.cs index 680b8905f2..df26556a94 100644 --- a/Content.Server/_CP14/Alchemy/Components/CP14SolutionNormalizerComponent.cs +++ b/Content.Server/_CP14/Alchemy/Components/CP14SolutionNormalizerComponent.cs @@ -1,8 +1,8 @@ - +using Content.Server._CP14.Alchemy.EntitySystems; using Content.Shared.FixedPoint; using Robust.Shared.Audio; -namespace Content.Server._CP14.Alchemy; +namespace Content.Server._CP14.Alchemy.Components; /// /// gradually rounds down all reagents in the specified solution diff --git a/Content.Server/_CP14/Alchemy/EntitySystems/CP14SolutionNormalizerSystem.cs b/Content.Server/_CP14/Alchemy/EntitySystems/CP14SolutionNormalizerSystem.cs index addc709d05..8c570f336f 100644 --- a/Content.Server/_CP14/Alchemy/EntitySystems/CP14SolutionNormalizerSystem.cs +++ b/Content.Server/_CP14/Alchemy/EntitySystems/CP14SolutionNormalizerSystem.cs @@ -1,7 +1,4 @@ using Content.Server._CP14.MagicEnergy; -using Content.Server.Audio; -using Content.Shared._CP14.MagicEnergy.Components; -using Content.Shared.Audio; using Content.Shared.Chemistry.Components.SolutionManager; using Content.Shared.Chemistry.EntitySystems; using Content.Shared.Chemistry.Reagent; @@ -9,7 +6,7 @@ using Content.Shared.FixedPoint; using Robust.Shared.Audio.Systems; using Robust.Shared.Timing; -namespace Content.Server._CP14.Alchemy; +namespace Content.Server._CP14.Alchemy.EntitySystems; public sealed partial class CP14SolutionNormalizerSystem : EntitySystem { @@ -17,26 +14,12 @@ public sealed partial class CP14SolutionNormalizerSystem : EntitySystem [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly SharedSolutionContainerSystem _solutionContainer = default!; [Dependency] private readonly CP14MagicEnergyCrystalSlotSystem _magicSlot = default!; - [Dependency] private readonly AmbientSoundSystem _ambient = default!; - - public override void Initialize() - { - SubscribeLocalEvent(OnSlotPowerChanged); - } - - private void OnSlotPowerChanged(Entity ent, ref CP14SlotCrystalPowerChangedEvent args) - { - if (TryComp(ent, out var ambient)) - { - _ambient.SetAmbience(ent, args.Powered); - } - } public override void Update(float frameTime) { base.Update(frameTime); - var query = EntityQueryEnumerator(); + var query = EntityQueryEnumerator(); while (query.MoveNext(out var uid, out var normalizer, out var containerManager)) { if (_timing.CurTime <= normalizer.NextUpdateTime) diff --git a/Content.Shared/_CP14/MagicEnergy/CP14MagicEnergyAmbientSoundComponent.cs b/Content.Shared/_CP14/MagicEnergy/CP14MagicEnergyAmbientSoundComponent.cs new file mode 100644 index 0000000000..0000352f8a --- /dev/null +++ b/Content.Shared/_CP14/MagicEnergy/CP14MagicEnergyAmbientSoundComponent.cs @@ -0,0 +1,13 @@ +using Content.Shared._CP14.MagicRitual.Prototypes; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared._CP14.MagicEssence; + +/// +/// Turn on and off the ambient sound if entity magic powered +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class CP14MagicEnergyAmbientSoundComponent : Component +{ +} diff --git a/Content.Shared/_CP14/MagicEnergy/SharedCP14MagicEnergySystem.cs b/Content.Shared/_CP14/MagicEnergy/SharedCP14MagicEnergySystem.cs index 1fc134d20b..7d7b3fedd3 100644 --- a/Content.Shared/_CP14/MagicEnergy/SharedCP14MagicEnergySystem.cs +++ b/Content.Shared/_CP14/MagicEnergy/SharedCP14MagicEnergySystem.cs @@ -1,5 +1,7 @@ using Content.Shared._CP14.MagicEnergy.Components; +using Content.Shared._CP14.MagicEssence; using Content.Shared.Alert; +using Content.Shared.Audio; using Content.Shared.FixedPoint; using Content.Shared.Inventory; using Content.Shared.Rounding; @@ -9,13 +11,24 @@ namespace Content.Shared._CP14.MagicEnergy; public partial class SharedCP14MagicEnergySystem : EntitySystem { [Dependency] private readonly AlertsSystem _alerts = default!; + [Dependency] private readonly SharedAmbientSoundSystem _ambient = default!; public override void Initialize() { + SubscribeLocalEvent(OnSlotPowerChanged); + SubscribeLocalEvent(OnComponentStartup); SubscribeLocalEvent(OnComponentShutdown); } + private void OnSlotPowerChanged(Entity ent, ref CP14SlotCrystalPowerChangedEvent args) + { + if (TryComp(ent, out var ambient)) + { + _ambient.SetAmbience(ent, args.Powered); + } + } + private void OnComponentStartup(Entity ent, ref ComponentStartup args) { UpdateMagicAlert(ent); diff --git a/Content.Shared/_CP14/MagicEssence/CP14MagicEssenceAttractorComponent.cs b/Content.Shared/_CP14/MagicEssence/CP14MagicEssenceAttractorComponent.cs new file mode 100644 index 0000000000..c51b2b14fc --- /dev/null +++ b/Content.Shared/_CP14/MagicEssence/CP14MagicEssenceAttractorComponent.cs @@ -0,0 +1,11 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared._CP14.MagicEssence; + +/// +/// Reflects the amount of essence stored in this item. The item can be destroyed to release the essence from it. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class CP14MagicEssenceAttractorComponent : Component +{ +} diff --git a/Content.Shared/_CP14/MagicEssence/CP14MagicEssenceCollecttorComponent.cs b/Content.Shared/_CP14/MagicEssence/CP14MagicEssenceCollecttorComponent.cs new file mode 100644 index 0000000000..4fd0b090ad --- /dev/null +++ b/Content.Shared/_CP14/MagicEssence/CP14MagicEssenceCollecttorComponent.cs @@ -0,0 +1,20 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared._CP14.MagicEssence; + +/// +/// Reflects the amount of essence stored in this item. The item can be destroyed to release the essence from it. +/// +[RegisterComponent, NetworkedComponent] +[Access(typeof(CP14MagicEssenceSystem))] +public sealed partial class CP14MagicEssenceCollectorComponent : Component +{ + [DataField] + public float CollectRange = 1f; + + [DataField] + public float AttractRange = 5f; + + [DataField] + public string Solution = "collector"; +} diff --git a/Content.Shared/_CP14/MagicEssence/CP14MagicEssenceComponent.cs b/Content.Shared/_CP14/MagicEssence/CP14MagicEssenceComponent.cs new file mode 100644 index 0000000000..3d0cbfbaf2 --- /dev/null +++ b/Content.Shared/_CP14/MagicEssence/CP14MagicEssenceComponent.cs @@ -0,0 +1,20 @@ +using Robust.Shared.Audio; +using Robust.Shared.GameStates; + +namespace Content.Shared._CP14.MagicEssence; + +/// +/// +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class CP14MagicEssenceComponent : Component +{ + [DataField] + public string Solution = "essence"; + + [DataField] + public SoundSpecifier ConsumeSound = new SoundPathSpecifier("/Audio/_CP14/Effects/essence_consume.ogg") + { + Params = AudioParams.Default.WithVolume(-2f).WithVariation(0.2f), + }; +} diff --git a/Content.Shared/_CP14/MagicEssence/CP14MagicEssenceSystem.cs b/Content.Shared/_CP14/MagicEssence/CP14MagicEssenceSystem.cs index ff68bcbb07..d3cf371748 100644 --- a/Content.Shared/_CP14/MagicEssence/CP14MagicEssenceSystem.cs +++ b/Content.Shared/_CP14/MagicEssence/CP14MagicEssenceSystem.cs @@ -1,11 +1,15 @@ using System.Text; using Content.Shared._CP14.MagicEnergy; using Content.Shared._CP14.MagicEnergy.Components; +using Content.Shared.Chemistry.Components.SolutionManager; +using Content.Shared.Chemistry.EntitySystems; using Content.Shared.Examine; using Content.Shared.Inventory; using Content.Shared.Throwing; using Content.Shared.Whitelist; +using Robust.Shared.Audio.Systems; using Robust.Shared.Network; +using Robust.Shared.Physics.Events; using Robust.Shared.Prototypes; using Robust.Shared.Random; @@ -21,6 +25,8 @@ public partial class CP14MagicEssenceSystem : EntitySystem [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly INetManager _net = default!; [Dependency] private readonly SharedCP14MagicEnergySystem _magicEnergy = default!; + [Dependency] private readonly SharedSolutionContainerSystem _solution = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; public override void Initialize() { @@ -32,6 +38,41 @@ public partial class CP14MagicEssenceSystem : EntitySystem SubscribeLocalEvent>((e, c, ev) => OnMagicScanAttempt(e, c, ev.Args)); SubscribeLocalEvent(OnEnergyOverload); + + SubscribeLocalEvent(OnPowerChanged); + SubscribeLocalEvent(OnCollectorCollide); + } + + private void OnPowerChanged(Entity ent, ref CP14SlotCrystalPowerChangedEvent args) + { + if (args.Powered) + EnsureComp(ent); + else + RemCompDeferred(ent); + } + + private void OnCollectorCollide(Entity ent, ref StartCollideEvent args) + { + if (!TryComp(args.OtherEntity, out var essenceComp)) + return; + + if (!TryComp(args.OtherEntity, out var essenceSolutionManager)) + return; + + if (!TryComp(ent, out var collectorSolutionManager)) + return; + + if (!_solution.TryGetSolution((args.OtherEntity, essenceSolutionManager), essenceComp.Solution, out var essenceSoln, out var essenceSolution)) + return; + + if (!_solution.TryGetSolution((ent, collectorSolutionManager), ent.Comp.Solution, out var collectorSoln, out var collectorSolution)) + return; + + _solution.TryTransferSolution(collectorSoln.Value, essenceSolution, essenceSolution.Volume); + _audio.PlayPvs(essenceComp.ConsumeSound, ent); + + if (_net.IsServer) + QueueDel(args.OtherEntity); } private void OnEnergyOverload(Entity ent, ref CP14MagicEnergyOverloadEvent args) diff --git a/Resources/Audio/_CP14/Effects/attributions.yml b/Resources/Audio/_CP14/Effects/attributions.yml index b7757b5298..2bd4ed0020 100644 --- a/Resources/Audio/_CP14/Effects/attributions.yml +++ b/Resources/Audio/_CP14/Effects/attributions.yml @@ -62,3 +62,9 @@ license: "CC-BY-4.0" copyright: 'by SpaceLife on Freesound.org' source: "https://freesound.org/people/SpaceLife/sounds/545938/" + + +- files: ["essence_consume.ogg"] + license: "CC0-1.0" + copyright: 'by DustyWind on Freesound.org' + source: "https://freesound.org/people/DustyWind/sounds/715784/" diff --git a/Resources/Audio/_CP14/Effects/essence_consume.ogg b/Resources/Audio/_CP14/Effects/essence_consume.ogg new file mode 100644 index 0000000000..845bcfecc2 Binary files /dev/null and b/Resources/Audio/_CP14/Effects/essence_consume.ogg differ diff --git a/Resources/Locale/en-US/_CP14/reagents/meta/essence.ftl b/Resources/Locale/en-US/_CP14/reagents/meta/essence.ftl new file mode 100644 index 0000000000..b01306837b --- /dev/null +++ b/Resources/Locale/en-US/_CP14/reagents/meta/essence.ftl @@ -0,0 +1,23 @@ +cp14-reagent-name-essence-earth = Essence of earth +cp14-reagent-desc-essence-earth = Liquid embodiment of the element earth + +cp14-reagent-name-essence-fire = Essence of fire +cp14-reagent-desc-essence-fire = Liquid embodiment of the element fire + +cp14-reagent-name-essence-life = Essence of life +cp14-reagent-desc-essence-life = Liquid embodiment of the element life + +cp14-reagent-name-essence-water = Essence of water +cp14-reagent-desc-essence-water = Liquid embodiment of the element water + +cp14-reagent-name-essence-light = Essence of light +cp14-reagent-desc-essence-light = Liquid embodiment of the element light + +cp14-reagent-name-essence-dimension = Essence of dimension +cp14-reagent-desc-essence-dimension = Liquid embodiment of the element dimension + +cp14-reagent-name-essence-death = Essence of death +cp14-reagent-desc-essence-death = Liquid embodiment of the element death + +cp14-reagent-name-essence-electric = Essence of electric +cp14-reagent-desc-essence-electric = Liquid embodiment of the element electric \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/reagents/meta/essence.ftl b/Resources/Locale/ru-RU/_CP14/reagents/meta/essence.ftl new file mode 100644 index 0000000000..0045c260de --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/reagents/meta/essence.ftl @@ -0,0 +1,23 @@ +cp14-reagent-name-essence-earth = Эссенция земли +cp14-reagent-desc-essence-earth = Жидкое воплощение стихии земли + +cp14-reagent-name-essence-fire = Эссенция огня +cp14-reagent-desc-essence-fire = Жидкое воплощение стихии огня + +cp14-reagent-name-essence-life = Эссенция жизни +cp14-reagent-desc-essence-life = Жидкое воплощение стихии жизни + +cp14-reagent-name-essence-water = Эссенция воды +cp14-reagent-desc-essence-water = Жидкое воплощение стихии воды + +cp14-reagent-name-essence-light = Эссенция света +cp14-reagent-desc-essence-light = Жидкое воплощение стихии света + +cp14-reagent-name-essence-dimension = Эссенция пространства +cp14-reagent-desc-essence-dimension = Жидкое воплощение стихии пространства + +cp14-reagent-name-essence-death = Эссенция смерти +cp14-reagent-desc-essence-death = Жидкое воплощение стихии смерти + +cp14-reagent-name-essence-electric = Эссенция молний +cp14-reagent-desc-essence-electric = Жидкое воплощение стихии молнии \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/essence.yml b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/essence.yml index 62c13eaf14..5e1dbce84c 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/essence.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/essence.yml @@ -17,8 +17,8 @@ lifetime: 60 - type: CanMoveInAir - type: RandomWalk - minSpeed: 0.5 - maxSpeed: 1 + minSpeed: 0.25 + maxSpeed: 0.75 - type: Physics bodyType: Dynamic bodyStatus: InAir @@ -34,6 +34,13 @@ - Impassable restitution: 0.3 # fite me friction: 0.2 + - type: ChasingWalk + maxChaseRadius: 5 + minSpeed: 0.5 + maxSpeed: 1 + chasingComponent: + - type: CP14MagicEssenceAttractor + - type: CP14MagicEssence - type: entity parent: CP14BaseEssence @@ -42,6 +49,13 @@ components: - type: Sprite color: "#70533f" + - type: SolutionContainerManager + solutions: + essence: + maxVol: 1 + reagents: + - ReagentId: CP14EssenceEarth + Quantity: 1 - type: entity parent: CP14BaseEssence @@ -50,6 +64,13 @@ components: - type: Sprite color: "#d9741c" + - type: SolutionContainerManager + solutions: + essence: + maxVol: 1 + reagents: + - ReagentId: CP14EssenceFire + Quantity: 1 - type: entity parent: CP14BaseEssence @@ -58,6 +79,13 @@ components: - type: Sprite color: "#89e04f" + - type: SolutionContainerManager + solutions: + essence: + maxVol: 1 + reagents: + - ReagentId: CP14EssenceLife + Quantity: 1 - type: entity parent: CP14BaseEssence @@ -66,6 +94,13 @@ components: - type: Sprite color: "#1c94d9" + - type: SolutionContainerManager + solutions: + essence: + maxVol: 1 + reagents: + - ReagentId: CP14EssenceWater + Quantity: 1 - type: entity parent: CP14BaseEssence @@ -74,6 +109,13 @@ components: - type: Sprite color: "#ba97b8" + - type: SolutionContainerManager + solutions: + essence: + maxVol: 1 + reagents: + - ReagentId: CP14EssenceLight + Quantity: 1 - type: entity parent: CP14BaseEssence @@ -82,6 +124,13 @@ components: - type: Sprite color: "#391c57" + - type: SolutionContainerManager + solutions: + essence: + maxVol: 1 + reagents: + - ReagentId: CP14EssenceDimension + Quantity: 1 - type: entity parent: CP14BaseEssence @@ -90,6 +139,13 @@ components: - type: Sprite color: "#55877a" + - type: SolutionContainerManager + solutions: + essence: + maxVol: 1 + reagents: + - ReagentId: CP14EssenceDeath + Quantity: 1 - type: entity parent: CP14BaseEssence @@ -97,4 +153,11 @@ name: electric essence components: - type: Sprite - color: "#caed72" \ No newline at end of file + color: "#caed72" + - type: SolutionContainerManager + solutions: + essence: + maxVol: 1 + reagents: + - ReagentId: CP14EssenceElectric + Quantity: 1 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/normalizer.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/normalizer.yml index 7941e9afc3..a7ff349737 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/normalizer.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/normalizer.yml @@ -67,6 +67,7 @@ solution: normalizer - type: CP14SolutionNormalizer solution: normalizer + - type: CP14MagicEnergyAmbientSound - type: AmbientSound enabled: false range: 6 diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Thaumaturgy/essence_collelctor.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Thaumaturgy/essence_collelctor.yml new file mode 100644 index 0000000000..485a4c3efd --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Thaumaturgy/essence_collelctor.yml @@ -0,0 +1,86 @@ +- type: entity + id: CP14EssenceCollector + parent: + - BaseStructureDynamic + - CP14BaseCrystalSlot + name: essence collector + description: Being powered by the energy crystal, it will start sucking in all the essence floating in the air and converting it into useful liquid. + categories: [ ForkFiltered ] + components: + - type: Physics + bodyType: Static + - type: Transform + anchored: true + - type: InteractionOutline + - type: Sprite + drawdepth: Mobs + noRot: true + offset: 0, 0.2 + sprite: _CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi + layers: + - state: liq-1 + map: ["enum.SolutionContainerLayers.Fill"] + visible: false + - state: base + - state: crystal + shader: unshaded + map: ["crystal"] + visible: false + - state: active + map: ["power"] + visible: false + shader: unshaded + - type: GenericVisualizer + visuals: + enum.CP14MagicSlotVisuals.Inserted: + crystal: + True: { visible: true } + False: { visible: false } + enum.CP14MagicSlotVisuals.Powered: + power: + True: { visible: true } + False: { visible: false } + - type: Fixtures + fixtures: + fix1: + hard: false + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.25,0.25,0.25" + density: 125 + mask: + - TabletopMachineMask + layer: + - WallLayer + - type: SolutionContainerManager + solutions: + collector: + maxVol: 50 + - type: CP14SolutionTemperature + - type: DrainableSolution + solution: collector + - type: ExaminableSolution + solution: collector + - type: MixableSolution + solution: collector + - type: RefillableSolution + solution: collector + - type: DrawableSolution + solution: collector + - type: DumpableSolution + solution: collector + - type: CP14MagicEnergyAmbientSound + - type: AmbientSound + enabled: false + range: 6 + volume: 3 + sound: + path: /Audio/Ambience/Objects/gravity_gen_hum.ogg + - type: Appearance + - type: SolutionContainerVisuals + maxFillLevels: 7 + fillBaseName: liq- + - type: CP14MagicEnergyDraw + energy: -1 + delay: 1 + - type: CP14MagicEssenceCollector \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Reagents/magic-essence.yml b/Resources/Prototypes/_CP14/Reagents/magic-essence.yml new file mode 100644 index 0000000000..9c59d0259f --- /dev/null +++ b/Resources/Prototypes/_CP14/Reagents/magic-essence.yml @@ -0,0 +1,103 @@ +- type: reagent + id: CP14EssenceEarth + name: cp14-reagent-name-essence-earth + desc: cp14-reagent-desc-essence-earth + group: CP14MagicEssence + flavor: CP14Bitterly + recognizable: true + physicalDesc: cp14-reagent-physical-desc-sparkling + color: "#70533f" + tileReactions: + - !type:CreateEntityTileReaction + entity: CP14EssenceEarth + +- type: reagent + id: CP14EssenceFire + name: cp14-reagent-name-essence-fire + desc: cp14-reagent-desc-essence-fire + group: CP14MagicEssence + flavor: CP14Bitterly + recognizable: true + physicalDesc: cp14-reagent-physical-desc-sparkling + color: "#d9741c" + tileReactions: + - !type:CreateEntityTileReaction + entity: CP14EssenceFire + +- type: reagent + id: CP14EssenceLife + name: cp14-reagent-name-essence-life + desc: cp14-reagent-desc-essence-life + group: CP14MagicEssence + flavor: CP14Bitterly + recognizable: true + physicalDesc: cp14-reagent-physical-desc-sparkling + color: "#89e04f" + tileReactions: + - !type:CreateEntityTileReaction + entity: CP14EssenceLife + +- type: reagent + id: CP14EssenceWater + name: cp14-reagent-name-essence-water + desc: cp14-reagent-desc-essence-water + group: CP14MagicEssence + flavor: CP14Bitterly + recognizable: true + physicalDesc: cp14-reagent-physical-desc-sparkling + color: "#1c94d9" + tileReactions: + - !type:CreateEntityTileReaction + entity: CP14EssenceWater + +- type: reagent + id: CP14EssenceLight + name: cp14-reagent-name-essence-light + desc: cp14-reagent-desc-essence-light + group: CP14MagicEssence + flavor: CP14Bitterly + recognizable: true + physicalDesc: cp14-reagent-physical-desc-sparkling + color: "#ba97b8" + tileReactions: + - !type:CreateEntityTileReaction + entity: CP14EssenceLight + +- type: reagent + id: CP14EssenceDimension + name: cp14-reagent-name-essence-dimension + desc: cp14-reagent-desc-essence-dimension + group: CP14MagicEssence + flavor: CP14Bitterly + recognizable: true + physicalDesc: cp14-reagent-physical-desc-sparkling + color: "#391c57" + tileReactions: + - !type:CreateEntityTileReaction + entity: CP14EssenceDimension + +- type: reagent + id: CP14EssenceDeath + name: cp14-reagent-name-essence-death + desc: cp14-reagent-desc-essence-death + group: CP14MagicEssence + flavor: CP14Bitterly + recognizable: true + physicalDesc: cp14-reagent-physical-desc-sparkling + color: "#55877a" + tileReactions: + - !type:CreateEntityTileReaction + entity: CP14EssenceDeath + +- type: reagent + id: CP14EssenceElectric + name: cp14-reagent-name-essence-electric + desc: cp14-reagent-desc-essence-electric + group: CP14MagicEssence + flavor: CP14Bitterly + recognizable: true + physicalDesc: cp14-reagent-physical-desc-sparkling + color: "#caed72" + tileReactions: + - !type:CreateEntityTileReaction + entity: CP14EssenceElectric \ No newline at end of file diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/active.png b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/active.png new file mode 100644 index 0000000000..59d4872812 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/active.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/base.png b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/base.png new file mode 100644 index 0000000000..6f809d3b29 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/base.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/crystal.png b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/crystal.png new file mode 100644 index 0000000000..40ec6bd9c7 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/crystal.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-1.png b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-1.png new file mode 100644 index 0000000000..ac8e56ede4 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-1.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-2.png b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-2.png new file mode 100644 index 0000000000..e6c2267a21 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-2.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-3.png b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-3.png new file mode 100644 index 0000000000..bf509c7723 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-3.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-4.png b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-4.png new file mode 100644 index 0000000000..f4b0071846 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-4.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-5.png b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-5.png new file mode 100644 index 0000000000..87beefa80c Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-5.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-6.png b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-6.png new file mode 100644 index 0000000000..dcc02f641d Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-6.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-7.png b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-7.png new file mode 100644 index 0000000000..ec1123815d Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/liq-7.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/meta.json b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/meta.json new file mode 100644 index 0000000000..db62db3d0e --- /dev/null +++ b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/essence_collector.rsi/meta.json @@ -0,0 +1,53 @@ +{ + "version": 1, + "license": "All right reserved", + "copyright": "Created by TheShuEd for CrystallEdge", + "size": { + "x": 32, + "y": 48 + }, + "states": [ + { + "name": "base" + }, + { + "name": "active", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "crystal" + }, + { + "name": "liq-1" + }, + { + "name": "liq-2" + }, + { + "name": "liq-3" + }, + { + "name": "liq-4" + }, + { + "name": "liq-5" + }, + { + "name": "liq-6" + }, + { + "name": "liq-7" + } + ] +} \ No newline at end of file