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; }
public MockItemFactory( CharacterSheetFactory characterSheetFactory, SectorRandomPositionFactory sectorRandomPositionFactory, ICharacterNameGenerator <Item> itemNameGenerator) { if (characterSheetFactory == null) { throw new ArgumentNullException(nameof(characterSheetFactory)); } CharacterSheetFactory = characterSheetFactory; if (sectorRandomPositionFactory == null) { throw new ArgumentNullException(nameof(sectorRandomPositionFactory)); } RandomSectorPositionGenerator = sectorRandomPositionFactory; if (itemNameGenerator == null) { throw new ArgumentNullException(nameof(itemNameGenerator)); } NameGenerator = itemNameGenerator; }
protected override Item UseConverter <TParam>(TParam parameter) { var sectorBoundaries = parameter as IGameSectorBoundaries; var randomSheet = CharacterSheetFactory.GetRandomSheet(); Console.WriteLine($"random sheet created with {randomSheet.Speed} ag & {randomSheet.Attack} atk"); var exp = Randomness.Instance.From(1, 255); var generatedPosition = Vector2.Zero; try { generatedPosition = RandomSectorPositionGenerator.Create(sectorBoundaries); } catch (Exception ex) { Console.WriteLine(ex.Message); } var item = GenerateSurvivor(randomSheet, generatedPosition); item.DisplayName = NameGenerator.Generate(item); return(item); }