Example #1
0
        internal PrimaryStatState(Game_Unit unit, Stat_Labels stat_label)
        {
            Stat      = unit.stat(stat_label) - unit.stat_bonus(stat_label);
            Bonus     = unit.stat_bonus_display(stat_label);
            Cap       = unit.stat_cap(stat_label);
            IsCapped  = unit.actor.get_capped(stat_label);
            Penalized = unit.is_weighed_stat(stat_label);

            NullStat = false;
        }
Example #2
0
        internal static void label(Stat_Labels i, out string label, out string helpLabel)
        {
            switch (i)
            {
            // Hp
            case Stat_Labels.Hp:
                helpLabel = "Hp";
                label     = "HP";
                break;

            // Str
            case Stat_Labels.Pow:
            default:
                helpLabel = "Pow";
                label     = "Str";
                break;

            // Skl
            case Stat_Labels.Skl:
                helpLabel = "Skl";
                label     = "Skl";
                break;

            // Spd
            case Stat_Labels.Spd:
                helpLabel = "Spd";
                label     = "Spd";
                break;

            // Lck
            case Stat_Labels.Lck:
                helpLabel = "Lck";
                label     = "Luck";
                break;

            // Def
            case Stat_Labels.Def:
                helpLabel = "Def";
                label     = "Def";
                break;

            // Res
            case Stat_Labels.Res:
                helpLabel = "Res";
                label     = "Res";
                break;

            // Con
            case Stat_Labels.Con:
                helpLabel = "Con";
                label     = "Con";
                break;
            }
        }
Example #3
0
        internal static Func <Game_Unit, DirectionFlags, bool> stat_cheat(Stat_Labels stat_label)
        {
            Func <Game_Unit, DirectionFlags, bool> stat_cheat = (unit, dir) =>
            {
                bool result = false;
                if (dir.HasFlag(DirectionFlags.Up) || dir.HasFlag(DirectionFlags.Down))
                {
                    // Gain or lose hp
                    if (stat_label == Stat_Labels.Hp)
                    {
                        int hpChange = 0;
                        if (dir.HasFlag(DirectionFlags.Up))
                        {
                            hpChange = 1;
                        }
                        else if (dir.HasFlag(DirectionFlags.Down))
                        {
                            hpChange = -1;
                        }

                        if (hpChange != 0)
                        {
                            int hp = unit.hp;
                            unit.hp = Math.Max(1, unit.hp + hpChange);
                            if (hp != unit.hp)
                            {
                                result = true;
                            }
                        }
                    }
                }
                else
                {
                    int stat_gain = 0;
                    if (dir.HasFlag(DirectionFlags.Right))
                    {
                        stat_gain = 1;
                    }
                    else if (dir.HasFlag(DirectionFlags.Left))
                    {
                        stat_gain = -1;
                    }
                    result = stat_gain != 0;
                    unit.actor.gain_stat(stat_label, stat_gain);
                }

                unit.queue_move_range_update();
                return(result);
            };

            return(stat_cheat);
        }
Example #4
0
 internal static bool show_stat_colors(Stat_Labels stat_label)
 {
     if (Global.ActorConfig.StatLabelColoring != TactileLibrary.Config.StatLabelColoring.None)
     {
         if (stat_label < Stat_Labels.Con &&
             (!Global.ActorConfig.StatColorsOnlyInPrep ||
              (Global.scene is Scene_Worldmap || Global.game_system.preparations)))
         {
             return(true);
         }
     }
     return(false);
 }
Example #5
0
        protected override void initialize_images()
        {
            // Terrain Label
            Terrain_Label          = new Sprite(Global.Content.Load <Texture2D>(@"Graphics/Windowskins/Terrain_Info"));
            Terrain_Label.src_rect = new Rectangle(16, 212, 16, 15);
            Terrain_Label.offset   = new Vector2(-29, -(4 + (window_rows * LINE_HEIGHT)));

            base.initialize_images();

            for (int i = base.stat_rows; i < stat_rows; i++)
            {
                Stat_Labels.Add(new TextSprite());
                Stat_Labels[i].offset = new Vector2(-28, -(4 + ((i + 1) * LINE_HEIGHT)));
                Stat_Labels[i].SetFont(Config.UI_FONT, Global.Content, "Yellow");
            }
            if (this.skills_visible)
            {
                Stat_Labels[4].offset.X += 1;
                Stat_Labels[4].text      = "Skill";
            }
        }
Example #6
0
 protected virtual void gain_stat(Stat_Labels stat)
 {
     LevelUp.Apply(stat);
 }
 public void Apply(Stat_Labels stat)
 {
     Actor.gain_stat(stat, LevelUps.StatGains(stat));
 }
 public bool StatChanged(Stat_Labels stat)
 {
     return(LevelUps.StatGains(stat) != 0);
 }
 public int StatGain(Stat_Labels stat)
 {
     return(LevelUps.StatGains(stat));
 }
 protected override void gain_stat(Stat_Labels stat)
 {
     Promotion_Stats[(int)stat] = actor.stat(stat);
 }
