Add Magic Material data structure and related documentation; create infrastructure files for client, desktop, mobile, and server apps
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
namespace AOW4.Data;
|
||||
|
||||
public enum MagicMaterialCategory
|
||||
{
|
||||
Ore,
|
||||
SunlessOre,
|
||||
Liquid,
|
||||
Plant,
|
||||
VoidStone
|
||||
}
|
||||
|
||||
public class MagicMaterial
|
||||
{
|
||||
public MagicMaterialCategory Category { get; set; }
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public string? Description { get; set; }
|
||||
public string? GlobalBonus { get; set; }
|
||||
public string? InfusionEffects1 { get; set; }
|
||||
public string? InfusionEffects2 { get; set; }
|
||||
public string? InfusionEffects3 { get; set; }
|
||||
public int? IncreaseProduction { get; set; }
|
||||
public int? IncreaseGold{ get; set; }
|
||||
public int? IncreaseMana { get; set; }
|
||||
public int? IncreaseDraft { get; set; }
|
||||
public int? IncreaseKnowledge { get; set; }
|
||||
public int? IncreaseFood { get; set; }
|
||||
public int? IncreaseStability { get; set; }
|
||||
public int? IncreaseImperium { get; set; }
|
||||
public int? IncreaseAllegianceFromWhisperingStones { get; set; }
|
||||
public int? IncreaseRelationWithFreeCitiesAndRulers { get; set; }
|
||||
public int? IncreaseCombatCastingPoints { get; set; }
|
||||
public int? IncreaseWorldCastingPoints { get; set; }
|
||||
public int? IncreaseHPRegen { get; set; }
|
||||
public int? IncreaseHitPoints { get; set; }
|
||||
public int? IncreaseExperiencePercent { get; set; }
|
||||
public int? IncreaseAllegianceFromUmbralDwellings { get; set; }
|
||||
public int? DecreaseDraftCostPercent { get; set; }
|
||||
public int? DecreaseRecruitmentCostPercent { get; set; }
|
||||
public int? DecreaseKnowledgeResearchCostPercent { get; set; }
|
||||
public int? DecreaseTurnsTakenToFoundAbsorbMigrateCities { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace AOW4.Data;
|
||||
|
||||
public static class MagicMaterialsData
|
||||
{
|
||||
public static readonly IReadOnlyList<MagicMaterial> RawData = new List<MagicMaterial>
|
||||
{
|
||||
new MagicMaterial
|
||||
{
|
||||
Category = MagicMaterialCategory.Ore,
|
||||
Name = "Arcanum Ore",
|
||||
Description = "Desolate, Cave Underground and Desolate Underground only. Collection effect: Rings of Binding.",
|
||||
IncreaseProduction = 10,
|
||||
IncreaseMana = 10,
|
||||
GlobalBonus = "-25% Hurry Recruitment Cost",
|
||||
InfusionEffects1 = "Inflict Sundered Defense\nPower Cleave\nSupport - Bolstered Defense\nReinforced\n+2 Defense\nBolstering Defense\nJuggernaut\nDemolisher",
|
||||
InfusionEffects2 = "Construct Slayer\nDragon Slayer\nInflict Immobilized\nPush Back\nDisplace and Replace\n+3 Defense\nSiege Master"
|
||||
},
|
||||
new MagicMaterial
|
||||
{
|
||||
Category = MagicMaterialCategory.Ore,
|
||||
Name = "Focus Crystals",
|
||||
Description = "Desolate, Cave Underground and Desolate Underground only. Collection effect: Rings of Binding.",
|
||||
IncreaseGold = 10,
|
||||
IncreaseKnowledge = 10,
|
||||
GlobalBonus = "+10% Unit Experience Gain",
|
||||
InfusionEffects1 = "Retaliator +50%\n+1 Range\nInflict Marked\nDamage Reflection 30%\n+20% Accuracy\nLightning Strike",
|
||||
InfusionEffects2 = "Retaliator +100%\nElemental Slayer\nInflict Stunned\nHyper-Awareness\n+30% Accuracy\nInversion",
|
||||
InfusionEffects3 = "Area Damage - Line\nDamage Reflection 40%"
|
||||
},
|
||||
new MagicMaterial
|
||||
{
|
||||
Category = MagicMaterialCategory.Ore,
|
||||
Name = "Fireforge Stone",
|
||||
Description = "Desolate, Cave Underground and Desolate Underground only. Collection effect: Rings of Binding.",
|
||||
IncreaseProduction = 20,
|
||||
DecreaseDraftCostPercent = 20,
|
||||
GlobalBonus = "-20% Unit Draft Cost",
|
||||
InfusionEffects1 = "Fire Damage\n+20% Critical Damage\nInflict Burning\nSupport - Strengthened\nLesser Fire Shield\n+2 Fire Resistance\nBerserker's Rage",
|
||||
InfusionEffects2 = "Arcfire Damage\n+40% Critical Damage\nPlant Slayer\nGreater Fire Shield\n+4 Fire Resistance\nIgnore 4 Status Resistance",
|
||||
InfusionEffects3 = "Area Damage - Blast\nInflict Insanity\nConsume Chaos\n+6 Fire Resistance"
|
||||
},
|
||||
new MagicMaterial
|
||||
{
|
||||
Category = MagicMaterialCategory.SunlessOre,
|
||||
Name = "Blood Glass",
|
||||
Description = "Sunless Terrain only. Counts as Ore.",
|
||||
IncreaseDraft = 20,
|
||||
IncreaseHPRegen = 5,
|
||||
GlobalBonus = "+5 HP regeneration (on the world map)",
|
||||
InfusionEffects1 = "Greater Inflict Bleed\nLifedrinker\nBlood Sigil"
|
||||
},
|
||||
new MagicMaterial
|
||||
{
|
||||
Category = MagicMaterialCategory.Liquid,
|
||||
Name = "Archon Blood",
|
||||
Description = "Arctic, Highlands and Arctic Underground only. Collection effect: Cosmoflux Elixir.",
|
||||
IncreaseMana = 20,
|
||||
IncreaseCombatCastingPoints = 15,
|
||||
GlobalBonus = "+15 Combat Casting Points",
|
||||
InfusionEffects1 = "Frost Damage\nInfecting\nAssassinate\nLife Steal\nLesser Frost Shield\n+10 Hit Points\n+2 Frost Resistance\nVicious Killer\nFlanker\nRaise Undead",
|
||||
InfusionEffects2 = "Death Damage\nInflict Diseased\n+15 Hit Points\n+4 Frost Resistance\nBolstering Regeneration\nUndying",
|
||||
InfusionEffects3 = "Inflict Decaying\nGravecall\nGreater Frost Shield\n+6 Frost Resistance"
|
||||
},
|
||||
new MagicMaterial
|
||||
{
|
||||
Category = MagicMaterialCategory.Liquid,
|
||||
Name = "Astral Dew",
|
||||
Description = "Arctic, Highlands and Arctic Underground only. Collection effect: Cosmoflux Elixir.",
|
||||
IncreaseMana = 10,
|
||||
IncreaseKnowledge = 10,
|
||||
IncreaseWorldCastingPoints = 15,
|
||||
GlobalBonus = "+15 World Map Casting Points",
|
||||
InfusionEffects1 = "Lightning Damage\nInflict Status Vulnerability\nInflict Sundered Resistance\nSupport - Bolstered Resistance\nLesser Lightning Shield\nWarded\n+2 Lightning Resistance\nSlip Away\nCasting Points +20",
|
||||
InfusionEffects2 = "Magic Origin Slayer\nInflict Frozen\nGreater Lightning Shield\n+4 Lightning Resistance",
|
||||
InfusionEffects3 = "Static Shield\n+6 Lightning Resistance\nPass Through\nAstral Membrane"
|
||||
},
|
||||
new MagicMaterial
|
||||
{
|
||||
Category = MagicMaterialCategory.Liquid,
|
||||
Name = "Tranquility Pool",
|
||||
Description = "Arctic, Highlands and Arctic Underground only. Collection effect: Cosmoflux Elixir.",
|
||||
IncreaseKnowledge = 20,
|
||||
DecreaseKnowledgeResearchCostPercent = 10,
|
||||
GlobalBonus = "-10% Knowledge research cost for spells",
|
||||
InfusionEffects1 = "Inflict Slowed\nInflict Weakened\nInflict Wet\nSupport - Status Protection\nLesser Spirit Shield\n+2 Resistance\n+2 Status Resistance\nAttunement: Star Blades\nBolstering Resistance\nSlippery\nHindering Blizzard",
|
||||
InfusionEffects2 = "Celestial Slayer\nUndead Slayer\n+3 Resistance\n+3 Status Resistance\nAttunement: Fortune",
|
||||
InfusionEffects3 = "Area Damage - Cascade\nStatus Effect Immunity\nResurrection"
|
||||
},
|
||||
new MagicMaterial
|
||||
{
|
||||
Category = MagicMaterialCategory.Plant,
|
||||
Name = "Haste Berries",
|
||||
Description = "Desert, Temperate and Tropical only. Collection effect: Imperial Essence.",
|
||||
IncreaseDraft = 20,
|
||||
DecreaseTurnsTakenToFoundAbsorbMigrateCities = 2,
|
||||
GlobalBonus = "-2 turns to found, absorb or migrate cities",
|
||||
InfusionEffects1 = "Frenzy\nInflict Distracted\nSwift\nWind Barrier\nConjure Animal",
|
||||
InfusionEffects2 = "Extra Retaliation\nGiant Slayer\nInflict Blinded\nWhirlwind\nDefensive Masters\nVery Fast Movement\nKilling Momentum\nAnimate Flora",
|
||||
InfusionEffects3 = "Area Damage - Chain\nPolymorph"
|
||||
},
|
||||
new MagicMaterial
|
||||
{
|
||||
Category = MagicMaterialCategory.Plant,
|
||||
Name = "Silvertongue Fruit",
|
||||
Description = "Desert, Temperate and Tropical only. Collection effect: Imperial Essence.",
|
||||
IncreaseFood = 10,
|
||||
IncreaseDraft = 10,
|
||||
IncreaseAllegianceFromWhisperingStones = 1,
|
||||
GlobalBonus = "+1 Allegiance from Whispering Stones",
|
||||
InfusionEffects1 = "Blight Damage\nInflict Condemned\nInflict Poisoned\nSupport - Regeneration\nLesser Blight Shield\n+2 Blight Resistance\nInspiring Killer\nUniversal Camouflage\nArmy Trainer\nSummon Spider",
|
||||
InfusionEffects2 = "Hero Slayer\nInflict Despairing\nInflict Taunted\nGreater Blight Shield\n+4 Blight Resistance\nArmy Maintenance",
|
||||
InfusionEffects3 = "+6 Blight Resistance\nDomination\nSummon Spider Monarch"
|
||||
},
|
||||
new MagicMaterial
|
||||
{
|
||||
Category = MagicMaterialCategory.Plant,
|
||||
Name = "Rainbow Clover",
|
||||
Description = "Desert, Temperate and Tropical only. Collection effect: Imperial Essence.",
|
||||
IncreaseFood = 10,
|
||||
IncreaseStability = 10,
|
||||
IncreaseRelationWithFreeCitiesAndRulers = 100,
|
||||
GlobalBonus = "+100 Relations with Free Cities and Rulers",
|
||||
InfusionEffects1 = "Spirit Damage\n+2 Spirit Resistance\nZeal\nArmy Recuperation",
|
||||
InfusionEffects2 = "Radiant Damage\n+20% Critical Hit chance\nFiend Slayer\n+4 Spirit Resistance",
|
||||
InfusionEffects3 = "+30% Critical Hit chance\n+6 Spirit Resistance\nMass Heal"
|
||||
},
|
||||
new MagicMaterial
|
||||
{
|
||||
Category = MagicMaterialCategory.VoidStone,
|
||||
Name = "Void Stones",
|
||||
Description = "Umbral Abyss only. Collection effect: Void Ink.",
|
||||
IncreaseMana = 30,
|
||||
IncreaseAllegianceFromUmbralDwellings = 2,
|
||||
GlobalBonus = "+2 Allegiance per turn with discovered Umbral Dwellings",
|
||||
InfusionEffects1 = "Boon Stealing\nCleansing Fire\nArmy: Umbral Malady Immunity",
|
||||
InfusionEffects2 = "Splitterling Infection\nSummon Umbral Demon",
|
||||
InfusionEffects3 = "True Damage"
|
||||
}
|
||||
};
|
||||
}
|
||||
Vendored
+21
-18
@@ -10,7 +10,7 @@
|
||||
{
|
||||
"id": "330f0f204ec3f22e",
|
||||
"type": "tabs",
|
||||
"dimension": 57.17054263565892,
|
||||
"dimension": 79.55426356589147,
|
||||
"children": [
|
||||
{
|
||||
"id": "7a5b3ed118d43e9a",
|
||||
@@ -32,14 +32,17 @@
|
||||
"id": "a152291798e86a03",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"type": "canvas",
|
||||
"state": {
|
||||
"file": "Magic Material Data.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
"file": "_Plan.canvas",
|
||||
"viewState": {
|
||||
"x": -2348.621950408076,
|
||||
"y": 7.869358821353444,
|
||||
"zoom": -1.2248009278071696
|
||||
}
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Magic Material Data"
|
||||
"icon": "lucide-layout-dashboard",
|
||||
"title": "_Plan"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -71,12 +74,12 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"currentTab": 1
|
||||
"currentTab": 2
|
||||
},
|
||||
{
|
||||
"id": "0d0bf6ef8ed6d192",
|
||||
"type": "tabs",
|
||||
"dimension": 42.82945736434108,
|
||||
"dimension": 20.44573643410853,
|
||||
"children": [
|
||||
{
|
||||
"id": "f194521fa12ddca8",
|
||||
@@ -282,16 +285,21 @@
|
||||
"bases:Create new base": false
|
||||
}
|
||||
},
|
||||
"active": "a152291798e86a03",
|
||||
"active": "303f63f445fc3254",
|
||||
"lastOpenFiles": [
|
||||
"Basic Province Improvement Data.md",
|
||||
"_Plan.canvas",
|
||||
"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",
|
||||
"_Plan.canvas",
|
||||
"Overview.md",
|
||||
"Forge.md",
|
||||
"Find the Gold Cost Rush Formula.md",
|
||||
@@ -305,11 +313,6 @@
|
||||
"Home Page.md",
|
||||
"Plan Basic Pages.md",
|
||||
"Reference Pages.md",
|
||||
"Resources.md",
|
||||
"Rush Gold Cost.md",
|
||||
"Setup Test Database.md",
|
||||
"Spell Data Tables.md",
|
||||
"Tome Calculator.md",
|
||||
"Victory Condition Information.md"
|
||||
"Resources.md"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
type: Infrastructure
|
||||
---
|
||||
|
||||
|
||||
Free hosting of a static web page.
|
||||
|
||||
Easy distribution via a url
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
type: Infrastructure
|
||||
---
|
||||
|
||||
|
||||
Desktop version for easy PC viewing, and local file saving
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
type: Infrastructure
|
||||
---
|
||||
|
||||
|
||||
Mobile version for easy android viewing, and local file saving
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
type: Infrastructure
|
||||
---
|
||||
|
||||
|
||||
If for some reason I even want to support cloud storage
|
||||
|
||||
+5
-1
@@ -12,7 +12,11 @@
|
||||
{"id":"13e1923067cfcf9b","type":"file","file":"Reference Pages.md","x":-780,"y":-660,"width":400,"height":400},
|
||||
{"id":"bbbf447fc1602d59","type":"file","file":"Learning Pages.md","x":240,"y":-700,"width":400,"height":400},
|
||||
{"id":"6d7d63854782ff9e","type":"file","file":"Victory Condition Information.md","x":240,"y":-200,"width":400,"height":400},
|
||||
{"id":"bf2a479683623e4e","type":"file","file":"Building Calculator.md","x":-2720,"y":-200,"width":400,"height":400,"color":"4"}
|
||||
{"id":"bf2a479683623e4e","type":"file","file":"Building Calculator.md","x":-2720,"y":-200,"width":400,"height":400,"color":"4"},
|
||||
{"id":"2a3c90c3a40f782f","x":-3560,"y":-700,"width":400,"height":400,"color":"4","type":"file","file":"Client App.md"},
|
||||
{"id":"8aa95aadae7e59c7","x":-4000,"y":-700,"width":400,"height":400,"type":"file","file":"Server App.md"},
|
||||
{"id":"630df17b0233eeb4","x":-4000,"y":-260,"width":400,"height":400,"color":"4","type":"file","file":"Desktop App.md"},
|
||||
{"id":"b4a971cd46f77eda","x":-3560,"y":-260,"width":400,"height":400,"type":"file","file":"Mobile App.md"}
|
||||
],
|
||||
"edges":[
|
||||
{"id":"f54d8c93d7012115","fromNode":"a10ea2bfe08eaab6","fromSide":"bottom","toNode":"be06aa9b621f72a5","toSide":"top"},
|
||||
|
||||
Reference in New Issue
Block a user