More space soccer crap, like fixing some animations

This commit is contained in:
Braedon 2022-01-24 20:02:45 -05:00
parent 0c51d8fd77
commit 8a42130953
21 changed files with 324 additions and 117 deletions

View File

@ -17667,6 +17667,7 @@ MonoBehaviour:
- {fileID: -3530312539838775474, guid: 868cd67f05ca7c646bae00fcc2ba7eaa, type: 3} - {fileID: -3530312539838775474, guid: 868cd67f05ca7c646bae00fcc2ba7eaa, type: 3}
- {fileID: 8671423413994339737, guid: 868cd67f05ca7c646bae00fcc2ba7eaa, type: 3} - {fileID: 8671423413994339737, guid: 868cd67f05ca7c646bae00fcc2ba7eaa, type: 3}
- {fileID: -6341196331951941137, guid: 868cd67f05ca7c646bae00fcc2ba7eaa, type: 3} - {fileID: -6341196331951941137, guid: 868cd67f05ca7c646bae00fcc2ba7eaa, type: 3}
- {fileID: -6283416824598814145, guid: 868cd67f05ca7c646bae00fcc2ba7eaa, type: 3}
BarrelSprites: BarrelSprites:
- {fileID: 6524922379630696755, guid: 868cd67f05ca7c646bae00fcc2ba7eaa, type: 3} - {fileID: 6524922379630696755, guid: 868cd67f05ca7c646bae00fcc2ba7eaa, type: 3}
- {fileID: 1156572009758090512, guid: 868cd67f05ca7c646bae00fcc2ba7eaa, type: 3} - {fileID: 1156572009758090512, guid: 868cd67f05ca7c646bae00fcc2ba7eaa, type: 3}

Binary file not shown.

View File

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: f2b3061e6e227594f84e1cc5865e6812
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:

Binary file not shown.

View File

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 9a14d75a07f004e43b614c917e0ec699
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:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 MiB

After

Width:  |  Height:  |  Size: 5.9 MiB

View File

@ -212,6 +212,9 @@ TextureImporter:
- first: - first:
213: 7115452968192417703 213: 7115452968192417703
second: karateman_num_grr second: karateman_num_grr
- first:
213: -6283416824598814145
second: karateman_tacobell
externalObjects: {} externalObjects: {}
serializedVersion: 11 serializedVersion: 11
mipmaps: mipmaps:
@ -1824,6 +1827,27 @@ TextureImporter:
indices: indices:
edges: [] edges: []
weights: [] weights: []
- serializedVersion: 2
name: karateman_tacobell
rect:
serializedVersion: 2
x: 3496
y: 1932
width: 280
height: 280
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: f32231260b1dcc8a0800000000000000
internalID: -6283416824598814145
vertices: []
indices:
edges: []
weights: []
outline: [] outline: []
physicsShape: [] physicsShape: []
bones: [] bones: []

View File

