public void BeginBattle() { //召唤精灵 GameObject playerPokemon = PokemonFactory.InitPokemon(PlayerCurPokemonData.race.raceid); playerPokemon.transform.position = PlayerPokemonTransform.position; playerPokemon.transform.parent = PlayerPokemonTransform; PokemonFactory.PokemonBallEffect(playerPokemon.transform.position); GameObject enemyPokemon = PokemonFactory.InitPokemon(EnemyCurPokemonData.race.raceid); enemyPokemon.transform.position = EnemyPokemonTransform.position; enemyPokemon.transform.parent = EnemyPokemonTransform; PokemonFactory.PokemonBallEffect(enemyPokemon.transform.position); PlayerCurPokemonData.transform = playerPokemon.transform; EnemyCurPokemonData.transform = enemyPokemon.transform; //控制精灵和训练家朝向 playerPokemon.transform.LookAt(enemyPokemon.transform); enemyPokemon.transform.LookAt(playerPokemon.transform); PlayerController.Instance.transform.LookAt(enemyPokemon.transform); Quaternion quaternion = PlayerController.Instance.transform.rotation; quaternion.x = 0; quaternion.z = 0; PlayerController.Instance.transform.rotation = quaternion; //初始化精灵数据 foreach (BattlePokemonData pokemon in playPokemons) { pokemon.Recover(); } foreach (BattlePokemonData pokemon in wildPokemons) { pokemon.Recover(); } //考虑特性 if (AbilityManager.AbilityImpacts.ContainsKey(PlayerCurPokemonData.ShowAbility)) { AbilityManager.AbilityImpacts[PlayerCurPokemonData.ShowAbility] .OnBeCalled(PlayerCurPokemonData); } //考虑特性 if (AbilityManager.AbilityImpacts.ContainsKey(EnemyCurPokemonData.ShowAbility)) { AbilityManager.AbilityImpacts[EnemyCurPokemonData.ShowAbility] .OnBeCalled(EnemyCurPokemonData); } battleState = new BattleStateForPlayer(); trainer = context.playerData.scriptableObject; }
private void ExchangePokemon(BattlePokemonData newCallPokemon) { DebugHelper.LogFormat("我方玩家将精灵{0}替换成了{1}", PlayerCurPokemonData.Ename, newCallPokemon.Ename); //回收精灵GameObject PlayerCurPokemonData.transform.gameObject.SetActive(false); ObjectPoolController.PokemonObjectsPool[PlayerCurPokemonData.race.raceid] = PlayerCurPokemonData.transform.gameObject; //如果剧毒就重置计数 if (AbnormalStateEnum.BadlyPoison == PlayerCurPokemonData.Abnormal) { BadlyPoisonState.count[PlayerCurPokemonData.ID] = 1; } //能力阶级重置 PlayerCurPokemonData.StatModifiers = new StatModifiers(); //考虑特性 if (AbilityManager.AbilityImpacts.ContainsKey(PlayerCurPokemonData.ShowAbility)) { AbilityManager.AbilityImpacts[PlayerCurPokemonData.ShowAbility] .OnLeave(PlayerCurPokemonData); } PlayerCurPokemonData = newCallPokemon; PlayChooseSkillID = -1; //召唤新的精灵 GameObject playerPokemon = PokemonFactory.InitPokemon(PlayerCurPokemonData.race.raceid); playerPokemon.transform.position = PlayerPokemonTransform.position; playerPokemon.transform.parent = PlayerPokemonTransform; PokemonFactory.PokemonBallEffect(playerPokemon.transform.position); PlayerCurPokemonData.transform = playerPokemon.transform; //控制精灵和训练家朝向 playerPokemon.transform.LookAt(EnemyCurPokemonData.transform); //考虑特性 if (AbilityManager.AbilityImpacts.ContainsKey(PlayerCurPokemonData.ShowAbility)) { AbilityManager.AbilityImpacts[PlayerCurPokemonData.ShowAbility] .OnBeCalled(PlayerCurPokemonData); } TTUIPage.ShowPage <UIBattle_PokemonInfos>(); }