totc internal systems rework

add chair, shock
This commit is contained in:
minenice55 2024-01-12 01:05:42 -05:00
parent bdb8574489
commit b4ae435d00
19 changed files with 9734 additions and 238 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 49dc4ddec49eecc4284d4b5520e7cd4d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -44,6 +44,9 @@ AnimatorStateMachine:
- serializedVersion: 1
m_State: {fileID: 4440819358770172556}
m_Position: {x: 240, y: 220, z: 0}
- serializedVersion: 1
m_State: {fileID: 9164054501690875898}
m_Position: {x: 240, y: 270, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
@ -128,3 +131,29 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &9164054501690875898
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: ThrowAlt
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 49dc4ddec49eecc4284d4b5520e7cd4d, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:

View file

@ -156,6 +156,9 @@ AnimatorStateMachine:
- serializedVersion: 1
m_State: {fileID: 6780057120146691061}
m_Position: {x: 500, y: 240, z: 0}
- serializedVersion: 1
m_State: {fileID: 6654028805906475515}
m_Position: {x: 535, y: 305, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
@ -166,6 +169,32 @@ AnimatorStateMachine:
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -1826418598434636915}
--- !u!1102 &6654028805906475515
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: ThroughShock
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: d7171ac271d517e4996730edbb16ae94, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &6780057120146691061
AnimatorState:
serializedVersion: 6

View file

@ -885,7 +885,60 @@ AnimationClip:
m_PostInfinity: 2
m_RotationOrder: 4
path: body/armL
m_FloatCurves: []
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 4, y: 4, z: 4}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: -6.6666665, y: -6.6666665, z: -6.6666665}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.3
value: {x: 2, y: 2, z: 2}
inSlope: {x: -6.6666665, y: -6.6666665, z: -6.6666665}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path: effect1
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: -3.3333333
tangentMode: 69
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.3
value: 0
inSlope: -3.3333333
outSlope: 0
tangentMode: 69
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: effect1
classID: 212
script: {fileID: 0}
m_PPtrCurves:
- curve:
- time: 0
@ -962,17 +1015,18 @@ AnimationClip:
- time: 0.38333333
value: {fileID: 2274011879247696229, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
- time: 0.41666666
value: {fileID: 259028287349437060, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
- time: 0.43333334
value: {fileID: 259028287349437060, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
- time: 0.48333332
value: {fileID: 259028287349437060, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
- time: 0.5
value: {fileID: 259028287349437060, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
value: {fileID: -2051166924, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
attribute: m_Sprite
path: head
classID: 212
script: {fileID: 0}
- curve:
- time: 0
value: {fileID: -1969113684, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
attribute: m_Sprite
path: effect1
classID: 212
script: {fileID: 0}
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
@ -1043,6 +1097,20 @@ AnimationClip:
typeID: 4
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 3503889430
attribute: 3
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 3503889430
attribute: 304273561
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 3685223346
attribute: 0
@ -1071,6 +1139,13 @@ AnimationClip:
typeID: 212
customType: 23
isPPtrCurve: 1
- serializedVersion: 2
path: 3503889430
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
- serializedVersion: 2
path: 3685223346
attribute: 4
@ -1115,10 +1190,8 @@ AnimationClip:
- {fileID: 2274011879247696229, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
- {fileID: 2274011879247696229, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
- {fileID: 2274011879247696229, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
- {fileID: 259028287349437060, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
- {fileID: 259028287349437060, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
- {fileID: 259028287349437060, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
- {fileID: 259028287349437060, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
- {fileID: -2051166924, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
- {fileID: -1969113684, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
@ -3846,6 +3919,118 @@ AnimationClip:
path: body/armL
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 4
inSlope: 0
outSlope: -6.6666665
tangentMode: 69
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.3
value: 2
inSlope: -6.6666665
outSlope: 0
tangentMode: 69
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.x
path: effect1
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 4
inSlope: 0
outSlope: -6.6666665
tangentMode: 69
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.3
value: 2
inSlope: -6.6666665
outSlope: 0
tangentMode: 69
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.y
path: effect1
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 4
inSlope: 0
outSlope: -6.6666665
tangentMode: 69
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.3
value: 2
inSlope: -6.6666665
outSlope: 0
tangentMode: 69
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.z
path: effect1
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: -3.3333333
tangentMode: 69
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.3
value: 0
inSlope: -3.3333333
outSlope: 0
tangentMode: 69
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: effect1
classID: 212
script: {fileID: 0}
m_EulerEditorCurves:
- curve:
serializedVersion: 2

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d7171ac271d517e4996730edbb16ae94
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,68 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: WarnChair
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- curve:
- time: 0
value: {fileID: 1967864003, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
attribute: m_Sprite
path: warnBubble/warnObj
classID: 212
script: {fileID: 0}
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 1238842833
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
pptrCurveMapping:
- {fileID: 1967864003, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.016666668
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 576d110bca5a69e4897f1e9bb623789b
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,68 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: WarnShock
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- curve:
- time: 0
value: {fileID: -618648720, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
attribute: m_Sprite
path: warnBubble/warnObj
classID: 212
script: {fileID: 0}
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 1238842833
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
pptrCurveMapping:
- {fileID: -618648720, guid: 9e4d9259bae08d443835f93cde178f9a, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.016666668
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a0a8e93ebc4e6de4785b3a1eab82c9fb
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -52,6 +52,58 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &-4482175379901932263
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: WarnShock
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: a0a8e93ebc4e6de4785b3a1eab82c9fb, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &-3998591409194070612
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: WarnChair
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 576d110bca5a69e4897f1e9bb623789b, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
@ -92,6 +144,12 @@ AnimatorStateMachine:
- serializedVersion: 1
m_State: {fileID: 5922798250668347908}
m_Position: {x: 240, y: 240, z: 0}
- serializedVersion: 1
m_State: {fileID: -3998591409194070612}
m_Position: {x: 275, y: 305, z: 0}
- serializedVersion: 1
m_State: {fileID: -4482175379901932263}
m_Position: {x: 310, y: 370, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []

Binary file not shown.

Before

Width:  |  Height:  |  Size: 621 KiB

After

Width:  |  Height:  |  Size: 1 MiB

View file

@ -59,7 +59,7 @@ TextureImporter:
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 145.84201
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
@ -79,7 +79,7 @@ TextureImporter:
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
maxTextureSize: 4096
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
@ -120,16 +120,16 @@ TextureImporter:
name: mobTrick_bg00_0
rect:
serializedVersion: 2
x: 91
y: 3934
width: 5838
height: 3658
x: 0
y: 5904
width: 8206
height: 5086
alignment: 0
pivot: {x: 0, y: 0}
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
tessellationDetail: -1
bones: []
spriteID: b66ab78f37351e7f0800000000000000
internalID: -585094719026256277
@ -141,16 +141,16 @@ TextureImporter:
name: mobTrick_bg00_1
rect:
serializedVersion: 2
x: 890
y: 2520
width: 3513
height: 848
x: 1137
y: 3874
width: 4870
height: 1031
alignment: 0
pivot: {x: 0, y: 0}
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
tessellationDetail: -1
bones: []
spriteID: 9b50477dbd4eae9d0800000000000000
internalID: -2744129390065220167
@ -162,16 +162,16 @@ TextureImporter:
name: mobTrick_bg00_2
rect:
serializedVersion: 2
x: 550
y: 1216
width: 4282
height: 940
x: 643
y: 1903
width: 5983
height: 1259
alignment: 0
pivot: {x: 0, y: 0}
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
tessellationDetail: -1
bones: []
spriteID: 20dd28d0d9be71690800000000000000
internalID: -7631371983786943230
@ -183,16 +183,16 @@ TextureImporter:
name: mobTrick_bg00_3
rect:
serializedVersion: 2
x: 640
y: 266
width: 5226
height: 657
x: 774
y: 622
width: 7339
height: 760
alignment: 0
pivot: {x: 0, y: 0}
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
tessellationDetail: -1
bones: []
spriteID: 5c3f9fb501ef0fad0800000000000000
internalID: -2670355232814664763

Binary file not shown.

Before

Width:  |  Height:  |  Size: 593 KiB

After

Width:  |  Height:  |  Size: 934 KiB

View file

@ -10,13 +10,15 @@ namespace HeavenStudio.Games.Scripts_TrickClass
{
public class MobTrickObj : MonoBehaviour
{
public bool flyType;
public double startBeat;
[NonSerialized] public double startBeat;
bool miss = false;
float flyBeats;
float dodgeBeats;
public int type;
[SerializeField] public byte flyType;
[SerializeField] float flyBeats;
[SerializeField] float dodgeBeats;
[SerializeField] TrickClass.TrickObjType type;
[SerializeField] string justSound;
[SerializeField] string missSound;
[NonSerialized] public BezierCurve3D curve;
@ -25,8 +27,6 @@ namespace HeavenStudio.Games.Scripts_TrickClass
private void Awake()
{
game = TrickClass.instance;
flyBeats = flyType ? 4f : 2f;
dodgeBeats = flyType ? 2f : 1f;
var cond = Conductor.instance;
@ -41,7 +41,7 @@ namespace HeavenStudio.Games.Scripts_TrickClass
var cond = Conductor.instance;
float flyPos = cond.GetPositionFromBeat(startBeat, flyBeats);
if (flyPos <= 1f)
if (flyPos <= 1f)
{
if (!miss)
{
@ -50,15 +50,19 @@ namespace HeavenStudio.Games.Scripts_TrickClass
Vector3 lastPos = transform.position;
Vector3 nextPos = curve.GetPoint(flyPos);
if (flyType)
switch (flyType)
{
Vector3 direction = (nextPos - lastPos).normalized;
float rotation = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
this.transform.eulerAngles = new Vector3(0, 0, rotation);
}
else
{
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (360f * Time.deltaTime));
case 1:
Vector3 direction = (nextPos - lastPos).normalized;
float rotation = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
transform.eulerAngles = new Vector3(0, 0, rotation);
break;
case 2:
transform.rotation = Quaternion.identity;
break;
default:
transform.eulerAngles = new Vector3(0, 0, transform.rotation.eulerAngles.z + (360f * Time.deltaTime * cond.SongPitch));
break;
}
transform.position = nextPos;
@ -72,27 +76,29 @@ namespace HeavenStudio.Games.Scripts_TrickClass
{
if (Conductor.instance.GetPositionFromBeat(startBeat, flyBeats + 1f) >= 1f)
{
GameObject.Destroy(gameObject);
Destroy(gameObject);
return;
}
}
}
public string GetDodgeSound()
public string GetMissSound()
{
switch (type)
{
default:
return "trickClass/ball_impact";
}
return $"trickClass/{missSound}";
}
public void DoObjMiss()
public string GetJustSound()
{
return $"trickClass/{justSound}";
}
public void DoObjMiss(bool ng = false)
{
miss = true;
switch (type)
{
case (int) TrickClass.TrickObjType.Plane:
case TrickClass.TrickObjType.Plane:
startBeat += dodgeBeats;
curve = game.planeMissCurve;
flyBeats = 4f;
@ -104,12 +110,18 @@ namespace HeavenStudio.Games.Scripts_TrickClass
transform.position = nextPos;
break;
case TrickClass.TrickObjType.Shock:
if (!ng)
{
Destroy(gameObject);
}
break;
default:
startBeat += dodgeBeats;
curve = game.ballMissCurve;
flyBeats = 1.25f;
break;
}
startBeat += dodgeBeats;
}
public bool CanDodge()
@ -123,31 +135,31 @@ namespace HeavenStudio.Games.Scripts_TrickClass
{
//NG
game.PlayerDodgeNg();
MultiSound.Play(new MultiSound.Sound[] {
new MultiSound.Sound(GetDodgeSound(), startBeat + flyBeats, volume: 0.4f),
MultiSound.Play(new MultiSound.Sound[] {
new MultiSound.Sound(GetMissSound(), startBeat + flyBeats, volume: 0.4f),
});
SoundByte.PlayOneShotGame(GetDodgeSound(), volume: 0.6f);
SoundByte.PlayOneShotGame(GetMissSound(), volume: 0.6f);
SoundByte.PlayOneShot("miss");
DoObjMiss();
DoObjMiss(true);
}
else
{
//just
game.PlayerDodge();
SoundByte.PlayOneShotGame("trickClass/player_dodge_success", volume: 0.8f, pitch: UnityEngine.Random.Range(0.85f, 1.15f));
MultiSound.Play(new MultiSound.Sound[] {
new MultiSound.Sound(GetDodgeSound(), startBeat + flyBeats, volume: 0.4f),
SoundByte.PlayOneShotGame(GetJustSound(), volume: 0.8f, pitch: UnityEngine.Random.Range(0.85f, 1.15f));
MultiSound.Play(new MultiSound.Sound[] {
new MultiSound.Sound(GetMissSound(), startBeat + flyBeats, volume: 0.4f),
});
}
}
public void DodgeMiss(PlayerActionEvent caller)
{
SoundByte.PlayOneShotGame(GetDodgeSound());
DoObjMiss();
game.PlayerThrough();
SoundByte.PlayOneShotGame(GetMissSound());
DoObjMiss(false);
game.PlayerThrough(type == TrickClass.TrickObjType.Shock);
}
public void DodgeThrough(PlayerActionEvent caller) {}
public void DodgeThrough(PlayerActionEvent caller) { }
}
}

View file

@ -31,6 +31,22 @@ namespace HeavenStudio.Games.Loaders
},
defaultLength = 3,
},
new GameAction("chair", "Chair")
{
preFunction = delegate
{
TrickClass.PreTossObject(eventCaller.currentEntity.beat, (int)TrickClass.TrickObjType.Chair);
},
defaultLength = 2,
},
new GameAction("shock", "Lightning Bolt")
{
preFunction = delegate
{
TrickClass.PreTossObject(eventCaller.currentEntity.beat, (int)TrickClass.TrickObjType.Shock);
},
defaultLength = 2,
},
new GameAction("bop", "Bop")
{
function = delegate { var e = eventCaller.currentEntity; TrickClass.instance.Bop(e.beat, e.length, e["bop"], e["autoBop"]); },
@ -62,6 +78,8 @@ namespace HeavenStudio.Games
public enum TrickObjType {
Ball,
Plane,
Chair,
Shock
}
public struct QueuedObject
{
@ -76,9 +94,9 @@ namespace HeavenStudio.Games
public Animator warnAnim;
[Header("References")]
public GameObject ballPrefab;
public GameObject planePrefab;
public GameObject shockPrefab;
public GameObject[] objPrefab;
public string[] objWarnAnim;
public string[] objThrowAnim;
public Transform objHolder;
[Header("Curves")]
@ -141,15 +159,7 @@ namespace HeavenStudio.Games
{
new BeatAction.Action(input.beat - 1f, delegate
{
switch (input.type)
{
case (int)TrickClass.TrickObjType.Ball:
warnAnim.Play("WarnBall", 0, 0);
break;
case (int)TrickClass.TrickObjType.Plane:
warnAnim.Play("WarnPlane", 0, 0);
break;
}
warnAnim.Play(objWarnAnim[input.type], 0, 0);
}),
new BeatAction.Action(input.beat, delegate
{
@ -218,15 +228,7 @@ namespace HeavenStudio.Games
{
if (instance.showBubble == true)
{
switch (type)
{
case (int)TrickClass.TrickObjType.Ball:
instance.warnAnim.Play("WarnBall", 0, 0);
break;
case (int)TrickClass.TrickObjType.Plane:
instance.warnAnim.Play("WarnPlane", 0, 0);
break;
}
instance.warnAnim.Play(instance.objWarnAnim[type], 0, 0);
}
}),
new BeatAction.Action(beat, delegate
@ -244,22 +246,28 @@ namespace HeavenStudio.Games
type = type,
});
}
switch (type)
{
case (int) TrickObjType.Plane:
PlaySoundSequence("trickClass", "planeThrow", beat);
break;
case (int) TrickObjType.Chair:
PlaySoundSequence("trickClass", "chairThrow", beat);
break;
case (int) TrickObjType.Shock:
PlaySoundSequence("trickClass", "shockThrow", beat);
break;
default:
PlaySoundSequence("trickClass", "ballThrow", beat);
break;
}
}
public void TossObject(double beat, int type)
{
switch (type)
{
case (int) TrickObjType.Plane:
SoundByte.PlayOneShotGame("trickClass/girl_toss_plane");
break;
default:
SoundByte.PlayOneShotGame("trickClass/girl_toss_ball");
break;
}
SpawnObject(beat, type);
girlAnim.DoScaledAnimationAsync("Throw");
girlAnim.DoScaledAnimationAsync(objThrowAnim[type]);
girlBopStart = Conductor.instance.songPositionInBeatsAsDouble + 0.75f;
}
@ -267,26 +275,25 @@ namespace HeavenStudio.Games
{
GameObject objectToSpawn;
BezierCurve3D curve;
bool isPlane = false;
switch (type)
{
case (int) TrickObjType.Plane:
objectToSpawn = planePrefab;
curve = planeTossCurve;
isPlane = true;
break;
case (int) TrickObjType.Shock:
curve = shockTossCurve;
break;
default:
objectToSpawn = ballPrefab;
curve = ballTossCurve;
break;
}
var mobj = GameObject.Instantiate(objectToSpawn, objHolder);
objectToSpawn = objPrefab[type];
var mobj = Instantiate(objectToSpawn, objHolder);
var thinker = mobj.GetComponent<MobTrickObj>();
thinker.startBeat = beat;
thinker.flyType = isPlane;
thinker.curve = curve;
thinker.type = type;
// thinker.type = type;
mobj.SetActive(true);
}
@ -311,9 +318,9 @@ namespace HeavenStudio.Games
playerCanDodge = Conductor.instance.songPositionInBeatsAsDouble + 0.15f;
}
public void PlayerThrough()
public void PlayerThrough(bool shock = false)
{
playerAnim.DoScaledAnimationAsync("Through");
playerAnim.DoScaledAnimationAsync(shock ? "ThroughShock" : "Through");
playerReady = false;
playerBopStart = Conductor.instance.songPositionInBeatsAsDouble + 0.75f;
playerCanDodge = Conductor.instance.songPositionInBeatsAsDouble + 0.15f;