예제 #1
0
    public void onClick()
    {
        if (GameData.checking)
        {
            return;
        }
        onDrag           = !onDrag;
        GameData.draging = onDrag;
        GameData.timeout = !onDrag;

        if (onDrag)
        {
            pos = transform.position;
        }
        else
        {
            transform.position = pos;
            GameData.TimerCancel();
        }

        if (GameData.timeout)
        {
            GameData.ResetAtk();
            if (CheckStone.CountStone())
            {
                CheckStone.FillStone();
                GameData.checking = true;
            }
            else
            {
                // Make enemy attack
                GameData.ex_team_hp -= GameData.st_enemy.GetComponent <EnemyData>().Attack();
                if (GameData.ex_team_hp <= 0)
                {
                    GameData.ex_team_hp = 0;
                    GameControl.GameOver(false);
                    for (int i = 0; i < 30; ++i)
                    {
                        GameData.turning_stone[i].SetActive(false);
                    }
                }
            }
        }
    }
예제 #2
0
    // Use this for initialization
    void Start()
    {
        draging = false;
        timeout = false;
        timer_f = 0f;
        timer_i = 0;

        // Connect stone_img[] and turning_img[]
        for (int i = 0; i < 6; ++i)
        {
            turning_img[i] = stone_img[i];
        }

        // Connect stone[] and turning_stone[]
        for (int i = 0; i < 30; ++i)
        {
            int s = Random.Range(0, 6);
            turning_stone[i] = stone[i];
            turning_stone[i].GetComponent <Image>().sprite = stone_img[s];
            type[i / 6, i % 6] = s;
        }

        // Avoid continuous arrangement at beginning
        while (CheckStone.CountStone())
        {
            CheckStone.FillStone();
        }

        // Set team member
        team_hp = 0;
        for (int i = 0; i < 6; ++i)
        {
            member_type[i] = member[i].GetComponent <TeamData>().type;
            team_mem[i]    = member[i];
            team_hp       += team_mem[i].GetComponent <TeamData>().hp;
        }
        ex_team_hp = (float)team_hp;

        // Set enemy
        st_enemy = enemy;
    }
예제 #3
0
    // Update is called once per frame
    void Update()
    {
        if (timer_i > 10)
        {
            TimerCancel();
            draging = false;
            timeout = true;
            ResetAtk();
            if (CheckStone.CountStone())
            {
                CheckStone.FillStone();
                checking = true;
            }
            else
            {
                // Make enemy attack
                ex_team_hp -= st_enemy.GetComponent <EnemyData>().Attack();
                if (ex_team_hp <= 0)
                {
                    ex_team_hp = 0;
                    GameControl.GameOver(false);
                    for (int i = 0; i < 30; ++i)
                    {
                        turning_stone[i].SetActive(false);
                    }
                }
            }
        }

        if (draging)
        {
            timer_f += Time.deltaTime;
            timer_i  = (int)timer_f;
        }

        if (checking)
        {
            timer_f += Time.deltaTime;
            if (timer_i != (int)timer_f)
            {
                timer_i = (int)timer_f;
                if (CheckStone.CountStone())
                {
                    CheckStone.FillStone();
                }
                else
                {
                    TimerCancel();
                    checking = false;

                    // Recover HP
                    if (atk_cnt[5] >= 0)
                    {
                        ex_team_hp += 10 * atk_cnt[5];
                        if (ex_team_hp > team_hp)
                        {
                            ex_team_hp = team_hp;
                        }
                    }

                    // Make team member attack
                    for (int i = 0; i < 6; ++i)
                    {
                        if (atk_cnt[member_type[i]] >= 0)
                        {
                            st_enemy.GetComponent <EnemyData>().Hurt(team_mem[i].GetComponent <TeamData>().Attack(atk_cnt[member_type[i]]));
                        }
                    }

                    // Make enemy attack
                    ex_team_hp -= st_enemy.GetComponent <EnemyData>().Attack();
                    if (ex_team_hp <= 0)
                    {
                        ex_team_hp = 0;
                        GameControl.GameOver(false);
                        for (int i = 0; i < 30; ++i)
                        {
                            turning_stone[i].SetActive(false);
                        }
                    }
                }
            }
        }

        // Redraw the hp bar of player's team
        hp_bar.GetComponent <RectTransform>().sizeDelta = new Vector2(2 * 270 * (ex_team_hp / (float)team_hp), 15);
    }