@ -259,20 +259,6 @@ AnimationClip:
value: {fileID: 21300000, guid: 1fe4261905c3db044bae2465796e755d, type: 3} value: {fileID: 21300000, guid: 1fe4261905c3db044bae2465796e755d, type: 3}
- time: 0.26666668 - time: 0.26666668
value: {fileID: 21300000, guid: 919e28b312e63da4aa2eaa0362a456e7, type: 3} value: {fileID: 21300000, guid: 919e28b312e63da4aa2eaa0362a456e7, type: 3}
- time: 0.28333333
value: {fileID: 21300000, guid: 2b5456868cbde2641b88b335d89e57db, type: 3}
- time: 0.3
value: {fileID: 21300000, guid: 173589b13bcf3a548b3dbab0ec8afef8, type: 3}
- time: 0.31666666
value: {fileID: 21300000, guid: b5c6bb0e9ae54444eb18629ef876e160, type: 3}
- time: 0.33333334
value: {fileID: 21300000, guid: 23912ac2b6744f84297edd6d0e1aea51, type: 3}
- time: 0.35
value: {fileID: 21300000, guid: b0bb051290046d8419dc4fd2f13d5f2f, type: 3}
- time: 0.36666667
value: {fileID: 21300000, guid: c3d92d250892df44583a48c37e158f46, type: 3}
- time: 0.38333333
value: {fileID: 21300000, guid: 13c2f5dd43b1d2b45a477b38df2d9e6d, type: 3}
attribute: m_Sprite attribute: m_Sprite
path: Square (3) path: Square (3)
classID: 212 classID: 212
@ -382,13 +368,6 @@ AnimationClip:
- {fileID: 21300000, guid: 061c7ba18db217d4caa2b997934e8e5f, type: 3} - {fileID: 21300000, guid: 061c7ba18db217d4caa2b997934e8e5f, type: 3}
- {fileID: 21300000, guid: 1fe4261905c3db044bae2465796e755d, type: 3} - {fileID: 21300000, guid: 1fe4261905c3db044bae2465796e755d, type: 3}
- {fileID: 21300000, guid: 919e28b312e63da4aa2eaa0362a456e7, type: 3} - {fileID: 21300000, guid: 919e28b312e63da4aa2eaa0362a456e7, type: 3}
- {fileID: 21300000, guid: 2b5456868cbde2641b88b335d89e57db, type: 3}
- {fileID: 21300000, guid: 173589b13bcf3a548b3dbab0ec8afef8, type: 3}
- {fileID: 21300000, guid: b5c6bb0e9ae54444eb18629ef876e160, type: 3}
- {fileID: 21300000, guid: 23912ac2b6744f84297edd6d0e1aea51, type: 3}
- {fileID: 21300000, guid: b0bb051290046d8419dc4fd2f13d5f2f, type: 3}
- {fileID: 21300000, guid: c3d92d250892df44583a48c37e158f46, type: 3}
- {fileID: 21300000, guid: 13c2f5dd43b1d2b45a477b38df2d9e6d, type: 3}
- {fileID: 434938072123433104, guid: ed47c3fa4e916ff478c0f1b6fb057aa4, type: 3} - {fileID: 434938072123433104, guid: ed47c3fa4e916ff478c0f1b6fb057aa4, type: 3}
- {fileID: 4331073688640613404, guid: ed47c3fa4e916ff478c0f1b6fb057aa4, type: 3} - {fileID: 4331073688640613404, guid: ed47c3fa4e916ff478c0f1b6fb057aa4, type: 3}
- {fileID: 569701050227369887, guid: ed47c3fa4e916ff478c0f1b6fb057aa4, type: 3} - {fileID: 569701050227369887, guid: ed47c3fa4e916ff478c0f1b6fb057aa4, type: 3}
@ -398,7 +377,7 @@ AnimationClip:
m_AdditiveReferencePoseClip: {fileID: 0} m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0 m_AdditiveReferencePoseTime: 0
m_StartTime: 0 m_StartTime: 0
m_StopTime: 0.4 m_StopTime: 0.28333336
m_OrientationOffsetY: 0 m_OrientationOffsetY: 0
m_Level: 0 m_Level: 0
m_CycleOffset: 0 m_CycleOffset: 0

View File

