Exemple #1
0
        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);
                });
            }
        }
Exemple #2
0
        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;
        }
Exemple #3
0
        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());
        }
Exemple #4
0
        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());
        }
Exemple #5
0
    /// <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);
    }
Exemple #6
0
 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]);
 }