dead-bunny/js/plugins/RecollectionMode.js
2025-01-13 14:30:18 -06:00

2501 lines
70 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//=============================================================================
// 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;
}
}
}
}
};