فهرست منبع

Data for campaign win/loss conditions. All campaigns should now have
correct conditions.
All custom conditions are now validated using schema.

Note that some of scenarios may not work due to instant win/loss, mostly
because some placeholders fail to import (Mantis #1643)

Ivan Savenko 11 سال پیش
والد
کامیت
cd8a0c01e4
3فایلهای تغییر یافته به همراه1736 افزوده شده و 1 حذف شده
  1. 1672 0
      config/mapOverrides.json
  2. 51 0
      config/schemas/mapHeader.json
  3. 13 1
      lib/mapping/CMapService.cpp

+ 1672 - 0
config/mapOverrides.json

@@ -1,2 +1,1674 @@
 {
+	"data/good1:2" : { // Griffin Cliff
+		"defeatIconIndex" : 3,
+		"defeatString" : "Lose All Your Towns and Heroes",
+		"triggeredEvents" : {
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "control", { "type" : 17 } ]
+				],
+				"effect" : {
+					"messageToSend" : "The enemy's flag flies on the dwelling of every creature. Victory is theirs!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! Your flag flies on the dwelling of every creature. Victory is yours!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 8,
+		"victoryString" : "Flag All Creature Dwellings"
+	},
+	"data/good3:2" : { // For King and Country
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [  9, 64, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 13, 63, 0 ], "type" : 34 } ]
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			},
+			"standardVictory" : {
+				"condition" : [ "standardWin" ],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! All your enemies have been defeated! Victory is yours!"
+			}
+		},
+		"victoryIconIndex" : 11,
+		"victoryString" : "Defeat All Enemies"
+	},
+
+	"data/ab:1" : { // Seeking Armageddon
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"specialDefeat" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf", [ "control", { "position" : [ 63, 65, 0 ], "type" : 34 } ] ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "The hero, %s, has suffered defeat - your quest is over!"
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "haveArtifact", { "type" : "artifact.swordOfHellfire" } ],
+					[ "haveArtifact", { "type" : "artifact.breastplateOfBrimstone" } ],
+					[ "haveArtifact", { "type" : "artifact.shieldOfTheDamned" } ]
+				],
+				"effect" : {
+					"messageToSend" : "The enemy has found the relics, and can claim victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have found the relics, and can claim victory!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 0,
+		"victoryString" : "Acquire sword, breastplate and shield"
+	},
+	"data/ab:3" : { // Maker of Sorrows
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"specialDefeat" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf", [ "control", { "position" : [ 102, 18, 0 ], "type" : 34 } ] ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "The hero, %s, has suffered defeat - your quest is over!"
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "haveArtifact", { "type" : 128 } ]
+				],
+				"effect" : {
+					"messageToSend" : "The enemy has found the %s, and can claim victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have found the %s, and can claim victory!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 0,
+		"victoryString" : "Acquire Artifact"
+	},
+	"data/ab:6" : { // To Kill A Hero
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [  7, 66, 0 ], "type" : 34 } ], // Catherine
+							[ "control", { "position" : [ 18, 68, 0 ], "type" : 34 } ], // Roland
+							[ "control", { "position" : [ 58, 12, 0 ], "type" : 34 } ]  //Gelu
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "destroy", { "position" : [ 33, 37, 0 ], "type" : 34 } ]
+				],
+				"effect" : {
+					"messageToSend" : "The hero, %s, has suffered defeat - your quest is over!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have completed your quest to defeat the enemy hero %s. Victory is yours!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 5,
+		"victoryString" : "Defeat Hero"
+	},
+	"data/ab:7" : { // Oblivion's Edge
+		"defeatIconIndex" : 2,
+		"defeatString" : "Time Expires",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [  4,  3, 0 ], "type" : 34 } ], // Gelu
+							[ "control", { "position" : [ 12, 63, 0 ], "type" : 34 } ], // Catherine
+							[ "control", { "position" : [ 63, 51, 0 ], "type" : 34 } ]  // Roland
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"specialDefeat" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "daysPassed", { "value" : 56 } ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "Alas, time has run out on your quest. All is lost."
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "transport", { "position" : [ 35, 36, 0 ], "type" : 128 } ]
+				],
+				"effect" : {
+					"messageToSend" : "The enemy has delivered the precious cargo intact and claims victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have reached your destination, precious cargo intact, and can claim victory!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 10,
+		"victoryString" : "Transport Artifact"
+	},
+	"data/slayer:0" : { // Rust Dragons
+		"defeatIconIndex" : 2,
+		"defeatString" : "Time Expires",
+		"triggeredEvents" : {
+			"heroMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf", [ "control", { "position" : [ 99, 101, 0 ], "type" : 34 } ] ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "The hero, %s, has suffered defeat - your quest is over!"
+			},
+			"specialDefeat" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "daysPassed", { "value" : 168 } ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "Alas, time has run out on your quest. All is lost."
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "control", { "type" : 53 } ]
+				],
+				"effect" : {
+					"messageToSend" : "The enemy's flag flies on every mine. Victory is theirs!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! Your flag flies on every mine. Victory is yours!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 9,
+		"victoryString" : "Flag All Mines"
+	},
+	"data/slayer:1" : { // Faerie Dragons
+		"defeatIconIndex" : 2,
+		"defeatString" : "Time Expires",
+		"triggeredEvents" : {
+			"heroMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf", [ "control", { "position" : [ 104, 61, 0 ], "type" : 34 } ] ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "The hero, %s, has suffered defeat - your quest is over!"
+			},
+			"specialDefeat" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "daysPassed", { "value" : 168 } ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "Alas, time has run out on your quest. All is lost."
+			},
+			"specialVictory" : {
+				"condition" : [ "destroy", { "position" : [ 6, 49, 0 ], "type" : 54 } ],
+				"effect" : {
+					"messageToSend" : "The enemy has beaten you to your quest to kill the fearsome beast, and claims victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have completed your quest to kill the fearsome beast, and can claim victory!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 7,
+		"victoryString" : "Defeat Monster"
+	},
+	"data/slayer:2" : { // Azure Dragons
+		"defeatIconIndex" : 2,
+		"defeatString" : "Time Expires",
+		"triggeredEvents" : {
+			"heroMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf", [ "control", { "position" : [ 88, 82, 0 ], "type" : 34 } ] ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "The hero, %s, has suffered defeat - your quest is over!"
+			},
+			"specialDefeat" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "daysPassed", { "value" : 168 } ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "Alas, time has run out on your quest. All is lost."
+			},
+			"specialVictory" : {
+				"condition" : [ "destroy", { "position" : [ 107, 3, 0 ], "type" : 54 } ],
+				"effect" : {
+					"messageToSend" : "The enemy has beaten you to your quest to kill the fearsome beast, and claims victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have completed your quest to kill the fearsome beast, and can claim victory!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 7,
+		"victoryString" : "Defeat Monster"
+	},
+	"data/slayer:3" : { // Crystal Dragons
+		"defeatIconIndex" : 2,
+		"defeatString" : "Time Expires",
+		"triggeredEvents" : {
+			"heroMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf", [ "control", { "position" : [ 23, 1, 0 ], "type" : 34 } ] ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "The hero, %s, has suffered defeat - your quest is over!"
+			},
+			"specialDefeat" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "daysPassed", { "value" : 56 } ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "Alas, time has run out on your quest. All is lost."
+			},
+			"specialVictory" : {
+				"condition" : [ "destroy", { "position" : [ 57, 61, 0 ], "type" : 54 } ],
+				"effect" : {
+					"messageToSend" : "The enemy has beaten you to your quest to kill the fearsome beast, and claims victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have completed your quest to kill the fearsome beast, and can claim victory!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 7,
+		"victoryString" : "Defeat Monster"
+	},
+	"data/festival:0" : { // For the Throne
+		"defeatIconIndex" : 2,
+		"defeatString" : "Time Expires",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [ 10, 59, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [  4, 63, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 15, 63, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 10, 66, 0 ], "type" : 34 } ]
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"specialDefeat" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "daysPassed", { "value" : 84 } ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "Alas, time has run out on your quest. All is lost."
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			},
+			"standardVictory" : {
+				"condition" : [ "standardWin" ],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! All your enemies have been defeated! Victory is yours!"
+			}
+		},
+		"victoryIconIndex" : 11,
+		"victoryString" : "Defeat All Enemies"
+	},
+	"data/festival:1" : { // Clan War
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [ 94, 60, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 93, 51, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 85, 64, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [100, 63, 0 ], "type" : 34 } ]
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			},
+			"standardVictory" : {
+				"condition" : [ "standardWin" ],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! All your enemies have been defeated! Victory is yours!"
+			}
+		},
+		"victoryIconIndex" : 11,
+		"victoryString" : "Defeat All Enemies"
+	},
+	"data/festival:2" : { // Taming of the wild
+		"defeatIconIndex" : 2,
+		"defeatString" : "Time Expires",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [ 34, 38, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 32,  7, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [  8, 63, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 65, 63, 0 ], "type" : 34 } ]
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"specialDefeat" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "daysPassed", { "value" : 112 } ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "Alas, time has run out on your quest. All is lost."
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			},
+			"specialVictory" : {
+				"condition" : [  "destroy", { "type" : 54} ],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! Area around your town is now secure!"
+			}
+		},
+		"victoryIconIndex" : 7,
+		"victoryString" : "Eliminate all hostile creatures in the area"
+	},
+	"data/festival:3" : { // Razor Claw
+		"defeatIconIndex" : 2,
+		"defeatString" : "Time Expires",
+		"triggeredEvents" : {
+			"heroMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf", [ "control", { "position" : [ 1, 3, 0 ], "type" : 34 } ] ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "The hero, %s, has suffered defeat - your quest is over!"
+			},
+			"specialDefeat" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "daysPassed", { "value" : 84 } ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "Alas, time has run out on your quest. All is lost."
+			},
+			"specialVictory" : {
+				"condition" : [ "destroy", { "position" : [ 62, 5, 1 ], "type" : 54 } ],
+				"effect" : {
+					"messageToSend" : "The enemy has beaten you to your quest to kill the fearsome beast, and claims victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have completed your quest to kill the fearsome beast, and can claim victory!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 7,
+		"victoryString" : "Defeat Monster"
+	},
+	"data/fire:0" : { // Farming Towns
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf", [ "control", { "position" : [ 69, 69, 0 ], "type" : 34 } ] ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "The hero, %s, has suffered defeat - your quest is over!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			},
+			"standardVictory" : {
+				"condition" : [ "standardWin" ],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! All your enemies have been defeated! Victory is yours!"
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[  "destroy", { "type" : 54} ]
+				],
+				"effect" : {
+					"messageToSend" : "You has been vanquished!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! Area around your lands is now secure!"
+			}
+
+		},
+		"victoryIconIndex" : 11,
+		"victoryString" : "Destroy All Creatures / Defeat All Enemies"
+	},
+	"data/fire:1" : { // March of the Undead
+		"defeatIconIndex" : 2,
+		"defeatString" : "Time Expires",
+		"triggeredEvents" : {
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "control", { "type" : 17 } ]
+				],
+				"effect" : {
+					"messageToSend" : "The enemy's flag flies on the dwelling of every creature. Victory is theirs!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! Your flag flies on the dwelling of every creature. Victory is yours!"
+			},
+			"specialDefeat" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "daysPassed", { "value" : 196 } ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "Alas, time has run out on your quest. All is lost."
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 8,
+		"victoryString" : "Flag All Creature Dwellings"
+	},
+	"data/fool:2" : { // Hurry Up and Wait
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf", [ "control", { "position" : [ 60, 45, 0 ], "type" : 34 } ] ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "The hero, %s, has suffered defeat - your quest is over!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			},
+			"standardVictory" : {
+				"condition" : [ "standardWin" ],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! All your enemies have been defeated! Victory is yours!"
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "daysPassed", { "value" : 112 } ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have survived long enough for help to arrive. Victory is yours!"
+			},
+
+		},
+		"victoryIconIndex" : 11,
+		"victoryString" : "Survive for 4 months / Defeat all enemies"
+	},
+	"data/gem:1" : { // After the Amulet
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [ 19, 60, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 17, 60, 0 ], "type" : 34 } ]
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"specialVictory" : {
+				"condition" : [ "haveArtifact", { "type" : 54 } ],
+				"effect" : {
+					"messageToSend" : "The enemy has found the %s, and can claim victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have found the %s, and can claim victory!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 0,
+		"victoryString" : "Acquire Artifact"
+	},
+	"data/gem:2" : { // Retrieving the Cowl
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [ 25, 30, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 25, 30, 0 ], "type" : 34 } ]
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "transport", { "position" : [ 9, 11, 0 ], "type" : 55 } ]
+				],
+				"effect" : {
+					"messageToSend" : "The enemy has delivered the precious cargo intact and claims victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have reached your destination, precious cargo intact, and can claim victory!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 10,
+		"victoryString" : "Transport Artifact"
+	},
+	"data/gem:3" : { // Driving for the Boots
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [ 55, 17, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 53, 17, 0 ], "type" : 34 } ]
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "transport", { "position" : [ 53, 16, 0 ], "type" : 56 } ]
+				],
+				"effect" : {
+					"messageToSend" : "The enemy has delivered the precious cargo intact and claims victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have reached your destination, precious cargo intact, and can claim victory!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 10,
+		"victoryString" : "Transport Artifact"
+	},
+	"data/crag:0" : { // Bashing Skulls
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf", [ "control", { "position" : [ 58, 70, 0 ], "type" : 34 } ] ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "The hero, %s, has suffered defeat - your quest is over!"
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "haveArtifact", { "type" : 20 } ]
+				],
+				"effect" : {
+					"messageToSend" : "The enemy has found the %s, and can claim victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have found the %s, and can claim victory!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 0,
+		"victoryString" : "Acquire Artifact"
+	},
+	"data/crag:1" : { // Black Sheep
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf", [ "control", { "position" : [ 69, 2, 0 ], "type" : 34 } ] ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "The hero, %s, has suffered defeat - your quest is over!"
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "haveArtifact", { "type" : 8 } ]
+				],
+				"effect" : {
+					"messageToSend" : "The enemy has found the %s, and can claim victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have found the %s, and can claim victory!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 0,
+		"victoryString" : "Acquire Artifact"
+	},
+	"data/crag:2" : { // A Cage in the Hand
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf", [ "control", { "position" : [ 2, 1, 0 ], "type" : 34 } ] ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "The hero, %s, has suffered defeat - your quest is over!"
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "haveArtifact", { "type" : 26 } ]
+				],
+				"effect" : {
+					"messageToSend" : "The enemy has found the %s, and can claim victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have found the %s, and can claim victory!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 0,
+		"victoryString" : "Acquire Artifact"
+	},
+	"data/crag:3" : { // Grave Robber
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf", [ "control", { "position" : [ 10, 11, 0 ], "type" : 34 } ] ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "The hero, %s, has suffered defeat - your quest is over!"
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "haveArtifact", { "type" : 14 } ]
+				],
+				"effect" : {
+					"messageToSend" : "The enemy has found the %s, and can claim victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have found the %s, and can claim victory!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 0,
+		"victoryString" : "Acquire Artifact"
+	},
+	"data/sandro:2" : { // Finneas Vilmar
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [ 56, 54, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 65, 53, 0 ], "type" : 34 } ]
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			},
+			"standardVictory" : {
+				"condition" : [ "standardWin" ],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! All your enemies have been defeated! Victory is yours!"
+			}
+		},
+		"victoryIconIndex" : 11,
+		"victoryString" : "Defeat All Enemies"
+	},
+	"data/sandro:3" : { // Duke Alarice
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [ 65, 25, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 67, 25, 0 ], "type" : 34 } ]
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			},
+			"standardVictory" : {
+				"condition" : [ "standardWin" ],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! All your enemies have been defeated! Victory is yours!"
+			}
+		},
+		"victoryIconIndex" : 11,
+		"victoryString" : "Defeat All Enemies"
+	},
+	"data/final:3" : { // Final Peace
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [ 57, 12, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 25, 11, 0 ], "type" : 34 } ]
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "destroy", { "position" : [ 8, 29, 1 ], "type" : 34 } ]
+				],
+				"effect" : {
+					"messageToSend" : "The hero, %s, has suffered defeat - your quest is over!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have completed your quest to defeat the enemy hero %s. Victory is yours!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 5,
+		"victoryString" : "Defeat Hero"
+	},
+	"data/final:4" : { // Secrets Revealed
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [ 54,  6, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 13,  6, 0 ], "type" : 34 } ]
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			},
+			"standardVictory" : {
+				"condition" : [ "standardWin" ],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! All your enemies have been defeated! Victory is yours!"
+			}
+		},
+		"victoryIconIndex" : 11,
+		"victoryString" : "Defeat All Enemies"
+	},
+	"data/final:5" : { // Agents of Vengeance
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [ 34, 10, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 36, 10, 0 ], "type" : 34 } ]
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "control", { "position" : [ 36, 67, 0 ], "type" : 98 } ]
+				],
+				"effect" : {
+					"messageToSend" : "The enemy has captured %s, and claims victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You captured %s, and are victorious!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 6,
+		"victoryString" : "Capture Town"
+	},
+	"data/final:8" : { // To Strive, To Seek
+		"defeatIconIndex" : 3,
+		"defeatString" : "Lose All Your Towns and Heroes",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [ 21, 10, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 44,  9, 0 ], "type" : 34 } ]
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "haveArtifact", { "type" : "artifact.sandalsOfTheSaint" } ],
+					[ "haveArtifact", { "type" : "artifact.celestialNecklaceOfBliss" } ],
+					[ "haveArtifact", { "type" : "artifact.helmOfHeavenlyEnlightenment" } ]
+				],
+				"effect" : {
+					"messageToSend" : "The enemy has found the relics, and can claim victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have found the relics, and can claim victory!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 0,
+		"victoryString" : "Acquire Three Artifacts"
+	},
+	"data/final:9" : { // Barbarian Brothers
+		"defeatIconIndex" : 3,
+		"defeatString" : "Lose All Your Towns and Heroes",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [ 66, 70, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 70, 66, 0 ], "type" : 34 } ]
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "haveArtifact", { "type" : "artifact.armorOfWonder" } ],
+					[ "haveArtifact", { "type" : "artifact.lionsShieldOfCourage" } ],
+					[ "haveArtifact", { "type" : "artifact.swordOfJudgement" } ]
+				],
+				"effect" : {
+					"messageToSend" : "The enemy has found the relics, and can claim victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have found the relics, and can claim victory!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 0,
+		"victoryString" : "Acquire Three Artifacts"
+	},
+	"data/final:10" : { // Union
+		"defeatIconIndex" : 3,
+		"defeatString" : "Lose All Your Towns and Heroes",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [  7, 13, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [  9, 15, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 6, 103, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 9, 105, 0 ], "type" : 34 } ]
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "standardWin" ],
+					[ "haveArtifact", { "type" : "artifact.angelicAlliance" } ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! All your enemies have been defeated and you have Angelic Alliance! Victory is yours!"
+			}
+		},
+		"victoryIconIndex" : 11,
+		"victoryString" : "Defeat All Enemies and create Angelic Alliance"
+	},
+	"data/final:11" : { // Fall of Sandro
+		"defeatIconIndex" : 2,
+		"defeatString" : "Time Expires",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf",
+						[ "allOf",
+							[ "control", { "position" : [ 14, 53, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 21, 69, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 38, 59, 0 ], "type" : 34 } ],
+							[ "control", { "position" : [ 66, 60, 0 ], "type" : 34 } ]
+						]
+					]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "One of your heroes has suffered defeat - your quest is over!"
+			},
+			"specialDefeat" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "daysPassed", { "value" : 112 } ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "Alas, time has run out on your quest. All is lost."
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			},
+			"standardVictory" : {
+				"condition" : [ "standardWin" ],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! All your enemies have been defeated! Victory is yours!"
+			}
+		},
+		"victoryIconIndex" : 11,
+		"victoryString" : "Defeat All Enemies"
+	},
+	"data/secret:0" : { // Poison Fit for a King
+		"defeatIconIndex" : 2,
+		"defeatString" : "Time Expires",
+		"triggeredEvents" : {
+			"heroesMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf", [ "control", { "position" : [ 68, 13, 0 ], "type" : 34 } ] ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "The hero, %s, has suffered defeat - your quest is over!"
+			},
+			"specialDefeat" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "daysPassed", { "value" : 112 } ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "Alas, time has run out on your quest. All is lost."
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "control", { "position" : [ 4, 67, 0 ], "type" : 98 } ]
+				],
+				"effect" : {
+					"messageToSend" : "The enemy has captured %s, and claims victory!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You captured %s, and are victorious!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 6,
+		"victoryString" : "Capture Town"
+	},
+	"data/secret:1" : { // To Build a Tunnel
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf", [ "control", { "position" : [ 66, 17, 0 ], "type" : 34 } ] ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "The hero, %s, has suffered defeat - your quest is over!"
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "haveResources", { "type" : 6, "value" : 100000 } ]
+				],
+				"effect" : {
+					"messageToSend" : "The enemy has collected over %d %s. Victory is theirs!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have collected over %d %s in your treasury. Victory is yours!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 2,
+		"victoryString" : "Accumulate Resources"
+	},
+	"data/secret:2" : { // Kreegan Alliance
+		"defeatIconIndex" : 2,
+		"defeatString" : "Time Expires",
+		"triggeredEvents" : {
+			"heroMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf", [ "control", { "position" : [ 6, 8, 0 ], "type" : 34 } ] ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "The hero, %s, has suffered defeat - your quest is over!"
+			},
+			"specialDefeat" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "daysPassed", { "value" : 84 } ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "Alas, time has run out on your quest. All is lost."
+			},
+			"specialVictory" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "destroy", { "position" : [ 31, 26, 0 ], "type" : 34 } ]
+				],
+				"effect" : {
+					"messageToSend" : "The hero, %s, has suffered defeat - your quest is over!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! You have completed your quest to defeat the enemy hero %s. Victory is yours!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			}
+		},
+		"victoryIconIndex" : 5,
+		"victoryString" : "Defeat Hero"
+	},
+	"data/secret:3" : { // With Blinders On
+		"defeatIconIndex" : 1,
+		"defeatString" : "Lose Hero",
+		"triggeredEvents" : {
+			"heroMustSurvive" : {
+				"condition" : [
+					"allOf",
+					[ "isHuman", { "value" : 1 } ],
+					[ "noneOf", [ "control", { "position" : [ 24, 7, 0 ], "type" : 34 } ] ]
+				],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "defeat"
+				},
+				"message" : "The hero, %s, has suffered defeat - your quest is over!"
+			},
+			"standardDefeat" : {
+				"condition" : [ "daysWithoutTown", { "value" : 7 } ],
+				"effect" : {
+					"messageToSend" : "%s's heroes have abandoned him, and he is banished from this land.",
+					"type" : "defeat"
+				},
+				"message" : "%s, your heroes abandon you, and you are banished from this land."
+			},
+			"standardVictory" : {
+				"condition" : [ "standardWin" ],
+				"effect" : {
+					"messageToSend" : "%s has been vanquished!",
+					"type" : "victory"
+				},
+				"message" : "Congratulations! All your enemies have been defeated! Victory is yours!"
+			}
+		},
+		"victoryIconIndex" : 11,
+		"victoryString" : "Defeat All Enemies"
+	}
 }

