Ejemplo n.º 1
0
    void NextStage()
    {
        Shuffle(FindCardAreaListByName("PlayerHandArea"), FindCardAreaListByName("PlayerDeckArea"));
        Shuffle(FindCardAreaListByName("PlayerDropArea"), FindCardAreaListByName("PlayerDeckArea"));
        enemy.m_CurrentHP = enemy.m_HP;
        for (int i = 0; i < 3 * 3; i++)
        {
            BattleCube cube1 = FindCardAreaListByName("PlayerBattleArea").transform.GetChild(i).GetComponent <BattleCube>();
            BattleCube cube2 = FindCardAreaListByName("EnemyBattleArea").transform.GetChild(i).GetComponent <BattleCube>();
            if (cube1 != null && cube1.transform.childCount > 0)
            {
                FindCardAreaListByName("PlayerBattleArea").m_AreaList.Remove(cube1.transform.GetChild(0).gameObject.GetComponent <Card>());
                Destroy(cube1.transform.GetChild(0).gameObject);
            }
            if (cube2 != null && cube2.transform.childCount > 0)
            {
                FindCardAreaListByName("EnemyBattleArea").m_AreaList.Remove(cube2.transform.GetChild(0).gameObject.GetComponent <Card>());
                Destroy(cube2.transform.GetChild(0).gameObject);
            }
        }

        Level++;
        player.SetCurrentHP(10, false);
        enemy.m_PlayerName = "野蛮人 Lv" + Level;
        this.transform.Find("Text_Stage").GetComponent <Text>().text = "Stage 1-" + Level;
        enemy.animationConfig.SetAnimState(UGUISpriteAnimation.AnimState.RunToward);
        bDrawCard = true;
    }
Ejemplo n.º 2
0
    int BattleCalculationPre(CardArea area1, CardArea area2)
    {
        int atk2 = 0;

        for (int i = 0; i < 9; i++)
        {
            int             atk        = 0;
            Card.HurtEffect hurteffect = Card.HurtEffect.Normal;
            BattleCube      cube       = area1.transform.GetChild(i).GetComponent <BattleCube>();
            if (cube != null && cube.transform.childCount > 0)
            {
                atk       += cube.transform.GetChild(0).GetComponent <Card>().m_CurrentATK;
                hurteffect = cube.transform.GetChild(0).GetComponent <Card>().m_HurtEffect;
                if (hurteffect == Card.HurtEffect.Backstab)
                {
                    for (int j = 8; j >= 0; j--)
                    {
                        BattleCube cube2 = area2.transform.GetChild(j).GetComponent <BattleCube>();
                        if (cube2 != null && cube2.m_Column == cube.m_Column && cube2.transform.childCount > 0)
                        {
                            atk = cube2.transform.GetChild(0).GetComponent <Card>().GetHurtPre(atk);
                        }
                    }
                }
                else
                {
                    for (int j = 0; j < 9; j++)
                    {
                        BattleCube cube2 = area2.transform.GetChild(j).GetComponent <BattleCube>();
                        if (cube2 != null && cube2.m_Column == cube.m_Column && cube2.transform.childCount > 0)
                        {
                            if (hurteffect == Card.HurtEffect.Normal)
                            {
                                atk = cube2.transform.GetChild(0).GetComponent <Card>().GetHurtPre(atk);
                            }
                            //if (hurteffect == Card.HurtEffect.Puncture)
                            //{
                            //  atk = cube.transform.GetChild(0).GetComponent<Card>().GetHurtByPuncture(atk);
                            //}
                            if (hurteffect == Card.HurtEffect.Penetrate)
                            {
                                cube2.transform.GetChild(0).GetComponent <Card>().GetHurtPre(atk);
                            }
                        }
                    }
                    if (hurteffect == Card.HurtEffect.Penetrate)
                    {
                        atk = 0;
                    }
                }
                cube.transform.GetChild(0).GetComponent <Card>().GetHurtAPra(atk);
            }
            atk2 += atk;
        }
        return(atk2);
    }
