using System.Collections.Generic; using UnityEngine; namespace Cielonos.MainGame.Characters { public partial class AttributeSubmodule : SubmoduleBase { public AttributeGroup attributeGroup; public bool HasAttribute(string attributeName) => attributeGroup.current.ContainsKey(attributeName); public float GetAttribute(string attributeName, float defaultValue) => attributeGroup.current.GetValueOrDefault(attributeName, defaultValue); public float this[string attributeName] { get => attributeGroup.current.GetValueOrDefault(attributeName, attributeName.Contains("Multiplier") ? 1 : 0); set => attributeGroup.current[attributeName] = value; } public AttributeSubmodule(CharacterBase character) : base(character) { Initialize(character.attributeData); } private void Initialize(AttributeData attributeData) { attributeGroup = new AttributeGroup(attributeData.originalAttributes); attributeGroup.SetUpEndowments(attributeData.runtimeAttributes); } public void RefreshAttribute(string attributeName) { attributeGroup.ResetAttribute(attributeName); //owner.equipmentSubmodule.GetGeneralAttributeChange(attributeName, out float e_numeric, out float e_pAccumulation, out float e_pMultiplication); //owner.combatBuffSubmodule.GetGeneralAttributeChange(attributeName, out float cb_numeric, out float cb_pAccumulation, out float cb_pMultiplication); float numeric = 0; //e_numeric + cb_numeric; float pAccumulation = 0; //e_pAccumulation + cb_pAccumulation; float pMultiplication = 1; //e_pMultiplication * cb_pMultiplication; attributeGroup.ModifyAttribute(attributeName, numeric, pAccumulation, pMultiplication); } } }