Fallen Enchantress has random events. It’s just that there aren’t many and the odds of one showing up in a given turn are in 1/10,000.
So as we get ready for Beta 5, which is all about bug fixing, polish, and balance, we are finally starting to add a lot of new random events.
This is the part I should probably mention that any monkey can make a quest. You do need the powerful tool known as notepad. That’s how I’m doing it. It’s just XML and it’s pretty straight forward to make a fairly simple quest or random event (i.e. kill fooz or fetch me a holy hand grenade or escort my goat, etc.). But there’s nothing stopping you from making a massive, epic quest.
In this random event, I set it so that after turn 50 there is a 0.1% chance of the event being triggered each turn. So odds are, you will rarely get this event (maybe once every 4 or 5 games). But in addition to spawning a nasty cave with these nasty monsters in it, I also had it spam the world with a bunch of escaped darklings.
What’s nice about this is that modders (and guys like me) can control the “experience” of the game through the use of the turn trigger.
I’m thinking about coding in a power based trigger. That is, if the player is just dominating (or alternatively, getting really hurt) I could have the game trigger some interesting events to whoever is winning (or losing) to mix things up. I did this with Galactic Civilizations with quite a bit of success in keeping things moving.
Of course, with GalCiv, only I could make this stuff. With Fallen Enchantress, not only can a stupid monkey like myself crank this out, but you guys could too.
Below is the complete XML for this particular quest (90% of which is copy and paste):
1: <QuestDef InternalName="RandomEvent_AdventureProblem_2">
2: <DisplayName>Troublesome Adventerers</DisplayName>
3: <Description>
4: Into the throne room comes three very sad looking adventurers. They explain, at considerable length, that they met at a local pub and decided to go on a quest together. Unfortunately, this quest brought them to the ancient dungeon of Orilinor, Curgen's jailer.
5:
6: This dungeon was thought to be lost and, frankly, it would have been better had it stayed lost because upon opening it, a couple centuries worth of monster breeding has now been unleashed into the country side.
7:
8: "And, a demon known as Anithan is still there," he says.
9:
10: What do you want to do?
11: </Description>
12: <ShortTextAccept>Sigh. Can't you people get real jobs? You'll be helping clean up this mess.</ShortTextAccept>
13: <AllowQuestRejection>0</AllowQuestRejection>
14: <RewardText>Book of Demon Summoning</RewardText>
15: <RewardImage>Tech_Third_Book.png</RewardImage>
16: <SuccessText>
17: Anithan is defeated and the book is yours. Using the books of your private study to translate the runes in the book, you are able to summon a demon to do your bidding. Unfortunately, the book disintegrates upon use.
18: </SuccessText>
19: <QuestClass>Minor</QuestClass>
20: <Repeatable>0</Repeatable>
21: <TriggerType>TurnNumber</TriggerType>
22: <TriggerData>50</TriggerData>
23: <TriggerChance>10</TriggerChance>
24: <PostTriggerChance>10</PostTriggerChance>
25: <SpawnRating>1</SpawnRating>
26: <Image>BG18_Dark.png</Image>
27: <Treasure>
28: <GameModifier InternalName="Reward1">
29: <ModType>Unit</ModType>
30: <Attribute>GiveExperience</Attribute>
31: <Value>30</Value>
32: </GameModifier>
33: </Treasure>
34: <Treasure>
35: <GameModifier InternalName="Reward2">
36: <ModType>Unit</ModType>
37: <Attribute>UnitJoinArmy</Attribute>
38: <StrVal>DeathDemon</StrVal>
39: <StrVal2>Pox the Demon</StrVal2>
40: <UnitClass>Unit</UnitClass>
41: </GameModifier>
42: </Treasure>
43: <QuestObjectiveDef>
44: <ObjectiveID>0</ObjectiveID>
45: <NextObjectiveID>1</NextObjectiveID>
46: <Description>Find and defeat Anithan.</Description>
47: <Treasure>
48: <GameModifier>
49: <ModType>Map</ModType>
50: <Attribute>CreateGoodieHut</Attribute>
51: <StrVal>Orilinor's Dungeon</StrVal>
52: <Unitclass>GH_Quest_Cave</Unitclass>
53: <Radius>12</Radius>
54: </GameModifier>
55: <GameModifier>
56: <ModType>Map</ModType>
57: <Attribute>SpawnMonster</Attribute>
58: <Value>24</Value>
59: <Unitclass>Darkling</Unitclass>
60: <StrVal>Escaped Darklings</StrVal>
61: <Radius>12</Radius>
62: </GameModifier>
63: <GameModifier InternalName="Join">
64: <ModType>Unit</ModType>
65: <Attribute>UnitJoinArmy</Attribute>
66: <StrVal>Iru</StrVal>
67: <StrVal2>Amanda</StrVal2>
68: <UnitClass>Unit</UnitClass>
69: <Level>6</Level>
70: </GameModifier>
71: <GameModifier InternalName="Join">
72: <ModType>Unit</ModType>
73: <Attribute>UnitJoinArmy</Attribute>
74: <StrVal>Syndicate_SpyMaster</StrVal>
75: <StrVal2>Lucila</StrVal2>
76: <UnitClass>Unit</UnitClass>
77: <Level>6</Level>
78: </GameModifier>
79: <GameModifier InternalName="Join">
80: <ModType>Unit</ModType>
81: <Attribute>UnitJoinArmy</Attribute>
82: <StrVal>Mercenary</StrVal>
83: <StrVal2>Kelen</StrVal2>
84: <UnitClass>Unit</UnitClass>
85: <Level>6</Level>
86: </GameModifier>
87: </Treasure>
88: <QuestConditionDef>
89: <Objective>
90: <Icon>Mana_32.png</Icon>
91: <Text>Find the cave that leads to the dungeon, defeat Anithan.</Text>
92: <IsOptional>0</IsOptional>
93: </Objective>
94: <Class>Success</Class>
95: <Type>ClearGoodieHut</Type>
96: <TextData>GH_Quest_Cave</TextData>
97: <Flag>RevealTarget</Flag>
98: </QuestConditionDef>
99: <ChoiceText>You manage to cause a cave in, sealing off the entrance to the vast lambrynth underneath but not before Anithan and his servants confront you.</ChoiceText>
100: <ChoiceMedallion>F_Domination_Full.png</ChoiceMedallion>
101: <ChoiceMedallionFrame>Medallion_Frame_17.png</ChoiceMedallionFrame>
102: <QuestChoiceDef>
103: <Description>Defeat Anithan</Description>
104: <NextObjectiveID>1</NextObjectiveID>
105: <Encounter>
106: <Liklihood>100</Liklihood>
107: <BattleIdentifier>Anithan</BattleIdentifier>
108: <WillRespawn>0</WillRespawn>
109: <WanderingRadius>0</WanderingRadius>
110: <UnitInstance>
111: <UnitType>DeathDemon</UnitType>
112: <UnitName>Anithan</UnitName>
113: <Level>1</Level>
114: </UnitInstance>
115: <UnitInstance>
116: <UnitType>Juggernaut_Escaped</UnitType>
117: <UnitName>Failed prototype</UnitName>
118: <Level>1</Level>
119: </UnitInstance>
120: <UnitInstance>
121: <UnitType>DarklingWarrior</UnitType>
122: <UnitName>Darkling Horde</UnitName>
123: <UnitGroupingType>UnitGroupingType_Squad</UnitGroupingType>
124: <Level>1</Level>
125: </UnitInstance>
126: </Encounter>
127: </QuestChoiceDef>
128: <QuestChoiceDef>
129: <Description>Ah. Yes...well..quite. We will just be leaving you to your cave.</Description>
130: <NextObjectiveID>0</NextObjectiveID>
131: </QuestChoiceDef>
132: </QuestObjectiveDef>
133: <QuestObjectiveDef>
134: <ObjectiveID>1</ObjectiveID>
135: <NextObjectiveID>2</NextObjectiveID>
136: <PopupObjectiveMsg>0</PopupObjectiveMsg>
137: <QuestConditionDef>
138: <Objective>
139: <Icon>Mana_32.png</Icon>
140: <Text>Defeat Anithan</Text>
141: <IsOptional>0</IsOptional>
142: </Objective>
143: <Class>Success</Class>
144: <Type>BattleFinished</Type>
145: <TextData>Anithan</TextData>
146: <MoreTextData>Victory</MoreTextData>
147: </QuestConditionDef>
148: <QuestConditionDef>
149: <Objective>
150: <Icon></Icon>
151: <Text>Battle Lost</Text>
152: <IsOptional>0</IsOptional>
153: </Objective>
154: <Class>Failure</Class>
155: <Type>BattleFinished</Type>
156: <TextData>Anithan</TextData>
157: <MoreTextData>Defeat</MoreTextData>
158: </QuestConditionDef>
159: </QuestObjectiveDef>
160: <QuestObjectiveDef>
161: <ObjectiveID>2</ObjectiveID>
162: <NextObjectiveID>3</NextObjectiveID>
163: <Description>Return to your capital with the untranslated book of demons.</Description>
164: <QuestConditionDef>
165: <Objective>
166: <Icon>Mana_32.png</Icon>
167: <Text>Return to the capital with the untranslated book of demon summoning.</Text>
168: <IsOptional>0</IsOptional>
169: </Objective>
170: <Class>Success</Class>
171: <Type>UnitEntersCapital</Type>
172: </QuestConditionDef>
173: </QuestObjectiveDef>
174: <QuestObjectiveDef>
175: <ObjectiveID>3</ObjectiveID>
176: <QuestEnd>1</QuestEnd>
177: </QuestObjectiveDef>
178: </QuestDef>