Exemplo n.º 1
0
    //copy ctor
    public UB_EncounterData(UB_EncounterData prius)
    {
        if (prius == null)
        {
            return;
        }

        SpawnWeight   = prius.SpawnWeight;
        EncounterType = prius.EncounterType;
        Description   = prius.Description;
        Icon          = prius.Icon;

        Vitals  = new EnemyVitals(prius.Vitals);
        Rewards = new EncounterRewards(prius.Rewards);

        EncounterActions = new Dictionary <string, string>();
        foreach (var kvp in prius.EncounterActions)
        {
            EncounterActions.Add(kvp.Key, kvp.Value);
        }

        Spells = new Dictionary <string, EnemySpellDetail>();
        foreach (var spell in prius.Spells)
        {
            Spells.Add(spell.Key, new EnemySpellDetail(spell.Value));
        }

        Vitals.ActiveStati = new List <UB_SpellStatus>();
        foreach (var status in prius.Vitals.ActiveStati)
        {
            Vitals.ActiveStati.Add(new UB_SpellStatus(status));
        }
    }
Exemplo n.º 2
0
            /// <summary>
            /// Starts an encounter.
            /// </summary>
            /// <param name="encounterType">The type of encounter that was engaged.</param>
            /// <param name="fieldSize">The size of the encounter zone.</param>
            /// <param name="units">The units initially engaged in the encounter.</param>
            public void BeginEncounter(EncounterTypes encounterType, AreaOfEffect fieldSize, List <Unit> units)
            {
                encounterActive = true;
                currentRound    = 0;
                this.fieldSize  = fieldSize;
                turnOrder       = CreateTurnOrder(units);
                OrganizeTurnOrder();

                UtilityFunctions.GetActiveUnitDetector().AddIndicatorTiles(fieldSize.GetAllTiles(), TileIndicatorTypes.Encounter);


                foreach (Unit unit in units)
                {
                    Debug.Log(unit.GetType());
                }

                switch (encounterType)
                {
                case EncounterTypes.Advantage:
                    GrantPriorityToAllOfType(TargetTypes.Ally);
                    break;

                case EncounterTypes.Disadvantage:
                    GrantPriorityToAllOfType(TargetTypes.Enemy);
                    break;
                }

                //playerController.inputsDisabled = false;
                //uiController.PushUI(UIScreens.EncounterScreen, true);
                controllerReference.StartCoroutine(EncounterLoop());
            }
Exemplo n.º 3
0
    public Pokemon GetRandomEncounter(EncounterTypes type)
    {
        float       roll  = Random.Range(0.0f, 1.0f);
        WildPokemon match = null;

        // Set the match variable
        if (type == EncounterTypes.Roam)
        {
            if (roll < global.extremelyRareEncounterRate)
            {
                if (roamExtremelyRare.Length > 0)
                {
                    match = roamExtremelyRare[Random.Range(0, roamExtremelyRare.Length)];
                }
            }
            else if (roll < global.veryRareEncounterRate)
            {
                if (roamVeryRare.Length > 0)
                {
                    match = roamVeryRare[Random.Range(0, roamVeryRare.Length)];
                }
            }
            else if (roll < global.rareEncounterRate)
            {
                if (roamRare.Length > 0)
                {
                    match = roamRare[Random.Range(0, roamRare.Length)];
                }
            }
            else if (roll < global.uncommonEncounterRate)
            {
                if (roamUncommon.Length > 0)
                {
                    match = roamUncommon[Random.Range(0, roamUncommon.Length)];
                }
            }
            else
            {
                match = roamCommon[Random.Range(0, roamCommon.Length)];
            }
        }

        if (match == null)
        {
            match = roamCommon[Random.Range(0, roamCommon.Length)];
        }

        return(new Pokemon(
                   match.ID,
                   Pokemon.Gender.CALCULATE,
                   Random.Range(match.minLevel, match.maxLevel + 1),
                   Pokemon.Ball.POKE, null, null, -1));
    }
Exemplo n.º 4
0
    public IEnumerator wildEncounter(EncounterTypes type)
    {
        if (setCheckBusyWith(Scene.main.Battle.gameObject))
        {
            Scene.main.Battle.gameObject.SetActive(true);

            StartCoroutine(Scene.main.Battle.control(accessedMapSettings.GetRandomEncounter(type)));

            while (Scene.main.Battle.gameObject.activeSelf)
            {
                yield return(null);
            }

            unsetCheckBusyWith(Scene.main.Battle.gameObject);
            yield return(null);
        }
    }
Exemplo n.º 5
0
 public void EnableEncounterOptions(EncounterTypes type, string encounterName, bool wasAmbushed = false)
 {
     if (type.ToString().Contains(GlobalStrings.ENCOUNTER_CREEP))
     {
         SetupCreepEncounter();
         this.encounterDescription.text = wasAmbushed ? string.Format(GlobalStrings.ENCOUNTER_AMBUSH_MSG, encounterName) : string.Format(GlobalStrings.ENCOUNTER_ENEMY_MSG, encounterName);
     }
     else if (type == EncounterTypes.Hero)
     {
         SetupHeroEncounter();
         this.encounterDescription.text = string.Format(GlobalStrings.ENCOUNTER_HERO_MSG, encounterName);
     }
     else if (type == EncounterTypes.Store)
     {
         SetupStoreEncounter();
         this.encounterDescription.text = string.Format(GlobalStrings.ENCOUNTER_VENDOR_MSG, encounterName);
     }
 }
Exemplo n.º 6
0
 void PickRandomEncounterType()
 {
     if (Random.value < 0.5f)
         encounterType = EncounterTypes.Wreckage;
     else
         encounterType = EncounterTypes.Ruins;
 }
Exemplo n.º 7
0
    static List<System.Type> GetEnemyTypesForEncounterType(EncounterTypes typeArgument)
    {
        List<System.Type> enemyTypesList = new List<System.Type>();

        if (typeArgument == EncounterTypes.Wreckage)
            enemyTypesList = Infestation.GetAllEnemyTypes();

        if (typeArgument == EncounterTypes.Ruins)
            enemyTypesList = Paramilitaries.GetAllEnemyTypes();

        return enemyTypesList;
    }