Ejemplo n.º 1
0
 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;
         }
     }
 }
Ejemplo n.º 2
0
 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;
     }
 }
Ejemplo n.º 3
0
    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;
        }
    }
Ejemplo n.º 4
0
    // 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, "-");
            }
        }
    }
Ejemplo n.º 5
0
    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;
            }
        }
        //計算是否剩一位玩家↑↑↑
    }