private void CreateWalkForward(StateMachine stateMachine) { State state; Transition transition; state = new State("WalkForward"); stateMachine.AddState(state); state.AddBehaviour(new MoveBehaviour(5f)); state.AddBehaviour(new RotateBehaviour(75f)); state.AddBehaviour(new PlayAnimationBehaviour("Run", 0.1f)); transition = new Transition("Jump"); state.AddTransition(transition); transition.AddCondition(new ButtonCondition("Jump")); transition.AddCondition(new IsGroundedCondition()); transition = new Transition("Idle"); state.AddTransition(transition); transition.AddCondition(new VerticalAxisCondition(e => e == 0)); transition = new Transition("Jump"); state.AddTransition(transition); transition.AddCondition(new ButtonCondition("Jump")); transition.AddCondition(new IsGroundedCondition()); transition = new Transition("MeleeAttack"); state.AddTransition(transition); transition.AddCondition(new ButtonCondition("MeleeAttack")); transition = new Transition("RangeAttack"); state.AddTransition(transition); transition.AddCondition(new ButtonCondition("RangeAttack")); }
private void CreateRotateLeft(StateMachine stateMachine) { State state; Transition transition; state = new State("RotateLeft"); stateMachine.AddState(state); state.AddBehaviour(new RotateBehaviour(100f)); state.AddBehaviour(new PlayAnimationBehaviour("Rotate Left", 0.1f)); transition = new Transition("Idle"); state.AddTransition(transition); transition.AddCondition(new HorizontalAxisCondition(e => e == 0)); transition = new Transition("WalkForward"); state.AddTransition(transition); transition.AddCondition(new VerticalAxisCondition(e => e > 0)); transition = new Transition("WalkBackward"); state.AddTransition(transition); transition.AddCondition(new VerticalAxisCondition(e => e < 0)); transition = new Transition("Jump"); state.AddTransition(transition); transition.AddCondition(new ButtonCondition("Jump")); transition.AddCondition(new IsGroundedCondition()); transition = new Transition("MeleeAttack"); state.AddTransition(transition); transition.AddCondition(new ButtonCondition("MeleeAttack")); transition = new Transition("RangeAttack"); state.AddTransition(transition); transition.AddCondition(new ButtonCondition("RangeAttack")); }
private void CreateRotateRight(StateMachine stateMachine) { State state; Transition transition; state = new State("RotateRight"); stateMachine.AddState(state); state.AddBehaviour(new RotateAIBehaviour(5f)); state.AddBehaviour(new PlayAnimationBehaviour("Rotate Right", 0.1f)); transition = new Transition("Idle"); state.AddTransition(transition); transition.AddCondition(new RangeCheckToPlayerCondition(e => e < stateMachine.User.GetComponent <EnemyController>().AI.stoppingDistance)); transition.AddCondition(new AngleCheckToPlayerCondition(e => e <0.1f && e> -0.1f)); transition = new Transition("Idle"); state.AddTransition(transition); transition.AddCondition(new RangeCheckToPlayerCondition(e => e > stateMachine.User.GetComponent <EnemyController>().lookRadius)); transition.AddCondition(new AngleCheckToPlayerCondition(e => e <0.1f && e> -0.1f)); transition = new Transition("WalkForward"); state.AddTransition(transition); transition.AddCondition(new RangeCheckToPlayerCondition(e => e < stateMachine.User.GetComponent <EnemyController>().lookRadius)); transition.AddCondition(new RangeCheckToPlayerCondition(e => e > stateMachine.User.GetComponent <EnemyController>().AI.stoppingDistance)); }
private void CreateWalkBackward(StateMachine stateMachine) { State state; Transition transition; state = new State("WalkBackward"); stateMachine.AddState(state); state.AddBehaviour(new MoveBehaviour(-3f)); state.AddBehaviour(new RotateBehaviour(75f)); state.AddBehaviour(new PlayAnimationBehaviour("Walk", 0.1f)); state.AddBehaviour(new DrainEnergyBehaviour(3)); transition = new Transition("Jump"); state.AddTransition(transition); transition.AddCondition(new ButtonCondition("Jump")); transition.AddCondition(new IsGroundedCondition()); transition = new Transition("Idle"); state.AddTransition(transition); transition.AddCondition(new VerticalAxisCondition(e => e == 0)); transition = new Transition("Transformation"); state.AddTransition(transition); transition.AddCondition(new IsEnergyZeroCondition()); }
private void CreateIdle(StateMachine stateMachine) { State state; Transition transition; state = new State("Idle"); stateMachine.AddState(state); state.AddBehaviour(new PlayAnimationBehaviour("Idle", 0.1f)); state.AddBehaviour(new RegenerationBehaviour(stateMachine.User, 1.5f)); transition = new Transition("WalkForward"); state.AddTransition(transition); transition.AddCondition(new VerticalAxisCondition(e => e > 0)); transition = new Transition("WalkBackward"); state.AddTransition(transition); transition.AddCondition(new VerticalAxisCondition(e => e < 0)); transition = new Transition("RotateRight"); state.AddTransition(transition); transition.AddCondition(new HorizontalAxisCondition(e => e > 0)); transition = new Transition("RotateLeft"); state.AddTransition(transition); transition.AddCondition(new HorizontalAxisCondition(e => e < 0)); transition = new Transition("Jump"); state.AddTransition(transition); transition.AddCondition(new ButtonCondition("Jump")); transition.AddCondition(new IsGroundedCondition()); transition = new Transition("Dodge"); state.AddTransition(transition); transition.AddCondition(new ButtonCondition("Dodge")); transition.AddCondition(new IsGroundedCondition()); transition = new Transition("MeleeAttack"); state.AddTransition(transition); transition.AddCondition(new ButtonCondition("MeleeAttack")); transition = new Transition("RangeAttack"); state.AddTransition(transition); transition.AddCondition(new ButtonCondition("RangeAttack")); transition = new Transition("Transformation"); state.AddTransition(transition); transition.AddCondition(new ButtonCondition("Transformation")); transition.AddCondition(new IsEnergyFullCondition()); }
public void AddCondition_ReturnsInputtedCondition() { Transition transition = new Transition(new SpeechNode(), new SpeechNode()); MockTransitionCondition condition = new MockTransitionCondition(); Assert.AreSame(condition, transition.AddCondition(condition)); }
// Use this for initialization void Start() { HPAttack = new MaxCondition(); HPDefend = new MinCondition(); MoveForward = new Action(); MoveBackward = new Action(); Attack.AddAction(MoveForward); Defend.AddAction(MoveBackward); MoveForward.SetDirection(-Vector3.right); MoveBackward.SetDirection(Vector3.right); SwitchStanceDefend = new Transition(); SwitchStanceAttack = new Transition(); HPAttack.SetTestValue(PlayerHp, MaxHp / 2); HPDefend.SetTestValue(PlayerHp, MaxHp / 2); SwitchStanceDefend.AddCondition(HPDefend); SwitchStanceDefend.SetTargetState(Attack); SwitchStanceAttack.AddCondition(HPAttack); SwitchStanceAttack.SetTargetState(Defend); Attack = new State(SwitchStanceAttack); Defend = new State(SwitchStanceDefend); FSM = new FiniteStateMachine(Attack); }
public void AddCondition_InputtingNull_DoesNotAddToTransition_ReturnsNull() { Transition transition = new Transition(new SpeechNode(), new SpeechNode()); Assert.AreEqual(0, transition.ConditionCount); Assert.IsNull(transition.AddCondition(null)); Assert.AreEqual(0, transition.ConditionCount); }
public void AddCondition_SetsInputtedConditionTransition_ToTransition() { Transition transition = new Transition(new SpeechNode(), new SpeechNode()); MockTransitionCondition condition = new MockTransitionCondition(); Assert.IsNull(condition.Transition); transition.AddCondition(condition); Assert.AreSame(transition, condition.Transition); }
public void AddCondition_AddsInputtedCondition_ToTransition() { Transition transition = new Transition(new SpeechNode(), new SpeechNode()); Assert.AreEqual(0, transition.ConditionCount); MockTransitionCondition condition = new MockTransitionCondition(); transition.AddCondition(condition); Assert.AreEqual(1, transition.ConditionCount); Assert.AreSame(condition, transition.GetConditionAt(0)); }
private void CreateJump(StateMachine stateMachine) { State state; Transition transition; state = new State("Jump"); stateMachine.AddState(state); state.AddBehaviour(new JumpBehaviour(5)); state.AddBehaviour(new PlayAnimationBehaviour("Jump", 0.1f)); transition = new Transition("Idle"); state.AddTransition(transition); transition.AddCondition(new AnimationFinishedCondition()); }
private void CreateRangeAttack(StateMachine stateMachine) { State state; Transition transition; state = new State("RangeAttack"); stateMachine.AddState(state); state.AddBehaviour(new ExecuteAttackOnAnimCurveBehaviour(new AttackBehaviour("RangeAttack"))); state.AddBehaviour(new PlayAnimationBehaviour("RangeAttack", 0.1f)); transition = new Transition("Idle"); state.AddTransition(transition); transition.AddCondition(new AnimationFinishedCondition()); }
private void CreateActive(StateMachine stateMachine) { State state; Transition transition; state = new State("Active"); stateMachine.AddState(state); state.AddBehaviour(new PlayAnimationBehaviour("Active", 0)); state.AddBehaviour(new SetAIOnExitBehaviour(true)); transition = new Transition("Idle"); state.AddTransition(transition); transition.AddCondition(new AnimationFinishedCondition()); }
private void CreateDodge(StateMachine stateMachine) { State state; Transition transition; state = new State("Dodge"); stateMachine.AddState(state); state.AddBehaviour(new DodgeBehaviour(-10)); state.AddBehaviour(new PlayAnimationBehaviour("Dodge", 0.1f)); transition = new Transition("Idle"); state.AddTransition(transition); transition.AddCondition(new AnimationFinishedCondition()); }
private void CreateInactive(StateMachine stateMachine) { State state; Transition transition; state = new State("Inactive"); stateMachine.AddState(state); state.AddBehaviour(new SetAIOnEnterBehaviour(false)); state.Enter(); state.AddBehaviour(new PlayAnimationBehaviour("Inactive", 0)); transition = new Transition("Active"); state.AddTransition(transition); transition.AddCondition(new RangeCheckToPlayerCondition(e => e < 10f)); }
private void CreateAttack5(StateMachine stateMachine) { State state; Transition transition; state = new State("Attack5"); stateMachine.AddState(state); state.AddBehaviour(new ExecuteAttackOnAnimCurveBehaviour(new AttackBehaviour("Attack5"))); state.AddBehaviour(new SpawnEffectOnEnterBehaviour(Resources.Load <GameObject>("SFX/FireBreath"))); state.AddBehaviour(new PlayAnimationBehaviour("Attack5", 0.1f)); state.AddBehaviour(new SetAttackBehaviour()); transition = new Transition("Idle"); state.AddTransition(transition); transition.AddCondition(new AnimationFinishedCondition()); }
private void CreateTransformation(StateMachine stateMachine) { State state; Transition transition; state = new State("Transformation"); stateMachine.AddState(state); state.AddBehaviour(new PlayAnimationBehaviour("Transformation", 0.1f)); state.AddBehaviour(new TransformationBehaviour(true)); state.AddBehaviour(new SpawnEffectOnEnterBehaviour(Resources.Load <GameObject>("SFX/Howl"))); state.AddBehaviour(new SpawnEffectOnExitBehaviour(Resources.Load <GameObject>("TransformationEffect"))); transition = new Transition("Idle"); state.AddTransition(transition); transition.AddCondition(new AnimationFinishedCondition()); }
private void CreateGetHit(StateMachine stateMachine) { State state; Transition transition; state = new State("GetHit"); stateMachine.AddState(state); state.AddBehaviour(new PlayAnimationBehaviour("GetHit", 0f)); transition = new Transition("Death"); state.AddTransition(transition); transition.AddCondition(new IsDeadCondition()); transition = new Transition("Idle"); state.AddTransition(transition); transition.AddCondition(new AnimationFinishedCondition()); }
private void CreateGetHit(StateMachine stateMachine) { State state; Transition transition; state = new State("GetHit"); stateMachine.AddState(state); state.AddBehaviour(new PlayAnimationBehaviour("GetHit", 0f)); state.AddBehaviour(new SpawnEffectOnEnterBehaviour(Resources.Load <GameObject>("SFX/GhoulGetHit"))); transition = new Transition("Death"); state.AddTransition(transition); transition.AddCondition(new IsDeadCondition()); transition = new Transition("Idle"); state.AddTransition(transition); transition.AddCondition(new AnimationFinishedCondition()); }
public override void ItemInitiation() { base.ItemInitiation(); _transition.AddCondition(this); }
protected override void AgentInitiation() { base.AgentInitiation(); _transition.AddCondition(this); }
void Init() { _transition.AddCondition(this); }