2438 lines
81 KiB
JavaScript
2438 lines
81 KiB
JavaScript
CBR_h_event_data = null;
|
||
|
||
DataManager._databaseFiles.push({ name: "CBR_h_event_data", src: "CBR_h_event_data.json" });
|
||
|
||
Window_Base.prototype.drawTextS = function (text, x, y, maxWidth, align) {
|
||
this.contents.drawTextS(text, x, y, maxWidth, this.lineHeight(), align);
|
||
};
|
||
Bitmap.prototype.drawTextS = function (text, x, y, maxWidth, lineHeight, align) {
|
||
// [Note] Different browser makes different rendering with
|
||
// textBaseline == 'top'. So we use 'alphabetic' here.
|
||
const context = this.context;
|
||
const alpha = context.globalAlpha;
|
||
maxWidth = maxWidth || 0xffffffff;
|
||
let tx = x;
|
||
let ty = Math.round(y + lineHeight / 2 + this.fontSize * 0.35);
|
||
if (align === "center") {
|
||
tx += maxWidth / 2;
|
||
}
|
||
if (align === "right") {
|
||
tx += maxWidth;
|
||
}
|
||
context.save();
|
||
context.font = this._makeFontNameText();
|
||
context.textAlign = align || "left";
|
||
context.textBaseline = "alphabetic";
|
||
context.globalAlpha = 1;
|
||
//this._drawTextOutline(text, tx, ty, maxWidth);
|
||
context.globalAlpha = alpha;
|
||
this._drawTextBody(text, tx, ty, maxWidth);
|
||
context.restore();
|
||
this._baseTexture.update();
|
||
};
|
||
|
||
Window_Base.prototype.drawTextM = function (text, x, y, maxWidth, align) {
|
||
this.contents.drawTextM(text, x, y, maxWidth, this.lineHeight(), align);
|
||
};
|
||
Bitmap.prototype.drawTextM = function (text, x, y, maxWidth, lineHeight, align) {
|
||
// [Note] Different browser makes different rendering with
|
||
// textBaseline == 'top'. So we use 'alphabetic' here.
|
||
const context = this.context;
|
||
const alpha = context.globalAlpha;
|
||
maxWidth = maxWidth || 0xffffffff;
|
||
let tx = x;
|
||
let ty = Math.round(y + lineHeight / 2 + this.fontSize * 0.35);
|
||
if (align === "center") {
|
||
tx += maxWidth / 2;
|
||
}
|
||
if (align === "right") {
|
||
tx += maxWidth;
|
||
}
|
||
context.save();
|
||
context.font = this._makeFontNameText();
|
||
context.textAlign = align || "left";
|
||
context.textBaseline = "alphabetic";
|
||
context.globalAlpha = 1;
|
||
this._drawTextOutlineM(text, tx, ty, maxWidth);
|
||
context.globalAlpha = alpha;
|
||
this._drawTextBody(text, tx, ty, maxWidth);
|
||
context.restore();
|
||
this._baseTexture.update();
|
||
};
|
||
|
||
Bitmap.prototype._drawTextOutlineM = function (text, tx, ty, maxWidth) {
|
||
const context = this.context;
|
||
context.strokeStyle = this.textColor;
|
||
context.lineWidth = 1;
|
||
context.lineJoin = "round";
|
||
context.strokeText(text, tx, ty, maxWidth);
|
||
};
|
||
|
||
Window_Base.prototype.drawTextExS = function (text, x, y, width) {
|
||
//this.resetFontSettings();
|
||
const textState = this.createTextState(text, x, y, width);
|
||
this.processAllTextS(textState);
|
||
return textState.outputWidth;
|
||
};
|
||
|
||
Window_Base.prototype.processAllTextS = function (textState) {
|
||
while (textState.index < textState.text.length) {
|
||
this.processCharacterS(textState);
|
||
}
|
||
this.flushTextStateS(textState);
|
||
};
|
||
Window_Base.prototype.processCharacterS = function (textState) {
|
||
const c = textState.text[textState.index++];
|
||
if (c.charCodeAt(0) < 0x20) {
|
||
this.flushTextStateS(textState);
|
||
this.processControlCharacterS(textState, c);
|
||
} else {
|
||
textState.buffer += c;
|
||
}
|
||
};
|
||
Window_Base.prototype.processControlCharacterS = function (textState, c) {
|
||
if (c === "\n") {
|
||
this.processNewLineS(textState);
|
||
}
|
||
if (c === "\x1b") {
|
||
const code = this.obtainEscapeCode(textState);
|
||
this.processEscapeCharacter(code, textState);
|
||
}
|
||
};
|
||
|
||
Window_Base.prototype.processNewLineS = function (textState) {
|
||
textState.x = textState.startX;
|
||
textState.y += textState.height - 3;
|
||
textState.height = this.calcTextHeight(textState);
|
||
};
|
||
|
||
Window_Base.prototype.flushTextStateS = function (textState) {
|
||
const text = textState.buffer;
|
||
const rtl = textState.rtl;
|
||
const width = this.textWidth(text);
|
||
const height = textState.height;
|
||
const x = rtl ? textState.x - width : textState.x;
|
||
const y = textState.y;
|
||
if (textState.drawing) {
|
||
this.contents.drawTextS(text, x, y, width, height);
|
||
}
|
||
textState.x += rtl ? -width : width;
|
||
textState.buffer = this.createTextBuffer(rtl);
|
||
const outputWidth = Math.abs(textState.x - textState.startX);
|
||
if (textState.outputWidth < outputWidth) {
|
||
textState.outputWidth = outputWidth;
|
||
}
|
||
textState.outputHeight = y - textState.startY + height;
|
||
};
|
||
|
||
Window_Base.prototype.drawTextExM = function (text, x, y, width) {
|
||
//this.resetFontSettings();
|
||
const textState = this.createTextState(text, x, y, width);
|
||
this.processAllTextM(textState);
|
||
return textState.outputWidth;
|
||
};
|
||
|
||
Window_Base.prototype.processAllTextM = function (textState) {
|
||
while (textState.index < textState.text.length) {
|
||
this.processCharacterM(textState);
|
||
}
|
||
|
||
this.flushTextStateM(textState);
|
||
};
|
||
Window_Base.prototype.processCharacterM = function (textState) {
|
||
const c = textState.text[textState.index++];
|
||
if (c.charCodeAt(0) < 0x20) {
|
||
this.flushTextStateM(textState);
|
||
this.processControlCharacterM(textState, c);
|
||
} else {
|
||
textState.buffer += c;
|
||
}
|
||
};
|
||
Window_Base.prototype.processControlCharacterM = function (textState, c) {
|
||
if (c === "\n") {
|
||
this.processNewLineM(textState);
|
||
}
|
||
if (c === "\x1b") {
|
||
const code = this.obtainEscapeCode(textState);
|
||
this.processEscapeCharacter(code, textState);
|
||
}
|
||
};
|
||
|
||
Window_Base.prototype.processNewLineM = function (textState) {
|
||
textState.x = textState.startX;
|
||
textState.y += textState.height - 3;
|
||
textState.height = this.calcTextHeight(textState);
|
||
};
|
||
|
||
Window_Base.prototype.flushTextStateM = function (textState) {
|
||
const text = textState.buffer;
|
||
const rtl = textState.rtl;
|
||
const width = this.textWidth(text);
|
||
const height = textState.height;
|
||
const x = rtl ? textState.x - width : textState.x;
|
||
const y = textState.y;
|
||
if (textState.drawing) {
|
||
this.contents.drawTextM(text, x, y, width, height);
|
||
}
|
||
textState.x += rtl ? -width : width;
|
||
textState.buffer = this.createTextBuffer(rtl);
|
||
const outputWidth = Math.abs(textState.x - textState.startX);
|
||
if (textState.outputWidth < outputWidth) {
|
||
textState.outputWidth = outputWidth;
|
||
}
|
||
textState.outputHeight = y - textState.startY + height;
|
||
};
|
||
|
||
//ゲージのラベルをちょっと右に
|
||
Sprite_Gauge.prototype.drawLabel = function () {
|
||
const label = this.label();
|
||
const x = this.labelOutlineWidth() / 2 + 4;
|
||
const y = this.labelY();
|
||
const width = this.bitmapWidth();
|
||
const height = this.textHeight();
|
||
this.setupLabelFont();
|
||
this.bitmap.paintOpacity = this.labelOpacity();
|
||
this.bitmap.drawText(label, x, y, width, height, "left");
|
||
this.bitmap.paintOpacity = 255;
|
||
};
|
||
Sprite_Gauge.prototype.currentValue = function () {
|
||
if (this._battler) {
|
||
switch (this._statusType) {
|
||
case "hp":
|
||
return this._battler.hp;
|
||
case "mp":
|
||
return this._battler.mp;
|
||
case "exp":
|
||
return this._battler.nextLevelExp() - this._battler.currentLevelExp() - this._battler.nextRequiredExp();
|
||
case "tp":
|
||
return this._battler.tp;
|
||
case "time":
|
||
return this._battler.tpbChargeTime();
|
||
}
|
||
}
|
||
return NaN;
|
||
};
|
||
|
||
Sprite_Gauge.prototype.currentMaxValue = function () {
|
||
if (this._battler) {
|
||
switch (this._statusType) {
|
||
case "hp":
|
||
return this._battler.mhp;
|
||
case "mp":
|
||
return this._battler.mmp;
|
||
case "exp":
|
||
return this._battler.nextLevelExp() - this._battler.currentLevelExp();
|
||
case "tp":
|
||
return this._battler.maxTp();
|
||
case "time":
|
||
return 1;
|
||
}
|
||
}
|
||
return NaN;
|
||
};
|
||
|
||
//ゲージの数値
|
||
Sprite_Gauge.prototype.drawValue = function () {
|
||
let currentValue = this.currentValue();
|
||
switch (this._statusType) {
|
||
case "hp":
|
||
currentValue += ` / ${this._battler.mhp}`;
|
||
break;
|
||
case "mp":
|
||
currentValue += ` / ${this._battler.mmp}`;
|
||
break;
|
||
}
|
||
const width = this.bitmapWidth();
|
||
const height = this.textHeight();
|
||
this.setupValueFont();
|
||
this.bitmap.drawText(currentValue, 0, 0, width, height, "right");
|
||
};
|
||
|
||
Sprite_Gauge.prototype.label = function () {
|
||
switch (this._statusType) {
|
||
case "hp":
|
||
return TextManager.hpA;
|
||
case "mp":
|
||
return TextManager.mpA;
|
||
case "exp":
|
||
return "次のレベルまで";
|
||
case "tp":
|
||
return TextManager.tpA;
|
||
default:
|
||
return "";
|
||
}
|
||
};
|
||
Sprite_Gauge.prototype.valueColor = function () {
|
||
switch (this._statusType) {
|
||
case "hp":
|
||
return ColorManager.hpColor(this._battler);
|
||
case "mp":
|
||
return ColorManager.mpColor(this._battler);
|
||
case "exp":
|
||
return "#FFFFFF";
|
||
case "tp":
|
||
return ColorManager.tpColor(this._battler);
|
||
default:
|
||
return ColorManager.normalColor();
|
||
}
|
||
};
|
||
|
||
Sprite_Gauge.prototype.gaugeColor1 = function () {
|
||
switch (this._statusType) {
|
||
case "hp":
|
||
return "#00E19C";
|
||
case "mp":
|
||
return "#019BE1";
|
||
case "exp":
|
||
return "#FFFFFF";
|
||
case "tp":
|
||
return ColorManager.tpGaugeColor1();
|
||
case "time":
|
||
return ColorManager.ctGaugeColor1();
|
||
default:
|
||
return ColorManager.normalColor();
|
||
}
|
||
};
|
||
Sprite_Gauge.prototype.gaugeColor2 = function () {
|
||
switch (this._statusType) {
|
||
case "hp":
|
||
return "#00E19C";
|
||
case "mp":
|
||
return "#019BE1";
|
||
case "exp":
|
||
return "#FFFFFF";
|
||
case "tp":
|
||
return ColorManager.tpGaugeColor2();
|
||
case "time":
|
||
return ColorManager.ctGaugeColor2();
|
||
default:
|
||
return ColorManager.normalColor();
|
||
}
|
||
};
|
||
|
||
function Sprite_Gauge_Battle() {
|
||
this.initialize(...arguments);
|
||
}
|
||
Sprite_Gauge_Battle.prototype = Object.create(Sprite_Gauge.prototype);
|
||
Sprite_Gauge_Battle.prototype.constructor = Sprite_Gauge_Battle;
|
||
//ゲージセットの枠の位置
|
||
Sprite_Gauge_Battle.prototype.bitmapHeight = function () {
|
||
return 48;
|
||
};
|
||
|
||
//ゲージの位置と大きさ調整
|
||
Sprite_Gauge_Battle.prototype.gaugeX = function () {
|
||
return 0;
|
||
};
|
||
Sprite_Gauge_Battle.prototype.drawGauge = function () {
|
||
const gaugeX = this.gaugeX();
|
||
const gaugeY = this.textHeight() - this.gaugeHeight() + 12;
|
||
const gaugewidth = this.bitmapWidth() - gaugeX;
|
||
const gaugeHeight = this.gaugeHeight();
|
||
this.drawGaugeRect(gaugeX, gaugeY, gaugewidth, gaugeHeight);
|
||
};
|
||
Sprite_Gauge_Battle.prototype.bitmapWidth = function () {
|
||
return 156;
|
||
};
|
||
Sprite_Gauge_Battle.prototype.gaugeHeight = function () {
|
||
return 12;
|
||
};
|
||
|
||
//ゲージのフォントと色
|
||
Sprite_Gauge_Battle.prototype.setupLabelFont = function () {
|
||
this.bitmap.fontFace = this._statusType == "exp" ? "serif" : "Times New Roman";
|
||
this.bitmap.fontSize = this._statusType == "exp" ? 18 : this.labelFontSize();
|
||
this.bitmap.textColor = "#FFFFFF";
|
||
this.bitmap.outlineColor = this.labelOutlineColor();
|
||
this.bitmap.outlineWidth = this.labelOutlineWidth();
|
||
};
|
||
|
||
Sprite_Gauge_Battle.prototype.labelY = function () {
|
||
return 0;
|
||
};
|
||
//フォント
|
||
Sprite_Gauge_Battle.prototype.setupValueFont = function () {
|
||
this.bitmap.fontFace = this._statusType == "exp" ? "serif" : "Times New Roman";
|
||
this.bitmap.fontSize = this._statusType == "exp" ? 18 : this.valueFontSize() + 2;
|
||
this.bitmap.textColor = this.valueColor();
|
||
this.bitmap.outlineColor = this.valueOutlineColor();
|
||
this.bitmap.outlineWidth = this.valueOutlineWidth();
|
||
};
|
||
|
||
//メニュー画面で使うゲージ
|
||
function Sprite_Gauge_Menu() {
|
||
this.initialize(...arguments);
|
||
}
|
||
Sprite_Gauge_Menu.prototype = Object.create(Sprite_Gauge_Battle.prototype);
|
||
Sprite_Gauge_Menu.prototype.constructor = Sprite_Gauge_Menu;
|
||
|
||
Sprite_Gauge_Menu.prototype.drawGaugeRect = function (x, y, width, height) {
|
||
var padding = 4;
|
||
x += padding;
|
||
width -= padding * 2;
|
||
|
||
const rate = this.gaugeRate();
|
||
const fillW = Math.floor((width - 2) * rate);
|
||
const fillH = height - 2;
|
||
const color0 = this.gaugeBackColor();
|
||
|
||
//グラデーションの描写
|
||
const ctx = this.bitmap.context;
|
||
if (this._statusType != "exp") {
|
||
const grd = ctx.createLinearGradient(0, -20, 220, 0);
|
||
if (this._statusType == "hp") {
|
||
grd.addColorStop(0, "rgba(0,225,155,1)");
|
||
grd.addColorStop(1, "rgba(0,0,0,0)");
|
||
} else {
|
||
grd.addColorStop(0, "rgba(0,155,225,1)");
|
||
grd.addColorStop(1, "rgba(0,0,0,0)");
|
||
}
|
||
ctx.fillStyle = grd;
|
||
ctx.fillRect(x - 10, y - 20, width + 10, height + 40);
|
||
}
|
||
|
||
ctx.fillStyle = "rgba(90, 90, 90, 1)";
|
||
ctx.fillRect(x - 3, y + 8, width, height);
|
||
|
||
const color1 = this.gaugeColor1();
|
||
const color2 = this.gaugeColor2();
|
||
y += padding;
|
||
this.bitmap.fillRect(x, y, width, height, color0);
|
||
this.bitmap.gradientFillRect(x + 1, y + 1, fillW, fillH, color1, color2);
|
||
};
|
||
|
||
//ゲージのラベルをちょっと右に
|
||
Sprite_Gauge_Menu.prototype.drawLabel = function () {
|
||
const label = this.label();
|
||
var x = this.labelOutlineWidth() / 2;
|
||
var y = this.labelY();
|
||
var width = this.bitmapWidth();
|
||
const height = this.textHeight();
|
||
|
||
var padding = 4;
|
||
x += padding;
|
||
width -= padding * 2;
|
||
y += padding;
|
||
|
||
this.setupLabelFont();
|
||
this.bitmap.paintOpacity = this.labelOpacity();
|
||
this.bitmap.drawText(label, x, y, width, height, "left");
|
||
this.bitmap.paintOpacity = 255;
|
||
};
|
||
//ゲージの数値
|
||
Sprite_Gauge_Menu.prototype.drawValue = function () {
|
||
let currentValue = this.currentValue();
|
||
switch (this._statusType) {
|
||
case "hp":
|
||
currentValue += ` / ${this._battler.mhp}`;
|
||
break;
|
||
case "mp":
|
||
currentValue += ` / ${this._battler.mmp}`;
|
||
break;
|
||
}
|
||
var width = this.bitmapWidth();
|
||
const height = this.textHeight();
|
||
|
||
var padding = 4;
|
||
width -= padding * 2;
|
||
|
||
this.setupValueFont();
|
||
this.bitmap.drawText(currentValue, 0, padding, width, height, "right");
|
||
};
|
||
|
||
Sprite_Gauge_Menu.prototype.bitmapWidth = function () {
|
||
return 200;
|
||
};
|
||
|
||
function Sprite_Gauge_Main_Menu() {
|
||
this.initialize(...arguments);
|
||
}
|
||
Sprite_Gauge_Main_Menu.prototype = Object.create(Sprite_Gauge_Menu.prototype);
|
||
Sprite_Gauge_Main_Menu.prototype.constructor = Sprite_Gauge_Main_Menu;
|
||
|
||
Sprite_Gauge_Main_Menu.prototype.bitmapWidth = function () {
|
||
return 204;
|
||
};
|
||
|
||
Sprite_Gauge_Main_Menu.prototype.drawValue = function () {
|
||
let currentValue = this.currentValue();
|
||
switch (this._statusType) {
|
||
case "hp":
|
||
currentValue += ` / ${this._battler.mhp}`;
|
||
break;
|
||
case "mp":
|
||
currentValue += ` / ${this._battler.mmp}`;
|
||
break;
|
||
case "exp":
|
||
if (99 <= this._battler._level) {
|
||
currentValue = 0;
|
||
} else {
|
||
currentValue = this.currentMaxValue() - currentValue;
|
||
}
|
||
break;
|
||
}
|
||
var width = this.bitmapWidth();
|
||
const height = this.textHeight();
|
||
|
||
var padding = 4;
|
||
width -= padding * 2;
|
||
|
||
this.setupValueFont();
|
||
this.bitmap.drawText(currentValue, 0, padding, width, height, "right");
|
||
};
|
||
|
||
Window_Command.prototype.commandExt = function (index) {
|
||
return this._list[index].ext;
|
||
};
|
||
|
||
Window_Options.prototype.volumeOffset = function () {
|
||
return 10;
|
||
};
|
||
|
||
// 元の速度を取得し、1.3倍にするよう補正
|
||
Game_CharacterBase.prototype.realMoveSpeed = function () {
|
||
return this._moveSpeed + (this.isDashing() ? 1 + 0.7 : 0.7);
|
||
};
|
||
|
||
Video._onEnd = function () {
|
||
this._element.pause();
|
||
this._updateVisibility(false);
|
||
};
|
||
|
||
// 他の奴に上書きされるけどねココ
|
||
const _Scene_Map_update = Scene_Map.prototype.update;
|
||
Scene_Map.prototype.update = function () {
|
||
_Scene_Map_update.call(this);
|
||
|
||
// マウスクリック検知 & 動画再生中チェック
|
||
if (Input.isTriggered("ok") || TouchInput.isTriggered()) {
|
||
if (Video.isPlaying()) {
|
||
Video._onEnd();
|
||
}
|
||
|
||
// MoviePicture.js
|
||
if ($gameScreen._pictures[11] && $gameScreen._pictures[11].isVideoWait()) {
|
||
$gameScreen.erasePicture(11);
|
||
}
|
||
}
|
||
};
|
||
|
||
Game_Action.prototype.applyGlobal = function () {
|
||
for (const effect of this.item().effects) {
|
||
if (effect.code === Game_Action.EFFECT_COMMON_EVENT) {
|
||
if (!this.item().meta.disable_common_in_menu || SceneManager._scene.constructor.name !== "Scene_Item") {
|
||
$gameTemp.reserveCommonEvent(effect.dataId);
|
||
}
|
||
}
|
||
}
|
||
this.updateLastUsed();
|
||
this.updateLastSubject();
|
||
};
|
||
|
||
Sprite_Balloon.prototype.speed = function () {
|
||
return 4;
|
||
};
|
||
|
||
(() => {
|
||
// ▼ コマンドリストに「テスト」を追加
|
||
const _Window_TitleCommand_makeCommandList = Window_TitleCommand.prototype.makeCommandList;
|
||
Window_TitleCommand.prototype.makeCommandList = function () {
|
||
_Window_TitleCommand_makeCommandList.call(this);
|
||
this.addCommand("Extra", "extraTest");
|
||
};
|
||
|
||
// ▼ ハンドラを登録
|
||
const _Scene_Title_createCommandWindow = Scene_Title.prototype.createCommandWindow;
|
||
Scene_Title.prototype.createCommandWindow = function () {
|
||
_Scene_Title_createCommandWindow.call(this);
|
||
this._commandWindow.setHandler("extraTest", this.commandExtraTest.bind(this));
|
||
};
|
||
|
||
// ▼ 選択時の処理
|
||
Scene_Title.prototype.commandExtraTest = function () {
|
||
SceneManager.push(Scene_Extra);
|
||
};
|
||
|
||
// ピクチャの回想を追加
|
||
const Game_Screen_showPicture = Game_Screen.prototype.showPicture;
|
||
Game_Screen.prototype.showPicture = function (pictureId, name, origin, x, y, scaleX, scaleY, opacity, blendMode) {
|
||
Game_Screen_showPicture.call(this, pictureId, name, origin, x, y, scaleX, scaleY, opacity, blendMode);
|
||
|
||
var name_id = name.slice(0, 8);
|
||
var data_idx = CBR_extra_pic_list.findIndex((item) => item.name === name_id);
|
||
if (data_idx !== -1) {
|
||
const ary = $gameVariables.value(521) || [];
|
||
if (!ary.includes(data_idx)) {
|
||
ary.push(data_idx);
|
||
ary.sort(function (a, b) {
|
||
a - b;
|
||
});
|
||
$gameVariables.setValue(521, ary);
|
||
}
|
||
}
|
||
};
|
||
})();
|
||
|
||
// タイトルにエクストラ全開放を追加
|
||
(() => {
|
||
const _Window_TitleCommand_makeCommandList = Window_TitleCommand.prototype.makeCommandList;
|
||
Window_TitleCommand.prototype.makeCommandList = function () {
|
||
_Window_TitleCommand_makeCommandList.apply(this, arguments);
|
||
this.addCommand("Unlock Extra", "extra_open");
|
||
};
|
||
|
||
const _Scene_Title_createCommandWindow = Scene_Title.prototype.createCommandWindow;
|
||
Scene_Title.prototype.createCommandWindow = function () {
|
||
_Scene_Title_createCommandWindow.apply(this, arguments);
|
||
this._commandWindow.setHandler("extra_open", this.commandToggleTest.bind(this));
|
||
};
|
||
|
||
Scene_Title.prototype.commandToggleTest = function () {
|
||
SoundManager.playOk();
|
||
$gameSwitches.setValue(778, !$gameSwitches.value(778)); // トグル状態を保持
|
||
this._commandWindow.refresh();
|
||
|
||
// 再び入力可能にする(重要)
|
||
this._commandWindow.activate();
|
||
};
|
||
|
||
const _Window_TitleCommand_drawItem = Window_TitleCommand.prototype.drawItem;
|
||
Window_TitleCommand.prototype.drawItem = function (index) {
|
||
const rect = this.itemLineRect(index);
|
||
const name = this.commandName(index);
|
||
if (this.commandSymbol(index) === "extra_open") {
|
||
//const color = !$gameSwitches.value(778) ? "#777777" : "#ffffff"; // 暗⇄明
|
||
const color = !$gameSwitches.value(778) ? "#ffffff" : "#777777"; // 暗⇄明
|
||
this.changeTextColor(color);
|
||
this.drawText(name, rect.x, rect.y, rect.width, "center");
|
||
this.resetTextColor();
|
||
ConfigManager.saveCommonVariables();
|
||
} else {
|
||
_Window_TitleCommand_drawItem.apply(this, arguments);
|
||
}
|
||
};
|
||
})();
|
||
|
||
Scene_Title.prototype.commandWindowRect = function () {
|
||
const offsetX = $dataSystem.titleCommandWindow.offsetX;
|
||
const offsetY = $dataSystem.titleCommandWindow.offsetY;
|
||
const ww = this.mainCommandWidth();
|
||
const wh = this.calcWindowHeight(5, true);
|
||
const wx = 100;
|
||
const wy = 270;
|
||
return new Rectangle(wx, wy, ww, wh);
|
||
};
|
||
|
||
// アイテムを使う時、使用効果でコモンがあると、defaultでtrueを返して使えてしまう
|
||
Game_Action.prototype.testItemEffect = function (target, effect) {
|
||
switch (effect.code) {
|
||
case Game_Action.EFFECT_RECOVER_HP:
|
||
return target.hp < target.mhp || effect.value1 < 0 || effect.value2 < 0;
|
||
case Game_Action.EFFECT_RECOVER_MP:
|
||
return target.mp < target.mmp || effect.value1 < 0 || effect.value2 < 0;
|
||
case Game_Action.EFFECT_ADD_STATE:
|
||
return !target.isStateAffected(effect.dataId);
|
||
case Game_Action.EFFECT_REMOVE_STATE:
|
||
return target.isStateAffected(effect.dataId);
|
||
case Game_Action.EFFECT_ADD_BUFF:
|
||
return !target.isMaxBuffAffected(effect.dataId);
|
||
case Game_Action.EFFECT_ADD_DEBUFF:
|
||
return !target.isMaxDebuffAffected(effect.dataId);
|
||
case Game_Action.EFFECT_REMOVE_BUFF:
|
||
return target.isBuffAffected(effect.dataId);
|
||
case Game_Action.EFFECT_REMOVE_DEBUFF:
|
||
return target.isDebuffAffected(effect.dataId);
|
||
case Game_Action.EFFECT_LEARN_SKILL:
|
||
return target.isActor() && !target.isLearnedSkill(effect.dataId);
|
||
case Game_Action.EFFECT_COMMON_EVENT: // コモン1132の場合のみ、コモン(default)でtrueとならずfalseを返す
|
||
return effect.dataId !== 1132;
|
||
default:
|
||
return true;
|
||
}
|
||
};
|
||
|
||
//----------------------------------------------------
|
||
//■コモンイベントの処理
|
||
//----------------------------------------------------
|
||
var SDN_EventAct = function (commonEventName) {
|
||
var idx = $dataCommonEvents.findIndex((e) => e && e.name == commonEventName);
|
||
if (idx === -1) {
|
||
$gameMessage.add("未実装のイベントです");
|
||
} else {
|
||
$gameTemp.reserveCommonEvent(idx);
|
||
}
|
||
};
|
||
//----------------------------------------------------
|
||
//■コモンイベントの番号を取得する
|
||
//----------------------------------------------------
|
||
var SDN_GetCommonEventID = function (commonEventName) {
|
||
return $dataCommonEvents.findIndex((e) => e && e.name == commonEventName);
|
||
};
|
||
//----------------------------------------------------
|
||
//■改造セルフスイッチ
|
||
//----------------------------------------------------
|
||
var SDN_SelfSwith = function (MapId, EventId, SwitchName, Value) {
|
||
key = [MapId, EventId, SwitchName];
|
||
$gameSelfSwitches.setValue(key, Value);
|
||
};
|
||
//----------------------------------------------------
|
||
//■立ち絵の表示
|
||
//----------------------------------------------------
|
||
var SDN_SetFgImage = function (chara, posit, pose) {
|
||
//キャラの座標を取得する
|
||
if (chara == "sir" && pose == 1) {
|
||
var pos = [390, 31, -80, 445];
|
||
} else if (chara == "sir" && pose == 2) {
|
||
var pos = [390, 31, -80, 445];
|
||
} else if (chara == "sir" && pose == 3) {
|
||
var pos = [330, 31, -100, 445];
|
||
} else if (chara == "sir" && pose == 4) {
|
||
var pos = [330, 31, -100, 445];
|
||
} else if (chara == "yoz" && pose == 1) {
|
||
var pos = [412, 19, -80, 445];
|
||
} else if (chara == "yoz" && pose == 2) {
|
||
var pos = [412, 19, -80, 445];
|
||
} else if (chara == "yoz" && pose == 3) {
|
||
var pos = [451, 22, -35, 445];
|
||
} else if (chara == "yoz" && pose == 4) {
|
||
var pos = [451, 22, -35, 445];
|
||
} else if (chara == "rei" && pose == 1) {
|
||
var pos = [350, 10, -140, 445];
|
||
} else if (chara == "rei" && pose == 2) {
|
||
var pos = [367, 37, -132, 440];
|
||
} else if (chara == "kao" && pose == 1) {
|
||
var pos = [390, 26, -80, 445];
|
||
} else if (chara == "kur" && pose == 1) {
|
||
var pos = [400, 130, -80, 465];
|
||
} else if (chara == "chi" && pose == 1) {
|
||
var pos = [390, 0, -80, 445];
|
||
} else if (chara == "mir" && pose == 1) {
|
||
var pos = [430, 51, -40, 445];
|
||
} else if (chara == "aki" && pose == 1) {
|
||
var pos = [444, -10, -50, 445];
|
||
} else if (chara == "nar" && pose == 1) {
|
||
var pos = [440, 0, -30, 445];
|
||
} else if (chara == "kag" && pose == 1) {
|
||
var pos = [269, 0, -220, 420];
|
||
}
|
||
//位置設定
|
||
if (posit == "l") {
|
||
var lay = 6;
|
||
var x = pos[0] - 550;
|
||
var y = pos[1];
|
||
} else if (posit == "cl") {
|
||
var lay = 4;
|
||
var x = pos[0] - 350;
|
||
var y = pos[1];
|
||
} else if (posit == "c") {
|
||
var lay = 8;
|
||
var x = pos[0];
|
||
var y = pos[1];
|
||
} else if (posit == "cr") {
|
||
var lay = 5;
|
||
var x = pos[0] + 350;
|
||
var y = pos[1];
|
||
} else if (posit == "r") {
|
||
var lay = 7;
|
||
var x = pos[0] + 550;
|
||
var y = pos[1];
|
||
} else if (posit == "face") {
|
||
var lay = 9;
|
||
var x = pos[2];
|
||
var y = pos[3];
|
||
}
|
||
//実行
|
||
if (posit != "face") {
|
||
$gameScreen.showPicture(lay, "", 0, x, y, 100, 100, 255, 0);
|
||
} else {
|
||
$gameScreen.showPicture(lay, "", 0, x, y, 80, 80, 255, 0);
|
||
}
|
||
};
|
||
|
||
//----------------------------------------------------
|
||
//■操作キャラが妊娠しているかどうかを判別する
|
||
//----------------------------------------------------
|
||
var SDN_PlayerNowPregnancy = function () {
|
||
if ($gameSwitches.value(117) && $gameVariables.value(204) >= 2) {
|
||
return true;
|
||
} else if ($gameSwitches.value(118) && $gameVariables.value(205) >= 2) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
};
|
||
|
||
//----------------------------------------------------
|
||
//■臨月中のキャラがいるかどうか?
|
||
//----------------------------------------------------
|
||
var SDN_CharaNowPregnancy = function () {
|
||
if ($gameVariables.value(204) >= 2 || $gameVariables.value(205) >= 2) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
};
|
||
//----------------------------------------------------
|
||
//■ファストトラベル実行前
|
||
//----------------------------------------------------
|
||
//ファストトラベル可能な場所のスイッチをONにするためのもの
|
||
var SDN_SetFastTravel = function () {
|
||
//ファストトラベル設置用の開始スイッチNOを定義
|
||
var FastSwNum = 371;
|
||
//初期化
|
||
for (var i = 371; i <= 399; i++) {
|
||
$gameSwitches.setValue(i, false);
|
||
}
|
||
//抜けていた分の処理
|
||
$gameSwitches.setValue(403, false);
|
||
$gameSwitches.setValue(404, false);
|
||
//ボテ腹状態ではない場合
|
||
if (SDN_CharaNowPregnancy() == false) {
|
||
//夜専用マップの設定
|
||
var NightOnly = [343, 346, 354, 356, 358];
|
||
var NightOnlySet = [372, 375, 383, 385, 387];
|
||
//昼の場合(昼を表すスイッチNOは今回114)
|
||
if ($gameSwitches.value(114) == true) {
|
||
for (var i = 342; i <= 370; i++) {
|
||
if ($gameSwitches.value(i) == true) {
|
||
$gameSwitches.setValue(FastSwNum, true);
|
||
}
|
||
FastSwNum = FastSwNum + 1;
|
||
}
|
||
//昼夜分かれているMAPで昼MAPは強制的にfalseにする
|
||
for (var i = 0; i < NightOnlySet.length; i++) {
|
||
$gameSwitches.setValue(NightOnlySet[i], false);
|
||
}
|
||
//抜け分の処理
|
||
if ($gameSwitches.value(401)) {
|
||
$gameSwitches.setValue(403, true);
|
||
}
|
||
if ($gameSwitches.value(402)) {
|
||
$gameSwitches.setValue(404, true);
|
||
}
|
||
} else {
|
||
//夜の場合
|
||
for (var i = 0; i < NightOnly.length; i++) {
|
||
if ($gameSwitches.value(NightOnly[i])) {
|
||
$gameSwitches.setValue(NightOnlySet[i], true);
|
||
}
|
||
}
|
||
//昼夜あるマップの例外処理
|
||
if ($gameSwitches.value(367)) {
|
||
$gameSwitches.setValue(396, true);
|
||
}
|
||
}
|
||
//ボテ腹状態のもの
|
||
} else {
|
||
if ($gameSwitches.value(114)) {
|
||
var PregnancyMap = [342, 345, 367];
|
||
var PregnancyMapSet = [371, 374, 396];
|
||
} else {
|
||
var PregnancyMap = [343, 346, 367];
|
||
var PregnancyMapSet = [372, 375, 396];
|
||
}
|
||
for (var i = 0; i < PregnancyMap.length; i++) {
|
||
if ($gameSwitches.value(PregnancyMap[i])) {
|
||
$gameSwitches.setValue(PregnancyMapSet[i], true);
|
||
}
|
||
}
|
||
}
|
||
};
|
||
//----------------------------------------------------
|
||
//■宝箱の処理
|
||
//----------------------------------------------------
|
||
var SDN_ActChest = function (itemType, itemId, itemvalue) {
|
||
//獲得するものの種類を定義する
|
||
if (itemType == "I" || itemType == "アイテム" || itemType == "Item") {
|
||
var setKey = "I";
|
||
} else if (itemType == "W" || itemType == "アクセサリー" || itemType == "アクセ" || itemType == "Accessory") {
|
||
var setKey = "W";
|
||
} else if (itemType == "P" || itemType == "パッシブスキル" || itemType == "PS" || itemType == "PassiveSkill") {
|
||
var setKey = "A";
|
||
} else if (itemType == "M" || itemType == "お金" || itemType == "金" || itemType == "Money") {
|
||
var setKey = "M";
|
||
}
|
||
//キーごとの取得処理
|
||
if (setKey == "I") {
|
||
$gameParty.gainItem($dataItems[itemId], itemvalue);
|
||
//インフォ用の文字列取得
|
||
$gameVariables.setValue(4, "『" + $dataItems[itemId].name + "』×" + itemvalue + " 入手!");
|
||
$gameVariables.setValue(5, $dataItems[itemId].iconIndex);
|
||
} else if (setKey == "W") {
|
||
$gameParty.gainItem($dataWeapons[itemId], itemvalue);
|
||
//インフォ用の文字列取得
|
||
$gameVariables.setValue(4, "『" + $dataWeapons[itemId].name + "』×" + itemvalue + " 入手!");
|
||
$gameVariables.setValue(5, $dataWeapons[itemId].iconIndex);
|
||
} else if (setKey == "A") {
|
||
$gameParty.gainItem($dataArmors[itemId], itemvalue);
|
||
//インフォ用の文字列取得
|
||
if ($dataArmors[itemId].atypeId == 1) {
|
||
var chaTarget = "白雪が";
|
||
} else {
|
||
var chaTarget = "夜鶴が";
|
||
}
|
||
$gameVariables.setValue(4, chaTarget + "パッシブスキル『" + $dataArmors[itemId].name + "』を習得した");
|
||
$gameVariables.setValue(5, $dataArmors[itemId].iconIndex);
|
||
//説明用のコモンイベントトリガーを入れる処理
|
||
if (!$gameSwitches.value(164)) {
|
||
$gameSwitches.setValue(163, true);
|
||
}
|
||
} else if (setKey == "M") {
|
||
$gameParty.gainGold(itemvalue);
|
||
//インフォ用の文字列取得
|
||
$gameVariables.setValue(4, itemvalue + "円" + " 入手!");
|
||
$gameVariables.setValue(5, 87);
|
||
}
|
||
};
|
||
//----------------------------------------------------
|
||
//■イベントCGの処理(ファイル名取得の処理)
|
||
//----------------------------------------------------
|
||
var SDN_GetEvFileName = function (fileName, costume) {
|
||
if (costume == false) {
|
||
var fileName = fileName;
|
||
} else {
|
||
//服装分岐、今作は変数3番を使用する
|
||
var strCosNum = $gameVariables.value(3);
|
||
if (fileName.substring(0, 3) == "eva") {
|
||
strCosNum = $gameVariables.value(204);
|
||
} else if (fileName.substring(0, 3) == "evb") {
|
||
strCosNum = $gameVariables.value(205);
|
||
}
|
||
//例外処理
|
||
var exfileName = fileName.substring(0, 8);
|
||
if (exfileName == "eva_c051" || exfileName == "eva_c060" || exfileName == "eva_c061") {
|
||
if ($gameVariables.value(204) == 2) {
|
||
strCosNum = 0;
|
||
} else if ($gameVariables.value(204) == 3) {
|
||
strCosNum = 1;
|
||
}
|
||
}
|
||
if (exfileName == "evb_c051" || exfileName == "evb_c060" || exfileName == "evb_c061") {
|
||
if ($gameVariables.value(205) == 2) {
|
||
strCosNum = 0;
|
||
} else if ($gameVariables.value(205) == 3) {
|
||
strCosNum = 1;
|
||
}
|
||
}
|
||
var fileName = fileName + "_" + strCosNum.toString();
|
||
}
|
||
return fileName;
|
||
};
|
||
//----------------------------------------------------
|
||
//■現在いるMAPのタイプを取得
|
||
//※スマフォ操作や妊娠システム関係で使うもの
|
||
// 1 : アイリスアカデミー
|
||
// 2 : 神宿
|
||
// 3 : 渋野
|
||
// 4 : ダリアのアジト
|
||
//----------------------------------------------------
|
||
var SDN_GetTownType = function () {
|
||
//アイリスアカデミーかどうか?
|
||
var ary = [
|
||
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
|
||
45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56
|
||
];
|
||
for (let i = 0; i < ary.length; i++) {
|
||
if (ary[i] == $gameMap.mapId()) {
|
||
return 1;
|
||
}
|
||
}
|
||
//神宿かどうか?
|
||
var ary = [72, 73, 74, 75, 76, 77, 78, 81, 82, 83, 84, 85];
|
||
for (let i = 0; i < ary.length; i++) {
|
||
if (ary[i] == $gameMap.mapId()) {
|
||
return 2;
|
||
}
|
||
}
|
||
//渋野かどうか?
|
||
var ary = [143, 144];
|
||
for (let i = 0; i < ary.length; i++) {
|
||
if (ary[i] == $gameMap.mapId()) {
|
||
return 3;
|
||
}
|
||
}
|
||
//ダリアのアジトかどうか?
|
||
var ary = [225, 226, 227, 228, 229, 230, 231];
|
||
for (let i = 0; i < ary.length; i++) {
|
||
if (ary[i] == $gameMap.mapId()) {
|
||
return 4;
|
||
}
|
||
}
|
||
return 0;
|
||
};
|
||
//----------------------------------------------------
|
||
//■性周期の処理
|
||
// 性周期変更カウンター=変数131~
|
||
// 白雪性周期 = 65
|
||
// 夜鶴性周期 = 66
|
||
//----------------------------------------------------
|
||
var SDN_EstrousCycle = function (val) {
|
||
var counterId_sir = [131, 65];
|
||
var counterId_yoz = [132, 66];
|
||
//カウンターに設定数値を+する
|
||
$gameVariables.setValue(counterId_sir[0], $gameVariables.value(counterId_sir[0]) + val);
|
||
$gameVariables.setValue(counterId_yoz[0], $gameVariables.value(counterId_yoz[0]) + val);
|
||
//性周期の変化 規定値は通常20で安全日と危険日は10で設定
|
||
if ($gameVariables.value(counterId_sir[1]) == 1) {
|
||
var countLimit = 20;
|
||
} else {
|
||
var countLimit = 10;
|
||
}
|
||
if ($gameVariables.value(counterId_sir[0]) >= countLimit) {
|
||
$gameVariables.setValue(counterId_sir[1], $gameVariables.value(counterId_sir[1]) + 1);
|
||
if ($gameVariables.value(counterId_sir[1]) == 4) {
|
||
$gameVariables.setValue(counterId_sir[1], 0);
|
||
}
|
||
//性周期が変化したらカウンターをリセット
|
||
$gameVariables.setValue(counterId_sir[0], 0);
|
||
}
|
||
//夜鶴の処理
|
||
if ($gameVariables.value(counterId_yoz[1]) == 1) {
|
||
var countLimit = 20;
|
||
} else {
|
||
var countLimit = 10;
|
||
}
|
||
if ($gameVariables.value(counterId_yoz[0]) >= countLimit) {
|
||
$gameVariables.setValue(counterId_yoz[1], $gameVariables.value(counterId_yoz[1]) + 1);
|
||
if ($gameVariables.value(counterId_yoz[1]) == 4) {
|
||
$gameVariables.setValue(counterId_yoz[1], 0);
|
||
}
|
||
//性周期が変化したらカウンターをリセット
|
||
$gameVariables.setValue(counterId_yoz[0], 0);
|
||
}
|
||
};
|
||
//----------------------------------------------------
|
||
//■戦闘:開始ボイスの定義
|
||
//----------------------------------------------------
|
||
var SDN_BattleStartVoice = function () {
|
||
// 先頭キャラのHPレートで判断
|
||
if ($gameParty.allMembers()[0].name() == "白雪") {
|
||
var chaData = ["sir", 204];
|
||
} else {
|
||
var chaData = ["yoz", 205];
|
||
}
|
||
var hpRate = $gameParty.members()[0].hpRate();
|
||
var chapter = $gameVariables.value(1);
|
||
//ボイスファイルの取得
|
||
if ($gameVariables.value(chaData[0]) == 0) {
|
||
if (hpRate >= 0.8 && chapter < 307) {
|
||
return "Vo_" + chaData[0] + "_9_0001";
|
||
} else if (hpRate >= 0.25 && chapter < 307) {
|
||
return "Vo_" + chaData[0] + "_9_0002";
|
||
} else if (chapter < 307) {
|
||
return "Vo_" + chaData[0] + "_9_0003";
|
||
} else if (hpRate >= 0.8) {
|
||
return "Vo_" + chaData[0] + "_9_0007";
|
||
} else if (hpRate >= 0.25) {
|
||
return "Vo_" + chaData[0] + "_9_0008";
|
||
} else {
|
||
return "Vo_" + chaData[0] + "_9_0009";
|
||
}
|
||
} else {
|
||
if (hpRate >= 0.8 && chapter < 307) {
|
||
return "Vo_" + chaData[0] + "_9_0004";
|
||
} else if (hpRate >= 0.25 && chapter < 307) {
|
||
return "Vo_" + chaData[0] + "_9_0005";
|
||
} else if (chapter < 307) {
|
||
return "Vo_" + chaData[0] + "_9_0006";
|
||
} else if (hpRate >= 0.8) {
|
||
return "Vo_" + chaData[0] + "_9_0010";
|
||
} else if (hpRate >= 0.25) {
|
||
return "Vo_" + chaData[0] + "_9_0011";
|
||
} else {
|
||
return "Vo_" + chaData[0] + "_9_0012";
|
||
}
|
||
}
|
||
};
|
||
//----------------------------------------------------
|
||
//■戦闘:コマンドボイス
|
||
//----------------------------------------------------
|
||
//ボイスファイル取得
|
||
var SDN_CommandVoiceFile = function (name, actorId, cosId) {
|
||
//服装の状態を取得する
|
||
var cosState = $gameVariables.value(cosId);
|
||
//キャラIDを取得
|
||
if (name == "白雪") {
|
||
var hpRate = $gameActors.actor(1).hpRate();
|
||
var chaId = "sir";
|
||
var roshutsuId = 267;
|
||
var hparamId = [243, 244];
|
||
var kousokuId = [136, 137];
|
||
} else {
|
||
var hpRate = $gameActors.actor(2).hpRate();
|
||
var chaId = "yoz";
|
||
var roshutsuId = 313;
|
||
var hparamId = [289, 290];
|
||
var kousokuId = [137, 136];
|
||
}
|
||
//ファイル名取得処理
|
||
//絶頂時
|
||
if ($gameActors.actor(actorId + 1).isStateAffected(90)) {
|
||
if (!$gameSwitches.value(hparamId[0])) {
|
||
return "Vo_" + chaId + "_9_0124";
|
||
} else if (!$gameSwitches.value(hparamId[1])) {
|
||
return "Vo_" + chaId + "_9_0125";
|
||
} else {
|
||
return "Vo_" + chaId + "_9_0126";
|
||
}
|
||
}
|
||
//犯され後
|
||
if ($gameActors.actor(actorId + 1).isStateAffected(89)) {
|
||
if (!$gameSwitches.value(hparamId[0])) {
|
||
return "Vo_" + chaId + "_9_0121";
|
||
} else if (!$gameSwitches.value(hparamId[1])) {
|
||
return "Vo_" + chaId + "_9_0122";
|
||
} else {
|
||
return "Vo_" + chaId + "_9_0123";
|
||
}
|
||
}
|
||
//拘束時
|
||
if ($gameVariables.value(kousokuId[0]) == 1) {
|
||
if (!$gameSwitches.value(hparamId[0])) {
|
||
return "Vo_" + chaId + "_9_0115";
|
||
} else {
|
||
if (!$gameSwitches.value(hparamId[1])) {
|
||
return "Vo_" + chaId + "_9_0116";
|
||
} else {
|
||
return "Vo_" + chaId + "_9_0117";
|
||
}
|
||
}
|
||
} else if ($gameVariables.value(kousokuId[0]) >= 2) {
|
||
if (!$gameSwitches.value(hparamId[0])) {
|
||
return "Vo_" + chaId + "_9_0118";
|
||
} else {
|
||
if (!$gameSwitches.value(hparamId[1])) {
|
||
return "Vo_" + chaId + "_9_0119";
|
||
} else {
|
||
return "Vo_" + chaId + "_9_0120";
|
||
}
|
||
}
|
||
}
|
||
//味方キャラが拘束されている場合
|
||
if ($gameVariables.value(kousokuId[1]) >= 1) {
|
||
if (Math.round(Math.random() * 100) >= 50) {
|
||
return "Vo_" + chaId + "_9_0127";
|
||
} else {
|
||
return "Vo_" + chaId + "_9_0128";
|
||
}
|
||
}
|
||
//共通 バフ状態(31~49)
|
||
for (let i = 48; i < 60; i++) {
|
||
if ($gameActors.actor(actorId + 1).isStateAffected(i)) {
|
||
return "Vo_" + chaId + "_9_0113";
|
||
}
|
||
}
|
||
//共通 デバフ状態(7~29)
|
||
for (let i = 7; i < 30; i++) {
|
||
if ($gameActors.actor(actorId + 1).isStateAffected(i)) {
|
||
return "Vo_" + chaId + "_9_0114";
|
||
}
|
||
}
|
||
//着衣時
|
||
if (cosState == 0) {
|
||
if (hpRate >= 0.8 && $gameVariables.value(1) < 307) {
|
||
return "Vo_" + chaId + "_9_0101";
|
||
} else if (hpRate >= 0.25 && $gameVariables.value(1) < 307) {
|
||
return "Vo_" + chaId + "_9_0102";
|
||
} else if ($gameVariables.value(1) < 307) {
|
||
return "Vo_" + chaId + "_9_0103";
|
||
} else if (hpRate >= 0.8) {
|
||
return "Vo_" + chaId + "_9_0104";
|
||
} else if (hpRate >= 0.25) {
|
||
return "Vo_" + chaId + "_9_0105";
|
||
} else {
|
||
return "Vo_" + chaId + "_9_0106";
|
||
}
|
||
//裸時
|
||
} else {
|
||
if (hpRate >= 0.8 && !$gameSwitches.value(roshutsuId)) {
|
||
return "Vo_" + chaId + "_9_0107";
|
||
} else if (hpRate >= 0.25 && !$gameSwitches.value(roshutsuId)) {
|
||
return "Vo_" + chaId + "_9_0108";
|
||
} else if (!$gameSwitches.value(roshutsuId)) {
|
||
return "Vo_" + chaId + "_9_0109";
|
||
} else if (hpRate >= 0.8) {
|
||
return "Vo_" + chaId + "_9_0110";
|
||
} else if (hpRate >= 0.25) {
|
||
return "Vo_" + chaId + "_9_0111";
|
||
} else {
|
||
return "Vo_" + chaId + "_9_0112";
|
||
}
|
||
}
|
||
};
|
||
//コマンドボイス再生
|
||
var CBR_CommandVoice = function (name) {
|
||
if (name == "白雪") {
|
||
voiceFile = SDN_CommandVoiceFile(name, 0, 204);
|
||
} else {
|
||
voiceFile = SDN_CommandVoiceFile(name, 1, 205);
|
||
}
|
||
//ボイスの再生
|
||
AudioManager.playVoice({ name: voiceFile, volume: 100, pitch: 100, pan: 0 });
|
||
};
|
||
//----------------------------------------------------
|
||
//■戦闘:H攻撃関係
|
||
//----------------------------------------------------
|
||
//■パーティー状態の取得
|
||
var SDN_HactPartyState = function () {
|
||
//パーティ状態を定義
|
||
if ($gameParty.battleMembers().length == 2) {
|
||
return 0; //2人
|
||
} else if ($gameParty.battleMembers()[0].actorId() == 1) {
|
||
return 1; //白雪のみ
|
||
} else {
|
||
return 2; //夜鶴のみ
|
||
}
|
||
};
|
||
//■H攻撃発生させるかどうか?
|
||
var SDN_canHact = function () {
|
||
//白雪・夜鶴が揃っている場合
|
||
if (SDN_HactPartyState() == 0) {
|
||
//二人とも完全処女の場合は発生しない
|
||
if ($gameVariables.value(69) == 0 && $gameVariables.value(70) == 0) {
|
||
return false;
|
||
}
|
||
//二人とも貞操具を着けている場合は発生しない
|
||
if ($gameActors.actor(1).hasWeapon($dataWeapons[33]) && $gameActors.actor(2).hasWeapon($dataWeapons[33])) {
|
||
return false;
|
||
}
|
||
//H攻撃フラグの抽選を開始(基本確率30%)サキュバスソウル装備時は70%に!
|
||
if ($gameActors.actor(1).hasArmor($dataWeapons[16]) || $gameActors.actor(2).hasArmor($dataWeapons[17])) {
|
||
var hactPer = 70;
|
||
} else {
|
||
var hactPer = 30;
|
||
}
|
||
//サガラダンジョンの時の処理
|
||
if ($gameVariables.value(395) > 0) {
|
||
var hactPer = $gameVariables.value(395);
|
||
}
|
||
if (Math.round(Math.random() * 100) >= 100 - hactPer) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
//白雪単独
|
||
else if (SDN_HactPartyState() == 1) {
|
||
if ($gameVariables.value(69) == 0) {
|
||
return false;
|
||
}
|
||
//貞操具を着けている場合は発生しない
|
||
if ($gameActors.actor(1).hasWeapon($dataWeapons[33])) {
|
||
return false;
|
||
}
|
||
//H攻撃フラグの抽選を開始(基本確率30%)サキュバスソウル装備時は70%に!
|
||
if ($gameActors.actor(1).hasArmor($dataWeapons[16])) {
|
||
var hactPer = 70;
|
||
} else {
|
||
var hactPer = 30;
|
||
}
|
||
//サガラダンジョンの時の処理
|
||
if ($gameVariables.value(395) > 0) {
|
||
var hactPer = $gameVariables.value(395);
|
||
}
|
||
if (Math.round(Math.random() * 100) >= 100 - hactPer) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
//夜鶴単独
|
||
else if (SDN_HactPartyState() == 2) {
|
||
if ($gameVariables.value(70) == 0) {
|
||
return false;
|
||
}
|
||
//貞操具を着けている場合は発生しない
|
||
if ($gameActors.actor(2).hasWeapon($dataWeapons[33])) {
|
||
return false;
|
||
}
|
||
//H攻撃フラグの抽選を開始(基本確率30%)サキュバスソウル装備時は70%に!
|
||
if ($gameActors.actor(2).hasArmor($dataWeapons[17])) {
|
||
var hactPer = 70;
|
||
} else {
|
||
var hactPer = 30;
|
||
}
|
||
//サガラダンジョンの時の処理
|
||
if ($gameVariables.value(395) > 0) {
|
||
var hactPer = $gameVariables.value(395);
|
||
}
|
||
if (Math.round(Math.random() * 100) >= 100 - hactPer) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
};
|
||
//■両穴責めH攻撃(触手)を発生させるかどうか?
|
||
var SDN_canHactRyoana = function () {
|
||
//白雪・夜鶴が揃っている場合
|
||
if (SDN_HactPartyState() == 0) {
|
||
//二人とも完全処女の場合は発生しない
|
||
if ($gameVariables.value(69) == 0 && $gameVariables.value(70) == 0) {
|
||
return false;
|
||
}
|
||
//二人とも貞操具を着けている場合は発生しない
|
||
if ($gameActors.actor(1).hasWeapon($dataWeapons[33]) && $gameActors.actor(2).hasWeapon($dataWeapons[33])) {
|
||
return false;
|
||
}
|
||
//どちらも両穴非処女じゃない場合は発生しない
|
||
if ($gameVariables.value(69) != 3 && $gameVariables.value(70) != 3) {
|
||
return false;
|
||
}
|
||
//H攻撃フラグの抽選を開始(基本確率30%)サキュバスソウル装備時は70%に! オナニー実行中は90%
|
||
if ($gameSwitches.value(240)) {
|
||
var hactPer = 90;
|
||
$gameSwitches.setValue(240, false);
|
||
} else if ($gameActors.actor(1).hasArmor($dataWeapons[16]) || $gameActors.actor(2).hasArmor($dataWeapons[16])) {
|
||
var hactPer = 70;
|
||
} else {
|
||
var hactPer = 30;
|
||
}
|
||
if (Math.round(Math.random() * 100) >= 100 - hactPer) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
//白雪単独
|
||
else if (SDN_HactPartyState() == 1) {
|
||
if ($gameVariables.value(69) < 3) {
|
||
return false;
|
||
}
|
||
//二人とも貞操具を着けている場合は発生しない
|
||
if ($gameActors.actor(1).hasWeapon($dataWeapons[33])) {
|
||
return false;
|
||
}
|
||
//H攻撃フラグの抽選を開始(基本確率30%)サキュバスソウル装備時は70%に! オナニー実行中は90%
|
||
if ($gameSwitches.value(240)) {
|
||
var hactPer = 90;
|
||
$gameSwitches.setValue(240, false);
|
||
} else if ($gameActors.actor(1).hasArmor($dataWeapons[16])) {
|
||
var hactPer = 70;
|
||
} else {
|
||
var hactPer = 30;
|
||
}
|
||
if (Math.round(Math.random() * 100) >= 100 - hactPer) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
//夜鶴単独
|
||
else if (SDN_HactPartyState() == 2) {
|
||
if ($gameVariables.value(70) < 3) {
|
||
return false;
|
||
}
|
||
//二人とも貞操具を着けている場合は発生しない
|
||
if ($gameActors.actor(2).hasWeapon($dataWeapons[33])) {
|
||
return false;
|
||
}
|
||
//H攻撃フラグの抽選を開始(基本確率30%)サキュバスソウル装備時は70%に! オナニー実行中は90%
|
||
if ($gameSwitches.value(240)) {
|
||
var hactPer = 90;
|
||
$gameSwitches.setValue(240, false);
|
||
} else if ($gameActors.actor(2).hasArmor($dataWeapons[16])) {
|
||
var hactPer = 70;
|
||
} else {
|
||
var hactPer = 30;
|
||
}
|
||
if (Math.round(Math.random() * 100) >= 100 - hactPer) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
};
|
||
//■拘束時の処理(ターゲットの設定)
|
||
var SDN_HactSetTarget = function () {
|
||
//触手のH攻撃以外
|
||
if ($gameTemp.lastActionData(0) != 103) {
|
||
//拘束相手の決定 ふたり揃っている場合
|
||
if (SDN_HactPartyState() == 0) {
|
||
if ($gameVariables.value(69) == 0 || $gameActors.actor(1).hasWeapon($dataWeapons[33])) {
|
||
return 2;
|
||
}
|
||
if ($gameVariables.value(70) == 0 || $gameActors.actor(2).hasWeapon($dataWeapons[33])) {
|
||
return 1;
|
||
}
|
||
if (Math.round(Math.random()) == 0) {
|
||
return 1;
|
||
} else {
|
||
return 2;
|
||
}
|
||
}
|
||
//拘束相手の決定 白雪のみ
|
||
else if (SDN_HactPartyState() == 1) {
|
||
return 1;
|
||
}
|
||
//拘束相手の決定 夜鶴のみ
|
||
else if (SDN_HactPartyState() == 2) {
|
||
return 2;
|
||
}
|
||
} else {
|
||
//拘束相手の決定 ふたり揃っている場合
|
||
if (SDN_HactPartyState() == 0) {
|
||
if ($gameVariables.value(69) < 3 || $gameActors.actor(1).hasWeapon($dataWeapons[33])) {
|
||
return 2;
|
||
}
|
||
if ($gameVariables.value(70) < 3 || $gameActors.actor(2).hasWeapon($dataWeapons[33])) {
|
||
return 1;
|
||
}
|
||
if (Math.round(Math.random()) == 0) {
|
||
return 1;
|
||
} else {
|
||
return 2;
|
||
}
|
||
}
|
||
//拘束相手の決定 白雪のみ
|
||
else if (SDN_HactPartyState() == 1) {
|
||
return 1;
|
||
}
|
||
//拘束相手の決定 夜鶴のみ
|
||
else if (SDN_HactPartyState() == 2) {
|
||
return 2;
|
||
}
|
||
}
|
||
};
|
||
//■H攻撃のセッティング
|
||
var SDN_HactSetting = function (tgt) {
|
||
//H部位の設定
|
||
var ary = [0, 69, 70];
|
||
if ($gameVariables.value(ary[tgt]) == 1) {
|
||
$gameVariables.setValue(134, 1);
|
||
} else if ($gameVariables.value(ary[tgt]) == 2) {
|
||
$gameVariables.setValue(134, 2);
|
||
} else if ($gameVariables.value(ary[tgt]) == 3) {
|
||
$gameVariables.setValue(134, Math.round(Math.random()) + 1);
|
||
}
|
||
//触手の場合は強制的に1へ
|
||
if ($gameVariables.value(138) == "触手") {
|
||
$gameVariables.setValue(134, 1);
|
||
}
|
||
};
|
||
//■H攻撃の設定
|
||
var SDN_HactSetHatk = function (val) {
|
||
//敵タイプの取得処理
|
||
var Htype = $gameVariables.value(138);
|
||
if (val == 1) {
|
||
if (Htype == "人間") {
|
||
if ($gameVariables.value(133) == 1) {
|
||
if ($gameVariables.value(204) == 0) {
|
||
var ary = ["BattleHAnime_A01a_1", "BattleHAnime_A01a_2", "BattleHAnime_A01a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_A01b_1", "BattleHAnime_A01b_2", "BattleHAnime_A01b_3"];
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(205) == 0) {
|
||
var ary = ["BattleHAnime_B01a_1", "BattleHAnime_B01a_2", "BattleHAnime_B01a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_B01b_1", "BattleHAnime_B01b_2", "BattleHAnime_B01b_3"];
|
||
}
|
||
}
|
||
} else if (Htype == "ゴブリン") {
|
||
if ($gameVariables.value(133) == 1) {
|
||
if ($gameVariables.value(204) == 0) {
|
||
var ary = ["BattleHAnime_A03a_1", "BattleHAnime_A03a_2", "BattleHAnime_A03a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_A03b_1", "BattleHAnime_A03b_2", "BattleHAnime_A03b_3"];
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(205) == 0) {
|
||
var ary = ["BattleHAnime_B03a_1", "BattleHAnime_B03a_2", "BattleHAnime_B03a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_B03b_1", "BattleHAnime_B03b_2", "BattleHAnime_B03b_3"];
|
||
}
|
||
}
|
||
} else if (Htype == "オーク") {
|
||
if ($gameVariables.value(133) == 1) {
|
||
if ($gameVariables.value(204) == 0) {
|
||
var ary = ["BattleHAnime_A05a_1", "BattleHAnime_A05a_2", "BattleHAnime_A05a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_A05b_1", "BattleHAnime_A05b_2", "BattleHAnime_A05b_3"];
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(205) == 0) {
|
||
var ary = ["BattleHAnime_B05a_1", "BattleHAnime_B05a_2", "BattleHAnime_B05a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_B05b_1", "BattleHAnime_B05b_2", "BattleHAnime_B05b_3"];
|
||
}
|
||
}
|
||
} else if (Htype == "スライム") {
|
||
if ($gameVariables.value(133) == 1) {
|
||
if ($gameVariables.value(204) == 0) {
|
||
var ary = ["eva_c123_00_00_01", "eva_c123_00_00_02", "eva_c123_00_00_03"];
|
||
} else {
|
||
var ary = ["BattleHAnime_A07a_1", "BattleHAnime_A07a_2", "BattleHAnime_A07a_3"];
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(205) == 0) {
|
||
var ary = ["evb_c123_00_00_01", "evb_c123_00_00_02", "evb_c123_00_00_03"];
|
||
} else {
|
||
var ary = ["BattleHAnime_B07a_1", "BattleHAnime_B07a_2", "BattleHAnime_B07a_3"];
|
||
}
|
||
}
|
||
} else if (Htype == "魔犬") {
|
||
if ($gameVariables.value(133) == 1) {
|
||
if ($gameVariables.value(204) == 0) {
|
||
var ary = ["BattleHAnime_A08a_1", "BattleHAnime_A08a_2", "BattleHAnime_A08a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_A08b_1", "BattleHAnime_A08b_2", "BattleHAnime_A08b_3"];
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(205) == 0) {
|
||
var ary = ["BattleHAnime_B08a_1", "BattleHAnime_B08a_2", "BattleHAnime_B08a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_B08b_1", "BattleHAnime_B08b_2", "BattleHAnime_B08b_3"];
|
||
}
|
||
}
|
||
} else if (Htype == "魔豚") {
|
||
if ($gameVariables.value(133) == 1) {
|
||
if ($gameVariables.value(204) == 0) {
|
||
var ary = ["BattleHAnime_A10a_1", "BattleHAnime_A10a_2", "BattleHAnime_A10a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_A10b_1", "BattleHAnime_A10b_2", "BattleHAnime_A10b_3"];
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(205) == 0) {
|
||
var ary = ["BattleHAnime_B09a_1", "BattleHAnime_B09a_2", "BattleHAnime_B09a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_B09b_1", "BattleHAnime_B09b_2", "BattleHAnime_B09b_3"];
|
||
}
|
||
}
|
||
} else if (Htype == "妖馬") {
|
||
if ($gameVariables.value(133) == 1) {
|
||
if ($gameVariables.value(204) == 0) {
|
||
var ary = ["BattleHAnime_A11a_1", "BattleHAnime_A11a_2", "BattleHAnime_A11a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_A11b_1", "BattleHAnime_A11b_2", "BattleHAnime_A11b_3"];
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(205) == 0) {
|
||
var ary = ["BattleHAnime_B11a_1", "BattleHAnime_B11a_2", "BattleHAnime_B11a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_B11b_1", "BattleHAnime_B11b_2", "BattleHAnime_B11b_3"];
|
||
}
|
||
}
|
||
} else if (Htype == "触手") {
|
||
if ($gameVariables.value(133) == 1) {
|
||
if ($gameVariables.value(204) == 0) {
|
||
var ary = ["BattleHAnime_A13a_1", "BattleHAnime_A13a_2", "BattleHAnime_A13a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_A13b_1", "BattleHAnime_A13b_2", "BattleHAnime_A13b_3"];
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(205) == 0) {
|
||
var ary = ["BattleHAnime_B13a_1", "BattleHAnime_B13a_2", "BattleHAnime_B13a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_B13b_1", "BattleHAnime_B13b_2", "BattleHAnime_B13b_3"];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//アナルの処理
|
||
else {
|
||
if (Htype == "人間") {
|
||
if ($gameVariables.value(133) == 1) {
|
||
if ($gameVariables.value(204) == 0) {
|
||
var ary = ["BattleHAnime_A02a_1", "BattleHAnime_A02a_2", "BattleHAnime_A02a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_A02b_1", "BattleHAnime_A02b_2", "BattleHAnime_A02b_3"];
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(205) == 0) {
|
||
var ary = ["BattleHAnime_B02a_1", "BattleHAnime_B02a_2", "BattleHAnime_B02a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_B02b_1", "BattleHAnime_B02b_2", "BattleHAnime_B02b_3"];
|
||
}
|
||
}
|
||
} else if (Htype == "ゴブリン") {
|
||
if ($gameVariables.value(133) == 1) {
|
||
if ($gameVariables.value(204) == 0) {
|
||
var ary = ["eva_c121_00_01_01", "eva_c121_00_01_02", "eva_c121_00_01_03"];
|
||
} else {
|
||
var ary = ["BattleHAnime_A04b_1", "BattleHAnime_A04b_2", "BattleHAnime_A04b_3"];
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(205) == 0) {
|
||
var ary = ["evb_c121_00_01_01", "evb_c121_00_01_02", "evb_c121_00_01_03"];
|
||
} else {
|
||
var ary = ["BattleHAnime_B04b_1", "BattleHAnime_B04b_2", "BattleHAnime_B04b_3"];
|
||
}
|
||
}
|
||
} else if (Htype == "オーク") {
|
||
if ($gameVariables.value(133) == 1) {
|
||
if ($gameVariables.value(204) == 0) {
|
||
var ary = ["eva_c120_00_01_01", "eva_c120_00_01_02", "eva_c120_00_01_03"];
|
||
} else {
|
||
var ary = ["BattleHAnime_A06b_1", "BattleHAnime_A06b_2", "BattleHAnime_A06b_3"];
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(205) == 0) {
|
||
var ary = ["evb_c120_00_01_01", "evb_c120_00_01_02", "evb_c120_00_01_03"];
|
||
} else {
|
||
var ary = ["BattleHAnime_B06b_1", "BattleHAnime_B06b_2", "BattleHAnime_B06b_3"];
|
||
}
|
||
}
|
||
} else if (Htype == "スライム") {
|
||
if ($gameVariables.value(133) == 1) {
|
||
if ($gameVariables.value(204) == 0) {
|
||
var ary = ["eva_c123_00_01_01", "eva_c123_00_01_02", "eva_c123_00_01_03"];
|
||
} else {
|
||
var ary = ["BattleHAnime_A07b_1", "BattleHAnime_A07b_2", "BattleHAnime_A07b_3"];
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(205) == 0) {
|
||
var ary = ["evb_c123_00_01_01", "evb_c123_00_01_02", "evb_c123_00_01_03"];
|
||
} else {
|
||
var ary = ["BattleHAnime_B07b_1", "BattleHAnime_B07b_2", "BattleHAnime_B07b_3"];
|
||
}
|
||
}
|
||
} else if (Htype == "魔犬") {
|
||
if ($gameVariables.value(133) == 1) {
|
||
if ($gameVariables.value(204) == 0) {
|
||
var ary = ["eva_c125_00_01_01", "eva_c125_00_01_02", "eva_c125_00_01_03"];
|
||
} else {
|
||
var ary = ["BattleHAnime_A09b_1", "BattleHAnime_A09b_2", "BattleHAnime_A09b_3"];
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(205) == 0) {
|
||
var ary = ["evb_c125_00_01_01", "evb_c125_00_01_02", "evb_c125_00_01_03"];
|
||
} else {
|
||
var ary = ["BattleHAnime_B15b_1", "BattleHAnime_B15b_2", "BattleHAnime_B15b_3"];
|
||
}
|
||
}
|
||
} else if (Htype == "魔豚") {
|
||
if ($gameVariables.value(133) == 1) {
|
||
if ($gameVariables.value(204) == 0) {
|
||
var ary = ["eva_c126_00_01_01", "eva_c126_00_01_02", "eva_c126_00_01_03"];
|
||
} else {
|
||
var ary = ["BattleHAnime_A15b_1", "BattleHAnime_A15b_2", "BattleHAnime_A15b_3"];
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(205) == 0) {
|
||
var ary = ["evb_c126_00_01_01", "evb_c126_00_01_02", "evb_c126_00_01_03"];
|
||
} else {
|
||
var ary = ["BattleHAnime_B10b_1", "BattleHAnime_B10b_2", "BattleHAnime_B10b_3"];
|
||
}
|
||
}
|
||
} else if (Htype == "妖馬") {
|
||
if ($gameVariables.value(133) == 1) {
|
||
if ($gameVariables.value(204) == 0) {
|
||
var ary = ["eva_c127_00_01_01", "eva_c127_00_01_02", "eva_c127_00_01_03"];
|
||
} else {
|
||
var ary = ["BattleHAnime_A12b_1", "BattleHAnime_A12b_2", "BattleHAnime_A12b_3"];
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(205) == 0) {
|
||
var ary = ["evb_c127_00_01_01", "evb_c127_00_01_02", "evb_c127_00_01_03"];
|
||
} else {
|
||
var ary = ["BattleHAnime_B12b_1", "BattleHAnime_B12b_2", "BattleHAnime_B12b_3"];
|
||
}
|
||
}
|
||
} else if (Htype == "触手") {
|
||
if ($gameVariables.value(133) == 1) {
|
||
if ($gameVariables.value(204) == 0) {
|
||
var ary = ["BattleHAnime_A13a_1", "BattleHAnime_A13a_2", "BattleHAnime_A13a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_A13b_1", "BattleHAnime_A13b_2", "BattleHAnime_A13b_3"];
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(205) == 0) {
|
||
var ary = ["BattleHAnime_B13a_1", "BattleHAnime_B13a_2", "BattleHAnime_B13a_3"];
|
||
} else {
|
||
var ary = ["BattleHAnime_B13b_1", "BattleHAnime_B13b_2", "BattleHAnime_B13b_3"];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if ($gameVariables.value(133) == 1) {
|
||
if ($gameVariables.value(136) == 1) {
|
||
var aryNum = 0;
|
||
} else if ($gameVariables.value(136) == 2 || $gameVariables.value(136) == 3) {
|
||
var aryNum = 1;
|
||
} else if ($gameVariables.value(136) == 4 || $gameVariables.value(136) == 5) {
|
||
var aryNum = 2;
|
||
} else {
|
||
var aryNum = 0;
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(137) == 1) {
|
||
var aryNum = 0;
|
||
} else if ($gameVariables.value(137) == 2 || $gameVariables.value(137) == 3) {
|
||
var aryNum = 1;
|
||
} else if ($gameVariables.value(137) == 4 || $gameVariables.value(137) == 5) {
|
||
var aryNum = 2;
|
||
} else {
|
||
var aryNum = 0;
|
||
}
|
||
}
|
||
//Hアニメ回想登録処理
|
||
var actFile = ary[aryNum];
|
||
SDN_SetHanimeRef(actFile.slice(0, 17));
|
||
return actFile;
|
||
};
|
||
//■拘束時画像の表示
|
||
var SDN_ShowKousokuImg = function (name) {
|
||
//ベース設定
|
||
if (name == "白雪") {
|
||
var evChara = "eva_d";
|
||
var cosChara = $gameVariables.value(204);
|
||
var kousokuState = $gameVariables.value(136);
|
||
var idx = 9;
|
||
} else {
|
||
var evChara = "evb_d";
|
||
var cosChara = $gameVariables.value(205);
|
||
var kousokuState = $gameVariables.value(137);
|
||
var idx = 5;
|
||
}
|
||
//拘束している敵の種類(変数138番)
|
||
var Enemy = $gameVariables.value(138);
|
||
var list = [
|
||
{ type: "人間", id: "001" },
|
||
{ type: "ゴブリン", id: "002" },
|
||
{ type: "オーク", id: "003" },
|
||
{ type: "魔犬", id: "004" },
|
||
{ type: "魔豚", id: "005" },
|
||
{ type: "妖馬", id: "006" },
|
||
{ type: "スライム", id: "007" },
|
||
{ type: "触手", id: "008" }
|
||
];
|
||
var evEnemy = list.find((e) => e.type === Enemy).id;
|
||
|
||
//服装
|
||
if (cosChara == 0) {
|
||
var evCos = "00";
|
||
} else {
|
||
var evCos = "01";
|
||
}
|
||
//部位
|
||
if ($gameVariables.value(134) == 1) {
|
||
var evPos = "00";
|
||
} else {
|
||
var evPos = "01";
|
||
}
|
||
//拘束状態(1=未挿入 2=マンコ挿入 3=アナル挿入)
|
||
if (kousokuState < 2) {
|
||
var evKousoku = "01";
|
||
} else {
|
||
var evKousoku = "02";
|
||
}
|
||
var dataName = evChara + evEnemy + "_" + evCos + "_" + evPos + "_" + evKousoku;
|
||
$gameScreen.showPicture(10, dataName, 0, -128, -72, 120, 120, 0, 0);
|
||
$gameScreen.movePicture(10, 0, 0, 0, 100, 100, 255, 0, 5);
|
||
};
|
||
//■戦闘行動の再定義
|
||
//※戦闘行動の条件をスイッチにしているスキルが
|
||
//スイッチがOFFになってるのに選ばれてしまう不具合に対応
|
||
const _BattleManager_processTurn = BattleManager.processTurn;
|
||
BattleManager.processTurn = function () {
|
||
const subject = this._subject;
|
||
//敵の場合のみ実行 拘束発生中(sw166)のみ実行
|
||
if (subject.isEnemy() && $gameSwitches.value(169)) {
|
||
const action = subject.currentAction();
|
||
//行動前にアクションを再設定させる
|
||
if (action) {
|
||
subject.makeActions();
|
||
subject._firstActionDone = true;
|
||
}
|
||
}
|
||
//元処理を実行
|
||
_BattleManager_processTurn.apply(this);
|
||
};
|
||
|
||
//----------------------------------------------------
|
||
//■ADVエッチアニメの処理
|
||
//----------------------------------------------------
|
||
//一時変数1・2と一時スイッチ1を使う
|
||
var SDN_SetAdvHanime = function (file, animeId, loop) {
|
||
$gameVariables.setValue(4, file);
|
||
$gameVariables.setValue(5, animeId);
|
||
$gameSwitches.setValue(102, loop);
|
||
//回想モード登録処理
|
||
SDN_SetHanimeRef(file);
|
||
};
|
||
|
||
//----------------------------------------------------
|
||
//■Hなことして時間つぶしの処理
|
||
//----------------------------------------------------
|
||
|
||
var SDN_SetFreeEro = function (name, type) {
|
||
//配列取得の数値
|
||
if (name == "白雪") {
|
||
var num = 0;
|
||
} else {
|
||
var num = 1;
|
||
}
|
||
//typeを一時変数1に代入(H履歴取得処理のため)
|
||
$gameVariables.setValue(4, type);
|
||
//変数IDの設定
|
||
//H経験:人間相手
|
||
var tgt = [259, 339];
|
||
//H経験:人との性行為
|
||
var seitgt = [288, 368];
|
||
//セックス系
|
||
//H経験:セックス
|
||
var sex = [262, 342];
|
||
//H経験:キス
|
||
var kiss = [268, 348];
|
||
//H経験:乳揉み
|
||
var chichimomi = [269, 349];
|
||
//H経験:手マン
|
||
var teman = [271, 351];
|
||
//アナル系
|
||
//H経験:アナルセックス
|
||
var anal = [263, 343];
|
||
//H経験:尻揉み
|
||
var sirimomi = [270, 350];
|
||
//H経験:アナル弄り
|
||
var analijiri = [272, 352];
|
||
//セクハラ系
|
||
//H経験:クンニ
|
||
var kunni = [267, 347];
|
||
//H経験:セクハラ
|
||
var sexualharassment = [292, 372];
|
||
//奉仕系
|
||
//H経験:フェラチオ
|
||
var fera = [264, 344];
|
||
//H経験:パイズリ
|
||
var paizuri = [265, 345];
|
||
//H経験:手コキ
|
||
var tekoki = [266, 346];
|
||
//H経験:ご奉仕
|
||
var houshi = [293, 373];
|
||
//オナニー
|
||
//H経験:オナニー
|
||
var onanie = [273, 353];
|
||
//H経験:アナニー
|
||
var ananie = [274, 354];
|
||
//H経験:露出プレイ
|
||
var roshutsuplay = [276, 356];
|
||
//開発度経験値
|
||
//淫乱度
|
||
var expInran = [252, 332];
|
||
//口淫
|
||
var expMouse = [253, 333];
|
||
//乳房
|
||
var expBust = [254, 334];
|
||
//マンコ
|
||
var expVagina = [255, 335];
|
||
//アナル
|
||
var expAnal = [256, 336];
|
||
//露出
|
||
var expRoshutsu = [257, 337];
|
||
//奉仕
|
||
var expHoushi = [258, 338];
|
||
//絶頂
|
||
var ecstasy = [281, 361];
|
||
//潮吹き
|
||
var ecstasy_sio = [282, 362];
|
||
//母乳
|
||
var ecstasy_milk = [287, 367];
|
||
var ecstasy_milk_sw = [262, 308];
|
||
//射精
|
||
var bukkake = [283, 363];
|
||
var nakadashi = [284, 364];
|
||
var nakadashi_anal = [285, 365];
|
||
var nakadashi_mouse = [286, 366];
|
||
|
||
//実行処理
|
||
//オナニーの場合
|
||
if (type == 1) {
|
||
var setValue = Math.round(Math.random() * 3) + 2;
|
||
$gameVariables.setValue(onanie[num], $gameVariables.value(onanie[num]) + setValue);
|
||
$gameVariables.setValue(expInran[num], $gameVariables.value(expInran[num]) + 30);
|
||
$gameVariables.setValue(expVagina[num], $gameVariables.value(expVagina[num]) + 30);
|
||
$gameVariables.setValue(expRoshutsu[num], $gameVariables.value(expRoshutsu[num]) + 30);
|
||
//絶頂処理
|
||
var setExValue = Math.round(Math.random() * 10) + 5;
|
||
$gameVariables.setValue(ecstasy[num], $gameVariables.value(ecstasy[num]) + setExValue);
|
||
setExValue = setExValue - Math.round(Math.random() * 5);
|
||
if (setExValue >= 1) {
|
||
$gameVariables.setValue(ecstasy_sio[num], $gameVariables.value(ecstasy_sio[num]) + setExValue);
|
||
}
|
||
if ($gameSwitches.value(ecstasy_milk_sw[num])) {
|
||
setExValue = Math.round(Math.random() * 200) + 80;
|
||
$gameVariables.setValue(ecstasy_sio[num], $gameVariables.value(ecstasy_sio[num]) + setExValue);
|
||
}
|
||
//アナニーの場合
|
||
} else if (type == 2) {
|
||
var setValue = Math.round(Math.random() * 3) + 2;
|
||
$gameVariables.setValue(ananie[num], $gameVariables.value(ananie[num]) + setValue);
|
||
$gameVariables.setValue(expInran[num], $gameVariables.value(expInran[num]) + 30);
|
||
$gameVariables.setValue(expAnal[num], $gameVariables.value(expAnal[num]) + 30);
|
||
$gameVariables.setValue(expRoshutsu[num], $gameVariables.value(expRoshutsu[num]) + 30);
|
||
//絶頂処理
|
||
var setExValue = Math.round(Math.random() * 10) + 5;
|
||
$gameVariables.setValue(ecstasy[num], $gameVariables.value(ecstasy[num]) + setExValue);
|
||
setExValue = setExValue - Math.round(Math.random() * 5);
|
||
if (setExValue >= 1) {
|
||
$gameVariables.setValue(ecstasy_sio[num], $gameVariables.value(ecstasy_sio[num]) + setExValue);
|
||
}
|
||
if ($gameSwitches.value(ecstasy_milk_sw[num])) {
|
||
setExValue = Math.round(Math.random() * 200) + 80;
|
||
$gameVariables.setValue(ecstasy_sio[num], $gameVariables.value(ecstasy_sio[num]) + setExValue);
|
||
}
|
||
//セックスの場合
|
||
} else if (type == 3) {
|
||
var setValue = Math.round(Math.random() * 8) + 2;
|
||
$gameVariables.setValue(sex[num], $gameVariables.value(sex[num]) + setValue);
|
||
$gameVariables.setValue(tgt[num], $gameVariables.value(tgt[num]) + setValue);
|
||
$gameVariables.setValue(seitgt[num], $gameVariables.value(seitgt[num]) + setValue);
|
||
|
||
setValue = Math.round(Math.random() * 5);
|
||
$gameVariables.setValue(kiss[num], $gameVariables.value(kiss[num]) + setValue);
|
||
if (setValue >= 1) {
|
||
$gameVariables.setValue(expMouse[num], $gameVariables.value(expMouse[num]) + 20);
|
||
}
|
||
|
||
setValue = Math.round(Math.random() * 5);
|
||
$gameVariables.setValue(chichimomi[num], $gameVariables.value(chichimomi[num]) + setValue);
|
||
if (setValue >= 1) {
|
||
$gameVariables.setValue(expBust[num], $gameVariables.value(expBust[num]) + 20);
|
||
}
|
||
|
||
setValue = Math.round(Math.random() * 5);
|
||
$gameVariables.setValue(teman[num], $gameVariables.value(teman[num]) + setValue);
|
||
|
||
$gameVariables.setValue(expInran[num], $gameVariables.value(expInran[num]) + 50);
|
||
$gameVariables.setValue(expVagina[num], $gameVariables.value(expVagina[num]) + 50);
|
||
$gameVariables.setValue(expRoshutsu[num], $gameVariables.value(expRoshutsu[num]) + 30);
|
||
//絶頂処理
|
||
var setExValue = Math.round(Math.random() * 10) + 5;
|
||
$gameVariables.setValue(ecstasy[num], $gameVariables.value(ecstasy[num]) + setExValue);
|
||
setExValue = setExValue - Math.round(Math.random() * 5);
|
||
if (setExValue >= 1) {
|
||
$gameVariables.setValue(ecstasy_sio[num], $gameVariables.value(ecstasy_sio[num]) + setExValue);
|
||
}
|
||
if ($gameSwitches.value(ecstasy_milk_sw[num])) {
|
||
setExValue = Math.round(Math.random() * 200) + 80;
|
||
$gameVariables.setValue(ecstasy_sio[num], $gameVariables.value(ecstasy_sio[num]) + setExValue);
|
||
}
|
||
//射精処理
|
||
setExValue = Math.round(Math.random() * 5);
|
||
if (setExValue >= 1) {
|
||
setExValue = setExValue * 15;
|
||
$gameVariables.setValue(bukkake[num], $gameVariables.value(bukkake[num]) + setExValue);
|
||
}
|
||
setExValue = Math.round(Math.random() * 5);
|
||
if (setExValue >= 1) {
|
||
setExValue = setExValue * 15;
|
||
$gameVariables.setValue(nakadashi[num], $gameVariables.value(nakadashi[num]) + setExValue);
|
||
//中出しスイッチON
|
||
$gameSwitches.setValue(215, true);
|
||
}
|
||
//アナルセックスの場合
|
||
} else if (type == 4) {
|
||
var setValue = Math.round(Math.random() * 8) + 2;
|
||
$gameVariables.setValue(anal[num], $gameVariables.value(anal[num]) + setValue);
|
||
$gameVariables.setValue(tgt[num], $gameVariables.value(tgt[num]) + setValue);
|
||
$gameVariables.setValue(seitgt[num], $gameVariables.value(seitgt[num]) + setValue);
|
||
|
||
setValue = Math.round(Math.random() * 5);
|
||
$gameVariables.setValue(kiss[num], $gameVariables.value(kiss[num]) + setValue);
|
||
if (setValue >= 1) {
|
||
$gameVariables.setValue(expMouse[num], $gameVariables.value(expMouse[num]) + 20);
|
||
}
|
||
|
||
setValue = Math.round(Math.random() * 5);
|
||
$gameVariables.setValue(chichimomi[num], $gameVariables.value(chichimomi[num]) + setValue);
|
||
if (setValue >= 1) {
|
||
$gameVariables.setValue(expBust[num], $gameVariables.value(expBust[num]) + 20);
|
||
}
|
||
|
||
setValue = Math.round(Math.random() * 5);
|
||
$gameVariables.setValue(sirimomi[num], $gameVariables.value(sirimomi[num]) + setValue);
|
||
|
||
setValue = Math.round(Math.random() * 5);
|
||
$gameVariables.setValue(analijiri[num], $gameVariables.value(analijiri[num]) + setValue);
|
||
|
||
$gameVariables.setValue(expInran[num], $gameVariables.value(expInran[num]) + 50);
|
||
$gameVariables.setValue(expAnal[num], $gameVariables.value(expAnal[num]) + 50);
|
||
$gameVariables.setValue(expRoshutsu[num], $gameVariables.value(expRoshutsu[num]) + 30);
|
||
//絶頂処理
|
||
var setExValue = Math.round(Math.random() * 10) + 5;
|
||
$gameVariables.setValue(ecstasy[num], $gameVariables.value(ecstasy[num]) + setExValue);
|
||
setExValue = setExValue - Math.round(Math.random() * 5);
|
||
if (setExValue >= 1) {
|
||
$gameVariables.setValue(ecstasy_sio[num], $gameVariables.value(ecstasy_sio[num]) + setExValue);
|
||
}
|
||
if ($gameSwitches.value(ecstasy_milk_sw[num])) {
|
||
setExValue = Math.round(Math.random() * 200) + 80;
|
||
$gameVariables.setValue(ecstasy_sio[num], $gameVariables.value(ecstasy_sio[num]) + setExValue);
|
||
}
|
||
//射精処理
|
||
setExValue = Math.round(Math.random() * 5);
|
||
if (setExValue >= 1) {
|
||
setExValue = setExValue * 15;
|
||
$gameVariables.setValue(bukkake[num], $gameVariables.value(bukkake[num]) + setExValue);
|
||
}
|
||
setExValue = Math.round(Math.random() * 5);
|
||
if (setExValue >= 1) {
|
||
setExValue = setExValue * 15;
|
||
$gameVariables.setValue(nakadashi_anal[num], $gameVariables.value(nakadashi_anal[num]) + setExValue);
|
||
}
|
||
//セクハラの場合
|
||
} else if (type == 5) {
|
||
var setValue = Math.round(Math.random() * 4) + 1;
|
||
$gameVariables.setValue(kiss[num], $gameVariables.value(kiss[num]) + setValue);
|
||
if (setValue >= 1) {
|
||
$gameVariables.setValue(expMouse[num], $gameVariables.value(expMouse[num]) + 20);
|
||
}
|
||
var setValueSub = setValue;
|
||
setValue = Math.round(Math.random() * 5) + 1;
|
||
$gameVariables.setValue(chichimomi[num], $gameVariables.value(chichimomi[num]) + setValue);
|
||
$gameVariables.setValue(expBust[num], $gameVariables.value(expBust[num]) + 20);
|
||
|
||
setValueSub = setValueSub + setValue;
|
||
setValue = Math.round(Math.random() * 5) + 1;
|
||
$gameVariables.setValue(sirimomi[num], $gameVariables.value(sirimomi[num]) + setValue);
|
||
$gameVariables.setValue(expAnal[num], $gameVariables.value(expAnal[num]) + 20);
|
||
|
||
setValueSub = setValueSub + setValue;
|
||
setValue = Math.round(Math.random() * 5);
|
||
$gameVariables.setValue(teman[num], $gameVariables.value(teman[num]) + setValue);
|
||
if (setValue >= 1) {
|
||
$gameVariables.setValue(expVagina[num], $gameVariables.value(expVagina[num]) + 20);
|
||
}
|
||
setValueSub = setValueSub + setValue;
|
||
|
||
setValue = Math.round(Math.random() * 5);
|
||
$gameVariables.setValue(kunni[num], $gameVariables.value(kunni[num]) + setValue);
|
||
if (setValue >= 1) {
|
||
$gameVariables.setValue(expVagina[num], $gameVariables.value(expVagina[num]) + 20);
|
||
}
|
||
setValueSub = setValueSub + setValue;
|
||
setValue = Math.round(Math.random() * 5);
|
||
if (setValue >= 1) {
|
||
$gameVariables.setValue(analijiri[num], $gameVariables.value(analijiri[num]) + setValue);
|
||
$gameVariables.setValue(expAnal[num], $gameVariables.value(expAnal[num]) + 20);
|
||
}
|
||
$gameVariables.setValue(tgt[num], $gameVariables.value(tgt[num]) + setValueSub);
|
||
$gameVariables.setValue(sexualharassment[num], $gameVariables.value(sexualharassment[num]) + setValueSub);
|
||
|
||
$gameVariables.setValue(expInran[num], $gameVariables.value(expInran[num]) + 30);
|
||
if ($gameVariables.value(202) == 1) {
|
||
$gameVariables.setValue(roshutsuplay[num], $gameVariables.value(roshutsuplay[num]) + setValueSub);
|
||
$gameVariables.setValue(expRoshutsu[num], $gameVariables.value(expRoshutsu[num]) + 50);
|
||
}
|
||
//絶頂処理
|
||
var setExValue = Math.round(Math.random() * 10) + 5;
|
||
$gameVariables.setValue(ecstasy[num], $gameVariables.value(ecstasy[num]) + setExValue);
|
||
setExValue = setExValue - Math.round(Math.random() * 5);
|
||
if (setExValue >= 1) {
|
||
$gameVariables.setValue(ecstasy_sio[num], $gameVariables.value(ecstasy_sio[num]) + setExValue);
|
||
}
|
||
if ($gameSwitches.value(ecstasy_milk_sw[num])) {
|
||
setExValue = Math.round(Math.random() * 200) + 80;
|
||
$gameVariables.setValue(ecstasy_sio[num], $gameVariables.value(ecstasy_sio[num]) + setExValue);
|
||
}
|
||
//奉仕の場合
|
||
} else if (type == 6) {
|
||
var setValue = Math.round(Math.random() * 4) + 2;
|
||
$gameVariables.setValue(fera[num], $gameVariables.value(fera[num]) + setValue);
|
||
$gameVariables.setValue(expMouse[num], $gameVariables.value(expMouse[num]) + 50);
|
||
var setValueSub = setValue;
|
||
|
||
setValue = Math.round(Math.random() * 5);
|
||
$gameVariables.setValue(paizuri[num], $gameVariables.value(paizuri[num]) + setValue);
|
||
if (setValue >= 1) {
|
||
$gameVariables.setValue(expBust[num], $gameVariables.value(expBust[num]) + 30);
|
||
}
|
||
setValueSub = setValueSub + setValue;
|
||
|
||
setValue = Math.round(Math.random() * 5);
|
||
$gameVariables.setValue(tekoki[num], $gameVariables.value(tekoki[num]) + setValue);
|
||
setValueSub = setValueSub + setValue;
|
||
|
||
$gameVariables.setValue(tgt[num], $gameVariables.value(tgt[num]) + setValueSub);
|
||
$gameVariables.setValue(houshi[num], $gameVariables.value(houshi[num]) + setValueSub);
|
||
$gameVariables.setValue(expHoushi[num], $gameVariables.value(expHoushi[num]) + 50);
|
||
$gameVariables.setValue(expRoshutsu[num], $gameVariables.value(expRoshutsu[num]) + 20);
|
||
//射精処理
|
||
setExValue = Math.round(Math.random() * 5);
|
||
if (setExValue >= 1) {
|
||
setExValue = setExValue * 15;
|
||
$gameVariables.setValue(bukkake[num], $gameVariables.value(bukkake[num]) + setExValue);
|
||
}
|
||
setExValue = Math.round(Math.random() * 5);
|
||
if (setExValue >= 1) {
|
||
setExValue = setExValue * 15;
|
||
$gameVariables.setValue(nakadashi_mouse[num], $gameVariables.value(nakadashi_mouse[num]) + setExValue);
|
||
}
|
||
}
|
||
};
|
||
|
||
//■汎用異種姦の動画ファイル取得処理
|
||
var SDN_SetIshukanMovie = function () {
|
||
if ($gameSwitches.value(117)) {
|
||
if ($gameVariables.value(6) == "オーク") {
|
||
if ($gameVariables.value(5) == 0) {
|
||
$gameVariables.setValue(4, "Hanime_A07");
|
||
} else {
|
||
$gameVariables.setValue(4, "Hanime_A08");
|
||
}
|
||
} else if ($gameVariables.value(6) == "魔犬") {
|
||
if ($gameVariables.value(5) == 0) {
|
||
$gameVariables.setValue(4, "Hanime_A09");
|
||
} else {
|
||
$gameVariables.setValue(4, "Hanime_A10");
|
||
}
|
||
} else if ($gameVariables.value(6) == "魔豚") {
|
||
if ($gameVariables.value(5) == 0) {
|
||
$gameVariables.setValue(4, "Hanime_A11");
|
||
} else {
|
||
$gameVariables.setValue(4, "Hanime_A12");
|
||
}
|
||
} else if ($gameVariables.value(6) == "妖馬") {
|
||
if ($gameVariables.value(5) == 0) {
|
||
$gameVariables.setValue(4, "Hanime_A13");
|
||
} else {
|
||
$gameVariables.setValue(4, "Hanime_A14");
|
||
}
|
||
}
|
||
} else {
|
||
if ($gameVariables.value(6) == "オーク") {
|
||
if ($gameVariables.value(5) == 0) {
|
||
$gameVariables.setValue(4, "Hanime_B07");
|
||
} else {
|
||
$gameVariables.setValue(4, "Hanime_B08");
|
||
}
|
||
} else if ($gameVariables.value(6) == "魔犬") {
|
||
if ($gameVariables.value(5) == 0) {
|
||
$gameVariables.setValue(4, "Hanime_B09");
|
||
} else {
|
||
$gameVariables.setValue(4, "Hanime_B10");
|
||
}
|
||
} else if ($gameVariables.value(6) == "魔豚") {
|
||
if ($gameVariables.value(5) == 0) {
|
||
$gameVariables.setValue(4, "Hanime_B11");
|
||
} else {
|
||
$gameVariables.setValue(4, "Hanime_B12");
|
||
}
|
||
} else if ($gameVariables.value(6) == "妖馬") {
|
||
if ($gameVariables.value(5) == 0) {
|
||
$gameVariables.setValue(4, "Hanime_B13");
|
||
} else {
|
||
$gameVariables.setValue(4, "Hanime_B14");
|
||
}
|
||
}
|
||
}
|
||
SDN_SetHanimeRef($gameVariables.value(4));
|
||
};
|
||
|
||
//■操作キャラ変更可能フラグ
|
||
var SDN_CanChangeChara = function () {
|
||
if (!$gameSwitches.value(116)) {
|
||
return false;
|
||
}
|
||
//MAP毎に設定
|
||
if ($gameMap.mapId() == 74) {
|
||
return false;
|
||
}
|
||
//釣り実行中は無効に!
|
||
if ($gameSwitches.value(185)) {
|
||
return false;
|
||
}
|
||
//銭湯ではキャラ変更を不可に!
|
||
if ($gameMap.mapId() == 78 || $gameMap.mapId() == 79 || $gameMap.mapId() == 80) {
|
||
return false;
|
||
}
|
||
//臨月中のキャラがいるとキャラ変更を不可に!
|
||
if (SDN_CharaNowPregnancy()) {
|
||
return false;
|
||
}
|
||
return true;
|
||
};
|
||
|
||
//■引き継ぎプレイのデータ作成処理
|
||
var SDN_CreateGameDataEx = function () {
|
||
//装備を全て外す処理
|
||
$gameParty.members()[0].clearEquipments();
|
||
$gameParty.members()[1].clearEquipments();
|
||
//経験値の保管(変数541番)
|
||
$gameVariables.setValue(541, [$gameActors.actor(1).currentExp(), $gameActors.actor(2).currentExp()]);
|
||
//お金の保管(変数542番)
|
||
$gameVariables.setValue(542, $gameParty.gold());
|
||
//アイテムの保管(変数543番)
|
||
var GetDataItems = [];
|
||
for (let i = 2; i < 15; i++) {
|
||
GetDataItems.push($gameParty.numItems($dataItems[i]));
|
||
}
|
||
for (let i = 24; i < 38; i++) {
|
||
GetDataItems.push($gameParty.numItems($dataItems[i]));
|
||
}
|
||
for (let i = 39; i < 48; i++) {
|
||
GetDataItems.push($gameParty.numItems($dataItems[i]));
|
||
}
|
||
for (let i = 54; i < 57; i++) {
|
||
GetDataItems.push($gameParty.numItems($dataItems[i]));
|
||
}
|
||
for (let i = 64; i < 67; i++) {
|
||
GetDataItems.push($gameParty.numItems($dataItems[i]));
|
||
}
|
||
$gameVariables.setValue(543, GetDataItems);
|
||
//アクセの保管(変数544番)
|
||
var GetDataAcc = [];
|
||
for (let i = 4; i < 38; i++) {
|
||
GetDataItems.push($gameParty.numItems($dataWeapons[i]));
|
||
}
|
||
$gameVariables.setValue(544, GetDataAcc);
|
||
ConfigManager.saveCommonVariables();
|
||
};
|
||
|
||
//■引き継ぎプレイのエロステデータ作成処理
|
||
var SDN_CreateErosteData = function (name) {
|
||
var GetErosteData = [];
|
||
var GetEroSkillData = [];
|
||
//白雪:変数545番/夜鶴:変数546番
|
||
if (name == "白雪") {
|
||
for (let i = 245; i < 309; i++) {
|
||
GetErosteData.push($gameVariables.value(i));
|
||
}
|
||
$gameVariables.setValue(545, GetErosteData);
|
||
//白雪の性経験を保存
|
||
$gameVariables.setValue(547, $gameVariables.value(69));
|
||
//Hスキルの取得状態を保存
|
||
for (let i = 130; i < 141; i++) {
|
||
if ($gameActors.actor(1).hasSkill(i)) {
|
||
GetEroSkillData.push(1);
|
||
} else {
|
||
GetEroSkillData.push(0);
|
||
}
|
||
}
|
||
$gameVariables.setValue(549, GetEroSkillData);
|
||
} else {
|
||
for (let i = 325; i < 389; i++) {
|
||
GetErosteData.push($gameVariables.value(i));
|
||
}
|
||
$gameVariables.setValue(546, GetErosteData);
|
||
//夜鶴の性経験を保存
|
||
$gameVariables.setValue(548, $gameVariables.value(70));
|
||
//Hスキルの取得状態を保存
|
||
for (let i = 130; i < 141; i++) {
|
||
if ($gameActors.actor(2).hasSkill(i)) {
|
||
GetEroSkillData.push(1);
|
||
} else {
|
||
GetEroSkillData.push(0);
|
||
}
|
||
}
|
||
$gameVariables.setValue(550, GetEroSkillData);
|
||
}
|
||
ConfigManager.saveCommonVariables();
|
||
};
|
||
|
||
//■引き継ぎデータプレイ
|
||
var SDN_SetGameDataEx = function () {
|
||
//経験値の引き継ぎ
|
||
$gameActors.actor(1).changeExp($gameActors.actor(1).currentExp() + $gameVariables.value(541)[0], false);
|
||
$gameActors.actor(2).changeExp($gameActors.actor(2).currentExp() + $gameVariables.value(541)[1], false);
|
||
//お金の引き継ぎ
|
||
$gameParty.gainGold($gameVariables.value(542));
|
||
//アイテムの引き継ぎ
|
||
var setNum = 0;
|
||
for (let i = 2; i < 15; i++) {
|
||
if ($gameVariables.value(543)[setNum] >= 1) {
|
||
$gameParty.gainItem($dataItems[i], $gameVariables.value(543)[setNum]);
|
||
}
|
||
setNum = setNum + 1;
|
||
}
|
||
for (let i = 24; i < 38; i++) {
|
||
if ($gameVariables.value(543)[setNum] >= 1) {
|
||
$gameParty.gainItem($dataItems[i], $gameVariables.value(543)[setNum]);
|
||
}
|
||
setNum = setNum + 1;
|
||
}
|
||
for (let i = 39; i < 48; i++) {
|
||
if ($gameVariables.value(543)[setNum] >= 1) {
|
||
$gameParty.gainItem($dataItems[i], $gameVariables.value(543)[setNum]);
|
||
}
|
||
setNum = setNum + 1;
|
||
}
|
||
for (let i = 54; i < 57; i++) {
|
||
if ($gameVariables.value(543)[setNum] >= 1) {
|
||
$gameParty.gainItem($dataItems[i], $gameVariables.value(543)[setNum]);
|
||
}
|
||
setNum = setNum + 1;
|
||
}
|
||
for (let i = 64; i < 67; i++) {
|
||
if ($gameVariables.value(543)[setNum] >= 1) {
|
||
$gameParty.gainItem($dataItems[i], $gameVariables.value(543)[setNum]);
|
||
}
|
||
setNum = setNum + 1;
|
||
}
|
||
//アクセサリーの引き継ぎ
|
||
setNum = 0;
|
||
for (let i = 4; i < 38; i++) {
|
||
if ($gameVariables.value(544)[setNum] >= 1) {
|
||
$gameParty.gainItem($dataWeapons[i], $gameVariables.value(544)[setNum], true);
|
||
}
|
||
setNum = setNum + 1;
|
||
}
|
||
};
|
||
|
||
//■エロステ引き継ぎ
|
||
var SDN_SetErosteData = function (name) {
|
||
var setNum = 0;
|
||
var GetPregnancyData = [];
|
||
if (name == "白雪") {
|
||
for (let i = 245; i < 298; i++) {
|
||
$gameVariables.setValue(i, $gameVariables.value(393)[setNum]);
|
||
setNum = setNum + 1;
|
||
}
|
||
//妊娠関係は別に補完しておく
|
||
for (let i = 298; i < 308; i++) {
|
||
GetPregnancyData.push($gameVariables.value(393)[setNum]);
|
||
setNum = setNum + 1;
|
||
}
|
||
$gameVariables.setValue(308, $gameVariables.value(393)[setNum]);
|
||
$gameVariables.setValue(391, GetPregnancyData);
|
||
//エロスキルの習得
|
||
setNum = 0;
|
||
for (let i = 130; i < 136; i++) {
|
||
if ($gameVariables.value(395)[setNum] == 1) {
|
||
$gameActors.actor(1).learnSkill(i);
|
||
}
|
||
setNum = setNum + 1;
|
||
}
|
||
} else {
|
||
for (let i = 325; i < 378; i++) {
|
||
$gameVariables.setValue(i, $gameVariables.value(394)[setNum]);
|
||
setNum = setNum + 1;
|
||
}
|
||
//妊娠関係は別に補完しておく
|
||
for (let i = 378; i < 388; i++) {
|
||
GetPregnancyData.push($gameVariables.value(394)[setNum]);
|
||
setNum = setNum + 1;
|
||
}
|
||
$gameVariables.setValue(388, $gameVariables.value(394)[setNum]);
|
||
$gameVariables.setValue(392, GetPregnancyData);
|
||
//エロスキルの習得
|
||
setNum = 0;
|
||
for (let i = 130; i < 136; i++) {
|
||
if ($gameVariables.value(396)[setNum] == 1) {
|
||
$gameActors.actor(2).learnSkill(i);
|
||
}
|
||
setNum = setNum + 1;
|
||
}
|
||
//W系のスキル習得処理
|
||
for (let i = 137; i < 141; i++) {
|
||
if ($gameVariables.value(396)[setNum] == 1) {
|
||
$gameActors.actor(1).learnSkill(i);
|
||
$gameActors.actor(2).learnSkill(i);
|
||
}
|
||
setNum = setNum + 1;
|
||
}
|
||
}
|
||
};
|
||
|
||
//■出産データ引き継ぎ
|
||
var SDN_SetBirthData = function (name) {
|
||
var setNum = 0;
|
||
if (name == "白雪") {
|
||
for (let i = 298; i < 308; i++) {
|
||
$gameVariables.setValue(i, $gameVariables.value(391)[setNum]);
|
||
setNum = setNum + 1;
|
||
}
|
||
} else {
|
||
for (let i = 378; i < 388; i++) {
|
||
$gameVariables.setValue(i, $gameVariables.value(392)[setNum]);
|
||
setNum = setNum + 1;
|
||
}
|
||
}
|
||
};
|
||
|
||
//■Hアニメ回想登録処理
|
||
var SDN_SetHanimeRef = function (filecode) {
|
||
//Hアニメ回想登録に使用する変数は522番
|
||
var setVari = 522;
|
||
var v = $gameVariables.value(setVari) || [];
|
||
var ary = [
|
||
"Dummy",
|
||
"BattleHAnime_A01a",
|
||
"BattleHAnime_A01b",
|
||
"BattleHAnime_A02a",
|
||
"BattleHAnime_A02b",
|
||
"BattleHAnime_A03a",
|
||
"BattleHAnime_A03b",
|
||
"BattleHAnime_A04b",
|
||
"BattleHAnime_A05a",
|
||
"BattleHAnime_A05b",
|
||
"BattleHAnime_A06b",
|
||
"BattleHAnime_A07a",
|
||
"BattleHAnime_A07b",
|
||
"BattleHAnime_A08a",
|
||
"BattleHAnime_A08b",
|
||
"BattleHAnime_A09b",
|
||
"BattleHAnime_A10a",
|
||
"BattleHAnime_A10b",
|
||
"BattleHAnime_A11a",
|
||
"BattleHAnime_A11b",
|
||
"BattleHAnime_A12b",
|
||
"BattleHAnime_A13a",
|
||
"BattleHAnime_A13b",
|
||
"BattleHAnime_A14b",
|
||
"BattleHAnime_A15b",
|
||
"BattleHAnime_A16b",
|
||
"BattleHAnime_B01a",
|
||
"BattleHAnime_B01b",
|
||
"BattleHAnime_B02a",
|
||
"BattleHAnime_B02b",
|
||
"BattleHAnime_B03a",
|
||
"BattleHAnime_B03b",
|
||
"BattleHAnime_B04b",
|
||
"BattleHAnime_B05a",
|
||
"BattleHAnime_B05b",
|
||
"BattleHAnime_B06b",
|
||
"BattleHAnime_B07a",
|
||
"BattleHAnime_B07b",
|
||
"BattleHAnime_B08a",
|
||
"BattleHAnime_B08b",
|
||
"BattleHAnime_B09a",
|
||
"BattleHAnime_B09b",
|
||
"BattleHAnime_B10b",
|
||
"BattleHAnime_B11a",
|
||
"BattleHAnime_B11b",
|
||
"BattleHAnime_B12b",
|
||
"BattleHAnime_B13a",
|
||
"BattleHAnime_B13b",
|
||
"BattleHAnime_B14b",
|
||
"BattleHAnime_B15b",
|
||
"BattleHAnime_B16b",
|
||
"Hanime_A01",
|
||
"Hanime_A02",
|
||
"Hanime_A03",
|
||
"Hanime_A04",
|
||
"Hanime_A05",
|
||
"Hanime_A06",
|
||
"Hanime_A07",
|
||
"Hanime_A08",
|
||
"Hanime_A09",
|
||
"Hanime_A10",
|
||
"Hanime_A11",
|
||
"Hanime_A12",
|
||
"Hanime_A13",
|
||
"Hanime_A14",
|
||
"Hanime_A15",
|
||
"Hanime_B01",
|
||
"Hanime_B02",
|
||
"Hanime_B03",
|
||
"Hanime_B04",
|
||
"Hanime_B05",
|
||
"Hanime_B06",
|
||
"Hanime_B07",
|
||
"Hanime_B08",
|
||
"Hanime_B09",
|
||
"Hanime_B10",
|
||
"Hanime_B11",
|
||
"Hanime_B12",
|
||
"Hanime_B13",
|
||
"Hanime_B14",
|
||
"Hanime_B15"
|
||
];
|
||
var idx = ary.findIndex((e) => e && e == filecode);
|
||
if (idx != -1) {
|
||
v[idx] = true;
|
||
$gameVariables.setValue(setVari, v);
|
||
ConfigManager.saveCommonVariables();
|
||
}
|
||
};
|