Dog Ninja Rework (#771)

* nearly the entire dog ninja rework

lol. didn't think it would be this easy
just a few more things to fix and we're good

* fix some things, add NOT WORKING updater

* final optimizations and fixes

damn i didn't think the preparing stuff would be such a big deal

* actual last fixes + ass buns

---------

Co-authored-by: AstrlJelly <bdlawson115@gmail.com>
This commit is contained in:
minenice55 2024-03-09 21:57:56 -05:00 committed by GitHub
parent 586020a5c4
commit 8bf1f3e17b
39 changed files with 412 additions and 2062 deletions

View file

@ -97,17 +97,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 5ac06902fd6630045a550c76211fcc63, type: 3} m_Script: {fileID: 11500000, guid: 5ac06902fd6630045a550c76211fcc63, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
inList: 0 game: {fileID: 4542966729274958099}
state:
gameObject: {fileID: 119991411479083905}
early: 0
perfect: 0
late: 0
createBeat: 0
eligibleHitsList: []
aceTimes: 0
isEligible: 0
triggersAutoplay: 1
startBeat: 0 startBeat: 0
type: 0 type: 0
fromLeft: 0 fromLeft: 0
@ -115,12 +105,12 @@ MonoBehaviour:
direction: 0 direction: 0
sfxNum: sfxNum:
curve: {fileID: 0} curve: {fileID: 0}
barelyCurve: {fileID: 0} LeftCurve: {fileID: 2592536718110886033}
RightCurve: {fileID: 8538313959133990924}
BarelyLeftCurve: {fileID: 5959598018215963193} BarelyLeftCurve: {fileID: 5959598018215963193}
BarelyRightCurve: {fileID: 4156529297438955755} BarelyRightCurve: {fileID: 4156529297438955755}
HalvesLeftBase: {fileID: 8462363345267808632} HalvesLeftBase: {fileID: 3507681361263350449}
HalvesRightBase: {fileID: 997672822965154321} HalvesRightBase: {fileID: 5646879835731180444}
ObjectParent: {fileID: 0}
objectLeftHalves: objectLeftHalves:
- {fileID: -5050977528292827191, guid: 1c59b9cd0adef0941bc4bd4bde66a759, type: 3} - {fileID: -5050977528292827191, guid: 1c59b9cd0adef0941bc4bd4bde66a759, type: 3}
- {fileID: -6734710479057769413, guid: 1c59b9cd0adef0941bc4bd4bde66a759, type: 3} - {fileID: -6734710479057769413, guid: 1c59b9cd0adef0941bc4bd4bde66a759, type: 3}
@ -544,24 +534,13 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 6f3ef60f47c093b45a623a707f33c877, type: 3} m_Script: {fileID: 11500000, guid: 6f3ef60f47c093b45a623a707f33c877, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
inList: 0
state:
gameObject: {fileID: 0}
early: 0
perfect: 0
late: 0
createBeat: 0
eligibleHitsList: []
aceTimes: 0
isEligible: 0
triggersAutoplay: 1
startBeat: 0 startBeat: 0
objPos: {x: 0, y: 0, z: 0} objPos: {x: 0, y: 0, z: 0}
lefty: 0 lefty: 0
rotSpeed: 140 rotSpeed: 140
fallLeftCurve: {fileID: 7764367815067799206} fallLeftCurve: {fileID: 7764367815067799206}
fallRightCurve: {fileID: 7122240029612248645} fallRightCurve: {fileID: 7122240029612248645}
halvesParent: {fileID: 2078672318315355962} sr: {fileID: 7206843505938361017}
--- !u!1 &1203023033644261752 --- !u!1 &1203023033644261752
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1292,6 +1271,7 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 9090671386772390765} - component: {fileID: 9090671386772390765}
- component: {fileID: 7679373660039658227}
m_Layer: 0 m_Layer: 0
m_Name: Bird m_Name: Bird
m_TagString: Untagged m_TagString: Untagged
@ -1307,15 +1287,65 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2345899427382000280} m_GameObject: {fileID: 2345899427382000280}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: -5.1111, y: 4.7888, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1.17, y: 1.17, z: 1.17}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children: []
- {fileID: 6141650836764449341}
- {fileID: 3508355828836896233}
m_Father: {fileID: 6570085815560366024} m_Father: {fileID: 6570085815560366024}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &7679373660039658227
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2345899427382000280}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 10
m_Sprite: {fileID: -6878904103022551539, guid: 1c59b9cd0adef0941bc4bd4bde66a759, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 6.69, y: 6.3}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &2488711815545919274 --- !u!1 &2488711815545919274
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1669,45 +1699,38 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
SoundSequences: SoundSequences:
- name: hereWeGo - name: here_we_go
sequence: sequence:
game: 1 game: 1
force: 0 force: 1
clips: clips:
- clip: here - clip: dogNinja/here
beat: 0 beat: 0
pitch: 0 pitch: 0
volume: 0 volume: 0
looping: 0 looping: 0
offset: 0 offset: 0
parameters: [] parameters: []
- clip: we - clip: dogNinja/we
beat: 0.5 beat: 0.5
pitch: 0 pitch: 0
volume: 0 volume: 0
looping: 0 looping: 0
offset: 0 offset: 0
parameters: [] parameters: []
- clip: go - clip: dogNinja/go
beat: 1 beat: 1
pitch: 0 pitch: 0
volume: 0 volume: 0
looping: 0 looping: 0
offset: 0 offset: 0
parameters: [] parameters: []
EligibleHits: []
scheduledInputs: [] scheduledInputs: []
firstEnable: 0
DogAnim: {fileID: 1770250701376598399} DogAnim: {fileID: 1770250701376598399}
BirdAnim: {fileID: 4964290445827434540} BirdAnim: {fileID: 4964290445827434540}
ObjectBase: {fileID: 119991411479083905} ObjectBase: {fileID: 4494871422713187218}
FullBird: {fileID: 3439822116337821266}
WhichObject: {fileID: 1780506401517458247} WhichObject: {fileID: 1780506401517458247}
WhichLeftHalf: {fileID: 8550182553065708291} CutEverythingText: {fileID: 8405214087581042494}
WhichRightHalf: {fileID: 7206843505938361017}
cutEverythingText: {fileID: 8405214087581042494}
CurveFromLeft: {fileID: 2592536718110886033}
CurveFromRight: {fileID: 8538313959133990924}
ObjectTypes: ObjectTypes:
- {fileID: 0} - {fileID: 0}
- {fileID: -2307065246004786754, guid: 1c59b9cd0adef0941bc4bd4bde66a759, type: 3} - {fileID: -2307065246004786754, guid: 1c59b9cd0adef0941bc4bd4bde66a759, type: 3}
@ -1728,6 +1751,8 @@ MonoBehaviour:
- {fileID: 2196219148037962045, guid: 4e56f90ec52abea4ea8c4c7bb6df84d5, type: 3} - {fileID: 2196219148037962045, guid: 4e56f90ec52abea4ea8c4c7bb6df84d5, type: 3}
- {fileID: -6292424158522327523, guid: 4e56f90ec52abea4ea8c4c7bb6df84d5, type: 3} - {fileID: -6292424158522327523, guid: 4e56f90ec52abea4ea8c4c7bb6df84d5, type: 3}
- {fileID: 2053246660185171032, guid: 4e56f90ec52abea4ea8c4c7bb6df84d5, type: 3} - {fileID: 2053246660185171032, guid: 4e56f90ec52abea4ea8c4c7bb6df84d5, type: 3}
queuePrepare: 0
preparing: 0
--- !u!1 &3156757135167865752 --- !u!1 &3156757135167865752
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1888,7 +1913,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 0 m_IsActive: 1
--- !u!4 &6570085815560366024 --- !u!4 &6570085815560366024
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1897,7 +1922,7 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3439822116337821266} m_GameObject: {fileID: 3439822116337821266}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 69, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
@ -4165,108 +4190,13 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 6f3ef60f47c093b45a623a707f33c877, type: 3} m_Script: {fileID: 11500000, guid: 6f3ef60f47c093b45a623a707f33c877, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
inList: 0
state:
gameObject: {fileID: 0}
early: 0
perfect: 0
late: 0
createBeat: 0
eligibleHitsList: []
aceTimes: 0
isEligible: 0
triggersAutoplay: 1
startBeat: 0 startBeat: 0
objPos: {x: 0, y: 0, z: 0} objPos: {x: 0, y: 0, z: 0}
lefty: 1 lefty: 1
rotSpeed: -140 rotSpeed: -140
fallLeftCurve: {fileID: 7191847337805905266} fallLeftCurve: {fileID: 7191847337805905266}
fallRightCurve: {fileID: 5028931464679965393} fallRightCurve: {fileID: 5028931464679965393}
halvesParent: {fileID: 2078672318315355962} sr: {fileID: 8550182553065708291}
--- !u!1 &8597163618617364548
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3508355828836896233}
- component: {fileID: 5092057247171099703}
m_Layer: 0
m_Name: Bird1
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3508355828836896233
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8597163618617364548}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -5.1111, y: 4.7888, z: 0}
m_LocalScale: {x: 1.17, y: 1.17, z: 1.17}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 9090671386772390765}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &5092057247171099703
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8597163618617364548}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 10
m_Sprite: {fileID: -6837453462447269357, guid: 1c59b9cd0adef0941bc4bd4bde66a759, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 6.69, y: 6.3}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &8691542995859896262 --- !u!1 &8691542995859896262
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -4455,90 +4385,6 @@ MonoBehaviour:
handleType: 0 handleType: 0
leftHandleLocalPosition: {x: 2.6498117, y: 0.019104965, z: 0} leftHandleLocalPosition: {x: 2.6498117, y: 0.019104965, z: 0}
rightHandleLocalPosition: {x: -2.6498117, y: -0.019104965, z: -0} rightHandleLocalPosition: {x: -2.6498117, y: -0.019104965, z: -0}
--- !u!1 &9014789612631171718
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6141650836764449341}
- component: {fileID: 4708541773062853748}
m_Layer: 0
m_Name: Bird2
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6141650836764449341
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9014789612631171718}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -5.1111, y: 4.7888, z: 0}
m_LocalScale: {x: 1.17, y: 1.17, z: 1.17}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 9090671386772390765}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &4708541773062853748
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9014789612631171718}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 10
m_Sprite: {fileID: -6878904103022551539, guid: 1c59b9cd0adef0941bc4bd4bde66a759, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 6.69, y: 6.3}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &9069277017458690841 --- !u!1 &9069277017458690841
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -4730,15 +4576,17 @@ MonoBehaviour:
m_lineSpacingMax: 0 m_lineSpacingMax: 0
m_paragraphSpacing: 0 m_paragraphSpacing: 0
m_charWidthMaxAdj: 0 m_charWidthMaxAdj: 0
m_enableWordWrapping: 1 m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4 m_wordWrappingRatios: 0.4
m_overflowMode: 0 m_overflowMode: 0
m_linkedTextComponent: {fileID: 0} m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0} parentLinkedComponent: {fileID: 0}
m_enableKerning: 1 m_enableKerning: 1
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0 m_enableExtraPadding: 0
checkPaddingRequired: 0 checkPaddingRequired: 0
m_isRichText: 1 m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1 m_parseCtrlCharacters: 1
m_isOrthographic: 0 m_isOrthographic: 0
m_isCullingEnabled: 0 m_isCullingEnabled: 0

