예제 #1
0
        // Setting HUD Parameters
        public Transform GetPokemonHUDSpawnPosition(
            PBS.Battle.View.WifiFriendly.Pokemon pokemon,
            TeamMode teamMode,
            bool isNear)
        {
            // get spawn position
            Transform spawnPos = null;

            switch (teamMode)
            {
            case TeamMode.Single:
                spawnPos = isNear ? pokemonHUDSpawnNearSingle : pokemonHUDSpawnFarSingle;
                break;

            case TeamMode.Double:
                spawnPos = (pokemon.battlePos == 0) ? (isNear ? pokemonHUDSpawnNearDouble0 : pokemonHUDSpawnFarDouble0)
                        : isNear ? pokemonHUDSpawnNearDouble1 : pokemonHUDSpawnFarDouble1;
                break;

            case TeamMode.Triple:
                spawnPos = (pokemon.battlePos == 0) ? (isNear ? pokemonHUDSpawnNearTriple0 : pokemonHUDSpawnFarTriple0)
                        : (pokemon.battlePos == 1) ? (isNear ? pokemonHUDSpawnNearTriple1 : pokemonHUDSpawnFarTriple1)
                        : isNear ? pokemonHUDSpawnNearTriple2 : pokemonHUDSpawnFarTriple2;
                break;
            }
            return(spawnPos);
        }
예제 #2
0
파일: Fight.cs 프로젝트: moto2002/pbs-unity
        public void SetMoveButton(
            PBS.Battle.View.WifiFriendly.Pokemon pokemon,
            PBS.Battle.View.Events.CommandAgent.Moveslot moveslot,
            Panels.FightButton moveBtn,
            bool choosingZMove = false, bool choosingMaxMove = false)
        {
            MoveData moveData = MoveDatabase.instance.GetMoveData(moveslot.moveID);

            moveBtn.moveslot = moveslot;

            if (!moveslot.hide)
            {
                TypeData typeData  = TypeDatabase.instance.GetTypeData(moveData.moveType);
                Color    typeColor = Color.clear;
                ColorUtility.TryParseHtmlString(typeData.typeColor, out typeColor);

                moveBtn.moveTxt.text  = moveData.moveName;
                moveBtn.ppTxt.text    = moveslot.PP + "/" + moveslot.maxPP;
                moveBtn.typeTxt.text  = typeData.typeName;
                moveBtn.typeTxt.color = typeColor;

                moveBtn.moveID   = moveData.ID;
                moveBtn.colorSel = new Color(typeColor.r, typeColor.g, typeColor.b, 0.75f);
            }
            else
            {
                moveBtn.moveTxt.text = "";
                moveBtn.ppTxt.text   = "";
                moveBtn.typeTxt.text = "";
                moveBtn.moveID       = "";
            }
            moveBtn.UnselectSelf();
        }
예제 #3
0
        public static string GetPrefix(
            PBS.Battle.View.WifiFriendly.Pokemon pokemon,
            PBS.Battle.View.Model myModel,
            int teamPerspectiveID = -1,
            int myPlayerID        = 0,
            bool capitalize       = true)
        {
            string text = "";

            PBS.Battle.View.WifiFriendly.Trainer trainer = myModel.GetTrainer(pokemon);
            if (pokemon.teamPos != teamPerspectiveID)
            {
                text = "The opposing ";
            }
            else
            {
                if (myPlayerID != 0)
                {
                    if (trainer.playerID != myPlayerID)
                    {
                        text = "The ally ";
                    }
                }
            }
            if (!capitalize)
            {
                text = text.ToLower();
                text = " " + text;
            }
            return(text);
        }
예제 #4
0
 // HUD Activity
 public void SetPokemonHUDActive(PBS.Battle.View.WifiFriendly.Pokemon pokemon, bool active)
 {
     HUD.PokemonHUD pokemonHUD = GetPokemonHUD(pokemon);
     if (pokemonHUD != null)
     {
         pokemonHUD.gameObject.SetActive(active);
     }
 }