@ -241,10 +241,6 @@ AnimationClip:
value: {fileID: 21300000, guid: 5f2ae6b9b25e45c468fea9b30b311122, type: 3} value: {fileID: 21300000, guid: 5f2ae6b9b25e45c468fea9b30b311122, type: 3}
- time: 0.26666668 - time: 0.26666668
value: {fileID: 21300000, guid: 000f8ff15f9083a4886ceb8f7d67ce23, type: 3} value: {fileID: 21300000, guid: 000f8ff15f9083a4886ceb8f7d67ce23, type: 3}
- time: 0.28333333
value: {fileID: 21300000, guid: ce1d7ec314cf6544c87cebb1683597ba, type: 3}
- time: 0.3
value: {fileID: 21300000, guid: 5625d0e9805faac4b9dd09758cd48170, type: 3}
attribute: m_Sprite attribute: m_Sprite
path: Square (3) path: Square (3)
classID: 212 classID: 212
@ -368,8 +364,6 @@ AnimationClip:
- {fileID: 21300000, guid: 8ae4bb3e4cce9804686b0e0756f52cbc, type: 3} - {fileID: 21300000, guid: 8ae4bb3e4cce9804686b0e0756f52cbc, type: 3}
- {fileID: 21300000, guid: 5f2ae6b9b25e45c468fea9b30b311122, type: 3} - {fileID: 21300000, guid: 5f2ae6b9b25e45c468fea9b30b311122, type: 3}
- {fileID: 21300000, guid: 000f8ff15f9083a4886ceb8f7d67ce23, type: 3} - {fileID: 21300000, guid: 000f8ff15f9083a4886ceb8f7d67ce23, type: 3}
- {fileID: 21300000, guid: ce1d7ec314cf6544c87cebb1683597ba, type: 3}
- {fileID: 21300000, guid: 5625d0e9805faac4b9dd09758cd48170, type: 3}
- {fileID: -4756013695868691969, guid: ed47c3fa4e916ff478c0f1b6fb057aa4, type: 3} - {fileID: -4756013695868691969, guid: ed47c3fa4e916ff478c0f1b6fb057aa4, type: 3}
- {fileID: -4339478730206458095, guid: ed47c3fa4e916ff478c0f1b6fb057aa4, type: 3} - {fileID: -4339478730206458095, guid: ed47c3fa4e916ff478c0f1b6fb057aa4, type: 3}
- {fileID: 2914744087563887584, guid: ed47c3fa4e916ff478c0f1b6fb057aa4, type: 3} - {fileID: 2914744087563887584, guid: ed47c3fa4e916ff478c0f1b6fb057aa4, type: 3}
@ -383,7 +377,7 @@ AnimationClip:
m_AdditiveReferencePoseClip: {fileID: 0} m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0 m_AdditiveReferencePoseTime: 0
m_StartTime: 0 m_StartTime: 0
m_StopTime: 0.3166667 m_StopTime: 0.28333336
m_OrientationOffsetY: 0 m_OrientationOffsetY: 0
m_Level: 0 m_Level: 0
m_CycleOffset: 0 m_CycleOffset: 0

View File

@ -5977,7 +5977,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 0.7455157, g: 0.4481132, b: 1, a: 1} m_Color: {r: 0.7411765, g: 0.54901963, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1 m_Maskable: 1
@ -7843,7 +7843,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 0.4470588, g: 0.60128987, b: 1, a: 1} m_Color: {r: 1, g: 0.84705883, b: 0, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1 m_Maskable: 1

View File

@ -44,7 +44,7 @@ namespace RhythmHeavenMania
private void Awake() private void Awake()
{ {
// autoplay = true; autoplay = true;
instance = this; instance = this;
} }

View File

@ -255,7 +255,7 @@ namespace RhythmHeavenMania.Games.KarateMan
} }
else else
{ {
if (p.type == 2 || p.type == 3 || p.type == 4) if (p.type == 2 || p.type == 3 || p.type == 4 || p.type == 6)
{ {
punchLeft = false; punchLeft = false;
} }

View File

@ -133,6 +133,10 @@ namespace RhythmHeavenMania.Games.KarateMan
new MultiSound.Sound("karateman/punchKick4", beat + 2.25f) new MultiSound.Sound("karateman/punchKick4", beat + 2.25f)
}); });
break; break;
case 6:
outSnd = "karateman/objectOut";
p.hitSnd = "karateman/tacobell";
break;
} }
p.endShadowThrowPos = new Vector2(-1.036f, -2.822f); p.endShadowThrowPos = new Vector2(-1.036f, -2.822f);

View File

@ -7,7 +7,7 @@ using RhythmHeavenMania.Util;
namespace RhythmHeavenMania.Games.SpaceSoccer namespace RhythmHeavenMania.Games.SpaceSoccer
{ {
public class Ball : PlayerActionObject public class Ball : MonoBehaviour
{ {
[Header("Components")] [Header("Components")]
[SerializeField] private Kicker kicker; [SerializeField] private Kicker kicker;
@ -25,36 +25,27 @@ namespace RhythmHeavenMania.Games.SpaceSoccer
public int hitTimes; public int hitTimes;
private float lastSpriteRot; private float lastSpriteRot;
public bool canKick; public bool canKick;
private GameEvent kicked = new GameEvent(); public GameEvent kicked = new GameEvent();
private GameEvent highKicked = new GameEvent(); public GameEvent highKicked = new GameEvent();
private GameEvent toe = new GameEvent(); public GameEvent toe = new GameEvent();
private bool kickPrepare = false; private bool lastKickLeft;
private void Start()
{
PlayerActionInit(this.gameObject, dispensedBeat);
}
public override void OnAce()
{
kicker.Kick(this);
}
public void Kick() public void Kick()
{ {
Jukebox.PlayOneShotGame("spaceSoccer/ballHit"); Jukebox.PlayOneShotGame("spaceSoccer/ballHit");
kicker.Kick(this);
lastSpriteRot = spriteHolder.transform.eulerAngles.z;
dispensing = false; dispensing = false;
kicked.enabled = true; kicked.enabled = true;
kicked.startBeat = Conductor.instance.songPositionInBeats; kicked.startBeat = Conductor.instance.songPositionInBeats;
// kicked.startBeat = dispensedBeat + 2 + hitTimes; // kicked.startBeat = dispensedBeat + 2 + hitTimes;
lastSpriteRot = spriteHolder.transform.eulerAngles.z;
hitTimes++; hitTimes++;
if (hitTimes % 2 == 0) lastKickLeft = kicker.kickLeft;
if (kicker.kickLeft)
{ {
kickCurve.transform.localScale = new Vector3(-1, 1); kickCurve.transform.localScale = new Vector3(-1, 1);
} }
@ -63,78 +54,63 @@ namespace RhythmHeavenMania.Games.SpaceSoccer
kickCurve.transform.localScale = new Vector3(1, 1); kickCurve.transform.localScale = new Vector3(1, 1);
} }
kickCurve.KeyPoints[0].transform.position = holder.transform.position; kickCurve.KeyPoints[0].transform.position = holder.transform.position;
ResetState();
} }
public void HighKick() public void HighKick()
{ {
Jukebox.PlayOneShotGame("spaceSoccer/highkicktoe1_hit");
lastSpriteRot = spriteHolder.transform.eulerAngles.z; lastSpriteRot = spriteHolder.transform.eulerAngles.z;
dispensing = false;
kicked.enabled = false; kicked.enabled = false;
highKicked.enabled = true; highKicked.enabled = true;
highKicked.startBeat = Conductor.instance.songPositionInBeats; highKicked.startBeat = Conductor.instance.songPositionInBeats;
highKickCurve.KeyPoints[0].transform.position = holder.transform.position; highKickCurve.KeyPoints[0].transform.position = holder.transform.position;
ResetState();
} }
public void Toe() public void Toe()
{ {
Jukebox.PlayOneShotGame("spaceSoccer/highkicktoe3_hit");
lastSpriteRot = spriteHolder.transform.eulerAngles.z; lastSpriteRot = spriteHolder.transform.eulerAngles.z;
highKicked.enabled = false; highKicked.enabled = false;
kicked.enabled = false; kicked.enabled = false;
kickPrepare = false;
toe.enabled = true; toe.enabled = true;
toe.startBeat = Conductor.instance.songPositionInBeats; toe.startBeat = Conductor.instance.songPositionInBeats;
toeCurve.KeyPoints[0].transform.position = holder.transform.position; toeCurve.KeyPoints[0].transform.position = holder.transform.position;
ResetState();
} }
private void Update() private void Update()
{ {
if (dispensing) if (dispensing)
{ {
float normalizedBeatAnim = Conductor.instance.GetLoopPositionFromBeat(dispensedBeat, 2.5f); float normalizedBeatAnim = Conductor.instance.GetLoopPositionFromBeat(dispensedBeat, 2.5f);
holder.transform.position = dispenseCurve.GetPoint(normalizedBeatAnim); holder.transform.position = dispenseCurve.GetPoint(normalizedBeatAnim);
spriteHolder.transform.eulerAngles = new Vector3(0, 0, Mathf.Lerp(0f, -1440f, normalizedBeatAnim)); spriteHolder.transform.eulerAngles = new Vector3(0, 0, Mathf.Lerp(0f, -1440f, normalizedBeatAnim));
float normalizedBeat = Conductor.instance.GetLoopPositionFromBeat(dispensedBeat, 2f); /*if (PlayerInput.Pressed())
StateCheck(normalizedBeat);
if (PlayerInput.Pressed())
{ {
if (state.perfect) if (state.perfect)
{ {
Kick(); Kick();
} }
} }*/
} }
else if (kicked.enabled) else if (kicked.enabled)
{ {
float normalizedBeatAnim = Conductor.instance.GetLoopPositionFromBeat(kicked.startBeat, 1.5f); float normalizedBeatAnim = Conductor.instance.GetLoopPositionFromBeat(kicked.startBeat, 1.5f);
holder.transform.position = kickCurve.GetPoint(normalizedBeatAnim); holder.transform.position = kickCurve.GetPoint(normalizedBeatAnim);
if (hitTimes % 2 == 0) if (!lastKickLeft)
{
spriteHolder.transform.eulerAngles = new Vector3(0, 0, Mathf.Lerp(lastSpriteRot, lastSpriteRot + 360f, normalizedBeatAnim));
}
else
{ {
spriteHolder.transform.eulerAngles = new Vector3(0, 0, Mathf.Lerp(lastSpriteRot, lastSpriteRot - 360f, normalizedBeatAnim)); spriteHolder.transform.eulerAngles = new Vector3(0, 0, Mathf.Lerp(lastSpriteRot, lastSpriteRot - 360f, normalizedBeatAnim));
} }
else
{
spriteHolder.transform.eulerAngles = new Vector3(0, 0, Mathf.Lerp(lastSpriteRot, lastSpriteRot + 360f, normalizedBeatAnim));
}
float normalizedBeat = Conductor.instance.GetLoopPositionFromBeat(kicked.startBeat, 1f); /*if (PlayerInput.Pressed())
StateCheck(normalizedBeat);
if (PlayerInput.Pressed())
{ {
if (state.perfect) if (state.perfect)
{ {
@ -148,7 +124,7 @@ namespace RhythmHeavenMania.Games.SpaceSoccer
} }
// print(normalizedBeat); // print(normalizedBeat);
} }
} }*/
} }
else if (highKicked.enabled) else if (highKicked.enabled)
{ {
@ -156,11 +132,9 @@ namespace RhythmHeavenMania.Games.SpaceSoccer
holder.transform.position = highKickCurve.GetPoint(normalizedBeatAnim); holder.transform.position = highKickCurve.GetPoint(normalizedBeatAnim);
spriteHolder.transform.eulerAngles = new Vector3(0, 0, Mathf.Lerp(lastSpriteRot, -460f, normalizedBeatAnim)); spriteHolder.transform.eulerAngles = new Vector3(0, 0, Mathf.Lerp(lastSpriteRot, -460f, normalizedBeatAnim));
float normalizedBeat = Conductor.instance.GetLoopPositionFromBeat(highKicked.startBeat, 1.5f);
StateCheck(normalizedBeat);
// if (state.perfect) Debug.Break(); // if (state.perfect) Debug.Break();
if (PlayerInput.Pressed()) /*if (PlayerInput.Pressed())
{ {
kickPrepare = true; kickPrepare = true;
kicker.Kick(this); kicker.Kick(this);
@ -174,14 +148,13 @@ namespace RhythmHeavenMania.Games.SpaceSoccer
Toe(); Toe();
} }
} }
} }*/
} }
else if (toe.enabled) else if (toe.enabled)
{ {
float normalizedBeatAnim = Conductor.instance.GetLoopPositionFromBeat(toe.startBeat, 1.85f); float normalizedBeatAnim = Conductor.instance.GetLoopPositionFromBeat(toe.startBeat, 1.85f);
holder.transform.position = toeCurve.GetPoint(normalizedBeatAnim); holder.transform.position = toeCurve.GetPoint(normalizedBeatAnim);
spriteHolder.transform.eulerAngles = new Vector3(0, 0, Mathf.Lerp(lastSpriteRot, -860f, normalizedBeatAnim)); spriteHolder.transform.eulerAngles = new Vector3(0, 0, Mathf.Lerp(lastSpriteRot, -860f, normalizedBeatAnim));
} }
} }
} }

