private static void CMInvoke() { PvPBattle.Bind(); BattleNotoriety.Enable(); var scenarios = new List <PvPScenario>(); foreach (var type in BattleTypes.Where(t => t != null)) { VitaNexCore.TryCatch( () => { var battle = type.CreateInstanceSafe <PvPBattle>(); if (battle == null) { throw new Exception("PvPBattle Type could not be constructed, requires a constructor with 0 arguments."); } PvPScenario scenario = battle; scenarios.Add(scenario); battle.Delete(); CMOptions.ToConsole("Created scenario ({0}) '{1}'", scenario.TypeOf.Name, scenario.Name); }, CMOptions.ToConsole); } Scenarios = scenarios.ToArray(); scenarios.Clear(); foreach (var battle in Battles.Values.Where(b => b != null && !b.Deleted).ToArray()) { VitaNexCore.TryCatch( battle.Init, ex => { VitaNexCore.TryCatch(battle.Delete); CMOptions.ToConsole("Failed to initialize battle #{0} '{1}'", battle.Serial, battle.Name); CMOptions.ToConsole(ex); }); } foreach (var profile in Profiles.Values.Where(p => p != null && !p.Deleted).ToArray()) { VitaNexCore.TryCatch( profile.Init, ex => { VitaNexCore.TryCatch(profile.Delete); CMOptions.ToConsole("Failed to initialize profile #{0} '{1}'", profile.Owner.Serial.Value, profile.Owner.RawName); CMOptions.ToConsole(ex); }); } }
private void Setup() { player_found = false; ui_manager = FindObjectOfType <UIManager>(); event_manager = FindObjectOfType <EventManager>(); in_battle = false; battle_type = BattleTypes.None; battle_state = BattleStates.None; effect_playing = false; }
public IEnumerator TrainerBattle(Trainer trainer) { // Pause overworld event_manager.DisablePlayerControl(); event_manager.DisableAllEvents(); // Setup battle parameters for a trainer battle in_battle = true; battle_type = BattleTypes.Trainer; battle_state = BattleStates.Start; enemy_trainer = trainer; player_pokemon = player_trainer.GetFirstEligiblePokemon(); enemy_pokemon = enemy_trainer.GetFirstEligiblePokemon(); // Call Trainer Battle Intro Scene effect_playing = true; StartCoroutine(RunTrainerBattleIntro()); yield return(new WaitUntil(() => !effect_playing)); StartCoroutine(BattleStart()); }
public IEnumerator WildBattle(Pokemon.Pokemon wild_pokemon) { // Pause overworld event_manager.DisablePlayerControl(); event_manager.DisableAllEvents(); // Setup battle parameters for wild encounter in_battle = true; battle_type = BattleTypes.Wild; battle_state = BattleStates.Start; enemy_trainer = null; player_pokemon = player_trainer.GetFirstEligiblePokemon(); enemy_pokemon = wild_pokemon; // Call Wild Battle Intro Scene effect_playing = true; StartCoroutine(RunWildBattleIntro()); yield return(new WaitUntil(() => !effect_playing)); StartCoroutine(BattleStart()); }
/// <summary> /// 创建神将; /// </summary> /// <returns></returns> public WarriorController CreateWarrior(int index, Vector3 pos, float orient, BattleTypes battleType) { Warrior warrior = m_WarriorList [index]; Quaternion rotate = Quaternion.Euler(new Vector3(0, orient * Mathf.Rad2Deg, 0)); GameObject prefab = ResourcesManager.Instance.LoadUnitObject(warrior.Model, UNIT_TYPE.WARRIOR); GameObject warriorObj = GameObject.Instantiate(prefab) as GameObject; warriorObj.transform.position = pos; warriorObj.transform.rotation = rotate; UnityEngine.AI.NavMeshAgent agent = warriorObj.AddComponent <UnityEngine.AI.NavMeshAgent>(); agent.speed = 0; agent.acceleration = 0; agent.angularSpeed = 0; //agent.avoidancePriority = (int)NavmeshPriority.WARRIOR; agent.height = warrior.Height; agent.radius = warrior.Radius; agent.stoppingDistance = 0.5f; //agent.obstacleAvoidanceType = ObstacleAvoidanceType.HighQualityObstacleAvoidance; CharacterController collider = warriorObj.AddComponent <CharacterController>(); collider.height = warrior.Height; collider.radius = warrior.Radius; collider.center = Vector3.up * (Mathf.Max(collider.height / 2.0f, collider.radius) + 0.03f); warriorObj.SetLayerRecursively(LayerMask.NameToLayer("Warrior")); WarriorController controller = warriorObj.AddComponent <WarriorController>(); m_WarriorControllerDic.Add(index, controller); controller.CurCombatUnit = warrior; //controller.m_BattleType = battleType; return(controller); }
internal static bool IsValidEventType(BattleTypes battleType) { return(Config.CurrentConfig.ValidBattleTypes.Contains(battleType.ToString())); }
public void SetBattleType(BattleTypes battleType) { this.currentBattleType = battleType; this.currentProgressScenario = new List <ProgressResultParts>(this.progressScenarios[battleType]); }