void castAreaBullet()
    {
        if (spawnPoint == null)
        {
            return;
        }
        AreaBullet newBullet = Instantiate(bullet, spawnPoint.position, spawnPoint.rotation) as AreaBullet;

        newBullet.passValues(tm, range, damage, damage, character.getTarget());
    }
    //モンスターを作る
    void Evoche(Vector3 pos, Transform t)
    {
        //魔法カードの場合は
        if (selectedCard is SpellCard)
        {
            if (t == null && !t.GetComponent <Health>())
            {
                return;
            }

            GameObject newCard = Instantiate(selectedCard.prefab[0], player.getKingTower().transform.position, Quaternion.identity) as GameObject;
            //カードに値を渡す
            AreaBullet b = newCard.GetComponent <AreaBullet>();
            b.passValues(player.thisTeam, selectedCard.spellCard.radius, selectedCard.spellCard.areaDamage, selectedCard.spellCard.crownTowerDamage, t);
        }
        else if (selectedCard is BuildCard)
        {
            GameObject newCard = Instantiate(selectedCard.prefab[0], spawnposition, Quaternion.identity) as GameObject;
            player.addToEnemyList(newCard.transform);
            Build c = newCard.GetComponent <Build>();
            if (c != null)
            {
                c.Init(Team);
            }
        }
        else
        {
            float x = 0;
            for (int i = 0; i < selectedCard.prefab.Length; i++)
            {
                if (i < 1)
                {
                    spawnposition = pos;
                }
                GameObject newCard = Instantiate(selectedCard.prefab[i], spawnposition, Quaternion.identity) as GameObject;
                player.addToEnemyList(newCard.transform);
                //複数キャラクターの場合は、スポンポジションをを変わる
                Character c = newCard.GetComponent <Character>();
                if (c != null)
                {
                    c.Initialization(enemy);
                }
                if (i % 2 == 0)
                {
                    x = 1;
                }
                else if (i % 3 == 0)
                {
                    x = -1;
                }
                else
                {
                    x = 0;
                }
                spawnposition = new Vector3(newCard.transform.position.x + x, newCard.transform.position.y, newCard.transform.position.z);
            }
        }
        mp          -= selectedCard.cost;
        selectedCard = null;
          Invoke("drawNewCard", 1);
    }
Example #3
0
    void spawnMonster(Transform point)
    {
        //建物の場合は
        if (currentcard is BuildCard)
        {
            GameObject newCard = Instantiate(currentcard.prefab[0], spawnposition, Quaternion.identity) as GameObject;
            player.addToEnemyList(newCard.transform);
            Build c = newCard.GetComponent <Build>();
            if (c != null)
            {
                c.Init(player.thisTeam);
            }
        }
        else if (currentcard is SpellCard)
        {
            List <Transform> targets = new List <Transform>();
            foreach (var e in enemy.enemies)
            {
                if (e != null)
                {
                    targets.Add(e);
                }
            }
            //順番に並ぶ
            targets.OrderBy(c => Vector3.Distance(player.getKingTower().transform.position,
                                                  c.transform.position));
            //最初の要素を選択する
            Transform target = targets[0];
            if (target == null)
            {
                target = enemy.getKingTower().transform;
            }
            //スポーン
            GameObject newCard = Instantiate(currentcard.prefab[0], player.getKingTower().transform.position, Quaternion.identity) as GameObject;
            AreaBullet b       = newCard.GetComponent <AreaBullet>();
            b.passValues(player.thisTeam, currentcard.spellCard.radius, currentcard.spellCard.areaDamage, currentcard.spellCard.crownTowerDamage, target);
        }
        else
        {
            float x = 0;
            for (int i = 0; i < currentcard.prefab.Length; i++)
            {
                if (i < 1)
                {
                    spawnposition = point.transform.position;
                }
                GameObject newCard = Instantiate(currentcard.prefab[i], point.position, Quaternion.identity) as GameObject;
                player.addToEnemyList(newCard.transform);
                Character c = newCard.GetComponent <Character>();
                //複数キャラクターのスポーンポジションを決める
                if (c != null)
                {
                    c.Initialization(enemy);
                }
                if (i % 2 == 0)
                {
                    x = 1;
                }
                else if (i % 3 == 0)
                {
                    x = -1;
                }
                else if (i % 5 == 0)
                {
                    x = -1;
                }
                spawnposition = new Vector3(newCard.transform.position.x + x, newCard.transform.position.y, newCard.transform.position.z);
            }
        }


        lastcard = currentcard;
        draw();
    }