Example #1
0
    public BoardInitArgs GetTestBoardInitArgs()
    {
        EnemyManager.CreateEnemy();
        CardPile cardPile = new CardPile();

        cardPile.InitCardPileFully();

        int tmp = random.Next(4) + 1;

        Enemy enemy = EnemyManager.enemies[tmp - 1];

        enemy.Init(cardPile);

        Player player = this.player;

        if (player == null)
        {
            player = new Player(CardBuilder.SearchCardByName("雷诺·杰克逊").NewCard());
        }

        BoardInitArgs boardInitArgs = new BoardInitArgs
        {
            player   = player,
            enemy    = enemy,
            cardPile = cardPile,
            level    = tmp
        };

        //Debug.Log(boardInitArgs.player + "this");
        return(boardInitArgs);
    }
Example #2
0
    internal static CardPile GetFullCardPile()
    {
        CardPile cardPile = new CardPile();

        cardPile.InitCardPileFully();
        return(cardPile);
    }
Example #3
0
    public IEnumerator EStartLevel(int n)
    {
        int level = n + 1;

        Debug.Log("进入第" + level + "关");

        UnlockOneHero(level);
        //if (level == 4)
        //{
        //    UnlockHeroByHero(player.hero);
        //}

        BoardInitArgs boardInitArgs = GetFilledBoardInitArgs();

        boardInitArgs.level = level;
        boardInitArgs.enemy = EnemyManager.GetEnemyByLevel(level);
        CardPile cardPile = new CardPile();

        cardPile.InitCardPileFully();
        boardInitArgs.enemy.Init(cardPile);
        //boardInitArgs.enemy.Init(cardPile);
        boardInitArgs.enemy.SetLevel(boardInitArgs.level);

        // player 每关+10血
        boardInitArgs.player.hero.effectsStay.Add(new BodyPlusEffect(0, 10 * level - 10));
        Card enemyBackup = boardInitArgs.enemy.player.hero.NewCard();

        yield return(StartCoroutine(EIntroEnmey(boardInitArgs.enemy.player, level)));

        gameAnimationSetting.selectPileAction = i => {
            returnValue   = i;
            isGotResponse = true;
        };
        gameAnimationSetting.StartNewGame(boardInitArgs);
        gameAnimationSetting.PlayAudioBattle();

        yield return(StartCoroutine(WaitForGotResponse()));

        if (returnValue == 0)
        {
            Card hero = boardInitArgs.enemy.player.hero;
            defeatedEnemy.Add(enemyBackup);
        }
    }
Example #4
0
    public static void Init()
    {
        CardBuilder.GetCard(0);
        CardPile cardPile = new CardPile();

        cardPile.InitCardPileFully();

        /*
         *  string minionTypeCountString = cardPile.cardPile
         *      .GroupBy(pair => pair.Key.type)
         *      .Select(x => (card: x.First().Key, count: x.Sum(pair => pair.Value)))
         *      .Select(x => (x.card.type, count: x.count / Const.numOfMinionsInCardPile[x.card.star - 1]))
         *      .Select(pair => (type: BIF.BIFStaticTool.GetEnumDescriptionSaved(pair.type), pair.count))
         *      .Where(pair => !string.IsNullOrEmpty(pair.type))
         *      .Map(pair => pair.type + ":" + pair.count)
         *      .Join(" ");
         *  Debug.Log(minionTypeCountString);
         */
        schools = new List <School>
        {
            new School()
            {
                name  = "中立",
                cards = CardBuilder.AllCards.FilterValue(card => !card.isToken && !card.isGold).Filter(card => card.tag.Contains("中立"))
            },
            new School()
            {
                name  = "野兽",
                cards = CardBuilder.AllCards.FilterValue(card => !card.isToken && !card.isGold).Filter(card => card.tag.Contains("野兽"))
            },
            new School()
            {
                name  = "恶魔",
                cards = CardBuilder.AllCards.FilterValue(card => !card.isToken && !card.isGold).Filter(card => card.tag.Contains("恶魔"))
            },
            new School()
            {
                name  = "机械",
                cards = CardBuilder.AllCards.FilterValue(card => !card.isToken && !card.isGold).Filter(card => card.tag.Contains("机械"))
            },
            new School()
            {
                name  = "鱼人",
                cards = CardBuilder.AllCards.FilterValue(card => !card.isToken && !card.isGold).Filter(card => card.tag.Contains("鱼人"))
            },
            new School()
            {
                name  = "巨龙",
                cards = CardBuilder.AllCards.FilterValue(card => !card.isToken && !card.isGold).Filter(card => card.tag.Contains("龙"))
            },
            new School()
            {
                name  = "嘲讽",
                cards = CardBuilder.AllCards.FilterValue(card => !card.isToken && !card.isGold).Filter(card => card.tag.Contains("嘲讽"))
            },
            new School()
            {
                name  = "圣盾",
                cards = CardBuilder.AllCards.FilterValue(card => !card.isToken && !card.isGold).Filter(card => card.tag.Contains("圣盾"))
            },
            new School()
            {
                name  = "战吼",
                cards = CardBuilder.AllCards.FilterValue(card => !card.isToken && !card.isGold).Filter(card => card.tag.Contains("战吼"))
            },
            new School()
            {
                name  = "亡语",
                cards = CardBuilder.AllCards.FilterValue(card => !card.isToken && !card.isGold).Filter(card => card.tag.Contains("亡语"))
            },
            new School()
            {
                name  = "混沌",
                cards = CardBuilder.AllCards.FilterValue(card => !card.isToken && !card.isGold).Filter(card => card.tag.Contains("混合") || card.tag.Contains("奇异") || card.tag.Contains("青玉"))
            },
            //schools.Add(new School()
            //{
            //    name = "奇异",
            //    cards = CardBuilder.AllCards.FilterValue(card => !card.isToken && !card.isGold).Filter(card => card.tag.Contains("奇异"))
            //});
            //schools.Add(new School()
            //{
            //    name = "召唤",
            //    cards = CardBuilder.AllCards.FilterValue(card => !card.isToken && !card.isGold).Filter(card => card.tag.Contains("召唤"))
            //});
            new School()
            {
                name  = "手牌",
                cards = CardBuilder.AllCards.FilterValue(card => !card.isToken && !card.isGold).Filter(card => card.tag.Contains("手牌"))
            }
        };
        //foreach (var item in schools)
        //{
        //    Debug.Log(item.name + "  " + item.cards.Count);
        //}

        for (int i = 1; i <= 6; i++)
        {
            for (int j = 0; j < Const.typeOfMinionsInCardPile[i - 1] - 3; j++)
            {
                starList.Add(i);
            }
        }
        starList.Shuffle();
        for (int i = 1; i <= 3; i++)
        {
            List <int> tmpStarList = new List <int>();
            for (int j = 1; j <= 6; j++)
            {
                tmpStarList.Add(j);
            }
            tmpStarList.Shuffle();
            foreach (var item in tmpStarList)
            {
                starList.Add(item);
            }
        }
    }