public void Execute(ISystemContainer systemContainer, Map map, MapGenCommand command, Vector offset) { var coordinate = new MapCoordinate(map.MapKey, offset + command.Vector); List <IEntity> itemList = systemContainer.ItemSystem.GetSpawnableItems(); var itemGenerator = new EnchantedItemGenerator(systemContainer, itemList); var item = itemGenerator.GenerateItem(itemList, 1, systemContainer.Random); systemContainer.PositionSystem.SetPosition(item, new MapCoordinate(map.MapKey, offset + command.Vector)); }
public override IEnumerable <IEntity> GenerateShopItems(ISystemContainer systemContainer, int numberOfItems, int itemLevel, IEnumerable <IEntity> itemList, IRandom random) { var itemGenerator = new EnchantedItemGenerator(systemContainer, itemList.ToList()); var rare = RarityPicker.Rare; rare.Weight *= 3; var rarities = new List <RarityPicker> { RarityPicker.Magic, rare }; for (int i = 0; i < numberOfItems; i++) { var item = itemGenerator.TunedGenerateItem(itemList.ToList(), itemLevel, random, rarities); yield return(item); } }
public bool Apply(EventType type, IEntity sender, object eventData) { if (sender.Has <Equipped>() && sender.Has <Challenge>()) { var equippedItems = systemContainer.EquipmentSystem.GetEquippedItems(sender); var level = sender.Get <Challenge>().ChallengeRating; var gen = new EnchantedItemGenerator(systemContainer, new List <IEntity>()); foreach (var item in equippedItems) { var rarity = systemContainer.Random.PickOne(RarityPicker.RarityPickers); gen.Enchant(item, ItemClassHelper.Classify(item), level, systemContainer.Random, rarity); } } return(true); }