From a873272e9e5bc317f6a5f81313dd1b9d9bb30880 Mon Sep 17 00:00:00 2001
From: Gard <gardaf@stud.ntnu.no>
Date: Thu, 27 Oct 2022 21:00:32 +0200
Subject: [PATCH] fixed skeleton archer

---
 .../Code/skeleton/Enemy_skeleton_range.cs     | 154 +++++++++
 .../skeleton/Enemy_skeleton_range.cs.meta     |  11 +
 MrBigsock/Assets/Prefabs/skleton-range.prefab | 319 ++++++++++++++++++
 .../Animations/skeleton/skeleton.controller   | 180 ++++++++++
 .../skeleton/skeleton.controller.meta         |   8 +
 .../Animations/skeleton/skeleton_attack.anim  |  83 +++++
 .../skeleton/skeleton_attack.anim.meta        |   8 +
 .../Animations/skeleton/skeleton_walk.anim    |  83 +++++
 .../skeleton/skeleton_walk.anim.meta          |   8 +
 9 files changed, 854 insertions(+)
 create mode 100644 MrBigsock/Assets/Code/skeleton/Enemy_skeleton_range.cs
 create mode 100644 MrBigsock/Assets/Code/skeleton/Enemy_skeleton_range.cs.meta
 create mode 100644 MrBigsock/Assets/Prefabs/skleton-range.prefab
 create mode 100644 MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton.controller
 create mode 100644 MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton.controller.meta
 create mode 100644 MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton_attack.anim
 create mode 100644 MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton_attack.anim.meta
 create mode 100644 MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton_walk.anim
 create mode 100644 MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton_walk.anim.meta

diff --git a/MrBigsock/Assets/Code/skeleton/Enemy_skeleton_range.cs b/MrBigsock/Assets/Code/skeleton/Enemy_skeleton_range.cs
new file mode 100644
index 00000000..91a18ee9
--- /dev/null
+++ b/MrBigsock/Assets/Code/skeleton/Enemy_skeleton_range.cs
@@ -0,0 +1,154 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using System.Linq;
+using System;
+using BigSock.Service;
+
+
+namespace BigSock {
+
+	public partial class Enemy_skeleton_range : EnemyController {
+		/*
+			The state 
+		*/
+		public State State { get; protected set; } = State.Idle;
+		
+		public GameObject attack;
+		protected IAttack _testAttack;
+		/*
+			The location of the target when attack start. 
+		*/
+		public Vector3 TargetLocation { get; protected set; }
+
+		/*
+			The next time the state can change.
+		*/
+		public DateTime NextTimeStateCanChange { get; private set; } = DateTime.Now;
+		
+		/*
+			Minimum idle time.
+		*/
+		protected static readonly TimeSpan IDLE_WAIT_TIME = new TimeSpan(0, 0, 0, 1, 0);
+		/*
+			Minimum animation time.
+		*/
+		protected static readonly TimeSpan CHARGE_WAIT_TIME = new TimeSpan(0, 0, 0, 2, 0);
+		/*
+			Maximum time the slime should attack before it can idle.
+		*/
+		protected static readonly TimeSpan ATTACK_WAIT_TIME = new TimeSpan(0, 0, 0, 4, 0);
+
+		protected Animator m_Animator_bow;
+
+			protected override void Start(){
+				base.Start();
+				_testAttack = (IAttack) AbilityService.SINGLETON.Get(103);
+
+			}
+
+
+		protected override void Update() {
+			if(State == State.Idle) {
+				// If it has a target and has idled long enough.
+				if(target != null && DateTime.Now >= NextTimeStateCanChange && isInMelee) {
+					// Store target location.
+					TargetLocation = target.position;
+
+					// Update the state.
+					State = State.Charging;
+					m_Animator.SetTrigger("attack");
+					NextTimeStateCanChange = DateTime.Now + CHARGE_WAIT_TIME;
+					//m_Animator.SetTrigger("walk");
+				}
+				if(target != null &&  !isInMelee){
+					TryMove((new Vector2(target.position.x, target.position.y) - rb.position).normalized);
+				}
+			} 
+			
+			else if(State == State.Charging) {
+				// If it has charged long enough.
+				
+				if(DateTime.Now >= NextTimeStateCanChange && target != null) {
+					
+					_testAttack.Use(this, target.position);
+					
+					State = State.Attacking;
+					NextTimeStateCanChange = DateTime.Now + ATTACK_WAIT_TIME;
+				}
+				if(target != null &&  !isInMelee){
+					m_Animator.SetTrigger("walk");
+					TryMove((new Vector2(target.position.x, target.position.y) - rb.position).normalized);
+				}
+			} 
+			
+			else if(State == State.Attacking) {
+				// If it has charged long enough.
+				if(DateTime.Now >= NextTimeStateCanChange || rb.velocity == Vector2.zero) {
+					// Update the state.
+					
+					State = State.Idle;
+					NextTimeStateCanChange = DateTime.Now + IDLE_WAIT_TIME;
+					m_Animator.SetTrigger("idle");
+
+				}
+			}
+
+		}
+
+	}
+
+	/*
+		Movement
+	*/
+	public partial class Enemy_skeleton_range { 
+
+		protected override void Move_OnColliderEnter2D(Collider2D other) {
+			if (other.gameObject.tag == "Player") {
+				//m_Animator.SetTrigger("walk");
+				target = other.transform;
+			}
+		}
+
+
+		protected override void Move_OnColliderExit2D(Collider2D other) {
+			if (other.gameObject.tag == "Player") {
+				//m_Animator.SetTrigger("idle");
+				target = null;        
+			}      
+		}
+			
+	}
+	/*
+		Attack
+	*/
+	public partial class Enemy_skeleton_range { 
+
+		protected override void Attack_OnColliderEnter2D(Collider2D other) {
+			if (other.gameObject.tag == "Player") {
+				//m_Animator.SetTrigger("walk");
+				isInMelee = true;
+				target = other.transform;
+			}
+		}
+
+		protected override void Attack_OnColliderStay2D(Collider2D other){
+
+		}
+
+
+		protected override void Attack_OnColliderExit2D(Collider2D other) {
+			if (other.gameObject.tag == "Player") {
+				//m_Animator.SetTrigger("idle");
+				isInMelee = false;    
+			}      
+		}
+			
+	}
+
+	/*
+		The different states the skeleton can be in.
+	*/
+	
+	
+}
diff --git a/MrBigsock/Assets/Code/skeleton/Enemy_skeleton_range.cs.meta b/MrBigsock/Assets/Code/skeleton/Enemy_skeleton_range.cs.meta
new file mode 100644
index 00000000..b7e3d91e
--- /dev/null
+++ b/MrBigsock/Assets/Code/skeleton/Enemy_skeleton_range.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9623aa535cf080142bec69eb76b4aecb
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/MrBigsock/Assets/Prefabs/skleton-range.prefab b/MrBigsock/Assets/Prefabs/skleton-range.prefab
new file mode 100644
index 00000000..cc83d8c7
--- /dev/null
+++ b/MrBigsock/Assets/Prefabs/skleton-range.prefab
@@ -0,0 +1,319 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2996495149472241661
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7097463258699610772}
+  - component: {fileID: 65690667081962088}
+  - component: {fileID: 8506405333948921944}
+  - component: {fileID: 5891912875293609069}
+  - component: {fileID: 2395291586284291126}
+  - component: {fileID: 1673619414}
+  m_Layer: 6
+  m_Name: skleton-range
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &7097463258699610772
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2996495149472241661}
+  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_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 2753253562357840752}
+  - {fileID: 1701851832504875480}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &65690667081962088
+SpriteRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2996495149472241661}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 0
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 0
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 2
+  m_Sprite: {fileID: -373626851, guid: 49354cdcffd141f49be233855774f223, 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.16, y: 0.2}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
+  m_SpriteSortPoint: 0
+--- !u!50 &8506405333948921944
+Rigidbody2D:
+  serializedVersion: 4
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2996495149472241661}
+  m_BodyType: 0
+  m_Simulated: 1
+  m_UseFullKinematicContacts: 1
+  m_UseAutoMass: 0
+  m_Mass: 1
+  m_LinearDrag: 2
+  m_AngularDrag: 0
+  m_GravityScale: 0
+  m_Material: {fileID: 0}
+  m_Interpolate: 0
+  m_SleepingMode: 1
+  m_CollisionDetection: 0
+  m_Constraints: 4
+--- !u!95 &5891912875293609069
+Animator:
+  serializedVersion: 4
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2996495149472241661}
+  m_Enabled: 1
+  m_Avatar: {fileID: 0}
+  m_Controller: {fileID: 9100000, guid: 9823b24abd8becd45bde28cb883293d2, type: 2}
+  m_CullingMode: 0
+  m_UpdateMode: 0
+  m_ApplyRootMotion: 0
+  m_LinearVelocityBlending: 0
+  m_StabilizeFeet: 0
+  m_WarningMessage: 
+  m_HasTransformHierarchy: 1
+  m_AllowConstantClipSamplingOptimization: 1
+  m_KeepAnimatorControllerStateOnDisable: 0
+--- !u!61 &2395291586284291126
+BoxCollider2D:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2996495149472241661}
+  m_Enabled: 1
+  m_Density: 1
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_UsedByEffector: 0
+  m_UsedByComposite: 0
+  m_Offset: {x: 0.06446171, y: -0.1364619}
+  m_SpriteTilingProperty:
+    border: {x: 0, y: 0, z: 0, w: 0}
+    pivot: {x: 0.5, y: 0.5}
+    oldSize: {x: 1.4375, y: 1.75}
+    newSize: {x: 0.16, y: 0.2}
+    adaptiveTilingThreshold: 0.5
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
+  serializedVersion: 2
+  m_Size: {x: 0.6390133, y: 0.9770762}
+  m_EdgeRadius: 0
+--- !u!114 &1673619414
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2996495149472241661}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 9623aa535cf080142bec69eb76b4aecb, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  baseAttackSpeed: 1
+  baseMovementSpeed: 1
+  baseDamage: 1
+  knockbackForce: 150
+  baseHP: 10
+  baseMaxHP: 10
+  dropXP: 0
+  xp: 0
+  maxXp: 0
+  level: 0
+  collisionOffset: 0.05
+  movementFilter:
+    useTriggers: 0
+    useLayerMask: 0
+    useDepth: 0
+    useOutsideDepth: 0
+    useNormalAngle: 0
+    useOutsideNormalAngle: 0
+    layerMask:
+      serializedVersion: 2
+      m_Bits: 0
+    minDepth: 0
+    maxDepth: 0
+    minNormalAngle: 0
+    maxNormalAngle: 0
+  attack: {fileID: 7173793660907891926, guid: 3aee44dd4b3096d4099aadbaf2fc04ef, type: 3}
+--- !u!1 &7539630614846898202
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2753253562357840752}
+  - component: {fileID: 7566484513581878393}
+  - component: {fileID: 8365831662590702362}
+  m_Layer: 6
+  m_Name: followCollider
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &2753253562357840752
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7539630614846898202}
+  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_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 7097463258699610772}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!58 &7566484513581878393
+CircleCollider2D:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7539630614846898202}
+  m_Enabled: 1
+  m_Density: 1
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_UsedByEffector: 0
+  m_UsedByComposite: 0
+  m_Offset: {x: 0, y: 0}
+  serializedVersion: 2
+  m_Radius: 12
+--- !u!114 &8365831662590702362
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7539630614846898202}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 02e1a714e20472c46a1f156e232741cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!1 &8620845285361089561
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1701851832504875480}
+  - component: {fileID: 8983526051028480608}
+  - component: {fileID: 6373942986610437007}
+  m_Layer: 6
+  m_Name: MeleeCollider
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1701851832504875480
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8620845285361089561}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0.04, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 7097463258699610772}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!58 &8983526051028480608
+CircleCollider2D:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8620845285361089561}
+  m_Enabled: 1
+  m_Density: 1
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_UsedByEffector: 0
+  m_UsedByComposite: 0
+  m_Offset: {x: 0, y: 0}
+  serializedVersion: 2
+  m_Radius: 6
+--- !u!114 &6373942986610437007
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8620845285361089561}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 02e1a714e20472c46a1f156e232741cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
diff --git a/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton.controller b/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton.controller
new file mode 100644
index 00000000..ccdb3701
--- /dev/null
+++ b/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton.controller
@@ -0,0 +1,180 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1102 &-3346740909589632123
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: skeleton_attack
+  m_Speed: 0.5
+  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: db37959b87ba90a4aa52750e29d010f2, type: 2}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!1101 &-3097665880961138928
+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: walk
+    m_EventTreshold: 0
+  m_DstStateMachine: {fileID: 0}
+  m_DstState: {fileID: 3298638240208631704}
+  m_Solo: 0
+  m_Mute: 0
+  m_IsExit: 0
+  serializedVersion: 3
+  m_TransitionDuration: 0.25
+  m_TransitionOffset: 0
+  m_ExitTime: 0.75
+  m_HasExitTime: 0
+  m_HasFixedDuration: 1
+  m_InterruptionSource: 0
+  m_OrderedInterruption: 1
+  m_CanTransitionToSelf: 1
+--- !u!1109 &-3095565285759539576
+AnimatorTransition:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: 
+  m_Conditions: []
+  m_DstStateMachine: {fileID: 0}
+  m_DstState: {fileID: 3298638240208631704}
+  m_Solo: 0
+  m_Mute: 0
+  m_IsExit: 0
+  serializedVersion: 1
+--- !u!1101 &-2918832896934771414
+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: attack
+    m_EventTreshold: 0
+  m_DstStateMachine: {fileID: 0}
+  m_DstState: {fileID: -3346740909589632123}
+  m_Solo: 0
+  m_Mute: 0
+  m_IsExit: 0
+  serializedVersion: 3
+  m_TransitionDuration: 0.25
+  m_TransitionOffset: 0
+  m_ExitTime: 0
+  m_HasExitTime: 0
+  m_HasFixedDuration: 0
+  m_InterruptionSource: 0
+  m_OrderedInterruption: 1
+  m_CanTransitionToSelf: 1
+--- !u!91 &9100000
+AnimatorController:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: skeleton
+  serializedVersion: 5
+  m_AnimatorParameters:
+  - m_Name: walk
+    m_Type: 9
+    m_DefaultFloat: 0
+    m_DefaultInt: 0
+    m_DefaultBool: 0
+    m_Controller: {fileID: 0}
+  - m_Name: attack
+    m_Type: 9
+    m_DefaultFloat: 0
+    m_DefaultInt: 0
+    m_DefaultBool: 0
+    m_Controller: {fileID: 0}
+  m_AnimatorLayers:
+  - serializedVersion: 5
+    m_Name: Base Layer
+    m_StateMachine: {fileID: 7654857319550617769}
+    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 &3298638240208631704
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: skeleton_walk
+  m_Speed: 0.5
+  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: f5625bb9f27a4674eaa3cd0b83908c06, type: 2}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!1107 &7654857319550617769
+AnimatorStateMachine:
+  serializedVersion: 6
+  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: -3346740909589632123}
+    m_Position: {x: 270, y: 300, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: 3298638240208631704}
+    m_Position: {x: 30, y: 300, z: 0}
+  m_ChildStateMachines: []
+  m_AnyStateTransitions:
+  - {fileID: -3097665880961138928}
+  - {fileID: -2918832896934771414}
+  m_EntryTransitions:
+  - {fileID: -3095565285759539576}
+  m_StateMachineTransitions: {}
+  m_StateMachineBehaviours: []
+  m_AnyStatePosition: {x: 290, y: 130, 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: 3298638240208631704}
diff --git a/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton.controller.meta b/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton.controller.meta
new file mode 100644
index 00000000..94d3c915
--- /dev/null
+++ b/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton.controller.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9823b24abd8becd45bde28cb883293d2
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 9100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton_attack.anim b/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton_attack.anim
new file mode 100644
index 00000000..7bcbd581
--- /dev/null
+++ b/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton_attack.anim
@@ -0,0 +1,83 @@
+%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: skeleton_attack
+  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: 1276102534, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - time: 0.083333336
+      value: {fileID: -373626851, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - time: 0.16666667
+      value: {fileID: -1639813784, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - time: 0.25
+      value: {fileID: -1349200099, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - time: 0.33333334
+      value: {fileID: -1906007505, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - time: 0.41666666
+      value: {fileID: -568160469, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    attribute: m_Sprite
+    path: 
+    classID: 212
+    script: {fileID: 0}
+  m_SampleRate: 12
+  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: 1276102534, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - {fileID: -373626851, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - {fileID: -1639813784, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - {fileID: -1349200099, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - {fileID: -1906007505, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - {fileID: -568160469, guid: 49354cdcffd141f49be233855774f223, type: 3}
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 0.5
+    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: []
diff --git a/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton_attack.anim.meta b/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton_attack.anim.meta
new file mode 100644
index 00000000..0b87c0dc
--- /dev/null
+++ b/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton_attack.anim.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: db37959b87ba90a4aa52750e29d010f2
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 7400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton_walk.anim b/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton_walk.anim
new file mode 100644
index 00000000..bbbc379c
--- /dev/null
+++ b/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton_walk.anim
@@ -0,0 +1,83 @@
+%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: skeleton_walk
+  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: -725386518, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - time: 0.083333336
+      value: {fileID: -1499626874, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - time: 0.16666667
+      value: {fileID: -1161750727, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - time: 0.25
+      value: {fileID: 1825370165, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - time: 0.33333334
+      value: {fileID: 1860195208, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - time: 0.41666666
+      value: {fileID: 1947931305, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    attribute: m_Sprite
+    path: 
+    classID: 212
+    script: {fileID: 0}
+  m_SampleRate: 12
+  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: -725386518, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - {fileID: -1499626874, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - {fileID: -1161750727, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - {fileID: 1825370165, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - {fileID: 1860195208, guid: 49354cdcffd141f49be233855774f223, type: 3}
+    - {fileID: 1947931305, guid: 49354cdcffd141f49be233855774f223, type: 3}
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 0.5
+    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: []
diff --git a/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton_walk.anim.meta b/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton_walk.anim.meta
new file mode 100644
index 00000000..6a1f5ce0
--- /dev/null
+++ b/MrBigsock/Assets/Sprites/Enemy/Animations/skeleton/skeleton_walk.anim.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f5625bb9f27a4674eaa3cd0b83908c06
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 7400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
-- 
GitLab