Karryn's Prison
This Community Hub is marked as 'Adult Only'. You are seeing this hub because you have set your preferences to allow this content.

Karryn's Prison

147 ratings
猴子也能看懂的JS修改指南
By 905294701
写在前面
首先感谢Remtairy
在市面上垃圾游戏充斥的当下为大家带来了这么一款又色又好玩的作品
本人游戏时长1000小时+认真的解析了游戏的JS代码
对于游戏的玩法与平衡性进行了一些个人化修改使游戏变得更加有趣
现为大家提供相关JS代码修改说明(所有数值都基于困难模式修改请使用困难模式开始游戏)
游戏修改的JS文件全部位于Karryn's Prison\www\js\plugins\目录下
对于小白玩家之后我会提供一个修改好的配置文件打包分享
补充:(部分指南可能有内容字数限制无法提供完整代码之后会同小白包整合发送)

补充吐槽一下:
作为一个发售几年的游戏官方的更新过于频繁了
每次更新完代码又要重新改好麻烦
希望以后月更就好
另外卡琳这么好的IP为什么老整puls+++
可以做个前传卡琳的学院
或者后传卡琳的宫殿什么的
希望官方能够看到

240810更新

进行了英雄模式和荡妇模式通关测试
修复一些代码拼写错误与游戏平衡性调整
具体看指南类容





/s删/15删0pq删2Uy删K0L删K8P删D3j删w8D删_gA删?pw删d=2删233
5
5
4
2
2
   
Award
Favorite
Favorited
Unfavorite
体力与精力加成★
RemtairyResults.js

体力与精力加成
搜索
const RESULTS_STAMINA_PER_PLVL = 0; 每体力等级为卡琳提供X点体力加成
const RESULTS_ENERGY_PER_PLVL = 0; 每精力等级为卡琳提供X点精力加成
const RESULTS_STAMINA_PER_ENDURANCE = 0; //Karryn only ⬅体力与忍耐点数挂钩 每点忍耐为卡琳提升X体力(只对卡琳生效)
等级上限设置★
RemtairyResults.js

等级上限设置(我在个人版本中关闭了等级的提升改为政策升级卡琳的实力以下只为需要的人提供参考)
搜索
////////////
// Param Exp and Lvl
//////////////
修改初始等级上限
//Warden Level Level Cap Level Limit
Game_Actor.prototype.getWardenLevelLimit = function() {
let limit = 0;

把原来镇压层数提升等级替换为等级上限与魅力等级挂钩
if(this.hasThisTitle(TITLE_ID_PURE_WHITE_STAINED_BRIDE)) limit += 99; 拥有魅力称号5上限变为99
else if(this.hasThisTitle(TITLE_ID_ALLURING_WARDEN)) limit += 69; 魅力称号4
else if(this.hasThisTitle(TITLE_ID_ENCHANTING_WARDEN)) limit += 42; 魅力称号3
else if(this.hasThisTitle(TITLE_ID_STUNNING_WARDEN)) limit += 32; 魅力称号2
else if(this.hasThisTitle(TITLE_ID_BEAUTIFUL_WARDEN)) limit += 24; 魅力称号1

关闭了额外的获得称号提升上限
if(this._titlesEquippedOnceRegister) {
//if(this.titleHasBeenEquippedOnceBefore(TITLE_ID_LEVEL_FIVE_BOSS)) limit += 1;
//if(this.titleHasBeenEquippedOnceBefore(TITLE_ID_SEAMAN_CAPTAIN)) limit += 1;
//if(this.titleHasBeenEquippedOnceBefore(TITLE_ID_TECHNICALLY_VIRGIN_BRIDE)) limit += 1;
//if(this.titleHasBeenEquippedOnceBefore(TITLE_ID_PURE_WHITE_STAINED_BRIDE)) limit += 1;
//if(this.titleHasBeenEquippedOnceBefore(TITLE_ID_HOLY_EMPRESS)) limit += 30;
//if(this.titleHasBeenEquippedOnceBefore(TITLE_ID_TRAINER_SHIFTS_DONE)) limit += 1;

}


return limit;

};
1F酒吧打工★
RemtairyKarrynWaitress.js

最小名誉度修改
Game_Party.prototype.getMinimumBarReputation = function() {
let minBarRep = 10;
return minBarRep;
};

打工获得荣誉点数
Game_Party.prototype.postWaitressBattleCleanup = function() {
this.setIsInWaitressBattleFlag(false);
this._showTopRightTimeNumberFlag = false;
$gameSwitches.setValue(SWITCH_TODAY_WAITRESS_BATTLE_ID, true);

if(this._waitressBattle_customerSatisfaction > 0) {
let addRep = 10;
if($gameParty._barReputation <= 12 && Math.randomInt(100) < this._waitressBattle_customerSatisfaction) addRep++;
this.increaseBarReputation(addRep);
$gameSwitches.setValue(SWITCH_TODAY_BAR_REP_UP_ID, true);
}
else if(this._waitressBattle_customerSatisfaction < 0) {
let addRep = 5;
if(Math.randomInt(100) < this._waitressBattle_customerSatisfaction * -1) addRep--;
this.increaseBarReputation(addRep);
}

喝酒就醉
const ALCOHOL_DEAD_DRUNK_THRESHOLD = 0.99;

打工时间设置
Game_Party.prototype.setWaitressBattleTimeLimit = function(minutes) {
if(minutes === 15) {
this._waitressBattle_timeLimit = 900;
this._waitressBattle_baseFatigueGain = 2;
}
else if(minutes === 20) {
this._waitressBattle_timeLimit = 1200;
this._waitressBattle_baseFatigueGain = 3;
}
else if(minutes === 25) {
this._waitressBattle_timeLimit = 1500;
this._waitressBattle_baseFatigueGain = 5;
}
else if(minutes === 30) {
this._waitressBattle_timeLimit = 1800;
this._waitressBattle_baseFatigueGain = 8;
}
else if(minutes === 10) {
this._waitressBattle_timeLimit = 600;
this._waitressBattle_baseFatigueGain = 1;
}
else if(minutes === 45) {
this._waitressBattle_timeLimit = 2700;
this._waitressBattle_baseFatigueGain = 12;
}

//this._waitressBattle_timeLimit = 21;
};
1F兼职接待★
RemtairyKarrynReceptionist.js

最小荣誉值
Game_Party.prototype.getMinimumReceptionistSatisfaction = function() {
let minSat = 10;
return minSat;
};

接待获得荣誉值
Game_Party.prototype.postReceptionistBattleCleanup = function() {
this.setIsInReceptionistBattleFlag(false);
this._showTopRightTimeNumberFlag = false;
$gameSwitches.setValue(SWITCH_TODAY_RECEPTIONIST_BATTLE_ID, true);

$gameTroop._goblins_distanceSlot = [ -1, false, false, false, false, false, false, false ];

if(this._receptionistBattle_visitorSatisfaction_general > 0) {
let addRep = 10;
if($gameParty._receptionistSatisfaction <= 20 && Math.randomInt(100) < this._receptionistBattle_visitorSatisfaction_general) addRep++;
this.increaseReceptionistSatisfaction(addRep);
$gameSwitches.setValue(SWITCH_TODAY_RECEPTIONIST_SATISFACTION_RATE_UP_ID, true);
}
else if(this._receptionistBattle_visitorSatisfaction_general < 0) {
let addRep = 5;
if(Math.randomInt(100) < this._receptionistBattle_visitorSatisfaction_general * -1) addRep--;
this.increaseReceptionistSatisfaction(addRep);
}

if(this._receptionistBattle_visitorSatisfaction_fan > 0) {
let addRep = 10;
if($gameParty._receptionistFame <= 15 && Math.randomInt(100) < this._receptionistBattle_visitorSatisfaction_fan) addRep++;
this.increaseReceptionistFame(addRep);
$gameSwitches.setValue(SWITCH_TODAY_RECEPTIONIST_FAME_UP_ID, true);
}
else if(this._receptionistBattle_visitorSatisfaction_fan < 0) {
this.increaseReceptionistFame(-1);
}

if(this._receptionistBattle_visitorSatisfaction_pervert + this._receptionistBattle_visitorSpottedNaughtyActs > 0) {
let addRep = 10;
if($gameParty._receptionistNotoriety <= 15 && Math.randomInt(100) < this._receptionistBattle_visitorSatisfaction_pervert + this._receptionistBattle_visitorSpottedNaughtyActs) addRep++;
this.increaseReceptionistNotoriety(addRep);
$gameSwitches.setValue(SWITCH_TODAY_RECEPTIONIST_NOTORIETY_UP_ID, true);
}
else if(this._receptionistBattle_visitorSatisfaction_pervert + this._receptionistBattle_visitorSpottedNaughtyActs < 0) {
let addRep = 5;
if(Math.randomInt(100) < (this._receptionistBattle_visitorSatisfaction_pervert + this._receptionistBattle_visitorSpottedNaughtyActs) * -1) addRep--;
this.increaseReceptionistNotoriety(addRep);
}

打工时间修改同酒吧
Game_Party.prototype.setReceptionistBattleTimeLimit = function(minutes) {
if(minutes === 20) {
this._receptionistBattle_timeLimit = 1200;
this._receptionistBattle_baseFatigueGain = 2;
this._receptionistBattle_battleTimeLimitBasedMaxGoblinSpawnCountMultipler = 1;
}
else if(minutes === 30) {
this._receptionistBattle_timeLimit = 1800;
this._receptionistBattle_baseFatigueGain = 4;
this._receptionistBattle_battleTimeLimitBasedMaxGoblinSpawnCountMultipler = 1.1;
}
else if(minutes === 40) {
this._receptionistBattle_timeLimit = 2400;
this._receptionistBattle_baseFatigueGain = 6;
this._receptionistBattle_battleTimeLimitBasedMaxGoblinSpawnCountMultipler = 1.25;
}
else if(minutes === 50) {
this._receptionistBattle_timeLimit = 3000;
this._receptionistBattle_baseFatigueGain = 8;
this._receptionistBattle_battleTimeLimitBasedMaxGoblinSpawnCountMultipler = 1.5;
}
else if(minutes === 60) {
this._receptionistBattle_timeLimit = 3600;
this._receptionistBattle_baseFatigueGain = 12;
this._receptionistBattle_battleTimeLimitBasedMaxGoblinSpawnCountMultipler = 1.75;
}
else if(minutes === 15) {
this._receptionistBattle_timeLimit = 900;
this._receptionistBattle_baseFatigueGain = 1;
this._receptionistBattle_battleTimeLimitBasedMaxGoblinSpawnCountMultipler = 1;
}
else if(minutes === 10) {
this._receptionistBattle_timeLimit = 600;
this._receptionistBattle_baseFatigueGain = 1;
this._receptionistBattle_battleTimeLimitBasedMaxGoblinSpawnCountMultipler = 1;
}

//debugging
//this._receptionistBattle_timeLimit = 300;
};

出现害羞访客的概率 基础值是10,也就是10%
const VISITOR_WANTED_PERV_PROMOTE_CHANCE_INC = 10;

访客发现骚扰几率
const RECEPTIONIST_CHANCE_OF_VISITOR_A_NOTICING = 12;
const RECEPTIONIST_CHANCE_OF_VISITOR_B_NOTICING = 6;
const RECEPTIONIST_CHANCE_OF_VISITOR_C_NOTICING = 2;
const RECEPTIONIST_CHANCE_OF_VISITOR_D_NOTICING = 1;
const RECEPTIONIST_CHANCE_OF_FAN_NOTICING_MULTI = 2;

最小粉丝值最小绯闻值
const VAR_MIN_RECEPTIONIST_SATISFACTION = 5;
const VAR_MIN_RECEPTIONIST_FAME = 10;
const VAR_MIN_RECEPTIONIST_NOTORIETY = 20;

哥布林前进概率
let chanceToMoveForward = 100;
let chanceToMoveBackward = 0;

处理文件页数与探访时间限制
const VISITOR_MIN_PAGES = 1;
const VISITOR_MAX_PAGES = 1;
const VISITOR_BASE_MIN_TIME = 3;
const VISITOR_BASE_MAX_TIME = 3;

如果身上有玩具不拿下玩具
搜索this.removeAllToys();
//this.removeAllToys(); 在前面加//关闭
官方没有制作贴图但是敌人可以正常使用玩具技能
2F厕所光荣洞★
RemtairyKarrynGlory.js
2F厕所光荣洞

厕所最小荣誉
Game_Party.prototype.getMinimumGloryHoleReputation = function() {
let minGloryRep = 10;

return minGloryRep;
};

获得荣誉点数
Game_Party.prototype.postGloryBattleCleanup = function() {
this.setIsInGloryBattleFlag(false);
$gameSwitches.setValue(SWITCH_TODAY_GLORYHOLE_BATTLE_ID, true);

if(this._gloryBattle_guestSatisfaction > 0) {
let addRep = 10;
if(this._gloryReputation <= 10 && Math.randomInt(100) < this._gloryBattle_guestSatisfaction) addRep++;
this.increaseGloryReputation(addRep);
//$gameSwitches.setValue(SWITCH_TODAY_BAR_REP_UP_ID, true);
}
else if(this._gloryBattle_guestSatisfaction < 0) {
let addRep = 5;
if(Math.randomInt(100) < this._gloryBattle_guestSatisfaction * -1) addRep--;
this.increaseGloryReputation(addRep);
}

解除玩具使用限制
Game_Actor.prototype.showEval_gloryMbClitToy = function(isLeftHand, isRightHand) {
let hasClitToy = this.isStateAffected(STATE_GLORY_PINK_ROTOR_ID) || this.isWearingClitToy();
if(!hasClitToy || this.♥♥♥♥♥Desire < this.clitToy♥♥♥♥♥DesireRequirement())
return true;
if(this.justOrgasmed())
return false;
return this.isInToiletSittingPose() || (isLeftHand && this.isInToiletSitLeftPose()) || (isRightHand && this.isInToiletSitRightPose());
};
Game_Actor.prototype.showEval_gloryMb♥♥♥♥♥Toy = function(isLeftHand, isRightHand) {
let has♥♥♥♥♥Toy = this.isStateAffected(STATE_GLORY_PENIS_DILDO_ID) || this.isWearing♥♥♥♥♥Toy();
if(this.isVirgin())
return true;
if(!has♥♥♥♥♥Toy || this.♥♥♥♥♥Desire < this.♥♥♥♥♥Toy♥♥♥♥♥DesireRequirement() || !this.isWet)
return true;
if(this.justOrgasmed())
return false;
return this.isInToiletSittingPose();
};
Game_Actor.prototype.showEval_gloryMbAnalToy = function(isLeftHand, isRightHand) {
let hasAnalToy = this.isStateAffected(STATE_GLORY_ANAL_BEADS_ID) || this.isWearingAnalToy();
if(!hasAnalToy || this.buttDesire < this.analPettingButtDesireRequirement())
return true;
if(this.justOrgasmed())
return false;
return this.isInToiletSittingPose();
};

添加处女也可以使用假鸡鸡
let toyFactor = factorBase * factorMultipler;
let spawningToysArray = [ CLIT_ID, ANAL_ID, ♥♥♥♥♥_ID ];
let possibleToysArray = [ CLIT_ID, ANAL_ID, ♥♥♥♥♥_ID ];
//if(!this.isVirgin()) possibleToysArray.push(♥♥♥♥♥_ID);
3F脱衣舞★
RemtairyKarrynStripper.js

最小荣誉点数设定
Game_Party.prototype.getMinimumStripClubReputation = function() {
let minStripClubRep = 10;

return minStripClubRep;
};

获得荣誉点数
Game_Party.prototype.postStripperBattleCleanup = function() {
this.setIsInStripperBattleFlag(false);
this._showTopRightTimeNumberFlag = false;
$gameSwitches.setValue(SWITCH_TODAY_STRIPPER_BATTLE_ID, true);
$gameSwitches.setValue(SWITCH_AFTER_FIRST_STRIP_ID, true);

this._stripperBattle_intermissionPhase = false;

if(this._stripperBattle_patronSatisfaction > 0) {
let addRep = 10;
if($gameParty._stripClubReputation <= 20 && Math.randomInt(100) < this._stripperBattle_patronSatisfaction) addRep++;
this.increaseStripClubReputation(addRep);
$gameSwitches.setValue(SWITCH_TODAY_STRIPPER_REP_UP_ID, true);
}
else if(this._stripperBattle_patronSatisfaction < 0) {
let addRep = 5;
if(Math.randomInt(100) < this._stripperBattle_patronSatisfaction * -1) addRep--;
this.increaseStripClubReputation(addRep);
this._prisonLevelThreeRiotBuildup += $gameParty._stripClubReputation;
}

脱衣舞工作时间
Game_Party.prototype.stripperBattle_advanceTimeBySeconds = function(value) {
this._stripperBattle_currentTimeInSeconds += value;
};

Game_Party.prototype.setStripperBattleTimeLimit = function(minutes) {
if(minutes === 8) {
this._stripperBattle_timeLimit = 480;
this._stripperBattle_baseFatigueGain = 2;
this._stripperBattle_battleTimeLimitBasedMaxSpawnMultipler = 1;
}
else if(minutes === 10) {
this._stripperBattle_timeLimit = 600;
this._stripperBattle_baseFatigueGain = 4;
this._stripperBattle_battleTimeLimitBasedMaxSpawnMultipler = 1.1;
}
else if(minutes === 12) {
this._stripperBattle_timeLimit = 720;
this._stripperBattle_baseFatigueGain = 6;
this._stripperBattle_battleTimeLimitBasedMaxSpawnMultipler = 1.25;
}
else if(minutes === 16) {
this._stripperBattle_timeLimit = 960;
this._stripperBattle_baseFatigueGain = 8;
this._stripperBattle_battleTimeLimitBasedMaxSpawnMultipler = 1.4;
}
else if(minutes === 20) {
this._stripperBattle_timeLimit = 1200;
this._stripperBattle_baseFatigueGain = 10;
this._stripperBattle_battleTimeLimitBasedMaxSpawnMultipler = 1.55;
}
else if(minutes === 24) {
this._stripperBattle_timeLimit = 1440;
this._stripperBattle_baseFatigueGain = 12;
this._stripperBattle_battleTimeLimitBasedMaxSpawnMultipler = 1.7;
}

};

VIP房间进入改为只要有1个客人勃起就能进
Game_Actor.prototype.customReq_stripperInviteVIP = function() {
return $gameTroop.stripperBattle_validPatronsToInviteForVIP().length > 0;
};

如果身上有玩具不拿下玩具
搜索this.removeAllToys();
//this.removeAllToys(); 在前面加//关闭
官方没有制作贴图但是敌人可以正常使用玩具技能
3F健身房★
RemtairyKarrynTrainer.js
3F健身房

最小荣誉值
Game_Party.prototype.getMinimumGymReputation = function() {
let minRep = 10;
return minRep;
};

获得荣誉点数
Game_Party.prototype.postTrainerBattleCleanup = function() {
this.setIsInTrainerBattleFlag(false);
this._showTopRightTimeNumberFlag = false;
$gameSwitches.setValue(SWITCH_TODAY_TRAINER_BATTLE_ID, true);


if(this._trainerBattle_gymGoerSatisfaction > 0) {
let addRep = 10;
if($gameParty._gymReputation <= 20 && Math.randomInt(100) < this._trainerBattle_gymGoerSatisfaction) addRep++;
this.increaseGymReputation(addRep);
$gameSwitches.setValue(SWITCH_TODAY_TRAINER_REP_UP_ID, true);
}
else if(this._trainerBattle_gymGoerSatisfaction < 0) {
let addRep = 5;
if(Math.randomInt(100) < this._trainerBattle_gymGoerSatisfaction * -1) addRep--;
this.increaseGymReputation(addRep);
}

指导健身时间
Game_Party.prototype.setTrainerBattleTimeLimit = function(minutes) {
if(minutes === 15) {
this._trainerBattle_timeLimit = 900;
this._trainerBattle_baseFatigueGain = 1;
this._trainerBattle_battleTimeLimitBasedMaxSpawnMultipler = 1;
}
else if(minutes === 20) {
this._trainerBattle_timeLimit = 1200;
this._trainerBattle_baseFatigueGain = 1;
this._trainerBattle_battleTimeLimitBasedMaxSpawnMultipler = 1.1;
}
else if(minutes === 30) {
this._trainerBattle_timeLimit = 1800;
this._trainerBattle_baseFatigueGain = 2;
this._trainerBattle_battleTimeLimitBasedMaxSpawnMultipler = 1.25;
}
else if(minutes === 45) {
this._trainerBattle_timeLimit = 2700;
this._trainerBattle_baseFatigueGain = 3;
this._trainerBattle_battleTimeLimitBasedMaxSpawnMultipler = 1.5;
}
else if(minutes === 60) {
this._trainerBattle_timeLimit = 3600;
this._trainerBattle_baseFatigueGain = 4;
this._trainerBattle_battleTimeLimitBasedMaxSpawnMultipler = 2;
}
};

如果身上有玩具不拿下玩具
搜索this.removeAllToys();
//this.removeAllToys(); 在前面加//关闭
官方没有制作贴图但是敌人可以正常使用玩具技能
特殊修改★
关闭自动存档
1.
RemtairyPrison.js

Game_Party.prototype.canOpenSaveMenu = function() {
return this.easyMode() || $gameSwitches.value(SWITCH_TEST_MODE_ID);
改成
Game_Party.prototype.canOpenSaveMenu = function() {
return this.easyMode()|| this.normalMode()|| this.hardMode()|| $gameSwitches.value(SWITCH_TEST_MODE_ID) || (Prison.freeMode() && ConfigManager.cheatDisableAutosave);
};

2.
YEP_X_Autosave.js

最后一行SceneManager前面加上//
StorageManager.performAutosave = function() {
if ($gameMap.mapId() <= 0) return;
if ($gameTemp._autosaveNewGame) return;
if (!$gameSystem.canAutosave()) return;
//SceneManager._scene.performAutosave();

—————————————————————————————————————————————————————

作弊在囚犯模式也能生效

RemtairyPrison.js

Game_Party.prototype.cheatMode = function() {
if(this.isEndlessBattle()) return ture; ⬅在无尽模式中也开启作弊false改ture
if($gameParty.isTutorialBattle()) return false; ⬅这个是开局教学模式作弊开关 不要修改会报错
return this.freeMode() || this.hardMode(); ⬅this.easyMode();改成this.hardMode();
};

—————————————————————————————————————————————————————

开启调试模式

Karryn's Prison文件夹下用记事本程序打开package.json
找到"main": "www/index.html",
改为"main": "www/index.html?test",
保存后打开游戏按F9开启调试模式
通缉犯修改★
RemtairyWanted.js

BOSS以外的敌人不会成为通缉犯
Wanted_Enemy.prototype.enemyTypeIsNotForMorphing = function() {
return !this.enemyTypeIsBoss();
};


提升遇到通缉几率
var Remtairy = Remtairy || {};
Remtairy.Wanted = Remtairy.Wanted || {};

const WANTED_APPEARANCE_BASE_CHANCE = 1
const WANTED_APPEARANCE_ADDED_CHANCE = 1;

const WANTED_APPEARANCE_BASE_CHANCE_BY_LENGTH = 1;
const WANTED_APPEARANCE_ADDED_CHANCE_BY_LENGTH = 1;

const WANTED_CHANCE_MULTIPLER_RIOT_BATTLE = 100;
const WANTED_CHANCE_MULTIPLER_RECEPTIONIST_BATTLE = 100;
const WANTED_CHANCE_MULTIPLER_GLORY_BATTLE = 100;

const WANTED_MINIMUM_DAYS_SINCE_DEFEATED = 1;
const WANTED_MINIMUM_DAYS_SINCE_APPEARANCE = 1;
const WANTED_LVL_INCREASE_BY_DEFEAT_BASE = 1;
const WANTED_LVL_INCREASE_BY_DEFEAT_MULTI_BASE = 1;
const WANTED_LVL_INCREASE_BY_DEFEAT_MULTI_REQ = 1;

const WANTED_POINTS_NEEDED_PER_TYPE = 450;
const WANTED_POINTS_NEEDED_PER_TYPE_OVER_ONE = 2000;
const WANTED_POINTS_NEEDED_PER_TYPE_OVER_THREE = 10000;
const WANTED_POINTS_NEEDED_PER_TOTAL_WANTED_SIZE = 1000;
const WANTED_POINTS_BASE_REQ = 150;
const WANTED_POINTS_STAMINA_DMG_MULTIPLER = 10;
const WANTED_POINTS_PLEASURE_DMG_MULTIPLER = 10;
const WANTED_PER_TYPE_LIMIT = 1;
穿高跟习得踢鸡与直接学会轻踢★
RemtairyCombat.js

穿高跟习得踢鸡
///////
// ♥♥♥♥ Kick
///////

Game_Actor.prototype.showEval_karrynCockKick = function() {
return this.isEquippingThisAccessory(MISC_HIGHHEELS_ID);
};

直接学会轻踢
///////
// Light Kick
///////

Game_Actor.prototype.showEval_karrynLightKick = function() {
return true;
};
更低的政策价格与首饰价格★
RemtairyEdicts.js

///////
// Edict Gold Cost
// Edict Cost
////////////////

Game_Actor.prototype.modifiedEdictGoldCost = function(originalCost, skillId) {
return Math.round(originalCost * this.getEdictGoldRate(skillId));
};

Game_Actor.prototype.getEdictGoldRate = function(skillId) {
let rate = 0.5;

if(this.hasEdict(EDICT_REPAIR_RESEARCH)) rate += 0.2;

if(this.hasEdict(EDICT_PARTIALLY_RESTORE_BUREAUCRACY)) rate += 0.3;

rate *= this.titlesEdictCostRate(skillId);

if(this.isEquippingThisAccessory(NECKLACE_JADE_ID)) rate *= 1.2;

if(skillId) {
if($dataSkills[skillId].hasTag(TAG_RESEARCH_EDICT))
rate *= this.getResearchEdictGoldRate();
else if($dataSkills[skillId].hasTag(TAG_INSURANCE_BUY_EDICT))
rate *= this.getInsuranceBuyEdictGoldRate();
else if($dataSkills[skillId].hasTag(TAG_ACCESSORY_EDICT))
rate *= this.getAccessoryEdictGoldRate();
else if($dataSkills[skillId].hasTag(TAG_STR_TRAINING_EDICT) || $dataSkills[skillId].hasTag(TAG_DEX_TRAINING_EDICT) || $dataSkills[skillId].hasTag(TAG_AGI_TRAINING_EDICT) || $dataSkills[skillId].hasTag(TAG_MIND_TRAINING_EDICT) || $dataSkills[skillId].hasTag(TAG_END_TRAINING_EDICT))
rate *= this.getStatTrainingEdictGoldRate();
else if(skillId >= EDICT_STAMINA_TRAINING_ONE && skillId <= EDICT_ENERGY_TRAINING_TWO)
rate *= this.getStatTrainingEdictGoldRate();
}

return rate;
};

Game_Actor.prototype.getResearchEdictGoldRate = function() {
let rate = 1;

if(this.hasEdict(EDICT_APPLY_FOR_RESEARCH_GRANTS)) {
rate *= 0.9;
}

return rate;
};

Game_Actor.prototype.getInsuranceBuyEdictGoldRate = function() {
let rate = 1;

if(Prison.prisonLevelOneIsRioting() || Prison.prisonLevelTwoIsRioting() || Prison.prisonLevelThreeIsRioting() || Prison.prisonLevelFourIsRioting() || Prison.prisonLevelFiveIsRioting()) {
rate = 3;
}
else if($gameParty._daysSinceLastPrisonRiot <= 0) {
rate = 1.5;
}
else if($gameParty._daysSinceLastPrisonRiot <= 1) {
rate = 1.25;
}
else if($gameParty._daysSinceLastPrisonRiot <= 2) {
rate = 1.1;
}

return rate;
};

Game_Actor.prototype.getAccessoryEdictGoldRate = function() {
let rate = 1;

if(this.hasEdict(EDICT_RESEARCH_ACCESSORY_DEAL)) {
rate *= 0.4;
}

return rate;
};

Game_Actor.prototype.getStatTrainingEdictGoldRate = function() {
let rate = 1;

if(this.hasEdict(EDICT_RESEARCH_EXPERT_TRAINING_TECH)) {
rate *= 0.4;
}
else if(this.hasEdict(EDICT_RESEARCH_ADVANCED_TRAINING_TECH)) {
rate *= 0.7;
}

return rate;
};
睡眠质量平衡★
RemtairyEdicts.js

删掉了随机变量
现在卡琳只有睡最高级的大床才会有最高的睡眠质量

// Sleep quality
Game_Actor.prototype.edictsSleepQuality = function() {
let sleepLvl = -2;

let mapId = $gameMap._mapId;

if(mapId === MAP_ID_KARRYN_OFFICE) {
if(this.hasEdict(EDICT_OFFICE_BED_UPGRADE_THREE)) sleepLvl += 2;
else if(this.hasEdict(EDICT_OFFICE_BED_UPGRADE_TWO)) sleepLvl += 1;
else if(this.hasEdict(EDICT_OFFICE_BED_UPGRADE_ONE)) sleepLvl += 0;

if(this.hasEdict(EDICT_OFFICE_AUTO_ELECTRONIC_LOCK) && !$gameSwitches.value(SWITCH_OFFICE_LOCK_IS_OFF))
sleepLvl += 1;
}
else if(mapId === MAP_ID_LVL1_GUARD_STATION || mapId === MAP_ID_LVL2_GUARD_STATION || mapId === MAP_ID_LVL3_GUARD_STATION || mapId === MAP_ID_LVL4_GUARD_STATION) {
if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_GUARD_THREE_ID)) sleepLvl += 2;
else if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_GUARD_TWO_ID)) sleepLvl += 1;
else if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_GUARD_ONE_ID)) sleepLvl += 0;

if(this.hasEdict(EDICT_RESEARCH_STAFF_SLEEP_PERK)) sleepLvl += 1;
}
else if(mapId === MAP_ID_BAR_STORAGE) {
if(this.hasPassive(PASSIVE_BLOWBANG_COUNT_THREE_ID)) sleepLvl += 1;
}
else if(mapId === MAP_ID_BATHROOM_BROKEN || mapId === MAP_ID_BATHROOM_FIXED) {
if(this.hasPassive(PASSIVE_URINAL_COUNT_TWO_ID)) sleepLvl += 1;
}
else if(mapId === MAP_ID_LVL3_DEFEAT_SOLITARY_CELL) {
if(this.hasPassive(PASSIVE_TIED_SEX_COUNT_THREE_ID)) sleepLvl += 1;
}
else if(mapId === MAP_ID_LVL4_ABANDONED_AREA) {
if(this.hasPassive(PASSIVE_PILLORY_SEX_COUNT_THREE_ID)) sleepLvl += 1;
}

return sleepLvl;
};
特殊训练加成★
RemtairyEdicts.js


原版只能选择2个训练加成我解除了这个限制
并且对卡琳的训练水平进行了强化以保证可以打过后期敌人
/////////
// Training Edicts
////////////

Game_Actor.prototype.karrynTrainingEdictsCount_Strength = function() {
let count = 0;

if(this.hasEdict(EDICT_STRENGTH_TRAINING_FIVE)) count = 30;
else if(this.hasEdict(EDICT_STRENGTH_TRAINING_FOUR)) count = 24;
else if(this.hasEdict(EDICT_STRENGTH_TRAINING_THREE)) count = 18;
else if(this.hasEdict(EDICT_STRENGTH_TRAINING_TWO)) count = 12;
else if(this.hasEdict(EDICT_STRENGTH_TRAINING_ONE)) count = 6;

if(this.hasEdict(EDICT_STRENGTH_SPECIALIZATION)) count += 30;

return count;
};

Game_Actor.prototype.karrynTrainingEdictsCount_Dexterity = function() {
let count = 0;

if(this.hasEdict(EDICT_DEXTERITY_TRAINING_FIVE)) count = 40;
else if(this.hasEdict(EDICT_DEXTERITY_TRAINING_FOUR)) count = 32;
else if(this.hasEdict(EDICT_DEXTERITY_TRAINING_THREE)) count = 24;
else if(this.hasEdict(EDICT_DEXTERITY_TRAINING_TWO)) count = 16;
else if(this.hasEdict(EDICT_DEXTERITY_TRAINING_ONE)) count = 8;

if(this.hasEdict(EDICT_DEXTERITY_SPECIALIZATION)) count += 40;

return count;
};

Game_Actor.prototype.karrynTrainingEdictsCount_Agility = function() {
let count = 0;

if(this.hasEdict(EDICT_AGILITY_TRAINING_FIVE)) count = 50;
else if(this.hasEdict(EDICT_AGILITY_TRAINING_FOUR)) count = 40;
else if(this.hasEdict(EDICT_AGILITY_TRAINING_THREE)) count = 30;
else if(this.hasEdict(EDICT_AGILITY_TRAINING_TWO)) count = 20;
else if(this.hasEdict(EDICT_AGILITY_TRAINING_ONE)) count = 10;

if(this.hasEdict(EDICT_AGILITY_SPECIALIZATION)) count += 50;

return count;
};

Game_Actor.prototype.karrynTrainingEdictsCount_Endurance = function() {
let count = 0;

if(this.hasEdict(EDICT_ENDURANCE_TRAINING_FIVE)) count = 20;
else if(this.hasEdict(EDICT_ENDURANCE_TRAINING_FOUR)) count = 16;
else if(this.hasEdict(EDICT_ENDURANCE_TRAINING_THREE)) count = 12;
else if(this.hasEdict(EDICT_ENDURANCE_TRAINING_TWO)) count = 8;
else if(this.hasEdict(EDICT_ENDURANCE_TRAINING_ONE)) count = 4;

if(this.hasEdict(EDICT_ENDURANCE_SPECIALIZATION)) count += 20;

return count;
};

Game_Actor.prototype.karrynTrainingEdictsCount_Mind = function() {
let count = 0;

if(this.hasEdict(EDICT_MIND_TRAINING_FIVE)) count = 10;
else if(this.hasEdict(EDICT_MIND_TRAINING_FOUR)) count = 8;
else if(this.hasEdict(EDICT_MIND_TRAINING_THREE)) count = 6;
else if(this.hasEdict(EDICT_MIND_TRAINING_TWO)) count = 4;
else if(this.hasEdict(EDICT_MIND_TRAINING_ONE)) count = 2;

if(this.hasEdict(EDICT_MIND_SPECIALIZATION)) count += 10;

return count;
};

Game_Actor.prototype.trainingSpecializationCount = function() {
let count = 0;

//if(this.hasEdict(EDICT_CHARM_SPECIALIZATION)) count++;
//if(this.hasEdict(EDICT_STRENGTH_SPECIALIZATION)) count++;
//if(this.hasEdict(EDICT_DEXTERITY_SPECIALIZATION)) count++;
//if(this.hasEdict(EDICT_AGILITY_SPECIALIZATION)) count++;
//if(this.hasEdict(EDICT_ENDURANCE_SPECIALIZATION)) count++;
//if(this.hasEdict(EDICT_MIND_SPECIALIZATION)) count++;

return count;
};
每过一层的补贴金额修改★
RemtairyEdicts.js

对镇压层数的金钱奖励做了平衡
/////////
// Max Subsidies

Game_Actor.prototype.edictsSubsidies_Flat = function() {
let value = 0;

if(this.hasEdict(EDICT_LEVEL_FOUR_SUBJUGATED)) value += 100;
if(this.hasEdict(EDICT_LEVEL_THREE_SUBJUGATED)) value += 200;
if(this.hasEdict(EDICT_LEVEL_TWO_SUBJUGATED)) value += 300;
if(this.hasEdict(EDICT_LEVEL_ONE_SUBJUGATED)) value += 400;
镇压暴动的金额修改★
RemtairyEdicts.js

增加了当等级5被镇压时也需要额为支付治安经费平衡后期收入过多
if(Karryn.hasEdict(EDICT_RIOT_SUPPRESSING_TRAINING_FOR_GUARDS)) {
if(Prison.prisonLevelOneIsSubjugated()) expense += 250;
if(Prison.prisonLevelTwoIsSubjugated()) expense += 250;
if(Prison.prisonLevelThreeIsSubjugated()) expense += 250;
if(Prison.prisonLevelFourIsSubjugated()) expense += 250;
if(Prison.prisonLevelFiveIsSubjugated()) expense += 1000;
}
卡琳自我安慰时被入侵几率修改★
RemtairyEdicts.js

主要改动是政策\治安度\卡琳高潮的次数会影响入侵率
///////////////
// Invasion Chance
///////////////

Game_Actor.prototype.getInvasionChance = function() {
let chance = 0;

if(Prison.currentlyOutsidePrison()) chance = this.getInvasionChance_Outside();
else if(Prison.currentlyPrisonLevelOne()) chance = this.getInvasionChance_LevelOne();
else if(Prison.currentlyPrisonLevelTwo()) chance = this.getInvasionChance_LevelTwo();
else if(Prison.currentlyPrisonLevelThree()) chance = this.getInvasionChance_LevelThree();
else if(Prison.currentlyPrisonLevelFour()) chance = this.getInvasionChance_LevelFour();
else if(Prison.currentlyPrisonLevelFive()) chance = this.getInvasionChance_LevelFive();

if(Prison.easyMode()) chance *= 1;
else if(Prison.hardMode()) chance *= 1;

return Math.max(Math.round(chance), 0);
};

Game_Actor.prototype.getInvasionChance_Outside = function() {
let chance = 0;
chance += Prison.guardAggression * 1;

if($gameParty.HighOrder()) chance -= 50;
else if($gameParty.MedOrder()) chance += 0;
else if($gameParty.LowOrder()) chance += 50;
else if($gameParty.VeryLowOrder()) chance += 100;
else if($gameParty.NearNoOrder()) chance += 200;

if(this._tempRecordOrgasmCount >= 10) chance += 100;
else if(this._tempRecordOrgasmCount >= 9) chance += 90;
else if(this._tempRecordOrgasmCount >= 8) chance += 80;
else if(this._tempRecordOrgasmCount >= 7) chance += 70;
else if(this._tempRecordOrgasmCount >= 6) chance += 60;
else if(this._tempRecordOrgasmCount >= 5) chance += 50;
else if(this._tempRecordOrgasmCount >= 4) chance += 40;
else if(this._tempRecordOrgasmCount >= 3) chance += 30;
else if(this._tempRecordOrgasmCount >= 2) chance += 20;
else if(this._tempRecordOrgasmCount >= 1) chance += 10;

if(this.hasEdict(EDICT_OFFICE_VOLUNTEER_GUARDS)) chance += 100;
else if(this.hasEdict(EDICT_OFFICE_INMATE_GUARDS)) chance += 50;
else if(this.hasEdict(EDICT_OFFICE_PRISON_GUARDS)) chance += 0;
else if(this.hasEdict(EDICT_OFFICE_PRIVATE_GUARDS)) chance -= 100;

if($gameSwitches.value(SWITCH_OFFICE_LOCK_IS_OFF)) chance -= 0;
else if(this.hasEdict(EDICT_OFFICE_AUTO_ELECTRONIC_LOCK)) chance -= 100;
else if(this.hasEdict(EDICT_OFFICE_HEAVY_DUTY_LOCK)) chance -= 50;

if(this.hasEdict(EDICT_OFFICE_OUTSIDE_CAMERA)) chance -= 50;

if(this.hasEdict(EDICT_RESEARCH_STAFF_SLEEP_PERK)) chance += 50;

if(this.hasEdict(EDICT_GYM_POLICY_SHORTEN)) chance += 50;
if(this.hasEdict(EDICT_GYM_POLICY_EXTENDED)) chance -= 50;

if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_TOTAL_FIVE_ID)) chance -= 100;

return chance;
};

