private void SetSignatureButton_Awake(On.SetSignatureButton.orig_Awake orig, SetSignatureButton self) { var buttonField = self.GetType().GetField("button", BindingFlags.NonPublic | BindingFlags.Instance); buttonField.SetValue(self, self.GetComponent <Button>()); var button = (Button)buttonField.GetValue(self); button.onClick.AddListener(delegate() { if (self.gameObject.activeInHierarchy && button.interactable && LiteSingleton <CharacterSheetInfoPanel> .Singleton.SelectedSkill != null) { var modifier = GetCharacterCreationModifierForSkillType(LiteSingleton <CharacterSheetInfoPanel> .Singleton.SelectedSkill.GetSkillType()); if (modifier != null && modifier.Amount > 1) { modifier.Amount--; LiteSingleton <PlayerCharacter> .Singleton.SkillPoints++; SingletonComponent <CharsheetView> .Singleton.character.Recalc(); SingletonComponent <CharsheetView> .Singleton.NotifyActivation(); } } }); }
private GenericTooltipData SetSignatureButton_GetTooltipData(On.SetSignatureButton.orig_GetTooltipData orig, SetSignatureButton self) { var skillType = LiteSingleton <CharacterSheetInfoPanel> .Singleton.SelectedSkill.GetSkillType(); var modifier = GetCharacterCreationModifierForSkillType(skillType); if (modifier != null) { if (modifier.Amount > 1) { return(new GenericTooltipData { Title = "Decrease " + Skill.SkillTypeToLocalizedName(skillType), Description = "Click to lower " + Skill.SkillTypeToLocalizedName(skillType) + "'s base value by 1", NumericInfo = "" }); } else { return(new GenericTooltipData { Title = "Cannot decrease " + Skill.SkillTypeToLocalizedName(skillType), Description = "Cannot lower " + Skill.SkillTypeToLocalizedName(skillType) + "'s base value below 1", NumericInfo = "" }); } } else { return(orig(self)); } }