diff --git a/Songs/11 Dan Dojo/0 Shokyuu/dan.json b/Songs/11 Dan Dojo/0 Shokyuu/dan.json new file mode 100644 index 0000000..8b96efe --- /dev/null +++ b/Songs/11 Dan Dojo/0 Shokyuu/dan.json @@ -0,0 +1,42 @@ +{ + "title": "初級", + "color": 0, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 90, + 95 + ] + }, + { + "type": "hit", + "range": "more", + "value": [ + 420, + 460 + ] + } + ], + "charts": [ + { + "hash": "e17af0d8d59274b4d36404eea2d187bd286b638eb74e108a700abe96123f27f9", + "title": "Zassou", + "subtitle": "HIKAKIN & SEIKIN", + "difficulty": 0 + }, + { + "hash": "86124383ac0d7afbbaa622e49e1692affdd960091dbbcde4b8a8601373038cd6", + "title": "Mission! Ken・Kou・Dai・Ichi", + "subtitle": "Hataraku Saibou/Cells At Work", + "difficulty": 0 + }, + { + "hash": "9d280af365b33d661e133fbc38e7f47f2a178650ebaaa12a692b5d60643b137c", + "title": "A Cruel Angel's Thesis ", + "subtitle": "Youko Takahashi/Neon Genesis Evangelion", + "difficulty": 0 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/1 10th Kyuu/dan.json b/Songs/11 Dan Dojo/1 10th Kyuu/dan.json new file mode 100644 index 0000000..4d85993 --- /dev/null +++ b/Songs/11 Dan Dojo/1 10th Kyuu/dan.json @@ -0,0 +1,42 @@ +{ + "title": "十級", + "color": 0, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 91, + 95 + ] + }, + { + "type": "hit", + "range": "more", + "value": [ + 420, + 460 + ] + } + ], + "charts": [ + { + "hash": "6aad104506317c097ae43d86fe5e7e4b89301954870891f1548aa95c71d0a4b7", + "title": "U.S.A.", + "subtitle": "DA PUMP", + "difficulty": 1 + }, + { + "hash": "c6ed1732e2bba3134c46a406dab2e9780bf30d0f6b1de03da4c6a48b98530379", + "title": "Lemon", + "subtitle": "Kenshi Yonezu", + "difficulty": 1 + }, + { + "hash": "8c997973dd50e50c66b76b72a9d9b59b2b77e8cfc1a141c17ab092553c78c077", + "title": "Violence Trigger", + "subtitle": "HachiojiP feat. Hatsune Miku/#C.O.M.P.A.S.S.", + "difficulty": 1 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/10 1st Kyuu/dan.json b/Songs/11 Dan Dojo/10 1st Kyuu/dan.json new file mode 100644 index 0000000..3467fd9 --- /dev/null +++ b/Songs/11 Dan Dojo/10 1st Kyuu/dan.json @@ -0,0 +1,50 @@ +{ + "title": "一級", + "color": 1, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 96, + 100 + ] + }, + { + "type": "hit", + "range": "more", + "value": [ + 1530, + 1590 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 34, + 28 + ] + } + ], + "charts": [ + { + "hash": "2163df4d3155c3f9be170b9b26ff1c4da06430d87ef6bdef0a31da7e437c4455", + "title": "Cirno’s Perfect Math Class", + "subtitle": "IOSYS [ARM & Yuuno Yoshimi] feat. miko/Touhou Project", + "difficulty": 2 + }, + { + "hash": "8dacf5d2cfdd191fcd1072d3596084a7c818af501e77bdef27d85cfbaf501c32", + "title": "Lost One no Goukoku", + "subtitle": "Neru feat. Kagamine Rin", + "difficulty": 2 + }, + { + "hash": "877cd943af7df8f59a23d36c0d214c074dd2f63aa422690ccb7a57600b53515a", + "title": "Sotsu Omeshiki", + "subtitle": "Kawagen Collagen feat. unmo", + "difficulty": 2 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/11 Shodan/dan.json b/Songs/11 Dan Dojo/11 Shodan/dan.json new file mode 100644 index 0000000..92768b2 --- /dev/null +++ b/Songs/11 Dan Dojo/11 Shodan/dan.json @@ -0,0 +1,50 @@ +{ + "title": "初段", + "color": 2, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 97, + 100 + ] + }, + { + "type": "combo", + "range": "more", + "value": [ + 380, + 530 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 31, + 16 + ] + } + ], + "charts": [ + { + "hash": "83ad8e690265b58811b3c62a3c038c8b610f5a8aa897ec1b1da891ebac19a679", + "title": "Grip & Break Down‼ -Tatsujin Edit-", + "subtitle": "SHU × GUCCI feat. Nana Takahashi/Touhou Project", + "difficulty": 3 + }, + { + "hash": "89576993621e6a9f1664a27e86f6c5a59ee036efbd43ed7c2adeed0ed05fac71", + "title": "Ame to Petra", + "subtitle": "Balloon feat. flower", + "difficulty": 3 + }, + { + "hash": "14447f1b6b4222d6e019aceae00b2c316b70c1591ee12758e5282c92652c996b", + "title": "Taiko March", + "subtitle": "Yuuji Masubuchi/Namco Games", + "difficulty": 3 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/12 2nd Dan/dan.json b/Songs/11 Dan Dojo/12 2nd Dan/dan.json new file mode 100644 index 0000000..fa56e59 --- /dev/null +++ b/Songs/11 Dan Dojo/12 2nd Dan/dan.json @@ -0,0 +1,50 @@ +{ + "title": "二段", + "color": 2, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 98, + 100 + ] + }, + { + "type": "combo", + "range": "more", + "value": [ + 410, + 550 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 25, + 13 + ] + } + ], + "charts": [ + { + "hash": "0ba410e46edb1e6ab116f4392152cf0a40149e3a57a8323f0a5a688e78247700", + "title": "only my railgun", + "subtitle": "fripSide/Toaru Kagaku no Railgun", + "difficulty": 3 + }, + { + "hash": "4a2fd9afa28b41ea25b787b539a06f3ee3be24547c2b1a149a7476009a12a385", + "title": "Kagerou Daze", + "subtitle": "Jin feat. IA & Hatsune Miku", + "difficulty": 3 + }, + { + "hash": "ce82d1c67467cfea09cf2945ede0219e241dc8afb83eec3718fb77330c83471d", + "title": "Fuun! Bachio Sensei -New Audio/Chart-", + "subtitle": "Go Shiina", + "difficulty": 3 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/13 3rd Dan/dan.json b/Songs/11 Dan Dojo/13 3rd Dan/dan.json new file mode 100644 index 0000000..6013d68 --- /dev/null +++ b/Songs/11 Dan Dojo/13 3rd Dan/dan.json @@ -0,0 +1,50 @@ +{ + "title": "三段", + "color": 2, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 99, + 100 + ] + }, + { + "type": "combo", + "range": "more", + "value": [ + 600, + 790 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 29, + 15 + ] + } + ], + "charts": [ + { + "hash": "f6b0bbf5c8e9917b61f3976a3217ca1b2c35f11628d9fd75defc6cdd2d056612", + "title": "Jibun REST@RT -Game Version-", + "subtitle": "Hidekazu Tanaka feat. 765PRO ALLSTARS/THE iDOLM@STER 2", + "difficulty": 3 + }, + { + "hash": "589065c834fe58a881aaea3ee0e32896ad98045016b347c7cdf6c5b73fbd54c8", + "title": "Luka Luka★Night Fever", + "subtitle": "samfree feat. Megurine Luka", + "difficulty": 3 + }, + { + "hash": "bfd73d287cf216e97420b48d7c2876e7137c8da0c2e295f711a91d63c5836d36", + "title": "SAMURAI ROCKET", + "subtitle": "Kohta Takahashi/RIDGE RACER Ⅴ", + "difficulty": 3 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/14 4th Dan/dan.json b/Songs/11 Dan Dojo/14 4th Dan/dan.json new file mode 100644 index 0000000..0c8a59a --- /dev/null +++ b/Songs/11 Dan Dojo/14 4th Dan/dan.json @@ -0,0 +1,50 @@ +{ + "title": "四段", + "color": 2, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 99, + 100 + ] + }, + { + "type": "combo", + "range": "more", + "value": [ + 630, + 800 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 24, + 12 + ] + } + ], + "charts": [ + { + "hash": "fe2f89070d2104eb40dbb249e2073849d042785bf089a1d2f38690b394c8d543", + "title": "Sugar Song to Bitter Step", + "subtitle": "UNISON SQUARE GARDEN/Blood Blockade Battlefront", + "difficulty": 3 + }, + { + "hash": "2784f4ee874c643ab68ad6835b5af629b480febe10f06924ba851f876cf0bf51", + "title": "Jinpuumaru", + "subtitle": "Go Shiina", + "difficulty": 3 + }, + { + "hash": "26cc69bf26a3972e3d9af222649baa8a37f6549d14f0994facb770b87c0ae5f4", + "title": "Great! Animal Kaiser‼", + "subtitle": "Yukiko Yamamoto feat. Akira Kushida/Hyakujuu Taisen Great Animal Kaiser", + "difficulty": 3 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/15 5th Dan/dan.json b/Songs/11 Dan Dojo/15 5th Dan/dan.json new file mode 100644 index 0000000..20493c0 --- /dev/null +++ b/Songs/11 Dan Dojo/15 5th Dan/dan.json @@ -0,0 +1,50 @@ +{ + "title": "五段", + "color": 2, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 99, + 100 + ] + }, + { + "type": "combo", + "range": "more", + "value": [ + 760, + 960 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 24, + 12 + ] + } + ], + "charts": [ + { + "hash": "f69555eb8182bf5f53baba79c7da6e57e5bc7078d6a275e54810dffd2133ab5f", + "title": "Knuckle Heads ~Ouburoukou~", + "subtitle": "Takayuki Aihara/KNUCKLE HEADS", + "difficulty": 3 + }, + { + "hash": "03b8d670644ae5308dfe50aafaacd72a4662cb2b3c6da806c6df5ad2d0e62254", + "title": "Kinniku no You na Bokura ~Muscle Love Theme~", + "subtitle": "Yoshihito Yano feat. Crab Prince/Muscle March", + "difficulty": 3 + }, + { + "hash": "4aa9ce7e49d577981b1bda38d2fef8e61ffbf75695b9df66970cfd809ba44e79", + "title": "The Magician’s Dream", + "subtitle": "Tooru Kawaino", + "difficulty": 3 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/16 6th Dan/dan.json b/Songs/11 Dan Dojo/16 6th Dan/dan.json new file mode 100644 index 0000000..8c2e679 --- /dev/null +++ b/Songs/11 Dan Dojo/16 6th Dan/dan.json @@ -0,0 +1,50 @@ +{ + "title": "六段", + "color": 3, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 100, + 100 + ] + }, + { + "type": "judgeperfect", + "range": "more", + "value": [ + 1740, + 1810 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 20, + 10 + ] + } + ], + "charts": [ + { + "hash": "04affb601d2e241f5c5169c150a16358c91f0509b9f71e44bcbff22c6cf0311b", + "title": "Opa! Opa! RACER -GMT Mashup-", + "subtitle": "Shinji Hosoe (Sampling Masters)/Fantasy Zone & RIDGE RACER", + "difficulty": 3 + }, + { + "hash": "20c2d799a7537588840bee76bdbc7e05220807d601266a3254a3df7d5babd8ba", + "title": "Sports Digestdon ~Fill in the Sky~", + "subtitle": "Junichi Nakatsuru", + "difficulty": 4 + }, + { + "hash": "2f7fe716786fabcca89abd70cc124c47e66b96479975e43dc945b984f7a19a5c", + "title": "Lightning Passion", + "subtitle": "Ayako Saso (Sampling Masters)", + "difficulty": 4 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/17 7th Dan/dan.json b/Songs/11 Dan Dojo/17 7th Dan/dan.json new file mode 100644 index 0000000..c50e69a --- /dev/null +++ b/Songs/11 Dan Dojo/17 7th Dan/dan.json @@ -0,0 +1,50 @@ +{ + "title": "七段", + "color": 3, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 100, + 100 + ] + }, + { + "type": "judgeperfect", + "range": "more", + "value": [ + 1790, + 1850 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 15, + 8 + ] + } + ], + "charts": [ + { + "hash": "2b277988efe884f8028fbd2be72040641cf48ef6a1a42bbe541456981c1df72c", + "title": "Jikuuchou Jikuu 1-ka", + "subtitle": "Kawagen Collagen feat. unmo", + "difficulty": 3 + }, + { + "hash": "478580c7ca77fb9200aede2829f8b03cbf668b015408ff11960c45b44a275483", + "title": "Night and Day", + "subtitle": "Nobuhide Isayama & Masako Oogami/ACE COMBAT 2", + "difficulty": 3 + }, + { + "hash": "de7bb256d8dfd6d8b13080a2221792de45b86908f0020c40b404aedf27946fc9", + "title": "Yozakura Bladerz", + "subtitle": "Ponkichi", + "difficulty": 3 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/18 8th Dan/dan.json b/Songs/11 Dan Dojo/18 8th Dan/dan.json new file mode 100644 index 0000000..76d9bc1 --- /dev/null +++ b/Songs/11 Dan Dojo/18 8th Dan/dan.json @@ -0,0 +1,50 @@ +{ + "title": "八段", + "color": 3, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 100, + 100 + ] + }, + { + "type": "judgeperfect", + "range": "more", + "value": [ + 1900, + 1950 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 11, + 6 + ] + } + ], + "charts": [ + { + "hash": "f6880dbd9c2325438a069ffcd9c91d58ebe8ed09bdf6a8b055f8f886746985cd", + "title": "STAGE 0.ac⒒", + "subtitle": "Yuuji Masubuchi", + "difficulty": 3 + }, + { + "hash": "ba3fa867182d5b1eb5cf9ef8824894a57be17e47a9d4dd4019a7a9bf3d0a42fb", + "title": "Sunset Runaway", + "subtitle": "Ryuichi Takada/Critical Velocity", + "difficulty": 3 + }, + { + "hash": "7e3dfcca770f6d7ee2177374f56e4d65cf4b6755a0d6d99332fe701d34501661", + "title": "dance storm", + "subtitle": "Shinji Hosoe (Sampling Masters)", + "difficulty": 4 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/19 9th Dan/dan.json b/Songs/11 Dan Dojo/19 9th Dan/dan.json new file mode 100644 index 0000000..707997b --- /dev/null +++ b/Songs/11 Dan Dojo/19 9th Dan/dan.json @@ -0,0 +1,50 @@ +{ + "title": "九段", + "color": 3, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 100, + 100 + ] + }, + { + "type": "judgeperfect", + "range": "more", + "value": [ + 2250, + 2300 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 10, + 5 + ] + } + ], + "charts": [ + { + "hash": "834483a9d8a486f8248103bc60a80306a82241e7e749be17941d528b571185ed", + "title": "Ganso! Genius Cirno-chan☆", + "subtitle": "Yuuya Kobayashi (IOSYS) feat. miko/Touhou Project", + "difficulty": 3 + }, + { + "hash": "5bc344763ae58c40feb21e1d094f3a7a0a605a1b1be1230b5805736425377447", + "title": "Asteroid", + "subtitle": "KORG × BANDAI NAMCO -KORG Kamata Demo Song-", + "difficulty": 3 + }, + { + "hash": "a7d2fb2e52bd46112ed7c96c64b690028763232d8c934d5a4abfba0c0a14d717", + "title": "Hatsune Miku no Shoushitsu -Gekijouban-", + "subtitle": "cosMo@bousouP feat. Hatsune Miku", + "difficulty": 3 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/2 9th Kyuu/dan.json b/Songs/11 Dan Dojo/2 9th Kyuu/dan.json new file mode 100644 index 0000000..4b520c0 --- /dev/null +++ b/Songs/11 Dan Dojo/2 9th Kyuu/dan.json @@ -0,0 +1,42 @@ +{ + "title": "九級", + "color": 0, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 92, + 95 + ] + }, + { + "type": "hit", + "range": "more", + "value": [ + 750, + 800 + ] + } + ], + "charts": [ + { + "hash": "3d6f24e4c9b9c757c617280e3a3202007c6a0a2207b1f3deef2ecd7d9ade5351", + "title": "Niji", + "subtitle": "Fischer’s [Ndaho & Peketan]", + "difficulty": 1 + }, + { + "hash": "165ee9af297c3dd569d023ed6a4aac9a296157d4187b4ff403682e58cae30cd8", + "title": "Kurenai", + "subtitle": "X JAPAN", + "difficulty": 1 + }, + { + "hash": "805c0f8784c6ec55fb16fe28a817c4a8e56bcfc8e955583d229a51c493a796d6", + "title": "Dance Robot Dance", + "subtitle": "NayutalieN feat. Hatsune Miku/#C.O.M.P.A.S.S.", + "difficulty": 1 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/20 10th Dan/dan.json b/Songs/11 Dan Dojo/20 10th Dan/dan.json new file mode 100644 index 0000000..e8e600b --- /dev/null +++ b/Songs/11 Dan Dojo/20 10th Dan/dan.json @@ -0,0 +1,50 @@ +{ + "title": "十段", + "color": 3, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 100, + 100 + ] + }, + { + "type": "judgegood", + "range": "less", + "value": [ + 90, + 50 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 9, + 5 + ] + } + ], + "charts": [ + { + "hash": "7aceeb2fa26269755d671e22b9cf8779d19626a1ec1a128e6048238ade10514b", + "title": "R.I.", + "subtitle": "Yamato × Daisuke Kurosawa", + "difficulty": 3 + }, + { + "hash": "4af0d34ddaec1cf8c3646ed011b6a7a57607d635df30c5a2ebfa54a7bd2a0ebf", + "title": "Chikochiko", + "subtitle": "Katsuro Tajima -Tico-Tico no Fubá Rendition-", + "difficulty": 3 + }, + { + "hash": "2e78fba528e6d4fbd19159774341a70a122f9bf04220fff08843ead9d6f46940", + "title": "Dead or Die", + "subtitle": "REDALiCE", + "difficulty": 3 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/21 Kurouto/dan.json b/Songs/11 Dan Dojo/21 Kurouto/dan.json new file mode 100644 index 0000000..5f89b8e --- /dev/null +++ b/Songs/11 Dan Dojo/21 Kurouto/dan.json @@ -0,0 +1,50 @@ +{ + "title": "玄人", + "color": 4, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 100, + 100 + ] + }, + { + "type": "judgegood", + "range": "less", + "value": [ + 50, + 25 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 6, + 4 + ] + } + ], + "charts": [ + { + "hash": "823fad885aee1595275fa4c79f802724c983e2ce603a4b4535c5ebc92a908f34", + "title": "Juukinzou Fugitive", + "subtitle": "Ryuwitty feat. GUMI", + "difficulty": 3 + }, + { + "hash": "9780119708e30cfeafecd0ab2256c5ef946d4524df44536396a3bd1265c3ca54", + "title": "Doom Noiz", + "subtitle": "Linda AI-CUE/Galaga Legions", + "difficulty": 3 + }, + { + "hash": "28590cc45557e35fc290e40604dad53ca699a4abed152a1ef46fdf7f243396d7", + "title": "Kien Banjou Kagura", + "subtitle": "Penoreri", + "difficulty": 3 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/22 Meijin/dan.json b/Songs/11 Dan Dojo/22 Meijin/dan.json new file mode 100644 index 0000000..e31c57e --- /dev/null +++ b/Songs/11 Dan Dojo/22 Meijin/dan.json @@ -0,0 +1,50 @@ +{ + "title": "名人", + "color": 4, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 100, + 100 + ] + }, + { + "type": "judgegood", + "range": "less", + "value": [ + 28, + 14 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 5, + 2 + ] + } + ], + "charts": [ + { + "hash": "f375c71172e8bae0f4dc29a7ef66116ba83696b8fffcbdb875c2582b7a839c39", + "title": "Dokadoka", + "subtitle": "Katsuro Tajima -Summer Third Movement Rendition-", + "difficulty": 3 + }, + { + "hash": "ca7d14bc3832da73a9fb907b1148947934ac1b640fd6232f3d0d0ad88ce45794", + "title": "Ai to Jouzai no Mori", + "subtitle": "Hisui", + "difficulty": 3 + }, + { + "hash": "c13aaf8a68df6a06a3c401f9d394216fe1a01b489685dab67e7e3a934373ce64", + "title": "Connect Colors", + "subtitle": "Ponchi♪ feat. Haxchi", + "difficulty": 3 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/23 Choujin/dan.json b/Songs/11 Dan Dojo/23 Choujin/dan.json new file mode 100644 index 0000000..f0f0f40 --- /dev/null +++ b/Songs/11 Dan Dojo/23 Choujin/dan.json @@ -0,0 +1,50 @@ +{ + "title": "超人", + "color": 4, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 100, + 100 + ] + }, + { + "type": "judgegood", + "range": "less", + "value": [ + 15, + 6 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 4, + 2 + ] + } + ], + "charts": [ + { + "hash": "abbfdd040d4d35eeb2feac7ae5f0a9c9d781945c65dc522760ef17f43c1d09e5", + "title": "Puchipochi", + "subtitle": "Katsuro Tajima -Minute Waltz Rendition-", + "difficulty": 3 + }, + { + "hash": "df86c823b618f04742661ec00884271ff31478462bb1f64ed69db362720d06ce", + "title": "Seiten no Reimei", + "subtitle": "steμ feat. siroa", + "difficulty": 3 + }, + { + "hash": "4ee33017bf5fe33edd1cf9a5dbad626989db35244ca73f091fd867e9d4979291", + "title": "Hoshikuzu Struck", + "subtitle": "t+pazolite", + "difficulty": 4 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/24 Tatsujin/dan.json b/Songs/11 Dan Dojo/24 Tatsujin/dan.json new file mode 100644 index 0000000..e2e3981 --- /dev/null +++ b/Songs/11 Dan Dojo/24 Tatsujin/dan.json @@ -0,0 +1,50 @@ +{ + "title": "達人", + "color": 5, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 100, + 100 + ] + }, + { + "type": "judgegood", + "range": "less", + "value": [ + 8, + 1 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 3, + 1 + ] + } + ], + "charts": [ + { + "hash": "7375dd19fbdae25761f404ca02d638e1b5c3405e89711b82b88e54f62993057b", + "title": "Shippuudotou", + "subtitle": "xi", + "difficulty": 4 + }, + { + "hash": "b035fecadcad3687b2a1b9fdd93f1189666af436e78e1be1180f3a8b380da452", + "title": "Souryuu no Ran", + "subtitle": "Tatsh a.k.a. Zeami", + "difficulty": 3 + }, + { + "hash": "fb2d22d4b95f439baa5ff9bf0df9413885701c8687431a4ae9d2abf808333fac", + "title": "poxei♢DOON", + "subtitle": "Kaneko Chiharu", + "difficulty": 3 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/3 8th Kyuu/dan.json b/Songs/11 Dan Dojo/3 8th Kyuu/dan.json new file mode 100644 index 0000000..cd0b004 --- /dev/null +++ b/Songs/11 Dan Dojo/3 8th Kyuu/dan.json @@ -0,0 +1,42 @@ +{ + "title": "八級", + "color": 0, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 92, + 95 + ] + }, + { + "type": "hit", + "range": "more", + "value": [ + 670, + 710 + ] + } + ], + "charts": [ + { + "hash": "24bd07557acd5756cc8015cb6446b6da5db94468f8d06ababa70aae4e14c256b", + "title": "YouTube Theme Song", + "subtitle": "HIKAKIN & SEIKIN", + "difficulty": 1 + }, + { + "hash": "6947c281687b8eaefe6990edb37397ac6c24bf34530940635a0276d084f3744e", + "title": "Iro wa Nioedo Chirinuru o", + "subtitle": "Iceon (Yuuhei Satellite) feat. senya/Touhou Project", + "difficulty": 1 + }, + { + "hash": "c7e3f3085c8437cc6903a75883531f8d3c65cdd4605f06d01f624e3e92753cd8", + "title": "Hibana", + "subtitle": "DECO*27 feat. Hatsune Miku", + "difficulty": 1 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/4 7th Kyuu/dan.json b/Songs/11 Dan Dojo/4 7th Kyuu/dan.json new file mode 100644 index 0000000..697c95c --- /dev/null +++ b/Songs/11 Dan Dojo/4 7th Kyuu/dan.json @@ -0,0 +1,42 @@ +{ + "title": "七級", + "color": 0, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 93, + 73 + ] + }, + { + "type": "hit", + "range": "more", + "value": [ + 960, + 1000 + ] + } + ], + "charts": [ + { + "hash": "510d41a92e1b6f270b566a8ce50f633217e25230d06c5e8af7083429756f4a36", + "title": "Alien Alien", + "subtitle": "NayutalieN feat. Hatsune Miku", + "difficulty": 1 + }, + { + "hash": "720b3d421be205ed7ac09d4e6dbc74d1f361d8118b9d6763865b47c8d4663b6c", + "title": "Marisa Stole the Precious Thing", + "subtitle": "IOSYS [ARM & Yuuno Yoshimi] feat. Karin Fujisaki/Touhou Project", + "difficulty": 1 + }, + { + "hash": "31abad0e1abc094f8615610d6e59b0ca3d4de1890cf7e25ad28d1f3bdc09e333", + "title": "Anzu no Uta", + "subtitle": "Takafumi Sato feat. Hiromi Igarashi/THE iDOLM@STER ONE FOR ALL", + "difficulty": 1 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/5 6th Kyuu/dan.json b/Songs/11 Dan Dojo/5 6th Kyuu/dan.json new file mode 100644 index 0000000..d8c9395 --- /dev/null +++ b/Songs/11 Dan Dojo/5 6th Kyuu/dan.json @@ -0,0 +1,42 @@ +{ + "title": "六級", + "color": 0, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 94, + 97 + ] + }, + { + "type": "hit", + "range": "more", + "value": [ + 820, + 840 + ] + } + ], + "charts": [ + { + "hash": "b46a2e49f71f41274700256340d633a9ef06873365393f7b90449cb3096b0c3c", + "title": "Noushou Sakuretsu Girl", + "subtitle": "rerulili feat. Hatsune Miku & GUMI", + "difficulty": 1 + }, + { + "hash": "4d23653dd538035c03fd844500aed1d1638bd77828b02f7603b57f2bc23f97a9", + "title": "Bad Apple‼", + "subtitle": "Alstroemeria Records feat. nomico/Touhou Project", + "difficulty": 1 + }, + { + "hash": "812b9b1ca838a5a4ca12be6c696fae27dc05201a43438d77be111f08736f517a", + "title": "Asu no Yozora Shoukaihan", + "subtitle": "Orangestar feat. IA", + "difficulty": 1 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/6 5th Kyuu/dan.json b/Songs/11 Dan Dojo/6 5th Kyuu/dan.json new file mode 100644 index 0000000..544767b --- /dev/null +++ b/Songs/11 Dan Dojo/6 5th Kyuu/dan.json @@ -0,0 +1,50 @@ +{ + "title": "五級", + "color": 1, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 94, + 97 + ] + }, + { + "type": "hit", + "range": "more", + "value": [ + 610, + 640 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 55, + 44 + ] + } + ], + "charts": [ + { + "hash": "eea7084728ce56428abd50cf527131c421ebd97ff78b37887093fc1620d5ead6", + "title": "Candy Pop", + "subtitle": "TWICE", + "difficulty": 2 + }, + { + "hash": "1b3d06f1b7aa106fe76415044d43cfb3ffe0dca6fde9f7e4c3867e4ca06ac65d", + "title": "POP TEAM EPIC", + "subtitle": "Sumire Uesaka/Pop Team Epic", + "difficulty": 2 + }, + { + "hash": "6da4ebece7db653e705526b7974cbc8f3422217949ce8f5eccd14bb3ec55a7cd", + "title": "Glass o Ware!", + "subtitle": "Sakurazaka46/Docomo Student Discounts", + "difficulty": 2 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/7 4th Kyuu/dan.json b/Songs/11 Dan Dojo/7 4th Kyuu/dan.json new file mode 100644 index 0000000..a58dc8b --- /dev/null +++ b/Songs/11 Dan Dojo/7 4th Kyuu/dan.json @@ -0,0 +1,50 @@ +{ + "title": "四級", + "color": 1, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 95, + 99 + ] + }, + { + "type": "hit", + "range": "more", + "value": [ + 1190, + 1240 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 80, + 60 + ] + } + ], + "charts": [ + { + "hash": "9259416faeb2b7d42546cd316d9342b6af39e32b7d96fd18b9ecf880a2919b01", + "title": "Zankyou", + "subtitle": "164 feat. GUMI/#C.O.M.P.A.S.S.", + "difficulty": 2 + }, + { + "hash": "2163df4d3155c3f9be170b9b26ff1c4da06430d87ef6bdef0a31da7e437c4455", + "title": "Cirno’s Perfect Math Class", + "subtitle": "IOSYS [ARM & Yuuno Yoshimi] feat. miko/Touhou Project", + "difficulty": 2 + }, + { + "hash": "a63966226942bcd30d1b0c2aae2ce73ae8860299da788231fbc09a82ffa10bb5", + "title": "Taiyoukei Disco", + "subtitle": "NayutalieN feat. Hatsune Miku", + "difficulty": 2 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/8 3rd Kyuu/dan.json b/Songs/11 Dan Dojo/8 3rd Kyuu/dan.json new file mode 100644 index 0000000..16f7a4b --- /dev/null +++ b/Songs/11 Dan Dojo/8 3rd Kyuu/dan.json @@ -0,0 +1,50 @@ +{ + "title": "三級", + "color": 1, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 95, + 100 + ] + }, + { + "type": "hit", + "range": "more", + "value": [ + 1170, + 1220 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 60, + 40 + ] + } + ], + "charts": [ + { + "hash": "def84a9d2ffac096751c478a46842b90120d61b7aca0c12f8f8cac1fbcbc9d15", + "title": "Charles", + "subtitle": "Balloon feat. flower", + "difficulty": 2 + }, + { + "hash": "d2053c147d7f87fe3fda2cdf07b609724cce088c2f0482588e50ff132e2b6b6f", + "title": "LOSER", + "subtitle": "Kenshi Yonezu", + "difficulty": 2 + }, + { + "hash": "6bab668670435d11de2953958bd1daa4b085db5e1b2b65a54eece5ad88373463", + "title": "+♂ -Plus Danshi-", + "subtitle": "RΞOL feat. Kagamine Len", + "difficulty": 2 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/9 2nd Kyuu/dan.json b/Songs/11 Dan Dojo/9 2nd Kyuu/dan.json new file mode 100644 index 0000000..fce5e61 --- /dev/null +++ b/Songs/11 Dan Dojo/9 2nd Kyuu/dan.json @@ -0,0 +1,50 @@ +{ + "title": "二級", + "color": 1, + "exams": [ + { + "type": "gauge", + "range": "more", + "value": [ + 96, + 100 + ] + }, + { + "type": "hit", + "range": "more", + "value": [ + 1380, + 1440 + ] + }, + { + "type": "judgebad", + "range": "less", + "value": [ + 48, + 30 + ] + } + ], + "charts": [ + { + "hash": "0bc8fabe30bd3ac37e718f5885cfe69171ff26ee822992001b541298356b3a7e", + "title": "Utakata, Ai no Mahoroba", + "subtitle": "Yuuhei Satellite/Touhou Project", + "difficulty": 2 + }, + { + "hash": "5dce9f3c03c212685c7e93da19c5098a9a7e65c69350bd527bb7b59a844c646e", + "title": "Zen Zen Zense", + "subtitle": "RADWIMPS/Your Name.", + "difficulty": 2 + }, + { + "hash": "bd6bd5e640d098c94ad5f9d52d52fc70c29ef6248549c61fc4e729da6c4dc724", + "title": "Last Brutal Sister Flandre S", + "subtitle": "beatMARIO (COOL&CREATE)/Touhou Project", + "difficulty": 2 + } + ] +} \ No newline at end of file diff --git a/Songs/11 Dan Dojo/box.def b/Songs/11 Dan Dojo/box.def new file mode 100755 index 0000000..83e6f47 --- /dev/null +++ b/Songs/11 Dan Dojo/box.def @@ -0,0 +1,2 @@ +#TITLE:段位道場 +#GENRE:段位道場 diff --git a/libs/bg_objects/chibi.py b/libs/bg_objects/chibi.py index 8fbcdfd..0aa6dc5 100644 --- a/libs/bg_objects/chibi.py +++ b/libs/bg_objects/chibi.py @@ -107,7 +107,7 @@ class Chibi2(BaseChibi): self.rotate.restart() def draw(self, tex: TextureWrapper): - origin = ray.Vector2(64, 64) + origin = ray.Vector2(tex.textures[self.name][str(self.index)].width//2, tex.textures[self.name][str(self.index)].height//2) tex.draw_texture(self.name, str(self.index), x=self.hori_move.attribute+origin.x, y=origin.y+(self.is_2p*tex.skin_config["game_2p_offset"].y), origin=origin, rotation=self.rotate.attribute) class Chibi4(BaseChibi): diff --git a/libs/file_navigator.py b/libs/file_navigator.py index cc899ab..c60a8c3 100644 --- a/libs/file_navigator.py +++ b/libs/file_navigator.py @@ -597,7 +597,7 @@ class DanBox(BaseBox): def _draw_closed(self, x: float, y: float): tex.draw_texture('box', 'folder', frame=self.texture_index, x=x) if self.name is not None: - self.name.draw(outline_color=ray.BLACK, x=x + tex.skin_config["song_box_name"].x - int(self.name.texture.width / 2), y=y+tex.skin_config["song_box_name"].height, y2=min(self.name.texture.height, tex.skin_config["song_box_name"].height)-self.name.texture.height) + self.name.draw(outline_color=ray.BLACK, x=x + tex.skin_config["song_box_name"].x - int(self.name.texture.width / 2), y=y+(tex.skin_config["song_box_name"].height//2), y2=min(self.name.texture.height, tex.skin_config["song_box_name"].height)-self.name.texture.height) def _draw_open(self, x: float, y: float, fade_override: Optional[float], is_ura: bool): if fade_override is not None: diff --git a/pyproject.toml b/pyproject.toml index 557b5c8..6c80151 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "pytaiko" -version = "0.9.0" +version = "1.0" description = "Taiko no Tatsujin simulator written in python and raylib" readme = "README.md" requires-python = ">=3.11" diff --git a/scenes/dan/game_dan.py b/scenes/dan/game_dan.py index c0a9269..621e9b0 100644 --- a/scenes/dan/game_dan.py +++ b/scenes/dan/game_dan.py @@ -42,7 +42,7 @@ class DanGameScreen(GameScreen): logger.info("Loaded nijiiro notes textures") ray.set_shader_value_texture(self.mask_shader, ray.get_shader_location(self.mask_shader, "texture0"), tex.textures['balloon']['rainbow_mask'].texture) ray.set_shader_value_texture(self.mask_shader, ray.get_shader_location(self.mask_shader, "texture1"), tex.textures['balloon']['rainbow'].texture) - self.hori_name = OutlinedText(global_data.session_data[global_data.player_num].song_title, 40, ray.WHITE) + self.hori_name = OutlinedText(global_data.session_data[global_data.player_num].song_title, tex.skin_config["dan_title"].font_size, ray.WHITE) self.init_dan() self.background = Background(global_data.player_num, self.bpm, scene_preset='DAN') self.transition = Transition('', '', is_second=True) @@ -297,7 +297,7 @@ class DanGameScreen(GameScreen): # Draw exam type and red value counter red_counter = str(exam_info['red_value']) self._draw_counter(red_counter, margin=tex.skin_config["dan_score_box_margin"].x, texture='value_counter', index=0, y=y_offset) - tex.draw_texture('dan_info', f'exam_{exam.type}', y=y_offset, x=-len(red_counter)*20) + tex.draw_texture('dan_info', f'exam_{exam.type}', y=y_offset, x=-len(red_counter)*(20 * tex.screen_scale)) # Draw range indicator if exam.range == 'less': @@ -383,7 +383,7 @@ class DanGauge(Gauge): self.gauge_length = self.gauge_max if int(self.gauge_length * 8) % 8 == 0: - self.visual_length = int(self.gauge_length * 8) + self.visual_length = int(self.gauge_length * tex.textures["gauge_dan"][f'{self.player_num}p_bar'].width) def add_ok(self): """Adds an ok note to the gauge""" @@ -394,7 +394,7 @@ class DanGauge(Gauge): self.gauge_length = self.gauge_max if int(self.gauge_length * 8) % 8 == 0: - self.visual_length = int(self.gauge_length * 8) + self.visual_length = int(self.gauge_length * tex.textures["gauge_dan"][f'{self.player_num}p_bar'].width) def add_bad(self): """Adds a bad note to the gauge""" @@ -404,7 +404,7 @@ class DanGauge(Gauge): self.gauge_length = 0 if int(self.gauge_length * 8) % 8 == 0: - self.visual_length = int(self.gauge_length * 8) + self.visual_length = int(self.gauge_length * tex.textures["gauge_dan"][f'{self.player_num}p_bar'].width) def update(self, current_ms: float): self.is_rainbow = self.gauge_length == self.gauge_max diff --git a/scenes/game.py b/scenes/game.py index 64a1201..f82f069 100644 --- a/scenes/game.py +++ b/scenes/game.py @@ -1895,13 +1895,13 @@ class ResultTransition: if self.player_num == PlayerNum.TWO_PLAYER: global_tex.draw_texture('result_transition', '1p_shutter', frame=0, x=x, y=-tex.screen_height + self.move.attribute) global_tex.draw_texture('result_transition', '2p_shutter', frame=0, x=x, y=tex.screen_height - self.move.attribute) - global_tex.draw_texture('result_transition', '1p_shutter_footer', x=x, y=-tex_height + self.move.attribute) - global_tex.draw_texture('result_transition', '2p_shutter_footer', x=x, y=tex.screen_height + tex_height - self.move.attribute) + global_tex.draw_texture('result_transition', '1p_shutter_footer', x=x, y=-(tex_height*3) + self.move.attribute) + global_tex.draw_texture('result_transition', '2p_shutter_footer', x=x, y=tex.screen_height + (tex_height*2) - self.move.attribute) else: global_tex.draw_texture('result_transition', f'{self.player_num}p_shutter', frame=0, x=x, y=-tex.screen_height + self.move.attribute) global_tex.draw_texture('result_transition', f'{self.player_num}p_shutter', frame=0, x=x, y=tex.screen_height - self.move.attribute) - global_tex.draw_texture('result_transition', f'{self.player_num}p_shutter_footer', x=x, y=-tex_height + self.move.attribute) - global_tex.draw_texture('result_transition', f'{self.player_num}p_shutter_footer', x=x, y=tex.screen_height + tex_height - self.move.attribute) + global_tex.draw_texture('result_transition', f'{self.player_num}p_shutter_footer', x=x, y=-(tex_height*3) + self.move.attribute) + global_tex.draw_texture('result_transition', f'{self.player_num}p_shutter_footer', x=x, y=tex.screen_height + (tex_height*2) - self.move.attribute) x += tex.screen_width // 5 class GogoTime: diff --git a/scenes/result.py b/scenes/result.py index 49c02cf..50101e5 100644 --- a/scenes/result.py +++ b/scenes/result.py @@ -87,20 +87,20 @@ class Background: self.width = width def draw(self): x = 0 - footer_height = tex.textures["background"]["footer_1p"].height + footer_height = tex.textures["background"][f"footer_{self.player_num}p"].height if self.player_num == PlayerNum.TWO_PLAYER: while x < self.width: tex.draw_texture('background', 'background_1p', x=x, y=-(tex.screen_height//2)) tex.draw_texture('background', 'background_2p', x=x, y=tex.screen_height//2) - tex.draw_texture('background', 'footer_1p', x=x, y=-footer_height) - tex.draw_texture('background', 'footer_2p', x=x, y=tex.screen_height-footer_height) + tex.draw_texture('background', 'footer_1p', x=x, y=-(footer_height//2)) + tex.draw_texture('background', 'footer_2p', x=x, y=tex.screen_height-(footer_height//2)) x += tex.screen_width // 5 else: while x < self.width: tex.draw_texture('background', f'background_{self.player_num}p', x=x, y=-(tex.screen_height//2)) tex.draw_texture('background', f'background_{self.player_num}p', x=x, y=(tex.screen_height//2)) - tex.draw_texture('background', f'footer_{self.player_num}p', x=x, y=-footer_height) - tex.draw_texture('background', f'footer_{self.player_num}p', x=x, y=tex.screen_height-footer_height) + tex.draw_texture('background', f'footer_{self.player_num}p', x=x, y=-(footer_height//2)) + tex.draw_texture('background', f'footer_{self.player_num}p', x=x, y=tex.screen_height-(footer_height//2)) x += tex.screen_width // 5 tex.draw_texture('background', 'result_text') diff --git a/scenes/song_select.py b/scenes/song_select.py index 24c0278..b6d6b8e 100644 --- a/scenes/song_select.py +++ b/scenes/song_select.py @@ -958,7 +958,7 @@ class DiffSortSelect: tex.draw_texture('diff_sort', 'diff', frame=self.selected_box, fade=self.diff_fade_in.attribute) tex.draw_texture('diff_sort', 'star_num', frame=self.selected_level, fade=self.diff_fade_in.attribute) for i in range(self.selected_level): - tex.draw_texture('diff_sort', 'star', x=(i*40.5 * tex.screen_scale), fade=self.diff_fade_in.attribute) + tex.draw_texture('diff_sort', 'star', x=(i*(40.5 * tex.screen_scale)), fade=self.diff_fade_in.attribute) if self.confirmation: texture = tex.textures['diff_sort']['level_box'] diff --git a/uv.lock b/uv.lock index 8615070..2ba4509 100644 --- a/uv.lock +++ b/uv.lock @@ -362,7 +362,7 @@ wheels = [ [[package]] name = "pytaiko" -version = "0.9.0" +version = "1.0" source = { virtual = "." } dependencies = [ { name = "moviepy" },