Adds audio to training belt ()

* 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:
Ada18980 2021-06-25 10:23:40 -07:00 committed by GitHub
parent 9676ae4301
commit 81a77c8384
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 98 additions and 16 deletions

View file

@ -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},

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -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.

View file

@ -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;
}
}
}

View file

@ -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
},
{