View file

@ -28,31 +28,6 @@ AnimatorStateMachine:
m_ExitPosition: {x: 640, y: 180, z: 0} m_ExitPosition: {x: 640, y: 180, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 320149015002627566} m_DefaultState: {fileID: 320149015002627566}
--- !u!1101 &-57611587176777246
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 2
m_ConditionEvent: birdOnScreen
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 0}
m_Solo: 0
m_Mute: 0
m_IsExit: 1
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.5833334
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!91 &9100000 --- !u!91 &9100000
AnimatorController: AnimatorController:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -101,7 +76,7 @@ AnimatorState:
m_MirrorParameterActive: 0 m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0 m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0 m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 3319f492700f97544b948589e4e54ca0, type: 2} m_Motion: {fileID: 0}
m_Tag: m_Tag:
m_SpeedParameter: m_SpeedParameter:
m_MirrorParameter: m_MirrorParameter:
@ -117,8 +92,7 @@ AnimatorState:
m_Name: FlyOut m_Name: FlyOut
m_Speed: 1 m_Speed: 1
m_CycleOffset: 0 m_CycleOffset: 0
m_Transitions: m_Transitions: []
- {fileID: -57611587176777246}
m_StateMachineBehaviours: [] m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0} m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0 m_IKOnFeet: 0

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 9100000 mainObjectFileID: 9100000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -54,8 +54,18 @@ AnimationClip:
weightedMode: 0 weightedMode: 0
inWeight: 0 inWeight: 0
outWeight: 0 outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_IsActive
path: Bird
classID: 1
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3 - serializedVersion: 3
time: 0.15 time: 0
value: 1 value: 1
inSlope: Infinity inSlope: Infinity
outSlope: Infinity outSlope: Infinity
@ -67,35 +77,7 @@ AnimationClip:
m_PostInfinity: 2 m_PostInfinity: 2
m_RotationOrder: 4 m_RotationOrder: 4
attribute: m_IsActive attribute: m_IsActive
path: Bird/Bird2 path: CutEverythingSign
classID: 1
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 0.15
value: 0
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_IsActive
path: Bird/Bird1
classID: 1 classID: 1
script: {fileID: 0} script: {fileID: 0}
m_PPtrCurves: [] m_PPtrCurves: []
@ -114,14 +96,14 @@ AnimationClip:
customType: 0 customType: 0
isPPtrCurve: 0 isPPtrCurve: 0
- serializedVersion: 2 - serializedVersion: 2
path: 341651793 path: 8978736
attribute: 2086281974 attribute: 2086281974
script: {fileID: 0} script: {fileID: 0}
typeID: 1 typeID: 1
customType: 0 customType: 0
isPPtrCurve: 0 isPPtrCurve: 0
- serializedVersion: 2 - serializedVersion: 2
path: 2371117291 path: 2588901114
attribute: 2086281974 attribute: 2086281974
script: {fileID: 0} script: {fileID: 0}
typeID: 1 typeID: 1
@ -236,8 +218,18 @@ AnimationClip:
weightedMode: 0 weightedMode: 0
inWeight: 0 inWeight: 0
outWeight: 0 outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_IsActive
path: Bird
classID: 1
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3 - serializedVersion: 3
time: 0.15 time: 0
value: 1 value: 1
inSlope: Infinity inSlope: Infinity
outSlope: Infinity outSlope: Infinity
@ -249,35 +241,7 @@ AnimationClip:
m_PostInfinity: 2 m_PostInfinity: 2
m_RotationOrder: 4 m_RotationOrder: 4
attribute: m_IsActive attribute: m_IsActive
path: Bird/Bird2 path: CutEverythingSign
classID: 1
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 0.15
value: 0
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_IsActive
path: Bird/Bird1
classID: 1 classID: 1
script: {fileID: 0} script: {fileID: 0}
m_EulerEditorCurves: [] m_EulerEditorCurves: []

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 7400000 mainObjectFileID: 7400000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -56,7 +56,7 @@ AnimationClip:
outWeight: 0 outWeight: 0
- serializedVersion: 3 - serializedVersion: 3
time: 0.6 time: 0.6
value: 1 value: 0
inSlope: Infinity inSlope: Infinity
outSlope: Infinity outSlope: Infinity
tangentMode: 103 tangentMode: 103
@ -67,7 +67,7 @@ AnimationClip:
m_PostInfinity: 2 m_PostInfinity: 2
m_RotationOrder: 4 m_RotationOrder: 4
attribute: m_IsActive attribute: m_IsActive
path: Bird/Bird1 path: Bird
classID: 1 classID: 1
script: {fileID: 0} script: {fileID: 0}
- curve: - curve:
@ -75,7 +75,7 @@ AnimationClip:
m_Curve: m_Curve:
- serializedVersion: 3 - serializedVersion: 3
time: 0 time: 0
value: 0 value: 1
inSlope: Infinity inSlope: Infinity
outSlope: Infinity outSlope: Infinity
tangentMode: 103 tangentMode: 103
@ -95,7 +95,7 @@ AnimationClip:
m_PostInfinity: 2 m_PostInfinity: 2
m_RotationOrder: 4 m_RotationOrder: 4
attribute: m_IsActive attribute: m_IsActive
path: Bird/Bird2 path: CutEverythingSign
classID: 1 classID: 1
script: {fileID: 0} script: {fileID: 0}
m_PPtrCurves: [] m_PPtrCurves: []
@ -114,14 +114,14 @@ AnimationClip:
customType: 0 customType: 0
isPPtrCurve: 0 isPPtrCurve: 0
- serializedVersion: 2 - serializedVersion: 2
path: 2371117291 path: 8978736
attribute: 2086281974 attribute: 2086281974
script: {fileID: 0} script: {fileID: 0}
typeID: 1 typeID: 1
customType: 0 customType: 0
isPPtrCurve: 0 isPPtrCurve: 0
- serializedVersion: 2 - serializedVersion: 2
path: 341651793 path: 2588901114
attribute: 2086281974 attribute: 2086281974
script: {fileID: 0} script: {fileID: 0}
typeID: 1 typeID: 1
@ -247,7 +247,7 @@ AnimationClip:
outWeight: 0 outWeight: 0
- serializedVersion: 3 - serializedVersion: 3
time: 0.6 time: 0.6
value: 1 value: 0
inSlope: Infinity inSlope: Infinity
outSlope: Infinity outSlope: Infinity
tangentMode: 103 tangentMode: 103
@ -258,7 +258,7 @@ AnimationClip:
m_PostInfinity: 2 m_PostInfinity: 2
m_RotationOrder: 4 m_RotationOrder: 4
attribute: m_IsActive attribute: m_IsActive
path: Bird/Bird1 path: Bird
classID: 1 classID: 1
script: {fileID: 0} script: {fileID: 0}
- curve: - curve:
@ -266,7 +266,7 @@ AnimationClip:
m_Curve: m_Curve:
- serializedVersion: 3 - serializedVersion: 3
time: 0 time: 0
value: 0 value: 1
inSlope: Infinity inSlope: Infinity
outSlope: Infinity outSlope: Infinity
tangentMode: 103 tangentMode: 103
@ -286,7 +286,7 @@ AnimationClip:
m_PostInfinity: 2 m_PostInfinity: 2
m_RotationOrder: 4 m_RotationOrder: 4
attribute: m_IsActive attribute: m_IsActive
path: Bird/Bird2 path: CutEverythingSign
classID: 1 classID: 1
script: {fileID: 0} script: {fileID: 0}
m_EulerEditorCurves: [] m_EulerEditorCurves: []

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 7400000 mainObjectFileID: 7400000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -1,133 +0,0 @@
%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: Idle
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 13.216, y: 8.8714, z: 0}
inSlope: {x: 0, y: 0, z: 0}
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:
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
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: 0
attribute: 1
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
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:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 13.216
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.x
path:
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 8.8714
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.y
path:
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.z
path:
classID: 4
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 1
m_HasMotionFloatCurves: 0
m_Events: []

