Stop more simple behaviors retaining configs
This commit is contained in:
parent
fa7217fcc8
commit
8930b7945e
9 changed files with 37 additions and 32 deletions
|
|
@ -21,24 +21,24 @@ public class ItemUsageConfig : RuntimeBehaviorConfig
|
|||
|
||||
public class ItemUsage : Behavior
|
||||
{
|
||||
private ItemUsageConfig _data;
|
||||
private readonly string _itemKey;
|
||||
|
||||
public ItemUsage(ItemUsageConfig data, EquippedItem item) : base(data, item)
|
||||
{
|
||||
_data = data;
|
||||
_itemKey = data.ItemKey;
|
||||
}
|
||||
|
||||
public ItemUsage(ItemUsageConfig data, ConsumableItemEffect item) : base(data, item)
|
||||
{
|
||||
_data = data;
|
||||
_itemKey = data.ItemKey;
|
||||
}
|
||||
|
||||
public override bool Execute(float dt)
|
||||
{
|
||||
var cargo = Entity.FindItemInCargo(_data.ItemKey);
|
||||
var cargo = Entity.FindItemInCargo(_itemKey);
|
||||
if (cargo == null) return false;
|
||||
|
||||
var item = cargo.GetFirstItem(_data.ItemKey);
|
||||
var item = cargo.GetFirstItem(_itemKey);
|
||||
if (item is SimpleCommodity simpleCommodity)
|
||||
cargo.Remove(simpleCommodity, 1);
|
||||
if (item is CraftedItemInstance craftedItemInstance)
|
||||
|
|
|
|||
|
|
@ -27,22 +27,22 @@ public class ReflectorConfig : RuntimeBehaviorConfig
|
|||
|
||||
public class Reflector : Behavior
|
||||
{
|
||||
private ReflectorConfig _data;
|
||||
private readonly PerformanceStat _crossSection;
|
||||
|
||||
public Reflector(ReflectorConfig data, EquippedItem item) : base(data, item)
|
||||
{
|
||||
_data = data;
|
||||
_crossSection = data.CrossSection;
|
||||
}
|
||||
|
||||
public Reflector(ReflectorConfig data, ConsumableItemEffect item) : base(data, item)
|
||||
{
|
||||
_data = data;
|
||||
_crossSection = data.CrossSection;
|
||||
}
|
||||
|
||||
public override bool Execute(float dt)
|
||||
{
|
||||
Entity.VisibilitySources[this] = Evaluate(_data.CrossSection) * Entity.Zone.GetLight(Entity.Position.xz);
|
||||
Entity.VisibilitySources[this] = Evaluate(_crossSection) * Entity.Zone.GetLight(Entity.Position.xz);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,20 +21,20 @@ public class VelocityConversionConfig : RuntimeBehaviorConfig
|
|||
|
||||
public class VelocityConversion : Behavior
|
||||
{
|
||||
private VelocityConversionConfig _data;
|
||||
private readonly PerformanceStat _lambda;
|
||||
|
||||
public VelocityConversion(VelocityConversionConfig data, EquippedItem item) : base(data, item)
|
||||
{
|
||||
_data = data;
|
||||
_lambda = data.Lambda;
|
||||
}
|
||||
public VelocityConversion(VelocityConversionConfig data, ConsumableItemEffect item) : base(data, item)
|
||||
{
|
||||
_data = data;
|
||||
_lambda = data.Lambda;
|
||||
}
|
||||
|
||||
public override bool Execute(float dt)
|
||||
{
|
||||
Entity.Velocity = AetheriaMath.Damp(Entity.Velocity, Entity.Direction * length(Entity.Velocity), Evaluate(_data.Lambda), dt);
|
||||
Entity.Velocity = AetheriaMath.Damp(Entity.Velocity, Entity.Direction * length(Entity.Velocity), Evaluate(_lambda), dt);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,25 +26,25 @@ public class VelocityLimit : Behavior
|
|||
{
|
||||
public float Limit { get; private set; }
|
||||
|
||||
private VelocityLimitConfig _data;
|
||||
private readonly PerformanceStat _topSpeed;
|
||||
|
||||
public VelocityLimit(VelocityLimitConfig data, EquippedItem item) : base(data, item)
|
||||
{
|
||||
_data = data;
|
||||
Limit = Evaluate(_data.TopSpeed);
|
||||
_topSpeed = data.TopSpeed;
|
||||
Limit = Evaluate(_topSpeed);
|
||||
}
|
||||
|
||||
public VelocityLimit(VelocityLimitConfig data, ConsumableItemEffect item) : base(data, item)
|
||||
{
|
||||
_data = data;
|
||||
Limit = Evaluate(_data.TopSpeed);
|
||||
_topSpeed = data.TopSpeed;
|
||||
Limit = Evaluate(_topSpeed);
|
||||
}
|
||||
|
||||
public override bool Execute(float dt)
|
||||
{
|
||||
Limit = Evaluate(_data.TopSpeed);
|
||||
Limit = Evaluate(_topSpeed);
|
||||
if (length(Entity.Velocity) > Limit)
|
||||
Entity.Velocity = normalize(Entity.Velocity) * Limit;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue