Compare commits

..

No commits in common. "master" and "fix-bomb-expansion" have entirely different histories.

111 changed files with 1426 additions and 3641 deletions

2
.gitignore vendored
View file

@ -143,7 +143,6 @@ fabric.properties
# TextMesh Pro files
[Aa]ssets/TextMesh*Pro/
[Aa]ssets/TextMesh*
# Visual Studio cache directory
.vs/
@ -537,7 +536,6 @@ MigrationBackup/
# Ignore editor plugins
Assets/Plugins/Editor*
[Aa]ssets/Plugins/Editor/JetBrains/*
Assets/TextMesh Pro.meta
# Don't store keystores on Github
*.keystore

View file

@ -21,57 +21,51 @@ AnimationClip:
- curve:
- time: 0
value: {fileID: 21300000, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 0.16666667
- time: 0.2
value: {fileID: 21300002, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 0.33333334
- time: 0.4
value: {fileID: 21300004, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 0.5
- time: 0.6
value: {fileID: 21300006, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 0.6666667
- time: 0.8
value: {fileID: 21300008, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 0.8333333
value: {fileID: 21300010, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 1
value: {fileID: 21300012, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 1.1666666
value: {fileID: 21300010, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 1.2
value: {fileID: 21300014, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 1.3333334
- time: 1.4
value: {fileID: 21300016, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 1.5
- time: 1.6
value: {fileID: 21300018, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 1.6666666
- time: 1.8
value: {fileID: 21300020, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 1.8333334
value: {fileID: 21300022, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 2
value: {fileID: 21300022, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 2.2
value: {fileID: 21300024, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 2.1666667
- time: 2.4
value: {fileID: 21300026, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 2.3333333
- time: 2.6
value: {fileID: 21300028, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 2.5
- time: 2.8
value: {fileID: 21300030, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 2.6666667
value: {fileID: 21300032, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 2.8333333
value: {fileID: 21300034, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 3
value: {fileID: 21300032, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 3.2
value: {fileID: 21300036, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 3.1666667
- time: 3.4
value: {fileID: 21300038, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 3.3333333
- time: 3.6
value: {fileID: 21300040, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 3.5
- time: 3.8
value: {fileID: 21300042, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 3.6666667
- time: 4
value: {fileID: 21300044, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 3.8333333
value: {fileID: 21300046, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
m_SampleRate: 6
m_SampleRate: 5
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
@ -92,7 +86,6 @@ AnimationClip:
- {fileID: 21300006, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300008, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300010, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300012, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300014, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300016, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300018, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
@ -103,19 +96,17 @@ AnimationClip:
- {fileID: 21300028, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300030, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300032, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300034, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300036, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300038, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300040, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300042, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300044, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300046, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 4
m_StopTime: 4.2
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0

View file

@ -21,23 +21,23 @@ AnimationClip:
- curve:
- time: 0
value: {fileID: 21300046, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 0.1
value: {fileID: 21300048, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 0.2
value: {fileID: 21300050, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 0.3
value: {fileID: 21300052, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
value: {fileID: 21300048, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 0.4
value: {fileID: 21300054, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 0.5
value: {fileID: 21300056, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
value: {fileID: 21300050, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 0.6
value: {fileID: 21300052, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 0.8
value: {fileID: 21300054, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 1
value: {fileID: 21300056, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 1.2
value: {fileID: 21300058, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
m_SampleRate: 10
m_SampleRate: 5
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
@ -64,12 +64,12 @@ AnimationClip:
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.70000005
m_StopTime: 1.4000001
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0

View file

@ -6,7 +6,7 @@ AnimationClip:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SnowEnemy
m_Name: Dumber
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
@ -20,9 +20,9 @@ AnimationClip:
m_PPtrCurves:
- curve:
- time: 0
value: {fileID: 21300000, guid: 0c80326efa3e64cfca08717f4109832b, type: 3}
value: {fileID: 21300000, guid: 7fe20d448d7a54c2a8c561fb5736f00b, type: 3}
- time: 0.16666667
value: {fileID: 21300002, guid: 0c80326efa3e64cfca08717f4109832b, type: 3}
value: {fileID: 21300002, guid: 7fe20d448d7a54c2a8c561fb5736f00b, type: 3}
attribute: m_Sprite
path:
classID: 212
@ -42,8 +42,8 @@ AnimationClip:
customType: 23
isPPtrCurve: 1
pptrCurveMapping:
- {fileID: 21300000, guid: 0c80326efa3e64cfca08717f4109832b, type: 3}
- {fileID: 21300002, guid: 0c80326efa3e64cfca08717f4109832b, type: 3}
- {fileID: 21300000, guid: 7fe20d448d7a54c2a8c561fb5736f00b, type: 3}
- {fileID: 21300002, guid: 7fe20d448d7a54c2a8c561fb5736f00b, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}

View file

@ -6,15 +6,9 @@ AnimatorController:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SnowEnemy
m_Name: Dumber
serializedVersion: 5
m_AnimatorParameters:
- m_Name: animExplode
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
m_AnimatorParameters: []
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
@ -28,31 +22,6 @@ AnimatorController:
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1101 &1101050033753575424
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: animExplode
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102904380652978156}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.25
m_HasExitTime: 0
m_HasFixedDuration: 0
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &1102746068587636566
AnimatorState:
serializedVersion: 5
@ -60,34 +29,7 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Normal
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 1101050033753575424}
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: d32d6d8d922234eafb6c5669dc7a1cc6, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &1102904380652978156
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Exploding
m_Name: Dumber
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
@ -100,7 +42,7 @@ AnimatorState:
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 64702b3fca0bfc246824242792c7d291, type: 2}
m_Motion: {fileID: 7400000, guid: d32d6d8d922234eafb6c5669dc7a1cc6, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
@ -117,17 +59,14 @@ AnimatorStateMachine:
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 1102746068587636566}
m_Position: {x: 336, y: 24, z: 0}
- serializedVersion: 1
m_State: {fileID: 1102904380652978156}
m_Position: {x: 264, y: -108, z: 0}
m_Position: {x: 200, y: 0, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 120, y: 156, 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: 1102746068587636566}

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 142c20937b0ba4d1b9a77c8504dda487
guid: 55efdd6010414554092e24563071b9f7
folderAsset: yes
DefaultImporter:
externalObjects: {}

View file

@ -0,0 +1,53 @@
%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: New Animation
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: []
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: []
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View file

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

View file

@ -0,0 +1,77 @@
%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: Pulverise
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: 21300052, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 0.06666667
value: {fileID: 21300054, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 0.13333334
value: {fileID: 21300056, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- time: 0.2
value: {fileID: 21300058, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
m_SampleRate: 15
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: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
pptrCurveMapping:
- {fileID: 21300052, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300054, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300056, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
- {fileID: 21300058, guid: 1611b607563ac5b4d919348f10e92487, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.26666668
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View file

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

View file

@ -0,0 +1,93 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Pulverised
serializedVersion: 5
m_AnimatorParameters:
- m_Name: Blend
m_Type: 1
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 1107354719584562404}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!206 &206365093828297014
BlendTree:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Blend Tree
m_Childs: []
m_BlendParameter: Blend
m_BlendParameterY: Blend
m_MinThreshold: 0
m_MaxThreshold: 1
m_UseAutomaticThresholds: 1
m_NormalizedBlendValues: 0
m_BlendType: 0
--- !u!1102 &1102215421647958874
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Pulverise
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: 206365093828297014}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1107 &1107354719584562404
AnimatorStateMachine:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 1102215421647958874}
m_Position: {x: 264, y: 72, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 48, y: 24, z: 0}
m_EntryPosition: {x: 48, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 1102215421647958874}

View file

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

View file

@ -0,0 +1,72 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: RespawnPosition
serializedVersion: 5
m_AnimatorParameters: []
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 1107214311928363052}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1102 &1102082738737299528
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Pulverise
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: 536dece361312c14bac0cf30829bee84, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1107 &1107214311928363052
AnimatorStateMachine:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 1102082738737299528}
m_Position: {x: 200, y: 0, 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: 1102082738737299528}

View file

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

View file

@ -14,19 +14,13 @@ AnimatorController:
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
m_Controller: {fileID: 9100000}
- m_Name: AnimHorizontal
m_Type: 1
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
- m_Name: AnimDeath
m_Type: 4
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
m_Controller: {fileID: 9100000}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
@ -76,9 +70,6 @@ AnimatorStateTransition:
- m_ConditionMode: 4
m_ConditionEvent: AnimHorizontal
m_EventTreshold: -0.5
- m_ConditionMode: 2
m_ConditionEvent: AnimDeath
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102748770843519456}
m_Solo: 0
@ -104,9 +95,6 @@ AnimatorStateTransition:
- m_ConditionMode: 4
m_ConditionEvent: AnimVertical
m_EventTreshold: -0.5
- m_ConditionMode: 2
m_ConditionEvent: AnimDeath
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102120525955278410}
m_Solo: 0
@ -132,9 +120,6 @@ AnimatorStateTransition:
- m_ConditionMode: 3
m_ConditionEvent: AnimVertical
m_EventTreshold: 0.5
- m_ConditionMode: 2
m_ConditionEvent: AnimDeath
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102707571100786070}
m_Solo: 0
@ -210,9 +195,6 @@ AnimatorStateTransition:
- m_ConditionMode: 3
m_ConditionEvent: AnimHorizontal
m_EventTreshold: 0.5
- m_ConditionMode: 2
m_ConditionEvent: AnimDeath
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102659054847133602}
m_Solo: 0
@ -252,31 +234,6 @@ AnimatorStateTransition:
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &1101700441446661162
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: AnimDeath
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102642923892936116}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasFixedDuration: 0
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 0
--- !u!1102 &1102120525955278410
AnimatorState:
serializedVersion: 5
@ -330,32 +287,6 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &1102642923892936116
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Dead
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: 64702b3fca0bfc246824242792c7d291, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &1102659054847133602
AnimatorState:
serializedVersion: 5
@ -548,16 +479,12 @@ AnimatorStateMachine:
- serializedVersion: 1
m_State: {fileID: 1102847672094439108}
m_Position: {x: 468, y: -72, z: 0}
- serializedVersion: 1
m_State: {fileID: 1102642923892936116}
m_Position: {x: 36, y: -192, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions:
- {fileID: 1101257656438077058}
- {fileID: 1101676765764997760}
- {fileID: 1101374072583212264}
- {fileID: 1101296880187612534}
- {fileID: 1101700441446661162}
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []

View file

@ -1,6 +1,6 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1566036887972620463
--- !u!1 &2377911311221568072
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -8,36 +8,38 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8259350758463922881}
- component: {fileID: 3408177363536354565}
- component: {fileID: 7980903176349258245}
- component: {fileID: 6699440875015304414}
- component: {fileID: 7875732231624854186}
- component: {fileID: 5909025813549437813}
m_Layer: 0
m_Name: Sprite
m_Name: BombsUpgrade
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8259350758463922881
--- !u!4 &7980903176349258245
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1566036887972620463}
m_GameObject: {fileID: 2377911311221568072}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 7980903176349258245}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &3408177363536354565
--- !u!212 &6699440875015304414
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1566036887972620463}
m_GameObject: {fileID: 2377911311221568072}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
@ -67,9 +69,9 @@ SpriteRenderer:
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: -1
m_Sprite: {fileID: 21300002, guid: 5b4a5aab9761a49faa85fef071ef948c, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_SortingOrder: 0
m_Sprite: {fileID: 21300000, guid: 753e29d30d8044605aede9853c9308c7, type: 3}
m_Color: {r: 0.9485793, g: 0, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
@ -79,39 +81,6 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &2377911311221568072
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7980903176349258245}
- component: {fileID: 7875732231624854186}
- component: {fileID: 5909025813549437813}
m_Layer: 0
m_Name: BombUpgrade
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7980903176349258245
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2377911311221568072}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 8259350758463922881}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!61 &7875732231624854186
BoxCollider2D:
m_ObjectHideFlags: 0

View file

@ -69,7 +69,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_Sprite: {fileID: 21300000, guid: 0c80326efa3e64cfca08717f4109832b, type: 3}
m_Sprite: {fileID: 21300000, guid: 7fe20d448d7a54c2a8c561fb5736f00b, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
@ -111,9 +111,8 @@ GameObject:
- component: {fileID: 1330784298487411849}
- component: {fileID: 3670963333241729696}
- component: {fileID: 7110750718968962680}
- component: {fileID: 430766997717814334}
m_Layer: 14
m_Name: SnowEnemyRandom
m_Name: Dumb
m_TagString: Enemy
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -193,15 +192,3 @@ BoxCollider2D:
serializedVersion: 2
m_Size: {x: 0.9, y: 0.9}
m_EdgeRadius: 0
--- !u!114 &430766997717814334
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7795087027144463245}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1ec64748dfd5f8948996e97a49538538, type: 3}
m_Name:
m_EditorClassIdentifier:

View file

@ -1,175 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1538228739935925895
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1538228739935925892}
- component: {fileID: 1538228739935925893}
- component: {fileID: 1538228739935925894}
- component: {fileID: 1538228739935925891}
m_Layer: 14
m_Name: DummyEnemy
m_TagString: Enemy
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1538228739935925892
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1538228739935925895}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 5, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1538228741088485487}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!50 &1538228739935925893
Rigidbody2D:
serializedVersion: 4
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1538228739935925895}
m_BodyType: 0
m_Simulated: 1
m_UseFullKinematicContacts: 0
m_UseAutoMass: 0
m_Mass: 1
m_LinearDrag: 0
m_AngularDrag: 0.05
m_GravityScale: 0
m_Material: {fileID: 6200000, guid: dc8eb6133faaf45f6820487d0d28b47f, type: 2}
m_Interpolate: 0
m_SleepingMode: 1
m_CollisionDetection: 0
m_Constraints: 4
--- !u!114 &1538228739935925894
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1538228739935925895}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 29972d94a069eef40924fbb80ca2fb24, type: 3}
m_Name:
m_EditorClassIdentifier:
OneDirection: {x: -1, y: 0}
--- !u!61 &1538228739935925891
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1538228739935925895}
m_Enabled: 1
m_Density: 1
m_Material: {fileID: 0}
m_IsTrigger: 0
m_UsedByEffector: 0
m_UsedByComposite: 0
m_Offset: {x: 0.5, y: 0.9}
m_SpriteTilingProperty:
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0, y: 0}
oldSize: {x: 0, y: 0}
newSize: {x: 0, y: 0}
adaptiveTilingThreshold: 0
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
serializedVersion: 2
m_Size: {x: 0.5, y: 0.9}
m_EdgeRadius: 0
--- !u!1 &1538228741088485488
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1538228741088485487}
- component: {fileID: 1538228741088485486}
m_Layer: 14
m_Name: Sprite
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1538228741088485487
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1538228741088485488}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1538228739935925892}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &1538228741088485486
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1538228741088485488}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
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_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
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: 0
m_Sprite: {fileID: 21300002, guid: 0c80326efa3e64cfca08717f4109832b, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 1, y: 1}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0

View file

@ -1,6 +1,6 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &687830553201031435
--- !u!1 &7385886653159515755
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -8,36 +8,39 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7203846401108240184}
- component: {fileID: 734903871276958427}
- component: {fileID: 685382037628668327}
- component: {fileID: 7037551310800415105}
- component: {fileID: 7958292204112110464}
- component: {fileID: 5334633105760309190}
- component: {fileID: 6293070509487257227}
m_Layer: 0
m_Name: Sprite
m_Name: FlameUpgrade
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7203846401108240184
--- !u!4 &685382037628668327
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 687830553201031435}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0.5, y: 0.5, z: 0}
m_GameObject: {fileID: 7385886653159515755}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 685382037628668327}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &734903871276958427
--- !u!212 &7037551310800415105
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 687830553201031435}
m_GameObject: {fileID: 7385886653159515755}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
@ -67,9 +70,9 @@ SpriteRenderer:
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: -1
m_Sprite: {fileID: 21300004, guid: 5b4a5aab9761a49faa85fef071ef948c, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_SortingOrder: 0
m_Sprite: {fileID: 21300000, guid: 753e29d30d8044605aede9853c9308c7, type: 3}
m_Color: {r: 1, g: 0.1812256, b: 0, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
@ -79,39 +82,6 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &7385886653159515755
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 685382037628668327}
- component: {fileID: 7958292204112110464}
- component: {fileID: 5334633105760309190}
m_Layer: 0
m_Name: FlameUpgrade
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &685382037628668327
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7385886653159515755}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 7203846401108240184}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!61 &7958292204112110464
BoxCollider2D:
m_ObjectHideFlags: 0
@ -150,3 +120,15 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 94153367f2364ab38597c8f4a6521909, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &6293070509487257227
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7385886653159515755}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 94153367f2364ab38597c8f4a6521909, type: 3}
m_Name:
m_EditorClassIdentifier:

View file

@ -9,6 +9,7 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 5958400204756161002}
- component: {fileID: 7382262205660184478}
- component: {fileID: 2747432428292150867}
- component: {fileID: 6291791717356696744}
m_Layer: 0
@ -28,11 +29,58 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 3765005714787864007}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &7382262205660184478
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4242909486338491383}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
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_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
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: 0
m_Sprite: {fileID: 21300000, guid: 753e29d30d8044605aede9853c9308c7, type: 3}
m_Color: {r: 0.97521883, g: 0.9811321, b: 0, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 1, y: 1}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!61 &2747432428292150867
BoxCollider2D:
m_ObjectHideFlags: 0
@ -71,82 +119,3 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 0b8c723aa8c7476789cbee67fcadfbef, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &8860579196177115379
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3765005714787864007}
- component: {fileID: 2705328157713901762}
m_Layer: 0
m_Name: Sprite
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3765005714787864007
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8860579196177115379}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 5958400204756161002}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &2705328157713901762
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8860579196177115379}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
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_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
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: -1
m_Sprite: {fileID: 21300006, guid: 5b4a5aab9761a49faa85fef071ef948c, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 1, y: 1}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0

View file

@ -9,6 +9,7 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 3243993883904879596}
- component: {fileID: 3212428174306319952}
- component: {fileID: 3858379993772342456}
- component: {fileID: 1949159407646367785}
m_Layer: 0
@ -26,13 +27,60 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1538214466168189615}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalPosition: {x: 10.299996, y: -4.6040254, z: -0.13553935}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 4532808296901133986}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &3212428174306319952
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1538214466168189615}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
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_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
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: 0
m_Sprite: {fileID: 21300000, guid: ac1b266a61f9d43feb33de3a91647f99, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 0.32, y: 0.32}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &3858379993772342456
MonoBehaviour:
m_ObjectHideFlags: 0
@ -71,82 +119,3 @@ BoxCollider2D:
serializedVersion: 2
m_Size: {x: 0.1, y: 0.8}
m_EdgeRadius: 0
--- !u!1 &3021161452740670333
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4532808296901133986}
- component: {fileID: 191386183797221936}
m_Layer: 0
m_Name: Sprite
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4532808296901133986
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3021161452740670333}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 3243993883904879596}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &191386183797221936
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3021161452740670333}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
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_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
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: 0
m_Sprite: {fileID: 21300000, guid: 7f28d6dcaa824294aa07212b8b0f9bc5, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 1, y: 1}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0

BIN
Assets/DevMocks/enemy1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 B

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 7f28d6dcaa824294aa07212b8b0f9bc5
guid: 55fee6a02b8d5bc4e993261a717e89cc
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
@ -80,24 +80,13 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- serializedVersion: 2
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: ccc5de5a9d6fee444af0b231cc93c724
spriteID: 5d310d0120df55e4c86df3d39d7addcc
vertices: []
indices:
edges: []

View file

@ -1,5 +1,6 @@
fileFormatVersion: 2
guid: 7de2b522bb32ea84a9a474de611dd137
guid: bf3e6294c377ca84d82651fe870a56dc
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:

View file

@ -11,7 +11,7 @@ GameObject:
- component: {fileID: 7051718864318870241}
- component: {fileID: 5205340436538485392}
- component: {fileID: 9038174535399619494}
m_Layer: 9
m_Layer: 0
m_Name: Sprite
m_TagString: Untagged
m_Icon: {fileID: 0}
@ -110,7 +110,8 @@ GameObject:
- component: {fileID: 6884214445299032247}
- component: {fileID: 8277411166637495994}
- component: {fileID: 1412018915745597861}
m_Layer: 9
- component: {fileID: 662054772667612550}
m_Layer: 0
m_Name: Bomb
m_TagString: Bomb
m_Icon: {fileID: 0}
@ -168,6 +169,25 @@ Rigidbody2D:
m_SleepingMode: 1
m_CollisionDetection: 0
m_Constraints: 4
--- !u!95 &662054772667612550
Animator:
serializedVersion: 3
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5909392949477884267}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: 59ef0a1e37fe3024a8d436860c0fcafb, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorControllerStateOnDisable: 0
--- !u!1 &8683250532155440700
GameObject:
m_ObjectHideFlags: 0
@ -178,7 +198,7 @@ GameObject:
m_Component:
- component: {fileID: 6508079771898401246}
- component: {fileID: 2175931883523803554}
m_Layer: 9
m_Layer: 0
m_Name: 2DCollider
m_TagString: Bomb
m_Icon: {fileID: 0}

View file

@ -0,0 +1,47 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1896072655702505677
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1896072655702505676}
- component: {fileID: 5279176810039195611}
m_Layer: 0
m_Name: BombSpawner
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1896072655702505676
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1896072655702505677}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 7.8192964, y: -2.0062397, z: 8.0234375}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &5279176810039195611
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1896072655702505677}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cd3bf3610d18aa14e805185b5e3f2d4b, type: 3}
m_Name:
m_EditorClassIdentifier:
bombPrefab: {fileID: 5909392949477884267, guid: 28467e0d65b5d3844bf1862ac0c49ad9,
type: 3}

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 2ab6367571f7bcc45b9dd6cc9ee7f656
guid: c9b7903151183144dbf30c9b2ab371b2
PrefabImporter:
externalObjects: {}
userData:

View file

@ -11,7 +11,6 @@ GameObject:
- component: {fileID: 2219719956326328737}
- component: {fileID: 2976769454423190410}
- component: {fileID: 5317321277803550577}
- component: {fileID: 5518668270798060090}
m_Layer: 0
m_Name: Explosion
m_TagString: Explosion
@ -72,18 +71,6 @@ BoxCollider2D:
serializedVersion: 2
m_Size: {x: 0.5, y: 0.5}
m_EdgeRadius: 0
--- !u!114 &5518668270798060090
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2086996798441195857}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 00b7acc459217644283ce8202cadcded, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &5120645164323341697
GameObject:
m_ObjectHideFlags: 0

View file

@ -13,7 +13,7 @@ GameObject:
- component: {fileID: 3292464784200894759}
- component: {fileID: 2823282795561844331}
m_Layer: 14
m_Name: SnowEnemyCollision
m_Name: Dumber
m_TagString: Enemy
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -181,7 +181,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_Sprite: {fileID: 21300000, guid: 0c80326efa3e64cfca08717f4109832b, type: 3}
m_Sprite: {fileID: 21300000, guid: 7fe20d448d7a54c2a8c561fb5736f00b, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0

View file

@ -1,152 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1820949686450855695
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5028610574346420729}
- component: {fileID: 7106954491075610430}
m_Layer: 0
m_Name: Sprite
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5028610574346420729
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1820949686450855695}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 5103883358052461890}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &7106954491075610430
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1820949686450855695}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
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_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
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: -1
m_Sprite: {fileID: 21300000, guid: 5b4a5aab9761a49faa85fef071ef948c, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 1, y: 1}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &4467162782262204990
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5103883358052461890}
- component: {fileID: 234472779121130071}
- component: {fileID: 5391029322786980951}
m_Layer: 0
m_Name: GoldenBombUpgrade
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5103883358052461890
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4467162782262204990}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 226.39688, y: 753.2948, z: -16.29858}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 5028610574346420729}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &234472779121130071
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4467162782262204990}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 13e9051b005746efb7e4ab749d62ad03, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!61 &5391029322786980951
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4467162782262204990}
m_Enabled: 1
m_Density: 1
m_Material: {fileID: 0}
m_IsTrigger: 1
m_UsedByEffector: 0
m_UsedByComposite: 0
m_Offset: {x: 0.5, y: 0.5}
m_SpriteTilingProperty:
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0, y: 0}
oldSize: {x: 1, y: 1}
newSize: {x: 1, y: 1}
adaptiveTilingThreshold: 0.5
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
serializedVersion: 2
m_Size: {x: 1, y: 1}
m_EdgeRadius: 0

View file

@ -10,6 +10,8 @@ GameObject:
m_Component:
- component: {fileID: 158905820630581587}
- component: {fileID: 158905820630581586}
- component: {fileID: 158905820630581596}
- component: {fileID: 6316647355651322741}
m_Layer: 0
m_Name: GameManager
m_TagString: Untagged
@ -45,3 +47,31 @@ MonoBehaviour:
m_EditorClassIdentifier:
preStageUiPrefab: {fileID: 4994633962466276707, guid: 1f5ebc13237e070449ea8bc9e8b07ac8,
type: 3}
--- !u!114 &158905820630581596
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 158905820630581597}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 308dfc6b26c3b422faf1717231fc888b, type: 3}
m_Name:
m_EditorClassIdentifier:
boardHolder: {fileID: 0}
startPosition: {fileID: 0}
indestructibleWallPrefab: {fileID: 5996206011854593075, guid: 84b92ac1e96d940bda97d1b1125887d7,
type: 3}
--- !u!114 &6316647355651322741
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 158905820630581597}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e64481d2e18e4b6ca4f22926a5061450, type: 3}
m_Name:
m_EditorClassIdentifier:

View file

@ -69,7 +69,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 10
m_Sprite: {fileID: 21300072, guid: 9f5aa0a5274004a2d9ed6d24d3790c5f, type: 3}
m_Sprite: {fileID: 21300064, guid: 9f5aa0a5274004a2d9ed6d24d3790c5f, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
@ -145,7 +145,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: e3cc05deb3d6e44128ad7bc8610cedac, type: 3}
m_Name:
m_EditorClassIdentifier:
godMode: 0
movementSpeed: 4
--- !u!50 &6843575828445418653
Rigidbody2D:

View file

@ -10,6 +10,7 @@ GameObject:
m_Component:
- component: {fileID: 5407421983573782568}
- component: {fileID: 8221087269156402184}
- component: {fileID: 9007082834052858790}
m_Layer: 0
m_Name: Sprite
m_TagString: Untagged
@ -79,6 +80,25 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!95 &9007082834052858790
Animator:
serializedVersion: 3
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2151260512302392238}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: f99f14e77d0442846ba579190dffc1c2, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorControllerStateOnDisable: 0
--- !u!1 &8729402555587492036
GameObject:
m_ObjectHideFlags: 0

View file

@ -121,6 +121,7 @@ GameObject:
m_Component:
- component: {fileID: 8553251917334281199}
- component: {fileID: 2562328647522734305}
- component: {fileID: 1235137903643130781}
m_Layer: 8
m_Name: Sprite
m_TagString: Untagged
@ -190,3 +191,22 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!95 &1235137903643130781
Animator:
serializedVersion: 3
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5688352134163068791}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: f99f14e77d0442846ba579190dffc1c2, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorControllerStateOnDisable: 0

View file

@ -136,6 +136,75 @@ Transform:
type: 3}
m_PrefabInstance: {fileID: 6843575829779162303}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &2013742123
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1896072655702505677, guid: c9b7903151183144dbf30c9b2ab371b2,
type: 3}
propertyPath: m_Name
value: BombSpawner
objectReference: {fileID: 0}
- target: {fileID: 1896072655702505676, guid: c9b7903151183144dbf30c9b2ab371b2,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1896072655702505676, guid: c9b7903151183144dbf30c9b2ab371b2,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1896072655702505676, guid: c9b7903151183144dbf30c9b2ab371b2,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1896072655702505676, guid: c9b7903151183144dbf30c9b2ab371b2,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1896072655702505676, guid: c9b7903151183144dbf30c9b2ab371b2,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1896072655702505676, guid: c9b7903151183144dbf30c9b2ab371b2,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1896072655702505676, guid: c9b7903151183144dbf30c9b2ab371b2,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1896072655702505676, guid: c9b7903151183144dbf30c9b2ab371b2,
type: 3}
propertyPath: m_RootOrder
value: 7
objectReference: {fileID: 0}
- target: {fileID: 1896072655702505676, guid: c9b7903151183144dbf30c9b2ab371b2,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1896072655702505676, guid: c9b7903151183144dbf30c9b2ab371b2,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1896072655702505676, guid: c9b7903151183144dbf30c9b2ab371b2,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: c9b7903151183144dbf30c9b2ab371b2, type: 3}
--- !u!1001 &158905819792232859
PrefabInstance:
m_ObjectHideFlags: 0
@ -143,14 +212,6 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 0}
propertyPath: boardHolder
value:
objectReference: {fileID: 585332173}
- target: {fileID: 0}
propertyPath: startPosition
value:
objectReference: {fileID: 185746015}
- target: {fileID: 158905820630581597, guid: fdaa7451ab31b477b930076bbc888bab,
type: 3}
propertyPath: m_Name
@ -211,6 +272,16 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 158905820630581596, guid: fdaa7451ab31b477b930076bbc888bab,
type: 3}
propertyPath: boardHolder
value:
objectReference: {fileID: 585332173}
- target: {fileID: 158905820630581596, guid: fdaa7451ab31b477b930076bbc888bab,
type: 3}
propertyPath: startPosition
value:
objectReference: {fileID: 185746015}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: fdaa7451ab31b477b930076bbc888bab, type: 3}
--- !u!1001 &485484359436847253
@ -228,7 +299,7 @@ PrefabInstance:
- target: {fileID: 485484359815032853, guid: a977eab75b5324ec4b659c2e2a0e9cfd,
type: 3}
propertyPath: m_LocalPosition.x
value: 11.490717
value: 10.969402
objectReference: {fileID: 0}
- target: {fileID: 485484359815032853, guid: a977eab75b5324ec4b659c2e2a0e9cfd,
type: 3}
@ -332,7 +403,7 @@ PrefabInstance:
- target: {fileID: 2219516564235934920, guid: 4ca131020414f4b1597dac2e1d292d7f,
type: 3}
propertyPath: m_RootOrder
value: 7
value: 8
objectReference: {fileID: 0}
- target: {fileID: 2219516564235934920, guid: 4ca131020414f4b1597dac2e1d292d7f,
type: 3}

View file

@ -340,12 +340,12 @@ MonoBehaviour:
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 0.9150943, g: 0, b: 0, a: 1}
topRight: {r: 0.9150943, g: 0, b: 0, a: 1}
bottomLeft: {r: 0.9150943, g: 0, b: 0, a: 1}
bottomRight: {r: 0.9150943, g: 0, b: 0, a: 1}
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
@ -428,6 +428,163 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 294797855}
m_CullTransparentMesh: 0
--- !u!1 &503990420
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 503990421}
- component: {fileID: 503990423}
- component: {fileID: 503990422}
m_Layer: 5
m_Name: Credits
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &503990421
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 503990420}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.91363, y: 0.91363, z: 0.91363}
m_Children: []
m_Father: {fileID: 727235532}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0}
m_AnchoredPosition: {x: 0, y: 40.5}
m_SizeDelta: {x: 838.4, y: 47}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &503990422
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 503990420}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_text: By Maxi, Andrei & Denis (Internal Testing Version)
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4286677377
m_fontColor: {r: 0.509434, g: 0.509434, b: 0.509434, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_outlineColor:
serializedVersion: 2
rgba: 4278190080
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_textAlignment: 257
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_firstOverflowCharacterIndex: -1
m_linkedTextComponent: {fileID: 0}
m_isLinkedTextComponent: 0
m_isTextTruncated: 0
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_ignoreRectMaskCulling: 0
m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_VertexBufferAutoSizeReduction: 1
m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: -0.9051995, y: 0, z: 0, w: -0.2210417}
m_textInfo:
textComponent: {fileID: 503990422}
characterCount: 50
spriteCount: 0
spaceCount: 7
wordCount: 7
linkCount: 0
lineCount: 1
pageCount: 1
materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
m_subTextObjects:
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &503990423
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 503990420}
m_CullTransparentMesh: 0
--- !u!1 &637182161
GameObject:
m_ObjectHideFlags: 0
@ -777,6 +934,7 @@ RectTransform:
- {fileID: 952628972}
- {fileID: 294797856}
- {fileID: 1900864593}
- {fileID: 503990421}
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

File diff suppressed because it is too large Load diff

View file

@ -6,5 +6,3 @@ Installed Packages:
====
Cinemachine 2.2.9
TextMeshPro 1.4.1
PixelPerfect 1.0.1

View file

@ -4,11 +4,11 @@ using src.Base;
using src.Managers;
using UnityEngine;
namespace src.Bomb
namespace src.Ammo
{
public class BombCameraShake : GameplayComponent
{
private BombsUtilManager _bombsUtilManager;
private readonly BombsUtilManager _bombsUtilManager = BombsUtilManager.Instance;
public float amplitudeGain = 3f;
public float frequencyGain = 3f;
@ -18,7 +18,6 @@ namespace src.Bomb
// Start is called before the first frame update
private void Start()
{
_bombsUtilManager = BombsUtilManager.instance;
_virtualCamera = GetComponent<CinemachineVirtualCamera>();
_noiseMachine = _virtualCamera.GetCinemachineComponent<CinemachineBasicMultiChannelPerlin>();
}
@ -30,7 +29,7 @@ namespace src.Bomb
private IEnumerator _startCameraShake()
{
SetCameraNoise(amplitudeGain, frequencyGain);
yield return new WaitForSeconds(_bombsUtilManager.explosionDuration);
yield return new WaitForSeconds(_bombsUtilManager.ExplosionDuration);
SetCameraNoise(0, 0);
}

View file

@ -4,28 +4,29 @@ using src.Helpers;
using src.Managers;
using UnityEngine;
namespace src.Bomb
namespace src.Ammo
{
public class BombController : GameplayComponent, IExplosable
{
private readonly BombsUtilManager _bombsUtil = BombsUtilManager.instance;
public GameObject explosionPrefab;
private BombCameraShake _cameraShake;
private SpriteRenderer _spriteRenderer;
private readonly BombsUtilManager _bombsUtil = BombsUtilManager.Instance;
private bool _exploded;
// Start is called before the first frame update
private void Start()
void Start()
{
_cameraShake = GameObject.Find("VCAM1").GetComponent<BombCameraShake>();
_spriteRenderer = GetComponentInChildren<SpriteRenderer>();
Invoke(nameof(Explode), _bombsUtil.timer);
Invoke(nameof(Explode), _bombsUtil.Timer);
}
private void Explode()
void Explode()
{
Instantiate(PrefabAtlas.BombExplosion, transform.position, Quaternion.identity);
Instantiate(explosionPrefab, transform.position, Quaternion.identity);
GetComponentInChildren<SpriteRenderer>().enabled = false;
_spriteRenderer.enabled = false;
_cameraShake.StartCameraShakeCoro();
StartCoroutine(CreateExplosions(Vector3.down));
StartCoroutine(CreateExplosions(Vector3.left));
@ -41,20 +42,21 @@ namespace src.Bomb
private IEnumerator CreateExplosions(Vector3 direction)
{
var currentPosition = transform.position;
for (var i = 1; i < _bombsUtil.power; i++)
for (var i = 1; i < _bombsUtil.Power; i++)
{
var hit = Physics2D.Raycast(new Vector2(currentPosition.x + 0.5f,
currentPosition.y + 0.5f), direction, i, 1 << 8);
if (!hit.collider)
{
Instantiate(PrefabAtlas.BombExplosion, transform.position + i * direction,
PrefabAtlas.BombExplosion.transform.rotation);
Instantiate(explosionPrefab, transform.position + i * direction,
explosionPrefab.transform.rotation);
}
else
{
Debug.Log("Hit something");
var key = hit.collider.GetComponent<IExplosable>();
key?.OnExplosion();
key?.onExplosion();
break;
}
}
@ -66,11 +68,11 @@ namespace src.Bomb
{
if (!_exploded && other.CompareTag("Explosion"))
{
OnExplosion();
onExplosion();
}
}
public void OnExplosion()
public void onExplosion()
{
CancelInvoke(nameof(Explode));
Explode();
@ -78,7 +80,7 @@ namespace src.Bomb
public void OnDestroy()
{
_bombsUtil.UnregisterBomb(transform.position);
_bombsUtil.RemoveBomb(transform.position);
}
}
}

View file

@ -0,0 +1,25 @@
using src.Base;
using src.Managers;
using UnityEngine;
namespace src.Ammo
{
public class BombsSpawner : GameplayComponent
{
public GameObject bombPrefab;
private readonly BombsUtilManager _bombsUtil = BombsUtilManager.Instance;
public void PlaceBomb(Transform transform)
{
var absX = Mathf.RoundToInt(transform.position.x);
var absY = Mathf.RoundToInt(transform.position.y);
var position = new Vector2(absX, absY);
if (_bombsUtil.CanPlaceBomb(position))
{
Instantiate(bombPrefab, position, Quaternion.identity);
_bombsUtil.PlaceBomb(position);
}
}
}
}

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 29972d94a069eef40924fbb80ca2fb24
guid: cd3bf3610d18aa14e805185b5e3f2d4b
MonoImporter:
externalObjects: {}
serializedVersion: 2

View file

@ -1,15 +1,15 @@
using src.Base;
using src.Managers;
namespace src.Bomb
namespace src.Ammo
{
public class BombExplosion : GameplayComponent
public class Explosion : GameplayComponent
{
private readonly BombsUtilManager _bombUtil = BombsUtilManager.instance;
private readonly BombsUtilManager _bombUtil = BombsUtilManager.Instance;
public void Start()
{
Destroy(gameObject, _bombUtil.explosionDuration);
Destroy(gameObject, _bombUtil.ExplosionDuration);
}
}
}

View file

@ -1,92 +1,56 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using src.Helpers;
using src.Managers;
using UnityEngine;
namespace src.Base
public abstract class EnemyBase : MonoBehaviour, IExplosable
{
public abstract class EnemyBase : GameplayComponent, IExplosable
{
private readonly Vector2[] _directions = {Vector3.up, Vector3.down, Vector3.left, Vector3.right};
private readonly GameStateManager _gameStateManager = GameStateManager.instance;
protected Vector2[] _directions = { Vector3.up, Vector3.down, Vector3.left, Vector3.right };
protected readonly GameStateManager gameStateManager = GameStateManager.Instance;
protected Rigidbody2D Rigidbody2d { get; set; }
private Collider2D Collider2D { get; set; }
private Animator Animator { get; set; }
protected float Speed { get; set; }
protected Vector2 Direction { get; set; }
private readonly List<Vector3> _allowedDirections = new List<Vector3>();
private bool _isStuck;
private bool _isDead;
private static readonly int AnimExplode = Animator.StringToHash("animExplode");
// Start is called before the first frame update
protected void Start()
{
Direction = _directions.ChoseRandom();
Rigidbody2d = GetComponent<Rigidbody2D>();
Collider2D = GetComponent<Collider2D>();
Animator = GetComponentInChildren<Animator>();
}
// Update is called once per frame
protected void FixedUpdate()
{
if (_gameStateManager.IsGamePaused || _gameStateManager.IsPlayerMovementForbidden || _isDead)
{
return;
if (gameStateManager.IsGamePaused || gameStateManager.IsPlayerMovementForbidden) {return;}
Rigidbody2d.MovePosition(Rigidbody2d.position + Direction * Speed * Time.deltaTime);
}
if (_isStuck)
{
Unstuck();
}
HandleMovement();
}
/// <summary>
/// This function is implemented by subclasses and should provided personalized movement logic.
/// </summary>
protected abstract void HandleMovement();
public void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Explosion"))
{
OnExplosion();
onExplosion();
}
}
public void OnExplosion()
public void onExplosion()
{
Collider2D.enabled = false;
_isDead = true;
Animator.SetTrigger(AnimExplode);
Destroy(gameObject, 0.7f);
Destroy(gameObject);
}
public void OnCollisionEnter2D(Collision2D col)
{
MoveToCenterOfTheCell();
Unstuck();
}
public void OnCollisionStay2D(Collision2D col)
{
MoveToCenterOfTheCell();
Unstuck();
Direction = _directions.ChoseRandomExcept(Direction);
}
protected void MoveToCenterOfTheCell()
{
var position = transform.position;
var absX = Mathf.RoundToInt(position.x);
var absY = Mathf.RoundToInt(position.y);
var newPosition = new Vector2(absX, absY);
transform.SetPositionAndRotation(newPosition, Quaternion.identity);
var absX = Mathf.RoundToInt(transform.position.x);
var absY = Mathf.RoundToInt(transform.position.y);
Vector2 position = new Vector2(absX, absY);
transform.SetPositionAndRotation(position, Quaternion.identity);
}
protected Vector2 ChooseRandomDirection()
@ -98,39 +62,4 @@ namespace src.Base
{
return _directions.ChoseRandomExcept(direction);
}
private void Unstuck()
{
_allowedDirections.Clear();
StartCoroutine(CheckForObstacle(Vector3.down));
StartCoroutine(CheckForObstacle(Vector3.left));
StartCoroutine(CheckForObstacle(Vector3.up));
StartCoroutine(CheckForObstacle(Vector3.right));
if (_allowedDirections.Count == 0)
{
_isStuck = true;
}
else
{
Direction = _allowedDirections.PeekRandom();
_isStuck = false;
}
}
private IEnumerator CheckForObstacle(Vector3 direction)
{
const int layerMask = 1 << 8; // Block layer
var currentPosition = transform.position;
var hit = Physics2D.Raycast(new Vector2(currentPosition.x + 0.5f, currentPosition.y + 0.5f),
direction, 1, layerMask);
if (!hit.collider)
{
_allowedDirections.Add(direction);
}
yield return new WaitForSeconds(0.05f);
}
}
}

View file

@ -0,0 +1,46 @@
using System;
using src.Helpers;
using UnityEngine;
namespace src.Base
{
public abstract class PlayerBase : GameplayComponent, IExplosable
{
public float movementSpeed = 4f;
/* Movement */
protected Rigidbody2D rigidbody2d;
protected void Start()
{
rigidbody2d = GetComponent<Rigidbody2D>();
}
public void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Explosion"))
{
onExplosion();
}
if (other.CompareTag("Enemy"))
{
OnContactWithEnemy();
}
}
public void onExplosion()
{
DebugHelper.LogInfo("Player hit by explosion");
}
private void OnContactWithEnemy()
{
DebugHelper.LogInfo("Player hit by enemy");
}
public void IncreaseSpeed(float speed)
{
movementSpeed += speed;
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: d928d20fbd868432d806ad1035e67e15
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,19 +1,18 @@
using src.Interfaces;
using src.Managers;
using src.Player;
using src.Upgrade;
using UnityEngine;
namespace src.Base
{
public class UpgradeBase : GameplayComponent, IUpgrade
{
protected GameManager GameManager;
private UpgradeManager _upgradeManager;
protected PlayerController PlayerToUpgrade;
public void Start()
{
_upgradeManager = UpgradeManager.instance;
GameManager = GameManager.Instance;
_upgradeManager = UpgradeManager.Instance;
}
public virtual void PerformUpgrade()
@ -24,7 +23,6 @@ namespace src.Base
public void OnTriggerEnter2D(Collider2D other)
{
if (!other.CompareTag("Player")) return;
PlayerToUpgrade = other.GetComponent<PlayerController>();
PerformUpgrade();
_upgradeManager.ClaimUpgrade(gameObject);
Destroy(gameObject);

View file

@ -1,20 +0,0 @@
using src.Base;
using UnityEngine;
namespace src.Enemy
{
public class CollisionMovementEnemy : EnemyBase
/* Enemy that will change direction only on collision. */
{
protected new void Start()
{
Speed = 4f;
base.Start();
}
protected override void HandleMovement()
{
Rigidbody2d.MovePosition(Rigidbody2d.position + Speed * Time.deltaTime * Direction);
}
}
}

View file

@ -0,0 +1,46 @@
using UnityEngine;
using src.Helpers;
public class DumbEnemy : EnemyBase
{
protected new void Start()
{
Speed = 4f;
base.Start();
}
protected new void FixedUpdate()
{
if (gameStateManager.IsGamePaused || gameStateManager.IsPlayerMovementForbidden) {return;}
if (transform.position.x == Mathf.Floor(transform.position.x) &&
transform.position.y == Mathf.Floor(transform.position.y))
{
if (RandomChange())
{
HandleChangeDirection();
}
else
{
Rigidbody2d.MovePosition(Rigidbody2d.position + Speed * Time.deltaTime * Direction);
}
}
else
{
Rigidbody2d.MovePosition(Rigidbody2d.position + Speed * Time.deltaTime * Direction);
}
}
private bool RandomChange()
{
var random = new System.Random();
var randomNumber = random.Next(0, 100);
return randomNumber <= 25;
}
private void HandleChangeDirection()
{
Direction = ChooseRandomExceptCertainDirection(Direction);
MoveToCenterOfTheCell();
Rigidbody2d.MovePosition(Rigidbody2d.position + Speed * Time.deltaTime * Direction);
}
}

View file

@ -0,0 +1,16 @@
public class DumberEnemy : EnemyBase
{
//Momentan lasam asa, o sa difere probabil la animatii and stats, nu stiu sigur
protected new void Start()
{
Speed = 4f;
base.Start();
}
protected new void FixedUpdate()
{
base.FixedUpdate();
}
}

View file

@ -1,21 +0,0 @@
using src.Base;
using UnityEngine;
namespace src.Enemy.Dummy
{
//This kind of enemy is used just for testing purposes
//This enemy will go just in one direction or stays in place
//To make it stay in place, don't assign any direction in OneDirection slot or assign Vector2.zero
public class OneDirectionEnemy : EnemyBase
{
protected new void Start()
{
Speed = 4.0f;
Rigidbody2d = GetComponent<Rigidbody2D>();
}
protected override void HandleMovement()
{
}
}
}

View file

@ -1,52 +0,0 @@
using System;
using src.Base;
using UnityEngine;
namespace src.Enemy
{
public class RandomMovementEnemy : EnemyBase
{
/* Enemy that will move randomly */
protected new void Start()
{
Speed = 4f;
base.Start();
}
protected override void HandleMovement()
{
var pos = transform.position;
var x = pos.x;
var y = pos.y;
if (Math.Abs(x - Mathf.Floor(x)) < 0.1 && Math.Abs(y - Mathf.Floor(y)) < 0.1)
{
if (RandomChange())
{
HandleChangeDirection();
}
else
{
Rigidbody2d.MovePosition(Rigidbody2d.position + Speed * Time.deltaTime * Direction);
}
}
else
{
Rigidbody2d.MovePosition(Rigidbody2d.position + Speed * Time.deltaTime * Direction);
}
}
private bool RandomChange()
{
var random = new System.Random();
var randomNumber = random.Next(0, 100);
return randomNumber <= 25;
}
private void HandleChangeDirection()
{
Direction = ChooseRandomExceptCertainDirection(Direction);
MoveToCenterOfTheCell();
Rigidbody2d.MovePosition(Rigidbody2d.position + Speed * Time.deltaTime * Direction);
}
}
}

View file

@ -5,7 +5,7 @@ namespace src.Helpers
{
public static class ApplicationActions
{
private static GameStateManager _gameStateManager = GameStateManager.instance;
private static GameStateManager _gameStateManager = GameStateManager.Instance;
public static void QuitGame()
{

View file

@ -12,7 +12,7 @@ namespace src.Helpers
var max = list.Count - 1;
for (var i = min; i < max; i++)
{
var randomPos = Random.Range(min, max);
var randomPos = Mathf.FloorToInt(Random.Range(min, max));
/* Swap elements in list */
var aux = list[randomPos];
@ -23,16 +23,10 @@ namespace src.Helpers
public static T PopRandom<T>(this IList<T> list)
{
var randomIndex = Random.Range(0, list.Count - 1);
var randomIndex = Mathf.FloorToInt(Random.Range(0, list.Count - 1));
var elem = list[randomIndex];
list.RemoveAt(randomIndex);
return elem;
}
public static T PeekRandom<T>(this IList<T> list)
{
var randomIndex = Random.Range(0, list.Count - 1);
return list[randomIndex];
}
}
}

View file

@ -4,10 +4,6 @@ namespace src.Helpers
{
public static class PrefabAtlas
{
/* UI */
public static readonly GameObject PreStageUi =
Resources.Load<GameObject>("UI/PreStageUI");
/* Snow Walls */
public static readonly GameObject DestructibleHighSnow =
Resources.Load<GameObject>("Walls/destructible_high_snow");
@ -18,24 +14,14 @@ namespace src.Helpers
/* Upgrades */
public static readonly GameObject SpeedIncreaseUpgrade =
Resources.Load<GameObject>("Items/SpeedUpgrade");
Resources.Load<GameObject>("DevMocks/SpeedUpgrade");
public static readonly GameObject BombsIncreaseUpgrade =
Resources.Load<GameObject>("Items/BombUpgrade");
Resources.Load<GameObject>("DevMocks/BombsUpgrade");
public static readonly GameObject FlamesIncreaseUpgrade =
Resources.Load<GameObject>("Items/FlameUpgrade");
public static readonly GameObject GoldenBombUpgrade =
Resources.Load<GameObject>("Items/GoldenBombUpgrade");
/* Items */
public static readonly GameObject Bomb =
Resources.Load<GameObject>("Items/Bomb");
public static readonly GameObject BombExplosion =
Resources.Load<GameObject>("Items/BombExplosion");
public static readonly GameObject ExitDoor =
Resources.Load<GameObject>("Items/ExitDoor");
Resources.Load<GameObject>("DevMocks/FlameUpgrade");
/* Enemies */
public static readonly GameObject GreenEnemy = Resources.Load<GameObject>("Enemies/SnowEnemyRandom");
public static readonly GameObject RedEnemy = Resources.Load<GameObject>("Enemies/SnowEnemyCollision");
public static readonly GameObject GreenEnemy = Resources.Load<GameObject>("Enemies/Dumber");
public static readonly GameObject RedEnemy = Resources.Load<GameObject>("DevMocks/Dumb");
}
}

View file

@ -4,5 +4,5 @@ using UnityEngine;
public interface IExplosable
{
void OnExplosion();
void onExplosion();
}

View file

@ -2,6 +2,7 @@ using src.Helpers;
namespace src.Level
{
using System;
using UnityEngine;
namespace src.Level
@ -21,14 +22,9 @@ namespace src.Level
public static class LevelResource
{
private static readonly GameObject[] AllUpgrades =
{
PrefabAtlas.FlamesIncreaseUpgrade, PrefabAtlas.BombsIncreaseUpgrade, PrefabAtlas.SpeedIncreaseUpgrade,
PrefabAtlas.GoldenBombUpgrade
};
{PrefabAtlas.FlamesIncreaseUpgrade, PrefabAtlas.BombsIncreaseUpgrade, PrefabAtlas.SpeedIncreaseUpgrade};
private static readonly GameObject[] SnowWallsDestructible =
{PrefabAtlas.DestructibleSnow, PrefabAtlas.DestructibleHighSnow};
private static readonly GameObject[] SnowWallsIndestructible = {PrefabAtlas.IndestructibleWoodCrate};
/* Used to store information about the level. */

View file

@ -6,19 +6,39 @@ using src.Level.src.Level;
using src.Managers;
using src.Wall;
using UnityEngine;
using Random = UnityEngine.Random;
namespace src.Level
{
public class LevelManager : GameplayComponent, IDynamicLevelData
{
/** Safe-zone coordinates to prevent enemies to instantly kill you*/
/** Extracted them here for easy to change reason */
private const int XMaxEnemyPosition = 5;
private const int YMinEnemyPosition = -5;
public Count DestructibleWallCount
{
get => _destructibleWallCount;
set => _destructibleWallCount = value;
}
public Count UpgradesCount
{
get => _upgradesCount;
set => _upgradesCount = value;
}
public Count EnemyCount
{
get => _enemyCount;
set => _enemyCount = value;
}
/* Used to group spawned objects */
private Transform _boardHolder;
public Transform boardHolder;
/* Holds the starting position of the player */
private Transform _startPosition;
public Transform startPosition;
/* Holds references to prefabs for the specified level. */
private GameObject _indestructibleWallPrefab;
@ -38,20 +58,11 @@ namespace src.Level
/* Holds the available positions */
private readonly List<Vector3> _freeGridPositionsBoard = new List<Vector3>();
private List<Vector3> _freeGridPositions;
/* Holds initialized game objects */
private List<GameObject> _destructibleWalls;
private List<GameObject> _enemies;
/* Singletons */
private GameStateManager _gameStateManager;
public void Awake()
{
_startPosition = GameObject.Find("RespawnPosition").GetComponent<Transform>();
_boardHolder = GameObject.Find("Grid").GetComponent<Transform>();
_gameStateManager = GameStateManager.instance;
}
private GameStateManager _gameStateManager = GameStateManager.Instance;
public void SetLevelData(LevelData levelData)
{
@ -105,9 +116,9 @@ namespace src.Level
}
/* We want to iterate over the X axis taking into consideration the startPosition's offset */
for (var x = _startPosition.position.x; x < Columns; x++)
for (var x = startPosition.position.x; x < Columns; x++)
{
for (var y = _startPosition.position.y; y > Rows * -1; y--)
for (var y = startPosition.position.y; y > Rows * -1; y--)
{
/* We want the following positions to be a safe zone. */
/* Don't place anything on starting position */
@ -146,7 +157,7 @@ namespace src.Level
private void SetupLevelDestructibleWalls()
{
var numberOfWallsRemaining = _destructibleWallCount.RandomIntRange();
var usedPositions = new List<Vector3>();
List<Vector3> usedPositions = new List<Vector3>();
_freeGridPositions.ShuffleList();
foreach (var nextPosition in _freeGridPositions)
{
@ -172,7 +183,7 @@ namespace src.Level
var randomWall = _destructibleWallPrefabs.ChoseRandom();
var instance = Instantiate(randomWall, position, Quaternion.identity);
_destructibleWalls.Add(instance);
instance.transform.SetParent(_boardHolder);
instance.transform.SetParent(boardHolder);
}
private bool PlaceIndestructibleTile(float x, float y)
@ -188,15 +199,15 @@ namespace src.Level
var instance =
Instantiate(_indestructibleWallPrefab, new Vector3(x, y, 0f), Quaternion.identity);
instance.transform.SetParent(_boardHolder);
instance.transform.SetParent(boardHolder);
return true;
}
private void SetupLevelEnemies()
{
var numberOfEnemiesToPlace = _enemyCount.RandomIntRange();
_freeGridPositions.RemoveAll(pos => pos.x <= XMaxEnemyPosition && pos.y >= YMinEnemyPosition);
_freeGridPositions.ShuffleList();
_freeGridPositions.RemoveAll(pos => pos.x <= XMaxEnemyPosition && pos.y >= YMinEnemyPosition);
foreach (var nextPosition in _freeGridPositions)
{
if (numberOfEnemiesToPlace == 0)
@ -208,13 +219,14 @@ namespace src.Level
}
}
private void PlaceEnemy(Vector3 position)
private bool PlaceEnemy(Vector3 position)
{
DebugHelper.LogVerbose($"PlaceEnemy: x:{position.x} y:{position.y}");
var randomEnemy = _enemiesPrefab.ChoseRandom();
var instance = Instantiate(randomEnemy, position, Quaternion.identity);
instance.transform.SetParent(_boardHolder);
_enemies.Add(instance);
instance.transform.SetParent(boardHolder);
return true;
}
/* Initializes the level. */

View file

@ -1,69 +1,68 @@
using System.Collections.Generic;
using src.Base;
using UnityEngine;
namespace src.Managers
{
public sealed class BombsUtilManager : GameplayComponent
public sealed class BombsUtilManager
{
public static BombsUtilManager instance;
private readonly HashSet<Vector3> _usedPosition = new HashSet<Vector3>();
public int power = 3;
public int allowedBombs = 2;
public int placedBombs = 0;
public float timer = 3.0f;
public float explosionDuration = 0.55f;
private static readonly HashSet<Vector3> UsedPosition = new HashSet<Vector3>();
private const int MaxPower = 7;
private const int MaxAllowedBombs = 10;
public void Awake()
public int Power { get; private set; } = 3;
public int AllowedBombs { get; private set; } = 2;
public int PlacedBombs { get; private set; } = 0;
public float Timer { get; } = 3.0f;
public float ExplosionDuration { get; } = 0.55f;
private BombsUtilManager()
{
if (instance == null)
{
instance = this;
}
else if (instance != null)
{
Destroy(gameObject);
}
}
public static BombsUtilManager Instance { get; } = new BombsUtilManager();
public void IncreasePower()
{
if (power <= MaxPower)
if (Power <= MaxPower)
{
power++;
Power++;
}
}
public void IncreaseAllowedBombs()
{
if (allowedBombs <= MaxAllowedBombs)
if (AllowedBombs <= MaxAllowedBombs)
{
allowedBombs++;
AllowedBombs++;
}
}
public void RegisterBomb(Vector3 position)
public void PlaceBomb(Vector3 position)
{
if (!CanPlaceBomb(position)) return;
placedBombs++;
UsedPosition.Add(position);
if (CanPlaceBomb(position))
{
PlacedBombs++;
_usedPosition.Add(position);
}
}
public void UnregisterBomb(Vector3 position)
public void RemoveBomb(Vector3 position)
{
if (!UsedPosition.Contains(position)) return;
placedBombs--;
UsedPosition.Remove(position);
if (_usedPosition.Contains(position))
{
PlacedBombs--;
_usedPosition.Remove(position);
}
}
public bool CanPlaceBomb(Vector3 position)
{
return !UsedPosition.Contains(position) && placedBombs < allowedBombs;
return (!_usedPosition.Contains(position) && (PlacedBombs < AllowedBombs));
}
}
}

View file

@ -1,22 +1,24 @@
using System.Collections;
using src.Ammo;
using src.Helpers;
using src.Level;
using src.Level.src.Level;
using src.Player;
using UnityEngine;
using UnityEngine.SceneManagement;
namespace src.Managers
{
public class GameManager : MonoBehaviour
{
public static GameManager Instance;
// Inner Components
private PlayerController _playerController;
private GameStateManager _gameStateManager;
private LevelManager _levelManager;
private UpgradeManager _upgradeManager;
private BombsUtilManager _bombsUtilManager;
// External Components
public GameObject preStageUiPrefab;
private PlayerController _playerController;
private readonly GameStateManager _gameStateManager = GameStateManager.Instance;
public void Awake()
{
@ -32,10 +34,10 @@ namespace src.Managers
/* Don't destroy when reloading the scene */
DontDestroyOnLoad(gameObject);
// Load singletons
_gameStateManager = gameObject.AddComponent<GameStateManager>();
_levelManager = gameObject.AddComponent<LevelManager>();
_upgradeManager = gameObject.AddComponent<UpgradeManager>();
// Load inner components
_levelManager = GetComponent<LevelManager>();
_upgradeManager = GetComponent<UpgradeManager>();
_bombsUtilManager = BombsUtilManager.Instance;
// Load external components
_playerController = GameObject.Find("Player").GetComponent<PlayerController>();
@ -63,9 +65,14 @@ namespace src.Managers
return _upgradeManager;
}
public BombsUtilManager GetBombsUtilManager()
{
return _bombsUtilManager;
}
private IEnumerator PreInitGame()
{
var preStageUi = Instantiate(PrefabAtlas.PreStageUi); // Will destroy itself.
var preStageUi = Instantiate(preStageUiPrefab); // Will destroy itself.
preStageUi.SetActive(true);
yield return new WaitForSeconds(1f);
Destroy(preStageUi);
@ -88,21 +95,6 @@ namespace src.Managers
}
}
private IEnumerator GameOver()
{
yield return new WaitForSeconds(4f);
_levelManager.DestroyLevel();
_upgradeManager.DestroyUnclaimedUpgrades();
_gameStateManager.ResetLevel();
StartLevel();
_playerController.Respawn();
}
public void StartGameOver()
{
StartCoroutine(GameOver());
}
public void StartNextLevel()
{
_levelManager.DestroyLevel();

View file

@ -1,37 +1,18 @@
using src.Base;
using UnityEngine;
namespace src.Managers
{
public class GameStateManager : GameplayComponent
public class GameStateManager
{
public static GameStateManager instance;
public static GameStateManager Instance { get; } = new GameStateManager();
public bool IsGamePaused { get; internal set; }
public bool IsPlayerMovementForbidden { get; internal set; }
public int Level { get; private set; } = 1;
public void Awake()
{
if (instance == null)
{
instance = this;
}
else if (instance != null)
{
Destroy(gameObject);
}
}
public void IncreaseLevel()
{
Level += 1;
}
public void ResetLevel()
{
Level = 1;
}
}
}

View file

@ -10,17 +10,17 @@ namespace src.Managers
{
public class UpgradeManager : GameplayComponent, IDynamicLevelData
{
public static UpgradeManager instance;
public static UpgradeManager Instance;
private List<GameObject> _unclaimedUpgrades = new List<GameObject>();
private GameObject[] _upgradePrefabs;
private void Awake()
{
if (instance == null)
if (Instance == null)
{
instance = this;
Instance = this;
}
else if (instance != null)
else if (Instance != null)
{
Destroy(gameObject);
}

View file

@ -1,113 +1,56 @@
using System;
using System.ComponentModel;
using src.Ammo;
using src.Base;
using src.Helpers;
using src.Interfaces;
using src.Managers;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
namespace src.Player
{
public class PlayerController : GameplayComponent, IExplosable
public class PlayerController : PlayerBase
{
public bool godMode;
public float movementSpeed = 4f;
/* Components */
private GameStateManager _gameStateManager;
private Rigidbody2D _rigidbody2d;
private Collider2D _collider2D;
private GameStateManager _gameStateManager = GameStateManager.Instance;
private Transform _respawnPosition;
private BombsUtilManager _bombsUtilManager;
private BombsSpawner _bombsSpawner;
private Animator _animator;
private PlayerUpgrade _playerUpgrade;
/* Variables */
private bool _isDead;
/* Animator Variables*/
private static readonly int AnimHorizontal = Animator.StringToHash("AnimHorizontal");
private static readonly int AnimVertical = Animator.StringToHash("AnimVertical");
private static readonly int AnimDeath = Animator.StringToHash("AnimDeath");
protected void Awake()
protected new void Start()
{
_playerUpgrade = gameObject.AddComponent<PlayerUpgrade>();
_bombsUtilManager = gameObject.AddComponent<BombsUtilManager>();
}
base.Start();
protected void Start()
{
_gameStateManager = GameStateManager.instance;
_rigidbody2d = GetComponent<Rigidbody2D>();
_collider2D = GetComponent<Collider2D>();
_animator = GetComponentInChildren<Animator>();
_respawnPosition = GameObject.Find("RespawnPosition").transform;
_bombsSpawner = GameObject.Find("BombSpawner").GetComponent<BombsSpawner>();
_animator = GetComponentInChildren<Animator>();
_playerUpgrade = PlayerUpgrade.Instance;
movementSpeed = _playerUpgrade.GetMovementSpeed();
_playerUpgrade.PlayerSpeed += OnSpeedUpgrade;
_playerUpgrade.PlayerSpeed += IncreaseSpeed;
#if UNITY_EDITOR
godMode = true;
#endif
Respawn();
}
private void FixedUpdate()
{
if (_gameStateManager.IsGamePaused || _gameStateManager.IsPlayerMovementForbidden || _isDead) {return;}
HandleMovementInput();
if (_gameStateManager.IsGamePaused || _gameStateManager.IsPlayerMovementForbidden) {return;}
HandleMovement();
}
private void Update()
{
if (_gameStateManager.IsGamePaused || _gameStateManager.IsPlayerMovementForbidden || _isDead) {return;}
HandleItemsInput();
if (_gameStateManager.IsGamePaused || _gameStateManager.IsPlayerMovementForbidden) {return;}
HandleBomb();
}
private void HandleMovementInput()
private void HandleMovement()
{
#if UNITY_STANDALONE || UNITY_WEBGL || UNITY_EDITOR
HandleKeyboardMovement();
#elif UNITY_IOS || UNITY_ANDROID
HandleTouchMovement();
#elif UNITY_PS4 || UNITY_XBOXONE
HandlerControllerMovement();
#endif
}
private void HandleItemsInput()
{
#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBGL
if (Input.GetKeyDown(KeyCode.Space))
{
PlaceBomb();
}
#elif UNITY_IOS || UNITY_ANDROID
if (CrossPlatformInputManager.GetButton("PlaceBomb"))
{
PlaceBomb();
}
#elif UNITY_PS4 || UNITY_XBOXONE
// Console bomb placement is not supported yet.
#endif
}
#if UNITY_STANDALONE || UNITY_WEBGL || UNITY_EDITOR
private void HandleKeyboardMovement()
{
var horizontal = Input.GetAxisRaw("Horizontal");
var vertical = Input.GetAxisRaw("Vertical");
var movementVector = new Vector2(horizontal, vertical);
MovePosition(movementVector);
}
#endif
#if UNITY_IOS || UNITY_ANDROID
private void HandleTouchMovement()
{
#elif UNITY_IOS || UNITY_ANDROID
var horizontal = 0;
var vertical = 0;
if (CrossPlatformInputManager.GetButton("MoveUp"))
@ -126,100 +69,54 @@ namespace src.Player
{
horizontal = -1;
}
var movementVector = new Vector2(horizontal, vertical);
MovePosition(movementVector);
}
#elif UNITY_PS4 || UNITY_XBOXONE
// // Console movement is not supported yet.
#endif
#if UNITY_PS4 || UNITY_XBOXONE
private void HandlerControllerMovement()
{
throw new NotImplementedException();
}
#endif
var movementVector = new Vector2(horizontal, vertical).NormalizeToCross();
private void MovePosition(Vector2 movementVector)
{
movementVector = movementVector.NormalizeToCross();
_animator.SetFloat(AnimHorizontal, movementVector.x);
_animator.SetFloat(AnimVertical, movementVector.y);
_rigidbody2d.MovePosition(_rigidbody2d.position + movementSpeed * Time.deltaTime * movementVector);
rigidbody2d.MovePosition(rigidbody2d.position + movementSpeed * Time.deltaTime * movementVector);
}
private void PlaceBomb()
{
var position = transform.position;
var absX = Mathf.RoundToInt(position.x);
var absY = Mathf.RoundToInt(position.y);
var newPosition = new Vector2(absX, absY);
if (!_bombsUtilManager.CanPlaceBomb(newPosition)) return;
_bombsSpawner.PlaceBomb(transform);
}
Instantiate(PrefabAtlas.Bomb, newPosition, Quaternion.identity);
_bombsUtilManager.RegisterBomb(newPosition);
private void HandleBomb()
{
#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBGL
if (Input.GetKeyDown(KeyCode.Space))
{
PlaceBomb();
}
#elif UNITY_IOS || UNITY_ANDROID
if (CrossPlatformInputManager.GetButton("PlaceBomb"))
{
PlaceBomb();
}
#elif UNITY_PS4 || UNITY_XBOXONE
// Console bomb placement is not supported yet.
#endif
}
public void Respawn()
{
DebugHelper.LogInfo("Player is re-spawning!");
_isDead = false;
_collider2D.enabled = true;
_animator.SetBool(AnimDeath, false);
DebugHelper.LogInfo("Player is respawning!");
transform.SetPositionAndRotation(_respawnPosition.position, Quaternion.identity);
_animator.Play("IdleDown");
}
private void Die()
{
if (godMode)
{
return;
}
_isDead = true;
_collider2D.enabled = false;
_animator.SetBool(AnimDeath, true);
GameManager.Instance.StartGameOver();
}
public void OnTriggerExit2D(Collider2D other)
{
/* Turn off bomb trigger making it so you can't pass through. */
if (other.CompareTag("Bomb"))
{
other.isTrigger = false;
}
}
public void OnCollisionEnter2D(Collision2D other)
{
if (other.collider.CompareTag("Enemy"))
{
OnContactWithEnemy();
}
}
public void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Explosion"))
{
OnExplosion();
}
}
public void OnExplosion()
{
DebugHelper.LogInfo("Player hit by explosion");
Die();
}
private void OnContactWithEnemy()
{
DebugHelper.LogInfo("Player hit by enemy");
Die();
}
private void OnSpeedUpgrade(float speed)
{
movementSpeed += speed;
}
}
}

View file

@ -1,17 +1,18 @@
using src.Base;
namespace src.Player
{
public class PlayerUpgrade : GameplayComponent
public class PlayerUpgrade
{
/* Events & Delegates */
public delegate void IncreaseSpeedDelegate(float speed);
public static PlayerUpgrade Instance = new PlayerUpgrade();
public event IncreaseSpeedDelegate PlayerSpeed;
/* Variables */
public const float MaxPlayerSpeed = 8f;
private float _movementSpeed = 4f;
private PlayerUpgrade()
{
}
public float GetMovementSpeed()
{
return _movementSpeed;
@ -24,7 +25,7 @@ namespace src.Player
return;
}
_movementSpeed += speed;
PlayerSpeed?.Invoke(speed);
PlayerSpeed.Invoke(speed);
}
}
}

View file

@ -7,7 +7,7 @@ namespace src.UI
{
public class PreStageUiScript : GameplayComponent
{
private readonly GameStateManager _gameStateManager = GameStateManager.instance;
private readonly GameStateManager _gameStateManager = GameStateManager.Instance;
private Text _stageText;
public void Start()

View file

@ -1,5 +1,4 @@
using src.Base;
using src.Managers;
namespace src.Upgrade
{
@ -7,7 +6,7 @@ namespace src.Upgrade
{
public override void PerformUpgrade()
{
var bombManager = PlayerToUpgrade.GetComponent<BombsUtilManager>();
var bombManager = GameManager.GetBombsUtilManager();
bombManager.IncreasePower();
}
}

View file

@ -1,5 +1,4 @@
using src.Base;
using src.Managers;
namespace src.Upgrade
{
@ -7,7 +6,7 @@ namespace src.Upgrade
{
public override void PerformUpgrade()
{
var bombManager = PlayerToUpgrade.GetComponent<BombsUtilManager>();
var bombManager = GameManager.GetBombsUtilManager();
bombManager.IncreaseAllowedBombs();
}
}

View file

@ -1,16 +0,0 @@
using src.Base;
using src.Managers;
namespace src.Upgrade
{
/* Adds one firepower and one bomb. */
public class GoldenBombUpgrade : UpgradeBase
{
public override void PerformUpgrade()
{
var bombManager = PlayerToUpgrade.GetComponent<BombsUtilManager>();
bombManager.IncreaseAllowedBombs();
bombManager.IncreasePower();
}
}
}

View file

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 13e9051b005746efb7e4ab749d62ad03
timeCreated: 1566031123

View file

@ -7,7 +7,7 @@ namespace src.Upgrade
{
public override void PerformUpgrade()
{
var player = PlayerToUpgrade.GetComponent<PlayerUpgrade>();
var player = PlayerUpgrade.Instance;
player.IncreaseSpeed(.5f);
}
}

View file

@ -1,3 +1,4 @@
using System;
using UnityEngine;
using src.Base;
@ -11,14 +12,15 @@ namespace src.Wall
private bool _spawnExit;
private bool _spawnUpgrade;
private UpgradeManager _upgradeManager;
private GameObject _explosionPrefab;
private GameObject _exitDoorPrefab;
public GameObject explosionPrefab;
public GameObject exitDoorPrefab;
private Animator _animator;
private void Start()
{
_upgradeManager = GameManager.Instance.GetUpgradeManager();
_explosionPrefab = PrefabAtlas.BombExplosion;
_exitDoorPrefab = PrefabAtlas.ExitDoor;
_animator = GetComponentInChildren<Animator>();
// _animator.speed = 0;
}
public void SpawnsExit()
@ -38,11 +40,11 @@ namespace src.Wall
{
var currentPosition = transform.position;
Destroy(GetComponent<SpriteRenderer>());
Instantiate(_explosionPrefab, currentPosition, Quaternion.identity);
Instantiate(explosionPrefab, currentPosition, Quaternion.identity);
if (_spawnExit)
{
DebugHelper.LogInfo($"Destructible spawned exit {transform.position}");
Instantiate(_exitDoorPrefab, currentPosition, Quaternion.identity);
Instantiate(exitDoorPrefab, currentPosition, Quaternion.identity);
}
else if (_spawnUpgrade)
{
@ -53,9 +55,15 @@ namespace src.Wall
}
}
public void OnExplosion()
private void PlayDestroyAnimation()
{
// _animator.speed = 10;
}
public void onExplosion()
{
DebugHelper.LogInfo($"Destructible wall hit by explosion {transform.position}");
PlayDestroyAnimation();
SpawnSomething();
Destroy(gameObject);
}

View file

@ -1,6 +1,5 @@
using System;
using src.Base;
using src.Helpers;
using src.Managers;
using UnityEngine;
@ -9,10 +8,12 @@ namespace src.Wall
public class ExitDoor : GameplayComponent
{
private GameManager _gameManager;
private Collider2D _collider2D;
private void Start()
{
_gameManager = GameManager.Instance;
_collider2D = GetComponent<Collider2D>();
}
/* Trigger the next level and destroy itself. */

View file

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View file

@ -0,0 +1,88 @@
fileFormatVersion: 2
guid: 4c4ca1cd54e20a048ac5674d71a90858
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 9
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- serializedVersion: 2
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: f834b41e5db02f440ba85b29a7440b42
vertices: []
indices:
edges: []
weights: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 944 B

Some files were not shown because too many files have changed in this diff Show more