public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { if (fsmBehaviour.messageReceiver) { fsmBehaviour.messageReceiver.Send(listenerName, message); } }
public void DoActions(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType) { switch (executionType) { case vFSMComponentExecutionType.OnStateEnter: for (int i = 0; i < actionsEnter.Count; i++) { actionsEnter[i].DoAction(fsmBehaviour, vFSMComponentExecutionType.OnStateEnter); } break; case vFSMComponentExecutionType.OnStateExit: for (int i = 0; i < actionsExit.Count; i++) { actionsExit[i].DoAction(fsmBehaviour, vFSMComponentExecutionType.OnStateExit); } break; case vFSMComponentExecutionType.OnStateUpdate: for (int i = 0; i < actionsUpdate.Count; i++) { actionsUpdate[i].DoAction(fsmBehaviour, vFSMComponentExecutionType.OnStateUpdate); } break; } }
public virtual void Attack(vIControlAICombat aICombat, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { if (executionType == vFSMComponentExecutionType.OnStateEnter) { aICombat.InitAttackTime(); if (forceFirstAttack) { aICombat.Attack(overrideStrongAttack ? strongAttack : false, overrideAttackID ? attackID : -1, true); } } if (aICombat != null && aICombat.currentTarget.transform) { var distance = aICombat.targetDistance; if (distance <= (overrideAttackDistance ? attackDistance : aICombat.attackDistance)) { aICombat.RotateTo(aICombat.currentTarget.transform.position - aICombat.transform.position); if (!aICombat.isAttacking && aICombat.canAttack) { aICombat.Attack(overrideStrongAttack ? strongAttack : false, overrideAttackID ? attackID : -1); } } else { aICombat.SetSpeed(attackSpeed); aICombat.MoveTo(aICombat.currentTarget.transform.position); } } if (executionType == vFSMComponentExecutionType.OnStateExit) { aICombat.ResetAttackTime(); } }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { if (executionType == vFSMComponentExecutionType.OnStateEnter) { fsmBehaviour.aiController.SetDetectionTags(tags); } }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { if (fsmBehaviour.aiController.receivedDamage.lastSender) { fsmBehaviour.aiController.SetCurrentTarget(fsmBehaviour.aiController.receivedDamage.lastSender); } }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { if (fsmBehaviour != null && fsmBehaviour.aiController.currentTarget.transform && fsmBehaviour.aiController.targetInLineOfSight) { fsmBehaviour.aiController.RotateTo(fsmBehaviour.aiController.lastTargetPosition); } }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { if (executionType == vFSMComponentExecutionType.OnStateEnter) { fsmBehaviour.aiController.RemoveCurrentTarget(); } }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { if (executionType == vFSMComponentExecutionType.OnStateEnter) { fsmBehaviour.aiController.SetObstaclesLayer(newLayer); } }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { if (fsmBehaviour.aiController is vIControlAIShooter) { ControlAttack(fsmBehaviour, fsmBehaviour.aiController as vIControlAIShooter); } }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { if (executionType == vFSMComponentExecutionType.OnStateEnter) { fsmBehaviour.aiController.SetLineOfSight(fieldOfView, minDistanceToDetect, maxDistanceToDetect, lostTargetDistance); } }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { if (fsmBehaviour.aiController != null) { if (fsmBehaviour.aiController.HasComponent <vAINoiseListener>()) { fsmBehaviour.aiController.SetSpeed(speed); var noiseListener = fsmBehaviour.aiController.GetAIComponent <vAINoiseListener>(); vNoise noise = null; if (findNewNoise) { if (specificType) { noise = noiseListener.GetNearNoiseByTypes(noiseTypes); } else { noise = noiseListener.GetNearNoise(); } } else { noise = noiseListener.lastListenedNoise; } if (noise != null) { fsmBehaviour.aiController.MoveTo(noise.position); if (lookToNoisePosition) { fsmBehaviour.aiController.LookTo(noise.position, offsetLookHeight: 0); } } } } }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { if (fsmBehaviour.aiController.HasComponent <vAICompanion>()) { fsmBehaviour.aiController.SetSpeed(speed); MoveToFriendPosition(fsmBehaviour.aiController.GetAIComponent <vAICompanion>()); } }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { if (fsmBehaviour.aiController.isDead && !recoverWhenIsDead) { return; } AddHealth(fsmBehaviour); }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { if (executionType == vFSMComponentExecutionType.OnStateUpdate) { Flee(fsmBehaviour); } else if (executionType == vFSMComponentExecutionType.OnStateEnter) { Flee(fsmBehaviour); // force update path to be really fast for quick time, so the AI can react quickly and flee fsmBehaviour.aiController.ForceUpdatePath(); } }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { if (fsmBehaviour.aiController == null) { return; } if (executionType == vFSMComponentExecutionType.OnStateEnter) { fsmBehaviour.aiController.ForceUpdatePath(2f); } fsmBehaviour.aiController.SetSpeed(speed); if (useStrafeMovement) { fsmBehaviour.aiController.StrafeMoveTo(fsmBehaviour.aiController.lastTargetPosition, fsmBehaviour.aiController.lastTargetPosition - fsmBehaviour.transform.position); } else { fsmBehaviour.aiController.MoveTo(fsmBehaviour.aiController.lastTargetPosition); } }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { if (fsmBehaviour.aiController is vIControlAICombat) { var combatController = (fsmBehaviour.aiController as vIControlAICombat); switch (executionType) { case vFSMComponentExecutionType.OnStateEnter: OnEnterCombat(combatController); break; case vFSMComponentExecutionType.OnStateExit: OnExitCombat(combatController); break; case vFSMComponentExecutionType.OnStateUpdate: OnUpdateCombat(combatController); break; } } }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { vIControlAICombat combatController = fsmBehaviour.aiController as vIControlAICombat; if (combatController == null) { return; } combatController.SetSpeed(speed); if (executionType == vFSMComponentExecutionType.OnStateUpdate && fsmBehaviour.aiController.HasComponent <vAICover>()) { var cover = fsmBehaviour.aiController.GetAIComponent <vAICover>(); if (fsmBehaviour.aiController.currentTarget.transform) { cover.GetCoverFromTargetThreat(); } else { cover.GetCoverFromRandomThreat(); } } if (executionType == vFSMComponentExecutionType.OnStateExit) { if (fsmBehaviour.aiController.HasComponent <vAICover>()) { var cover = fsmBehaviour.aiController.GetAIComponent <vAICover>(); cover.OnExitCover(); } (combatController).isInCombat = false; combatController.isCrouching = false; } if (executionType == vFSMComponentExecutionType.OnStateEnter) { (combatController).isInCombat = true; } }
protected virtual void ControlAttack(vIFSMBehaviourController fsmBehaviour, vIControlAIShooter combat, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { switch (executionType) { case vFSMComponentExecutionType.OnStateEnter: InitAttack(combat); break; case vFSMComponentExecutionType.OnStateUpdate: HandleAttack(fsmBehaviour, combat); break; case vFSMComponentExecutionType.OnStateExit: FinishAttack(combat); break; } }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { fsmBehaviour.aiController.LookAround(); }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { fsmBehaviour.ChangeBehaviour(newBehaviour); }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { fsmBehaviour.aiController.animator.Play(_animationState, _layer); }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { Attack(fsmBehaviour.aiController as vIControlAICombat, executionType); }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { DoWander(fsmBehaviour); }
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate) { FindTarget(fsmBehaviour.aiController); }
public abstract void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate);