Merge branch 'fix/dojo-removes-locks' into 'master'

Fix the Dojo daily job deleting owner locks on release

See merge request 
This commit is contained in:
BondageProjects 2025-03-28 01:16:53 +00:00
commit af68e86736
3 changed files with 22 additions and 7 deletions
BondageClub
Screens
MiniGame/DojoStruggle
Room/DailyJob
Scripts

View file

@ -39,7 +39,6 @@ function DojoStruggleRun() {
// The game ends after 71 seconds with a victory
if (MiniGameTimer >= 71000) {
CharacterRelease(Player);
MiniGameVictory = true;
MiniGameEnded = true;
} else {

View file

@ -201,10 +201,10 @@ function DailyJobPuppyPlayer() {
* @returns {void} - Nothing
*/
function DailyJobDojoRestrainPlayer() {
InventoryWear(Player, "HempRope", "ItemArms", "Default", 7);
if (InventoryGet(Player, "ItemTorso") == null) {
const item = InventoryWear(Player, "HempRopeHarness", "ItemTorso", "Default", 7);
TypedItemSetOptionByName(Player, item, "Harness");
InventoryWear(Player, "HempRope", "ItemArms", "Default", undefined, undefined, undefined, false);
if (!InventoryGet(Player, "ItemTorso")) {
const item = InventoryWear(Player, "HempRopeHarness", "ItemTorso", "Default", undefined, undefined, undefined, false);
TypedItemSetOptionByName(Player, item, "Harness", false);
}
CharacterRefresh(Player);
}
@ -223,9 +223,24 @@ function DailyJobDojoGameStart() {
*/
function DailyJobDojoGameEnd() {
CommonSetScreen("Room", "DailyJob");
DailyJobDojoTeacher.Stage = (MiniGameVictory) ? "100" : "200";
CharacterSetCurrent(DailyJobDojoTeacher);
if (MiniGameVictory) IntroductionJobDone();
if (MiniGameVictory) {
IntroductionJobDone();
let refresh = false;
if (InventoryGet(Player, "ItemArms")?.Asset.Name === "HempRope") {
InventoryRemove(Player, "ItemArms", false);
refresh = true;
}
if (InventoryGet(Player, "ItemTorso")?.Asset.Name === "HempRopeHarness") {
InventoryRemove(Player, "ItemTorso", false);
refresh = true;
}
if (refresh) {
CharacterRefresh(Player);
}
}
IntroductionMaid.Stage = "0";
DailyJobDojoTeacher.CurrentDialog = DialogFind(DailyJobDojoTeacher, (MiniGameVictory) ? "DojoStruggleVictory" : "DojoStruggleDefeat");
}

View file

@ -809,7 +809,8 @@ var InventoryWearCraft = /** @type {never} */(function() { return; });
function InventoryWear(C, AssetName, AssetGroup, ItemColor, Difficulty, MemberNumber, Craft, Refresh=true) {
const A = AssetGet(C.AssetFamily, AssetGroup, AssetName);
if (!A) return null;
const item = CharacterAppearanceSetItem(C, AssetGroup, A, (ItemColor == null || ItemColor == "Default") ? [...A.DefaultColor] : ItemColor, Difficulty, MemberNumber, false);
const color = (ItemColor == null || ItemColor == "Default") ? [...A.DefaultColor] : ItemColor;
const item = CharacterAppearanceSetItem(C, AssetGroup, A, color, Difficulty, MemberNumber, false);
/**
* TODO: grant tighter control over setting expressions.