public void SwitchFaction(AttributesManager originalGhostAttrManager, AttributesManager originalPeopleAttrManager) { SwitchFactionStartEvent?.Invoke(); StartCoroutine(IEnumeratorHelper.After(() => { SwitchFactionCompleteEvent?.Invoke(); }, switchFactionUseTime)); ChangeToPeople(originalGhostAttrManager); ChangeToGhost(originalPeopleAttrManager); AddScore(originalGhostAttrManager.gameObject); }
private void ChangeToGhost(AttributesManager originalPeopleAttrManager) { originalPeopleAttrManager.faction = PlayerFaction.Ghost; originalPeopleAttrManager.RemoveAllItemRevise(); foreach (ReviseInfo tempReviseInfo in changeToGhostRevises) { long reviseReceipt = originalPeopleAttrManager.AddItemRevise(tempReviseInfo); } ActivityManager originalPeopleActivityManager = originalPeopleAttrManager.GetComponent <ActivityManager>(); originalPeopleActivityManager.enabled = false; StartCoroutine(IEnumeratorHelper.After(() => { originalPeopleActivityManager.enabled = true; }, switchFactionUseTime)); }
private long AddItemReviseRecoverSP(float reviseValue, ReviseType reviseMode, float duration) { long receipt = System.DateTime.Now.ToBinary(); float revise = reviseValue; switch (reviseMode) { case ReviseType.PercentBase: revise = baseRecoverSP * reviseValue; break; case ReviseType.PercentCurrent: revise = recoverSP * reviseValue; break; } receiptItemReviseRecoverSPPairs.Add(receipt, revise); if (duration > 0) { StartCoroutine(IEnumeratorHelper.After(RemoveItemReviseRecoverSP, receipt, duration)); } return(receipt); }
private long AddActivityReviseMaxSP(float reviseValue, ReviseType reviseMode, float duration) { long receipt = System.DateTime.Now.ToBinary(); float revise = reviseValue; switch (reviseMode) { case ReviseType.PercentBase: revise = baseMaxSP * reviseValue; break; case ReviseType.PercentCurrent: revise = maxSP * reviseValue; break; } receiptActivityReviseMaxSPPairs.Add(receipt, revise); MaxSPChangeEvent?.Invoke(maxSP); if (duration > 0) { StartCoroutine(IEnumeratorHelper.After(RemoveActivityReviseMaxSP, receipt, duration)); } return(receipt); }
private long AddItemReviseTimeScale(float reviseValue, ReviseType reviseMode, float duration) { long receipt = System.DateTime.Now.ToBinary(); float revise = reviseValue; switch (reviseMode) { case ReviseType.PercentBase: revise = baseTimeScale * reviseValue; break; case ReviseType.PercentCurrent: revise = timeScale * reviseValue; break; } receiptItemReviseTimeScalePairs.Add(receipt, revise); SetAnimatorSpeed(timeScale); TimeScaleChangeEvent?.Invoke(timeScale); if (duration > 0) { StartCoroutine(IEnumeratorHelper.After(RemoveItemReviseTimeScale, receipt, duration)); } return(receipt); }