@page "/references/magic-materials" @using WebAssembly.Data

Magic Materials Reference

A reference view of the `MagicMaterial` data loaded from `MagicMaterialsData.RawData`.

@foreach (var material in MagicMaterialsData.RawData) { }
Name Category Annex Resources Global Bonus Infusion 1 Infusion 2 Infusion 3
@material.Name @material.Category @FormatAnnexResources(material) @material.GlobalBonus
@material.InfusionEffects1
@material.InfusionEffects2
@material.InfusionEffects3
@code { private static string FormatAnnexResources(MagicMaterial material) { var parts = new List(); void Add(string label, int? value) { if (value.HasValue) { parts.Add(value.Value < 0 ? $"{value.Value}% {label}" : $"+{value.Value} {label}"); } } Add("Production", material.IncreaseProduction); Add("Gold", material.IncreaseGold); Add("Mana", material.IncreaseMana); Add("Draft", material.IncreaseDraft); Add("Knowledge", material.IncreaseKnowledge); Add("Food", material.IncreaseFood); Add("Stability", material.IncreaseStability); Add("Imperium", material.IncreaseImperium); Add("Allegiance from Whispering Stones", material.IncreaseAllegianceFromWhisperingStones); Add("Relations with Free Cities and Rulers", material.IncreaseRelationWithFreeCitiesAndRulers); Add("Combat Casting Points", material.IncreaseCombatCastingPoints); Add("World Map Casting Points", material.IncreaseWorldCastingPoints); Add("HP Regeneration", material.IncreaseHpRegen); Add("Hit Points", material.IncreaseHitPoints); Add("Experience Percent", material.IncreaseExperiencePercent); Add("Allegiance from Umbral Dwellings", material.IncreaseAllegianceFromUmbralDwellings); Add("Draft Cost Reduction", material.DecreaseDraftCostPercent); Add("Recruitment Cost Reduction", material.DecreaseRecruitmentCostPercent); Add("Knowledge Research Cost Reduction", material.DecreaseKnowledgeResearchCostPercent); Add("Turn Reduction to Found/Absorb/Migrate", material.DecreaseTurnsTakenToFoundAbsorbMigrateCities); return parts.Count > 0 ? string.Join("; ", parts) : "—"; } }