View File

@ -6,56 +6,241 @@ using RhythmHeavenMania.Util;
namespace RhythmHeavenMania.Games.SpaceSoccer namespace RhythmHeavenMania.Games.SpaceSoccer
{ {
public class Kicker : MonoBehaviour public class Kicker : PlayerActionObject
{ {
private GameEvent kickEvents = new GameEvent();
[Header("Properties")] [Header("Properties")]
public bool canKick; public bool canKick;
public bool canHighKick; public bool canHighKick;
private bool kickPrepare = false;
public bool kickLeft;
public float dispenserBeat;
public int kickTimes = 0;
[Header("Components")] [Header("Components")]
private Animator anim; private Animator anim;
public Ball ball;
private void Start() private void Start()
{ {
anim = GetComponent<Animator>(); anim = GetComponent<Animator>();
} }
public void KeepUp(float beat, float length) public override void OnAce()
{ {
kickEvents.startBeat = beat; if (ball.highKicked.enabled)
kickEvents.length = length;
}
public void Kick(Ball b)
{
if (b.hitTimes % 2 == 0)
{ {
anim.Play("KickRight", 0, 0); if (!kickPrepare)
{
Kick(false, true);
}
else
{
Toe(true);
}
} }
else else
{ {
anim.Play("KickLeft", 0, 0); if (canHighKick)
{
HighKick(true);
}
else
{
Kick(true);
}
} }
Jukebox.PlayOneShotGame("spaceSoccer/kick");
} }
public void HighKick(float beat) public void Kick(bool hit, bool highKick = false)
{ {
canHighKick = true; kickTimes++;
// Jukebox.PlayOneShotGame("spaceSoccer/highKickToe1");
if (kickLeft)
{
anim.Play("KickLeft", 0, 0);
}
else
{
anim.Play("KickRight", 0, 0);
}
if (highKick == false)
{
ball.Kick();
}
else
{
kickPrepare = true;
}
Jukebox.PlayOneShotGame("spaceSoccer/kick");
ResetState();
}
public void HighKick(bool hit)
{
if (hit)
{
Jukebox.PlayOneShotGame("spaceSoccer/highkicktoe1_hit");
}
else
{
Jukebox.PlayOneShotGame("spaceSoccer/highkicktoe1");
}
ball.HighKick();
ResetState();
}
public void Toe(bool hit)
{
if (hit)
{
Jukebox.PlayOneShotGame("spaceSoccer/highkicktoe3_hit");
}
else
{
Jukebox.PlayOneShotGame("spaceSoccer/highkicktoe3");
}
ball.Toe();
kickPrepare = false;
ResetState();
} }
private void Update() private void Update()
{ {
if (Conductor.instance.songPositionInBeats >= kickEvents.startBeat && Conductor.instance.songPositionInBeats < kickEvents.startBeat + kickEvents.length) if (kickTimes % 2 == 0)
{ {
canKick = true; kickLeft = false;
} }
else else
{ {
canKick = false; kickLeft = true;
}
List<Beatmap.Entity> keepUps = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "spaceSoccer/keep-up");
List<Beatmap.Entity> highKicks = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "spaceSoccer/high kick-toe!");
for (int i = 0; i < keepUps.Count; i++)
{
if ((keepUps[i].beat - 0.15f) <= Conductor.instance.songPositionInBeats && (keepUps[i].beat + keepUps[i].length) - 0.15f > Conductor.instance.songPositionInBeats)
{
canKick = true;
canHighKick = false;
break;
}
else
{
canKick = false;
}
}
for (int i = 0; i < highKicks.Count; i++)
{
if ((highKicks[i].beat - 0.15f) <= Conductor.instance.songPositionInBeats && highKicks[i].beat + 1f > Conductor.instance.songPositionInBeats)
{
canHighKick = true;
canKick = false;
break;
}
else
{
canHighKick = false;
}
}
if (ball)
{
if (ball.dispensing)
{
float normalizedBeat = Conductor.instance.GetLoopPositionFromBeat(ball.dispensedBeat, 2f);
StateCheck(normalizedBeat);
CheckIfFall(normalizedBeat);
if (PlayerInput.Pressed())
{
if (state.perfect)
{
KickCheck();
}
}
}
else if (ball.kicked.enabled)
{
float normalizedBeat = Conductor.instance.GetLoopPositionFromBeat(ball.kicked.startBeat, 1f);
StateCheck(normalizedBeat);
CheckIfFall(normalizedBeat);
if (PlayerInput.Pressed())
{
if (state.perfect)
{
KickCheck();
}
}
}
else if (ball.highKicked.enabled)
{
float normalizedBeat = Conductor.instance.GetLoopPositionFromBeat(ball.highKicked.startBeat, 1.5f);
if (!kickPrepare)
{
float normalizedBeatPrepare = Conductor.instance.GetLoopPositionFromBeat(ball.highKicked.startBeat, 1f);
StateCheck(normalizedBeatPrepare);
CheckIfFall(normalizedBeat);
if (PlayerInput.Pressed())
{
Kick(false, true);
}
}
else
{
StateCheck(normalizedBeat);
if (PlayerInput.PressedUp())
{
if (state.perfect)
{
Toe(true);
}
}
}
}
else if (ball.toe.enabled)
{
float normalizedBeat = Conductor.instance.GetLoopPositionFromBeat(ball.toe.startBeat, 1.5f);
StateCheck(normalizedBeat);
CheckIfFall(normalizedBeat);
if (PlayerInput.Pressed())
{
if (state.perfect)
{
KickCheck();
}
}
}
}
if (PlayerInput.Pressed())
{
// Kick(false);
}
}
private void KickCheck()
{
if (canHighKick)
{
HighKick(true);
}
else if (canKick)
{
Kick(true);
}
}
private void CheckIfFall(float normalizedBeat)
{
if (normalizedBeat > 1.45f)
{
ball = null;
ResetState();
} }
} }
} }