Ejemplo n.º 3
0
    int BattleCalculation(CardArea atkarea, CardArea defarea, int row, int column, int currentcolumn, int currrentrow)
    {
        int atk = 0;

        Card.HurtEffect hurteffect = Card.HurtEffect.Normal;
        for (int i = 0; i < row * column; i++)
        {
            BattleCube cube = atkarea.transform.GetChild(i).GetComponent <BattleCube>();
            if (cube != null && cube.m_Column == currentcolumn && cube.m_Row == currrentrow && cube.transform.childCount > 0)
            {
                atk += cube.transform.GetChild(0).GetComponent <Card>().m_CurrentATK;
                if (cube.transform.GetChild(0).GetComponent <Card>().m_HurtEffect > hurteffect)
                {
                    hurteffect = cube.transform.GetChild(0).GetComponent <Card>().m_HurtEffect;
                }
            }
        }
        if (hurteffect == Card.HurtEffect.Backstab)
        {
            for (int i = row * column - 1; i >= 0; i--)
            {
                BattleCube cube = defarea.transform.GetChild(i).GetComponent <BattleCube>();
                if (cube != null && cube.m_Column == currentcolumn && cube.transform.childCount > 0)
                {
                    atk = cube.transform.GetChild(0).GetComponent <Card>().GetHurt(atk);
                }
            }
        }
        else
        {
            for (int i = 0; i < row * column; i++)
            {
                BattleCube cube = defarea.transform.GetChild(i).GetComponent <BattleCube>();
                if (cube != null && cube.m_Column == currentcolumn && cube.transform.childCount > 0)
                {
                    if (hurteffect == Card.HurtEffect.Normal)
                    {
                        atk = cube.transform.GetChild(0).GetComponent <Card>().GetHurt(atk);
                    }
                    if (hurteffect == Card.HurtEffect.Puncture)
                    {
                        atk = cube.transform.GetChild(0).GetComponent <Card>().GetHurtByPuncture(atk);
                    }
                    if (hurteffect == Card.HurtEffect.Penetrate)
                    {
                        cube.transform.GetChild(0).GetComponent <Card>().GetHurt(atk);
                    }
                }
            }
            if (hurteffect == Card.HurtEffect.Penetrate)
            {
                atk = 0;
            }
        }
        return(atk);
    }
Ejemplo n.º 4
0
    public void SelectBattleCube(BattleCube cube)
    {
        if (bPushCard)
        {
            if (!cube.m_IsPlayer)
            {
                return;
            }
            foreach (Card card in FindCardAreaListByName("PlayerBattleArea").m_AreaList)
            {
                if (card.m_BattleColumn == cube.m_Column && card.m_BattleRow == cube.m_Row)
                {
                    return;
                }
            }
            if (cSelectCard != null && player.m_CurrentCost >= cSelectCard.m_Cost)
            {
                player.m_CurrentCost    -= cSelectCard.m_Cost;
                cSelectCard.m_IsSelected = false;

                cSelectCard.m_IsInBattleGround = true;
                cSelectCard.gameObject.transform.SetParent(cube.gameObject.transform);
                cSelectCard.gameObject.transform.position = cube.gameObject.transform.position;

                if (cSelectCard.m_CardType == Card.CardType.Character)
                {
                    FindCardAreaListByName("PlayerBattleArea").m_AreaList.Add(cSelectCard);
                    GameObject toInstantiate = (GameObject)Resources.Load("Prefabs/HandCard");
                    Card       card          = Instantiate(toInstantiate, this.transform.Find("Recycle")).GetComponent <Card>();
                    card.InitByClone(cSelectCard);
                    FindCardAreaListByName("PlayerDropArea").m_AreaList.Add(card);
                }
                else
                {
                    cSelectCard.m_IsInBattleGround = false;
                    cSelectCard.gameObject.transform.SetParent(this.transform.Find("Recycle"));
                    FindCardAreaListByName("PlayerDropArea").m_AreaList.Add(cSelectCard);
                }
                cSelectCard.m_BattleRow    = cube.m_Row;
                cSelectCard.m_BattleColumn = cube.m_Column;
                CheckSpecial(cSelectCard, FindCardAreaListByName("PlayerBattleArea"));
                FindCardAreaListByName("PlayerHandArea").m_AreaList.Remove(cSelectCard);
                cSelectCard = null;
                ClearCalculationPre(FindCardAreaListByName("PlayerBattleArea"), FindCardAreaListByName("EnemyBattleArea"));
                enemy.SetCurrentHurt(BattleCalculationPre(FindCardAreaListByName("PlayerBattleArea"), FindCardAreaListByName("EnemyBattleArea")));
                player.SetCurrentHurt(BattleCalculationPre(FindCardAreaListByName("EnemyBattleArea"), FindCardAreaListByName("PlayerBattleArea")));
            }
        }
    }
