Change the nameplate unlockables format from json to sqlite
This commit is contained in:
parent
8adc819fa9
commit
e988b5415a
1
.gitignore
vendored
1
.gitignore
vendored
@ -39,4 +39,5 @@
|
|||||||
/OpenTaiko/Global/Characters/Kohaku
|
/OpenTaiko/Global/Characters/Kohaku
|
||||||
*.score.ini
|
*.score.ini
|
||||||
|
|
||||||
|
/OpenTaiko Launcher
|
||||||
/OpenTaiko Launcher/node_modules
|
/OpenTaiko Launcher/node_modules
|
BIN
OpenTaiko/Databases/NameplateUnlockables.db3
Normal file
BIN
OpenTaiko/Databases/NameplateUnlockables.db3
Normal file
Binary file not shown.
@ -1,833 +0,0 @@
|
|||||||
{
|
|
||||||
"First Steps": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 0,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "First Steps",
|
|
||||||
"fr": "Premiers Pas",
|
|
||||||
"ja": "第一歩",
|
|
||||||
"zh": "初来乍到"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Common",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "dp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"A Normal Player": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 0,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "A Normal Player",
|
|
||||||
"fr": "Un joueur Normal",
|
|
||||||
"ja": "ふつうなプレイヤー",
|
|
||||||
"zh": "平凡无奇"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Common",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "dp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
1,
|
|
||||||
0,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"A very Normal Player": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 0,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "A very Normal Player",
|
|
||||||
"fr": "Un joueur très Normal",
|
|
||||||
"ja": "とてもふつうなプレイヤー",
|
|
||||||
"zh": "非常普通"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Common",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "dp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
1,
|
|
||||||
0,
|
|
||||||
10
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"An extremely Normal player": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 1,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "An extremely Normal player",
|
|
||||||
"fr": "Un joueur extrèmement Normal",
|
|
||||||
"ja": "ずいぶんふつうなプレイヤー",
|
|
||||||
"zh": "极其普通"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Common",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "dp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
1,
|
|
||||||
0,
|
|
||||||
100
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Hard-boiled": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 0,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Hard-boiled",
|
|
||||||
"fr": "Dur à cuire",
|
|
||||||
"ja": "ハードボイルド",
|
|
||||||
"zh": "玉琢成器"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Common",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "dp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
2,
|
|
||||||
0,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Hard as rock": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 1,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Hard as rock",
|
|
||||||
"fr": "Dur comme la pierre",
|
|
||||||
"ja": "ロックハード",
|
|
||||||
"zh": "坚如磐石"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Common",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "dp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
2,
|
|
||||||
0,
|
|
||||||
10
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Hard as diamonds": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 2,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Hard as diamonds",
|
|
||||||
"fr": "Dur comme du diamant",
|
|
||||||
"ja": "ダイヤモンドハード",
|
|
||||||
"zh": "金刚钻"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Uncommon",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "dp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
2,
|
|
||||||
0,
|
|
||||||
100
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"My first Extreme": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 1,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "My first Extreme",
|
|
||||||
"fr": "Mon premier Extrème",
|
|
||||||
"ja": "初めてのおに",
|
|
||||||
"zh": "首战魔王"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Common",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "dp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
3,
|
|
||||||
0,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"An Extreme player": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 2,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "An Extreme player",
|
|
||||||
"fr": "Un joueur Extrème",
|
|
||||||
"ja": "おにのプレイヤー",
|
|
||||||
"zh": "魔王斗士"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Uncommon",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "dp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
3,
|
|
||||||
0,
|
|
||||||
10
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"A very Extreme player": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 2,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "A very Extreme player",
|
|
||||||
"fr": "Un joueur très Extrème",
|
|
||||||
"ja": "とてもおにのプレイヤー",
|
|
||||||
"zh": "身经百战"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Uncommon",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "dp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
3,
|
|
||||||
0,
|
|
||||||
100
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"An extremely Extreme player": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 4,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "An extremely Extreme player",
|
|
||||||
"fr": "Un joueur extrèmement Extrème",
|
|
||||||
"ja": "ずいぶんおにのプレイヤー",
|
|
||||||
"zh": "横扫千军"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Rare",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "dp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
3,
|
|
||||||
0,
|
|
||||||
1000
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Free from errors": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 2,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Free from errors",
|
|
||||||
"fr": "Exempt d'erreurs",
|
|
||||||
"ja": "エラーに当たらない",
|
|
||||||
"zh": "不容差错"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Uncommon",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "dp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
3,
|
|
||||||
1,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Unbreakable combo": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 2,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Unbreakable combo",
|
|
||||||
"fr": "Combo indestructible",
|
|
||||||
"ja": "アンブレイカブルコンボ",
|
|
||||||
"zh": "连不可破"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Uncommon",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "dp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
3,
|
|
||||||
1,
|
|
||||||
10
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Everlasting combo": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 4,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Everlasting combo",
|
|
||||||
"fr": "Combo éternel",
|
|
||||||
"ja": "永遠のコンボ",
|
|
||||||
"zh": "连击永恒"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Rare",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "dp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
3,
|
|
||||||
1,
|
|
||||||
100
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"100%": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 3,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "100%",
|
|
||||||
"fr": "100%",
|
|
||||||
"ja": "100点",
|
|
||||||
"zh": "百发百中"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Rare",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "dp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
3,
|
|
||||||
2,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Aims for perfection": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 3,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Aims for perfection",
|
|
||||||
"fr": "Vise la perfection",
|
|
||||||
"ja": "完璧主義",
|
|
||||||
"zh": "完美主义"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Rare",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "dp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
3,
|
|
||||||
2,
|
|
||||||
10
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Flawless": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 7,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Flawless",
|
|
||||||
"fr": "Sans défaut",
|
|
||||||
"ja": "寸分の狂いもない",
|
|
||||||
"zh": "完美无瑕"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Epic",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "dp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
3,
|
|
||||||
2,
|
|
||||||
100
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Eight stars": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 1,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Eight stars",
|
|
||||||
"fr": "Huit étoiles",
|
|
||||||
"ja": "八つ星",
|
|
||||||
"zh": "八颗星"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Common",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
8,
|
|
||||||
0,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Nine stars": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 1,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Nine stars",
|
|
||||||
"fr": "Neuf étoiles",
|
|
||||||
"ja": "九つ星",
|
|
||||||
"zh": "九颗星"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Common",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
9,
|
|
||||||
0,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Challenger": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 2,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Challenger",
|
|
||||||
"fr": "Challenger",
|
|
||||||
"ja": "チャレンジャー",
|
|
||||||
"zh": "挑战者"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Uncommon",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
10,
|
|
||||||
0,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Sweaty challenger": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 6,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Sweaty challenger",
|
|
||||||
"fr": "Challenger en sueur",
|
|
||||||
"ja": "汗だくのチャレンジャー",
|
|
||||||
"zh": "汗流浃背"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Rare",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
11,
|
|
||||||
0,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Challenger from another world": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 11,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Challenger from another world",
|
|
||||||
"fr": "Challenger d'un autre monde",
|
|
||||||
"ja": "異世界から来たチャレンジャー",
|
|
||||||
"zh": "来自异世界的挑战者"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Rare",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
12,
|
|
||||||
0,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Unbeatable warrior": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 13,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Unbeatable warrior",
|
|
||||||
"fr": "Guerrier imbattable",
|
|
||||||
"ja": "無敵の勇者",
|
|
||||||
"zh": "所向披靡"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Epic",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
13,
|
|
||||||
0,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Eight shining stars": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 2,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Eight shining stars",
|
|
||||||
"fr": "Huit étoiles brillantes",
|
|
||||||
"ja": "光る八つ星",
|
|
||||||
"zh": "闪亮八星"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Uncommon",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
8,
|
|
||||||
1,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Nine shining stars": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 2,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Nine shining stars",
|
|
||||||
"fr": "Neuf étoiles brillantes",
|
|
||||||
"ja": "光る九つ星",
|
|
||||||
"zh": "闪亮九星"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Uncommon",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
9,
|
|
||||||
1,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Talented drummer": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 12,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Talented drummer",
|
|
||||||
"fr": "Batteur talentueux",
|
|
||||||
"ja": "有能なドラマー",
|
|
||||||
"zh": "实力鼓手"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Rare",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
10,
|
|
||||||
1,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Tenacious warrior": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 7,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Tenacious warrior",
|
|
||||||
"fr": "Guerrier tenace",
|
|
||||||
"ja": "粘り強い勇者",
|
|
||||||
"zh": "坚韧不拔"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Epic",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
11,
|
|
||||||
1,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Drummer from another world": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 8,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Drummer from another world",
|
|
||||||
"fr": "Batteur d'un autre monde",
|
|
||||||
"ja": "異世界から来たドラマー",
|
|
||||||
"zh": "来自异世界的鼓手"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Legendary",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
12,
|
|
||||||
1,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Celestial divinity": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 9,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Celestial divinity",
|
|
||||||
"fr": "Divinité celeste",
|
|
||||||
"ja": "天の神性",
|
|
||||||
"zh": "天禀神赋"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Legendary",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
13,
|
|
||||||
1,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Eight sparkling stars": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 3,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Eight sparkling stars",
|
|
||||||
"fr": "Huit étoiles étincelantes",
|
|
||||||
"ja": "輝く八つ星",
|
|
||||||
"zh": "闪耀八星"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Rare",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
8,
|
|
||||||
2,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Nine sparkling stars": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 7,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Nine sparkling stars",
|
|
||||||
"fr": "Neuf étoiles étincelantes",
|
|
||||||
"ja": "輝く九つ星",
|
|
||||||
"zh": "闪耀九星"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Epic",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
9,
|
|
||||||
2,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Outstanding drummer": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 7,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Outstanding drummer",
|
|
||||||
"fr": "Batteur d'exception",
|
|
||||||
"ja": "優秀なドラマー",
|
|
||||||
"zh": "杰出鼓手"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Epic",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
10,
|
|
||||||
2,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Eternal legend": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 8,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Eternal legend",
|
|
||||||
"fr": "Légende éternelle",
|
|
||||||
"ja": "永遠の伝説",
|
|
||||||
"zh": "永恒传说"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Legendary",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
11,
|
|
||||||
2,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Drummer from another dimension": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 8,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "Drummer from another dimension",
|
|
||||||
"fr": "Batteur d'une autre dimention",
|
|
||||||
"ja": "異次元から来たドラマー",
|
|
||||||
"zh": "来自异次元的鼓手"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Legendary",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
12,
|
|
||||||
2,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"I sold my real life": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 10,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "I sold my real life",
|
|
||||||
"fr": "J'ai vendu ma vie réele",
|
|
||||||
"ja": "現実に手を離れてしまいました",
|
|
||||||
"zh": "超越现世"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Poor",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "lp",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
13,
|
|
||||||
2,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"First Secret": {
|
|
||||||
"NameplateInfo": {
|
|
||||||
"iType": 15,
|
|
||||||
"Localization": {
|
|
||||||
"strings": {
|
|
||||||
"default": "First Secret",
|
|
||||||
"fr": "Mon premier secret",
|
|
||||||
"ja": "初めての秘密",
|
|
||||||
"zh": "第一份秘密"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Rarity": "Common",
|
|
||||||
"UnlockCondition": {
|
|
||||||
"condition": "sg",
|
|
||||||
"type": "me",
|
|
||||||
"values": [
|
|
||||||
1,
|
|
||||||
-1,
|
|
||||||
0
|
|
||||||
],
|
|
||||||
"references": [
|
|
||||||
"Dashy's Secrets"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -3,6 +3,8 @@
|
|||||||
<ProjectReference Include="..\FDK\FDK.csproj" />
|
<ProjectReference Include="..\FDK\FDK.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="8.0.6" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="7.0.20" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||||
<PackageReference Include="SevenZip" Version="19.0.0" />
|
<PackageReference Include="SevenZip" Version="19.0.0" />
|
||||||
<PackageReference Include="NLua" Version="1.6.3" />
|
<PackageReference Include="NLua" Version="1.6.3" />
|
||||||
|
@ -31,6 +31,11 @@ namespace TJAPlayer3
|
|||||||
public void tEarnCoins(int amount)
|
public void tEarnCoins(int amount)
|
||||||
{
|
{
|
||||||
data.Medals += amount;
|
data.Medals += amount;
|
||||||
|
data.TotalEarnedMedals += amount;
|
||||||
|
|
||||||
|
// Small trick here, each actual play (excluding Auto, AI, etc) are worth at least 5 coins for the player, whatever which mode it is (Dan, Tower, Taiko mode, etc)
|
||||||
|
// Earn Coins is also called once per play, so we just add 1 here to the total playcount
|
||||||
|
data.TotalPlaycount += 1;
|
||||||
tSaveFile();
|
tSaveFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -211,6 +216,12 @@ namespace TJAPlayer3
|
|||||||
[JsonProperty("medals")]
|
[JsonProperty("medals")]
|
||||||
public int Medals = 0;
|
public int Medals = 0;
|
||||||
|
|
||||||
|
[JsonProperty("totalEarnedMedals")]
|
||||||
|
public int TotalEarnedMedals = 0;
|
||||||
|
|
||||||
|
[JsonProperty("totalPlaycount")]
|
||||||
|
public int TotalPlaycount = 0;
|
||||||
|
|
||||||
[JsonProperty("character")]
|
[JsonProperty("character")]
|
||||||
public int Character = 0;
|
public int Character = 0;
|
||||||
|
|
||||||
|
@ -26,5 +26,10 @@ namespace TJAPlayer3
|
|||||||
return Strings["default"];
|
return Strings["default"];
|
||||||
return defaultsDefault;
|
return defaultsDefault;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetString(string langcode, string str)
|
||||||
|
{
|
||||||
|
Strings[langcode] = str;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using Microsoft.Data.Sqlite;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
using static TJAPlayer3.DBNameplateUnlockables;
|
using static TJAPlayer3.DBNameplateUnlockables;
|
||||||
|
|
||||||
namespace TJAPlayer3
|
namespace TJAPlayer3
|
||||||
@ -8,8 +10,51 @@ namespace TJAPlayer3
|
|||||||
{
|
{
|
||||||
public DBNameplateUnlockables()
|
public DBNameplateUnlockables()
|
||||||
{
|
{
|
||||||
_fn = @$"{TJAPlayer3.strEXEのあるフォルダ}Databases{Path.DirectorySeparatorChar}NameplateUnlockables.json";
|
//_fn = @$"{TJAPlayer3.strEXEのあるフォルダ}Databases{Path.DirectorySeparatorChar}NameplateUnlockables.json";
|
||||||
base.tDBInitSavable();
|
//base.tDBInitSavable();
|
||||||
|
|
||||||
|
_fn = @$"{TJAPlayer3.strEXEのあるフォルダ}Databases{Path.DirectorySeparatorChar}NameplateUnlockables.db3";
|
||||||
|
|
||||||
|
|
||||||
|
using (var connection = new SqliteConnection(@$"Data Source={_fn}"))
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
|
||||||
|
// Get existing languages
|
||||||
|
List<string> _translations = HDatabaseHelpers.GetAvailableLanguage(connection, "translation");
|
||||||
|
|
||||||
|
// Get nameplates
|
||||||
|
var command = connection.CreateCommand();
|
||||||
|
command.CommandText =
|
||||||
|
@$"
|
||||||
|
SELECT np.*, {String.Join(", ", _translations.Select((code, _) => $@"{code}.String AS {code}_String"))}
|
||||||
|
FROM nameplates np
|
||||||
|
{String.Join(Environment.NewLine, _translations.Select((code, _) => $@"LEFT JOIN translation_{code} {code} ON np.NameplateId = {code}.NameplateId"))}
|
||||||
|
";
|
||||||
|
|
||||||
|
var reader = command.ExecuteReader();
|
||||||
|
while (reader.Read())
|
||||||
|
{
|
||||||
|
NameplateUnlockable nu = new NameplateUnlockable();
|
||||||
|
nu.rarity = (string)reader["Rarity"];
|
||||||
|
nu.unlockConditions = new DBUnlockables.CUnlockConditions();
|
||||||
|
nu.unlockConditions.Condition = (string)reader["UnlockCondition"];
|
||||||
|
nu.unlockConditions.Values = JsonConvert.DeserializeObject<int[]>((string)reader["UnlockValues"]) ?? new int[] { 0 };
|
||||||
|
nu.unlockConditions.Type = (string)reader["UnlockType"];
|
||||||
|
nu.unlockConditions.Reference = JsonConvert.DeserializeObject<string[]>((string)reader["UnlockReferences"]) ?? new string[] { "" };
|
||||||
|
nu.nameplateInfo = new SaveFile.CNamePlateTitle((int)((Int64)reader["NameplateType"]));
|
||||||
|
|
||||||
|
nu.nameplateInfo.cld.SetString("default", (string)reader["DefaultString"]);
|
||||||
|
foreach (string tr in _translations)
|
||||||
|
{
|
||||||
|
if (reader[@$"{tr}_String"] != DBNull.Value)
|
||||||
|
nu.nameplateInfo.cld.SetString(tr, (string)reader[@$"{tr}_String"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
data[((Int64)reader["NameplateId"]).ToString()] = nu;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
public class NameplateUnlockable
|
public class NameplateUnlockable
|
||||||
{
|
{
|
||||||
|
32
OpenTaiko/src/Helpers/HDatabaseHelpers.cs
Normal file
32
OpenTaiko/src/Helpers/HDatabaseHelpers.cs
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.Data.Sqlite;
|
||||||
|
|
||||||
|
namespace TJAPlayer3
|
||||||
|
{
|
||||||
|
public static class HDatabaseHelpers
|
||||||
|
{
|
||||||
|
public static List<string> GetAvailableLanguage(SqliteConnection connection, string prefix)
|
||||||
|
{
|
||||||
|
List<string> _translations = new List<string>();
|
||||||
|
foreach (string cd in CLangManager.Langcodes)
|
||||||
|
{
|
||||||
|
var chk = connection.CreateCommand();
|
||||||
|
chk.CommandText =
|
||||||
|
@$"
|
||||||
|
SELECT count(*) FROM sqlite_master WHERE type='table' AND name='{prefix}_{cd}';
|
||||||
|
";
|
||||||
|
var chkreader = chk.ExecuteReader();
|
||||||
|
while (chkreader.Read())
|
||||||
|
{
|
||||||
|
if (chkreader.GetInt32(0) > 0)
|
||||||
|
_translations.Add(cd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return _translations;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -107,6 +107,7 @@ namespace TJAPlayer3
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static readonly string[] Languages = new string[] { "日本語 (Japanese)", "English", "Français (French)", "Español (Spanish)", "中文 (Chinese)", "nl (WIP)", "ko (WIP)" };
|
public static readonly string[] Languages = new string[] { "日本語 (Japanese)", "English", "Français (French)", "Español (Spanish)", "中文 (Chinese)", "nl (WIP)", "ko (WIP)" };
|
||||||
|
public static readonly string[] Langcodes = new string[] { "ja", "en", "fr", "es", "zh", "nl", "ko" };
|
||||||
public static ILang LangInstance { get; private set; } = new CLang_jp();
|
public static ILang LangInstance { get; private set; } = new CLang_jp();
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user