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; }
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; } }
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); }
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); }
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"; } }
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); }
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); }