public OnTakeDamageAbilityEvent(IHealthOwnerCombatUnit parentUnit, AbilityActionBase bindedAction, bool triggerOnce) : base(bindedAction, triggerOnce) { _parentUnit = parentUnit; Bind(); }
public void CheckAndInvoke(AbilityActionBase parentAction, AbilityEventBase parentEvent) { ParentAction = parentAction; ParentEvent = parentEvent; SetTargetUnits(); foreach (ICombatUnit target in TargetUnits) { bool condsSatisfied = true; foreach (EventConditionBase cond in Conditions) { if (!cond.IsSatisfied(target)) { condsSatisfied = false; break; } } if (condsSatisfied) { FireOnActionStarted(); Invoke(); } } }
public OnDealtDamageAbilityEvent(IDamageDealerCombatUnit parentUnit, AbilityActionBase bindedAction) : base(bindedAction) { _parentUnit = parentUnit; Bind(); }
/// <summary> /// Should be called when an ability is finished. Will handle destroy the action /// </summary> /// <param name="action">Action that has finished</param> public static void finishAbilityAction(AbilityActionBase action) { if (action) { action.finishAbilityAction(); } }
public override void OnUpdate(float dt) { if (actions == null || actions.Count == 0) { bool condition = (bool)this.condition.GetValue(); actions = new List <AbilityActionBase>(condition ? whenTrue : whenFalse); } int deleteIndex = -1; for (int i = 0; i < actions.Count; i++) { AbilityActionBase act = actions[i]; act.OnUpdate(dt); if (act.IsFinished()) { deleteIndex = i; break; } if (act.IsBlock()) { break; } } if (deleteIndex != -1) { actions.RemoveAt(deleteIndex); } }
public void OnUpdate(float dt) { if (runningActions != null && runningActions.Count > 0) { int deleteIndex = -1; for (int i = 0; i < runningActions.Count; i++) { AbilityActionBase act = runningActions[i]; act.OnUpdate(dt); if (act.IsFinished()) { deleteIndex = i; break; } if (act.IsBlock()) { break; } } if (deleteIndex != -1) { runningActions.RemoveAt(deleteIndex); } } }
public OnThinkModifierEvent(AbilityThinkerModifier parentModifier, AbilityActionBase bindedAction) : base(bindedAction) { _parentModifier = parentModifier; Bind(); }
public OnCastStartedAbilityEvent(AbilityBase parentAbility, AbilityActionBase bindedAction) : base(bindedAction) { Parentability = parentAbility; Bind(); }
/// <summary> /// Activates this ability, will immediately enter cooldown /// </summary> public void activateAbility(PlayerController controller, BoardManager board, Vector3 worldPos, Vector3Int tileIndex) { if (inCooldown) { return; } if (string.IsNullOrEmpty(m_actionPrefab)) { Debug.LogWarning(string.Format("Unable to activate ability {0} as no action prefab was set", gameObject.name)); return; } object[] spawnData = new object[2]; spawnData[0] = controller.playerId; spawnData[1] = GameManager.manager.getPlayerIdFromBoard(board); // Project onto board worldPos.z = board.transform.position.z; GameObject newAction = PhotonNetwork.Instantiate(m_actionPrefab, worldPos, Quaternion.identity, 0, spawnData); if (!newAction) { return; } AbilityActionBase action = newAction.GetComponent <AbilityActionBase>(); if (!action) { return; } action.initAbilityAction(this, controller, board, worldPos, tileIndex); action.startAbilityAction(); cancelCooldown(); m_cooldownRoutine = StartCoroutine(cooldownRoutine()); }
public CasterTargetSelector(ICombatUnit caster, AbilityActionBase bindedAction) : base(caster, bindedAction) { }
public AbilityEventBase(AbilityActionBase bindedAction, bool triggerOnce = true) { _bindedAction = bindedAction; TriggerActionList = new List <AbilityActionBase>(); }
public TargetSelectorBase(ICombatUnit caster, AbilityActionBase parentAction) { _caster = caster; _parentAciton = parentAction; }
protected IEnumerable TreeView() { return(AbilityActionBase.TreeView()); }
public SelectOtherTargetSelector(ICombatUnit caster, AbilityActionBase parentAction) : base(caster, parentAction) { }
private void OnActionEnded(AbilityActionBase action) { Unbind(); }
public OnCollisionEnterAbilityEvent(InteractableCollider targetInteractableCollider, AbilityBase bindedAbility, AbilityActionBase bindedAction) : base(bindedAction) { _targetInteractableCollider = targetInteractableCollider; _bindedAbility = bindedAbility; Bind(); }