60 lines
1.4 KiB
C#
60 lines
1.4 KiB
C#
namespace Gameplay.Skill.Charge
|
|
{
|
|
public class SkillChargeTime : BaseSkillCharge
|
|
{
|
|
|
|
private float _passTime;
|
|
private readonly float _cdTime;
|
|
|
|
public SkillChargeTime(SkillHandle skillHandle) : base(skillHandle)
|
|
{
|
|
_passTime = 0f;
|
|
_cdTime = rawConfig.ChargeParam;
|
|
}
|
|
|
|
protected override void _OnTimeChange(float dt)
|
|
{
|
|
base._OnTimeChange(dt);
|
|
var scaleTime = dt * skillHandle.owner.fightData.skillCdReduceScale;
|
|
_UpdateTime(scaleTime);
|
|
}
|
|
|
|
public void ForceFullCharge()
|
|
{
|
|
nowStoreCount = _maxStoreCount;
|
|
chargeProgress = 0f;
|
|
}
|
|
|
|
public void AddPassTime(float addTime)
|
|
{
|
|
_UpdateTime(addTime);
|
|
}
|
|
|
|
private void _UpdateTime(float dt)
|
|
{
|
|
if (nowStoreCount < _maxStoreCount)
|
|
{
|
|
_passTime += dt;
|
|
if (_passTime >= _cdTime)
|
|
{
|
|
_passTime = 0f;
|
|
nowStoreCount++;
|
|
}
|
|
chargeProgress = _passTime / _cdTime;
|
|
}
|
|
else
|
|
{
|
|
chargeProgress = 0f;
|
|
_passTime = 0f;
|
|
}
|
|
}
|
|
|
|
protected override void _OnUse()
|
|
{
|
|
base._OnUse();
|
|
_UpdateTime(0f);
|
|
}
|
|
|
|
}
|
|
}
|