From 8930b7945e5fe71194c078ef666f7959a094ea5c Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Mon, 15 Jun 2026 17:48:36 +0100 Subject: [PATCH] Stop more simple behaviors retaining configs --- .voidbot/state/aetheria.cc | Bin 113264 -> 115612 bytes Aetheria.State/README.md | 3 +++ .../ServerShared/Behaviors/ItemUsage.cs | 10 +++++----- .../ServerShared/Behaviors/Reflector.cs | 10 +++++----- .../Behaviors/VelocityConversion.cs | 10 +++++----- .../ServerShared/Behaviors/VelocityLimit.cs | 14 +++++++------- .../ServerShared/Behaviors/Visibility.cs | 10 +++++----- Assets/Scripts/ServerShared/Behaviors/Wear.cs | 10 +++++----- docs/aetheria-perfect-machine-map.md | 2 ++ 9 files changed, 37 insertions(+), 32 deletions(-) diff --git a/.voidbot/state/aetheria.cc b/.voidbot/state/aetheria.cc index 7303dcc66b9c093a71600b90ecb46b8a34736c3c..7c5c1e0983d87646f3ddba9c87140866b9033c91 100644 GIT binary patch delta 1459 zcmb_c-)kII6y_vrV%JoYYB#26b02Ejl$}jBKbuDA4_l$2KE&EUsg%1jXR?>h%pLBX z-OZ+jSQUiQ2W2t$AtFB5u1T~;MDkEU5q%e5B+v)_4-|aSC(q1eH)(zKX=c8A=bZ0+ z-#O=xzq&qpuY0rEvG2sm(XqnV_}JwS;9%pYj@vC@Iss(o^&MbhGyxvZ40e2d^_}6& z)^G-_)9~@u{5kkVymWPr7l+ z9@|-#70)5bB4WuL)V2~OQj1c%6=FD-s&E#~^(O4^rhjFXd!}y=p6=NG#uV0I=&-A# z&srXl%&|pnbC_9LgXcIMOC=()B!UIz$(p5vzP4L#30>;=#IBYUY2_nnStCwdcj6l| zpWGG!>cTn??6OqU^LoX+wGLJ$Za(wXI^@!~V4XU-{}}W(PS^UgyK`c0uEN15zTE>P zH_Zeb&BPOAZmhzg?EUsInfMr{8pYbs{)fgY3H0Q54`WHJh2!x2$_8ZnT4&U|>D-yV z4ahySedIp}L6XMAEE=bNJz#FFLQnR7dp^zR1`NT=W_|;X9wwP7T0~AgGLY1P9yWe& z_QP2-@i~k?wRxwQzrrgsTWWnZv)AOk@&(fIA3Tvy1o zM#p@z0s}o0wDgLF$?55t;t6xph1`M3i^Zvvd*Pz_@ea%kZa%WM^cPV*M8^tw-ILrg z!}nmQXHT?Z&G+lJ*#oW@orhI&R8=1~(FMW^rI&d4_TG*cT?)Y2FvIys-Y8YW-{7T{o! zXIf?4tjV%nlZ8>&fpPBka2Li)nbSkJGpbELzm}1A@ Limit) Entity.Velocity = normalize(Entity.Velocity) * Limit; return true; } -} \ No newline at end of file +} diff --git a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs index 6bc5b41ee..c248eaecd 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs @@ -25,20 +25,20 @@ public class VisibilityConfig : RuntimeBehaviorConfig public class Visibility : Behavior { - private VisibilityConfig _data; + private readonly PerformanceStat _visibility; public Visibility(VisibilityConfig data, EquippedItem item) : base(data, item) { - _data = data; + _visibility = data.Visibility; } public Visibility(VisibilityConfig data, ConsumableItemEffect item) : base(data, item) { - _data = data; + _visibility = data.Visibility; } public override bool Execute(float dt) { - Entity.VisibilitySources[this] = Evaluate(_data.Visibility); + Entity.VisibilitySources[this] = Evaluate(_visibility); return true; } -} \ No newline at end of file +} diff --git a/Assets/Scripts/ServerShared/Behaviors/Wear.cs b/Assets/Scripts/ServerShared/Behaviors/Wear.cs index 2fbfec40b..3d5c107f8 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Wear.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Wear.cs @@ -24,20 +24,20 @@ public class WearConfig : RuntimeBehaviorConfig public class Wear : Behavior { - private WearConfig _data; + private readonly bool _perSecond; public Wear(WearConfig data, EquippedItem item) : base(data, item) { - _data = data; + _perSecond = data.PerSecond; } public Wear(WearConfig data, ConsumableItemEffect item) : base(data, item) { - _data = data; + _perSecond = data.PerSecond; } public override bool Execute(float dt) { - CauseWearDamage(_data.PerSecond ? dt : 1); + CauseWearDamage(_perSecond ? dt : 1); return true; } -} \ No newline at end of file +} diff --git a/docs/aetheria-perfect-machine-map.md b/docs/aetheria-perfect-machine-map.md index b401805a3..d5170b282 100644 --- a/docs/aetheria-perfect-machine-map.md +++ b/docs/aetheria-perfect-machine-map.md @@ -307,6 +307,8 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted. Heat, EnergyDraw, and Cooldown behavior instances now copy constructor stat/scalar inputs into explicit runtime fields and no longer retain their config subclasses after construction. + Wear, Visibility, Reflector, VelocityLimit, VelocityConversion, and ItemUsage + now follow the same rule for their constructor stat/key/scalar inputs. `StatModifier` behavior requirements and behavior-stat targets compare typed behavior kinds on the live equipped behavior instances through `AetheriaRuntimeBehaviorMetadataCatalog` instead of scanning config