예제 #5
0
 public PBS.Battle.View.WifiFriendly.Pokemon GetMatchingPokemon(PBS.Battle.View.WifiFriendly.Pokemon searchPokemon)
 {
     if (searchPokemon == null)
     {
         return(null);
     }
     return(GetMatchingPokemon(searchPokemon.uniqueID));
 }
예제 #6
0
 public IEnumerator AnimatePokemonHUDHPChange(PBS.Battle.View.WifiFriendly.Pokemon pokemon, int preHP, int postHP, int maxHP, float timeSpan = 1f)
 {
     yield return(StartCoroutine(HUDPanel.AnimatePokemonHUDHPChange(
                                     pokemon: pokemon,
                                     preHP: preHP,
                                     postHP: postHP,
                                     maxHP: maxHP,
                                     timeSpan: timeSpan
                                     )));
 }
예제 #7
0
        public void SetCommands(PBS.Battle.View.WifiFriendly.Pokemon pokemon, IEnumerable <BattleCommandType> commandList)
        {
            HashSet <BattleCommandType> commandSet = new HashSet <BattleCommandType>(commandList);

            fightBtn.gameObject.SetActive(commandSet.Contains(BattleCommandType.Fight));
            partyBtn.gameObject.SetActive(commandSet.Contains(BattleCommandType.Party));
            bagBtn.gameObject.SetActive(commandSet.Contains(BattleCommandType.Bag));
            runBtn.gameObject.SetActive(commandSet.Contains(BattleCommandType.Run));
            backBtn.gameObject.SetActive(commandSet.Contains(BattleCommandType.Back));
            promptText.text = "What will <color=yellow>" + pokemon.nickname + "</color> do?";
        }
예제 #8
0
 public HUD.PokemonHUD GetPokemonHUD(PBS.Battle.View.WifiFriendly.Pokemon pokemon)
 {
     for (int i = 0; i < pokemonHUDs.Count; i++)
     {
         if (pokemonHUDs[i].pokemonUniqueID == pokemon.uniqueID)
         {
             return(pokemonHUDs[i]);
         }
     }
     return(null);
 }
예제 #9
0
 public bool UndrawPokemonHUD(PBS.Battle.View.WifiFriendly.Pokemon pokemon)
 {
     HUD.PokemonHUD pokemonHUD = GetPokemonHUD(pokemon);
     if (pokemonHUD != null)
     {
         pokemonHUDs.Remove(pokemonHUD);
         Destroy(pokemonHUD.gameObject);
         return(true);
     }
     return(false);
 }
예제 #10
0
        public void CreateFieldTargetBtn(
            BattlePosition position,
            PBS.Battle.View.Model battleModel,
            Panels.FieldTargetButton btn)
        {
            btn.position = position;
            PBS.Battle.View.WifiFriendly.Pokemon pokemon = battleModel.GetPokemonAtPosition(position);

            btn.RefreshSelf(active: pokemon != null);
            if (pokemon != null)
            {
                btn.nameTxt.text = pokemon.nickname;
                PokemonGender gender = pokemon.gender;
                if (gender != PokemonGender.Genderless)
                {
                    btn.nameTxt.text += (gender == PokemonGender.Male) ? " <color=#8080FF>♂</color>"
                        : " <color=#FF8080>♀</color>";
                }
                btn.lvlTxt.text = "<color=yellow>Lv</color>" + pokemon.level;

                btn.statusTxt.text = "";
                if (!string.IsNullOrEmpty(pokemon.nonVolatileStatus))
                {
                    StatusPKData statusData = StatusPKDatabase.instance.GetStatusData(pokemon.nonVolatileStatus);
                    btn.statusTxt.text = statusData.shortName;
                }

                float hpPercent = ((float)pokemon.currentHP) / pokemon.maxHP;
                btn.hpBar.fillAmount = hpPercent;

                btn.hpBar.color = (hpPercent > 0.5f) ? btn.hpHigh
                    : (hpPercent > 0.25f) ? btn.hpMed
                    : btn.hpLow;

                // draw icon
                string drawPath = "pokemonSprites/icon/" + PokemonDatabase.instance.GetPokemonData(pokemon.pokemonID).displayID;
                btn.icon.sprite = BattleAssetLoader.instance.nullPokemonIconSprite;
                if (BattleAssetLoader.instance.loadedPokemonSprites.ContainsKey(drawPath))
                {
                    btn.icon.sprite = BattleAssetLoader.instance.loadedPokemonSprites[drawPath];
                }
                else
                {
                    StartCoroutine(BattleAssetLoader.instance.LoadPokemon(
                                       pokemon: pokemon,
                                       useicon: true,
                                       imagePokemon: btn.icon
                                       ));
                }
            }
        }
