Kysou
New Member
- Aug 5, 2017
- 12
- 4
- 21
I've played at least 4 different versions and never had a save issue. I don't do anything special. I'm on windows. Idk what people are doing wrong
A bit of both. Early on Catherine shows excitement and curiosity to perversion, but she's shy about it. IO goes "Hmm, this sells" and works on her inhibitions. Later, an event leads to a diary from the previous resident with a way to resist his influence, but that's up to you. And if you let it go long enough without resisting, Catherine will prevent you from going/continuing that path.Is this a out of control robot forces lewd stuff hypno or "she kinda wanted to do this anyway it's just disinhibition" hypno?
I like the art and I like the bar trope, just wonderin' if the content itself is something I'd like.
Hypno stuff is very very very hit or miss.
Neat, okay I'll try it then and give 'em some mons if I have fun.A bit of both. Early on Catherine shows excitement and curiosity to perversion, but she's shy about it. IO goes "Hmm, this sells" and works on her inhibitions. Later, an event leads to a diary from the previous resident with a way to resist his influence, but that's up to you. And if you let it go long enough without resisting, Catherine will prevent you from going/continuing that path. View attachment 5249053
Yes, but nobody gets pardoned for French.Pardon my french but are we fucking yet?
Welp, Guillotine it is then. C'est la vieYes, but nobody gets pardoned for French.
That's it so far when it comes to the plot. Check the gallery, if you have everything unlocked there then you got everything until the next patchIs there anything else to do once I get to this point or is it as far as the story goes? View attachment 5261266
Yeah, the sewers have kinda taken a backseat in the dev process for now, perhaps to allow for some art to be redrawn. Or maybe just 'cuz there's more demand for gettin' Cat dancing on the pole...!That's it so far when it comes to the plot. Check the gallery, if you have everything unlocked there then you got everything until the next patch
www/js/plugins.js{"name":"GraphicsRenderFix","status":true,"description":"","parameters":{}}
{"name":"GraphicsRenderFix","status":true,"description":"","parameters":{}},
{"name":"AutoPerfectBartender","status":true,"description":"","parameters":{}}
www/js/plugins/AutoPerfectBartender.js and paste the code below./*:
* @target MZ
* @plugindesc Always pass bartender QTE success checks without skipping content. Leaves waitress hazards (Tripped! / Groped!) untouched.
* @author Groomtinger (+ helper)
*/
(() => {
'use strict';
const QTE_ACTIVE_SWITCH = 3;
const VAR_MART_POS = 6; // Martini cursor offset
const VAR_MART_STAGE = 27; // Martini tally 0..3
const PERFECT_MART_POS = 0; // centered, inside -130..130
const PERFECT_MART_STAGE = 3; // perfect result branch
const _gvValue = Game_Variables.prototype.value;
Game_Variables.prototype.value = function(id) {
const real = _gvValue.call(this, id);
if (id === VAR_MART_POS) return PERFECT_MART_POS;
if (id === VAR_MART_STAGE) return PERFECT_MART_STAGE;
return real;
};
const PHRASES_PERFECT = [
"Perfect Fill"
];
function deepClone(o){ return JSON.parse(JSON.stringify(o)); }
function isExactSingleLineShowTextAt(list, i, phrases) {
const cmd = list[i];
if (!cmd || cmd.code !== 401) return false;
const txt = cmd.parameters?.[0];
if (typeof txt !== 'string' || !phrases.includes(txt)) return false;
if (!(i > 0 && list[i - 1]?.code === 101)) return false;
if (i + 1 < list.length && list[i + 1]?.code === 401) return false;
return true;
}
function findOwningIfIndex(list, i) {
const needIndent = Math.max(0, (list[i]?.indent ?? 0) - 1);
for (let j = i - 1; j >= 0; j--) {
const c = list[j];
if (!c) continue;
if (c.code === 111 && c.indent === needIndent) return j;
if (c.indent < needIndent) break;
}
return -1;
}
function alreadyPatched(cev) {
const first = cev?.list?.[0];
return first && first.code === 108 && String(first.parameters?.[0]||'').startsWith('AUTO PERFECT (rewrite)');
}
function patchCommonEvent(cev) {
if (!cev || !Array.isArray(cev.list) || alreadyPatched(cev)) return false;
let changed = false;
const L = cev.list;
for (let i = 0; i < L.length; i++) {
if (!isExactSingleLineShowTextAt(L, i, PHRASES_PERFECT)) continue;
const ifIdx = findOwningIfIndex(L, i);
if (ifIdx < 0) continue;
const branch = L[ifIdx];
if (branch && branch.code === 111) {
const b2 = deepClone(branch);
b2.parameters = [12, "true"];
L[ifIdx] = b2;
changed = true;
}
}
if (changed) {
L.unshift({ code:108, indent:0, parameters:['AUTO PERFECT (rewrite): perfect-branch condition set to true'] });
}
return changed;
}
const _DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
DataManager.isDatabaseLoaded = function() {
if (!_DataManager_isDatabaseLoaded.call(this)) return false;
if (!DataManager._autoPerfectRewriteDone) {
DataManager._autoPerfectRewriteDone = true;
if (Array.isArray($dataCommonEvents)) {
for (let i = 1; i < $dataCommonEvents.length; i++) {
try { patchCommonEvent($dataCommonEvents[i]); } catch(e){ console.error(e); }
}
}
}
return true;
};
})();
Wait, where's that and how did you get there? :OIs there anything else to do once I get to this point or is it as far as the story goes? View attachment 5261266
This has worked for me, so far. I'm not aware of any places it fails the QTE.
Auto-Perfect Fill Bartender
* Updated to work with Martinis
* Updated for the "Serving Tables" minigame.
- This works by making it so that your selected drinks don't matter. It doesn't prevent tripping or anything else. Just removes the skill portion of drink selection.
I've updated my instructions to try to be more clear.I think I am following your instructions clearly but I get a black screen on loading the game that doesn't go away. I replaced one line with the new one and created the new js by copying your text block and naming a new file. Did I fuck up?
why would you yeet her, when you can corrupt her and own the whole rooftop?Please tell me we get to yeet that shop owner bitch off a roof or something. I feel like she is getting in the way of everyone's happiness and needs a comeuppance. Or cumuppance depending on the tone.