コード例 #1
0
        public void Configure(EnnemyStrategy strategy, Color color, string name)
        {
            body.GetComponent <SpriteRenderer>().color  = color;
            sight.GetComponent <SpriteRenderer>().color = color;
            gameObject.transform.root.name = name;
            isEarlySearching = false;

            switch (strategy)
            {
            case EnnemyStrategy.Careful:
                typeSign.GetComponent <SpriteRenderer>().sprite = carefulSprite;
                this.strategy = new Careful(mover, handController, ennemySensor, pickableSensor, health);
                break;

            case EnnemyStrategy.Cowboy:
                typeSign.GetComponent <SpriteRenderer>().sprite = cowboySprite;
                this.strategy = new Cowboy(mover, handController, ennemySensor, pickableSensor);
                break;

            case EnnemyStrategy.Camper:
                typeSign.GetComponent <SpriteRenderer>().sprite = camperSprite;
                this.strategy = new Camper(mover, handController, ennemySensor, pickableSensor, health);
                break;

            case EnnemyStrategy.Zombie:
                typeSign.GetComponent <SpriteRenderer>().sprite = zombieSprite;
                this.strategy = new ZombieStrategy(mover, ennemySensor);
                break;

            default:
                typeSign.GetComponent <SpriteRenderer>().sprite = normalSprite;
                this.strategy = new Normal(mover, handController, ennemySensor);
                break;
            }
        }
コード例 #2
0
        public void Configure(EnemyStrategy newStrategy, Color color)
        {
            body.GetComponent <SpriteRenderer>().color  = color;
            sight.GetComponent <SpriteRenderer>().color = color;
            pickableMemory = new EnemyPickableMemory();
            enemyMemory    = new EnemyEnemyMemory();

            switch (newStrategy)
            {
            case EnemyStrategy.Careful:
                typeSign.GetComponent <SpriteRenderer>().sprite = carefulSprite;
                strategy = new CarefulStrategy(mover, handController, health, enemyMemory,
                                               pickableMemory);
                break;

            case EnemyStrategy.Cowboy:
                typeSign.GetComponent <SpriteRenderer>().sprite = cowboySprite;
                strategy = new CowboyStrategy(mover, handController, enemyMemory, pickableMemory);
                break;

            case EnemyStrategy.Camper:
                typeSign.GetComponent <SpriteRenderer>().sprite = camperSprite;
                strategy = new CamperStrategy(mover, handController, health, enemyMemory,
                                              pickableMemory);
                break;

            default:
                typeSign.GetComponent <SpriteRenderer>().sprite = normalSprite;
                strategy = new NormalStrategy(mover, handController, enemyMemory, pickableMemory);
                health.Heal(200);
                break;
            }
        }
コード例 #3
0
        private void ConfigureStrategy()
        {
            switch (strategyType)
            {
            case EnnemyStrategy.Careful:
                this.strategy = new CarefulStrategy(mover, handController);
                typeSign.GetComponent <SpriteRenderer>().sprite = carefulSprite;
                break;

            case EnnemyStrategy.Cowboy:
                this.strategy = new CowboyStrategy(mover, handController, false);
                typeSign.GetComponent <SpriteRenderer>().sprite = cowboySprite;
                break;

            case EnnemyStrategy.Camper:
                this.strategy = new CamperStrategy(mover, handController);
                typeSign.GetComponent <SpriteRenderer>().sprite = camperSprite;
                break;

            default:
                this.strategy = new NormalStrategy(mover, handController);
                typeSign.GetComponent <SpriteRenderer>().sprite = normalSprite;
                break;
            }
        }
コード例 #4
0
        public BaseStrategy(Mover mover, HandController handController)
        {
            this.mover          = mover;
            this.handController = handController;
            IsChasing           = false;
            IsSearching         = true;

            ennemyStrategy = mover.transform.GetComponent <IEnnemyStrategy>();
        }