Game_Actor.prototype.getInvasionChance_LevelOne = function() {
let chance = 0;

if($gameParty.HighOrder()) chance -= 50;
else if($gameParty.MedOrder()) chance += 0;
else if($gameParty.LowOrder()) chance += 50;
else if($gameParty.VeryLowOrder()) chance += 100;
else if($gameParty.NearNoOrder()) chance += 200;

if(this._tempRecordOrgasmCount >= 10) chance += 100;
else if(this._tempRecordOrgasmCount >= 9) chance += 90;
else if(this._tempRecordOrgasmCount >= 8) chance += 80;
else if(this._tempRecordOrgasmCount >= 7) chance += 70;
else if(this._tempRecordOrgasmCount >= 6) chance += 60;
else if(this._tempRecordOrgasmCount >= 5) chance += 50;
else if(this._tempRecordOrgasmCount >= 4) chance += 40;
else if(this._tempRecordOrgasmCount >= 3) chance += 30;
else if(this._tempRecordOrgasmCount >= 2) chance += 20;
else if(this._tempRecordOrgasmCount >= 1) chance += 10;

if(!this.hasThisTitle(TITLE_ID_LEVEL_ONE_BOSS)) chance += 100;

if(this.hasEdict(EDICT_RESEARCH_NEW_LOCKS)) chance -= 50;
if(this.hasEdict(EDICT_RESEARCH_ISSUE_CURFEW_PASS)) chance += 50;

if(this.hasEdict(EDICT_GYM_POLICY_SHORTEN)) chance += 50;
if(this.hasEdict(EDICT_GYM_POLICY_EXTENDED)) chance -= 50;

return chance;
};

Game_Actor.prototype.getInvasionChance_LevelTwo = function() {
let chance = 0;

if($gameParty.HighOrder()) chance -= 50;
else if($gameParty.MedOrder()) chance += 0;
else if($gameParty.LowOrder()) chance += 50;
else if($gameParty.VeryLowOrder()) chance += 100;
else if($gameParty.NearNoOrder()) chance += 200;

if(this._tempRecordOrgasmCount >= 10) chance += 100;
else if(this._tempRecordOrgasmCount >= 9) chance += 90;
else if(this._tempRecordOrgasmCount >= 8) chance += 80;
else if(this._tempRecordOrgasmCount >= 7) chance += 70;
else if(this._tempRecordOrgasmCount >= 6) chance += 60;
else if(this._tempRecordOrgasmCount >= 5) chance += 50;
else if(this._tempRecordOrgasmCount >= 4) chance += 40;
else if(this._tempRecordOrgasmCount >= 3) chance += 30;
else if(this._tempRecordOrgasmCount >= 2) chance += 20;
else if(this._tempRecordOrgasmCount >= 1) chance += 10;

if(!this.hasThisTitle(TITLE_ID_LEVEL_TWO_BOSS)) chance += 100;

if(this.hasEdict(EDICT_RESEARCH_NEW_LOCKS)) chance -= 50;
if(this.hasEdict(EDICT_RESEARCH_ISSUE_CURFEW_PASS)) chance += 50;

if(this.hasEdict(EDICT_GYM_POLICY_SHORTEN)) chance += 50;
if(this.hasEdict(EDICT_GYM_POLICY_EXTENDED)) chance -= 50;

return chance;
};

Game_Actor.prototype.getInvasionChance_LevelThree = function() {
if($gameParty.isDemoVersion()) return 0;

let chance = 0;

if($gameParty.HighOrder()) chance -= 50;
else if($gameParty.MedOrder()) chance += 0;
else if($gameParty.LowOrder()) chance += 50;
else if($gameParty.VeryLowOrder()) chance += 100;
else if($gameParty.NearNoOrder()) chance += 200;

if(this._tempRecordOrgasmCount >= 10) chance += 100;
else if(this._tempRecordOrgasmCount >= 9) chance += 90;
else if(this._tempRecordOrgasmCount >= 8) chance += 80;
else if(this._tempRecordOrgasmCount >= 7) chance += 70;
else if(this._tempRecordOrgasmCount >= 6) chance += 60;
else if(this._tempRecordOrgasmCount >= 5) chance += 50;
else if(this._tempRecordOrgasmCount >= 4) chance += 40;
else if(this._tempRecordOrgasmCount >= 3) chance += 30;
else if(this._tempRecordOrgasmCount >= 2) chance += 20;
else if(this._tempRecordOrgasmCount >= 1) chance += 10;

if(!this.hasThisTitle(TITLE_ID_LEVEL_THREE_BOSS)) chance += 100;

if(this.hasEdict(EDICT_RESEARCH_NEW_LOCKS)) chance -= 50;
if(this.hasEdict(EDICT_RESEARCH_ISSUE_CURFEW_PASS)) chance += 50;

if(this.hasEdict(EDICT_GYM_POLICY_SHORTEN)) chance += 50;
if(this.hasEdict(EDICT_GYM_POLICY_EXTENDED)) chance -= 50;

return chance;
};

Game_Actor.prototype.getInvasionChance_LevelFour = function() {
if($gameParty.isDemoVersion()) return 0;

let chance = 0;

if($gameParty.HighOrder()) chance -= 50;
else if($gameParty.MedOrder()) chance += 0;
else if($gameParty.LowOrder()) chance += 50;
else if($gameParty.VeryLowOrder()) chance += 100;
else if($gameParty.NearNoOrder()) chance += 200;

if(this._tempRecordOrgasmCount >= 10) chance += 100;
else if(this._tempRecordOrgasmCount >= 9) chance += 90;
else if(this._tempRecordOrgasmCount >= 8) chance += 80;
else if(this._tempRecordOrgasmCount >= 7) chance += 70;
else if(this._tempRecordOrgasmCount >= 6) chance += 60;
else if(this._tempRecordOrgasmCount >= 5) chance += 50;
else if(this._tempRecordOrgasmCount >= 4) chance += 40;
else if(this._tempRecordOrgasmCount >= 3) chance += 30;
else if(this._tempRecordOrgasmCount >= 2) chance += 20;
else if(this._tempRecordOrgasmCount >= 1) chance += 10;

if(!this.hasThisTitle(TITLE_ID_LEVEL_FOUR_BOSS)) chance += 100;

if(this.hasEdict(EDICT_RESEARCH_NEW_LOCKS)) chance -= 50;
if(this.hasEdict(EDICT_RESEARCH_ISSUE_CURFEW_PASS)) chance += 50;

if(this.hasEdict(EDICT_GYM_POLICY_SHORTEN)) chance += 50;
if(this.hasEdict(EDICT_GYM_POLICY_EXTENDED)) chance -= 50;

return Math.min(chance, 100);
};

Game_Actor.prototype.getInvasionChance_LevelFive = function() {
let chance = 0;
卡琳开局学会训练相关的技能★
RemtairyEdicts.js

为卡琳点开所有训练相关技能
这样政策点只要考虑监狱运行相关就可以了
//Starting Edicts
Game_Actor.prototype.setupStartingEdicts = function() {
this.learnSkill(EDICT_STRENGTH_TRAINING_ONE);
this.learnSkill(EDICT_STRENGTH_TRAINING_TWO);
this.learnSkill(EDICT_STRENGTH_TRAINING_THREE);
this.learnSkill(EDICT_STRENGTH_TRAINING_FOUR);
this.learnSkill(EDICT_STRENGTH_TRAINING_FIVE);
this.learnSkill(EDICT_SLAM_TRAINING_ONE);
this.learnSkill(EDICT_SLAM_TRAINING_TWO);
this.learnSkill(EDICT_SLAM_TRAINING_THREE);
this.learnSkill(EDICT_STRIKE_TRAINING_ONE);
this.learnSkill(EDICT_STRIKE_TRAINING_TWO);
this.learnSkill(EDICT_STRIKE_TRAINING_THREE);
this.learnSkill(EDICT_DEXTERITY_TRAINING_ONE);
this.learnSkill(EDICT_DEXTERITY_TRAINING_TWO);
this.learnSkill(EDICT_DEXTERITY_TRAINING_THREE);
this.learnSkill(EDICT_DEXTERITY_TRAINING_FOUR);
this.learnSkill(EDICT_DEXTERITY_TRAINING_FIVE);
this.learnSkill(EDICT_CLEAVE_TRAINING_ONE);
this.learnSkill(EDICT_CLEAVE_TRAINING_TWO);
this.learnSkill(EDICT_CLEAVE_TRAINING_THREE);
this.learnSkill(EDICT_SLASH_TRAINING_ONE);
this.learnSkill(EDICT_SLASH_TRAINING_TWO);
this.learnSkill(EDICT_SLASH_TRAINING_THREE);
this.learnSkill(EDICT_AGILITY_TRAINING_ONE);
this.learnSkill(EDICT_AGILITY_TRAINING_TWO);
this.learnSkill(EDICT_AGILITY_TRAINING_THREE);
this.learnSkill(EDICT_AGILITY_TRAINING_FOUR);
this.learnSkill(EDICT_AGILITY_TRAINING_FIVE);
this.learnSkill(EDICT_SKEWER_TRAINING_ONE);
this.learnSkill(EDICT_SKEWER_TRAINING_TWO);
this.learnSkill(EDICT_SKEWER_TRAINING_THREE);
this.learnSkill(EDICT_THRUST_TRAINING_ONE);
this.learnSkill(EDICT_THRUST_TRAINING_TWO);
this.learnSkill(EDICT_THRUST_TRAINING_THREE);
this.learnSkill(EDICT_ENDURANCE_TRAINING_ONE);
this.learnSkill(EDICT_ENDURANCE_TRAINING_TWO);
this.learnSkill(EDICT_ENDURANCE_TRAINING_THREE);
this.learnSkill(EDICT_ENDURANCE_TRAINING_FOUR);
this.learnSkill(EDICT_ENDURANCE_TRAINING_FIVE);
this.learnSkill(EDICT_STAMINA_TRAINING_ONE);
this.learnSkill(EDICT_STAMINA_TRAINING_TWO);
this.learnSkill(EDICT_STAMINA_TRAINING_THREE);
this.learnSkill(EDICT_ENERGY_TRAINING_ONE);
this.learnSkill(EDICT_ENERGY_TRAINING_TWO);
this.learnSkill(EDICT_MIND_TRAINING_ONE);
this.learnSkill(EDICT_MIND_TRAINING_TWO);
this.learnSkill(EDICT_MIND_TRAINING_THREE);
this.learnSkill(EDICT_MIND_TRAINING_FOUR);
this.learnSkill(EDICT_MIND_TRAINING_FIVE);
this.learnSkill(EDICT_SUPPRESS_DESIRES);
this.learnSkill(EDICT_RELEASE_DESIRES);
this.learnSkill(EDICT_RELEASE_COCK_DESIRE);
this.learnSkill(EDICT_HEALING_THOUGHTS_ONE);
this.learnSkill(EDICT_HEALING_THOUGHTS_TWO);
this.learnSkill(EDICT_MIND_OVER_MATTER);
this.learnSkill(EDICT_SEE_NO_EVIL);
this.learnSkill(EDICT_HEAR_NO_EVIL);
this.learnSkill(EDICT_SPEAK_NO_EVIL);
this.learnSkill(EDICT_EMPRESS_MAJESTY);
this.learnSkill(EDICT_EMPRESS_CLOTHES);
this.learnSkill(EDICT_EYE_OF_THE_MIND);
this.learnSkill(EDICT_REALITY_MARBLE);
this.learnSkill(EDICT_EDGING_CONTROL);
this.learnSkill(EDICT_RESIST_ORGASM);
this.learnSkill(EDICT_KI);
this.learnSkill(EDICT_FOCUS);
this.learnSkill(EDICT_CAUTIOUS_STANCE);
this.learnSkill(EDICT_DEFENSIVE_STANCE);
this.learnSkill(EDICT_DEFENSIVE_STANCE_UPGRADE_I);
this.learnSkill(EDICT_COUNTER_STANCE);
this.learnSkill(EDICT_COUNTER_STANCE_UPGRADE_I);
this.learnSkill(EDICT_CHARM_SPECIALIZATION);
this.learnSkill(EDICT_PRISON_GUARDS);
this.learnSkill(EDICT_REFORMED_CONVICT_EMPLOYMENT);
this.learnSkill(EDICT_PAMPHLET_TRAINING);
this.learnSkill(EDICT_SECONDHAND_GUARD_EQUIPMENT);
this.learnSkill(EDICT_KITCHEN_AND_MESS_HALL);
this.learnSkill(EDICT_STATE_OF_THE_ART_INFIRMARY);
this.learnSkill(EDICT_ESTABLISH_BACKDOOR);
this.learnSkill(EDICT_SECRETARY_HALBERD);
//this.learnSkill(EDICT_HALBERD_UPGRADE_ONE);
//this.learnSkill(EDICT_HALBERD_UPGRADE_TWO);
//this.learnSkill(EDICT_HALBERD_UPGRADE_THREE);
//this.learnSkill(EDICT_HALBERD_UPGRADE_FOUR);
this.learnSkill(EDICT_WARDEN_OUTFIT);
//this.learnSkill(EDICT_WARDEN_CLOTH_UPGRADE_ONE);
//this.learnSkill(EDICT_WARDEN_CLOTH_UPGRADE_TWO);
//this.learnSkill(EDICT_WARDEN_CLOTH_UPGRADE_THREE);
//this.learnSkill(EDICT_WARDEN_CLOTH_UPGRADE_FOUR);
this.learnSkill(EDICT_OFFICE_BED_CRAPPY);
this.learnSkill(EDICT_OFFICE_PRIVATE_GUARDS);
this.learnSkill(EDICT_OFFICE_CHEAP_LOCK);
this.learnSkill(EDICT_RESEARCH_UNLOCK_SPECIALIZATION);
this.learnSkill(EDICT_SPECIALIZATION_EXPLANATION);
this.learnSkill(EDICT_STRENGTH_SPECIALIZATION);
this.learnSkill(EDICT_DEXTERITY_SPECIALIZATION);
this.learnSkill(EDICT_AGILITY_SPECIALIZATION);
this.learnSkill(EDICT_ENDURANCE_SPECIALIZATION);
this.learnSkill(EDICT_CHARM_SPECIALIZATION);
this.learnSkill(EDICT_MIND_SPECIALIZATION);
this.learnSkill(EDICT_RESEARCH_ADVANCED_TRAINING_TECH);
this.learnSkill(EDICT_RESEARCH_EXPERT_TRAINING_TECH);
this.learnSkill(EDICT_RESEARCH_ACCESSORY_DEAL);
this.learnSkill(EDICT_SPEC_BASIC_STRIKE_POWER);
this.learnSkill(EDICT_SPEC_HEAD_STRIKE_POWER);
this.learnSkill(EDICT_SPEC_SLAM_POWER);
this.learnSkill(EDICT_SPEC_BASIC_SLASH_POWER);
this.learnSkill(EDICT_SPEC_ARM_SLASH_POWER);
this.learnSkill(EDICT_SPEC_CLEAVE_POWER);
this.learnSkill(EDICT_SPEC_BASIC_THRUST_POWER);
this.learnSkill(EDICT_SPEC_LEG_THRUST_POWER);
this.learnSkill(EDICT_SPEC_SKEWER_POWER);
this.learnSkill(EDICT_SPEC_PETTING_RESIST);
this.learnSkill(EDICT_SPEC_STAMINA_TANK);
this.learnSkill(EDICT_SPEC_ENERGY_TANK);
this.learnSkill(EDICT_SPEC_DEFENSIVE_MIND_FOCUS);
this.learnSkill(EDICT_SPEC_OFFENSIVE_MIND_KI);
this.learnSkill(EDICT_SPEC_SENSUAL_MIND_RESTORE);
this.learnSkill(EDICT_INSURANCE_EXPLANATION_1);
this.learnSkill(EDICT_INSURANCE_EXPLANATION_2);
this.learnSkill(EDICT_NO_CLASSES);
this.learnSkill(EDICT_RECEPTION_POLICY_NEUTRAL);
//this.learnSkill(EDICT_OFFICE_SELL_ONANI_VIDEO);
//this.learnSkill(EDICT_OFFICE_OUTSIDE_CAMERA);
//this.learnSkill(EDICT_OFFICE_INSIDE_CAMERA);
this.learnSkill(EDICT_RIOT_SUPPRESSING_TRAINING_FOR_GUARDS);
//this.learnSkill(EDICT_OFFICE_HEAVY_DUTY_LOCK);
//this.learnSkill(EDICT_OFFICE_AUTO_ELECTRONIC_LOCK);
//this.learnSkill(EDICT_OFFICE_MANUAL_ELECTRONIC_LOCK);
this.learnSkill(EDICT_PUBLISH_PROFILE);
this.learnSkill(EDICT_PUBLISH_VIRGIN_STATUS);
this.learnSkill(EDICT_PUBLISH_OTHER_FIRST_TIMES);
this.learnSkill(EDICT_PUBLISH_LAST_TIMES);
this.learnSkill(EDICT_PUBLISH_RESISTS);
this.learnSkill(EDICT_PUBLISH_SEX_LEVELS);
this.learnSkill(EDICT_PUBLISH_SENSITIVITIES);
this.learnSkill(EDICT_PUBLISH_RECORDS_ONE);
this.learnSkill(EDICT_PUBLISH_RECORDS_TWO);
this.learnSkill(EDICT_PUBLISH_RECORDS_THREE);
this.learnSkill(EDICT_PUBLISH_DESIRES);
this.learnSkill(EDICT_UNARMED_COMBAT_TRAINING);
this.learnSkill(EDICT_UNARMED_ATTACK_TRAINING_I);
this.learnSkill(EDICT_UNARMED_ATTACK_TRAINING_II);
this.learnSkill(EDICT_UNARMED_ATTACK_TRAINING_III);
this.learnSkill(EDICT_UNARMED_DEFENSE_TRAINING_I);
this.learnSkill(EDICT_UNARMED_DEFENSE_TRAINING_II);
this.learnSkill(EDICT_UNARMED_DEFENSE_TRAINING_III);
this.learnSkill(EDICT_REVITALIZE_TRAINING_ONE);
this.learnSkill(EDICT_SECONDWIND_TRAINING_ONE);
this.learnSkill(EDICT_REVITALIZE_TRAINING_TWO);
};
武器与徒手的攻防修改★
RemtairyEdicts.js

修改思路是斧子攻防高 成长高 但是反击率不如徒手
徒手时被攻击100%反击率
斧子选择重视进攻50%反击率
斧子选择重视防守75%反击率
斧子被弄脏也可以使用但是攻击力下降
///////
// Halberd Edicts
/////////////

Game_Actor.prototype.edictsHalberdAttack = function() {
let halberdAttack = 4;

if(this.hasEdict(EDICT_HALBERD_UPGRADE_FOUR)) halberdAttack += 4;
else if(this.hasEdict(EDICT_HALBERD_UPGRADE_THREE)) halberdAttack += 3;
else if(this.hasEdict(EDICT_HALBERD_UPGRADE_TWO)) halberdAttack += 2;
else if(this.hasEdict(EDICT_HALBERD_UPGRADE_ONE)) halberdAttack += 1;

if(this.hasEdict(EDICT_HALBERD_OFFENSIVE_SPECIALIZATION)) halberdAttack += 2;

if(this._halberdIsDefiled) halberdAttack -= 2;

if($gameParty.isTutorialBattle()) halberdAttack -= 4;

return halberdAttack;
};

Game_Actor.prototype.edictsHalberdDefense = function() {
let halberdDefense = 2;

if(this.hasEdict(EDICT_HALBERD_UPGRADE_FOUR)) halberdDefense += 2;
else if(this.hasEdict(EDICT_HALBERD_UPGRADE_THREE)) halberdDefense += 1.5;
else if(this.hasEdict(EDICT_HALBERD_UPGRADE_TWO)) halberdDefense += 1;
else if(this.hasEdict(EDICT_HALBERD_UPGRADE_ONE)) halberdDefense += 0.5;

if(this.hasEdict(EDICT_HALBERD_DEFENSIVE_SPECIALIZATION)) halberdDefense += 1;

return halberdDefense;
};

Game_Actor.prototype.edictsHalberdXParamPlus = function(paramId) {
let value = 0;

if(paramId === XPARAM_GRAZE_ID) {
if(this.hasEdict(EDICT_HALBERD_OFFENSIVE_SPECIALIZATION)) value += 1.5;
if(this.hasEdict(EDICT_HALBERD_DEFENSIVE_SPECIALIZATION)) value += 0.75;
}
else if(paramId === XPARAM_CNT_ID) {
if(this.hasEdict(EDICT_HALBERD_OFFENSIVE_SPECIALIZATION)) value += 0.5;
if(this.hasEdict(EDICT_HALBERD_DEFENSIVE_SPECIALIZATION)) value += 0.75;
if($gameParty.isTutorialBattle()) value -= 1;
if($gameSwitches.value(SWITCH_INVASION_BATTLE_ID)) value -= 1;
}

return value;
};

////////////
// Unarmed Edicts
///////////////

Game_Actor.prototype.edictsUnarmedAttack = function() {
let unarmedAttack = 1;

if(this.hasEdict(EDICT_UNARMED_ATTACK_TRAINING_III)) unarmedAttack += 1;
else if(this.hasEdict(EDICT_UNARMED_ATTACK_TRAINING_II)) unarmedAttack += 0.75;
else if(this.hasEdict(EDICT_UNARMED_ATTACK_TRAINING_I)) unarmedAttack += 0.5;
else if(this.hasEdict(EDICT_UNARMED_COMBAT_TRAINING)) unarmedAttack += 0.25;

if(this.hasEdict(EDICT_RESEARCH_WEREWOLF_STUDY)) unarmedAttack += 1;

if(this.isEquippingThisAccessory(MISC_HIGHHEELS_ID)) unarmedAttack += 1

if($gameParty.isTutorialBattle()) unarmedAttack -= 1;

return unarmedAttack;
};

Game_Actor.prototype.edictsUnarmedDefense = function() {
let unarmedDefense = 1;

if(this.hasEdict(EDICT_UNARMED_DEFENSE_TRAINING_III)) unarmedDefense += 1;
else if(this.hasEdict(EDICT_UNARMED_DEFENSE_TRAINING_II)) unarmedDefense += 0.75;
else if(this.hasEdict(EDICT_UNARMED_DEFENSE_TRAINING_I)) unarmedDefense += 0.5;
else if(this.hasEdict(EDICT_UNARMED_COMBAT_TRAINING)) unarmedDefense += 0.25;

if(this.hasEdict(EDICT_RESEARCH_NERD_STUDY)) unarmedDefense += 1;

return unarmedDefense;
};

Game_Actor.prototype.edictsUnarmedXParamPlus = function(paramId) {
let value = 0;

if(paramId === XPARAM_GRAZE_ID) {
if(this.hasEdict(EDICT_UNARMED_COMBAT_TRAINING)) value += 0;
}
else if(paramId === XPARAM_CNT_ID) {
if(this.hasEdict(EDICT_UNARMED_COMBAT_TRAINING)) value += 1;
if($gameParty.isTutorialBattle()) value -= 1;
if($gameSwitches.value(SWITCH_INVASION_BATTLE_ID)) value -= 1;
}

return value;
};
战斗获得秩序修改★
RemtairyEnemy.js

战胜通缉敌人获得双倍秩序
如果卡琳被击败或性爱获胜只获得一半的秩序
/////////////////////////////
// Get Order Gain Fatigue Gain Values
//////////////////////////////

Game_Enemy.prototype.getOrderGainValue = function() {
let orderGain = this._orderGain;
let multipler = 10;

if(this.isWanted) multipler *= 2;

if(Karryn.isInDefeatedPose() || Karryn.isInJobPose()) multipler *= 0.5;

return orderGain * multipler;
};
所有敌人都带前缀★
RemtairyEnemyName.js

所有敌人都带前缀
const ENEMY_PREFIX_BASE_ATTACH_CHANCE = 1;
卡琳使用踢击被反插只对红名 绿名 金属 敌人生效★
RemtairyEnemySex.js

发情时使用踢击才会被反击
卡琳使用踢击被反插只对红名 绿名 金属 敌人生效
////////
// Kick Counter
// counter condition
/////////////

Game_Enemy.prototype.counterTotal = function() {
return 1;
};

Game_Enemy.prototype.counterCondition_kickCounter = function(target, action) {
if(!action.isActorKickSkill() || !Karryn.isAroused() || !target.isActor() || !this.isErect || this.isInAPose() || !target.canGet♥♥♥♥♥Inserted(false, true) || target.isInSexPose()) return false;

if(this.isThugType) {
if(this.hasGoodPrefix() || this.hasSadoPrefix() || this.hasBadPrefix() || this.hasHungryPrefix() || this.hasWeakPrefix() || this.hasIneptPrefix() || this.hasSlowPrefix() || this.hasStarvingPrefix() || this.hasDrunkPrefix()) return false;

if(this.hasElitePrefix() || this.hasBigPrefix() || this.hasMetalPrefix()) return true;
}
else if(this.isGuardType || this.isYasu) {
if(this.hasGoodPrefix() || this.hasSadoPrefix() || this.hasBadPrefix() || this.hasHungryPrefix() || this.hasWeakPrefix() || this.hasIneptPrefix() || this.hasSlowPrefix() || this.hasStarvingPrefix() || this.hasDrunkPrefix()) return false;

if(this.hasElitePrefix() || this.hasBigPrefix() || this.hasMetalPrefix() || this.isYasu) return true;
}
else if(this.isOrcType || this.isTonkin) {
if(this.hasGoodPrefix() || this.hasSadoPrefix() || this.hasBadPrefix() || this.hasHungryPrefix() || this.hasWeakPrefix() || this.hasIneptPrefix() || this.hasSlowPrefix() || this.hasStarvingPrefix() || this.hasDrunkPrefix()) return false;

if(this.hasElitePrefix() || this.hasBigPrefix() || this.hasMetalPrefix() || this.isTonkin) return true;
}
else if(this.isLizardmanType || this.isAron) {
if(this.hasGoodPrefix() || this.hasSadoPrefix() || this.hasBadPrefix() || this.hasHungryPrefix() || this.hasWeakPrefix() || this.hasIneptPrefix() || this.hasSlowPrefix() || this.hasStarvingPrefix() || this.hasDrunkPrefix()) return false;

if(this.hasElitePrefix() || this.hasBigPrefix() || this.hasMetalPrefix() || this.isAron) return true;
}
else if(this.isYetiType || this.isNoinim) {
if(this.hasGoodPrefix() || this.hasSadoPrefix() || this.hasBadPrefix() || this.hasHungryPrefix() || this.hasWeakPrefix() || this.hasIneptPrefix() || this.hasSlowPrefix() || this.hasStarvingPrefix() || this.hasDrunkPrefix()) return false;

if(this.hasElitePrefix() || this.hasBigPrefix() || this.hasMetalPrefix() || this.isNoinim) return true;
}
};
卡琳高潮后使用喘息修改★
RemtairyEnergy.js

增加回复血量
添加使用喘息后的负面BUFF
////////////
// Breathe
////////////

Game_Actor.prototype.showEval_breathe = function() {
return this.justOrgasmed();
};

Game_Actor.prototype.dmgFormula_breathe = function() {
this.gainEnergyExp(20, $gameTroop.getAverageEnemyExperienceLvl());

this._tempRecordDownStaminaCurrentlyCounted = false;
this.resetAttackSkillConsUsage();
this.resetSexSkillConsUsage(false);
this.addHornyState();
this._onaniFrustration++;
this.addState(STATE_WEAKEN_ID);
this.addState(STATE_VULNERABLE_ID);
this.addState(STATE_OFFBALANCE_ID);

let percent = Math.max(0.5, this.hrg);
let dmg = this.maxstamina * percent;

return Math.round(dmg);
};
坐下小歇修改★
RemtairyEnergy.js

修改为坐下时发情可以使用
添加使用后的负面BUFF
////////
// Fallen Rest
///////////

Game_Actor.prototype.showEval_fallenRest = function() {
return this.isInDownFallDownPose() && this.isAroused();
};
Game_Actor.prototype.customReq_fallenRest = function() {
return this.isInDownFallDownPose() && this.isAroused();
};
Game_Actor.prototype.cooldownEval_fallenRest = function() {
let baseCD = 0;
return baseCD;
};
Game_Actor.prototype.dmgFormula_fallenRest = function() {
let percent = Math.max(0.25, this.hrg);
let dmg = this.maxstamina * percent;

return Math.round(dmg);
};

Game_Actor.prototype.afterEval_fallenRest = function() {
this.passiveFallenState_addHornyEffect();
this.resetAttackSkillConsUsage();
this.resetEndurePleasureStanceCost();
this.resetSexSkillConsUsage(false);
this.addState(STATE_STANDBY_EMOTE_USED_BATTLE_SKILLS_ID);
this.emoteMasterManager();
this.addHornyState();
this._onaniFrustration++;
this.addState(STATE_WEAKEN_ID);
this.addState(STATE_VULNERABLE_ID);
this.addState(STATE_OFFBALANCE_ID);
};
挑衅修改★
RemtairyEnergy.js

战斗姿态中未发情可以使用
取消精力消耗
////////////
// Karryn Taunt
////////////

Game_Actor.prototype.showEval_karrynTaunt = function() {
return this.isInCombatPose() && !this.isAroused();
};

Game_Actor.prototype.skillCost_karrynTaunt = function() {
let percent = 0;

let cost = this.realMaxEnergy * percent;
cost *= this.esc;
return Math.round(cost);
};
搔首弄姿修改★
RemtairyEnergy.js

获得魅力称号高岭之花后可以使用
使用后添加负面BUFF
使用后开启战斗中自慰
取消精力消耗
////////////
// Karryn Flaunt
////////////

Game_Actor.prototype.showEval_karrynFlaunt = function() {
if(!this.hasThisTitle(TITLE_ID_ALLURING_WARDEN)) return false;

if(!this.isInCombatPose()) return false;

if(!this.isAroused()) return false;

if(this.isInCombatPose()) return true;

else {
if(this.isBodySlotPenis(MOUTH_ID) || this.isBodySlotPenis(BOOBS_ID) || this.isBodySlotAnus(MOUTH_ID)) return false;
if(this.isBodySlotPenis(RIGHT_HAND_ID) && this.isBodySlotPenis(LEFT_HAND_ID)) return false;

return true;
}

return false;
};

Game_Actor.prototype.skillCost_karrynFlaunt = function() {
let percent = 0;

let cost = this.realMaxEnergy * percent;
cost *= this.esc;
return Math.round(cost);
};

Game_Actor.prototype.customExecution_karrynFlaunt = function() {
this.addHornyState();
this.addState(STATE_OFFBALANCE_ID);
this._onaniFrustration++;
this.addState(STATE_REALITY_MARBLE_ID);
this.gainEnergyExp(10, $gameTroop.getAverageEnemyExperienceLvl());
this.addToActorFlauntCountRecord();
BattleManager._logWindow.push('addText', TextManager.karrynFlauntMessage);
this.startAnimation($dataSkills[SKILL_KARRYN_FLAUNT_ID].animationId, false, 0);
this.setTachieCutIn(CUTIN_KARRYN_FLAUNT_ONE_ID);
BattleManager.actionRemLines(KARRYN_LINE_KARRYN_FLAUNT);
this.setWantsToOnaniInBattle(true);
this.setMasturbationInBattlePose();

this._tempCombatStanceCost = 0;
this._tempSexStanceCost = 0;
this.resetAttackSkillConsUsage();
this.resetSexSkillConsUsage(false);

this.addState(STATE_STANDBY_EMOTE_USED_FLAUNT_ID);
this.emoteMasterManager();
};

Game_Actor.prototype.afterEval_karrynFlaunt = function(target) {
//this.setTachieCutIn(CUTIN_KARRYN_FLAUNT_ONE_ID);
//BattleManager.actionRemLines(KARRYN_LINE_KARRYN_FLAUNT);

if(!target._thisTurnFlaunted) {
target._thisTurnFlaunted = true;
target.addToEnemyFlauntedCountRecord(this);
//this.setTachieCutIn(CUTIN_KARRYN_FLAUNT_ONE_ID);

let karrynCharm = this.inBattleCharm;
if(this.hasPassive(PASSIVE_STRAY_PUBE_COUNT_ONE_ID)) {
if(this.hasPassive(PASSIVE_STRAY_PUBE_COUNT_THREE_ID) && target.isHorny) {}
else {
karrynCharm += Karryn.inBattleCharmStrayBonus();
}
}

let hornyChance = 1;
if(this.hasPassive(PASSIVE_FLAUNT_COUNT_ONE_ID)) {
hornyChance += this.cockiness * 0.0015;
}
if(target.charm > karrynCharm || target.isAngry) hornyChance = 0;
else {
hornyChance += (karrynCharm - target.charm) * 0.015;
this.gainCharmExp(6, target.enemyExperienceLvl());
}

if(target.hasHornyPrefix() || target.hasVirginPrefix())
hornyChance += 0.3;

if(Math.random() < hornyChance) target.addHornyState();
}
};

Game_Actor.prototype.resetTauntAndConfidentOnNewWave = function() {
if(this.isConfident) {
this.removeState(STATE_CONFIDENT_ID);
}
this.setCooldown(SKILL_KARRYN_TAUNT_ID,0);
this.setCooldown(SKILL_KARRYN_FLAUNT_ID,0);
};
闪避姿态强化★
RemtairyEnergy.js

战斗姿态中未发情可以使用
取消精力消耗
添加使用后获得心眼效果
////////
// Cautious Stance
/////////

Game_Actor.prototype.skillCost_cautiousStance = function() {
return Math.round(0);
};
Game_Actor.prototype.skillCost_cautiousStance_revitalize = function() {
return Math.round(0);
};
Game_Actor.prototype.skillCost_cautiousStance_secondWind = function() {
return Math.round(0);
};
Game_Actor.prototype.skillCost_cautiousStance_fixClothes = function() {
return Math.round(0);
};

Game_Actor.prototype.showEval_cautiousStance = function() {
return this.isInCombatPose() && !this.isAroused();
};


Game_Actor.prototype.afterEval_cautiousStance = function() {
this._tempCombatStanceCost++;
this.resetAttackSkillConsUsage();
this.resetEndurePleasureStanceCost();
this.resetSexSkillConsUsage(false);
this.gainEnergyExp(10, $gameTroop.getAverageEnemyExperienceLvl());
this.addState(STATE_STANDBY_EMOTE_USED_BATTLE_SKILLS_ID);
this.addState(STATE_EYE_OF_THE_MIND_ID);
this.emoteMasterManager();
};
防卫姿态强化★
RemtairyEnergy.js

战斗姿态中未发情可以使用
取消精力消耗
使用后获得集中效果
////////
// Defensive Stance
//////////

Game_Actor.prototype.skillCost_defStance = function() {
return Math.round(0);
};
Game_Actor.prototype.skillCost_defStance_revitalize = function() {
return Math.round(0);
};
Game_Actor.prototype.skillCost_defStance_secondWind = function() {
return Math.round(0);
};
Game_Actor.prototype.skillCost_defStance_fixClothes = function() {
return Math.round(0);
};

Game_Actor.prototype.showEval_defStance = function() {
return this.isInCombatPose() && !this.isAroused();
};

Game_Actor.prototype.afterEval_defStance = function() {
this._tempCombatStanceCost++;
this.resetAttackSkillConsUsage();
this.resetEndurePleasureStanceCost();
this.resetSexSkillConsUsage(false);
this.gainEnergyExp(10, $gameTroop.getAverageEnemyExperienceLvl());
this.addState(STATE_STANDBY_EMOTE_USED_BATTLE_SKILLS_ID);
this.addState(STATE_FOCUS_ID);
this.emoteMasterManager();
};
反击姿态强化★
RemtairyEnergy.js

战斗姿态未发情可以使用
取消精力消耗
使用后获得蓄力效果
//////////
// Counter Stance
//////////////

Game_Actor.prototype.skillCost_counterStance = function() {
return Math.round(0);
};
Game_Actor.prototype.skillCost_counterStance_revitalize = function() {
return Math.round(0);
};
Game_Actor.prototype.skillCost_counterStance_secondWind = function() {
return Math.round(0);
};
Game_Actor.prototype.skillCost_counterStance_fixClothes = function() {
return Math.round(0);
};

Game_Actor.prototype.showEval_counterStance = function() {
return this.isInCombatPose() && !this.isAroused();
};

Game_Actor.prototype.afterEval_counterStance = function() {
this._tempCombatStanceCost++;
this.resetAttackSkillConsUsage();
this.resetEndurePleasureStanceCost();
this.resetSexSkillConsUsage(false);
this.gainEnergyExp(20, $gameTroop.getAverageEnemyExperienceLvl());
this.addState(STATE_STANDBY_EMOTE_USED_BATTLE_SKILLS_ID);
this.addState(STATE_KI_ID);
this.emoteMasterManager();
};
秘书模式强化★
RemtairyEnergy.js

战斗中发情时使用
取消精力消耗
添加使用后获得抑制高潮效果
//////////
// Endure Pleasure
// Secretary Stance
//////////////

Game_Actor.prototype.skillCost_endurePleasure = function() {
return Math.round(0);
};

Game_Actor.prototype.showEval_endurePleasure = function() {
return this.isAroused() && !this.isInSexPose() && !this.justOrgasmed() && !this.isInDownFallDownPose();
};

Game_Actor.prototype.afterEval_endurePleasure = function() {
this.gainEnergyExp(15 + this._tempSecretaryStanceCostIncrease * 5, $gameTroop.getAverageEnemyExperienceLvl());

this.increaseHornyStateTurns(-1);
this._tempSecretaryStanceCostIncrease++;
this.resetAttackSkillConsUsage();
this.resetSexSkillConsUsage(false);

this.addState(STATE_KARRYN_RESIST_ORGASM_ID);
this.addState(STATE_KARRYN_RESIST_ORGASM_ICON_ID);
this.addState(STATE_STANDBY_EMOTE_USED_BATTLE_SKILLS_ID);
this.emoteMasterManager();

if(DLC_GYM) BattleManager.actionRemLines(KARRYN_LINE_SECRETARY_STANCE);
};
淑女模式强化★
RemtairyEnergy.js

战斗中未发情使用
取消精力消耗
使用后添加整理衣服效果 无视淫语 无视视奸
//////////
// Wait Out Pleasure
// Lady Stance
//////////////

Game_Actor.prototype.skillCost_waitOutPleasure = function() {
return Math.round(0);
};

Game_Actor.prototype.showEval_waitOutPleasure = function() {
return !this.isAroused() && !this.isInSexPose() && !this.justOrgasmed() && !this.isInDownFallDownPose();
};

Game_Actor.prototype.afterEval_waitOutPleasure = function() {
this.gainEnergyExp(15 + this._tempLadyPleasureCostIncrease * 10, $gameTroop.getAverageEnemyExperienceLvl());

this._tempLadyPleasureCostIncrease++;
this._tempSecretaryStanceCostIncrease = 0;
this.restoreClothingDurability();
this.setPoseClothing();
this.addState(STATE_STANDBY_EMOTE_USED_BATTLE_SKILLS_ID);
this._tempFixClothesCost += this._tempFixClothesCost;
this.addToFixClothesUsageCountRecord();
this.resetAttackSkillConsUsage();
this.resetSexSkillConsUsage(false);

this.addState(STATE_HEAR_NO_EVIL_ID);
this.addState(STATE_SEE_NO_EVIL_ID);
this.addState(STATE_STANDBY_EMOTE_USED_BATTLE_SKILLS_ID);
this.emoteMasterManager();

if(DLC_GYM) BattleManager.actionRemLines(KARRYN_LINE_LADY_STANCE);
};
放荡姿态修改★
RemtairyEnergy.js

单回合模式处于性交姿态可以使用
全自动模式获得被动肉棒黑洞后可以开启
全自动模式使用后添加负面BUFF
//////////
// Open Pleasure
// Pleasure Stance
//////////////

Game_Actor.prototype.skillCost_openPleasure = function() {
return 0;
};

Game_Actor.prototype.showEval_openPleasure = function(multiTurnVersion) {
return this.isInSexPose() && !this.justOrgasmed();
};

Game_Actor.prototype.afterEval_openPleasure = function(extraTurns) {
this.resetAttackSkillConsUsage();
this.resetSexSkillConsUsage(false);

if(extraTurns > 1) {
this.setStateTurns(STATE_PLEASURE_STANCE_ID, extraTurns);
}

this.emoteMasterManager();

if(DLC_GYM) BattleManager.actionRemLines(KARRYN_LINE_PLEASURE_STANCE);
};

Game_Actor.prototype.showEval_openPleasure_Battle = function() {
return this.hasPassive(PASSIVE_SEXUAL_PARTNERS_TOTAL_FIVE_ID);
};
Game_Actor.prototype.afterEval_openPleasure_Battle = function() {
if(!this.isAroused()) this.setPleasureToArousalPoint();
this.addHornyState();
this._onaniFrustration++;
this.addState(STATE_WEAKEN_ID);
this.addState(STATE_VULNERABLE_ID);
this.addState(STATE_OFFBALANCE_ID);
this.resetAttackSkillConsUsage();
this.resetSexSkillConsUsage(false);

this.emoteMasterManager();

if(DLC_GYM) BattleManager.actionRemLines(KARRYN_LINE_PLEASURE_STANCE);
};
投降修改★
RemtairyEnergy.js

两种投降模式
一种是战斗中发情可以使用
使用后原地坐下并添加负面BUFF战斗续行
第二种体力为0使用
使用后精力也降为0添加负面BUFF进入战斗失败结算
可以理解为诈降和真投降
/////////
// Give Up & Surrender
///////////////

Game_Actor.prototype.showEval_giveUp = function() {
return this.isInCombatPose() && this.isAroused();
};
Game_Actor.prototype.afterEval_giveUp = function() {
this.addHornyState();
this._onaniFrustration++;
this.addState(STATE_WEAKEN_ID);
this.addState(STATE_VULNERABLE_ID);
this.addState(STATE_OFFBALANCE_ID);
this.addState(STATE_FALLEN_ID);
this.resetAttackSkillConsUsage();
this.resetSexSkillConsUsage(false);
};

Game_Actor.prototype.showEval_surrender = function() {
return this.hasNoStamina();
};
Game_Actor.prototype.afterEval_surrender = function() {
this._mp = 0;
this.addHornyState();
this._onaniFrustration++;
this.addState(STATE_WEAKEN_ID);
this.addState(STATE_VULNERABLE_ID);
this.addState(STATE_OFFBALANCE_ID);
this.resetAttackSkillConsUsage();
this.resetEndurePleasureStanceCost();
this.resetSexSkillConsUsage(false);
this._tempRecordUsedPostOrgasmRevival = true;
};
倒地后起身修改★
RemtairyEnergy.js

修改为坐在地上时没有发情可以站起来
使用后添加负面BUFF
Game_Actor.prototype.showEval_getUp = function() {
return this.isInDownFallDownPose() && !this.isAroused();
};
Game_Actor.prototype.customReq_getUp = function() {
return this.isInDownFallDownPose();
};
Game_Actor.prototype.afterEval_getUp = function() {
this.removeState(STATE_FALLEN_ID);
this.resetAttackSkillConsUsage();
this.resetEndurePleasureStanceCost();
this.resetSexSkillConsUsage(false);
this.addHornyState();
this._onaniFrustration++;
this.addState(STATE_WEAKEN_ID);
this.addState(STATE_VULNERABLE_ID);
this.addState(STATE_OFFBALANCE_ID);
};
解锁首饰需要的魅力值修改★
RemtairyKarryn.js

提高了所需要的魅力值
const VAR_ACCESSORY_CHARM_REQ_1 = 100;
const VAR_ACCESSORY_CHARM_REQ_2 = 200;
const VAR_ACCESSORY_CHARM_REQ_3 = 300;
const VAR_ACCESSORY_CHARM_REQ_4 = 400;
const VAR_ACCESSORY_CHARM_REQ_5 = 500;
战前战后设置修改★
RemtairyKarryn.js
战前修改
如果发情时进入战斗添加负面BUFF
战后修改
战斗后不再拿下玩具和清理液体
如果战斗中小穴潮湿战后脱掉内裤
如果是处女战后性欲为0%
如果不是处女战后将性欲变更为33%发情
如果发情战后添加负面BUFF
每天首次战斗后进入夜战模式
//Pre Battle
Game_Actor.prototype.preBattleSetup = function() {
this.enterMentalPhase();
this.disableAllPoseSkills();
this.setupStatsBeforeBattle();
this.cacheDesireTooltips();
this.setUp♥♥♥♥♥Juice();
this.setupDesires();
this.clearBattleSkillsFlags();
this.resetCockTargets();
this.resetRemLineActorVariables();
this.clearParamExp();
this.clearTempRecords();
this.resetOnaniInBattleDesireToBase();
this.preBattleConfidentPassiveEffects();
this.preBattleHornyPassiveEffects();
//this.preBattleClothingPassiveEffects();
this.removeState(STATE_DISARMED_ID);
this.removeState(STATE_JUST_DEFEATED_ID);
this.removeState(STATE_TALKING_TO_NPC_ID);
this.preBattleAddIsVirginState();
this.setPreBattlePose();
this.setTroopsCutsceneVoiceSetting(false);
this._dontResetSexPose = false;
this._emoteMasterManagerIsRunning = false;
this._orgasmCallQueuedUp = false;
this._dirty = true;
if(this.isAroused()) this.addHornyState();
if(this.isAroused()) this._onaniFrustration++;
if(this.isAroused()) this.addState(STATE_WEAKEN_ID);
if(this.isAroused()) this.addState(STATE_VULNERABLE_ID);
if(this.isAroused()) this.addState(STATE_OFFBALANCE_ID);
};

//same as normal prebattle except dont reset desire or ♥♥♥♥♥ juice
Game_Actor.prototype.preInvasionBattleSetup = function() {
this.enableMentalPhase();
this.enterMentalPhase();
this.disableAllPoseSkills();
this.setupStatsBeforeBattle();
this.cacheDesireTooltips();
this.clearBattleSkillsFlags();
this.resetCockTargets();
this.resetRemLineActorVariables();
this.clearParamExp();
this.clearTempRecords();
this.preBattleConfidentPassiveEffects();
this.preBattleHornyPassiveEffects();
this.preBattleAddIsVirginState();
//this.setPreBattlePose(); //called in game party version
this._dontResetSexPose = false;
this._emoteMasterManagerIsRunning = false;
this._orgasmCallQueuedUp = false;
this._dirty = true;
if(this.isAroused()) this.addHornyState();
if(this.isAroused()) this._onaniFrustration++;
if(this.isAroused()) this.addState(STATE_WEAKEN_ID);
if(this.isAroused()) this.addState(STATE_VULNERABLE_ID);
if(this.isAroused()) this.addState(STATE_OFFBALANCE_ID);

$gameParty.addRecordInvasionBattle();
};

Game_Actor.prototype.preDefeatedBattleSetup = function() {
this.setAllowTachieUpdate(false);
this.enableMentalPhase();
this.enterMentalPhase();
this.disableAllPoseSkills();
this.setupStatsBeforeBattle();
this.cacheDesireTooltips();
this.clearBattleSkillsFlags();
this.resetRemLineActorVariables();
this.clearParamExp();
this.clearTempRecords();
this.setUp♥♥♥♥♥Juice();
this.setAllBodySlotsFreeExceptToy();
this.addState(STATE_DEFEATED_ID);
this.preBattleAddIsVirginState();
this.setAsNoHalberdBattle();
this.takeOffPanties();
this.removeClothing();
this._dontResetSexPose = false;
this._emoteMasterManagerIsRunning = false;
this._orgasmCallQueuedUp = false;
this._dirty = true;
this._hp = 0;
if(this.isAroused()) this.addHornyState();
if(this.isAroused()) this._onaniFrustration++;
if(this.isAroused()) this.addState(STATE_WEAKEN_ID);
if(this.isAroused()) this.addState(STATE_VULNERABLE_ID);
if(this.isAroused()) this.addState(STATE_OFFBALANCE_ID);
};

//Post Battle
Game_Actor.prototype.postBattleCleanup = function() {
this.setAllowTachieUpdate(false);
this.setAllBodySlotsFreeExceptToy();
this._emoteMasterManagerIsRunning = false;
this._dontResetSexPose = false;
this._orgasmCallQueuedUp = false;
this._startOfInvasionBattle = false;
this.restoreClothingDurability();
if(this.isWet) this.takeOffPanties();
this.turnOffCantEscapeFlag();
this.resetCockTargets();
this.disableAllPoseSkills();
this.clearParamExp();
this.clearTempRecords();
this.cleanUpStray();
this.refreshNightModeSettings();
this.resetDesires();
this.postBattlePleasure();
this.clearBattleSkillsFlags();
this.enableMentalPhase();
this.setWardenMapPose();
this.setAllowTachieUpdate(true);
this.setAllowTachieEmoteUpdate(true);
this.setTroopsCutsceneVoiceSetting(false);
if(this.isAroused()) this.addHornyState();
if(this.isAroused()) this._onaniFrustration++;
if(this.isAroused()) this.addState(STATE_WEAKEN_ID);
if(this.isAroused()) this.addState(STATE_VULNERABLE_ID);
if(this.isAroused()) this.addState(STATE_OFFBALANCE_ID);
if($gameParty.isTutorialBattle()) this.setPleasure(0);
else if(this.isVirgin()) this.setPleasureToArousalPoint();
else if(!this.isVirgin()) this.setPleasureToOrgasmPoint();
//if($gameParty.isTutorialBattle()) this.setFatigue(10);
//if($gameParty.isTutorialBattle()) this.cleanUpLiquids();
if($gameParty.isTutorialBattle()) this.removeAllToys();
if($gameParty.isTutorialBattle()) $gameSwitches.setValue(SWITCH_NIGHT_MODE_ID, false);
else $gameSwitches.setValue(SWITCH_NIGHT_MODE_ID, true);
};
冷静模式修改★
RemtairyKarryn.js

改为战斗中未发情自动触发
////////
// Cool

Game_Actor.prototype.isCoolAndCollected = function() {

if(this.isAroused() || !this.isInCombatPose() || this.justOrgasmed()) return false;

return true;
};
Game_Actor.prototype.coolXParamRate = function(paramId) {
let rate = 1;

if(paramId === XPARAM_HIT_ID || paramId === XPARAM_EVA_ID || paramId === XPARAM_CRIT_ID || paramId === XPARAM_CRIT_EVA_ID) {
if(this.isCoolAndCollected()) {
rate += 0.075;
}
}

return rate;
};
最大反击数修改★
RemtairyKarryn.js

原反击数2降为1
添加如果冷静反击数+1
如果斧子选择防卫强化反击数+1
每获得一个反击的称号反击数+1
/////////
// Counter
/////////////////

Game_Actor.prototype.counterTotal = function() {
let total = 1;
if(this.isCoolAndCollected()) total += 1;
if(this.isStateAffected(STATE_COUNTER_STANCE_ID)) total += 1;
if(this.hasEdict(EDICT_HALBERD_DEFENSIVE_SPECIALIZATION) && this.isUsingHalberd()) total += 1;
if(this.hasThisTitle(TITLE_ID_COUNTERATTACK_THREE)) total += 3;
else if(this.hasThisTitle(TITLE_ID_COUNTERATTACK_TWO)) total += 2;
else if(this.hasThisTitle(TITLE_ID_COUNTERATTACK_ONE)) total += 1;
return total;
};
踢腿插入条件修改★
RemtairyKarryn.js

取消了被动条件修改为需要装备高跟鞋才会触发踢腿被插入结算
Game_Actor.prototype.canGet♥♥♥♥♥Inserted = function(actorSkill, kickCounter) {
if(!this.isBodySlotAvailableForPenis(♥♥♥♥♥_ID)) return false;
if(!kickCounter && !this.isWet) return false;
//if(kickCounter && !this.isWet) {
//if(!this.hasPassive(PASSIVE_KICK_COUNTER_SEX_COUNT_ONE_ID)) return false;
//if(this._liquid♥♥♥♥♥Juice + VAR_KARRYN_KICK_♥♥♥♥♥_JUICE_INC < LIQUID_♥♥♥♥♥_WET_STAGE_ONE) //return false;
//}
let req = this.♥♥♥♥♥Sex♥♥♥♥♥DesireRequirement();
let cockReq = this.♥♥♥♥♥SexCockDesireRequirement();

let meetDesireReq = this.♥♥♥♥♥Desire >= req && this.cockDesire >= cockReq;
let insertable = actorSkill || (this.isWearingPanties() && this.isClothingAtStageAccess♥♥♥♥♥()) || (!this.isWearingPanties() && this.isClothingAtStageSee♥♥♥♥♥()) || kickCounter && this.isEquippingThisAccessory(MISC_HIGHHEELS_ID);
return meetDesireReq && insertable;
};
性欲增长速度修改★
RemtairyKarryn.js

/////////
//////////
// Desire
/////////////
//////////
把所有使用神圣皇后称号欲望增长1.25倍
if(this.isUsingThisTitle(TITLE_ID_HOLY_EMPRESS)) rawValue *= 1.25;
改为如果发情欲望增长2倍
if(this.isAroused()) rawValue *= 2;
关闭体力与精力恢复★
RemtairyKarryn.js

关闭所有恢复
卡琳现在只能通过坐在地上小歇或高潮后喘息回血
/////////
// Regenerate
////////////

Game_Actor.prototype.regenerateHp = function() {
if(this.hasNoEnergy()) {
let value = Math.floor(this.realMaxStamina * VAR_NO_ENERGY_STAMINA_DAMAGE);
this.gainHp(-value);
}
else {
let value = Math.floor(this.maxstamina * this.staminaregen) * this.regenerateStaminaRate();


if((ConfigManager.cheatActorHalfStaminaRegen && Prison.cheatMode()) || Prison.endlessHellCheat_cheatActorHalfStaminaRegen())
value *= 0;
if((ConfigManager.cheatActorThirdStaminaRegen && Prison.cheatMode()) || Prison.endlessHellCheat_cheatActorThirdStaminaRegen())
value *= 0;


value = Math.floor(value);
if (value !== 0) {
this.gainHp(value);
}
}
};

Game_Actor.prototype.regenerateStaminaRate = function() {
let rate = 0;
let exceptionForNeverRegen = this.isInMasturbationCouchPose();
let exceptionForRegenWhenZeroStamina = false;
if($gameParty.isInGloryBattle && $gameTroop.getCurrentTurn_gloryBattle() < this._gloryBattle_restingTilTurn)
exceptionForRegenWhenZeroStamina = true;
if(Karryn.isInReceptionistPose() && this.isStateAffected(STATE_RECEPTIONIST_REST_ID))
exceptionForRegenWhenZeroStamina = true;

if((this.hasNoStamina() && !exceptionForRegenWhenZeroStamina) || exceptionForNeverRegen) rate = 0;
return rate;
};

Game_Actor.prototype.regenerateMp = function() {
let value = this.maxenergy * this.energyregen * this.regenerateEnergyRate();
if(value !== 0 && this.energy > 0) {
this._tempEnergyRegenPool += value;
let energy = 0;
while(this._tempEnergyRegenPool >= 1) {
energy++;
this._tempEnergyRegenPool--;
}
if(energy > 0)
this.gainMp(energy);
}

if(!$gameScreen.isMapMode()) {
this.regenerateWill();
this.regenerateDesires();
this.passiveRegenEffects();
}

this.regen♥♥♥♥♥Juice();
this.resetGotHitBySkillType();
//regenerateTp aka pleasure is after this function
};

Game_Actor.prototype.regenerateEnergyRate = function() {
let rate = 0;
if(this.isInMasturbationCouchPose() || this.isInJobPose()) rate = 0;
return rate;
};

Game_Actor.prototype.regenerateWill = function() {
var value = Math.floor(this.maxwill * this.willregen);
if (value !== 0) {
this.gainWill(value);
}
};
只有使用英雄称号时才能使用斧子★
RemtairyKarryn.js

装备英雄称号以外的称号只能徒手战斗
///////
// Halberd
////////////

Game_Actor.prototype.isUsingHalberd = function() {
if(this.isInSexPose() || this.isInDownPose() || !this.hasHalberd()) return false;
return true;
};

Game_Actor.prototype.hasHalberd = function() {
if(this.hasDisarmedState() || this.isStateAffected(STATE_NO_HALBERD_ID) || !this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO) || this.isInJobPose())
return false;
else
return true;
};
前一晚没有自慰第二天起床进入发情状态★
RemtairyKarryn.js

如果卡琳前一晚没有自慰第二天起床后性欲设置为33%发情
//used when resting
Game_Actor.prototype.recoverAll_nextDay = function() {
this.clearStates();
this._hp = this.mhp;
this._mp = this.mmp;

let mapId = $gameMap._mapId;

if(this._todayMasturbatedBeforeRest)
this.setPleasure(0);
else
this.setPleasureToArousalPoint();
};
疲劳度相关修改★
RemtairyKarryn.js

增加疲劳获得
减少疲劳恢复
重新设置疲劳等级
///////////////
// Resting and Fatigue
////////////////////

//Fatigue Gain
Game_Actor.prototype.fatigueGainRate = function() {
let rate = 2;

rate *= this.titlesFatigueGainRate();
if(this.ateArtisanMeal(ARTISAN_MEAL_ARMED)) {
if(this.isUsingThisTitle(TITLE_ID_GOURMET_FOODIE)) rate *= 0.5;
else rate *= 0.67;
}
if(this.isUsingStoreItem(STORE_ITEM_ENERGY_DRINK)) rate *= 0.8;

if(this.hasPassive(PASSIVE_ORGASM_ML_TWO_ID) && this._todayOrgasmML > 0)
rate *= 1 + Math.min(1, this._todayOrgasmML * 0.0015);
if(this.hasPassive(PASSIVE_HJ_COUNT_ONE_ID) && this._tempRecordHandjobPeople > 0)
rate *= 1 + Math.min(0.33, this._tempRecordHandjobPeople * 0.015);

if(this.hasGift(GIFT_ID_EMPEROR_LV4_FATIGUE_GAIN)) rate *= 0.85;

return rate;
};

Game_Actor.prototype.gainFatigue = function(value) {
this.setFatigue(this.fatigue + value);
};

//Fatigue Recovery
Game_Actor.prototype.fatigueRecoveryRate = function() {
let rate = 0.5;

rate *= this.titlesFatigueRecoveryRate();

if(this.hasPassive(PASSIVE_ORGASM_ML_TWO_ID) && this._todayOrgasmML > 0)
rate *= 1 + Math.min(0.6, this._todayOrgasmML * 0.002);

if(Prison.easyMode()) rate *= 1.5;

return rate;
};

Game_Actor.prototype.fatigueRecoveryNumber = function() {
let num = 0;
if(Prison.currentlyOutsidePrison())
num = this.edictsFatigueRestOffice();
else
num = this.edictsFatigueRestOutside();

if(this.isAroused() && !this._todayMasturbatedBeforeRest && !$gameSwitches.value(SWITCH_BOSS_CLEAR_BONUS_ID)) {
num *= this.fatigueRecoveryNumberRateWhenAroused();
}

num *= this.fatigueRecoveryRate();

return Math.round(num);
};

Game_Actor.prototype.getFatigueLevel = function() {
let fatigue = this.fatigue;
let level = 0;

if(fatigue >= 90) level = 5;
else if(fatigue >= 70) level = 4;
else if(fatigue >= 50) level = 3;
else if(fatigue >= 30) level = 2;
else if(fatigue >= 10) level = 1;

return level;
};

Game_Actor.prototype.fatigueLevelParamRate = function(paramId) {
let level = this.getFatigueLevel();
let rate = 1;

if(paramId === PARAM_MAXSTAMINA_ID || paramId === PARAM_MAXENERGY_ID) {
return rate;
}
else if(level > 0) {
rate -= Math.min(0.99, (level * 0.1));
}
return rate;
};
命中回避暴击修改★
RemtairyKarryn.js

修改HARD模式下命中回避乘2
如果发情命中回避减半
switch(id) {
case XPARAM_EVA_ID:
if(this.isInSexPose() || this.isInDownPose() || this.isInMasturbationPose() || this._isInReceptionistBattle)
return 0;
if(Prison.cheatMode() && ConfigManager.cheatActorNoEvasion)
return 0;
if(Prison.endlessHellCheat_cheatActorNoEvasion())
return 0;
if($gameTemp.isPlaytest() && TESTING_KARRYN_NO_EVADE)
return 0;
if($gameParty.isTutorialBattle())
return 0;

if($gameParty.hardMode())
value *= 2;
if(this.isAroused())
value *= 1;
break;
case XPARAM_HIT_ID:
value *= (1 + this._tempAttackSkillConsUsage * 0.05);

if($gameParty.hardMode())
value *= 2;
if(this.isAroused())
value *= 1;
break;
case XPARAM_CNT_ID:
if(this.isInDownPose())
return 0;
break;
case XPARAM_STA_REGEN_ID:
if(this.isStateAffected(STATE_POISON_ID))
return 0;

if(this.isStateAffected(STATE_YETI_HEAT_KARRYN_ONE_ID) || this.isStateAffected(STATE_YETI_HEAT_KARRYN_TWO_ID)) {
if(Prison.easyMode())
value *= 0.5;
else
value *= 0.25;
}
break;
}

return value;
};
卡琳行动速度修改★
RemtairyKarryn.js

除非被偷袭否则卡琳每回合都是先手
////////
// Speed

////////
// Action Speed

Game_Actor.prototype.bonusActionSpeed = function(item) {
let bonusSpeed = 100;
let itemId = -1;
if(item) itemId = item.id;

if(this.isStateAffected(STATE_KARRYN_FIRST_TURN_ID))
bonusSpeed += ACTION_SPEED_FAST_SECOND_PRIORITY;

if((item.id === SKILL_KARRYN_BLOWJOB_SELECTOR_ID) && this.hasPassive(PASSIVE_BJ_PEOPLE_TWO_ID))
bonusSpeed += ACTION_SPEED_FAST_THIRD_PRIORITY;
else if((item.id === SKILL_KARRYN_HANDJOB_SELECTOR_ID) && this.hasPassive(PASSIVE_HJ_ORGASM_TWO_ID))
bonusSpeed += ACTION_SPEED_FAST_THIRD_PRIORITY;
else if((item.id === SKILL_KARRYN_RIMJOB_SELECTOR_ID) && this.isUsingThisTitle(TITLE_ID_SEX_SKILL_RIMJOB_TWO))
bonusSpeed += ACTION_SPEED_FAST_THIRD_PRIORITY;

if($gameTemp.isPlaytest() && TESTING_ALWAYS_FIRST)
bonusSpeed += ACTION_SPEED_FAST_SECOND_PRIORITY;


return bonusSpeed;
};

Game_Actor.prototype.actionSpeedRate = function(item) {
let speedRate = 100;
let itemId = -1;

if(item) {
itemId = item.id;

if(item.hasTag(TAG_ACTOR_ATTACK_SKILL)) {
if(this.isUsingHalberd()) {
if(this.hasEdict(EDICT_HALBERD_OFFENSIVE_SPECIALIZATION)) speedRate += 1;
}
else {
if(this.hasEdict(EDICT_UNARMED_ATTACK_TRAINING_II)) speedRate += 1;
}
}
}


return speedRate;
抗性修改★
RemtairyKarryn.js

修改所有原始抗性为0
如果点开政策强化服装卡琳脱衣抗性增加
如果获得魅力称号性交抗性(淫语 视奸 爱抚 性交)提升战斗抗性下降(脱衣 重击 斩击 戳刺 )
代码太长只能选两个打个样

例1脱衣抗性
Game_Actor.prototype.karrynAccStripElementRate = function() {
let accBonus = 0;

if(this.isAroused()) accBonus += 0.5;

if(this.hasThisTitle(TITLE_ID_PURE_WHITE_STAINED_BRIDE)) accBonus += 0.5;
else if(this.hasThisTitle(TITLE_ID_ALLURING_WARDEN)) accBonus += 0.4;
else if(this.hasThisTitle(TITLE_ID_ENCHANTING_WARDEN)) accBonus += 0.3;
else if(this.hasThisTitle(TITLE_ID_STUNNING_WARDEN)) accBonus += 0.2;
else if(this.hasThisTitle(TITLE_ID_BEAUTIFUL_WARDEN)) accBonus += 0.1;

if(this.isEquippingThisAccessory(MISC_CALFSKINBELT_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) accBonus -= 0.125;
else accBonus -= 0.25;
}

if(this.isEquippingThisAccessory(NECKLACE_HERO_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) accBonus -= 0.5;
else accBonus -= 0.25;
}

if(this.hasEdict(EDICT_WARDEN_CLOTH_UPGRADE_FOUR)) accBonus -= 0.5;
else if(this.hasEdict(EDICT_WARDEN_CLOTH_UPGRADE_THREE)) accBonus -= 0.4;
else if(this.hasEdict(EDICT_WARDEN_CLOTH_UPGRADE_TWO)) accBonus -= 0.3;
else if(this.hasEdict(EDICT_WARDEN_CLOTH_UPGRADE_ONE)) accBonus -= 0.2;
else if(this.hasEdict(EDICT_WARDEN_OUTFIT)) accBonus -= 0.1;

return accBonus;
};

例2性交抗性
Game_Actor.prototype.karrynAccSexElementRate = function() {
let accBonus = 0;

if(this.isAroused()) accBonus += 0.5;

if(this.hasThisTitle(TITLE_ID_PURE_WHITE_STAINED_BRIDE)) accBonus -= 0.5;
else if(this.hasThisTitle(TITLE_ID_ALLURING_WARDEN)) accBonus -= 0.4;
else if(this.hasThisTitle(TITLE_ID_ENCHANTING_WARDEN)) accBonus -= 0.3;
else if(this.hasThisTitle(TITLE_ID_STUNNING_WARDEN)) accBonus -= 0.2;
else if(this.hasThisTitle(TITLE_ID_BEAUTIFUL_WARDEN)) accBonus -= 0.1;

if(this.isEquippingThisAccessory(RING_GOLDGLASS_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) accBonus -= 0.15;
else accBonus -= 0.3;
}
if(this.isEquippingThisAccessory(NECKLACE_EMERALD_ID)) accBonus += 0.2;
if(this.isEquippingThisAccessory(MISC_EYELINER_ID)) accBonus += 0.15;
if(this.isEquippingThisAccessory(MISC_PERFUME_ID)) accBonus += 0.2;
if(this.isEquippingThisAccessory(MISC_LATEXSTOCKING_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) accBonus -= 0.035;
else accBonus -= 0.07;
}

if(this.isEquippingThisAccessory(BRACELET_DIAMOND_CUFF_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) accBonus -= 0.3;
else accBonus -= 0.15;
}

return accBonus;
};
开局学习技能设置★
RemtairyKarryn.js

关闭DEBUG技能
关闭3个踢击(特殊踢击可以在特殊训练中打开政策使用)
关闭放荡姿态3 5 10只保留单回合和全自动
Game_Actor.prototype.setupKarrynSkills = function() {
//debug skills
//this.learnSkill(SKILL_DEBUG_SURRENDER_ID);
//this.learnSkill(SKILL_DEBUG_DEFEAT_ALL_ID);
//this.learnSkill(SKILL_DEBUG_STRIP_CLOTHES_ID);
//this.learnSkill(SKILL_FEMALE_ORGASM_ONE_ID);
//this.learnSkill(SKILL_FEMALE_ORGASM_TWO_ID);

//state skills
this.learnSkill(SKILL_REGAIN_FOOTING_ID);
this.learnSkill(SKILL_STAND_UP_ID);
this.learnSkill(SKILL_FALLEN_REST_ID);
this.learnSkill(SKILL_KARRYN_PICK_UP_HALBERD_ID);
this.learnSkill(SKILL_KARRYN_GET_CLOSER_TO_HALBERD_ID);

//attack skills
for(let i = 51; i <= 63; i++) {
this.learnSkill(i);
}
this.learnSkill(SKILL_KARRYN_LIGHT_KICK_ID);

//counterattack skills
for(let i = 1059; i <= 1064; i++) {
this.learnSkill(i);
}
//Kick skills
//this.learnSkill(SKILL_KARRYN_KICK_STRIKE_ID);
//this.learnSkill(SKILL_KARRYN_KICK_SLASH_ID);
//this.learnSkill(SKILL_KARRYN_KICK_THRUST_ID);
this.learnSkill(SKILL_KARRYN_KICK_HEAD_STRIKE_ID);
this.learnSkill(SKILL_KARRYN_KICK_ARM_SLASH_ID);
this.learnSkill(SKILL_KARRYN_KICK_LEG_THRUST_ID);

//energy skills
for(let i = 70; i <= 79; i++) {
this.learnSkill(i);
}
this.learnSkill(SKILL_KARRYN_TAUNT_ID);
this.learnSkill(SKILL_KARRYN_DOGEZA_ID);
this.learnSkill(SKILL_KARRYN_FLAUNT_ID);
this.learnSkill(SKILL_GIVE_UP_ID);
this.learnSkill(SKILL_SURRENDER_ID);
//this.learnSkill(SKILL_KARRYN_OPEN_PLEASURE_3TURNS_ID);
//this.learnSkill(SKILL_KARRYN_OPEN_PLEASURE_5TURNS_ID);
//this.learnSkill(SKILL_KARRYN_OPEN_PLEASURE_10TURNS_ID);
this.learnSkill(SKILL_KARRYN_OPEN_PLEASURE_BATTLE_ID);
this.learnSkill(SKILL_KARRYN_OPEN_PLEASURE_AUTO_MANUAL_ID);
this.learnSkill(SKILL_CAUTIOUS_REVITALIZE_ID);
this.learnSkill(SKILL_CAUTIOUS_SECOND_WIND_ID);
this.learnSkill(SKILL_CAUTIOUS_FIX_CLOTHES_ID);
this.learnSkill(SKILL_DEFENSIVE_REVITALIZE_ID);
this.learnSkill(SKILL_DEFENSIVE_SECOND_WIND_ID);
this.learnSkill(SKILL_DEFENSIVE_FIX_CLOTHES_ID);
this.learnSkill(SKILL_COUNTER_REVITALIZE_ID);
this.learnSkill(SKILL_COUNTER_SECOND_WIND_ID);
this.learnSkill(SKILL_COUNTER_FIX_CLOTHES_ID);
跳过心智准备阶段★
RemtairyWillpower.js

跳过心智准备阶段(心智阶段的BUFF效果我整合在精神指令中了之后会在RemtairyEnergy.js中说明)

//Mental Phase
Game_Actor.prototype.enterMentalPhase = function() {
if(this.isMentalPhaseDisabled()) return;
this.clearWillSkillsUsedCount();
this._mentalPhase = false; ⬅true改成false
this.refreshPose(true);
this.convertOrgasmRaidToAfter();
this.raidArousalCheck();
};
自慰被偷袭战前战后设置★
RemtairyKarrynOnani.js

添加一些负面BUFF
//Pre Battle
//Pre Masturbation Battle
Game_Actor.prototype.preMasturbationBattleSetup = function() {
this.preBattleSetup();
this.disableMentalPhase();
this.resetInvasionNoiseLevel();
this.resetOnaniFrustration();
this.setAsNoHalberdBattle();
this.clearBattleSkillsFlags();

this.addToActorMasturbatedCouchRecord();
this._todayMasturbatedBeforeRest = true;
this._orgasmCallQueuedUp = false;
this._startOfInvasionBattle = false;
this.removeState(STATE_CONFIDENT_ID);
this.addHornyState();
this._onaniFrustration++

$gameMap.changeBattleback(BATTLEBACK1_MASTURBATION_COUCH_NAME, null);
this.setMasturbationCouchPose();
$gameVariables.setValue(VARIABLE_TROOPID_ID, TROOP_ONANI_COUCH_ID);

this._masRightHand = false;
this._masLeftHand = false;
this._masHalberd = false;

this._dirty = true;
};

//Post Battle
//Post Masturbation Battle
Game_Actor.prototype.postMasturbationBattleCleanup = function() {
let invasionChance = this.getInvasionChance();
let invasionNoiseLevel = this.getInvasionNoiseLevel();
let invasionNoiseLevelEffect = Math.max(invasionChance * VAR_NOISE_LEVEL_INVASION_CHANCE, VAR_NOISE_LEVEL_MIN_EFFECT);

if(invasionChance > 0)
invasionChance += invasionNoiseLevel * invasionNoiseLevelEffect;

if(invasionChance > 0 && Math.randomInt(100) < invasionChance) {
$gameSwitches.setValue(SWITCH_INVASION_BATTLE_ID, true);
this._startOfInvasionBattle = true;
if(this._tempRecordOrgasmCount > 0)
BattleManager.setEnemySneakAttackBattle();
this.refreshSlutLvlStageVariables_General();
this.addHornyState();
this._onaniFrustration++;
this.addState(STATE_WEAKEN_ID);
this.addState(STATE_VULNERABLE_ID);
this.addState(STATE_OFFBALANCE_ID);
this.setPleasureToOrgasmPoint();
this.setWantsToOnaniInBattle(true);
}
else {
$gameSwitches.setValue(SWITCH_INVASION_BATTLE_ID, false);
this._startOfInvasionBattle = false;
this.postBattleCleanup();
$gameActors.actor(ACTOR_KARRYN_ID).setPleasure(0);
}

$gameActors.actor(ACTOR_KARRYN_ID).setWardenMapPose(0);
};
自慰顺序结算修改★
RemtairyKarrynOnani.js

优化了结算顺序
性欲高的部位会被优先选择
////////
// Is Valid Target

Game_Enemy.prototype.isValidTargetForMasturbateBattle_skillTouch = function() {
let actor = $gameActors.actor(ACTOR_KARRYN_ID);
let bodyType = this.enemyType();
let validTarget = false;

switch(bodyType) {
case ENEMYTYPE_MASTURBATE_BOOBS_TAG:
validTarget = actor.cockDesire >= 0;
break;
case ENEMYTYPE_MASTURBATE_CLIT_TAG:
validTarget = actor.cockDesire >= 100;
break;
case ENEMYTYPE_MASTURBATE_NIPPLES_TAG:
validTarget = actor.cockDesire >= 200;
break;
case ENEMYTYPE_MASTURBATE_♥♥♥♥♥_TAG:
validTarget = actor.cockDesire >= 125;
break;
case ENEMYTYPE_MASTURBATE_ANAL_TAG:
validTarget = actor.cockDesire >= 150;
break;
}

if(validTarget) {
this._selectionShowName = true;
this.masturbateBattleSpritePos_nipples();
this.masturbateBattleSpritePos_boobs();
return true;
}
else {
this._selectionShowName = false;
return false;
}
};

Game_Enemy.prototype.isValidTargetForMasturbateBattle_skillFinger = function() {
let actor = $gameActors.actor(ACTOR_KARRYN_ID);
let bodyType = this.enemyType();
let validTarget = false;

if(bodyType == ENEMYTYPE_MASTURBATE_♥♥♥♥♥_TAG) {
validTarget = actor.isWet || actor.♥♥♥♥♥Desire >= actor.buttDesire;
}
else if(bodyType == ENEMYTYPE_MASTURBATE_ANAL_TAG) {
validTarget = !actor.isWet || actor.buttDesire > actor.♥♥♥♥♥Desire;
}

if(validTarget) {
this._selectionShowName = true;
return true;
}
else {
this._selectionShowName = false;
return false;
}
};

Game_Enemy.prototype.isValidTargetForMasturbateBattle_skillSuck = function() {
let actor = $gameActors.actor(ACTOR_KARRYN_ID);
let bodyType = this.enemyType();
let validTarget = false;

if(bodyType == ENEMYTYPE_MASTURBATE_FINGERS_TAG) {
validTarget = actor.mouthDesire > actor.boobsDesire;
}
else if(bodyType == ENEMYTYPE_MASTURBATE_NIPPLES_SUCK_TAG) {
validTarget = actor.boobsDesire >= actor.mouthDesire;
}

if(validTarget) {
this._selectionShowName = true;
this.masturbateBattleSpritePos_fingers();
this.masturbateBattleSpritePos_nipples_suck();
return true;
}
else {
this._selectionShowName = false;
return false;
}
};
添加贩卖自慰录像获取金钱★
RemtairyKarrynOnani.js

(目前版本该政策没有启用 我修改为安装室内摄像头可以贩卖录像获取金钱
(EDICT_OFFICE_SELL_ONANI_VIDEO改为EDICT_OFFICE_INSIDE_CAMERA)
所有都要改)
if(this.hasEdict(EDICT_OFFICE_SELL_ONANI_VIDEO))
$gameParty.increaseExtraGoldReward(Math.randomInt(20 * levels));
改为
if(this.hasEdict(EDICT_OFFICE_INSIDE_CAMERA))
$gameParty.increaseExtraGoldReward(Math.randomInt(10 * levels));
};
兴奋状态修改★
RemtairyKarrynPassives.js

数值平衡调整
/////////
// Horny

Game_Actor.prototype.passiveHornyStateAddTurns = function() {
let baseAdd = 1;
let varianceTurns = 1;

if(this.hasPassive(PASSIVE_HORNY_COUNT_FOUR_ID)) {
baseAdd += 3;
varianceTurns += 3;
}
else if(this.hasPassive(PASSIVE_HORNY_COUNT_THREE_ID)) {
baseAdd += 2;
varianceTurns += 2;
}
else if(this.hasPassive(PASSIVE_HORNY_COUNT_TWO_ID)) {
baseAdd += 1;
varianceTurns += 1;
}

let hornyTurns = baseAdd + Math.randomInt(varianceTurns + 1);
return hornyTurns;
};

Game_Actor.prototype.passiveHornyStateAddTimeLimit = function() {
let baseAddTime = 15;
let varianceTime = 15;

if(this.hasPassive(PASSIVE_HORNY_COUNT_FOUR_ID)) {
baseAddTime += 45;
varianceTime += 45;
}
else if(this.hasPassive(PASSIVE_HORNY_COUNT_THREE_ID)) {
baseAddTime += 30;
varianceTime += 30;
}
else if(this.hasPassive(PASSIVE_HORNY_COUNT_TWO_ID)) {
baseAddTime += 15;
varianceTime += 15;
}

let hornyTimeLimit = baseAddTime + Math.randomInt(varianceTime);
return hornyTimeLimit;
};
被动达成要求修改★
RemtairyKarrynPassives.js

对以下被动达成要求做适当减小(公开高潮 性伴侣 踢鸡 夜战 战斗失败)
this._passiveRequirement_base[PASSIVE_ORGASM_PEOPLE_ONE_ID] = 1;
this._passiveRequirement_base[PASSIVE_ORGASM_PEOPLE_TWO_ID] = 25;
this._passiveRequirement_base[PASSIVE_ORGASM_PEOPLE_THREE_ID] = 50;
this._passiveRequirement_base[PASSIVE_ORGASM_PEOPLE_FOUR_ID] = 100;

this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_TOTAL_ONE_ID] = 10;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_TOTAL_TWO_ID] = 50;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_TOTAL_THREE_ID] = 100;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_TOTAL_FOUR_ID] = 300;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_TOTAL_FIVE_ID] = 500;

this._passiveRequirement_base[PASSIVE_COCKKICK_COUNT_ONE_ID] = 1;
this._passiveRequirement_base[PASSIVE_COCKKICK_COUNT_TWO_ID] = 10;
this._passiveRequirement_base[PASSIVE_COCKKICK_COUNT_THREE_ID] = 20;

this._passiveRequirement_base[PASSIVE_NIGHT_BATTLE_COUNT_ONE_ID] = 1;
this._passiveRequirement_base[PASSIVE_NIGHT_BATTLE_COUNT_TWO_ID] = 10;
this._passiveRequirement_base[PASSIVE_NIGHT_BATTLE_COUNT_THREE_ID] = 20;

this._passiveRequirement_base[PASSIVE_DEFEATED_COUNT_ONE_ID] = 1;
this._passiveRequirement_base[PASSIVE_DEFEATED_COUNT_TWO_ID] = 10;
this._passiveRequirement_base[PASSIVE_DEFEATED_COUNT_THREE_ID] = 15;
this._passiveRequirement_base[PASSIVE_DEFEATED_COUNT_FOUR_ID] = 20;
this._passiveRequirement_base[PASSIVE_DOGEZA_COUNT_ONE_ID] = 10;
this._passiveRequirement_base[PASSIVE_DOGEZA_COUNT_TWO_ID] = 20;
this._passiveRequirement_base[PASSIVE_DOGEZA_COUNT_THREE_ID] = 30;

this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_GOBLIN_ONE_ID] = 1;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_GOBLIN_TWO_ID] = 10;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_GOBLIN_THREE_ID] = 30;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_THUG_ONE_ID] = 1;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_THUG_TWO_ID] = 10;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_THUG_THREE_ID] = 30;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_GUARD_ONE_ID] = 1;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_GUARD_TWO_ID] = 10;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_GUARD_THREE_ID] = 30;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_NERD_ONE_ID] = 1;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_NERD_TWO_ID] = 10;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_NERD_THREE_ID] = 30;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_ROGUE_ONE_ID] = 1;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_ROGUE_TWO_ID] = 10;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_ROGUE_THREE_ID] = 30;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_SLIME_ONE_ID] = 1;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_SLIME_TWO_ID] = 10;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_SLIME_THREE_ID] = 30;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_LIZARDMAN_ONE_ID] = 1;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_LIZARDMAN_TWO_ID] = 10;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_LIZARDMAN_THREE_ID] = 30;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_ORC_ONE_ID] = 1;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_ORC_TWO_ID] = 10;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_ORC_THREE_ID] = 30;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_HOMELESS_ONE_ID] = 1;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_HOMELESS_TWO_ID] = 10;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_HOMELESS_THREE_ID] = 30;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_WEREWOLF_ONE_ID] = 1;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_WEREWOLF_TWO_ID] = 10;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_WEREWOLF_THREE_ID] = 30;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_YETI_ONE_ID] = 1;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_YETI_TWO_ID] = 10;
this._passiveRequirement_base[PASSIVE_SEXUAL_PARTNERS_YETI_THREE_ID] = 30;
敌人愤怒修改★
RemtairyKarrynPassives.js

当习得以下性伴侣被动敌人愤怒减小
///////
// Enemy Anger
//////////

Game_Actor.prototype.passiveEnemyAngerEffect = function(target) {
let angerEffect = 0;

if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_TOTAL_FIVE_ID))
angerEffect -= 99;
else if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_TOTAL_FOUR_ID))
angerEffect -= 69;
else if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_TOTAL_THREE_ID))
angerEffect -= 42;
else if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_TOTAL_TWO_ID))
angerEffect -= 32;
else if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_TOTAL_ONE_ID))
angerEffect -= 24;
失衡修改★
RemtairyKarrynPassives.js

/////////
// Off-balance

Game_Actor.prototype.passiveOffBalanceStateAddTurns = function() {
let baseAdd = -1;
let varianceTurns = 0;

if(this.hasPassive(PASSIVE_OFFBALANCE_COUNT_ONE_ID) && (this.isAroused() || this.isHorny)) {
baseAdd += 1;
}

return baseAdd + Math.randomInt(varianceTurns + 1);
};
战前获得自信★
RemtairyKarrynPassives.js

战斗前触发自信和冷静
/////////
// Pre Battle Passives

Game_Actor.prototype.preBattleConfidentPassiveEffects = function() {
let confidentChance = 10;
if(this.hasPassive(PASSIVE_SADISM_PLEASURE_ONE_ID)) {
confidentChance += 0.2;
}
if(this.hasPassive(PASSIVE_SADISM_ORGASM_TWO_ID)) {
confidentChance += 0.2;
}
if(this.isEquippingThisAccessory(NECKLACE_DIAMOND_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) confidentChance += 0.1;
else confidentChance += 0.2;
}

if(this.hasPassive(PASSIVE_COCKINESS_COUNT_ONE_ID) && this.cockiness >= 33) {
confidentChance += this.cockiness * 0.002;
}

if(Math.random() < confidentChance) {
this.addState(STATE_CONFIDENT_ID);
this.isCoolAndCollected();
this.setWillToMax();
}
};
内裤丢失设定★
RemtairyKarrynPassives.js

内裤丢失概率调整
////////////
// Panties

Game_Actor.prototype.passiveStripOffPanties_losePantiesEffect = function() {
let loseChance = 0.5;

if(this.hasPassive(PASSIVE_PANTIES_STRIPPED_TWO_ID)) loseChance += 0.5;
else if(this.hasPassive(PASSIVE_PANTIES_STRIPPED_ONE_ID)) loseChance += 0.25;

if(Math.random() < loseChance)
this._lostPanties = true;
};

Game_Actor.prototype.passiveWakeUp_losePantiesEffect = function() {
let loseChance = 0.5;

if(this.hasPassive(PASSIVE_PANTIES_STRIPPED_THREE_ID)) {
let mapId = $gameMap._mapId;

if(mapId === MAP_ID_KARRYN_OFFICE) {
loseChance += Math.min(0.5, this.getInvasionChance_Outside() * 0.01);
}
else if(mapId === MAP_ID_LVL1_GUARD_STATION || mapId === MAP_ID_LVL2_GUARD_STATION || mapId === MAP_ID_LVL3_GUARD_STATION || mapId === MAP_ID_LVL4_GUARD_STATION) {
loseChance += 0.15 + Math.min(0.45, Math.max(Prison.guardAggression * 0.015, this.getInvasionChance() * 0.01));
}
else {
loseChance += 0.75;
}
}

if(Math.random() < loseChance) {
this._lostPanties = true;
this.takeOffPanties();
}
};
小穴潮湿设定★
RemtairyKarrynPassives.js

发情时小穴更快潮湿
////////
// ♥♥♥♥♥ Drip
////////////////

Game_Actor.prototype.passive♥♥♥♥♥JuiceDrip = function() {
let value = 0;

if(this.isAroused()) {
value += 10;

if(this.hasPassive(PASSIVE_MAX_♥♥♥♥♥_DESIRE_SECOND_ID)) value += 1;

if(this.hasPassive(PASSIVE_♥♥♥♥♥_JUICE_ML_TWO_ID)) value += 3;
else if(this.hasPassive(PASSIVE_♥♥♥♥♥_JUICE_ML_ONE_ID)) value += 1;
if(this.hasPassive(PASSIVE_♥♥♥♥♥_PETTED_COUNT_THREE_ID)) value += 1;
if(this.hasPassive(PASSIVE_♥♥♥♥♥_SEX_PEOPLE_FIVE_ID)) value += 1;

if(this.hasPassive(PASSIVE_MASOCHISM_ORGASM_TWO_ID)) value += 1;
if(this.hasPassive(PASSIVE_SADISM_ORGASM_TWO_ID)) value += 1;
}

if(this.hasPassive(PASSIVE_TALK_♥♥♥♥♥_TWO_ID))
value += Math.min(4, this._tempRecordTalkedAtAbout♥♥♥♥♥People * 0.4);

if(this.hasPassive(PASSIVE_ORGASM_COUNT_FIVE_ID)) value += this._todayOrgasmCount;
if(this.hasPassive(PASSIVE_PANTIES_STRIPPED_TWO_ID) && !this.isWearingPanties()) value += 2;

return value
};
卡琳性技能伤害修改★
RemtairyKarrynPassives.js

伤害调整
///////////////
// Calculate Skill Rating
/////////////////////

Game_Actor.prototype.calculateKissSkillRating = function() {
let rating = 1;
if(this._firstKissWantedID === -1) rating -= 1;

rating += this.kissLvl() * 0.1;

this._kissSkillRating = rating;
};

Game_Actor.prototype.calculatePettingSkillRating = function() {
let rating = 1;

this._pettingSkillRating = rating;
};

Game_Actor.prototype.calculateHandjobSkillRating = function() {
let rating = 2;

rating += this.handjobLvl() * 0.2;

this._handjobSkillRating = rating;
};

Game_Actor.prototype.calculateBlowjobSkillRating = function() {
let rating = 3;

rating += this.blowjobLvl() * 0.3;

this._blowjobSkillRating = rating;
};

Game_Actor.prototype.calculateRimjobSkillRating = function() {
let rating = 4;

rating += this.rimjobLvl() * 0.4;

this._rimjobSkillRating = rating;
};

Game_Actor.prototype.calculateFootjobSkillRating = function() {
let rating = 2;

rating += this.footjobLvl() * 0.2;

this._footjobSkillRating = rating;
};

Game_Actor.prototype.♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ = function() {
let rating = 3;

rating += this.♥♥♥♥♥♥♥♥♥♥♥♥() * 0.3;

this.♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ = rating;
};

Game_Actor.prototype.calculate♥♥♥♥♥SexSkillRating = function() {
let rating = 3;
if(this.hasPassive(PASSIVE_FIRST_SEX_ID)) rating -= 1;

rating += this.♥♥♥♥♥SexLvl() * 0.3;

this._♥♥♥♥♥SexSkillRating = Math.max(1, rating);
};

Game_Actor.prototype.calculateAnalSexSkillRating = function() {
let rating = 3;

rating += this.analSexLvl() * 0.3;

this._analSexSkillRating = rating;
};

Game_Actor.prototype.calculateMasturbateSkillRating = function() {
let rating = 1;
rating += this.masturbateLvl() * 0.1;
if(this.hasPassive(CHARA_CREATE_THREE_ONANI_ID)) rating += 1;

this._masturbateSkillRating = rating;
};
性技能消耗修改★
RemtairyKarrynPassives.js

取消使用性技能的消耗
/////////
// Skill Cost
//////////////

Game_Actor.prototype.passiveKissSkillCostRate = function() {
let costRate = 0;

return costRate;
};

Game_Actor.prototype.passiveHandjobSkillCostRate = function() {
let costRate = 0;

return costRate;
};

Game_Actor.prototype.passiveBlowjobSkillCostRate = function() {
let costRate = 0;

return costRate;
};

Game_Actor.prototype.passiveRimjobSkillCostRate = function() {
let costRate = 0;

return costRate;
};

Game_Actor.prototype.passiveFootjobSkillCostRate = function() {
let costRate = 0;

return costRate;
};


Game_Actor.prototype.♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ = function() {
let costRate = 0;

return costRate;
};

Game_Actor.prototype.passive♥♥♥♥♥SexSkillCostRate = function() {
let costRate = 0;

return costRate;
};

Game_Actor.prototype.passiveAnalSexSkillCostRate = function() {
let costRate = 0;

return costRate;
};
卡琳抗性修改★
RemtairyKarrynPassives.js

所有初始抗性默认归0
代码太长打个例
//////
// Element Rate
/////////////


Game_Actor.prototype.karrynPassiveCombatElementRate = function(elementId) {
let elementBonus = 0;
卡琳敏感度修改★
RemtairyKarrynPassives.js

为卡琳初始敏感度添加50%如果发情再加50%
代码太长打个例总共18个项目修改
///////////////
// Calculate Sensitivity Rating
/////////////////////

Game_Actor.prototype.calculateMouthSensitivityRating = function() {
let rating = 0.5;

if(this.isAroused()) rating += 0.5;
卡琳性等级修改A★
RemtairyKarrynPassives.js

代码太长分为两段
A(亲吻 爱抚 手交 口交 舔屁眼 足交 乳交 性交)
///////////
// Calculate Skill Lvl
/////////////////////

Game_Actor.prototype.calculateKissSkillLvl = function() {
let level = 0;

if(this.isEquippingThisAccessory(MISC_LIPGLOSS_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_BODY_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_MOUTH_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_THREE_MOUTH_ID)) level += 1;

if(this.hasPassive(PASSIVE_KISS_PEOPLE_FOUR_ID)) level += 4;
else if(this.hasPassive(PASSIVE_KISS_PEOPLE_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_KISS_PEOPLE_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_KISS_PEOPLE_ONE_ID)) level += 1;

if(this.hasPassive(PASSIVE_KISS_USAGE_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_KISS_USAGE_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_KISS_USAGE_ONE_ID)) level += 1;

this._baseKissLvl = level;
};
Game_Actor.prototype.calculatePettingSkillLvl = function() {
let level = 0;

if(this.isEquippingThisAccessory(MISC_NAILPOLISH_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_BODY_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_THREE_ONANI_ID)) level += 1;

if(this.hasPassive(PASSIVE_COCK_PETTING_PEOPLE_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_COCK_PETTING_PEOPLE_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_COCK_PETTING_PEOPLE_ONE_ID)) level += 1;

if(this.hasPassive(PASSIVE_HJ_COUNT_THREE_ID)) level += 1;

this._basePettingLvl = level;
};
Game_Actor.prototype.calculateHandjobSkillLvl = function() {
let level = 0;

if(this.isEquippingThisAccessory(MISC_NAILPOLISH_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_BODY_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) level += 1;

if(this.hasPassive(PASSIVE_HJ_PEOPLE_FOUR_ID)) level += 4;
else if(this.hasPassive(PASSIVE_HJ_PEOPLE_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_HJ_PEOPLE_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_HJ_PEOPLE_ONE_ID)) level += 1;

if(this.hasPassive(PASSIVE_HJ_COUNT_ONE_ID)) level += 1;

if(this.hasPassive(PASSIVE_HJ_USAGE_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_HJ_USAGE_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_HJ_USAGE_ONE_ID)) level += 1;

this._baseHandjobLvl = level;
};
Game_Actor.prototype.calculateBlowjobSkillLvl = function() {
let level = 0;

if(this.isEquippingThisAccessory(MISC_LIPGLOSS_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_BODY_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_MOUTH_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_THREE_MOUTH_ID)) level += 1;

if(this.hasPassive(PASSIVE_BJ_PEOPLE_FOUR_ID)) level += 5;
else if(this.hasPassive(PASSIVE_BJ_PEOPLE_THREE_ID)) level += 4;
else if(this.hasPassive(PASSIVE_BJ_PEOPLE_TWO_ID)) level += 3;
else if(this.hasPassive(PASSIVE_BJ_PEOPLE_ONE_ID)) level += 2;
else if(this.hasPassive(PASSIVE_BJ_COUNT_ONE_ID)) level += 1;

if(this.hasPassive(PASSIVE_BJ_USAGE_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_BJ_USAGE_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_BJ_USAGE_ONE_ID)) level += 1;

this._baseBlowjobLvl = level;
};
Game_Actor.prototype.calculateRimjobSkillLvl = function() {
let level = 0;

if(this.isEquippingThisAccessory(MISC_LIPGLOSS_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_BODY_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_MOUTH_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_THREE_MOUTH_ID)) level += 1;

if(this.hasPassive(PASSIVE_RIMJOB_PEOPLE_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_RIMJOB_PEOPLE_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_RIMJOB_PEOPLE_ONE_ID)) level += 1;

if(this.hasPassive(PASSIVE_RIMJOB_COUNT_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_RIMJOB_COUNT_ONE_ID)) level += 1;

if(this.hasPassive(PASSIVE_RIMJOB_USAGE_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_RIMJOB_USAGE_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_RIMJOB_USAGE_ONE_ID)) level += 1;

if(this.hasPassive(PASSIVE_MASOCHISM_PLEASURE_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_MASOCHISM_PLEASURE_ONE_ID)) level += 1;


this._baseRimjobLvl = level;
};
Game_Actor.prototype.calculateFootjobSkillLvl = function() {
let level = 0;

if(this.isEquippingThisAccessory(MISC_LATEXSTOCKING_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_BODY_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_THREE_SADO_ID)) level += 1;

if(this.hasPassive(PASSIVE_FOOTJOB_PEOPLE_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_FOOTJOB_PEOPLE_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_FOOTJOB_PEOPLE_ONE_ID)) level += 1;

if(this.hasPassive(PASSIVE_FOOTJOB_COUNT_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_FOOTJOB_USAGE_ONE_ID)) level += 1;

if(this.hasPassive(PASSIVE_FOOTJOB_USAGE_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_FOOTJOB_USAGE_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_FOOTJOB_USAGE_ONE_ID)) level += 1;

if(this.hasPassive(PASSIVE_SADISM_PLEASURE_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_SADISM_PLEASURE_ONE_ID)) level += 1;

this._baseFootjobLvl = level;
};
Game_Actor.prototype.♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ = function() {
let level = 0;

if(this.isEquippingThisAccessory(MISC_EYELINER_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_BODY_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_BOOBS_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_NIPPLES_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_THREE_BOOBS_ID)) level += 1;

if(this.hasPassive(♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥)) level += 4;
else if(this.hasPassive(♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥)) level += 3;
else if(this.hasPassive(♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥)) level += 2;
else if(this.hasPassive(♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥)) level += 1;

if(this.hasPassive(♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥)) level += 1;

if(this.hasPassive(♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥)) level += 3;
else if(this.hasPassive(♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥)) level += 2;
else if(this.hasPassive(♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥)) level += 1;

this.♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ = level;
};
Game_Actor.prototype.calculate♥♥♥♥♥SexSkillLvl = function() {
let level = 0;

if(this.isEquippingThisAccessory(MISC_HIGHHEELS_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_BODY_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_CLIT_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_♥♥♥♥♥_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_THREE_♥♥♥♥♥_ID)) level += 1;

if(this.hasPassive(PASSIVE_♥♥♥♥♥_SEX_PEOPLE_FOUR_ID)) level += 4;
else if(this.hasPassive(PASSIVE_♥♥♥♥♥_SEX_PEOPLE_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_♥♥♥♥♥_SEX_PEOPLE_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_♥♥♥♥♥_SEX_PEOPLE_ONE_ID)) level += 1;

if(this.hasPassive(PASSIVE_♥♥♥♥♥_SEX_COUNT_ONE_ID)) level += 1;

if(this.hasPassive(PASSIVE_♥♥♥♥♥_SEX_USAGE_FOUR_ID)) level += 4;
else if(this.hasPassive(PASSIVE_♥♥♥♥♥_SEX_USAGE_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_♥♥♥♥♥_SEX_USAGE_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_♥♥♥♥♥_SEX_USAGE_ONE_ID)) level += 1;

this._base♥♥♥♥♥SexLvl = level;
};
卡琳性等级修改B★
RemtairyKarrynPassives.js

代码太长分为两段
B(肛交 自慰 受虐 施虐)
Game_Actor.prototype.calculateAnalSexSkillLvl = function() {
let level = 0;

if(this.isEquippingThisAccessory(MISC_SCARF_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_BODY_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_BUTT_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_ANAL_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_THREE_BUTT_ID)) level += 1;

if(this.hasPassive(PASSIVE_ANAL_SEX_PEOPLE_FOUR_ID)) level += 4;
else if(this.hasPassive(PASSIVE_ANAL_SEX_PEOPLE_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_ANAL_SEX_PEOPLE_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_ANAL_SEX_PEOPLE_ONE_ID)) level += 1;

if(this.hasPassive(PASSIVE_ANAL_SEX_COUNT_ONE_ID)) level += 1;

if(this.hasPassive(PASSIVE_ANAL_SEX_USAGE_FOUR_ID)) level += 4;
else if(this.hasPassive(PASSIVE_ANAL_SEX_USAGE_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_ANAL_SEX_USAGE_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_ANAL_SEX_USAGE_ONE_ID)) level += 1;

this._baseAnalSexLvl = level;
};
Game_Actor.prototype.calculateMasturbateSkillLvl = function() {
let level = 0;

if(this.isEquippingThisAccessory(MISC_PERFUME_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_TWO_BODY_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_THREE_ONANI_ID)) level += 1;

if(this.hasPassive(PASSIVE_MASTURBATED_COUCH_COUNT_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_MASTURBATED_COUCH_COUNT_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_MASTURBATED_COUCH_COUNT_ONE_ID)) level += 1;

if(this.hasPassive(PASSIVE_MASTURBATED_INBATTLE_COUNT_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_MASTURBATED_INBATTLE_COUNT_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_MASTURBATED_INBATTLE_COUNT_ONE_ID)) level += 1;

if(this.hasPassive(PASSIVE_MASTURBATED_GLORYHOLE_COUNT_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_MASTURBATED_GLORYHOLE_COUNT_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_MASTURBATED_GLORYHOLE_COUNT_ONE_ID)) level += 1;

this._baseMasturbateLvl = level;
};

Game_Actor.prototype.calculateMasochismSkillLvl = function() {
let level = 0;

if(this.hasPassive(PASSIVE_MASOCHISM_ORGASM_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_MASOCHISM_ORGASM_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_MASOCHISM_ORGASM_ONE_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) level += 6;

if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_GOBLIN_THREE_ID)) level += 1;
if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_THUG_THREE_ID)) level += 1;
if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_GUARD_THREE_ID)) level += 1;
if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_NERD_THREE_ID)) level += 1;
if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_ROGUE_THREE_ID)) level += 1;
if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_SLIME_THREE_ID)) level += 1;
if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_LIZARDMAN_THREE_ID)) level += 1;
if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_ORC_THREE_ID)) level += 1;
if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_HOMELESS_THREE_ID)) level += 1;
if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_WEREWOLF_THREE_ID)) level += 1;
if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_YETI_THREE_ID)) level += 1;

//if(this.hasPassive(PASSIVE_TALK_ORGASM_ONE_ID)) level++;
//if(this.hasPassive(PASSIVE_BUTT_SPANKED_PEOPLE_ONE_ID)) level++;
//if(this.hasPassive(PASSIVE_BUTT_SPANKED_PEOPLE_THREE_ID)) level++;
//if(this.hasPassive(PASSIVE_DEFEATED_COUNT_TWO_ID)) level++;
//if(this.hasPassive(PASSIVE_DEFEATED_COUNT_THREE_ID)) level++;
//if(this.hasPassive(PASSIVE_DOGEZA_COUNT_ONE_ID)) level++;
//if(this.hasPassive(PASSIVE_DOGEZA_COUNT_THREE_ID)) level++;
//if(this.hasPassive(PASSIVE_FALLEN_COUNT_TWO_ID)) level++;
//if(this.hasPassive(PASSIVE_DOWNSTAMINA_COUNT_THREE_ID)) level++;
//if(this.hasPassive(PASSIVE_RIMJOB_PEOPLE_TWO_ID)) level++;
//if(this.hasPassive(PASSIVE_RIMJOB_USAGE_TWO_ID)) level++;
//if(this.hasPassive(PASSIVE_URINAL_COUNT_THREE_ID)) level++;
//if(this.hasPassive(PASSIVE_TIED_SEX_COUNT_TWO_ID)) level++;
//if(this.hasPassive(PASSIVE_PILLORY_SEX_COUNT_TWO_ID)) level++;
//if(this.hasPassive(PASSIVE_PILLORY_SEX_COUNT_THREE_ID)) level++;
//if(this.hasPassive(PASSIVE_SUCKED_FINGERS_PEOPLE_THREE_ID)) level++;
//if(this.hasPassive(PASSIVE_FACE_BUKKAKE_COUNT_TWO_ID)) level++;

this._baseMasochismLvl = level;
};

Game_Actor.prototype.calculateSadismSkillLvl = function() {
let level = 0;

if(this.hasPassive(PASSIVE_SADISM_ORGASM_THREE_ID)) level += 3;
else if(this.hasPassive(PASSIVE_SADISM_ORGASM_TWO_ID)) level += 2;
else if(this.hasPassive(PASSIVE_SADISM_ORGASM_ONE_ID)) level += 1;

if(this.hasPassive(CHARA_CREATE_THREE_SADO_ID)) level += 12;

//if(this.hasPassive(PASSIVE_SUBDUED_ERECT_COUNT_TWO_ID)) level += 2;
//else if(this.hasPassive(PASSIVE_SUBDUED_ERECT_COUNT_ONE_ID)) level += 1;
//if(this.hasPassive(PASSIVE_COCKKICK_COUNT_THREE_ID)) level += 3;
//else if(this.hasPassive(PASSIVE_COCKKICK_COUNT_TWO_ID)) level += 2;
//else if(this.hasPassive(PASSIVE_COCKKICK_COUNT_ONE_ID)) level += 1;
//if(this.hasPassive(PASSIVE_COCKINESS_COUNT_ONE_ID)) level++;
//if(this.hasPassive(PASSIVE_HJ_USAGE_TWO_ID)) level++;
//if(this.hasPassive(♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥)) level++;
//if(this.hasPassive(PASSIVE_♥♥♥♥♥_SEX_USAGE_TWO_ID)) level++;
//if(this.hasPassive(PASSIVE_FOOTJOB_PEOPLE_TWO_ID)) level++;
//if(this.hasPassive(PASSIVE_FOOTJOB_USAGE_TWO_ID)) level++;
//if(this.hasPassive(PASSIVE_FLOOR_EJACULATION_COUNT_TWO_ID)) level += 2;
//else if(this.hasPassive(PASSIVE_FLOOR_EJACULATION_COUNT_ONE_ID)) level += 1;
//if(this.hasPassive(PASSIVE_TRAINER_BLUEBALLED_COUNT_ONE_ID)) level++;

this._baseSadismLvl = level;
};
魅力等级修改★
RemtairyKarrynPassives.js

将魅力等级与被动获得数挂钩每获得1个被动魅力加1
总共482个被动代码太长只部分举例
///////
// Passive Param
//////////

Game_Actor.prototype.passiveParamBonus = function(paramId) {
let paramBonus = 0;

switch(paramId) {
case PARAM_CHARM_ID:

if(this.hasPassive(PASSIVE_SECRET_CURIOSITY_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_MOUTH_DESIRE_FIRST_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_BOOBS_DESIRE_FIRST_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_♥♥♥♥♥_DESIRE_FIRST_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_BUTT_DESIRE_FIRST_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_COCK_DESIRE_FIRST_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_FIRST_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_MOUTH_DESIRE_SECOND_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_BOOBS_DESIRE_SECOND_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_♥♥♥♥♥_DESIRE_SECOND_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_BUTT_DESIRE_SECOND_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_COCK_DESIRE_SECOND_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_SECOND_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_MOUTH_DESIRE_THREE_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_BOOBS_DESIRE_THREE_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_♥♥♥♥♥_DESIRE_THREE_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_BUTT_DESIRE_THREE_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_COCK_DESIRE_THREE_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_THREE_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_MOUTH_DESIRE_FOUR_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_BOOBS_DESIRE_FOUR_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_♥♥♥♥♥_DESIRE_FOUR_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_BUTT_DESIRE_FOUR_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_COCK_DESIRE_FOUR_ID)) paramBonus += 1;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_FOUR_ID)) paramBonus += 1;



if(this.hasPassive(PASSIVE_ORGASM_COUNT_FOUR_ID) && this._tempRecordOrgasmCount > 0)
paramBonus += Math.round(this._tempRecordOrgasmCount * 1.4);

if(this.hasPassive(PASSIVE_MAX_MOUTH_DESIRE_FOUR_ID) && this._tempRecordKissedPeople > 0)
paramBonus += Math.round(this._tempRecordKissedPeople * 1.4);

if(this.hasPassive(PASSIVE_BUKKAKE_MAX_ML_ONE_ID) && this.getCurrentBukkakeTotal() > 0)
paramBonus += Math.min(8, Math.ceil(this.getCurrentBukkakeTotal() / 28));

if(this.hasPassive(♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥) && this.♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ > 0)
paramBonus += Math.min(10, Math.round(this.♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ * 0.8));

if(this.hasPassive(PASSIVE_TOYS_PLEASURE_TWO_ID) && this.isWearingAnyToy()) {
if(this.isWearingClitToy()) paramBonus++;
if(this.isWearing♥♥♥♥♥Toy()) paramBonus++;
if(this.isWearingAnalToy()) paramBonus++;
}
break;
卡琳高潮伤害调整★
RemtairyKarrynPassives.js

初始伤害10
卡琳为处女时伤害+5
装备香水时提升50%精力但伤害+5
获得相应被动和称号伤害各有加减
/////////
// Female Orgasm
// Orgasm Damage
/////////////

Game_Actor.prototype.passiveFemaleOrgasmEnergyDamage = function() {
let enDmg = 10;

if(this.isVirgin()) enDmg += 5;

if(this.hasPassive(PASSIVE_ORGASM_TRIPLE_ID)) enDmg += 3;
else if(this.hasPassive(PASSIVE_ORGASM_DOUBLE_ID)) enDmg += 2;

if(this.hasThisTitle(TITLE_ID_HARDCORE_MASOCHIST)) enDmg -= 3;
else if(this.hasThisTitle(TITLE_ID_SOFTCORE_MASOCHIST)) enDmg -= 2;

if(this.isEquippingThisAccessory(MISC_PERFUME_ID)) enDmg += 5;

if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_TOTAL_FIVE_ID)) enDmg -= 5;
else if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_TOTAL_FOUR_ID)) enDmg -= 4;
else if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_TOTAL_THREE_ID)) enDmg -= 3;
else if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_TOTAL_TWO_ID)) enDmg -= 2;
else if(this.hasPassive(PASSIVE_SEXUAL_PARTNERS_TOTAL_ONE_ID)) enDmg -= 1;

if(this.ateArtisanMeal(ARTISAN_MEAL_HEART)) {
if(this.isUsingThisTitle(TITLE_ID_GOURMET_FOODIE)) enDmg -= 3;
else enDmg -= 2;
}

if($gameParty.isTutorialBattle()) enDmg -= 10;
if(Karryn.isInMasturbationCouchPose()) enDmg -= 5;
if(this.isInMasturbationInBattlePose()) enDmg -= 5;

if($gameParty.isInWaitressBattle) enDmg += 5;
if($gameParty.isInReceptionistBattle) enDmg += 5;
if($gameParty.isInGloryBattle) enDmg += 5;
if($gameParty.isInStripperBattle) enDmg += 5;
if($gameParty.isInTrainerBattle) enDmg += 5;
if($gameSwitches.value(SWITCH_INVASION_BATTLE_ID)) enDmg += 5;

return Math.max(5, Math.round(enDmg + Math.random() * (enDmg * 0.2)));
};
卡琳最大性欲调整★
RemtairyKarrynPassives.js

根据魅力称号等级提升
////////
// Max Desire
/////////

Game_Actor.prototype.calculateAllMaxDesires = function() {
this.calculateMaxMouthDesire();
this.calculateMaxBoobsDesire();
this.calculateMax♥♥♥♥♥Desire();
this.calculateMaxButtDesire();
this.calculateMaxCockDesire();
};
Game_Actor.prototype.calculateMaxMouthDesire = function() { //max mouth desire
let upperLimit = 50;

if(this.hasThisTitle(TITLE_ID_PURE_WHITE_STAINED_BRIDE)) upperLimit += 150;
else if(this.hasThisTitle(TITLE_ID_ALLURING_WARDEN)) upperLimit += 100;
else if(this.hasThisTitle(TITLE_ID_ENCHANTING_WARDEN)) upperLimit += 75;
else if(this.hasThisTitle(TITLE_ID_STUNNING_WARDEN)) upperLimit += 50;
else if(this.hasThisTitle(TITLE_ID_BEAUTIFUL_WARDEN)) upperLimit += 25;

let cap = 200;

this._maxMouthDesire = Math.min(200, Math.round(upperLimit));
};
Game_Actor.prototype.calculateMaxBoobsDesire = function() { //max boobs desire
let upperLimit = 50;

if(this.hasThisTitle(TITLE_ID_PURE_WHITE_STAINED_BRIDE)) upperLimit += 150;
else if(this.hasThisTitle(TITLE_ID_ALLURING_WARDEN)) upperLimit += 100;
else if(this.hasThisTitle(TITLE_ID_ENCHANTING_WARDEN)) upperLimit += 75;
else if(this.hasThisTitle(TITLE_ID_STUNNING_WARDEN)) upperLimit += 50;
else if(this.hasThisTitle(TITLE_ID_BEAUTIFUL_WARDEN)) upperLimit += 25;

let cap = 200;

this._maxBoobsDesire = Math.min(200, Math.round(upperLimit));
};
Game_Actor.prototype.calculateMax♥♥♥♥♥Desire = function() { //max ♥♥♥♥♥ desire
let upperLimit = 50;

if(this.hasThisTitle(TITLE_ID_PURE_WHITE_STAINED_BRIDE)) upperLimit += 150;
else if(this.hasThisTitle(TITLE_ID_ALLURING_WARDEN)) upperLimit += 100;
else if(this.hasThisTitle(TITLE_ID_ENCHANTING_WARDEN)) upperLimit += 75;
else if(this.hasThisTitle(TITLE_ID_STUNNING_WARDEN)) upperLimit += 50;
else if(this.hasThisTitle(TITLE_ID_BEAUTIFUL_WARDEN)) upperLimit += 25;

let cap = 200;

this._max♥♥♥♥♥Desire = Math.min(200, Math.round(upperLimit));
};
Game_Actor.prototype.calculateMaxButtDesire = function() { //max butt desire
let upperLimit = 50;

if(this.hasThisTitle(TITLE_ID_PURE_WHITE_STAINED_BRIDE)) upperLimit += 150;
else if(this.hasThisTitle(TITLE_ID_ALLURING_WARDEN)) upperLimit += 100;
else if(this.hasThisTitle(TITLE_ID_ENCHANTING_WARDEN)) upperLimit += 75;
else if(this.hasThisTitle(TITLE_ID_STUNNING_WARDEN)) upperLimit += 50;
else if(this.hasThisTitle(TITLE_ID_BEAUTIFUL_WARDEN)) upperLimit += 25;

let cap = 200;

this._maxButtDesire = Math.min(200, Math.round(upperLimit));
};
Game_Actor.prototype.calculateMaxCockDesire = function() { //max ♥♥♥♥ desire
let upperLimit = 50;

if(this.hasThisTitle(TITLE_ID_PURE_WHITE_STAINED_BRIDE)) upperLimit += 150;
else if(this.hasThisTitle(TITLE_ID_ALLURING_WARDEN)) upperLimit += 100;
else if(this.hasThisTitle(TITLE_ID_ENCHANTING_WARDEN)) upperLimit += 75;
else if(this.hasThisTitle(TITLE_ID_STUNNING_WARDEN)) upperLimit += 50;
else if(this.hasThisTitle(TITLE_ID_BEAUTIFUL_WARDEN)) upperLimit += 25;

let cap = 200;

this._maxCockDesire = Math.min(200, Math.round(upperLimit));
};
卡琳最小性欲值调整★
RemtairyKarrynPassives.js

获得相关被动提升最小性欲
开局问题选择的敏感部位最小性欲值+50
///////
// Minimum Desire
// Minimal Desire

Game_Actor.prototype.minimumMouthDesireLimit = function() {
let desire = 0;

if(this.hasPassive(PASSIVE_MAX_MOUTH_DESIRE_FIRST_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_MOUTH_DESIRE_SECOND_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_MOUTH_DESIRE_THREE_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_MOUTH_DESIRE_FOUR_ID)) desire += 10;

if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_FIRST_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_SECOND_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_THREE_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_FOUR_ID)) desire += 10;

if(this.hasPassive(PASSIVE_ORGASM_COUNT_SEVEN_ID)) desire += 70;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_SIX_ID)) desire += 60;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_FIVE_ID)) desire += 50;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_FOUR_ID)) desire += 40;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_THREE_ID)) desire += 30;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_TWO_ID)) desire += 20;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_ONE_ID)) desire += 10;

if(this.hasPassive(CHARA_CREATE_TWO_MOUTH_ID)) desire += 50;

if($gameParty.isTutorialBattle()) desire += 100;

return desire;
};
Game_Actor.prototype.minimumBoobsDesireLimit = function() {
let desire = 0;

if(this.hasPassive(PASSIVE_MAX_BOOBS_DESIRE_FIRST_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_BOOBS_DESIRE_SECOND_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_BOOBS_DESIRE_THREE_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_BOOBS_DESIRE_FOUR_ID)) desire += 10;

if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_FIRST_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_SECOND_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_THREE_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_FOUR_ID)) desire += 10;

if(this.hasPassive(PASSIVE_ORGASM_COUNT_SEVEN_ID)) desire += 70;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_SIX_ID)) desire += 60;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_FIVE_ID)) desire += 50;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_FOUR_ID)) desire += 40;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_THREE_ID)) desire += 30;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_TWO_ID)) desire += 20;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_ONE_ID)) desire += 10;

if(this.hasPassive(CHARA_CREATE_TWO_BOOBS_ID)) desire += 50;
if(this.hasPassive(CHARA_CREATE_TWO_NIPPLES_ID)) desire += 50;

if($gameParty.isTutorialBattle()) desire += 100;

