Add FlatStatModifier and PercentStatModifier classes; introduce Stat enum for character attributes
This commit is contained in:
29
Assets/Scripts/Systems/CharacterModifierManager.cs
Normal file
29
Assets/Scripts/Systems/CharacterModifierManager.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using System.Collections.Generic;
|
||||
using Data;
|
||||
using Interfaces;
|
||||
using Sirenix.Serialization;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Systems
|
||||
{
|
||||
public class CharacterModifierManager : MonoBehaviour
|
||||
{
|
||||
[OdinSerialize] private List<IStatModifier> activeModifiers = new();
|
||||
|
||||
[SerializeField] private Character character;
|
||||
|
||||
public void EquipItem(IStatModifier modifier)
|
||||
{
|
||||
activeModifiers.Add(modifier);
|
||||
modifier.Apply(character.attributes);
|
||||
}
|
||||
|
||||
public void UnequipItem(IStatModifier modifier)
|
||||
{
|
||||
if (activeModifiers.Remove(modifier))
|
||||
{
|
||||
modifier.Remove(character.attributes);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user