示例#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);
    }
 public void NewBoardThread(BoardInitArgs boardInitArgs)
 {
     if (boardThread != null)
     {
         boardThread.Abort();
     }
     //boardThread = new Thread(new ThreadStart(BoardThread));
     boardThread = new Thread(new ParameterizedThreadStart(BoardThread));
     boardThread.Start(boardInitArgs);
 }
 public void StartNewGame(BoardInitArgs boardInitArgs)
 {
     BattleBoard.gameObject.SetActive(true);
     SelectBoard.gameObject.SetActive(false);
     BattleBoard.Init();
     NewBoardThread(boardInitArgs);
     gameEndAction = win => {
         selectPileAction?.Invoke(win ? 0 : 1);
         BattleBoard.gameObject.SetActive(false);
         SelectBoard.gameObject.SetActive(true);
     };
 }
示例#4
0
    public BoardInitArgs GetFilledBoardInitArgs()
    {
        CardPile cardPile = new CardPile();

        cardPile.AddMap(this.cardPile.cardPile);
        BoardInitArgs boardInitArgs = new BoardInitArgs
        {
            player   = player.Copy(),
            cardPile = cardPile,
            enemy    = null,
            level    = 1
        };

        return(boardInitArgs);
    }
示例#5
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);
        }
    }