diff --git a/AOW4/Components/Layout/NavMenu.razor b/AOW4/Components/Layout/NavMenu.razor index 6730c4c..f1dffab 100644 --- a/AOW4/Components/Layout/NavMenu.razor +++ b/AOW4/Components/Layout/NavMenu.razor @@ -25,6 +25,12 @@ Weather + + diff --git a/AOW4/Components/Pages/MagicMaterialsReference.razor b/AOW4/Components/Pages/MagicMaterialsReference.razor new file mode 100644 index 0000000..34ec953 --- /dev/null +++ b/AOW4/Components/Pages/MagicMaterialsReference.razor @@ -0,0 +1,98 @@ +@page "/references/magic-materials" +@using AOW4.Data + +
+

Magic Materials Reference

+

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

+ +
+ + + + + + + + + + + + + + @foreach (var material in MagicMaterialsData.RawData) + { + + + + + + + + + + } + +
NameCategoryAnnex ResourcesGlobal BonusInfusion 1Infusion 2Infusion 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) : "—"; + } +} + + diff --git a/AOW4/Data/SectionData.cs b/AOW4/Data/SectionData.cs index 663bb66..8a22184 100644 --- a/AOW4/Data/SectionData.cs +++ b/AOW4/Data/SectionData.cs @@ -26,7 +26,12 @@ public static class SectionsData Description = "Reference materials and documentation", Links = new List { - // Add reference links here in the future + new SectionLink + { + Title = "Magic Materials Reference", + Url = "/references/magic-materials", + Description = "View the magic material dataset and bonuses in a reference table." + } } }, new Section diff --git a/docs/.obsidian/workspace.json b/docs/.obsidian/workspace.json index f98ec3e..e53e45b 100644 --- a/docs/.obsidian/workspace.json +++ b/docs/.obsidian/workspace.json @@ -51,12 +51,12 @@ "state": { "type": "markdown", "state": { - "file": "Magic Material Data.md", + "file": "Collect Data.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "Magic Material Data" + "title": "Collect Data" } }, { @@ -170,7 +170,7 @@ } ], "direction": "horizontal", - "width": 332.5 + "width": 200 }, "right": { "id": "bfd5504e61304ea1", @@ -287,18 +287,19 @@ }, "active": "303f63f445fc3254", "lastOpenFiles": [ + "_Tasks Kanban.base", "_Plan.canvas", + "Magic Material Data.md", + "Magic Materials Reference.md", "Mobile App.md", "Desktop App.md", "Server App.md", "Client App.md", "agent.md.md", - "Magic Material Data.md", "Basic Province Improvement Data.md", "Collect Data.md", "Resource Node Data.md", "Load Game Data Into Build Calculator.md", - "_Tasks Kanban.base", "Province.md", "Overview.md", "Forge.md", @@ -312,7 +313,6 @@ "Learning Pages.md", "Home Page.md", "Plan Basic Pages.md", - "Reference Pages.md", - "Resources.md" + "Reference Pages.md" ] } \ No newline at end of file diff --git a/docs/Collect Data.md b/docs/Collect Data.md index 7e5da20..591ba50 100644 --- a/docs/Collect Data.md +++ b/docs/Collect Data.md @@ -4,10 +4,11 @@ status: Working On --- - [[Terrain Data]] - [[Basic Province Improvement Data]] +- Province Improvement Data (add to basic then delete this line) - [[Resource Node Data]] - [[Magic Material Data]] + - Building Data -- Province Improvement Data - Tome Data diff --git a/docs/Magic Materials Reference.md b/docs/Magic Materials Reference.md new file mode 100644 index 0000000..58fc75a --- /dev/null +++ b/docs/Magic Materials Reference.md @@ -0,0 +1,21 @@ +# Magic Materials Reference + +This page shows the new `MagicMaterial` data captured by `AOW4/Data/MagicMaterial.cs` and populated in `AOW4/Data/MagicMaterialsData.cs`. + +The table below summarizes each material, its category, annex resources, global bonus, and the first infusion effect block. + +| Name | Category | Annex Resources | Global Bonus | Infusion 1 | +|---|---|---|---|---| +| Arcanum Ore | Ore | +10 Production
+10 Mana | -25% Hurry Recruitment Cost | Inflict Sundered Defense
Power Cleave
Support - Bolstered Defense
Reinforced
+2 Defense | +| Focus Crystals | Ore | +10 Gold
+10 Knowledge | +10% Unit Experience Gain | Retaliator +50%
+1 Range
Inflict Marked
Damage Reflection 30%
+20% Accuracy | +| Fireforge Stone | Ore | +20 Production | -20% Unit Draft Cost | Fire Damage
+20% Critical Damage
Inflict Burning
Support - Strengthened
Lesser Fire Shield | +| Blood Glass | SunlessOre | +20 Draft | +5 HP regeneration (on the world map) | Greater Inflict Bleed
Lifedrinker
Blood Sigil | +| Archon Blood | Liquid | +20 Mana | +15 Combat Casting Points | Frost Damage
Infecting
Assassinate
Life Steal
Lesser Frost Shield | +| Astral Dew | Liquid | +10 Mana
+10 Knowledge | +15 World Map Casting Points | Lightning Damage
Inflict Status Vulnerability
Inflict Sundered Resistance
Support - Bolstered Resistance
Lesser Lightning Shield | +| Tranquility Pool | Liquid | +20 Knowledge | -10% Knowledge research cost for spells | Inflict Slowed
Inflict Weakened
Inflict Wet
Support - Status Protection
Lesser Spirit Shield | +| Haste Berries | Plant | +20 Draft | -2 turns to found, absorb or migrate cities | Frenzy
Inflict Distracted
Swift
Wind Barrier
Conjure Animal | +| Silvertongue Fruit | Plant | +10 Food
+10 Draft | +1 Allegiance from Whispering Stones | Blight Damage
Inflict Condemned
Inflict Poisoned
Support - Regeneration
Lesser Blight Shield | +| Rainbow Clover | Plant | +10 Food
+10 Stability | +100 Relations with Free Cities and Rulers | Spirit Damage
+2 Spirit Resistance
Zeal
Army Recuperation | +| Void Stones | VoidStone | +30 Mana | +2 Allegiance per turn with discovered Umbral Dwellings | Boon Stealing
Cleansing Fire
Army: Umbral Malady Immunity | + +> For the full data model and raw source values, see `docs/Magic Material Data.md`.