Пример #1
0
        public WildPokemonInitialiser[] getEncounterList(WildPokemonInitialiser.Location location)
        {
            WildPokemonInitialiser[] list = new WildPokemonInitialiser[encounters.Length];
            int listIndex = 0;

            float time = System.DateTime.Now.Hour + ((float)System.DateTime.Now.Minute / 60f);

            for (int i = 0; i < encounters.Length; i++)
            {
                if (encounters[i].encounterLocation == location)
                {
                    if (time >= 20 || time < 3.5f)
                    {
                        //night
                        if (encounters[i].encounterNight)
                        {
                            list[listIndex] = encounters[i];
                            listIndex      += 1;
                        }
                    }
                    else if (time < 10f)
                    {
                        //morning
                        if (encounters[i].encounterMorning)
                        {
                            list[listIndex] = encounters[i];
                            listIndex      += 1;
                        }
                    }
                    else
                    {
                        //day
                        if (encounters[i].encounterDay)
                        {
                            list[listIndex] = encounters[i];
                            listIndex      += 1;
                        }
                    }
                }
            }

            WildPokemonInitialiser[] packedList = new WildPokemonInitialiser[listIndex];

            for (int i = 0; i < packedList.Length; i++)
            {
                packedList[i] = list[i];
            }

            return(packedList);
        }
Пример #2
0
        public Pokemon getRandomEncounter(WildPokemonInitialiser.Location location)
        {
            WildPokemonInitialiser[] list = getEncounterList(location);

            int totalEncounterLikelihood = 0; //add up the total Likelihood

            for (int i = 0; i < list.Length; i++)
            {
                totalEncounterLikelihood += list[i].encounterLikelihood;
            }

            WildPokemonInitialiser[] chanceSplitList = new WildPokemonInitialiser[totalEncounterLikelihood];
            int listIndex = 0;

            for (int i = 0; i < list.Length; i++)
            {
                //loop through each position of list
                for (int i2 = 0; i2 < list[i].encounterLikelihood; i2++)
                {
                    //add encounter once for every Likelihood
                    chanceSplitList[listIndex] = list[i];
                    listIndex += 1;
                }
            }
            //randomly pick a number from the list's length
            int encounterIndex = Random.Range(0, chanceSplitList.Length);

            /*/		DEBUG
             *  string debugtext = "";
             *  for(int i = 0; i < chanceSplitList.Length; i++){
             *      debugtext += PokemonDatabase.getPokemon(chanceSplitList[i].ID).getName() + ", ";}
             *  Debug.Log(encounterIndex+": "+debugtext + "("+PokemonDatabase.getPokemon(chanceSplitList[encounterIndex].ID).getName()+")");
             *  //*/


            return(new Pokemon(chanceSplitList[encounterIndex].ID, Pokemon.Gender.CALCULATE,
                               Random.Range(chanceSplitList[encounterIndex].minLevel, chanceSplitList[encounterIndex].maxLevel + 1),
                               null, null, null, -1));
        }