コード例 #1
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;
            }
        }
コード例 #2
0
 // Start is called before the first frame update
 void Start()
 {
     entityMediator       = entityMediator = GameObject.Find("Mediator").GetComponent <EntityMediator>();
     strategy             = new IdleStrategy();
     movementScript       = gameObject.GetComponent <EnemyMovement>();
     movementScript.speed = moveSpeed;
 }
コード例 #3
0
        public void Configure(EnemyStrategy strategy, Color color)
        {
            body.GetComponent <SpriteRenderer>().color        = color;
            sightPrefab.GetComponent <SpriteRenderer>().color = color;

            switch (strategy)
            {
            case EnemyStrategy.Careful:
                typeSignPrefab.GetComponent <SpriteRenderer>().sprite = carefulSprite;
                gameObject.AddComponent <CarefulStrategy>();
                break;

            case EnemyStrategy.Cowboy:
                typeSignPrefab.GetComponent <SpriteRenderer>().sprite = cowboySprite;
                gameObject.AddComponent <CowboyStrategy>();
                break;

            case EnemyStrategy.Camper:
                typeSignPrefab.GetComponent <SpriteRenderer>().sprite = camperSprite;
                gameObject.AddComponent <CamperStrategy>();
                break;

            default:
                typeSignPrefab.GetComponent <SpriteRenderer>().sprite = normalSprite;
                gameObject.AddComponent <NormalStrategy>();
                break;
            }
        }
コード例 #4
0
    // Use this for initialization
    void Start()
    {
        player = GameObject.FindGameObjectWithTag("Player");

        // Initialize the enemy type
        switch (_strategyType)
        {
        case StrategyType.skeleton:
            _strategy = new SkeletonStrategy();
            _strategy._setParent(this);
            break;

        case StrategyType.spider:
            _strategy = new SpiderStrategy();
            _strategy._setParent(this);
            break;

        case StrategyType.demon:


        case StrategyType.golem:

        default:
            _strategy = new SkeletonStrategy();
            _strategy._setParent(this);
            break;
        }

        // Initialize the spherical aggro radius collider/trigger
        ((SphereCollider)gameObject.collider).radius    = 8;
        ((SphereCollider)gameObject.collider).isTrigger = true;
        ((SphereCollider)gameObject.collider).center    = new Vector3(0f, 1.68f, 0f);
    }
コード例 #5
0
        private void SpawnEnnemy(Vector3 position, EnemyStrategy strategy, Color color)
        {
            var ennemy = Instantiate(ennemyPrefab, position, Quaternion.identity);

            ennemy.GetComponentInChildren <EnemyController>()
            .Configure(strategy, color);

            var angle = Vector3.Angle(Vector3.up, Vector3.zero - position);

            angle = position.x > 0 ? angle : 360 - angle;
            ennemy.transform.Rotate(Vector3.forward, angle);
        }
コード例 #6
0
    // Use this for initialization
    void Start()
    {
        _rigidBody = GetComponent <Rigidbody2D>();

        if (strategy == eEnemyStragegy.Sitting)
        {
            _strategy = new SittingStrategy();
        }
        else if (strategy == eEnemyStragegy.Walking)
        {
            _strategy = new WalkingStrategy(this);
        }
    }
コード例 #7
0
    /// <summary>
    /// 敵キャラクターのステートを初期化し、動作を開始します。
    /// </summary>
    public void StartEnemyAction()
    {
        var api = new EnemyApi(Enemy)
        {
            BulletRenderer = bulletRenderer
        };
        var context = new EnemyStateContext
        {
            Api            = api,
            BulletRenderer = bulletRenderer,
            Enemy          = Enemy,
            InitialPos     = Enemy.InitialPosition,
            EventAccepter  = eventFacade,
            Behaviors      = EnemyStrategy.GetBehaviors(api).GetEnumerator()
        };

        context.ChangeState(Enemy.NextRoundStateName);
    }
コード例 #8
0
 private List <Act> DetectEnemyAct(Loc playerNextLoc)
 {
     return(EnemyStrategy.Detect(_enemies, _player, playerNextLoc, _floor));
 }
