public override void Affect(BaseCharacterMaster unitAffected, bool decrementTurnsLeft) { base.Affect(unitAffected, decrementTurnsLeft); unitAffected.Unit.UnitState.ApplyDamage(Power); unitAffected.ReciveDamage(Power); }
// Happens on turn finished public virtual void Affect(BaseCharacterMaster unitAffected, bool decrementTurnsLeft) { if (decrementTurnsLeft) { TurnsLeftAffected--; } }
public void BeginPlayerActionPhase(BaseCharacterMaster activeCharacter, Action onPhaseCompleted) { onActionPhaseCompleted = onPhaseCompleted; this.activeCharacter = activeCharacter; if (activeCharacter.Unit.UnitState.IsTaunted(out var tauntEffect)) { var tauntTargetUnit = UnitManager.Instance.GetActiveCharacter(tauntEffect.tauntTarget.GetUnitIdentifier()); if (tauntTargetUnit != null) { TauntInfo.SetActive(true); DOVirtual.DelayedCall(2.5f, () => TauntInfo.SetActive(false)); activeAbility = activeCharacter.Unit.UnitData.UnitAbilities.Find((ua) => ua.AbilityName == "Attack") ?? activeCharacter.Unit.UnitData.UnitAbilities.Random(); OnTargetsChosen(new TargetingResultData(Vector3.zero, new List <UnitIdentifier> { tauntEffect.OptionalTarget.GetUnitIdentifier() })); return; } } activeCharacter.SetHighlight(true); SetActionMode(ActionMode.HUD); }
public void EndPlayerActionPhase() { activeCharacter.SetHighlight(false); this.activeCharacter = null; SetActionMode(ActionMode.Disabled); onActionPhaseCompleted?.Invoke(); }
public static ActionEffect GetActionEffect(ActionEffectData actionEffectData, BaseCharacterMaster optionalTarget = null) { switch (actionEffectData.AbilityEffectType) { case ActionEffectType.Damage: return(new DamageEffect(actionEffectData)); case ActionEffectType.Heal: return(new HealEffect(actionEffectData)); case ActionEffectType.Taunt: return(new TauntEffect(actionEffectData, optionalTarget)); case ActionEffectType.Shield: return(new ShieldEffect(actionEffectData)); default: Debug.Log("[ActionEffectFactory] ActionEffectType not defined in the ActionEffectFactory"); return(new DamageEffect(0, 0)); } }
public static UnitIdentifier GetUnitIdentifier(this BaseCharacterMaster baseCharacterMaster) { return(baseCharacterMaster.Unit.UnitIdentifier); }
public virtual void OnRemoved(BaseCharacterMaster unitAffected) { }
public override void Affect(BaseCharacterMaster unitAffected, bool decrementTurnsLeft) { base.Affect(unitAffected, decrementTurnsLeft); unitAffected.RefreshLabel(); }
public TauntEffect(int turnLenght, int power, BaseCharacterMaster tauntTarget) : base(turnLenght, power) { this.tauntTarget = tauntTarget; }
public TauntEffect(ActionEffectData actionEffectData, BaseCharacterMaster tauntTarget) : base(actionEffectData) { this.tauntTarget = tauntTarget; }
public override void Affect(BaseCharacterMaster unitAffected, bool decrementTurnsLeft) { base.Affect(unitAffected, decrementTurnsLeft); unitAffected.ReciveHeal(Power); }
public override void OnRemoved(BaseCharacterMaster unitAffected) { base.OnRemoved(unitAffected); unitAffected.ToggleShieldVisuals(false); }
public override void Affect(BaseCharacterMaster unitAffected, bool decrementTurnsLeft) { base.Affect(unitAffected, decrementTurnsLeft); unitAffected.ToggleShieldVisuals(true); }