View File

@ -31,12 +31,16 @@ namespace RhythmHeavenMania.Games.SpaceSoccer
public void Dispense(float beat) public void Dispense(float beat)
{ {
if (kicker.ball != null) return;
ballDispensed = true; ballDispensed = true;
GameObject ball = Instantiate(ballRef, this.transform); GameObject ball = Instantiate(ballRef, this.transform);
Ball ball_ = ball.GetComponent<Ball>(); Ball ball_ = ball.GetComponent<Ball>();
ball_.dispensedBeat = beat; ball_.dispensedBeat = beat;
ball_.dispensing = true; ball_.dispensing = true;
kicker.ball = ball_;
kicker.dispenserBeat = beat;
kicker.kickTimes = 0;
MultiSound.Play(new MultiSound.Sound[] MultiSound.Play(new MultiSound.Sound[]
{ {
@ -51,16 +55,6 @@ namespace RhythmHeavenMania.Games.SpaceSoccer
new MultiSound.Sound("spaceSoccer/dispenseTumble6B", beat + 1.75f), new MultiSound.Sound("spaceSoccer/dispenseTumble6B", beat + 1.75f),
}); });
} }
public void KeepUp(float beat, float length)
{
kicker.KeepUp(beat, length);
}
public void HighKick(float beat)
{
kicker.HighKick(beat);
}
} }
} }