View file

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

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 7400000 mainObjectFileID: 7400000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 7400000 mainObjectFileID: 7400000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 7400000 mainObjectFileID: 7400000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 7400000 mainObjectFileID: 7400000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -54,31 +54,6 @@ AnimatorState:
m_MirrorParameter: m_MirrorParameter:
m_CycleOffsetParameter: m_CycleOffsetParameter:
m_TimeParameter: m_TimeParameter:
--- !u!1101 &-8879658034113408578
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: needPrepare
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 5009988345090580314}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 1
m_HasExitTime: 1
m_HasFixedDuration: 0
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &-7628548708072257747 --- !u!1102 &-7628548708072257747
AnimatorState: AnimatorState:
serializedVersion: 6 serializedVersion: 6
@ -333,31 +308,6 @@ AnimatorController:
m_IKPass: 0 m_IKPass: 0
m_SyncedLayerAffectsTiming: 0 m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000} m_Controller: {fileID: 9100000}
--- !u!1101 &634343083532807637
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 2
m_ConditionEvent: needPrepare
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1628397019354410076}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 1
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &1183219720229009387 --- !u!1102 &1183219720229009387
AnimatorState: AnimatorState:
serializedVersion: 6 serializedVersion: 6
@ -368,9 +318,7 @@ AnimatorState:
m_Name: Prepare m_Name: Prepare
m_Speed: 1 m_Speed: 1
m_CycleOffset: 0 m_CycleOffset: 0
m_Transitions: m_Transitions: []
- {fileID: -8879658034113408578}
- {fileID: 634343083532807637}
m_StateMachineBehaviours: [] m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0} m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0 m_IKOnFeet: 0
@ -563,9 +511,6 @@ AnimatorStateMachine:
- serializedVersion: 1 - serializedVersion: 1
m_State: {fileID: 4106059006902303284} m_State: {fileID: 4106059006902303284}
m_Position: {x: 400, y: 90, z: 0} m_Position: {x: 400, y: 90, z: 0}
- serializedVersion: 1
m_State: {fileID: 5009988345090580314}
m_Position: {x: 620, y: -110, z: 0}
m_ChildStateMachines: [] m_ChildStateMachines: []
m_AnyStateTransitions: [] m_AnyStateTransitions: []
m_EntryTransitions: [] m_EntryTransitions: []
@ -576,33 +521,6 @@ AnimatorStateMachine:
m_ExitPosition: {x: 420, y: 210, z: 0} m_ExitPosition: {x: 420, y: 210, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 1628397019354410076} m_DefaultState: {fileID: 1628397019354410076}
--- !u!1102 &5009988345090580314
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: PrepareIdle
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 7023587105086888360}
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: f9b4fb8d229e1d840b1663408bebfd18, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &5032805319851727948 --- !u!1101 &5032805319851727948
AnimatorStateTransition: AnimatorStateTransition:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
@ -669,31 +587,6 @@ AnimatorStateTransition:
m_InterruptionSource: 0 m_InterruptionSource: 0
m_OrderedInterruption: 1 m_OrderedInterruption: 1
m_CanTransitionToSelf: 1 m_CanTransitionToSelf: 1
--- !u!1101 &7023587105086888360
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 2
m_ConditionEvent: needPrepare
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1628397019354410076}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 1
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &7232969264737895159 --- !u!1102 &7232969264737895159
AnimatorState: AnimatorState:
serializedVersion: 6 serializedVersion: 6
@ -701,11 +594,10 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_Name: UnPrepare m_Name: Unprepare
m_Speed: 1 m_Speed: 1
m_CycleOffset: 0 m_CycleOffset: 0
m_Transitions: m_Transitions: []
- {fileID: 7451574809715408383}
m_StateMachineBehaviours: [] m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0} m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0 m_IKOnFeet: 0
@ -721,28 +613,6 @@ AnimatorState:
m_MirrorParameter: m_MirrorParameter:
m_CycleOffsetParameter: m_CycleOffsetParameter:
m_TimeParameter: m_TimeParameter:
--- !u!1101 &7451574809715408383
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1628397019354410076}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 1
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &8456159042725552206 --- !u!1102 &8456159042725552206
AnimatorState: AnimatorState:
serializedVersion: 6 serializedVersion: 6

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 9100000 mainObjectFileID: 9100000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 7400000 mainObjectFileID: 7400000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -450,7 +450,7 @@ AnimationClip:
m_Level: 0 m_Level: 0
m_CycleOffset: 0 m_CycleOffset: 0
m_HasAdditiveReferencePose: 0 m_HasAdditiveReferencePose: 0
m_LoopTime: 1 m_LoopTime: 0
m_LoopBlend: 0 m_LoopBlend: 0
m_LoopBlendOrientation: 0 m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0 m_LoopBlendPositionY: 0

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 7400000 mainObjectFileID: 7400000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

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

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 0 mainObjectFileID: 0
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 0 mainObjectFileID: 0
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 0 mainObjectFileID: 0
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -492,7 +492,7 @@ AnimationClip:
m_Level: 0 m_Level: 0
m_CycleOffset: 0 m_CycleOffset: 0
m_HasAdditiveReferencePose: 0 m_HasAdditiveReferencePose: 0
m_LoopTime: 1 m_LoopTime: 0
m_LoopBlend: 0 m_LoopBlend: 0
m_LoopBlendOrientation: 0 m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0 m_LoopBlendPositionY: 0

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 7400000 mainObjectFileID: 7400000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 7400000 mainObjectFileID: 7400000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 7400000 mainObjectFileID: 7400000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 7400000 mainObjectFileID: 7400000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 7400000 mainObjectFileID: 7400000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 9100000 mainObjectFileID: 9100000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 7400000 mainObjectFileID: 7400000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 0 mainObjectFileID: 0
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 9100000 mainObjectFileID: 9100000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 7400000 mainObjectFileID: 7400000
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -4,5 +4,5 @@ NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 0 mainObjectFileID: 0
userData: userData:
assetBundleName: assetBundleName: ntrninja/common
assetBundleVariant: assetBundleVariant:

