void Update() { if (Swtich == true) { Timer -= Time.deltaTime; if (Timer < 0.6f) { GameObject.Find(Manager._selectedName[Control.now_Player] + "Arrow").GetComponent <MeshRenderer>().enabled = false; } if (Timer < 0) { Control._playerHp[now] -= 100; GameObject.Find("Canvas").GetComponent <Control>().GetTargetCamera(GameObject.Find(Manager._selectedName[now])); FloatText.Click(GameObject.Find(Manager._selectedName[now]), 100, "-"); FloatText.story_text(Manager._selectedName[now] + "寫著:" + Manager._selectedName[Control.now_Player] + "好像被鬼火獸的毒所侵害了,竟然在晚上的時候爬起來攻擊我。" , Manager._selectedName[now] + "被" + Manager._selectedName[Control.now_Player] + "襲擊損傷了 100點生命"); Time.timeScale = 0; GameObject.Find("Canvas").GetComponent <Control>().dice.enabled = true; GameObject.Find("Canvas").GetComponent <Control>().next.enabled = false; Swtich = false; } } if (GridContent.attack == true) { if (Manager2._selectedName.Count == Manager2._countLimit) { attack.enabled = true; } else { attack.enabled = false; } } }
public static void _Attack(GameObject Charactor) // 動態產生陷阱包含動作 { Spikes = Instantiate(Resources.Load("Needle")) as GameObject; Spikes.transform.position = Charactor.transform.position; Spikes.transform.position -= new Vector3(0, 0.5f, 0); if (Control._held[Control.now_Player] == Control.Shield.NotHeld) { Control._playerHp[Control.now_Player] -= 50; FloatText.Click(Charactor, 50, "-"); story = "這迷宮不知道是什麼,走著走著竟然還踩到陷阱 !"; nameText = Manager._selectedName[Control.now_Player] + " 踩到陷阱,減少了50點生命"; } else { story = "還好身上還放著保護的裝置,不過受到攻擊後好像被破壞掉了..."; nameText = Manager._selectedName[Control.now_Player] + " 抵擋住攻擊 ,沒有受到任何攻擊"; Control._held[Control.now_Player] = Control.Shield.NotHeld; } }
public static void MonsterAttack(GameObject Charactor) // 動態產生怪物包含動作 { Control._playerHp[Control.now_Player] -= 200; Spikes = Instantiate(Resources.Load("Monster/Monster")) as GameObject; Spikes.transform.position = Charactor.transform.position; Spikes.transform.position += new Vector3(0, 0, 3f); if (Control._held[Control.now_Player] == Control.Shield.NotHeld) { story = "看到了鬼火獸,沒辦法躲避他的攻擊,受到了一點損傷"; nameText = Manager._selectedName[Control.now_Player] + " 遭受怪物襲擊,減少了200點生命"; FloatText.Click(Charactor, 200, "-"); Time.timeScale = 0; } else { story = "還好身上還放著保護的裝置,不過受到攻擊後好像被破壞掉了..."; nameText = Manager._selectedName[Control.now_Player] + " 抵擋住攻擊 ,沒有受到任何攻擊"; Control._held[Control.now_Player] = Control.Shield.NotHeld; } }
// Update is called once per frame void Update() { if (Obj.name == Manager._selectedName[Control.now_Player] && Control.now_step > 0 && Control.GetState == Control.PlayerState.Start) { anim.SetBool("isSit", false); anim.SetBool("isIdle", false); anim.SetBool("isBow", false); anim.SetBool("isRunning", true); endPoint = GameObject.Find("Block" + Control._playerPossition[Control.now_Player] % 40); transform.position = Vector3.MoveTowards(transform.position, endPoint.transform.position, Time.deltaTime * 8); quad.transform.position = transform.position; quad.transform.position += new Vector3(0, 50, 0); float tmp = Vector3.Distance(Obj.transform.position, endPoint.transform.position); if (tmp == 0) { i++; Control._playerPossition[Control.now_Player]++; if (i > 1) { Control.now_step--; } //左↓ if (Control._playerPossition[Control.now_Player] % 40 == 1 || Control._playerPossition[Control.now_Player] % 40 == 21 || Control._playerPossition[Control.now_Player] % 40 == 23 || Control._playerPossition[Control.now_Player] % 40 == 29) { Obj.transform.rotation = Quaternion.Euler(0, -90, 0); }//上↓ if (Control._playerPossition[Control.now_Player] % 40 == 4 || Control._playerPossition[Control.now_Player] % 40 == 14 || Control._playerPossition[Control.now_Player] % 40 == 22 || Control._playerPossition[Control.now_Player] % 40 == 35 || Control._playerPossition[Control.now_Player] % 40 == 39) { Obj.transform.rotation = Quaternion.Euler(0, 0, 0); }//右↓ if (Control._playerPossition[Control.now_Player] % 40 == 7 || Control._playerPossition[Control.now_Player] % 40 == 12 || Control._playerPossition[Control.now_Player] % 40 == 16 || Control._playerPossition[Control.now_Player] % 40 == 26 || Control._playerPossition[Control.now_Player] % 40 == 36) { Obj.transform.rotation = Quaternion.Euler(0, 90, 0); }//下↓ if (Control._playerPossition[Control.now_Player] % 40 == 10 || Control._playerPossition[Control.now_Player] % 40 == 17 || Control._playerPossition[Control.now_Player] % 40 == 24 || Control._playerPossition[Control.now_Player] % 40 == 28) { Obj.transform.rotation = Quaternion.Euler(0, 180, 0); } } if (Control.now_step == 0) { i = 0; int count1 = 0; Control._playerPossition[Control.now_Player]--; for (int j = 0; j < Manager._countLimit; j++) { if (Control._playerPossition[j] == Control._playerPossition[Control.now_Player]) { count1++; } } if (count1 == 1) { Obj.transform.position += new Vector3(-0.6f, 0, -0.6f); } else if (count1 == 2) { Obj.transform.position += new Vector3(-0.6f, 0, 0.6f); } else if (count1 == 3) { Obj.transform.position += new Vector3(0.6f, 0, -0.6f); } else if (count1 == 4) { Obj.transform.position += new Vector3(0.6f, 0, 0.6f); } Control._playerHp[Control.now_Player] -= 5; //射箭(獲得武器) //監牢 if (Control._playerPossition[Control.now_Player] % 40 == 19) { anim.SetBool("isIdle", false); anim.SetBool("isRunning", false); anim.SetBool("isBow", false); anim.SetBool("isSit", true); } //死亡 else if (Control._playerPossition[Control.now_Player] % 40 == 9) { anim.SetBool("isSit", false); anim.SetBool("isIdle", true); anim.SetBool("isBow", false); anim.SetBool("isRunning", false); } //站立 else { anim.SetBool("isSit", false); anim.SetBool("isRunning", false); anim.SetBool("isBow", false); anim.SetBool("isIdle", true); } FloatText.Click(Obj, 5, "-"); } } }
public void Grid(GameObject Charactor, Animator anim) //執行格子內容 { if (Control._playerPossition[Control.now_Player] == 0) { Control._playerHp[Control.now_Player] += 300; FloatText.Click(Charactor, 300, "+"); FloatText.story_text("來到這個迷宮不知道多久了,還沒找到全部的裝置...", Manager._selectedName[Control.now_Player] + " Get props "); Time.timeScale = 0; } //過關道具 else if (Control._playerPossition[Control.now_Player] % 40 == 1 ||//1 Control._playerPossition[Control.now_Player] % 40 == 10 || Control._playerPossition[Control.now_Player] % 40 == 20 || Control._playerPossition[Control.now_Player] % 40 == 23 || Control._playerPossition[Control.now_Player] % 40 == 28 || Control._playerPossition[Control.now_Player] % 40 == 32) { int number = -1; if (Control._playerPossition[Control.now_Player] % 40 == 1) { number = 0; } else if (Control._playerPossition[Control.now_Player] % 40 == 10) { number = 1; } else if (Control._playerPossition[Control.now_Player] % 40 == 20) { number = 2; } else if (Control._playerPossition[Control.now_Player] % 40 == 23) { number = 3; } else if (Control._playerPossition[Control.now_Player] % 40 == 28) { number = 4; } else { number = 5; } if (Control._props[number] == true) { FloatText.story_text("發現了鬼火獸的裝置,看著上面的編號好像已經有人拿過了...", Manager._selectedName[Control.now_Player] + " 獲得重複編號為" + (number + 1) + "的鬼火獸裝置"); } else { Control._props[number] = true; FloatText.story_text("發現了鬼火獸的裝置,該趕快回去跟他們會合,和他們說這件事情...", Manager._selectedName[Control.now_Player] + " 得到了上面有著編號" + (number + 1) + "的鬼火獸裝置"); } GameObject.Find("Canvas").GetComponent <Control>().GetProps(); } //獲得武器V else if (Control._playerPossition[Control.now_Player] % 40 == 3 || Control._playerPossition[Control.now_Player] % 40 == 7 || Control._playerPossition[Control.now_Player] % 40 == 13 || Control._playerPossition[Control.now_Player] % 40 == 17 || Control._playerPossition[Control.now_Player] % 40 == 22 || Control._playerPossition[Control.now_Player] % 40 == 30 || Control._playerPossition[Control.now_Player] % 40 == 35 || Control._playerPossition[Control.now_Player] % 40 == 39) { AttackControl.setImage(Charactor); AttackCanvas.enabled = true; MainCanvas.enabled = false; attack = true; } //怪物 else if (Control._playerPossition[Control.now_Player] % 40 == 5 ||//5 Control._playerPossition[Control.now_Player] % 40 == 14 || Control._playerPossition[Control.now_Player] % 40 == 25 || Control._playerPossition[Control.now_Player] % 40 == 36) { Attack.MonsterAttack(GameObject.Find(Manager._selectedName[Control.now_Player])); } //抵擋V else if (Control._playerPossition[Control.now_Player] % 40 == 4 || Control._playerPossition[Control.now_Player] % 40 == 15 || Control._playerPossition[Control.now_Player] % 40 == 27 || Control._playerPossition[Control.now_Player] % 40 == 37) { FloatText.story_text("不知道這裝置能幹什麼用。好像能保護自己的樣子...", Manager._selectedName[Control.now_Player] + " 獲得防禦一次的機會"); Control._held[Control.now_Player] = Control.Shield.Withstand; } //陷阱V else if (Control._playerPossition[Control.now_Player] % 40 == 8 || Control._playerPossition[Control.now_Player] % 40 == 11 || Control._playerPossition[Control.now_Player] % 40 == 18 || Control._playerPossition[Control.now_Player] % 40 == 33) { Attack._Attack(GameObject.Find("Block" + Control._playerPossition[Control.now_Player] % 40)); } //死亡V else if (Control._playerPossition[Control.now_Player] % 40 == 9) { anim.SetBool("isDeath", true); GameObject.Find("Canvas").GetComponent <Control>().next.enabled = true; Control._playerHp[Control.now_Player] = 0; Control._state[Control.now_Player] = Control.PlayerState.Death; } //監牢V else if (Control._playerPossition[Control.now_Player] % 40 == 19) { FloatText.story_text("被同伴發現身上有鬼火獸的傷口。被關在了監牢裡面...", Manager._selectedName[Control.now_Player] + " 暫停一回合 "); Control._state[Control.now_Player] = Control.PlayerState.Sleep; } //隨機移動 else if (Control._playerPossition[Control.now_Player] % 40 == 30) { FloatText.story_text("迷宮突然變換了。走著走著不知道到了那裡...", Manager._selectedName[Control.now_Player] + " 隨機移動 "); Control._playerPossition[Control.now_Player] += Random.Range(1, 39); Charactor.transform.position = GameObject.Find("Block" + Control._playerPossition[Control.now_Player] % 40).transform.position; Grid(Charactor, anim); } //獲得食物v else { Control._playerHp[Control.now_Player] += 200; FloatText.Click(Charactor, 200, "+"); FloatText.story_text("還好有找到食物,不然已經沒東西吃了...", Manager._selectedName[Control.now_Player] + " 取得了食物 ,增加了200點生命"); Time.timeScale = 0; } int count = 0; string name = null; for (int i = 0; i < 6; i++) //計算過關道具是否全部都有 { if (Control._props[i] == true) { count++; } if (count == 6) { FloatText.WinText(Manager._selectedName[Control.now_Player]); Destroy(GameObject.Find("LatticeControl").GetComponent <GridContent>()); } }//計算過關道具是否全部都有↑↑↑ count = 0; for (int i = 0; i < Manager._countLimit; i++) //計算是否剩一位玩家 { if (Control._state[i] != Control.PlayerState.Death) { count++; name = Manager._selectedName[i]; } } if (count == 1) { FloatText.WinText(name); Destroy(GameObject.Find("LatticeControl").GetComponent <GridContent>()); } else { if (Control._playerHp[Control.now_Player] <= 0) { GameObject.Find("GameOver").GetComponent <Image>().enabled = true; } } //計算是否剩一位玩家↑↑↑ }