private void CreateSavingThrowLabels(StatsUiParams uiParams) { void AddWidgets(Stat stat, string helpTopic, Rectangle labelRect, Rectangle valueRect) { Container.Add(new StatsLabel(stat, helpTopic, labelRect, StatsUiTexture.ButtonFORTClick, StatsUiTexture.ButtonFORTHover, uiParams )); var valueWidget = new StatsValue( obj => GetStatModifierText(obj, stat), valueRect, StatsUiTexture.ButtonFORTOutputClick, StatsUiTexture.ButtonFORTOutputHover, uiParams ); valueWidget.SetClickHandler(() => ShowSavingThrowHelp(stat)); Container.Add(valueWidget); } AddWidgets(Stat.save_fortitude, "TAG_FORTITUDE", uiParams.FortLabel, uiParams.FortValue); AddWidgets(Stat.save_reflexes, "TAG_REFLEX", uiParams.RefLabel, uiParams.RefValue); AddWidgets(Stat.save_willpower, "TAG_WILL", uiParams.WillLabel, uiParams.WillValue); }
private void CreateDefensiveLabels(StatsUiParams uiParams) { Container.Add(new StatsLabel(Stat.hp_current, "TAG_HIT_POINTS", uiParams.HpLabel, StatsUiTexture.ButtonHPClick, StatsUiTexture.ButtonHPHover, uiParams )); var hpValue = new StatsValue( GetHitPointsText, uiParams.HpValue, StatsUiTexture.ButtonHPOutputClick, StatsUiTexture.ButtonHPOutputHover, uiParams ); hpValue.SetClickHandler(() => GameSystems.Help.ShowTopic("TAG_HIT_POINTS")); hpValue.TooltipText = null; Container.Add(hpValue); Container.Add(new StatsLabel(Stat.ac, "TAG_ARMOR_CLASS", uiParams.AcLabel, StatsUiTexture.ButtonHPClick, StatsUiTexture.ButtonHPHover, uiParams )); var acValue = new StatsValue( obj => GetStatValue(obj, Stat.ac), uiParams.AcValue, StatsUiTexture.ButtonHPOutputClick, StatsUiTexture.ButtonHPOutputHover, uiParams ); acValue.SetClickHandler(ShowArmorClassHelp); Container.Add(acValue); }
private void CreateAbilityScoreLabels(StatsUiParams uiParams) { void AddLabel(Stat stat, string helpTopic, Rectangle rectangle) { Container.Add(new StatsLabel(stat, helpTopic, rectangle, StatsUiTexture.ButtonSTRClick, StatsUiTexture.ButtonSTRHover, uiParams )); } void AddScore(Stat stat, Rectangle rectangle) { var widget = new StatsValue( obj => GetAbilityScoreValue(obj, stat), rectangle, StatsUiTexture.ButtonLevelOutputClick, StatsUiTexture.ButtonLevelOutputHover, uiParams ); widget.SetClickHandler(() => ShowAbilityScoreHelp(stat)); Container.Add(widget); } void AddModifier(Stat stat, Rectangle rectangle) { var widget = new StatsValue( obj => GetStatModifierText(obj, stat), rectangle, StatsUiTexture.ButtonLevelOutputClick, StatsUiTexture.ButtonLevelOutputHover, uiParams ); widget.TooltipText = null; widget.SetClickHandler(() => { GameSystems.Help.ShowTopic("TAG_ABILITY_MODIFIERS"); }); Container.Add(widget); } AddLabel(Stat.strength, "TAG_STRENGTH", uiParams.StrLabel); AddScore(Stat.strength, uiParams.StrValue); AddModifier(Stat.str_mod, uiParams.StrBonusValue); AddLabel(Stat.dexterity, "TAG_DEXTERITY", uiParams.DexLabel); AddScore(Stat.dexterity, uiParams.DexValue); AddModifier(Stat.dex_mod, uiParams.DexBonusValue); AddLabel(Stat.constitution, "TAG_CONSTITUTION", uiParams.ConLabel); AddScore(Stat.constitution, uiParams.ConValue); AddModifier(Stat.con_mod, uiParams.ConBonusValue); AddLabel(Stat.intelligence, "TAG_INTELLIGENCE", uiParams.IntLabel); AddScore(Stat.intelligence, uiParams.IntValue); AddModifier(Stat.int_mod, uiParams.IntBonusValue); AddLabel(Stat.wisdom, "TAG_WISDOM", uiParams.WisLabel); AddScore(Stat.wisdom, uiParams.WisValue); AddModifier(Stat.wis_mod, uiParams.WisBonusValue); AddLabel(Stat.charisma, "TAG_CHARISMA", uiParams.ChaLabel); AddScore(Stat.charisma, uiParams.ChaValue); AddModifier(Stat.cha_mod, uiParams.ChaBonusValue); }
private void CreateCombatLabels(StatsUiParams uiParams) { Container.Add(new StatsLabel(Stat.initiative_bonus, "TAG_INITIATIVE", uiParams.InitLabel, StatsUiTexture.ButtonInitiativeClick, StatsUiTexture.ButtonInitiativeHover, uiParams )); var initValue = new StatsValue( obj => GetStatModifierText(obj, Stat.initiative_bonus), uiParams.InitValue, StatsUiTexture.ButtonInitiativeOutputClick, StatsUiTexture.ButtonInitiativeOutputHover, uiParams ); initValue.SetClickHandler(ShowInitiativeBonusHelp); Container.Add(initValue); Container.Add(new StatsLabel(Stat.movement_speed, "TAG_MOVEMENT_RATE", uiParams.SpeedLabel, StatsUiTexture.ButtonInitiativeClick, StatsUiTexture.ButtonInitiativeHover, uiParams )); var speedValue = new StatsValue( GetMovementSpeedText, uiParams.SpeedValue, StatsUiTexture.ButtonInitiativeOutputClick, StatsUiTexture.ButtonInitiativeOutputHover, uiParams ); speedValue.SetClickHandler(() => GameSystems.Help.ShowTopic("TAG_MOVEMENT_RATE")); speedValue.TooltipText = null; Container.Add(speedValue); // Primary Weapon Attack Bonus Container.Add(new StatsLabel(Stat.melee_attack_bonus, "TAG_COMBAT", uiParams.PrimaryAtkLabel, StatsUiTexture.ButtonInitiativeClick, StatsUiTexture.ButtonInitiativeHover, uiParams )); var primaryAtkValue = new StatsValue( GetPrimaryWeaponAttackBonus, uiParams.PrimaryAtkValue, StatsUiTexture.ButtonInitiativeOutputClick, StatsUiTexture.ButtonInitiativeOutputHover, uiParams ); primaryAtkValue.SetClickHandler(ShowPrimaryWeaponAttackBonusHelp); Container.Add(primaryAtkValue); // Secondary Weapon Attack Bonus Container.Add(new StatsLabel(Stat.ranged_attack_bonus, "TAG_COMBAT", uiParams.SecondaryAtkLabel, StatsUiTexture.ButtonInitiativeClick, StatsUiTexture.ButtonInitiativeHover, uiParams )); var secondaryAtkValue = new StatsValue( GetSecondaryWeaponAttackBonus, uiParams.SecondaryAtkValue, StatsUiTexture.ButtonInitiativeOutputClick, StatsUiTexture.ButtonInitiativeOutputHover, uiParams ); secondaryAtkValue.SetClickHandler(ShowSecondaryWeaponAttackBonusHelp); Container.Add(secondaryAtkValue); }