예제 #11
0
 // Pokemon
 public static void WriteBattleViewCompactPokemon(this NetworkWriter writer, PBS.Battle.View.WifiFriendly.Pokemon obj)
 {
     writer.WriteString(obj.uniqueID);
     writer.WriteString(obj.pokemonID);
     writer.WriteString(obj.nickname);
     writer.WriteInt32(obj.teamPos);
     writer.WriteInt32(obj.battlePos);
     writer.WriteInt32(obj.currentHP);
     writer.WriteInt32(obj.maxHP);
     writer.WriteBoolean(obj.isFainted);
     writer.WriteInt32(obj.level);
     writer.WriteInt32((int)obj.gender);
     writer.WriteString(obj.nonVolatileStatus);
     writer.WriteInt32((int)obj.dynamaxState);
 }
예제 #12
0
 public void SwitchSelectedMoveTo(
     PBS.Battle.View.WifiFriendly.Pokemon pokemon,
     int selected,
     bool choosingSpecial, bool choosingZMove, bool choosingMaxMove)
 {
     fightPanel.HighlightMove(selected);
     if (choosingSpecial || choosingZMove || choosingMaxMove)
     {
         fightPanel.specialBtn.SelectSelf();
     }
     else
     {
         fightPanel.specialBtn.UnselectSelf();
     }
 }
예제 #13
0
        // Animation
        public IEnumerator AnimatePokemonHUDHPChange(
            PBS.Battle.View.WifiFriendly.Pokemon pokemon,
            int preHP,
            int postHP,
            int maxHP,
            float timeSpan = 1f)
        {
            HUD.PokemonHUD pokemonHUD = GetPokemonHUD(pokemon);
            if (pokemonHUD != null)
            {
                float preValue  = pokemonHUD.hpBar.fillAmount;
                float postValue = ((float)postHP / maxHP);

                float difference = postValue - preValue;
                float increment  = (timeSpan == 0) ? 1f : 0f;
                while (increment < 1)
                {
                    increment += (1 / timeSpan) * Time.deltaTime;
                    if (increment > 1)
                    {
                        increment = 1;
                    }
                    float curFillAmount = preValue + difference * increment;
                    int   displayHP     = Mathf.FloorToInt(curFillAmount * maxHP);
                    if (displayHP == 0 && curFillAmount > 0)
                    {
                        displayHP = 1;
                    }

                    // display changes
                    pokemonHUD.hpTxt.text       = displayHP + " / " + maxHP;
                    pokemonHUD.hpBar.fillAmount = curFillAmount;
                    pokemonHUD.hpBar.color      = (curFillAmount > 0.5f) ? pokemonHUD.hpHigh
                        : (curFillAmount > 0.25f) ? pokemonHUD.hpMed
                        : pokemonHUD.hpLow;

                    yield return(null);
                }

                pokemonHUD.hpTxt.text       = postHP + " / " + maxHP;
                pokemonHUD.hpBar.fillAmount = postValue;
                pokemonHUD.hpBar.color      = (postValue > 0.5f) ? pokemonHUD.hpHigh
                    : (postValue > 0.25f) ? pokemonHUD.hpMed
                    : pokemonHUD.hpLow;
                yield return(null);
            }
        }
