diff --git a/Assets/Resources/Games/shootEmUp.prefab b/Assets/Resources/Games/shootEmUp.prefab index 153422156..c93801d87 100644 --- a/Assets/Resources/Games/shootEmUp.prefab +++ b/Assets/Resources/Games/shootEmUp.prefab @@ -17974,6 +17974,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 30bf004c389468f4eb27ba49ceb01c3d, type: 3} m_Name: m_EditorClassIdentifier: + enemyAnim: {fileID: 5033613110298741416} effectHolder: {fileID: 727132065477534931} trajectoryEffect: {fileID: 5431016040243098561} originEffect: {fileID: 235219454747548232} @@ -23084,8 +23085,8 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5431016040243098561} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1.25, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 0.5, z: 1} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 3969861781120183164} @@ -28438,7 +28439,7 @@ MonoBehaviour: introGate: {fileID: 6767934292219209870} monitor: {fileID: 4632575707632497822} captain: {fileID: 40791317368152064} - scaleSpeed: 0.2 + scaleSpeed: 0.16 PlacementPattern: - posPattern: - posData: diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy.meta b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy.meta new file mode 100644 index 000000000..9fe8f5800 --- /dev/null +++ b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3fd2caed50c63614ab394c67ac398b30 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/basic.anim b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/basic.anim new file mode 100644 index 000000000..4c435c8e2 --- /dev/null +++ b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/basic.anim @@ -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: basic + 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: -2136356488, guid: c0445b9380dc33d44b0c690894ddec9c, type: 3} + attribute: m_Sprite + path: sprite + classID: 212 + script: {fileID: 0} + m_SampleRate: 30 + 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: 891129758 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: -2136356488, guid: c0445b9380dc33d44b0c690894ddec9c, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.033333335 + 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: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/basic.anim.meta b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/basic.anim.meta new file mode 100644 index 000000000..62fb1497c --- /dev/null +++ b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/basic.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cb5bb39a4a68f3345b50cae480aa812a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/endless.anim b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/endless.anim new file mode 100644 index 000000000..64b7f65e1 --- /dev/null +++ b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/endless.anim @@ -0,0 +1,113 @@ +%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: endless + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + 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: sprite/far + classID: 1 + script: {fileID: 0} + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: 1452378717, guid: c0445b9380dc33d44b0c690894ddec9c, type: 3} + attribute: m_Sprite + path: sprite + 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: 1233911557 + attribute: 2086281974 + script: {fileID: 0} + typeID: 1 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 891129758 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: 1452378717, guid: c0445b9380dc33d44b0c690894ddec9c, 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: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + 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: sprite/far + classID: 1 + script: {fileID: 0} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/endless.anim.meta b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/endless.anim.meta new file mode 100644 index 000000000..adf893227 --- /dev/null +++ b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/endless.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d194034e5caa9924a993b4c8272c6863 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy.controller b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/enemy.controller similarity index 50% rename from Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy.controller rename to Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/enemy.controller index cf6cb7381..b736b2846 100644 --- a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy.controller +++ b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/enemy.controller @@ -27,6 +27,63 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1107 &-4395611113876697967 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Sprite Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -2354518090425078094} + m_Position: {x: 250, y: 20, z: 0} + - serializedVersion: 1 + m_State: {fileID: 2225405494376700410} + m_Position: {x: 240, y: 110, z: 0} + - serializedVersion: 1 + m_State: {fileID: 532535503686845107} + m_Position: {x: 240, y: 180, z: 0} + - serializedVersion: 1 + m_State: {fileID: 7333629473457676120} + m_Position: {x: 240, y: 230, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -2354518090425078094} +--- !u!1102 &-2354518090425078094 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Basic + 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: cb5bb39a4a68f3345b50cae480aa812a, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1102 &-1821123917934627129 AnimatorState: serializedVersion: 6 @@ -35,7 +92,7 @@ AnimatorState: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: enemyMiss - m_Speed: 2 + m_Speed: 1 m_CycleOffset: 0 m_Transitions: [] m_StateMachineBehaviours: [] @@ -75,6 +132,70 @@ AnimatorController: m_IKPass: 0 m_SyncedLayerAffectsTiming: 0 m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: Sprite Layer + m_StateMachine: {fileID: -4395611113876697967} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 1 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1102 &376031281380393262 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: practice + 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: e1aa7d57706ba9048a53475d91e77c7b, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &532535503686845107 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Endless + 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: d194034e5caa9924a993b4c8272c6863, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1102 &1515220813287879215 AnimatorState: serializedVersion: 6 @@ -101,6 +222,58 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1102 &2225405494376700410 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Lockstep + 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: eb2c9b18ebc2bc743b282b9198e910bd, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &7333629473457676120 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Practice + 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: e1aa7d57706ba9048a53475d91e77c7b, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1101 &7431207317530354340 AnimatorStateTransition: m_ObjectHideFlags: 1 @@ -144,6 +317,9 @@ AnimatorStateMachine: - serializedVersion: 1 m_State: {fileID: -1821123917934627129} m_Position: {x: 305, y: 195, z: 0} + - serializedVersion: 1 + m_State: {fileID: 376031281380393262} + m_Position: {x: 340, y: 260, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: [] m_EntryTransitions: [] diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy.controller.meta b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/enemy.controller.meta similarity index 100% rename from Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy.controller.meta rename to Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/enemy.controller.meta diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemyAttack.anim b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/enemyAttack.anim similarity index 100% rename from Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemyAttack.anim rename to Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/enemyAttack.anim diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemyAttack.anim.meta b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/enemyAttack.anim.meta similarity index 100% rename from Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemyAttack.anim.meta rename to Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/enemyAttack.anim.meta diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemyMiss.anim b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/enemyMiss.anim similarity index 100% rename from Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemyMiss.anim rename to Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/enemyMiss.anim diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemyMiss.anim.meta b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/enemyMiss.anim.meta similarity index 100% rename from Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemyMiss.anim.meta rename to Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/enemyMiss.anim.meta diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemySpawn.anim b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/enemySpawn.anim similarity index 100% rename from Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemySpawn.anim rename to Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/enemySpawn.anim diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemySpawn.anim.meta b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/enemySpawn.anim.meta similarity index 100% rename from Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemySpawn.anim.meta rename to Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/enemySpawn.anim.meta diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/lockstep.anim b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/lockstep.anim new file mode 100644 index 000000000..86d53b7e5 --- /dev/null +++ b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/lockstep.anim @@ -0,0 +1,113 @@ +%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: lockstep + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + 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: sprite/far + classID: 1 + script: {fileID: 0} + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: -2032356040, guid: c0445b9380dc33d44b0c690894ddec9c, type: 3} + attribute: m_Sprite + path: sprite + 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: 1233911557 + attribute: 2086281974 + script: {fileID: 0} + typeID: 1 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 891129758 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: -2032356040, guid: c0445b9380dc33d44b0c690894ddec9c, 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: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + 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: sprite/far + classID: 1 + script: {fileID: 0} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/lockstep.anim.meta b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/lockstep.anim.meta new file mode 100644 index 000000000..825d706e5 --- /dev/null +++ b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/lockstep.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eb2c9b18ebc2bc743b282b9198e910bd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/practice.anim b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/practice.anim new file mode 100644 index 000000000..41263d299 --- /dev/null +++ b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/practice.anim @@ -0,0 +1,113 @@ +%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: practice + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + 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: sprite/far + classID: 1 + script: {fileID: 0} + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: -915250394, guid: c0445b9380dc33d44b0c690894ddec9c, type: 3} + attribute: m_Sprite + path: sprite + classID: 212 + script: {fileID: 0} + m_SampleRate: 30 + 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: 1233911557 + attribute: 2086281974 + script: {fileID: 0} + typeID: 1 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 891129758 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: -915250394, guid: c0445b9380dc33d44b0c690894ddec9c, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.033333335 + 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: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + 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: sprite/far + classID: 1 + script: {fileID: 0} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/practice.anim.meta b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/practice.anim.meta new file mode 100644 index 000000000..2972c2ddb --- /dev/null +++ b/Assets/Resources/Sprites/Games/ShootEmUp/Animations/enemy/practice.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e1aa7d57706ba9048a53475d91e77c7b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Games/ShootEmUp/shoot_main.png.meta b/Assets/Resources/Sprites/Games/ShootEmUp/shoot_main.png.meta index 4f45d3442..8cda0021f 100644 --- a/Assets/Resources/Sprites/Games/ShootEmUp/shoot_main.png.meta +++ b/Assets/Resources/Sprites/Games/ShootEmUp/shoot_main.png.meta @@ -131,7 +131,7 @@ TextureImporter: serializedVersion: 2 x: 2408 y: 3624 - width: 464 + width: 348 height: 464 alignment: 0 pivot: {x: 0.5, y: 0.5} @@ -932,7 +932,7 @@ TextureImporter: width: 850 height: 530 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: [] @@ -953,7 +953,7 @@ TextureImporter: width: 420 height: 272 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: [] @@ -974,7 +974,7 @@ TextureImporter: width: 334 height: 181 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: [] @@ -995,7 +995,7 @@ TextureImporter: width: 351 height: 288 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: [] @@ -1016,7 +1016,7 @@ TextureImporter: width: 238 height: 306 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: [] @@ -1037,7 +1037,7 @@ TextureImporter: width: 388 height: 308 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: [] @@ -1058,7 +1058,7 @@ TextureImporter: width: 142 height: 138 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: [] @@ -1079,7 +1079,7 @@ TextureImporter: width: 141 height: 137 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: [] @@ -1100,7 +1100,7 @@ TextureImporter: width: 168 height: 178 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: [] @@ -1121,7 +1121,7 @@ TextureImporter: width: 178 height: 173 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: [] @@ -1142,7 +1142,7 @@ TextureImporter: width: 172 height: 392 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: [] @@ -1163,7 +1163,7 @@ TextureImporter: width: 499 height: 380 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: [] @@ -1184,7 +1184,7 @@ TextureImporter: width: 393 height: 382 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: [] @@ -1205,7 +1205,7 @@ TextureImporter: width: 264 height: 212 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: [] @@ -1226,7 +1226,7 @@ TextureImporter: width: 195 height: 273 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: [] @@ -1247,7 +1247,7 @@ TextureImporter: width: 167 height: 173 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: [] @@ -1268,7 +1268,7 @@ TextureImporter: width: 156 height: 173 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: [] @@ -1289,7 +1289,7 @@ TextureImporter: width: 167 height: 173 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: [] @@ -1310,7 +1310,7 @@ TextureImporter: width: 214 height: 46 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: [] @@ -1322,6 +1322,48 @@ TextureImporter: indices: edges: [] weights: [] + - serializedVersion: 2 + name: shoot_enemy_3 + rect: + serializedVersion: 2 + x: 1584 + y: 3624 + width: 302 + height: 464 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 4f574f01b791465488b0986f207a568c + internalID: 1452378717 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: shoot_enemy_4 + rect: + serializedVersion: 2 + x: 1168 + y: 3624 + width: 309 + height: 464 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: d0b6b80282641a8499aa543d224c4df1 + internalID: -915250394 + vertices: [] + indices: + edges: [] + weights: [] outline: [] physicsShape: [] bones: [] @@ -1345,6 +1387,8 @@ TextureImporter: shoot_enemy_0: -2136356488 shoot_enemy_1: -2032356040 shoot_enemy_2: -2103752361 + shoot_enemy_3: 1452378717 + shoot_enemy_4: -915250394 shoot_handle1: 1240971331 shoot_handle2: 1770004620 shoot_handle3: -765527450 diff --git a/Assets/Scripts/Games/ShootEmUp/Enemy.cs b/Assets/Scripts/Games/ShootEmUp/Enemy.cs index c2cda2c43..9219d6afa 100644 --- a/Assets/Scripts/Games/ShootEmUp/Enemy.cs +++ b/Assets/Scripts/Games/ShootEmUp/Enemy.cs @@ -10,14 +10,18 @@ namespace HeavenStudio.Games.Scripts_ShootEmUp { public class Enemy : MonoBehaviour { - [NonSerialized] public double createBeat; - [NonSerialized] public Vector2 pos; [Header("References")] + public Animator enemyAnim; public Transform effectHolder; public GameObject trajectoryEffect; public GameObject originEffect; public GameObject impactEffect; + [Header("Parameters")] + [NonSerialized] public double createBeat; + [NonSerialized] public int type; + [NonSerialized] public Vector2 pos; + [NonSerialized] public float scaleSpeed; Vector3 scaleRate => new Vector3(scaleSpeed, scaleSpeed, scaleSpeed) / (Conductor.instance.pitchedSecPerBeat * 2f); bool isScale; @@ -28,13 +32,15 @@ namespace HeavenStudio.Games.Scripts_ShootEmUp { game = ShootEmUp.instance; transform.localPosition = new Vector3(5.05f/3*pos.x, 2.5f/3*pos.y + 1.25f, 0); + enemyAnim = GetComponent(); + enemyAnim.Play(Enum.GetName(typeof(ShootEmUp.EnemyType), type)); isScale = true; } public void StartInput(double beat, double length) { - game = ShootEmUp.instance; game.ScheduleInput(beat, length, ShootEmUp.InputAction_Press, Just, Miss, Empty); + // (type == (int)ShootEmUp.EnemyType.Endless ? : ) } private void Just(PlayerActionEvent caller, float state) { @@ -46,7 +52,7 @@ namespace HeavenStudio.Games.Scripts_ShootEmUp JudgeAnim("miss"); return; } - game.hitEffect.Play(); + game.hitEffect.PlayScaledAsyncAllChildren(0.45f); JudgeAnim("just"); } @@ -76,7 +82,7 @@ namespace HeavenStudio.Games.Scripts_ShootEmUp public void SpawnAnim() { - this.GetComponent().Play("enemySpawn", 0, 0); + enemyAnim.DoScaledAnimationAsync("enemySpawn", 1f); var trajectory = Instantiate(trajectoryEffect, effectHolder); trajectory.transform.localPosition = this.transform.localPosition; @@ -93,6 +99,7 @@ namespace HeavenStudio.Games.Scripts_ShootEmUp } trajectory.transform.eulerAngles = angle; trajectory.gameObject.SetActive(true); + trajectory.GetComponent().DoScaledAnimationAsync("trajectory", 1f); } public void JudgeAnim(string type) @@ -103,6 +110,7 @@ namespace HeavenStudio.Games.Scripts_ShootEmUp GameObject origin = Instantiate(originEffect, effectHolder); origin.transform.localPosition = currentPos; origin.gameObject.SetActive(true); + origin.GetComponent().DoScaledAnimationAsync("origin", 1f); isScale = false; transform.localScale = new Vector3(1.25f, 1.25f, 1.25f); @@ -113,13 +121,14 @@ namespace HeavenStudio.Games.Scripts_ShootEmUp switch (type) { case "just": - this.GetComponent().Play("enemyAttack", 0, 0); + enemyAnim.DoScaledAnimationAsync("enemyAttack", 1f); impact = Instantiate(impactEffect, effectHolder); impact.transform.localPosition = nextPos; impact.gameObject.SetActive(true); + impact.GetComponent().DoScaledAnimationAsync("impact", 1f); break; case "attack": - this.GetComponent().Play("enemyAttack", 0, 0); + enemyAnim.DoScaledAnimationAsync("enemyAttack", 1f); if (pos.x > 0) { nextPos = new Vector3(-5, -3, 0); } else if (pos.x < 0) { @@ -130,9 +139,10 @@ namespace HeavenStudio.Games.Scripts_ShootEmUp impact = Instantiate(impactEffect, effectHolder); impact.transform.localPosition = nextPos; impact.gameObject.SetActive(true); + impact.GetComponent().DoScaledAnimationAsync("impact", 1f); break; case "miss": - this.GetComponent().DoScaledAnimationAsync("enemyMiss", 0.5f); + enemyAnim.DoScaledAnimationAsync("enemyMiss", 1f); break; default: break; @@ -147,7 +157,7 @@ namespace HeavenStudio.Games.Scripts_ShootEmUp trajectory.transform.eulerAngles = angle; trajectory.transform.localScale = scale; trajectory.gameObject.SetActive(true); - trajectory.GetComponent().Play("trajectory_damage", 0, 0); + trajectory.GetComponent().DoScaledAnimationAsync("trajectory_damage", 1f); } void End() diff --git a/Assets/Scripts/Games/ShootEmUp/Ship.cs b/Assets/Scripts/Games/ShootEmUp/Ship.cs index e8925b15e..d0228a1ee 100644 --- a/Assets/Scripts/Games/ShootEmUp/Ship.cs +++ b/Assets/Scripts/Games/ShootEmUp/Ship.cs @@ -17,8 +17,8 @@ namespace HeavenStudio.Games.Scripts_ShootEmUp public void Shoot() { - shipAnim.Play("shipShoot", 0, 0); - laserAnim.Play("laser", 0, 0); + shipAnim.DoScaledAnimationAsync("shipShoot", 1f); + laserAnim.DoScaledAnimationAsync("laser", 1f); } public void Damage() @@ -30,8 +30,8 @@ namespace HeavenStudio.Games.Scripts_ShootEmUp // } isDamage = true; - shipAnim.Play("shipDamage", 0, 0); - damageAnim.Play("damage", 0, 0); + shipAnim.DoScaledAnimationAsync("shipDamage", 1f); + damageAnim.DoScaledAnimationAsync("damage", 1f); } public void DamageEnd() diff --git a/Assets/Scripts/Games/ShootEmUp/ShootEmUp.cs b/Assets/Scripts/Games/ShootEmUp/ShootEmUp.cs index a677e3c78..19b265456 100644 --- a/Assets/Scripts/Games/ShootEmUp/ShootEmUp.cs +++ b/Assets/Scripts/Games/ShootEmUp/ShootEmUp.cs @@ -54,6 +54,7 @@ namespace HeavenStudio.Games.Loaders new Param("y_int", new EntityTypes.Integer(-3, 3, 0), "Y (Integer)"), new Param("x_float", new EntityTypes.Float(-8, 8, 0), "X (Decimal)"), new Param("y_float", new EntityTypes.Float(-8, 8, 0), "Y (Decimal)"), + new Param("type", ShootEmUp.EnemyType.Basic, "Enemy", "Choose the enemy to spawn."), }, }, new GameAction("passTurn", "Pass Turn") @@ -116,6 +117,14 @@ namespace HeavenStudio.Games Manual, } + public enum EnemyType + { + Basic = 0, + Practice, + Endless, + Lockstep = 100, + } + [System.Serializable] public struct PatternItem { @@ -154,7 +163,7 @@ namespace HeavenStudio.Games { foreach (var crEvent in crHandlerInstance.queuedEvents) { - SpawnEnemy(crEvent.beat, crEvent.DynamicData["pos"], false, crHandlerInstance.intervalLength, true); + SpawnEnemy(crEvent.beat, crEvent.DynamicData["pos"], (int)Enum.Parse(typeof(EnemyType), crEvent.tag), false, crHandlerInstance.intervalLength, true); } } } @@ -227,12 +236,13 @@ namespace HeavenStudio.Games } } - public void SpawnEnemy(double beat, Vector2 pos, bool active = true, float interval = 4f, bool awake = false) + public void SpawnEnemy(double beat, Vector2 pos, int type, + bool active = true, float interval = 4f, bool awake = false) { if (!awake) { if (crHandlerInstance.queuedEvents.Count > 0 && crHandlerInstance.queuedEvents.Find(x => x.beat == beat || (beat >= x.beat && beat <= x.beat + x.length)) != null) return; - crHandlerInstance.AddEvent(beat, crParams: new(){ + crHandlerInstance.AddEvent(beat, tag: Enum.GetName(typeof(EnemyType), type), crParams: new(){ new CallAndResponseHandler.CallAndResponseEventParam("pos", pos), }); } @@ -240,9 +250,9 @@ namespace HeavenStudio.Games var newEnemy = Instantiate(baseEnemy, enemyHolder).GetComponent(); spawnedEnemies.Add(newEnemy); newEnemy.createBeat = beat; - newEnemy.scaleSpeed = scaleSpeed/interval; + newEnemy.type = type; newEnemy.pos = pos; - newEnemy.Init(); + newEnemy.scaleSpeed = scaleSpeed/interval; if (active) { @@ -252,6 +262,7 @@ namespace HeavenStudio.Games new BeatAction.Action(beat, delegate { newEnemy.gameObject.SetActive(true); + newEnemy.Init(); newEnemy.SpawnAnim(); }) }); @@ -259,6 +270,7 @@ namespace HeavenStudio.Games else { newEnemy.gameObject.SetActive(true); + newEnemy.Init(); } } @@ -294,7 +306,7 @@ namespace HeavenStudio.Games var posData = plcPattern.posPattern[relevantIndex].posData; int posDataIndex = Mathf.Min(posData.Length - 1, i); var pos = posData[posDataIndex]; - SpawnEnemy(evt.beat, pos, evt.beat >= gameSwitchBeat, interval); + SpawnEnemy(evt.beat, pos, evt["type"], evt.beat >= gameSwitchBeat, interval); } } else @@ -303,7 +315,7 @@ namespace HeavenStudio.Games { Vector2 pos = new Vector2(evt["x_int"], evt["y_int"]); if (evt["fine"]) pos = new Vector2(evt["x_float"], evt["y_float"]); - SpawnEnemy(evt.beat, pos, evt.beat >= gameSwitchBeat, interval); + SpawnEnemy(evt.beat, pos, evt["type"], evt.beat >= gameSwitchBeat, interval); } } if (autoPassTurn) @@ -362,7 +374,7 @@ namespace HeavenStudio.Games public static void PrePassTurn(double beat) { - if (GameManager.instance.currentGame == "tambourine") + if (GameManager.instance.currentGame == "shootEmUp") { instance.PassTurnStandalone(beat); } @@ -427,6 +439,7 @@ namespace HeavenStudio.Games break; case (int)MonitorAnimation.Bop: canBop = true; + captain.DoScaledAnimationAsync("capBop", 1f); break; } } @@ -435,6 +448,12 @@ namespace HeavenStudio.Games { introGate.Play("gateShow", 0, 0); if (close) return; + MultiSound.Play(new MultiSound.Sound[] + { + new MultiSound.Sound("shootEmUp/gate1", beat), + new MultiSound.Sound("shootEmUp/gate2", beat + length), + new MultiSound.Sound("shootEmUp/gate3", beat + 2*length), + }); BeatAction.New(instance, new List() { new BeatAction.Action(beat, delegate {