return desire;
};
Game_Actor.prototype.minimum♥♥♥♥♥DesireLimit = function() {
let desire = 0;

if(this.hasPassive(PASSIVE_MAX_♥♥♥♥♥_DESIRE_FIRST_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_♥♥♥♥♥_DESIRE_SECOND_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_♥♥♥♥♥_DESIRE_THREE_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_♥♥♥♥♥_DESIRE_FOUR_ID)) desire += 10;

if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_FIRST_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_SECOND_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_THREE_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_FOUR_ID)) desire += 10;

if(this.hasPassive(PASSIVE_ORGASM_COUNT_SEVEN_ID)) desire += 70;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_SIX_ID)) desire += 60;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_FIVE_ID)) desire += 50;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_FOUR_ID)) desire += 40;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_THREE_ID)) desire += 30;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_TWO_ID)) desire += 20;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_ONE_ID)) desire += 10;

if(this.hasPassive(CHARA_CREATE_TWO_CLIT_ID)) desire += 50;
if(this.hasPassive(CHARA_CREATE_TWO_♥♥♥♥♥_ID)) desire += 50;

if($gameParty.isTutorialBattle()) desire += 100;

return desire;
};
Game_Actor.prototype.minimumButtDesireLimit = function() {
let desire = 0;

if(this.hasPassive(PASSIVE_MAX_BUTT_DESIRE_FIRST_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_BUTT_DESIRE_SECOND_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_BUTT_DESIRE_THREE_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_BUTT_DESIRE_FOUR_ID)) desire += 10;

if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_FIRST_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_SECOND_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_THREE_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_FOUR_ID)) desire += 10;

if(this.hasPassive(PASSIVE_ORGASM_COUNT_SEVEN_ID)) desire += 70;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_SIX_ID)) desire += 60;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_FIVE_ID)) desire += 50;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_FOUR_ID)) desire += 40;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_THREE_ID)) desire += 30;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_TWO_ID)) desire += 20;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_ONE_ID)) desire += 10;

if(this.hasPassive(CHARA_CREATE_TWO_BUTT_ID)) desire += 50;
if(this.hasPassive(CHARA_CREATE_TWO_ANAL_ID)) desire += 50;

if($gameParty.isTutorialBattle()) desire += 100;

return desire;
};
Game_Actor.prototype.minimumCockDesireLimit = function() {
let desire = 0;

if(this.hasPassive(PASSIVE_MAX_COCK_DESIRE_FIRST_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_COCK_DESIRE_SECOND_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_COCK_DESIRE_THREE_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_COCK_DESIRE_FOUR_ID)) desire += 10;

if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_FIRST_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_SECOND_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_THREE_ID)) desire += 10;
if(this.hasPassive(PASSIVE_MAX_ALL_DESIRE_FOUR_ID)) desire += 10;

if(this.hasPassive(PASSIVE_ORGASM_COUNT_SEVEN_ID)) desire += 70;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_SIX_ID)) desire += 60;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_FIVE_ID)) desire += 50;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_FOUR_ID)) desire += 40;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_THREE_ID)) desire += 30;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_TWO_ID)) desire += 20;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_ONE_ID)) desire += 10;

if(this.hasPassive(CHARA_CREATE_TWO_BODY_ID)) desire += 50;

if($gameParty.isTutorialBattle()) desire += 100;

return desire;
};
卡琳战斗开始时性欲值设定★
RemtairyKarrynPassives.js

避免与最小性欲值冲突这里全部设置为0
///////
// Starting Desires
////////////

Game_Actor.prototype.startingMouthDesire = function() { //Starting Mouth
let desire = 0;
desire += Math.ceil(this.currentPercentOfOrgasm(true) / 10);

if($gameTemp.isPlaytest() && TESTING_STARTING_DESIRES) return TESTING_MOUTH_DESIRE;

return Math.max(this.minimumMouthDesireLimit(), Math.round(desire));
};
Game_Actor.prototype.startingBoobsDesire = function() { //Starting Boobs
let desire = 0;
desire += Math.ceil(this.currentPercentOfOrgasm(true) / 10);

if($gameTemp.isPlaytest() && TESTING_STARTING_DESIRES) return TESTING_BOOBS_DESIRE;

return Math.max(this.minimumBoobsDesireLimit(), Math.round(desire));
};
Game_Actor.prototype.starting♥♥♥♥♥Desire = function() { //Starting ♥♥♥♥♥
let desire = 0;
desire += Math.ceil(this.currentPercentOfOrgasm(true) / 10);

if($gameTemp.isPlaytest() && TESTING_STARTING_DESIRES) return TESTING_♥♥♥♥♥_DESIRE;

return Math.max(this.minimum♥♥♥♥♥DesireLimit(), Math.round(desire));
};
Game_Actor.prototype.startingButtDesire = function() { //Starting Butt
let desire = 0;
desire += Math.ceil(this.currentPercentOfOrgasm(true) / 10);

if($gameTemp.isPlaytest() && TESTING_STARTING_DESIRES) return TESTING_BUTT_DESIRE;

return Math.max(this.minimumButtDesireLimit(), Math.round(desire));
};
Game_Actor.prototype.startingCockDesire = function() { //Starting ♥♥♥♥
let desire = 0;
desire += Math.ceil(this.currentPercentOfOrgasm(true) / 10);

if($gameTemp.isPlaytest() && TESTING_STARTING_DESIRES) return TESTING_COCK_DESIRE;

return Math.max(this.minimumCockDesireLimit(), Math.round(desire));
};

Game_Actor.prototype.startingRandomDesire = function() {
let randomDesire = [];

if(this.isInMasturbationCouchPose()) {
randomDesire.push(this.masturbateLvl() * 10);
}

for(let i = 0; i < randomDesire.length; ++i) {
this.gainRandomDesire(randomDesire, true);
};
};
保护 处女 初吻★
RemtairyKarrynPassives.js

玩具不破处女(删除下段)
if(this._first♥♥♥♥♥SexWantedID === -1 && !this._first♥♥♥♥♥SexWasToy && enemy) {
this._first♥♥♥♥♥SexWasToy = true;
this._first♥♥♥♥♥SexWasToyDate = Prison.date;
this._first♥♥♥♥♥SexWasToyName = enemy.name();
this._first♥♥♥♥♥SexWasToyMapID = this.getMapIDForRecords();
if(enemy.isWanted) {
this._first♥♥♥♥♥SexWasToyWantedID = enemy.getWantedId();
}
else {
this._first♥♥♥♥♥SexWasToyWantedID = $gameParty.addNewWanted(enemy);
}
BattleManager._logWindow.displayRemLine(TextManager.actorLost♥♥♥♥♥Virginity);

this.removeState(STATE_IS_VIRGIN_ID);
}

口交不破初吻 (删除下段)
if(this._firstKissWantedID === -1 && enemy) {
this._firstKissDate = Prison.date;
this._firstKissName = enemy.name();
this._firstKissMapID = this.getMapIDForRecords();
this._firstKissWasPenis = false;
if(enemy.isWanted) {
this._firstKissWantedID = enemy.getWantedId();
}
else {
this._firstKissWantedID = $gameParty.addNewWanted(enemy);
}
BattleManager._logWindow.displayRemLine(TextManager.actorFirstKissCock);

this._lastKissName = enemy.name();
this._lastKissDate = Prison.date;
this._lastKissMapID = this.getMapIDForRecords();

$gameParty.remAch_sleepyBeauty();
}

舔屁眼不破初吻(删除下段)
if(this._firstKissWantedID === -1 && enemy) {
this._firstKissDate = Prison.date;
this._firstKissName = enemy.name();
this._firstKissMapID = this.getMapIDForRecords();
this._firstKissWasAnus = false;
if(enemy.isWanted) {
this._firstKissWantedID = enemy.getWantedId();
}
else {
this._firstKissWantedID = $gameParty.addNewWanted(enemy);
}
BattleManager._logWindow.displayRemLine(TextManager.actorFirstKissAnus);

this._lastKissName = enemy.name();
this._lastKissDate = Prison.date;
this._lastKissMapID = this.getMapIDForRecords();

$gameParty.remAch_beautyAndTheBeast()
}
卡琳性技能注视的CD时间修改★
RemtairyKarrynSex.js

将卡琳的性技能注视CD改为1
添加如果卡琳发情则该技能没有CD
Game_Actor.prototype.cooldownEval_karrynCockStare = function() {
let cooldown = 1;
if(this.isAroused()) cooldown -= 1;
return cooldown;
};
倒地时也可以使用取下玩具★
RemtairyKarrynSex.js

1.
Game_Actor.prototype.showEval_removeToy = function() {
return this.isWearingAnyToy() && !this.isInDownPose() && this.hasFreeHand();
};
替换成
Game_Actor.prototype.showEval_removeToy = function() {
return this.isWearingAnyToy() && !this.isInDownOrgasmPose() && this.hasFreeHand();
};


2.
Game_Actor.prototype.showEval_cant_removeToy = function() {
return this.isWearingAnyToy() && (this.isInDownPose() || !this.hasFreeHand());
};
替换成
Game_Actor.prototype.showEval_cant_removeToy = function() {
return this.isWearingAnyToy() && (this.isInDownOrgasmPose() || !this.hasFreeHand());
};
卡琳被打屁股修改★
RemtairyKarrynSex.js

打屁股一共3个等级
我设置了等级越高卡琳受到的伤害越多
添加的负面BUFF更多
2级打屁股后直接33%发情
3级打屁股后直接100%高潮
装备英雄称号可以降低
Game_Actor.prototype.postDamage_spanking = function(target, spankLvl) {
let spankMarkCount = 0;

switch(spankLvl) {
case SPANK_LVL_THREE:
spankMarkCount = Math.randomInt(3) + 3;
this.passivePostSpank_addOffBalanceEffect(2);
this.passivePostSpank_addHornyEffect(3);
if(!this.isAroused() && this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) this.setPleasureToArousalPoint();
else if(!this.isAroused()) this.setPleasureToOrgasmPoint();
this._hp -= 300;
this.addHornyState();
this._onaniFrustration++;
this.addState(STATE_WEAKEN_ID);
this.addState(STATE_VULNERABLE_ID);
this.addState(STATE_OFFBALANCE_ID);
break;
case SPANK_LVL_TWO:
spankMarkCount = Math.randomInt(2) + 2;
this.passivePostSpank_addOffBalanceEffect(1.5);
this.passivePostSpank_addHornyEffect(2);
if(!this.isAroused() && this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) this.setPleasure(0);
else if(!this.isAroused()) this.setPleasureToArousalPoint();
this._hp -= 200;
this.addHornyState();
this._onaniFrustration++;
break;
case SPANK_LVL_ONE:
spankMarkCount = Math.randomInt(2) + 1;
this.passivePostSpank_addOffBalanceEffect(1);
this.passivePostSpank_addHornyEffect(1);
this._hp -= 100;
break;
}
触发绝顶失神修改★
RemtairyKarrynSex.js

高潮不再被跳过回合卡琳可以喘息苟血
更改为快感200%以下的高潮不会触发高潮眩晕
快感200%以上时必定触发高潮眩晕
高潮后添加负面BUFF
////////////////////////
// Post Damage Female Orgasm
/////////////////////////

Game_Actor.prototype.postDamage_femaleOrgasm = function(orgasmSkillId) {
let target = this;
let orgasmCount = target.result().femaleOrgasmCount;

this.postOrgasmPleasure();
this.postOrgasmToys(orgasmCount);

if(orgasmCount > 1) {
let addJustOrgasmedState = true;
let effectiveOrgasmCount = orgasmCount;

if(effectiveOrgasmCount >= 2) addJustOrgasmedState = true;
else if(effectiveOrgasmCount = 1) addJustOrgasmedState = false;

if($gameParty.isTutorialBattle()) addJustOrgasmedState = false;

if(this._gotOrgasmFromSkillType === JUST_SKILLTYPE_KARRYN_MASTURBATE) {
addJustOrgasmedState = false;
}

if(addJustOrgasmedState) {
if(!this.justOrgasmed()) this.addJustOrgasmed();
let newMaxTurns = Math.ceil(orgasmCount/2) + 1;
this.setJustOrgasmedStateTurns(Math.max(newMaxTurns, this.getJustOrgasmedStateTurns()));
}

this.addHornyState();
this._onaniFrustration++;
this.addState(STATE_WEAKEN_ID);
this.addState(STATE_VULNERABLE_ID);
this.addState(STATE_OFFBALANCE_ID);
this.addState(STATE_KARRYN_BLISS_STUN_ID);

this.refreshPose(false);

$gameTroop.setAllEnemiesToHorny_chanceBased(this.passiveOrgasmMakeEnemiesHornyChance(), true);

if(this.isInWaitressServingPose()) {
this.postDamage_femaleOrgasm_waitressServing(orgasmCount);
}
else if($gameParty.isInGloryBattle) {
target.postDamage_femaleOrgasm_gloryBattle(orgasmCount);
}
else if($gameParty.isInReceptionistBattle) {
target.postDamage_femaleOrgasm_receptionistBattle(orgasmCount);
}
else if($gameParty.isInStripperBattle) {
target.postDamage_femaleOrgasm_stripperBattle(orgasmCount);
}
else if(this.isInMasturbationCouchPose()) {
this.postDamage_femaleOrgasm_masturbationCouch(orgasmCount);
}
else if(this.isInMasturbationInBattlePose()) {
this.postDamage_femaleOrgasm_masturbationInBattle(orgasmCount);
}
}

this._orgasmCallQueuedUp = false;

// Allow Tachie to update
BattleManager.setBMAllowTachieUpdate(true);
};
卡琳使用性技能消耗设置★
RemtairyKarrynSex.js

取消性技能消耗
Game_Actor.prototype.skillCost_karrynPetting = function(karrynSkillUse) {
let cost = this.skillSex_staminaCost(20, 0.4);
let usageMultipler = 0;
if(karrynSkillUse && this._tempSexSkillConsUsage > 0) usageMultipler *= 1.15 ** this._tempSexSkillConsUsage;
return cost * usageMultipler;
};
Game_Actor.prototype.skillCost_karrynKiss = function(karrynSkillUse) {
let cost = this.skillSex_staminaCost(30, 0.5) * this.passiveKissSkillCostRate();
let usageMultipler = 0;
if(karrynSkillUse && this._tempSexSkillConsUsage > 0) usageMultipler *= 1.15 ** this._tempSexSkillConsUsage;
return cost * usageMultipler;
};
Game_Actor.prototype.skillCost_karrynCockPetting = function(karrynSkillUse) {
let cost = this.skillSex_staminaCost(40, 0.6) * this.passiveHandjobSkillCostRate();
let usageMultipler = 0;
if(karrynSkillUse && this._tempSexSkillConsUsage > 0) usageMultipler *= 1.15 ** this._tempSexSkillConsUsage;
return cost * usageMultipler;
};
Game_Actor.prototype.skillCost_karrynCockStare = function(karrynSkillUse) {
let cost = this.skillSex_staminaCost(20, 0.2);
let usageMultipler = 0;
if(karrynSkillUse && this._tempSexSkillConsUsage > 0) usageMultipler *= 1.15 ** this._tempSexSkillConsUsage;
return cost * usageMultipler;
};
Game_Actor.prototype.skillCost_karrynOnaniInBattleSkills = function() {
let cost = 0;
cost *= 0;
cost *= this.ssc;
return Math.round(cost);
};

//Dex multi 1
Game_Actor.prototype.skillCost_karrynHandjob = function(karrynSkillUse) {
let cost = this.skillSex_staminaCost(20, 1) * this.passiveHandjobSkillCostRate();
let usageMultipler = 0;
if(karrynSkillUse && this._tempHandjobConsUsage > 0) usageMultipler *= 1.25 ** this._tempHandjobConsUsage;
if(karrynSkillUse && this._tempSexSkillConsUsage > 0) usageMultipler *= 1 + (0.1 * this._tempSexSkillConsUsage);
return cost * usageMultipler;
};
Game_Actor.prototype.skillCost_karrynBlowjob = function(karrynSkillUse) {
let cost = this.skillSex_staminaCost(25, 1) * this.passiveBlowjobSkillCostRate();
let usageMultipler = 0;
if(karrynSkillUse && this._tempBlowjobConsUsage > 0) usageMultipler *= 1.25 ** this._tempBlowjobConsUsage;
if(karrynSkillUse && this._tempSexSkillConsUsage > 0) usageMultipler *= 1 + (0.1 * this._tempSexSkillConsUsage);
return cost * usageMultipler;
};
Game_Actor.prototype.♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ = function(karrynSkillUse) {
let cost = this.skillSex_staminaCost(30, 1.1) * this.♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥();
let usageMultipler = 0;
if(karrynSkillUse && this._tempTitjobConsUsage > 0) usageMultipler *= 1.25 ** this._tempTitjobConsUsage;
if(karrynSkillUse && this._tempSexSkillConsUsage > 0) usageMultipler *= 1 + (0.1 * this._tempSexSkillConsUsage);
return cost * usageMultipler;
};
Game_Actor.prototype.skillCost_karrynRimjob = function(karrynSkillUse) {
let cost = this.skillSex_staminaCost(25, 1) * this.passiveRimjobSkillCostRate();
let usageMultipler = 0;
if(karrynSkillUse && this._tempRimjobConsUsage > 0) usageMultipler *= 1.25 ** this._tempRimjobConsUsage;
if(karrynSkillUse && this._tempSexSkillConsUsage > 0) usageMultipler *= 1 + (0.1 * this._tempSexSkillConsUsage);
return cost * usageMultipler;
};
Game_Actor.prototype.skillCost_karrynFootjob = function(karrynSkillUse) {
let cost = this.skillSex_staminaCost(30, 1.1) * this.passiveFootjobSkillCostRate();
let usageMultipler = 0;
if(karrynSkillUse && this._tempFootjobConsUsage > 0) usageMultipler *= 1.25 ** this._tempFootjobConsUsage;
if(karrynSkillUse && this._tempSexSkillConsUsage > 0) usageMultipler *= 1 + (0.1 * this._tempSexSkillConsUsage);
return cost * usageMultipler;
};


Game_Actor.prototype.skillCost_karryn♥♥♥♥♥Sex = function(karrynSkillUse) {
let cost = this.skillSex_staminaCost(40, 1.25) * this.passive♥♥♥♥♥SexSkillCostRate();
let usageMultipler = 0;
if(karrynSkillUse && this._temp♥♥♥♥♥SexConsUsage > 0) usageMultipler *= 1.25 ** this._temp♥♥♥♥♥SexConsUsage;
if(karrynSkillUse && this._tempSexSkillConsUsage > 0) usageMultipler *= 1 + (0.1 * this._tempSexSkillConsUsage);
return cost * usageMultipler;
};
Game_Actor.prototype.skillCost_karrynAnalSex = function(karrynSkillUse) {
let cost = this.skillSex_staminaCost(40, 1.25) * this.passiveAnalSexSkillCostRate();
let usageMultipler = 0;
if(karrynSkillUse && this._tempAnalSexConsUsage > 0) usageMultipler *= 1.25 ** this._tempAnalSexConsUsage;
if(karrynSkillUse && this._tempSexSkillConsUsage > 0) usageMultipler *= 1 + (0.1 * this._tempSexSkillConsUsage);
return cost * usageMultipler;
};
性技能习得条件修改★
RemtairyKarrynSex.js

获得被动习得相关性技能
///////////
// Sex Skill Passive Requirement

Game_Actor.prototype.karrynKissSkillPassiveRequirement = function() {
return this.hasThisTitle(TITLE_ID_ALLURING_WARDEN);
};
Game_Actor.prototype.karrynCockStareSkillPassiveRequirement = function() {
return this.hasThisTitle(TITLE_ID_STUNNING_WARDEN);
};
Game_Actor.prototype.karrynCockPetSkillPassiveRequirement = function() {
return this.hasThisTitle(TITLE_ID_ALLURING_WARDEN);
};
Game_Actor.prototype.karrynHandjobSkillPassiveRequirement = function() {
return this.hasThisTitle(TITLE_ID_ALLURING_WARDEN);
};
Game_Actor.prototype.karrynRimjobSkillPassiveRequirement = function() {
return this.hasThisTitle(TITLE_ID_PURE_WHITE_STAINED_BRIDE);
};
Game_Actor.prototype.karrynFootjobSkillPassiveRequirement = function() {
return this.hasThisTitle(TITLE_ID_ALLURING_WARDEN);
};
Game_Actor.prototype.karrynBlowjobSkillPassiveRequirement = function() {
return this.hasThisTitle(TITLE_ID_ALLURING_WARDEN);
};
Game_Actor.prototype.♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ = function() {
return this.hasThisTitle(TITLE_ID_ALLURING_WARDEN);
};
Game_Actor.prototype.karryn♥♥♥♥♥SexSkillPassiveRequirement = function() {
return this.hasThisTitle(TITLE_ID_ALLURING_WARDEN);
};
Game_Actor.prototype.karrynAnalSexSkillPassiveRequirement = function() {
return this.hasThisTitle(TITLE_ID_ALLURING_WARDEN);
};
Game_Actor.prototype.karrynHasAnySexSkill = function() {
return this.karrynKissSkillPassiveRequirement() || this.karrynCockStareSkillPassiveRequirement() || this.karrynCockPetSkillPassiveRequirement() || this.karrynHandjobSkillPassiveRequirement() || this.karrynRimjobSkillPassiveRequirement() || this.karrynFootjobSkillPassiveRequirement() || this.karrynBlowjobSkillPassiveRequirement() || this.♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥() || this.karryn♥♥♥♥♥SexSkillPassiveRequirement() || this.karrynAnalSexSkillPassiveRequirement();
};
卡琳性交技能使用条件设置★
1.
RemtairyCombat.js

找到
if(this._actor.isInDownFallDownPose() && stypeId !== SKILLTYPE_FALLEN_ID)
return;
删除

2.
RemtairyKarrynSex.js

找到所有
if(!target.isAlive() || this.isInDownFallDownPose() || this.isInDownOrgasmPose() || this.isInDownStaminaPose())
abortConditions = true;
替换成
if(!target.isAlive() || this.isInDownOrgasmPose())
abortConditions = true;


3.战斗姿态不能主动使用性技能
所有技能都要加或单独某性交技能添加
if(this.isInCombatPose()) return false;
取消获得称号的等级要求★
RemtairyKarrynTitles.js

找到所有
actor.level > 15
actor.level > 35
替换成
actor.level > 0
为秘书称号添加奖励许可★
RemtairyKarrynTitles.js

加入秘书称号词条使其生效(对应秘书称号+治安+政策点)
1.
//Title
this._flagEquippedSecretaryTitleForWholeDay = false;
this._flagEquippedBeautifulWardenTitleForWholeDay = false;
this._flagEquippedRadioOrgasmTitleForWholeDay = false;
this._flagEquippedHellWardenOneTitleForWholeDay = false;
this._flagEquippedHellWardenTwoTitleForWholeDay = false;
this._flagEquippedFullOrderOneTitleForWholeDay = false;
this._flagEquippedFullOrderTwoTitleForWholeDay = false;
this._flagEquippedToiletQueueTitleForWholeDay = false;
this._flagEquippedEmpressKarrynTitleForWholeDay = false;
this._flagEquippedInccorruptiblePillarTitleForWholeDay = false;
this._flagEquippedGymTrainerRepTitleForWholeDay = false;

if(this.isUsingThisTitle(TITLE_ID_BEAUTIFUL_WARDEN)) {
this._flagEquippedBeautifulWardenTitleForWholeDay = true;
}
else if(this.isUsingThisTitle(TITLE_ID_EMPEROR_SECRETARY)) {
this._flagEquippedSecretaryTitleForWholeDay = true;
}
else if(this.isUsingThisTitle(TITLE_ID_HELL_WARDEN_ONE)) {
this._flagEquippedHellWardenOneTitleForWholeDay = true;
}
else if(this.isUsingThisTitle(TITLE_ID_HELL_WARDEN_TWO)) {
this._flagEquippedHellWardenTwoTitleForWholeDay = true;
}
else if(this.isUsingThisTitle(TITLE_ID_RECEPTIONIST_RADIO_ORGASM)) {
this._flagEquippedRadioOrgasmTitleForWholeDay = true;
}
else if(this.isUsingThisTitle(TITLE_ID_FULL_ORDER_ONE)) {
this._flagEquippedFullOrderOneTitleForWholeDay = true;
}
else if(this.isUsingThisTitle(TITLE_ID_FULL_ORDER_TWO)) {
this._flagEquippedFullOrderTwoTitleForWholeDay = true;
}
else if(this.isUsingThisTitle(TITLE_ID_TOILET_QUEUE)) {
this._flagEquippedToiletQueueTitleForWholeDay = true;
}
else if(this.isUsingThisTitle(TITLE_ID_EMPRESS_KARRYN)) {
this._flagEquippedEmpressKarrynTitleForWholeDay = true;
}
else if(this.isUsingThisTitle(TITLE_ID_INCORRUPTIBLE_PILLAR)) {
this._flagEquippedInccorruptiblePillarTitleForWholeDay = true;
}
else if(this.isUsingThisTitle(TITLE_ID_TRAINER_GYM_REP)) {
this._flagEquippedGymTrainerRepTitleForWholeDay = true;
}


if(this.isEquippingThisAccessory(NECKLACE_JADE_ID)) {
this._flagEquippedJadeNecklaceForWholeDay = true;
}
};

2.
//Equip titles
if(this.hasThisTitle(TITLE_ID_REDEEMED_TWO) && this.titleHasBeenEquippedOnceBefore(TITLE_ID_REDEEMED_TWO)) value += 1;
if(this.hasThisTitle(TITLE_ID_REDEEMED_ONE) && this.titleHasBeenEquippedOnceBefore(TITLE_ID_REDEEMED_ONE)) value += 1;
if(this.hasThisTitle(TITLE_ID_EMPRESS_KARRYN) && this.titleHasBeenEquippedOnceBefore(TITLE_ID_EMPRESS_KARRYN)) value += 1;
获得英雄称号与魅力称号的条件变动★
RemtairyKarrynTitles.js

英雄称号改为在战斗中首次失败后获得
// Hero
if(!actor.hasThisTitle(TITLE_ID_ASPIRING_HERO) && actor.hasPassive(PASSIVE_DEFEATED_COUNT_ONE_ID)) {
this._newTitlesGainedItem.push($dataArmors[TITLE_ID_ASPIRING_HERO]);

$gameParty.remAch_aspiringHero();
}

魅力称号改为达到相应魅力值&&获得公开高潮的相关被动后
//Game Clear Titles end

//Beautiful Warden
if(!actor.hasThisTitle(TITLE_ID_BEAUTIFUL_WARDEN) && actor.charm >= VAR_ACCESSORY_CHARM_REQ_1) {
this._newTitlesGainedItem.push($dataArmors[TITLE_ID_BEAUTIFUL_WARDEN]);
}
//Stunning Warden
else if(!actor.hasThisTitle(TITLE_ID_STUNNING_WARDEN) && actor.hasPassive(PASSIVE_ORGASM_PEOPLE_ONE_ID) && actor.charm >= VAR_ACCESSORY_CHARM_REQ_2) {
this._newTitlesGainedItem.push($dataArmors[TITLE_ID_STUNNING_WARDEN]);
}
//Enchanting Warden
else if(!actor.hasThisTitle(TITLE_ID_ENCHANTING_WARDEN) && actor.hasPassive(PASSIVE_ORGASM_PEOPLE_TWO_ID) && actor.charm >= VAR_ACCESSORY_CHARM_REQ_3) {
this._newTitlesGainedItem.push($dataArmors[TITLE_ID_ENCHANTING_WARDEN]);
}
//Alluring Warden
else if(!actor.hasThisTitle(TITLE_ID_ALLURING_WARDEN) && actor.hasPassive(PASSIVE_ORGASM_PEOPLE_THREE_ID) && actor.charm >= VAR_ACCESSORY_CHARM_REQ_4) {
this._newTitlesGainedItem.push($dataArmors[TITLE_ID_ALLURING_WARDEN]);
}
//Pure White Stained Bride
else if(!actor.hasThisTitle(TITLE_ID_PURE_WHITE_STAINED_BRIDE) && actor.hasPassive(PASSIVE_ORGASM_PEOPLE_FOUR_ID) && actor.charm >= VAR_ACCESSORY_CHARM_REQ_5) {
this._newTitlesGainedItem.push($dataArmors[TITLE_ID_PURE_WHITE_STAINED_BRIDE]);
}
称号对于徒手战斗的加成★
RemtairyKarrynTitles.js

调整攻击力以对应后期敌人
Game_Actor.prototype.titlesUnarmedAttack = function() {
let unarmedAttack = 0;

if(this.hasThisTitle(TITLE_ID_KICK_THREE)) unarmedAttack += 1.5;
else if(this.hasThisTitle(TITLE_ID_KICK_TWO)) unarmedAttack += 1;
else if(this.hasThisTitle(TITLE_ID_KICK_ONE)) unarmedAttack += 0.5;

if(this.hasThisTitle(TITLE_ID_KICK_REWARD_TWO)) unarmedAttack += 1;
else if(this.hasThisTitle(TITLE_ID_KICK_REWARD_ONE)) unarmedAttack += 0.5;

if(this.hasThisTitle(TITLE_ID_SEX_SKILL_LIGHT_KICK)) unarmedAttack -= 1;

return unarmedAttack;
};

Game_Actor.prototype.titlesUnarmedDefense = function() {
let unarmedDefense = 0;

if(this.hasThisTitle(TITLE_ID_KICK_THREE)) unarmedDefense += 1.5;
else if(this.hasThisTitle(TITLE_ID_KICK_TWO)) unarmedDefense += 1;
else if(this.hasThisTitle(TITLE_ID_KICK_ONE)) unarmedDefense += 0.5;

if(this.hasThisTitle(TITLE_ID_KICK_REWARD_TWO)) unarmedDefense += 1;
else if(this.hasThisTitle(TITLE_ID_KICK_REWARD_ONE)) unarmedDefense += 0.5;

if(this.hasThisTitle(TITLE_ID_SEX_SKILL_LIGHT_KICK)) unarmedDefense -= 1;

return unarmedDefense;
};
称号对于敌人攻击概率的影响★
RemtairyKarrynTitles.js

