private void RollStartEquipment(IInventoryModule inventory, HumanPerson person) { var headDropScheme = GetHeads(); FillSlot(person, headDropScheme, HEAD_SLOT_INDEX); var armorDropScheme = GetArmors(); FillSlot(person, armorDropScheme, BODY_SLOT_INDEX); var mainWeaponDropScheme = GetMainWeapons(); FillSlot(person, mainWeaponDropScheme, MAIN_HAND_SLOT_INDEX); var offWeaponDropScheme = GetOffWeapons(); FillSlot(person, offWeaponDropScheme, OFF_HAND_SLOT_INDEX); var startPropDropScheme = GetStartProps(); var startProps = _dropResolver.Resolve(new[] { startPropDropScheme }); foreach (var prop in startProps) { AddPropToInventory(inventory, prop); } AddResource(inventory, "packed-food", 1); AddResource(inventory, "water-bottle", 1); AddResource(inventory, "med-kit", 1); AddEquipment(inventory, "pick-axe"); AddEquipment(inventory, "shovel"); AddEquipment(inventory, "shotgun"); AddResource(inventory, "bullet-45", 100); }
public HumanPerson Create() { var personScheme = _schemeService.GetScheme <IPersonScheme>("human-person"); var inventory = new Inventory(); var evolutionData = new EvolutionData(_schemeService); var defaultActScheme = _schemeService.GetScheme <ITacticalActScheme>(personScheme.DefaultAct); var person = new HumanPerson(personScheme, defaultActScheme, evolutionData, _survivalRandomSource, inventory); var headDropScheme = GetHeads(); FillSlot(person, headDropScheme, HEAD_SLOT_INDEX); var armorDropScheme = GetArmors(); FillSlot(person, armorDropScheme, BODY_SLOT_INDEX); var mainWeaponDropScheme = GetMainWeapons(); FillSlot(person, mainWeaponDropScheme, MAIN_HAND_SLOT_INDEX); var offWeaponDropScheme = GetOffWeapons(); FillSlot(person, offWeaponDropScheme, OFF_HAND_SLOT_INDEX); var startPropDropScheme = GetStartProps(); var startProps = _dropResolver.Resolve(new[] { startPropDropScheme }); foreach (var prop in startProps) { AddPropToInventory(inventory, prop); } AddResource(inventory, "packed-food", 1); AddResource(inventory, "water-bottle", 1); AddResource(inventory, "med-kit", 1); return(person); }
/// <inheritdoc /> public void Mine() { if (_exhaustingCounter <= 0) { throw new InvalidOperationException("Попытка выполнить добычу в исчерпанных залежах"); } var props = _dropResolver.Resolve(new[] { _dropTableScheme }); foreach (var prop in props) { _propContainer.Content.Add(prop); _propContainer.IsActive = true; } _exhaustingCounter--; DoMined(); }
private IProp[] GenerateProps() { var props = _dropResolver.Resolve(_dropTables); return(props); }
/// <summary> /// Сделка с торговцем. /// </summary> /// <returns> /// Возвращает товар, который отдаёт торговец. /// </returns> public IProp Offer() { var goods = _dropResolver.Resolve(new[] { _goodsDropTable }); return(goods.Single()); }