From aba7ff2a90462c7727f1eea09d216b841b1c45bb Mon Sep 17 00:00:00 2001 From: Ada <gubertpol0@gmail.com> Date: Thu, 19 Nov 2020 23:59:59 -0800 Subject: [PATCH 1/4] Futuristic gag deflation speed By popular request, I made the gag deflate one level at a time instead of all at once. --- .../ItemMouth/FuturisticPanelGag/FuturisticPanelGag.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/BondageClub/Screens/Inventory/ItemMouth/FuturisticPanelGag/FuturisticPanelGag.js b/BondageClub/Screens/Inventory/ItemMouth/FuturisticPanelGag/FuturisticPanelGag.js index 167a0a68fd..e8f776a0d6 100644 --- a/BondageClub/Screens/Inventory/ItemMouth/FuturisticPanelGag/FuturisticPanelGag.js +++ b/BondageClub/Screens/Inventory/ItemMouth/FuturisticPanelGag/FuturisticPanelGag.js @@ -314,7 +314,7 @@ function InventoryItemMouthFuturisticPanelGagNpcDialog(C, Option) { } function InventoryItemMouthFuturisticPanelGagTrigger(C, Item, Reset) { - var OptionLevel = (Reset) ? InventoryItemMouthFuturisticPanelGagGetOption(InventoryItemMouthFuturisticPanelGagOptions, Item.Property.OriginalSetting) + var OptionLevel = (Reset) ? Math.max(InventoryItemMouthFuturisticPanelGagGetOption(InventoryItemMouthFuturisticPanelGagOptions, Item.Property.OriginalSetting), InventoryItemMouthFuturisticPanelGagGetOption(InventoryItemMouthFuturisticPanelGagOptions, Item.Property.Type) - 1) : Math.min(InventoryItemMouthFuturisticPanelGagOptions.length, InventoryItemMouthFuturisticPanelGagGetOption(InventoryItemMouthFuturisticPanelGagOptions, Item.Property.Type) + 1); if (Reset || Item.Property.Type != "Plug") { @@ -403,6 +403,12 @@ function AssetsItemMouthFuturisticPanelGagScriptUpdatePlayer(data) { } else if (Item.Property.AutoPunishUndoTime - CurrentTime <= 0 && Item.Property.Type && Item.Property.Type != Item.Property.OriginalSetting) { // Deflate the gag back to the original setting after a while InventoryItemMouthFuturisticPanelGagTrigger(Player, Item, true) + if (Item.Property.OriginalSetting != Item.Property.Type) + Item.Property.AutoPunishUndoTime = CurrentTime + AutoPunishUndoCD // Reset the deflation time + CharacterRefresh(Player, true); // Does not sync appearance while in the wardrobe + + // For a restraint, we might publish an action or change the dialog of a NPC + ChatRoomCharacterUpdate(Player); } } -- GitLab From f7029e1c48ad9cca3390bf72f9baa874ad499332 Mon Sep 17 00:00:00 2001 From: Ada <gubertpol0@gmail.com> Date: Fri, 20 Nov 2020 14:45:02 -0800 Subject: [PATCH 2/4] Futuristic Panel Gag feature update The gag can now have the deflation timer changed, and it can be manually pumped one level (to deflate it, just manually set it lower) --- BondageClub/Assets/Female3DCG/Female3DCG.js | 4 +- .../Character/Player/Dialog_Player.csv | 13 +++ .../FuturisticPanelGag/FuturisticPanelGag.js | 82 +++++++++++++------ 3 files changed, 72 insertions(+), 27 deletions(-) diff --git a/BondageClub/Assets/Female3DCG/Female3DCG.js b/BondageClub/Assets/Female3DCG/Female3DCG.js index 516288e66d..ff21d6b433 100644 --- a/BondageClub/Assets/Female3DCG/Female3DCG.js +++ b/BondageClub/Assets/Female3DCG/Female3DCG.js @@ -2379,7 +2379,7 @@ var AssetFemale3DCG = [ ] }, { - Name: "FuturisticPanelGag", Category: ["SciFi"], Fetish: ["Metal"], Value: 100, Difficulty: 4, Time: 15, Random: false, AllowLock: true, DefaultColor: ["#50913C", "Default"], BuyGroup: "FuturisticPanelGag", Prerequisite: "GagFlat", Hide: ["Mouth"], Effect: ["BlockMouth"], AllowEffect: ["BlockMouth", "GagVeryLight", "LightBall", "GagMedium", "GagTotal"], AllowType: ["Padded", "LightBall", "Ball", "Plug", "AutoPunish", "AutoPunishUndoTime", "OriginalSetting", "ChatMessage"], HideItem: ["ItemNoseNoseRing"], Extended: true, AlwaysExtend: true,DynamicScriptDraw: true,DynamicBeforeDraw: true, Audio: "FuturisticApply", + Name: "FuturisticPanelGag", Category: ["SciFi"], Fetish: ["Metal"], Value: 100, Difficulty: 4, Time: 15, Random: false, AllowLock: true, DefaultColor: ["#50913C", "Default"], BuyGroup: "FuturisticPanelGag", Prerequisite: "GagFlat", Hide: ["Mouth"], Effect: ["BlockMouth"], AllowEffect: ["BlockMouth", "GagVeryLight", "LightBall", "GagMedium", "GagTotal"], AllowType: ["Padded", "LightBall", "Ball", "Plug", "AutoPunish", "AutoPunishUndoTime", "AutoPunishUndoTimeSetting", "OriginalSetting", "ChatMessage"], HideItem: ["ItemNoseNoseRing"], Extended: true, AlwaysExtend: true,DynamicScriptDraw: true,DynamicBeforeDraw: true, Audio: "FuturisticApply", Layer: [ { Name: "Ball", AllowColorize: true, HasType: false }, { Name: "Mask" , AllowColorize: true, HasType: false }, @@ -2387,7 +2387,7 @@ var AssetFemale3DCG = [ ] }, { - Name: "FuturisticHarnessPanelGag", Category: ["SciFi"], Fetish: ["Metal"], Value: -1, Difficulty: 6, Time: 15, Random: false, AllowLock: true, DefaultColor: ["#50913C", "Default"], BuyGroup: "FuturisticPanelGag", Prerequisite: "GagFlat", Hide: ["Mouth"], Effect: ["BlockMouth"], AllowEffect: ["BlockMouth", "GagVeryLight", "GagMedium", "GagTotal"], AllowType: ["Padded", "LightBall", "Ball", "Plug", "AutoPunish", "AutoPunishUndoTime", "OriginalSetting", "ChatMessage"], HideItem: ["ItemNoseNoseRing"], Extended: true, AlwaysExtend: true,DynamicScriptDraw: true,DynamicBeforeDraw: true, Audio: "FuturisticApply", + Name: "FuturisticHarnessPanelGag", Category: ["SciFi"], Fetish: ["Metal"], Value: -1, Difficulty: 6, Time: 15, Random: false, AllowLock: true, DefaultColor: ["#50913C", "Default"], BuyGroup: "FuturisticPanelGag", Prerequisite: "GagFlat", Hide: ["Mouth"], Effect: ["BlockMouth"], AllowEffect: ["BlockMouth", "GagVeryLight", "GagMedium", "GagTotal"], AllowType: ["Padded", "LightBall", "Ball", "Plug", "AutoPunish", "AutoPunishUndoTime", "AutoPunishUndoTimeSetting", "OriginalSetting", "ChatMessage"], HideItem: ["ItemNoseNoseRing"], Extended: true, AlwaysExtend: true,DynamicScriptDraw: true,DynamicBeforeDraw: true, Audio: "FuturisticApply", Layer: [ { Name: "Ball", AllowColorize: true, HasType: false }, { Name: "Straps" , AllowColorize: true, HasType: false }, diff --git a/BondageClub/Screens/Character/Player/Dialog_Player.csv b/BondageClub/Screens/Character/Player/Dialog_Player.csv index e47fdb3bfd..1429352748 100644 --- a/BondageClub/Screens/Character/Player/Dialog_Player.csv +++ b/BondageClub/Screens/Character/Player/Dialog_Player.csv @@ -619,6 +619,15 @@ FuturisticArmbinderSetTight,,,SourceCharacter configures DestinationCharacter ar FuturisticArmbinderTypeNormal,,,Standard Mode,, FuturisticArmbinderTypeTight,,,Strict Mode,, SelectFuturisticArmbinderType,,,Select device tightness:,, +FuturisticPanelGagMouthDeflationTimeSetting120000,,,Timer: 2 min,, +FuturisticPanelGagMouthDeflationTimeSetting300000,,,Timer: 5 min,, +FuturisticPanelGagMouthDeflationTimeSetting900000,,,Timer: 15 min,, +FuturisticPanelGagMouthDeflationTimeSetting3600000,,,Timer: 1 hour,, +FuturisticPanelGagMouthDeflationTimeButton120000,,,2 min,, +FuturisticPanelGagMouthDeflationTimeButton300000,,,5 min,, +FuturisticPanelGagMouthDeflationTimeButton900000,,,15 min,, +FuturisticPanelGagMouthDeflationTimeButton3600000,,,1 hour,, +FuturisticPanelGagMouthDeflationTimeButtonPump,,,Trigger Inflation,, FuturisticPanelGagMouthDeflationTime,,,Time until deflation:,, FuturisticPanelGagMouthButtonChatMessage,,,Show chat message ,, FuturisticPanelGagMouthButtonAutoPunish,,,Auto-inflation sensitivity:,, @@ -641,6 +650,10 @@ FuturisticPanelGagMouthSetAutoPunish0,,,SourceCharacter configures DestinationCh FuturisticPanelGagMouthSetAutoPunish1,,,SourceCharacter configures DestinationCharacter gag to punish her for shouting.,, FuturisticPanelGagMouthSetAutoPunish2,,,SourceCharacter configures DestinationCharacter gag to punish her for saying long sentences.,, FuturisticPanelGagMouthSetAutoPunish3,,,SourceCharacter configures DestinationCharacter gag to punish her for speaking.,, +FuturisticPanelGagMouthSetAutoPunishTime120000,,,SourceCharacter configures DestinationCharacter gag deflate 2 minutes after triggering.,, +FuturisticPanelGagMouthSetAutoPunishTime300000,,,SourceCharacter configures DestinationCharacter gag deflate 5 minutes after triggering.,, +FuturisticPanelGagMouthSetAutoPunishTime900000,,,SourceCharacter configures DestinationCharacter gag deflate 15 minutes after triggering.,, +FuturisticPanelGagMouthSetAutoPunishTime3600000,,,SourceCharacter configures DestinationCharacter gag deflate 1 hour after triggering.,, DildoPlugGagMouthSetPlug,,,SourceCharacter plugs up DestinationCharacter mouth with the dildo plug.,, DildoPlugGagMouthSetOpen,,,SourceCharacter pulls out DestinationCharacter dildo plug from her gag.,, FuturisticChastityBeltPunishOrgasm,,,Punish wearer for orgasm,, diff --git a/BondageClub/Screens/Inventory/ItemMouth/FuturisticPanelGag/FuturisticPanelGag.js b/BondageClub/Screens/Inventory/ItemMouth/FuturisticPanelGag/FuturisticPanelGag.js index e8f776a0d6..223191f7f3 100644 --- a/BondageClub/Screens/Inventory/ItemMouth/FuturisticPanelGag/FuturisticPanelGag.js +++ b/BondageClub/Screens/Inventory/ItemMouth/FuturisticPanelGag/FuturisticPanelGag.js @@ -87,6 +87,7 @@ function InventoryItemMouthFuturisticPanelGagLoad() { AutoPunish: 0, AutoPunishUndoTime: 0 , OriginalSetting: "Padded", ChatMessage: true}; if (DialogFocusItem.Property.AutoPunish == null) DialogFocusItem.Property.AutoPunish = 0; if (DialogFocusItem.Property.AutoPunishUndoTime == null) DialogFocusItem.Property.AutoPunishUndoTime = 0; + if (DialogFocusItem.Property.AutoPunishUndoTimeSetting == null) DialogFocusItem.Property.AutoPunishUndoTimeSetting = 300000; if (DialogFocusItem.Property.OriginalSetting == null) DialogFocusItem.Property.OriginalSetting = null; if (DialogFocusItem.Property.ChatMessage == null) DialogFocusItem.Property.ChatMessage = true; if (DialogFocusItem.Property.BlinkState == null) DialogFocusItem.Property.BlinkState = true; @@ -169,11 +170,11 @@ function InventoryItemMouthFuturisticPanelGagDraw() { var type = "FuturisticPanelGagMouthType" + ((DialogFocusItem.Property.Type != null) ? DialogFocusItem.Property.Type : "Padded") DrawText(DialogFind(Player, "FuturisticPanelGagMouthTypeDesc") + " " + - DialogFind(Player, type), 1500, 475, "White", "Gray"); + DialogFind(Player, type), 1350, 475, "White", "Gray"); MainCanvas.textAlign = "left"; - DrawCheckbox(1100, 650, 64, 64, "", DialogFocusItem.Property.ChatMessage, "White"); - DrawText(DialogFind(Player, "FuturisticPanelGagMouthButtonChatMessage"), 1200, 683, "White", "Gray"); + DrawCheckbox(1100, 890, 64, 64, "", DialogFocusItem.Property.ChatMessage, "White"); + DrawText(DialogFind(Player, "FuturisticPanelGagMouthButtonChatMessage"), 1200, 923, "White", "Gray"); MainCanvas.textAlign = "center"; var autopunish = "Off" @@ -182,17 +183,25 @@ function InventoryItemMouthFuturisticPanelGagDraw() { else if (DialogFocusItem.Property.AutoPunish == 2) {autopunish = "Medium"} else {autopunish = "Maximum"} - DrawText(DialogFind(Player, "FuturisticPanelGagMouthButtonAutoPunish") + " " + autopunish, 1500, 770, "White", "Gray"); + DrawText(DialogFind(Player, "FuturisticPanelGagMouthButtonAutoPunish") + " " + autopunish, 1350, 683, "White", "Gray"); if (DialogFocusItem) { - if (DialogFocusItem.Property.Type != null) DrawButton(1250, 500, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthTypePadded"), "White", ""); - if (DialogFocusItem.Property.Type != "LightBall") DrawButton(1550, 500, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthTypeLightBall"), "White", ""); - if (DialogFocusItem.Property.Type != "Ball") DrawButton(1250, 570, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthTypeBall"), "White", ""); - if (DialogFocusItem.Property.Type != "Plug") DrawButton(1550, 570, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthTypePlug"), "White", ""); + if (DialogFocusItem.Property.Type != null) DrawButton(1100, 500, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthTypePadded"), "White", ""); + if (DialogFocusItem.Property.Type != "LightBall") DrawButton(1400, 500, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthTypeLightBall"), "White", ""); + if (DialogFocusItem.Property.Type != "Ball") DrawButton(1100, 570, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthTypeBall"), "White", ""); + if (DialogFocusItem.Property.Type != "Plug") DrawButton(1400, 570, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthTypePlug"), "White", ""); - if (DialogFocusItem.Property.AutoPunish != 0) DrawButton(1250, 800, 200, 64, DialogFind(Player, "TurnOff"), "White", ""); - if (DialogFocusItem.Property.AutoPunish != 1) DrawButton(1550, 800, 200, 64, DialogFind(Player, "Low"), "White", ""); - if (DialogFocusItem.Property.AutoPunish != 2) DrawButton(1250, 870, 200, 64, DialogFind(Player, "Medium"), "White", ""); - if (DialogFocusItem.Property.AutoPunish != 3) DrawButton(1550, 870, 200, 64, DialogFind(Player, "Maximum"), "White", ""); + if (DialogFocusItem.Property.AutoPunish != 0) DrawButton(1100, 707, 200, 64, DialogFind(Player, "TurnOff"), "White", ""); + if (DialogFocusItem.Property.AutoPunish != 1) DrawButton(1400, 707, 200, 64, DialogFind(Player, "Low"), "White", ""); + if (DialogFocusItem.Property.AutoPunish != 2) DrawButton(1100, 777, 200, 64, DialogFind(Player, "Medium"), "White", ""); + if (DialogFocusItem.Property.AutoPunish != 3) DrawButton(1400, 777, 200, 64, DialogFind(Player, "Maximum"), "White", ""); + + DrawText(DialogFind(Player, "FuturisticPanelGagMouthDeflationTimeSetting" + DialogFocusItem.Property.AutoPunishUndoTimeSetting), 1775, 475, "White", "Gray"); + if (DialogFocusItem.Property.AutoPunishUndoTimeSetting != 120000) DrawButton(1675, 500, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthDeflationTimeButton120000"), "White", ""); + if (DialogFocusItem.Property.AutoPunishUndoTimeSetting != 300000) DrawButton(1675, 570, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthDeflationTimeButton300000"), "White", ""); + if (DialogFocusItem.Property.AutoPunishUndoTimeSetting != 900000) DrawButton(1675, 640, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthDeflationTimeButton900000"), "White", ""); + if (DialogFocusItem.Property.AutoPunishUndoTimeSetting != 3600000) DrawButton(1675, 710, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthDeflationTimeButton3600000"), "White", ""); + + if (DialogFocusItem.Property.AutoPunishUndoTimeSetting) DrawButton(1675, 800, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthDeflationTimeButtonPump"), "White", ""); } } @@ -206,32 +215,45 @@ function InventoryItemMouthFuturisticPanelGagClick() { if (!InventoryItemMouthFuturisticPanelGagValidate(C)) { InventoryItemMouthFuturisticPanelGagClickAccessDenied() } else { - if (MouseIn(1885, 25, 90, 90)) InventoryItemPelvisFuturisticChastityBeltExit() + if (MouseIn(1885, 25, 90, 90)) InventoryItemMouthFuturisticPanelGagExit() - else if (MouseIn(1100, 650, 64, 64)) DialogFocusItem.Property.ChatMessage = !DialogFocusItem.Property.ChatMessage + else if (MouseIn(1100, 890, 64, 64)) DialogFocusItem.Property.ChatMessage = !DialogFocusItem.Property.ChatMessage - else if (DialogFocusItem.Property.Type != null && MouseIn(1250, 500, 200, 64)) { + else if (DialogFocusItem.Property.Type != null && MouseIn(1100, 500, 200, 64)) { DialogFocusItem.Property.AutoPunishUndoTime = 0; DialogFocusItem.Property.OriginalSetting = null; ExtendedItemSetType(C, InventoryItemMouthFuturisticPanelGagOptions, InventoryItemMouthFuturisticPanelGagOptions[0], false)} - else if (DialogFocusItem.Property.Type != "LightBall" && MouseIn(1550, 500, 200, 64)) { + else if (DialogFocusItem.Property.Type != "LightBall" && MouseIn(1400, 500, 200, 64)) { DialogFocusItem.Property.AutoPunishUndoTime = 0; DialogFocusItem.Property.OriginalSetting = "LightBall"; ExtendedItemSetType(C, InventoryItemMouthFuturisticPanelGagOptions, InventoryItemMouthFuturisticPanelGagOptions[1], false)} - else if (DialogFocusItem.Property.Type != "Ball" && MouseIn(1250, 570, 200, 64)) { + else if (DialogFocusItem.Property.Type != "Ball" && MouseIn(1100, 570, 200, 64)) { DialogFocusItem.Property.AutoPunishUndoTime = 0; DialogFocusItem.Property.OriginalSetting = "Ball"; ExtendedItemSetType(C, InventoryItemMouthFuturisticPanelGagOptions, InventoryItemMouthFuturisticPanelGagOptions[2], false)} - else if (DialogFocusItem.Property.Type != "Plug" && MouseIn(1550, 570, 200, 64)) { + else if (DialogFocusItem.Property.Type != "Plug" && MouseIn(1400, 570, 200, 64)) { DialogFocusItem.Property.AutoPunishUndoTime = 0; DialogFocusItem.Property.OriginalSetting = "Plug"; ExtendedItemSetType(C, InventoryItemMouthFuturisticPanelGagOptions, InventoryItemMouthFuturisticPanelGagOptions[3], false)} - else if (DialogFocusItem.Property.AutoPunish != 0 && MouseIn(1250, 800, 200, 64)) InventoryItemMouthFuturisticPanelGagSetAutoPunish(C, DialogFocusItem, 0) - else if (DialogFocusItem.Property.AutoPunish != 1 && MouseIn(1550, 800, 200, 64)) InventoryItemMouthFuturisticPanelGagSetAutoPunish(C, DialogFocusItem, 1) - else if (DialogFocusItem.Property.AutoPunish != 2 && MouseIn(1250, 870, 200, 64)) InventoryItemMouthFuturisticPanelGagSetAutoPunish(C, DialogFocusItem, 2) - else if (DialogFocusItem.Property.AutoPunish != 3 && MouseIn(1550, 870, 200, 64)) InventoryItemMouthFuturisticPanelGagSetAutoPunish(C, DialogFocusItem, 3) + else if (DialogFocusItem.Property.AutoPunish != 0 && MouseIn(1100, 707, 200, 64)) InventoryItemMouthFuturisticPanelGagSetAutoPunish(C, DialogFocusItem, 0) + else if (DialogFocusItem.Property.AutoPunish != 1 && MouseIn(1400, 707, 200, 64)) InventoryItemMouthFuturisticPanelGagSetAutoPunish(C, DialogFocusItem, 1) + else if (DialogFocusItem.Property.AutoPunish != 2 && MouseIn(1100, 777, 200, 64)) InventoryItemMouthFuturisticPanelGagSetAutoPunish(C, DialogFocusItem, 2) + else if (DialogFocusItem.Property.AutoPunish != 3 && MouseIn(1400, 777, 200, 64)) InventoryItemMouthFuturisticPanelGagSetAutoPunish(C, DialogFocusItem, 3) + + + else if (DialogFocusItem.Property.AutoPunishUndoTimeSetting != 120000 && MouseIn(1675, 500, 200, 64)) InventoryItemMouthFuturisticPanelGagSetAutoPunishTime(C, DialogFocusItem, 120000) + else if (DialogFocusItem.Property.AutoPunishUndoTimeSetting != 300000 && MouseIn(1675, 570, 200, 64)) InventoryItemMouthFuturisticPanelGagSetAutoPunishTime(C, DialogFocusItem, 300000) + else if (DialogFocusItem.Property.AutoPunishUndoTimeSetting != 900000 && MouseIn(1675, 640, 200, 64)) InventoryItemMouthFuturisticPanelGagSetAutoPunishTime(C, DialogFocusItem, 900000) + else if (DialogFocusItem.Property.AutoPunishUndoTimeSetting != 3600000 && MouseIn(1675, 710, 200, 64)) InventoryItemMouthFuturisticPanelGagSetAutoPunishTime(C, DialogFocusItem, 3600000) + + else if (DialogFocusItem.Property.AutoPunishUndoTimeSetting && MouseIn(1675, 800, 200, 64)) { + InventoryItemMouthFuturisticPanelGagTrigger(Player, DialogFocusItem, false) + DialogFocusItem.Property.AutoPunishUndoTime = CurrentTime + DialogFocusItem.Property.AutoPunishUndoTimeSetting // Reset the deflation time + CharacterRefresh(Player, true); // Does not sync appearance while in the wardrobe + ChatRoomCharacterUpdate(Player); + } } } @@ -287,6 +309,16 @@ function InventoryItemMouthFuturisticPanelGagSetAutoPunish(C, Item, Level) { ChatRoomPublishCustomAction(msg, true, Dictionary); } +function InventoryItemMouthFuturisticPanelGagSetAutoPunishTime(C, Item, Time) { + Item.Property.AutoPunishUndoTimeSetting = Time + var msg = "FuturisticPanelGagMouthSetAutoPunishTime" + Time; + var Dictionary = [ + { Tag: "SourceCharacter", Text: Player.Name, MemberNumber: Player.MemberNumber }, + { Tag: "DestinationCharacter", Text: C.Name, MemberNumber: C.MemberNumber }, + ]; + ChatRoomPublishCustomAction(msg, true, Dictionary); +} + function InventoryItemMouthFuturisticPanelGagPublishAction(C, Option) { @@ -372,7 +404,7 @@ function InventoryItemMouthFuturisticPanelGagSetOption(C, Options, Option, Item, function AssetsItemMouthFuturisticPanelGagScriptUpdatePlayer(data) { var Item = data.Item // Punish the player if they speak - if (Item.Property.AutoPunish && Item.Property.AutoPunish > 0) { + if (Item.Property.AutoPunish && Item.Property.AutoPunish > 0 && Item.Property.AutoPunishUndoTimeSetting) { var LastMessages = data.PersistentData().LastMessageLen var GagTriggerPunish = false @@ -394,7 +426,7 @@ function AssetsItemMouthFuturisticPanelGagScriptUpdatePlayer(data) { if (GagTriggerPunish) { InventoryItemMouthFuturisticPanelGagTrigger(Player, Item, false) - Item.Property.AutoPunishUndoTime = CurrentTime + AutoPunishUndoCD // Reset the deflation time + Item.Property.AutoPunishUndoTime = CurrentTime + Item.Property.AutoPunishUndoTimeSetting // Reset the deflation time CharacterRefresh(Player, true); // Does not sync appearance while in the wardrobe // For a restraint, we might publish an action or change the dialog of a NPC @@ -404,7 +436,7 @@ function AssetsItemMouthFuturisticPanelGagScriptUpdatePlayer(data) { // Deflate the gag back to the original setting after a while InventoryItemMouthFuturisticPanelGagTrigger(Player, Item, true) if (Item.Property.OriginalSetting != Item.Property.Type) - Item.Property.AutoPunishUndoTime = CurrentTime + AutoPunishUndoCD // Reset the deflation time + Item.Property.AutoPunishUndoTime = CurrentTime + Item.Property.AutoPunishUndoTimeSetting // Reset the deflation time CharacterRefresh(Player, true); // Does not sync appearance while in the wardrobe // For a restraint, we might publish an action or change the dialog of a NPC -- GitLab From 4a59d403a542664b72853132cfc177cbdaa737f8 Mon Sep 17 00:00:00 2001 From: Ada <gubertpol0@gmail.com> Date: Fri, 20 Nov 2020 14:47:45 -0800 Subject: [PATCH 3/4] Typo --- BondageClub/Screens/Character/Player/Dialog_Player.csv | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/BondageClub/Screens/Character/Player/Dialog_Player.csv b/BondageClub/Screens/Character/Player/Dialog_Player.csv index ca8176ce7e..853ee78a07 100644 --- a/BondageClub/Screens/Character/Player/Dialog_Player.csv +++ b/BondageClub/Screens/Character/Player/Dialog_Player.csv @@ -650,10 +650,10 @@ FuturisticPanelGagMouthSetAutoPunish0,,,SourceCharacter configures DestinationCh FuturisticPanelGagMouthSetAutoPunish1,,,SourceCharacter configures DestinationCharacter gag to punish her for shouting.,, FuturisticPanelGagMouthSetAutoPunish2,,,SourceCharacter configures DestinationCharacter gag to punish her for saying long sentences.,, FuturisticPanelGagMouthSetAutoPunish3,,,SourceCharacter configures DestinationCharacter gag to punish her for speaking.,, -FuturisticPanelGagMouthSetAutoPunishTime120000,,,SourceCharacter configures DestinationCharacter gag deflate 2 minutes after triggering.,, -FuturisticPanelGagMouthSetAutoPunishTime300000,,,SourceCharacter configures DestinationCharacter gag deflate 5 minutes after triggering.,, -FuturisticPanelGagMouthSetAutoPunishTime900000,,,SourceCharacter configures DestinationCharacter gag deflate 15 minutes after triggering.,, -FuturisticPanelGagMouthSetAutoPunishTime3600000,,,SourceCharacter configures DestinationCharacter gag deflate 1 hour after triggering.,, +FuturisticPanelGagMouthSetAutoPunishTime120000,,,SourceCharacter configures DestinationCharacter gag to deflate 2 minutes after triggering.,, +FuturisticPanelGagMouthSetAutoPunishTime300000,,,SourceCharacter configures DestinationCharacter gag to deflate 5 minutes after triggering.,, +FuturisticPanelGagMouthSetAutoPunishTime900000,,,SourceCharacter configures DestinationCharacter gag to deflate 15 minutes after triggering.,, +FuturisticPanelGagMouthSetAutoPunishTime3600000,,,SourceCharacter configures DestinationCharacter gag to deflate 1 hour after triggering.,, DildoPlugGagMouthSetPlug,,,SourceCharacter plugs up DestinationCharacter mouth with the dildo plug.,, DildoPlugGagMouthSetOpen,,,SourceCharacter pulls out DestinationCharacter dildo plug from her gag.,, FuturisticChastityBeltPunishOrgasm,,,Punish wearer for orgasm,, -- GitLab From 9fcc67c8939f5df2b3ff919315617d443fd1f33f Mon Sep 17 00:00:00 2001 From: Ada <gubertpol0@gmail.com> Date: Fri, 20 Nov 2020 15:32:25 -0800 Subject: [PATCH 4/4] Added 20 hours option --- BondageClub/Screens/Character/Player/Dialog_Player.csv | 3 +++ .../ItemMouth/FuturisticPanelGag/FuturisticPanelGag.js | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/BondageClub/Screens/Character/Player/Dialog_Player.csv b/BondageClub/Screens/Character/Player/Dialog_Player.csv index 853ee78a07..82c8e75255 100644 --- a/BondageClub/Screens/Character/Player/Dialog_Player.csv +++ b/BondageClub/Screens/Character/Player/Dialog_Player.csv @@ -623,10 +623,12 @@ FuturisticPanelGagMouthDeflationTimeSetting120000,,,Timer: 2 min,, FuturisticPanelGagMouthDeflationTimeSetting300000,,,Timer: 5 min,, FuturisticPanelGagMouthDeflationTimeSetting900000,,,Timer: 15 min,, FuturisticPanelGagMouthDeflationTimeSetting3600000,,,Timer: 1 hour,, +FuturisticPanelGagMouthDeflationTimeSetting72000000,,,Timer: 20 hours,, FuturisticPanelGagMouthDeflationTimeButton120000,,,2 min,, FuturisticPanelGagMouthDeflationTimeButton300000,,,5 min,, FuturisticPanelGagMouthDeflationTimeButton900000,,,15 min,, FuturisticPanelGagMouthDeflationTimeButton3600000,,,1 hour,, +FuturisticPanelGagMouthDeflationTimeButton72000000,,,20 hours,, FuturisticPanelGagMouthDeflationTimeButtonPump,,,Trigger Inflation,, FuturisticPanelGagMouthDeflationTime,,,Time until deflation:,, FuturisticPanelGagMouthButtonChatMessage,,,Show chat message ,, @@ -654,6 +656,7 @@ FuturisticPanelGagMouthSetAutoPunishTime120000,,,SourceCharacter configures Dest FuturisticPanelGagMouthSetAutoPunishTime300000,,,SourceCharacter configures DestinationCharacter gag to deflate 5 minutes after triggering.,, FuturisticPanelGagMouthSetAutoPunishTime900000,,,SourceCharacter configures DestinationCharacter gag to deflate 15 minutes after triggering.,, FuturisticPanelGagMouthSetAutoPunishTime3600000,,,SourceCharacter configures DestinationCharacter gag to deflate 1 hour after triggering.,, +FuturisticPanelGagMouthSetAutoPunishTime72000000,,,SourceCharacter configures DestinationCharacter gag to deflate 20 hours after triggering.,, DildoPlugGagMouthSetPlug,,,SourceCharacter plugs up DestinationCharacter mouth with the dildo plug.,, DildoPlugGagMouthSetOpen,,,SourceCharacter pulls out DestinationCharacter dildo plug from her gag.,, FuturisticChastityBeltPunishOrgasm,,,Punish wearer for orgasm,, diff --git a/BondageClub/Screens/Inventory/ItemMouth/FuturisticPanelGag/FuturisticPanelGag.js b/BondageClub/Screens/Inventory/ItemMouth/FuturisticPanelGag/FuturisticPanelGag.js index 54a2192aad..6893af3161 100644 --- a/BondageClub/Screens/Inventory/ItemMouth/FuturisticPanelGag/FuturisticPanelGag.js +++ b/BondageClub/Screens/Inventory/ItemMouth/FuturisticPanelGag/FuturisticPanelGag.js @@ -200,8 +200,9 @@ function InventoryItemMouthFuturisticPanelGagDraw() { if (DialogFocusItem.Property.AutoPunishUndoTimeSetting != 300000) DrawButton(1675, 570, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthDeflationTimeButton300000"), "White", ""); if (DialogFocusItem.Property.AutoPunishUndoTimeSetting != 900000) DrawButton(1675, 640, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthDeflationTimeButton900000"), "White", ""); if (DialogFocusItem.Property.AutoPunishUndoTimeSetting != 3600000) DrawButton(1675, 710, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthDeflationTimeButton3600000"), "White", ""); + if (DialogFocusItem.Property.AutoPunishUndoTimeSetting != 72000000) DrawButton(1675, 780, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthDeflationTimeButton72000000"), "White", ""); - if (DialogFocusItem.Property.AutoPunishUndoTimeSetting) DrawButton(1675, 800, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthDeflationTimeButtonPump"), "White", ""); + if (DialogFocusItem.Property.AutoPunishUndoTimeSetting) DrawButton(1675, 880, 200, 64, DialogFind(Player, "FuturisticPanelGagMouthDeflationTimeButtonPump"), "White", ""); } } @@ -247,8 +248,9 @@ function InventoryItemMouthFuturisticPanelGagClick() { else if (DialogFocusItem.Property.AutoPunishUndoTimeSetting != 300000 && MouseIn(1675, 570, 200, 64)) InventoryItemMouthFuturisticPanelGagSetAutoPunishTime(C, DialogFocusItem, 300000) else if (DialogFocusItem.Property.AutoPunishUndoTimeSetting != 900000 && MouseIn(1675, 640, 200, 64)) InventoryItemMouthFuturisticPanelGagSetAutoPunishTime(C, DialogFocusItem, 900000) else if (DialogFocusItem.Property.AutoPunishUndoTimeSetting != 3600000 && MouseIn(1675, 710, 200, 64)) InventoryItemMouthFuturisticPanelGagSetAutoPunishTime(C, DialogFocusItem, 3600000) + else if (DialogFocusItem.Property.AutoPunishUndoTimeSetting != 72000000 && MouseIn(1675, 780, 200, 64)) InventoryItemMouthFuturisticPanelGagSetAutoPunishTime(C, DialogFocusItem, 72000000) - else if (DialogFocusItem.Property.AutoPunishUndoTimeSetting && MouseIn(1675, 800, 200, 64)) { + else if (DialogFocusItem.Property.AutoPunishUndoTimeSetting && MouseIn(1675, 880, 200, 64)) { InventoryItemMouthFuturisticPanelGagTrigger(Player, DialogFocusItem, false) DialogFocusItem.Property.AutoPunishUndoTime = CurrentTime + DialogFocusItem.Property.AutoPunishUndoTimeSetting // Reset the deflation time CharacterRefresh(Player, true); // Does not sync appearance while in the wardrobe -- GitLab