예제 #14
0
파일: Party.cs 프로젝트: moto2002/pbs-unity
        public void SetPartyButton(
            PBS.Battle.View.WifiFriendly.Pokemon pokemon, 

            Panels.PartyButton button)
        {
            button.nameTxt.text = pokemon.nickname;

            PokemonGender gender = pokemon.gender;
            if (gender != PokemonGender.Genderless)
            {
                button.nameTxt.text += (gender == PokemonGender.Male) ? " <color=#8080FF>♂</color>"
                    : (gender == PokemonGender.Female)? " <color=#FF8080>♀</color>"
                    : "";
            }

            button.lvlTxt.text = "Lv." + pokemon.level;
            button.hpTxt.text = pokemon.currentHP + "/" + pokemon.maxHP;
            button.statusTxt.text = (string.IsNullOrEmpty(pokemon.nonVolatileStatus)) ? ""
                : StatusPKDatabase.instance.GetStatusData(pokemon.nonVolatileStatus).shortName;

            // draw icon
            string drawPath = "pokemonSprites/icon/" + PokemonDatabase.instance.GetPokemonData(pokemon.pokemonID).displayID;
            button.icon.sprite = BattleAssetLoader.instance.nullPokemonIconSprite;
            if (BattleAssetLoader.instance.loadedPokemonSprites.ContainsKey(drawPath))
            {
                button.icon.sprite = BattleAssetLoader.instance.loadedPokemonSprites[drawPath];
            }
            else
            {
                StartCoroutine(BattleAssetLoader.instance.LoadPokemon(
                    pokemon: pokemon,
                    useicon: true,
                    imagePokemon: button.icon
                    ));
            }

            // HP Bar
            float hpPercent = ((float)pokemon.currentHP) / pokemon.maxHP;
            button.hpBar.fillAmount = hpPercent;
            button.hpBar.color = (hpPercent > 0.5f) ? button.hpHigh
                : (hpPercent > 0.25f) ? button.hpMed
                : button.hpLow;

            button.pokemonUniqueID = pokemon.uniqueID;
            button.UnselectSelf();
        }
예제 #15
0
 public static PBS.Battle.View.Enums.ViewPerspective GetPerspective(
     PBS.Battle.View.WifiFriendly.Pokemon pokemon,
     PBS.Battle.View.Model myModel,
     int teamPerspectiveID = -1,
     int myPlayerID        = 0)
 {
     PBS.Battle.View.WifiFriendly.Trainer trainer = myModel.GetTrainer(pokemon);
     PBS.Battle.View.WifiFriendly.Team    team    = myModel.GetTeamOfTrainer(trainer);
     if (team.teamID != teamPerspectiveID)
     {
         return(PBS.Battle.View.Enums.ViewPerspective.Enemy);
     }
     else
     {
         if (myPlayerID == 0)
         {
             return(PBS.Battle.View.Enums.ViewPerspective.Ally);
         }
         return(PBS.Battle.View.Enums.ViewPerspective.Player);
     }
 }
