using Gameplay.Common; namespace Gameplay.Skill.Charge { public class SkillChargeEnergy : BaseSkillCharge { private readonly float _maxEnergyValue; private float _nowEnergyValue; public SkillChargeEnergy(SkillHandle skillHandle) : base(skillHandle) { _maxEnergyValue = rawConfig.ChargeParam; _nowEnergyValue = 0f; } private void _AddEnergy(float addValue) { if (nowStoreCount < _maxStoreCount) { _nowEnergyValue += addValue; if (_nowEnergyValue >= _maxEnergyValue) { _nowEnergyValue = 0f; nowStoreCount++; } chargeProgress = _nowEnergyValue / _maxEnergyValue; } else { chargeProgress = 0f; } } protected override void _OnNormalAttack() { base._OnNormalAttack(); _AddEnergy(GLConfig.Inst.data.SkillChargeNormalAttack); } protected override void _OnBeAttack() { base._OnBeAttack(); _AddEnergy(GLConfig.Inst.data.SkillChargeBeAttack); } } }