Exemplo n.º 1
0
        public Panels.FieldTargetButton GetFieldTargetButton(
            BattlePosition position,
            int teamPerspective,
            PBS.Battle.View.Model battleModel)
        {
            PBS.Battle.View.WifiFriendly.Team team = battleModel.GetMatchingTeam(position.teamPos);
            bool isAlly = (teamPerspective == position.teamPos);

            Panels.FieldTargetButton curBtn =

                // singles battle
                (team.teamMode == TeamMode.Single) ? (isAlly ? targetBtnNearSingle : targetBtnFarSingle)

                // doubles battle
                : (team.teamMode == TeamMode.Double) ?
                (isAlly ?
                 ((position.battlePos == 0) ? targetBtnNearDouble0 : targetBtnNearDouble1)
                        : ((position.battlePos == 0) ? targetBtnFarDouble0 : targetBtnFarDouble1))

                // triples battle
                : (team.teamMode == TeamMode.Triple) ?
                (isAlly ?
                 ((position.battlePos == 0) ? targetBtnNearTriple0
                            : (position.battlePos == 1) ? targetBtnNearTriple1 : targetBtnNearTriple2)
                        : ((position.battlePos == 0) ? targetBtnFarTriple0
                            : (position.battlePos == 1) ? targetBtnFarTriple1 : targetBtnFarTriple2))
                : null;
            return(curBtn);
        }
Exemplo n.º 2
0
        public void HighlightFieldTargets(BattlePosition userPos, List <BattlePosition> targetPositions)
        {
            backBtn.UnselectSelf();
            promptText.text = "Choose a target by scrolling left or right.";
            List <Panels.FieldTargetButton> fieldTargetBtns = activeTargetBtns;

            for (int i = 0; i < fieldTargetBtns.Count; i++)
            {
                bool posWasTargeted             = false;
                Panels.FieldTargetButton curBtn = fieldTargetBtns[i];
                BattlePosition           curPos = fieldTargetBtns[i].position;

                for (int k = 0; k < targetPositions.Count; k++)
                {
                    if (targetPositions[k].IsTheSameAs(curPos))
                    {
                        posWasTargeted = true;
                        break;
                    }
                }

                if (posWasTargeted)
                {
                    curBtn.SelectSelf();
                }
                else
                {
                    curBtn.UnselectSelf();
                    if (userPos.IsTheSameAs(curPos))
                    {
                        curBtn.image.color = curBtn.colorUser;
                    }
                }
            }
        }
Exemplo n.º 3
0
        public void SetFieldTargets(
            int teamPos,
            PBS.Battle.View.Model battleModel)
        {
            activeTargetBtns = new List <Panels.FieldTargetButton>();
            HideAllButtons();
            CleanAllButtons();

            List <BattlePosition> allPositions = battleModel.GetAllBattlePositions();

            for (int i = 0; i < allPositions.Count; i++)
            {
                BattlePosition curPos = allPositions[i];
                PBS.Battle.View.WifiFriendly.Team team = battleModel.GetMatchingTeam(curPos.teamPos);
                bool isAlly = (teamPos == curPos.teamPos);

                Panels.FieldTargetButton curBtn = GetFieldTargetButton(
                    position: curPos,
                    teamPerspective: teamPos,
                    battleModel: battleModel);

                if (curBtn != null)
                {
                    CreateFieldTargetBtn(curPos, battleModel, curBtn);
                    activeTargetBtns.Add(curBtn);
                    curBtn.gameObject.SetActive(true);
                }
            }
        }
Exemplo n.º 4
0
        public void CleanAllButtons()
        {
            List <Panels.FieldTargetButton> allBtns = GetAllFieldTargetButtons();

            for (int i = 0; i < allBtns.Count; i++)
            {
                Panels.FieldTargetButton curBtn = allBtns[i];
                curBtn.RefreshSelf();
                curBtn.position = null;
            }
        }
Exemplo n.º 5
0
        public void HideAllButtons()
        {
            List <Panels.FieldTargetButton> allBtns = GetAllFieldTargetButtons();

            for (int i = 0; i < allBtns.Count; i++)
            {
                Panels.FieldTargetButton curBtn = allBtns[i];
                curBtn.UnselectSelf();
                curBtn.gameObject.SetActive(false);
            }
        }
Exemplo n.º 6
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
                                       ));
                }
            }
        }