+ 51 - 0
config/schemas/mapHeader.json

@@ -0,0 +1,51 @@
+{
+	"type":"object",
+	"$schema": "http://json-schema.org/draft-04/schema",
+	"title" : "VCMI map header format",
+	"description" : "Part of map in json format, defines core settings of the map",
+	"required": [ "defeatIconIndex", "defeatString", "victoryIconIndex", "victoryString" ],
+
+	"additionalProperties" : false,
+	"properties":{
+		"defeatIconIndex": {
+			"type":"number"
+		},
+		"defeatString": {
+			"type":"string"
+		},
+		"victoryIconIndex": {
+			"type":"number"
+		},
+		"victoryString": {
+			"type":"string"
+		},
+		"triggeredEvents" : {
+			"type" : "object",
+
+			"additionalProperties" : {
+				"type" : "object",
+				"additionalProperties" : "false",
+
+				"properties" : {
+					"required" : [ "condition", "message", "effect" ],
+
+					"condition" : { "type" : "array" },
+
+					"description" : { "type" : "string" },
+					"message" : { "type" : "string" },
+					"effect" : {
+						"type" : "object",
+						"additionalProperties" : false,
+
+						"required" : [ "type", "messageToSend" ],
+
+						"properties" : {
+							"type" : { "type" : "string" },
+							"messageToSend" : { "type" : "string" },
+						}
+					}
+				}
+			}
+		}
+	}
+}

+ 13 - 1
lib/mapping/CMapService.cpp

@@ -86,10 +86,22 @@ std::unique_ptr<IMapLoader> CMapService::getMapLoader(std::unique_ptr<CInputStre
 	}
 }
 
+static JsonNode loadPatches(std::string path)
+{
+	JsonNode node = JsonUtils::assembleFromFiles(path);
+	for (auto & entry : node.Struct())
+		JsonUtils::validate(entry.second, "vcmi:mapHeader", "patch for " + entry.first);
+	return node;
+}
+
 std::unique_ptr<IMapPatcher> CMapService::getMapPatcher(std::string scenarioName)
 {
+	static JsonNode node;
+
+	if (node.isNull())
+		node = loadPatches("config/mapOverrides.json");
+
 	boost::to_lower(scenarioName);
 	logGlobal->debugStream() << "Request to patch map " << scenarioName;
-	JsonNode node = JsonUtils::assembleFromFiles("config/mapOverrides.json");
 	return std::unique_ptr<IMapPatcher>(new CMapLoaderJson(node[scenarioName]));
 }