public void Constructor_ConstitutionBelowBase_HpDecreased() { // ARRANGE const int PERSON_HP = 3; const int EXPECTED_HP = PERSON_HP - 2; const int CONSTITUTION_BASE = 10; const int CONSTITUTION_VALUE = CONSTITUTION_BASE - 1; var personScheme = CreatePersonScheme(); var survivalRandomSource = CreateSurvivalRandomSource(); personScheme.Hp = PERSON_HP; var attributesModuleMock = new Mock <IAttributesModule>(); attributesModuleMock.Setup(x => x.GetAttribute(PersonAttributeType.Constitution)) .Returns(new PersonAttribute(PersonAttributeType.Constitution, CONSTITUTION_VALUE)); var attributesModule = attributesModuleMock.Object; // ACT var survivalData = new HumanSurvivalModule(personScheme, survivalRandomSource, attributesModule); // ASSERT survivalData.Stats.Single(x => x.Type == SurvivalStatType.Health).Value.Should().Be(EXPECTED_HP); }
public int Update_ModifiedDownPass_StatDownCorrectly(int statDownPass, int downPassRoll) { // ARRANGE const int STAT_RATE = 1; const int MIN_STAT_VALUE = 0; const int MAX_STAT_VALUE = 1; const int START_STAT_VALUE = MAX_STAT_VALUE; const SurvivalStatType STAT_TYPE = SurvivalStatType.Satiety; var survivalRandomSourceMock = new Mock <ISurvivalRandomSource>(); survivalRandomSourceMock.Setup(x => x.RollSurvival(It.IsAny <SurvivalStat>())) .Returns(downPassRoll); var survivalRandomSource = survivalRandomSourceMock.Object; var survivalStats = new[] { new SurvivalStat(START_STAT_VALUE, MIN_STAT_VALUE, MAX_STAT_VALUE) { Type = STAT_TYPE, Rate = STAT_RATE, DownPassRoll = statDownPass } }; var survivalData = new HumanSurvivalModule(survivalStats, survivalRandomSource); // ACT survivalData.Update(); // ASSERT return(survivalStats[0].Value); }
public IPerson Create(string personSchemeSid, IFraction fraction) { var personScheme = _schemeService.GetScheme <IPersonScheme>(personSchemeSid); var person = new HumanPerson(personScheme, fraction); var attributes = new[] { new PersonAttribute(PersonAttributeType.PhysicalStrength, 10), new PersonAttribute(PersonAttributeType.Dexterity, 10), new PersonAttribute(PersonAttributeType.Perception, 10), new PersonAttribute(PersonAttributeType.Constitution, 10) }; var attributesModule = new AttributesModule(attributes); person.AddModule(attributesModule); var inventoryModule = new InventoryModule(); person.AddModule(inventoryModule); var equipmentModule = new EquipmentModule(personScheme.Slots); person.AddModule(equipmentModule); var сonditionModule = new ConditionsModule(); person.AddModule(сonditionModule); var evolutionModule = new EvolutionModule(_schemeService); person.AddModule(evolutionModule); var survivalModule = new HumanSurvivalModule(personScheme, _survivalRandomSource, attributesModule, сonditionModule, evolutionModule, equipmentModule); person.AddModule(survivalModule); var defaultActScheme = _schemeService.GetScheme <ITacticalActScheme>(person.Scheme.DefaultActs.First()); var defaultActSchemes = new[] { defaultActScheme }; var combatActModule = new CombatActModule( defaultActSchemes, equipmentModule, сonditionModule, evolutionModule); person.AddModule(combatActModule); var combatStatsModule = new CombatStatsModule(evolutionModule, equipmentModule); person.AddModule(combatStatsModule); var diseaseModule = new DiseaseModule(сonditionModule); person.AddModule(diseaseModule); return(person); }
private static ISurvivalModule CreateSurvivalData(IPersonScheme personScheme, ISurvivalRandomSource survivalRandomSource) { var attributesModuleMock = new Mock <IAttributesModule>(); var attributesModule = attributesModuleMock.Object; var survivalData = new HumanSurvivalModule(personScheme, survivalRandomSource, attributesModule); return(survivalData); }
public IPerson Create(string personSchemeSid) { var personScheme = _schemeService.GetScheme <IPersonScheme>(personSchemeSid); var person = new HumanPerson(personScheme); var attributeModule = RollAndAddPersonAttributesToPerson(person); var movingModule = new MovingModule(attributeModule); person.AddModule(movingModule); var inventoryModule = new InventoryModule(); person.AddModule(inventoryModule); var equipmentModule = new EquipmentModule(personScheme.Slots); person.AddModule(equipmentModule); var effectsModule = new EffectsModule(); person.AddModule(effectsModule); var evolutionModule = new EvolutionModule(_schemeService); person.AddModule(evolutionModule); RollTraitPerks(evolutionModule); var survivalModule = new HumanSurvivalModule(personScheme, _survivalRandomSource, attributeModule, effectsModule, evolutionModule, equipmentModule) { PlayerEventLogService = PlayerEventLogService }; person.AddModule(survivalModule); RollStartEquipment(inventoryModule, person); var defaultActScheme = _schemeService.GetScheme <ITacticalActScheme>(person.Scheme.DefaultAct); var combatActModule = new CombatActModule(defaultActScheme, equipmentModule, effectsModule, evolutionModule); person.AddModule(combatActModule); var combatStatsModule = new CombatStatsModule(evolutionModule, equipmentModule); person.AddModule(combatStatsModule); var diseaseModule = new DiseaseModule(); person.AddModule(diseaseModule); person.PlayerEventLogService = PlayerEventLogService; return(person); }
public IPerson Create(string personSchemeSid, IFraction fraction) { var personScheme = SchemeService.GetScheme <IPersonScheme>(personSchemeSid); var person = new HumanPerson(personScheme, fraction); var attributeModule = RollAndAddPersonAttributesToPerson(person); var movingModule = new MovingModule(attributeModule); person.AddModule(movingModule); var inventoryModule = new InventoryModule(); person.AddModule(inventoryModule); var notNullSlots = personScheme.Slots.Select(x => x !).ToArray(); var equipmentModule = new EquipmentModule(notNullSlots); person.AddModule(equipmentModule); var effectsModule = new ConditionsModule(); person.AddModule(effectsModule); var evolutionModule = new EvolutionModule(SchemeService); person.AddModule(evolutionModule); RollTraitPerks(evolutionModule); var survivalModule = new HumanSurvivalModule(personScheme, _survivalRandomSource, attributeModule, effectsModule, evolutionModule, equipmentModule) { PlayerEventLogService = PlayerEventLogService }; person.AddModule(survivalModule); RollStartEquipment(inventoryModule, person); if (person.Scheme.DefaultActs is null) { throw new InvalidOperationException(); } var defaultActSchemes = person.Scheme.DefaultActs.Select(x => SchemeService.GetScheme <ITacticalActScheme>(x)); var combatActModule = new CombatActModule( defaultActSchemes, equipmentModule, effectsModule, evolutionModule); person.AddModule(combatActModule); var combatStatsModule = new CombatStatsModule(evolutionModule, equipmentModule); person.AddModule(combatStatsModule); var diseaseModule = new DiseaseModule(effectsModule); person.AddModule(diseaseModule); var fowModule = new FowData(); person.AddModule(fowModule); person.PlayerEventLogService = PlayerEventLogService; return(person); }