예제 #16
0
        // Drawing HUD
        public HUD.PokemonHUD DrawPokemonHUD(
            PBS.Battle.View.WifiFriendly.Pokemon pokemon,
            TeamMode teamMode,
            bool isNear)
        {
            // get spawn position
            Transform spawnPos = GetPokemonHUDSpawnPosition(pokemon, teamMode, isNear);

            if (spawnPos == null)
            {
                Debug.LogWarning("Could not find HUD Spawn Position for " + pokemon.nickname);
                return(null);
            }
            else
            {
                // draw pokemon HUD
                HUD.PokemonHUD pokemonHUD = Instantiate(pokemonHUDPrefab, spawnPos.position, Quaternion.identity, spawnPos);
                pokemonHUD.pokemonUniqueID = pokemon.uniqueID;
                pokemonHUD.hpObj.gameObject.SetActive(isNear &&
                                                      (teamMode == TeamMode.Single ||
                                                       teamMode == TeamMode.Double));
                // set EXP bar
                pokemonHUD.expObj.SetActive(isNear &&
                                            (teamMode == TeamMode.Single ||
                                             teamMode == TeamMode.Double));
                pokemonHUDs.Add(pokemonHUD);

                UpdatePokemonHUD(
                    pokemon: pokemon,
                    nickname: pokemon.nickname,
                    gender: pokemon.gender,
                    level: pokemon.level,
                    nonVolatileStatusID: pokemon.nonVolatileStatus,
                    currentHP: pokemon.currentHP,
                    maxHP: pokemon.maxHP);
                return(pokemonHUD);
            }
        }
예제 #17
0
        public void UpdatePokemonHUD(
            PBS.Battle.View.WifiFriendly.Pokemon pokemon,
            string nickname            = "",
            PokemonGender gender       = PokemonGender.Genderless,
            int level                  = 1,
            string nonVolatileStatusID = null,
            int currentHP              = 1,
            int maxHP                  = 1)
        {
            HUD.PokemonHUD pokemonHUD = GetPokemonHUD(pokemon);
            if (pokemonHUD != null)
            {
                pokemonHUD.nameTxt.text = nickname;
                if (gender != PokemonGender.Genderless)
                {
                    pokemonHUD.nameTxt.text += (gender == PokemonGender.Male) ? " <color=#8080FF>♂</color>"
                        : " <color=#FF8080>♀</color>";
                }

                pokemonHUD.lvlTxt.text    = "<color=yellow>Lv</color>" + level;
                pokemonHUD.statusTxt.text = "";
                if (!string.IsNullOrEmpty(nonVolatileStatusID))
                {
                    StatusPKData statusData = StatusPKDatabase.instance.GetStatusData(nonVolatileStatusID);
                    pokemonHUD.statusTxt.text = statusData.shortName;
                }

                pokemonHUD.hpTxt.text = currentHP + " / " + maxHP;

                float hpPercent = ((float)currentHP) / maxHP;
                pokemonHUD.hpBar.fillAmount = hpPercent;

                pokemonHUD.hpBar.color = (hpPercent > 0.5f) ? pokemonHUD.hpHigh
                    : (hpPercent > 0.25f) ? pokemonHUD.hpMed
                    : pokemonHUD.hpLow;
            }
        }
예제 #18
0
        // Fight Panel
        public void SetMoves(
            PBS.Battle.View.WifiFriendly.Pokemon pokemon,
            List <PBS.Battle.View.Events.CommandAgent.Moveslot> moveslots,
            bool canMegaEvolve, bool canZMove = false, bool canDynamax = false,
            bool choosingZMove = false, bool choosingMaxMove           = false)
        {
            List <PBS.Battle.View.Events.CommandAgent.Moveslot> filteredMoveslots
                = new List <PBS.Battle.View.Events.CommandAgent.Moveslot>(moveslots);

            for (int i = 0; i < filteredMoveslots.Count; i++)
            {
                PBS.Battle.View.Events.CommandAgent.Moveslot moveslot = filteredMoveslots[i];
                if (moveslot == null)
                {
                    filteredMoveslots.RemoveAt(i);
                    i--;
                }
            }
            fightPanel.SetMoves(
                pokemon: pokemon,
                moveList: filteredMoveslots,
                canMegaEvolve: canMegaEvolve, canZMove: canZMove, canDynamax: canDynamax,
                choosingZMove: choosingZMove, choosingMaxMove: choosingMaxMove);
        }
