From 818eb30d2daf40f774097c25517603d2ce2e95e9 Mon Sep 17 00:00:00 2001 From: Nim <128169402+Nimfar11@users.noreply.github.com> Date: Mon, 5 Aug 2024 20:59:40 +0300 Subject: [PATCH] spells (#389) --- .../Entities/Actions/Spells/earth_wall.yml | 89 ++++++++++++++++++ .../Entities/Actions/Spells/ice_floor.yml | 70 ++++++++++++++ .../_CP14/Entities/Clothing/Rings/ring.yml | 38 +++++++- .../Rings/rings.rsi/berill_stone_small.png | Bin 0 -> 164 bytes .../_CP14/Clothing/Rings/rings.rsi/meta.json | 3 + .../Magic/spells_icons.rsi/earth_wall.png | Bin 0 -> 1635 bytes .../Magic/spells_icons.rsi/ice_floor.png | Bin 0 -> 2230 bytes .../Effects/Magic/spells_icons.rsi/meta.json | 6 ++ .../_CP14/Effects/cubeup.rsi/cube_up.png | Bin 0 -> 5527 bytes .../_CP14/Effects/cubeup.rsi/meta.json | 30 ++++++ 10 files changed, 235 insertions(+), 1 deletion(-) create mode 100644 Resources/Prototypes/_CP14/Entities/Actions/Spells/earth_wall.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Actions/Spells/ice_floor.yml create mode 100644 Resources/Textures/_CP14/Clothing/Rings/rings.rsi/berill_stone_small.png create mode 100644 Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/earth_wall.png create mode 100644 Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/ice_floor.png create mode 100644 Resources/Textures/_CP14/Effects/cubeup.rsi/cube_up.png create mode 100644 Resources/Textures/_CP14/Effects/cubeup.rsi/meta.json diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/earth_wall.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/earth_wall.yml new file mode 100644 index 0000000000..69b54713f3 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/earth_wall.yml @@ -0,0 +1,89 @@ +- type: entity + id: CP14ActionSpellEarthWall + name: Earth wall + description: Raises a solid wall of earth from the bowels. + components: + - type: CP14MagicEffect + manaCost: 15 + telegraphyEffects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectEarthWall + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14WallSpawnEarthWall + - type: CP14MagicEffectVerbalAspect + startSpeech: "Surgite terram..." + endSpeech: "de profundis terrae" + - type: CP14MagicEffectCastingVisual + proto: CP14RuneEarthWall + - type: WorldTargetAction + useDelay: 10 + range: 10 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/rumble.ogg + icon: + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: earth_wall + event: !type:CP14DelayedWorldTargetActionEvent + delay: 1 + +- type: entity + id: CP14RuneEarthWall + parent: CP14BaseMagicRune + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: "#8f6a2b" + - type: Sprite + layers: + - state: medium_line + color: "#8f6a2b" + shader: unshaded + - state: medium_circle + color: "#8f6a2b" + shader: unshaded + +- type: entity + id: CP14ImpactEffectEarthWall + parent: CP14BaseMagicImpact + categories: [ HideSpawnMenu ] + components: + - type: Sprite + layers: + - state: particles_up + color: "#8f6a2b" + shader: unshaded + +- type: entity + id: CP14WallSpawnEarthWall + noSpawn: True + placement: + mode: SnapgridCenter + components: + - type: Transform + anchored: True + - type: InteractionOutline + - type: Physics + bodyType: Static + - type: Sprite + offset: 0, 0.2 + sprite: _CP14/Effects/cubeup.rsi + state: cube_up + - type: Fixtures + fixtures: + portalFixture: + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.48,0.25,0.48" + mask: + - FullTileMask + layer: + - WallLayer + hard: false + - type: TimedDespawn + lifetime: 1.2 + - type: SpawnOnDespawn + prototype: CP14WallDirt diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/ice_floor.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/ice_floor.yml new file mode 100644 index 0000000000..2bc9e89dfe --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/ice_floor.yml @@ -0,0 +1,70 @@ +- type: entity + id: CP14ActionSpellIceFloor + name: Ice floor + description: Covers a specified area of land with slippery ice. + components: + - type: CP14MagicEffect + manaCost: 10 + telegraphyEffects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectIceFloor + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14IceFloor + - type: CP14MagicEffectVerbalAspect + startSpeech: "Humus deorsum..." + endSpeech: "operietur glacie" + - type: CP14MagicEffectCastingVisual + proto: CP14RuneIceFloor + - type: WorldTargetAction + useDelay: 5 + range: 5 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/rumble.ogg + icon: + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: ice_floor + event: !type:CP14DelayedWorldTargetActionEvent + delay: 1 + breakOnMove: false + +- type: entity + id: CP14RuneIceFloor + parent: CP14BaseMagicRune + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: "#5eabeb" + - type: Sprite + layers: + - state: medium_circle + color: "#5eabeb" + shader: unshaded + +- type: entity + id: CP14ImpactEffectIceFloor + parent: CP14BaseMagicImpact + categories: [ HideSpawnMenu ] + components: + - type: Sprite + layers: + - state: particles_up + color: "#5eabeb" + shader: unshaded + +- type: entity + id: CP14IceFloor + parent: IceCrust + name: ice crust + description: It's cold and slippery. + components: + - type: Slippery + paralyzeTime: 1 + launchForwardsMultiplier: 1.5 + - type: StepTrigger + intersectRatio: 0.2 + - type: CollisionWake + enabled: false diff --git a/Resources/Prototypes/_CP14/Entities/Clothing/Rings/ring.yml b/Resources/Prototypes/_CP14/Entities/Clothing/Rings/ring.yml index 89a49463ae..c3a88edd7f 100644 --- a/Resources/Prototypes/_CP14/Entities/Clothing/Rings/ring.yml +++ b/Resources/Prototypes/_CP14/Entities/Clothing/Rings/ring.yml @@ -135,4 +135,40 @@ - type: CP14SpellStorageAccessWearing - type: CP14SpellStorage spells: - - CP14ActionSpellShadowGrab \ No newline at end of file + - CP14ActionSpellShadowGrab + +- type: entity + id: CP14ClothingRingEarthWall + parent: CP14ClothingRingBase + name: conductive ring + description: A standard mana-conductive ring that allows the user to heal physical injuries. + suffix: Earth wall + components: + - type: Sprite + layers: + - state: brass_ring + - state: berill_stone_small + - type: CP14SpellStorageRequireAttune + - type: CP14MagicAttuningItem + - type: CP14SpellStorageAccessWearing + - type: CP14SpellStorage + spells: + - CP14ActionSpellEarthWall + +- type: entity + id: CP14ClothingRingIceFloor + parent: CP14ClothingRingBase + name: conductive ring + description: A standard mana-conductive ring that allows the user to heal physical injuries. + suffix: Ice floor + components: + - type: Sprite + layers: + - state: brass_ring + - state: saphhire_stone_small + - type: CP14SpellStorageRequireAttune + - type: CP14MagicAttuningItem + - type: CP14SpellStorageAccessWearing + - type: CP14SpellStorage + spells: + - CP14ActionSpellIceFloor diff --git a/Resources/Textures/_CP14/Clothing/Rings/rings.rsi/berill_stone_small.png b/Resources/Textures/_CP14/Clothing/Rings/rings.rsi/berill_stone_small.png new file mode 100644 index 0000000000000000000000000000000000000000..8a6a9b4636bd0976610aecb91bacce5afce51d0d GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}ah@)YArY;~ z2@^zZ)srM^=&5XQJ2)L>v(+$_F7A&u`i&?W{?S3j3^P6Px*9Z5t%R9J=Wm)on{R~5%UYwh1<&N*{#wv7!{A_^Lsw$caDSg=Y&(U)Q$3XKL4 zUnB}PNUiY}BZ#&jX&=mkpfAOU3MsxQ7Gs+~;=E}QtFdX#Il0X3H^05t^5M7VWD?G4 z6A^rI!_55F?AdF5*X6s`9{B(IA1}F`AD=pUKmZLPXjzt8Rkf65=^+FY5d-Y-iF5v6 z1@QcLKPqOXlgT8+7%Q_>iD+FEMNyU|WmzUwZQXt9?yb8=AgQVy`Tomq3Fb`!oH=<& z&8#%Dx@nrl7~_&zS{9L|5Q?fSODl?^5s@)4HnYavC#pJD)kam@!za$!e+1yn$wLBE zX4W^e^%Sz1ZSmYb$|K?K&<--bx1BF6ZznI)i6)vKzyrK$s<`Rw=pv@3{R0sQ>< zLxrmLLkN4^{q7LL`K_%@R#(@$gCeAq9ubitkU|JAZEkL|zP?UM=@Y7YQAAz?uBhsC zx7sLn`trH2JRmW~G6Y=_kv&CGoCoOlmmiBUjznZ4A`?{|0uy)Fwrvmg`~5w@Z;PUM zF~<05Rc%G20V0rY8Gx#)S?U36s&*$pO6hS`eFJy{7ywfdnYw!df{2WO5Mz9NI2`_R zZEfv$X7-S~Z@K&Ewg41Gp{k)LBFn?!@P(?X5Rn1!x`;D|hd& zuCC(lm{|oB?yfu8*%d$tK}Dnxk!o#i4R;5)A|h8*_1fVR=cYFuv7de8!((^9>h4?P z@%YhRuXi@aHiEn<6?X*S?vg*v-D#TUkr2YQocA3=Ihl+dBmxr=2BXoCs;Y+~(gM4( zU`GHcMW@SIbLrBEx~_*Y#)$|?M0fNk#;AY-VrDOf5I)kj?MQ?v$n61$F&fYUV|Sx% zrztBB?&wY)m1U`BR>m0X&IwB*G$1jz>D!4wGGGdffrnE{=YfMD6A|p$FW=XAE)0OW zt_4^UkrfeL>4@RM9Rs%~ezLJ^9qb4od)NZaoVR;LSO8gu8)=o2sj4iC$X%+k$4mf9 zaL8}FtsUuc?DU4yHIF6(0XQon_loc!@F4Jh;C|r#l;Q(1#`{uA`xh6Np3gQl8^85g zko&&?3Y-HculD8vp z=Hwv-N?-x#*LAg6*R>QyIaJlF0K?&6-uRE_^gKN??Cz-Q5mik^Q7n~Zd54JH39JIW zGbaxf+0p9&^2{&Itnco7-2ELP6!(;6xn7n9s(M*Oj?5YS5%4wOn_1ohp6sHaUr^O6 zArw_n6!)lx_W|#9_jj4u+fz!*60JSZ2&1HO)1qWr8`ne`$S~J-R~8VcdLdq z5p6&&0H4nW{|bB#_(zss1^x`6Dt}WA5Qoi>kxzXn{Hi~lQh6fLv-ci^gs8~`bRyA~D} z&Mqu0&e}L4@(WPfw)s@swq}-EAZ7rqf>a_bkH;hGy7ydFRbO>?#^cFZ5&0ze1>p5; z@Sk)Hsj_?#xC$8fvb)RH)@6FV`gjPT64A0O%Wu0oqtWR1s`4Q-y9DSq01*j5ZRSj; z(|+5wzfLJW=5Dyt%Xhs2aCbJEfB@{x&trF2GhcL%!QE-wR%1-4icF`?GiKhp+qcZ5 za`!+E7iI>aA`;x47~3y)Rn08w4KM+&(RIk#hRi)jpvr(lcI*eL`n0=0)#>Zfk?#i) zxM5CPzFch63H&>GZxa}05KVqfZ+cD{$PGL<4eHDfy-H!&06uS^$xQ91n?}d z0em3meh9>4r#E)(Y^RPMnCY5D={WF1;OoFMbj5msj<(Is04Bh{vb+Htq^tbRYG~=<;8@>~OeRR2<&{1uY68M#`*ldyf*;a znXY*NQ#vZm(lEQp-iqOQ01aJ;_tMovll7#$ACH~h*q)@@JvsmHn;%Yo8;0j~6m$(r hxXzAQfpT*V{TmEhRe7qVvVQ;o002ovPDHLkV1ff67c&3= literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/ice_floor.png b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/ice_floor.png new file mode 100644 index 0000000000000000000000000000000000000000..535f3129a0983ff973261565272a90c321601203 GIT binary patch literal 2230 zcmV;n2ub&eP)Px-a7jc#R9JKCMHb_F;RID^+6O9E^VMQK)IBbb~@8(5X^JsM&G&SAE%(|9#Cocmg}_%SMbJ(f^2F&hA^sw%3YqVb-Eo@}3O$^RVSw!a>xR}YQM(xGJ{ngoqOW zb~V3NsyYTx{`Q4_{kbz6Z%c_20(|H9yQwqTG*um}VfZBTS*Y@yh;q`Hs=~w&>$o#8R_=S(yQkjgEH6rky`#&+;b2hJWv#&`i9C4g2TocJyOx{) z7zI43<{?O9T*kKPmyC?&gc1AocPkF>Btww*d$4~?@M!USq@%%dj{YEv?PSxp)4OM zre}7zJiB@Ex#y7-`K_(fH$X=#+aG`Yz()wWUsVo=I`*n6mUSJ)rRm0MG~Q>ucP>q> z_1+lg=&h2!R)RGE2OuM3t|I33%P+muk`RCB8^yO*4lmsS;2LMmA;WqkmSGUHh+KcUzvuMX4O?2>V$^KsgFH`0QK|ag#gixf3XUlt z07?M8wX0JR7Jx~0)gPEm+9{pHZYR_sHfIVY>D~Q)7?%ytJzAZQ8*ZL z(*Ap0fi)EvtIcTEMgnFJkpnhOH`^pJKJ!$xQgYpyrzZVq)>^8e5H`#{b+mO;XWw$K zo-8smGKQgUErutK-7bmskH`VFVn|3l8V~w?`&9dC3Y0}xSVINh4GrHY0PEGjO zX}Opt9GFl8q{M(V1Y<~;DH0)Gv%WaBCVaEF{QG}2)_dpjJaK92k}RdXNMg6+xqQ}LbfAG=Qz)lFT{my@qNfLHxYQfejGcmKKo~4zu z6d7w`p&>-AtEg2iAX;5+IH+)N{}K-DUt$S?p}OiwM9RiQfX|%&+)7?G>$}Uo?~Q4FDhh?jJacCM&&h=F>qNs%@9pCaZYM z3Tw0u29<&$fmKKW0f7j_%pf*o$&s>EVJE@5mBr~#FF$X$J06JB-uUq}H@gpRdlecA6n zmUxGCo9DnxIBzb+{KC@pG3p=+Mop{lcl?7@H6>t*na*rXpY{k>{cq-(^NBZN85LAY zRSZEiGKMQA=%%@eolib_@MC2yHYz99+0F5f1Nt23Q3I5n*QQR$O#`0aakf1CJug>b^d`Z5xOP zs)|F;?1hSAYHkj7Z}BqAdZfts$V4YS+HR+#;{ZPYt9gPTZ|NK?z=nS?`GQ#mTB8dpR_$Qxc;om{fasf4Kg-iZ2x8kI1S^F+o% zMG@;7BC5<>lQAV!#;C_-W+k@UiM+uFesk@teDR)zn!rL7$3!py2v8DH#Hb)vh$vK{ zSaWs7YIRhx>I)2r9-E^IA|d9ef>;H}?{2(EffF3f?%h5s*WSCJL>dT61V9BOQ4phm z1dymuSodzr2qf` literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json index f7f44dee95..834a789a4c 100644 --- a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json +++ b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json @@ -27,6 +27,12 @@ }, { "name": "shadow_grab" + }, + { + "name": "ice_floor" + }, + { + "name": "earth_wall" } ] } \ No newline at end of file diff --git a/Resources/Textures/_CP14/Effects/cubeup.rsi/cube_up.png b/Resources/Textures/_CP14/Effects/cubeup.rsi/cube_up.png new file mode 100644 index 0000000000000000000000000000000000000000..39469a7aeb8bd2ad62081d2dd2f4a2b609473430 GIT binary patch literal 5527 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 Z_--gN8vBJj1^=`H2yJ66jHdIm{{dE2&Z+