typesafe-precure 0.4.0.0 → 0.5.0.0
raw patch · 9 files changed
+313/−38 lines, 9 files
Files
- CHANGELOG.md +12/−0
- gen/cure-index.json +1/−1
- gen/pretty-cure-index.json +181/−12
- src/ACME/PreCure/Index.hs +8/−7
- src/ACME/PreCure/Index/Types.hs +32/−4
- src/ACME/PreCure/Textbook/KirakiraALaMode/Profiles.hs +64/−11
- src/ACME/PreCure/Textbook/KirakiraALaMode/Types.hs +3/−0
- src/ACME/PreCure/Types/TH.hs +11/−2
- typesafe-precure.cabal +1/−1
CHANGELOG.md view
@@ -1,5 +1,17 @@ # 0.4.0.0 (2017/10/07) +- Add: More transformations and purifications of Kirakira :star: PreCure A La Mode:+ - Variation: A La Mode Style+ - Purification: Fantastic Animalé+ - Special Item: Sweets Castle+ - Transformed Groups of Kirakira :star: PreCure A La Mode+- Add: `variationEn` property of `transformees` in Cure Index.+- Add: `transformedGroups` in Cure Index.+- Incompatible Change:+ - Renamed `variation` property of `transformees` in Cure Index into `variationJa`.++# 0.4.0.0 (2017/10/07)+ - Add: More transformations and purifications of Kirakira :star: PreCure A La Mode, including Cure Parfait's and Kirakiraru Creamer's. - Add: Experimental feature: [cure-index.json](https://github.com/igrep/typesafe-precure/blob/master/gen/cure-index.json) and [pretty-cure-index.json](https://github.com/igrep/typesafe-precure/blob/master/gen/pretty-cure-index.json) are generated at build-time by Template Haskell. - Currently, only data of Kirakira :star: A La Mode is collected.
gen/cure-index.json view
@@ -1,1 +1,1 @@-{"girls":[{"id":"Ichika","nameEn":"Ichika Usami","nameJa":"宇佐美 いちか"},{"id":"Himari","nameEn":"Himari Arisugawa","nameJa":"有栖川 ひまり"},{"id":"Aoi","nameEn":"Aoi Tategami","nameJa":"立神 あおい"},{"id":"Yukari","nameEn":"Yukari Kotozume","nameJa":"琴爪 ゆかり"},{"id":"Akira","nameEn":"Akira Kenjo","nameJa":"剣城 あきら"},{"id":"Ciel","nameEn":"Ciel Kirahoshi","nameJa":"キラ星 シエル"}],"transformees":[{"id":"CureWhip","nameEn":"Cure Whip","nameJa":"キュアホイップ","introducesHerselfAs":"ショートケーキ!元気と笑顔を!レッツ・ラ・まぜまぜ!キュアホイップ!できあがり!","variation":""},{"id":"CureCustard","nameEn":"Cure Custard","nameJa":"キュアカスタード","introducesHerselfAs":"プリン!知性と勇気を!レッツ・ラ・まぜまぜ!キュアカスタード!できあがり!","variation":""},{"id":"CureGelato","nameEn":"Cure Gelato","nameJa":"キュアジェラート","introducesHerselfAs":"アイス!自由と情熱を!レッツ・ラ・まぜまぜ!キュアジェラート!できあがり!","variation":""},{"id":"CureMacaron","nameEn":"Cure Macaron","nameJa":"キュアマカロン","introducesHerselfAs":"マカロン!美しさとトキメキを!レッツ・ラ・まぜまぜ!キュアマカロン!できあがり!","variation":""},{"id":"CureChocolat","nameEn":"Cure Chocolat","nameJa":"キュアショコラ","introducesHerselfAs":"チョコレート!強さと愛を!レッツ・ラ・まぜまぜ!キュアショコラ!できあがり!","variation":""},{"id":"CureParfait","nameEn":"Cure Parfait","nameJa":"キュアパルフェ","introducesHerselfAs":"パフェ!夢と希望を!レッツ・ラ・まぜまぜ!キュアパルフェ!できあがり!","variation":""}],"specialItems":[{"id":"SweetsPact","nameEn":"Sweets Pact","nameJa":"スイーツパクト","attachments":["Animal Sweets"]},{"id":"RabbitShortcake","nameEn":"Rabbit Shortcake","nameJa":"うさぎショートケーキ","attachments":[]},{"id":"SquirrelPudding","nameEn":"Squirrel Pudding","nameJa":"りすプリン","attachments":[]},{"id":"LionIce","nameEn":"Lion Ice","nameJa":"らいおんアイス","attachments":[]},{"id":"CatMacaron","nameEn":"Cat Macaron","nameJa":"ねこマカロン","attachments":[]},{"id":"DogChocolate","nameEn":"Dog Chocolate","nameJa":"いぬチョコレート","attachments":[]},{"id":"PegasusParfait","nameEn":"Pegasus Parfait","nameJa":"ペガサスパフェ","attachments":[]},{"id":"CandyRod","nameEn":"Candy Rod","nameJa":"キャンディロッド","attachments":[]},{"id":"RainbowRibbon","nameEn":"Rainbow Ribbon","nameJa":"レインボーリボン","attachments":[]},{"id":"KirakiraruCreamer","nameEn":"Kirakiraru Creamer","nameJa":"キラキラルクリーマー","attachments":["Crystal Animal"]},{"id":"CrystalAnimalRabbit","nameEn":"Crystal Animal Rabbit","nameJa":"クリスタルアニマルうさぎ","attachments":[]},{"id":"CrystalAnimalSquirrel","nameEn":"Crystal Animal Squirrel","nameJa":"クリスタルアニマルりす","attachments":[]},{"id":"CrystalAnimalLion","nameEn":"Crystal Animal Lion","nameJa":"クリスタルアニマルらいおん","attachments":[]},{"id":"CrystalAnimalCat","nameEn":"Crystal Animal Cat","nameJa":"クリスタルアニマルねこ","attachments":[]},{"id":"CrystalAnimalDog","nameEn":"Crystal Animal Dog","nameJa":"クリスタルアニマルいぬ","attachments":[]},{"id":"CrystalAnimalPegasus","nameEn":"Crystal Animal Pegasus","nameJa":"クリスタルアニマルペガサス","attachments":[]}],"transformations":[{"transformers":["Ichika"],"specialItems":[{"a":["RabbitShortcake"],"i":"SweetsPact"}],"transformees":["CureWhip"],"speech":["キュアラモード・デコレーション!","ショートケーキ!","元気と笑顔を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!"]},{"transformers":["Himari"],"specialItems":[{"a":["SquirrelPudding"],"i":"SweetsPact"}],"transformees":["CureCustard"],"speech":["キュアラモード・デコレーション!","プリン!","知性と勇気を!","レッツ・ラ・まぜまぜ!","キュアカスタード!できあがり!"]},{"transformers":["Aoi"],"specialItems":[{"a":["LionIce"],"i":"SweetsPact"}],"transformees":["CureGelato"],"speech":["キュアラモード・デコレーション!","アイス!","自由と情熱を!","レッツ・ラ・まぜまぜ!","キュアジェラート!できあがり!"]},{"transformers":["Yukari"],"specialItems":[{"a":["CatMacaron"],"i":"SweetsPact"}],"transformees":["CureMacaron"],"speech":["キュアラモード・デコレーション!","マカロン!","美しさとトキメキを!","レッツ・ラ・まぜまぜ!","キュアマカロン!できあがり!"]},{"transformers":["Akira"],"specialItems":[{"a":["DogChocolate"],"i":"SweetsPact"}],"transformees":["CureChocolat"],"speech":["キュアラモード・デコレーション!","チョコレート!","強さと愛を!","レッツ・ラ・まぜまぜ!","キュアショコラ!できあがり!"]},{"transformers":["Ciel"],"specialItems":[{"a":["PegasusParfait"],"i":"SweetsPact"}],"transformees":["CureParfait"],"speech":["キュアラモード・デコレーション!","パフェ!","夢と希望を!","レッツ・ラ・まぜまぜ!","キュアパルフェ!できあがり!"]},{"transformers":["Ichika","Himari","Aoi","Yukari","Akira"],"specialItems":[{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["LionIce"],"i":"SweetsPact"},{"a":["CatMacaron"],"i":"SweetsPact"},{"a":["DogChocolate"],"i":"SweetsPact"}],"transformees":["CureWhip","CureCustard","CureGelato","CureMacaron","CureChocolat"],"speech":["キュアラモード・デコレーション!","ショートケーキ!","元気と笑顔を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!","キュアマカロン!できあがり!","キュアショコラ!できあがり!","キラキラ☆プリキュアアラモード!"]},{"transformers":["Ichika","Himari","Aoi","Yukari","Akira","Ciel"],"specialItems":[{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["LionIce"],"i":"SweetsPact"},{"a":["CatMacaron"],"i":"SweetsPact"},{"a":["DogChocolate"],"i":"SweetsPact"},{"a":["PegasusParfait"],"i":"SweetsPact"}],"transformees":["CureWhip","CureCustard","CureGelato","CureMacaron","CureChocolat","CureParfait"],"speech":["キュアラモード・デコレーション!","ショートケーキ!","元気と笑顔を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!","キュアマカロン!できあがり!","キュアショコラ!できあがり!","キュアパルフェ!できあがり!","キラキラ☆プリキュアアラモード!"]},{"transformers":["Himari","Ichika","Aoi","Yukari","Akira"],"specialItems":[{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["LionIce"],"i":"SweetsPact"},{"a":["CatMacaron"],"i":"SweetsPact"},{"a":["DogChocolate"],"i":"SweetsPact"}],"transformees":["CureCustard","CureWhip","CureGelato","CureMacaron","CureChocolat"],"speech":["キュアラモード・デコレーション!","プリン!","知性と勇気を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!","キュアマカロン!できあがり!","キュアショコラ!できあがり!","キラキラ☆プリキュアアラモード!"]},{"transformers":["Aoi","Ichika","Himari","Yukari","Akira"],"specialItems":[{"a":["LionIce"],"i":"SweetsPact"},{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["CatMacaron"],"i":"SweetsPact"},{"a":["DogChocolate"],"i":"SweetsPact"}],"transformees":["CureGelato","CureWhip","CureCustard","CureMacaron","CureChocolat"],"speech":["キュアラモード・デコレーション!","アイス!","自由と情熱を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!","キュアマカロン!できあがり!","キュアショコラ!できあがり!","キラキラ☆プリキュアアラモード!"]},{"transformers":["Yukari","Ichika","Himari","Aoi","Akira"],"specialItems":[{"a":["CatMacaron"],"i":"SweetsPact"},{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["LionIce"],"i":"SweetsPact"},{"a":["DogChocolate"],"i":"SweetsPact"}],"transformees":["CureMacaron","CureWhip","CureCustard","CureGelato","CureChocolat"],"speech":["キュアラモード・デコレーション!","マカロン!","美しさとトキメキを!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!","キュアマカロン!できあがり!","キュアショコラ!できあがり!","キラキラ☆プリキュアアラモード!"]},{"transformers":["Akira","Ichika","Himari","Aoi","Yukari"],"specialItems":[{"a":["DogChocolate"],"i":"SweetsPact"},{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["LionIce"],"i":"SweetsPact"},{"a":["CatMacaron"],"i":"SweetsPact"}],"transformees":["CureChocolat","CureWhip","CureCustard","CureGelato","CureMacaron"],"speech":["キュアラモード・デコレーション!","チョコレート!","強さと愛を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!","キュアマカロン!できあがり!","キュアショコラ!できあがり!","キラキラ☆プリキュアアラモード!"]},{"transformers":["Ciel","Ichika","Himari","Aoi","Yukari","Akira"],"specialItems":[{"a":["PegasusParfait"],"i":"SweetsPact"},{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["LionIce"],"i":"SweetsPact"},{"a":["CatMacaron"],"i":"SweetsPact"},{"a":["DogChocolate"],"i":"SweetsPact"}],"transformees":["CureParfait","CureWhip","CureCustard","CureGelato","CureMacaron","CureChocolat"],"speech":["キュアラモード・デコレーション!","パフェ!","夢と希望を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!","キュアマカロン!できあがり!","キュアショコラ!できあがり!","キュアパルフェ!できあがり!","キラキラ☆プリキュアアラモード!"]},{"transformers":["Ichika","Himari","Aoi"],"specialItems":[{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["LionIce"],"i":"SweetsPact"}],"transformees":["CureWhip","CureCustard","CureGelato"],"speech":["キュアラモード・デコレーション!","ショートケーキ!","元気と笑顔を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!"]},{"transformers":["Ichika","Himari","Aoi","Yukari"],"specialItems":[{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["LionIce"],"i":"SweetsPact"},{"a":["CatMacaron"],"i":"SweetsPact"}],"transformees":["CureWhip","CureCustard","CureGelato","CureMacaron"],"speech":["キュアラモード・デコレーション!","ショートケーキ!","元気と笑顔を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!","キュアマカロン!できあがり!"]},{"transformers":["Yukari","Akira"],"specialItems":[{"a":["CatMacaron"],"i":"SweetsPact"},{"a":["DogChocolate"],"i":"SweetsPact"}],"transformees":["CureMacaron","CureChocolat"],"speech":["キュアラモード・デコレーション!","マカロン!","美しさとトキメキを!","レッツ・ラ・まぜまぜ!","キュアマカロン!できあがり!","キュアショコラ!できあがり!"]}],"purifications":[{"purifier":["CureWhip"],"specialItems":["CandyRod"],"speech":["キラキラキラルン!","ホイップ・デコレーション!"]},{"purifier":["CureCustard"],"specialItems":["CandyRod"],"speech":["キラキラキラルン!","カスタード・イリュージョン!"]},{"purifier":["CureGelato"],"specialItems":["CandyRod"],"speech":["キラキラキラルン!","ジェラート・シェイク!"]},{"purifier":["CureMacaron"],"specialItems":["CandyRod"],"speech":["キラキラキラルン!","マカロン・ジュリエンヌ!","にゃーお♥"]},{"purifier":["CureChocolat"],"specialItems":["CandyRod"],"speech":["キラキラキラルン!","ショコラ・アロマーゼ!"]},{"purifier":["CureParfait"],"specialItems":["RainbowRibbon"],"speech":["レインボーリボン!","行くよ!アン・ドゥ・トレビアン!","キラクル・レインボー!","ボナペティ!"]},{"purifier":["CureWhip","CureCustard","CureGelato","CureMacaron","CureChocolat"],"specialItems":["CandyRod"],"speech":["キャンディーロッド!","キラキラキラル・フルチャージ!","スイー・ツー・ワンダフル・アラモード!"]},{"purifier":["CureWhip","CureCustard","CureGelato","CureMacaron","CureChocolat","CureParfait"],"specialItems":[{"a":["CrystalAnimalRabbit"],"i":"KirakiraruCreamer"},{"a":["CrystalAnimalSquirrel"],"i":"KirakiraruCreamer"},{"a":["CrystalAnimalLion"],"i":"KirakiraruCreamer"},{"a":["CrystalAnimalCat"],"i":"KirakiraruCreamer"},{"a":["CrystalAnimalDog"],"i":"KirakiraruCreamer"},{"a":["CrystalAnimalPegasus"],"i":"KirakiraruCreamer"}],"speech":["キラキラルクリーマー!","キラッと輝け!クリスタルアニマル!","ぴょーん!","くるるっ!","がぁおー!","にゃーお!","わん!","ぱたた!","プリキュア・アニマルゴーランド!"]}]}+{"girls":[{"id":"Ichika","nameEn":"Ichika Usami","nameJa":"宇佐美 いちか"},{"id":"Himari","nameEn":"Himari Arisugawa","nameJa":"有栖川 ひまり"},{"id":"Aoi","nameEn":"Aoi Tategami","nameJa":"立神 あおい"},{"id":"Yukari","nameEn":"Yukari Kotozume","nameJa":"琴爪 ゆかり"},{"id":"Akira","nameEn":"Akira Kenjo","nameJa":"剣城 あきら"},{"id":"Ciel","nameEn":"Ciel Kirahoshi","nameJa":"キラ星 シエル"}],"transformees":[{"id":"CureWhip","nameEn":"Cure Whip","variationEn":"","nameJa":"キュアホイップ","variationJa":"","introducesHerselfAs":"ショートケーキ!元気と笑顔を!レッツ・ラ・まぜまぜ!キュアホイップ!できあがり!"},{"id":"CureCustard","nameEn":"Cure Custard","variationEn":"","nameJa":"キュアカスタード","variationJa":"","introducesHerselfAs":"プリン!知性と勇気を!レッツ・ラ・まぜまぜ!キュアカスタード!できあがり!"},{"id":"CureGelato","nameEn":"Cure Gelato","variationEn":"","nameJa":"キュアジェラート","variationJa":"","introducesHerselfAs":"アイス!自由と情熱を!レッツ・ラ・まぜまぜ!キュアジェラート!できあがり!"},{"id":"CureMacaron","nameEn":"Cure Macaron","variationEn":"","nameJa":"キュアマカロン","variationJa":"","introducesHerselfAs":"マカロン!美しさとトキメキを!レッツ・ラ・まぜまぜ!キュアマカロン!できあがり!"},{"id":"CureChocolat","nameEn":"Cure Chocolat","variationEn":"","nameJa":"キュアショコラ","variationJa":"","introducesHerselfAs":"チョコレート!強さと愛を!レッツ・ラ・まぜまぜ!キュアショコラ!できあがり!"},{"id":"CureParfait","nameEn":"Cure Parfait","variationEn":"","nameJa":"キュアパルフェ","variationJa":"","introducesHerselfAs":"パフェ!夢と希望を!レッツ・ラ・まぜまぜ!キュアパルフェ!できあがり!"},{"id":"CureWhip_ALaModeStyle","nameEn":"Cure Whip","variationEn":"A La Mode Style","nameJa":"キュアホイップ","variationJa":"アラモードスタイル","introducesHerselfAs":"ショートケーキ!元気と笑顔を!レッツ・ラ・まぜまぜ!キュアホイップ!できあがり!"},{"id":"CureCustard_ALaModeStyle","nameEn":"Cure Custard","variationEn":"A La Mode Style","nameJa":"キュアカスタード","variationJa":"アラモードスタイル","introducesHerselfAs":"プリン!知性と勇気を!レッツ・ラ・まぜまぜ!キュアカスタード!できあがり!"},{"id":"CureGelato_ALaModeStyle","nameEn":"Cure Gelato","variationEn":"A La Mode Style","nameJa":"キュアジェラート","variationJa":"アラモードスタイル","introducesHerselfAs":"アイス!自由と情熱を!レッツ・ラ・まぜまぜ!キュアジェラート!できあがり!"},{"id":"CureMacaron_ALaModeStyle","nameEn":"Cure Macaron","variationEn":"A La Mode Style","nameJa":"キュアマカロン","variationJa":"アラモードスタイル","introducesHerselfAs":"マカロン!美しさとトキメキを!レッツ・ラ・まぜまぜ!キュアマカロン!できあがり!"},{"id":"CureChocolat_ALaModeStyle","nameEn":"Cure Chocolat","variationEn":"A La Mode Style","nameJa":"キュアショコラ","variationJa":"アラモードスタイル","introducesHerselfAs":"チョコレート!強さと愛を!レッツ・ラ・まぜまぜ!キュアショコラ!できあがり!"},{"id":"CureParfait_ALaModeStyle","nameEn":"Cure Parfait","variationEn":"A La Mode Style","nameJa":"キュアパルフェ","variationJa":"アラモードスタイル","introducesHerselfAs":"パフェ!夢と希望を!レッツ・ラ・まぜまぜ!キュアパルフェ!できあがり!"}],"transformedGroups":[{"id":"KirakiraPreCureALaMode","nameEn":"Kirakira PreCure A La Mode","variationEn":"","nameJa":"キラキラ☆プリキュアアラモード","variationJa":""},{"id":"KirakiraPreCureALaMode_ALaModeStyle","nameEn":"Kirakira PreCure A La Mode","variationEn":"A La Mode Style","nameJa":"キラキラ☆プリキュアアラモード","variationJa":"アラモードスタイル"}],"specialItems":[{"id":"SweetsPact","nameEn":"Sweets Pact","nameJa":"スイーツパクト","attachments":["Animal Sweets"]},{"id":"RabbitShortcake","nameEn":"Rabbit Shortcake","nameJa":"うさぎショートケーキ","attachments":[]},{"id":"SquirrelPudding","nameEn":"Squirrel Pudding","nameJa":"りすプリン","attachments":[]},{"id":"LionIce","nameEn":"Lion Ice","nameJa":"らいおんアイス","attachments":[]},{"id":"CatMacaron","nameEn":"Cat Macaron","nameJa":"ねこマカロン","attachments":[]},{"id":"DogChocolate","nameEn":"Dog Chocolate","nameJa":"いぬチョコレート","attachments":[]},{"id":"PegasusParfait","nameEn":"Pegasus Parfait","nameJa":"ペガサスパフェ","attachments":[]},{"id":"CandyRod","nameEn":"Candy Rod","nameJa":"キャンディロッド","attachments":[]},{"id":"RainbowRibbon","nameEn":"Rainbow Ribbon","nameJa":"レインボーリボン","attachments":[]},{"id":"KirakiraruCreamer","nameEn":"Kirakiraru Creamer","nameJa":"キラキラルクリーマー","attachments":["Crystal Animal"]},{"id":"CrystalAnimalRabbit","nameEn":"Crystal Animal Rabbit","nameJa":"クリスタルアニマルうさぎ","attachments":[]},{"id":"CrystalAnimalSquirrel","nameEn":"Crystal Animal Squirrel","nameJa":"クリスタルアニマルりす","attachments":[]},{"id":"CrystalAnimalLion","nameEn":"Crystal Animal Lion","nameJa":"クリスタルアニマルらいおん","attachments":[]},{"id":"CrystalAnimalCat","nameEn":"Crystal Animal Cat","nameJa":"クリスタルアニマルねこ","attachments":[]},{"id":"CrystalAnimalDog","nameEn":"Crystal Animal Dog","nameJa":"クリスタルアニマルいぬ","attachments":[]},{"id":"CrystalAnimalPegasus","nameEn":"Crystal Animal Pegasus","nameJa":"クリスタルアニマルペガサス","attachments":[]},{"id":"SweetsCastle","nameEn":"SweetsCastle","nameJa":"スイーツキャッスル","attachments":[]}],"transformations":[{"transformers":["Ichika"],"specialItems":[{"a":["RabbitShortcake"],"i":"SweetsPact"}],"transformees":["CureWhip"],"speech":["キュアラモード・デコレーション!","ショートケーキ!","元気と笑顔を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!"]},{"transformers":["Himari"],"specialItems":[{"a":["SquirrelPudding"],"i":"SweetsPact"}],"transformees":["CureCustard"],"speech":["キュアラモード・デコレーション!","プリン!","知性と勇気を!","レッツ・ラ・まぜまぜ!","キュアカスタード!できあがり!"]},{"transformers":["Aoi"],"specialItems":[{"a":["LionIce"],"i":"SweetsPact"}],"transformees":["CureGelato"],"speech":["キュアラモード・デコレーション!","アイス!","自由と情熱を!","レッツ・ラ・まぜまぜ!","キュアジェラート!できあがり!"]},{"transformers":["Yukari"],"specialItems":[{"a":["CatMacaron"],"i":"SweetsPact"}],"transformees":["CureMacaron"],"speech":["キュアラモード・デコレーション!","マカロン!","美しさとトキメキを!","レッツ・ラ・まぜまぜ!","キュアマカロン!できあがり!"]},{"transformers":["Akira"],"specialItems":[{"a":["DogChocolate"],"i":"SweetsPact"}],"transformees":["CureChocolat"],"speech":["キュアラモード・デコレーション!","チョコレート!","強さと愛を!","レッツ・ラ・まぜまぜ!","キュアショコラ!できあがり!"]},{"transformers":["Ciel"],"specialItems":[{"a":["PegasusParfait"],"i":"SweetsPact"}],"transformees":["CureParfait"],"speech":["キュアラモード・デコレーション!","パフェ!","夢と希望を!","レッツ・ラ・まぜまぜ!","キュアパルフェ!できあがり!"]},{"transformers":["Ichika","Himari","Aoi","Yukari","Akira"],"specialItems":[{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["LionIce"],"i":"SweetsPact"},{"a":["CatMacaron"],"i":"SweetsPact"},{"a":["DogChocolate"],"i":"SweetsPact"}],"transformees":["CureWhip","CureCustard","CureGelato","CureMacaron","CureChocolat"],"speech":["キュアラモード・デコレーション!","ショートケーキ!","元気と笑顔を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!","キュアマカロン!できあがり!","キュアショコラ!できあがり!","キラキラ☆プリキュアアラモード!"]},{"transformers":["Ichika","Himari","Aoi","Yukari","Akira","Ciel"],"specialItems":[{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["LionIce"],"i":"SweetsPact"},{"a":["CatMacaron"],"i":"SweetsPact"},{"a":["DogChocolate"],"i":"SweetsPact"},{"a":["PegasusParfait"],"i":"SweetsPact"}],"transformees":["CureWhip","CureCustard","CureGelato","CureMacaron","CureChocolat","CureParfait"],"speech":["キュアラモード・デコレーション!","ショートケーキ!","元気と笑顔を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!","キュアマカロン!できあがり!","キュアショコラ!できあがり!","キュアパルフェ!できあがり!","キラキラ☆プリキュアアラモード!"]},{"transformers":["Himari","Ichika","Aoi","Yukari","Akira"],"specialItems":[{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["LionIce"],"i":"SweetsPact"},{"a":["CatMacaron"],"i":"SweetsPact"},{"a":["DogChocolate"],"i":"SweetsPact"}],"transformees":["CureCustard","CureWhip","CureGelato","CureMacaron","CureChocolat"],"speech":["キュアラモード・デコレーション!","プリン!","知性と勇気を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!","キュアマカロン!できあがり!","キュアショコラ!できあがり!","キラキラ☆プリキュアアラモード!"]},{"transformers":["Aoi","Ichika","Himari","Yukari","Akira"],"specialItems":[{"a":["LionIce"],"i":"SweetsPact"},{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["CatMacaron"],"i":"SweetsPact"},{"a":["DogChocolate"],"i":"SweetsPact"}],"transformees":["CureGelato","CureWhip","CureCustard","CureMacaron","CureChocolat"],"speech":["キュアラモード・デコレーション!","アイス!","自由と情熱を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!","キュアマカロン!できあがり!","キュアショコラ!できあがり!","キラキラ☆プリキュアアラモード!"]},{"transformers":["Yukari","Ichika","Himari","Aoi","Akira"],"specialItems":[{"a":["CatMacaron"],"i":"SweetsPact"},{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["LionIce"],"i":"SweetsPact"},{"a":["DogChocolate"],"i":"SweetsPact"}],"transformees":["CureMacaron","CureWhip","CureCustard","CureGelato","CureChocolat"],"speech":["キュアラモード・デコレーション!","マカロン!","美しさとトキメキを!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!","キュアマカロン!できあがり!","キュアショコラ!できあがり!","キラキラ☆プリキュアアラモード!"]},{"transformers":["Akira","Ichika","Himari","Aoi","Yukari"],"specialItems":[{"a":["DogChocolate"],"i":"SweetsPact"},{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["LionIce"],"i":"SweetsPact"},{"a":["CatMacaron"],"i":"SweetsPact"}],"transformees":["CureChocolat","CureWhip","CureCustard","CureGelato","CureMacaron"],"speech":["キュアラモード・デコレーション!","チョコレート!","強さと愛を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!","キュアマカロン!できあがり!","キュアショコラ!できあがり!","キラキラ☆プリキュアアラモード!"]},{"transformers":["Ciel","Ichika","Himari","Aoi","Yukari","Akira"],"specialItems":[{"a":["PegasusParfait"],"i":"SweetsPact"},{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["LionIce"],"i":"SweetsPact"},{"a":["CatMacaron"],"i":"SweetsPact"},{"a":["DogChocolate"],"i":"SweetsPact"}],"transformees":["CureParfait","CureWhip","CureCustard","CureGelato","CureMacaron","CureChocolat"],"speech":["キュアラモード・デコレーション!","パフェ!","夢と希望を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!","キュアマカロン!できあがり!","キュアショコラ!できあがり!","キュアパルフェ!できあがり!","キラキラ☆プリキュアアラモード!"]},{"transformers":["Ichika","Himari","Aoi"],"specialItems":[{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["LionIce"],"i":"SweetsPact"}],"transformees":["CureWhip","CureCustard","CureGelato"],"speech":["キュアラモード・デコレーション!","ショートケーキ!","元気と笑顔を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!"]},{"transformers":["Ichika","Himari","Aoi","Yukari"],"specialItems":[{"a":["RabbitShortcake"],"i":"SweetsPact"},{"a":["SquirrelPudding"],"i":"SweetsPact"},{"a":["LionIce"],"i":"SweetsPact"},{"a":["CatMacaron"],"i":"SweetsPact"}],"transformees":["CureWhip","CureCustard","CureGelato","CureMacaron"],"speech":["キュアラモード・デコレーション!","ショートケーキ!","元気と笑顔を!","レッツ・ラ・まぜまぜ!","キュアホイップ!できあがり!","キュアカスタード!できあがり!","キュアジェラート!できあがり!","キュアマカロン!できあがり!"]},{"transformers":["Yukari","Akira"],"specialItems":[{"a":["CatMacaron"],"i":"SweetsPact"},{"a":["DogChocolate"],"i":"SweetsPact"}],"transformees":["CureMacaron","CureChocolat"],"speech":["キュアラモード・デコレーション!","マカロン!","美しさとトキメキを!","レッツ・ラ・まぜまぜ!","キュアマカロン!できあがり!","キュアショコラ!できあがり!"]},{"transformers":["CureWhip","CureCustard","CureGelato","CureMacaron","CureChocolat"],"specialItems":[{"a":["SweetsCastle"],"i":"KirakiraruCreamer"}],"transformees":["CureWhip_ALaModeStyle","CureCustard_ALaModeStyle","CureGelato_ALaModeStyle","CureMacaron_ALaModeStyle","CureChocolat_ALaModeStyle"],"speech":["スイーツキャッスル!","レッツ・ラ・おきがえ!"]}],"purifications":[{"purifier":["CureWhip"],"specialItems":["CandyRod"],"speech":["キラキラキラルン!","ホイップ・デコレーション!"]},{"purifier":["CureCustard"],"specialItems":["CandyRod"],"speech":["キラキラキラルン!","カスタード・イリュージョン!"]},{"purifier":["CureGelato"],"specialItems":["CandyRod"],"speech":["キラキラキラルン!","ジェラート・シェイク!"]},{"purifier":["CureMacaron"],"specialItems":["CandyRod"],"speech":["キラキラキラルン!","マカロン・ジュリエンヌ!","にゃーお♥"]},{"purifier":["CureChocolat"],"specialItems":["CandyRod"],"speech":["キラキラキラルン!","ショコラ・アロマーゼ!"]},{"purifier":["CureParfait"],"specialItems":["RainbowRibbon"],"speech":["レインボーリボン!","行くよ!アン・ドゥ・トレビアン!","キラクル・レインボー!","ボナペティ!"]},{"purifier":["CureWhip","CureCustard","CureGelato","CureMacaron","CureChocolat"],"specialItems":["CandyRod"],"speech":["キャンディーロッド!","キラキラキラル・フルチャージ!","スイー・ツー・ワンダフル・アラモード!"]},{"purifier":["CureWhip","CureCustard","CureGelato","CureMacaron","CureChocolat","CureParfait"],"specialItems":[{"a":["CrystalAnimalRabbit"],"i":"KirakiraruCreamer"},{"a":["CrystalAnimalSquirrel"],"i":"KirakiraruCreamer"},{"a":["CrystalAnimalLion"],"i":"KirakiraruCreamer"},{"a":["CrystalAnimalCat"],"i":"KirakiraruCreamer"},{"a":["CrystalAnimalDog"],"i":"KirakiraruCreamer"},{"a":["CrystalAnimalPegasus"],"i":"KirakiraruCreamer"}],"speech":["キラキラルクリーマー!","キラッと輝け!クリスタルアニマル!","ぴょーん!","くるるっ!","がぁおー!","にゃーお!","わん!","ぱたた!","プリキュア・アニマルゴーランド!"]},{"purifier":["CureWhip_ALaModeStyle","CureCustard_ALaModeStyle","CureGelato_ALaModeStyle","CureMacaron_ALaModeStyle","CureChocolat_ALaModeStyle","CureParfait_ALaModeStyle"],"specialItems":[{"a":["SweetsCastle"],"i":"KirakiraruCreamer"},{"a":["CrystalAnimalRabbit"],"i":"KirakiraruCreamer"},{"a":["CrystalAnimalSquirrel"],"i":"KirakiraruCreamer"},{"a":["CrystalAnimalLion"],"i":"KirakiraruCreamer"},{"a":["CrystalAnimalCat"],"i":"KirakiraruCreamer"},{"a":["CrystalAnimalDog"],"i":"KirakiraruCreamer"},{"a":["CrystalAnimalPegasus"],"i":"KirakiraruCreamer"}],"speech":["キラッと輝け!","クリスタルアニマル!","ぴょーん!","くるるっ!","がぁおー!","にゃーお!","わん!","ぱたた!","プリキュア・ファンタスティックアニマーレ!"]}]}
gen/pretty-cure-index.json view
@@ -99,50 +99,110 @@ "attachments": [], "nameJa": "クリスタルアニマルペガサス", "id": "CrystalAnimalPegasus"+ },+ {+ "nameEn": "SweetsCastle",+ "attachments": [],+ "nameJa": "スイーツキャッスル",+ "id": "SweetsCastle" } ], "transformees": [ { "nameEn": "Cure Whip",+ "variationEn": "", "nameJa": "キュアホイップ",+ "variationJa": "", "id": "CureWhip",- "introducesHerselfAs": "ショートケーキ!元気と笑顔を!レッツ・ラ・まぜまぜ!キュアホイップ!できあがり!",- "variation": ""+ "introducesHerselfAs": "ショートケーキ!元気と笑顔を!レッツ・ラ・まぜまぜ!キュアホイップ!できあがり!" }, { "nameEn": "Cure Custard",+ "variationEn": "", "nameJa": "キュアカスタード",+ "variationJa": "", "id": "CureCustard",- "introducesHerselfAs": "プリン!知性と勇気を!レッツ・ラ・まぜまぜ!キュアカスタード!できあがり!",- "variation": ""+ "introducesHerselfAs": "プリン!知性と勇気を!レッツ・ラ・まぜまぜ!キュアカスタード!できあがり!" }, { "nameEn": "Cure Gelato",+ "variationEn": "", "nameJa": "キュアジェラート",+ "variationJa": "", "id": "CureGelato",- "introducesHerselfAs": "アイス!自由と情熱を!レッツ・ラ・まぜまぜ!キュアジェラート!できあがり!",- "variation": ""+ "introducesHerselfAs": "アイス!自由と情熱を!レッツ・ラ・まぜまぜ!キュアジェラート!できあがり!" }, { "nameEn": "Cure Macaron",+ "variationEn": "", "nameJa": "キュアマカロン",+ "variationJa": "", "id": "CureMacaron",- "introducesHerselfAs": "マカロン!美しさとトキメキを!レッツ・ラ・まぜまぜ!キュアマカロン!できあがり!",- "variation": ""+ "introducesHerselfAs": "マカロン!美しさとトキメキを!レッツ・ラ・まぜまぜ!キュアマカロン!できあがり!" }, { "nameEn": "Cure Chocolat",+ "variationEn": "", "nameJa": "キュアショコラ",+ "variationJa": "", "id": "CureChocolat",- "introducesHerselfAs": "チョコレート!強さと愛を!レッツ・ラ・まぜまぜ!キュアショコラ!できあがり!",- "variation": ""+ "introducesHerselfAs": "チョコレート!強さと愛を!レッツ・ラ・まぜまぜ!キュアショコラ!できあがり!" }, { "nameEn": "Cure Parfait",+ "variationEn": "", "nameJa": "キュアパルフェ",+ "variationJa": "", "id": "CureParfait",- "introducesHerselfAs": "パフェ!夢と希望を!レッツ・ラ・まぜまぜ!キュアパルフェ!できあがり!",- "variation": ""+ "introducesHerselfAs": "パフェ!夢と希望を!レッツ・ラ・まぜまぜ!キュアパルフェ!できあがり!"+ },+ {+ "nameEn": "Cure Whip",+ "variationEn": "A La Mode Style",+ "nameJa": "キュアホイップ",+ "variationJa": "アラモードスタイル",+ "id": "CureWhip_ALaModeStyle",+ "introducesHerselfAs": "ショートケーキ!元気と笑顔を!レッツ・ラ・まぜまぜ!キュアホイップ!できあがり!"+ },+ {+ "nameEn": "Cure Custard",+ "variationEn": "A La Mode Style",+ "nameJa": "キュアカスタード",+ "variationJa": "アラモードスタイル",+ "id": "CureCustard_ALaModeStyle",+ "introducesHerselfAs": "プリン!知性と勇気を!レッツ・ラ・まぜまぜ!キュアカスタード!できあがり!"+ },+ {+ "nameEn": "Cure Gelato",+ "variationEn": "A La Mode Style",+ "nameJa": "キュアジェラート",+ "variationJa": "アラモードスタイル",+ "id": "CureGelato_ALaModeStyle",+ "introducesHerselfAs": "アイス!自由と情熱を!レッツ・ラ・まぜまぜ!キュアジェラート!できあがり!"+ },+ {+ "nameEn": "Cure Macaron",+ "variationEn": "A La Mode Style",+ "nameJa": "キュアマカロン",+ "variationJa": "アラモードスタイル",+ "id": "CureMacaron_ALaModeStyle",+ "introducesHerselfAs": "マカロン!美しさとトキメキを!レッツ・ラ・まぜまぜ!キュアマカロン!できあがり!"+ },+ {+ "nameEn": "Cure Chocolat",+ "variationEn": "A La Mode Style",+ "nameJa": "キュアショコラ",+ "variationJa": "アラモードスタイル",+ "id": "CureChocolat_ALaModeStyle",+ "introducesHerselfAs": "チョコレート!強さと愛を!レッツ・ラ・まぜまぜ!キュアショコラ!できあがり!"+ },+ {+ "nameEn": "Cure Parfait",+ "variationEn": "A La Mode Style",+ "nameJa": "キュアパルフェ",+ "variationJa": "アラモードスタイル",+ "id": "CureParfait_ALaModeStyle",+ "introducesHerselfAs": "パフェ!夢と希望を!レッツ・ラ・まぜまぜ!キュアパルフェ!できあがり!" } ], "girls": [@@ -328,6 +388,71 @@ "CureChocolat", "CureParfait" ]+ },+ {+ "specialItems": [+ {+ "a": [+ "SweetsCastle"+ ],+ "i": "KirakiraruCreamer"+ },+ {+ "a": [+ "CrystalAnimalRabbit"+ ],+ "i": "KirakiraruCreamer"+ },+ {+ "a": [+ "CrystalAnimalSquirrel"+ ],+ "i": "KirakiraruCreamer"+ },+ {+ "a": [+ "CrystalAnimalLion"+ ],+ "i": "KirakiraruCreamer"+ },+ {+ "a": [+ "CrystalAnimalCat"+ ],+ "i": "KirakiraruCreamer"+ },+ {+ "a": [+ "CrystalAnimalDog"+ ],+ "i": "KirakiraruCreamer"+ },+ {+ "a": [+ "CrystalAnimalPegasus"+ ],+ "i": "KirakiraruCreamer"+ }+ ],+ "speech": [+ "キラッと輝け!",+ "クリスタルアニマル!",+ "ぴょーん!",+ "くるるっ!",+ "がぁおー!",+ "にゃーお!",+ "わん!",+ "ぱたた!",+ "プリキュア・ファンタスティックアニマーレ!"+ ],+ "purifier": [+ "CureWhip_ALaModeStyle",+ "CureCustard_ALaModeStyle",+ "CureGelato_ALaModeStyle",+ "CureMacaron_ALaModeStyle",+ "CureChocolat_ALaModeStyle",+ "CureParfait_ALaModeStyle"+ ] } ], "transformations": [@@ -1029,6 +1154,50 @@ "Yukari", "Akira" ]+ },+ {+ "specialItems": [+ {+ "a": [+ "SweetsCastle"+ ],+ "i": "KirakiraruCreamer"+ }+ ],+ "transformees": [+ "CureWhip_ALaModeStyle",+ "CureCustard_ALaModeStyle",+ "CureGelato_ALaModeStyle",+ "CureMacaron_ALaModeStyle",+ "CureChocolat_ALaModeStyle"+ ],+ "speech": [+ "スイーツキャッスル!",+ "レッツ・ラ・おきがえ!"+ ],+ "transformers": [+ "CureWhip",+ "CureCustard",+ "CureGelato",+ "CureMacaron",+ "CureChocolat"+ ]+ }+ ],+ "transformedGroups": [+ {+ "nameEn": "Kirakira PreCure A La Mode",+ "variationEn": "",+ "nameJa": "キラキラ☆プリキュアアラモード",+ "variationJa": "",+ "id": "KirakiraPreCureALaMode"+ },+ {+ "nameEn": "Kirakira PreCure A La Mode",+ "variationEn": "A La Mode Style",+ "nameJa": "キラキラ☆プリキュアアラモード",+ "variationJa": "アラモードスタイル",+ "id": "KirakiraPreCureALaMode_ALaModeStyle" } ] }
src/ACME/PreCure/Index.hs view
@@ -50,13 +50,14 @@ fmap concat $ forM textbookMods $ \eachSeriesMod {- ACME.PreCure.Textbook.*.* -} -> concat <$> loadAnnotations eachSeriesMod - gs <- collectAnnotationsFromEachSeriesModules- ts <- collectAnnotationsFromEachSeriesModules- is <- collectAnnotationsFromEachSeriesModules- trs <- collectAnnotationsFromEachSeriesModules- prs <- collectAnnotationsFromEachSeriesModules-- let index = mkIndex gs ts is trs prs+ index <-+ mkIndex+ <$> collectAnnotationsFromEachSeriesModules+ <*> collectAnnotationsFromEachSeriesModules+ <*> collectAnnotationsFromEachSeriesModules+ <*> collectAnnotationsFromEachSeriesModules+ <*> collectAnnotationsFromEachSeriesModules+ <*> collectAnnotationsFromEachSeriesModules runIO $ ByteString.writeFile "gen/cure-index.json" $ encode index runIO $ ByteString.writeFile "gen/pretty-cure-index.json" $ encodePretty index tupE []
src/ACME/PreCure/Index/Types.hs view
@@ -6,6 +6,7 @@ module ACME.PreCure.Index.Types ( Girl(Girl) , Transformee(Transformee)+ , TransformedGroup(TransformedGroup) , SpecialItem(SpecialItem) , IdAttachments(IdAttachments) , Transformation(Transformation)@@ -13,6 +14,7 @@ , Index , mkGirl , mkTransformee+ , mkTransformedGroup , mkSpecialItem , mkIA , mkTransformation@@ -48,21 +50,45 @@ mkGirl ne = Girl (head $ words ne) ne +typeNamify :: String -> String+typeNamify = concat . words+++prefixify :: String -> String+prefixify ve = if null ve then "" else '_' : typeNamify ve++ data Transformee = Transformee { transformedId :: String , transformedNameEn :: String+ , transformedVariationEn :: String , transformedNameJa :: String+ , transformedVariationJa :: String , transformedIntroducesHerselfAs :: String- , transformedVariation :: String } deriving (Eq, Show, Data) $(deriveToJsonWithoutTypeNamePrefix ''Transformee) -mkTransformee :: String -> String -> String -> String -> Transformee-mkTransformee ne = Transformee (concat $ words ne) ne+mkTransformee :: String -> String -> String -> String -> String -> Transformee+mkTransformee ne ve = Transformee (typeNamify ne ++ prefixify ve) ne ve +data TransformedGroup =+ TransformedGroup+ { transformedGroupId :: String+ , transformedGroupNameEn :: String+ , transformedGroupVariationEn :: String+ , transformedGroupNameJa :: String+ , transformedGroupVariationJa :: String+ } deriving (Eq, Show, Data)++$(deriveToJsonWithoutTypeNamePrefix ''TransformedGroup)++mkTransformedGroup :: String -> String -> String -> String -> TransformedGroup+mkTransformedGroup ne ve = TransformedGroup (typeNamify ne ++ prefixify ve) ne ve++ data SpecialItem = SpecialItem { specialItemId :: String@@ -74,7 +100,7 @@ $(deriveToJsonWithoutTypeNamePrefix ''SpecialItem) mkSpecialItem :: String -> String -> [String] -> SpecialItem-mkSpecialItem ne = SpecialItem (concat $ words ne) ne+mkSpecialItem ne = SpecialItem (typeNamify ne) ne data IdAttachments =@@ -127,6 +153,7 @@ Index { indexGirls :: [Girl] , indexTransformees :: [Transformee]+ , indexTransformedGroups :: [TransformedGroup] , indexSpecialItems :: [SpecialItem] , indexTransformations :: [Transformation] , indexPurifications :: [Purification]@@ -137,6 +164,7 @@ mkIndex :: [Girl] -> [Transformee]+ -> [TransformedGroup] -> [SpecialItem] -> [Transformation] -> [Purification]
src/ACME/PreCure/Textbook/KirakiraALaMode/Profiles.hs view
@@ -19,15 +19,39 @@ transformees :: [Transformee] transformees =- [ mkTransformee "Cure Whip" "キュアホイップ" (concat introducesHerselfAs_CureWhip) ""- , mkTransformee "Cure Custard" "キュアカスタード" (concat introducesHerselfAs_CureCustard) ""- , mkTransformee "Cure Gelato" "キュアジェラート" (concat introducesHerselfAs_CureGelato) ""- , mkTransformee "Cure Macaron" "キュアマカロン" (concat introducesHerselfAs_CureMacaron) ""- , mkTransformee "Cure Chocolat" "キュアショコラ" (concat introducesHerselfAs_CureChocolat) ""- , mkTransformee "Cure Parfait" "キュアパルフェ" (concat introducesHerselfAs_CureParfait) ""+ [ mkTransformee "Cure Whip" "" "キュアホイップ" "" (concat introducesHerselfAs_CureWhip)+ , mkTransformee "Cure Custard" "" "キュアカスタード" "" (concat introducesHerselfAs_CureCustard)+ , mkTransformee "Cure Gelato" "" "キュアジェラート" "" (concat introducesHerselfAs_CureGelato)+ , mkTransformee "Cure Macaron" "" "キュアマカロン" "" (concat introducesHerselfAs_CureMacaron)+ , mkTransformee "Cure Chocolat" "" "キュアショコラ" "" (concat introducesHerselfAs_CureChocolat)+ , mkTransformee "Cure Parfait" "" "キュアパルフェ" "" (concat introducesHerselfAs_CureParfait)++ , mkTransformee "Cure Whip" aLaModeStyleEn "キュアホイップ" aLaModeStyle (concat introducesHerselfAs_CureWhip)+ , mkTransformee "Cure Custard" aLaModeStyleEn "キュアカスタード" aLaModeStyle (concat introducesHerselfAs_CureCustard)+ , mkTransformee "Cure Gelato" aLaModeStyleEn "キュアジェラート" aLaModeStyle (concat introducesHerselfAs_CureGelato)+ , mkTransformee "Cure Macaron" aLaModeStyleEn "キュアマカロン" aLaModeStyle (concat introducesHerselfAs_CureMacaron)+ , mkTransformee "Cure Chocolat" aLaModeStyleEn "キュアショコラ" aLaModeStyle (concat introducesHerselfAs_CureChocolat)+ , mkTransformee "Cure Parfait" aLaModeStyleEn "キュアパルフェ" aLaModeStyle (concat introducesHerselfAs_CureParfait) ] +transformedGroups :: [TransformedGroup]+transformedGroups =+ [ mkTransformedGroup ne "" nj ""+ , mkTransformedGroup ne aLaModeStyleEn nj aLaModeStyle+ ]+ where+ ne = "Kirakira PreCure A La Mode"+ nj = "キラキラ☆プリキュアアラモード"+++aLaModeStyle :: String+aLaModeStyle = "アラモードスタイル"++aLaModeStyleEn :: String+aLaModeStyleEn = "A La Mode Style"++ specialItems :: [SpecialItem] specialItems = [ mkSpecialItem "Sweets Pact" "スイーツパクト" ["Animal Sweets"]@@ -46,6 +70,7 @@ , mkSpecialItem "Crystal Animal Cat" "クリスタルアニマルねこ" [] , mkSpecialItem "Crystal Animal Dog" "クリスタルアニマルいぬ" [] , mkSpecialItem "Crystal Animal Pegasus" "クリスタルアニマルペガサス" []+ , mkSpecialItem "SweetsCastle" "スイーツキャッスル" [] ] @@ -122,6 +147,16 @@ , introducesHerselfAs_CureChocolat ] )+ , mkTransformation+ ["CureWhip", "CureCustard", "CureGelato", "CureMacaron", "CureChocolat"]+ [mkIA "KirakiraruCreamer" ["SweetsCastle"]]+ [ "CureWhip_ALaModeStyle"+ , "CureCustard_ALaModeStyle"+ , "CureGelato_ALaModeStyle"+ , "CureMacaron_ALaModeStyle"+ , "CureChocolat_ALaModeStyle"+ ]+ ["スイーツキャッスル!", "レッツ・ラ・おきがえ!"] ] @@ -141,6 +176,27 @@ ["キャンディーロッド!", "キラキラキラル・フルチャージ!", "スイー・ツー・ワンダフル・アラモード!"] , mkPurification ["CureWhip", "CureCustard", "CureGelato", "CureMacaron", "CureChocolat", "CureParfait"]+ crystalAnimals+ ( ["キラキラルクリーマー!", "キラッと輝け!クリスタルアニマル!"]+ ++ crystalAnimalCries+ ++ ["プリキュア・アニマルゴーランド!"]+ )+ , mkPurification+ [ "CureWhip_ALaModeStyle"+ , "CureCustard_ALaModeStyle"+ , "CureGelato_ALaModeStyle"+ , "CureMacaron_ALaModeStyle"+ , "CureChocolat_ALaModeStyle"+ , "CureParfait_ALaModeStyle"+ ]+ (mkIA "KirakiraruCreamer" ["SweetsCastle"] : crystalAnimals)+ ( ["キラッと輝け!", "クリスタルアニマル!"]+ ++ crystalAnimalCries+ ++ ["プリキュア・ファンタスティックアニマーレ!"]+ )+ ]+ where+ crystalAnimals = [ mkIA "KirakiraruCreamer" ["CrystalAnimalRabbit"] , mkIA "KirakiraruCreamer" ["CrystalAnimalSquirrel"] , mkIA "KirakiraruCreamer" ["CrystalAnimalLion"]@@ -148,17 +204,14 @@ , mkIA "KirakiraruCreamer" ["CrystalAnimalDog"] , mkIA "KirakiraruCreamer" ["CrystalAnimalPegasus"] ]- [ "キラキラルクリーマー!"- , "キラッと輝け!クリスタルアニマル!"- , "ぴょーん!"+ crystalAnimalCries =+ [ "ぴょーん!" , "くるるっ!" , "がぁおー!" , "にゃーお!" , "わん!" , "ぱたた!"- , "プリキュア・アニマルゴーランド!" ]- ] groupName_KirakiraALaMode = "キラキラ☆プリキュアアラモード"
src/ACME/PreCure/Textbook/KirakiraALaMode/Types.hs view
@@ -16,6 +16,9 @@ {-# ANN module transformees #-} $(declareTransformees transformees) +{-# ANN module transformedGroups #-}+$(declareTransformedGroups transformedGroups)+ {-# ANN module specialItems #-} $(declareSpecialItems specialItems)
src/ACME/PreCure/Types/TH.hs view
@@ -3,6 +3,7 @@ module ACME.PreCure.Types.TH ( declareGirls , declareTransformees+ , declareTransformedGroups , declareSpecialItems , declareTransformations , declarePurifications@@ -84,12 +85,20 @@ defineWith name $ girlInstance (conT name) j +declareTransformedGroups :: [Index.TransformedGroup] -> DecsQ+declareTransformedGroups = fmap concat . mapM d+ where+ d (Index.TransformedGroup n _e _ve j vj) = do+ let name = mkName n+ defineWith name $ transformedGroupInstance (conT name) j vj++ declareTransformees :: [Index.Transformee] -> DecsQ declareTransformees = fmap concat . mapM d where- d (Index.Transformee n _e j intro vari) = do+ d (Index.Transformee n _ne _ve j vj intro) = do let name = mkName n- defineWith name $ transformedInstance (conT name) j intro vari+ defineWith name $ transformedInstance (conT name) j intro vj declareSpecialItems :: [Index.SpecialItem] -> DecsQ
typesafe-precure.cabal view
@@ -1,5 +1,5 @@ name: typesafe-precure-version: 0.4.0.0+version: 0.5.0.0 synopsis: Type-safe transformations and purifications of PreCures (Japanese Battle Heroine) description: See README.md for details. homepage: https://github.com/igrep/typesafe-precure#readme