thank you very frogge
This commit is contained in:
parent
1632065a83
commit
1abd7c391b
|
@ -173,6 +173,90 @@ SpriteRenderer:
|
|||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 2
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!1 &3311129963093537471
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5184237192129329593}
|
||||
- component: {fileID: 8827201684015420044}
|
||||
m_Layer: 0
|
||||
m_Name: SpotlightsBackColor
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5184237192129329593
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3311129963093537471}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3672416108430647415}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!212 &8827201684015420044
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3311129963093537471}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 0
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 0
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 1
|
||||
m_Sprite: {fileID: 1119035408, guid: 3c49c0fa809689d448ee90b3c1143d9f, type: 3}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 0.5019608}
|
||||
m_FlipX: 0
|
||||
m_FlipY: 0
|
||||
m_DrawMode: 0
|
||||
m_Size: {x: 16.9, y: 20.04}
|
||||
m_AdaptiveModeThreshold: 0.5
|
||||
m_SpriteTileMode: 0
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!1 &3446676100132537491
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -359,6 +443,90 @@ SpriteRenderer:
|
|||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!1 &4233280143836799923
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5600193726614857350}
|
||||
- component: {fileID: 3731523235594691501}
|
||||
m_Layer: 0
|
||||
m_Name: SpotlightsFrontColor
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5600193726614857350
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4233280143836799923}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 665267706566016202}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!212 &3731523235594691501
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4233280143836799923}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 0
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 0
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 14
|
||||
m_Sprite: {fileID: 1188383036, guid: 3c49c0fa809689d448ee90b3c1143d9f, type: 3}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 0.5019608}
|
||||
m_FlipX: 0
|
||||
m_FlipY: 0
|
||||
m_DrawMode: 0
|
||||
m_Size: {x: 11.88, y: 16.82}
|
||||
m_AdaptiveModeThreshold: 0.5
|
||||
m_SpriteTileMode: 0
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!1 &6247206099220596406
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -471,7 +639,8 @@ Transform:
|
|||
m_LocalPosition: {x: 0, y: 4.33, z: 0}
|
||||
m_LocalScale: {x: 0.48, y: 0.48, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Children:
|
||||
- {fileID: 5184237192129329593}
|
||||
m_Father: {fileID: 6749747454758802588}
|
||||
m_RootOrder: 9
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
|
@ -517,7 +686,7 @@ SpriteMask:
|
|||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_Sprite: {fileID: 1119035408, guid: 3c49c0fa809689d448ee90b3c1143d9f, type: 3}
|
||||
m_MaskAlphaCutoff: 0.106
|
||||
m_MaskAlphaCutoff: 0.5
|
||||
m_FrontSortingLayerID: 0
|
||||
m_BackSortingLayerID: 0
|
||||
m_FrontSortingLayer: 0
|
||||
|
@ -638,7 +807,8 @@ Transform:
|
|||
m_LocalPosition: {x: 0, y: 1.34, z: 0}
|
||||
m_LocalScale: {x: 0.5, y: 0.5, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Children:
|
||||
- {fileID: 5600193726614857350}
|
||||
m_Father: {fileID: 6749747454758802588}
|
||||
m_RootOrder: 8
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
|
@ -684,7 +854,7 @@ SpriteMask:
|
|||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_Sprite: {fileID: 1188383036, guid: 3c49c0fa809689d448ee90b3c1143d9f, type: 3}
|
||||
m_MaskAlphaCutoff: 0.106
|
||||
m_MaskAlphaCutoff: 0.5
|
||||
m_FrontSortingLayerID: 0
|
||||
m_BackSortingLayerID: 0
|
||||
m_FrontSortingLayer: 0
|
||||
|
|
|
@ -36,12 +36,17 @@ namespace HeavenStudio.Games.Loaders
|
|||
},
|
||||
new GameAction("count", "Count In")
|
||||
{
|
||||
preFunction = delegate {
|
||||
function = delegate {
|
||||
var e = eventCaller.currentEntity;
|
||||
if (eventCaller.gameManager.minigameObj.TryGetComponent(out FrogHop instance)) {
|
||||
instance.Count(e.beat, e["start"]);
|
||||
}
|
||||
},
|
||||
preFunction = delegate {
|
||||
var e = eventCaller.currentEntity;
|
||||
FrogHop.CountVox(e.beat);
|
||||
},
|
||||
preFunctionLength = 0,
|
||||
parameters = new List<Param>()
|
||||
{
|
||||
new Param("start", true, "Start Shaking", "Start shaking after the count in."),
|
||||
|
@ -75,8 +80,14 @@ namespace HeavenStudio.Games.Loaders
|
|||
instance.TwoHop(e.beat, e["spotlights"], e["jazz"]);
|
||||
}
|
||||
},
|
||||
preFunction = delegate {
|
||||
var e = eventCaller.currentEntity;
|
||||
FrogHop.TwoHopVox(e.beat, e["enabled"]);
|
||||
},
|
||||
preFunctionLength = 0,
|
||||
parameters = new List<Param>()
|
||||
{
|
||||
new Param("enabled", true, "Cue Sound", "Choose whether to play the cue sound for this event."),
|
||||
new Param("spotlights", true, "Automatic Spotlights", "Handles spotlight switching automatically."),
|
||||
new Param("jazz", false, "Jumpin' Jazz", "Mouth animations will be based on Frog Hop 2."),
|
||||
},
|
||||
|
@ -90,8 +101,14 @@ namespace HeavenStudio.Games.Loaders
|
|||
instance.ThreeHop(e.beat, e["spotlights"], e["jazz"]);
|
||||
}
|
||||
},
|
||||
preFunction = delegate {
|
||||
var e = eventCaller.currentEntity;
|
||||
FrogHop.ThreeHopVox(e.beat, e["enabled"]);
|
||||
},
|
||||
preFunctionLength = 0,
|
||||
parameters = new List<Param>()
|
||||
{
|
||||
new Param("enabled", true, "Cue Sound", "Choose whether to play the cue sound for this event."),
|
||||
new Param("spotlights", true, "Automatic Spotlights", "Handles spotlight switching automatically."),
|
||||
new Param("jazz", false, "Jumpin' Jazz", "Mouth animations will be based on Frog Hop 2."),
|
||||
},
|
||||
|
@ -105,13 +122,33 @@ namespace HeavenStudio.Games.Loaders
|
|||
instance.SpinItBoys(e.beat, e["spotlights"], e["jazz"]);
|
||||
}
|
||||
},
|
||||
preFunction = delegate {
|
||||
var e = eventCaller.currentEntity;
|
||||
FrogHop.SpinItBoysVox(e.beat, e["enabled"]);
|
||||
},
|
||||
preFunctionLength = 0,
|
||||
parameters = new List<Param>()
|
||||
{
|
||||
new Param("enabled", true, "Cue Sound", "Choose whether to play the cue sound for this event."),
|
||||
new Param("spotlights", true, "Automatic Spotlights", "Handles spotlight switching automatically."),
|
||||
new Param("jazz", false, "Jumpin' Jazz", "Mouth animations will be based on Frog Hop 2."),
|
||||
},
|
||||
defaultLength = 4.0f,
|
||||
},
|
||||
new GameAction("thankyou", "Thank you... verrry much-a!")
|
||||
{
|
||||
preFunction = delegate {
|
||||
var e = eventCaller.currentEntity;
|
||||
if (eventCaller.gameManager.minigameObj.TryGetComponent(out FrogHop instance)) {
|
||||
instance.ThankYou(e.beat, e["pitched"]);
|
||||
}
|
||||
},
|
||||
parameters = new List<Param>()
|
||||
{
|
||||
new Param("pitched", false, "Enable Pitching", "Makes the frog voices pitch up and down based on the song's tempo."),
|
||||
},
|
||||
defaultLength = 6.0f,
|
||||
},
|
||||
new GameAction("mouthwide", "Open Mouth (Wide)")
|
||||
{
|
||||
function = delegate {
|
||||
|
@ -213,7 +250,7 @@ namespace HeavenStudio.Games
|
|||
double startNoHop = double.MinValue;
|
||||
double startRegularHop = double.MinValue;
|
||||
|
||||
float globalPitch = 1;
|
||||
static float globalPitch = 1;
|
||||
bool usesGlobalePitch = false; //oops i spelled global wrong lmao
|
||||
|
||||
const int IAAltDownCat = IAMAXCAT;
|
||||
|
@ -254,6 +291,10 @@ namespace HeavenStudio.Games
|
|||
|
||||
public void Awake()
|
||||
{
|
||||
globalPitch = (float)Conductor.instance.GetBpmAtBeat(Conductor.instance.songPositionInBeatsAsDouble) / 156;
|
||||
|
||||
PersistThings(Conductor.instance.songPositionInBeatsAsDouble);
|
||||
|
||||
AllFrogs.Add(PlayerFrog);
|
||||
AllFrogs.AddRange(OtherFrogs);
|
||||
AllFrogs.Add(LeaderFrog);
|
||||
|
@ -268,6 +309,52 @@ namespace HeavenStudio.Games
|
|||
whoToInputKTB = AllFrogs;
|
||||
}
|
||||
|
||||
public override void OnGameSwitch(double beat)
|
||||
{
|
||||
foreach (var entity in GameManager.instance.Beatmap.Entities)
|
||||
{
|
||||
if (entity.beat >= beat && entity.beat <= beat + 1)
|
||||
{
|
||||
if (entity.datamodel == "frogHop/hop")
|
||||
Hop(entity.beat);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (entity.beat >= beat || entity.beat < beat - 4) continue;
|
||||
|
||||
if (entity.datamodel == "frogHop/count")
|
||||
{
|
||||
var e = entity;
|
||||
Count(e.beat, e["start"]);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (entity.beat < beat - 2) continue;
|
||||
|
||||
switch (entity.datamodel)
|
||||
{
|
||||
case "frogHop/twoshake":
|
||||
{
|
||||
var e = entity;
|
||||
TwoHop(e.beat, e["spotlights"], e["jazz"], beat - e.beat);
|
||||
continue;
|
||||
}
|
||||
case "frogHop/threeshake":
|
||||
{
|
||||
var e = entity;
|
||||
ThreeHop(e.beat, e["spotlights"], e["jazz"], beat - e.beat);
|
||||
continue;
|
||||
}
|
||||
case "frogHop/spinitboys":
|
||||
{
|
||||
var e = entity;
|
||||
SpinItBoys(e.beat, e["spotlights"], e["jazz"], beat - e.beat);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
//voice pitch stuff below
|
||||
|
@ -369,26 +456,32 @@ namespace HeavenStudio.Games
|
|||
public void Count(double beat, bool start)
|
||||
{
|
||||
var actions = new List<BeatAction.Action>();
|
||||
var sounds = new List<MultiSound.Sound>();
|
||||
|
||||
actions.Add(new(beat + 0.0, delegate { Talk(new List<ntrFrog>() { LeaderFrog }, "Wide", beat); }));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_COUNT1", beat + 0.0, usesGlobalePitch ? globalPitch : 1));
|
||||
|
||||
actions.Add(new(beat + 1.0, delegate { Talk(new List<ntrFrog>() { LeaderFrog }, "Wide", beat); }));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_COUNT2", beat + 1.0, usesGlobalePitch ? globalPitch : 1));
|
||||
|
||||
actions.Add(new(beat + 2.0, delegate { Talk(new List<ntrFrog>() { LeaderFrog }, "Wide", beat); }));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_COUNT3", beat + 2.0, usesGlobalePitch ? globalPitch : 1));
|
||||
|
||||
actions.Add(new(beat + 3.0, delegate { Talk(new List<ntrFrog>() { LeaderFrog }, "Wide", beat); }));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_COUNT4", beat + 3.0, usesGlobalePitch ? globalPitch : 1));
|
||||
|
||||
BeatAction.New(this, actions);
|
||||
MultiSound.Play(sounds);
|
||||
|
||||
if (start) Hop(beat + 4.0);
|
||||
}
|
||||
|
||||
public static void CountVox(double beat)
|
||||
{
|
||||
globalPitch = (float)Conductor.instance.GetBpmAtBeat(Conductor.instance.songPositionInBeatsAsDouble) / 156;
|
||||
bool usesGlobalePitch = GetPitched(Conductor.instance.songPositionInBeatsAsDouble);
|
||||
|
||||
var sounds = new List<MultiSound.Sound>();
|
||||
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_COUNT1", beat + 0.0, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_COUNT2", beat + 1.0, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_COUNT3", beat + 2.0, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_COUNT4", beat + 3.0, usesGlobalePitch ? globalPitch : 1));
|
||||
|
||||
MultiSound.Play(sounds, forcePlay: true);
|
||||
}
|
||||
|
||||
public void Hop (double beat)
|
||||
{
|
||||
wantHop = beat - 1;
|
||||
|
@ -404,7 +497,7 @@ namespace HeavenStudio.Games
|
|||
usesGlobalePitch = enabled;
|
||||
}
|
||||
|
||||
public void TwoHop (double beat, bool spotlights, bool jumpinJazz)
|
||||
public void TwoHop (double beat, bool spotlights, bool jumpinJazz, double start = 0)
|
||||
{
|
||||
CueCommon(beat, spotlights);
|
||||
|
||||
|
@ -412,12 +505,8 @@ namespace HeavenStudio.Games
|
|||
var sounds = new List<MultiSound.Sound>();
|
||||
|
||||
//call
|
||||
actions.Add(new(beat + 0.0, delegate { NPCHop(FrontFrogs); Talk(new List<ntrFrog>() { LeaderFrog }, "Wide", beat); }));
|
||||
actions.Add(new(beat + 0.5, delegate { NPCHop(FrontFrogs, true); Talk(new List<ntrFrog>() { LeaderFrog }, "Narrow", jumpinJazz ? beat + 2.5 : beat + 1.5); }));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_HA", beat, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_POP_DEFAULT", beat));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_HAAI", beat + 0.5, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_POP_HAAI", beat + 0.5));
|
||||
if (start <= 0.0) actions.Add(new(beat + 0.0, delegate { NPCHop(FrontFrogs); Talk(new List<ntrFrog>() { LeaderFrog }, "Wide", beat); }));
|
||||
if (start <= 0.5) actions.Add(new(beat + 0.5, delegate { NPCHop(FrontFrogs, true); Talk(new List<ntrFrog>() { LeaderFrog }, "Narrow", jumpinJazz ? beat + 2.5 : beat + 1.5); }));
|
||||
|
||||
//response
|
||||
actions.Add(new(beat + 2.0, delegate { NPCHop(BackFrogs); Talk(BackFrogs, "Wide", beat); }));
|
||||
|
@ -433,7 +522,23 @@ namespace HeavenStudio.Games
|
|||
MultiSound.Play(sounds);
|
||||
}
|
||||
|
||||
public void ThreeHop (double beat, bool spotlights, bool jumpinJazz)
|
||||
public static void TwoHopVox(double beat, bool enabled)
|
||||
{
|
||||
if (!enabled) return;
|
||||
globalPitch = (float)Conductor.instance.GetBpmAtBeat(Conductor.instance.songPositionInBeatsAsDouble) / 156;
|
||||
bool usesGlobalePitch = GetPitched(Conductor.instance.songPositionInBeatsAsDouble);
|
||||
|
||||
var sounds = new List<MultiSound.Sound>();
|
||||
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_HA", beat, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_POP_DEFAULT", beat));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_HAAI", beat + 0.5, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_POP_HAAI", beat + 0.5));
|
||||
|
||||
MultiSound.Play(sounds, forcePlay: true);
|
||||
}
|
||||
|
||||
public void ThreeHop (double beat, bool spotlights, bool jumpinJazz, double start = 0)
|
||||
{
|
||||
CueCommon(beat, spotlights);
|
||||
|
||||
|
@ -441,15 +546,9 @@ namespace HeavenStudio.Games
|
|||
var sounds = new List<MultiSound.Sound>();
|
||||
|
||||
//call
|
||||
actions.Add(new(beat + 0.0, delegate { NPCHop(FrontFrogs); Talk(new List<ntrFrog>() { LeaderFrog }, "Narrow", jumpinJazz ? beat + 2.5 : beat); }));
|
||||
actions.Add(new(beat + 0.5, delegate { NPCHop(FrontFrogs); if (!jumpinJazz) Talk(new List<ntrFrog>() { LeaderFrog }, "Narrow", beat); }));
|
||||
actions.Add(new(beat + 1.0, delegate { NPCHop(FrontFrogs, true); if (!jumpinJazz) Talk(new List<ntrFrog>() { LeaderFrog }, "Narrow", beat); }));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_HAI", beat, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_POP_DEFAULT", beat));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_HAI", beat + 0.5, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_POP_DEFAULT", beat + 0.5));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_HAI", beat + 1.0, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_POP_DEFAULT", beat + 1.0));
|
||||
if (start <= 0.0) actions.Add(new(beat + 0.0, delegate { NPCHop(FrontFrogs); Talk(new List<ntrFrog>() { LeaderFrog }, "Narrow", jumpinJazz ? beat + 2.5 : beat); }));
|
||||
if (start <= 0.5) actions.Add(new(beat + 0.5, delegate { NPCHop(FrontFrogs); if (!jumpinJazz) Talk(new List<ntrFrog>() { LeaderFrog }, "Narrow", beat); }));
|
||||
if (start <= 1.0) actions.Add(new(beat + 1.0, delegate { NPCHop(FrontFrogs, true); if (!jumpinJazz) Talk(new List<ntrFrog>() { LeaderFrog }, "Narrow", beat); }));
|
||||
|
||||
//response
|
||||
actions.Add(new(beat + 2.0, delegate { NPCHop(BackFrogs); Talk(BackFrogs, "Narrow", jumpinJazz ? beat + 4.5 : beat); }));
|
||||
|
@ -468,7 +567,25 @@ namespace HeavenStudio.Games
|
|||
MultiSound.Play(sounds);
|
||||
}
|
||||
|
||||
public void SpinItBoys (double beat, bool spotlights, bool jumpinJazz)
|
||||
public static void ThreeHopVox(double beat, bool enabled)
|
||||
{
|
||||
if (!enabled) return;
|
||||
globalPitch = (float)Conductor.instance.GetBpmAtBeat(Conductor.instance.songPositionInBeatsAsDouble) / 156;
|
||||
bool usesGlobalePitch = GetPitched(Conductor.instance.songPositionInBeatsAsDouble);
|
||||
|
||||
var sounds = new List<MultiSound.Sound>();
|
||||
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_HAI", beat, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_POP_DEFAULT", beat));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_HAI", beat + 0.5, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_POP_DEFAULT", beat + 0.5));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_HAI", beat + 1.0, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_POP_DEFAULT", beat + 1.0));
|
||||
|
||||
MultiSound.Play(sounds, forcePlay: true);
|
||||
}
|
||||
|
||||
public void SpinItBoys (double beat, bool spotlights, bool jumpinJazz, double start = 0)
|
||||
{
|
||||
CueCommon(beat, spotlights);
|
||||
|
||||
|
@ -476,12 +593,8 @@ namespace HeavenStudio.Games
|
|||
var sounds = new List<MultiSound.Sound>();
|
||||
|
||||
//call
|
||||
actions.Add(new(beat + 0.0, delegate { NPCCharge(FrontFrogs); Talk(new List<ntrFrog>() { LeaderFrog }, "Narrow", beat); }));
|
||||
actions.Add(new(beat + 1.0, delegate { NPCSpin(FrontFrogs); Talk(new List<ntrFrog>() { LeaderFrog }, "Wide", beat); }));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_KURU_1", beat, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_KURU_2", beat + 0.5, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_LIN", beat + 1.0, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_SPIN", beat + 1.0));
|
||||
if (start <= 0.0) actions.Add(new(beat + 0.0, delegate { NPCCharge(FrontFrogs); Talk(new List<ntrFrog>() { LeaderFrog }, "Narrow", beat); }));
|
||||
if (start <= 1.0) actions.Add(new(beat + 1.0, delegate { NPCSpin(FrontFrogs); Talk(new List<ntrFrog>() { LeaderFrog }, "Wide", beat); }));
|
||||
|
||||
//response
|
||||
actions.Add(new(beat + 2.0, delegate { NPCCharge(BackFrogs); Talk(BackFrogs, "Narrow", jumpinJazz ? beat + 3.0 : beat); }));
|
||||
|
@ -499,6 +612,22 @@ namespace HeavenStudio.Games
|
|||
MultiSound.Play(sounds);
|
||||
}
|
||||
|
||||
public static void SpinItBoysVox(double beat, bool enabled)
|
||||
{
|
||||
if (!enabled) return;
|
||||
globalPitch = (float)Conductor.instance.GetBpmAtBeat(Conductor.instance.songPositionInBeatsAsDouble) / 156;
|
||||
bool usesGlobalePitch = GetPitched(Conductor.instance.songPositionInBeatsAsDouble);
|
||||
|
||||
var sounds = new List<MultiSound.Sound>();
|
||||
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_KURU_1", beat, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_KURU_2", beat + 0.5, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_LIN", beat + 1.0, usesGlobalePitch ? globalPitch : 1));
|
||||
sounds.Add(new MultiSound.Sound("frogHop/SE_NTR_FROG_EN_T_SPIN", beat + 1.0));
|
||||
|
||||
MultiSound.Play(sounds, forcePlay: true);
|
||||
}
|
||||
|
||||
public void CueCommon(double beat, bool spotlights = true)
|
||||
{
|
||||
startBackHop = beat;
|
||||
|
@ -527,6 +656,31 @@ namespace HeavenStudio.Games
|
|||
SpotlightBack.SetActive(back);
|
||||
}
|
||||
|
||||
public void ThankYou(double beat, bool stretchToTempo)
|
||||
{
|
||||
float pitch = stretchToTempo ? globalPitch * Conductor.instance.TimelinePitch : 1;
|
||||
double offset = stretchToTempo ? (0.17 / (Conductor.instance.GetBpmAtBeat(beat) / 98)) : 0.17;
|
||||
|
||||
MultiSound.Play(new MultiSound.Sound[]
|
||||
{
|
||||
new MultiSound.Sound("frogHop/thankYou", beat, pitch: pitch, offset: offset),
|
||||
});
|
||||
|
||||
var actions = new List<BeatAction.Action>();
|
||||
var BlueFrog = new List<ntrFrog>() { SingerFrog };
|
||||
double stretch = stretchToTempo ? 1 : 1 / (globalPitch * Conductor.instance.TimelinePitch);
|
||||
|
||||
actions.Add(new(beat, delegate { BopAnimation(BlueFrog); }));
|
||||
|
||||
actions.Add(new(beat + (0.00 / stretch), delegate { Talk(BlueFrog, "Narrow", beat); })); //"thank"
|
||||
actions.Add(new(beat + (0.50 / stretch), delegate { Talk(BlueFrog, "Narrow", beat); })); //"you"
|
||||
actions.Add(new(beat + (2.00 / stretch), delegate { Talk(BlueFrog, "Wide", beat + (3.75 / stretch)); })); //"verrry"
|
||||
actions.Add(new(beat + (4.25 / stretch), delegate { Talk(BlueFrog, "Narrow", beat); })); //"much"
|
||||
actions.Add(new(beat + (5.00 / stretch), delegate { Talk(BlueFrog, "Narrow", beat); })); //"-a!"
|
||||
|
||||
BeatAction.New(this, actions);
|
||||
}
|
||||
|
||||
public void Talk(List<ntrFrog> FrogsToTalk, string syllable, double animEnd)
|
||||
{
|
||||
foreach (var a in FrogsToTalk) { a.Talk(syllable, animEnd); }
|
||||
|
@ -643,11 +797,41 @@ namespace HeavenStudio.Games
|
|||
{
|
||||
if (whiff) ScoreMiss(0.5f);
|
||||
if (sweat) PlayerFrog.Sweat();
|
||||
foreach (var a in OtherFrogs) { a.Glare(); }
|
||||
else { foreach (var a in OtherFrogs) { a.Glare(); } }
|
||||
}
|
||||
|
||||
public void Nothing(PlayerActionEvent caller) { }
|
||||
|
||||
private void PersistThings(double beat)
|
||||
{
|
||||
var allEvents = GameManager.instance.Beatmap.Entities.FindAll(e => e.datamodel.Split('/')[0] is "frogHop");
|
||||
var eventsBefore = allEvents.FindAll(e => e.beat < beat);
|
||||
|
||||
var lastPersistEvent = eventsBefore.FindLast(e => e.datamodel == "frogHop/pitching");
|
||||
if (lastPersistEvent != null)
|
||||
{
|
||||
var e = lastPersistEvent;
|
||||
Pitching(e["enabled"]);
|
||||
}
|
||||
}
|
||||
|
||||
public static bool GetPitched(double beat)
|
||||
{
|
||||
var allEvents = GameManager.instance.Beatmap.Entities.FindAll(e => e.datamodel.Split('/')[0] is "frogHop");
|
||||
var eventsBefore = allEvents.FindAll(e => e.beat < beat);
|
||||
|
||||
bool isPitched = false;
|
||||
|
||||
var lastPersistEvent = eventsBefore.FindLast(e => e.datamodel == "frogHop/pitching");
|
||||
if (lastPersistEvent != null)
|
||||
{
|
||||
var e = lastPersistEvent;
|
||||
isPitched = e["enabled"];
|
||||
}
|
||||
|
||||
return isPitched;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue