dead-bunny/js/plugins/Nore_Sarashi.js
2025-01-12 01:21:39 -06:00

674 lines
19 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

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

/*:ja
* @target MZ
* @author ル
*
*
* @command RunIntro
* @text 紹介分表示
* @des 紹介分表示
* @arg actorId
* @type number
* @arg index
* @type number
*
* @command RunBote
* @text ボテ表示
* @des ボテ表示
* @arg actorId
* @type number
* @arg isTaneoya
* @type boolean
* @arg index
* @type number
*
* @command RunOuter
* @text 服装表示
* @des 服装表示
* @arg actorId
* @type number
* @arg outerId
* @type string
*
* @command RunNakadashi
* @text 中出し表示
* @des 中出し表示
* @arg actorId
* @type number
*
* @command RunAnal
* @text アナル表示
* @des アナル表示
* @arg actorId
* @type number
*
* @command RunSyusan
* @text 出産回数表示
* @des 出産回数表示
* @arg actorId
* @type number
*
* @command RunManko
* @text おまんこ表示
* @des おまんこ表示
* @arg actorId
* @type number
*
* @command SyusanText
* @text 出産テキスト作成
* @des 出産テキスト作成
* @arg actorId
* @type number
*
* @command TaiiText
* @text 好きな体位決定
* @des 好きな体位決定
* @arg actorId
* @type number
*
* @command SexText
* @text セックステキスト作成
* @des セックステキスト作成
* @arg actorId
* @type number
*
* @command DecideFavotiteChinpo
* @text 好きなちんぽ決定
* @des 好きなちんぽ決定
* @arg actorId
* @type number
*
* @command makeMankoHenkeiText
* @text おまんこ変形度テキスト作成
*/
var Nore;
(function (Nore) {
var VAR_SARASHI_NAKADASHI = 881;
var VAR_SARASHI_ANAL = 882;
var VAR_SARASHI_TAII = 883;
var VAR_SARASHI_SEX_TAII = 884;
var VAR_SARASHI_CHINPO = 887;
var pluginName = "Nore_Sarashi";
var intro = "紹介";
var bote = "ボテ腹";
var common = "共通";
var seed = "種";
var other = "その他";
var outer = "服装";
var naka = "中出し";
var syusan = "出産回数";
var omanko = "おまんこ";
PluginManager.registerCommand(pluginName, "TaiiText", function (args) {
var actorId = parseInt(args.actorId);
var actor = $gameActors.actor(actorId);
var avList = $slg.avInfo().actorAvList(actorId);
if (avList.length == 0) {
$gameVariables.setValue(VAR_SARASHI_CHINPO, 0);
return;
}
for (var i = 0; i < avList.length; i++) {
var av = avList[avList.length - i - 1];
var position = av.taii();
if (position >= 0) {
$gameVariables.setValue(VAR_SARASHI_TAII, position);
return;
}
}
});
PluginManager.registerCommand(
pluginName,
"DecideFavotiteChinpo",
function (args) {
var actorId = parseInt(args.actorId);
var actor = $gameActors.actor(actorId);
var douseiManId = actor.dousei().manId();
if (douseiManId > 0) {
var chinpo_1 = decideFavoriteChinpo(actorId, douseiManId);
$gameVariables.setValue(VAR_SARASHI_CHINPO, chinpo_1);
return;
}
var avList = $slg.avInfo().actorAvList(actorId);
if (avList.length == 0) {
$gameVariables.setValue(VAR_SARASHI_CHINPO, 0);
return;
}
var lastAv = avList[avList.length - 1];
var chinpo = decideFavoriteChinpo(actorId, lastAv.mainManId());
$gameVariables.setValue(VAR_SARASHI_CHINPO, chinpo);
}
);
function decideFavoriteChinpo(actorId, manId) {
switch (actorId) {
case 4:
return decideFavoriteChinpo4(manId);
case 9:
return decideFavoriteChinpo9(manId);
case 13:
return decideFavoriteChinpo13(manId);
case 17:
return decideFavoriteChinpo17(manId);
}
return 0;
}
function decideFavoriteChinpo4(manId) {
switch (manId) {
case 5:
return 5; // レン
case 20:
return 20; // タロウ
}
return 78;
}
function decideFavoriteChinpo9(manId) {
switch (manId) {
case 19:
return 19; // ブスジマ
}
return 78;
}
function decideFavoriteChinpo13(manId) {
switch (manId) {
case 16:
return 16; // カスゾウ
}
return 78;
}
function decideFavoriteChinpo17(manId) {
switch (manId) {
case 21:
return 21; // オリバー
}
return 78;
}
function plusVar(varId) {
$gameVariables.setValue(varId, $gameVariables.value(varId) + 1);
}
PluginManager.registerCommand(pluginName, "SyusanText", function (args) {
var actorId = parseInt(args.actorId);
var actor = $gameActors.actor(actorId);
var babyMap = {};
for (var _i = 0, _a = actor.babyList(); _i < _a.length; _i++) {
var b = _a[_i];
if (b.isSyusan()) {
switch (actorId) {
case 4:
switch (b.taneoyaId()) {
case 5:
plusVar(961);
break;
case 20:
plusVar(962);
break;
default:
plusVar(970);
break;
}
break;
case 9:
switch (b.taneoyaId()) {
case 19:
plusVar(964);
break;
default:
plusVar(970);
break;
}
break;
case 13:
switch (b.taneoyaId()) {
case 16:
plusVar(966);
break;
default:
plusVar(970);
break;
}
break;
case 17:
switch (b.taneoyaId()) {
case 21:
plusVar(965);
break;
default:
plusVar(970);
break;
}
break;
}
}
}
var text = "";
if ($gameVariables.value(961) > 0) {
if (text.length > 0) {
text += "\n";
}
var renName = $gameActors.actor(5).name();
text += TextManager.syusanName.format(renName, $gameVariables.value(961));
}
if ($gameVariables.value(962) > 0) {
if (text.length > 0) {
text += "\n";
}
var tarouName = $gameActors.actor(20).name();
text += TextManager.syusanName.format(
tarouName,
$gameVariables.value(962)
);
}
if ($gameVariables.value(964) > 0) {
if (text.length > 0) {
text += "\n";
}
var renName = $gameActors.actor(19).name();
text += TextManager.syusanName.format(renName, $gameVariables.value(964));
}
if ($gameVariables.value(966) > 0) {
if (text.length > 0) {
text += "\n";
}
var renName = $gameActors.actor(16).name();
text += TextManager.syusanName.format(renName, $gameVariables.value(966));
}
if ($gameVariables.value(965) > 0) {
if (text.length > 0) {
text += "\n";
}
var renName = $gameActors.actor(21).name();
text += TextManager.syusanName.format(renName, $gameVariables.value(965));
}
if ($gameVariables.value(970) > 0) {
if (text.length > 0) {
text += "\n";
}
var vagrantName = $gameActors.actor(78).name();
text += TextManager.syusanName.format(
vagrantName,
$gameVariables.value(970)
);
}
if (text == "") {
$gameVariables.setValue(969, 0);
return;
}
p("出産テキスト");
p(text);
$gameVariables.setValue(969, text);
});
PluginManager.registerCommand(pluginName, "RunIntro", function (args) {
var s = getScenario(intro, args.actorId, null, args.index);
if (!s) {
console.error(args);
}
var list = $dataScenario[s.id];
if (!list) {
throw new Error("id:" + s.id + " のデータが見つかりません");
}
console.log("Scenario \u30B3\u30DE\u30F3\u30C9\u5B9F\u884C: ".concat(s.id));
this.setupChild(list, this._eventId);
});
PluginManager.registerCommand(pluginName, "RunBote", function (args) {
p("RunBote");
var s;
if (args.isTaneoya == "true") {
var taneoyaId = $gameVariables.value(70);
var taneoya = getTaneoyaNameJa(taneoyaId);
s = getScenario(bote, args.actorId, taneoya, args.index);
if (!s) {
s = getScenario(bote, args.actorId, other, args.index);
} else {
$gameSwitches.setValue(160 + taneoyaId, true);
p(160 + taneoyaId + "をON");
}
} else {
s = getScenario(bote, args.actorId, null, args.index);
}
var list = $dataScenario[s.id];
if (!list) {
throw new Error("id:" + s.id + " のデータが見つかりません");
}
console.log("Scenario \u30B3\u30DE\u30F3\u30C9\u5B9F\u884C: ".concat(s.id));
this.setupChild(list, this._eventId);
});
PluginManager.registerCommand(pluginName, "RunOuter", function (args) {
var s = getOuterScenario(outer, args.actorId, args.outerId);
var list = $dataScenario[s.id];
if (!list) {
throw new Error("id:" + s.id + " のデータが見つかりません");
}
console.log("Scenario \u30B3\u30DE\u30F3\u30C9\u5B9F\u884C: ".concat(s.id));
this.setupChild(list, this._eventId);
});
PluginManager.registerCommand(pluginName, "RunNakadashi", function (args) {
var s = getNakadashiScenario(naka, args.actorId);
if (!s) {
console.error(args);
throw new Error("id: RunNakadashi のデータが見つかりません");
}
var list = $dataScenario[s.id];
if (!list) {
throw new Error("id:" + s.id + " のデータが見つかりません");
}
console.log("Scenario \u30B3\u30DE\u30F3\u30C9\u5B9F\u884C: ".concat(s.id));
this.setupChild(list, this._eventId);
});
PluginManager.registerCommand(pluginName, "RunAnal", function (args) {
var s = getAnalScenario(args.actorId);
if (!s) {
console.error(args);
throw new Error("id: RunAnal のデータが見つかりません");
}
var list = $dataScenario[s.id];
if (!list) {
throw new Error("id:" + s.id + " のデータが見つかりません");
}
console.log("Scenario \u30B3\u30DE\u30F3\u30C9\u5B9F\u884C: ".concat(s.id));
this.setupChild(list, this._eventId);
});
PluginManager.registerCommand(pluginName, "RunSyusan", function (args) {
var s = getSyusanScenario(syusan, args.actorId);
var list = $dataScenario[s.id];
if (!list) {
throw new Error("id:" + s.id + " のデータが見つかりません");
}
console.log("Scenario \u30B3\u30DE\u30F3\u30C9\u5B9F\u884C: ".concat(s.id));
this.setupChild(list, this._eventId);
});
PluginManager.registerCommand(pluginName, "RunManko", function (args) {
var s = getOmankoScenario(omanko, args.actorId);
var list = $dataScenario[s.id];
if (!list) {
throw new Error("id:" + s.id + " のデータが見つかりません");
}
console.log("Scenario \u30B3\u30DE\u30F3\u30C9\u5B9F\u884C: ".concat(s.id));
this.setupChild(list, this._eventId);
});
PluginManager.registerCommand(pluginName, "RunAcce", function (args) {
var s = getAcceScenario(args.actorId, args.type);
if (!s) {
return;
}
var list = $dataScenario[s.id];
if (!list) {
console.error("id:" + s.id + " のデータが見つかりません");
return;
}
console.log("Scenario \u30B3\u30DE\u30F3\u30C9\u5B9F\u884C: ".concat(s.id));
this.setupChild(list, this._eventId);
});
PluginManager.registerCommand(
pluginName,
"makeMankoHenkeiText",
function (args) {
var value = $gameVariables.value(979);
var text = "";
switch (value) {
case 1:
text = "";
break;
case 2:
text = "";
break;
case 3:
text = "";
break;
case 4:
text = "";
break;
case 5:
text = "";
break;
case 6:
text = "";
break;
case 7:
text = "";
break;
}
$gameVariables.setValue(973, text);
}
);
function getScenario(type, actorId, taneoya, index) {
var actorName = getActorName(actorId);
var base1;
if (taneoya) {
base1 = "%1_%2_%3_%4".format(
type,
actorName,
index.padZero(2),
seed + taneoya
);
} else {
base1 = "%1_%2_%3".format(type, actorName, index.padZero(2));
}
var base2;
if (taneoya) {
base2 = "%1_%2_%3_%4".format(
type,
actorName,
index.padZero(2),
seed + taneoya
);
} else {
base2 = "%1_%2_%3".format(type, actorName, index.padZero(2));
}
p(base1);
p(base2);
var candidates = getCandidates(base1, base2);
if (candidates.length == 0) {
console.error(base1);
return null;
}
var obj = {};
var dice = Math.randomInt(candidates.length);
obj.id = candidates[dice];
return obj;
}
function getOuterName(outerId) {
switch (outerId) {
case "a":
return "裸";
case "b":
return "通常";
case "c":
return "売春婦";
case "g":
return "下脱ぎ";
}
}
function getOuterScenario(type, actorId, outer) {
var actorName = getActorName(actorId);
var outerName = getOuterName(outer);
var base1 = "%1_%2_%3".format(type, actorName, outerName);
var base2 = "%1_%2_%3".format(type, actorName, outerName);
var candidates = getCandidates(base1, base2);
if (candidates.length == 0) {
p(base1);
p(base2);
return null;
}
var obj = {};
var dice = Math.randomInt(candidates.length);
obj.id = candidates[dice];
return obj;
}
function getSyusanScenario(type, actorId) {
var actorName = getActorName(actorId);
var base1 = "%1_%2".format(type, actorName);
var base2 = "%1_%2".format(type, actorName);
p(base1);
p(base2);
var candidates = getCandidates(base1, base2);
if (candidates.length == 0) {
return null;
}
var obj = {};
var dice = Math.randomInt(candidates.length);
obj.id = candidates[dice];
return obj;
}
function getOmankoScenario(type, actorId) {
var actorName = getActorName(actorId);
var lv;
lv = $gameVariables.value(979);
if (lv > 6) {
lv = 6;
}
var lvStr = "LV" + lv;
var base1 = "%1_%2_%3".format(type, actorName, lvStr);
var base2 = "%1_%2_%3".format(type, actorName, lvStr);
var candidates = getCandidates(base1, base2);
if (candidates.length == 0) {
return null;
}
var obj = {};
var dice = Math.randomInt(candidates.length);
obj.id = candidates[dice];
return obj;
}
function getAcceScenario(actorId, type) {
var actorName = getActorName(actorId);
var actor = $gameActors.actor(actorId);
if (type == "精液") {
/*const nakadashiType = actor.getLastHistory().lastNakadashiType()
if (nakadashiType == 0) {
return null;
}
const name = getTaneoyaNameJa(nakadashiType);
let base1 = '%1_%2_%3_01'.format(type, actorName, name);
const obj = {};
obj.id = base1
return obj;*/
}
if (!actor.hasAcce(1014)) {
return null;
}
var base1 = "%1_%2_01".format(type, actorName);
var obj = {};
obj.id = base1;
return obj;
}
function getNakadashiScenario(type, actorId) {
var actorName = getActorName(actorId);
var count = $gameVariables.value(VAR_SARASHI_NAKADASHI);
var nakaType = "非処女";
var base1 = "%1_%2_%3".format(type, actorName, nakaType);
var base2 = "%1_%2_%3".format(type, actorName, nakaType);
var candidates = getCandidates(base1, base2);
if (candidates.length == 0) {
p(nakaType);
p(base1);
return null;
}
var obj = {};
var dice = Math.randomInt(candidates.length);
obj.id = candidates[dice];
return obj;
}
function getAnalScenario(actorId) {
var actorName = getActorName(actorId);
var base1 = "アナル_%1_01".format(actorName);
var obj = {};
obj.id = base1;
return obj;
}
function getCandidates(base1, base2) {
var result = [];
for (var i = 1; i <= 10; i++) {
var id = base1 + "_" + i.padZero(2);
var normalized = id.normalize("NFC");
if ($dataScenario[normalized]) {
result.push(normalized);
} else {
break;
}
}
for (var i = 1; i <= 10; i++) {
var id = base2 + "_" + i.padZero(2);
var normalized = id.normalize("NFC");
if ($dataScenario[normalized]) {
result.push(normalized);
} else {
break;
}
}
return result;
}
function getActorName(actorId) {
switch (parseInt(actorId)) {
case 4:
return "マリナ";
case 9:
return "ノノカ";
case 13:
return "サキ";
case 17:
return "ココナ";
}
return $gameActors.actor(actorId).nameJp();
}
})(Nore || (Nore = {}));
function getTaneoyaNameJa(taneoyaId) {
switch (taneoyaId) {
case TaneoyaId.banzoku:
return $gameActors.actor(30).nameJp();
case TaneoyaId.chosyuhei:
return $gameActors.actor(61).nameJp();
case TaneoyaId.charles:
return $gameActors.actor(7).nameJp();
case TaneoyaId.goblin:
return $gameActors.actor(85).nameJp();
case TaneoyaId.minister:
return $gameActors.actor(13).nameJp();
case TaneoyaId.vagrant:
return $gameActors.actor(93).nameJp();
case TaneoyaId.bar:
return $gameActors.actor(113).nameJp();
case TaneoyaId.oliver:
return $gameActors.actor(21).nameJp();
case TaneoyaId.gray:
return $gameActors.actor(16).nameJp();
case TaneoyaId.loli:
return $gameActors.actor(140).nameJp();
}
return "名称未設定";
}
var Taii;
(function (Taii) {
Taii[(Taii["none"] = -1)] = "none";
Taii[(Taii["seijoui"] = 0)] = "seijoui";
Taii[(Taii["back"] = 1)] = "back";
Taii[(Taii["kijoui"] = 4)] = "kijoui";
Taii[(Taii["hutaana"] = 2)] = "hutaana";
})(Taii || (Taii = {}));
var BARBARIAN_ID2 = 15;
Game_Followers.prototype.setup = function () {
this._data = [];
if ($gameSystem.sarachiActorId() > 0) {
var actor = $gameActors.actor($gameSystem.sarachiActorId());
if (!$gameSwitches.value(324)) {
this._data.push(new Game_Follower(this.findIndex(actor)));
}
this._data.push(new Game_Follower(BARBARIAN_ID2));
this._data.push(new Game_Follower(-1));
return;
}
for (var i = 1; i < $gameParty.battleMembers().length; i++) {
this._data.push(new Game_Follower(i));
}
};
Game_Followers.prototype.findIndex = function (actor) {
return $gameParty.members().indexOf(actor);
};
Game_Follower.prototype.actor = function () {
if (this._memberIndex < 0) {
return $gameActors.actor(10);
}
if (this._memberIndex == BARBARIAN_ID2) {
return $gameActors.actor(BARBARIAN_ID2);
}
if ($gameSwitches.value(101)) {
return $gameParty.members()[this._memberIndex];
} else {
return $gameParty.members()[this._memberIndex];
}
};