View File

@ -91,12 +91,12 @@ namespace RhythmHeavenMania.Editor
} }
if (CommandManager.instance.canUndo()) if (CommandManager.instance.canUndo())
UndoBTN.transform.GetChild(0).GetComponent<Image>().color = "BE72FF".Hex2RGB(); UndoBTN.transform.GetChild(0).GetComponent<Image>().color = "BD8CFF".Hex2RGB();
else else
UndoBTN.transform.GetChild(0).GetComponent<Image>().color = Color.gray; UndoBTN.transform.GetChild(0).GetComponent<Image>().color = Color.gray;
if (CommandManager.instance.canRedo()) if (CommandManager.instance.canRedo())
RedoBTN.transform.GetChild(0).GetComponent<Image>().color = "7299FF".Hex2RGB(); RedoBTN.transform.GetChild(0).GetComponent<Image>().color = "FFD800".Hex2RGB();
else else
RedoBTN.transform.GetChild(0).GetComponent<Image>().color = Color.gray; RedoBTN.transform.GetChild(0).GetComponent<Image>().color = Color.gray;

View File

@ -97,12 +97,13 @@ namespace RhythmHeavenMania
new GameAction("prepare", delegate { KarateMan.instance.Prepare(eventCaller.currentBeat, eventCaller.currentLength); }, 1f, true), new GameAction("prepare", delegate { KarateMan.instance.Prepare(eventCaller.currentBeat, eventCaller.currentLength); }, 1f, true),
new GameAction("bgfxon", delegate { KarateMan.instance.BGFXOn(); } ), new GameAction("bgfxon", delegate { KarateMan.instance.BGFXOn(); } ),
new GameAction("bgfxoff", delegate { KarateMan.instance.BGFXOff(); }), new GameAction("bgfxoff", delegate { KarateMan.instance.BGFXOff(); }),
new GameAction("tacobell", delegate { KarateMan.instance.Shoot(eventCaller.currentBeat, 6); }, 2),
}), }),
new Minigame("spaceSoccer", "Space Soccer", "B888F8", new List<GameAction>() new Minigame("spaceSoccer", "Space Soccer", "B888F8", new List<GameAction>()
{ {
new GameAction("ball dispense", delegate { SpaceSoccer.instance.Dispense(eventCaller.currentBeat); }, 2f), new GameAction("ball dispense", delegate { SpaceSoccer.instance.Dispense(eventCaller.currentBeat); }, 2f),
new GameAction("keep-up", delegate { SpaceSoccer.instance.KeepUp(eventCaller.currentBeat, eventCaller.currentLength); }, 4f, true), new GameAction("keep-up", delegate { }, 4f, true),
new GameAction("high kick-toe!", delegate { SpaceSoccer.instance.HighKick(eventCaller.currentBeat); }, 3f), new GameAction("high kick-toe!", delegate { }, 3f),
}) })
}; };
} }