コード例 #5
0
        public void Configure(EnnemyStrategy strategy, Color color)
        {
            body.GetComponent <SpriteRenderer>().color  = color;
            sight.GetComponent <SpriteRenderer>().color = color;

            switch (strategy)
            {
            case EnnemyStrategy.Careful:
                typeSign.GetComponent <SpriteRenderer>().sprite = carefulSprite;
                this.strategy = new CarefulStrategy(
                    mover,
                    handController,
                    frontWorldSensor,
                    backWorldSensor,
                    ennemySensor,
                    pickableSensor,
                    health);
                break;

            case EnnemyStrategy.Cowboy:
                typeSign.GetComponent <SpriteRenderer>().sprite = cowboySprite;
                this.strategy = new CowboyStrategy(
                    mover,
                    handController,
                    frontWorldSensor,
                    backWorldSensor,
                    ennemySensor,
                    pickableSensor);
                break;

            case EnnemyStrategy.Camper:
                typeSign.GetComponent <SpriteRenderer>().sprite = camperSprite;
                this.strategy = new CamperStrategy(
                    mover,
                    handController,
                    frontWorldSensor,
                    backWorldSensor,
                    ennemySensor,
                    pickableSensor,
                    health);
                break;

            default:
                typeSign.GetComponent <SpriteRenderer>().sprite = normalSprite;
                this.strategy = new NormalStrategy(
                    mover,
                    handController,
                    frontWorldSensor,
                    backWorldSensor,
                    ennemySensor,
                    pickableSensor);
                break;
            }
        }
コード例 #6
0
        private void InitializeComponent()
        {
            health    = GetComponent <Health>();
            mover     = GetComponent <RootMover>();
            destroyer = GetComponent <RootDestroyer>();

            var rootTransform = transform.root;

            enemySightSensor    = rootTransform.GetComponentInChildren <EnemySightSensor>();
            pickableSightSensor = rootTransform.GetComponentInChildren <PickableSightSensor>();
            hitSensor           = rootTransform.GetComponentInChildren <HitSensor>();
            handController      = hand.GetComponent <HandController>();
            pickableMemory      = new EnemyPickableMemory();
            enemyMemory         = new EnemyEnemyMemory();
            strategy            = new NormalStrategy(mover, handController, enemyMemory, pickableMemory);
        }
コード例 #7
0
        public void Configure(EnnemyStrategy strategy, Color color)
        {
            body.GetComponent <SpriteRenderer>().color  = color;
            sight.GetComponent <SpriteRenderer>().color = color;

            switch (strategy)
            {
            case EnnemyStrategy.Careful:
                typeSign.GetComponent <SpriteRenderer>().sprite = carefulSprite;
                // Think of better way for that, possibly
                this.strategy = new CarefulStrategy(mover,
                                                    handController,
                                                    ennemySensor,
                                                    medkitSensor,
                                                    medkitSensorCollision,
                                                    weaponSensor,
                                                    weaponSensorCollision
                                                    );
                break;

            case EnnemyStrategy.Cowboy:
                typeSign.GetComponent <SpriteRenderer>().sprite = cowboySprite;
                // Think of better way for that, possibly
                this.strategy = new CowboyStrategy(mover, handController, ennemySensor, weaponSensor, weaponSensorCollision);
                break;

            case EnnemyStrategy.Camper:
                typeSign.GetComponent <SpriteRenderer>().sprite = camperSprite;
                this.strategy = new CamperStrategy(mover, handController, ennemySensor, medkitSensor, weaponSensor, medkitSensorCollision, weaponSensorCollision);
                break;

            default:
                this.strategy = new NormalStrategy(mover, handController, ennemySensor);
                typeSign.GetComponent <SpriteRenderer>().sprite = normalSprite;
                break;
            }
        }
コード例 #8
0
 protected void AssignNewStrategy(IEnnemyStrategy strategy)
 {
     ennemyStrategy = strategy;
 }