Exemple #1
0
    public void UpdatePokemonHUD(Pokemon pokemon, Battle battle)
    {
        BTLUI_PokemonHUD pokemonHUD = GetPokemonHUD(pokemon);

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

            pokemonHUD.lvlTxt.text    = "Lv" + pokemon.level;
            pokemonHUD.statusTxt.text = "";
            StatusCondition condition = pokemon.nonVolatileStatus;
            if (condition != null)
            {
                if (condition.statusID != "healthy")
                {
                    pokemonHUD.statusTxt.text = condition.data.shortName;
                }
            }

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

            float hpPercent = battle.GetPokemonHPAsPercentage(pokemon);
            pokemonHUD.hpBar.fillAmount = hpPercent;

            pokemonHUD.hpBar.color = (hpPercent > 0.5f) ? pokemonHUD.hpHigh
                : (hpPercent > 0.25f) ? pokemonHUD.hpMed
                : pokemonHUD.hpLow;
        }
    }
Exemple #2
0
    // Drawing HUD
    public BTLUI_PokemonHUD DrawPokemonHUD(Pokemon pokemon, Battle battleModel, bool isNear)
    {
        // get spawn position
        Transform  spawnPos = GetPokemonHUDSpawnPosition(pokemon, battleModel, isNear);
        BattleTeam team     = battleModel.GetTeam(pokemon);

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

            UpdatePokemonHUD(pokemon, battleModel);
            return(pokemonHUD);
        }
    }
Exemple #3
0
    public void SetPokemonHUDActive(Pokemon pokemon, bool active)
    {
        BTLUI_PokemonHUD pokemonHUD = GetPokemonHUD(pokemon);

        if (pokemonHUD != null)
        {
            pokemonHUD.gameObject.SetActive(active);
        }
    }
Exemple #4
0
    public bool UndrawPokemonHUD(Pokemon pokemon)
    {
        BTLUI_PokemonHUD pokemonHUD = GetPokemonHUD(pokemon);

        if (pokemonHUD != null)
        {
            pokemonHUDs.Remove(pokemonHUD);
            Destroy(pokemonHUD.gameObject);
            return(true);
        }
        return(false);
    }
Exemple #5
0
    // Animation
    public IEnumerator AnimatePokemonHUDHPChange(
        Pokemon pokemon,
        Battle battleModel,
        int preHP, int postHP,
        float timeSpan = 1f)
    {
        BTLUI_PokemonHUD pokemonHUD = GetPokemonHUD(pokemon);

        if (pokemonHUD != null)
        {
            int   maxHP     = pokemon.maxHP;
            float preValue  = pokemonHUD.hpBar.fillAmount;
            float postValue = battleModel.GetPokemonHPPercentGivenHP(pokemon, postHP);

            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);
        }
    }
Exemple #6
0
    // HUD
    public BTLUI_PokemonHUD DrawPokemonHUD(Pokemon pokemon, Battle battle, bool isNear)
    {
        // get spawn position
        Transform  spawnPos = this.transform;
        BattleTeam team     = battle.GetTeam(pokemon);

        switch (team.teamMode)
        {
        case BattleTeam.TeamMode.Single:
            spawnPos = (isNear) ? spawnNearSingle : spawnFarSingle;
            break;

        case BattleTeam.TeamMode.Double:
            spawnPos = (pokemon.battlePos == 0) ? (isNear ? spawnNearDouble0 : spawnFarDouble0)
                    : isNear ? spawnNearDouble1 : spawnFarDouble1;
            break;

        case BattleTeam.TeamMode.Triple:
            spawnPos = (pokemon.battlePos == 0) ? (isNear ? spawnNearTriple0 : spawnFarTriple0)
                    : (pokemon.battlePos == 1) ? (isNear ? spawnNearTriple1 : spawnFarTriple1)
                    : isNear ? spawnNearTriple2 : spawnFarTriple2;
            break;
        }

        // draw pokemon HUD
        BTLUI_PokemonHUD pokemonHUD = Instantiate(pokemonHUDPrefab, spawnPos.position, Quaternion.identity, spawnPos);

        pokemonHUD.pokemonUniqueID = pokemon.uniqueID;
        pokemonHUD.hpObj.gameObject.SetActive(isNear &&
                                              (team.teamMode == BattleTeam.TeamMode.Single ||
                                               team.teamMode == BattleTeam.TeamMode.Double));

        /*pokemonHUD.expObj.SetActive(isNear
         *  && (team.teamMode == BattleTeam.TeamMode.Single
         || team.teamMode == BattleTeam.TeamMode.Double));*/
        pokemonHUDs.Add(pokemonHUD);

        UpdatePokemonHUD(pokemon, battle);

        return(pokemonHUD);
    }