1
Assets/aids.json Normal file
View File

@ -0,0 +1 @@
{"bpm":116.5,"entities":[{"beat":8.0,"track":0,"length":2.0,"datamodel":"karateman/bop"},{"beat":10.0,"track":0,"length":2.0,"datamodel":"karateman/bop"},{"beat":12.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":12.5,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":14.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":14.5,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":16.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":16.5,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":18.0,"track":0,"length":2.0,"datamodel":"karateman/tacobell"}]}

7
Assets/aids.json.meta Normal file
View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 05b7099e387b94442b9a6cf46f6654c9
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1 +1 @@
{"bpm":130.0,"entities":[{"beat":0.0,"track":0,"length":2.0,"datamodel":"spaceSoccer/ball dispense"},{"beat":2.0,"track":1,"length":2.0,"datamodel":"spaceSoccer/keep-up"},{"beat":4.0,"track":0,"length":3.0,"datamodel":"spaceSoccer/high kick-toe!"}]} {"bpm":130.0,"entities":[{"beat":6.0,"track":0,"length":2.0,"datamodel":"spaceSoccer/ball dispense"},{"beat":8.0,"track":1,"length":2.0,"datamodel":"spaceSoccer/keep-up"},{"beat":10.0,"track":0,"length":3.0,"datamodel":"spaceSoccer/high kick-toe!"},{"beat":11.0,"track":2,"length":2.0,"datamodel":"spaceSoccer/ball dispense"},{"beat":13.0,"track":1,"length":1.0,"datamodel":"spaceSoccer/keep-up"},{"beat":14.0,"track":0,"length":3.0,"datamodel":"spaceSoccer/high kick-toe!"},{"beat":17.0,"track":1,"length":1.0,"datamodel":"spaceSoccer/keep-up"},{"beat":18.0,"track":0,"length":3.0,"datamodel":"spaceSoccer/high kick-toe!"},{"beat":21.0,"track":1,"length":1.0,"datamodel":"spaceSoccer/keep-up"},{"beat":22.0,"track":0,"length":3.0,"datamodel":"spaceSoccer/high kick-toe!"},{"beat":25.0,"track":1,"length":1.0,"datamodel":"spaceSoccer/keep-up"},{"beat":26.0,"track":0,"length":3.0,"datamodel":"spaceSoccer/high kick-toe!"},{"beat":29.0,"track":1,"length":13.0,"datamodel":"spaceSoccer/keep-up"},{"beat":42.0,"track":2,"length":3.0,"datamodel":"spaceSoccer/high kick-toe!"}]}