Upload from upload_mods.ps1
This commit is contained in:
61
KFAttached/KFUtilAttached/WeaponLabelControllerChargeUp.cs
Normal file
61
KFAttached/KFUtilAttached/WeaponLabelControllerChargeUp.cs
Normal file
@@ -0,0 +1,61 @@
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
|
||||
[AddComponentMenu("KFAttachments/Weapon Display Controllers/Weapon Label Controller Charge Up")]
|
||||
public class WeaponLabelControllerChargeUp : ApexWeaponHudControllerBase
|
||||
{
|
||||
[SerializeField, Range(0.001f, 1f)]
|
||||
protected float tickTime;
|
||||
[SerializeField, Range(1, 1000)]
|
||||
protected int updateTicks = 1;
|
||||
protected Coroutine curChargeProc;
|
||||
protected bool isChargeRunning = false;
|
||||
internal void StartChargeUp()
|
||||
{
|
||||
if (shaderEnabled && (curChargeProc == null || !isChargeRunning))
|
||||
curChargeProc = StartCoroutine(ChargeUp());
|
||||
}
|
||||
|
||||
internal void StopChargeUp()
|
||||
{
|
||||
if (shaderEnabled && curChargeProc != null)
|
||||
{
|
||||
StopCoroutine(curChargeProc);
|
||||
curChargeProc = null;
|
||||
isChargeRunning = false;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnDisable()
|
||||
{
|
||||
StopChargeUp();
|
||||
}
|
||||
|
||||
private IEnumerator ChargeUp()
|
||||
{
|
||||
isChargeRunning = true;
|
||||
float chargeLeap = (float)dataArray[0] / updateTicks;
|
||||
int[] chargeArray = new int[4];
|
||||
float curChargeCount = 0;
|
||||
dataArray.CopyTo(chargeArray, 0);
|
||||
int max = dataArray[1];
|
||||
chargeArray[1] = (int)curChargeCount;
|
||||
while (chargeArray[1] <= max)
|
||||
{
|
||||
Dispatch(chargeArray);
|
||||
if (chargeArray[1] == max)
|
||||
break;
|
||||
yield return new WaitForSecondsRealtime(tickTime);
|
||||
max = dataArray[1];
|
||||
curChargeCount += chargeLeap;
|
||||
chargeArray[1] = Mathf.Min((int)curChargeCount, max);
|
||||
}
|
||||
isChargeRunning = false;
|
||||
yield break;
|
||||
}
|
||||
|
||||
protected override bool CanDispatch()
|
||||
{
|
||||
return base.CanDispatch() && !isChargeRunning;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user