Ejemplo n.º 1
0
    // Use this for initialization
    void Start()
    {
        yourButtonText = transform.FindChild("Text").GetComponent <Text> ();
        GameObject battleOp = GameObject.Find("BattleOp");
        BattleOp   bo       = battleOp.GetComponent <BattleOp> ();

        changeTextBattleOp = bo;
    }
Ejemplo n.º 2
0
    /*
     *  添加战斗指令
     */
    void AddOp()
    {
        if (currentAct == null) {
            //no act,refocus
            RecoverFocusList ();
            focusList.Add (waitForAttack [0]);
            return;
        }

        GameObject from = waitForAttack [0];

        List<GameObject> to = new List<GameObject> ();

        for (int i=0; i<focusList.Count; i++) {
            to.Add (focusList [i]);
        }

        BattleOp bo = new BattleOp (from, to, currentAct.Bg);
        opList.Add (bo);
        RecoverFocusList ();
        waitForAttack.Remove (waitForAttack [0]);

        if (waitForAttack.Count > 0) {
            focusList.Add (waitForAttack [0]);
        }

        currentAct = null;
    }
Ejemplo n.º 3
0
    public void InitBattleScene()
    {
        GameObject battleOp = GameObject.Find("BattleOp");
        BattleOp   bo       = battleOp.GetComponent <BattleOp> ();

        bo.allTeammateList   = new List <Character>();
        bo.aliveTeammateList = new List <Character> ();
        bo.allEnemyList      = new List <Character> ();
        bo.aliveEnemyList    = new List <Character> ();

        bo.allEntityList = new Character[enemiesCDH.Length + ActivePMs.Length + 1];
        MainCharacter mc = mainc.createMain("archer");

        mc.GetComponent <SpriteRenderer> ().enabled = false;
        bo.allTeammateList.Add(mc);
        bo.aliveTeammateList.Add(mc);
        GameObject tmHPmc = GameObject.Instantiate(Resources.Load("Teammate HP 0")) as GameObject;

        tmHPmc.name = (mc.getName() + "'s HP");
        tmHPmc.transform.SetParent(GameObject.Find("Canvas").transform);
        tmHPmc.transform.localPosition = new Vector3(-300, 125, 0);
        tmHPmc.transform.localScale    = new Vector3(1, 1, 1);
        for (int i = 1; i < (1 + ActivePMs.Length); i++)
        {
            string classselect = "";
            if (i - 1 % 3 == 0)
            {
                classselect = "mage";
            }
            else if (i - 1 % 3 == 1)
            {
                classselect = "warrior";
            }
            else if (i - 1 % 3 == 2)
            {
                classselect = "monk";
            }
            PartyMember pm = ActivePMs [i - 1].createParty(classselect);
            pm.GetComponent <SpriteRenderer> ().enabled = false;
            bo.allTeammateList.Add(pm);
            bo.aliveTeammateList.Add(pm);
            GameObject tmHPpm = GameObject.Instantiate(Resources.Load("Teammate HP 0")) as GameObject;
            tmHPpm.name = (pm.getName() + "'s HP");
            tmHPpm.transform.SetParent(GameObject.Find("Canvas").transform);
            ChangeText ct = tmHPpm.GetComponent <ChangeText> ();
            ct.textNum = i;
            tmHPpm.transform.localPosition = new Vector3(-300, (125 - (25 * i)), 0);
            tmHPpm.transform.localScale    = new Vector3(1, 1, 1);
        }
        for (int i = 0; i < enemiesCDH.Length; i++)
        {
            Enemy enemyX = enemiesCDH [i].createEnemy();
            bo.allEnemyList.Add(enemyX);
            bo.aliveEnemyList.Add(enemyX);
            GameObject eHP = GameObject.Instantiate(Resources.Load("Enemy HP 0")) as GameObject;
            eHP.name = (bo.allEnemyList [i].getName() + "'s HP");
            eHP.transform.SetParent(GameObject.Find("Canvas").transform);
            ChangeText ct = eHP.GetComponent <ChangeText> ();
            ct.textNum = i;
            eHP.transform.localPosition = new Vector3(300, 125 - (25 * i), 0);
            eHP.transform.localScale    = new Vector3(1, 1, 1);
        }
        bo.allEnemyList.TrimExcess();
        bo.allTeammateList.TrimExcess();
        for (int i = 0; i < bo.allTeammateList.Capacity; i++)
        {
            bo.allEntityList [i] = bo.allTeammateList [i];
        }
        for (int i = bo.allTeammateList.Capacity; i < bo.allTeammateList.Capacity + bo.allEnemyList.Capacity; i++)
        {
            bo.allEntityList [i] = bo.allEnemyList [i - bo.allTeammateList.Capacity];
        }
    }
Ejemplo n.º 4
0
    //enemy attack ai in battle
    void EnemyAttack(GameObject from)
    {
        //choose a type of attack in a random way
        Baggrid bg = enemyAttackTypeList [Random.Range (0, enemyAttackTypeList.Count)];
        List<GameObject> attackList = new List<GameObject> ();

        if (bg.Item.rt == Item.RangeType.SINGLE) {
            //choose a player with the min health
            GameObject minHealthChar = characterPos [0];

            for (int i=1; i<characterList.Count; i++) {
                int thisHealth = characterPos [i].GetComponent<PosChar> ().battleObj.Health;
                int currentHealth = minHealthChar.GetComponent<PosChar> ().battleObj.Health;

                if (characterPos [i].activeInHierarchy && thisHealth < currentHealth) {
                    minHealthChar = characterPos [i];
                }
            }

            attackList.Add (minHealthChar);
        } else {

            for (int i=1; i<characterPos.Length; i++) {
                if (characterPos [i].activeInHierarchy) {
                    attackList.Add (characterPos [i]);
                }
            }
        }

        BattleOp bo = new BattleOp (from, attackList, bg);
        opList.Add (bo);
    }