// Use this for initialization void Start() { yourButtonText = transform.FindChild("Text").GetComponent <Text> (); GameObject battleOp = GameObject.Find("BattleOp"); BattleOp bo = battleOp.GetComponent <BattleOp> (); changeTextBattleOp = bo; }
/* * 添加战斗指令 */ 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; }
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]; } }
//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); }