void Update() { for (int k = 0; k < 10; k++) { if (Input.GetKeyDown((KeyCode)(k + 48)) || Input.GetKeyDown((KeyCode)(k + 256))) { id = 1000 + k; CreateLegionUnit(); } } if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { Warfare.GridManager grid = hit.transform.GetComponent <Warfare.GridManager>(); if (grid) { if (grid.unit == null) { if (btnSelected != null && unitSelected != null) { if (grid.Deploy(unitSelected)) { warfare.units.Remove(unitSelected); warfare.legions[id].squadron.Add(grid.Order, unitSelected); // warfare.playerData.units.Remove (unitSelected.data); // warfare.playerData.legions[id].squadron.Add (grid.Order, unitSelected.data); listReserveUnits.Remove(btnSelected); int index = btnSelected.transform.GetSiblingIndex(); DestroyImmediate(btnSelected.gameObject); if (reserveGroup.GetComponentsInChildren <Toggle>().Length > 0) { if (reserveGroup.GetComponentsInChildren <Toggle>().Length > index) { btnSelected = reserveGroup.GetComponentsInChildren <Toggle>()[index]; } else { btnSelected = reserveGroup.GetComponentsInChildren <Toggle>()[index - 1]; } btnSelected.isOn = true; } else { btnSelected = null; unitSelected = null; } ResetReserveGroup(); } } } else { warfare.units.Add(grid.unit); // warfare.playerData.units.Add (grid.unit.data); RegisterReserveUnit(grid.unit); ResetReserveGroup(); warfare.legions[id].squadron.Remove(grid.Order); // warfare.playerData.legions[id].squadron.Remove (grid.Order); grid.Disarmament(); } } } } if (Input.GetKeyDown(KeyCode.F3)) { warfare.Save(0); } if (Input.GetKeyDown(KeyCode.F4)) { if (warfare.Load(0)) { CreateLegionUnit(); CreateReserveUnit(); } } }
void Update() { if (Input.GetButtonDown("Fire2") && state == BattleState.Ready) { state = BattleState.Window; windowFight.SetActive(true); btnFight.Select(); } if (Input.GetKeyDown(KeyCode.N)) { windowTips.SetActive(true); btnOK.Select(); textTips.text = "第" + battle.wave + "波會戰即將開始,請下命令吧!"; } if (Input.GetKeyDown(KeyCode.F3)) { warfare.Save(3); } if (Input.GetKeyDown(KeyCode.B) && state == BattleState.Ready) { Fight(); } // if (Input.GetKeyDown (KeyCode.F5)) // Initialize (new int[] { 2, 3 }, true); // if (Input.GetKeyDown (KeyCode.F6)) // Initialize (new int[] { 2, 3 }, false); if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { Warfare.GridManager grid = hit.transform.GetComponent <Warfare.GridManager>(); if (grid) { if (state == BattleState.Ready && grid.state == GridState.Friend) { audioSource.PlayOneShot(clipClick); orderSelected = grid.Order; if (grid.Order > 10) { targetList = battle.legions[1].rangeList[3]; } else if (grid.Order > 8) { targetList = battle.legions[1].rangeList[4]; } else { targetList = battle.legions[1].rangeList[(int)grid.unit.model.Range]; } int count = targetList.Count; for (int i = 0; i < count; i++) { grids[17 + targetList[i].order].Aim(); } state = BattleState.Aim; } else if (state == BattleState.Aim && grid.isTarget) { audioSource.PlayOneShot(clipClick); battle.legions[0].squadron[orderSelected].target = battle.legions[1].squadron[grid.Order]; int count = targetList.Count; for (int i = 0; i < count; i++) { grids[17 + targetList[i].order].Ready(); } state = BattleState.Ready; } } } } if (state == BattleState.Fighting) { textAction.text = battle.action.ToString(); if (Time.time > nextActionRearrangeTime) { nextActionRearrangeTime = Time.time + 1f; battle.Rearrange(); } if (Time.time > nextActionFireTime) { nextActionFireTime = Time.time + 1f; battle.Fire(); } if (Time.time > nextActionResultTime) { nextActionResultTime = Time.time + 1f; battle.ActionResult(); if (battle.action == battle.maxAction) { FormUp(); } } } }