From 3acbcaf41ecafa9507cf8b8b5f8ef3868f21e1e7 Mon Sep 17 00:00:00 2001 From: RinKeeper <161238702+RinKeeper@users.noreply.github.com> Date: Fri, 9 Aug 2024 22:10:42 +0300 Subject: [PATCH] Spells (#599) * rod form spell * blind spell * mutate spell --- .../_White/Wizard/Magic/WizardSpellsSystem.cs | 90 ++++++++++++++++++ Content.Shared/_White/Wizard/WizardEvents.cs | 18 ++++ Resources/Audio/Effects/hulk_attack.ogg | Bin 0 -> 21998 bytes Resources/Audio/Effects/hulk_step.ogg | Bin 0 -> 7059 bytes .../Locale/ru-RU/_white/wizard/scrolls.ftl | 7 ++ .../Locale/ru-RU/_white/wizard/spellbook.ftl | 9 ++ .../Locale/ru-RU/_white/wizard/spells.ftl | 9 ++ Resources/Prototypes/Magic/white.yml | 51 ++++++++++ .../_White/Entities/Mobs/Animal/mobs.yml | 71 ++++++++++++++ .../_White/Objects/Scrolls/scrolls.yml | 27 ++++++ .../_White/Wizard/spellbook_catalog.yml | 48 ++++++++++ .../Objects/Magic/magicactions.rsi/blind.png | Bin 0 -> 580 bytes .../Objects/Magic/magicactions.rsi/meta.json | 9 ++ .../Objects/Magic/magicactions.rsi/mutate.png | Bin 0 -> 553 bytes .../Magic/magicactions.rsi/rod_form.png | Bin 0 -> 477 bytes .../White/Mobs/Aliens/hulk.rsi/hulk.png | Bin 0 -> 3419 bytes .../White/Mobs/Aliens/hulk.rsi/meta.json | 15 +++ 17 files changed, 354 insertions(+) create mode 100644 Resources/Audio/Effects/hulk_attack.ogg create mode 100644 Resources/Audio/Effects/hulk_step.ogg create mode 100644 Resources/Textures/Objects/Magic/magicactions.rsi/blind.png create mode 100644 Resources/Textures/Objects/Magic/magicactions.rsi/mutate.png create mode 100644 Resources/Textures/Objects/Magic/magicactions.rsi/rod_form.png create mode 100644 Resources/Textures/White/Mobs/Aliens/hulk.rsi/hulk.png create mode 100644 Resources/Textures/White/Mobs/Aliens/hulk.rsi/meta.json diff --git a/Content.Server/_White/Wizard/Magic/WizardSpellsSystem.cs b/Content.Server/_White/Wizard/Magic/WizardSpellsSystem.cs index c696b82902..9119c482a1 100644 --- a/Content.Server/_White/Wizard/Magic/WizardSpellsSystem.cs +++ b/Content.Server/_White/Wizard/Magic/WizardSpellsSystem.cs @@ -17,6 +17,7 @@ using Content.Server.EUI; using Content.Server.Lightning; using Content.Server.Magic; using Content.Server.Mind; +using Content.Server.Polymorph.Systems; using Content.Server.Singularity.EntitySystems; using Content.Server.Standing; using Content.Server.Weapons.Ranged.Systems; @@ -33,6 +34,7 @@ using Content.Shared.Cluwne; using Content.Shared.Coordinates.Helpers; using Content.Shared.Damage; using Content.Shared.Damage.Prototypes; +using Content.Shared.Eye.Blinding.Components; using Content.Shared.Hands.Components; using Content.Shared.Hands.EntitySystems; using Content.Shared.Humanoid; @@ -44,7 +46,10 @@ using Content.Shared.Magic; using Content.Shared.Maps; using Content.Shared.Mobs; using Content.Shared.Mobs.Components; +using Content.Shared.Mobs.Systems; +using Content.Shared.Movement.Components; using Content.Shared.Physics; +using Content.Shared.Polymorph; using Content.Shared.Popups; using Content.Shared.Revolutionary.Components; using Content.Shared.StatusEffect; @@ -90,6 +95,8 @@ public sealed class WizardSpellsSystem : EntitySystem [Dependency] private readonly ActionContainerSystem _actionContainer = default!; [Dependency] private readonly ChargingSystem _charging = default!; [Dependency] private readonly SharedStunSystem _stun = default!; + [Dependency] private readonly PolymorphSystem _polymorph = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; #endregion @@ -113,6 +120,9 @@ public sealed class WizardSpellsSystem : EntitySystem SubscribeLocalEvent(OnFireballSpell); SubscribeLocalEvent(OnForceSpell); SubscribeLocalEvent(OnArcSpell); + SubscribeLocalEvent(OnRodFormSpell); + SubscribeLocalEvent(OnBlindSpell); + SubscribeAllEvent(OnMutateSpell); SubscribeLocalEvent(OnBeforeCastSpell); } @@ -838,6 +848,86 @@ public sealed class WizardSpellsSystem : EntitySystem #endregion + #region Rod Form + + private void OnRodFormSpell(RodFormSpellEvent msg) + { + if (!CanCast(msg)) + return; + + var config = new PolymorphConfiguration + { + Entity = "ImmovableRodWizard", + Duration = 2, + Forced = true, + TransferDamage = true + }; + + var rod = _polymorph.PolymorphEntity(msg.Performer, config); + var angle = _transformSystem.GetWorldRotation(msg.Performer).ToWorldVec(); + + if (rod.HasValue) + { + RemComp(rod.Value); + _throwingSystem.TryThrow(rod.Value, angle, 20, msg.Performer); + } + + Cast(msg); + } + + #endregion + + #region Blind + + private void OnBlindSpell(BlindSpellEvent msg) + { + if (!CanCast(msg)) + return; + + foreach (var e in _lookup.GetEntitiesInRange(msg.Performer, 8)) + { + var wizardQuery = GetEntityQuery(); + var humanoidQuery = GetEntityQuery(); + + if (!humanoidQuery.HasComponent(e) || !_mobState.IsAlive(e) || + wizardQuery.HasComponent(e)) + continue; + + _statusEffectsSystem.TryAddStatusEffect(e, "TemporaryBlindness", + TimeSpan.FromSeconds(5), false); + + _chat.TryEmoteWithChat(e, "Scream"); + } + + Cast(msg); + } + + #endregion + + #region Mutate + + private void OnMutateSpell(MutateSpellEvent msg) + { + if (!CanCast(msg)) + return; + + var config = new PolymorphConfiguration + { + Entity = "MobHulk", + Duration = 30, + Forced = true, + TransferDamage = true + }; + + _polymorph.PolymorphEntity(msg.Performer, config); + + Cast(msg); + } + + + #endregion + + #region Helpers private void TurnOffShield(EntityUid uid) diff --git a/Content.Shared/_White/Wizard/WizardEvents.cs b/Content.Shared/_White/Wizard/WizardEvents.cs index aee755f6a8..1627b7ec42 100644 --- a/Content.Shared/_White/Wizard/WizardEvents.cs +++ b/Content.Shared/_White/Wizard/WizardEvents.cs @@ -202,4 +202,22 @@ public sealed partial class ArcaneBarrageSpellEvent : InstantActionEvent, ISpeak public string? Speech { get; private set; } } +public sealed partial class RodFormSpellEvent : InstantActionEvent, ISpeakSpell +{ + [DataField("speech")] + public string? Speech { get; private set; } +} + +public sealed partial class BlindSpellEvent : InstantActionEvent, ISpeakSpell +{ + [DataField("speech")] + public string? Speech { get; private set; } +} + +public sealed partial class MutateSpellEvent : InstantActionEvent, ISpeakSpell +{ + [DataField("speech")] + public string? Speech { get; private set; } +} + #endregion diff --git a/Resources/Audio/Effects/hulk_attack.ogg b/Resources/Audio/Effects/hulk_attack.ogg new file mode 100644 index 0000000000000000000000000000000000000000..dd55065e4bd413b11730eb1fd87f297e1188d357 GIT binary patch literal 21998 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 D(9{!? literal 0 HcmV?d00001 diff --git a/Resources/Locale/ru-RU/_white/wizard/scrolls.ftl b/Resources/Locale/ru-RU/_white/wizard/scrolls.ftl index 5845ad0088..755707ce8f 100644 --- a/Resources/Locale/ru-RU/_white/wizard/scrolls.ftl +++ b/Resources/Locale/ru-RU/_white/wizard/scrolls.ftl @@ -19,6 +19,9 @@ scroll-component-smite = кару scroll-component-mindswap = подмену сознания scroll-component-timestop = остановку времени scroll-component-barrage = магический залп +scroll-component-rodform = форму стержня +scroll-component-blind = ослепление +scroll-component-mutate = мутацию ent-BaseScroll = магический свиток .desc = Этот древний пергамент, ставший реликвией в арканных преданиях, хранит в себе бесчисленные мистические заклятия и забытые заклинания. @@ -58,3 +61,7 @@ ent-ScrollTimestop = свиток остановки времени .desc = { ent-BaseScroll.desc } ent-ScrollArcaneBarrage = свиток магического залпа .desc = { ent-BaseScroll.desc } +ent-ScrollRodForm = свиток формы стержня + .desc = { ent-BaseScroll.desc } +ent-ScrollBlind = свиток ослепления + .desc = { ent-BaseScroll.desc } diff --git a/Resources/Locale/ru-RU/_white/wizard/spellbook.ftl b/Resources/Locale/ru-RU/_white/wizard/spellbook.ftl index 45e09dcc68..212fcd1d6a 100644 --- a/Resources/Locale/ru-RU/_white/wizard/spellbook.ftl +++ b/Resources/Locale/ru-RU/_white/wizard/spellbook.ftl @@ -49,6 +49,15 @@ spellbook-timestop-desc = { ent-ActionTimestopSpell.desc } spellbook-barrage-name = { ent-ActionArcaneBarrageSpell } spellbook-barrage-desc = { ent-ActionArcaneBarrageSpell.desc } +spellbook-rod-name = {ent-ActionRodFormSpell} +spellbook-rod-desc = {ent-ActionRodFormSpell.desc} + +spellbook-blind-name = {ent-ActionBlindSpell} +spellbook-blind-desc = {ent-ActionBlindSpell.desc} + +spellbook-mutate-name = {ent-ActionMutateSpell} +spellbook-mutate-desc = {ent-ActionMutateSpell.desc} + spellbook-hardsuit-name = Скафандр волшебника spellbook-hardsuit-desc = Украшенный магическими драгоценными камнями скафандр, функционирующий так же, как и обычная мантия волшебника, но в то же время является пригодным для использования в космосе и бронированным. Небольшое замедление. Теперь вы можете произносить заклинания в космосе и местах с низкой температурой! Имеет функцию энергетического щита,который защищает от всех снарядов. Щит разряжается при получении урона и автоматически заряжается. diff --git a/Resources/Locale/ru-RU/_white/wizard/spells.ftl b/Resources/Locale/ru-RU/_white/wizard/spells.ftl index bba48bccdc..72aca1438f 100644 --- a/Resources/Locale/ru-RU/_white/wizard/spells.ftl +++ b/Resources/Locale/ru-RU/_white/wizard/spells.ftl @@ -51,3 +51,12 @@ ent-ActionTimestopSpell = Остановка времени ent-ActionArcaneBarrageSpell = Магический залп .desc = Выстрелите потоком магической энергии в ваших врагов с помощью этого мощного заклинания. Для использования требуются обе свободные руки. Не работает без волшебной мантии и шляпы. + +ent-ActionRodFormSpell = Форма стержня + .desc = Превращает вас в неостановимый стержень, который разрушает все на своем пути и наносит тяжёлые повреждения любым живым существам. Будьте осторожны с ипользованием, вы не сможете поменять направление движения до окончания заклинания. + +ent-ActionBlindSpell = Ослепление + .desc = Ослепляет всех живых существ в небольшом радиусе от вас. Не действует на других магов. + +ent-ActionMutateSpell = Мутация + .desc = Ненадолго преврашает вас в халка, который может стрелять лазерами из глаз. diff --git a/Resources/Prototypes/Magic/white.yml b/Resources/Prototypes/Magic/white.yml index 59f4b17ebb..0144117b52 100644 --- a/Resources/Prototypes/Magic/white.yml +++ b/Resources/Prototypes/Magic/white.yml @@ -383,3 +383,54 @@ state: arcane_barrage event: !type:ArcaneBarrageSpellEvent prototype: ArcaneBarrage + +- type: entity + id: ActionRodFormSpell + name: Rod Form + noSpawn: true + components: + - type: Magic + requiresClothes: true + - type: InstantAction + useDelay: 60 + itemIconStyle: BigAction + checkCanInteract: false + icon: + sprite: Objects/Magic/magicactions.rsi + state: rod_form + event: !type:RodFormSpellEvent + speech: "CLANG!" + +- type: entity + id: ActionBlindSpell + name: Blind + noSpawn: true + components: + - type: Magic + requiresClothes: true + - type: InstantAction + useDelay: 30 + itemIconStyle: BigAction + checkCanInteract: false + icon: + sprite: Objects/Magic/magicactions.rsi + state: blind + event: !type:BlindSpellEvent + speech: "STI KALY!" + +- type: entity + id: ActionMutateSpell + name: Mutate + noSpawn: true + components: + - type: Magic + requiresClothes: true + - type: InstantAction + useDelay: 120 + itemIconStyle: BigAction + checkCanInteract: false + icon: + sprite: Objects/Magic/magicactions.rsi + state: mutate + event: !type:MutateSpellEvent + speech: "BIRUZ BENNAR!!" diff --git a/Resources/Prototypes/_White/Entities/Mobs/Animal/mobs.yml b/Resources/Prototypes/_White/Entities/Mobs/Animal/mobs.yml index 53ec558d27..2da6687b4b 100644 --- a/Resources/Prototypes/_White/Entities/Mobs/Animal/mobs.yml +++ b/Resources/Prototypes/_White/Entities/Mobs/Animal/mobs.yml @@ -7,3 +7,74 @@ - type: NpcFactionMember factions: - Changeling + +- type: entity + name: Hulk + id: MobHulk + parent: SimpleSpaceMobBase + description: Green + components: + - type: NpcFactionMember + factions: + - Wizard + - type: Speech + speechVerb: LargeMob + - type: Sprite + drawdepth: Mobs + sprite: White/Mobs/Aliens/hulk.rsi + state: hulk + noRot: true + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.45 + density: 100 + mask: + - MobMask + layer: + - MobLayer + - type: MobThresholds + thresholds: + 0: Alive + 350: Dead + - type: MovementSpeedModifier + baseWalkSpeed: 2 + baseSprintSpeed: 5 + - type: Tag + tags: + - FootstepSound + - type: ProjectileBatteryAmmoProvider + proto: BulletTrailLaserLight + fireCost: 50 + - type: BatterySelfRecharger + autoRecharge: true + autoRechargeRate: 50 + - type: Battery + maxCharge: 1000 + startingCharge: 1000 + - type: Gun + projectileSpeed: 48 + fireRate: 1 + ShotsPerBurst: 2 + useKey: false + selectedMode: Burst + availableModes: + - Burst + soundGunshot: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg + - type: CombatMode + - type: MeleeWeapon + angle: 0 + animation: WeaponArcSmash + soundHit: + path: /Audio/Effects/hulk_attack.ogg + soundNoDamage: + path: /Audio/Effects/hulk_attack.ogg + damage: + types: + Blunt: 40 + Structural: 40 + - type: FootstepModifier + footstepSoundCollection: + path: /Audio/Effects/hulk_step.ogg diff --git a/Resources/Prototypes/_White/Objects/Scrolls/scrolls.yml b/Resources/Prototypes/_White/Objects/Scrolls/scrolls.yml index 2acf9f759d..4744c1a23b 100644 --- a/Resources/Prototypes/_White/Objects/Scrolls/scrolls.yml +++ b/Resources/Prototypes/_White/Objects/Scrolls/scrolls.yml @@ -178,3 +178,30 @@ - type: Scroll actionId: ActionArcaneBarrageSpell learnPopup: scroll-component-barrage + +- type: entity + id: ScrollRodForm + parent: BaseScroll + name: "Rod form scroll" + components: + - type: Scroll + actionId: ActionRodFormSpell + learnPopup: scroll-component-rodform + +- type: entity + id: ScrollBlind + parent: BaseScroll + name: "Blind scroll" + components: + - type: Scroll + actionId: ActionBlindSpell + learnPopup: scroll-component-blind + +- type: entity + id: ScrollMutate + parent: BaseScroll + name: "Mutate scroll" + components: + - type: Scroll + actionId: ActionMutateSpell + learnPopup: scroll-component-mutate diff --git a/Resources/Prototypes/_White/Wizard/spellbook_catalog.yml b/Resources/Prototypes/_White/Wizard/spellbook_catalog.yml index 590c75e38d..6ca825b0fc 100644 --- a/Resources/Prototypes/_White/Wizard/spellbook_catalog.yml +++ b/Resources/Prototypes/_White/Wizard/spellbook_catalog.yml @@ -321,3 +321,51 @@ conditions: - !type:ListingLimitedStockCondition stock: 1 + +- type: listing + id: SpellBookRodForm + name: spellbook-rod-name + description: spellbook-rod-desc + productEntity: ScrollRodForm + icon: + sprite: Objects/Magic/magicactions.rsi + state: rod_form + cost: + SpellPoint: 4 + categories: + - UtilitySpells + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellBookBlind + name: spellbook-blind-name + description: spellbook-blind-desc + productEntity: ScrollBlind + icon: + sprite: Objects/Magic/magicactions.rsi + state: blind + cost: + SpellPoint: 1 + categories: + - UtilitySpells + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: SpellBookMutate + name: spellbook-mutate-name + description: spellbook-mutate-desc + productEntity: ScrollMutate + icon: + sprite: Objects/Magic/magicactions.rsi + state: mutate + cost: + SpellPoint: 3 + categories: + - AttackSpells + conditions: + - !type:ListingLimitedStockCondition + stock: 1 diff --git a/Resources/Textures/Objects/Magic/magicactions.rsi/blind.png b/Resources/Textures/Objects/Magic/magicactions.rsi/blind.png new file mode 100644 index 0000000000000000000000000000000000000000..613be8efa9fe02503b75adbe472e4e5f278f1fba GIT binary patch literal 580 zcmV-K0=xZ*P)Px${z*hZR9J=WRWVD$KotIzZW53{HX-&Lb+m(nf@2Yi|3HOqg`#uCLAzUoZUyxp zsDqA$I&^TYW0Z(=5xNAoLLBs6lS|TjSKCQH2;_3#z30|5Fy7@L7ky_nhctA}^6@&#D= zLQLEwhSmT<{rkQUcyt^&esmo4g^=UDN(JqAn-hAx0qSH`902UvsLSbHH4%+5k%8#8 z>I;Fs5b%Nk!}9}J`GTCY@&ydf58wrXa-0V0c&<3WI0@+>q2LsFzx5I0U6mcA@wSd1#%i!{Lkdd5-s@9r zZsliNUX_#A^3)8Z3H}z^ZAdBP)-=l1rJrRW8iao0>>PQB-gcDiopB!O_7^4s}&GKY*j3 z#=*g_Aef~~2X}FDsGH!frJyKnY#MXYUK&H%=B58A^gwyJU_1pDNVxj;He%W+zUo>!5Zs69n<3cC{FnA%8M6PTh_u6!SHVQ=@hzX$tAS-9^ z^QwjXjg9=O4U~a=R*RJhDbTOa7uuAq2sh~1IV)POfKc+Cwy_7eCZ%o77f-GP}gVh2|Skk(ssGho--UC5C(p}K%$0ATQqV?Feq zwv>SHp3+8)1P~USLBrJXiwrRkz#rUtZ$aNo_VkteDiD!N@bO@EY7Kn7G_kzbeN=2M zo$&m6l}Z^vR&P~Xp3U99a*#qgqy6)vO`p%_rf2gyY8E18fD>~f>4ISWX-ij#U(_tj z#_O1A_rHGoiGK7SDS)<^@F1kdqTptv=%=qIVSh*B9Sp#USmRpAizXPHA|$(|*EyjC zAm_eZGre3LcR5Fq-wr-A6hOa8q~AFPYd-R$I4JH3f$-aLG*lb<&xWZ0j6!pO*#S^F riYM|#6s9Px$mq|oHR9J=WmcdE_K^(?^h6e5{D zzY6f*I!F#<2Z9j>9qLF zo~UxpK^%B7}4uQ(9J1cH3p?I;QNl z%hIp=HI+S;&Vr)nMS4%hWb8Xq9gYBKmTK#3MANuB{3dQBXqIXK+~1u8>Rk{tFC^V| zS;mb74`&y^*onB2U}v|megPkE)k(%*gLmRa0zivgOTauKy5tbzMihp0gFl5IloFe` Tb#Me&00000NkvXXu0mjfFC^1< literal 0 HcmV?d00001 diff --git a/Resources/Textures/White/Mobs/Aliens/hulk.rsi/hulk.png b/Resources/Textures/White/Mobs/Aliens/hulk.rsi/hulk.png new file mode 100644 index 0000000000000000000000000000000000000000..40f98927a367e6248ff55bbebfd660f99452e511 GIT binary patch literal 3419 zcmV-h4W#mkP)ser2xvy~%&ZT#WaQNERsE`8RaZ|}w|mG> z>z$eIu6p%ey?Xzunl*C?eDmF{3x5CCUteD_p9w?I?aerd?>)GwFI{{N=7*x&i*XWv z`{8xCw)fyx??L=O=yqmY)NKF65mAx*8&ceRuzt zALhk$J2O5xnwsD3jm_!R6Z6Nv&Ey(CH$H8ef7|;j!{Md@^JlYjvp!l2pK{%tcIv8_ zaT*jb4yM86{MVUTpN`CYJTup?jpVw1c8Hm0UuTxanXv-4{|PN~BA@e_yKZ7(Vd*-Hj`uz*Db@yBdn`?Ha%}9i>cz$lLubI6&?pfPb2C}_7?j(d9 zU1QwZ-rKol{`;Sg;n_QP{t&JcC3LfllQ4*aQQ++pM+}nRez;*Kk5A3Q#A=P}P(MEV z?W3=w!L$h=NB8B+SMn(;?eUv0Zd&HuCjsU`yOeH?aav9i4ovTRqhd7+(%pMxV(aQ9 z{&MyzJp1-ZHDhWpS>u2vNjERqQ#P`=KVmtntUE62l z^J)NxA4MBTP_CKR_SyIv`o}D23!I}1hR8_DC{!Iw%h*{rSL^rDE)`Hpw>IOt0i}uG zTC!vWGYV!Q1UK-TH7$S!Tt7h7Q2EBri15ixG)4Tbfpl4(7sx4 z)7Ix&(}Mt18tXX(3OyNNKPe+kbejfDwbkw{r^>muDGzHB3Yy9lr48^Mu50UVJWxhV zvc?ZbA)?ZNU#A+gPdtM^s-1k=e(pSot+}+Zw!@5EzYrc7rdkIB2LXI>D|i8CcxRy< z0q?Z^P`+M7qUS?&2O>ou4$2@jrrxk2bTp3nb(3N$?XkYa&?z?)&CnQ(#CAf2wp;b2 zT^l~3?l5jpe|LXY6FPz^ZQx|QUdaRFsdc2wg70HuqGwbjYpQ{8X7v4SGY;*=zbk;= z#JtEdhC#ysZGShu(6gqO%f_|(vJCy$PcfVZhI1`4kVIgdk_rCP&eTLD9D0ptA?aC! zkJpx*8i0Nv1eaaCuDM4h98SA{D&c_e$#A4CpIo~TIO*k~!9Klq)))^R`a$DCa}@WH z65*ir?;!bPhDDucCIlBLxMT!JaXT`DHR_f{HRGUz`|D;@dp^)LORRc23sg6Jr@B&Q zBB@#x*T1!aVTeez!iRk>}KWNmOY26R#7VQ#0;~h))dxflWHL?#=@9 zFi;Q%)*055o`p~ivC@`IZft^KB-0Yl-^quzS^$&hRXZ|&`WFA+3^efvL8LRSYcPyY z#IWvf)M%|~$)+yNb$lLDMv3A`+*B4mcmn0pkPdF|ew6%L?x~qT8x%7%w7WrD+}G6? zXEduEU8*m?`s+I;T!#Rd*R!8oV3u7tIu)g_1#^+F^qsg|y&8NRplnvc$)u>MkkOt& zM-a%k-i9G?)Ais5Y(F$?jaJ>w{EJ`#F^H#+<5{5(j$&``rbxJAx`HcJRYd}Ax%D#R z;1D8ff#lLu?MZ6(!fO}$VaUwi*?gQ$Xmqwi_dKDt7dYD_Qn4Mgm>$1>c zECm28yedl)vg?*yVAxdNXc>waFR7XJdA0;PEX~;!qAj{hQT$}C!VwWxzH+EiltvUM zq)Cj5D@xJ2lY;P7&tQ&ejS$aM<*k9U#-`IoA`NO9k~Y!KJ*Nwcxi(7~m+0p~wJX6u z1RbZom|0N7v~QEf1Dz0ZbhnPRtE$%dIL@iY`D{(2RX=oul-t=TY10S6a*vg9Yipwz zZqv-ATu`ELU0p$jbNO`}nlwoI%(y8X%X2xl(JitFCF@MzkF{d?^KH<}2FyKuUSBrR z7M0(?6cG_9HC?xljlq&3maGA?TN;Y1qJScDX@&7b=Hw6rb0PmY$K zOp;~wawavsKE|=uX6g$c8Qaj?3c z0uHDp_O|$Yh@)MflWs3(%TtCo=D&>wwCc00pmAe+EBrpb{=V~xMxrz0ED7D1ZwX=I z?BaZ-%yUQO_=H4*vWs7%>^c zWYhFPFUIw@FMxqyK)0`aWq-ZtrFzQ%ExUd1D|2x7SuIYO^gKJ;i*cxWTIIxmjt>`R zXr=)r|#5gzaoGY=`eBT+ict>Tra;q*IkW+Q?!O#BA{7Wl=ZpX!28HZuf zz7v2O`Ec>h{qP13YPc*ZxD0gS686|JxgZi zUe#_W<{7jE;m@5L3kQZ0;2s3jruwZ_R$6ZQZ3;lUl~gbo184F(@0BAyyxSC2p+#lCFnKGDoW4<@i z9Z{jBXxHj;9k7(~aAHYYZ;OR_69R|Sx|ZyC^g(*aPa-$tn5RqQl7I%}j;d+2&Ungn z?jAnF{cY1bjBEk}CxFbQC#g6_y1GI3$2CIWV)7dY`uUNpeFRU`hLZJOY~09vxaO^GQ1fkf zeX^nqtqNqS%8yQ%x-boNQgtvmv4*V)$CHIw70`DY#c6PTm!fE!7=E0_i*5vgL#pNy z$sM_w7%F59Czx#C$A|7Z)g92s&V>2V`{Dd}1Umq6BhOv7#Iq?RY#zS%Ckjt4#XOIp zEFQaK9m14Phq1&MNQF(x`IhN|V#XuO>1P(dKg_CFSycVHSqXICOh*w<=zIZVEIkC& zIdTh0BVZD&qU*1n{k9$j>4L6bEmD0^YsXEQ+^*RBrP^Ap4(+cB^f0&Y#rby_TZg_n&v@GzwxM@asw&L#F?B`fHSVmb zlQ#Y&JoU3JXJ5>4DJc=EJyzZE{pV+If=gvhUuJ)mYnVd6;e%0z8<2%><6AD|)GV)4mnJ6NP;b zED? zV|tBaFnH@&HtCK`ID=26j9#HmKMV zH&dN19$*V8IkAWXK)UuO#R(Q7e5P3H(~1}u)j4qQXzFt)A#$2*hVMfKFS%DPdAv*0 x1$5D)lz#Dy$1lga+_%qJ)ytsyd~J7u{|{ME3nITs4Y&XR002ovPDHLkV1hUmolO7$ literal 0 HcmV?d00001 diff --git a/Resources/Textures/White/Mobs/Aliens/hulk.rsi/meta.json b/Resources/Textures/White/Mobs/Aliens/hulk.rsi/meta.json new file mode 100644 index 0000000000..7b55252f7a --- /dev/null +++ b/Resources/Textures/White/Mobs/Aliens/hulk.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": null, + "copyright": null, + "size": { + "x": 31, + "y": 44 + }, + "states": [ + { + "name": "hulk", + "directions": 4 + } + ] +} \ No newline at end of file