View file

@ -689,7 +689,7 @@ TextureImporter:
width: 110 width: 110
height: 201 height: 201
alignment: 0 alignment: 0
pivot: {x: 0, y: 0} pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0} border: {x: 0, y: 0, z: 0, w: 0}
outline: [] outline: []
physicsShape: [] physicsShape: []
@ -710,7 +710,7 @@ TextureImporter:
width: 103 width: 103
height: 198 height: 198
alignment: 0 alignment: 0
pivot: {x: 0, y: 0} pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0} border: {x: 0, y: 0, z: 0, w: 0}
outline: [] outline: []
physicsShape: [] physicsShape: []
@ -731,7 +731,7 @@ TextureImporter:
width: 78 width: 78
height: 199 height: 199
alignment: 0 alignment: 0
pivot: {x: 0, y: 0} pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0} border: {x: 0, y: 0, z: 0, w: 0}
outline: [] outline: []
physicsShape: [] physicsShape: []
@ -743,6 +743,27 @@ TextureImporter:
indices: indices:
edges: [] edges: []
weights: [] weights: []
- serializedVersion: 2
name: oh it's the little guy. you found him
rect:
serializedVersion: 2
x: 1143
y: 1591
width: 16
height: 49
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 4cd68dea3c30b1f48bcd6dd5ad0fffa5
internalID: 1314131981
vertices: []
indices:
edges: []
weights: []
outline: [] outline: []
physicsShape: [] physicsShape: []
bones: [] bones: []
@ -763,6 +784,7 @@ TextureImporter:
Ball_Full: 8158683621920566786 Ball_Full: 8158683621920566786
Ball_Left: -5925680740112638021 Ball_Left: -5925680740112638021
Ball_Right: -5567381644477528568 Ball_Right: -5567381644477528568
DogNinja_OtherObjects_0: -1593653543
Idol_Full: 2196219148037962045 Idol_Full: 2196219148037962045
Idol_Left: -130797512336752496 Idol_Left: -130797512336752496
Idol_Right: 8490305602720712907 Idol_Right: 8490305602720712907
@ -783,6 +805,7 @@ TextureImporter:
WildBreath_Full: 2053246660185171032 WildBreath_Full: 2053246660185171032
WildBreath_Left: -7594402133338608887 WildBreath_Left: -7594402133338608887
WildBreath_Right: 3508372842914876614 WildBreath_Right: 3508372842914876614
oh it's the little guy. you found him: 1314131981
spritePackingTag: spritePackingTag:
pSDRemoveMatte: 0 pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0 pSDShowRemoveMatteOption: 0

View file

