911 lines
28 KiB
JavaScript
911 lines
28 KiB
JavaScript
//=============================================================================
|
||
// iiiKANIUscriptCommand.js
|
||
// ----------------------------------------------------------------------------
|
||
// (C) 2022 ズワイKANI
|
||
// This software is released under the MIT License.
|
||
// http://opensource.org/licenses/mit-license.php
|
||
// ----------------------------------------------------------------------------
|
||
/*:ja
|
||
* @target MZ
|
||
* @plugindesc 桜御前の雑多なスクリプトアレコレ。
|
||
* @author ズワイKANI
|
||
*
|
||
* @command Yukaku
|
||
* @text 遊郭の処理
|
||
* @desc 遊郭での各選択肢判定の処理です。
|
||
* @arg TaskType
|
||
* @text 働く場所
|
||
* @desc 遊郭で働く場所を選択します。
|
||
* @default 松間で勤務
|
||
* @type select
|
||
* @option 松間で勤務
|
||
* @value matu
|
||
* @option 竹間で勤務
|
||
* @value take
|
||
* @option 梅間で勤務
|
||
* @value ume
|
||
* @option 草間で勤務
|
||
* @value kusa
|
||
* @arg ResultVid
|
||
* @text 選択結果を入れる変数番号
|
||
* @default 0
|
||
* @type variable
|
||
*
|
||
* @command HgainItem
|
||
* @text セクハラ判定
|
||
* @desc セクハラ時のコマンド。
|
||
* @arg SekuharaVid
|
||
* @text セクハラ傾向判定変数
|
||
* @default 77
|
||
* @type variable
|
||
* @arg SekuharaResult
|
||
* @desc セクハラ報酬タイプ
|
||
* @default 素材
|
||
* @type select
|
||
* @option 銭
|
||
* @value gold
|
||
* @option 素材(獣)
|
||
* @value kemono
|
||
* @option 素材(魚)
|
||
* @value sakana
|
||
* @option 素材(鳥)
|
||
* @value tori
|
||
* @option 特殊
|
||
* @value other
|
||
*
|
||
* @command Hrem
|
||
* @text ああああ
|
||
* @desc あああああああああーーーーーっ!!
|
||
*
|
||
* @command ShopLinap
|
||
* @text ショップのラインナップ条件判定
|
||
* @desc 該当の商品を既に所持しているかの判定!!
|
||
*
|
||
* @arg ShopType
|
||
* @type select
|
||
* @option 武器ショップ
|
||
* @value enka
|
||
* @option 衣装ショップ
|
||
* @value kirari
|
||
* @option 薬屋ショップ
|
||
* @value tama
|
||
* @option 上級武器ショップ
|
||
* @value enka_SP
|
||
* @option 上級衣装ショップ
|
||
* @value kirari_SP
|
||
* @option 上級薬屋ショップ
|
||
* @value tama_SP
|
||
* @option 山田
|
||
* @value yamada
|
||
*
|
||
* @arg ShopLinapVid
|
||
* @text 商品棚チェック変数
|
||
* @default 430
|
||
* @type variable
|
||
*
|
||
* @command EventSkipFlag
|
||
* @text イベントスキップ配列格納
|
||
* @desc イベントスキップ変数に要素を追加します。
|
||
* @arg EVarray
|
||
* @text 配列名
|
||
* @default
|
||
* @type string
|
||
*
|
||
* @command EventSkipSW
|
||
* @text イベント通過判定
|
||
* @arg EVarray
|
||
* @text 配列名
|
||
* @default
|
||
* @type string
|
||
*
|
||
* @command Kabehame
|
||
* @text 壁間茶屋のアイテム取得処理
|
||
* @desc
|
||
*
|
||
* @arg jobType
|
||
* @type select
|
||
* @option 口
|
||
* @value kuti
|
||
* @option 乳
|
||
* @value mune
|
||
* @option 膣
|
||
* @value titu
|
||
* @option 尻
|
||
* @value shiri
|
||
* @default kuti
|
||
*
|
||
* @command HstLastH
|
||
* @text
|
||
* @desc 最後にエッチした相手
|
||
* @arg Hlastarray
|
||
* @text 格納する相手の名前
|
||
* @default
|
||
* @type string
|
||
*
|
||
* @command LastMessage
|
||
* @text ラストの会話演出用スクリプト
|
||
* @desc
|
||
* @arg messagenum
|
||
* @type number
|
||
* @min 0
|
||
*
|
||
* @help
|
||
* このプラグインはツール上で直接記載している「スクリプト」を整理のために
|
||
* プラグイン化したものです。
|
||
* jsファイルに直接変数変更を記載しているので桜御前以外では利用は非推奨です。
|
||
*/
|
||
|
||
var Imported = Imported || {};
|
||
Imported["iiiKANIUscriptCommand"] = 1.0;
|
||
|
||
(function () {
|
||
"use strict";
|
||
|
||
/**
|
||
* PluginCommand
|
||
*/
|
||
const script = document.currentScript;
|
||
const parameters = PluginManagerEx.createParameter(script);
|
||
|
||
PluginManagerEx.registerCommand(script, "Yukaku", function (args) {
|
||
var ytask = new YoukakuTask();
|
||
|
||
const TaskType = args.TaskType;
|
||
const ResVid = args.ResultVid;
|
||
const cohices = ytask.CreateChoice(TaskType);
|
||
const params = [
|
||
cohices,
|
||
cohices.length - 1, // キャンセル扱いのindex
|
||
0, // デフォルトで選択するindex
|
||
2, // ウインドウ位置
|
||
0, // 背景タイプ
|
||
];
|
||
this.setupChoices(params);
|
||
|
||
$gameMessage.setChoiceCallback(
|
||
((n) => {
|
||
this._branch[this._indent] = n;
|
||
ytask.AfterChoice(TaskType, ResVid, n);
|
||
}).bind(this)
|
||
);
|
||
this.setWaitMode("message");
|
||
});
|
||
|
||
PluginManagerEx.registerCommand(script, "HgainItem", function (args) {
|
||
var hcommond = new GainHst(this);
|
||
const SekuVid = args.SekuharaVid;
|
||
const Gaintype = args.SekuharaResult;
|
||
hcommond.GainItemCheck(Gaintype);
|
||
});
|
||
|
||
PluginManagerEx.registerCommand(script, "ShopLinap", function (args) {
|
||
var shopcheck = new ShopCheck(this);
|
||
const ShopVid = args.ShopLinapVid;
|
||
const ShopType = args.ShopType;
|
||
shopcheck.CheckUserItems(ShopType);
|
||
shopcheck.LinapSetting(ShopType);
|
||
});
|
||
|
||
PluginManagerEx.registerCommand(script, "EventSkipFlag", function (args) {
|
||
const flag = $gameVariables.value(19);
|
||
let arrayelm = args.EVarray;
|
||
let param = true;
|
||
flag[arrayelm] = param;
|
||
|
||
$gameVariables.setValue(19, flag);
|
||
console.log(flag);
|
||
});
|
||
|
||
PluginManagerEx.registerCommand(script, "EventSkipSW", function (args) {
|
||
const flag = $gameVariables.value(19);
|
||
$gameSwitches.setValue(73, !!flag[args.EVarray]);
|
||
});
|
||
|
||
PluginManagerEx.registerCommand(script, "HstLastH", function (args) {
|
||
const lastH = args.Hlastarray;
|
||
HstAccumulation(lastH);
|
||
});
|
||
|
||
PluginManagerEx.registerCommand(script, "Kabehame", function (args) {
|
||
var jobTask = new KabeTask();
|
||
|
||
const jobType = args.jobType;
|
||
jobTask.WorkTask(jobType);
|
||
});
|
||
|
||
PluginManagerEx.registerCommand(script, "LastMessage", function (args) {
|
||
const m = args.messagenum;
|
||
JizoMess(m);
|
||
});
|
||
|
||
class ShopCheck {
|
||
constructor() {}
|
||
CheckUserItems(ShopType) {
|
||
const has = $gameParty;
|
||
const Chap1 = $gameSwitches.value(35);
|
||
const Chap2 = $gameSwitches.value(36);
|
||
var checktbl = 0;
|
||
|
||
//武器ショップラインナップ設定
|
||
if (ShopType == "enka") {
|
||
checktbl = [
|
||
has.hasItem($dataItems[142]) ? 197 : -1, //解除キー
|
||
has.hasItem($dataItems[142]) ? 1 : -1, //解除キーカラム用
|
||
Chap1 ? 18 : -1,
|
||
Chap1 ? 38 : -1,
|
||
Chap1 ? 58 : -1,
|
||
Chap1 ? 78 : -1,
|
||
Chap1 ? 98 : -1,
|
||
Chap1 ? 1 : -1,
|
||
Chap1 ? 21 : -1,
|
||
Chap1 ? 41 : -1,
|
||
Chap1 ? 61 : -1,
|
||
Chap1 ? 81 : -1,
|
||
Chap1 ? 101 : -1,
|
||
Chap1 ? 1 : -1,
|
||
Chap2 ? 24 : -1,
|
||
Chap2 ? 44 : -1,
|
||
Chap2 ? 64 : -1,
|
||
Chap2 ? 84 : -1,
|
||
Chap2 ? 104 : -1,
|
||
Chap2 ? 1 : -1,
|
||
];
|
||
}
|
||
if (ShopType == "enka_SP") {
|
||
checktbl = [];
|
||
}
|
||
|
||
if (ShopType == "kirari") {
|
||
checktbl = [];
|
||
}
|
||
if (ShopType == "kirari_SP") {
|
||
checktbl = [];
|
||
}
|
||
if (ShopType == "tama") {
|
||
checktbl = [];
|
||
}
|
||
if (ShopType == "tama_SP") {
|
||
checktbl = [];
|
||
}
|
||
if (ShopType == "yamada") {
|
||
checktbl = [];
|
||
}
|
||
$gameVariables.setValue(430, checktbl);
|
||
}
|
||
LinapSetting(ShopType) {
|
||
const lin = $gameVariables.value(430);
|
||
let goods = 0;
|
||
if (ShopType == "enka") {
|
||
const elm1 = $gameSwitches.value(35);
|
||
const elm2 = $gameSwitches.value(36);
|
||
|
||
goods = [
|
||
// enka shop is 3 columns
|
||
[0, 51, 0],
|
||
[0, elm1 ? 53 : 1, 0],
|
||
[0, elm2 ? 55 : 1, 0],
|
||
[0, lin[0], 0],
|
||
[0, lin[1], 0],
|
||
[0, lin[1], 0],
|
||
[1, 12, 0],
|
||
[1, 15, 0],
|
||
[1, lin[2], 0],
|
||
[1, lin[8], 0],
|
||
[1, lin[14], 0],
|
||
[1, 32, 0],
|
||
[1, 35, 0],
|
||
[1, lin[3], 0],
|
||
[1, lin[9], 0],
|
||
[1, lin[15], 0],
|
||
[1, 52, 0],
|
||
[1, 55, 0],
|
||
[1, lin[4], 0],
|
||
[1, lin[10], 0],
|
||
[1, lin[16], 0],
|
||
[1, 72, 0],
|
||
[1, 75, 0],
|
||
[1, lin[5], 0],
|
||
[1, lin[11], 0],
|
||
[1, lin[17], 0],
|
||
[1, 92, 0],
|
||
[1, 95, 0],
|
||
[1, lin[6], 0],
|
||
[1, lin[12], 0],
|
||
[1, lin[18], 0],
|
||
];
|
||
}
|
||
if (ShopType == "enka_SP") {
|
||
// enka spshop is 3 columns
|
||
|
||
goods = [
|
||
[0, 51, 0],
|
||
[0, 53, 0],
|
||
[0, 55, 0],
|
||
[0, 52, 0],
|
||
[0, 54, 0],
|
||
[0, 56, 0],
|
||
|
||
[1, 13, 0],
|
||
[1, 16, 0],
|
||
[1, 19, 0],
|
||
[1, 22, 0],
|
||
[1, 25, 0],
|
||
[1, 33, 0],
|
||
[1, 36, 0],
|
||
[1, 39, 0],
|
||
[1, 42, 0],
|
||
[1, 45, 0],
|
||
[1, 53, 0],
|
||
[1, 56, 0],
|
||
[1, 59, 0],
|
||
[1, 62, 0],
|
||
[1, 65, 0],
|
||
[1, 73, 0],
|
||
[1, 76, 0],
|
||
[1, 79, 0],
|
||
[1, 82, 0],
|
||
[1, 85, 0],
|
||
[1, 93, 0],
|
||
[1, 96, 0],
|
||
[1, 99, 0],
|
||
[1, 102, 0],
|
||
[1, 105, 0],
|
||
];
|
||
}
|
||
if (ShopType == "kirari") {
|
||
const elm1 = $gameSwitches.value(35);
|
||
const elm2 = $gameSwitches.value(36);
|
||
var ctbl = [
|
||
$gameParty.hasItem($dataItems[148]), //sub お守りレシピ
|
||
$gameParty.hasItem($dataItems[149]), //sub 朱印レシピ
|
||
$gameParty.hasItem($dataItems[131]), //recipe けものふく
|
||
$gameParty.hasItem($dataItems[132]), //recipe びきにあーまー
|
||
$gameParty.hasItem($dataItems[133]), //recipe めいどふく
|
||
];
|
||
var atbl = [
|
||
$gameParty.hasItem($dataArmors[10], true) ? -1 : 10, //バニー
|
||
$gameParty.hasItem($dataArmors[16], true) ? -1 : ctbl[2] ? 16 : -1, //獣
|
||
$gameParty.hasItem($dataArmors[12], true) ? -1 : 12, //水着
|
||
$gameParty.hasItem($dataArmors[18], true) ? -1 : ctbl[3] ? 18 : -1, //びきにあーまー
|
||
$gameParty.hasItem($dataArmors[14], true) ? -1 : 14, //忍び
|
||
$gameParty.hasItem($dataArmors[20], true) ? -1 : ctbl[4] ? 20 : -1, //冥途
|
||
];
|
||
|
||
goods = [
|
||
// [2,atbl[0] ? -1:10 ,0],[2, ctbl[2] ? 16:-1,0], //ばにぃ、けもの
|
||
// [2,12,0],[2, ctbl[3] ? 18:-1,0], //水着、ビキニ鎧
|
||
// [2,14,0],[2, ctbl[4] ? 20:-1,0], //忍者、冥途
|
||
[2, atbl[0], 0],
|
||
[2, atbl[1], 0], //ばにぃ、けもの
|
||
[2, atbl[2], 0],
|
||
[2, atbl[3], 0], //水着、ビキニ鎧
|
||
[2, atbl[4], 0],
|
||
[2, atbl[5], 0], //忍者、冥途
|
||
[2, ctbl[0] ? 32 : -1, 0],
|
||
[2, ctbl[0] ? 33 : -1, 0], //体力・技力
|
||
[2, ctbl[0] ? 34 : -1, 0],
|
||
[2, ctbl[0] ? 35 : -1, 0], //力、耐久
|
||
[2, ctbl[0] ? 36 : -1, 0],
|
||
[2, ctbl[0] ? 37 : -1, 0], //闘志、敏捷
|
||
[2, ctbl[1] ? 61 : -1, 0],
|
||
[2, ctbl[1] ? 62 : -1, 0], //毒、痺
|
||
[2, ctbl[1] ? 63 : -1, 0],
|
||
[2, ctbl[1] ? 64 : -1, 0], //毒、痺
|
||
[2, ctbl[1] ? 67 : -1, 0],
|
||
[2, ctbl[1] ? 68 : -1, 0], //毒、痺
|
||
[2, ctbl[1] ? 70 : -1, 0],
|
||
];
|
||
}
|
||
if (ShopType == "kirari_SP") {
|
||
var ctbl = [
|
||
$gameParty.hasItem($dataItems[145]), //sub 全瞬殺
|
||
$gameParty.hasItem($dataItems[134]), //recipe びぃすと桜
|
||
$gameParty.hasItem($dataItems[135]), //recipe どらごん桜
|
||
$gameParty.hasItem($dataItems[136]), //recipe ろいやる桜
|
||
$gameParty.hasItem($dataItems[137]), //recipe 桜馬甲冑
|
||
];
|
||
|
||
var atbl = [
|
||
$gameParty.hasItem($dataArmors[11], true) ? -1 : 11, //Rバニー
|
||
$gameParty.hasItem($dataArmors[17], true) ? -1 : ctbl[1] ? 17 : -1, //びぃすと
|
||
$gameParty.hasItem($dataArmors[13], true) ? -1 : 13, //M水着
|
||
$gameParty.hasItem($dataArmors[19], true) ? -1 : ctbl[2] ? 19 : -1, //ドラゴン
|
||
$gameParty.hasItem($dataArmors[15], true) ? -1 : 15, //対魔
|
||
$gameParty.hasItem($dataArmors[21], true) ? -1 : ctbl[3] ? 21 : -1, //ろいやる
|
||
$gameParty.hasItem($dataArmors[7], true) ? -1 : ctbl[4] ? 7 : -1, //甲冑
|
||
$gameParty.hasItem($dataItems[189]) ? -1 : ctbl[0] ? 189 : -1, //sub 全瞬殺
|
||
];
|
||
|
||
goods = [
|
||
[2, atbl[0], 0],
|
||
[2, atbl[1], 0], //逆ばにぃ、びぃすと
|
||
[2, atbl[2], 0],
|
||
[2, atbl[3], 0], //マイクロビキニ、ドラゴン
|
||
[2, atbl[4], 0],
|
||
[2, atbl[5], 0], //退魔、天使
|
||
[2, atbl[6], 0],
|
||
[2, 38, 0],
|
||
[2, 39, 0], //脳筋、技巧
|
||
[2, 65, 0],
|
||
[2, 66, 0], //健康体、頑丈肌
|
||
[2, 69, 0],
|
||
[2, 75, 0], //能力耐性、全状態異常耐性
|
||
[2, 40, 0],
|
||
[2, 41, 0], //ケモノ、サイノ
|
||
[2, 42, 0],
|
||
[0, atbl[7], 0], //オソレ
|
||
];
|
||
|
||
// goods = [
|
||
// [2,11,0],[2,ctbl[1] ? 17:-1,0], //逆ばにぃ、びぃすと
|
||
// [2,13,0],[2,ctbl[2] ? 19:-1,0], //マイクロビキニ、賢者
|
||
// [2,15,0],[2,ctbl[3] ? 21:-1,0], //退魔、女神
|
||
// [2,ctbl[4] ? 7:-1,0],[2,ctbl[4] ? 0:-1,0], //逢魔、カラカラム
|
||
// [2,38,0],[2,39,0], //脳筋、技巧
|
||
// [2,65,0],[2,66,0],//健康体、頑丈肌
|
||
// [2,69,0],[2,75,0],//能力耐性、全状態異常耐性
|
||
// [2,40,0],[2,41,0], //ケモノ、サイノ
|
||
// [2,42,0],[0,ctbl[0] ? 0:-1,0], //オソレ
|
||
// [0,ctbl[0] ? 189:-1,0], //全殺し
|
||
// ]
|
||
}
|
||
if (ShopType == "tama") {
|
||
var ctbl = [
|
||
$gameParty.hasItem($dataItems[141]), //sub 気が遠くなる薬
|
||
$gameParty.hasItem($dataItems[143]), //sub 呼び寄せ香
|
||
$gameParty.hasItem($dataItems[147]), //sub 衛生管理
|
||
$gameParty.hasItem($dataItems[146]), //sub 忍び玉()
|
||
];
|
||
var itbl = [
|
||
$gameParty.hasItem($dataItems[193]) ? -1 : ctbl[1] ? 193 : -1, //呼び寄せ香
|
||
];
|
||
|
||
goods = [
|
||
[0, 21, 0],
|
||
[0, 24, 0],
|
||
[0, ctbl[2] ? 27 : -1, 0],
|
||
[0, ctbl[2] ? 28 : -1, 0],
|
||
[0, 31, 0],
|
||
[0, 32, 0],
|
||
[0, 33, 0],
|
||
[0, 34, 0],
|
||
[0, ctbl[2] ? 29 : -1, 0],
|
||
[0, ctbl[2] ? 35 : -1, 0],
|
||
[0, ctbl[3] ? 66 : -1, 0],
|
||
[0, ctbl[3] ? 67 : -1, 0],
|
||
[0, ctbl[3] ? 68 : -1, 0],
|
||
[0, ctbl[3] ? 69 : -1, 0],
|
||
[0, ctbl[0] ? 196 : -1, 0],
|
||
[0, itbl[0], 0],
|
||
];
|
||
}
|
||
if (ShopType == "tama_SP") {
|
||
var ctbl = [
|
||
$gameParty.hasItem($dataItems[144]), //sub 超呼び寄せ
|
||
];
|
||
var itbl = [
|
||
$gameParty.hasItem($dataItems[194]) ? -1 : ctbl[0] ? 194 : -1, //呼び寄せ香
|
||
];
|
||
goods = [
|
||
[0, 75, 0],
|
||
[0, 76, 0],
|
||
[0, 77, 0],
|
||
[0, 80, 0],
|
||
[0, 15, 0],
|
||
[0, 16, 0],
|
||
[0, 71, 0],
|
||
[0, itbl[0], 0],
|
||
];
|
||
}
|
||
if (ShopType == "yamada") {
|
||
const c2C = $gameSwitches.value(36);
|
||
goods = [
|
||
[0, 41, 0],
|
||
[0, 42, 0],
|
||
[0, 43, 0],
|
||
[0, 44, 0],
|
||
[2, c2C ? 48 : -1, 0],
|
||
];
|
||
}
|
||
SceneManager.push(Scene_Shop);
|
||
SceneManager.prepareNextScene(goods, true);
|
||
}
|
||
}
|
||
|
||
class YoukakuTask {
|
||
constructor() {
|
||
this.Hlv = {
|
||
matu: {
|
||
eroLv: $gameVariables.value(25),
|
||
partsLv: $gameVariables.value(58),
|
||
},
|
||
take: {
|
||
eroLv: $gameVariables.value(25),
|
||
partsLv: $gameVariables.value(57),
|
||
},
|
||
ume: {
|
||
eroLv: $gameVariables.value(25),
|
||
partsLv: $gameVariables.value(59),
|
||
},
|
||
kusa: {
|
||
eroLv: $gameVariables.value(25),
|
||
partsLv: $gameVariables.value(56),
|
||
},
|
||
};
|
||
}
|
||
CreateChoice(taskType) {
|
||
switch (taskType) {
|
||
case "matu":
|
||
return this.CreateMatuChoice(taskType);
|
||
case "take":
|
||
return this.CreateTakeChoice(taskType);
|
||
case "ume":
|
||
return this.CreateUmeChoice(taskType);
|
||
case "kusa":
|
||
return this.CreateKusaChoice(taskType);
|
||
}
|
||
return [$dataSystemTexts.Yukaku_remove];
|
||
}
|
||
CreateMatuChoice(taskType) {
|
||
const Hlv = this.Hlv[taskType];
|
||
const dstext = $dataSystemTexts;
|
||
|
||
//<各条件に合わせた選択肢の表示>
|
||
const t = [
|
||
dstext.Yukaku_matu_lv1,
|
||
dstext.Yukaku_matu_lv1_n,
|
||
dstext.Yukaku_matu_lv2,
|
||
dstext.Yukaku_matu_lv2_n,
|
||
dstext.Yukaku_matu_lv3,
|
||
dstext.Yukaku_matu_lv3_n,
|
||
];
|
||
|
||
const eroLv = Hlv.eroLv;
|
||
const partsLv = Hlv.partsLv;
|
||
const choices = [
|
||
eroLv >= 4 && partsLv >= 1 ? t[0] : t[1],
|
||
eroLv >= 7 && partsLv >= 2 ? t[2] : t[3],
|
||
eroLv >= 11 && partsLv >= 3 ? t[4] : t[5],
|
||
dstext.Yukaku_remove,
|
||
];
|
||
return choices;
|
||
}
|
||
CreateTakeChoice(taskType) {
|
||
const Hlv = this.Hlv[taskType];
|
||
const dstext = $dataSystemTexts;
|
||
|
||
//<各条件に合わせた選択肢の表示>
|
||
const t = [
|
||
dstext.Yukaku_take_lv1,
|
||
dstext.Yukaku_take_lv1_n,
|
||
dstext.Yukaku_take_lv2,
|
||
dstext.Yukaku_take_lv2_n,
|
||
dstext.Yukaku_take_lv3,
|
||
dstext.Yukaku_take_lv3_n,
|
||
];
|
||
|
||
const eroLv = Hlv.eroLv;
|
||
const partsLv = Hlv.partsLv;
|
||
const choices = [
|
||
eroLv >= 4 && partsLv >= 1 ? t[0] : t[1],
|
||
eroLv >= 6 && partsLv >= 2 ? t[2] : t[3],
|
||
eroLv >= 8 && partsLv >= 3 ? t[4] : t[5],
|
||
"Leave",
|
||
];
|
||
return choices;
|
||
}
|
||
CreateUmeChoice(taskType) {
|
||
const Hlv = this.Hlv[taskType];
|
||
const dstext = $dataSystemTexts;
|
||
|
||
//<各条件に合わせた選択肢の表示>
|
||
const t = [
|
||
dstext.Yukaku_ume_lv1,
|
||
dstext.Yukaku_ume_lv1_n,
|
||
dstext.Yukaku_ume_lv2,
|
||
dstext.Yukaku_ume_lv2_n,
|
||
dstext.Yukaku_ume_lv3,
|
||
dstext.Yukaku_ume_lv3_n,
|
||
];
|
||
|
||
const eroLv = Hlv.eroLv;
|
||
const partsLv = Hlv.partsLv;
|
||
const choices = [
|
||
eroLv >= 5 && partsLv >= 1 ? t[0] : t[1],
|
||
eroLv >= 8 && partsLv >= 2 ? t[2] : t[3],
|
||
eroLv >= 12 && partsLv >= 3 ? t[4] : t[5],
|
||
"Leave",
|
||
];
|
||
return choices;
|
||
}
|
||
CreateKusaChoice(taskType) {
|
||
const Hlv = this.Hlv[taskType];
|
||
const dstext = $dataSystemTexts;
|
||
|
||
//<各条件に合わせた選択肢の表示>
|
||
const t = [
|
||
dstext.Yukaku_kusa_lv1,
|
||
dstext.Yukaku_kusa_lv1_n,
|
||
dstext.Yukaku_kusa_lv2,
|
||
dstext.Yukaku_kusa_lv2_n,
|
||
dstext.Yukaku_kusa_lv3,
|
||
dstext.Yukaku_kusa_lv3_n,
|
||
];
|
||
|
||
const eroLv = Hlv.eroLv;
|
||
const partsLv = Hlv.partsLv;
|
||
const choices = [
|
||
eroLv >= 4 && partsLv >= 1 ? t[0] : t[1],
|
||
eroLv >= 7 && partsLv >= 2 ? t[2] : t[3],
|
||
eroLv >= 9 && partsLv >= 3 ? t[4] : t[5],
|
||
"Leave",
|
||
];
|
||
return choices;
|
||
}
|
||
AfterChoice(taskType, resultVid, choice) {
|
||
// //<選択肢に合わせた判定変数の変動(v74に値を代入)>
|
||
$gameVariables.setValue(resultVid, choice);
|
||
|
||
const Hlv = this.Hlv[taskType];
|
||
const eroLv = Hlv.eroLv;
|
||
const partsLv = Hlv.partsLv;
|
||
|
||
let choices = [];
|
||
|
||
if (taskType == "matu") {
|
||
choices = [
|
||
eroLv >= 4 && partsLv >= 1 ? true : false,
|
||
eroLv >= 7 && partsLv >= 2 ? true : false,
|
||
eroLv >= 11 && partsLv >= 3 ? true : false,
|
||
true,
|
||
];
|
||
}
|
||
if (taskType == "take") {
|
||
choices = [
|
||
eroLv >= 4 && partsLv >= 1 ? true : false,
|
||
eroLv >= 6 && partsLv >= 2 ? true : false,
|
||
eroLv >= 8 && partsLv >= 3 ? true : false,
|
||
true,
|
||
];
|
||
}
|
||
if (taskType == "ume") {
|
||
choices = [
|
||
eroLv >= 5 && partsLv >= 1 ? true : false,
|
||
eroLv >= 8 && partsLv >= 2 ? true : false,
|
||
eroLv >= 12 && partsLv >= 3 ? true : false,
|
||
true,
|
||
];
|
||
}
|
||
if (taskType == "kusa") {
|
||
choices = [
|
||
eroLv >= 4 && partsLv >= 1 ? true : false,
|
||
eroLv >= 7 && partsLv >= 2 ? true : false,
|
||
eroLv >= 9 && partsLv >= 3 ? true : false,
|
||
true,
|
||
];
|
||
}
|
||
|
||
var res = choices[choice];
|
||
if (!res) {
|
||
// ↑のテーブルの条件を満たしてないとき(=falseのとき)にココを通る
|
||
$gameVariables.setValue(resultVid, choice + 10);
|
||
}
|
||
}
|
||
}
|
||
|
||
class KabeTask {
|
||
//選択した処理に合わせてプラグイン実行
|
||
//クリアしたチャプター状況で報酬アイテム増加
|
||
//ランダムでアイテム&
|
||
constructor() {
|
||
let chap1 = $gameSwitches.value(35);
|
||
let chap2 = $gameSwitches.value(36);
|
||
let chap3 = $gameSwitches.value(37);
|
||
let chapEX = $gameSwitches.value(38);
|
||
}
|
||
WorkTask(jobType) {
|
||
let itemId = 0;
|
||
|
||
let tblA = [];
|
||
switch (jobType) {
|
||
case "kuti":
|
||
tblA = [
|
||
[401, 22],
|
||
[410, 25],
|
||
[418, 25],
|
||
[412, 8],
|
||
[413, 8],
|
||
[414, 8],
|
||
[51, 3],
|
||
[52, 1],
|
||
];
|
||
break;
|
||
|
||
case "mune":
|
||
tblA = [
|
||
[402, 22],
|
||
[410, 25],
|
||
[419, 25],
|
||
[420, 8],
|
||
[421, 8],
|
||
[422, 8],
|
||
[53, 3],
|
||
[54, 1],
|
||
];
|
||
break;
|
||
|
||
case "titu":
|
||
tblA = [
|
||
[401, 22],
|
||
[410, 25],
|
||
[426, 25],
|
||
[428, 8],
|
||
[429, 8],
|
||
[430, 8],
|
||
[55, 3],
|
||
[56, 1],
|
||
];
|
||
break;
|
||
|
||
case "shiri":
|
||
tblA = [
|
||
[401, 13],
|
||
[402, 14],
|
||
[419, 14],
|
||
[427, 14],
|
||
[412, 5],
|
||
[413, 5],
|
||
[414, 5],
|
||
[420, 5],
|
||
[421, 5],
|
||
[430, 5],
|
||
[428, 5],
|
||
[429, 5],
|
||
[430, 5],
|
||
];
|
||
break;
|
||
}
|
||
|
||
shuffleArray(tblA);
|
||
var table = tblA;
|
||
while (itemId == 0) {
|
||
for (let i = 0; i < table.length; i++) {
|
||
let pair = table[i];
|
||
let critia = pair[1];
|
||
let r = Math.floor(Math.random() * 100);
|
||
if (r < critia) {
|
||
//
|
||
itemId = pair[0];
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
function shuffleArray(array) {
|
||
for (let i = array.length - 1; i > 0; i--) {
|
||
const j = Math.floor(Math.random() * (i + 1));
|
||
[array[i], array[j]] = [array[j], array[i]];
|
||
}
|
||
}
|
||
|
||
//ココでアイテムを入れる(変数を用意する)
|
||
$gameVariables.setValue(110, itemId);
|
||
$gameVariables.setValue(111, 1);
|
||
console.log(itemId);
|
||
}
|
||
}
|
||
|
||
class GainHst {
|
||
constructor() {}
|
||
GainItemCheck(Gaintype) {
|
||
/*
|
||
・報酬タイプをチェック()
|
||
・セクハラ傾向をチェックして、報酬内容を整理
|
||
・報酬タイプを設定
|
||
gold,kemono,sakana,tori,tokusyu
|
||
*/
|
||
switch (Gaintype) {
|
||
case "gold":
|
||
return this.SekuharaGain0();
|
||
case "kemono":
|
||
return this.SekuharaGain1();
|
||
case "sakana":
|
||
return;
|
||
case "tori":
|
||
return;
|
||
case "other":
|
||
return;
|
||
}
|
||
}
|
||
SekuharaGain0() {
|
||
const parts = $gameVariables.value(77);
|
||
//const parts = 1;
|
||
let c = 0;
|
||
if (parts == 1) c = Math.max(Math.floor($gameVariables.value(21) * 1), 1);
|
||
if (parts == 2) c = Math.max(Math.floor($gameVariables.value(22) * 1), 1);
|
||
if (parts == 3) c = Math.max(Math.floor($gameVariables.value(23) * 1), 1);
|
||
if (parts == 4) c = Math.max(Math.floor($gameVariables.value(24) * 1), 1);
|
||
|
||
//info variables
|
||
$gameVariables.setValue(111, c); //個数
|
||
console.log("変数の値" + parts);
|
||
}
|
||
SekuharaGain1() {
|
||
//item id set
|
||
let itemID = Math.floor(Math.random() * 2) + 410;
|
||
|
||
//item count set(セクハラ傾向から報酬カウントを決定)
|
||
const parts = $gameVariables.value(77);
|
||
let c = 0;
|
||
if (parts == 1)
|
||
c = Math.max(Math.floor($gameVariables.value(21) * 0.1), 1);
|
||
if (parts == 2)
|
||
c = Math.max(Math.floor($gameVariables.value(22) * 0.1), 1);
|
||
if (parts == 3)
|
||
c = Math.max(Math.floor($gameVariables.value(23) * 0.1), 1);
|
||
if (parts == 4)
|
||
c = Math.max(Math.floor($gameVariables.value(24) * 0.1), 1);
|
||
|
||
//info variables
|
||
$gameVariables.setValue(110, itemID); //報酬
|
||
$gameVariables.setValue(111, c); //個数
|
||
}
|
||
}
|
||
|
||
function HstAccumulation(lastH) {
|
||
let hHistroy = $gameVariables.value(513);
|
||
if (!hHistroy) {
|
||
hHistroy = [];
|
||
}
|
||
hHistroy.unshift(lastH);
|
||
hHistroy = hHistroy.slice(0, 10);
|
||
$gameVariables.setValue(513, hHistroy);
|
||
}
|
||
|
||
function JizoMess(messagenum) {
|
||
var message = [
|
||
"Long ago, something fell from the end of the sky",
|
||
"An eyeball-adorned membrane, dry and starving, seeking flesh",
|
||
"It devoured beasts and grew fangs",
|
||
"It devoured birds and spread wings",
|
||
"It devoured fish and its amber eyes glowed",
|
||
"Devouring yokai, it learned greed",
|
||
"Devouring humans, it gained wisdom",
|
||
"Bewitching with seductive charms, it touched flesh",
|
||
"Multiplying its tainted flesh kin...",
|
||
"Eventually, it was called the disease of the youkai",
|
||
"Men of Hinomoto were ordered to war",
|
||
|
||
"The aftermath of war was a horrid field of flesh",
|
||
"Even in death, the youkai barely survived",
|
||
"Unable to withstand carnage and rejection",
|
||
"To the far, far end of the sea",
|
||
|
||
"Cherry blossoms and tachibana ended in disaster",
|
||
"Leaving behind seeds, they went to the afterlife",
|
||
"The remaining flower, foolish samurai",
|
||
"A stern man who feared the future",
|
||
"Rooted in the village, believing in a full bloom",
|
||
"His steed rose to be a cherry horse",
|
||
|
||
"Yet the war had no end",
|
||
"The fearful leech sought power",
|
||
"The pitiable fox forgot its children",
|
||
"The lonely gourd longed for company",
|
||
"Many ages ahead in time",
|
||
"Peeking from the future are humans controlling disease",
|
||
"Welcoming the bell-ringing child as a daughter",
|
||
"......in the same time......",
|
||
|
||
"If one can control disease, even a human",
|
||
"Eternity of",
|
||
"Time",
|
||
"From now on, together",
|
||
"......Then",
|
||
"This foolish tale of fools",
|
||
"Thus, farewell......",
|
||
"",
|
||
];
|
||
$gameVariables.setValue(463, message[messagenum]);
|
||
}
|
||
})();
|