Beispiel #1
0
        public void Init(Transform target, EnemyMovementSetting settings)
        {
            _target = target;

            switch (settings.movementType)
            {
            case EnemyMovementType.GROUND:
                NavMeshAgent agent = gameObject.AddComponent <NavMeshAgent>();
                _movementBehaviour = new NavMeshMovement(agent, settings.speed, settings.stoppingDistance);
                break;

            case EnemyMovementType.FLYING:
                Pursuer pursuer = gameObject.AddComponent <Pursuer>();
                pursuer.SetConstraints(settings.xMin, settings.xMax, settings.yMin, settings.yMax, settings.zMin,
                                       settings.zMax);
                pursuer.SetPathfindingParameters(settings.selectedPFAlg, settings.pathfindingLevel,
                                                 settings.inEditorPathfindingTraverce, settings.heuristicFactor, settings.trajectoryOptimization,
                                                 settings.trajectorySmoothing);
                pursuer.SetMovementSettings(settings.speed, settings.moveVectorOrientation, settings.turnSpeed);
                _movementBehaviour = new FlyingMovement(pursuer, settings.lesion, settings.updateOffset);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Beispiel #2
0
 private void Awake()
 {
     agent            = gameObject.GetComponent <NavMeshAgent>();
     player           = GameObject.FindWithTag("Player");
     movementBehavior = new RoamBehaviour(agent, 5);
     AddDashAbility();
 }
 private void Awake()
 {
     agent  = gameObject.GetComponent <NavMeshAgent>();
     player = GameObject.FindWithTag("Player");
     health = new Health(10);
     //Initializing interfaces
     movementBehaviour = new RoamBehaviour(agent, 8);
     SetupAbilities();
 }
Beispiel #4
0
        public override bool Equals(object obj)
        {
            IMovementBehaviour behaviour = obj as IMovementBehaviour;

            if (behaviour == null)
            {
                return(false);
            }

            return(Equals(behaviour));
        }
        public bool AddBehaviour(MovementType type, IMovementTarget target)
        {
            var movementData = new MovementData(agent, target);

            // Decorate existing movement behaviours.
            switch (type)
            {
            case MovementType.Seek:
                this.behaviour = new SeekMovementBehaviour(this.behaviour, movementData);
                break;

            case MovementType.Flee:
                this.behaviour = new FleeMovementBehaviour(this.behaviour, movementData);
                break;

            case MovementType.Pursue:
                this.behaviour = new PursueMovementBehaviour(this.behaviour, movementData);
                break;

            case MovementType.Evade:
                this.behaviour = new EvadeMovementBehaviour(this.behaviour, movementData);
                break;

            case MovementType.Wander:
                this.behaviour = new WanderMovementBehaviour(this.behaviour, movementData);
                break;

            case MovementType.Avoid:
                this.behaviour = new AvoidMovementBehaviour(this.behaviour, movementData);
                break;

            default:
                break;
            }

            return(this.behaviour != null);
        }
 public PursueMovementBehaviour(IMovementBehaviour movementBehaviour, IMovementData movementData)
     : base(movementBehaviour, movementData)
 {
 }
 public MovementBuilder(IMovementAgent agent)
 {
     this.agent     = agent;
     this.behaviour = new IdleMovementBehaviour();
 }
Beispiel #8
0
 public WanderMovementBehaviour(IMovementBehaviour movementBehaviour, IMovementData movementData)
     : base(movementBehaviour, movementData)
 {
 }
Beispiel #9
0
 protected MovementBehaviourBaseViewModel(IMovementBehaviour model)
 {
     Model = model;
 }
Beispiel #10
0
 /// <summary>
 /// Adds current movement to this class.
 /// </summary>
 /// <param name="movementBehaviour">Movement Behaviour to add.</param>
 public void AddMovementBehaviour(IMovementBehaviour movementBehaviour)
 => this.movementBehaviour = movementBehaviour;
 public SeekMovementBehaviour(IMovementBehaviour movementBehaviour, IMovementData movementData)
     : base(movementBehaviour, movementData)
 {
 }
 public AbstractMovementDecorator(IMovementBehaviour movementBehaviour, IMovementData movementData)
 {
     this.movementBehaviour  = movementBehaviour;
     this.movementData       = movementData;
     this.movementController = movementData.Agent.Controller;
 }
Beispiel #13
0
 public AvoidMovementBehaviour(IMovementBehaviour movementBehaviour, IMovementData movementData)
     : base(movementBehaviour, movementData)
 {
 }
Beispiel #14
0
 public bool Equals(IMovementBehaviour behaviour)
 {
     return(behaviour.Id == Id);
 }
Beispiel #15
0
 public EvadeMovementBehaviour(IMovementBehaviour movementBehaviour, IMovementData movementData)
     : base(movementBehaviour, movementData)
 {
 }