public void SetTimer(StatusEffect effect, UnitBase unit) { targetUnit = unit; statusEffect = effect; timer = statusEffect.turnDuration; battleEvent.AddListener(this); targetUnit.onDeath += RemoveTimerAndEffect; targetUnit.Unit.recoveredFromOverexertion += RemoveTimerAndEffect; }
private void Start() { unit = GetComponent <Unit>(); currentApExerted = 0; unit.borrowAP += BorrowAP; unit.parent.onDeath += OnDeath; battleEvent.AddListener(this); characterTurnEvent.AddListener(this); endOfTurnEvent.AddListener(this); }
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); }
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; }