improve interaction with some karate man obejcts

- update Crop Stomp atlas
This commit is contained in:
minenice55 2022-08-18 12:12:02 -04:00
parent 3bbeb71498
commit e269855490
14 changed files with 169 additions and 9 deletions

Binary file not shown.

View file

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

Binary file not shown.

View file

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

View file

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

View file

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

View file

@ -288,7 +288,16 @@ namespace HeavenStudio.Games.Scripts_KarateMan
transform.position = CurrentCurve.GetPoint(Mathf.Min(prog, 1f)); transform.position = CurrentCurve.GetPoint(Mathf.Min(prog, 1f));
} }
if (prog >= 2f || (ItemKickable() && prog >= 1f)) { if (type == ItemType.Bomb && cond.songPositionInBeats >= startBeat + 2f)
{
ParticleSystem p = Instantiate(HitParticles[7], transform.position, Quaternion.identity, KarateMan.instance.ItemHolder);
p.Play();
GameObject.Destroy(ShadowInstance.gameObject);
GameObject.Destroy(gameObject);
return;
}
else if (prog >= 2f || (ItemKickable() && prog >= 1f)) {
if (type == ItemType.KickBomb) if (type == ItemType.KickBomb)
{ {
ParticleSystem p = Instantiate(HitParticles[7], ItemCurves[6].GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder); ParticleSystem p = Instantiate(HitParticles[7], ItemCurves[6].GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder);
@ -347,7 +356,18 @@ namespace HeavenStudio.Games.Scripts_KarateMan
break; break;
case FlyStatus.NG: case FlyStatus.NG:
prog = cond.GetPositionFromBeat(startBeat, curveTargetBeat); 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) if (type == ItemType.KickBomb)
{ {
ParticleSystem p = Instantiate(HitParticles[7], ItemCurves[8].GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder); ParticleSystem p = Instantiate(HitParticles[7], ItemCurves[8].GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder);
@ -371,13 +391,25 @@ namespace HeavenStudio.Games.Scripts_KarateMan
break; break;
case FlyStatus.HitWeak: case FlyStatus.HitWeak:
prog = cond.GetPositionFromBeat(startBeat, 1f); 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(ShadowInstance.gameObject);
GameObject.Destroy(gameObject); GameObject.Destroy(gameObject);
return; return;
} }
Vector3 pos = new Vector3(HitPosition[1].position.x + 0.25f, HitPosition[0].position.y, HitPosition[1].position.z);
if (prog <= 1f) if (prog <= 1f)
{ {
pos.y = EasingFunction.EaseInCubic(HitPosition[1].position.y, HitPosition[0].position.y, prog); 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); Jukebox.PlayOneShotGame("karateman/rockHit", forcePlay: true);
p = Instantiate(HitParticles[4], HitPosition[1].position, Quaternion.identity, game.ItemHolder); p = Instantiate(HitParticles[4], HitPosition[1].position, Quaternion.identity, game.ItemHolder);
p.Play(); p.Play();
if (game.IsNoriActive && game.NoriPerformance >= 1f)
Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
break; break;
case ItemType.Ball: case ItemType.Ball:
CurrentCurve = ItemCurves[1]; CurrentCurve = ItemCurves[1];
@ -455,6 +490,9 @@ namespace HeavenStudio.Games.Scripts_KarateMan
p.Play(); p.Play();
game.CreateItemInstance(startBeat + 1f, "Item09", 0, ItemType.CookingLid); game.CreateItemInstance(startBeat + 1f, "Item09", 0, ItemType.CookingLid);
GetComponent<Animator>().Play("Item08", -1, 0); GetComponent<Animator>().Play("Item08", -1, 0);
if (game.IsNoriActive && game.NoriPerformance >= 1f)
Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
break; break;
case ItemType.Alien: case ItemType.Alien:
CurrentCurve = ItemCurves[1]; CurrentCurve = ItemCurves[1];
@ -462,6 +500,9 @@ namespace HeavenStudio.Games.Scripts_KarateMan
Jukebox.PlayOneShotGame("karateman/alienHit", forcePlay: true); 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 = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
p.Play(); p.Play();
if (game.IsNoriActive && game.NoriPerformance >= 1f)
Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
break; break;
case ItemType.Bomb: case ItemType.Bomb:
CurrentCurve = ItemCurves[1]; 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 = Instantiate(HitParticles[2], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
p.Play(); p.Play();
game.Joe.RemoveBombGlow(startBeat + 1f, 1f); game.Joe.RemoveBombGlow(startBeat + 1f, 1f);
if (game.IsNoriActive && game.NoriPerformance >= 1f)
Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
break; break;
case ItemType.TacoBell: case ItemType.TacoBell:
CurrentCurve = ItemCurves[1]; CurrentCurve = ItemCurves[1];
@ -478,6 +522,9 @@ namespace HeavenStudio.Games.Scripts_KarateMan
Jukebox.PlayOneShotGame("karateman/tacobell", forcePlay: true); 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 = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
p.Play(); p.Play();
if (game.IsNoriActive && game.NoriPerformance >= 1f)
Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true);
break; break;
case ItemType.ComboPot1: case ItemType.ComboPot1:
CurrentCurve = ItemCurves[straight ? 1 : 0]; CurrentCurve = ItemCurves[straight ? 1 : 0];
@ -551,9 +598,16 @@ namespace HeavenStudio.Games.Scripts_KarateMan
default: default:
CurrentCurve = ItemCurves[straight ? 1 : 0]; CurrentCurve = ItemCurves[straight ? 1 : 0];
curveTargetBeat = straight ? 1f : 1.5f; curveTargetBeat = straight ? 1f : 1.5f;
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); Jukebox.PlayOneShotGame("karateman/potHit", forcePlay: true);
p = Instantiate(HitParticles[3], HitPosition[1].position, Quaternion.identity, game.ItemHolder); p = Instantiate(HitParticles[3], HitPosition[1].position, Quaternion.identity, game.ItemHolder);
p.Play(); p.Play();
break; 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() void JoeComboSequence()
{ {
if (GameManager.instance.currentGame != "karateman") return; if (GameManager.instance.currentGame != "karateman") return;
@ -683,8 +752,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
else { else {
if (KarateMan.instance.IsNoriActive) if (KarateMan.instance.IsNoriActive)
{ {
if ((type == ItemType.Rock || type == ItemType.Cooking || type == ItemType.Alien || type == ItemType.TacoBell) if (ItemNeedNori() && KarateMan.instance.NoriPerformance < 0.6f)
&& KarateMan.instance.NoriPerformance < 0.6f)
{ {
CreateHitMark(false); CreateHitMark(false);
startBeat = Conductor.instance.songPositionInBeats; startBeat = Conductor.instance.songPositionInBeats;

Binary file not shown.

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 934139632 CRC: 1091441775
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: 4cfac5e8dc99494dc00682c7557b48a9 Hash: f85b652eadac4ff300c579adfa67313b
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 2b92e6f111bbb24dabe3a2c56ea02b28 Hash: 2b92e6f111bbb24dabe3a2c56ea02b28
@ -91,11 +91,13 @@ Assets:
- Assets/Resources/Sprites/Games/KarateMan/anime/item/Item03.anim - Assets/Resources/Sprites/Games/KarateMan/anime/item/Item03.anim
- Assets/Resources/Sprites/Games/KarateMan/effect/barrelWoodRecolorable.png - Assets/Resources/Sprites/Games/KarateMan/effect/barrelWoodRecolorable.png
- Assets/Resources/Sprites/Games/KarateMan/anime/item/Item09.anim - 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/Sfx/games/karateman/nori_ng.wav
- Assets/Resources/Sprites/Games/KarateMan/effect/potStar.png - Assets/Resources/Sprites/Games/KarateMan/effect/potStar.png
- Assets/Resources/Sprites/Games/KarateMan/effect/kickFragment.png - Assets/Resources/Sprites/Games/KarateMan/effect/kickFragment.png
- Assets/Resources/Sfx/games/karateman/swingKick.wav - Assets/Resources/Sfx/games/karateman/swingKick.wav
- Assets/Resources/Sprites/Games/KarateMan/effect/barrelWood.png - Assets/Resources/Sprites/Games/KarateMan/effect/barrelWood.png
- Assets/Resources/Sfx/games/karateman/gogo.ogg
- Assets/Resources/Sfx/games/karateman/offbeatLightbulbOut.wav - Assets/Resources/Sfx/games/karateman/offbeatLightbulbOut.wav
- Assets/Resources/Sprites/Games/KarateMan/karate_bg_sunburst_1.png - Assets/Resources/Sprites/Games/KarateMan/karate_bg_sunburst_1.png
- Assets/Resources/Sprites/Games/KarateMan/anime/karateman/JabNoNuri.anim - 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/anime/word/Word04.anim
- Assets/Resources/Sprites/Games/KarateMan/karate_bg_sunburst_2.png - Assets/Resources/Sprites/Games/KarateMan/karate_bg_sunburst_2.png
- Assets/Resources/Sprites/Games/KarateMan/karateman_nonurijab.mat - 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/Sfx/games/karateman/lightbulbOut.ogg
- Assets/Resources/Sprites/Games/KarateMan/anime/word/Word06.anim - Assets/Resources/Sprites/Games/KarateMan/anime/word/Word06.anim
- Assets/Resources/Sprites/Games/KarateMan/anime/item/Item08.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/effect/karateman_bulbhit_fx_1.png
- Assets/Resources/Sprites/Games/KarateMan/karateman_norimapping.mat - Assets/Resources/Sprites/Games/KarateMan/karateman_norimapping.mat
- Assets/Resources/Sprites/Games/KarateMan/anime/karateman/UpperCut.anim - 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/Sprites/Games/KarateMan/anime/item/HitMark.controller
- Assets/Resources/Sfx/games/karateman/lightbulbHit.ogg - Assets/Resources/Sfx/games/karateman/lightbulbHit.ogg
- Assets/Resources/Sprites/Games/KarateMan/effect/krt_pot.mat - Assets/Resources/Sprites/Games/KarateMan/effect/krt_pot.mat