예제 #1
0
    public void SwitchFaction(AttributesManager originalGhostAttrManager, AttributesManager originalPeopleAttrManager)
    {
        SwitchFactionStartEvent?.Invoke();
        StartCoroutine(IEnumeratorHelper.After(() => { SwitchFactionCompleteEvent?.Invoke(); }, switchFactionUseTime));
        ChangeToPeople(originalGhostAttrManager);

        ChangeToGhost(originalPeopleAttrManager);
        AddScore(originalGhostAttrManager.gameObject);
    }
예제 #2
0
    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));
    }
예제 #3
0
    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);
    }
예제 #4
0
    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);
    }
예제 #5
0
    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);
    }