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",
|
"id": "330f0f204ec3f22e",
|
||||||
"type": "tabs",
|
"type": "tabs",
|
||||||
"dimension": 57.17054263565892,
|
"dimension": 79.55426356589147,
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "7a5b3ed118d43e9a",
|
"id": "7a5b3ed118d43e9a",
|
||||||
@@ -32,14 +32,17 @@
|
|||||||
"id": "a152291798e86a03",
|
"id": "a152291798e86a03",
|
||||||
"type": "leaf",
|
"type": "leaf",
|
||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "canvas",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "Magic Material Data.md",
|
"file": "_Plan.canvas",
|
||||||
"mode": "source",
|
"viewState": {
|
||||||
"source": false
|
"x": -2348.621950408076,
|
||||||
|
"y": 7.869358821353444,
|
||||||
|
"zoom": -1.2248009278071696
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"icon": "lucide-file",
|
"icon": "lucide-layout-dashboard",
|
||||||
"title": "Magic Material Data"
|
"title": "_Plan"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -71,12 +74,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"currentTab": 1
|
"currentTab": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "0d0bf6ef8ed6d192",
|
"id": "0d0bf6ef8ed6d192",
|
||||||
"type": "tabs",
|
"type": "tabs",
|
||||||
"dimension": 42.82945736434108,
|
"dimension": 20.44573643410853,
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "f194521fa12ddca8",
|
"id": "f194521fa12ddca8",
|
||||||
@@ -282,16 +285,21 @@
|
|||||||
"bases:Create new base": false
|
"bases:Create new base": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"active": "a152291798e86a03",
|
"active": "303f63f445fc3254",
|
||||||
"lastOpenFiles": [
|
"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",
|
"Magic Material Data.md",
|
||||||
|
"Basic Province Improvement Data.md",
|
||||||
"Collect Data.md",
|
"Collect Data.md",
|
||||||
"Resource Node Data.md",
|
"Resource Node Data.md",
|
||||||
"Load Game Data Into Build Calculator.md",
|
"Load Game Data Into Build Calculator.md",
|
||||||
"_Tasks Kanban.base",
|
"_Tasks Kanban.base",
|
||||||
"Province.md",
|
"Province.md",
|
||||||
"_Plan.canvas",
|
|
||||||
"Overview.md",
|
"Overview.md",
|
||||||
"Forge.md",
|
"Forge.md",
|
||||||
"Find the Gold Cost Rush Formula.md",
|
"Find the Gold Cost Rush Formula.md",
|
||||||
@@ -305,11 +313,6 @@
|
|||||||
"Home Page.md",
|
"Home Page.md",
|
||||||
"Plan Basic Pages.md",
|
"Plan Basic Pages.md",
|
||||||
"Reference Pages.md",
|
"Reference Pages.md",
|
||||||
"Resources.md",
|
"Resources.md"
|
||||||
"Rush Gold Cost.md",
|
|
||||||
"Setup Test Database.md",
|
|
||||||
"Spell Data Tables.md",
|
|
||||||
"Tome Calculator.md",
|
|
||||||
"Victory Condition Information.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":"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":"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":"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":[
|
"edges":[
|
||||||
{"id":"f54d8c93d7012115","fromNode":"a10ea2bfe08eaab6","fromSide":"bottom","toNode":"be06aa9b621f72a5","toSide":"top"},
|
{"id":"f54d8c93d7012115","fromNode":"a10ea2bfe08eaab6","fromSide":"bottom","toNode":"be06aa9b621f72a5","toSide":"top"},
|
||||||
|
|||||||
Reference in New Issue
Block a user