添加了卡琳获得和装备相应魅力称号时敌人攻击概率下降
//Attack Chance
Game_Actor.prototype.titleInmateAngerEffect = function(enemy) {
let effect = 0;

if(this.hasThisTitle(TITLE_ID_PURE_WHITE_STAINED_BRIDE)) effect -= 50;
else if(this.hasThisTitle(TITLE_ID_ALLURING_WARDEN)) effect -= 40;
else if(this.hasThisTitle(TITLE_ID_ENCHANTING_WARDEN)) effect -= 30;
else if(this.hasThisTitle(TITLE_ID_STUNNING_WARDEN)) effect -= 20;
else if(this.hasThisTitle(TITLE_ID_BEAUTIFUL_WARDEN)) effect -= 10;

if(this.isUsingThisTitle(TITLE_ID_SLEEPY_BEAUTY)) effect -= 20;
else if(this.isUsingThisTitle(TITLE_ID_SUPER_WORLD_CHAMPION)) effect -= 50;
else if(this.isUsingThisTitle(TITLE_ID_ALLURING_WARDEN)) effect -= 40;
else if(this.isUsingThisTitle(TITLE_ID_ENCHANTING_WARDEN)) effect -= 30;
else if(this.isUsingThisTitle(TITLE_ID_STUNNING_WARDEN)) effect -= 20;
else if(this.isUsingThisTitle(TITLE_ID_BEAUTIFUL_WARDEN)) effect -= 10;
else if(this.isUsingThisTitle(TITLE_ID_KICK_TWO)) effect += 30;
else if(this.isUsingThisTitle(TITLE_ID_KICK_THREE)) effect += 60;
else if(this.isUsingThisTitle(TITLE_ID_SEAMAN_CAPTAIN)) effect -= 25;
else if(this.isUsingThisTitle(TITLE_ID_TECHNICALLY_VIRGIN_BRIDE)) effect -= 35;
else if(this.isUsingThisTitle(TITLE_ID_TRAINER_COCK_ADVICE)) effect -= 25;
else if(this.isUsingThisTitle(TITLE_ID_TRAINER_BLUE_BALLER)) effect += 45;

else if(this.isUsingThisTitle(TITLE_ID_VISITOR_GOBLIN_CREAMPIE) && enemy.isGoblinType) effect -= 30;

else if(this.isUsingThisTitle(TITLE_ID_FULL_ORDER_THREE)) effect += 50;

else if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) effect += 100;

return effect;
};
获得相应称号领取奖金★
RemtairyKarrynTitles.js

添加了
治安维持100的天数4个称号的奖励(维持1 14 30 69天)
1-5层BOSS消灭后的奖励
卡琳任职时间的3个奖励(30 90 300天)
获得称号后装备一次即可获得奖金
//Funding
else if(id === TITLE_ID_FULL_ORDER_ONE) {
$gameParty.gainGold(1000);
}
else if(id === TITLE_ID_FULL_ORDER_TWO) {
$gameParty.gainGold(2000);
}
else if(id === TITLE_ID_FULL_ORDER_THREE) {
$gameParty.gainGold(3000);
}
else if(id === TITLE_ID_FULL_ORDER_FOUR) {
$gameParty.gainGold(4000);
}
else if(id === TITLE_ID_LEVEL_ONE_BOSS) {
$gameParty.gainGold(1000);
}
else if(id === TITLE_ID_LEVEL_TWO_BOSS) {
$gameParty.gainGold(2000);
}
else if(id === TITLE_ID_LEVEL_THREE_BOSS) {
$gameParty.gainGold(3000);
}
else if(id === TITLE_ID_LEVEL_FOUR_BOSS) {
$gameParty.gainGold(4000);
}
else if(id === TITLE_ID_LEVEL_FIVE_BOSS) {
$gameParty.gainGold(5000);
}
else if(id === TITLE_ID_DAY_COUNT_ONE) {
$gameParty.gainGold(30000);
}
else if(id === TITLE_ID_DAY_COUNT_TWO) {
$gameParty.gainGold(30000);
}
else if(id === TITLE_ID_DAY_COUNT_THREE) {
$gameParty.gainGold(100000);
}
开局监狱的基本设置★
RemtairyPrison.js

var Remtairy = Remtairy || {};
Remtairy.Prison = Remtairy.Prison || {};

const PRISON_STARTING_INCOME = 465;
const PRISON_STARTING_EXPENSE = 1500;
const PRISON_STARTING_ORDER_PER_DAY = 3;
const PRISON_STARTING_ORDER = 0;
const PRISON_STARTING_CORRUPTION = 4;
const PRISON_STARTING_FUNDING = 30000;

const PRISON_FATIGUE_FROM_ESCAPING = 1;
const PRISON_FATIGUE_PER_TURN_COMBAT = 0.25;
const PRISON_FATIGUE_PER_TURN_OTHER = 0.15;

const PRISON_BANKRUPTCY_ORDER_NO_TITLE = 10;

const RIOT_GLOBAL_STARTING_CHANCE = 0;
const RIOT_GLOBAL_BANKRUPTCY_CHANCE = 0;
const RIOT_MIN_DAYS_BEFORE_BUILDUP = 0;
const RIOT_MIN_DAYS_BEFORE_EXTRA_BUILDUP = 0;
const RIOT_EXTRA_BUILDUP = 0;

const PRISON_ORDER_MAX = 100;
const PRISON_ORDER_HIGH = 80;
const PRISON_ORDER_MED = 60;
const PRISON_ORDER_LOW = 40;
const PRISON_ORDER_VERY_LOW = 20;

const PRISON_LEVEL_STATUS_UNKNOWN = 0;
const PRISON_LEVEL_STATUS_ANARCHY = 1;
const PRISON_LEVEL_STATUS_SUBJUGATED = 2;
const PRISON_LEVEL_STATUS_RIOTING = 3;

const PRISON_LEVEL_IS_LEVEL_ONE = 1;
const PRISON_LEVEL_IS_LEVEL_TWO = 2;
const PRISON_LEVEL_IS_LEVEL_THREE = 3;
const PRISON_LEVEL_IS_LEVEL_FOUR = 4;
const PRISON_LEVEL_IS_LEVEL_FIVE = 5;
const PRISON_LEVEL_IS_LEVEL_OUTSIDE = 0;

const PRISON_LEVEL_ONE_ANARCHY_ORDER_CHANGE = 0;
const PRISON_LEVEL_ONE_RIOTING_ORDER_CHANGE = 0;
const PRISON_LEVEL_TWO_ANARCHY_ORDER_CHANGE = 0;
const PRISON_LEVEL_TWO_RIOTING_ORDER_CHANGE = 0;
const PRISON_LEVEL_THREE_ANARCHY_ORDER_CHANGE = 0;
const PRISON_LEVEL_THREE_RIOTING_ORDER_CHANGE = 0;
const PRISON_LEVEL_FOUR_ANARCHY_ORDER_CHANGE = 0;
const PRISON_LEVEL_FOUR_RIOTING_ORDER_CHANGE = 0;
const PRISON_LEVEL_FIVE_ANARCHY_ORDER_CHANGE = 0;
const PRISON_LEVEL_FIVE_RIOTING_ORDER_CHANGE = 0;
const PRISON_FIRST_DAY_RIOTING_ORDER_CHANGE_MULTIPLER = 0;
const PRISON_RIOTING_ORDER_CHANGE_EASY_DIVIDER = 0;
const PRISON_RIOTING_BUILDUP_TODAY_OTHER_RIOT_EASY_RATE = 0;

const PRISON_ANARCHY_GRACE_PERIOD_EASY = 0; //unused
const PRISON_ANARCHY_GRACE_PERIOD_NORMAL = 0;
const PRISON_ANARCHY_GRACE_PERIOD_HARD = 0;

const PRISON_ANARCHY_GRACE_LEVEL_ONE_MULTIPLER = 0;
const PRISON_ANARCHY_GRACE_LEVEL_TWO_MULTIPLER = 0;
const PRISON_ANARCHY_GRACE_LEVEL_THREE_MULTIPLER = 0;
const PRISON_ANARCHY_GRACE_LEVEL_FOUR_MULTIPLER = 0;
const PRISON_ANARCHY_GRACE_LEVEL_FIVE_MULTIPLER = 0;

const PRISON_ANARCHY_DEC_EASY_DIVIDER = 1;
const PRISON_ANARCHY_DEC_LEVEL_ONE_DIVIDER = 1;
const PRISON_ANARCHY_DEC_LEVEL_TWO_DIVIDER = 1;
const PRISON_ANARCHY_DEC_LEVEL_THREE_DIVIDER = 1;
const PRISON_ANARCHY_DEC_LEVEL_FOUR_DIVIDER = 1;
const PRISON_ANARCHY_DEC_LEVEL_FIVE_DIVIDER = 1;
自慰被偷袭战前设置★
RemtairyPrison.js

设置战斗开始时卡琳处于战斗自慰状态
精力为0
添加负面BUFF
99回合内无法拿起武器
Game_Party.prototype.preInvasionBattleSetup = function() {
let actor = $gameActors.actor(ACTOR_KARRYN_ID);
actor.preInvasionBattleSetup();

$gameVariables.setValue(VARIABLE_MOG_TURNS_SHOWED_1_ID, 0);
$gameVariables.setValue(VARIABLE_MOG_TURNS_SHOWED_2_ID, 1);
$gameSwitches.setValue(SWITCH_IN_COMBAT_ID, true);
actor.turnOnCantEscapeFlag();
this.setDefeatedSwitchesOff();

actor.removeClothing();
actor.takeOffPanties();
actor.takeOffGlovesAndHat();
actor.addDisarmedState(false);
actor.increaseDisarmedStateTurns(99);
actor._mp = 0;
actor.addHornyState();
actor._onaniFrustration++;
actor.addState(STATE_WEAKEN_ID);
actor.addState(STATE_VULNERABLE_ID);
actor.addState(STATE_OFFBALANCE_ID);
actor.setWantsToOnaniInBattle(true);
actor.setMasturbationInBattlePose();

this._forceAdvantage = 'SURPRISE';
this._gainNoOrderFlag = false;
this._gainHalfOrderFlag = true;
this._gainHalfFatigueFlag = true;

$gameMap.setupBattleback();

this.clearPrisonResults();
BattleManager.setBMAllowTachieUpdate(true);
};
如果卡琳装备英雄称号在办公室过夜斧子恢复干净★
RemtairyPrison.js

如果卡琳装备英雄称号在办公室过夜斧子恢复干净
Game_Party.prototype.restAtOffice = function() {
let actor = $gameActors.actor(ACTOR_KARRYN_ID);

let recovery = actor.fatigueRecoveryNumber();
let sleepQuality = actor.edictsSleepQuality();
sleepQuality += actor.masturbationSleepQuality();

if($gameSwitches.value(SWITCH_HALF_FATIGUE_RECOVERY_ID)) {
recovery *= 0.5;
sleepQuality--;
$gameSwitches.setValue(SWITCH_HALF_FATIGUE_RECOVERY_ID, false);
}
if(actor.isAroused() && !actor._todayMasturbatedBeforeRest) {
actor.increaseOnaniFrustration();
}
actor.recoverFatigue(recovery);
actor.setSleepQuality(sleepQuality);
actor.removeState(STATE_HORNY_ID);
actor.recoverAll_nextDay();
if(actor.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) actor.setHalberdAsDefiled(false);
actor.restoreWardenClothingLostTemporaryDurability();
actor.setupLiquids();
actor.setupStray();

this.advanceNextDay();

actor.transferEdictPointsFromStorage();
};
补贴金与治安度挂钩★
RemtairyPrison.js

修改为治安越高获得的补贴金越多
Game_Party.prototype.calculateSubsidies = function(estimated) {
let actor = $gameActors.actor(ACTOR_KARRYN_ID);
let subsidies = 0;

subsidies += actor.titlesSubsidies_Flat();
subsidies += actor.edictsSubsidies_Flat();

let order = this.order;
if(estimated) order += this.orderChange;


if(order <= 20) subsidies *= 0.5;
else if(order <= 40) subsidies *= 0.75;
else if(order <= 60) subsidies *= 1;
else if(order <= 80) subsidies *= 1.25;
else if(order <= 100) subsidies *= 1.5;
else subsidies *= 1;

subsidies *= actor.edictsSubsidies_Rate();
subsidies *= actor.titlesSubsidies_Rate();

return Math.round(subsidies);
};
死宅的勒索费设置★
RemtairyPrison.js

如果使用犯人会计勒索费会变为卡琳的堕落值乘以10

Game_Party.prototype.getNerdBlackmail = function() {
let blackmailAmt = 0;

if(Karryn.hasEdict(EDICT_INMATE_ASSISTANT_ACCOUNTANT))
blackmailAmt += Prison.corruption * 10;
else if(Karryn.hasEdict(EDICT_THREATEN_THE_NERDS) || Karryn.hasEdict(EDICT_GIVE_IN_TO_NERD_BLACKMAIL))
return 0;
else if(Karryn.hasEdict(EDICT_THE_NERD_PROBLEM))
blackmailAmt += 100;

return blackmailAmt;
};
设置开局卡琳的睡眠质量为普通★
RemtairyPrison.js

//STS Clear Actor(1) ALL
//is called before this

actor.setSleepQuality(0);
开局第一天的政策点变多★
RemtairyPrison.js

设置了开局第一天各难度的政策点为55个(只在第一天生效)
/////////
// Difficulty
////////////

Game_Party.prototype.resetDifficulty = function() {
this._difficulty = 0;
};
Game_Party.prototype.setDifficultyToEasy = function() {
$gameActors.actor(ACTOR_KARRYN_ID)._storedEdictPoints = 55;
this._difficulty = DIFFICULTY_EASY;
$gameSwitches.setValue(SWITCH_EASY_MODE_ID, true);
$gameSwitches.setValue(SWITCH_NORMAL_MODE_ID, false);
$gameSwitches.setValue(SWITCH_HARD_MODE_ID, false);
Karryn.learnSkill(EDICT_SECRETARY_MODE_ONE);
Karryn.learnSkill(EDICT_SECRETARY_MODE_TWO);
this.income;
this.expense;
this.recalculateBaseOrderChange();
};
Game_Party.prototype.setDifficultyToNormal = function() {
$gameActors.actor(ACTOR_KARRYN_ID)._storedEdictPoints = 55;
this._difficulty = DIFFICULTY_NORMAL;
$gameSwitches.setValue(SWITCH_EASY_MODE_ID, false);
$gameSwitches.setValue(SWITCH_NORMAL_MODE_ID, true);
$gameSwitches.setValue(SWITCH_HARD_MODE_ID, false);
Karryn.learnSkill(EDICT_WARDEN_MODE);
this.income;
this.expense;
this.recalculateBaseOrderChange();
};
Game_Party.prototype.setDifficultyToHard = function() {
$gameActors.actor(ACTOR_KARRYN_ID)._storedEdictPoints = 55;
this._difficulty = DIFFICULTY_HARD;
$gameSwitches.setValue(SWITCH_EASY_MODE_ID, false);
$gameSwitches.setValue(SWITCH_NORMAL_MODE_ID, false);
$gameSwitches.setValue(SWITCH_HARD_MODE_ID, true);
Karryn.learnSkill(EDICT_PRISONER_MODE_ONE);
Karryn.learnSkill(EDICT_PRISONER_MODE_TWO);
this.income;
this.expense;
this.recalculateBaseOrderChange();
在监狱里发情行走也有喘息声★
RemtairyVoices.js

// Moan Master Manager
// Moan Manager

if(this.isInMapPose() && !this.isAroused()) {
AudioManager.stopMoan();
return;
}
卡琳性交需求设置A★
RemtairyKarrynPassives.js

战斗姿态时需求+100(餐厅使用美食法式烤鲑鱼可以降低战斗中的性欲需求)
装备英雄称号时需求增加
其余修改自行查看代码

//////////
// Desire Requirements
//////////////////

Game_Actor.prototype.kissingMouthDesireRequirement = function(kissingLvl, karrynSkillUse) {
let req = 100;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(!this._firstKissDate) req += 200;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.blowjobMouthDesireRequirement = function(karrynSkillUse) {
let req = 200;

if(this.isInSexPose() && this.isAroused()) req -= 100;

if(this.isInDownFallDownPose()) req -= 100;

if(this.isWearingClitToy()) req -= 100;

return req;
};

Game_Actor.prototype.suckFingersMouthDesireRequirement = function(karrynSkillUse) {
let req = 100;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isInMasturbationCouchPose()) req -= 100;

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.blowjobCockDesireRequirement = function(karrynSkillUse) {
let req = 100;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.mouthSwallowCockDesireRequirement = function(karrynSkillUse) {
let req = 100;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.handjobCockDesireRequirement = function(karrynSkillUse) {
let req = 100;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(!this.hasPassive(PASSIVE_SEXUAL_PARTNERS_TOTAL_ONE_ID)) req += 200;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.cockPettingCockDesireRequirement = function(karrynSkillUse) {
let req = 100;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.boobsPettingBoobsDesireRequirement = function(karrynSkillUse) {
let req = 50;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isInMasturbationCouchPose()) req -= 100;

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.nipplesPettingBoobsDesireRequirement = function(karrynSkillUse) {
let req = 50;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isInMasturbationCouchPose()) req -= 100;

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ = function(karrynSkillUse) {
let req = 200;

if(this.isInSexPose() && this.isAroused()) req -= 100;

if(this.isInDownFallDownPose()) req -= 100;

if(this.isWearingClitToy()) req -= 100;

return req;
};

Game_Actor.prototype.♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ = function(karrynSkillUse) {
let req = 100;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.clitPetting♥♥♥♥♥DesireRequirement = function(karrynSkillUse) {
let req = 50;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isInMasturbationCouchPose()) req -= 100;

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.cunnilingus♥♥♥♥♥DesireRequirement = function(karrynSkillUse) {
let req = 100;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(!this.hasThisTitle(TITLE_ID_LEVEL_TWO_BOSS)) req += 200;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.♥♥♥♥♥Petting♥♥♥♥♥DesireRequirement = function(karrynSkillUse) {
let req = 50;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isInMasturbationCouchPose()) req -= 100;

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.♥♥♥♥♥Sex♥♥♥♥♥DesireRequirement = function(karrynSkillUse) {
let req = 200;

if(this.isInSexPose() && this.isAroused()) req -= 100;

if(this.isInDownStaminaPose()) req -= 100;

if(this.isWearing♥♥♥♥♥Toy()) req -= 100;

if(this.isEquippingThisAccessory(MISC_HIGHHEELS_ID)) req -= 100;

return req;
};

Game_Actor.prototype.♥♥♥♥♥SexCockDesireRequirement = function(karrynSkillUse) {
let req = 100;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.♥♥♥♥♥CreampieCockDesireRequirement = function(karrynSkillUse) {
let req = 100;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.buttPettingButtDesireRequirement = function(karrynSkillUse) {
let req = 50;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isInMasturbationCouchPose()) req -= 100;

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.spankingButtDesireRequirement = function(karrynSkillUse) {
let req = 50;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.analPettingButtDesireRequirement = function(karrynSkillUse) {
let req = 50;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isInMasturbationCouchPose()) req -= 100;

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

卡琳性交需求设置B★
RemtairyKarrynPassives.js

Game_Actor.prototype.analSexButtDesireRequirement = function(karrynSkillUse) {
let req = 200;

if(this.isInSexPose() && this.isAroused()) req -= 100;

if(this.isInDownOrgasmPose()) req -= 100;

if(this.isWearingAnalToy()) req -= 100;

return req;
};

Game_Actor.prototype.analSexCockDesireRequirement = function(karrynSkillUse) {
let req = 100;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.analCreampieCockDesireRequirement = function(karrynSkillUse) {
let req = 100;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.rimjobMouthDesireRequirement = function(karrynSkillUse) {
let req = 100;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(!this.hasPassive(PASSIVE_DEFEATED_COUNT_THREE_ID)) req += 200;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.footjobCockDesireRequirement = function(karrynSkillUse) {
let req = 100;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(!this.hasPassive(PASSIVE_COCKKICK_COUNT_THREE_ID)) req += 200;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.clitToy♥♥♥♥♥DesireRequirement = function(karrynSkillUse) {
let req = 50;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
req += 100;
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
}

return req;
};

Game_Actor.prototype.♥♥♥♥♥Toy♥♥♥♥♥DesireRequirement = function(karrynSkillUse) {
let req = 50;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.analToyButtDesireRequirement = function(karrynSkillUse) {
let req = 50;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};

Game_Actor.prototype.bodyBukkakeCockDesireRequirement = function(karrynSkillUse) {
let req = 100;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};
Game_Actor.prototype.faceBukkakeCockDesireRequirement = function(karrynSkillUse) {
let req = 100;

if(this.hasPassive(CHARA_CREATE_THREE_MAZO_ID)) req -= 100;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isVirgin()) req += 100;
else req += 50;
}

if(this.isInCombatPose()) {
if(this.ateArtisanMeal(ARTISAN_MEAL_SLUT)) req -= 100;
else req += 100;
}

return req;
};
淫乱等级修改★
RemtairyKarrynPassives.js

淫乱等级与魅力称号关联
初始等级0
获得魅惑的典狱长称号等级1
获得高岭之花称号等级2
获得黑鲍鱼新娘称号等级3
////////
// Slut level
/////////////

Game_Actor.prototype.setSlutLvl = function(lvl) {
this._slutLvl = Math.max(0, lvl);
$gameVariables.setValue(VARIABLE_SLUT_LVL_ID, this._slutLvl);
};
Game_Actor.prototype.increaseSlutLvl = function() {
if(this.hasThisTitle(TITLE_ID_PURE_WHITE_STAINED_BRIDE)) this.setSlutLvl(this.slutLvl + 3);
else if(this.hasThisTitle(TITLE_ID_ALLURING_WARDEN)) this.setSlutLvl(this.slutLvl + 2);
else if(this.hasThisTitle(TITLE_ID_ENCHANTING_WARDEN)) this.setSlutLvl(this.slutLvl + 1);
else if(this.hasThisTitle(TITLE_ID_STUNNING_WARDEN)) this.setSlutLvl(this.slutLvl + 1);
else if(this.hasThisTitle(TITLE_ID_BEAUTIFUL_WARDEN)) this.setSlutLvl(this.slutLvl + 0);
else if(this.hasThisTitle(TITLE_ID_EMPEROR_SECRETARY)) this.setSlutLvl(this.slutLvl + 0);
};
Game_Actor.prototype.decreaseSlutLvl = function() {
this.setSlutLvl(this.slutLvl - 1);
};
Game_Actor.prototype.recalculateSlutLvl = function(lvl) {
let level = 0;

if(this.hasThisTitle(TITLE_ID_STUNNING_WARDEN)) level++;

if(this.hasThisTitle(TITLE_ID_ALLURING_WARDEN)) level++;

if(this.hasThisTitle(TITLE_ID_PURE_WHITE_STAINED_BRIDE) && !this.isVirgin()) level++;

this.setSlutLvl(level);
};


Game_Actor.prototype.refreshSlutLvlStageVariables_Map = function() {
$gameVariables.setValue(VARIABLE_SLUT_LVL_STAGE_ID, this.currentSlutLvlStage_Map());
};
Game_Actor.prototype.refreshSlutLvlStageVariables_General = function() {
let stage = 0;
let reactionScore = this.getReactionScore();
if(this.hasThisTitle(TITLE_ID_PURE_WHITE_STAINED_BRIDE) && !this.isVirgin()) {
stage = 3;
}
else if(this.hasThisTitle(TITLE_ID_ALLURING_WARDEN)) {
stage = 2;
}
else if(this.hasThisTitle(TITLE_ID_STUNNING_WARDEN)) {
stage = 1;
}
$gameVariables.setValue(VARIABLE_SLUT_LVL_STAGE_ID, stage);
};

Game_Actor.prototype.currentSlutLvlStage_Map = function() {
let mapReactionScore = this.getMapReactionScore();
if(this.hasThisTitle(TITLE_ID_PURE_WHITE_STAINED_BRIDE) && !this.isVirgin()) {
return 3;
}
else if(this.hasThisTitle(TITLE_ID_ALLURING_WARDEN)) {
return 2;
}
else if(this.hasThisTitle(TITLE_ID_STUNNING_WARDEN)) {
return 1;
}
else {
return 0;
}
};
皇帝的礼物修改★
RemtairyGifts.js

选择加魅力的礼物时魅力提升更多原先提升2我改成10
添加了卡琳是处女选择礼物4女神像魅力+100
///////
// Gift Effects

Game_Actor.prototype.giftsParamBonus = function(paramId) {
let giftsBonus = 0;

if(paramId === PARAM_CHARM_ID) {
if(this.hasGift(GIFT_ID_EMPEROR_LV1_CHARM)) giftsBonus += 10;
if(this.hasGift(GIFT_ID_EMPEROR_LV2_CHARM)) giftsBonus += 10;
if(this.hasGift(GIFT_ID_EMPEROR_LV3_CHARM)) giftsBonus += 10;
if(this.hasGift(GIFT_ID_EMPEROR_LV4_CHARM)) giftsBonus += 10;

if(this.hasGift(GIFT_ID_EMPEROR_LV4_EXP_RATE) && this.isVirgin()) giftsBonus += 50;
else if(this.hasGift(GIFT_ID_EMPEROR_LV4_EXP_RATE)) giftsBonus += 25;
}


return giftsBonus;
};
首饰强化修改(加算)★
RemtairyKarryn.js

获得高潮被动提升精力
如果卡琳是处女增加50魅力
获得魅力称号提升魅力
使用英雄首饰或杂项首饰是魅力提升
英雄首饰现在没有负面加成
使用英雄称号是英雄首饰的强化
添加使用商店催情香水魅力+50
Game_Actor.prototype.accessoriesParamPlus = function(paramId) {
let value = 0;

switch(paramId) {
case PARAM_STRENGTH_ID:
if(this.isEquippingThisAccessory(BRACELET_ROPE_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) value += 5;
else value += 10;
}

if(this.isEquippingThisAccessory(EARRING_HEART_ID)) value -= 5;
break;
case PARAM_DEXTERITY_ID:
if(this.isEquippingThisAccessory(BRACELET_STRING_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) value += 5;
else value += 10;
}

if(this.isEquippingThisAccessory(EARRING_TEAR_ID)) value -= 5;
break;
case PARAM_AGILITY_ID:
if(this.isEquippingThisAccessory(BRACELET_BEADS_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) value += 5;
else value += 10;
}

if(this.isEquippingThisAccessory(EARRING_TEAR_ID)) value -= 7;
break;
case PARAM_MIND_ID:
if(this.isEquippingThisAccessory(BRACELET_PURPLE_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) value += 5;
else value += 10;
}

if(this.isEquippingThisAccessory(EARRING_TEAR_ID)) value -= 4;
if(this.isEquippingThisAccessory(EARRING_LIONESS_ID)) value -= 5;
if(this.isEquippingThisAccessory(EARRING_HEART_ID)) value -= 6;
break;
case PARAM_ENDURANCE_ID:
if(this.isEquippingThisAccessory(BRACELET_SILVER_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) value += 7;
else value += 15;
}
if(this.isEquippingThisAccessory(EARRING_STAR_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) value += 4;
else value += 8;
}

if(this.isEquippingThisAccessory(EARRING_CHEETAH_ID)) value -= 8;
if(this.isEquippingThisAccessory(EARRING_MOON_ID)) value -= 7;

break;
case PARAM_MAXSTAMINA_ID:
if(this.isEquippingThisAccessory(BRACELET_RED_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) value += 150;
else value += 300;
}
break;
case PARAM_MAXENERGY_ID:
if(this.isEquippingThisAccessory(BRACELET_PALLADIUM_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) value += 5;
else value += 10;
}

if(this.isEquippingThisAccessory(EARRING_HEART_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) value += 2;
else value += 4;
}

if(this.isEquippingThisAccessory(RING_PURITY_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) value += 20;
else value += 10;
}

if(this.hasPassive(PASSIVE_ORGASM_COUNT_SEVEN_ID)) value += 70;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_SIX_ID)) value += 60;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_FIVE_ID)) value += 50;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_FOUR_ID)) value += 40;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_THREE_ID)) value += 30;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_TWO_ID)) value += 20;
else if(this.hasPassive(PASSIVE_ORGASM_COUNT_ONE_ID)) value += 10;
break;
case PARAM_CHARM_ID:
if(this.isEquippingThisAccessory(MISC_NAILPOLISH_ID)) value += 10;
if(this.isEquippingThisAccessory(MISC_EYELINER_ID)) value += 10;
if(this.isEquippingThisAccessory(MISC_LIPGLOSS_ID)) value += 10;
if(this.isEquippingThisAccessory(MISC_PHONESTRAP_ID)) value += 10;
if(this.isEquippingThisAccessory(MISC_HIGHHEELS_ID)) value += 10;
if(this.isEquippingThisAccessory(MISC_SCARF_ID)) value += 10;
if(this.isEquippingThisAccessory(MISC_LATEXSTOCKING_ID)) value += 10;
if(this.isEquippingThisAccessory(MISC_PERFUME_ID)) value += 10;
if(this.isEquippingThisAccessory(MISC_CALFSKINBELT_ID)) value += 10;
if(this.isEquippingThisAccessory(MISC_HANDBAG_ID)) value += 10;


if(this.isEquippingThisAccessory(BRACELET_DIAMOND_CUFF_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) value += 10;
else value += 0;
}
if(this.isEquippingThisAccessory(RING_PURITY_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) value += 10;
else value += 0;
}
if(this.isEquippingThisAccessory(EARRING_PINK_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) value += 10;
else value += 0;
}
if(this.isEquippingThisAccessory(NECKLACE_HERO_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) value += 10;
else value += 0;
}

if(this.hasThisTitle(TITLE_ID_EMPEROR_SECRETARY)) value += 50;

if(this.isUsingStoreItem(STORE_ITEM_APHRODISIAC_PERFUME)) value += 50;

if(this.hasThisTitle(TITLE_ID_PURE_WHITE_STAINED_BRIDE)) value += 100;
else if(this.hasThisTitle(TITLE_ID_ALLURING_WARDEN)) value += 69;
else if(this.hasThisTitle(TITLE_ID_ENCHANTING_WARDEN)) value += 42;
else if(this.hasThisTitle(TITLE_ID_STUNNING_WARDEN)) value += 32;
else if(this.hasThisTitle(TITLE_ID_BEAUTIFUL_WARDEN)) value += 24;
break;
}


return value;
};
首饰效果修改(乘算)★
RemtairyKarryn.js

添加每获得一个闪避称号敏捷加10%
添加卡琳每到达相应疲劳等级全能力减小
英雄首饰现在没有负面加成
使用英雄称号是英雄首饰的强化
/////////
// Accessories

Game_Actor.prototype.accessoriesParamRate = function(paramId) {
let rate = 1;

switch(paramId) {
case PARAM_STRENGTH_ID:
if(this.isEquippingThisAccessory(MISC_HANDBAG_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) rate *= 1.015;
else rate *= 1.03;
}

if(this.isEquippingThisAccessory(EARRING_LIONESS_ID)) rate *= 0.88;
if(this.isEquippingThisAccessory(EARRING_HEART_ID)) rate *= 0.9;

if(Fatiguelevel = 0) rate *= 1;
else if(Fatiguelevel = 1) rate *= 0.9;
else if(Fatiguelevel = 2) rate *= 0.8;
else if(Fatiguelevel = 3) rate *= 0.7;
else if(Fatiguelevel = 4) rate *= 0.6;
else if(Fatiguelevel = 5) rate *= 0.5;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO) && this.isEquippingThisAccessory(BRACELET_DIAMOND_CUFF_ID)) rate *= 2;
break;
case PARAM_DEXTERITY_ID:
if(this.isEquippingThisAccessory(MISC_PERFUME_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) rate *= 1.025;
else rate *= 1.05;
}

if(this.isEquippingThisAccessory(EARRING_STAR_ID)) rate *= 0.8;
if(this.isEquippingThisAccessory(EARRING_CHEETAH_ID)) rate *= 0.85;
if(this.isEquippingThisAccessory(EARRING_SKULL_ID)) rate *= 0.87;
if(this.isEquippingThisAccessory(MISC_SCARF_ID)) rate *= 0.67;

if(Fatiguelevel = 0) rate *= 1;
else if(Fatiguelevel = 1) rate *= 0.9;
else if(Fatiguelevel = 2) rate *= 0.8;
else if(Fatiguelevel = 3) rate *= 0.7;
else if(Fatiguelevel = 4) rate *= 0.6;
else if(Fatiguelevel = 5) rate *= 0.5;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO) && this.isEquippingThisAccessory(RING_PURITY_ID)) rate *= 2;
break;
case PARAM_AGILITY_ID:
if(this.isEquippingThisAccessory(EARRING_LIONESS_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) rate *= 1.025;
else rate *= 1.05;
}
if(this.isEquippingThisAccessory(MISC_PERFUME_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) rate *= 1.025;
else rate *= 1.05;
}

if(this.isEquippingThisAccessory(EARRING_TEAR_ID)) rate *= 0.95;
if(this.isEquippingThisAccessory(EARRING_SKULL_ID)) rate *= 0.87;
if(this.isEquippingThisAccessory(MISC_HIGHHEELS_ID)) rate *= 0.67;
if(this.isEquippingThisAccessory(MISC_LATEXSTOCKING_ID)) rate *= 0.8;

if(this.hasThisTitle(TITLE_ID_EVASION_THREE)) rate *= 1.3;
else if(this.hasThisTitle(TITLE_ID_EVASION_TWO)) rate *= 1.2;
else if(this.hasThisTitle(TITLE_ID_EVASION_ONE)) rate *= 1.1;

if(Fatiguelevel = 0) rate *= 1;
else if(Fatiguelevel = 1) rate *= 0.9;
else if(Fatiguelevel = 2) rate *= 0.8;
else if(Fatiguelevel = 3) rate *= 0.7;
else if(Fatiguelevel = 4) rate *= 0.6;
else if(Fatiguelevel = 5) rate *= 0.5;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO) && this.isEquippingThisAccessory(EARRING_PINK_ID)) rate *= 2;
break;
case PARAM_MIND_ID:
if(this.isEquippingThisAccessory(EARRING_STAR_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) rate *= 1.075;
else rate *= 1.15;
}
if(this.isEquippingThisAccessory(NECKLACE_EMERALD_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) rate *= 1.05;
else rate *= 1.1;
}