コード例 #9
0
    // Start is called before the first frame update
    void Start()
    {
        Debug.Log("Start");
        //CharData data;

        /*
         * CharData data = new CharData();
         * data.charShowName = "理事";
         * data.maxHealth = 64;
         * data.health = 52;
         * data.energy = 1;
         * data.maxEnergy = 3;
         * data.agility = 23;
         * data.charView = character1.GetComponent<CharView>();
         * character1.GetComponent<CharView>().character = data;
         * //character1.GetComponent<CharView>().charViewUI.character = data;
         * FieldManager.instance.heros.front = data;
         * data.skill1 = new testSkill.NormalAttack("x", 1, 1, 15).SetChar(data);
         * data.skill2 = new testSkill.AttackSelf("x", 2, 2, 12).SetChar(data);
         *
         *
         * data = new CharData();
         * data.charShowName = "麻耶";
         * data.maxHealth = 100;
         * data.health = 35;
         * data.energy = 2;
         * data.maxEnergy = 4;
         * data.agility = 12;
         * data.charView = character2.GetComponent<CharView>();
         * character2.GetComponent<CharView>().character = data;
         * //character2.GetComponent<CharView>().charViewUI.character = data;
         * FieldManager.instance.heros.middle = data;
         * data.skill1 = new testSkill.NormalAttack("x", 1, 0, 15).SetChar(data);
         * data.skill2 = new testSkill.JustTest("x", 2, 2).SetChar(data);
         *
         * data = new CharData();
         * data.charShowName = "惠";
         * data.maxHealth = 75;
         * data.health = 35;
         * data.energy = 2;
         * data.maxEnergy = 3;
         * data.agility = 35;
         * data.charView = character3.GetComponent<CharView>();
         * character3.GetComponent<CharView>().character = data;
         * //character3.GetComponent<CharView>().charViewUI.character = data;
         * FieldManager.instance.heros.back = data;
         * data.skill1 = new testSkill.NormalAttack("x", 1, 0, 15).SetChar(data);
         * data.skill2 = new testSkill.AttackSelf("x", 2, 2, 12).SetChar(data);
         * data.skill3 = new testSkill.JustTest("x", 2, 2).SetChar(data);
         *
         *
         * data = new CharData();
         * data.charShowName = "敵人1";
         * data.enemyStrategy = new EnemyStrategy();
         * data.enemyStrategy.AddAction(new nEnemyAction.DamageSelf(10));
         * data.maxHealth = 80;
         * data.health = 75;
         * data.energy = 2;
         * data.maxEnergy = 4;
         * data.agility = 21;
         * data.skill3 = new testSkill.JustTest("x", 1, 0).SetChar(data);
         * data.charView = enemy1.GetComponent<CharView>();
         * enemy1.GetComponent<CharView>().character = data;
         * FieldManager.instance.enemies.front = data;
         * data = new CharData();
         * data.charShowName = "敵人2";
         * data.enemyStrategy = new EnemyStrategy();
         * data.enemyStrategy.AddAction(new nEnemyAction.DamageSelf(15));
         * data.maxHealth = 100;
         * data.health = 75;
         * data.energy = 2;
         * data.maxEnergy = 4;
         * data.agility = 25;
         * data.skill2 = new testSkill.AttackSelf("x", 2, 2, 30).SetChar(data);
         * data.charView = enemy2.GetComponent<CharView>();
         * enemy2.GetComponent<CharView>().character = data;
         * FieldManager.instance.enemies.middle = data;
         * data = new CharData();
         * data.charShowName = "敵人3";
         * data.enemyStrategy = new EnemyStrategy();
         * data.enemyStrategy.AddAction(new nEnemyAction.DamageSelf(30));
         * data.maxHealth = 50;
         * data.health = 30;
         * data.energy = 2;
         * data.maxEnergy = 4;
         * data.agility = 16;
         * data.charView = enemy3.GetComponent<CharView>();
         * enemy3.GetComponent<CharView>().character = data;
         * FieldManager.instance.enemies.back = data;
         *
         * FieldManager.instance.charViewUIControl.OpenCharViewUI(enemy1.GetComponent<CharView>());
         * FieldManager.instance.charViewUIControl.OpenCharViewUI(enemy2.GetComponent<CharView>());
         * FieldManager.instance.charViewUIControl.OpenCharViewUI(enemy3.GetComponent<CharView>());
         */

        es = new EnemyStrategy();
        es.AddAction(new nEnemyAction.Test("no1. action"));
        es.AddAction(new nEnemyAction.Test("no2. action"));
        es.AddAction(new nEnemyAction.Test("no3. action"));
    }
コード例 #10
0
 private void SpawnEnemy(Transform childTransform, EnemyStrategy strategy, Color color)
 {
     Instantiate(enemyPrefab, childTransform.position, Quaternion.identity)
     .GetComponentInChildren <Enemy.Enemy>()
     .Configure(strategy, color);
 }
コード例 #11
0
 //base constructor
 public EnemyClass() : base()
 {
     _stratRef    = new EnemyStrategy(this);
     _myClassName = "EnemyBase";
 }
コード例 #12
0
 //incredibly specific constructor
 public EnemyClass(string name, string tileMoniker, TeamType team, int hp, int mp, int att, int mag, int acc, int crit, int baseDef, int PhysRes, int fireRes, int iceRes, int thunRes, int lightRes, int darkRes, int speed, int move, Weapons weapon, Vector2 startPos) : base(name, tileMoniker, team, hp, mp, att, mag, acc, crit, baseDef, PhysRes, fireRes, iceRes, thunRes, lightRes, darkRes, speed, move, weapon, startPos)
 {
     _stratRef    = new EnemyStrategy(this);
     _myClassName = "EnemyComplex";
 }
コード例 #13
0
 //randomized constructor
 public EnemyClass(string name, string tileMoniker, TeamType team, Vector2 startPos) : base(name, tileMoniker, team, startPos)
 {
     _stratRef    = new EnemyStrategy(this);
     _myClassName = "EnemyNormal";
 }