From af0a502dab178cbefbdd7cefc0bfa63056b507d0 Mon Sep 17 00:00:00 2001 From: Red <96445749+TheShuEd@users.noreply.github.com> Date: Sun, 29 Jun 2025 13:38:05 +0300 Subject: [PATCH] Alchemy furnace integration (#1489) * furnace integration + fix gates * fix * d --- .../Spells/CP14SpellThrowFromUser.cs | 8 +---- .../Entities/Structures/Fence/big_fence.yml | 4 +-- .../Entities/Structures/Fence/window.yml | 4 +-- .../Structures/Furniture/cabinets.yml | 8 ++--- .../heater.yml => Furniture/furnace.yml} | 30 ++++++++++++------ .../Graphs/Furniture/cabinets.yml | 2 ++ .../Construction/Graphs/Furniture/furnace.yml | 15 +++++++++ .../Structures/Fences/big_fence_wooden.yml | 6 ---- .../Graphs/Structures/Fences/fence_wooden.yml | 6 ---- .../_CP14/Recipes/Construction/furniture.yml | 13 ++++++++ .../JobsTabs/AlchemistTabs/Alchemy.xml | 2 +- .../Guidebook_EN/JobsTabs/Innkeepers.xml | 2 +- .../JobsTabs/AlchemistTabs/Alchemy.xml | 2 +- .../Guidebook_RU/JobsTabs/Innkeepers.xml | 2 +- .../Structures/Furniture/furnace.rsi/base.png | Bin 0 -> 2506 bytes .../Furniture/furnace.rsi/burning.png | Bin 0 -> 9354 bytes .../furnace.rsi}/fuel1.png | Bin .../furnace.rsi}/fuel2.png | Bin .../furnace.rsi}/meta.json | 0 .../Alchemy/alchemy_furnace.rsi/base.png | Bin 3273 -> 0 bytes .../Alchemy/alchemy_furnace.rsi/burning.png | Bin 4189 -> 0 bytes Resources/migration.yml | 2 ++ 22 files changed, 65 insertions(+), 41 deletions(-) rename Resources/Prototypes/_CP14/Entities/Structures/{Specific/Alchemy/heater.yml => Furniture/furnace.yml} (83%) create mode 100644 Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/furnace.yml create mode 100644 Resources/Textures/_CP14/Structures/Furniture/furnace.rsi/base.png create mode 100644 Resources/Textures/_CP14/Structures/Furniture/furnace.rsi/burning.png rename Resources/Textures/_CP14/Structures/{Specific/Alchemy/alchemy_furnace.rsi => Furniture/furnace.rsi}/fuel1.png (100%) rename Resources/Textures/_CP14/Structures/{Specific/Alchemy/alchemy_furnace.rsi => Furniture/furnace.rsi}/fuel2.png (100%) rename Resources/Textures/_CP14/Structures/{Specific/Alchemy/alchemy_furnace.rsi => Furniture/furnace.rsi}/meta.json (100%) delete mode 100644 Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/base.png delete mode 100644 Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/burning.png diff --git a/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellThrowFromUser.cs b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellThrowFromUser.cs index 49d809769f..d5e5da7ddf 100644 --- a/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellThrowFromUser.cs +++ b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellThrowFromUser.cs @@ -14,7 +14,7 @@ public sealed partial class CP14SpellThrowFromUser : CP14SpellEffect public override void Effect(EntityManager entManager, CP14SpellEffectBaseArgs args) { - if (args.Target is null) + if (args.Target is null || args.User is null) return; var targetEntity = args.Target.Value; @@ -22,12 +22,6 @@ public sealed partial class CP14SpellThrowFromUser : CP14SpellEffect var throwing = entManager.System(); var xform = entManager.System(); - if (!entManager.TryGetComponent(args.User, out var userTransform)) - return; - - if (!entManager.TryGetComponent(targetEntity, out var targetTransform)) - return; - var worldPos = xform.GetWorldPosition(args.User.Value); var foo = Vector2.Normalize(xform.GetWorldPosition(args.Target.Value) - worldPos); diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Fence/big_fence.yml b/Resources/Prototypes/_CP14/Entities/Structures/Fence/big_fence.yml index ba9f6deddf..32572535a7 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Fence/big_fence.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Fence/big_fence.yml @@ -103,7 +103,7 @@ sprite: _CP14/Structures/Fence/iron_big.rsi - type: Damageable damageContainer: StructuralInorganic - damageModifierSet: StructuralMetallic + damageModifierSet: Metallic - type: Destructible thresholds: - trigger: @@ -112,7 +112,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: WoodDestroy + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: CP14ScrapIron: diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Fence/window.yml b/Resources/Prototypes/_CP14/Entities/Structures/Fence/window.yml index 82823bff0a..90ee604583 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Fence/window.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Fence/window.yml @@ -54,7 +54,7 @@ sprite: _CP14/Structures/Fence/iron_window.rsi - type: Damageable damageContainer: StructuralInorganic - damageModifierSet: StructuralMetallic + damageModifierSet: Metallic - type: Destructible thresholds: - trigger: @@ -63,7 +63,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: WoodDestroy + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: CP14ScrapIron: diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/cabinets.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/cabinets.yml index 90ced15921..19569c5d7f 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/cabinets.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/cabinets.yml @@ -89,7 +89,7 @@ state: icons - type: Damageable damageContainer: StructuralInorganic - damageModifierSet: StructuralMetallic + damageModifierSet: Metallic - type: Destructible thresholds: - trigger: @@ -101,12 +101,12 @@ collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: - CP14IronBar1: + CP14ScrapIron: min: 1 max: 3 - !type:DoActsBehavior acts: [ "Destruction" ] - type: Construction - graph: CP14WoodenCabinet - node: CP14WoodenCabinet + graph: CP14IronCabinet + node: CP14IronCabinet diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/heater.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/furnace.yml similarity index 83% rename from Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/heater.yml rename to Resources/Prototypes/_CP14/Entities/Structures/Furniture/furnace.yml index 0b29897a8c..5fd02cb8ef 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/heater.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/furnace.yml @@ -65,20 +65,20 @@ hideCaution: true - type: entity - id: CP14AlchemyFurnace - name: alchemy furnace + id: CP14Furnace + name: furnace parent: CP14BaseFireplace - description: A furnace fueled by wood, coal, or any other burning material. Handy for heating your alchemical potions. + description: A furnace fueled by wood, coal, or any other burning material. Handy for heating your food or drinks. components: - type: Sprite - sprite: _CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi + sprite: _CP14/Structures/Furniture/furnace.rsi layers: - state: base - state: fuel1 visible: false map: ["fuel"] - type: Damageable - damageContainer: Inorganic + damageContainer: StructuralInorganic damageModifierSet: Metallic - type: Destructible thresholds: @@ -88,6 +88,14 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:SpawnEntitiesBehavior + spawn: + CP14ScrapIron: + min: 1 + max: 3 - type: GenericVisualizer visuals: enum.FireplaceFuelVisuals.Status: @@ -96,7 +104,7 @@ Medium: { visible: true, state: fuel1 } Full: { visible: true, state: fuel2 } - type: FireVisuals - sprite: _CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi + sprite: _CP14/Structures/Furniture/furnace.rsi normalState: burning - type: Climbable - type: Anchorable @@ -130,14 +138,16 @@ whitelist: tags: - CP14FireplaceFuel + - type: Construction + graph: CP14Furnace + node: CP14Furnace - type: entity - parent: CP14AlchemyFurnace - id: CP14AlchemyFurnaceDebug + parent: CP14Furnace + id: CP14FurnaceDebug suffix: Ignited, Infinity categories: [ DoNotMap ] components: - type: CP14AutoIgnite - type: CP14Fireplace - fuelDrainingPerUpdate: 0 - + fuelDrainingPerUpdate: 0 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/cabinets.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/cabinets.yml index 10e3b1e49e..508f58267c 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/cabinets.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/cabinets.yml @@ -10,6 +10,7 @@ steps: - stackGroup: WoodenPlanks amount: 3 + doAfter: 2 - node: CP14WoodenCabinet entity: CP14WoodenCabinet @@ -25,5 +26,6 @@ steps: - material: CP14IronBar amount: 3 + doAfter: 2 - node: CP14IronCabinet entity: CP14IronCabinet diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/furnace.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/furnace.yml new file mode 100644 index 0000000000..91124772be --- /dev/null +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/furnace.yml @@ -0,0 +1,15 @@ +- type: constructionGraph + id: CP14Furnace + start: start + graph: + - node: start + edges: + - to: CP14Furnace + completed: + - !type:SnapToGrid + steps: + - material: CP14IronBar + amount: 3 + doAfter: 2 + - node: CP14Furnace + entity: CP14Furnace \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Fences/big_fence_wooden.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Fences/big_fence_wooden.yml index 196ae8bd99..d1c560576c 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Fences/big_fence_wooden.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Fences/big_fence_wooden.yml @@ -61,9 +61,6 @@ - node: start edges: - to: CP14FenceGateBigWooden - completed: - - !type:SnapToGrid - southRotation: true steps: - material: CP14WoodenPlanks amount: 4 @@ -89,9 +86,6 @@ - node: start edges: - to: CP14FenceGateBigWoodenBirch - completed: - - !type:SnapToGrid - southRotation: true steps: - material: CP14BirchWoodenPlanks amount: 4 diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Fences/fence_wooden.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Fences/fence_wooden.yml index f01b5bd17b..827282c942 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Fences/fence_wooden.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Fences/fence_wooden.yml @@ -61,9 +61,6 @@ - node: start edges: - to: CP14FenceGateWooden - completed: - - !type:SnapToGrid - southRotation: true steps: - material: CP14WoodenPlanks amount: 2 @@ -89,9 +86,6 @@ - node: start edges: - to: CP14FenceGateWoodenBirch - completed: - - !type:SnapToGrid - southRotation: true steps: - material: CP14BirchWoodenPlanks amount: 2 diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/furniture.yml b/Resources/Prototypes/_CP14/Recipes/Construction/furniture.yml index 3792d95802..80a3f5d4e6 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/furniture.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/furniture.yml @@ -185,3 +185,16 @@ canBuildInImpassable: false conditions: - !type:TileNotBlocked + +- type: construction + crystallPunkAllowed: true + id: CP14Furnace + graph: CP14Furnace + startNode: start + targetNode: CP14Furnace + category: construction-category-furniture + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked \ No newline at end of file diff --git a/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AlchemistTabs/Alchemy.xml b/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AlchemistTabs/Alchemy.xml index 924dd1d033..f5dc47090e 100644 --- a/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AlchemistTabs/Alchemy.xml +++ b/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/AlchemistTabs/Alchemy.xml @@ -58,7 +58,7 @@ - + diff --git a/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Innkeepers.xml b/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Innkeepers.xml index 4e97c985ab..7f09e4ae43 100644 --- a/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Innkeepers.xml +++ b/Resources/ServerInfo/_CP14/Guidebook_EN/JobsTabs/Innkeepers.xml @@ -49,7 +49,7 @@ - + diff --git a/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AlchemistTabs/Alchemy.xml b/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AlchemistTabs/Alchemy.xml index 3e8e526743..b36c1c76b8 100644 --- a/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AlchemistTabs/Alchemy.xml +++ b/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AlchemistTabs/Alchemy.xml @@ -58,7 +58,7 @@ - + diff --git a/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Innkeepers.xml b/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Innkeepers.xml index 4e97c985ab..7f09e4ae43 100644 --- a/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Innkeepers.xml +++ b/Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/Innkeepers.xml @@ -49,7 +49,7 @@ - + diff --git a/Resources/Textures/_CP14/Structures/Furniture/furnace.rsi/base.png b/Resources/Textures/_CP14/Structures/Furniture/furnace.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..e788fd1578c2641a2fb41abd7f4ae1d6b25b3ec4 GIT binary patch literal 2506 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/fuel1.png b/Resources/Textures/_CP14/Structures/Furniture/furnace.rsi/fuel1.png similarity index 100% rename from Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/fuel1.png rename to Resources/Textures/_CP14/Structures/Furniture/furnace.rsi/fuel1.png diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/fuel2.png b/Resources/Textures/_CP14/Structures/Furniture/furnace.rsi/fuel2.png similarity index 100% rename from Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/fuel2.png rename to Resources/Textures/_CP14/Structures/Furniture/furnace.rsi/fuel2.png diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/meta.json b/Resources/Textures/_CP14/Structures/Furniture/furnace.rsi/meta.json similarity index 100% rename from Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/meta.json rename to Resources/Textures/_CP14/Structures/Furniture/furnace.rsi/meta.json diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/base.png b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/base.png deleted file mode 100644 index bef8c056aac91411fa70e31acc86b89891c3050b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3273 zcmV;)3^wzLP)Px>gGod|RCt{2TR~`B*%duD`a^|nX|QC+6JnduH?qulpe}J*oatmS10fyg!q7q? zgoJig3SG@Mi)?2V2-&nSLzq<;Srn#2mP2b(>;V<(5?SQiND3KS(l1N z-}~=Naz>IFMhA@TulL`%@4ox)yZZk;V2B}x7-EPahWN2!ME>*c%6m=vdwMDc0LVF6 z06;hr<7>r|3%wm(uT@=R+gi1C&kN_d!h4bYAxTa*O~&E?fO@@-a3qFQY7yzJO-$Gc zg=~5%#st$-G1RIqR<5lfy|oEwpFtS3U@tXwCrEy2gS3S(5s3l-EXz_HI2ns8?WpZ> zwZi;oVEzy^$WC_B+W>$}W*6Z|49C?9CL&QxM536C#c|}8d4Q9#IEp3L8~j;6)P@GZ z&eKT^24^z6>`)pk@wK!0xLWbe`tr)E(nmPba>fYI3OyPK4PxF-`iPF)GKwV^snj9> z;K(gwA`-<;dK)X(*4RkdhK!>b%Vc%|0RK(@OX0WABFu62VA}~;mWA}zCOd)nq&9alC8cNR00zK60jvE`9O<@J!F!N#vX?x0n2*(2#So%HVA~fq6U0(U9KS zG@MiSr#&xU1T!5aGX8gav(k#x$}0CBdS<( z*$H}%2mxm^JQd@lN1zU5sF5dgP8O4~I4sNJSxTiAISL4J_N2391Q5R*46R$B72b4j zdTSHQE34cug*XjfCQjQspq!KC zL6Fyv+;U(dBg2SW<_no*Gnrk?+euE)(w1-}#!E!EokCxS&jAE)9qzHg^?Du0)e0L! z;Z2`Y_AZvZ(4`sLNpEvMG`RHErm{SOU|AMwRhO3>fyWU=kRtU-+LMEtGYLN}43~t*A6iY4}rtdBilq@A^=b@ykFV%TF z$+-ytZ=*RU%Udb!RyuzOP{Y}>EM6aa#s^w8fh<%^TNC95GT!ref+Iz8>ilxYSYBD> zU4|TVT&?i3qh%u{A)HDratPAk ziA&<6Tenawxe7nc>T$KARE5XY3TJk}i%PQBwiBEaiX~S`iZo%8pCjP$qldV2?+*Zg z@v$+Zw*cVe^wfBr?m0O<_1#bR(DlcU9x7qq4gVKkdcWuGByPO_ep`NW^z>8=?_XbQ z%daefC!hY+IJiNf6aQo^j+~Rl6S41iYWw(6`?g#N=`%tweO9Zwh+j@%_R0(Zpz!hl zlebX!-v~o^6e%ZDYe@MR&zwA|i)OmVqlanHmQQN}H1Etfk@hIP? z-%D-Ful8UH^cFTYp5f~1 z4de^^$QSl~Z9cg9AvQLiu~9TQ$sr$zbmC_x&9ru)*}0_h(+=(UM*(2LUTOkfc+gf; zezk|It2eOx({}&>AKd&90Qi6UE&rxAJOB9~0N~Q4w=g@GWN)urTjRfpvs-?NLO$E} zM>;7SiM8b)1zL%MyiQ?wc=!zurW>?tOMMcDsS@nOUq0|k^p$ICJoEH_zOb+SE+3Rp zYcx9Y`yPpz)~6htX^`DGDJc1M%O8%!d@~FHwMGNskT(ok|N7wD@rT}Bd9O(&D{Uo| zD2Qx*{jTrEPJ>=wzl+1eZ&1i*c@0uoOb=QCG=Wyh9K?U=(p%mj3_Rsmdx&37;AcPo z0JTN~*RS71tES?DstU zg_j4+FZcY{ozv9>JnvO<0zOic61-Pv_dJj!a&qFNND_cD9)d3i zPzR*Ul9E}{@&c*?TjK0(ZqJ>tU@tYVuHL}c+h6%Uld3fWt#wkNQi2ysvE~cs`H12G zT1WJHO3KbMnO$}Q;FqD1W1c?!40E$@_iW%2dfy~{o1Tg(Hjs@Zq2=FaiBT@~5a8ch zNUfzqYVm2e(A%xA-^J6XpMAfP8jvsSV}1QDzTWMv4@`n?yO*ke*ni z9*E?ofEPYep&f+#4?e+z`yYRgp_-8|?Bo7}Pw?4a9xK;r_UV-u391OX09%Itg1yun zp$bq}YEe-{km^m@IbEaeC|}s82QyTIJ++kuYN zXWOdq? zUpUW4=!2c~wy#>E(_8dIhbDB8^X@z%%&hrso z0#y9W+eu|RJg!!JNoFz@5Bv@=h$WzZ`J%Hyww*xE$#Q)FfVXctghdK;0z05q_4ZS0 ztXEM-ZkhALky|z%V+Fif>emu5MHihU1HcC?XbkDCO%zKmOX+A?$Oz^fFmES~XY$A? zfVvY*#^TCpE&@eBKMEl|y5xZ>Sqz!#m7v2~A*uspi3_x5mO7;l}SOwP#;q!5zPx|81Kuj-~MRX*4uJLQR3 zcEG(mxADc7U-FImGeOfcH~mo*8TF69{|(=L_iaxd@WvZIY5wZhzXbpzXS)(z+F2~Q zxOe9^K7I1J>Hq+^cjq<$up?yWGF9BKp&dw#hGdCTCi?df|P(CQ5 zkXN53_4BE4ukG}`7>Qp_AU+dE`Jn81_3SW0I22O;K0T?Rd{9PwCeCW?L84c7Dh{Ay zXRN}0Glp8D;Zt_k8V$tX^gLNUC}Z}@OyIig2YP8IpBkeC!rq#RbEoowBON@dH5%NG z4C(h9;(pkvB*D{@3NRk^$ zWWMHlnt;k5T)zPTCN=|Y4GU!U_S}Le*W{~q;_lX5&K&!WPkJ*%*ib+`PT4`ZR$4ES zPJsL;hbcv&_&KEQfM3?gjD?_P%Eu^u3awX|(<3O5p zrt)D#ZJHYH;;w2P3ch2^n^wEl^DJ)FCH2k`1@)P_^pC;p9EAY?4J_@4V#I&@L_kmB zd{_ky8=7`;N9~4~!#T^LbEC`ta@NW45-23J}EjAxT3bm(>(`GJ=2gbZO;}SyI%aFXvhv*IBO4H zdx~8CJ3<-*wkFU>Y0nC>x<Q^45|K?t-sr&$WUYNKgk^&EkVl*#Qk0Plsg|&I z`i;w3T8^$`5*00;BxunqhZfHog^VQqHoiL;`6@F}>5hD=JHoGDK(SV^ z(>mDZe7M;XI)ttflq9>^OSa!GHaBG@47jQA@>c!BYdSxH|RDmsy)*1MCaDxvG^ z%dH08hAH{SJI)CFh94tu>6Iv;C$V<423MWOAt;s?38n$0n)D*C^Rnv0KtO@Fw~pe1__Lj|Ml4!7G>Ek; zn@<7OMZiuXkW{6=mQGP6Wsh`;vmoNJ1KYVo6erx@Jb2{~zvn1s<~9?#+zP^1qc7vt zey;4u)`K6X44S|2nagNdKGJF^2hD=WZ#bbJaqsf>(Ahp!Q{DQgw8l(6z(7PTO2xJg zwanF+=F@_DmA2+Wfm*&1av*V>ZvbVb?jny$=2V*fNmDykpUGF zAF!d~-tEYF7n~d^ZG>?F!-*20z-!?B?!CkOPTCWpVZL^J> z6S=*eLmwgAq#thh>C@F~)P1%R6k`}OS_zl;=u0k-DmU5+TZ%HD6<4xn3pKh8J(Db4 zPb-bng0>DQ&`7-FX;hmfZGK0xzif%e)t6hGgI)W&gc6>nO_u-UbU$xcUL5>{qtA+s ztvfcCt9D@hT`7;?)u#W!XQhO%IP-qTfxJSm<_9u4&yo-6~ISMm! zsr;o_XilZCQq)Q1c#DhH61z^4?l$yhiE;??oDl|uc@djH8PBZ;i9f;@bI=}13A~+P zM4DBJIL=9*lBY`_BErqlb0l^osQeinU74hlQs^Ni2R6pse;R+B-sIMqKc`niZ*XzS zb<6cb+<0C*PB&RSMQh%(X}%6PbbgAT<1eNQJxC89XnTYl;?ND^7&h|@(s6U<^*0<9 zLnjY6*Oy;IYx@OY_m}hy`l>fG;EzLQFh=s_jCk{Hq+=4DR{#`0iMqM+(&9K}X@q-> zbrX=2Xe6mLq>abz3*F*phjIy1!{m`Y3u;q@fQJE{SMcYv@7cjy*zmcBavA9`oaz`s zc;#p%;8jeZ8Z9s0XlcWqF~(M~n)x%CG7V>UBC26+bS}^3zrp$+z|~p2a_1o`OIctsF)!|bMnd;Dp-W zW`ra)_*3G`m}0`SBY>DtxP;Z#!+Q2yW1F_);_jV`@cf+ckFOfdEP$XVGFj>$mO6wD z-y^s-JQla>%U+wt^~Y&8kj$PBnoGb-+2NTq`5lnzIS=u>QKC%s2IKr%(|sx4EUFmG zFmlGG-5Hbi=E<*BITPchwFaiy3xkwym;$8Hs6Wfj_I>0sHGg$4e~La0bM_lKFqLR_L;{Wk_HQV4|<%0pjXQ!X1L<`)vdsd|CmXFT=+91hIs!Du9 zFHF>#o_wsk4`C}tDDi*LgIw{s6_FpPlEv+%6g0^V>3I$-$ldOrm`t8cMfqROzog*( zQ*QjicAO>e3e?mpK!l+KUE*BskM8(Jp8c(qo&CM)1=GNrpWrkECCQzKpPsx;@ z^?N;xCt5<<&P?}q3I-~QR~t&6{Dntifn$xm#h!}|de@onqWLe4p3c(55(drSwf*h& zd4rMDW-IM$&D`OzYr$o_MXV`DRNi;&QaXP!hbPAN(w5F1Ne8P^batJo;#uR2`?MiQ!+5?U-H}kx?IS$wV1gBXFI(-~Z_{=!I6owf?+pSj=BPU*E?c9u z3Ki)?Dl(RHtW=3z{*~_Q98xx>ct(G-3hP(_wFd3o5?5889}^GR;{bLFq@5QOv8nx9 z06x(Y8HTBTrvmAV0uiK2ic;|XSLFI;XnTUbFcDhl-8y=wa`3@Dvkyg5YtN4A}6ckOLvu+@aW z7TQQ$lgsTdQ>I`09$s;}1A9~FG%L(WlJBKh3eYitSMZIk`auizq4j;udqe@>wmSw% zZ=50{@;YGZ>hen|4KQ$V^Qc@?sPN{TYqe=4WBPiMMBgM>!H|`#WQ5&RJ@bFBG3smXgTpl<${VC)&Yb<_8|7r`R@4 zlF#F5>02E!TlP-xs1NGJ2&?%b$i~w8WPh}eme2|-!jZ z?9}yBKrszBA6@Jkk2DxTza*w`MrxDSMkGfvnD9A&)`Xi9RZAi= zW2irE8FR19x|VFNve*@DWSyn~{#OOe$L(Mi85Yd(0zqi)k7_+)c-=;`=;q6a-lM|I zy4ktVE{EGvH(hBf#iyPIFxOy-XY;a~<2(FEml6kh2N=g=YpHf}xAq&bm4yQ6jf!UY z`YCV8p)#m_PSv&u{=@bE(ScBya*(pc5g@QB@E#`zR^98cMW?@^7frM5&4`lgUuSy} z$ayzg(pgEGPw$Q@`XT3bC% zz9=eXrjW*Oh&6TDS*p=)N~M*gS7Ua&!1x#@K?B3p-T@Vw%%=~m_NEWAVq7c42rWV( z-*L%t<`qLJsXZ@p(Z!eFQ^MQpj{95*$iI*;I1R{Mc&q2*-PfHr)jxRb<}!i_gLS^w zurM>an*e(ETz+Bu!hy9{XiIpxD}inut_5S`^0?sUv2d%ydpgOom3jBEF z;^7r|q#5{fFZ{v8s_Sr$X1Nfr%utQ#xf}OM%=Y6tqtRDQQ1v0t5juf^_ESEsQ4oK6 z4bo$s1{Lk@Pij2T+f~Rjdu$QZEh=iK@y+l~NJe?Q2M?h#C*|vkye;=y;F@9t5z#64 zb%Kgk2lLB?Qca97{?Fp4vj^F&)}e0_z#|?8pX;^Uj_epDFwedj$uQ(Nz4&Lj)t~;2 zaQjgQT_RY_OHfKH5kB@i1E%siZ4bW>WYPF+j3gheLgmj3ms+F(qwhmqZADp5fbk!Q zy?6MH89=0B_satUBD!V#niT$#Lu!vD!p*G-T^Q4nl#Ez)TZYBX)**~v_=8fnoRxSM-uqkixT+DdH9Z}b!a(PI{Z z=*CG>iK$b}+>!qGYw>>0nK7B3SV7LL&IBPJOR*aoGwZ)IG3RHla%nKlnTK@Rhwft3 znpDdjTo{TN;!75_iMLW@MFp!2!a_12U4$PDA07YsMCTj1^b7ADrKy}dx_qB{FGFan zi2)k@o_y>@zx_DD(i~V~oimt#V8re;=H_1Vfpy#fm6nk5mD&QnNt+_AOr@^BaK?g! zn@I&I0A+!Dm|r@vjxhSAt?V{WbzC>p{nz%z_y*&PVc_Px+SeoWe=LFjdxzsE&Sjx9 X{)I}2jJ)fA0l+}VSi4fwHvE48=Jpmr diff --git a/Resources/migration.yml b/Resources/migration.yml index 00000e86cc..96c10e5758 100644 --- a/Resources/migration.yml +++ b/Resources/migration.yml @@ -361,6 +361,8 @@ CP14SpellscrollSignalLightYellow: null #2025-28-06 CP14SpellScrollMagicSplitting: null +CP14AlchemyFurnaceDebug: CP14FurnaceDebug +CP14AlchemyFurnace: CP14Furnace # <---> CrystallEdge migration zone end