Adding New Content
Today for Rogue Champions I am focusing on adding content to the game. Since I started the project there have been many character and villain packs released, as well as The Rise of Red Skull expansion.
Because of that, there is a lot of content missing that I would like to add. In this post I'll give a little insight into how the content is added.
Adding Upgrades
Most of the upgrades in Rogue Champions have specific Setup instructions on them. These generally put a card into play for you. I wanted to use setup so that you don't have to check back on the app once you're playing. You just check all the setup instructions at game start, then play Marvel Champions normally.
From a coding point of view, all of the possible upgrades are in the const/upgrades.ts file. The upgrades have the following type
export interface Upgrade { name: string description: () => any level: number maxLevel?: number requires: null | string requiresHero?: string levelUpMessage: () => any category: UpgradeCategory }
Each upgrade is an object that fits this definition. I have helper functions that help me generate specific types of upgrades, with specific progressions for when they are leveled up. For example an upgrade that puts a minion into play could start with the minion damaged, and further levels to that upgrade would reduce the starting damage. Here is an example of an upgrade being created:
export const CosmicFlight = generateUpgradeCard({ name: 'Space Pilot', card: "Cosmic Flight", requires: CoreSet.name, requiresHero: CaptainMarvel.name, category: "Heroic", article: 'a', copies: 2 })
Heroic Upgrades
Each identity you can play as, such as She-Hulk or Ms. Marvel, should have its own set of upgrades. These upgrades use cards that are specific to that character. For adding content I want each hero to have 3-4 upgrades available to them.
Adding Villains
Villains are pretty easy to add, since Rogue Champions doesn't have any gameplay in it. All that is needed is a name, a difficulty score, its encounter set, and which expansion the villain comes in.
export const Klaw : Villain = { name: 'Klaw', key: 'klaw', difficulty: DF_BASE + DF_STEP_MED, sets: [EncounterSetsMap.Klaw.name] }
The DF_BASE constant is a difficulty score that I set as a baseline for how difficult a villain is. I then use "steps" to increase its score. I will have to tweak these values later, but for now Klaw's difficulty is 20+5. Rhino's is 5.
Adding Encounter Sets
Encounter sets allow me to randomly generate missions with different difficulties by adding new encounter sets to the encounter deck. Each set increases the difficulty score. The Expert encounter set increases the difficulty by more than Under Attack does, because I think those cards are harder.
This was a short description of what I'll be adding, now it's time to go add content!
Comments
Post a comment