Lots of small things

Replaced the combined "boing" sound from rhre with the split "boing" sounds from ingame for easier voice replacement.
Split the regular pun and boing pun blocks.
Made the offset for Kosuke's voicelines adapt to the sound's pitch.
Made speech bubble positions randomized.
Made the "ready" animation play in autoplay if you're in touch mode.
Moved the window for when you're allowed to start holding for a slap in touch mode sooner.
This commit is contained in:
ThePurpleAnon 2024-01-30 00:15:05 -06:00
parent 3b7c0dc96a
commit e5f5ca0ad8
12 changed files with 118 additions and 1948 deletions

File diff suppressed because one or more lines are too long

View file

@ -3281,7 +3281,7 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4610263651717955089} m_GameObject: {fileID: 4610263651717955089}
m_LocalRotation: {x: -0, y: -0, z: 0.2588191, w: 0.9659258} m_LocalRotation: {x: -0, y: -0, z: 0.2588191, w: 0.9659258}
m_LocalPosition: {x: -1.94, y: 3.47, z: 0} m_LocalPosition: {x: -2.2, y: 3.47, z: 0}
m_LocalScale: {x: 1.5, y: 1.5, z: 1} m_LocalScale: {x: 1.5, y: 1.5, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
@ -6328,7 +6328,7 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8974510991397761272} m_GameObject: {fileID: 8974510991397761272}
m_LocalRotation: {x: -0, y: -0, z: -0.3420201, w: 0.9396927} m_LocalRotation: {x: -0, y: -0, z: -0.3420201, w: 0.9396927}
m_LocalPosition: {x: 2.6100001, y: 3.41, z: 0} m_LocalPosition: {x: 2.4, y: 3.41, z: 0}
m_LocalScale: {x: 1.5, y: 1.5, z: 1} m_LocalScale: {x: 1.5, y: 1.5, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:

View file

@ -14,8 +14,8 @@ RenderTexture:
m_DownscaleFallback: 0 m_DownscaleFallback: 0
m_IsAlphaChannelOptional: 0 m_IsAlphaChannelOptional: 0
serializedVersion: 5 serializedVersion: 5
m_Width: 947 m_Width: 963
m_Height: 533 m_Height: 542
m_AntiAliasing: 2 m_AntiAliasing: 2
m_MipCount: -1 m_MipCount: -1
m_DepthStencilFormat: 92 m_DepthStencilFormat: 92

View file

@ -14,8 +14,8 @@ RenderTexture:
m_DownscaleFallback: 0 m_DownscaleFallback: 0
m_IsAlphaChannelOptional: 0 m_IsAlphaChannelOptional: 0
serializedVersion: 5 serializedVersion: 5
m_Width: 1420 m_Width: 1444
m_Height: 799 m_Height: 813
m_AntiAliasing: 1 m_AntiAliasing: 1
m_MipCount: -1 m_MipCount: -1
m_DepthStencilFormat: 92 m_DepthStencilFormat: 92

Binary file not shown.

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: dd1a99f60526aca42921f511f772b743 guid: 3213137cd80fd0c4e830219c6c8acf11
AudioImporter: AudioImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 6 serializedVersion: 6

Binary file not shown.

View file

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: e29f2f99806cd7044a5f9df76b61c53f
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View file

@ -8906,7 +8906,7 @@ MonoBehaviour:
m_faceColor: m_faceColor:
serializedVersion: 2 serializedVersion: 2
rgba: 4294967295 rgba: 4294967295
m_fontSize: 14 m_fontSize: 12.5
m_fontSizeBase: 14.3 m_fontSizeBase: 14.3
m_fontWeight: 400 m_fontWeight: 400
m_enableAutoSizing: 1 m_enableAutoSizing: 1
@ -14029,7 +14029,7 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 171581557} m_TargetGraphic: {fileID: 171581557}
m_HandleRect: {fileID: 171581556} m_HandleRect: {fileID: 171581556}
m_Direction: 2 m_Direction: 2
m_Value: 1 m_Value: 0
m_Size: 1 m_Size: 1
m_NumberOfSteps: 0 m_NumberOfSteps: 0
m_OnValueChanged: m_OnValueChanged:
@ -32707,7 +32707,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5} m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5} m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: 0, y: 142.32655} m_AnchoredPosition: {x: 0, y: 89.265305}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 1} m_Pivot: {x: 0.5, y: 1}
--- !u!222 &1154875945 --- !u!222 &1154875945
@ -43455,8 +43455,8 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 1220118245} m_TargetGraphic: {fileID: 1220118245}
m_HandleRect: {fileID: 1220118244} m_HandleRect: {fileID: 1220118244}
m_Direction: 2 m_Direction: 2
m_Value: 1.0000008 m_Value: 1.0000002
m_Size: 0.78099126 m_Size: 0.34134114
m_NumberOfSteps: 0 m_NumberOfSteps: 0
m_OnValueChanged: m_OnValueChanged:
m_PersistentCalls: m_PersistentCalls:

View file

@ -33,16 +33,40 @@ namespace HeavenStudio.Games.Loaders
{ {
preFunction = delegate { preFunction = delegate {
var e = eventCaller.currentEntity; var e = eventCaller.currentEntity;
Manzai.PunSFX(e.beat, e["pun"], e["pitch"], e["boing"]); }, Manzai.PunSFX(e.beat, e["pun"], e["pitch"], 0); },
function = delegate { function = delegate {
var e = eventCaller.currentEntity; var e = eventCaller.currentEntity;
Manzai.instance.DoPun(e.beat, e["boing"], e["pun"]); }, Manzai.instance.DoPun(e.beat, 0, e["pun"]); },
defaultLength = 4, defaultLength = 4,
parameters = new List<Param>() parameters = new List<Param>()
{ {
new Param("boing", Manzai.BoingType.Normal, "Pun Type", "Will Kosuke mess up his pun?"), //new Param("boing", Manzai.BoingType.Normal, "Pun Type", "Will Kosuke mess up his pun?"),
/*new Param("random", true, "Random Voiceline", "Use a random pun?", new List<Param.CollapseParam>()
{
new Param.CollapseParam((x, _) => !(bool)x, new string[] { "pun" }),
new Param.CollapseParam((x, _) => (bool)x, new string[] { "unused" })
}),*/
new Param("pun", Manzai.Puns.FutongaFuttonda, "Which Pun?", "Which pun will Kosuke say?"),
//new Param("unused", false, "Include Unused", "Will unused puns be picked?"),
new Param("pitch", true, "Pitch Voiceline", "Will the pun pitch with the tempo?"),
}
},
new GameAction("boing", "Pun (Boing)")
{
preFunction = delegate {
var e = eventCaller.currentEntity;
Manzai.PunSFX(e.beat, e["pun"], e["pitch"], 1); },
function = delegate {
var e = eventCaller.currentEntity;
Manzai.instance.DoPun(e.beat, 1, e["pun"]); },
defaultLength = 4,
parameters = new List<Param>()
{
//new Param("boing", Manzai.BoingType.Normal, "Pun Type", "Will Kosuke mess up his pun?"),
/*new Param("random", true, "Random Voiceline", "Use a random pun?", new List<Param.CollapseParam>() /*new Param("random", true, "Random Voiceline", "Use a random pun?", new List<Param.CollapseParam>()
{ {
new Param.CollapseParam((x, _) => !(bool)x, new string[] { "pun" }), new Param.CollapseParam((x, _) => !(bool)x, new string[] { "pun" }),
@ -152,6 +176,8 @@ namespace HeavenStudio.Games
double lastWhiffBeat = double.MinValue; double lastWhiffBeat = double.MinValue;
bool canDodge = true; bool canDodge = true;
float randomBubbleBoth = 0.0f;
public enum WhoBops public enum WhoBops
@ -321,7 +347,8 @@ namespace HeavenStudio.Games
public static void PunSFX(double beat, int whichPun, bool isPitched, int isBoing) public static void PunSFX(double beat, int whichPun, bool isPitched, int isBoing)
{ {
var punName= Enum.GetName(typeof(Puns), whichPun); var punName= Enum.GetName(typeof(Puns), whichPun);
float pitch = isPitched ? Conductor.instance.songBpm/98 : 1; float pitch = isPitched ? Conductor.instance.GetBpmAtBeat(beat)/98 : 1;
double offset = isPitched ? (0.05/(Conductor.instance.GetBpmAtBeat(beat)/98)) : 0.05;
var sounds = new List<MultiSound.Sound>(); var sounds = new List<MultiSound.Sound>();
int boing = isBoing; int boing = isBoing;
int length = boingLengths.GetValueOrDefault(punName); int length = boingLengths.GetValueOrDefault(punName);
@ -330,12 +357,13 @@ namespace HeavenStudio.Games
Debug.Log(length); Debug.Log(length);
for (int i = 0; i < syllables; i++) { for (int i = 0; i < syllables; i++) {
sounds.Add(new MultiSound.Sound($"manzai/{punName}{i + 1}", beat + (i * 0.25), pitch, offset: i == 0 ? 0.05 : 0)); sounds.Add(new MultiSound.Sound($"manzai/{punName}{i + 1}", beat + (i * 0.25), pitch, offset: i == 0 ? offset : 0));
} }
if (isBoing == 1) if (isBoing == 1)
{ {
sounds.Add(new MultiSound.Sound("manzai/boing", syllables == 6 ? beat + 1.50 : beat + 1.25 , pitch)); sounds.Add(new MultiSound.Sound("manzai/boing", syllables == 6 ? beat + 1.50 : beat + 1.25 , pitch, volume: 0.8f));
sounds.Add(new MultiSound.Sound("manzai/comedy", syllables == 6 ? beat + 1.50 : beat + 1.25 , pitch, volume: 0.8f));
} }
MultiSound.Play(sounds.ToArray(), forcePlay: true); MultiSound.Play(sounds.ToArray(), forcePlay: true);
@ -357,7 +385,7 @@ namespace HeavenStudio.Games
{ {
new BeatAction.Action(beat + 0.00f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }), new BeatAction.Action(beat + 0.00f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }),
new BeatAction.Action(beat + 0.50f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }), new BeatAction.Action(beat + 0.50f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }),
new BeatAction.Action(beat + 2.25f, delegate { ravenCanBop = false; canDodge = true; }), new BeatAction.Action(beat + 2.25f, delegate { ravenCanBop = false; canDodge = true; bubbleRandom(); }),
new BeatAction.Action(beat + 3.25f, delegate { vultureCanBop = true; ravenCanBop = true; }), new BeatAction.Action(beat + 3.25f, delegate { vultureCanBop = true; ravenCanBop = true; }),
new BeatAction.Action(beat + 3.25f, delegate { audienceRespond(beat); }), new BeatAction.Action(beat + 3.25f, delegate { audienceRespond(beat); }),
}); });
@ -370,13 +398,18 @@ namespace HeavenStudio.Games
new BeatAction.Action(beat + 0.50f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }), new BeatAction.Action(beat + 0.50f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }),
new BeatAction.Action(beat + 1.00f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }), new BeatAction.Action(beat + 1.00f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }),
new BeatAction.Action(beat + 1.50f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }), new BeatAction.Action(beat + 1.50f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }),
new BeatAction.Action(beat + 2.25f, delegate { ravenCanBop = false; canDodge = true; }), new BeatAction.Action(beat + 2.25f, delegate { ravenCanBop = false; canDodge = true; bubbleRandom(); }),
new BeatAction.Action(beat + 3.25f, delegate { vultureCanBop = true; ravenCanBop = true; }), new BeatAction.Action(beat + 3.25f, delegate { vultureCanBop = true; ravenCanBop = true; }),
new BeatAction.Action(beat + 3.25f, delegate { audienceRespond(beat); }), new BeatAction.Action(beat + 3.25f, delegate { audienceRespond(beat); }),
}); });
} }
} }
public void bubbleRandom()
{
randomBubbleBoth = UnityEngine.Random.Range(-100, 101) / 1000.0f;
}
public void HaiJustFull(float state, int side) public void HaiJustFull(float state, int side)
{ {
SoundByte.PlayOneShotGame("manzai/hai", pitch: Conductor.instance.songBpm/98); SoundByte.PlayOneShotGame("manzai/hai", pitch: Conductor.instance.songBpm/98);
@ -406,7 +439,11 @@ namespace HeavenStudio.Games
// var euler = PivotL.eulerAngles; // var euler = PivotL.eulerAngles;
// euler.z = UnityEngine.Random.Range(0, 100); // euler.z = UnityEngine.Random.Range(0, 100);
int side = 0; int side = 0;
float randomL = UnityEngine.Random.Range(-40, 41) / 1000.0f;
Quaternion rotL = new Quaternion();
rotL.Set(0, 0, randomBubbleBoth + randomL, 1);
PivotL.rotation = rotL;
HaiBubbleL.DoScaledAnimationAsync("HaiL", 0.5f); HaiBubbleL.DoScaledAnimationAsync("HaiL", 0.5f);
HaiJustFull(state, side); HaiJustFull(state, side);
} }
@ -414,7 +451,11 @@ namespace HeavenStudio.Games
public void HaiJustR(PlayerActionEvent caller, float state) public void HaiJustR(PlayerActionEvent caller, float state)
{ {
int side = 1; int side = 1;
float randomR = UnityEngine.Random.Range(-40, 41) / 1000.0f;
Quaternion rotR = new Quaternion();
rotR.Set(0, 0, randomBubbleBoth + randomR, 1);
PivotR.rotation = rotR;
HaiBubbleR.DoScaledAnimationAsync("HaiR", 0.5f); HaiBubbleR.DoScaledAnimationAsync("HaiR", 0.5f);
HaiJustFull(state, side); HaiJustFull(state, side);
} }
@ -435,6 +476,13 @@ namespace HeavenStudio.Games
{ {
RavenAnim.DoScaledAnimationAsync("Ready", 0.5f); RavenAnim.DoScaledAnimationAsync("Ready", 0.5f);
} }
else
{
if (GameManager.instance.autoplay)
{
RavenAnim.DoScaledAnimationAsync("Ready", 0.5f);
}
}
} }
public void DoPunBoing(double beat, int whichPun) public void DoPunBoing(double beat, int whichPun)
@ -454,7 +502,7 @@ namespace HeavenStudio.Games
{ {
new BeatAction.Action(beat + 0.00f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }), new BeatAction.Action(beat + 0.00f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }),
new BeatAction.Action(beat + 0.50f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }), new BeatAction.Action(beat + 0.50f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }),
new BeatAction.Action(beat + 1.25f, delegate { isPreparingForBoing = true; }), new BeatAction.Action(beat + 0.50f, delegate { isPreparingForBoing = true; }),
new BeatAction.Action(syllables == 6 ? beat + 1.50 : beat + 1.25, delegate { VultureAnim.DoScaledAnimationAsync("Boing", 0.5f); }), new BeatAction.Action(syllables == 6 ? beat + 1.50 : beat + 1.25, delegate { VultureAnim.DoScaledAnimationAsync("Boing", 0.5f); }),
new BeatAction.Action(syllables == 6 ? beat + 1.75 : beat + 1.50, delegate { canDodge = true; }), new BeatAction.Action(syllables == 6 ? beat + 1.75 : beat + 1.50, delegate { canDodge = true; }),
new BeatAction.Action(beat + 2.00f, delegate { SlapReady(); }), new BeatAction.Action(beat + 2.00f, delegate { SlapReady(); }),
@ -470,8 +518,8 @@ namespace HeavenStudio.Games
{ {
new BeatAction.Action(beat + 0.00f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }), new BeatAction.Action(beat + 0.00f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }),
new BeatAction.Action(beat + 0.50f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }), new BeatAction.Action(beat + 0.50f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }),
new BeatAction.Action(beat + 0.50f, delegate { isPreparingForBoing = true; }),
new BeatAction.Action(beat + 1.00f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }), new BeatAction.Action(beat + 1.00f, delegate { VultureAnim.DoScaledAnimationAsync("Talk", 0.5f); }),
new BeatAction.Action(beat + 1.25f, delegate { isPreparingForBoing = true; }),
new BeatAction.Action(syllables == 6 ? beat + 1.50 : beat + 1.25, delegate { VultureAnim.DoScaledAnimationAsync("Boing", 0.5f); }), new BeatAction.Action(syllables == 6 ? beat + 1.50 : beat + 1.25, delegate { VultureAnim.DoScaledAnimationAsync("Boing", 0.5f); }),
new BeatAction.Action(syllables == 6 ? beat + 1.75 : beat + 1.50, delegate { canDodge = true; }), new BeatAction.Action(syllables == 6 ? beat + 1.75 : beat + 1.50, delegate { canDodge = true; }),
new BeatAction.Action(beat + 2.00f, delegate { SlapReady(); }), new BeatAction.Action(beat + 2.00f, delegate { SlapReady(); }),
@ -520,8 +568,20 @@ namespace HeavenStudio.Games
RavenAnim.DoScaledAnimationAsync("Attack", 0.5f); RavenAnim.DoScaledAnimationAsync("Attack", 0.5f);
VultureAnim.DoScaledAnimationAsync("Damage", 0.5f); VultureAnim.DoScaledAnimationAsync("Damage", 0.5f);
int bubbleAnimation = UnityEngine.Random.Range(0, 2);
DonaiyanenBubble.DoScaledAnimationAsync(bubbleAnimation == 1 ? "DonaiyanenL" : "DonaiyanenR", 0.5f); float randomD = UnityEngine.Random.Range(-40, 41) / 200.0f;
float randomH = UnityEngine.Random.Range(-50, 51) / 30.0f;
float randomV = UnityEngine.Random.Range(40, 81) / 40.0f;
Quaternion rotD = new Quaternion();
rotD.Set(0, 0, randomD, 1);
PivotD.rotation = rotD;
Vector3 posD = new Vector3();
posD.Set(randomH - 1.5f, randomV, 0);
PivotD.position = posD;
DonaiyanenBubble.DoScaledAnimationAsync("Donaiyanen", 0.5f);
} }
public void BoingMiss(PlayerActionEvent caller) public void BoingMiss(PlayerActionEvent caller)
@ -535,7 +595,8 @@ namespace HeavenStudio.Games
public void CustomBoing(double beat) public void CustomBoing(double beat)
{ {
SoundByte.PlayOneShotGame("manzai/Boing", pitch: Conductor.instance.songBpm/98); SoundByte.PlayOneShotGame("manzai/boing", pitch: Conductor.instance.songBpm/98, volume: 0.8f);
SoundByte.PlayOneShotGame("manzai/comedy", pitch: Conductor.instance.songBpm/98, volume: 0.8f);
VultureAnim.DoScaledAnimationAsync("Boing", 0.5f); VultureAnim.DoScaledAnimationAsync("Boing", 0.5f);
} }
@ -650,12 +711,6 @@ namespace HeavenStudio.Games
} }
} }
public void LateUpdate()
{
var rot = PivotL.eulerAngles;
rot.z = 50;
}
public override void OnGameSwitch(double beat) public override void OnGameSwitch(double beat)
{ {
foreach(var entity in GameManager.instance.Beatmap.Entities) foreach(var entity in GameManager.instance.Beatmap.Entities)

View file

@ -287,5 +287,6 @@ MonoBehaviour:
- Assets/Scripts/Games/MonkeyWatch/MonkeyClockArrow.cs - Assets/Scripts/Games/MonkeyWatch/MonkeyClockArrow.cs
- Assets/Scripts/Games/MonkeyWatch/BalloonHandler.cs - Assets/Scripts/Games/MonkeyWatch/BalloonHandler.cs
- Assets/Scripts/Games/MonkeyWatch/WatchMonkey.cs - Assets/Scripts/Games/MonkeyWatch/WatchMonkey.cs
- Assets/Scripts/Games/Manzai/Manzai.cs
PathsToSkipImportEvent: [] PathsToSkipImportEvent: []
PathsToIgnoreOverwriteSettingOnAttribute: [] PathsToIgnoreOverwriteSettingOnAttribute: []