Move behavior identity onto runtime instances
This commit is contained in:
parent
f785f8e350
commit
a639569f72
6 changed files with 17 additions and 6 deletions
|
|
@ -13,6 +13,7 @@ using static Unity.Mathematics.noise;
|
|||
public abstract class Behavior
|
||||
{
|
||||
public BehaviorData Data { get; }
|
||||
public string Kind { get; }
|
||||
public EquippedItem Item { get; }
|
||||
private ConsumableItemEffect Consumable { get; }
|
||||
protected ItemManager ItemManager { get; }
|
||||
|
|
@ -45,6 +46,7 @@ public abstract class Behavior
|
|||
protected Behavior(BehaviorData data, EquippedItem item)
|
||||
{
|
||||
Data = data;
|
||||
Kind = data?.Kind ?? "";
|
||||
Item = item;
|
||||
ItemManager = Item.ItemManager;
|
||||
}
|
||||
|
|
@ -52,6 +54,7 @@ public abstract class Behavior
|
|||
protected Behavior(BehaviorData data, ConsumableItemEffect consumable)
|
||||
{
|
||||
Data = data;
|
||||
Kind = data?.Kind ?? "";
|
||||
Consumable = consumable;
|
||||
ItemManager = consumable.Entity.ItemManager;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ public class StatModifier : Behavior, IInitializableBehavior, IDisposable, IAlwa
|
|||
_stats = Entity.Equipment
|
||||
.Where(HasRequiredBehavior)
|
||||
.SelectMany(gear => gear.Behaviors ?? Array.Empty<Behavior>())
|
||||
.Where(behavior => BehaviorKindMatches(behavior.Data.Kind, _data.Stat.Target))
|
||||
.Where(behavior => BehaviorKindMatches(behavior.Kind, _data.Stat.Target))
|
||||
.Select(FindTargetStat)
|
||||
.Where(stat => stat != null)
|
||||
.ToArray();
|
||||
|
|
@ -103,7 +103,7 @@ public class StatModifier : Behavior, IInitializableBehavior, IDisposable, IAlwa
|
|||
{
|
||||
return string.IsNullOrWhiteSpace(_data.RequireBehavior) ||
|
||||
(gear?.Behaviors ?? Array.Empty<Behavior>())
|
||||
.Any(behavior => BehaviorKindMatches(behavior.Data.Kind, _data.RequireBehavior));
|
||||
.Any(behavior => BehaviorKindMatches(behavior.Kind, _data.RequireBehavior));
|
||||
}
|
||||
|
||||
private void ApplyModifier()
|
||||
|
|
|
|||
Loading…
Reference in a new issue