Ejemplo n.º 5
0
 void InitBattleCube(CardArea area, int row = 1, int column = 1)
 {
     for (int i = 0; i < row * column; i++)
     {
         GameObject toInstantiate = (GameObject)Resources.Load("Prefabs/BattleCube");
         BattleCube cube          = Instantiate(toInstantiate, area.transform).GetComponent <BattleCube>();
         cube.m_Row    = i / column;
         cube.m_Column = i % column;
         if (area.m_CardAreaName.Contains("Player"))
         {
             cube.m_IsPlayer = true;
         }
         cube.battlemanager = this;
     }
 }
Ejemplo n.º 6
0
 void UpdateAICard()
 {
     for (int i = 0; i < Level; i++)
     {
         BattleCube cube = FindCardAreaListByName("EnemyBattleArea").transform.GetChild((Random.Range(0, 9))).GetComponent <BattleCube>();
         if (cube.transform.childCount == 0)
         {
             GameObject toInstantiate = (GameObject)Resources.Load("Prefabs/HandCard");
             Card       card          = Instantiate(toInstantiate, cube.transform).GetComponent <Card>();
             card.gameObject.transform.position = cube.gameObject.transform.position;
             card.InitByClone(FindCardAreaListByName("EnemyDeckArea").m_AreaList[Random.Range(0, FindCardAreaListByName("EnemyDeckArea").m_AreaList.Count)]);
             card.m_IsInBattleGround = true;
             card.m_BattleRow        = cube.m_Row;
             card.m_BattleColumn     = cube.m_Column;
             FindCardAreaListByName("EnemyBattleArea").m_AreaList.Add(card);
         }
     }
     ClearCalculationPre(FindCardAreaListByName("PlayerBattleArea"), FindCardAreaListByName("EnemyBattleArea"));
     enemy.SetCurrentHurt(BattleCalculationPre(FindCardAreaListByName("PlayerBattleArea"), FindCardAreaListByName("EnemyBattleArea")));
     player.SetCurrentHurt(BattleCalculationPre(FindCardAreaListByName("EnemyBattleArea"), FindCardAreaListByName("PlayerBattleArea")));
 }
Ejemplo n.º 7
0
 void BattleCalculationDead(CardArea area, int currentcolumn)
 {
     for (int i = 0; i < 3; i++)
     {
         BattleCube cube = area.transform.GetChild(currentcolumn + i * 3).GetComponent <BattleCube>();
         if (cube.transform.childCount > 0)
         {
             if (cube.transform.GetChild(0).GetComponent <Card>().m_IsBattleDead)
             {
                 //if (cube.transform.GetChild(0).GetComponent<Card>().m_DeadAnimTime < UGUISpriteAnimation.FRAMEBASE / UGUISpriteAnimation.FPS)
                 //{
                 //  cube.transform.GetChild(0).GetComponent<Card>().m_DeadAnimTime += Time.deltaTime;
                 //}
                 //else
                 //{
                 area.m_AreaList.Remove(cube.transform.GetChild(0).gameObject.GetComponent <Card>());
                 Destroy(cube.transform.GetChild(0).gameObject);
                 //}
             }
         }
     }
 }