But now my quest structure is 500x more robust, allowing me to do things like have multiple outcomes PER CHOICE, PER QUEST, as well as a slew of interesting parameters I can add to a quest now to lock, unlock, etc.
The idea here is that you can mix and match elements to create a huge variety of quests. I'll explain the structure below:
Each quest is structured as follows in an XML document:
<Quest id="" qName="" Picture="undefined" Type="1" Loc="1" Locked="0">;
<ChainLock cName="name" levelMinReq="" levelMaxReq=""/>
<Description></Description>
<Choice cName="" picture="" > <!==traitReq="">
<Description></Description>
<RequiredDude type="" levelMin="" levelMax="" quality=""/>
<RequiredItem type="" quantity=""/>
<MoneyCost></MoneyCost>
<Outcome chance="1.0"> <!--ONE OUTCOME MUST ALWAYS HAVE CHANCE = 1.0
<Text></Text>
<Mutation></Mutation>
<ChainLock cName="name" levelMinReq="" levelMaxReq=""/>
<Description></Description>
<Choice cName="" picture="" > <!==traitReq="">
<Description></Description>
<RequiredDude type="" levelMin="" levelMax="" quality=""/>
<RequiredItem type="" quantity=""/>
<MoneyCost></MoneyCost>
<Outcome chance="1.0"> <!--ONE OUTCOME MUST ALWAYS HAVE CHANCE = 1.0
<Text></Text>
<Mutation></Mutation>
<Unlock></Unlock>
<Permalock></Permalock>
<UnlockLoc></UnlockLoc>
<Trait aName="" chance=""/>
<MoneyReward></MoneyReward>
<Reward type="" quantity="" chance=""/>
<RequiredItem type="" quantity=""/>
<MoneyCost></MoneyCost>
<ChainReward cName ="" levelMin="0" levelMax="0" increase="0" chanceToIncrease="1.0"/>
<CombatDude type="" levelMin="" levelMax="" quality="" chance=""/>
<RequiredDude type="" levelMin="" levelMax="" quality=""/>
<RewardDude type="" levelMin="" levelMax="" quality="" chance=""/>
<Heal></Heal>
</Outcome>
</Choice>
</Quest>
<Permalock></Permalock>
<UnlockLoc></UnlockLoc>
<Trait aName="" chance=""/>
<MoneyReward></MoneyReward>
<Reward type="" quantity="" chance=""/>
<RequiredItem type="" quantity=""/>
<MoneyCost></MoneyCost>
<ChainReward cName ="" levelMin="0" levelMax="0" increase="0" chanceToIncrease="1.0"/>
<CombatDude type="" levelMin="" levelMax="" quality="" chance=""/>
<RequiredDude type="" levelMin="" levelMax="" quality=""/>
<RewardDude type="" levelMin="" levelMax="" quality="" chance=""/>
<Heal></Heal>
</Outcome>
</Choice>
</Quest>
Let's go through it line by line. Not because I think anyone will read this, but because I did a ton of work on this and want people to be impressed by it >(
<Quest id="" qName="" Picture="undefined" Type="1" Loc="1" Locked="0">;
- ID = the numerical placement of the quest in the XML document.
- qName = the name of the quest
- Picture = the name of the image that goes along with the quest
- Type = the style of quest - permanent, one-shot, or instant-fire.
- Loc = the location in which the quest appears
- Locked = the "lock points" of the quest. When these reach 0, the quest is now unlocked.
<ChainLock cName="name" levelMinReq="" levelMaxReq=""/>
<Description></Description>
- ChainLock: This attribute tells me this quest MAY be locked based on story chain progress.
- cName = The name of the chain in question.
- levelMinReq = The minimum progress the player must have to see the quest.
- levelMaxReq = The maximum progress the player must have to see the quest.
- This element may be repeated as many times as needed.
- Description: The narrative description of the quest.
<Choice cName="" picture="" traitReq="">
<Description></Description>
<RequiredDude type="" levelMin=""/>
<RequiredItem type="" quantity=""/>
<MoneyCost></MoneyCost>
<RequiredDude type="" levelMin=""/>
<RequiredItem type="" quantity=""/>
<MoneyCost></MoneyCost>
- Choice: Each quest may have up to 3 of these.
- cName = the name of the choice
- traitReq = optional. The name of a requisite character trait in order to unlock this option.
- Description = the Narrative description of the Choice
- RequiredDude: the player must have a dude that meets these specifications in their party to unlock this option.
- type = the type of Dude.
- levelMin = the minimum level of the dude.
- This element may be repeated as many times as needed.
- RequiredItem: the player must have the required items to unlock this option.
- type = the type of Item
- quantity = the quantity of Item necessary
- This element may be repeated as many times as needed.
- MoneyCost: Holds an integer, the amount of money required to unlock this choice.
<Outcome chance="1.0">
<Text></Text>
<Mutation></Mutation>
<Unlock></Unlock>
<Permalock></Permalock>
<UnlockLoc></UnlockLoc>
<Trait aName="" chance=""/>
<MoneyReward></MoneyReward>
<Reward type="" quantity="" chance=""/>
<RequiredItem type="" quantity=""/>
<MoneyCost></MoneyCost>
<ChainReward cName ="" levelMin="0" levelMax="0" increase="0" chanceToIncrease="1.0"/>
<CombatDude type="" levelMin="" levelMax="" quality="" chance=""/>
<RequiredDude type="" levelMin="" />
<RewardDude type="" levelMin="" levelMax="" quality="" chance=""/>
<Heal></Heal>
</Outcome>
<Permalock></Permalock>
<UnlockLoc></UnlockLoc>
<Trait aName="" chance=""/>
<MoneyReward></MoneyReward>
<Reward type="" quantity="" chance=""/>
<RequiredItem type="" quantity=""/>
<MoneyCost></MoneyCost>
<ChainReward cName ="" levelMin="0" levelMax="0" increase="0" chanceToIncrease="1.0"/>
<CombatDude type="" levelMin="" levelMax="" quality="" chance=""/>
<RequiredDude type="" levelMin="" />
<RewardDude type="" levelMin="" levelMax="" quality="" chance=""/>
<Heal></Heal>
</Outcome>
- Each Choice may have as many Outcomes as needed.
- Each Outcome has a "chance" - this is the probability that it will be selected. Probabilities are rolled for on an individual cascading basis, which means at least one outcome must always have a chance of 1.0 (the last outcome, usually).
- Text = the narrative text associated with this particular outcome.
- Mutation = IF the CHOICE has a RequiredDude, this Mutation will be applied to the Dude.
- Unlock = a series of quest IDs separated by comma. Each quest in the list will be subtracted 1 unlock point.
- Permalock = a series of quest IDs separated by comma. Each quest in the list will be permanently locked.
- UnlockLoc = a series of location IDs, separated by comma. Each location in the list will be unlocked.
- Trait = The trait that will be awarded.
- aName = the name of the trait.
- chance = the chance that the trait will be awarded.
- MoneyReward = the amount of money the player will get for this outcome.
- Reward = an item reward.
- type = the type of item being rewarded
- quantity = the quantity of item being rewarded
- chance = the chance that that item will be rewarded
- This element may be repeated as many times as needed.
- RequiredItem: these items are REMOVED from the player's inventory
- type = the type of Item
- quantity = the quantity of Item necessary
- This element may be repeated as many times as needed.
- MoneyCost: this money is REMOVED from the player's inventory./
- ChainReward: Progress in a story chain.
- cName = the name of the story chain
- levelMin = the lowest this chain can go due to this particular outcome.
- levelMax = the highest this chain can go due to this particular outcome.
- increase = the amount of progress the player gains towards this chain. Negative progress is allowed.
- chanceToIncrease = the chance that the chain progress will increase.
- This element may be repeated as many times as needed.
- CombatDude: A Dude you may FIGHT in combat upon SELECTION of the Outcome's CHOICE.
- type = the type of Dude you are fighting. -1 means RANDOM type of dude.
- levelMin = the minimum level of the Dude.
- levelMax = the maximum level of the Dude.
- quality = the quality of the dude. -1 is random quality.
- chance = the chance that you will fight the dude.
- This element may be repeated up to 3 times.
- RequiredDude: this dude is REMOVED from the player's party.
- type = the type of Dude.
- levelMin = the minimum level of the dude.
- This element may be repeated up to 3 times.
- RewardDude: this dude is GIVEN to the player.
- type = the type of Dude.
- levelMin = the minimum level of the Dude.
- levelMax = the maximum level of the Dude.
- quality = the quality of the Dude.
- chance = the chance that the Dude will be given.
- This element may be repeated as many times as needed.
- Heal: The amount that the player's Dudes will be healed.
No comments:
Post a Comment