Example #11
0
 public int StatGains(Stat_Labels stat)
 {
     return(StatGains((int)stat));
 }
        internal int growth_bonus_skill(Stat_Labels i)
        {
            int n = 0;
            // Skills: Growth%+
            // Disallows skills from items/weapons/statuses when training
            List <int> growth_skills = Global.game_system.home_base ? skills : all_skills;

            switch (i)
            {
            case Stat_Labels.Hp:
                // Skills: HP%+
                foreach (int skill_id in growth_skills.Where(x => Global.data_skills[x].Abstract.substring(0, 4) == "HP%+"))
                {
                    double str_test;
                    string name = Global.data_skills[skill_id].Abstract;
                    if (double.TryParse(name.substring(4, name.Length - 4), out str_test))
                    {
                        n += Convert.ToInt32(name.Substring(4, name.Length - 4));
                    }
                }
                break;

            case Stat_Labels.Pow:
                // Skills: Pow%+
                foreach (int skill_id in growth_skills.Where(x => Global.data_skills[x].Abstract.substring(0, 5) == "POW%+"))
                {
                    double str_test;
                    string name = Global.data_skills[skill_id].Abstract;
                    if (double.TryParse(name.substring(5, name.Length - 5), out str_test))
                    {
                        n += Convert.ToInt32(name.Substring(5, name.Length - 5));
                    }
                }
                break;

            case Stat_Labels.Skl:
                // Skills: Skl%+
                foreach (int skill_id in growth_skills.Where(x => Global.data_skills[x].Abstract.substring(0, 5) == "SKL%+"))
                {
                    double str_test;
                    string name = Global.data_skills[skill_id].Abstract;
                    if (double.TryParse(name.substring(5, name.Length - 5), out str_test))
                    {
                        n += Convert.ToInt32(name.Substring(5, name.Length - 5));
                    }
                }
                break;

            case Stat_Labels.Spd:
                // Skills: Spd%+
                foreach (int skill_id in growth_skills.Where(x => Global.data_skills[x].Abstract.substring(0, 5) == "SPD%+"))
                {
                    double str_test;
                    string name = Global.data_skills[skill_id].Abstract;
                    if (double.TryParse(name.substring(5, name.Length - 5), out str_test))
                    {
                        n += Convert.ToInt32(name.Substring(5, name.Length - 5));
                    }
                }
                break;

            case Stat_Labels.Lck:
                // Skills: Lck%+
                foreach (int skill_id in growth_skills.Where(x => Global.data_skills[x].Abstract.substring(0, 5) == "LCK%+"))
                {
                    double str_test;
                    string name = Global.data_skills[skill_id].Abstract;
                    if (double.TryParse(name.substring(5, name.Length - 5), out str_test))
                    {
                        n += Convert.ToInt32(name.Substring(5, name.Length - 5));
                    }
                }
                break;

            case Stat_Labels.Def:
                // Skills: Def%+
                foreach (int skill_id in growth_skills.Where(x => Global.data_skills[x].Abstract.substring(0, 5) == "DEF%+"))
                {
                    double str_test;
                    string name = Global.data_skills[skill_id].Abstract;
                    if (double.TryParse(name.substring(5, name.Length - 5), out str_test))
                    {
                        n += Convert.ToInt32(name.Substring(5, name.Length - 5));
                    }
                }
                break;

            case Stat_Labels.Res:
                // Skills: Res%+
                foreach (int skill_id in growth_skills.Where(x => Global.data_skills[x].Abstract.substring(0, 5) == "RES%+"))
                {
                    double str_test;
                    string name = Global.data_skills[skill_id].Abstract;
                    if (double.TryParse(name.substring(5, name.Length - 5), out str_test))
                    {
                        n += Convert.ToInt32(name.Substring(5, name.Length - 5));
                    }
                }
                break;
            }
            // Skills: Affinity+
            if (affin != Affinities.None && Constants.Support.AFFINITY_GROWTHS[affin][0].Contains(i))
            {
                foreach (int skill_id in growth_skills.Where(x => Global.data_skills[x].Abstract.substring(0, 7) == "AFFIN%+"))
                {
                    // Add skill amount to positive affinity stats
                    double str_test;
                    string name = Global.data_skills[skill_id].Abstract;
                    if (double.TryParse(name.substring(7, name.Length - 7), out str_test))
                    {
                        n += Convert.ToInt32(name.Substring(7, name.Length - 7));
                    }
                }
            }
            else if (affin != Affinities.None && Constants.Support.AFFINITY_GROWTHS[affin][1].Contains(i))
            {
                foreach (int skill_id in growth_skills.Where(x => Global.data_skills[x].Abstract.substring(0, 7) == "AFFIN%+"))
                {
                    // Remove half skill amount to negative affinity stats
                    double str_test;
                    string name = Global.data_skills[skill_id].Abstract;
                    if (double.TryParse(name.substring(7, name.Length - 7), out str_test))
                    {
                        n -= Convert.ToInt32(name.Substring(7, name.Length - 7)) / 2;
                    }
                }
            }

            return(n);
        }