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); }; }
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); }
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); } }