Open ecubic opened 6 years ago
Brainstorming some ideas...
AdventureStep {
// Basically which UI screen background, transitions, etc are we using. We need to be able to apply an interface for TransitionIn, TransitionOut, maybe some other stuff. IAdventureScene AdventureScene;
// Type of adventure step this is. Battle, Transition, Dialog/Story, etc. EAdventureStepType Type; }
AdventureBattle {
// Allied Characters
Array
// Array Enemy Characters. Once all of the enemies in a 'wave' are killed, we look to see if there is another wave of enemies. If so, the fight continues on with the 2nd, 3rd wave, etc.
Array
// Time limit for this battle, if any. Probably not used often. float TimeLimit;
// Some type of overall effects. Reduced healing, reduced initiative, reduced fire resistance, whatever. Sketchy-stretchy idea.
Array
}
// This struct basically exists to avoid doing a two-dimensional array
FEnemyWave
{
Array
// A Character Slot contains a CharacterSheet FCharacterSlot {
// Allies go on left bool IsAlly;
// Position on Battle Grid Vector2 StartPosition;
// In case our guy wants to reserve
Array
// A Character slot might represent more than one enemy, or more than one type of enemy. (ex. Goblin Minions, you slay one and it is immediately replaced, thus representing a nigh-infinite horde. Or a powerful boss, who 'transforms' into a more powerful form once defeated the first time.
// Once you defeat the actual enemy character present on the board, the slot will check to see if there are additional characters in reserve, if so they get added immediately. This is different but similar to EnemyWaves concept in AdventureBattle
Array
}
QuestContract {
// we need an array of characters who are already present in the party when we go to do the thing, could be 1 person could be Max-1 people Array Contractors;
// each adventure step is a battle or other scene (transition, dialog, etc). Shortest concept is 1 battle, but could be a series of many battles Array AdventureSteps;
// Reward is a structure (XP, Gold, Items) // Ultimately probably need some way to indicate a cut of afterbattle loot. Afterbattle loot is a different system, ignore for now. FReward Rewards;
// Easy, Medium, Hard, Impossible // Eventually need a much better way to figure this out but whatever, fine for now. EChallengeRating ChallengeRating;
Text ContractGiverName; Text ContractDescription; Image ContractImage;
// other stuff? }