예제 #1
0
        public void SetTimer(StatusEffect effect, UnitBase unit)
        {
            targetUnit   = unit;
            statusEffect = effect;
            timer        = statusEffect.turnDuration;

            battleEvent.AddListener(this);

            targetUnit.onDeath += RemoveTimerAndEffect;
            targetUnit.Unit.recoveredFromOverexertion += RemoveTimerAndEffect;
        }
예제 #2
0
        private void Start()
        {
            unit             = GetComponent <Unit>();
            currentApExerted = 0;

            unit.borrowAP       += BorrowAP;
            unit.parent.onDeath += OnDeath;

            battleEvent.AddListener(this);
            characterTurnEvent.AddListener(this);
            endOfTurnEvent.AddListener(this);
        }
예제 #3
0
        public void Init(UnitBase unit, int count)
        {
            unitBase           = unit;
            maxShieldCount     = count;
            currentShieldCount = count;

            currentState = UnitStates.Normal;
            unitBase.Unit.currentState = currentState;

            unitBase.onWeaponDamageTypeReceived += EvaluateState;
            unitBase.onElementalDamageReceived  += EvaluateState;
            unitBase.onStatusEffectReceived     += EvaluateState;
            unitBase.onStatusEffectRemoved      += EvaluateStateOnRemoval;

            battleEvent.AddListener(this);
            enemyTurnEvent.AddListener(this);
        }
예제 #4
0
        public void SetTimer(StatusEffect effect, UnitBase unit)
        {
            targetUnit   = unit;
            statusEffect = effect;
            timer        = statusEffect.turnDuration;
            removeEffectAtCharacterTurn    = effect.removeEffectAtStartOfTurn;
            removeEffectAfterCharacterTurn = effect.removeEffectAfterNextTurn;
            if (effect.removeEffectAtStartOfTurn)
            {
                targetUnit.onStatusEvaluation += RemoveEffectAtStartOfTurn;
            }

            battleEvent.AddListener(this);
            BattleEvents.SkipTurnEvent.AddListener(this);

            targetUnit.onDeath += RemoveTimerAndEffect;
            targetUnit.Unit.recoveredFromOverexertion += RemoveTimerAndEffect;
        }