From b3b64e6cf29f313a9782fb95ae8727f907b1836a Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Sun, 21 Jan 2024 04:31:12 +0300 Subject: [PATCH] The glowing forest anomaly (#24351) * sans * Papyrus * add to game * tweak stick * fixes * Update Resources/Prototypes/Entities/Objects/Misc/kudzu.yml Co-authored-by: Kara * Update Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml Co-authored-by: Kara --------- Co-authored-by: Kara --- .../Anomaly/Effects/TileAnomalySystem.cs | 5 -- .../Components/ConditionalSpawnerComponent.cs | 11 ++- .../Components/RandomSpawnerComponent.cs | 12 +-- .../EntitySystems/ConditionalSpawnerSystem.cs | 3 +- Content.Server/Spreader/KudzuComponent.cs | 15 ++-- Content.Server/Spreader/KudzuSystem.cs | 2 +- .../Effects/Components/TileSpawnAnomaly.cs | 8 +- .../Prototypes/Entities/Effects/mobspawn.yml | 46 +++++++++- .../Markers/Spawners/Random/anomaly.yml | 1 + .../Entities/Mobs/NPCs/living_light.yml | 20 ++--- .../Entities/Objects/Misc/kudzu.yml | 53 ++++++++++++ .../Structures/Specific/Anomaly/anomalies.yml | 81 +++++++++++++++++- .../Structures/Specific/Anomaly/cores.yml | 26 ++++++ .../Objects/Misc/kudzuflower.rsi/kudzu_11.png | Bin 0 -> 1425 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_12.png | Bin 0 -> 1112 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_13.png | Bin 0 -> 1072 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_14.png | Bin 0 -> 1214 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_15.png | Bin 0 -> 1112 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_21.png | Bin 0 -> 1744 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_22.png | Bin 0 -> 1343 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_23.png | Bin 0 -> 1431 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_24.png | Bin 0 -> 1362 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_25.png | Bin 0 -> 1722 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_31.png | Bin 0 -> 2065 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_32.png | Bin 0 -> 1634 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_33.png | Bin 0 -> 1930 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_34.png | Bin 0 -> 1535 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_35.png | Bin 0 -> 1982 bytes .../Objects/Misc/kudzuflower.rsi/meta.json | 56 ++++++++++++ .../Anomalies/Cores/flora_core.rsi/core.png | Bin 0 -> 268 bytes .../Anomalies/Cores/flora_core.rsi/meta.json | 25 ++++++ .../Anomalies/Cores/flora_core.rsi/pulse.png | Bin 0 -> 370 bytes .../Anomalies/flora_anom.rsi/anom.png | Bin 0 -> 1716 bytes .../Anomalies/flora_anom.rsi/bulb.png | Bin 0 -> 746 bytes .../Anomalies/flora_anom.rsi/meta.json | 44 ++++++++++ .../Anomalies/flora_anom.rsi/pulse.png | Bin 0 -> 1942 bytes 36 files changed, 368 insertions(+), 40 deletions(-) create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_11.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_12.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_13.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_14.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_15.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_21.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_22.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_23.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_24.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_25.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_31.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_32.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_33.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_34.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_35.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/meta.json create mode 100644 Resources/Textures/Structures/Specific/Anomalies/Cores/flora_core.rsi/core.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/Cores/flora_core.rsi/meta.json create mode 100644 Resources/Textures/Structures/Specific/Anomalies/Cores/flora_core.rsi/pulse.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/anom.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/bulb.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/meta.json create mode 100644 Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/pulse.png diff --git a/Content.Server/Anomaly/Effects/TileAnomalySystem.cs b/Content.Server/Anomaly/Effects/TileAnomalySystem.cs index 16f32f6f4b..08ec3a1c93 100644 --- a/Content.Server/Anomaly/Effects/TileAnomalySystem.cs +++ b/Content.Server/Anomaly/Effects/TileAnomalySystem.cs @@ -1,13 +1,8 @@ -using System.Linq; using System.Numerics; -using Content.Server.Maps; using Content.Shared.Anomaly.Components; using Content.Shared.Anomaly.Effects.Components; using Content.Shared.Maps; -using Content.Shared.Physics; using Robust.Shared.Map; -using Robust.Shared.Physics; -using Robust.Shared.Physics.Components; using Robust.Shared.Random; namespace Content.Server.Anomaly.Effects; diff --git a/Content.Server/Spawners/Components/ConditionalSpawnerComponent.cs b/Content.Server/Spawners/Components/ConditionalSpawnerComponent.cs index 1910431eee..5b98989bb3 100644 --- a/Content.Server/Spawners/Components/ConditionalSpawnerComponent.cs +++ b/Content.Server/Spawners/Components/ConditionalSpawnerComponent.cs @@ -1,5 +1,4 @@ using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Server.Spawners.Components { @@ -8,15 +7,15 @@ namespace Content.Server.Spawners.Components public partial class ConditionalSpawnerComponent : Component { [ViewVariables(VVAccess.ReadWrite)] - [DataField("prototypes", customTypeSerializer: typeof(PrototypeIdListSerializer))] - public List Prototypes { get; set; } = new(); + [DataField] + public List Prototypes { get; set; } = new(); [ViewVariables(VVAccess.ReadWrite)] - [DataField("gameRules", customTypeSerializer: typeof(PrototypeIdListSerializer))] - public List GameRules = new(); + [DataField] + public List GameRules = new(); [ViewVariables(VVAccess.ReadWrite)] - [DataField("chance")] + [DataField] public float Chance { get; set; } = 1.0f; } } diff --git a/Content.Server/Spawners/Components/RandomSpawnerComponent.cs b/Content.Server/Spawners/Components/RandomSpawnerComponent.cs index ece17de974..9bf4d6d253 100644 --- a/Content.Server/Spawners/Components/RandomSpawnerComponent.cs +++ b/Content.Server/Spawners/Components/RandomSpawnerComponent.cs @@ -1,5 +1,4 @@ using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Server.Spawners.Components { @@ -7,15 +6,18 @@ namespace Content.Server.Spawners.Components public sealed partial class RandomSpawnerComponent : ConditionalSpawnerComponent { [ViewVariables(VVAccess.ReadWrite)] - [DataField("rarePrototypes", customTypeSerializer:typeof(PrototypeIdListSerializer))] - public List RarePrototypes { get; set; } = new(); + [DataField] + public List RarePrototypes { get; set; } = new(); [ViewVariables(VVAccess.ReadWrite)] - [DataField("rareChance")] + [DataField] public float RareChance { get; set; } = 0.05f; [ViewVariables(VVAccess.ReadWrite)] - [DataField("offset")] + [DataField] public float Offset { get; set; } = 0.2f; + + [DataField] + public bool DeleteSpawnerAfterSpawn = true; } } diff --git a/Content.Server/Spawners/EntitySystems/ConditionalSpawnerSystem.cs b/Content.Server/Spawners/EntitySystems/ConditionalSpawnerSystem.cs index 5248d512b8..6616746506 100644 --- a/Content.Server/Spawners/EntitySystems/ConditionalSpawnerSystem.cs +++ b/Content.Server/Spawners/EntitySystems/ConditionalSpawnerSystem.cs @@ -30,7 +30,8 @@ namespace Content.Server.Spawners.EntitySystems private void OnRandSpawnMapInit(EntityUid uid, RandomSpawnerComponent component, MapInitEvent args) { Spawn(uid, component); - QueueDel(uid); + if (component.DeleteSpawnerAfterSpawn) + QueueDel(uid); } private void OnRuleStarted(ref GameRuleStartedEvent args) diff --git a/Content.Server/Spreader/KudzuComponent.cs b/Content.Server/Spreader/KudzuComponent.cs index 36b1796b83..ed89a51a26 100644 --- a/Content.Server/Spreader/KudzuComponent.cs +++ b/Content.Server/Spreader/KudzuComponent.cs @@ -17,28 +17,33 @@ public sealed partial class KudzuComponent : Component /// /// Chance to spread whenever an edge spread is possible. /// - [DataField("spreadChance")] + [DataField] public float SpreadChance = 1f; /// /// How much damage is required to reduce growth level /// - [DataField("growthHealth")] + [DataField] public float GrowthHealth = 10.0f; /// /// How much damage is required to prevent growth /// - [DataField("growthBlock")] + [DataField] public float GrowthBlock = 20.0f; /// /// How much the kudzu heals each tick /// - [DataField("damageRecovery")] + [DataField] public DamageSpecifier? DamageRecovery = null; - [DataField("growthTickChance")] + [DataField] public float GrowthTickChance = 1f; + /// + /// number of sprite variations for kudzu + /// + [DataField] + public int SpriteVariants = 3; } diff --git a/Content.Server/Spreader/KudzuSystem.cs b/Content.Server/Spreader/KudzuSystem.cs index b59569b4e1..d15a2c667f 100644 --- a/Content.Server/Spreader/KudzuSystem.cs +++ b/Content.Server/Spreader/KudzuSystem.cs @@ -92,7 +92,7 @@ public sealed class KudzuSystem : EntitySystem return; } - _appearance.SetData(uid, KudzuVisuals.Variant, _robustRandom.Next(1, 3), appearance); + _appearance.SetData(uid, KudzuVisuals.Variant, _robustRandom.Next(1, component.SpriteVariants), appearance); _appearance.SetData(uid, KudzuVisuals.GrowthLevel, 1, appearance); } diff --git a/Content.Shared/Anomaly/Effects/Components/TileSpawnAnomaly.cs b/Content.Shared/Anomaly/Effects/Components/TileSpawnAnomaly.cs index 69209680bb..7e3125ba20 100644 --- a/Content.Shared/Anomaly/Effects/Components/TileSpawnAnomaly.cs +++ b/Content.Shared/Anomaly/Effects/Components/TileSpawnAnomaly.cs @@ -1,7 +1,5 @@ using Content.Shared.Maps; using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Shared.Anomaly.Effects.Components; @@ -11,7 +9,7 @@ public sealed partial class TileSpawnAnomalyComponent : Component /// /// The maximum radius of tiles scales with stability /// - [DataField("spawnRange"), ViewVariables(VVAccess.ReadWrite)] + [DataField, ViewVariables(VVAccess.ReadWrite)] public float SpawnRange = 5f; /// @@ -23,6 +21,6 @@ public sealed partial class TileSpawnAnomalyComponent : Component /// /// The tile that is spawned by the anomaly's effect /// - [DataField("floorTileId", customTypeSerializer: typeof(PrototypeIdSerializer)), ViewVariables(VVAccess.ReadWrite)] - public string FloorTileId = "FloorFlesh"; + [DataField, ViewVariables(VVAccess.ReadWrite)] + public ProtoId FloorTileId = "FloorFlesh"; } diff --git a/Resources/Prototypes/Entities/Effects/mobspawn.yml b/Resources/Prototypes/Entities/Effects/mobspawn.yml index c82adc7ba0..20a205feb0 100644 --- a/Resources/Prototypes/Entities/Effects/mobspawn.yml +++ b/Resources/Prototypes/Entities/Effects/mobspawn.yml @@ -57,4 +57,48 @@ sprite: /Textures/Effects/mobspawn.rsi state: crab_uranium - type: SpawnOnDespawn - prototype: MobUraniumCrab \ No newline at end of file + prototype: MobUraniumCrab + +- type: entity + id: EffectAnomalyFloraBulb + noSpawn: true + components: + - type: TimedDespawn + lifetime: 0.4 + - type: Sprite + drawdepth: Effects + noRot: true + layers: + - shader: unshaded + map: ["enum.EffectLayers.Unshaded"] + sprite: Effects/emp.rsi + state: emp_disable + - type: EffectVisuals + - type: Tag + tags: + - HideContextMenu + - type: AnimationPlayer + - type: RandomSpawner + deleteSpawnerAfterSpawn: false + rareChance: 0.2 + offset: 0.5 + chance: 1 + prototypes: + - FoodAmbrosiaVulgaris + - FoodAmbrosiaDeus + - FoodBlueTomato + - FoodAloe + - FoodCabbage + - FoodCarrot + - FoodGalaxythistle + - FoodGatfruit + - FoodLemon + - FoodLemoon + - FoodLime + - FoodPeaPod + - FoodPineapple + - FoodOnionRed + - FoodWatermelon + rarePrototypes: + - MobLuminousEntity + - MobLuminousObject \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/anomaly.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/anomaly.yml index 3b5d33ee06..6d2149965f 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/anomaly.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/anomaly.yml @@ -18,5 +18,6 @@ - AnomalyIce - AnomalyRock - AnomalyLiquid + - AnomalyFlora chance: 1 offset: 0.15 # not to put it higher. The anomaly sychnronizer looks for anomalies within this radius, and if the radius is higher, the anomaly can be attracted from a neighboring tile. diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml b/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml index 52a0a1c589..e7ed489cb0 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml @@ -33,7 +33,7 @@ - type: MobThresholds thresholds: 0: Alive - 100: Dead + 50: Dead - type: DamageStateVisuals states: Alive: @@ -70,15 +70,15 @@ types: Heat: -0.2 - type: NoSlip + - type: Pullable - type: ZombieImmune - type: NameIdentifier group: GenericNumber - type: GhostTakeoverAvailable - type: PointLight - color: "#e4de6c" - radius: 8 - softness: 2 - energy: 5 + radius: 3.0 + energy: 4.5 + color: "#6270bb" - type: FootstepModifier footstepSoundCollection: collection: FootstepBells @@ -105,7 +105,7 @@ - type: MeleeWeapon damage: types: - Heat: 16 + Heat: 10 animation: WeaponArcFist - type: StaminaDamageOnHit damage: 16 @@ -127,7 +127,7 @@ - type: MobThresholds thresholds: 0: Alive - 50: Dead + 30: Dead - type: DamageStateVisuals states: Alive: @@ -139,7 +139,7 @@ - type: MeleeWeapon damage: types: - Heat: 8 + Heat: 6 - type: Destructible thresholds: - trigger: @@ -167,7 +167,7 @@ - type: MobThresholds thresholds: 0: Alive - 60: Dead + 40: Dead - type: DamageStateVisuals states: Alive: @@ -181,7 +181,7 @@ types: Heat: 5 - type: HitscanBatteryAmmoProvider - proto: Pulse + proto: RedLaser fireCost: 140 - type: Battery maxCharge: 1000 diff --git a/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml b/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml index 5f3f8bb5cb..2c643bc57d 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml @@ -103,6 +103,59 @@ - type: Kudzu spreadChance: 0.3 +- type: entity + id: KudzuFlowerFriendly + name: floral carpet + suffix: Friendly, Floral Anomaly + description: A colorful carpet of flowers sprawling in every direction. You're not sure whether to take it down or leave it up. + parent: Kudzu + components: + - type: Sprite + drawdepth: FloorObjects + sprite: Objects/Misc/kudzuflower.rsi + state: kudzu_11 + - type: Kudzu + spriteVariants: 5 + spreadChance: 0.01 + - type: SlowContacts + walkSpeedModifier: 0.8 + sprintSpeedModifier: 0.8 + ignoreWhitelist: + components: + - IgnoreKudzu + - type: RandomSpawner + deleteSpawnerAfterSpawn: false + rareChance: 0.3 + offset: 0.2 + chance: 0.1 + prototypes: + - FloraTree01 + - FloraTree02 + - FloraTree03 + - FloraTree04 + - FloraTree05 + - FloraTree06 + - FloraTreeLarge01 + - FloraTreeLarge02 + - FloraTreeLarge03 + - CrystalCyan + rarePrototypes: + - AnomalyFloraBulb + +- type: entity + id: KudzuFlowerAngry + suffix: Angry, Floral Anomaly + parent: KudzuFlowerFriendly + components: + - type: Kudzu + spreadChance: 0.4 + - type: RandomSpawner + chance: 0.2 + rarePrototypes: + - AnomalyFloraBulb + - MobLuminousEntity + - MobLuminousObject + - type: entity id: FleshKudzu name: tendons diff --git a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml index fdda7ea0a4..dabfd81034 100644 --- a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml +++ b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml @@ -208,7 +208,6 @@ types: Radiation: 10 - - type: entity id: AnomalyIce parent: BaseAnomaly @@ -290,6 +289,86 @@ - WallSpawnAsteroid - SpawnMobOreCrab +- type: entity + id: AnomalyFlora + parent: BaseAnomaly + suffix: Flora + components: + - type: Sprite + drawdepth: Mobs + sprite: Structures/Specific/Anomalies/flora_anom.rsi + layers: + - state: anom + map: ["enum.AnomalyVisualLayers.Base"] + - state: pulse + map: ["enum.AnomalyVisualLayers.Animated"] + visible: false + - type: PointLight + radius: 8.0 + energy: 8.5 + color: "#6270bb" + - type: Anomaly + animationTime: 6 + offset: 0.05, 0 + corePrototype: AnomalyCoreFlora + coreInertPrototype: AnomalyCoreFloraInert + anomalyContactDamage: + types: + Slash: 0 + - type: TileSpawnAnomaly + floorTileId: FloorAstroGrass + spawnRange: 10 + - type: EntitySpawnAnomaly + maxSpawnAmount: 30 + spawnRange: 10 + superCriticalSpawns: + - KudzuFlowerAngry + spawns: + - KudzuFlowerFriendly + +- type: entity + id: AnomalyFloraBulb + name: strange glowing berry + parent: BaseStructure + description: It's a beautiful strange glowing berry. It seems to have something growing inside it... + suffix: Flora Anomaly + components: + - type: Transform + anchored: true + - type: Physics + bodyType: Static + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.2 + - type: InteractionOutline + - type: Damageable + damageContainer: Biological + damageModifierSet: Diona + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 1 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:SpawnEntitiesBehavior + spawn: + EffectAnomalyFloraBulb: + min: 1 + max: 1 + - type: PointLight + radius: 2.0 + energy: 4.5 + color: "#6270bb" + - type: Sprite + noRot: true + sprite: Structures/Specific/Anomalies/flora_anom.rsi + state: bulb + - type: entity id: AnomalyLiquid parent: BaseAnomaly diff --git a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/cores.yml b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/cores.yml index 6679b2d533..928516f21b 100644 --- a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/cores.yml +++ b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/cores.yml @@ -135,6 +135,19 @@ castShadows: false - type: Electrified +- type: entity + parent: BaseAnomalyCore + id: AnomalyCoreFlora + suffix: Flora + components: + - type: Sprite + sprite: Structures/Specific/Anomalies/Cores/flora_core.rsi + - type: PointLight + radius: 1.5 + energy: 2.0 + color: "#6270bb" + castShadows: false + # Inert cores - type: entity @@ -255,3 +268,16 @@ energy: 2.0 color: "#ffffaa" castShadows: false + +- type: entity + parent: BaseAnomalyInertCore + id: AnomalyCoreFloraInert + suffix: Flora, Inert + components: + - type: Sprite + sprite: Structures/Specific/Anomalies/Cores/flora_core.rsi + - type: PointLight + radius: 1.5 + energy: 2.0 + color: "#6270bb" + castShadows: false diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_11.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_11.png new file mode 100644 index 0000000000000000000000000000000000000000..10b9c0e59a2aa0d8353a90e167ad09d8522840e8 GIT binary patch literal 1425 zcmV;C1#bF@P)Px)OG!jQR9JcNG78Lmz5Z-3pRP?vyC?M~W@_;EXNoA-ioE%wm18DP${= zvaQfj>PyT107+gZVS?KjErmj(4&1TuKCwY@l^m1f$w_6f z4hN$?)zjgqlKU(NxOZy_TU7&*a1?8Mg(o=|@aOfLV0O7M8EliA0i#mFn*KiEp`=Rg zK676!L_FX)IVaHzrqE%+*wz6*roeZYflM!#X?nR#*-VP2m&^2GebaOI)3Xz#j`sKp zlRDZ%^5nZ&mIX=hWa|af?t38ct>aKgX~yLjRJfHzNxu!qGy<1BNDb0BE zdK1t7`Ue1flLJ8i*dT5`e&(x=yO~ibA(2!m!2OeZQ#Ie=?-&2#)3$vGDb2Rjx`Xg6 z+dtLvA9C+S4=OMqASr&!PcOIN*QSX*dPk| zBCMK)uP>d&frH;QyeYu@*Uy&$z^Pn~P;E$v#UwY%A zmu1GYCJ`3lZ2EW)Z;(DbLcdi#n^c_Ci}06fe+5Rq`yk%W^UJ^L}z zcb+)r=~3~OO}$<)g&e2RU?LV*s4LM;>Szxg8E7LJ2;klM(s!PaJF)z~JMEIb2;^a8 zy;ox=!7Y*fjRMQDT8_6n&dV0?J0zQSBQLlm%*KZ#mVx@UbVmT3faP`Y^fByTCmcC& z7=?Th>Dh^0wLd*OLH%Qc0P6j=YL-1mvAANlPyoP@fi@cXrr#qvBLn9luVcV_k=j^Y z!BAf>fcl{E!okU9MdX6qTXZBGtqT#~Y3>t0(Xz43Zmh1@EXl(qZ#}%W9ctQRZ&&9d zpE+&>7ikZbT$#HS{J?lN8Oh|umKk|_wAG=O_iioO=d+m)Ca5c zVyA<)MnU-vaSxl{`b_36|%!nH;m^=CX)Q^9t%Dx?iXlnSHP-7<%Yz_L-y4&wb fHwgEyE&%u+6+Q~7cl+4e00000NkvXXu0mjff^fIs literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_12.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_12.png new file mode 100644 index 0000000000000000000000000000000000000000..ded87828507bc1a523936870c40ce845583b775e GIT binary patch literal 1112 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_15.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_15.png new file mode 100644 index 0000000000000000000000000000000000000000..ded87828507bc1a523936870c40ce845583b775e GIT binary patch literal 1112 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 l5!EyGTRH&1tm&~*;BcUmleheb zOpU)}XFvO{re{YFAGP-PY3WSK0W3~TkGrAghwSafJ1#bW3r?Ru;dZy3>7K98zwfSZ z{bt!8w~BkrJArSkwXUv*d933%zUf?W;MJ2y+~Rw)_Qk2MYCkNm+FWzq(#}nbBjv?Y z{<}W;M%aUBX@KaAjBUB>_OBsotZ{zh+Lm!I&f&hE1BYHQES_8b#KD2VKmW4y(zTj5 zQi%pG0UBK&Q8zb?d7MxEJv)zg?DV@QiYRp+d*K+-O7P==hxGoxyCEVBz=`pB^Fl2g z&gbDZ4hDnA&6ya-z&;px`Y`i%3|c(TbP*NUPIwt2ni_r4S{^zWA(4jv-nAJ&e;_v= zbE0Dpir?6GecN*(&o^NPn%u+S=zLN{;hn%CLWhgn5s5Tfp20fySMHN_o+}W{N1_)3 z67^6$)^Xe}5yF zrm8E^%Vs}X2t}xI=4i+rVWotS%cYASxODSgFjQ4oU~tr*ry-uBBM5Y2d%UP4Nkhmr zkQbQyp0U($s0q1*;Lwwue@vCY9BWiqSLyYmx$0PJ5`|o4*L~QVQwhDC3>Grf!U89> zIzoneu8KRTH$X69{t$79#ybI2y7|VgmnD=z<2W?8JYOm-AR6ZD)8qE^*_uydPm*UZ z?Xf>D*F>xe75DYDn~asDu(B2}ss2UA`64gZl#lx)ENg zOgM*#2M%rqV}bF9w;Ut~gp}b`{J|QbXZ=tK7o}L4$~4gPxu)xDOu%;Z5&8m7=JkHR zelSQlN>4%(@s&b*HtXB7);B9*j{MNZgwfJ4{&GE&egculed3IF0wc|xD^dXO@cy$s zL!L-Xs)4y>v@{;W%9e|DU}WrdJJ*~KYRhsoOdZfF2qS=+4d+CjYd%J?rZHmH(=oi9 zs2e!TCKrvbK4OVR!bw~d@_BN`+9Ji))vQnoA0ZMAb7|xlo^3jYpx`K#LRpq%$cjeD zmpl(Rw9VRM``#O&0mKL)n1wfAv&zRvpH>ivWMV$+A5J^e_RhwIK4(gj%e!Q%hbVEd zw|La41@+(`oREUJXCE26>GY-3{M}f)QR6GzX2Vd*3eqz z1!Z<^!L9gGtoyarQ-Uzc0u~dMh$WO3J7T^APdo=W7uS52VmKBz8cZRa(2}j?S)crJ zL*l(s*>R2$ajzDp`2RwMx!p`l1x(95Q&Um_Mq1JB?B@iLe~D?O UQ;4KJi~s-t07*qoM6N<$f(>PcOaK4? literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_25.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_25.png new file mode 100644 index 0000000000000000000000000000000000000000..2598af3d4fe637fd9afe0015cf80b8dfc749f6d2 GIT binary patch literal 1722 zcmV;r21WUaP)Px*bV)=(R9JK9t!$7)>&VACof;Shx^(+mc4;+FZXmc7oE2iKA27{TK=zh z@Jr4CATp{lms{a3x55X;`namkA-j}CVPIwS!{t^u02t{cLP0<8>A%4S#`?G#OCY=P|(jQBVW5m{FW1-?C4z}I$N@(bRGa~F1NysbP|oHF2SLc zBV*>^y)cf9nZsmi0qRhU$=N%r>tUpmXzgx;&EXVAoz?ZAjJ+4e(HWe8Ln%jvyT8b} zTqT>O6abcAuj0j{w*Y|a{YMcB`nh}v0Cde{wiOP0r5%TShed{)>>Di3UdES^F>?q+ zXZiffYLT7DsLF)%k(m_Fm^r+7^cLULeucWGEjW8%50j(THIupA3U^l50{|ME8=&fQ zs9NDL(n&b0>(SCP2-(h?`FGfLWGfs>xv&QS17m$$izPmTkk+mvTLAzWGlxRwls(+Y zXB`8o00F#ThsH6PT7W|-2R_-UYpOxU%;9?fQQ;#H?zMm$05HF@Y60NLOp423`M)KD zFc9t)HcGwsbTxBoov6U0KYF0X=K;VHt+TowI?OLRrz#ogB!;h^=jS>uvp^VJ)#r-d z``SJHpz~Yw4BcP=z~p(p_2407P*V11jy795hf&^#TLBW-@OF=QP{f%QjkD;sz(w)AK_PCs*}342<>hUrzpRsT?gLGFp*Q zmC2Q{h|$H4%Z##=34;PGeD)+V#j;CTXrH*A_LT~RTH|Z?Si}i{bwp@WsqrI@r;#n? z2*{7&z*wK9m1NK5R=B6DS!j$+R>9$`=Su=>=ZRX2!O7HupxBX_ln^m;uIh8Re>)B! zKl2~9eQl{w)e0A_u@P7RVEFDmQ7T!*c5d4NEtU{~BT9Yo=q+Bxmn~(M5f1>_r7To^ z4z1m7VxN&tifR`1OD;XlDgYev9p?5*JJg{VBi&ejy(+l=qPLN)$C@^W6LhxF2OAjc zDCPKm&kk|c(^OkjQD3{K$T3u!jYr zv%Icp3+kG-AYS!Kg*C7!R0dHg`#j&LWk8dvG&HOuYL7hx3U-wh8l}h>)K_=4x-`P z0D$4=&nz}}o~Y&fPws~?Slo6|1z8mX(OF*jUjE)I{AOJ5i-~@d3I@WxVo%Zai+;;o z@TF_k_OgxQi%7m3$~r=Joz?Xq4*B=_v*No$DKRO`iu9a7R+#a6)m(4ye`=n;p`gjf Q;{X5v07*qoM6N<$f)8gxVE_OC literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_31.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_31.png new file mode 100644 index 0000000000000000000000000000000000000000..59beb95b95b52365a55efe2bf91c64325df807c2 GIT binary patch literal 2065 zcmV+s2=4cZP)Px+%Sl8*R9J;=mtjm)*%ilsZ*~%3D&izKni({s5oD-C@Pj%^V(mCU+Eq%4k-@Mv zu+;8mu>{vHq-m4(3xRaEhLyxDaW&HzL1GN6_5(0ZHYUo@G+mpqjJU*o5#K~--6Dd+ zn3#F}Fx=bs!1HC^-1pu&_n!0rpZ|FPbYDBA?+aGyKEF%v>uuICSogJ4df>w<9YEYO zuD#8IO#waF6foWQ`CXcG`cM~)P^olAk!iQpV9KFxt^c0OX)x0XU6Ip)f?$8}Y zoa}kNLTWBW?ay`-j@~CVmtwOu4}gj)uW4rq)K&rKh^F1+#8P(@a@26x1lEDOvGk+Rcyyt zuJ+E0O5uV|CaD5o@%dePMU|K5`Erx1P6o)*)V4M7_{|cF(^F)UD$$6hwCpNXl3JRI zBcI|Z`wffJQ!*ow6(tNd1#~qLm)DA@V`?tNp`&}aIXp=wsZ!h4z|G-F8g`a25t~K4 zRCoNSX@k}6{Uo(C55NAN4cpdIP?Q6J!Dc1th{ zU|#v=q0B@yqA4(}i%qE0QzW%C4p%Po+t%`I<|PG1>v6bpIse)FGR-QWCgMaRn&R`j z^sJw(S;FVWmGHT7B^uF`kggRuYq7hATJ3W-w zmvepSBf9D;l#$Qh#o@}u;mS3EF&fbnk(s%g|Lzlub%|XHa=zR(oboP2TNt#>xdYkp#-p%|Y_E@I6 zPD{(39y#ct`;WJoUj~@Nl`Ee!;vqbgt*`I{S?UVlsiExJ;tF-4hdW!cHkjeaw%NI@}K(@bh3xlI$s~kUmvt&m1 z@?iwcH(T@Mn#JKJ8qt(!L{luRu>GZ5aJX_A`TSjyS{ftrpUw{Ot6%#8q~p6ocNEKl zPV2{CvM*SvH`Y`mN)zzy$ku(iGiLG?$qr%Gl}P>IlS33PWHA^X{hdht?ex%otdfpT&r3h=h>J)6eDvqtrCa}`CgME!_kZ~Lp`SAQ!yNyeo#(~EbKFi3 z2kQMiN$WUs3Mp&smcgIRyu@m?N+J5{Y6k$XAAgI-^J8XznB&bmKVt6b45N4dWjcri zp`ey9(eL+qHzC@t$Vz#AIp;rnABQVfYC!Rx0{QN-ma{VT#JrJK|0lIH*M~lmR28Ns;*5lbDO}J^sTXmq;vu)wLllj^ z-ex`D-^oDdK~D7Ek^mE^&sw$xU%qfsuJ?pGberAAK<7cmmK9HQ%)Q=C5=V_S)h0|S zkX6FQnrb;Ph``1nqpPk$3YVIQlPt)i^}SktU;kIb#o2$It?$)xz5j~bwa@R;>wf!p39ym_*&$<~^Pmj0W_uX`0pAX~j-QcP$SjX` zk?|OTn!m{RPW0Ylf9V#s<>yH1MJzlJIH(bg7(gfN>8Xmr{K7x6=YSh=@(mZ zJ3WY$S{!a{cH1iI+UzzNT$E7YWvs8wG?rNwr>98Gr3gpwGZCAW<2mquWY35A;FCjG z9B$M^90Ax&QkD8{oC^-Si)4WLC$D+<_4h!w%|Cv#WSWXBMn`HQE*%LixOeq5c~4)M zdbn{sE3YqSaCA(L>yVwG^QQYus_Jm%a`jdmo82abOVY6J_)*I1%d@(EZd_^DSpq;; zU4=4qDXa{Rj`5TAYvsv|4bauexM@-2k4hwn+bRTvXaYKCqtQILT(Fj%m5}bnTM(zvR9v0HP?1#5)z-Ymy vfbR3VbaAgI)M5HGH{M(6>usOtEB*WroHRPdl`vcV00000NkvXXu0mjfOT`_+ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_32.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_32.png new file mode 100644 index 0000000000000000000000000000000000000000..6640797aad08b285299bebd7e2776021b24a2811 GIT binary patch literal 1634 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 Q`2YX_07*qoM6N<$f|QiYXaE2J literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_34.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_34.png new file mode 100644 index 0000000000000000000000000000000000000000..cc226a2721907749ba4c897600a2f8e8b5bca416 GIT binary patch literal 1535 zcmV)8cYa%7f}k&!=Hs$E zwEy>h$2|&}%)Y4iM&23`IAWFJKNMq)4IdYA#^ufr3uUMQpUf;|RB-iy)VF^Vc>46@ z(Qs(9bVsd*lHK~Bx|e@_G`!#1YZ*;P8g6eO>Q*$dh-k_ELH4@SL%9(l`xTHncwqHG z-}6#QDaXa)&$ophmAw#ztyJ03d$J)i0q?vcSU_dsz4I}{1!JJE?(ShlxR~>oxF{T6 zZ2CQhCjWjxVLse$38*^dGzt*UIW!5qh1&9?{@3r}cLaeprV!qA)>9EYhjL!Be1U;g z*$Kjd9K3CM@2w++lpK;Y0@PT5vTJWN2&bauU;a=5ZEsiNOEXhq`9cEH5gJcJfE5&1 zeW-|@9pWt8#!KmB0}iBn};>xfUWkj1CXTy;>v02~gA9k*U|D@$W%=ZSt(1 zvFB{a;3*8}dn`-f`ciAJ>9d1r9wE24YC|E#x{lqAI}!84@5)j*{fgi`L%@)s;FLW{ zv;B`W6f!QMZqP`O5@**<4T;nfcUbe*L&}#pTyzR301FV`yVy|S*x#*Y)F>E)w4(PU z-Wv`CY@*2tKxQxh-gT*mD{omWN-ZRSv-IJ+fevI2w*)s6>^py5K>%bh${eoy_BKBoH%-pyZcH=~3Bw%?~c{l5_5o=deb(rJz89||qk^5fc-S%LRl zI2%ea3k;qC56A=W0W+qcPQ?i!(t6N06}+6jJfvlvo)S?Ym{uMTz#-Or63*6u1kAdU zCAeBykim?2OKK42lG>jvSm z)K~_tMaWMILV7WlY)Du+M?{-S?eR)t^b82M9d7dUg)sfnQ*sK9guz98A)+81tz37r z%CUe9Yk2dCB*wE5=Q+ctf~7S(!!BNEVN3mk^*$U=^oK@f5umV*y42G5_aZ-#Qp^EN~9jD5iT zgF~cK)uS%RX_ACC-hhvM7$2>bFC&qFdh9MMW zYeA=RTYS8g;XX4s8&W2}1!x$W+kt6z&kQ83c(vws%y}$4fUGoA4&Mq;q=$S1vL74F l^+fJhcGSV5|Hh!4{{UTs*ZG#21TFvo002ovPDHLkV1fn^+?N0V literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_35.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_35.png new file mode 100644 index 0000000000000000000000000000000000000000..379ae4c176dad2a7341084d16082853b5cd08244 GIT binary patch literal 1982 zcmV;v2SNCWP)Px+cu7P-R9J;|mt9O#X&T3Wry-GcMV7>=8w#Xr5U0cvyjTU@Y$i}36UPo3L(6Pu zi7wI14kHm~12+?IHUxIvm^viRvZIC#Bb6A^bXoB{6GKaIqW@=FIxMW1VBldP59eS3xKw+3!=5JNwoGgi6h>l z0>JBY2>|_>{#uIH=MwT+`Hbt63d1wH!cv%it!_8es# zAQFygYqL`-8(K-3O-SQbTRQRBx>9JhrPJA5P9z-DygrwRE=(sKt*apvnIv>=Nb|R! z7BWg%4p-G*u-ejRigxv1Q`1b=rdC;@RrP7H%3mn5=dp;aIW+#T8B! z{flQS?8)DS)t1g?Jc(Oe}56wpeYxr`4@;3_$Q zCCj2vAD{XgR$IE#^XuQ{0x;-rP&kshELj#*8-DfYeuih}xOL+*K05Oy0E_dT-0ipx zKy6hejmd2M z1Wg52>%p$OWhT%q|7Gd`Q47&)K*n;$eD-#)(8@`JNFkV zUE@O&iXS#JG&HZzB}$#iH1!M&s)%5VAN0L0L1xLa5V|&GASKVi0;S_^F^JZJ65oe=fg}mZ==A};t!pzLMct4N z{J1ZR{@yVj21c~Dt_xx_L*sGZV}ru#x*Eu=Gel^$rL#ESNq_GcoAIc@Xe1m{x_l&Sy z=T(MAbzKdSa7;6JsaR20qksH848WZS(~8|>i$3}8C42IBvF~su@z^>o)x`=Ek|lcv z2GwlIOEUxTpZ~tWl4YT+!nsufIb`H@sWX?JfkDo;KS(i{nX|({+wyw+&gTTWLk8O3 zPVCtZ<%A~ZwlpZCUz?pG5{_xEPb$PmXTBsJTW9(C1}~niQ1IS6%CO8x@anM?LwX$O zjh8xeX>7i!0md$HH+TpSO^{eh@IlRC1xA3j;JDBmJXM~YAHy?q#AEANZRy;)@fpYM zIR+r>_XB-aq$4KjWh5NaB+qZgqv-j%EjTX5?|g2k|M1KltzQiDbZl8EO)MqQ19|U> zeDUMHETRk31iC|7BplPEz39R;Jp+Rn`ctMwf=6Et$r1K!2bGN-DJ8iZ_*7-f>vIV` zqe|8sy?;r3|8fP{+JWv+vI|=KnnZu^7@mU#G&bMVWLL<@WSQ*Q4vJ0|VKV(Lr6a7i zbT#)!?_UxZE`LpJRVB9{J;9P?VfU&qta_3w(qL=U-hT9i?GWs4@X+5oMxZ;Sy~@x8 z{4s@|_3PUg-#!FjbYh$?ZAc+Go@vJ2;9+!Po=7;RMHi-7o1Iep0m(rnBj1z1ix1a99h^@pNpN%$ywnoGN#apRq%s{8fgg5N=+4&FI8D#T8EEz>yv0^|?gxsmpA~ zA-)gy8ovv6uL{*-a>zh(O?!LV!T+D}o`VHy;#Hr&NAT(~1EuS??UcEH>DMsXWwJ~r*#Yhb4?P2e4A0DAp7mq3rK|Ky33l}w zz$iaL{Oza3?p2|TLy{Fkkx7b97V)-my%<)i4{8ppeJ|M6OZEACv{VZ-YB!vQg=l&=|3`M4~HU?xEnl}XZ^}^z41smrs<8BI&%&0L2|l!4i>OB zJEaJ#zjw@#oz}i4p=u**_%JY{Nl=Ea4H>4TTw1oH=}0)X?R(qdL;vjm0PPx##z{m$R9J=W)2|MKP!z}UFBVK90SvHNoSRR;X0o{X9A*NQC$JjGK8Ksd+p6#6bJKMP+gb+e>unrC?jA8{4MzLB42i0|!*5&c(!UCX5 zY7AEg;BqY3ZI`X*_1ZR!CIbL$r_X#f#&-IR`qu+&d{3*A8p|9q8<|+Px$EJ;K`RCt{2+C2_}FciS?hYJ&v9>7HI;+eS%CL92#PE2)btPN3+(pS>|FL9Lj zL8*pU5dZ)H;6pczHpgovcZB4_9J^t(y_wSH-J8j}Ptw3a4r{-2+8We#|M4^;BGNW> zwe_0c%r!d9VU53&^%HnJjoh!7T?-H6x?;D+-Mj)~B(YYk;zc4gAf>jcE5C5nO}ZOK ztNkm{n@Kl^T$-R6AMTHb=ABSqi8(C89CA=obn)=85&!@I002Po)Mo~2!T0d(b<q1F%Ui636aq4+>|{H(tZr#D}GZFVLA&4dqEbs2>`Ib3q*b#XgtcK QtN;K207*qoM6N<$f{QVrv;Y7A literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/anom.png b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/anom.png new file mode 100644 index 0000000000000000000000000000000000000000..c71c52652df01a49bf76feeac3b5a4670faa6833 GIT binary patch literal 1716 zcmV;l221&gP)Px*Zb?KzRCt{2noUm|M;OQdPBz#`uwIA73$cr^Sz{#%v_ckeisD|w%CfpFkU zRO%r}mG}g`TqLlac>kW?0G5{t^j4Ja}pHtYBWQtZ^p_ON+2v7s3C)cGYe|rzySc@ zyR!fQhv-LEiMQMdtiz2q0QEcJOucYwd?vMyOllp40|y+UACbjy%cCEhSx_CK9}dwE z)&`P8^jA2j7S-$k7S4BPQ7rDGPr3xYJF7Ro9j`!SF>Hw}hApfO%><$53c;BLl^PhH zji`dqi(GCG0NT>^jSA03^hjrwIDp0iP;(DpAD&g>$mRAR2))QEaX3VOz1*giRpJnY zUj4jL8|oSZj0Q+Dub;CKX|;$&L1;!bJ0Lt8QR#PW?m7S^n{4JKW@V}WyjL|GN=~-9}IB1Y`PHuPGxE|1^_?>Kc6h=_cp>m(gDGl z1=S-5FnYBgPL~Z2))d&?RxHgg!y^ZDAZcTD7kGc~WXOw+)!n96Xk-Hg!0EE#>BBr8 z{Cw|J`E?C~zyI(I9ytI>=HYbN;FWp+03JDj%|ui)0>JcysP&q!zJx~()V(;N#!~>M zCq$&Ti-7j-8b$FFd}_~?i_J~~q2DQXO@w%9?3oI_=T(2LDPw4&Zg&u^4Zk!Cq8 zzt-oUVK4duB76Z6=@)-gz}QBo5(VUwB^_L?q3r$a@%T-*_N(HAdigAyz0RJqukKO& zvn<@^;?deF@|kt0DFu65WyqoPK$5$a%4Fx8;oEqwX}*OFAdmP0A^_lN zRDn1oV)*j6*ouAgAp)<4F?D6`P}Co-t)jTEEeMR)ss7+)ZPwk1m7zRW@Oa~|j`Q_( z02u>71pskKgu|&-b~pi>Q@d4JiDE0Zr5hui*N*L7z(4y6-u7s7^uu3o1Au=0LePfC z-zVV=kVfw5vfe!6|sJmqp(`D?$%6PK!@{p0mbQun(W<)Wq{YV6-dSoy~ z@ubGLlV8=MV!Di{QAIz0?=cks26qRJG+y1+B0^xc-q?+!>vfV})dAJIDf^C&-57w) z$yIory!&M3Wkp@%yIqUg$#3YN6dJWzuNu7GQk^EhDP!5`s~rvhuklTpGG)q?sgGO@ zf32nCcJB$Y{Ep-Y&@M53qGI>x+u@9k<_C}>i(!j#kG^o=(DMfx`2t*vI+`CqA`jCZ zeV=p*#o|8r?kvc-Mn8ksqK@SU7)8+lw6C$b++KwNY(7CN)b{)Uqi7tU#*-1GR*wfA z%@1I`FUkC&#$q!)RlOZp%N*o?JpnsCSHg{dmA!y2?8u>t*@&i~ffmqT0d_Gyi zWXOwrvV`y{ZjaZ>|8VUT^8>1Zoh}>he7BBkbJvkimh^qORH6Xi)MxsB9BofGI~KG$ zKj7F`fcEDnLtaczh{z{PSejqf-#g!wz2bh_s$zF+o0$$-KII1(^AqfDD;%O9cW?is zZ-`EYyby$5)UqZydmNlikce*-@c7`7PSknb6tr2_5hz>y@)ZNfCH-q z{m!8i`5$e504v{=9sYm|4$+UL`Q=Y1KY(mA?ofX+`2pILP{Q4I#pX$oeTl^CM0000< KMNUMnLSTaCJwBTN literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/bulb.png b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/bulb.png new file mode 100644 index 0000000000000000000000000000000000000000..d06908204373e43e96cd30a88e52a77270547ead GIT binary patch literal 746 zcmVPx%q)9|URCt{2n!irlP!z^LSC()kRD?wSHVY(VDe>fiHB2aC;0<_=J^{~>H^@+- zPR-gOQ=kh3=#T<&D@t<5LPAblCO6=?VoqKZbu_J!~!!QiPFw7f8 zQ@N;qa4h`C+Fw2^&9!KKT}60ze-CS=760jBQ1eR0JoIA^tREZ;uW70QgMQgt(8`=yT3QFOjU`}-^#5j>&HrfAIkRC;7R53 z#Q61-#1WYQvsxAaFz7wvq5u3Uh@kJA6>BC{5T#FxSJj``1W6PC%%c)++ARPU0J+Dg z6#b%fe$ab-HCOliGImc$Q$H{$vsxD0)&}lv`CS-?*sNH{RXzZ~q%J%re%P?NANm|XL5#`} zxb6W|j($j3bL7}!-9We5pK9T0>qkBabi~CvVC>CACH#>u^Jd1}-8+{lE%1eYtfIaeqC}xZ(b##Z1GZ z^=FD%Eemf$du#d(!!QiPFbu;m46|ggKR`v8{Q+1We?U_GME(FG$@}?P=zEW)>JK2& z_6baSE3C?Y?+-|-&;Ee0AlM(k{s8s|us?u4vp<0S0qhT8e?WBT><^g8qTkOiTAyJU chFMnr0pGxPSw<7m=Kufz07*qoM6N<$g3q2`p#T5? literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/meta.json b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/meta.json new file mode 100644 index 0000000000..31c0fc14e0 --- /dev/null +++ b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/meta.json @@ -0,0 +1,44 @@ +{ + "version": 1, + "license": "CC0-1.0", + "copyright": "Created by TheShuEd (github) for ss14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "anom", + "delays": [ + [ + 0.38625, + 0.38625, + 0.38625, + 0.38625 + ] + ] + }, + { + "name": "pulse", + "delays": [ + [ + 0.25625, + 0.25625, + 0.25625, + 0.25625 + ] + ] + }, + { + "name": "bulb", + "delays": [ + [ + 0.25625, + 0.25625, + 0.25625, + 0.25625 + ] + ] + } + ] +} diff --git a/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/pulse.png b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/pulse.png new file mode 100644 index 0000000000000000000000000000000000000000..06580ddfe33887d0be077dcc1234286c3ccb30ad GIT binary patch literal 1942 zcmV;H2Wj|;P)Px+P)S5VRCt{2nomd@Sscf|S!B(j7+N&$nzS@TgR)e@B6um$BHdCcNI_UiQ9)bi zVGrV-ENIb!?y2-z`~z(eFG5==x*}2=Jgn4%*n=U72&-AvD3;hB;v&o*lHbdF^M6up z+THnH#F@Yzx_cKSt#gx)uc}^O$Th{{ml(nC zKMVl?CZ4XLrz?nwr)vO!nnoA45~I@VSN*KPD>p_ZUv&d6-#(92GK2KakM{U8d?k%*cdi3~^!io5>rLSJJGV-Nc~~Og^{;NiPY+k3_eGcJ%mT(|w9g^Zd%{GE`QVp{CKr_?GU1 z%Ug=r(jEfM73}={_#9Gyt>NXHXP8;sV8>%idqTh@YQyZK(A~Qr1)3|6-Z?rI{x?Pe ztVG5!v$z45w-f+C!H{xyK~Q?<2!ZAb1ez=0@|MEoEk#YE3pI@{OPwb^1+K=YyKcnq z=?bE!E2!Y>P9g*cfR4d_0YCu(KzmCa%f9>^0JuF)EKh9%F#qhE;kUQcv14*Re+~df z1|q6_VGba0{yEK0CT&ffEC`pk6mE|bp<16Jc!IYzb+Tjbsv!8uN=wA2VcXH1?{s*0 zlnry@1Aza`x7hsnPr-bafbQM}>GJLKh_9qsw)kN9XUy$!!sD(G0^k$U*3^lYZ=M0j z-kDsm5&+FW_!Wovy9q8CgZ-FU++cTh^WbClZ?5xhj}xh6hIPJUu%G=lH<7CH9Rv?F zSEx=LG@SXNO$qRyJ0o-=65T?m)+bCxB)Vhaq34PqsPoiuGkkvZZ616?GL?-zmCPvE z{55xPJrejObmy0+wi&pl(Io)*Ne}=+wLZ2y0YEafhfu9g=sZ7BxxA&qzMwwfm)2vO zEcw*=%IdP*ULntwCxR4-Zn06AOzkN;uEw8OSyS*GlmN=!{P>(AdulT+C4f3c0rJl( zi62?C46V-I!+LDf!4G`^xO?l7f~B_7(1=pw^An~K-$4`4R$>(ZaIWkH03g1)kMaxU z`01A?m>-{mBl7~g2N%&X*slpEg@;E0vL+Q#JLt3~HK0C7mv2mBHM zlwT;vSvT-L1)OyQ(db1svFI&%@*pT++8t65yNN@#Bw69}GQ+3In0AM9zUquzAMi`{ zU0z6g$L!cz#H$$ES^1gL?{NNX~(+U}?D-5#gvW2M)w;oBf-^6^#2^3=9wN9pcc{o-SV zKQa&zHcE0nEp1lXHJt#G+v5~oO@Zu}p405STt($~_by12Z==$0FV@&!y>D=*!B2cR zV*JF1qtD7`K}^1lN|SG+pC68V5{lA!K8T{hzW}~1TefW3vSrKGS1;QiU<8*}R{^kB zQlt7jc?v{X_Xnsc65TT8PcY&e`U7ejU5Kxwh59^wl^L7v!`)k=KOj`=6TaHW%WPKt z0YKiLKy8rB_!ErynhD4Ur|%B{fFFMRS-N)TI#S6DW|AB1ck+Pwpo~U9p?m z@dv2MDqm5h1@gm&Z%AJAlUHcv6=AB(0EPPl zEk%8vtSB_>mN;V)*;Dw0@ppD?x(_1*4FK-3AVRf1;C9}hpvISXT+N?ghJWqOb;OqP z{8O#ZQ#Ds!pXa~hTjjre^Gws60YETFY4JbFAHb_ne*islR{a5H%JVc*C<#XXgc3lk zo2|z-9rXdfRCUD(Y3~@{yK^U^c_)^U`1*W!cvPs*1KF)@pt%Cwx$US~zEN?O)YjCg z$_K#w&e<*Tf@H}baFX@;o~{r^mhuznN%489`4g6Ne3I=CP-{%9KJWH8H3J}7tN_1MEwDU)aQ%MKQVs*y>OhSKj1X@C*lv_*Hx?SeQo@r*XN7vPhde5vp!#Je*z2Q czu*t}7h*C(#S4&WqyPW_07*qoM6N<$g6h?|3IG5A literal 0 HcmV?d00001