//============================================================================= // RecollectionMode.js // Copyright (c) 2015 rinne_grid // This plugin is released under the MIT license. // http://opensource.org/licenses/mit-license.php //============================================================================= /*:ja * @plugindesc 回想モード機能を追加します。 * @author rinne_grid * * * @help このプラグインには、プラグインコマンドはありません。 * @command reco * @text 回想登録 * @des 回想登録 * @arg id * @type number */ { const pluginName = "RecollectionMode"; PluginManager.registerCommand(pluginName, "reco", function (args) { recoGlobal(parseInt(args.id)); }); } //----------------------------------------------------------------------------- // ◆ プラグイン設定 //----------------------------------------------------------------------------- var rngd_recollection_mode_settings = { //--------------------------------------------------------------------- // ★ 回想モードで再生するBGMの設定をします //--------------------------------------------------------------------- rec_mode_bgm: { bgm: { name: "LNEW_BGM14_Sad1", pan: 0, pitch: 100, volume: 90, }, }, //--------------------------------------------------------------------- // ★ 回想CG選択ウィンドウの設定を指定します //--------------------------------------------------------------------- rec_mode_window: { x: 200, y: 100, recollection_title: "Recollection", str_select_recollection: "View Recollection", str_select_cg: "View CG", str_select_back_title: "Return to Title", }, //--------------------------------------------------------------------- // ★ 回想リストウィンドウの設定を指定します //--------------------------------------------------------------------- rec_list_window: { // 1画面に表示する縦の数 item_height: 3, // 1画面に表示する横の数 item_width: 4, // 1枚のCGに説明テキストを表示するかどうか show_title_text: true, // タイトルテキストの表示位置(left:左寄せ、center:中央、right:右寄せ) title_text_align: "center", // 閲覧したことのないCGの場合に表示するピクチャファイル名 never_watch_picture_name: "never_watch_picture", // 閲覧したことのないCGのタイトルテキスト never_watch_title_text: "", }, //--------------------------------------------------------------------- // ★ 回想用のCGを指定します //--------------------------------------------------------------------- rec_cg_set: [ { title: "Senri's Erotic Massage", thumbnail: "08_03_01", pictures: ["01", "02", "03"], common_event_id: 1007, switch_id: 1007, actorId: 8, hint: "Watch the opening", }, { title: "Senri and Yoshi's First Sex", thumbnail: "08_01_01", pictures: ["01", "02", "03"], common_event_id: 1001, switch_id: 1001, actorId: 8, hint: "Film Senri's AV", }, { title: "Yoshi's Childbirth", thumbnail: "08_01_bote", pictures: ["01", "02", "03"], common_event_id: 1003, switch_id: 1003, actorId: 8, hint: "Film Senri's AV", }, /*{ 'title': 'センリのヨシオの初アナルSEX', 'thumbnail': '08_01_01', 'pictures': ['01', '02', '03'], 'common_event_id': 1002, 'switch_id': 1002, actorId: 8, 'hint': 'センリのAV撮影をする' },*/ { title: "Yoshio and Standing Back", thumbnail: "08_02_01", pictures: ["01", "02", "03"], common_event_id: 1004, switch_id: 1004, actorId: 8, hint: "Film Senri's AV", }, { title: "Yoshio and Cowgirl Position", thumbnail: "08_04_01", pictures: ["01", "02", "03"], common_event_id: 1010, switch_id: 1010, actorId: 8, hint: "Film Senri's AV", }, { title: "Cohabitation Sex with Yoshio", thumbnail: "08_05_01", pictures: ["01", "02", "03"], common_event_id: 1013, switch_id: 1013, actorId: 8, hint: "Film Senri's AV", }, { title: "Senri Facial", thumbnail: "08_06_01", pictures: ["01", "02", "03"], common_event_id: 1016, switch_id: 1016, actorId: 8, hint: "Film Senri's AV", }, { title: "Senri Pregnancy", thumbnail: "event_08_02", pictures: ["01", "02", "03"], common_event_id: 241, switch_id: 1127, actorId: 8, event: true, hint: "Senri gets pregnant", }, { title: "Cohabitation Start Event", thumbnail: "event_08_03", pictures: ["01", "02", "03"], common_event_id: 650, switch_id: 650, actorId: 8, hint: "Senri cohabits", }, { title: "Cohabitation Pregnancy", thumbnail: "event_08_04", pictures: ["01", "02", "03"], common_event_id: 666, switch_id: 666, actorId: 8, hint: "Cohabitation and pregnancy", }, { title: "Senri Peeping", thumbnail: "08_05_01", pictures: ["01", "02", "03"], common_event_id: 665, switch_id: 665, actorId: 8, hint: "Peek at Senri's cohabitation", }, { title: "Senri Friendship MAX", thumbnail: "08_05_01", pictures: ["01", "02", "03"], common_event_id: 702, switch_id: 702, actorId: 8, hint: "Maximize Senri's friendship level", }, { title: "Senri First Menstruation Event", thumbnail: "event_08_01", pictures: ["01", "02", "03"], common_event_id: 246, switch_id: 246, actorId: 8, event: true, hint: "Senri's first period arrives", }, { title: "Nonok's Pleasure Training", thumbnail: "09_03_01", pictures: ["01", "02", "03"], common_event_id: 1033, switch_id: 1033, actorId: 9, hint: "Film Nonoka's AV", }, { title: "Nonok's Virginity Loss", thumbnail: "09_04_01", pictures: ["01", "02", "03"], common_event_id: 1037, switch_id: 1037, actorId: 9, hint: "Film Nonoka's AV", }, /* { 'title': 'ノノカのボテ腹正常位', 'thumbnail': '09_04_bote2', 'pictures': ['01', '02', '03'], 'common_event_id': 1040, 'switch_id': 1040, actorId: 9, 'hint': 'ノノカのAV撮影をする' },*/ { title: "Nonok's First Childbirth", thumbnail: "09_04_bote", pictures: ["01", "02", "03"], common_event_id: 1038, switch_id: 1038, actorId: 9, hint: "Give birth with Nonoka", }, { title: "Nonok's Sleep Assault", thumbnail: "09_13_01", pictures: ["01", "02", "03"], common_event_id: 1068, switch_id: 1068, actorId: 9, hint: "Film Nonoka's AV", }, { title: "Nonok's Sleep Assault Childbirth", thumbnail: "09_13_bote", pictures: ["01", "02", "03"], common_event_id: 1069, switch_id: 1069, actorId: 9, hint: "Film Nonoka's AV", }, { title: "Nonoka Breeding in the Clubroom", thumbnail: "09_02_01", pictures: ["01", "02", "03"], common_event_id: 1030, switch_id: 1030, actorId: 9, hint: "Film Nonoka's AV", }, { title: "Nonoka Breeding in the Classroom", thumbnail: "09_06_01", pictures: ["01", "02", "03"], common_event_id: 1045, switch_id: 1045, actorId: 9, hint: "Film Nonoka's AV", }, { title: "Nonoka Childbirth in the Classroom", thumbnail: "09_06_bote", pictures: ["01", "02", "03"], common_event_id: 1046, switch_id: 1046, actorId: 9, hint: "Film Nonoka's AV", }, { title: "Nonoka Self-Selling AV", thumbnail: "09_08_01", pictures: ["01", "02", "03"], common_event_id: 1052, switch_id: 1052, actorId: 9, hint: "Film Nonoka's AV", }, { title: "Nonoka Experienced Sex", thumbnail: "09_09_01", pictures: ["01", "02", "03"], common_event_id: 1055, switch_id: 1055, actorId: 9, hint: "Film Nonoka's AV", }, { title: "Nonoka Breeding in the Toilet", thumbnail: "09_07_01", pictures: ["01", "02", "03"], common_event_id: 1049, switch_id: 1049, actorId: 9, hint: "Film Nonoka's AV", }, { title: "Nonoka Childbirth in the Toilet", thumbnail: "09_07_bote", pictures: ["01", "02", "03"], common_event_id: 1050, switch_id: 1050, actorId: 9, hint: "Film Nonoka's AV", }, { title: "Nonoka Abandoned in Public Toilet", thumbnail: "09_10_01", pictures: ["01", "02", "03"], common_event_id: 1058, switch_id: 1058, actorId: 9, hint: "Film Nonoka's AV", }, { title: "Nonoka Breeding with a Vagrant", thumbnail: "09_12_01", pictures: ["01", "02", "03"], common_event_id: 1064, switch_id: 1064, actorId: 9, hint: "Film Nonoka's AV", }, { title: "Re's Milking Sex", thumbnail: "09_17_01", pictures: ["01", "02", "03"], common_event_id: 1077, switch_id: 1077, actorId: 9, hint: "Film Nonoka's AV", }, { title: "Free Acto's Breeding Sex", thumbnail: "09_02_02", pictures: ["01", "02", "03"], common_event_id: 1076, switch_id: 1076, actorId: 9, hint: "Film Nonoka's AV", }, { title: "Video Letter 1", thumbnail: "event_09_09", pictures: ["01", "02", "03"], common_event_id: 374, switch_id: 374, actorId: 9, hint: "Send Nonoka's video letter", }, { title: "Video Letter 2", thumbnail: "event_09_09", pictures: ["01", "02", "03"], common_event_id: 378, switch_id: 378, actorId: 9, hint: "Send Nonoka's video letter", }, { title: "Cohabitation Start Event", thumbnail: "event_09_10", pictures: ["01", "02", "03"], common_event_id: 530, switch_id: 530, actorId: 9, hint: "Nonoka cohabits", }, { title: "Cohabitation Pregnancy", thumbnail: "event_09_10", pictures: ["01", "02", "03"], common_event_id: 548, switch_id: 548, actorId: 9, hint: "Nonoka cohabitation and pregnancy", }, { title: "Peeping on Cohabitation Sex", thumbnail: "09_09_01", pictures: ["01", "02", "03"], common_event_id: 546, switch_id: 546, actorId: 9, hint: "Peek at Nonoka's cohabitation H", }, { title: "Friendship MAX Event", thumbnail: "09_09_01", pictures: ["01", "02", "03"], common_event_id: 704, switch_id: 704, actorId: 9, hint: "Nonoka and cohabitation partner's friendship level is MAX", }, { title: "Nonoka Public Exposure", thumbnail: "09_05_01", pictures: ["01", "02", "03"], common_event_id: 969, switch_id: 969, actorId: 9, hint: "Execute Nonoka's public humiliation event", }, { title: "Final Battle Nonoka", thumbnail: "event_00_03", pictures: ["01", "02", "03"], common_event_id: 72, switch_id: 72, actorId: 9, event: true, hint: "Fight with Nonoka", }, { title: "Nonoka Pregnancy", thumbnail: "event_09_01", pictures: ["01", "02", "03"], common_event_id: 202, switch_id: 202, actorId: 9, event: true, hint: "Nonoka gets pregnant", }, { title: "Re's Pleasure Training", thumbnail: "05_01_01", pictures: ["01", "02", "03"], common_event_id: 1121, switch_id: 1121, actorId: 8, hint: "Restrain Ren", }, { title: "Ren and Senri's Sex 1", thumbnail: "05_03_01", pictures: ["01", "02", "03"], common_event_id: 1127, switch_id: 1127, actorId: 8, hint: "Film Senri's AV", }, { title: "Ren and Senri's Birthing Sex", thumbnail: "05_03_bote", pictures: ["01", "02", "03"], common_event_id: 1128, switch_id: 1128, actorId: 8, hint: "Film Senri's AV", }, { title: "Ren and Senri's Sex 2", thumbnail: "05_02_01", pictures: ["01", "02", "03"], common_event_id: 1124, switch_id: 1124, actorId: 8, hint: "Film Senri's AV", }, { title: "Ren and Senri's Sex 3", thumbnail: "05_04_01", pictures: ["01", "02", "03"], common_event_id: 1130, switch_id: 1130, actorId: 8, hint: "Film Senri's AV", }, { title: "Marina Sex with Son", thumbnail: "04_02_01", pictures: ["01", "02", "03"], common_event_id: 1081, switch_id: 1081, actorId: 4, hint: "Film Marina's AV", }, { title: "Giving Birth to So's Child", thumbnail: "04_02_bote", pictures: ["01", "02", "03"], common_event_id: 1082, switch_id: 1082, actorId: 4, hint: "Film Marina's AV", }, { title: "Son-Led Sex", thumbnail: "04_01_01", pictures: ["01", "02", "03"], common_event_id: 1078, switch_id: 1078, actorId: 4, hint: "Film Marina's AV", }, { title: "Riding Position Sex with Son", thumbnail: "04_10_01", pictures: ["01", "02", "03"], common_event_id: 1105, switch_id: 1105, actorId: 4, hint: "Film Marina's AV", }, { title: "Marina First Sex with Tarou", thumbnail: "04_03_01", pictures: ["01", "02", "03"], common_event_id: 1084, switch_id: 1084, actorId: 4, hint: "Marina has sex with Tarou", }, { title: "Marina Giving Birth", thumbnail: "04_03_bote", pictures: ["01", "02", "03"], common_event_id: 1085, switch_id: 1085, actorId: 4, hint: "Marina has sex with Tarou", }, { title: "Marina School Sex", thumbnail: "04_04_01", pictures: ["01", "02", "03"], common_event_id: 1087, switch_id: 1087, actorId: 4, hint: "Marina has sex with Tarou", }, { title: "Marina Cohabitation Sex with Tarou", thumbnail: "04_07_01", pictures: ["01", "02", "03"], common_event_id: 1096, switch_id: 1096, actorId: 4, hint: "Marina has sex with Tarou", }, { title: "Marina Riding Position with Nipple Piercings", thumbnail: "04_05_01", pictures: ["01", "02", "03"], common_event_id: 1090, switch_id: 1090, actorId: 4, hint: "Marina has sex with Tarou", }, { title: "Marina Sex with Students", thumbnail: "04_06_01", pictures: ["01", "02", "03"], common_event_id: 1093, switch_id: 1093, actorId: 4, hint: "Film Marina's AV", }, { title: "Sex with Labia Piercings", thumbnail: "04_13_01", pictures: ["01", "02", "03"], common_event_id: 1114, switch_id: 1114, actorId: 4, hint: "Marina has sex with Tarou", }, { title: "Sex in Sailor Uniform", thumbnail: "04_15_01", pictures: ["01", "02", "03"], common_event_id: 1120, switch_id: 1120, actorId: 4, hint: "Marina has sex with Tarou", }, { title: "Cohabitation Start Event", thumbnail: "event_04_05", pictures: ["01", "02", "03"], common_event_id: 560, switch_id: 560, actorId: 4, hint: "Marina cohabits", }, { title: "Peeping Event", thumbnail: "04_03_01", pictures: ["01", "02", "03"], common_event_id: 574, switch_id: 574, actorId: 4, hint: "Peek at Marina's cohabitation", }, { title: "Cohabitation Pregnancy", thumbnail: "event_04_06", pictures: ["01", "02", "03"], common_event_id: 575, switch_id: 575, actorId: 4, hint: "Cohabitation pregnancy", }, { title: "Friendship MAX Event", thumbnail: "04_03_01", pictures: ["01", "02", "03"], common_event_id: 706, switch_id: 706, actorId: 4, hint: "Marina and cohabitation partner's friendship level is MAX", }, { title: "Free Acto's Breeding Sex", thumbnail: "04_12_01", pictures: ["01", "02", "03"], common_event_id: 1111, switch_id: 1111, actorId: 4, hint: "Film Marina's AV", }, { title: "Marina Public Exposure", thumbnail: "04_14_01", pictures: ["01", "02", "03"], common_event_id: 967, switch_id: 967, actorId: 4, hint: "Execute Marina's public humiliation event", }, { title: "Video Letter 1", thumbnail: "event_04_04", pictures: ["01", "02", "03"], common_event_id: 384, switch_id: 384, actorId: 4, hint: "Send Marina's video letter", }, { title: "Video Letter 2", thumbnail: "event_04_04", pictures: ["01", "02", "03"], common_event_id: 388, switch_id: 388, actorId: 4, hint: "Send Marina's video letter", }, { title: "Marin's Information Investigation", thumbnail: "event_04_01", pictures: ["01", "02", "03"], common_event_id: 201, switch_id: 201, actorId: 4, event: true, hint: "View Chapter 2 event", }, { title: "Final Battle Marina", thumbnail: "event_00_04", pictures: ["01", "02", "03"], common_event_id: 73, switch_id: 73, actorId: 4, event: true, hint: "Fight with Marina", }, { title: "Victory Over Marina", thumbnail: "event_04_02", pictures: ["01", "02", "03"], common_event_id: 236, switch_id: 236, actorId: 4, event: true, hint: "Defeat Marina", }, { title: "Marina Pregnancy", thumbnail: "event_04_03", pictures: ["01", "02", "03"], common_event_id: 227, switch_id: 227, actorId: 4, event: true, hint: "Marina gets pregnant", }, { title: "Saki Virginity Loss", thumbnail: "013_01_01", pictures: ["01", "02", "03"], common_event_id: 1141, switch_id: 1141, actorId: 13, hint: "Film Saki's AV", }, { title: "Saki Giving Birth", thumbnail: "013_01_bote", pictures: ["01", "02", "03"], common_event_id: 1142, switch_id: 1142, actorId: 13, hint: "Saki gives birth", }, { title: "Saki Uniform Sex", thumbnail: "013_13_01", pictures: ["01", "02", "03"], common_event_id: 1177, switch_id: 1177, actorId: 13, hint: "Film Saki's AV", }, { title: "Saki Tongue Ejaculation", thumbnail: "013_02_01", pictures: ["01", "02", "03"], common_event_id: 1144, switch_id: 1144, actorId: 13, hint: "Film Saki's AV", }, { title: "Saki Anal Training", thumbnail: "013_05_01", pictures: ["01", "02", "03"], common_event_id: 1153, switch_id: 1153, actorId: 13, hint: "Film Saki's AV", }, { title: "Saki Whip Training", thumbnail: "013_06_01", pictures: ["01", "02", "03"], common_event_id: 1156, switch_id: 1156, actorId: 13, hint: "Film Saki's AV", }, { title: "Saki Whip Training 2", thumbnail: "013_06_bote_02", pictures: ["01", "02", "03"], common_event_id: 1157, switch_id: 1157, actorId: 13, hint: "Film Saki's AV", }, { title: "Saki Hanging Breeding", thumbnail: "013_07_01", pictures: ["01", "02", "03"], common_event_id: 1159, switch_id: 1159, actorId: 13, hint: "Film Saki's AV", }, { title: "Saki Hanging Birth", thumbnail: "013_07_bote", pictures: ["01", "02", "03"], common_event_id: 1160, switch_id: 1160, actorId: 13, hint: "Film Saki's AV", }, { title: "Free Acto's Breeding Sex", thumbnail: "013_07_02", pictures: ["01", "02", "03"], common_event_id: 1161, switch_id: 1161, actorId: 13, hint: "Film Saki's AV", }, { title: "Saki DVD Sale", thumbnail: "013_11_01", pictures: ["01", "02", "03"], common_event_id: 1171, switch_id: 1171, actorId: 13, hint: "Film Saki's AV", }, { title: "Saki Publicly Shown to Classmates", thumbnail: "013_08_01", pictures: ["01", "02", "03"], common_event_id: 1162, switch_id: 1162, actorId: 13, hint: "Film Saki's AV", }, { title: "Classmat's Childbirth", thumbnail: "013_12_01", pictures: ["01", "02", "03"], common_event_id: 1174, switch_id: 1174, actorId: 13, hint: "Film Saki's AV", }, { title: "Saki Daily Sex", thumbnail: "013_04_01", pictures: ["01", "02", "03"], common_event_id: 1150, switch_id: 1150, actorId: 13, hint: "Film Saki's AV", }, { title: "Saki Cowgirl Position", thumbnail: "013_10_01", pictures: ["01", "02", "03"], common_event_id: 1168, switch_id: 1168, actorId: 13, hint: "Film Saki's AV", }, { title: "Saki Belly Cowgirl Childbirth", thumbnail: "013_10_bote", pictures: ["01", "02", "03"], common_event_id: 1169, switch_id: 1169, actorId: 13, hint: "Saki gives birth", }, { title: "Cohabitation Start Event", thumbnail: "event_13_05", pictures: ["01", "02", "03"], common_event_id: 590, switch_id: 590, actorId: 13, hint: "Saki cohabits", }, { title: "Cohabitation Pregnancy", thumbnail: "event_13_05", pictures: ["01", "02", "03"], common_event_id: 606, switch_id: 590, actorId: 13, hint: "Saki cohabits and gets pregnant", }, { title: "Saki Friendship MAX", thumbnail: "013_04_01", pictures: ["01", "02", "03"], common_event_id: 708, switch_id: 708, actorId: 13, hint: "Maximize Saki's friendship level", }, { title: "Saki Peeping", thumbnail: "013_04_01", pictures: ["01", "02", "03"], common_event_id: 605, switch_id: 605, actorId: 13, hint: "Peep on Saki's cohabitation", }, { title: "Saki Exposed", thumbnail: "013_14_01", pictures: ["01", "02", "03"], common_event_id: 970, switch_id: 970, actorId: 13, hint: "Execute Saki's public humiliation event", }, { title: "Investigating Sak's Information", thumbnail: "event_13_04", pictures: ["01", "02", "03"], common_event_id: 245, switch_id: 245, actorId: 13, event: true, hint: "View the event on stage 3", }, { title: "Final Battle Saki", thumbnail: "event_13_01", pictures: ["01", "02", "03"], common_event_id: 74, switch_id: 74, actorId: 13, event: true, hint: "Fight Saki", }, { title: "Victory Over Saki", thumbnail: "event_13_02", pictures: ["01", "02", "03"], common_event_id: 239, switch_id: 239, actorId: 13, event: true, hint: "Defeat Saki", }, { title: "Saki Pregnant Belly", thumbnail: "event_13_03", pictures: ["01", "02", "03"], common_event_id: 222, switch_id: 222, actorId: 13, event: true, hint: "Saki gets pregnant", }, { title: "Prostitution with Debuo", thumbnail: "011_02_01", pictures: ["01", "02", "03"], common_event_id: 1204, switch_id: 1204, actorId: 11, hint: "Miyu engages in prostitution", }, { title: "Debu's Childbirth", thumbnail: "011_02_bote", pictures: ["01", "02", "03"], common_event_id: 1205, switch_id: 1205, actorId: 11, hint: "Miyu gives birth to Debuo's child", }, { title: "Prostitution with Kuzuo", thumbnail: "011_04_01", pictures: ["01", "02", "03"], common_event_id: 1210, switch_id: 1210, actorId: 11, hint: "Miyu engages in prostitution", }, { title: "Kuzu's Childbirth", thumbnail: "011_04_bote", pictures: ["01", "02", "03"], common_event_id: 1211, switch_id: 1211, actorId: 11, hint: "Miyu gives birth to Kuzuo's child", }, { title: "Prostitution with Gario", thumbnail: "011_05_01", pictures: ["01", "02", "03"], common_event_id: 1213, switch_id: 1213, actorId: 11, hint: "Miyu engages in prostitution", }, { title: "Gari's Childbirth", thumbnail: "011_05_bote", pictures: ["01", "02", "03"], common_event_id: 1214, switch_id: 1214, actorId: 11, hint: "Miyu gives birth to Gario's child", }, { title: "Miyu Kuzuo Second Time", thumbnail: "011_06_01", pictures: ["01", "02", "03"], common_event_id: 1216, switch_id: 1216, actorId: 11, hint: "Miyu engages in prostitution", }, { title: "Miyu Debuo Second Time", thumbnail: "011_07_01", pictures: ["01", "02", "03"], common_event_id: 1219, switch_id: 1219, actorId: 11, hint: "Miyu engages in prostitution", }, { title: "Miyu Gario Second Time", thumbnail: "011_08_01", pictures: ["01", "02", "03"], common_event_id: 1222, switch_id: 1222, actorId: 11, hint: "Miyu engages in prostitution", }, { title: "Miyu Peeping", thumbnail: "011_08_bote", pictures: ["01", "02", "03"], common_event_id: 483, switch_id: 483, actorId: 11, hint: "Peep on Miyu's cohabitation", }, { title: "Miyu Friendship MAX", thumbnail: "011_02_01", pictures: ["01", "02", "03"], common_event_id: 712, switch_id: 712, actorId: 11, hint: "Maximize Miyu's friendship level", }, { title: "Miyu First Menstruation Event", thumbnail: "event_11_04", pictures: ["01", "02", "03"], common_event_id: 264, switch_id: 264, actorId: 11, event: true, hint: "Miyu gets her first period", }, { title: "Miyu Pregnancy", thumbnail: "event_11_01", pictures: ["01", "02", "03"], common_event_id: 229, switch_id: 229, actorId: 11, event: true, hint: "Miyu gets pregnant", }, { title: "Miyu Cohabitation Event", thumbnail: "event_11_02", pictures: ["01", "02", "03"], common_event_id: 470, switch_id: 470, actorId: 11, event: true, hint: "Miyu cohabits", }, { title: "Cohabitation Childbirth Event", thumbnail: "event_11_03", pictures: ["01", "02", "03"], common_event_id: 475, switch_id: 475, actorId: 11, event: true, hint: "Miyu cohabits and gives birth", }, /*{ 'title': 'ユヅキ ココナとセックス', 'thumbnail': '03_02_01', 'pictures': ['01', '02', '03'], 'common_event_id': 1243, 'switch_id': 1243, actorId: 3, 'hint': '2面のイベントを見る' },*/ { title: "Yuzuki Semen Extraction", thumbnail: "03_03_01", pictures: ["01", "02", "03"], common_event_id: 1246, switch_id: 1246, actorId: 10, hint: "Film Kanami's AV", }, { title: "Kanami×Yuzuki", thumbnail: "010_06_01", pictures: ["01", "02", "03"], common_event_id: 1310, switch_id: 1310, actorId: 10, hint: "Film Kanami's AV", }, { title: "Yuzuk's Childbirth", thumbnail: "010_06_bote", pictures: ["01", "02", "03"], common_event_id: 1311, switch_id: 1311, actorId: 10, hint: "Film Kanami's AV", }, { title: "Kanami×Yuzuki 2", thumbnail: "010_01_01", pictures: ["01", "02", "03"], common_event_id: 1295, switch_id: 1295, actorId: 10, hint: "Film Kanami's AV", }, { title: "Yuzuk's Childbirth 2", thumbnail: "010_01_bote", pictures: ["01", "02", "03"], common_event_id: 1296, switch_id: 1296, actorId: 10, hint: "Film Kanami's AV", }, { title: "Kanami×Yuzuki 3", thumbnail: "010_07_01", pictures: ["01", "02", "03"], common_event_id: 1313, switch_id: 1313, actorId: 10, hint: "Film Kanami's AV", }, { title: "Hypnosis Realization", thumbnail: "010_03_01", pictures: ["01", "02", "03"], common_event_id: 1301, switch_id: 1301, actorId: 10, hint: "Film Kanami's AV", }, { title: "Hypnosis Realization Childbirth", thumbnail: "010_03_bote", pictures: ["01", "02", "03"], common_event_id: 1302, switch_id: 1302, actorId: 10, hint: "Film Kanami's AV", }, { title: "Hypnosis Realization 2", thumbnail: "010_04_01", pictures: ["01", "02", "03"], common_event_id: 1304, switch_id: 1304, actorId: 10, hint: "Film Kanami's AV", }, { title: "Hypnosis Realization 3", thumbnail: "010_02_01", pictures: ["01", "02", "03"], common_event_id: 1298, switch_id: 1298, actorId: 10, hint: "Film Kanami's AV", }, { title: "Kanami Friendship MAX", thumbnail: "010_02_01", pictures: ["01", "02", "03"], common_event_id: 710, switch_id: 710, actorId: 10, hint: "Maximize Kanami's friendship level", }, { title: "Kanami Peeping", thumbnail: "010_02_01", pictures: ["01", "02", "03"], common_event_id: 513, switch_id: 513, actorId: 10, hint: "Peep on Kanami's cohabitation", }, { title: "Kanami Pregnancy", thumbnail: "event_10_01", pictures: ["01", "02", "03"], common_event_id: 232, switch_id: 232, actorId: 10, event: true, hint: "Kanami gets pregnant", }, { title: "Kanami First Menstruation Event", thumbnail: "event_10_04", pictures: ["01", "02", "03"], common_event_id: 267, switch_id: 267, actorId: 10, event: true, hint: "Kanami's first period arrives", }, { title: "Kanami Cohabitation Event", thumbnail: "event_10_02", pictures: ["01", "02", "03"], common_event_id: 500, switch_id: 500, actorId: 10, event: true, hint: "Kanami starts cohabiting", }, { title: "Cohabitation Childbirth Event", thumbnail: "event_10_03", pictures: ["01", "02", "03"], common_event_id: 505, switch_id: 500, actorId: 10, event: true, hint: "Kanami gives birth while cohabiting", }, { title: "Kokona First H", thumbnail: "017_04_01", pictures: ["01", "02", "03"], common_event_id: 1401, switch_id: 1401, actorId: 17, hint: "Film Kokona's AV", }, { title: "Kokona Pregnancy Sex", thumbnail: "017_02_01", pictures: ["01", "02", "03"], common_event_id: 1395, switch_id: 1395, actorId: 17, hint: "Film Kokona's AV", }, { title: "Kokona Childbirth H", thumbnail: "017_03_01", pictures: ["01", "02", "03"], common_event_id: 1398, switch_id: 1398, actorId: 17, hint: "Film Kokona's AV", }, { title: "Kokona Public Breeding", thumbnail: "017_08_01", pictures: ["01", "02", "03"], common_event_id: 1413, switch_id: 1413, actorId: 17, hint: "Film Kokona's AV", }, { title: "Kokona Public Childbirth", thumbnail: "017_08_bote", pictures: ["01", "02", "03"], common_event_id: 1414, switch_id: 1414, actorId: 17, hint: "Film Kokona's AV", }, { title: "Kokona Defeated by Black Cock", thumbnail: "017_07_01", pictures: ["01", "02", "03"], common_event_id: 1410, switch_id: 1410, actorId: 17, hint: "Film Kokona's AV", }, { title: "Kokona Deformed Pussy Showcase", thumbnail: "017_09_01", pictures: ["01", "02", "03"], common_event_id: 1416, switch_id: 1416, actorId: 17, hint: "Film Kokona's AV", }, { title: "Kokona Public Childbirth", thumbnail: "017_09_bote", pictures: ["01", "02", "03"], common_event_id: 1417, switch_id: 1417, actorId: 17, hint: "Film Kokona's AV", }, /*{ 'title': 'ココナ バック2回目以降', 'thumbnail': '017_02_bote', 'pictures': ['01', '02', '03'], 'common_event_id': 1396, 'switch_id': 1396, actorId: 17, 'hint': 'ココナのAV撮影をする' }, { 'title': 'ココナ 正常位2回目以降', 'thumbnail': '017_03_02', 'pictures': ['01', '02', '03'], 'common_event_id': 1399, 'switch_id': 1399, actorId: 17, 'hint': 'ココナのAV撮影をする' },*/ { title: "Kokona Sex Room", thumbnail: "017_10_01", pictures: ["01", "02", "03"], common_event_id: 1419, switch_id: 1419, actorId: 17, hint: "Film Kokona's AV", }, { title: "Kokona Homeless", thumbnail: "017_05_01", pictures: ["01", "02", "03"], common_event_id: 1404, switch_id: 1404, actorId: 17, hint: "Film Kokona's AV", }, { title: "Kokona Tent Childbirth", thumbnail: "017_05_bote", pictures: ["01", "02", "03"], common_event_id: 1405, switch_id: 1405, actorId: 17, hint: "Film Kokona's AV", }, { title: "Kokona Big Cock Championship", thumbnail: "017_11_01", pictures: ["01", "02", "03"], common_event_id: 1422, switch_id: 1422, actorId: 17, hint: "Film Kokona's AV", }, { title: "Generic H with Different Actors", thumbnail: "017_04_02", pictures: ["01", "02", "03"], common_event_id: 1425, switch_id: 1425, actorId: 17, hint: "Film Kokona's AV", }, { title: "Cohabitation Start Event", thumbnail: "event_17_07", pictures: ["01", "02", "03"], common_event_id: 620, switch_id: 620, actorId: 17, hint: "Kokona starts cohabiting", }, { title: "Kokona Peeping", thumbnail: "017_02_01", pictures: ["01", "02", "03"], common_event_id: 635, switch_id: 635, actorId: 17, hint: "Peep on Kokona's cohabitation", }, { title: "Cohabitation Pregnancy", thumbnail: "event_17_08", pictures: ["01", "02", "03"], common_event_id: 636, switch_id: 636, actorId: 17, hint: "Get pregnant while cohabiting", }, { title: "Kokona Friendship MAX", thumbnail: "017_02_01", pictures: ["01", "02", "03"], common_event_id: 714, switch_id: 714, actorId: 17, hint: "Maximize Kokona's friendship level", }, { title: "Kokona Public Humiliation", thumbnail: "017_01_01", pictures: ["01", "02", "03"], common_event_id: 968, switch_id: 968, actorId: 17, hint: "Execute Kokona's public humiliation event", }, { title: "Kokona Information Investigation", thumbnail: "event_17_05", pictures: ["01", "02", "03"], common_event_id: 249, switch_id: 249, actorId: 17, hint: "Chapter 4 event", }, { title: "Kokona Event 2", thumbnail: "event_17_04", pictures: ["01", "02", "03"], common_event_id: 257, switch_id: 257, actorId: 17, hint: "Chapter 4 event", }, { title: "Final Battle Kokona", thumbnail: "event_17_02", pictures: ["01", "02", "03"], common_event_id: 75, switch_id: 75, actorId: 17, event: true, hint: "Fight Kokona", }, { title: "Kokona Capture", thumbnail: "event_17_01", pictures: ["01", "02", "03"], common_event_id: 1390, switch_id: 1390, actorId: 17, hint: "Defeat Kokona", }, { title: "Kokona Pregnancy Confirmation", thumbnail: "017_bote", pictures: ["01", "02", "03"], common_event_id: 217, switch_id: 217, actorId: 17, event: true, hint: "Kokona gets pregnant", }, { title: "Communication with Gary 1", thumbnail: "event_00_01", pictures: ["01", "02", "03"], common_event_id: 207, switch_id: 1007, actorId: 98, hint: "Watch the opening", }, { title: "Communication with Gary 2", thumbnail: "event_00_01", pictures: ["01", "02", "03"], common_event_id: 210, switch_id: 210, actorId: 98, hint: "Film Senri's AV", }, { title: "Gary Subjugation", thumbnail: "event_00_02", pictures: ["01", "02", "03"], common_event_id: 295, switch_id: 295, actorId: 98, hint: "Subjugate Gary", }, { title: "Declaration of War", thumbnail: "event_09_02", pictures: ["01", "02", "03"], common_event_id: 219, switch_id: 219, actorId: 98, event: true, hint: "Chapter 2 event", }, { title: "Yuzuki Joining Event", thumbnail: "event_03_01", pictures: ["01", "02", "03"], common_event_id: 269, switch_id: 269, actorId: 98, event: true, hint: "Seize the brainwashing facility", }, { title: "Monster King Subjugation", thumbnail: "event_09_04", pictures: ["01", "02", "03"], common_event_id: 284, switch_id: 284, actorId: 98, event: true, hint: "Defeat the Monster King", }, { title: "Stage 5 Event 1", thumbnail: "event_09_07", pictures: ["01", "02", "03"], common_event_id: 183, switch_id: 183, actorId: 98, hint: "Watch the stage 5 event", }, { title: "Stage 5 Event 2", thumbnail: "event_09_08", pictures: ["01", "02", "03"], common_event_id: 184, switch_id: 184, actorId: 98, hint: "Watch the stage 5 event", }, { title: "Senri and Other' Past", thumbnail: "event_17_03", pictures: ["01", "02", "03"], common_event_id: 371, switch_id: 371, actorId: 98, hint: "Talk to Tarou in stage 5", }, { title: "Final Showdown", thumbnail: "event_09_02", pictures: ["01", "02", "03"], common_event_id: 189, switch_id: 76, actorId: 98, event: true, hint: "Chapter 5 event", }, { title: "Bad End", thumbnail: "event_17_06", pictures: ["01", "02", "03"], common_event_id: 186, switch_id: 191, actorId: 98, event: true, hint: "Watch the ending", }, { title: "Normal End", thumbnail: "event_09_05", pictures: ["01", "02", "03"], common_event_id: 190, switch_id: 191, actorId: 98, event: true, hint: "Watch the ending", }, { title: "トゥルーエンド(怪人組織撃破)", thumbnail: "event_09_03", pictures: ["01", "02", "03"], common_event_id: 191, switch_id: 191, actorId: 98, event: true, hint: "Watch the ending", }, { title: "Epilogue", thumbnail: "event_09_06", pictures: ["01", "02", "03"], common_event_id: 900, switch_id: 191, actorId: 98, event: true, hint: "Watch the epilogue", }, ], //--------------------------------------------------------------------- // ★ 回想時に一時的に利用するマップIDを指定します //--------------------------------------------------------------------- // 通常は何もないマップを指定します //--------------------------------------------------------------------- sandbox_map_id: 4, }; function rngd_hash_size(obj) { var cnt = 0; for (var o in obj) { cnt++; } return cnt; } //----------------------------------------------------------------------------- // ◆ Scene関数 //----------------------------------------------------------------------------- //========================================================================= // ■ Scene_Recollection //========================================================================= // 回想用のシーン関数です //========================================================================= function Scene_Recollection() { this.initialize.apply(this, arguments); } Scene_Recollection.prototype = Object.create(Scene_Base.prototype); Scene_Recollection.prototype.constructor = Scene_Recollection; Scene_Recollection.prototype.initialize = function () { Scene_Base.prototype.initialize.call(this); }; Scene_Recollection.prototype.create = function () { Scene_Base.prototype.create.call(this); this.createWindowLayer(); this.createCommandWindow(); }; // 回想モードのカーソル Scene_Recollection.rec_list_index = 0; // 回想モードの再読み込み判定用 true: コマンドウィンドウを表示せず回想リストを表示 false:コマンドウィンドウを表示 Scene_Recollection.reload_rec_list = false; Scene_Recollection.prototype.createCommandWindow = function () { // 回想モード選択ウィンドウ /*this._rec_window = new Window_RecollectionCommand(); this._rec_window.setHandler('select_recollection', this.commandShowRecollection.bind(this)); this._rec_window.setHandler('select_cg', this.commandShowCg.bind(this)); this._rec_window.setHandler('select_back_title', this.commandBackTitle.bind(this)); this._rec_window.setHandler('cancel', this.commandBackTitle.bind(this)); this.addWindow(this._rec_window);*/ // 回想リスト this._rec_list = new Window_RecList(-4, -4, Graphics.width, Graphics.height); // リロードの場合:回想リストを表示にする。通常はここがfalse if (Scene_Recollection.reload_rec_list) { //this._rec_window.deactivate(); //this._rec_window.visible = false; this._rec_list.visible = true; this._rec_list.activate(); } else { //this._rec_window.activate(); //this._rec_window.visible = true; this._rec_list.visible = false; this._rec_list.deactivate(); } this._rec_list.setHandler("ok", this.commandDoRecMode.bind(this)); this._rec_list.setHandler("cancel", this.commandBackSelectMode.bind(this)); this._mode = "recollection"; this._rec_list.select(Scene_Recollection.rec_list_index); this.addWindow(this._rec_list); // CG参照用ダミーコマンド this._dummy_window = new Window_Command(new Rectangle(0, 0, 0, 0)); this._dummy_window.isCurrentItemEnabled = function () { return true; }; this._dummy_window.deactivate(); this._dummy_window.visible = false; this._dummy_window.setHandler("ok", this.commandDummyOk.bind(this)); this._dummy_window.setHandler("cancel", this.commandDummyCancel.bind(this)); this._dummy_window.addCommand("next", "ok"); this.addWindow(this._dummy_window); Scene_Recollection.reload_rec_list = false; this._dummy_window.isTouchedInsideFrame = function () { return true; }; this._dummy_window.onTouch = function (triggered) { if (triggered) { this.processOk(); } }; this.commandShowRecollection(); }; function Window_RecCommand() { this.initialize.apply(this, arguments); } Window_RecCommand.prototype = Object.create(Window_Command.prototype); Window_RecCommand.prototype.constructor = Window_RecCommand; Window_RecCommand.prototype.initialize = function () { Window_Command.prototype.initialize.call(this, 0, 0); }; Window_RecCommand.prototype.playOkSound = function () {}; Window_RecCommand.prototype.processCancel = function () { this.updateInputData(); this.deactivate(); this.callCancelHandler(); }; //------------------------------------------------------------------------- // ● 開始処理 //------------------------------------------------------------------------- Scene_Recollection.prototype.start = function () { Scene_Base.prototype.start.call(this); // this._rec_window.refresh(); this._rec_list.refresh(); AudioManager.playBgm(rngd_recollection_mode_settings.rec_mode_bgm.bgm); Scene_Recollection._rngd_recollection_doing = false; }; //------------------------------------------------------------------------- // ● 更新処理 //------------------------------------------------------------------------- Scene_Recollection.prototype.update = function () { Scene_Base.prototype.update.call(this); }; //------------------------------------------------------------------------- // ● 「回想を見る」を選択した際のコマンド //------------------------------------------------------------------------- Scene_Recollection.prototype.commandShowRecollection = function () { // モードウィンドウの無効化とリストウィンドウの有効化 this._mode = "recollection"; this._rec_list._mode = this._mode; this.do_exchange_status_window(this._rec_window, this._rec_list); }; //------------------------------------------------------------------------- // ● 「CGを見る」を選択した際のコマンド //------------------------------------------------------------------------- Scene_Recollection.prototype.commandShowCg = function () { this._mode = "cg"; this._rec_list._mode = this._mode; this.do_exchange_status_window(this._rec_window, this._rec_list); Scene_Recollection.reload_rec_list = false; }; //------------------------------------------------------------------------- // ● 「タイトルに戻る」を選択した際のコマンド //------------------------------------------------------------------------- Scene_Recollection.prototype.commandBackTitle = function () { Scene_Recollection.rec_list_index = 0; SceneManager.goto(Scene_Title); }; //------------------------------------------------------------------------- // ● 回想orCGモードから「キャンセル」して前の画面に戻った場合のコマンド //------------------------------------------------------------------------- Scene_Recollection.prototype.commandBackSelectMode = function () { SceneManager.goto(Scene_Title); //this.do_exchange_status_window(this._rec_list, this._rec_window); }; //------------------------------------------------------------------------- // ● 回想orCGモードにおいて、実際の回想orCGを選択した場合のコマンド //------------------------------------------------------------------------- Scene_Recollection.prototype.commandDoRecMode = function () { var target_index = this._rec_list.index(); Scene_Recollection.rec_list_index = target_index; $gameTemp.ignoreFiles = {}; $gameTemp.eroBack = null; if (this._rec_list.is_valid_picture(this._rec_list.index())) { // 回想モードの場合 if (this._mode == "recollection") { Scene_Recollection._rngd_recollection_doing = true; DataManager.setupNewGame(); $gamePlayer.setTransparent(255); this.fadeOutAll(); // TODO: パーティを透明状態にする //$dataSystem.optTransparent = false; var commonEventId = rngd_recollection_mode_settings.rec_cg_set[target_index][ "common_event_id" ]; $gameTemp.reserveCommonEvent(commonEventId); $gamePlayer.reserveTransfer( rngd_recollection_mode_settings.sandbox_map_id, 0, 0, 0 ); $gameSwitches.setValue(999, true); sessionStorage.setItem("noreCommonEventId", commonEventId); sessionStorage.setItem( "norePlayerMap", rngd_recollection_mode_settings.sandbox_map_id ); SceneManager.push(Scene_Map); // CGモードの場合 } else if (this._mode == "cg") { Scene_Recollection._rngd_recollection_doing = false; this._cg_sprites = []; this._cg_sprites_index = 0; var obj = rngd_recollection_mode_settings.rec_cg_set[target_index]; $gameTemp.addIgnoreFiles(obj.ignore); // シーン画像をロードする var n = 15; var file = obj.thumbnail.substr(0, 5); var self = this; var texture = PIXI.utils.TextureCache[file + "_01_01.png"]; if (texture) { onComp(); } else { var file2 = "img/ero/ero" + file + ".json"; if (obj.file) { file2 = "img/ero/ero" + obj.file + ".json"; } ImageManager.loadSpriteSheet(file2, onComp); if (obj.file2) { ImageManager.loadSpriteSheet("img/ero/ero" + obj.file2 + ".json"); } } if (obj.back) { $gameTemp.eroBack = obj.back; } function getFileName(id) { if (id == "se") { return "se"; } if (id < 10) { return file + "_0" + id; } else { return file + "_" + id; } } function onComp() { obj.pictures.forEach(function (name) { var sp = new Sprite_Picture(n); if (typeof name == "string") { var picFile = file + "_" + name; $gameScreen.showPicture( n, Saba.SimpleScenario.webpPrefix + picFile, 0, 0, 0, 100, 100, 255, 0 ); } else if (typeof name == "number") { $gameScreen.showPicture( n, Saba.SimpleScenario.webpPrefix + getFileName(name), 0, 0, 0, 100, 100, 255, 0 ); } else { var json = JSON.parse(JSON.stringify(name)); var names = json.pic; var nameList = []; for (var i = 0; i < names.length; i++) { nameList.push(getFileName(names[i])); } if (json.reverse) { for (var i = names.length - 1; i >= 0; i--) { nameList.push(getFileName(names[i])); } } json.pic = nameList; if (json.seIndex == undefined) { json.seIndex = -1; } p(JSON.stringify(json)); var picFile = JSON.stringify(json); $gameScreen.showPicture( n, Saba.SimpleScenario.webpPrefix + picFile, 0, 0, 0, 100, 100, 255, 0 ); } //var pic = $gameScreen.picture(n); //sp.bitmap = ImageManager.loadSabaJpeg(name); // 最初のSprite以外は見えないようにする if (self._cg_sprites.length > 0) { sp.invisible = true; } // TODO: 画面サイズにあわせて、拡大・縮小すべき self._cg_sprites.push(sp); self.addChild(sp); n++; }, self); } this.do_exchange_status_window(this._rec_list, this._dummy_window); this._dummy_window.visible = false; this._dummy_window.activate(); } } else { this._rec_list.activate(); } this._rec_list.refresh(); }; Scene_Recollection.prototype.commandDummyOk = function () { if (this._cg_sprites_index < this._cg_sprites.length - 1) { this._cg_sprites[this._cg_sprites_index].invisible = true; this._cg_sprites_index++; this._cg_sprites[this._cg_sprites_index].invisible = false; this._dummy_window.activate(); SoundManager.playOk(); } else { if (this._cg_sprites.length == 0) { this._dummy_window.activate(); return; } SoundManager.playOk(); this.clearCg(); this.do_exchange_status_window(this._dummy_window, this._rec_list); } }; Scene_Recollection.prototype.clearCg = function () { $gameScreen.clearPictures(); for (var i = 0; i < this._cg_sprites.length; i++) { var sp = this._cg_sprites[i]; sp.invisible = true; this.removeChild(sp); } this._cg_sprites = []; }; Scene_Recollection.prototype.commandDummyCancel = function () { if (this._cg_sprites_index == 0) { SoundManager.playCancel(); this.clearCg(); this.do_exchange_status_window(this._dummy_window, this._rec_list); } else { this._cg_sprites[this._cg_sprites_index].invisible = true; this._cg_sprites_index--; this._cg_sprites[this._cg_sprites_index].invisible = false; this._dummy_window.activate(); SoundManager.playOk(); } }; // コモンイベントから呼び出す関数 Scene_Recollection.prototype.rngd_exit_scene = function () { if (Scene_Recollection._rngd_recollection_doing) { // Window_RecListを表示する Scene_Recollection.reload_rec_list = true; SceneManager.push(Scene_Recollection); } }; //------------------------------------------------------------------------- // ● ウィンドウの無効化と有効化 //------------------------------------------------------------------------- // win1: 無効化するウィンドウ // win2: 有効化するウィンドウ //------------------------------------------------------------------------- Scene_Recollection.prototype.do_exchange_status_window = function (win1, win2) { if (win1) { win1.deactivate(); win1.visible = false; } if (win2) { win2.activate(); win2.refresh(); win2.visible = true; } }; //----------------------------------------------------------------------------- // ◆ Window関数 //----------------------------------------------------------------------------- //========================================================================= // ■ Window_RecollectionCommand //========================================================================= // 回想モードかCGモードを選択するウィンドウです //========================================================================= function Window_RecollectionCommand() { this.initialize.apply(this, arguments); } Window_RecollectionCommand.prototype = Object.create(Window_Command.prototype); Window_RecollectionCommand.prototype.constructor = Window_RecollectionCommand; Window_RecollectionCommand.prototype.initialize = function () { Window_Command.prototype.initialize.call(this, 0, 0); this.x = rngd_recollection_mode_settings.rec_mode_window.x; this.y = rngd_recollection_mode_settings.rec_mode_window.y; }; Window_RecollectionCommand.prototype.makeCommandList = function () { Window_Command.prototype.makeCommandList.call(this); this.addCommand( rngd_recollection_mode_settings.rec_mode_window.str_select_recollection, "select_recollection" ); this.addCommand( rngd_recollection_mode_settings.rec_mode_window.str_select_cg, "select_cg" ); this.addCommand( rngd_recollection_mode_settings.rec_mode_window.str_select_back_title, "select_back_title" ); }; //========================================================================= // ■ Window_RecollectionList //========================================================================= // 回想またはCGを選択するウィンドウです //========================================================================= function Window_RecList() { this.initialize.apply(this, arguments); } Window_RecList.prototype = Object.create(Window_Selectable.prototype); Window_RecList.prototype.constructor = Window_RecList; //------------------------------------------------------------------------- // ● 初期化処理 //------------------------------------------------------------------------- Window_RecList.prototype.initialize = function (x, y, width, height) { Window_Selectable.prototype.initialize.call( this, new Rectangle(x, y, width, height) ); this.windowWidth = width; this.windowHeight = height; this.select(0); this._formationMode = false; this.get_global_variables(); var infos = rngd_recollection_mode_settings.rec_cg_set; for (var i = 0; i < infos.length; i++) { var info = infos[i]; if (this._global_variables["switches"][info.switch_id]) { var bmpName = info.thumbnail; var bmp = ImageManager.loadEro(bmpName); } } ImageManager.loadEro("never_watch_picture"); this.refresh(); }; Window_RecList.prototype.standardPadding = function () { return 4; }; Window_RecList.prototype.refresh = function () { this._windowContentsSprite.removeChildren(); Window_Selectable.prototype.refresh.call(this); }; Window_RecList.prototype.maxItems = function () { var n = rngd_recollection_mode_settings.rec_cg_set.length; let length = 0; for (const set of rngd_recollection_mode_settings.rec_cg_set) { if (!set.invisible) { length++; } } return length; }; Window_RecList.prototype.itemHeight = function () { return 258; }; //Window_RecList.prototype.maxRows = function() { // return rngd_recollection_mode_settings.rec_list_window.item_height; //}; Window_RecList.prototype.maxCols = function () { return 4; }; Window_RecList.prototype.setActorId = function (actorId) { this._actorId = actorId; this.refresh(); }; Window_RecList.prototype.colSpacing = function () { return 0; }; Window_RecList.prototype.maxPageRows = function () { var pageHeight = this.height; // - this.padding * 2; return Math.floor(pageHeight / this.itemHeight()); }; Window_RecList.prototype.itemRect = function (index) { const maxCols = this.maxCols(); const itemWidth = this.itemWidth(); const itemHeight = this.itemHeight(); const colSpacing = this.colSpacing(); const rowSpacing = this.rowSpacing(); const col = index % maxCols; const row = Math.floor(index / maxCols); const x = col * itemWidth + colSpacing / 2 - this.scrollBaseX(); const y = row * itemHeight + rowSpacing / 2 - this.scrollBaseY(); const width = itemWidth - colSpacing + 2; const height = itemHeight - rowSpacing; return new Rectangle(x, y, width, height); }; Window_RecList.prototype.drawItem = function (index) { // 1番目のCGセットを取得 var rec_cg = null; let i = 0; for (let set of rngd_recollection_mode_settings.rec_cg_set) { if (set.invisible) { continue; } if (i == index) { rec_cg = set; break; } i++; } //rngd_recollection_mode_settings.rec_cg_set[index]; var rect = this.itemRect(index); var text_height = 0; SHOW_ALL = true; //$gameTemp.isPlaytest(); if (rngd_recollection_mode_settings.rec_list_window.show_title_text) { this.contents.fontSize = 20; if (this._global_variables["switches"][rec_cg.switch_id] || SHOW_ALL) { this.changeTextColor(ColorManager.normalColor()); let title = rec_cg.title; if (ConfigManager.language == "en" && rec_cg.titleEn) { title = rec_cg.titleEn; } if (false) { let hint = rec_cg.hint; const hints = hint.split("\n"); if (hints.length > 1) { this.contents.drawText( hints[0], rect.x + 4, rect.y + this.itemHeight() - 62, this.itemWidth(), 32, "center" ); this.contents.drawText( hints[1], rect.x + 4, rect.y + this.itemHeight() - 38, this.itemWidth(), 32, "center" ); } else { this.contents.drawText( rec_cg.hint, rect.x + 4, rect.y + this.itemHeight() - 52, this.itemWidth(), 32, "center" ); } } else { this.contents.drawText( title, rect.x + 4, rect.y + this.itemHeight() - 36, this.itemWidth(), 32, rngd_recollection_mode_settings.rec_list_window.title_text_align ); } } else { this.contents.drawText( rngd_recollection_mode_settings.rec_list_window.never_watch_title_text, rect.x + 4, rect.y + 4, this.itemWidth(), 32, rngd_recollection_mode_settings.rec_list_window.title_text_align ); this.changeTextColor(ColorManager.textColor(7)); if (rec_cg.hint) { let hint = rec_cg.hint; const hints = hint.split("\n"); if (hints.length > 1) { this.contents.drawText( hints[0], rect.x + 4, rect.y + this.itemHeight() - 62, this.itemWidth(), 32, "center" ); this.contents.drawText( hints[1], rect.x + 4, rect.y + this.itemHeight() - 38, this.itemWidth(), 32, "center" ); } else { this.contents.drawText( rec_cg.hint, rect.x + 4, rect.y + this.itemHeight() - 52, this.itemWidth(), 32, "center" ); } } } text_height = 32; } // CGセットのスイッチ番号が、全てのセーブデータを走査した後にTrueであればピクチャ表示 if (this._global_variables["switches"][rec_cg.switch_id] || SHOW_ALL) { var thumbnail_file_name = rec_cg.pictures[0]; if (rec_cg.thumbnail !== undefined && rec_cg.thumbnail !== null) { thumbnail_file_name = rec_cg.thumbnail; } this.drawRecollection( thumbnail_file_name, 0, 0, 300, 188, rect.x - 10, rect.y - 5 + text_height, rec_cg.paso ); } else { this.drawRecollection( rngd_recollection_mode_settings.rec_list_window.never_watch_picture_name, 0, 0, 300, 188, rect.x - 10, rect.y - 5 + text_height, rec_cg.paso ); } }; //------------------------------------------------------------------------- // ● 全てのセーブデータを走査し、対象のシーンスイッチ情報を取得する //------------------------------------------------------------------------- Window_RecList.prototype.get_global_variables = function () { this._global_variables = { switches: {}, }; var info = DataManager._globalInfo; //p(info) info[99] = info[99] || {}; var rec_cg_max = rngd_recollection_mode_settings.rec_cg_set.length; for (var j = 0; j < rec_cg_max; j++) { var cg = rngd_recollection_mode_settings.rec_cg_set[j]; if (info[99][cg.switch_id]) { this._global_variables["switches"][cg.switch_id] = true; } } }; //------------------------------------------------------------------------- // ● index番目に表示された回想orCGが有効かどうか判断する //------------------------------------------------------------------------- Window_RecList.prototype.is_valid_picture = function (index) { // CG情報の取得と対象スイッチの取得 var _rec_cg_obj = rngd_recollection_mode_settings.rec_cg_set[index]; return ( this._global_variables["switches"][_rec_cg_obj.switch_id] == true || SHOW_ALL ); }; (function () { //----------------------------------------------------------------------------- // ◆ 組み込み関数Fix //----------------------------------------------------------------------------- /* Window_Base.prototype.drawRecollection = function(bmp_name, x, y, width, height, dx, dy) { var bmp = ImageManager.loadPicture(bmp_name); var _width = width; var _height = height; if(_width > bmp.width) { _width = bmp.width - 1; } if(_height > bmp.height) { _height = bmp.height - 1; } this.contents.blt(bmp, x, y, _width, _height, dx, dy); }; */ /* var Window_TitleCommand_makeCommandList = Window_TitleCommand.prototype.makeCommandList; Window_TitleCommand.prototype.makeCommandList = function() { Window_TitleCommand_makeCommandList.call(this); this.clearCommandList(); this.addCommand(TextManager._newGame, 'newGame'); this.addCommand(TextManager._continue_, 'continue', this.isContinueEnabled()); this.addCommand(TextManager.recollection, 'recollection'); this.addCommand(TextManager._options, 'options'); this.addCommand(TextManager._gameEnd, 'gameEnd'); }; */ Scene_Title.prototype.commandRecollection = function () { SceneManager.push(Scene_Recollection); }; var Scene_Title_createCommandWindow = Scene_Title.prototype.createCommandWindow; Scene_Title.prototype.createCommandWindow = function () { Scene_Title_createCommandWindow.call(this); this._commandWindow.setHandler( "recollection", this.commandRecollection.bind(this) ); this._commandWindow.setHandler("gameEnd", this.popScene.bind(this)); }; Window_Base.prototype.drawRecollection = function ( bmp_name, x, y, width, height, dx, dy, paso ) { var _width = width; var _height = height; var bitmap = ImageManager.loadEro(bmp_name); if (!bitmap.isReady()) { return; } /* var baseTexture = bitmap._baseTexture; /*new PIXI.BaseTexture(bitmap._image, PIXI.SCALE_MODES.DEFAULT); baseTexture.imageUrl = 'jpg/' + bmp_name; PIXI.utils.BaseTextureCache['jpg/' + bmp_name] = baseTexture;*/ /* if(_width > baseTexture.width) { _width = baseTexture.width - 1; } if(_height > baseTexture.height) { _height = baseTexture.height - 1; } var texture = new PIXI.Texture(baseTexture); // texture.frame = new PIXI.Rectangle(sx, sy, pw, ph); var sprite = new PIXI.Sprite(texture); sprite.position.x = dx+20-5; sprite.position.y = dy - 12-10; sprite.width = width; sprite.height = height; this._windowContentsSprite.addChild(sprite); p(sprite)*/ this.contents.blt( bitmap, x, y, bitmap.width, bitmap.height, dx + 18, dy - 20, width, height ); }; Game_Interpreter.prototype.recoAll = function () { var info = DataManager._globalInfo; if (!info) { return; } info[99] = info[99] || {}; for (var i = 200; i < 300; i++) { info[99][i] = true; } for (var i = 600; i < 2000; i++) { info[99][i] = true; } DataManager.saveGlobalInfo(info); }; Game_Interpreter.prototype.reco = function (switch_id) { p("回想登録:" + switch_id); var info = DataManager._globalInfo; if (!info) { p("失敗"); return; } info[99] = info[99] || {}; if (info[99][switch_id]) { return; } info[99][switch_id] = true; DataManager.saveGlobalInfo(); }; })(); function recoGlobal(switch_id) { p("回想登録:" + switch_id); var info = DataManager._globalInfo; info[99] = info[99] || {}; if (info[99][switch_id]) { return; } info[99][switch_id] = true; DataManager.saveGlobalInfo(); } function hasFreeHFlah() { var info = DataManager._globalInfo; info[99] = info[99] || {}; return info[99][998]; } DataManager.selectSavefileForNewGame = function () { var globalInfo = this._globalInfo; this._lastAccessedId = 1; if (globalInfo) { var numSavefiles = 0; for (var i = 1; i <= globalInfo.length; i++) { if (i > 20) { break; } if (globalInfo[i]) { numSavefiles = i; } } if (numSavefiles < this.maxSavefiles()) { this._lastAccessedId = numSavefiles + 1; } else { var timestamp = Number.MAX_VALUE; for (var i = 1; i < globalInfo.length; i++) { if (!globalInfo[i]) { this._lastAccessedId = i; break; } if (i > 20) { break; } if (globalInfo[i].timestamp < timestamp) { timestamp = globalInfo[i].timestamp; this._lastAccessedId = i; } } } } };