mirror of
https://gitgud.io/BondageProjects/Bondage-College.git
synced 2025-04-25 17:59:34 +00:00
Adds audio to training belt (#2609)
* Adds audio to training belt Adds audio to the futuristic training belt * Audio + Bugfix for Futuristic Training Belt * lint * lint2
This commit is contained in:
parent
9676ae4301
commit
81a77c8384
11 changed files with 98 additions and 16 deletions
BondageClub
Assets/Female3DCG
Audio
Vibrator_Advanced_End.mp3Vibrator_Advanced_HighEdge.mp3Vibrator_Advanced_LowEdge.mp3Vibrator_Advanced_LowTease.mp3Vibrator_Advanced_MediumEdge.mp3Vibrator_Advanced_MediumTease.mp3Vibrator_Advanced_Strong.mp3
Screens
Character/Player
Inventory/ItemPelvis/FuturisticTrainingBelt
Scripts
|
@ -1850,7 +1850,7 @@ var AssetFemale3DCG = [
|
|||
{ Name: "Lock_3", LockLayer: true, AllowColorize: true, CopyLayerColor: "Lock", HasType: false, ParentGroup: null, AllowTypes: ["OpenBack3", "OpenBoth3", "ClosedBack3"]},
|
||||
]
|
||||
},
|
||||
{ Name: "FuturisticTrainingBelt", Category: ["SciFi"], Fetish: ["Metal"], ArousalZone: "ItemVulva", Value: -1, Difficulty: 100, Time: 30, RemoveTime: 30, BuyGroup: "FuturisticChastityBelt", Random: false, AllowLock: true, DrawLocks: false, DefaultColor: ["#3B7F2C", "#93C48C", "#93C48C", "Default", "Default", "Default"], Audio: "FuturisticApply", Prerequisite: ["AccessVulva", "VulvaEmpty", "ClitEmpty", "ButtEmpty"], HideItem: ["ItemButtAnalBeads2", "ItemVulvaVibratingDildo", "ItemVulvaClitSuctionCup", "ItemVulvaInflatableVibeDildo", "ItemVulvaHeavyWeightClamp", "ItemVulvaPenisDildo", "ItemVulvaShockDildo", "ItemVulvaPiercingsVibeHeartClitPiercing", "ItemVulvaPiercingsClitRing"], FuturisticRecolor: true, Effect: ["FillVulva", "UseRemote", "Egged", "Chaste", "Edged"], AllowEffect: ["Vibrating", "DenialMode"], Block: ["ItemVulvaPiercings", "ItemButt", "ItemVulva"], AllowType: [], ExpressionTrigger: [{ Name: "Soft", Group: "Eyebrows", Timer: 10 }], Extended: true, HasType: false, DynamicScriptDraw: true,
|
||||
{ Name: "FuturisticTrainingBelt", Category: ["SciFi"], Fetish: ["Metal"], ArousalZone: "ItemVulva", Value: -1, Difficulty: 100, Time: 30, RemoveTime: 30, BuyGroup: "FuturisticChastityBelt", Random: false, AllowLock: true, DrawLocks: false, DefaultColor: ["#3B7F2C", "#93C48C", "#93C48C", "Default", "Default", "Default"], Audio: "FuturisticApply", Prerequisite: ["AccessVulva", "VulvaEmpty", "ClitEmpty", "ButtEmpty"], HideItem: ["ItemButtAnalBeads2", "ItemVulvaVibratingDildo", "ItemVulvaClitSuctionCup", "ItemVulvaInflatableVibeDildo", "ItemVulvaHeavyWeightClamp", "ItemVulvaPenisDildo", "ItemVulvaShockDildo", "ItemVulvaPiercingsVibeHeartClitPiercing", "ItemVulvaPiercingsClitRing"], FuturisticRecolor: true, Effect: ["FillVulva", "UseRemote", "Egged", "Chaste", "Edged"], AllowEffect: ["Vibrating", "DenialMode", "RuinOrgasms"], Block: ["ItemVulvaPiercings", "ItemButt", "ItemVulva"], AllowType: [], ExpressionTrigger: [{ Name: "Soft", Group: "Eyebrows", Timer: 10 }], Extended: true, HasType: false, DynamicScriptDraw: true,
|
||||
Layer: [
|
||||
{ Name: "Display", AllowColorize: true , ParentGroup: null},
|
||||
{ Name: "Mesh", AllowColorize: true},
|
||||
|
|
BIN
BondageClub/Audio/Vibrator_Advanced_End.mp3
Normal file
BIN
BondageClub/Audio/Vibrator_Advanced_End.mp3
Normal file
Binary file not shown.
BIN
BondageClub/Audio/Vibrator_Advanced_HighEdge.mp3
Normal file
BIN
BondageClub/Audio/Vibrator_Advanced_HighEdge.mp3
Normal file
Binary file not shown.
BIN
BondageClub/Audio/Vibrator_Advanced_LowEdge.mp3
Normal file
BIN
BondageClub/Audio/Vibrator_Advanced_LowEdge.mp3
Normal file
Binary file not shown.
BIN
BondageClub/Audio/Vibrator_Advanced_LowTease.mp3
Normal file
BIN
BondageClub/Audio/Vibrator_Advanced_LowTease.mp3
Normal file
Binary file not shown.
BIN
BondageClub/Audio/Vibrator_Advanced_MediumEdge.mp3
Normal file
BIN
BondageClub/Audio/Vibrator_Advanced_MediumEdge.mp3
Normal file
Binary file not shown.
BIN
BondageClub/Audio/Vibrator_Advanced_MediumTease.mp3
Normal file
BIN
BondageClub/Audio/Vibrator_Advanced_MediumTease.mp3
Normal file
Binary file not shown.
BIN
BondageClub/Audio/Vibrator_Advanced_Strong.mp3
Normal file
BIN
BondageClub/Audio/Vibrator_Advanced_Strong.mp3
Normal file
Binary file not shown.
|
@ -896,6 +896,7 @@ FuturisticTrainingBeltSetStateLowPriorityEdgeMaximumSelf,,,The plugs inside of y
|
|||
FuturisticTrainingBeltSetStateLowPriorityTeaseLow,,,DestinationCharacterName belt starts to tease her gently...,,
|
||||
FuturisticTrainingBeltSetStateLowPriorityTeaseMedium,,,DestinationCharacterName belt starts teasing her...,,
|
||||
FuturisticTrainingBeltSetStateLowPriorityTeaseHigh,,,DestinationCharacterName belt vibrates suddenly!,,
|
||||
FuturisticTrainingBeltSetStateLowPriorityTeaseMaximum,,,DestinationCharacterName belt vibrates intensely!,,
|
||||
FuturisticTrainingBeltSetStateLowPriorityMaxMaximum,,,DestinationCharacterName belt starts buzzing strongly!,,
|
||||
FuturisticTrainingBeltSetStateLowPriorityLowLow,,,DestinationCharacterName belt tingles just a little bit...,,
|
||||
FuturisticTrainingBeltSetStateLowPriorityMediumMedium,,,DestinationCharacterName belt vibrates gently.,,
|
||||
|
|
Can't render this file because it has a wrong number of fields in line 37.
|
|
@ -365,7 +365,7 @@ function InventoryItemPelvisFuturisticTrainingBeltUpdateVibeMode(C, Item, Force)
|
|||
Dictionary.push({ Tag: "SourceCharacter", Text: C.Name, MemberNumber: Player.MemberNumber });
|
||||
// This is meant to cut down on spam for other players
|
||||
if (FuturisticTrainingBeltStates[Item.Property.DeviceState].includes("Edge") && (OldIntensity >= 0 && OldIntensity < 3))
|
||||
ChatRoomMessage({ Content: Message+"Self", Type: "Action", Sender: Player.MemberNumber });
|
||||
ChatRoomMessage({ Content: Message+"Self", Type: "Action", Sender: Player.MemberNumber, Dictionary: Dictionary });
|
||||
else {
|
||||
if (Item.Property && Item.Property.ChatMessage) {
|
||||
Dictionary.push({ Automatic: true });
|
||||
|
@ -512,28 +512,34 @@ function AssetsItemPelvisFuturisticTrainingBeltScriptStateMachine(data) {
|
|||
Property.DeviceState = FuturisticTrainingBeltStates.indexOf("None"); // None
|
||||
update = true;
|
||||
} else if (Mode == "EdgeAndDeny") {
|
||||
DeviceSetToState = FuturisticTrainingBeltStates.indexOf("LowPriorityEdge");
|
||||
if (State != "Cooldown")
|
||||
DeviceSetToState = FuturisticTrainingBeltStates.indexOf("LowPriorityEdge");
|
||||
if (ArousalActive && C.ArousalSettings.Progress > 90) {
|
||||
if (Math.random() < FuturisticTrainingBeltRandomDenyChance) {
|
||||
DeviceSetToState = FuturisticTrainingBeltStates.indexOf("Cooldown");
|
||||
Property.DeviceStateTimer = CommonTime();
|
||||
Property.DeviceStateTimer = CommonTime() + FuturisticTrainingBeltRandomDenyDuration;
|
||||
update = true;
|
||||
}
|
||||
}
|
||||
|
||||
} else if (Mode == "RandomTeasing") {
|
||||
DeviceSetToState = FuturisticTrainingBeltStates.indexOf("LowPriorityTease");
|
||||
if (State != "LowPriorityTease")
|
||||
DeviceSetToState = 0;
|
||||
if (State == "None") {
|
||||
if (Math.random() < FuturisticTrainingBeltRandomTeaseChance) {
|
||||
const r = Math.random();
|
||||
DeviceSetToState = FuturisticTrainingBeltStates.indexOf("LowPriorityTease");
|
||||
DeviceTimer = FuturisticTrainingBeltRandomTeaseDurationMin + (FuturisticTrainingBeltRandomTeaseDurationMax - FuturisticTrainingBeltRandomTeaseDurationMin) * r * r * r;
|
||||
} else DeviceSetToState = -1;
|
||||
}
|
||||
} else DeviceTimer = 1;
|
||||
} else if (Mode == "RandomOrgasm") {
|
||||
DeviceSetToState = FuturisticTrainingBeltStates.indexOf("LowPriorityMax");
|
||||
if (State != "LowPriorityMax")
|
||||
DeviceSetToState = 0;
|
||||
|
||||
if (State == "None") {
|
||||
if (Math.random() < FuturisticTrainingBeltRandomOrgasmChance) {
|
||||
const r = Math.random();
|
||||
DeviceSetToState = FuturisticTrainingBeltStates.indexOf("LowPriorityMax");
|
||||
DeviceTimer = FuturisticTrainingBeltRandomOrgasmDurationMin + (FuturisticTrainingBeltRandomOrgasmDurationMax - FuturisticTrainingBeltRandomOrgasmDurationMin) * r * r * r;
|
||||
} else DeviceSetToState = -1;
|
||||
} else DeviceTimer = 1;
|
||||
|
@ -586,28 +592,46 @@ function AssetsItemPelvisFuturisticTrainingBeltScriptStateMachine(data) {
|
|||
|
||||
if (update || State.includes("Edge")) InventoryItemPelvisFuturisticTrainingBeltUpdateVibeMode(C, Item);
|
||||
|
||||
var EdgeMode = State.includes("Edge") || Mode == "EdgeAndDeny" || Mode == "RandomTeasing";
|
||||
let EdgeMode = State.includes("Edge") || Mode == "EdgeAndDeny" || Mode == "RandomTeasing";
|
||||
|
||||
if (ArousalActive) {
|
||||
if (EdgeMode && C.ArousalSettings.Progress > 96 && !((ActivityOrgasmGameTimer != null) && (ActivityOrgasmGameTimer > 0) && (CurrentTime < C.ArousalSettings.OrgasmTimer))) { // Manually trigger orgasm at this stage
|
||||
ActivityOrgasmPrepare(C, true);
|
||||
}
|
||||
}
|
||||
|
||||
if (EdgeMode) {
|
||||
if (!Item.Property.Effect && Item.Property.Effect.includes("DenialMode")) {
|
||||
if (Item.Property.Effect && !Item.Property.Effect.includes("DenialMode")) {
|
||||
Item.Property.Effect.push("DenialMode");
|
||||
}
|
||||
if (Item.Property.Effect && !Item.Property.Effect.includes("RuinOrgasms")) {
|
||||
Item.Property.Effect.push("RuinOrgasms");
|
||||
}
|
||||
} else {
|
||||
if (Item.Property.Effect && Item.Property.Effect.includes("DenialMode")) {
|
||||
for (let E = 0; E < Item.Property.Effect.length; E++) {
|
||||
var Effect = Item.Property.Effect[E];
|
||||
let Effect = Item.Property.Effect[E];
|
||||
if (Effect == "DenialMode") {
|
||||
Item.Property.Effect.splice(E, 1);
|
||||
E--;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (Item.Property.Effect && Item.Property.Effect.includes("RuinOrgasms")) {
|
||||
for (let E = 0; E < Item.Property.Effect.length; E++) {
|
||||
let Effect = Item.Property.Effect[E];
|
||||
if (Effect == "RuinOrgasms") {
|
||||
Item.Property.Effect.splice(E, 1);
|
||||
E--;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (ArousalActive) {
|
||||
if (EdgeMode && C.ArousalSettings.Progress > 96 && !((ActivityOrgasmGameTimer != null) && (ActivityOrgasmGameTimer > 0) && (CurrentTime < C.ArousalSettings.OrgasmTimer))) { // Manually trigger orgasm at this stage
|
||||
ActivityOrgasmPrepare(C, true);
|
||||
// Continuous edging~
|
||||
if (Mode == "EdgeAndDeny")
|
||||
C.ArousalSettings.Progress = 80;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -36,6 +36,13 @@ var AudioList = [
|
|||
{ Name: "VibrationLong1", File: "VibrationTone4Long3" },
|
||||
{ Name: "VibrationLong2", File: "VibrationTone4Long6" },
|
||||
{ Name: "VibrationShort", File: "VibrationTone4ShortLoop" },
|
||||
{ Name: "VibrationEdgeLow", File: "Vibrator_Advanced_LowEdge" },
|
||||
{ Name: "VibrationEdgeMedium", File: "Vibrator_Advanced_MediumEdge" },
|
||||
{ Name: "VibrationEdgeHigh", File: "Vibrator_Advanced_HighEdge" },
|
||||
{ Name: "VibrationTeaseLow", File: "Vibrator_Advanced_LowTease" },
|
||||
{ Name: "VibrationTeaseMedium", File: "Vibrator_Advanced_MediumTease" },
|
||||
{ Name: "VibrationMaximum", File: "Vibrator_Advanced_Strong" },
|
||||
{ Name: "VibrationCooldown", File: "Vibrator_Advanced_End" },
|
||||
{ Name: "Wand", File: "Wand" },
|
||||
{ Name: "WoodenCuffs", File: "WoodenCuffs" },
|
||||
{ Name: "ZipTie", File: "ZipTie" },
|
||||
|
@ -62,6 +69,56 @@ var AudioActions = [
|
|||
IsAction: (data) => ["pumps", "Suctightens", "InflatableBodyBagRestrain"].find(A => data.Content.includes(A)),
|
||||
Sound: "Inflation"
|
||||
},
|
||||
{
|
||||
IsAction: (data) => ["FuturisticTrainingBeltSetStateNoneOff"].find(A => data.Content.includes(A)),
|
||||
Sound: "FuturisticApply"
|
||||
},
|
||||
{
|
||||
IsAction: (data) => [ "FuturisticTrainingBeltSetStateLowPriorityEdgeLow",
|
||||
"FuturisticTrainingBeltSetStateLowPriorityEdgeLowSelf",
|
||||
"FuturisticTrainingBeltSetStateHighPriorityEdgeLow",
|
||||
"FuturisticTrainingBeltSetStateHighPriorityEdgeLowSelf"].find(A => data.Content.includes(A)),
|
||||
Sound: "VibrationEdgeLow"
|
||||
},
|
||||
{
|
||||
IsAction: (data) => [ "FuturisticTrainingBeltSetStateLowPriorityTeaseLow",
|
||||
"FuturisticTrainingBeltSetStateLowPriorityLowLow",].find(A => data.Content.includes(A)),
|
||||
Sound: "VibrationTeaseLow"
|
||||
},
|
||||
{
|
||||
IsAction: (data) => [ "FuturisticTrainingBeltSetStateCooldownOff"].find(A => data.Content.includes(A)),
|
||||
Sound: "VibrationCooldown"
|
||||
},
|
||||
{
|
||||
IsAction: (data) => [ "FuturisticTrainingBeltSetStateLowPriorityEdgeMedium",
|
||||
"FuturisticTrainingBeltSetStateLowPriorityEdgeMediumSelf",
|
||||
"FuturisticTrainingBeltSetStateHighPriorityEdgeMedium",
|
||||
"FuturisticTrainingBeltSetStateHighPriorityEdgeMediumSelf"].find(A => data.Content.includes(A)),
|
||||
Sound: "VibrationEdgeMedium"
|
||||
},
|
||||
{
|
||||
IsAction: (data) => [ "FuturisticTrainingBeltSetStateLowPriorityTeaseMedium",
|
||||
"FuturisticTrainingBeltSetStateLowPriorityMedium"].find(A => data.Content.includes(A)),
|
||||
Sound: "VibrationTeaseMedium"
|
||||
},
|
||||
{
|
||||
IsAction: (data) => [ "FuturisticTrainingBeltSetStateLowPriorityEdgeHigh",
|
||||
"FuturisticTrainingBeltSetStateLowPriorityEdgeHighSelf",
|
||||
"FuturisticTrainingBeltSetStateHighPriorityEdgeHigh",
|
||||
"FuturisticTrainingBeltSetStateHighPriorityEdgeHighSelf"].find(A => data.Content.includes(A)),
|
||||
Sound: "VibrationEdgeHigh"
|
||||
},
|
||||
{
|
||||
IsAction: (data) => [ "FuturisticTrainingBeltSetStateLowPriorityEdgeMaximum",
|
||||
"FuturisticTrainingBeltSetStateLowPriorityEdgeMaximumSelf",
|
||||
"FuturisticTrainingBeltSetStateLowPriorityTeaseMaximum",
|
||||
"FuturisticTrainingBeltSetStateLowPriorityTeaseHigh",
|
||||
"FuturisticTrainingBeltSetStateHighPriorityMax",
|
||||
"FuturisticTrainingBeltSetStateLowPriorityMax",
|
||||
"FuturisticTrainingBeltSetStateHighPriorityEdgeMaximum",
|
||||
"FuturisticTrainingBeltSetStateHighPriorityEdgeMaximumSelf"].find(A => data.Content.includes(A)),
|
||||
Sound: "VibrationMaximum"
|
||||
},
|
||||
{
|
||||
IsAction: (data) => ["InteractiveVisorHeadSet"].find(A => data.Content.includes(A)),
|
||||
Sound: "SciFiEffect"
|
||||
|
@ -95,7 +152,7 @@ var AudioActions = [
|
|||
Sound: "SciFiConfigure"
|
||||
},
|
||||
{
|
||||
IsAction: (data) => ["FuturisticChastityBeltSetPunish", "FuturisticChastityBeltSetGeneric", "FuturisticPanelGagMouthSetAutoPunish", "SciFiPleasurePantiesBeep"].find(A => data.Content.includes(A)),
|
||||
IsAction: (data) => ["FuturisticChastityBeltSetGeneric", "FuturisticChastityBeltSetPunish", "FuturisticChastityBeltSetGeneric", "FuturisticPanelGagMouthSetAutoPunish", "SciFiPleasurePantiesBeep"].find(A => data.Content.includes(A)),
|
||||
GetAudioInfo: AudioSciFiBeepSounds
|
||||
},
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue