Exemplo n.º 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;
            }
        }
Exemplo n.º 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;
 }
Exemplo n.º 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;
            }
        }
Exemplo n.º 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);
    }
        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);
        }
Exemplo n.º 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);
        }
    }
Exemplo n.º 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);
    }
Exemplo n.º 8
0
 private List <Act> DetectEnemyAct(Loc playerNextLoc)
 {
     return(EnemyStrategy.Detect(_enemies, _player, playerNextLoc, _floor));
 }
Exemplo n.º 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"));
    }
Exemplo n.º 10
0
 private void SpawnEnemy(Transform childTransform, EnemyStrategy strategy, Color color)
 {
     Instantiate(enemyPrefab, childTransform.position, Quaternion.identity)
     .GetComponentInChildren <Enemy.Enemy>()
     .Configure(strategy, color);
 }
Exemplo n.º 11
0
 //base constructor
 public EnemyClass() : base()
 {
     _stratRef    = new EnemyStrategy(this);
     _myClassName = "EnemyBase";
 }
Exemplo n.º 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";
 }
Exemplo n.º 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";
 }