Refactor Magic Materials data for improved readability and maintainability
This commit is contained in:
+234
-47
@@ -1,47 +1,102 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace AOW4.Data;
|
namespace AOW4.Data;
|
||||||
|
|
||||||
public static class MagicMaterialsData
|
public static class MagicMaterialsData
|
||||||
{
|
{
|
||||||
public static readonly IReadOnlyList<MagicMaterial> RawData = new List<MagicMaterial>
|
public static readonly IReadOnlyList<MagicMaterial> RawData = new List<MagicMaterial>
|
||||||
{
|
{
|
||||||
new MagicMaterial
|
new()
|
||||||
{
|
{
|
||||||
Category = MagicMaterialCategory.Ore,
|
Category = MagicMaterialCategory.Ore,
|
||||||
Name = "Arcanum Ore",
|
Name = "Arcanum Ore",
|
||||||
Description = "Desolate, Cave Underground and Desolate Underground only. Collection effect: Rings of Binding.",
|
Description =
|
||||||
|
"Desolate, Cave Underground and Desolate Underground only. Collection effect: Rings of Binding.",
|
||||||
IncreaseProduction = 10,
|
IncreaseProduction = 10,
|
||||||
IncreaseMana = 10,
|
IncreaseMana = 10,
|
||||||
GlobalBonus = "-25% Hurry Recruitment Cost",
|
GlobalBonus = "-25% Hurry Recruitment Cost",
|
||||||
InfusionEffects1 = "Inflict Sundered Defense\nPower Cleave\nSupport - Bolstered Defense\nReinforced\n+2 Defense\nBolstering Defense\nJuggernaut\nDemolisher",
|
InfusionEffects1 = """
|
||||||
InfusionEffects2 = "Construct Slayer\nDragon Slayer\nInflict Immobilized\nPush Back\nDisplace and Replace\n+3 Defense\nSiege Master"
|
Inflict Sundered Defense
|
||||||
|
Power Cleave
|
||||||
|
Support - Bolstered Defense
|
||||||
|
Reinforced
|
||||||
|
+2 Defense
|
||||||
|
Bolstering Defense
|
||||||
|
Juggernaut
|
||||||
|
Demolisher
|
||||||
|
""",
|
||||||
|
InfusionEffects2 = """
|
||||||
|
Construct Slayer
|
||||||
|
Dragon Slayer
|
||||||
|
Inflict Immobilized
|
||||||
|
Push Back
|
||||||
|
Displace and Replace
|
||||||
|
+3 Defense
|
||||||
|
Siege Master
|
||||||
|
"""
|
||||||
},
|
},
|
||||||
new MagicMaterial
|
new()
|
||||||
{
|
{
|
||||||
Category = MagicMaterialCategory.Ore,
|
Category = MagicMaterialCategory.Ore,
|
||||||
Name = "Focus Crystals",
|
Name = "Focus Crystals",
|
||||||
Description = "Desolate, Cave Underground and Desolate Underground only. Collection effect: Rings of Binding.",
|
Description =
|
||||||
|
"Desolate, Cave Underground and Desolate Underground only. Collection effect: Rings of Binding.",
|
||||||
IncreaseGold = 10,
|
IncreaseGold = 10,
|
||||||
IncreaseKnowledge = 10,
|
IncreaseKnowledge = 10,
|
||||||
GlobalBonus = "+10% Unit Experience Gain",
|
GlobalBonus = "+10% Unit Experience Gain",
|
||||||
InfusionEffects1 = "Retaliator +50%\n+1 Range\nInflict Marked\nDamage Reflection 30%\n+20% Accuracy\nLightning Strike",
|
InfusionEffects1 = """
|
||||||
InfusionEffects2 = "Retaliator +100%\nElemental Slayer\nInflict Stunned\nHyper-Awareness\n+30% Accuracy\nInversion",
|
Retaliator +50%
|
||||||
InfusionEffects3 = "Area Damage - Line\nDamage Reflection 40%"
|
+1 Range
|
||||||
|
Inflict Marked
|
||||||
|
Damage Reflection 30%
|
||||||
|
+20% Accuracy
|
||||||
|
Lightning Strike
|
||||||
|
""",
|
||||||
|
InfusionEffects2 = """
|
||||||
|
Retaliator +100%
|
||||||
|
Elemental Slayer
|
||||||
|
Inflict Stunned
|
||||||
|
Hyper-Awareness
|
||||||
|
+30% Accuracy
|
||||||
|
Inversion
|
||||||
|
""",
|
||||||
|
InfusionEffects3 = """
|
||||||
|
Area Damage - Line
|
||||||
|
Damage Reflection 40%
|
||||||
|
"""
|
||||||
},
|
},
|
||||||
new MagicMaterial
|
new()
|
||||||
{
|
{
|
||||||
Category = MagicMaterialCategory.Ore,
|
Category = MagicMaterialCategory.Ore,
|
||||||
Name = "Fireforge Stone",
|
Name = "Fireforge Stone",
|
||||||
Description = "Desolate, Cave Underground and Desolate Underground only. Collection effect: Rings of Binding.",
|
Description =
|
||||||
|
"Desolate, Cave Underground and Desolate Underground only. Collection effect: Rings of Binding.",
|
||||||
IncreaseProduction = 20,
|
IncreaseProduction = 20,
|
||||||
DecreaseDraftCostPercent = 20,
|
DecreaseDraftCostPercent = 20,
|
||||||
GlobalBonus = "-20% Unit Draft Cost",
|
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",
|
InfusionEffects1 = """
|
||||||
InfusionEffects2 = "Arcfire Damage\n+40% Critical Damage\nPlant Slayer\nGreater Fire Shield\n+4 Fire Resistance\nIgnore 4 Status Resistance",
|
Fire Damage
|
||||||
InfusionEffects3 = "Area Damage - Blast\nInflict Insanity\nConsume Chaos\n+6 Fire Resistance"
|
+20% Critical Damage
|
||||||
|
Inflict Burning
|
||||||
|
Support - Strengthened
|
||||||
|
Lesser Fire Shield
|
||||||
|
+2 Fire Resistance
|
||||||
|
Berserker's Rage
|
||||||
|
""",
|
||||||
|
InfusionEffects2 = """
|
||||||
|
Arcfire Damage
|
||||||
|
+40% Critical Damage
|
||||||
|
Plant Slayer
|
||||||
|
Greater Fire Shield
|
||||||
|
+4 Fire Resistance
|
||||||
|
Ignore 4 Status Resistance
|
||||||
|
""",
|
||||||
|
InfusionEffects3 = """
|
||||||
|
Area Damage - Blast
|
||||||
|
Inflict Insanity
|
||||||
|
Consume Chaos
|
||||||
|
+6 Fire Resistance
|
||||||
|
"""
|
||||||
},
|
},
|
||||||
new MagicMaterial
|
new()
|
||||||
{
|
{
|
||||||
Category = MagicMaterialCategory.SunlessOre,
|
Category = MagicMaterialCategory.SunlessOre,
|
||||||
Name = "Blood Glass",
|
Name = "Blood Glass",
|
||||||
@@ -49,9 +104,13 @@ public static class MagicMaterialsData
|
|||||||
IncreaseDraft = 20,
|
IncreaseDraft = 20,
|
||||||
IncreaseHPRegen = 5,
|
IncreaseHPRegen = 5,
|
||||||
GlobalBonus = "+5 HP regeneration (on the world map)",
|
GlobalBonus = "+5 HP regeneration (on the world map)",
|
||||||
InfusionEffects1 = "Greater Inflict Bleed\nLifedrinker\nBlood Sigil"
|
InfusionEffects1 = """
|
||||||
|
Greater Inflict Bleed
|
||||||
|
Lifedrinker
|
||||||
|
Blood Sigil
|
||||||
|
"""
|
||||||
},
|
},
|
||||||
new MagicMaterial
|
new()
|
||||||
{
|
{
|
||||||
Category = MagicMaterialCategory.Liquid,
|
Category = MagicMaterialCategory.Liquid,
|
||||||
Name = "Archon Blood",
|
Name = "Archon Blood",
|
||||||
@@ -59,11 +118,34 @@ public static class MagicMaterialsData
|
|||||||
IncreaseMana = 20,
|
IncreaseMana = 20,
|
||||||
IncreaseCombatCastingPoints = 15,
|
IncreaseCombatCastingPoints = 15,
|
||||||
GlobalBonus = "+15 Combat Casting Points",
|
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",
|
InfusionEffects1 = """
|
||||||
InfusionEffects2 = "Death Damage\nInflict Diseased\n+15 Hit Points\n+4 Frost Resistance\nBolstering Regeneration\nUndying",
|
Frost Damage
|
||||||
InfusionEffects3 = "Inflict Decaying\nGravecall\nGreater Frost Shield\n+6 Frost Resistance"
|
Infecting
|
||||||
|
Assassinate
|
||||||
|
Life Steal
|
||||||
|
Lesser Frost Shield
|
||||||
|
+10 Hit Points
|
||||||
|
+2 Frost Resistance
|
||||||
|
Vicious Killer
|
||||||
|
Flanker
|
||||||
|
Raise Undead
|
||||||
|
""",
|
||||||
|
InfusionEffects2 = """
|
||||||
|
Death Damage
|
||||||
|
Inflict Diseased
|
||||||
|
+15 Hit Points
|
||||||
|
+4 Frost Resistance
|
||||||
|
Bolstering Regeneration
|
||||||
|
Undying
|
||||||
|
""",
|
||||||
|
InfusionEffects3 = """
|
||||||
|
Inflict Decaying
|
||||||
|
Gravecall
|
||||||
|
Greater Frost Shield
|
||||||
|
+6 Frost Resistance
|
||||||
|
"""
|
||||||
},
|
},
|
||||||
new MagicMaterial
|
new()
|
||||||
{
|
{
|
||||||
Category = MagicMaterialCategory.Liquid,
|
Category = MagicMaterialCategory.Liquid,
|
||||||
Name = "Astral Dew",
|
Name = "Astral Dew",
|
||||||
@@ -72,11 +154,31 @@ public static class MagicMaterialsData
|
|||||||
IncreaseKnowledge = 10,
|
IncreaseKnowledge = 10,
|
||||||
IncreaseWorldCastingPoints = 15,
|
IncreaseWorldCastingPoints = 15,
|
||||||
GlobalBonus = "+15 World Map Casting Points",
|
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",
|
InfusionEffects1 = """
|
||||||
InfusionEffects2 = "Magic Origin Slayer\nInflict Frozen\nGreater Lightning Shield\n+4 Lightning Resistance",
|
Lightning Damage
|
||||||
InfusionEffects3 = "Static Shield\n+6 Lightning Resistance\nPass Through\nAstral Membrane"
|
Inflict Status Vulnerability
|
||||||
|
Inflict Sundered Resistance
|
||||||
|
Support - Bolstered Resistance
|
||||||
|
Lesser Lightning Shield
|
||||||
|
Warded
|
||||||
|
+2 Lightning Resistance
|
||||||
|
Slip Away
|
||||||
|
Casting Points +20
|
||||||
|
""",
|
||||||
|
InfusionEffects2 = """
|
||||||
|
Magic Origin Slayer
|
||||||
|
Inflict Frozen
|
||||||
|
Greater Lightning Shield
|
||||||
|
+4 Lightning Resistance
|
||||||
|
""",
|
||||||
|
InfusionEffects3 = """
|
||||||
|
Static Shield
|
||||||
|
+6 Lightning Resistance
|
||||||
|
Pass Through
|
||||||
|
Astral Membrane
|
||||||
|
"""
|
||||||
},
|
},
|
||||||
new MagicMaterial
|
new()
|
||||||
{
|
{
|
||||||
Category = MagicMaterialCategory.Liquid,
|
Category = MagicMaterialCategory.Liquid,
|
||||||
Name = "Tranquility Pool",
|
Name = "Tranquility Pool",
|
||||||
@@ -84,11 +186,33 @@ public static class MagicMaterialsData
|
|||||||
IncreaseKnowledge = 20,
|
IncreaseKnowledge = 20,
|
||||||
DecreaseKnowledgeResearchCostPercent = 10,
|
DecreaseKnowledgeResearchCostPercent = 10,
|
||||||
GlobalBonus = "-10% Knowledge research cost for spells",
|
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",
|
InfusionEffects1 = """
|
||||||
InfusionEffects2 = "Celestial Slayer\nUndead Slayer\n+3 Resistance\n+3 Status Resistance\nAttunement: Fortune",
|
Inflict Slowed
|
||||||
InfusionEffects3 = "Area Damage - Cascade\nStatus Effect Immunity\nResurrection"
|
Inflict Weakened
|
||||||
|
Inflict Wet
|
||||||
|
Support - Status Protection
|
||||||
|
Lesser Spirit Shield
|
||||||
|
+2 Resistance
|
||||||
|
+2 Status Resistance
|
||||||
|
Attunement: Star Blades
|
||||||
|
Bolstering Resistance
|
||||||
|
Slippery
|
||||||
|
Hindering Blizzard
|
||||||
|
""",
|
||||||
|
InfusionEffects2 = """
|
||||||
|
Celestial Slayer
|
||||||
|
Undead Slayer
|
||||||
|
+3 Resistance
|
||||||
|
+3 Status Resistance
|
||||||
|
Attunement: Fortune
|
||||||
|
""",
|
||||||
|
InfusionEffects3 = """
|
||||||
|
Area Damage - Cascade
|
||||||
|
Status Effect Immunity
|
||||||
|
Resurrection
|
||||||
|
"""
|
||||||
},
|
},
|
||||||
new MagicMaterial
|
new()
|
||||||
{
|
{
|
||||||
Category = MagicMaterialCategory.Plant,
|
Category = MagicMaterialCategory.Plant,
|
||||||
Name = "Haste Berries",
|
Name = "Haste Berries",
|
||||||
@@ -96,11 +220,29 @@ public static class MagicMaterialsData
|
|||||||
IncreaseDraft = 20,
|
IncreaseDraft = 20,
|
||||||
DecreaseTurnsTakenToFoundAbsorbMigrateCities = 2,
|
DecreaseTurnsTakenToFoundAbsorbMigrateCities = 2,
|
||||||
GlobalBonus = "-2 turns to found, absorb or migrate cities",
|
GlobalBonus = "-2 turns to found, absorb or migrate cities",
|
||||||
InfusionEffects1 = "Frenzy\nInflict Distracted\nSwift\nWind Barrier\nConjure Animal",
|
InfusionEffects1 = """
|
||||||
InfusionEffects2 = "Extra Retaliation\nGiant Slayer\nInflict Blinded\nWhirlwind\nDefensive Masters\nVery Fast Movement\nKilling Momentum\nAnimate Flora",
|
Frenzy
|
||||||
InfusionEffects3 = "Area Damage - Chain\nPolymorph"
|
Inflict Distracted
|
||||||
|
Swift
|
||||||
|
Wind Barrier
|
||||||
|
Conjure Animal
|
||||||
|
""",
|
||||||
|
InfusionEffects2 = """
|
||||||
|
Extra Retaliation
|
||||||
|
Giant Slayer
|
||||||
|
Inflict Blinded
|
||||||
|
Whirlwind
|
||||||
|
Defensive Masters
|
||||||
|
Very Fast Movement
|
||||||
|
Killing Momentum
|
||||||
|
Animate Flora
|
||||||
|
""",
|
||||||
|
InfusionEffects3 = """
|
||||||
|
Area Damage - Chain
|
||||||
|
Polymorph
|
||||||
|
"""
|
||||||
},
|
},
|
||||||
new MagicMaterial
|
new()
|
||||||
{
|
{
|
||||||
Category = MagicMaterialCategory.Plant,
|
Category = MagicMaterialCategory.Plant,
|
||||||
Name = "Silvertongue Fruit",
|
Name = "Silvertongue Fruit",
|
||||||
@@ -109,11 +251,33 @@ public static class MagicMaterialsData
|
|||||||
IncreaseDraft = 10,
|
IncreaseDraft = 10,
|
||||||
IncreaseAllegianceFromWhisperingStones = 1,
|
IncreaseAllegianceFromWhisperingStones = 1,
|
||||||
GlobalBonus = "+1 Allegiance from Whispering Stones",
|
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",
|
InfusionEffects1 = """
|
||||||
InfusionEffects2 = "Hero Slayer\nInflict Despairing\nInflict Taunted\nGreater Blight Shield\n+4 Blight Resistance\nArmy Maintenance",
|
Blight Damage
|
||||||
InfusionEffects3 = "+6 Blight Resistance\nDomination\nSummon Spider Monarch"
|
Inflict Condemned
|
||||||
|
Inflict Poisoned
|
||||||
|
Support - Regeneration
|
||||||
|
Lesser Blight Shield
|
||||||
|
+2 Blight Resistance
|
||||||
|
Inspiring Killer
|
||||||
|
Universal Camouflage
|
||||||
|
Army Trainer
|
||||||
|
Summon Spider
|
||||||
|
""",
|
||||||
|
InfusionEffects2 = """
|
||||||
|
Hero Slayer
|
||||||
|
Inflict Despairing
|
||||||
|
Inflict Taunted
|
||||||
|
Greater Blight Shield
|
||||||
|
+4 Blight Resistance
|
||||||
|
Army Maintenance
|
||||||
|
""",
|
||||||
|
InfusionEffects3 = """
|
||||||
|
+6 Blight Resistance
|
||||||
|
Domination
|
||||||
|
Summon Spider Monarch
|
||||||
|
"""
|
||||||
},
|
},
|
||||||
new MagicMaterial
|
new()
|
||||||
{
|
{
|
||||||
Category = MagicMaterialCategory.Plant,
|
Category = MagicMaterialCategory.Plant,
|
||||||
Name = "Rainbow Clover",
|
Name = "Rainbow Clover",
|
||||||
@@ -122,11 +286,25 @@ public static class MagicMaterialsData
|
|||||||
IncreaseStability = 10,
|
IncreaseStability = 10,
|
||||||
IncreaseRelationWithFreeCitiesAndRulers = 100,
|
IncreaseRelationWithFreeCitiesAndRulers = 100,
|
||||||
GlobalBonus = "+100 Relations with Free Cities and Rulers",
|
GlobalBonus = "+100 Relations with Free Cities and Rulers",
|
||||||
InfusionEffects1 = "Spirit Damage\n+2 Spirit Resistance\nZeal\nArmy Recuperation",
|
InfusionEffects1 = """
|
||||||
InfusionEffects2 = "Radiant Damage\n+20% Critical Hit chance\nFiend Slayer\n+4 Spirit Resistance",
|
Spirit Damage
|
||||||
InfusionEffects3 = "+30% Critical Hit chance\n+6 Spirit Resistance\nMass Heal"
|
+2 Spirit Resistance
|
||||||
|
Zeal
|
||||||
|
Army Recuperation
|
||||||
|
""",
|
||||||
|
InfusionEffects2 = """
|
||||||
|
Radiant Damage
|
||||||
|
+20% Critical Hit chance
|
||||||
|
Fiend Slayer
|
||||||
|
+4 Spirit Resistance
|
||||||
|
""",
|
||||||
|
InfusionEffects3 = """
|
||||||
|
+30% Critical Hit chance
|
||||||
|
+6 Spirit Resistance
|
||||||
|
Mass Heal
|
||||||
|
"""
|
||||||
},
|
},
|
||||||
new MagicMaterial
|
new()
|
||||||
{
|
{
|
||||||
Category = MagicMaterialCategory.VoidStone,
|
Category = MagicMaterialCategory.VoidStone,
|
||||||
Name = "Void Stones",
|
Name = "Void Stones",
|
||||||
@@ -134,9 +312,18 @@ public static class MagicMaterialsData
|
|||||||
IncreaseMana = 30,
|
IncreaseMana = 30,
|
||||||
IncreaseAllegianceFromUmbralDwellings = 2,
|
IncreaseAllegianceFromUmbralDwellings = 2,
|
||||||
GlobalBonus = "+2 Allegiance per turn with discovered Umbral Dwellings",
|
GlobalBonus = "+2 Allegiance per turn with discovered Umbral Dwellings",
|
||||||
InfusionEffects1 = "Boon Stealing\nCleansing Fire\nArmy: Umbral Malady Immunity",
|
InfusionEffects1 = """
|
||||||
InfusionEffects2 = "Splitterling Infection\nSummon Umbral Demon",
|
Boon Stealing
|
||||||
InfusionEffects3 = "True Damage"
|
Cleansing Fire
|
||||||
|
Army: Umbral Malady Immunity
|
||||||
|
""",
|
||||||
|
InfusionEffects2 = """
|
||||||
|
Splitterling Infection
|
||||||
|
Summon Umbral Demon
|
||||||
|
""",
|
||||||
|
InfusionEffects3 = """
|
||||||
|
True Damage
|
||||||
|
"""
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user