@ -5,6 +5,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using TMPro; using TMPro;
using Jukebox;
namespace HeavenStudio.Games.Loaders namespace HeavenStudio.Games.Loaders
{ {
@ -13,11 +14,46 @@ namespace HeavenStudio.Games.Loaders
{ {
public static Minigame AddGame(EventCaller eventCaller) public static Minigame AddGame(EventCaller eventCaller)
{ {
RiqEntity ObjectUpdater(string datamodel, RiqEntity e)
{
if (datamodel == "dogNinja/ThrowObject" && e.version == 0)
{
e["diffObjs"] = e["direction"] == 2 && e["typeL"] != e["typeR"];
e["type"] = e["direction"] is 0 or 2 ? (int)e["typeL"] : e["typeR"];
e.version = 1;
return e;
}
return null;
}
// // Beatmap.Entities isn't available in a riqentity updater...
// RiqEntity BirdUpdater(string datamodel, RiqEntity e)
// {
// if (datamodel == "dogNinja/CutEverything" && e.version == 0)
// {
// RiqEntity nextBird = eventCaller.gameManager.Beatmap.Entities.Find(c => c.datamodel is "dogNinja/CutEverything" && c.beat > e.beat);
// if (nextBird != null) nextBird.datamodel = "dogNinja/DELETE THIS";
// e.length = nextBird != null ? (float)(nextBird.beat - e.beat) : 4;
// e.version = 1;
// return e;
// }
// return null;
// }
RiqBeatmap.OnUpdateEntity += ObjectUpdater;
// RiqBeatmap.OnUpdateEntity += BirdUpdater;
return new Minigame("dogNinja", "Dog Ninja", "554899", false, false, new List<GameAction>() return new Minigame("dogNinja", "Dog Ninja", "554899", false, false, new List<GameAction>()
{ {
new GameAction("Bop", "Bop") new GameAction("Bop", "Bop")
{ {
function = delegate { DogNinja.instance.Bop(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, eventCaller.currentEntity["auto"], eventCaller.currentEntity["toggle"]); }, function = delegate {
var e = eventCaller.currentEntity;
if (eventCaller.gameManager.minigameObj.TryGetComponent(out DogNinja instance)) {
instance.Bop(e.beat, e.length, e["auto"], e["toggle"]);
}
},
resizable = true, resizable = true,
parameters = new List<Param>() parameters = new List<Param>()
{ {
@ -27,17 +63,28 @@ namespace HeavenStudio.Games.Loaders
}, },
new GameAction("Prepare", "Prepare") new GameAction("Prepare", "Prepare")
{ {
function = delegate { DogNinja.instance.Prepare(eventCaller.currentEntity.beat); }, function = delegate {
if (eventCaller.gameManager.minigameObj.TryGetComponent(out DogNinja instance)) {
instance.DoPrepare();
}
},
defaultLength = 0.5f, defaultLength = 0.5f,
}, },
new GameAction("ThrowObject", "Throw Object") new GameAction("ThrowObject", "Throw Object")
{ {
function = delegate { var e = eventCaller.currentEntity; DogNinja.QueueObject(e.beat, e["direction"], e["typeL"], e["typeR"], e["shouldPrepare"], false); }, preFunction = delegate {
inactiveFunction = delegate { var e = eventCaller.currentEntity; DogNinja.QueueObject(e.beat, e["direction"], e["typeL"], e["typeR"], e["shouldPrepare"], e["muteThrow"]); }, var e = eventCaller.currentEntity;
DogNinja.QueueObject(e.beat, e["direction"], e["diffObjs"], e["type"], e["typeL"], e["typeR"], e["shouldPrepare"], e["muteThrow"], e);
},
defaultLength = 2, defaultLength = 2,
parameters = new List<Param>() parameters = new List<Param>()
{ {
new Param("direction", DogNinja.ObjectDirection.Left, "Which Side", "Choose the side(s) the object(s) should be thrown from."), new Param("direction", DogNinja.ObjectDirection.Left, "Which Side", "Choose the side(s) the object(s) should be thrown from."),
new Param("diffObjs", false, "Different Objects", "Toggle if the sides should be different.", new() {
new((x, _) => (bool)x, "typeL", "typeR"),
new((x, _) => !(bool)x, "type"),
}),
new Param("type", DogNinja.ObjectType.Random, "Object", "Choose the object to be thrown."),
new Param("typeL", DogNinja.ObjectType.Random, "Left Object", "Choose the object to be thrown from the left."), new Param("typeL", DogNinja.ObjectType.Random, "Left Object", "Choose the object to be thrown from the left."),
new Param("typeR", DogNinja.ObjectType.Random, "Right Object", "Choose the object to be thrown from the right."), new Param("typeR", DogNinja.ObjectType.Random, "Right Object", "Choose the object to be thrown from the right."),
new Param("shouldPrepare", true, "Prepare", "Toggle if Dog Ninja should automatically prepare for this cue."), new Param("shouldPrepare", true, "Prepare", "Toggle if Dog Ninja should automatically prepare for this cue."),
@ -46,57 +93,26 @@ namespace HeavenStudio.Games.Loaders
}, },
new GameAction("CutEverything", "Mister Eagle's Sign") new GameAction("CutEverything", "Mister Eagle's Sign")
{ {
function = delegate { var e = eventCaller.currentEntity; DogNinja.instance.CutEverything(e.beat, e["toggle"], e["text"]); }, function = delegate {
defaultLength = 0.5f, var e = eventCaller.currentEntity;
if (eventCaller.gameManager.minigameObj.TryGetComponent(out DogNinja instance)) {
instance.CutEverything(e.beat, e.length, e["toggle"], e["text"]);
}
},
defaultLength = 4f,
resizable = true,
parameters = new List<Param>() parameters = new List<Param>()
{ {
new Param("toggle", true, "Play Sound", "Toggle if the sound effect should play for flying in and out."), new Param("toggle", true, "Play Sound", "Toggle if the sound effect should play for flying in."),
new Param("text", "Cut everything!", "Sign Text", "Set the text to be displayed on the sign.") new Param("text", "Cut everything!", "Sign Text", "Set the text to be displayed on the sign.")
} }
}, },
new GameAction("HereWeGo", "Here We Go!") new GameAction("HereWeGo", "Here We Go!")
{ {
function = delegate { DogNinja.instance.HereWeGo(eventCaller.currentEntity.beat); }, preFunction = delegate { DogNinja.HereWeGo(eventCaller.currentEntity.beat); },
defaultLength = 2, defaultLength = 2,
inactiveFunction = delegate { DogNinja.HereWeGoInactive(eventCaller.currentEntity.beat); },
preFunctionLength = 1, preFunctionLength = 1,
}, },
// these are still here for backwards-compatibility but are hidden in the editor
new GameAction("ThrowObjectLeft", "Throw Object Left")
{
function = delegate { var e = eventCaller.currentEntity; DogNinja.QueueObject(e.beat, 0, e["type"], 0, true, false);},
defaultLength = 2,
hidden = true,
parameters = new List<Param>()
{
new Param("type", DogNinja.ObjectType.Random, "Object", "The object to be thrown"),
},
inactiveFunction = delegate { var e = eventCaller.currentEntity; DogNinja.QueueObject(e.beat, 0, e["type"], 0, true, false);},
},
new GameAction("ThrowObjectRight", "Throw Object Right")
{
function = delegate { var e = eventCaller.currentEntity; DogNinja.QueueObject(e.beat, 1, 0, e["type"], true, false);},
defaultLength = 2,
hidden = true,
parameters = new List<Param>()
{
new Param("type", DogNinja.ObjectType.Random, "Object", "The object to be thrown"),
},
inactiveFunction = delegate { var e = eventCaller.currentEntity; DogNinja.QueueObject(e.beat, 1, 0, e["type"], true, false);},
},
new GameAction("ThrowObjectBoth", "Throw Object Both")
{
function = delegate { var e = eventCaller.currentEntity; DogNinja.QueueObject(e.beat, 2, e["typeL"], e["typeR"], true, false);},
defaultLength = 2,
hidden = true,
parameters = new List<Param>()
{
new Param("typeL", DogNinja.ObjectType.Random, "Left Object", "The object on the left to be thrown"),
new Param("typeR", DogNinja.ObjectType.Random, "Right Object", "The object on the right to be thrown"),
},
inactiveFunction = delegate { var e = eventCaller.currentEntity; DogNinja.QueueObject(e.beat, 2, e["typeL"], e["typeR"], true, false);},
},
}, },
new List<string>() { "ntr", "normal" }, new List<string>() { "ntr", "normal" },
"ntrninja", "en", "ntrninja", "en",
@ -108,18 +124,14 @@ namespace HeavenStudio.Games.Loaders
namespace HeavenStudio.Games namespace HeavenStudio.Games
{ {
using Jukebox;
using Scripts_DogNinja; using Scripts_DogNinja;
public class DogNinja : Minigame public class DogNinja : Minigame
{ {
static List<QueuedThrow> queuedThrows = new List<QueuedThrow>(); private struct QueuedThrow
struct QueuedThrow
{ {
public double beat; public int[] types;
public int direction; public string sfxNumL, sfxNumR;
public int typeL;
public int typeR;
public string sfxNumL;
public string sfxNumR;
} }
[Header("Animators")] [Header("Animators")]
@ -127,23 +139,15 @@ namespace HeavenStudio.Games
public Animator BirdAnim; // bird flying in and out public Animator BirdAnim; // bird flying in and out
[Header("References")] [Header("References")]
[SerializeField] GameObject ObjectBase; [SerializeField] ThrowObject ObjectBase;
[SerializeField] GameObject FullBird;
[SerializeField] SpriteRenderer WhichObject; [SerializeField] SpriteRenderer WhichObject;
public SpriteRenderer WhichLeftHalf; [SerializeField] TMP_Text CutEverythingText;
public SpriteRenderer WhichRightHalf;
[SerializeField] TMP_Text cutEverythingText;
[Header("Curves")]
[SerializeField] BezierCurve3D CurveFromLeft;
[SerializeField] BezierCurve3D CurveFromRight;
[SerializeField] Sprite[] ObjectTypes; [SerializeField] Sprite[] ObjectTypes;
private bool birdOnScreen = false; private bool autoBop = true;
private const string sfxNum = "dogNinja/"; public bool queuePrepare;
public bool preparing;
public static DogNinja instance;
public enum ObjectDirection public enum ObjectDirection
{ {
@ -152,7 +156,7 @@ namespace HeavenStudio.Games
Both, Both,
} }
public enum ObjectType public enum ObjectType : int
{ {
Random, // random fruit Random, // random fruit
Apple, // fruit Apple, // fruit
@ -195,199 +199,172 @@ namespace HeavenStudio.Games
new("NtrNinjaTouchRelease", new int[] { IAEmptyCat, IAReleaseCat, IAEmptyCat }, new("NtrNinjaTouchRelease", new int[] { IAEmptyCat, IAReleaseCat, IAEmptyCat },
IA_Empty, IA_TouchBasicRelease, IA_Empty); IA_Empty, IA_TouchBasicRelease, IA_Empty);
private void Awake() public override void OnLateBeatPulse(double beat)
{ {
instance = this; if (autoBop && !preparing && !queuePrepare && (DogAnim.IsAnimationNotPlaying() || DogAnim.IsPlayingAnimationNames("Idle"))) {
SetupBopRegion("dogNinja", "Bop", "auto");
}
void OnDestroy()
{
if (!Conductor.instance.isPlaying || Conductor.instance.isPaused)
{
if (queuedThrows.Count > 0) queuedThrows.Clear();
}
foreach (var evt in scheduledInputs)
{
evt.Disable();
}
}
public override void OnBeatPulse(double beat)
{
if (BeatIsInBopRegion(beat) && DogAnim.IsAnimationNotPlaying() || DogAnim.IsPlayingAnimationNames("Idle")) {
DogAnim.DoScaledAnimationAsync("Bop", 0.5f); DogAnim.DoScaledAnimationAsync("Bop", 0.5f);
} }
} }
public override void OnPlay(double beat)
{
foreach (var e in gameManager.Beatmap.Entities.FindAll(e => e.datamodel is "dogNinja/ThrowObject" && beat > e.beat && beat < e.beat + 1))
{
DogAnim.Play("Prepare", 0, 1);
preparing = true;
QueueObject(e.beat, e["direction"], e["diffObjs"], e["type"], e["typeL"], e["typeR"], e["shouldPrepare"], true, e);
}
}
public override void OnGameSwitch(double beat)
{
foreach (var e in gameManager.Beatmap.Entities.FindAll(e => e.datamodel is "dogNinja/ThrowObject" && beat >= e.beat - 2 && beat < e.beat + 1))
{
QueuedThrow t = e["throwData"];
bool shouldPrepare = e["shouldPrepare"];
if (beat > e.beat) {
shouldPrepare = false;
DogAnim.Play("Prepare", 0, 1);
preparing = true;
}
ThrowObject(e.beat, e["direction"], shouldPrepare, t.types, t.sfxNumL, t.sfxNumR);
}
}
private void Update() private void Update()
{ {
if (DogAnim.GetBool("needPrepare") && DogAnim.IsAnimationNotPlaying()) // prepare queuing stuff
if (queuePrepare && !preparing && (DogAnim.IsAnimationNotPlaying() || DogAnim.IsPlayingAnimationNames("Bop")))
{ {
DogAnim.DoScaledAnimationAsync("Prepare", 0.5f); DogAnim.DoScaledAnimationAsync("Prepare", 0.5f);
DogAnim.SetBool("needPrepare", true); preparing = true;
queuePrepare = false;
} }
// controls stuff
if (PlayerInput.GetIsAction(InputAction_TouchPress) && !GameManager.instance.autoplay) if (PlayerInput.GetIsAction(InputAction_TouchPress) && !GameManager.instance.autoplay)
{ {
DogAnim.SetBool("needPrepare", true); // queuePrepare = true;
DogAnim.DoScaledAnimationAsync("Prepare", 0.5f); DogAnim.DoScaledAnimationAsync("Prepare", 0.5f);
preparing = true;
} }
if (PlayerInput.GetIsAction(InputAction_TouchRelease) && (!IsExpectingInputNow(InputAction_Press)) && (!GameManager.instance.autoplay)) if (PlayerInput.GetIsAction(InputAction_TouchRelease) && (!IsExpectingInputNow(InputAction_Press)) && (!GameManager.instance.autoplay))
{ {
DogAnim.SetBool("needPrepare", false); StopPrepare();
DogAnim.DoScaledAnimationAsync("Bop", 0.5f); DogAnim.DoScaledAnimationAsync("Unprepare", 0.5f);
} }
if (PlayerInput.GetIsAction(InputAction_Press) && !IsExpectingInputNow(InputAction_Press)) if (PlayerInput.GetIsAction(InputAction_Press) && !IsExpectingInputNow(InputAction_Press))
{ {
System.Random rd = new System.Random(); string slice = UnityEngine.Random.Range(0, 1f) < 0.5f ? "WhiffRight" : "WhiffLeft";
string slice;
int LorR = rd.Next(0, 2);
if (LorR < 1)
{
slice = "WhiffRight";
}
else
{
slice = "WhiffLeft";
}
DogAnim.DoScaledAnimationAsync(slice, 0.5f); DogAnim.DoScaledAnimationAsync(slice, 0.5f);
SoundByte.PlayOneShotGame("dogNinja/whiff");
DogAnim.SetBool("needPrepare", false);
}
if (queuedThrows.Count > 0) SoundByte.PlayOneShotGame("dogNinja/whiff");
{ StopPrepare();
foreach (var obj in queuedThrows) { ThrowObject(obj.beat, obj.direction, obj.typeL, obj.typeR, obj.sfxNumL, obj.sfxNumR); }
queuedThrows.Clear();
} }
} }
public void Bop(double beat, float length, bool auto, bool bop) public void Bop(double beat, float length, bool auto, bool bop)
{ {
autoBop = auto;
if (!bop) return; if (!bop) return;
List<BeatAction.Action> actions = new();
for (int i = 0; i < length; i++) List<BeatAction.Action> actions = new();
{ for (int i = 0; i < length; i++) {
actions.Add(new(beat + i, delegate { DogAnim.DoScaledAnimationAsync("Bop", 0.5f); })); actions.Add(new(beat + i, delegate { DogAnim.DoScaledAnimationAsync("Bop", 0.5f); }));
} }
if (actions.Count > 0) BeatAction.New(this, actions); if (actions.Count > 0) BeatAction.New(this, actions);
} }
public static void QueueObject(double beat, int direction, int typeL, int typeR, bool prepare, bool muteThrow) public static void QueueObject(double beat, int direction, bool diffObjs, int type, int typeL, int typeR, bool prepare, bool muteThrow, RiqEntity e)
{ {
int ObjSprite = 1; int randomObj = 1;
if (typeL == 0 || typeR == 0) int[] types = diffObjs ? new[] { typeL, typeR } : new[] { type, type };
string[] sfxNums = new string[2];
for (int i = 0; i < 2; i++)
{ {
// random object code. it makes a random number from 1-7 and sets that as the sprite if (types[i] == 0 && (diffObjs || i == 0)) randomObj = UnityEngine.Random.Range((int)ObjectType.Apple, (int)ObjectType.Potato + 1);
System.Random rd = new System.Random(); if (types[i] == 0) types[i] = randomObj;
ObjSprite = rd.Next(1, 7); sfxNums[i] = "dogNinja/" + (types[i] < 7 ? "fruit" : Enum.GetName(typeof(ObjectType), types[i]));
} }
string sfxNumL = "dogNinja/"; if (!muteThrow) {
if (direction is 0 or 2) for (int i = 0; i < (direction == 2 && diffObjs ? 2 : 1); i++) {
{ SoundByte.PlayOneShotGame(sfxNums[i] + "1", beat, forcePlay: true);
sfxNumL += typeL < 7 ? "fruit" : Enum.GetName(typeof(ObjectType), typeL); }
if (typeL == 0) typeL = ObjSprite;
if (!muteThrow) SoundByte.PlayOneShotGame(sfxNumL + "1", forcePlay: true);
} }
string sfxNumR = "dogNinja/"; if (GameManager.instance.minigame is DogNinja instance) {
if (direction is 1 or 2) instance.ThrowObject(beat, direction, prepare, types, sfxNums[0], sfxNums[1]);
{
sfxNumR += typeR < 7 ? "fruit" : Enum.GetName(typeof(ObjectType), typeR); } else {
if (typeR == 0) typeR = ObjSprite; var queuedThrow = new QueuedThrow() {
if (!(direction == 2 && typeL == typeR) && !muteThrow) SoundByte.PlayOneShotGame(sfxNumR + "1", forcePlay: true); types = types,
sfxNumL = sfxNums[0],
sfxNumR = sfxNums[1],
};
// funny static variable workaround :)
if (!e.dynamicData.TryAdd("throwData", queuedThrow)) {
e["throwData"] = queuedThrow;
}
}
} }
queuedThrows.Add(new QueuedThrow() public void ThrowObject(double beat, int direction, bool prepare, int[] types, string sfxNumL, string sfxNumR)
{ {
beat = beat, if (prepare) {
direction = direction, BeatAction.New(this, new() {
typeL = typeL, new(beat, () => queuePrepare = PlayerInput.CurrentControlStyle != InputController.ControlStyles.Touch || GameManager.instance.autoplay)
typeR = typeR,
sfxNumL = sfxNumL,
sfxNumR = sfxNumR,
}); });
prepare = prepare && (PlayerInput.CurrentControlStyle != InputController.ControlStyles.Touch || GameManager.instance.autoplay);
if (prepare) DogNinja.instance.DogAnim.SetBool("needPrepare", true);
} }
for (int i = 0; i < (direction == 2 ? 2 : 1); i++)
public void ThrowObject(double beat, int direction, int typeL, int typeR, string sfxNumL, string sfxNumR)
{ {
// instantiate a game object and give it its variables bool l = direction is 2 ? i == 0 : direction == 0;
if (direction is 0 or 2) WhichObject.sprite = ObjectTypes[l ? types[0] : types[1]];
{ ThrowObject obj = Instantiate(ObjectBase, transform);
WhichObject.sprite = ObjectTypes[typeL]; obj.startBeat = beat;
ThrowObject ObjectL = Instantiate(ObjectBase, gameObject.transform).GetComponent<ThrowObject>(); obj.direction = direction;
ObjectL.startBeat = beat; obj.fromLeft = l;
ObjectL.curve = CurveFromLeft; obj.type = l ? types[0] : types[1];
ObjectL.fromLeft = true; obj.sfxNum = l ? sfxNumL : sfxNumR;
ObjectL.direction = direction; if (direction == 2) obj.shouldSfx = l == (types[0] == types[1]);
ObjectL.type = typeL;
ObjectL.sfxNum = sfxNumL;
if (direction == 2) ObjectL.shouldSfx = (typeL == typeR);
}
if (direction is 1 or 2)
{
WhichObject.sprite = ObjectTypes[typeR];
ThrowObject ObjectR = Instantiate(ObjectBase, gameObject.transform).GetComponent<ThrowObject>();
ObjectR.startBeat = beat;
ObjectR.curve = CurveFromRight;
ObjectR.fromLeft = false;
ObjectR.direction = direction;
ObjectR.type = typeR;
ObjectR.sfxNum = sfxNumR;
if (direction == 2) ObjectR.shouldSfx = !(typeL == typeR);
} }
} }
public void CutEverything(double beat, bool sound, string customText) public void CutEverything(double beat, float length, bool sound, string customText)
{ {
// plays one anim with sfx when it's not on screen, plays a different anim with no sfx when on screen. ez if (sound) SoundByte.PlayOneShotGame("dogNinja/bird_flap");
if (!birdOnScreen) BirdAnim.DoScaledAnimationAsync("FlyIn", 0.5f);
{ CutEverythingText.text = customText;
FullBird.SetActive(true);
if (sound) BeatAction.New(this, new() {
{ new(beat + length, () => BirdAnim.Play("FlyOut", 0, 0))
SoundByte.PlayOneShotGame(sfxNum + "bird_flap"); });
}
BirdAnim.Play("FlyIn", 0, 0);
birdOnScreen = true;
cutEverythingText.text = customText;
}
else
{
BirdAnim.Play("FlyOut", 0, 0);
birdOnScreen = false;
}
} }
public void Prepare(double beat) public void StopPrepare()
{
preparing = false;
queuePrepare = false;
}
public void DoPrepare()
{ {
if (PlayerInput.CurrentControlStyle == InputController.ControlStyles.Touch && PlayerInput.PlayerHasControl()) return; if (PlayerInput.CurrentControlStyle == InputController.ControlStyles.Touch && PlayerInput.PlayerHasControl()) return;
if (!DogAnim.GetBool("needPrepare")) DogAnim.DoScaledAnimationAsync("Prepare", 0.5f); DogAnim.DoScaledAnimationAsync("Prepare", 0.5f);
DogAnim.SetBool("needPrepare", true); preparing = true;
} }
public void HereWeGo(double beat) public static void HereWeGo(double beat)
{ {
MultiSound.Play(new MultiSound.Sound[] { // // sound sequence isn't working?
new MultiSound.Sound(sfxNum+"here", beat), // PlaySoundSequence("dogNinja", "here_we_go", beat);
new MultiSound.Sound(sfxNum+"we", beat + 0.5f), MultiSound.Play(new List<MultiSound.Sound>() {
new MultiSound.Sound(sfxNum+"go", beat + 1f) new("dogNinja/here", beat + 0),
new("dogNinja/we", beat + 0.5),
new("dogNinja/go", beat + 1),
}, forcePlay: true); }, forcePlay: true);
} }
public static void HereWeGoInactive(double beat)
{
DogNinja.instance.HereWeGo(beat);
}
} }
} }

View file

@ -4,15 +4,14 @@ using System;
using UnityEngine; using UnityEngine;
using NaughtyBezierCurves; using NaughtyBezierCurves;
using HeavenStudio.Util;
namespace HeavenStudio.Games.Scripts_DogNinja namespace HeavenStudio.Games.Scripts_DogNinja
{ {
// this code sucks but i don't wanna touch it. it works fine enough. sorry!
public class SpawnHalves : MonoBehaviour public class SpawnHalves : MonoBehaviour
{ {
public double startBeat; public double startBeat;
public Vector3 objPos; public Vector3 objPos;
private Vector3 posModifier;
public bool lefty; public bool lefty;
float bpmModifier; float bpmModifier;
double songPos; double songPos;
@ -23,25 +22,18 @@ namespace HeavenStudio.Games.Scripts_DogNinja
[SerializeField] BezierCurve3D fallLeftCurve; [SerializeField] BezierCurve3D fallLeftCurve;
[SerializeField] BezierCurve3D fallRightCurve; [SerializeField] BezierCurve3D fallRightCurve;
BezierCurve3D curve; BezierCurve3D curve;
[SerializeField] Transform halvesParent; public SpriteRenderer sr;
private DogNinja game;
private void Awake()
{
game = DogNinja.instance;
bpmModifier = Conductor.instance.songBpm / 100;
songPos = Conductor.instance.songPositionInBeatsAsDouble;
}
private void Start() private void Start()
{ {
bpmModifier = Conductor.instance.songBpm / 100;
songPos = Conductor.instance.songPositionInBeatsAsDouble;
curve = lefty ? fallRightCurve : fallLeftCurve; curve = lefty ? fallRightCurve : fallLeftCurve;
} }
private void Update() private void Update()
{ {
float flyPosHalves = (Conductor.instance.GetPositionFromBeat(songPos, 3f)*(Conductor.instance.GetPositionFromBeat(songPos, 2f)))+Conductor.instance.GetPositionFromBeat(songPos, 1f); float flyPosHalves = (Conductor.instance.GetPositionFromBeat(songPos, 3f) * Conductor.instance.GetPositionFromBeat(songPos, 2f)) + Conductor.instance.GetPositionFromBeat(songPos, 1f);
flyPosHalves = (flyPosHalves * 0.2f) + 0.35f; flyPosHalves = (flyPosHalves * 0.2f) + 0.35f;
transform.position = curve.GetPoint(flyPosHalves) + objPos; transform.position = curve.GetPoint(flyPosHalves) + objPos;
@ -51,13 +43,8 @@ namespace HeavenStudio.Games.Scripts_DogNinja
// clean-up logic // clean-up logic
if (flyPosHalves > 1f) { if (flyPosHalves > 1f) {
GameObject.Destroy(gameObject); Destroy(gameObject);
}; }
if ((!Conductor.instance.isPlaying && !Conductor.instance.isPaused)
|| GameManager.instance.currentGame != "dogNinja") {
GameObject.Destroy(gameObject);
};
} }
} }
} }

View file

@ -10,6 +10,8 @@ namespace HeavenStudio.Games.Scripts_DogNinja
{ {
public class ThrowObject : MonoBehaviour public class ThrowObject : MonoBehaviour
{ {
[SerializeField] DogNinja game;
public double startBeat; public double startBeat;
public int type; public int type;
public bool fromLeft; public bool fromLeft;
@ -26,120 +28,84 @@ namespace HeavenStudio.Games.Scripts_DogNinja
[Header("References")] [Header("References")]
public BezierCurve3D curve; public BezierCurve3D curve;
[SerializeField] BezierCurve3D barelyCurve; [SerializeField] BezierCurve3D LeftCurve;
[SerializeField] BezierCurve3D RightCurve;
private BezierCurve3D barelyCurve;
[SerializeField] BezierCurve3D BarelyLeftCurve; [SerializeField] BezierCurve3D BarelyLeftCurve;
[SerializeField] BezierCurve3D BarelyRightCurve; [SerializeField] BezierCurve3D BarelyRightCurve;
[SerializeField] GameObject HalvesLeftBase; [SerializeField] SpawnHalves HalvesLeftBase;
[SerializeField] GameObject HalvesRightBase; [SerializeField] SpawnHalves HalvesRightBase;
[SerializeField] Transform ObjectParent;
public Sprite[] objectLeftHalves; public Sprite[] objectLeftHalves;
public Sprite[] objectRightHalves; public Sprite[] objectRightHalves;
private DogNinja game;
private void Awake()
{
game = DogNinja.instance;
DogAnim = game.DogAnim;
}
private void Start() private void Start()
{ {
DogAnim = game.DogAnim;
curve = fromLeft ? LeftCurve : RightCurve;
barelyCurve = fromLeft ? BarelyRightCurve : BarelyLeftCurve; barelyCurve = fromLeft ? BarelyRightCurve : BarelyLeftCurve;
game.ScheduleInput(startBeat, 1f, DogNinja.InputAction_Press, Hit, Miss, Out); game.ScheduleInput(startBeat, 1f, DogNinja.InputAction_Press, Hit, Miss, null);
} }
private void Update() private void Update()
{ {
float flyPos = Conductor.instance.GetPositionFromBeat(startBeat, 1f)+1.1f;
float flyPosBarely = Conductor.instance.GetPositionFromBeat(barelyTime, 1f)+1f;
if (isActive) { if (isActive) {
float flyPos = game.conductor.GetPositionFromBeat(startBeat, 1f)+1.1f;
flyPos *= 0.31f; flyPos *= 0.31f;
transform.position = curve.GetPoint(flyPos); transform.position = curve.GetPoint(flyPos);
objPos = curve.GetPoint(flyPos); objPos = curve.GetPoint(flyPos);
// destroy object when it's off-screen // destroy object when it's off-screen
if (flyPos > 1f) { if (flyPos > 1f) {
GameObject.Destroy(gameObject); Destroy(gameObject);
} }
} else { } else {
float flyPosBarely = game.conductor.GetPositionFromBeat(barelyTime, 1f)+1f;
flyPosBarely *= 0.3f; flyPosBarely *= 0.3f;
transform.position = barelyCurve.GetPoint(flyPosBarely) + objPos; transform.position = barelyCurve.GetPoint(flyPosBarely) + objPos;
float rot = fromLeft ? 200f : -200f; float rot = fromLeft ? 200f : -200f;
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (rot * Time.deltaTime)); transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (rot * Time.deltaTime));
if (flyPosBarely > 1f) { if (flyPosBarely > 1f) {
GameObject.Destroy(gameObject); Destroy(gameObject);
} }
} }
if ((!Conductor.instance.isPlaying && !Conductor.instance.isPaused)
|| GameManager.instance.currentGame != "dogNinja") {
GameObject.Destroy(gameObject);
}
}
private void SuccessSlice()
{
string slice = "Slice" + direction switch
{
0 => "Left",
1 => "Right",
_ => "Both",
};
DogAnim.DoScaledAnimationAsync(slice, 0.5f);
if (shouldSfx) SoundByte.PlayOneShotGame(sfxNum+"2");
game.WhichLeftHalf.sprite = objectLeftHalves[type-1];
game.WhichRightHalf.sprite = objectRightHalves[type-1];
SpawnHalves LeftHalf = Instantiate(HalvesLeftBase, game.gameObject.transform).GetComponent<SpawnHalves>();
LeftHalf.startBeat = startBeat;
LeftHalf.lefty = fromLeft;
LeftHalf.objPos = objPos;
SpawnHalves RightHalf = Instantiate(HalvesRightBase, game.gameObject.transform).GetComponent<SpawnHalves>();
RightHalf.startBeat = startBeat;
RightHalf.lefty = fromLeft;
RightHalf.objPos = objPos;
GameObject.Destroy(gameObject);
}
private void JustSlice()
{
isActive = false;
barelyTime = Conductor.instance.songPositionInBeatsAsDouble;
string barely = "Barely" + direction switch
{
0 => "Left",
1 => "Right",
2 => "Both",
_ => "Both",
};
DogAnim.DoScaledAnimationAsync(barely, 0.5f);
SoundByte.PlayOneShotGame("dogNinja/barely");
} }
private void Hit(PlayerActionEvent caller, float state) private void Hit(PlayerActionEvent caller, float state)
{ {
game.DogAnim.SetBool("needPrepare", false); game.StopPrepare();
if (state >= 1f || state <= -1f) JustSlice(); string dir = direction switch {
else SuccessSlice(); 0 => "Left",
1 => "Right",
_ => "Both",
};
if (state >= 1f || state <= -1f) {
isActive = false;
barelyTime = game.conductor.songPositionInBeatsAsDouble;
DogAnim.DoScaledAnimationAsync("Barely" + dir, 0.5f);
if (shouldSfx) SoundByte.PlayOneShotGame("dogNinja/barely");
} else {
DogAnim.DoScaledAnimationAsync("Slice" + dir, 0.5f);
if (shouldSfx) SoundByte.PlayOneShotGame(sfxNum + "2");
HalvesLeftBase.sr.sprite = objectLeftHalves[type - 1];
HalvesRightBase.sr.sprite = objectRightHalves[type - 1];
for (int i = 0; i < 2; i++) {
SpawnHalves half = Instantiate(i == 0 ? HalvesLeftBase : HalvesRightBase, game.transform);
half.startBeat = startBeat;
half.lefty = fromLeft;
half.objPos = objPos;
}
Destroy(gameObject);
}
} }
private void Miss(PlayerActionEvent caller) private void Miss(PlayerActionEvent caller)
{ {
if (!DogAnim.GetBool("needPrepare")) return; if (!game.preparing) return;
DogAnim.DoScaledAnimationAsync("UnPrepare", 0.5f); DogAnim.DoScaledAnimationAsync("Unprepare", 0.5f);
DogAnim.SetBool("needPrepare", false); game.StopPrepare();
}
private void Out(PlayerActionEvent caller)
{
DogAnim.SetBool("needPrepare", false);
} }
} }
} }