예제 #19
0
파일: Party.cs 프로젝트: moto2002/pbs-unity
 // Party Screen
 public void SetParty(List<PBS.Battle.View.WifiFriendly.Pokemon> party, Item item = null)
 {
     for (int i = 0; i < party.Count; i++)
     {
         PBS.Battle.View.WifiFriendly.Pokemon pokemon = party[i];
         Panels.PartyButton curBtn = (i == 0) ? party1Btn
             : (i == 1) ? party2Btn
             : (i == 2) ? party3Btn
             : (i == 3) ? party4Btn
             : (i == 4) ? party5Btn
             : (i == 5) ? party6Btn
             : null;
         if (curBtn != null)
         {
             SetPartyButton(pokemon, curBtn);
         }
     }
     if (party.Count < 6) party6Btn.gameObject.SetActive(false);
     if (party.Count < 5) party5Btn.gameObject.SetActive(false);
     if (party.Count < 4) party4Btn.gameObject.SetActive(false);
     if (party.Count < 3) party3Btn.gameObject.SetActive(false);
     if (party.Count < 2) party2Btn.gameObject.SetActive(false);
     if (party.Count < 1) party1Btn.gameObject.SetActive(false);
 }
예제 #20
0
 // Message Rendering
 public static string GetPokemonName(PBS.Battle.View.WifiFriendly.Pokemon pokemon, PBS.Battle.View.Model myModel)
 {
     return(GetPokemonNames(new List <PBS.Battle.View.WifiFriendly.Pokemon> {
         pokemon
     }, myModel));
 }
예제 #21
0
        // Command Panel
        public void SetCommands(PBS.Battle.View.WifiFriendly.Pokemon pokemon, IEnumerable <BattleCommandType> commandList)
        {
            HashSet <BattleCommandType> commandSet = new HashSet <BattleCommandType>(commandList);

            cmdPanel.SetCommands(pokemon, commandList);
        }
예제 #22
0
 public void SwitchSelectedPartyMemberTo(PBS.Battle.View.WifiFriendly.Pokemon selected)
 {
     partyPanel.HighlightPokemon(selected.uniqueID);
 }
예제 #23
0
 // Party Commands
 public void SetPartyCommands(PBS.Battle.View.WifiFriendly.Pokemon pokemon, List <BattleExtraCommand> commands)
 {
     partyPanel.SetCommands(commands);
 }
예제 #24
0
 // HUD
 public HUD.PokemonHUD DrawPokemonHUD(PBS.Battle.View.WifiFriendly.Pokemon pokemon, TeamMode teamMode, bool isNear)
 {
     return(HUDPanel.DrawPokemonHUD(pokemon, teamMode, isNear));
 }
예제 #25
0
 public bool UndrawPokemonHUD(PBS.Battle.View.WifiFriendly.Pokemon pokemon)
 {
     return(HUDPanel.UndrawPokemonHUD(pokemon));
 }
