diff --git a/Assets/Resources/Sfx/games/karateman/gogo.ogg.meta b/Assets/Resources/Sfx/games/karateman/gogo.ogg.meta new file mode 100644 index 00000000..d358a789 --- /dev/null +++ b/Assets/Resources/Sfx/games/karateman/gogo.ogg.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 4f5ca5816cffa3445a27fe2ec580f2c7 +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: karate/common + assetBundleVariant: diff --git a/Assets/Resources/Sfx/games/karateman/gogoSwitch.ogg.meta b/Assets/Resources/Sfx/games/karateman/gogoSwitch.ogg.meta new file mode 100644 index 00000000..5a8dd1f9 --- /dev/null +++ b/Assets/Resources/Sfx/games/karateman/gogoSwitch.ogg.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 7b08306b83f77c442806ea0d839727b1 +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: karate/common + assetBundleVariant: diff --git a/Assets/Resources/Sfx/games/karateman/potHit_lowNori.wav.meta b/Assets/Resources/Sfx/games/karateman/potHit_lowNori.wav.meta new file mode 100644 index 00000000..aca65510 --- /dev/null +++ b/Assets/Resources/Sfx/games/karateman/potHit_lowNori.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 1469db15577ce2341a37123d4d49c07a +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: karate/common + assetBundleVariant: diff --git a/Assets/Resources/Sfx/games/karateman/rockHit_fullNori.wav.meta b/Assets/Resources/Sfx/games/karateman/rockHit_fullNori.wav.meta new file mode 100644 index 00000000..42260cb4 --- /dev/null +++ b/Assets/Resources/Sfx/games/karateman/rockHit_fullNori.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 02292b1992c44b14383bfa77534231eb +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: karate/common + assetBundleVariant: diff --git a/Assets/Scripts/Games/KarateMan/KarateManPot.cs b/Assets/Scripts/Games/KarateMan/KarateManPot.cs index a9bb521a..60670a92 100644 --- a/Assets/Scripts/Games/KarateMan/KarateManPot.cs +++ b/Assets/Scripts/Games/KarateMan/KarateManPot.cs @@ -287,8 +287,17 @@ namespace HeavenStudio.Games.Scripts_KarateMan prog = cond.GetPositionFromBeat(startBeat, curveTargetBeat); transform.position = CurrentCurve.GetPoint(Mathf.Min(prog, 1f)); } + + if (type == ItemType.Bomb && cond.songPositionInBeats >= startBeat + 2f) + { + ParticleSystem p = Instantiate(HitParticles[7], transform.position, Quaternion.identity, KarateMan.instance.ItemHolder); + p.Play(); - if (prog >= 2f || (ItemKickable() && prog >= 1f)) { + GameObject.Destroy(ShadowInstance.gameObject); + GameObject.Destroy(gameObject); + return; + } + else if (prog >= 2f || (ItemKickable() && prog >= 1f)) { if (type == ItemType.KickBomb) { ParticleSystem p = Instantiate(HitParticles[7], ItemCurves[6].GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder); @@ -347,7 +356,18 @@ namespace HeavenStudio.Games.Scripts_KarateMan break; case FlyStatus.NG: prog = cond.GetPositionFromBeat(startBeat, curveTargetBeat); - if (cond.songPositionInBeats >= startBeat + Mathf.Max(2f, curveTargetBeat) || (ItemKickable() && prog >= 1f) || CurrentCurve == null) { + + if (type == ItemType.Bomb && cond.songPositionInBeats >= startBeat + curveTargetBeat) + { + KarateMan.instance.Joe.RemoveBombGlow(startBeat + curveTargetBeat, 1f); + ParticleSystem p = Instantiate(HitParticles[7], CurrentCurve.GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder); + p.Play(); + + GameObject.Destroy(ShadowInstance.gameObject); + GameObject.Destroy(gameObject); + return; + } + else if (cond.songPositionInBeats >= startBeat + Mathf.Max(2f, curveTargetBeat) || (ItemKickable() && prog >= 1f) || CurrentCurve == null) { if (type == ItemType.KickBomb) { ParticleSystem p = Instantiate(HitParticles[7], ItemCurves[8].GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder); @@ -371,13 +391,25 @@ namespace HeavenStudio.Games.Scripts_KarateMan break; case FlyStatus.HitWeak: prog = cond.GetPositionFromBeat(startBeat, 1f); - if (cond.songPositionInBeats >= startBeat + 3f) + + Vector3 pos = new Vector3(HitPosition[1].position.x + 0.25f, HitPosition[0].position.y, HitPosition[1].position.z); + if (type == ItemType.Bomb && cond.songPositionInBeats >= startBeat + 1f) + { + KarateMan.instance.Joe.RemoveBombGlow(startBeat + 1f, 1f); + + ParticleSystem p = Instantiate(HitParticles[7], pos, Quaternion.identity, KarateMan.instance.ItemHolder); + p.Play(); + + GameObject.Destroy(ShadowInstance.gameObject); + GameObject.Destroy(gameObject); + return; + } + else if (cond.songPositionInBeats >= startBeat + 3f) { GameObject.Destroy(ShadowInstance.gameObject); GameObject.Destroy(gameObject); return; } - Vector3 pos = new Vector3(HitPosition[1].position.x + 0.25f, HitPosition[0].position.y, HitPosition[1].position.z); if (prog <= 1f) { pos.y = EasingFunction.EaseInCubic(HitPosition[1].position.y, HitPosition[0].position.y, prog); @@ -439,6 +471,9 @@ namespace HeavenStudio.Games.Scripts_KarateMan Jukebox.PlayOneShotGame("karateman/rockHit", forcePlay: true); p = Instantiate(HitParticles[4], HitPosition[1].position, Quaternion.identity, game.ItemHolder); p.Play(); + + if (game.IsNoriActive && game.NoriPerformance >= 1f) + Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true); break; case ItemType.Ball: CurrentCurve = ItemCurves[1]; @@ -455,6 +490,9 @@ namespace HeavenStudio.Games.Scripts_KarateMan p.Play(); game.CreateItemInstance(startBeat + 1f, "Item09", 0, ItemType.CookingLid); GetComponent().Play("Item08", -1, 0); + + if (game.IsNoriActive && game.NoriPerformance >= 1f) + Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true); break; case ItemType.Alien: CurrentCurve = ItemCurves[1]; @@ -462,6 +500,9 @@ namespace HeavenStudio.Games.Scripts_KarateMan Jukebox.PlayOneShotGame("karateman/alienHit", forcePlay: true); p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder); p.Play(); + + if (game.IsNoriActive && game.NoriPerformance >= 1f) + Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true); break; case ItemType.Bomb: CurrentCurve = ItemCurves[1]; @@ -470,6 +511,9 @@ namespace HeavenStudio.Games.Scripts_KarateMan p = Instantiate(HitParticles[2], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder); p.Play(); game.Joe.RemoveBombGlow(startBeat + 1f, 1f); + + if (game.IsNoriActive && game.NoriPerformance >= 1f) + Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true); break; case ItemType.TacoBell: CurrentCurve = ItemCurves[1]; @@ -478,6 +522,9 @@ namespace HeavenStudio.Games.Scripts_KarateMan Jukebox.PlayOneShotGame("karateman/tacobell", forcePlay: true); p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder); p.Play(); + + if (game.IsNoriActive && game.NoriPerformance >= 1f) + Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true); break; case ItemType.ComboPot1: CurrentCurve = ItemCurves[straight ? 1 : 0]; @@ -551,9 +598,16 @@ namespace HeavenStudio.Games.Scripts_KarateMan default: CurrentCurve = ItemCurves[straight ? 1 : 0]; curveTargetBeat = straight ? 1f : 1.5f; - Jukebox.PlayOneShotGame("karateman/potHit", forcePlay: true); + if (game.IsNoriActive && game.NoriPerformance < 0.6f) + { + Jukebox.PlayOneShotGame("karateman/potHit_lowNori", forcePlay: true); + Jukebox.PlayOneShotGame("karateman/potHit", volume: 0.66f, forcePlay: true); + } + else + Jukebox.PlayOneShotGame("karateman/potHit", forcePlay: true); p = Instantiate(HitParticles[3], HitPosition[1].position, Quaternion.identity, game.ItemHolder); p.Play(); + break; } @@ -590,6 +644,21 @@ namespace HeavenStudio.Games.Scripts_KarateMan } } + bool ItemNeedNori() + { + switch (type) + { + case ItemType.Rock: + case ItemType.Cooking: + case ItemType.Alien: + case ItemType.Bomb: + case ItemType.TacoBell: + return true; + default: + return false; + } + } + void JoeComboSequence() { if (GameManager.instance.currentGame != "karateman") return; @@ -683,8 +752,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan else { if (KarateMan.instance.IsNoriActive) { - if ((type == ItemType.Rock || type == ItemType.Cooking || type == ItemType.Alien || type == ItemType.TacoBell) - && KarateMan.instance.NoriPerformance < 0.6f) + if (ItemNeedNori() && KarateMan.instance.NoriPerformance < 0.6f) { CreateHitMark(false); startBeat = Conductor.instance.songPositionInBeats; diff --git a/Assets/StreamingAssets/StreamingAssets b/Assets/StreamingAssets/StreamingAssets index b1eb4096..f933e0fa 100644 Binary files a/Assets/StreamingAssets/StreamingAssets and b/Assets/StreamingAssets/StreamingAssets differ diff --git a/Assets/StreamingAssets/karate/common b/Assets/StreamingAssets/karate/common index 507960a9..63f06ec4 100644 Binary files a/Assets/StreamingAssets/karate/common and b/Assets/StreamingAssets/karate/common differ diff --git a/Assets/StreamingAssets/karate/common.manifest b/Assets/StreamingAssets/karate/common.manifest index 60415f95..d1dbd8e6 100644 --- a/Assets/StreamingAssets/karate/common.manifest +++ b/Assets/StreamingAssets/karate/common.manifest @@ -1,9 +1,9 @@ ManifestFileVersion: 0 -CRC: 934139632 +CRC: 1091441775 Hashes: AssetFileHash: serializedVersion: 2 - Hash: 4cfac5e8dc99494dc00682c7557b48a9 + Hash: f85b652eadac4ff300c579adfa67313b TypeTreeHash: serializedVersion: 2 Hash: 2b92e6f111bbb24dabe3a2c56ea02b28 @@ -91,11 +91,13 @@ Assets: - Assets/Resources/Sprites/Games/KarateMan/anime/item/Item03.anim - Assets/Resources/Sprites/Games/KarateMan/effect/barrelWoodRecolorable.png - Assets/Resources/Sprites/Games/KarateMan/anime/item/Item09.anim +- Assets/Resources/Sfx/games/karateman/gogoSwitch.ogg - Assets/Resources/Sfx/games/karateman/nori_ng.wav - Assets/Resources/Sprites/Games/KarateMan/effect/potStar.png - Assets/Resources/Sprites/Games/KarateMan/effect/kickFragment.png - Assets/Resources/Sfx/games/karateman/swingKick.wav - Assets/Resources/Sprites/Games/KarateMan/effect/barrelWood.png +- Assets/Resources/Sfx/games/karateman/gogo.ogg - Assets/Resources/Sfx/games/karateman/offbeatLightbulbOut.wav - Assets/Resources/Sprites/Games/KarateMan/karate_bg_sunburst_1.png - Assets/Resources/Sprites/Games/KarateMan/anime/karateman/JabNoNuri.anim @@ -134,6 +136,7 @@ Assets: - Assets/Resources/Sprites/Games/KarateMan/anime/word/Word04.anim - Assets/Resources/Sprites/Games/KarateMan/karate_bg_sunburst_2.png - Assets/Resources/Sprites/Games/KarateMan/karateman_nonurijab.mat +- Assets/Resources/Sfx/games/karateman/rockHit_fullNori.wav - Assets/Resources/Sfx/games/karateman/lightbulbOut.ogg - Assets/Resources/Sprites/Games/KarateMan/anime/word/Word06.anim - Assets/Resources/Sprites/Games/KarateMan/anime/item/Item08.anim @@ -166,6 +169,7 @@ Assets: - Assets/Resources/Sprites/Games/KarateMan/effect/karateman_bulbhit_fx_1.png - Assets/Resources/Sprites/Games/KarateMan/karateman_norimapping.mat - Assets/Resources/Sprites/Games/KarateMan/anime/karateman/UpperCut.anim +- Assets/Resources/Sfx/games/karateman/potHit_lowNori.wav - Assets/Resources/Sprites/Games/KarateMan/anime/item/HitMark.controller - Assets/Resources/Sfx/games/karateman/lightbulbHit.ogg - Assets/Resources/Sprites/Games/KarateMan/effect/krt_pot.mat