private void CharsheetView_SetActiveElements(On.CharsheetView.orig_SetActiveElements orig, CharsheetView self) { orig(self); if (self.sheetMode == CharSheetMode.CREATION_SKILLS) { self.xpPanel.gameObject.SetActive(true); self.skillPointField.gameObject.SetActive(true); self.doneButton.gameObject.SetActive(LiteSingleton <PlayerCharacter> .Singleton.SkillPoints < 1 || NoSkillUpgradable()); } }
private void CharsheetView_RevertAbilities(On.CharsheetView.orig_RevertAbilities orig, CharsheetView self) { for (int i = 0; i < self.character.skills.Length; i++) { var modifier = self.character.skills[i].GetModifierOfType(ModifierType.CHARACTER_CREATION); if (modifier != null) { modifier.Amount = 1; } } LiteSingleton <PlayerCharacter> .Singleton.SkillPoints = StartingSkillPoints; orig(self); }
private void CharsheetView_InitCharacter(On.CharsheetView.orig_InitCharacter orig, CharsheetView self, bool forceInit) { if (_startingAbilityPoints == 8) { orig(self, forceInit); } else { if (!self.IsNewCharInitialized || forceInit) { self.character = CharacterSheetFactory.GetOrCreateComponent(SingletonComponent <World> .Singleton.you.gameObject); self.character.Clean(); self.unusedAbilityPool = _startingAbilityPoints; self.usedAbilityPoints = 0; self.usedSkillPoints = 0; if (self.abilityMethod == AbilityMethod.ROLL) { int allowedTotal = self.unusedAbilityPool + 4; CharacterSheetFactory.RollAbilities(self.character, allowedTotal); self.usedAbilityPoints = self.unusedAbilityPool; self.unusedAbilityPool = 0; } else if (self.abilityMethod == AbilityMethod.POINTBUY) { CharacterSheetFactory.CleanAbilities(self.character); } else { Debug.LogError("We only roll for now"); } SkillPortraitPanel.signatureSkill = SkillType.NONE; self.character.Recalc(); self.NotifyActivation(); self.GetType().GetProperty("IsNewCharInitialized").GetSetMethod(true).Invoke(self, new object[] { true }); } } LiteSingleton <PlayerCharacter> .Singleton.SkillPoints = StartingSkillPoints; }
private void CharsheetView_LevelingComplete(On.CharsheetView.orig_LevelingComplete orig, CharsheetView self) { if (self.sheetMode == CharSheetMode.CREATION_SKILLS) { var hasSavePointProperty = self.GetType().GetProperty("HasSavepoint"); hasSavePointProperty.GetSetMethod(true).Invoke(self, new object[] { false }); } orig(self); if (self.sheetMode == CharSheetMode.CREATION_SKILLS) { self.NotifyActivation(); } }