예제 #26
0
        public static string RenderMessage(
            PBS.Battle.View.Events.MessageParameterized message,
            PBS.Battle.View.Model myModel,
            int myPlayerID = 0,
            PBS.Battle.View.WifiFriendly.Trainer myTrainer      = null,
            PBS.Battle.View.WifiFriendly.Team myTeamPerspective = null)
        {
            GameTextData textData = GameTextDatabase.instance.GetGameTextData(message.messageCode);

            if (textData == null)
            {
                return("");
            }
            string baseString = textData.languageDict[GameSettings.language];
            string newString  = baseString;

            PBS.Battle.View.WifiFriendly.Trainer trainerPerspective =
                (myTrainer == null)? myModel.GetMatchingTrainer(message.playerPerspectiveID)
                : myTrainer;
            PBS.Battle.View.WifiFriendly.Team teamPerspective =
                (myTeamPerspective == null)? myModel.GetMatchingTeam(message.teamPerspectiveID)
                : myTeamPerspective;

            // player
            newString = newString.Replace("{{-player-name-}}", PlayerSave.instance.name);

            if (!string.IsNullOrEmpty(message.pokemonID))
            {
                PBS.Battle.View.WifiFriendly.Pokemon pokemon = myModel.GetMatchingPokemon(message.pokemonID);
                PokemonData pokemonData = PokemonDatabase.instance.GetPokemonData(pokemon.pokemonID);
                newString = newString.Replace("{{-pokemon-}}", pokemon.nickname);
                newString = newString.Replace("{{-pokemon-form-}}", pokemonData.formName);
                newString = newString.Replace("{{-pokemon-poss-}}", pokemon.nickname
                                              + ((pokemon.nickname.EndsWith("s")) ? "'" : "'s")
                                              );
            }
            if (!string.IsNullOrEmpty(message.pokemonUserID))
            {
                PBS.Battle.View.WifiFriendly.Pokemon pokemon = myModel.GetMatchingPokemon(message.pokemonUserID);
                PokemonData pokemonData = PokemonDatabase.instance.GetPokemonData(pokemon.pokemonID);
                newString = newString.Replace("{{-user-pokemon-}}", pokemon.nickname);
                newString = newString.Replace("{{-user-pokemon-form-}}", pokemonData.formName);
                newString = newString.Replace("{{-user-pokemon-poss-}}", pokemon.nickname
                                              + ((pokemon.nickname.EndsWith("s")) ? "'" : "'s")
                                              );
            }
            if (!string.IsNullOrEmpty(message.pokemonTargetID))
            {
                PBS.Battle.View.WifiFriendly.Pokemon pokemon = myModel.GetMatchingPokemon(message.pokemonTargetID);
                PokemonData pokemonData = PokemonDatabase.instance.GetPokemonData(pokemon.pokemonID);
                newString = newString.Replace("{{-target-pokemon-}}", pokemon.nickname);
                newString = newString.Replace("{{-target-pokemon-form-}}", pokemonData.formName);
                newString = newString.Replace("{{-target-pokemon-poss-}}", pokemon.nickname
                                              + ((pokemon.nickname.EndsWith("s")) ? "'" : "'s")
                                              );
            }
            if (message.pokemonListIDs.Count > 0)
            {
                List <PBS.Battle.View.WifiFriendly.Pokemon> pokemonList = new List <Battle.View.WifiFriendly.Pokemon>();
                for (int i = 0; i < message.pokemonListIDs.Count; i++)
                {
                    pokemonList.Add(myModel.GetMatchingPokemon(message.pokemonListIDs[i]));
                }
                string pokemonNameList = GetPokemonNames(pokemonList, myModel);
                newString = newString.Replace("{{-pokemon-list-}}", pokemonNameList);
            }

            if (message.trainerID != 0)
            {
                newString = RenderMessageTrainer(
                    message.trainerID,
                    myModel,
                    teamPerspective.teamID,
                    newString,

                    myPlayerID: myPlayerID,
                    myTrainer: myTrainer,
                    myTeamPerspective: myTeamPerspective);
            }

            if (message.teamID != 0)
            {
                newString = RenderMessageTeam(
                    teamID: message.teamID,
                    teamPerspectiveID: teamPerspective.teamID,
                    baseString: newString,

                    myPlayerID: myPlayerID,
                    myTrainer: myTrainer,
                    myTeamPerspective: myTeamPerspective);
            }

            if (!string.IsNullOrEmpty(message.typeID))
            {
                TypeData typeData = TypeDatabase.instance.GetTypeData(message.typeID);
                newString = newString.Replace("{{-type-name-}}", typeData.typeName + "-type");
            }
            if (message.typeIDs.Count > 0)
            {
                newString = newString.Replace("{{-type-list-}}", GameTextDatabase.ConvertTypesToString(message.typeIDs.ToArray()));
            }

            if (!string.IsNullOrEmpty(message.moveID))
            {
                MoveData moveData = MoveDatabase.instance.GetMoveData(message.moveID);
                newString = newString.Replace("{{-move-name-}}", moveData.moveName);
            }
            if (message.moveIDs.Count > 0)
            {
                for (int i = 0; i < message.moveIDs.Count; i++)
                {
                    MoveData moveXData     = MoveDatabase.instance.GetMoveData(message.moveIDs[i]);
                    string   partToReplace = "{{-move-name-" + i + "-}}";
                    newString = newString.Replace(partToReplace, moveXData.moveName);
                }
            }

            if (!string.IsNullOrEmpty(message.abilityID))
            {
                AbilityData abilityData = AbilityDatabase.instance.GetAbilityData(message.abilityID);
                newString = newString.Replace("{{-ability-name-}}", abilityData.abilityName);
            }
            if (message.abilityIDs.Count > 0)
            {
                for (int i = 0; i < message.abilityIDs.Count; i++)
                {
                    AbilityData abilityXData  = AbilityDatabase.instance.GetAbilityData(message.abilityIDs[i]);
                    string      partToReplace = "{{-ability-name-" + i + "-}}";
                    newString = newString.Replace(partToReplace, abilityXData.abilityName);
                }
            }

            if (!string.IsNullOrEmpty(message.itemID))
            {
                ItemData itemData = ItemDatabase.instance.GetItemData(message.itemID);
                newString = newString.Replace("{{-item-name-}}", itemData.itemName);
            }

            if (!string.IsNullOrEmpty(message.statusID))
            {
                StatusPKData statusData = StatusPKDatabase.instance.GetStatusData(message.statusID);
                newString = newString.Replace("{{-status-name-}}", statusData.conditionName);
            }
            if (!string.IsNullOrEmpty(message.statusTeamID))
            {
                StatusTEData statusData = StatusTEDatabase.instance.GetStatusData(message.statusTeamID);
                newString = newString.Replace("{{-team-status-name-}}", statusData.conditionName);
            }
            if (!string.IsNullOrEmpty(message.statusEnvironmentID))
            {
                StatusBTLData statusData = StatusBTLDatabase.instance.GetStatusData(message.statusEnvironmentID);
                newString = newString.Replace("{{-battle-status-name-}}", statusData.conditionName);
            }

            // swapping substrings
            for (int i = 0; i < message.intArgs.Count; i++)
            {
                string partToReplace = "{{-int-" + i + "-}}";
                newString = newString.Replace(partToReplace, message.intArgs[i].ToString());
            }

            if (message.statList.Count > 0)
            {
                newString = newString.Replace("{{-stat-types-}}", ConvertStatsToString(message.statList.ToArray()));
                if (GameSettings.language == GameLanguages.English)
                {
                    newString = newString.Replace("{{-stat-types-was-}}", (message.statList.Count == 1)? "was" : "were");
                }
                else
                {
                    newString = newString.Replace("{{-stat-types-was-}}", "");
                }
                newString = newString.Replace("{{-stat-types-LC-}}", ConvertStatsToString(message.statList.ToArray(), false));
            }

            return(newString);
        }
예제 #27
0
 public string GetPokemonName(PBS.Battle.View.WifiFriendly.Pokemon pokemon)
 {
     return(GetPokemonNames(new List <PBS.Battle.View.WifiFriendly.Pokemon> {
         pokemon
     }));
 }
예제 #28
0
 public HUD.PokemonHUD GetPokemonHUD(PBS.Battle.View.WifiFriendly.Pokemon pokemon)
 {
     return(HUDPanel.GetPokemonHUD(pokemon));
 }
예제 #29
0
 public void UpdatePokemonHUD(PBS.Battle.View.WifiFriendly.Pokemon pokemon)
 {
     HUDPanel.UpdatePokemonHUD(pokemon);
 }
예제 #30
0
 public void SetPokemonHUDActive(PBS.Battle.View.WifiFriendly.Pokemon pokemon, bool active)
 {
     HUDPanel.SetPokemonHUDActive(pokemon, active);
 }