private void WriteRarity(XmlWriter writer, HeroItemDescriptor descriptor) { writer.WriteStartElement("Rarity"); writer.WriteAttributeString("Name", descriptor.Rarity.Name.ToString()); WriteDepthRanges(writer, descriptor.Rarity.DropCriteria); writer.WriteEndElement(); }
private void WriteDescriptor(XmlWriter writer, HeroItem item, HeroItemDescriptor descriptor) { writer.WriteStartElement("SimulationDescriptor"); writer.WriteAttributeString("Name", descriptor.GetName(item.Name)); writer.WriteAttributeString("Type", descriptor.GetType(item.Name)); WriteModifiers(writer, item, descriptor); writer.WriteEndElement(); }
private void ForgeNewAttributes(HeroItem newItem, HeroItemDescriptor descriptor) { var itemLevel = ModRandom.Next(0, 2) + descriptor.Rarity.Level; var engine = new LevelUpEngine(descriptor.Modifiers); if (!engine.CanLevelUp()) { return; } for (var i = 0; i < itemLevel;) { if (engine.TryToLevelUp()) { i++; } } descriptor.For(TargetProperty.Cost, x => x.Value += itemLevel * 8); descriptor.Add(TargetProperty.SellingCost, Operation.Subtraction, itemLevel * 4); }
private void WriteModifiers(XmlWriter writer, HeroItem item, HeroItemDescriptor descriptor) { writer.WriteStartElement("SimulationModifierDescriptors"); descriptor.Modifiers.ForEach(x => WriteModifier(writer, x)); writer.WriteEndElement(); }