if(this.isEquippingThisAccessory(EARRING_SKULL_ID)) rate *= 0.34;
if(this.isEquippingThisAccessory(MISC_PERFUME_ID)) rate *= 0.75;

if(Fatiguelevel = 0) rate *= 1;
else if(Fatiguelevel = 1) rate *= 0.9;
else if(Fatiguelevel = 2) rate *= 0.8;
else if(Fatiguelevel = 3) rate *= 0.7;
else if(Fatiguelevel = 4) rate *= 0.6;
else if(Fatiguelevel = 5) rate *= 0.5;
break;
case PARAM_ENDURANCE_ID:
if(this.isEquippingThisAccessory(EARRING_STAR_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) rate *= 1.025;
else rate *= 1.05;
}

if(this.isEquippingThisAccessory(EARRING_CHEETAH_ID)) rate *= 0.9;
if(this.isEquippingThisAccessory(EARRING_MOON_ID)) rate *= 0.9;
if(this.isEquippingThisAccessory(EARRING_SKULL_ID)) rate *= 0.67;

if(Fatiguelevel = 0) rate *= 1;
else if(Fatiguelevel = 1) rate *= 0.9;
else if(Fatiguelevel = 2) rate *= 0.8;
else if(Fatiguelevel = 3) rate *= 0.7;
else if(Fatiguelevel = 4) rate *= 0.6;
else if(Fatiguelevel = 5) rate *= 0.5;

if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) {
if(this.isEquippingThisAccessory(BRACELET_DIAMOND_CUFF_ID) && this.isEquippingThisAccessory(RING_PURITY_ID) && this.isEquippingThisAccessory(EARRING_PINK_ID) && this.isEquippingThisAccessory(NECKLACE_HERO_ID)) rate *= 3;
else rate *= 2;
}
break;
case PARAM_MAXENERGY_ID:
if(this.isEquippingThisAccessory(EARRING_SUN_ID)) {
if(this.isUsingThisTitle(TITLE_ID_ASPIRING_HERO)) rate *= 1.1;
else rate *= 1.2;
}

if(this.isEquippingThisAccessory(MISC_PERFUME_ID)) rate *= 1.5;

if(this.isUsingThisTitle(TITLE_ID_FINAL_DESTINATION)) rate *= 2;
break;
}

return rate;
};
敌人重生设置★
RemtairyPrison.js

过夜敌人不重生
// Advance Next Day目录下在指令前加上//
//this.respawnAnarchyEnemies(false);
//this.respawnNightBattleEnemies();

发生暴乱后夜战敌人重生
在//this.respawnNightBattleEnemies();下行添加
if(this.prisonLevelOneIsRioting()) this.respawnNightBattleEnemies();
else if(this.prisonLevelTwoIsRioting()) this.respawnNightBattleEnemies();
else if(this.prisonLevelThreeIsRioting()) this.respawnNightBattleEnemies();
else if(this.prisonLevelFourIsRioting()) this.respawnNightBattleEnemies();
else if(this.prisonLevelFiveIsRioting()) this.respawnNightBattleEnemies();
夜战模式修改★
RemtairyKarryn.js

//////////////
// Night Mode
// Exhibitionist Mode
//////////////

如果卡琳不解除发情第二天起床任然是夜战模式
Game_Actor.prototype.getNightModeScoreRequirement = function() {
return this.currentPercentOfOrgasm(true) < 100;
};

如果守卫是志愿者夜战时卡琳卧室门口的守卫会袭击卡琳
if(points >= this.getNightModeScoreRequirement()) {
$gameSwitches.setValue(SWITCH_NIGHT_MODE_ID, true);
$gameSwitches.setValue(SWITCH_NIGHT_MODE_EB_HALLWAY_ID, true);

if(!this.hasEdict(EDICT_OFFICE_VOLUNTEER_GUARDS))
$gameSwitches.setValue(SWITCH_NIGHT_MODE_EB_HALLWAY_ID, false);

if($gameVariables.value(VARIABLE_FIRST_EXHIB_PROGRESS_ID) === 0)
$gameVariables.setValue(VARIABLE_FIRST_EXHIB_PROGRESS_ID, 1);

this._todayTriggeredNightMode = true;

this.raidSight(false, true);
}
开局选择能干的经理人称号 政策点延迟加强★
RemtairyKarrynTitles.js

Game_Actor.prototype.titleEfficientAdminstrator_carryoverUnusedEdictPoint = function() {
if(this.hasThisTitle(TITLE_ID_CC_SKILLED_MANAGER)) return 2;
else return 1;
};
取消通缉犯★
RemtairyWanted.js

删除
if(typeCount < typeLimit && wantedPoints >= reqWantedPoints && !enemy._tagDontAddWanted) {
$gameParty.addNewWanted(enemy);
}
高潮后欲望设置★
RemtairyKarryn.js

修改为卡琳高潮后
如果不是处女或佩戴玩具欲望设置为33%发情
如果卡琳是处女欲望设置为0%
Game_Actor.prototype.postOrgasmPleasure = function() {
if($gameParty.isTutorialBattle()) this.setPleasureToArousalPoint();
else if(!this.isVirgin()) this.setPleasureToArousalPoint();
else if(this.isWearingClitToy()) this.setPleasureToArousalPoint();
else if(this.isWearing♥♥♥♥♥Toy()) this.setPleasureToArousalPoint();
else if(this.isWearingAnalToy()) this.setPleasureToArousalPoint();
else if(this.isVirgin()) this.setPleasure(0);
};
开局教学关卡修改★
RemtairyEnemyAI.js

如果卡琳第一回合出暴击秒杀康训练关正常结束
从第二回合开始卡琳会被康肆意玩弄

//Tutorial battle ai
Game_Enemy.prototype.enemyBattleAITutorial = function() {
if(!$gameTemp._tutorialTurn) $gameTemp._tutorialTurn = 1;
//let target = BattleManager._targets[0];
//this._lastAITarget = BattleManager._targets[0];
let target = $gameActors.actor(ACTOR_KARRYN_ID);
this._lastAITarget = $gameActors.actor(ACTOR_KARRYN_ID);
let turnCount = $gameTemp._tutorialTurn;
let arousalPoint = this.arousalPoint(0);
let thirdToPoint = Math.ceil(arousalPoint * 1);
let currentBoobsDesire = target.boobsDesire;

if(turnCount === 1 || turnCount === 2) {
if(turnCount === 1) this.useAISkill(SKILL_ENEMY_TALK_SKILL_COCK_ID,target);
if(turnCount === 1) target.useAISkill(SKILL_KARRYN_COCK_STARE_ONE_ID,this);

if(turnCount === 2) target.useAISkill(SKILL_KARRYN_TAUNT_ID,this);
if(turnCount === 2) this.useAISkill(SKILL_ENEMY_SPANKING_THREE_ID,target);
if(turnCount === 2) target.useAISkill(SKILL_FEMALE_ORGASM_ONE_ID,this);
if(turnCount === 2) this.useAISkill(SKILL_ROGUE_TRIP_ID,target);
}
else if(turnCount === 3) {
this.useAISkill(SKILL_ENEMY_STARE_SKILL_MOUTH_ID,target);
this.useAISkill(SKILL_ENEMY_GET_FINGERS_SUCKED_ID,target);
this.useAISkill(SKILL_ENEMY_STARE_SKILL_CLIT_ID,target);
this.useAISkill(SKILL_ENEMY_PETTING_CLIT_ID,target);
this.useAISkill(SKILL_ENEMY_TOY_INSERT_PINK_ROTOR_ID,target);
this.useAISkill(SKILL_ENEMY_TOY_PLAY_PINK_ROTOR_ID,target);
this.useAISkill(SKILL_ENEMY_STARE_SKILL_♥♥♥♥♥_ID,target);
this.useAISkill(SKILL_ENEMY_PETTING_♥♥♥♥♥_ID,target);
this.useAISkill(SKILL_ENEMY_TOY_INSERT_PENIS_DILDO_ID,target);
this.useAISkill(SKILL_ENEMY_TOY_PLAY_PENIS_DILDO_ID,target);
this.useAISkill(SKILL_ENEMY_STARE_SKILL_BUTT_ID,target);
this.useAISkill(SKILL_ENEMY_PETTING_BUTT_ID,target);
this.useAISkill(SKILL_ENEMY_STARE_SKILL_ANAL_ID,target);
this.useAISkill(SKILL_ENEMY_PETTING_ANAL_ID,target)
this.useAISkill(SKILL_ENEMY_TOY_INSERT_ANAL_BEADS_ID,target);
this.useAISkill(SKILL_ENEMY_TOY_PLAY_ANAL_BEADS_ID,target);
this.useAISkill(SKILL_ENEMY_STARE_SKILL_BOOBS_ID,target);
this.useAISkill(SKILL_ENEMY_PETTING_BOOBS_ID,target);
this.useAISkill(SKILL_ENEMY_STARE_SKILL_NIPPLES_ID,target);
this.useAISkill(SKILL_ENEMY_PETTING_NIPPLES_ID,target);
target.useAISkill(SKILL_FEMALE_ORGASM_TWO_ID,this);
}
else if(turnCount === 4) {
target.useAISkill(SKILL_STAND_UP_ID,this);
}
else if(turnCount === 5) {
this.useAISkill(SKILL_ROGUE_TRIP_ID,target);
this.useAISkill(SKILL_ENEMY_TALK_SKILL_COCK_JERKOFF_ID,target);
this.useAISkill(SKILL_ENEMY_POSESTART_STANDINGHJ_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_RIGHTHAND_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_RIGHTHAND_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_RIGHTHAND_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_RIGHTHAND_ID, target);
this.useAISkill(SKILL_ENEMY_POSESTART_LAYINGTF_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_BOOBS_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_BOOBS_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_BOOBS_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_BOOBS_ID, target);
this.useAISkill(SKILL_ENEMY_EJACULATE_FACE_ID, target);
target.useAISkill(SKILL_KARRYN_COCK_KICK_ID,this);
this.useAISkill(SKILL_ENEMY_POSESTART_KICKCOUNTER_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_EJACULATE_♥♥♥♥♥_ID, target);
target.useAISkill(SKILL_FEMALE_ORGASM_TWO_ID,this);
this.useAISkill(SKILL_ENEMY_SPANKING_THREE_ID,target);
this.useAISkill(SKILL_ENEMY_POSESTART_COWGIRL_REVERSE_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_EJACULATE_ANAL_ID, target);
target.useAISkill(SKILL_FEMALE_ORGASM_TWO_ID,this);
this.useAISkill(SKILL_ENEMY_POSESTART_KNEELINGBJ_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_MOUTH_ID, target);
target.useAISkill(SKILL_BREATHE_ID,this);
this.useAISkill(SKILL_ENEMY_POSESKILL_MOUTH_ID, target);
target.useAISkill(SKILL_FOCUS_ID,this);
this.useAISkill(SKILL_ENEMY_POSESKILL_MOUTH_ID, target);
target.useAISkill(SKILL_EYE_OF_THE_MIND_ID,this);
this.useAISkill(SKILL_ENEMY_POSESKILL_MOUTH_ID, target);
target.useAISkill(SKILL_KI_ID,this);
this.useAISkill(SKILL_ENEMY_EJACULATE_MOUTH_ID, target);
target.useAISkill(SKILL_FEMALE_ORGASM_ONE_ID,this);
this.useAISkill(SKILL_ENEMY_EJACULATE_ONTO_FLOOR_ID, target);
target.useAISkill(SKILL_KARRYN_COCK_KICK_ID,this);
}

$gameTemp._tutorialTurn++;
};
当医生使用DEBUFF技能为卡琳打针修改为舔穴★
RemtairyEnemyAI.js

当医生使用DEBUFF技能为卡琳打针修改为舔穴

//Cargill AI
Game_Enemy.prototype.enemyBattleAICargill = function() {
//let target = BattleManager._targets[0];
//this._lastAITarget = BattleManager._targets[0];
let target = $gameActors.actor(ACTOR_KARRYN_ID);
this._lastAITarget = $gameActors.actor(ACTOR_KARRYN_ID);

let slime = $gameTroop.members()[0];
let rogue = $gameTroop.members()[1];
let nerd = $gameTroop.members()[2];

let hasEnoughEnergy = this.mp >= 10;
let rogueIsDead = rogue.isDead();
let nerdIsDead = nerd.isDead();
let slimeIsHurt = slime.isSlammedThisBattle();
let slimeIsSlightlyHurt = slime.isCleavedThisBattle() || slime.isSkeweredThisBattle();
let karrynIsNotHorny = !target.isHorny;
let karrynIsInSexPose = target.isInSexPose();

const ACTION_CARGILL_SIGHT = 1;
const ACTION_CARGILL_TALK = 2;
const ACTION_CARGILL_HEAL_SLIME = 3;
const ACTION_CARGILL_REVIVE_ROGUE = 4;
const ACTION_CARGILL_REVIVE_NERD = 5;
const ACTION_CARGILL_DEBUFF_KARRYN = 6;

if(this.isChargedUp()) {
if(this._cargillAction === ACTION_CARGILL_DEBUFF_KARRYN) {
this.useAISkill(SKILL_CARGILL_DEBUFF_ID,target);
this.useAISkill(SKILL_ENEMY_SPANKING_THREE_ID,target);
this.useAISkill(SKILL_ENEMY_POSESTART_GOBLINCUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_EJACULATE_ONTO_FLOOR_ID,target);
}
else if(this._cargillAction === ACTION_CARGILL_HEAL_SLIME) {
this._lastAITarget = slime;
this.useAISkill(SKILL_CARGILL_SLIMEHEAL_ID,slime);
}
else if(this._cargillAction === ACTION_CARGILL_REVIVE_ROGUE) {
this._lastAITarget = rogue;
if(!rogue.hasEjaculationStock()) rogue._ejaculationStock = 1;
rogue._mp += Math.randomInt(8) + 8;
rogue._mp = rogue._mp.clamp(0, rogue.mmp);
this.useAISkill(SKILL_CARGILL_REVIVE_ID,rogue);
}
else if(this._cargillAction === ACTION_CARGILL_REVIVE_NERD) {
this._lastAITarget = nerd;
if(!nerd.hasEjaculationStock()) nerd._ejaculationStock = 1;
nerd._mp += Math.randomInt(10) + 15;
nerd._mp = nerd._mp.clamp(0, nerd.mmp);
this.useAISkill(SKILL_CARGILL_REVIVE_ID,nerd);
}
}
else {
let nextActionArray = [ ACTION_CARGILL_SIGHT, ACTION_CARGILL_SIGHT ]

if(hasEnoughEnergy) {
if(!karrynIsInSexPose) {
if(slimeIsHurt) {
nextActionArray.push(ACTION_CARGILL_HEAL_SLIME);
nextActionArray.push(ACTION_CARGILL_HEAL_SLIME);
nextActionArray.push(ACTION_CARGILL_HEAL_SLIME);
if(slime.hasLessThanOneThirdStamina()) {
nextActionArray.push(ACTION_CARGILL_HEAL_SLIME);
nextActionArray.push(ACTION_CARGILL_HEAL_SLIME);
nextActionArray.push(ACTION_CARGILL_HEAL_SLIME);
}
}
else if(slimeIsSlightlyHurt) {
nextActionArray.push(ACTION_CARGILL_HEAL_SLIME);
if(slime.hasLessThanOneThirdStamina()) {
nextActionArray.push(ACTION_CARGILL_HEAL_SLIME);
}
}
}

if(rogueIsDead) {
nextActionArray.push(ACTION_CARGILL_REVIVE_ROGUE);
nextActionArray.push(ACTION_CARGILL_REVIVE_ROGUE);
nextActionArray.push(ACTION_CARGILL_REVIVE_ROGUE);
}

if(nerdIsDead) {
nextActionArray.push(ACTION_CARGILL_REVIVE_NERD);
nextActionArray.push(ACTION_CARGILL_REVIVE_NERD);
nextActionArray.push(ACTION_CARGILL_REVIVE_NERD);
}

if(karrynIsNotHorny) {
nextActionArray.push(ACTION_CARGILL_DEBUFF_KARRYN);
nextActionArray.push(ACTION_CARGILL_DEBUFF_KARRYN);
nextActionArray.push(ACTION_CARGILL_DEBUFF_KARRYN);
}

if(!karrynIsInSexPose) {
if(!target.isStateAffected(STATE_WEAKEN_ID))
nextActionArray.push(ACTION_CARGILL_DEBUFF_KARRYN);
if(!target.isStateAffected(STATE_POISON_ID))
nextActionArray.push(ACTION_CARGILL_DEBUFF_KARRYN);
}
else {
nextActionArray.push(ACTION_CARGILL_SIGHT);
}
}

let nextAction = nextActionArray[Math.randomInt(nextActionArray.length)];
switch(nextAction) {
case ACTION_CARGILL_SIGHT:
this.useAISkill(SKILL_ENEMY_STARE_SELECTOR_RANDOM_ID,target);
break;
case ACTION_CARGILL_TALK:
this.useAISkill(SKILL_ENEMY_TALK_SELECTOR_RANDOM_ID,target);
break;
case ACTION_CARGILL_HEAL_SLIME:
this.useAISkill(SKILL_CARGILL_CHARGE_ID,target);
this._cargillAction = ACTION_CARGILL_HEAL_SLIME;
break;
case ACTION_CARGILL_REVIVE_ROGUE:
this.useAISkill(SKILL_CARGILL_CHARGE_ID,target);
this._cargillAction = ACTION_CARGILL_REVIVE_ROGUE;
break;
case ACTION_CARGILL_REVIVE_NERD:
this.useAISkill(SKILL_CARGILL_CHARGE_ID,target);
this._cargillAction = ACTION_CARGILL_REVIVE_NERD;
break;
case ACTION_CARGILL_DEBUFF_KARRYN:
this.useAISkill(SKILL_CARGILL_CHARGE_ID,target);
this._cargillAction = ACTION_CARGILL_DEBUFF_KARRYN;
this.useAISkill(SKILL_ENEMY_SPANKING_THREE_ID,target);
this.useAISkill(SKILL_ENEMY_POSESTART_GOBLINCUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_POSESKILL_CUNNI_ID,target);
this.useAISkill(SKILL_ENEMY_EJACULATE_ONTO_FLOOR_ID,target);
break;
}
}

this._mp = this._mp.clamp(0, this.mmp);
};

上面修改会导致如果医生在2F厕所刷新会发生错误
在RemtairyWanted.js关闭医生的通缉设定使其不再刷新

Wanted_Enemy.prototype.enemyTypeIsBoss = function() {
return this._enemyType === ENEMYTYPE_YASU_TAG ||
this._enemyType === ENEMYTYPE_TONKIN_TAG ||
//this._enemyType === ENEMYTYPE_CARGILL_TAG ||
this._enemyType === ENEMYTYPE_ARON_TAG ||
this._enemyType === ENEMYTYPE_NOINIM_TAG ||
this._enemyType === ENEMYTYPE_GOBRIEL_TAG;
};
修改最终BOSS康的行动★
RemtairyEnemyAI.js

当卡琳倒地体力为0时
康会主动做出性行为

//Yasu AI
Game_Enemy.prototype.enemyBattleAIYasu = function() {
let target = $gameActors.actor(ACTOR_KARRYN_ID);
let resetAttackPattern = true;
let mentalSkill = false;
let actionSkill = false;
let usePoseSkill = false;

//Revitalize highest priority
if(target.hasNoStamina()) {
this.useAISkill(SKILL_ENEMY_POSESTART_THUGGANGBANG_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_EJACULATE_♥♥♥♥♥_ID, target);
this.useAISkill(SKILL_ENEMY_POSESTART_COWGIRL_REVERSE_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_EJACULATE_ANAL_ID, target);
this.useAISkill(SKILL_ENEMY_POSESTART_LAYINGTF_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_BOOBS_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_BOOBS_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_BOOBS_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_BOOBS_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_BOOBS_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_BOOBS_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_BOOBS_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_BOOBS_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_BOOBS_ID, target);
this.useAISkill(SKILL_ENEMY_POSESTART_KNEELINGBJ_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_MOUTH_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_MOUTH_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_MOUTH_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_MOUTH_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_MOUTH_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_MOUTH_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_MOUTH_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_MOUTH_ID, target);
this.useAISkill(SKILL_ENEMY_POSESKILL_MOUTH_ID, target);
this.useAISkill(SKILL_ENEMY_EJACULATE_MOUTH_ID, target);
this.useAISkill(SKILL_ENEMY_EJACULATE_FACE_ID, target);
target.useAISkill(SKILL_BREATHE_ID,this);
target.useAISkill(SKILL_STAND_UP_ID,this);
target.useAISkill(SKILL_KARRYN_COCK_KICK_ID,this);
}
抖M称号对耐力加成★
RemtairyKarrynTitles.js

荡妇等级大于2时持有抖M称号时提升忍耐力
// Effects

case PARAM_ENDURANCE_ID:
if(this.hasThisTitle(TITLE_ID_ENDURANCE_TWO)) bonus += 2;
else if(this.hasThisTitle(TITLE_ID_ENDURANCE_ONE)) bonus += 1;
if(this.hasThisTitle(TITLE_ID_GOLDEN_WAITRESS)) bonus += 1;

if(this.isUsingThisTitle(TITLE_ID_DIRTY_DICK_HAIR_MAGNET)) bonus += this.paramStrayEndBonus();

if(this.hasThisTitle(TITLE_ID_PURE_WHITE_STAINED_BRIDE) && this.hasThisTitle(TITLE_ID_HARDCORE_MASOCHIST)) bonus += 20;
else if(this.hasThisTitle(TITLE_ID_ALLURING_WARDEN) && this.hasThisTitle(TITLE_ID_SOFTCORE_MASOCHIST)) bonus += 10;
break;
如果卡琳拥有飞机杯称号敌人对卡琳暴击率翻倍★
RemtairyKarrynTitles.js

游戏原本是装备生效现在改为持有就生效

Game_Actor.prototype.titleEnemyXParamRate = function(paramId, enemy) {
let rate = 1;

switch(paramId) {
case XPARAM_CRIT_ID:
if(this.hasThisTitle(TITLE_ID_FINAL_DESTINATION))
rate += 1;
break;
如果卡琳拥有飞机杯称号装备栏只有第五个生效★
RemtairyKarrynTitles.js

///////
// Accessories
////////

Game_Actor.prototype.isEquippingThisAccessory = function(id) {
const equips = this.equips();
if(this.hasThisTitle(TITLE_ID_FINAL_DESTINATION)) {
if(equips[EQUIP_SLOT_ACCESSORY_END_ID]) {
if(id == equips[EQUIP_SLOT_ACCESSORY_END_ID].id) return true;
}
}
else {
for(let i = EQUIP_SLOT_ACCESSORY_START_ID; i <= EQUIP_SLOT_ACCESSORY_END_ID; ++i) {
if(equips) {
if(id == equips.id) return true;
}
}
}
return false;
};
关闭称号额外的补助金奖励★
RemtairyKarrynTitles.js

Game_Actor.prototype.titlesSubsidies_Flat = function() {
let value = 0;

//if(this.hasThisTitle(TITLE_ID_REDEEMED_TWO)) value += 25;
//if(this.hasThisTitle(TITLE_ID_LEVEL_THREE_BOSS)) value += 30;
//else if(this.hasThisTitle(TITLE_ID_LEVEL_ONE_BOSS)) value += 15;
//if(this.hasThisTitle(TITLE_ID_♥♥♥♥♥_PETTER)) value += 10;
//if(this.hasThisTitle(TITLE_ID_DAY_COUNT_THREE)) value += 30;
//else if(this.hasThisTitle(TITLE_ID_DAY_COUNT_TWO)) value += 20;
//else if(this.hasThisTitle(TITLE_ID_DAY_COUNT_ONE)) value += 10;

if(this.hasThisTitle(TITLE_ID_CC_SKILLED_MANAGER)) value += 200;
else if(this.hasThisTitle(TITLE_ID_CC_MANAGEMENT_CONSULTANT)) value += 50;


return value;
};
金属敌人逃跑技能替换成往地上射精★
RemtairyEnemyAI.js

//Metal AI
Game_Enemy.prototype.enemyMetalBattleAI = function(target) {
if(this._enemyTurnCount >= VAR_ENEMYAI_METAL_TURNLIMIT && !this.isInAPose()) {
this.useAISkill(SKILL_ENEMY_EJACULATE_ONTO_FLOOR_ID, target);
this.setUsedSkillThisTurn(true);
return;
}
双重高潮与三重高潮回复精力修改
RemtairyKarrynPassives.js

修改为同时拥有抖M称号和双重或三重高潮被动触发回复精力

/////////
// Orgasm Revival

Game_Actor.prototype.passivePostOrgasmRevivalEffect = function() {
if(this.hasThisTitle(TITLE_ID_HARDCORE_MASOCHIST) && this.hasPassive(PASSIVE_ORGASM_TRIPLE_ID) && !this._tempRecordUsedPostOrgasmRevival) {
this._tempRecordUsedPostOrgasmRevival = true;
this.setMp(Math.round(this.maxenergy * 0.5));
}
else if(this.hasThisTitle(TITLE_ID_SOFTCORE_MASOCHIST) && this.hasPassive(PASSIVE_ORGASM_DOUBLE_ID) && !this._tempRecordUsedPostOrgasmRevival) {
this._tempRecordUsedPostOrgasmRevival = true;
this.setMp(Math.round(this.maxenergy * 0.25));
}
};
治安相关修改★
RemtairyPrison.js

设置自由模式下也会GAMEOVER
没有装备秘书称号过夜每日治安-10
///////
// Order
/////////

Game_Party.prototype.setOrder = function(value) {
let minOrder = 0;
let maxOrder = PRISON_ORDER_MAX;

if(this.freeMode()) {
minOrder += 0;
maxOrder -= 0;
}

//Order Change
//aka this.orderChange
//Control value
Game_Party.prototype.orderChangeValue = function() {
let actor = $gameActors.actor(ACTOR_KARRYN_ID);
let control = this._orderChangePerDay;

control += this.orderChangeRiotManager();
control += actor.titlesOrderChange();
control += actor.variablePrisonControl();

if(actor.hasThisTitle(TITLE_ID_FULL_ORDER_FOUR)) control += 4;
else if(actor.hasThisTitle(TITLE_ID_FULL_ORDER_THREE)) control += 3;
else if(actor.hasThisTitle(TITLE_ID_FULL_ORDER_TWO)) control += 2;
else if(actor.hasThisTitle(TITLE_ID_FULL_ORDER_ONE)) control += 1;

if(!actor.isUsingThisTitle(TITLE_ID_EMPEROR_SECRETARY) && !actor._flagEquippedSecretaryTitleForWholeDay) {
control -= 10;
}

if(Prison.cheatMode()) {
if(ConfigManager.cheatLessControlFive) control -= 50;
if(ConfigManager.cheatLessControlTen) control -= 100;
}

control = Math.round(control);
this._cacheOrderChange = control;
return control;
};
政策点相关修改★
RemtairyEdicts.js

卡琳发情时当天政策点-1

/////////////
// Edict Points
///////////////

Game_Actor.prototype.getStoredEdictPoints = function() {
return this._storedEdictPoints;
};

Game_Actor.prototype.resetEdictPoints = function() {
this._storedEdictPoints = 0;
this.setAsp(0);
};

Game_Actor.prototype.getNewDayEdictPoints = function() {
let unusedPoints = Math.max(this._storedEdictPoints, this.stsAsp());
this.resetEdictPoints();

let points = 2;

if(this.isAroused()) points--;

//if(Prison.easyMode()) points++;
//else if(Prison.hardMode() && Prison.date % 2 === 0) points--;

if(this.hasEdict(EDICT_PARTIALLY_RESTORE_BUREAUCRACY)) {
if(this.hasEdict(EDICT_REDIRECT_SUBSIDIES)) {
if(Prison.date % 2 === 1)
points++;
}
else
points++;
}
137 Comments
malaka 24 Jun @ 7:49pm 
看大佬改的一些东西能让我学到一些修改的相关知识,大佬能不能有时间在哪个平台教一下修改相关的知识
TEA 9 May @ 12:04am 
大佬网盘文件能补档吗?
futahuli 5 May @ 6:15pm 
另外,看起来网盘的文件确实是没了
我想要学习一下代码修改,所以能补档下不佬?
futahuli 4 May @ 11:08pm 
虽然有些晚了楼主,但是我在测试的时候,发现新版的卡琳没法用RPGmakerMV的自带游戏测试按键打开了,lz有头绪嘛
Sora 24 Mar @ 12:11am 
大佬文件没了吗
Max 19 Jan @ 2:54am 
金錢的還是有的,在battle manager文件裏
justice_hans 14 Dec, 2024 @ 11:41pm 
大佬,体力恢复,精力恢复,意志力恢复之类怎么改
慕容 2 Nov, 2024 @ 4:08am 
大佬金钱修改失效了~!能补充个吗?求求了
375593982 18 Oct, 2024 @ 10:32am 
大佬金钱修改失效了~!能补充个吗?求求了~!:karryn:
Bailin 13 Oct, 2024 @ 11:50am 
請問有辦法讓夜戰模式在特殊情況再出現嗎,比如戰敗後才進入或主動進入
RemtairyKarryn.js 裡面進入夜戰模式的條件看起來是計算脫光的程度,導致無法白天裸體,但是直接關掉夜戰模式又覺得有點可惜