diff --git a/src/js/Bingo.ts b/src/js/Bingo.ts index 4c28c5e..3055400 100644 --- a/src/js/Bingo.ts +++ b/src/js/Bingo.ts @@ -1,5 +1,9 @@ import { + Exclude, + Expose, Type, + instanceToPlain, + plainToClass, plainToInstance } from 'class-transformer'; @@ -60,7 +64,9 @@ export class BingoGame { removeGroup(group: BingoGroup): boolean { // Group has parent, don't delete - const isParent = this.groups.find(_group => _group.parent && stringCompare(_group.parent.name, group.name)); + const isParent = this.groups.find( + _group => _group.parent && stringCompare(_group.parent.name, group.name) + ); if (isParent) { console.error('This group is still a parent of:', isParent.name); @@ -68,7 +74,9 @@ export class BingoGame { } // One or more goals still use this group, don't delete - const isGoal = this.goals.find(goal => goal.group && stringCompare(goal.group.name, group.name)); + const isGoal = this.goals.find( + goal => goal.group && stringCompare(goal.group.name, group.name) + ); if (isGoal) { console.error('This group is still used by:', isGoal.name); @@ -91,7 +99,13 @@ export class BingoGame { } getGoalsByTags(...tags: string[]): BingoGoal[] { - return this.goals.filter(goal => goal.tags.some(_tag => tags.some(tag => stringCompare(_tag, tag)))); + return this.goals.filter( + goal => goal.tags.some( + _tag => tags.some( + tag => stringCompare(_tag, tag) + ) + ) + ); } getGoalsByGroup(includeParents: boolean, ...groups: BingoGroup[]): BingoGoal[] { @@ -131,7 +145,11 @@ export class BingoGoal { name!: string; - group!: BingoGroup; + @Exclude({ + toPlainOnly: true + }) + @Type(() => BingoGroup) + group!: BingoGroup; tags: string[] = []; @@ -149,6 +167,11 @@ export class BingoGoal { } } + @Expose() + get group_id(): string { + return this.group.name; + } + addTag(tag: string): BingoGoal { if (this.tags.includes(tag)) return this; @@ -176,13 +199,21 @@ export class BingoGoal { export class BingoGroup { name: string; + @Exclude({ + toPlainOnly: true + }) @Type(() => BingoGroup) parent?: BingoGroup; - constructor(name: string, parent?: BingoGroup) { + constructor(name: string, parent?: BingoGroup | undefined) { this.name = name; this.parent = parent; } + + @Expose() + get parent_id(): string | undefined { + return this.parent?.name; + } } // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -193,30 +224,67 @@ function test(): void { 'The funny game we used for all bingos.', 'Very long text here haha lmao' ); + const group1 = new BingoGroup('1'); + const group2 = new BingoGroup('2', group1); + const group3 = new BingoGroup('3', group2); + + game.addGroup(group1); + game.addGroup(group2); + game.addGroup(group3); + const battle_group = new BingoGroup('Battle'); const defeat_enemies = new BingoGroup('Defeat enemies on the street', battle_group); game.addGroup(battle_group); game.addGroup(defeat_enemies); - const easy = new BingoGoal('Defeat 50 enemies on the street', defeat_enemies).addTag('Easy'); - const normal = new BingoGoal('Defeat 150 enemies on the street', defeat_enemies).addTag('Normal'); - const hard = new BingoGoal('Defeat 300 enemies on the street', defeat_enemies).addTag('Hard'); + const easy = new BingoGoal('Defeat 50 enemies on the street', group1).addTag('Easy'); + const normal = new BingoGoal('Defeat 150 enemies on the street', group2).addTag('Normal'); + const hard = new BingoGoal('Defeat 300 enemies on the street', group3).addTag('Hard'); game.addGoal(easy); game.addGoal(normal); game.addGoal(hard); + // console.log(game.goals[0].group); + // game.groups[0].name = 'not 1'; + // game.groups[0].parent = game.groups[1]; + // console.log(game.goals[0].group); + // const jsonifiedInstance = instanceToPlain(game); - // console.log(JSON.stringify(jsonifiedInstance)); + // const fixed = JSON.parse(JSON.stringify(jsonifiedInstance)); + // console.log(JSON.stringify([ fixed ])); // console.log(JSON.stringify(game)); - const json_string = '{"id":"yakuza_0","name":"Yakuza 0","description":"The funny game we used for all bingos.","generator":"simple","goals":[{"name":"Defeat 50 enemies on the street","tags":["Easy"],"group":{"name":"Defeat enemies on the street","parent":{"name":"Battle"}},"possible_spaces":[]},{"name":"Defeat 150 enemies on the street","tags":["Normal"],"group":{"name":"Defeat enemies on the street","parent":{"name":"Battle"}},"possible_spaces":[]},{"name":"Defeat 300 enemies on the street","tags":["Hard"],"group":{"name":"Defeat enemies on the street","parent":{"name":"Battle"}},"possible_spaces":[]}],"groups":[{"name":"Battle"},{"name":"Defeat enemies on the street","parent":{"name":"Battle"}}]}'; - const parsed: JSON = JSON.parse(json_string); - const parsed_game = plainToInstance(BingoGame, parsed); - console.log(parsed_game); + // const got_group1 = game.getGroupByName('1'); + // console.log(got_group1); + + // const got_group3 = game.getGroupByName('3'); + // console.log(got_group3); + + // console.log(got_group1 === got_group3?.parent?.parent); + + // const jsonifiedString = JSON.stringify(jsonifiedInstance); + // const parsedInstance: JSON = JSON.parse(jsonifiedString); + + // const parsedgame = plainToClass(BingoGame, parsedInstance); + // console.log(parsedgame); + // console.log(parsedgame === game); + + // const got_group1 = parsedgame.getGroupByName('1'); + // console.log(got_group1); + + // const got_group3 = parsedgame.getGroupByName('3'); + // console.log(got_group3); + + // console.log(got_group1 === got_group3?.parent?.parent); + + // const json_string = '{"id":"yakuza_0","name":"Yakuza 0","description":"The funny game we used for all bingos.","generator":"simple","goals":[{"name":"Defeat 50 enemies on the street","tags":["Easy"],"group":{"name":"Defeat enemies on the street","parent":{"name":"Battle"}},"possible_spaces":[]},{"name":"Defeat 150 enemies on the street","tags":["Normal"],"group":{"name":"Defeat enemies on the street","parent":{"name":"Battle"}},"possible_spaces":[]},{"name":"Defeat 300 enemies on the street","tags":["Hard"],"group":{"name":"Defeat enemies on the street","parent":{"name":"Battle"}},"possible_spaces":[]}],"groups":[{"name":"Battle"},{"name":"Defeat enemies on the street","parent":{"name":"Battle"}}]}'; + // const parsed: JSON = JSON.parse(json_string); + // const parsed_game = plainToInstance(BingoGame, parsed); + // console.log(parsed_game); // console.log(JSON.stringify(other_game) === JSON.stringify(jsonifiedInstance)); // parsed_game.removeGroup(defeat_enemies); // console.log(parsed_game.goals); } - +test(); diff --git a/src/js/ParseGamesJSON.ts b/src/js/ParseGamesJSON.ts index b74ccc7..9390f9e 100644 --- a/src/js/ParseGamesJSON.ts +++ b/src/js/ParseGamesJSON.ts @@ -4,15 +4,16 @@ import { BingoGame, BingoGoal, BingoGroup } from '@/js/Bingo.js'; import json from './games.json'; +import new_json from './new_games.json'; import { - instanceToPlain + instanceToPlain, plainToClass, plainToInstance } from 'class-transformer'; import markdown_text from '@/js/testmarkdown.js'; export const games: Map = new Map; -function run() { +function run_old_format() { for (const j_game of json) { const game = new BingoGame( j_game.game_name, @@ -57,4 +58,43 @@ function run() { // console.log(goals); } -run(); +function run_new_format() { + for (const j_game of new_json) { + const game = new BingoGame( + j_game.id, + j_game.name, + j_game.short_description, + j_game.description + ); + + const group_map: Map = new Map; + for (const j_group of j_game.groups) { + let group: BingoGroup; + if (j_group.parent_id) + group = new BingoGroup(j_group.name, group_map.get( + j_group.parent_id + )); + else + group = new BingoGroup(j_group.name); + + group_map.set(j_group.name, group); + game.addGroup(group); + } + + for (const j_goal of j_game.goals) { + const group = group_map.get(j_goal.group_id); + if (!group) + continue; + + const goal = new BingoGoal(j_goal.name, group); + goal.possible_spaces = j_goal.possible_spaces; + goal.tags = j_goal.tags; + + game.addGoal(goal); + } + + games.set(game.id, game); + } +} + +// run_new_format(); diff --git a/src/js/games.json b/src/js/games.json index 5ef8fb1..2c5e490 100644 --- a/src/js/games.json +++ b/src/js/games.json @@ -1 +1,2040 @@ -[{"game_name": "Yakuza 0","icon": "https://i.imgur.com/o5itGhm.png","categories": [{"category_name": "Adventure","groups": [{"group_name": "Talk to people","options": [{"title": "Talk to people 50 times","difficulty": "Easy"},{"title": "Talk to people 100 times","difficulty": "Normal"},{"title": "Talk to people 300 times","difficulty": "Hard"}]},{"group_name": "Dine at eateries","options": [{"title": "Dine at eateries 10 times","difficulty": "Easy"},{"title": "Dine at eateries 30 times","difficulty": "Normal"},{"title": "Dine at eateries 50 times","difficulty": "Normal"},{"title": "Dine at eateries 100 times","difficulty": "Hard"}]},{"group_name": "Buy from Dream Machines","options": [{"title": "Buy from Dream Machines 5 times","difficulty": "Easy"},{"title": "Buy from Dream Machines 10 times","difficulty": "Normal"},{"title": "Buy from Dream Machines 20 times","difficulty": "Normal"},{"title": "Buy from Dream Machines 50 times","difficulty": "Hard"}]},{"group_name": "Entertain yourself","options": [{"title": "Entertain yourself 10 times","difficulty": "Easy"},{"title": "Entertain yourself 30 times","difficulty": "Normal"},{"title": "Entertain yourself 50 times","difficulty": "Normal"},{"title": "Entertain yourself 100 times","difficulty": "Hard"}]},{"group_name": "Eat food items","options": [{"title": "Eat 5 food items","difficulty": "Easy"},{"title": "Eat 15 food items","difficulty": "Normal"},{"title": "Eat 30 food items","difficulty": "Hard"}]},{"group_name": "Eat medicine items","options": [{"title": "Eat 5 medicine items","difficulty": "Easy"},{"title": "Eat 15 medicine items","difficulty": "Normal"},{"title": "Eat 30 medicine items","difficulty": "Hard"}]},{"group_name": "Travel by taxi","options": [{"title": "Travel by taxi 5 times","difficulty": "Easy"},{"title": "Travel by taxi 15 times","difficulty": "Normal"},{"title": "Travel by taxi 30 times","difficulty": "Hard"}]},{"group_name": "Travel on foot","options": [{"title": "Travel 20km on foot","difficulty": "Normal"},{"title": "Travel 50km on foot","difficulty": "Hard"},{"title": "Travel 100km on foot","difficulty": "Hard"}]},{"group_name": "Travel by dashing","options": [{"title": "Travel 2km by dashing","difficulty": "Easy"},{"title": "Travel 5km by dashing","difficulty": "Normal"},{"title": "Travel 10km by dashing","difficulty": "Hard"}]},{"group_name": "Earn money","options": [{"title": "Earn a total of 20 mil yen","difficulty": "Easy"},{"title": "Earn a total of 50 mil yen","difficulty": "Normal"},{"title": "Earn a total of 100 mil yen","difficulty": "Normal"},{"title": "Earn a total of 1 bil yen","difficulty": "Hard"},{"title": "Earn a total of 10 bil yen","difficulty": "Hard"},{"title": "Earn a total of 50 bil yen","difficulty": "Hard"}]},{"group_name": "Spend money","options": [{"title": "Spend a total of 1 mil yen","difficulty": "Easy"},{"title": "Spend a total of 10 mil yen","difficulty": "Normal"},{"title": "Spend a total of 100 mil yen","difficulty": "Normal"},{"title": "Spend a total of 1 bil yen","difficulty": "Hard"},{"title": "Spend a total of 5 bil yen","difficulty": "Hard"},{"title": "Spend a total of 10 bil yen","difficulty": "Hard"}]},{"group_name": "Scatter money","options": [{"title": "Scatter a total of 1 mil yen","difficulty": "Easy"},{"title": "Scatter a total of 3 mil yen","difficulty": "Easy"},{"title": "Scatter a total of 5 mil yen","difficulty": "Normal"},{"title": "Scatter a total of 10 mil yen","difficulty": "Hard"}]},{"group_name": "Collect telephone cards (Kiryu)","options": [{"title": "Collect 5 telephone cards (Kiryu)","difficulty": "Easy"},{"title": "Collect 20 telephone cards (Kiryu)","difficulty": "Normal"},{"title": "Collect 45 telephone cards (Kiryu)","difficulty": "Hard"}]},{"group_name": "Collect telephone cards (Majima)","options": [{"title": "Collect 5 telephone cards (Majima)","difficulty": "Easy"},{"title": "Collect 20 telephone cards (Majima)","difficulty": "Normal"},{"title": "Collect 45 telephone cards (Majima)","difficulty": "Hard"}]},{"group_name": "Watch different video clips","options": [{"title": "Watch 5 different video clips","difficulty": "Normal"},{"title": "Watch 15 different video clips","difficulty": "Hard"},{"title": "Watch 30 different video clips","difficulty": "Hard"}]},{"group_name": "Complete dineries","options": [{"title": "Complete Dinery (Gindaco)","difficulty": "Easy"},{"title": "Complete Dinery (Yoronotaki)","difficulty": "Easy"},{"title": "Complete Dinery (Ringer Hut)","difficulty": "Easy"},{"title": "Complete Dinery (Fuji Soba)","difficulty": "Easy"},{"title": "Complete Dinery (Akaushimaru)","difficulty": "Easy"},{"title": "Complete Dinery (Tengokuken)","difficulty": "Easy"},{"title": "Complete Dinery (Sushi Gin)","difficulty": "Easy"},{"title": "Complete Dinery (Cafe Alps)","difficulty": "Easy"},{"title": "Complete Dinery (Kanrai)","difficulty": "Easy"},{"title": "Complete Dinery (Smile Burger)","difficulty": "Easy"},{"title": "Complete Dinery (Maharaja)","difficulty": "Easy"},{"title": "Complete Dinery (Heroine)","difficulty": "Easy"},{"title": "Complete Dinery (Earth Angel)","difficulty": "Easy"},{"title": "Complete Dinery (Shellac)","difficulty": "Easy"},{"title": "Complete Dinery (Vincent)","difficulty": "Easy"},{"title": "Complete Dinery (Tsuruhashi Fugetsu)","difficulty": "Easy"},{"title": "Complete Dinery (Ganko Sushi)","difficulty": "Easy"},{"title": "Complete Dinery (Kinryu Ramen)","difficulty": "Easy"},{"title": "Complete Dinery (Kani Douraku)","difficulty": "Easy"},{"title": "Complete Dinery (Zuboraya)","difficulty": "Easy"},{"title": "Complete Dinery (Kushikatsu Daruma)","difficulty": "Easy"},{"title": "Complete Dinery (Komian)","difficulty": "Easy"},{"title": "Complete Dinery (Utahime)","difficulty": "Easy"},{"title": "Complete Dinery (Shot Bar STIJL)","difficulty": "Easy"}]}]},{"category_name": "Battle","groups": [{"group_name": "Defeat enemies on the street","options": [{"title": "Defeat 50 enemies on the street","difficulty": "Easy"},{"title": "Defeat 150 enemies on the street","difficulty": "Normal"},{"title": "Defeat 300 enemies on the street","difficulty": "Hard"},{"title": "Defeat 500 enemies on the street","difficulty": "Hard"}]},{"group_name": "Defeat enemies in the Brawler Style (Kiryu)","options": [{"title": "Defeat 5 enemies in the Brawler Style (Kiryu)","difficulty": "Easy"},{"title": "Defeat 100 enemies in the Brawler Style (Kiryu)","difficulty": "Normal"},{"title": "Defeat 200 enemies in the Brawler Style (Kiryu)","difficulty": "Hard"}]},{"group_name": "Defeat enemies in the Rush Style (Kiryu)","options": [{"title": "Defeat 50 enemies in the Rush Style (Kiryu)","difficulty": "Easy"},{"title": "Defeat 100 enemies in the Rush Style (Kiryu)","difficulty": "Normal"},{"title": "Defeat 200 enemies in the Rush Style (Kiryu)","difficulty": "Hard"}]},{"group_name": "Defeat enemies in the Beast Style (Kiryu)","options": [{"title": "Defeat 50 enemies in the Beast Style (Kiryu)","difficulty": "Easy"},{"title": "Defeat 100 enemies in the Beast Style (Kiryu)","difficulty": "Normal"},{"title": "Defeat 200 enemies in the Beast Style (Kiryu)","difficulty": "Hard"}]},{"group_name": "Defeat enemies in the Dragon Style (Kiryu)","options": [{"title": "Defeat 50 enemies in the Dragon Style (Kiryu)","difficulty": "Hard"},{"title": "Defeat 100 enemies in the Dragon Style (Kiryu)","difficulty": "Hard"},{"title": "Defeat 200 enemies in the Dragon Style (Kiryu)","difficulty": "Hard"}]},{"group_name": "Defeat enemies in the Thug Style (Majima)","options": [{"title": "Defeat 50 enemies in the Thug Style (Majima)","difficulty": "Easy"},{"title": "Defeat 100 enemies in the Thug Style (Majima)","difficulty": "Normal"},{"title": "Defeat 200 enemies in the Thug Style (Majima)","difficulty": "Hard"}]},{"group_name": "Defeat enemies in the Slugger Style (Majima)","options": [{"title": "Defeat 50 enemies in the Slugger Style (Majima)","difficulty": "Easy"},{"title": "Defeat 100 enemies in the Slugger Style (Majima)","difficulty": "Normal"},{"title": "Defeat 200 enemies in the Slugger Style (Majima)","difficulty": "Hard"}]},{"group_name": "Defeat enemies in the Breaker Style (Majima)","options": [{"title": "Defeat 50 enemies in the Breaker Style (Majima)","difficulty": "Easy"},{"title": "Defeat 100 enemies in the Breaker Style (Majima)","difficulty": "Normal"},{"title": "Defeat 200 enemies in the Breaker Style (Majima)","difficulty": "Hard"}]},{"group_name": "Defeat enemies in the Mad Dog Style (Majima)","options": [{"title": "Defeat 50 enemies in the Mad Dog Style (Majima)","difficulty": "Hard"},{"title": "Defeat 100 enemies in the Mad Dog Style (Majima)","difficulty": "Hard"},{"title": "Defeat 200 enemies in the Mad Dog Style (Majima)","difficulty": "Hard"}]},{"group_name": "Help attack victims around town","options": [{"title": "Help 5 attack victims around town","difficulty": "Easy"},{"title": "Help 15 attack victims around town","difficulty": "Normal"},{"title": "Help 30 attack victims around town","difficulty": "Hard"}]},{"group_name": "Win coliseum tournaments","options": [{"title": "Win 10 coliseum tournaments","difficulty": "Easy"},{"title": "Win 20 coliseum tournaments","difficulty": "Normal"},{"title": "Win 30 coliseum tournaments","difficulty": "Normal"},{"title": "Win 40 coliseum tournaments","difficulty": "Hard"},{"title": "Win 50 coliseum tournaments","difficulty": "Hard"}]},{"group_name": "Defeat coliseum opponents","options": [{"title": "Defeat 5 coliseum opponents","difficulty": "Easy"},{"title": "Defeat 15 coliseum opponents","difficulty": "Normal"},{"title": "Defeat 25 coliseum opponents","difficulty": "Hard"}]},{"group_name": "Defeat nouveau riche enemies","options": [{"title": "Defeat 1 nouveau riche enemy","difficulty": "Easy"},{"title": "Defeat 5 nouveau riche enemies","difficulty": "Normal"},{"title": "Defeat 10 nouveau riche enemies","difficulty": "Hard"}]},{"group_name": "Defeat Mr. Shakedown (Kiryu)","options": [{"title": "Defeat Mr. Shakedown 1 time (Kiryu)","difficulty": "Easy"},{"title": "Defeat Mr. Shakedown 5 times (Kiryu)","difficulty": "Normal"},{"title": "Defeat Mr. Shakedown 10 times (Kiryu)","difficulty": "Hard"}]},{"group_name": "Defeat Mr. Shakedown (Majima)","options": [{"title": "Defeat Mr. Shakedown 1 time (Majima)","difficulty": "Easy"},{"title": "Defeat Mr. Shakedown 5 times (Majima)","difficulty": "Normal"},{"title": "Defeat Mr. Shakedown 10 times (Majima)","difficulty": "Hard"}]},{"group_name": "Defeat Sega","options": [{"title": "Defeat Sega 1 time","difficulty": "Normal"}]},{"group_name": "Earn a total in battle","options": [{"title": "Earn a total of 1 mil in battle","difficulty": "Easy"},{"title": "Earn a total of 5 mil in battle","difficulty": "Easy"},{"title": "Earn a total of 10 mil in battle","difficulty": "Normal"},{"title": "Earn a total of 100 mil in battle","difficulty": "Hard"}]},{"group_name": "Use Heat Actions","options": [{"title": "Use Heat Actions 20 times","difficulty": "Easy"},{"title": "Use Heat Actions 50 times","difficulty": "Normal"},{"title": "Use Heat Actions 100 times","difficulty": "Normal"},{"title": "Use Heat Actions 200 times","difficulty": "Hard"},{"title": "Use Heat Actions 300 times","difficulty": "Hard"}]},{"group_name": "Use different Heat Actions (Kiryu)","options": [{"title": "Use 10 different Heat Actions (Kiryu)","difficulty": "Easy"},{"title": "Use 20 different Heat Actions (Kiryu)","difficulty": "Normal"},{"title": "Use 40 different Heat Actions (Kiryu)","difficulty": "Hard"}]},{"group_name": "Use different Heat Actions (Majima)","options": [{"title": "Use 10 different Heat Actions (Majima)","difficulty": "Easy"},{"title": "Use 20 different Heat Actions (Majima)","difficulty": "Normal"},{"title": "Use 30 different Heat Actions (Majima)","difficulty": "Hard"}]},{"group_name": "Break objects in battle","options": [{"title": "Break 20 objects in battle","difficulty": "Easy"},{"title": "Break 50 objects in battle","difficulty": "Normal"},{"title": "Break 100 objects in battle","difficulty": "Hard"}]},{"group_name": "Acquire different weapons","options": [{"title": "Acquire 10 different weapons","difficulty": "Easy"},{"title": "Acquire 40 different weapons","difficulty": "Normal"},{"title": "Acquire 70 different weapons","difficulty": "Hard"},{"title": "Acquire 100 different weapons","difficulty": "Hard"}]},{"group_name": "Acquire different gear items","options": [{"title": "Acquire 10 different gear items","difficulty": "Easy"},{"title": "Acquire 25 different gear items","difficulty": "Normal"},{"title": "Acquire 45 different gear items","difficulty": "Hard"},{"title": "Acquire 70 different gear items","difficulty": "Hard"}]},{"group_name": "Defeat enemies using weapons","options": [{"title": "Defeat 10 enemies using weapons","difficulty": "Easy"},{"title": "Defeat 50 enemies using weapons","difficulty": "Normal"},{"title": "Defeat 100 enemies using weapons","difficulty": "Hard"}]},{"group_name": "Learn all moves (Kiryu)","options": [{"title": "Learn all of Bacchus' moves (Kiryu)","difficulty": "Normal"},{"title": "Learn all of Kamoji's moves (Kiryu)","difficulty": "Normal"},{"title": "Learn all of Miss Tatsu's moves (Kiryu)","difficulty": "Normal"}]},{"group_name": "Learn all moves (Majima)","options": [{"title": "Finish all bouts with Komeki (Majima)","difficulty": "Normal"},{"title": "Learn all of Fei Hu's moves (Majima)","difficulty": "Normal"},{"title": "Learn all of Areshi's moves (Majima)","difficulty": "Normal"}]}]},{"category_name": "Business - Kiryu","groups": [{"group_name": "Collect total proceeds","options": [{"title": "Collect total proceeds of 1 mil (Kiryu)","difficulty": "Easy"},{"title": "Collect total proceeds of 10 mil (Kiryu)","difficulty": "Normal"},{"title": "Collect total proceeds of 100 mil (Kiryu)","difficulty": "Hard"},{"title": "Collect total proceeds of 1 bil (Kiryu)","difficulty": "Hard"}]},{"group_name": "Buy Leisure King properties","options": [{"title": "Buy 1 Leisure King property","difficulty": "Easy"},{"title": "Buy 4 Leisure King properties","difficulty": "Easy"},{"title": "Buy 7 Leisure King properties","difficulty": "Easy"}]},{"group_name": "Buy Electronics King properties","options": [{"title": "Buy 2 Electronics King properties","difficulty": "Easy"},{"title": "Buy 5 Electronics King properties","difficulty": "Easy"},{"title": "Buy 8 Electronics King properties","difficulty": "Normal"}]},{"group_name": "Buy Pleasure King properties","options": [{"title": "Buy 3 Pleasure King properties","difficulty": "Normal"},{"title": "Buy 6 Pleasure King properties","difficulty": "Normal"},{"title": "Buy 9 Pleasure King properties","difficulty": "Normal"}]},{"group_name": "Buy Gambling King properties","options": [{"title": "Buy 2 Gambling King properties","difficulty": "Normal"},{"title": "Buy 5 Gambling King properties","difficulty": "Hard"},{"title": "Buy 8 Gambling King properties","difficulty": "Hard"}]},{"group_name": "Buy Media King properties","options": [{"title": "Buy 2 Media King properties","difficulty": "Hard"},{"title": "Buy 5 Media King properties","difficulty": "Hard"},{"title": "Buy 8 Media King properties","difficulty": "Hard"}]},{"group_name": "Raise shops to Rank S","options": [{"title": "Raise 5 shops to Rank S","difficulty": "Normal"},{"title": "Raise 20 shops to Rank S","difficulty": "Normal"},{"title": "Raise 50 shops to Rank S","difficulty": "Hard"}]},{"group_name": "Recruit managers","options": [{"title": "Recruit 3 managers","difficulty": "Normal"},{"title": "Recruit 8 managers","difficulty": "Hard"}]},{"group_name": "Recruit advisors","options": [{"title": "Recruit 3 advisors","difficulty": "Normal"},{"title": "Recruit 8 advisors","difficulty": "Hard"}]},{"group_name": "Recruit security","options": [{"title": "Recruit 3 security","difficulty": "Normal"},{"title": "Recruit 8 security","difficulty": "Hard"}]},{"group_name": "Defeat the Kings","options": [{"title": "Defeat the Leisure King","difficulty": "Easy"},{"title": "Defeat the Electronics King","difficulty": "Normal"},{"title": "Defeat the Pleasure King","difficulty": "Normal"},{"title": "Defeat the Gambling King","difficulty": "Hard"},{"title": "Defeat the Media King","difficulty": "Hard"}]},{"group_name": "Occupy 100% of an area","options": [{"title": "Occupy 100% of the Leisure King area","difficulty": "Normal"},{"title": "Occupy 100% of the Electronics King area","difficulty": "Normal"},{"title": "Occupy 100% of the Pleasure King area","difficulty": "Hard"},{"title": "Occupy 100% of the Gambling King area","difficulty": "Hard"},{"title": "Occupy 100% of the Media King area","difficulty": "Hard"}]}]},{"category_name": "Business - Majima","groups": [{"group_name": "Collect total proceeds","options": [{"title": "Collect total proceeds of 10 mil (Majima)","difficulty": "Easy"},{"title": "Collect total proceeds of 100 mil (Majima)","difficulty": "Normal"},{"title": "Collect total proceeds of 400 mil (Majima)","difficulty": "Hard"},{"title": "Collect total proceeds of 1 bil (Majima)","difficulty": "Hard"}]},{"group_name": "Complete substories","options": [{"title": "Complete Yuki's Substory","difficulty": "Normal"},{"title": "Complete Ai's Substory","difficulty": "Normal"},{"title": "Complete Saki's Substory","difficulty": "Hard"},{"title": "Complete Hibiki's Substory","difficulty": "Hard"},{"title": "Complete Chika's Substory","difficulty": "Hard"},{"title": "Complete Mana's Substory","difficulty": "Hard"}]},{"group_name": "Accessory Collections","options": [{"title": "Yuki's Accessory Collection 10","difficulty": "Normal"},{"title": "Yuki's Accessory Collection 20","difficulty": "Normal"},{"title": "Yuki's Accessory Collection 30","difficulty": "Hard"},{"title": "Ai's Accessory Collection 10","difficulty": "Normal"},{"title": "Ai's Accessory Collection 20","difficulty": "Hard"},{"title": "Ai's Accessory Collection 30","difficulty": "Hard"},{"title": "Saki's Accessory Collection 10","difficulty": "Normal"},{"title": "Saki's Accessory Collection 20","difficulty": "Hard"},{"title": "Saki's Accessory Collection 30","difficulty": "Hard"},{"title": "Hibiki's Accessory Collection 10","difficulty": "Normal"},{"title": "Hibiki's Accessory Collection 20","difficulty": "Hard"},{"title": "Hibiki's Accessory Collection 30","difficulty": "Hard"},{"title": "Chika's Accessory Collection 10","difficulty": "Normal"},{"title": "Chika's Accessory Collection 20","difficulty": "Hard"},{"title": "Chika's Accessory Collection 30","difficulty": "Hard"},{"title": "Mana's Accessory Collection 10","difficulty": "Hard"},{"title": "Mana's Accessory Collection 20","difficulty": "Hard"},{"title": "Mana's Accessory Collection 30","difficulty": "Hard"}]},{"group_name": "Serve a total customers","options": [{"title": "Serve a total of 100 customers","difficulty": "Easy"},{"title": "Serve a total of 200 customers","difficulty": "Normal"},{"title": "Serve a total of 500 customers","difficulty": "Hard"}]},{"group_name": "Recruit hostesses","options": [{"title": "Recruit 6 bronze hostesses","difficulty": "Normal"},{"title": "Recruit 4 silver hostesses","difficulty": "Normal"},{"title": "Recruit 4 gold hostesses","difficulty": "Hard"},{"title": "Recruit 6 platinum hostesses","difficulty": "Hard"}]},{"group_name": "Partner with shops in Mars area","options": [{"title": "Partner with 3 shops in Mars area","difficulty": "Easy"},{"title": "Partner with 6 shops in Mars area","difficulty": "Easy"},{"title": "Partner with 10 shops in Mars area","difficulty": "Easy"}]},{"group_name": "Partner with shops in Jupiter area","options": [{"title": "Partner with 3 shops in Jupiter area","difficulty": "Easy"},{"title": "Partner with 6 shops in Jupiter area","difficulty": "Easy"},{"title": "Partner with 10 shops in Jupiter area","difficulty": "Normal"}]},{"group_name": "Partner with shops in Venus area","options": [{"title": "Partner with 3 shops in Venus area","difficulty": "Normal"},{"title": "Partner with 6 shops in Venus area","difficulty": "Normal"},{"title": "Partner with 10 shops in Venus area","difficulty": "Normal"}]},{"group_name": "Partner with shops in Mercury area","options": [{"title": "Partner with 3 shops in Mercury area","difficulty": "Normal"},{"title": "Partner with 6 shops in Mercury area","difficulty": "Hard"},{"title": "Partner with 10 shops in Mercury area","difficulty": "Hard"}]},{"group_name": "Partner with shops in Moon area","options": [{"title": "Partner with 3 shops in Moon area","difficulty": "Hard"},{"title": "Partner with 6 shops in Moon area","difficulty": "Hard"},{"title": "Partner with 10 shops in Moon area","difficulty": "Hard"}]},{"group_name": "Take over an area","options": [{"title": "Take over Mars area","difficulty": "Easy"},{"title": "Take over Jupiter area","difficulty": "Normal"},{"title": "Take over Mercury area","difficulty": "Normal"},{"title": "Take over Venus area","difficulty": "Hard"},{"title": "Take over Moon area","difficulty": "Hard"}]},{"group_name": "Earn fans in an area","options": [{"title": "Earn 1500 fans in Mars area","difficulty": "Easy"},{"title": "Earn 3000 fans in Jupiter area","difficulty": "Normal"},{"title": "Earn 4000 fans in Mercury area","difficulty": "Normal"},{"title": "Earn 5000 fans in Venus area","difficulty": "Hard"},{"title": "Earn 10000 fans in Moon area","difficulty": "Hard"}]}]},{"category_name": "Substories - Kiryu","groups": [{"group_name": "Complete Kiryu Substories","options": [{"title": "Complete 5 Kiryu Substories","difficulty": "Easy"},{"title": "Complete 10 Kiryu Substories","difficulty": "Normal"},{"title": "Complete 20 Kiryu Substories","difficulty": "Normal"},{"title": "Complete 30 Kiryu Substories","difficulty": "Hard"},{"title": "Complete 40 Kiryu Substories","difficulty": "Hard"}]},{"group_name": "Befriend people","options": [{"title": "Befriend Officer Kikuchi","difficulty": "Normal"},{"title": "Befriend Kitajima the Shroomer","difficulty": "Normal"},{"title": "Befriend Mr. Libido - Akimoto","difficulty": "Normal"},{"title": "Befriend Mr. Moneybags - Fukushima","difficulty": "Normal"},{"title": "Befriend Pocket Circuit Fighter","difficulty": "Normal"},{"title": "Befriend Miho","difficulty": "Normal"},{"title": "Befriend Emiri","difficulty": "Normal"},{"title": "Befriend the Sushi Gin Chef","difficulty": "Normal"},{"title": "Befriend Luka","difficulty": "Normal"}]}]},{"category_name": "Substories - Majima","groups": [{"group_name": "Complete Majima Substories","options": [{"title": "Complete 5 Majima Substories","difficulty": "Easy"},{"title": "Complete 10 Majima Substories","difficulty": "Normal"},{"title": "Complete 20 Majima Substories","difficulty": "Normal"},{"title": "Complete 30 Majima Substories","difficulty": "Hard"},{"title": "Complete 40 Majima Substories","difficulty": "Hard"}]},{"group_name": "Befriend people","options": [{"title": "Befriend Simon the Mystery Man","difficulty": "Normal"},{"title": "Befriend Mr. Moneybags - Tanioka","difficulty": "Normal"},{"title": "Befriend Mr. Libido - Habu","difficulty": "Normal"},{"title": "Befriend Doll Girl","difficulty": "Normal"},{"title": "Befriend the boss at Komian","difficulty": "Normal"},{"title": "Befriend the barkeep","difficulty": "Normal"},{"title": "Befriend the Gandhara staff member","difficulty": "Normal"},{"title": "Befriend Kyoko","difficulty": "Normal"}]}]},{"category_name": "Minigames - Pocket Circuit","groups": [{"group_name": "Collect different tires","options": [{"title": "Collect 5 different tires","difficulty": "Easy"},{"title": "Collect 10 different tires","difficulty": "Normal"},{"title": "Collect 20 different tires","difficulty": "Hard"}]},{"group_name": "Collect different motors","options": [{"title": "Collect 5 different motors","difficulty": "Easy"},{"title": "Collect 10 different motors","difficulty": "Normal"},{"title": "Collect 15 different motors","difficulty": "Hard"}]},{"group_name": "Collect different gears","options": [{"title": "Collect 5 different gears","difficulty": "Easy"},{"title": "Collect 10 different gears","difficulty": "Normal"},{"title": "Collect 20 different gears","difficulty": "Hard"}]},{"group_name": "Collect different frames","options": [{"title": "Collect 5 different frames","difficulty": "Easy"},{"title": "Collect 10 different frames","difficulty": "Normal"},{"title": "Collect 20 different frames","difficulty": "Hard"}]},{"group_name": "Win / compete in races","options": [{"title": "Compete in races 10 times","difficulty": "Easy"},{"title": "Win the Introductory Race","difficulty": "Easy"},{"title": "Win the Little Racers' Cup","difficulty": "Easy"},{"title": "Win the Rookies' Race","difficulty": "Easy"},{"title": "Win the Pro-Am Race","difficulty": "Normal"},{"title": "Win the Experts' Race","difficulty": "Normal"},{"title": "Win the Champions' Cup","difficulty": "Hard"},{"title": "Win the King of Speed Cup","difficulty": "Hard"}]}]},{"category_name": "Minigames - Arcade","groups": [{"group_name": "Get points in game","options": [{"title": "Get 5 million points in Space Harrier","difficulty": "Normal"},{"title": "Get 5 million points in Out Run","difficulty": "Normal"},{"title": "Get 100,000 points in Fantasy Zone","difficulty": "Normal"},{"title": "Get 5 million points in Super Hang-On","difficulty": "Normal"}]},{"group_name": "Acquire different prizes","options": [{"title": "Acquire 5 different prizes","difficulty": "Normal"},{"title": "Acquire 15 different prizes","difficulty": "Hard"}]}]},{"category_name": "Minigames - Mahjong","groups": [{"group_name": "Win shogi games without a take back","options": [{"title": "Win 1 shogi game without a take back","difficulty": "Easy"},{"title": "Win 3 shogi games without a take back","difficulty": "Normal"},{"title": "Win 5 shogi games without a take back","difficulty": "Hard"}]},{"group_name": "Go out","options": [{"title": "Go out 10 times","difficulty": "Easy"},{"title": "Go out with Mangan 5 times","difficulty": "Normal"},{"title": "Go out with Haneman 1 time","difficulty": "Normal"},{"title": "Go out with Riichi Ippatsu","difficulty": "Hard"},{"title": "Go out with Full Straight","difficulty": "Hard"}]},{"group_name": "Earn a total in Mahjong","options": [{"title": "Earn a total of 10 million in mahjong","difficulty": "Hard"}]}]},{"category_name": "Minigames - Fishing","groups": [{"group_name": "Collect different freshwater fish","options": [{"title": "Collect 5 different freshwater fish","difficulty": "Easy"},{"title": "Collect 15 different freshwater fish","difficulty": "Hard"}]},{"group_name": "Collect different saltwater fish","options": [{"title": "Collect 5 different saltwater fish","difficulty": "Easy"},{"title": "Collect 18 different saltwater fish","difficulty": "Hard"}]}]},{"category_name": "Minigames - Gambling","groups": [{"group_name": "Earn a total with gambling","options": [{"title": "Earn a total of 1 million in cho-han","difficulty": "Normal"},{"title": "Earn a total of 1 million in cee-lo","difficulty": "Normal"},{"title": "Earn a total of 1 million in koi-koi","difficulty": "Normal"},{"title": "Earn a total of 1 million in oicho-kabu","difficulty": "Normal"}]},{"group_name": "Win a total in Catfights","options": [{"title": "Win a total of 1mil yen in Catfights","difficulty": "Easy"},{"title": "Win a total of 10mil yen in Catfights","difficulty": "Normal"},{"title": "Win a total of 100mil yen in Catfights","difficulty": "Hard"}]}]},{"category_name": "Minigames - Casino","groups": [{"group_name": "Earn a total with the casino","options": [{"title": "Earn a total of 10 million in poker","difficulty": "Normal"},{"title": "Earn a total of 5 million in blackjack","difficulty": "Normal"},{"title": "Earn a total of 10 million in baccarat","difficulty": "Normal"},{"title": "Earn a total of 10 million in roulette","difficulty": "Normal"}]}]},{"category_name": "Minigames - Sports","groups": [{"group_name": "Earn a total with sports","options": [{"title": "Earn a total of 10 million in darts","difficulty": "Normal"},{"title": "Earn a total of 10 million in pool","difficulty": "Normal"},{"title": "Earn a total of 5 million by batting","difficulty": "Normal"},{"title": "Earn a total of 10 million in split games","difficulty": "Normal"}]},{"group_name": "Perform various things","options": [{"title": "Perform 10 hat tricks","difficulty": "Normal"},{"title": "Perform 3 combination shots","difficulty": "Normal"},{"title": "Perform 3 carom shots","difficulty": "Normal"},{"title": "Bowl 10 strikes","difficulty": "Normal"}]}]},{"category_name": "Minigames - Dancing","groups": [{"group_name": "Dancing (Easy)","options": [{"title": "Friday Night (Easy)","difficulty": "Easy"},{"title": "Queen of Passion (Easy)","difficulty": "Easy"},{"title": "I'm Gonna Make Her Mine (Easy)","difficulty": "Easy"},{"title": "I Wanna Take You Home (Easy)","difficulty": "Easy"},{"title": "Koi no DISCO QUEEN (Easy)","difficulty": "Easy"}]},{"group_name": "Dancing (Normal)","options": [{"title": "Friday Night (Normal)","difficulty": "Easy"},{"title": "Queen of Passion (Normal)","difficulty": "Easy"},{"title": "I'm Gonna Make Her Mine (Normal)","difficulty": "Easy"},{"title": "I Wanna Take You Home (Normal)","difficulty": "Easy"},{"title": "Koi no DISCO QUEEN (Normal)","difficulty": "Easy"}]},{"group_name": "Dancing (Hard)","options": [{"title": "Friday Night (Hard)","difficulty": "Easy"},{"title": "I'm Gonna Make Her Mine (Hard)","difficulty": "Easy"},{"title": "Queen of Passion (Hard)","difficulty": "Easy"},{"title": "I Wanna Take You Home (Hard)","difficulty": "Easy"},{"title": "Koi no DISCO QUEEN (Hard)","difficulty": "Easy"}]}]},{"category_name": "Minigames - Karaoke","groups": [{"group_name": "Get 90+ in a song","options": [{"title": "Get 90+ in Judgement -Shinpan- (Kiryu)","difficulty": "Easy"},{"title": "Get 90+ in Bakamitai (Kiryu)","difficulty": "Easy"},{"title": "Get 90+ in x3 Shine (Kiryu)","difficulty": "Easy"},{"title": "Get 90+ in Heartbreak Mermaid (Kiryu)","difficulty": "Easy"},{"title": "Get 90+ in Rouge of Love (Kiryu)","difficulty": "Easy"},{"title": "Get 90+ in 24-hour Cinderella (Majima)","difficulty": "Easy"},{"title": "Get 90+ in x3 Shine (Majima)","difficulty": "Easy"},{"title": "Get 90+ in Heartbreak Mermaid (Majima)","difficulty": "Easy"},{"title": "Get 90+ in Rouge of Love (Majima)","difficulty": "Easy"}]}]},{"category_name": "Minigames - Dates","groups": [{"group_name": "Befriend girlfriend","options": [{"title": "Befriend Haruki","difficulty": "Normal"},{"title": "Befriend Ayaka","difficulty": "Normal"},{"title": "Befriend Riku","difficulty": "Normal"}]}]}]}] \ No newline at end of file +[ + { + "game_name": "Yakuza 0", + "icon": "https://i.imgur.com/o5itGhm.png", + "categories": [ + { + "category_name": "Adventure", + "groups": [ + { + "group_name": "Talk to people", + "options": [ + { + "title": "Talk to people 50 times", + "difficulty": "Easy" + }, + { + "title": "Talk to people 100 times", + "difficulty": "Normal" + }, + { + "title": "Talk to people 300 times", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Dine at eateries", + "options": [ + { + "title": "Dine at eateries 10 times", + "difficulty": "Easy" + }, + { + "title": "Dine at eateries 30 times", + "difficulty": "Normal" + }, + { + "title": "Dine at eateries 50 times", + "difficulty": "Normal" + }, + { + "title": "Dine at eateries 100 times", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Buy from Dream Machines", + "options": [ + { + "title": "Buy from Dream Machines 5 times", + "difficulty": "Easy" + }, + { + "title": "Buy from Dream Machines 10 times", + "difficulty": "Normal" + }, + { + "title": "Buy from Dream Machines 20 times", + "difficulty": "Normal" + }, + { + "title": "Buy from Dream Machines 50 times", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Entertain yourself", + "options": [ + { + "title": "Entertain yourself 10 times", + "difficulty": "Easy" + }, + { + "title": "Entertain yourself 30 times", + "difficulty": "Normal" + }, + { + "title": "Entertain yourself 50 times", + "difficulty": "Normal" + }, + { + "title": "Entertain yourself 100 times", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Eat food items", + "options": [ + { + "title": "Eat 5 food items", + "difficulty": "Easy" + }, + { + "title": "Eat 15 food items", + "difficulty": "Normal" + }, + { + "title": "Eat 30 food items", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Eat medicine items", + "options": [ + { + "title": "Eat 5 medicine items", + "difficulty": "Easy" + }, + { + "title": "Eat 15 medicine items", + "difficulty": "Normal" + }, + { + "title": "Eat 30 medicine items", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Travel by taxi", + "options": [ + { + "title": "Travel by taxi 5 times", + "difficulty": "Easy" + }, + { + "title": "Travel by taxi 15 times", + "difficulty": "Normal" + }, + { + "title": "Travel by taxi 30 times", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Travel on foot", + "options": [ + { + "title": "Travel 20km on foot", + "difficulty": "Normal" + }, + { + "title": "Travel 50km on foot", + "difficulty": "Hard" + }, + { + "title": "Travel 100km on foot", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Travel by dashing", + "options": [ + { + "title": "Travel 2km by dashing", + "difficulty": "Easy" + }, + { + "title": "Travel 5km by dashing", + "difficulty": "Normal" + }, + { + "title": "Travel 10km by dashing", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Earn money", + "options": [ + { + "title": "Earn a total of 20 mil yen", + "difficulty": "Easy" + }, + { + "title": "Earn a total of 50 mil yen", + "difficulty": "Normal" + }, + { + "title": "Earn a total of 100 mil yen", + "difficulty": "Normal" + }, + { + "title": "Earn a total of 1 bil yen", + "difficulty": "Hard" + }, + { + "title": "Earn a total of 10 bil yen", + "difficulty": "Hard" + }, + { + "title": "Earn a total of 50 bil yen", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Spend money", + "options": [ + { + "title": "Spend a total of 1 mil yen", + "difficulty": "Easy" + }, + { + "title": "Spend a total of 10 mil yen", + "difficulty": "Normal" + }, + { + "title": "Spend a total of 100 mil yen", + "difficulty": "Normal" + }, + { + "title": "Spend a total of 1 bil yen", + "difficulty": "Hard" + }, + { + "title": "Spend a total of 5 bil yen", + "difficulty": "Hard" + }, + { + "title": "Spend a total of 10 bil yen", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Scatter money", + "options": [ + { + "title": "Scatter a total of 1 mil yen", + "difficulty": "Easy" + }, + { + "title": "Scatter a total of 3 mil yen", + "difficulty": "Easy" + }, + { + "title": "Scatter a total of 5 mil yen", + "difficulty": "Normal" + }, + { + "title": "Scatter a total of 10 mil yen", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Collect telephone cards (Kiryu)", + "options": [ + { + "title": "Collect 5 telephone cards (Kiryu)", + "difficulty": "Easy" + }, + { + "title": "Collect 20 telephone cards (Kiryu)", + "difficulty": "Normal" + }, + { + "title": "Collect 45 telephone cards (Kiryu)", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Collect telephone cards (Majima)", + "options": [ + { + "title": "Collect 5 telephone cards (Majima)", + "difficulty": "Easy" + }, + { + "title": "Collect 20 telephone cards (Majima)", + "difficulty": "Normal" + }, + { + "title": "Collect 45 telephone cards (Majima)", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Watch different video clips", + "options": [ + { + "title": "Watch 5 different video clips", + "difficulty": "Normal" + }, + { + "title": "Watch 15 different video clips", + "difficulty": "Hard" + }, + { + "title": "Watch 30 different video clips", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Complete dineries", + "options": [ + { + "title": "Complete Dinery (Gindaco)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Yoronotaki)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Ringer Hut)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Fuji Soba)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Akaushimaru)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Tengokuken)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Sushi Gin)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Cafe Alps)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Kanrai)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Smile Burger)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Maharaja)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Heroine)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Earth Angel)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Shellac)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Vincent)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Tsuruhashi Fugetsu)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Ganko Sushi)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Kinryu Ramen)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Kani Douraku)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Zuboraya)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Kushikatsu Daruma)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Komian)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Utahime)", + "difficulty": "Easy" + }, + { + "title": "Complete Dinery (Shot Bar STIJL)", + "difficulty": "Easy" + } + ] + } + ] + }, + { + "category_name": "Battle", + "groups": [ + { + "group_name": "Defeat enemies on the street", + "options": [ + { + "title": "Defeat 50 enemies on the street", + "difficulty": "Easy" + }, + { + "title": "Defeat 150 enemies on the street", + "difficulty": "Normal" + }, + { + "title": "Defeat 300 enemies on the street", + "difficulty": "Hard" + }, + { + "title": "Defeat 500 enemies on the street", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Defeat enemies in the Brawler Style (Kiryu)", + "options": [ + { + "title": "Defeat 5 enemies in the Brawler Style (Kiryu)", + "difficulty": "Easy" + }, + { + "title": "Defeat 100 enemies in the Brawler Style (Kiryu)", + "difficulty": "Normal" + }, + { + "title": "Defeat 200 enemies in the Brawler Style (Kiryu)", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Defeat enemies in the Rush Style (Kiryu)", + "options": [ + { + "title": "Defeat 50 enemies in the Rush Style (Kiryu)", + "difficulty": "Easy" + }, + { + "title": "Defeat 100 enemies in the Rush Style (Kiryu)", + "difficulty": "Normal" + }, + { + "title": "Defeat 200 enemies in the Rush Style (Kiryu)", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Defeat enemies in the Beast Style (Kiryu)", + "options": [ + { + "title": "Defeat 50 enemies in the Beast Style (Kiryu)", + "difficulty": "Easy" + }, + { + "title": "Defeat 100 enemies in the Beast Style (Kiryu)", + "difficulty": "Normal" + }, + { + "title": "Defeat 200 enemies in the Beast Style (Kiryu)", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Defeat enemies in the Dragon Style (Kiryu)", + "options": [ + { + "title": "Defeat 50 enemies in the Dragon Style (Kiryu)", + "difficulty": "Hard" + }, + { + "title": "Defeat 100 enemies in the Dragon Style (Kiryu)", + "difficulty": "Hard" + }, + { + "title": "Defeat 200 enemies in the Dragon Style (Kiryu)", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Defeat enemies in the Thug Style (Majima)", + "options": [ + { + "title": "Defeat 50 enemies in the Thug Style (Majima)", + "difficulty": "Easy" + }, + { + "title": "Defeat 100 enemies in the Thug Style (Majima)", + "difficulty": "Normal" + }, + { + "title": "Defeat 200 enemies in the Thug Style (Majima)", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Defeat enemies in the Slugger Style (Majima)", + "options": [ + { + "title": "Defeat 50 enemies in the Slugger Style (Majima)", + "difficulty": "Easy" + }, + { + "title": "Defeat 100 enemies in the Slugger Style (Majima)", + "difficulty": "Normal" + }, + { + "title": "Defeat 200 enemies in the Slugger Style (Majima)", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Defeat enemies in the Breaker Style (Majima)", + "options": [ + { + "title": "Defeat 50 enemies in the Breaker Style (Majima)", + "difficulty": "Easy" + }, + { + "title": "Defeat 100 enemies in the Breaker Style (Majima)", + "difficulty": "Normal" + }, + { + "title": "Defeat 200 enemies in the Breaker Style (Majima)", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Defeat enemies in the Mad Dog Style (Majima)", + "options": [ + { + "title": "Defeat 50 enemies in the Mad Dog Style (Majima)", + "difficulty": "Hard" + }, + { + "title": "Defeat 100 enemies in the Mad Dog Style (Majima)", + "difficulty": "Hard" + }, + { + "title": "Defeat 200 enemies in the Mad Dog Style (Majima)", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Help attack victims around town", + "options": [ + { + "title": "Help 5 attack victims around town", + "difficulty": "Easy" + }, + { + "title": "Help 15 attack victims around town", + "difficulty": "Normal" + }, + { + "title": "Help 30 attack victims around town", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Win coliseum tournaments", + "options": [ + { + "title": "Win 10 coliseum tournaments", + "difficulty": "Easy" + }, + { + "title": "Win 20 coliseum tournaments", + "difficulty": "Normal" + }, + { + "title": "Win 30 coliseum tournaments", + "difficulty": "Normal" + }, + { + "title": "Win 40 coliseum tournaments", + "difficulty": "Hard" + }, + { + "title": "Win 50 coliseum tournaments", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Defeat coliseum opponents", + "options": [ + { + "title": "Defeat 5 coliseum opponents", + "difficulty": "Easy" + }, + { + "title": "Defeat 15 coliseum opponents", + "difficulty": "Normal" + }, + { + "title": "Defeat 25 coliseum opponents", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Defeat nouveau riche enemies", + "options": [ + { + "title": "Defeat 1 nouveau riche enemy", + "difficulty": "Easy" + }, + { + "title": "Defeat 5 nouveau riche enemies", + "difficulty": "Normal" + }, + { + "title": "Defeat 10 nouveau riche enemies", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Defeat Mr. Shakedown (Kiryu)", + "options": [ + { + "title": "Defeat Mr. Shakedown 1 time (Kiryu)", + "difficulty": "Easy" + }, + { + "title": "Defeat Mr. Shakedown 5 times (Kiryu)", + "difficulty": "Normal" + }, + { + "title": "Defeat Mr. Shakedown 10 times (Kiryu)", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Defeat Mr. Shakedown (Majima)", + "options": [ + { + "title": "Defeat Mr. Shakedown 1 time (Majima)", + "difficulty": "Easy" + }, + { + "title": "Defeat Mr. Shakedown 5 times (Majima)", + "difficulty": "Normal" + }, + { + "title": "Defeat Mr. Shakedown 10 times (Majima)", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Defeat Sega", + "options": [ + { + "title": "Defeat Sega 1 time", + "difficulty": "Normal" + } + ] + }, + { + "group_name": "Earn a total in battle", + "options": [ + { + "title": "Earn a total of 1 mil in battle", + "difficulty": "Easy" + }, + { + "title": "Earn a total of 5 mil in battle", + "difficulty": "Easy" + }, + { + "title": "Earn a total of 10 mil in battle", + "difficulty": "Normal" + }, + { + "title": "Earn a total of 100 mil in battle", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Use Heat Actions", + "options": [ + { + "title": "Use Heat Actions 20 times", + "difficulty": "Easy" + }, + { + "title": "Use Heat Actions 50 times", + "difficulty": "Normal" + }, + { + "title": "Use Heat Actions 100 times", + "difficulty": "Normal" + }, + { + "title": "Use Heat Actions 200 times", + "difficulty": "Hard" + }, + { + "title": "Use Heat Actions 300 times", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Use different Heat Actions (Kiryu)", + "options": [ + { + "title": "Use 10 different Heat Actions (Kiryu)", + "difficulty": "Easy" + }, + { + "title": "Use 20 different Heat Actions (Kiryu)", + "difficulty": "Normal" + }, + { + "title": "Use 40 different Heat Actions (Kiryu)", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Use different Heat Actions (Majima)", + "options": [ + { + "title": "Use 10 different Heat Actions (Majima)", + "difficulty": "Easy" + }, + { + "title": "Use 20 different Heat Actions (Majima)", + "difficulty": "Normal" + }, + { + "title": "Use 30 different Heat Actions (Majima)", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Break objects in battle", + "options": [ + { + "title": "Break 20 objects in battle", + "difficulty": "Easy" + }, + { + "title": "Break 50 objects in battle", + "difficulty": "Normal" + }, + { + "title": "Break 100 objects in battle", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Acquire different weapons", + "options": [ + { + "title": "Acquire 10 different weapons", + "difficulty": "Easy" + }, + { + "title": "Acquire 40 different weapons", + "difficulty": "Normal" + }, + { + "title": "Acquire 70 different weapons", + "difficulty": "Hard" + }, + { + "title": "Acquire 100 different weapons", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Acquire different gear items", + "options": [ + { + "title": "Acquire 10 different gear items", + "difficulty": "Easy" + }, + { + "title": "Acquire 25 different gear items", + "difficulty": "Normal" + }, + { + "title": "Acquire 45 different gear items", + "difficulty": "Hard" + }, + { + "title": "Acquire 70 different gear items", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Defeat enemies using weapons", + "options": [ + { + "title": "Defeat 10 enemies using weapons", + "difficulty": "Easy" + }, + { + "title": "Defeat 50 enemies using weapons", + "difficulty": "Normal" + }, + { + "title": "Defeat 100 enemies using weapons", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Learn all moves (Kiryu)", + "options": [ + { + "title": "Learn all of Bacchus' moves (Kiryu)", + "difficulty": "Normal" + }, + { + "title": "Learn all of Kamoji's moves (Kiryu)", + "difficulty": "Normal" + }, + { + "title": "Learn all of Miss Tatsu's moves (Kiryu)", + "difficulty": "Normal" + } + ] + }, + { + "group_name": "Learn all moves (Majima)", + "options": [ + { + "title": "Finish all bouts with Komeki (Majima)", + "difficulty": "Normal" + }, + { + "title": "Learn all of Fei Hu's moves (Majima)", + "difficulty": "Normal" + }, + { + "title": "Learn all of Areshi's moves (Majima)", + "difficulty": "Normal" + } + ] + } + ] + }, + { + "category_name": "Business - Kiryu", + "groups": [ + { + "group_name": "Collect total proceeds", + "options": [ + { + "title": "Collect total proceeds of 1 mil (Kiryu)", + "difficulty": "Easy" + }, + { + "title": "Collect total proceeds of 10 mil (Kiryu)", + "difficulty": "Normal" + }, + { + "title": "Collect total proceeds of 100 mil (Kiryu)", + "difficulty": "Hard" + }, + { + "title": "Collect total proceeds of 1 bil (Kiryu)", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Buy Leisure King properties", + "options": [ + { + "title": "Buy 1 Leisure King property", + "difficulty": "Easy" + }, + { + "title": "Buy 4 Leisure King properties", + "difficulty": "Easy" + }, + { + "title": "Buy 7 Leisure King properties", + "difficulty": "Easy" + } + ] + }, + { + "group_name": "Buy Electronics King properties", + "options": [ + { + "title": "Buy 2 Electronics King properties", + "difficulty": "Easy" + }, + { + "title": "Buy 5 Electronics King properties", + "difficulty": "Easy" + }, + { + "title": "Buy 8 Electronics King properties", + "difficulty": "Normal" + } + ] + }, + { + "group_name": "Buy Pleasure King properties", + "options": [ + { + "title": "Buy 3 Pleasure King properties", + "difficulty": "Normal" + }, + { + "title": "Buy 6 Pleasure King properties", + "difficulty": "Normal" + }, + { + "title": "Buy 9 Pleasure King properties", + "difficulty": "Normal" + } + ] + }, + { + "group_name": "Buy Gambling King properties", + "options": [ + { + "title": "Buy 2 Gambling King properties", + "difficulty": "Normal" + }, + { + "title": "Buy 5 Gambling King properties", + "difficulty": "Hard" + }, + { + "title": "Buy 8 Gambling King properties", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Buy Media King properties", + "options": [ + { + "title": "Buy 2 Media King properties", + "difficulty": "Hard" + }, + { + "title": "Buy 5 Media King properties", + "difficulty": "Hard" + }, + { + "title": "Buy 8 Media King properties", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Raise shops to Rank S", + "options": [ + { + "title": "Raise 5 shops to Rank S", + "difficulty": "Normal" + }, + { + "title": "Raise 20 shops to Rank S", + "difficulty": "Normal" + }, + { + "title": "Raise 50 shops to Rank S", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Recruit managers", + "options": [ + { + "title": "Recruit 3 managers", + "difficulty": "Normal" + }, + { + "title": "Recruit 8 managers", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Recruit advisors", + "options": [ + { + "title": "Recruit 3 advisors", + "difficulty": "Normal" + }, + { + "title": "Recruit 8 advisors", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Recruit security", + "options": [ + { + "title": "Recruit 3 security", + "difficulty": "Normal" + }, + { + "title": "Recruit 8 security", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Defeat the Kings", + "options": [ + { + "title": "Defeat the Leisure King", + "difficulty": "Easy" + }, + { + "title": "Defeat the Electronics King", + "difficulty": "Normal" + }, + { + "title": "Defeat the Pleasure King", + "difficulty": "Normal" + }, + { + "title": "Defeat the Gambling King", + "difficulty": "Hard" + }, + { + "title": "Defeat the Media King", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Occupy 100% of an area", + "options": [ + { + "title": "Occupy 100% of the Leisure King area", + "difficulty": "Normal" + }, + { + "title": "Occupy 100% of the Electronics King area", + "difficulty": "Normal" + }, + { + "title": "Occupy 100% of the Pleasure King area", + "difficulty": "Hard" + }, + { + "title": "Occupy 100% of the Gambling King area", + "difficulty": "Hard" + }, + { + "title": "Occupy 100% of the Media King area", + "difficulty": "Hard" + } + ] + } + ] + }, + { + "category_name": "Business - Majima", + "groups": [ + { + "group_name": "Collect total proceeds", + "options": [ + { + "title": "Collect total proceeds of 10 mil (Majima)", + "difficulty": "Easy" + }, + { + "title": "Collect total proceeds of 100 mil (Majima)", + "difficulty": "Normal" + }, + { + "title": "Collect total proceeds of 400 mil (Majima)", + "difficulty": "Hard" + }, + { + "title": "Collect total proceeds of 1 bil (Majima)", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Complete substories", + "options": [ + { + "title": "Complete Yuki's Substory", + "difficulty": "Normal" + }, + { + "title": "Complete Ai's Substory", + "difficulty": "Normal" + }, + { + "title": "Complete Saki's Substory", + "difficulty": "Hard" + }, + { + "title": "Complete Hibiki's Substory", + "difficulty": "Hard" + }, + { + "title": "Complete Chika's Substory", + "difficulty": "Hard" + }, + { + "title": "Complete Mana's Substory", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Accessory Collections", + "options": [ + { + "title": "Yuki's Accessory Collection 10", + "difficulty": "Normal" + }, + { + "title": "Yuki's Accessory Collection 20", + "difficulty": "Normal" + }, + { + "title": "Yuki's Accessory Collection 30", + "difficulty": "Hard" + }, + { + "title": "Ai's Accessory Collection 10", + "difficulty": "Normal" + }, + { + "title": "Ai's Accessory Collection 20", + "difficulty": "Hard" + }, + { + "title": "Ai's Accessory Collection 30", + "difficulty": "Hard" + }, + { + "title": "Saki's Accessory Collection 10", + "difficulty": "Normal" + }, + { + "title": "Saki's Accessory Collection 20", + "difficulty": "Hard" + }, + { + "title": "Saki's Accessory Collection 30", + "difficulty": "Hard" + }, + { + "title": "Hibiki's Accessory Collection 10", + "difficulty": "Normal" + }, + { + "title": "Hibiki's Accessory Collection 20", + "difficulty": "Hard" + }, + { + "title": "Hibiki's Accessory Collection 30", + "difficulty": "Hard" + }, + { + "title": "Chika's Accessory Collection 10", + "difficulty": "Normal" + }, + { + "title": "Chika's Accessory Collection 20", + "difficulty": "Hard" + }, + { + "title": "Chika's Accessory Collection 30", + "difficulty": "Hard" + }, + { + "title": "Mana's Accessory Collection 10", + "difficulty": "Hard" + }, + { + "title": "Mana's Accessory Collection 20", + "difficulty": "Hard" + }, + { + "title": "Mana's Accessory Collection 30", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Serve a total customers", + "options": [ + { + "title": "Serve a total of 100 customers", + "difficulty": "Easy" + }, + { + "title": "Serve a total of 200 customers", + "difficulty": "Normal" + }, + { + "title": "Serve a total of 500 customers", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Recruit hostesses", + "options": [ + { + "title": "Recruit 6 bronze hostesses", + "difficulty": "Normal" + }, + { + "title": "Recruit 4 silver hostesses", + "difficulty": "Normal" + }, + { + "title": "Recruit 4 gold hostesses", + "difficulty": "Hard" + }, + { + "title": "Recruit 6 platinum hostesses", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Partner with shops in Mars area", + "options": [ + { + "title": "Partner with 3 shops in Mars area", + "difficulty": "Easy" + }, + { + "title": "Partner with 6 shops in Mars area", + "difficulty": "Easy" + }, + { + "title": "Partner with 10 shops in Mars area", + "difficulty": "Easy" + } + ] + }, + { + "group_name": "Partner with shops in Jupiter area", + "options": [ + { + "title": "Partner with 3 shops in Jupiter area", + "difficulty": "Easy" + }, + { + "title": "Partner with 6 shops in Jupiter area", + "difficulty": "Easy" + }, + { + "title": "Partner with 10 shops in Jupiter area", + "difficulty": "Normal" + } + ] + }, + { + "group_name": "Partner with shops in Venus area", + "options": [ + { + "title": "Partner with 3 shops in Venus area", + "difficulty": "Normal" + }, + { + "title": "Partner with 6 shops in Venus area", + "difficulty": "Normal" + }, + { + "title": "Partner with 10 shops in Venus area", + "difficulty": "Normal" + } + ] + }, + { + "group_name": "Partner with shops in Mercury area", + "options": [ + { + "title": "Partner with 3 shops in Mercury area", + "difficulty": "Normal" + }, + { + "title": "Partner with 6 shops in Mercury area", + "difficulty": "Hard" + }, + { + "title": "Partner with 10 shops in Mercury area", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Partner with shops in Moon area", + "options": [ + { + "title": "Partner with 3 shops in Moon area", + "difficulty": "Hard" + }, + { + "title": "Partner with 6 shops in Moon area", + "difficulty": "Hard" + }, + { + "title": "Partner with 10 shops in Moon area", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Take over an area", + "options": [ + { + "title": "Take over Mars area", + "difficulty": "Easy" + }, + { + "title": "Take over Jupiter area", + "difficulty": "Normal" + }, + { + "title": "Take over Mercury area", + "difficulty": "Normal" + }, + { + "title": "Take over Venus area", + "difficulty": "Hard" + }, + { + "title": "Take over Moon area", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Earn fans in an area", + "options": [ + { + "title": "Earn 1500 fans in Mars area", + "difficulty": "Easy" + }, + { + "title": "Earn 3000 fans in Jupiter area", + "difficulty": "Normal" + }, + { + "title": "Earn 4000 fans in Mercury area", + "difficulty": "Normal" + }, + { + "title": "Earn 5000 fans in Venus area", + "difficulty": "Hard" + }, + { + "title": "Earn 10000 fans in Moon area", + "difficulty": "Hard" + } + ] + } + ] + }, + { + "category_name": "Substories - Kiryu", + "groups": [ + { + "group_name": "Complete Kiryu Substories", + "options": [ + { + "title": "Complete 5 Kiryu Substories", + "difficulty": "Easy" + }, + { + "title": "Complete 10 Kiryu Substories", + "difficulty": "Normal" + }, + { + "title": "Complete 20 Kiryu Substories", + "difficulty": "Normal" + }, + { + "title": "Complete 30 Kiryu Substories", + "difficulty": "Hard" + }, + { + "title": "Complete 40 Kiryu Substories", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Befriend people", + "options": [ + { + "title": "Befriend Officer Kikuchi", + "difficulty": "Normal" + }, + { + "title": "Befriend Kitajima the Shroomer", + "difficulty": "Normal" + }, + { + "title": "Befriend Mr. Libido - Akimoto", + "difficulty": "Normal" + }, + { + "title": "Befriend Mr. Moneybags - Fukushima", + "difficulty": "Normal" + }, + { + "title": "Befriend Pocket Circuit Fighter", + "difficulty": "Normal" + }, + { + "title": "Befriend Miho", + "difficulty": "Normal" + }, + { + "title": "Befriend Emiri", + "difficulty": "Normal" + }, + { + "title": "Befriend the Sushi Gin Chef", + "difficulty": "Normal" + }, + { + "title": "Befriend Luka", + "difficulty": "Normal" + } + ] + } + ] + }, + { + "category_name": "Substories - Majima", + "groups": [ + { + "group_name": "Complete Majima Substories", + "options": [ + { + "title": "Complete 5 Majima Substories", + "difficulty": "Easy" + }, + { + "title": "Complete 10 Majima Substories", + "difficulty": "Normal" + }, + { + "title": "Complete 20 Majima Substories", + "difficulty": "Normal" + }, + { + "title": "Complete 30 Majima Substories", + "difficulty": "Hard" + }, + { + "title": "Complete 40 Majima Substories", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Befriend people", + "options": [ + { + "title": "Befriend Simon the Mystery Man", + "difficulty": "Normal" + }, + { + "title": "Befriend Mr. Moneybags - Tanioka", + "difficulty": "Normal" + }, + { + "title": "Befriend Mr. Libido - Habu", + "difficulty": "Normal" + }, + { + "title": "Befriend Doll Girl", + "difficulty": "Normal" + }, + { + "title": "Befriend the boss at Komian", + "difficulty": "Normal" + }, + { + "title": "Befriend the barkeep", + "difficulty": "Normal" + }, + { + "title": "Befriend the Gandhara staff member", + "difficulty": "Normal" + }, + { + "title": "Befriend Kyoko", + "difficulty": "Normal" + } + ] + } + ] + }, + { + "category_name": "Minigames - Pocket Circuit", + "groups": [ + { + "group_name": "Collect different tires", + "options": [ + { + "title": "Collect 5 different tires", + "difficulty": "Easy" + }, + { + "title": "Collect 10 different tires", + "difficulty": "Normal" + }, + { + "title": "Collect 20 different tires", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Collect different motors", + "options": [ + { + "title": "Collect 5 different motors", + "difficulty": "Easy" + }, + { + "title": "Collect 10 different motors", + "difficulty": "Normal" + }, + { + "title": "Collect 15 different motors", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Collect different gears", + "options": [ + { + "title": "Collect 5 different gears", + "difficulty": "Easy" + }, + { + "title": "Collect 10 different gears", + "difficulty": "Normal" + }, + { + "title": "Collect 20 different gears", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Collect different frames", + "options": [ + { + "title": "Collect 5 different frames", + "difficulty": "Easy" + }, + { + "title": "Collect 10 different frames", + "difficulty": "Normal" + }, + { + "title": "Collect 20 different frames", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Win / compete in races", + "options": [ + { + "title": "Compete in races 10 times", + "difficulty": "Easy" + }, + { + "title": "Win the Introductory Race", + "difficulty": "Easy" + }, + { + "title": "Win the Little Racers' Cup", + "difficulty": "Easy" + }, + { + "title": "Win the Rookies' Race", + "difficulty": "Easy" + }, + { + "title": "Win the Pro-Am Race", + "difficulty": "Normal" + }, + { + "title": "Win the Experts' Race", + "difficulty": "Normal" + }, + { + "title": "Win the Champions' Cup", + "difficulty": "Hard" + }, + { + "title": "Win the King of Speed Cup", + "difficulty": "Hard" + } + ] + } + ] + }, + { + "category_name": "Minigames - Arcade", + "groups": [ + { + "group_name": "Get points in game", + "options": [ + { + "title": "Get 5 million points in Space Harrier", + "difficulty": "Normal" + }, + { + "title": "Get 5 million points in Out Run", + "difficulty": "Normal" + }, + { + "title": "Get 100,000 points in Fantasy Zone", + "difficulty": "Normal" + }, + { + "title": "Get 5 million points in Super Hang-On", + "difficulty": "Normal" + } + ] + }, + { + "group_name": "Acquire different prizes", + "options": [ + { + "title": "Acquire 5 different prizes", + "difficulty": "Normal" + }, + { + "title": "Acquire 15 different prizes", + "difficulty": "Hard" + } + ] + } + ] + }, + { + "category_name": "Minigames - Mahjong", + "groups": [ + { + "group_name": "Win shogi games without a take back", + "options": [ + { + "title": "Win 1 shogi game without a take back", + "difficulty": "Easy" + }, + { + "title": "Win 3 shogi games without a take back", + "difficulty": "Normal" + }, + { + "title": "Win 5 shogi games without a take back", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Go out", + "options": [ + { + "title": "Go out 10 times", + "difficulty": "Easy" + }, + { + "title": "Go out with Mangan 5 times", + "difficulty": "Normal" + }, + { + "title": "Go out with Haneman 1 time", + "difficulty": "Normal" + }, + { + "title": "Go out with Riichi Ippatsu", + "difficulty": "Hard" + }, + { + "title": "Go out with Full Straight", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Earn a total in Mahjong", + "options": [ + { + "title": "Earn a total of 10 million in mahjong", + "difficulty": "Hard" + } + ] + } + ] + }, + { + "category_name": "Minigames - Fishing", + "groups": [ + { + "group_name": "Collect different freshwater fish", + "options": [ + { + "title": "Collect 5 different freshwater fish", + "difficulty": "Easy" + }, + { + "title": "Collect 15 different freshwater fish", + "difficulty": "Hard" + } + ] + }, + { + "group_name": "Collect different saltwater fish", + "options": [ + { + "title": "Collect 5 different saltwater fish", + "difficulty": "Easy" + }, + { + "title": "Collect 18 different saltwater fish", + "difficulty": "Hard" + } + ] + } + ] + }, + { + "category_name": "Minigames - Gambling", + "groups": [ + { + "group_name": "Earn a total with gambling", + "options": [ + { + "title": "Earn a total of 1 million in cho-han", + "difficulty": "Normal" + }, + { + "title": "Earn a total of 1 million in cee-lo", + "difficulty": "Normal" + }, + { + "title": "Earn a total of 1 million in koi-koi", + "difficulty": "Normal" + }, + { + "title": "Earn a total of 1 million in oicho-kabu", + "difficulty": "Normal" + } + ] + }, + { + "group_name": "Win a total in Catfights", + "options": [ + { + "title": "Win a total of 1mil yen in Catfights", + "difficulty": "Easy" + }, + { + "title": "Win a total of 10mil yen in Catfights", + "difficulty": "Normal" + }, + { + "title": "Win a total of 100mil yen in Catfights", + "difficulty": "Hard" + } + ] + } + ] + }, + { + "category_name": "Minigames - Casino", + "groups": [ + { + "group_name": "Earn a total with the casino", + "options": [ + { + "title": "Earn a total of 10 million in poker", + "difficulty": "Normal" + }, + { + "title": "Earn a total of 5 million in blackjack", + "difficulty": "Normal" + }, + { + "title": "Earn a total of 10 million in baccarat", + "difficulty": "Normal" + }, + { + "title": "Earn a total of 10 million in roulette", + "difficulty": "Normal" + } + ] + } + ] + }, + { + "category_name": "Minigames - Sports", + "groups": [ + { + "group_name": "Earn a total with sports", + "options": [ + { + "title": "Earn a total of 10 million in darts", + "difficulty": "Normal" + }, + { + "title": "Earn a total of 10 million in pool", + "difficulty": "Normal" + }, + { + "title": "Earn a total of 5 million by batting", + "difficulty": "Normal" + }, + { + "title": "Earn a total of 10 million in split games", + "difficulty": "Normal" + } + ] + }, + { + "group_name": "Perform various things", + "options": [ + { + "title": "Perform 10 hat tricks", + "difficulty": "Normal" + }, + { + "title": "Perform 3 combination shots", + "difficulty": "Normal" + }, + { + "title": "Perform 3 carom shots", + "difficulty": "Normal" + }, + { + "title": "Bowl 10 strikes", + "difficulty": "Normal" + } + ] + } + ] + }, + { + "category_name": "Minigames - Dancing", + "groups": [ + { + "group_name": "Dancing (Easy)", + "options": [ + { + "title": "Friday Night (Easy)", + "difficulty": "Easy" + }, + { + "title": "Queen of Passion (Easy)", + "difficulty": "Easy" + }, + { + "title": "I'm Gonna Make Her Mine (Easy)", + "difficulty": "Easy" + }, + { + "title": "I Wanna Take You Home (Easy)", + "difficulty": "Easy" + }, + { + "title": "Koi no DISCO QUEEN (Easy)", + "difficulty": "Easy" + } + ] + }, + { + "group_name": "Dancing (Normal)", + "options": [ + { + "title": "Friday Night (Normal)", + "difficulty": "Easy" + }, + { + "title": "Queen of Passion (Normal)", + "difficulty": "Easy" + }, + { + "title": "I'm Gonna Make Her Mine (Normal)", + "difficulty": "Easy" + }, + { + "title": "I Wanna Take You Home (Normal)", + "difficulty": "Easy" + }, + { + "title": "Koi no DISCO QUEEN (Normal)", + "difficulty": "Easy" + } + ] + }, + { + "group_name": "Dancing (Hard)", + "options": [ + { + "title": "Friday Night (Hard)", + "difficulty": "Easy" + }, + { + "title": "I'm Gonna Make Her Mine (Hard)", + "difficulty": "Easy" + }, + { + "title": "Queen of Passion (Hard)", + "difficulty": "Easy" + }, + { + "title": "I Wanna Take You Home (Hard)", + "difficulty": "Easy" + }, + { + "title": "Koi no DISCO QUEEN (Hard)", + "difficulty": "Easy" + } + ] + } + ] + }, + { + "category_name": "Minigames - Karaoke", + "groups": [ + { + "group_name": "Get 90+ in a song", + "options": [ + { + "title": "Get 90+ in Judgement -Shinpan- (Kiryu)", + "difficulty": "Easy" + }, + { + "title": "Get 90+ in Bakamitai (Kiryu)", + "difficulty": "Easy" + }, + { + "title": "Get 90+ in x3 Shine (Kiryu)", + "difficulty": "Easy" + }, + { + "title": "Get 90+ in Heartbreak Mermaid (Kiryu)", + "difficulty": "Easy" + }, + { + "title": "Get 90+ in Rouge of Love (Kiryu)", + "difficulty": "Easy" + }, + { + "title": "Get 90+ in 24-hour Cinderella (Majima)", + "difficulty": "Easy" + }, + { + "title": "Get 90+ in x3 Shine (Majima)", + "difficulty": "Easy" + }, + { + "title": "Get 90+ in Heartbreak Mermaid (Majima)", + "difficulty": "Easy" + }, + { + "title": "Get 90+ in Rouge of Love (Majima)", + "difficulty": "Easy" + } + ] + } + ] + }, + { + "category_name": "Minigames - Dates", + "groups": [ + { + "group_name": "Befriend girlfriend", + "options": [ + { + "title": "Befriend Haruki", + "difficulty": "Normal" + }, + { + "title": "Befriend Ayaka", + "difficulty": "Normal" + }, + { + "title": "Befriend Riku", + "difficulty": "Normal" + } + ] + } + ] + } + ] + } +] \ No newline at end of file diff --git a/src/js/new_games.json b/src/js/new_games.json new file mode 100644 index 0000000..99dfb9a --- /dev/null +++ b/src/js/new_games.json @@ -0,0 +1,73 @@ +[ + { + "id": "yakuza_0", + "name": "Yakuza 0", + "short_description": "The funny game we used for all bingos.", + "description": "Very long text here haha lmao", + "generator": "simple", + "goals": [ + { + "name": "Defeat 50 enemies on the street", + "tags": [ + "Easy" + ], + "possible_spaces": [ + 1 + ], + "group_id": "1" + }, + { + "name": "Defeat 150 enemies on the street", + "tags": [ + "Normal" + ], + "possible_spaces": [ + 0, + 2 + ], + "group_id": "2" + }, + { + "name": "Defeat 300 enemies on the street", + "tags": [ + "Hard" + ], + "possible_spaces": [ + 0, + 3, + 4, + 6, + 7, + 10, + 12, + 15, + 17, + 18, + 20, + 22 + ], + "group_id": "3" + } + ], + "groups": [ + { + "name": "1" + }, + { + "name": "2", + "parent_id": "1" + }, + { + "name": "3", + "parent_id": "2" + }, + { + "name": "Battle" + }, + { + "name": "Defeat enemies on the street", + "parent_id": "Battle" + } + ] + } +] \ No newline at end of file