diff --git a/MrBigsock/Assets/Code/Bosses.meta b/MrBigsock/Assets/Code/Bosses.meta new file mode 100644 index 0000000000000000000000000000000000000000..b8dd04b57166b6887f63f2202cac7a39a253a761 --- /dev/null +++ b/MrBigsock/Assets/Code/Bosses.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7ebd00fb3522e814db848dd73d16de38 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Code/Bosses/SkeletonBossController.cs b/MrBigsock/Assets/Code/Bosses/SkeletonBossController.cs new file mode 100644 index 0000000000000000000000000000000000000000..fbc2f653ef30e36f814ae8636a444f009a31de20 --- /dev/null +++ b/MrBigsock/Assets/Code/Bosses/SkeletonBossController.cs @@ -0,0 +1,161 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System.Linq; +using System; + +namespace BigSock { + public partial class SkeletonBossController : EnemyController { + + + protected EmptyCollider chargeCollider; + + public SkeletonBossState State { get; protected set; } = SkeletonBossState.Idle; + + protected bool isInCharge = false; + + protected DateTime timer = DateTime.Now; + + protected DateTime nextChargeTime = DateTime.Now; + + protected static readonly TimeSpan CHARGE_COOLDOWN = new TimeSpan(0, 0, 0, 5, 0); + + protected static readonly TimeSpan CHARGE_WAIT_TIME = new TimeSpan(0, 0, 0, 0, 25); + + protected static readonly TimeSpan SECOND_CHARGE_WAIT_TIME = new TimeSpan(0, 0, 0, 0, 800); + + protected static readonly TimeSpan FINISH_CHARGE_WAIT_TIME = new TimeSpan(0, 0, 0, 0, 450); + + public double LeapForce => MovementSpeed*8; + + + protected override void Start() { + base.Start(); + + chargeCollider = transform.Find("ChargeCollider").GetComponent<EmptyCollider>(); + chargeCollider.OnColliderEnter2D_Action += Charge_OnColliderEnter2D; + chargeCollider.OnColliderStay2D_Action += Charge_OnColliderStay2D; + chargeCollider.OnColliderExit2D_Action += Charge_OnColliderExit2D; + } + + + protected override void Update() { + Regenerate(); + + if (target != null && (State == SkeletonBossState.Idle || State == SkeletonBossState.Walking)){ + + /* //walk + float step = speed * Time.deltaTime; + transform.position = Vector2.MoveTowards(transform.position, target.position, step); + + //distance = Vector3.Distance (transform.position, target.position); + //roter + RotateAnimation(); + */ + var movement = (new Vector2(target.position.x, target.position.y) - rb.position).normalized; + TryMove(movement); + RotateAnimation(movement); + } + else if (State == SkeletonBossState.Charge && DateTime.Now >= timer) { + var pos = target.position; //target.position; + var temp = (pos - rb.transform.position); + temp.z = 0; + var direction = temp.normalized; + //rb.AddForce((float) LeapForce * direction, ForceMode2D.Impulse); + Charge(direction, LeapForce); + timer = DateTime.Now + SECOND_CHARGE_WAIT_TIME; + State = SkeletonBossState.SecondCharge; + } + else if (State == SkeletonBossState.SecondCharge && DateTime.Now >= timer) { + var pos = target.position; //target.position; + var temp = (pos - rb.transform.position); + temp.z = 0; + var direction = temp.normalized; + //rb.AddForce((float) LeapForce * direction, ForceMode2D.Impulse); + Charge(direction, LeapForce*2); + timer = DateTime.Now + FINISH_CHARGE_WAIT_TIME; + State = SkeletonBossState.FinishAttack; + } + else if (State == SkeletonBossState.FinishAttack && DateTime.Now >= timer) { + State = SkeletonBossState.Walking; + m_Animator.SetTrigger("walk"); + } + } + + + protected virtual bool Charge(Vector2 direction, double leapForce) { + if(direction != Vector2.zero) { + rb.AddForce((float) leapForce * direction, ForceMode2D.Impulse); + return true; + } + return false; + } + + + } + + /* + Attack + */ + public partial class SkeletonBossController { + + protected virtual void Charge_OnColliderEnter2D(Collider2D other) { + if (other.gameObject.tag == "Player") isInCharge = !isInCharge; + } + + protected virtual void Charge_OnColliderStay2D(Collider2D other) { + var player = other.gameObject.GetComponent<PlayerController>(); + if(player != null) { + if (DateTime.Now >= nextChargeTime) { + + m_Animator.SetTrigger("attack"); + timer = DateTime.Now + CHARGE_WAIT_TIME; + State = SkeletonBossState.Charge; + nextChargeTime = DateTime.Now + CHARGE_COOLDOWN; + } + } + } + + protected virtual void Charge_OnColliderExit2D(Collider2D other) { + if (other.gameObject.tag == "Player") isInCharge = !isInCharge; + //State = SkeletonBossState.Walking; + } + + } + + + public partial class SkeletonBossController { + + protected override void Move_OnColliderEnter2D(Collider2D other) { + //Debug.Log("enter"); + if (other.gameObject.tag == "Player" && State != SkeletonBossState.Charge && State != SkeletonBossState.SecondCharge && State != SkeletonBossState.FinishAttack){ + //Debug.Log("enter if"); + + m_Animator.SetTrigger("walk"); + target = other.transform; + } + } + + protected override void Move_OnColliderExit2D(Collider2D other) { + if (other.gameObject.tag == "Player"){ + m_Animator.SetTrigger("idle"); + target = other.transform; + target = null; + } + } + + } + + public partial class SkeletonBossController { + + + } + + /* + The different states the slime can be in. + */ + public enum SkeletonBossState { + Idle, Walking, Attacking, Charge, SecondCharge, FinishAttack, Death + } +} + diff --git a/MrBigsock/Assets/Code/Bosses/SkeletonBossController.cs.meta b/MrBigsock/Assets/Code/Bosses/SkeletonBossController.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..0c301ae99cf812c2c2aa20791cbd8429fa3ad6ae --- /dev/null +++ b/MrBigsock/Assets/Code/Bosses/SkeletonBossController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 60320d8322a7e904b98e674486014057 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Code/Character.cs b/MrBigsock/Assets/Code/Character.cs index d063af95b3e72bc4898d67ad490ff2811f8ed7fc..283f12944f95160e39be98dcfdacacf5e3fb23f1 100644 --- a/MrBigsock/Assets/Code/Character.cs +++ b/MrBigsock/Assets/Code/Character.cs @@ -6,7 +6,10 @@ using UnityEngine.InputSystem; using BigSock.Item; namespace BigSock { - // Common class for all characters. + + /* + Common class for all characters. + */ public partial class Character : Entity { /* @@ -74,27 +77,6 @@ namespace BigSock { public int level; - /* - Indicates whether or not the characer is a live. - */ - public bool Alive { get; private set; } = true; - - /* - Stores the next time the character can recieve damage. - */ - public DateTime NextTimeCanTakeDamage { get; private set; } = DateTime.Now; - - /* - How long between each time the character can take damage. - */ - public TimeSpan IFrameDuration { - get => _iFrameDuration; - private set => _iFrameDuration = value; - } - public TimeSpan _iFrameDuration = new TimeSpan(0, 0, 0, 0, 333); - - - protected Rigidbody2D rb; @@ -163,11 +145,11 @@ namespace BigSock { /* - Add Kcockback. + Add Knockback. */ - //public void KnockBack(float force, Vector2 difference) { - // rb.AddForce(difference * force, ForceMode2D.Impulse); - //} + public void KnockBack(float force, Vector2 difference) { + rb.AddForce(difference * force, ForceMode2D.Impulse); + } public void KnockBack(IAttackStats attack) { Vector2 difference = ((Vector2) transform.position - attack.Source).normalized; //KnockBack(attack.Knockback, difference); @@ -194,11 +176,11 @@ namespace BigSock { if(!attack.IsCalculated) throw new ArgumentException("Attack needs to be calculated.", nameof(attack)); // Check if player has IFrames - if(NextTimeCanTakeDamage > DateTime.Now) + if(HasIFrames) return false; // Start new IFrames - NextTimeCanTakeDamage = DateTime.Now + IFrameDuration; + AddIFrames(IFrameDuration); // Trigger the event for taking damage. OnTakeDamage?.Invoke(this, attack.Actor, attack); @@ -285,6 +267,8 @@ namespace BigSock { + + /* Items */ @@ -293,7 +277,7 @@ namespace BigSock { /* Adds a listener for a conditional item to this character's event. */ - public void AddItemListener(ConditionalItemBase item) { + public void AddItemListener(IConditionalItem item) { switch(item.Trigger) { case TriggerType.Fire: OnFire += ((OnFireItemBase) item).Handler; break; case TriggerType.Hit: OnHit += ((OnHitItemBase) item).Handler; break; @@ -310,7 +294,7 @@ namespace BigSock { /* Remove a listener for a conditional item from this character's event. */ - public void RemoveItemListener(ConditionalItemBase item) { + public void RemoveItemListener(IConditionalItem item) { switch(item.Trigger) { case TriggerType.Fire: OnFire -= ((OnFireItemBase) item).Handler; break; case TriggerType.Hit: OnHit -= ((OnHitItemBase) item).Handler; break; @@ -328,26 +312,28 @@ namespace BigSock { Try to pick up an item. */ public bool TryPickUpItem(IItem item) { - if(Inventory.AddItem(item)) { - UpdateModifiers(); - print($"[Character.TryPickUpItem()] {item.Name} picked up. ({Inventory.Items.Count}/{Inventory.Cap})"); + if(Inventory.AddItem(item) != -1) { + //UpdateModifiers(); + print($"[Character.TryPickUpItem()] {item.Name} picked up. ({Inventory.Backpack.Count}/{Inventory.BackpackCap})"); return true; } - print($"[Character.TryPickUpItem()] {item.Name} NOT picked up. ({Inventory.Items.Count}/{Inventory.Cap})"); + print($"[Character.TryPickUpItem()] {item.Name} NOT picked up. ({Inventory.Backpack.Count}/{Inventory.BackpackCap})"); return false; } /* Try to drop an item. + !! Depricated, no use this method. */ public bool TryDropItem(IItem item) { - if(Inventory.RemoveItem(item)) { - UpdateModifiers(); - print($"[Character.TryDropItem()] {item.Name} dropped. ({Inventory.Items.Count}/{Inventory.Cap})"); - return true; - } - print($"[Character.TryDropItem()] {item.Name} NOT dropped. ({Inventory.Items.Count}/{Inventory.Cap})"); - return false; + throw new NotImplementedException(); + // if(Inventory.RemoveItem(item)) { + // //UpdateModifiers(); + // print($"[Character.TryDropItem()] {item.Name} dropped. ({Inventory.Items.Count}/{Inventory.Cap})"); + // return true; + // } + // print($"[Character.TryDropItem()] {item.Name} NOT dropped. ({Inventory.Items.Count}/{Inventory.Cap})"); + // return false; } } @@ -464,4 +450,181 @@ namespace BigSock { } + + + /* + Status effects. + */ + public partial class Character { + + /* + Indicates whether or not the characer is alive. + */ + public bool Alive { get; private set; } = true; + + /* + How long between each time the character can take damage. + */ + public TimeSpan IFrameDuration { + get => _iFrameDuration; + private set => _iFrameDuration = value; + } + public TimeSpan _iFrameDuration = new TimeSpan(0, 0, 0, 0, 333); + + + + /* + Is the character stunned. + */ + public bool IsStunned => NextTimeNotStunned > DateTime.Now; + + /* + Stores the next time the character can isn't stunned. + */ + public DateTime NextTimeNotStunned { get; private set; } = DateTime.Now; + + + + /* + Is the character visible. + */ + public bool IsInvisible => NextTimeVisible > DateTime.Now; + + /* + Stores the next time the character can recieve damage. + */ + public DateTime NextTimeVisible { get; private set; } = DateTime.Now; + + + + /* + Is the character invincible. + */ + public bool HasIFrames => NextTimeCanTakeDamage > DateTime.Now; + + /* + Stores the next time the character can recieve damage. + */ + public DateTime NextTimeCanTakeDamage { get; private set; } = DateTime.Now; + + + + /* + Adds a status effect to the character. + */ + public bool AddStatusEffect(StatusEffectType statusType, TimeSpan amount) { + switch(statusType) { + case StatusEffectType.Invincible: return AddIFrames(amount); + case StatusEffectType.Invisible: return AddInvisibility(amount); + case StatusEffectType.Stun: return AddStun(amount); + default: return false; + } + } + + + + /* + Adds Stun for the character. + */ + public bool AddStun(TimeSpan amount) { + // Get when the status effect would expire. + var wouldExpire = DateTime.Now + IFrameDuration; + + // Only if that's later than current. + if(wouldExpire > NextTimeNotStunned) { + // If character currently doesn't have the status effect. + if(NextTimeNotStunned < DateTime.Now) { + ApplyStun(); + } + + // Set new time. + NextTimeNotStunned = wouldExpire; + return true; + } + return false; + } + /* + Appies Stun to the character. + */ + private void ApplyStun() { + + } + /* + Removes Stun for the character. + */ + private void RemoveStun() { + + } + + + + /* + Adds invisibility for the character. + */ + public bool AddInvisibility(TimeSpan amount) { + // Get when the status effect would expire. + var wouldExpire = DateTime.Now + IFrameDuration; + + // Only if that's later than current. + if(wouldExpire > NextTimeVisible) { + // If character currently doesn't have the status effect. + if(NextTimeVisible < DateTime.Now) { + ApplyInvisibility(); + } + + // Set new time. + NextTimeVisible = wouldExpire; + return true; + } + return false; + } + /* + Appies invisibility to the character. + */ + private void ApplyInvisibility() { + + } + /* + Removes invisibility for the character. + */ + private void RemoveInvisibility() { + + } + + + + /* + Adds IFrames for the character. + */ + public bool AddIFrames(TimeSpan amount) { + // Get when the IFrames would expire. + var nextCanTakeDamage = DateTime.Now + IFrameDuration; + + // Only if that's later than current. + if(nextCanTakeDamage > NextTimeCanTakeDamage) { + // If character currently doesn't have the status effect. + if(NextTimeCanTakeDamage < DateTime.Now) { + ApplyIFrames(); + } + + // Set new time. + NextTimeCanTakeDamage = nextCanTakeDamage; + return true; + } + return false; + } + /* + Appies IFrames to the character. + */ + private void ApplyIFrames() { + + } + /* + Removes IFrames for the character. + */ + private void RemoveIFrames() { + + } + + } } diff --git a/MrBigsock/Assets/Code/Core/Abilities/AbilityDodge.cs b/MrBigsock/Assets/Code/Core/Abilities/AbilityDodge.cs new file mode 100644 index 0000000000000000000000000000000000000000..6e2cccfffe11e147abdbf1cab26ef3b55ddb1275 --- /dev/null +++ b/MrBigsock/Assets/Code/Core/Abilities/AbilityDodge.cs @@ -0,0 +1,51 @@ +using System.Collections; +using System; +using System.Collections.Generic; + +using UnityEngine; +using UnityEngine.InputSystem; + +using BigSock.Service; + +namespace BigSock { + + /* + A basic dodge move that gives a push and a short invincibility. + */ + public class AbilityDodge : BaseAbility { + public static readonly float BASE_FORCE = 0.5f; + public static readonly TimeSpan IFRAME_DURATION = new TimeSpan(0, 0, 0, 0, 500); + + public override ulong Id => 201; + public override string Name => "Dodge"; + public override string Description => "A basic dodge move."; + + public AbilityDodge() { + StaminaCost = 4; + Cooldown = new TimeSpan(0, 0, 0, 1, 0); + } + + /* + Activates the ability. + */ + protected override bool Activate(Character actor, Vector3? target) { + if(target == null) return false; + + // Get direction. + var temp = (target.Value - actor.transform.position); + temp.z = 0; + var direction = (Vector2) temp.normalized; + + // Get the force. + var force = BASE_FORCE * actor.Stats.MoveSpeed; + + // Apply the push and iframes. + actor.KnockBack(force, direction); + actor.AddStatusEffect(StatusEffectType.Invincible, IFRAME_DURATION); + + return true; + } + + } + +} \ No newline at end of file diff --git a/MrBigsock/Assets/Code/Core/Abilities/AbilityDodge.cs.meta b/MrBigsock/Assets/Code/Core/Abilities/AbilityDodge.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..e4b53ef25aa2d1a5172738bc2068d8782df2efae --- /dev/null +++ b/MrBigsock/Assets/Code/Core/Abilities/AbilityDodge.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c7c0fcb77471bc0469856ad6f91803c5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Code/Core/StatusEffectType.cs b/MrBigsock/Assets/Code/Core/StatusEffectType.cs new file mode 100644 index 0000000000000000000000000000000000000000..20e6e552562d1f41b8a01bd04b55a620dd8d2ce2 --- /dev/null +++ b/MrBigsock/Assets/Code/Core/StatusEffectType.cs @@ -0,0 +1,17 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System.Linq; +using System; + + +namespace BigSock { + /* + The different types of status effects. + */ + public enum StatusEffectType { + Invincible = 0, + Invisible = 1, + Stun = 2, + } +} \ No newline at end of file diff --git a/MrBigsock/Assets/Code/Core/StatusEffectType.cs.meta b/MrBigsock/Assets/Code/Core/StatusEffectType.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..ea2656d27374d45bd5d1ebe68305c2b1a07ce8dd --- /dev/null +++ b/MrBigsock/Assets/Code/Core/StatusEffectType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3b098d33750fa314c975d94a25c5b14f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Code/Item/Base/ActiveItemBase.cs b/MrBigsock/Assets/Code/Item/Base/ActiveItemBase.cs new file mode 100644 index 0000000000000000000000000000000000000000..f49b48f3f0cbaa962b8f1ee038bac2d687b069a2 --- /dev/null +++ b/MrBigsock/Assets/Code/Item/Base/ActiveItemBase.cs @@ -0,0 +1,22 @@ +using System.Collections; +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.InputSystem; + + +namespace BigSock.Item { + + /* + A class that represents an item that provides passive stat boosts. + */ + public abstract class ActiveItemBase : ItemBase, IActiveItem { + + /* + The ability the item activates. + */ + public abstract IAbility Ability { get; } + + + } +} \ No newline at end of file diff --git a/MrBigsock/Assets/Code/Item/Base/ActiveItemBase.cs.meta b/MrBigsock/Assets/Code/Item/Base/ActiveItemBase.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..17dd2638e2ab8041f8a387ff227732155a341054 --- /dev/null +++ b/MrBigsock/Assets/Code/Item/Base/ActiveItemBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0e7dc546f6b48824c82371beb01ec593 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Code/Item/Base/ConditionalItemBase.cs b/MrBigsock/Assets/Code/Item/Base/ConditionalItemBase.cs index 286c2b158acd8f6eef0a88ad9e0f3499be733186..3b9ba9764b075de08cf612aa1752e3eb11283be8 100644 --- a/MrBigsock/Assets/Code/Item/Base/ConditionalItemBase.cs +++ b/MrBigsock/Assets/Code/Item/Base/ConditionalItemBase.cs @@ -10,7 +10,7 @@ namespace BigSock.Item { /* A class that represents an item that an effect when a condition is meet. */ - public abstract class ConditionalItemBase : ItemBase { + public abstract class ConditionalItemBase : ItemBase, IConditionalItem { public static readonly System.Random RND = new System.Random(); diff --git a/MrBigsock/Assets/Code/Item/Base/IActiveItem.cs b/MrBigsock/Assets/Code/Item/Base/IActiveItem.cs new file mode 100644 index 0000000000000000000000000000000000000000..4a88b90cba8f55c202d40718493bdc2ac5546d50 --- /dev/null +++ b/MrBigsock/Assets/Code/Item/Base/IActiveItem.cs @@ -0,0 +1,20 @@ +using System.Collections; +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.InputSystem; + + +namespace BigSock.Item { + + /* + An interface for items that needs to be activated manually. + */ + public interface IActiveItem : IItem { + /* + The ability the item activates. + */ + IAbility Ability { get; } + + } +} \ No newline at end of file diff --git a/MrBigsock/Assets/Code/Item/Base/IActiveItem.cs.meta b/MrBigsock/Assets/Code/Item/Base/IActiveItem.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..65657e0e444bfb6387c13fe76117bc48d77e916e --- /dev/null +++ b/MrBigsock/Assets/Code/Item/Base/IActiveItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 464182374ada7ac47b2d0bbc23232e22 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Code/Item/Base/IConditionalItem.cs b/MrBigsock/Assets/Code/Item/Base/IConditionalItem.cs new file mode 100644 index 0000000000000000000000000000000000000000..04add95c149c8cf6a6443ad5466110004a4fd2f1 --- /dev/null +++ b/MrBigsock/Assets/Code/Item/Base/IConditionalItem.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.InputSystem; + + +namespace BigSock.Item { + + /* + An interface for items that trigger on a particular condition. + */ + public interface IConditionalItem : IInactiveItem { + + /* + The type of trigger this item uses. + */ + TriggerType Trigger { get; } + + } +} \ No newline at end of file diff --git a/MrBigsock/Assets/Code/Item/Base/IConditionalItem.cs.meta b/MrBigsock/Assets/Code/Item/Base/IConditionalItem.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..b744ec586dbc8b64c120545b775fa157d067a789 --- /dev/null +++ b/MrBigsock/Assets/Code/Item/Base/IConditionalItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7f746e9fa2e053641875903d549b140a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Code/Item/Base/IInactiveItem.cs b/MrBigsock/Assets/Code/Item/Base/IInactiveItem.cs new file mode 100644 index 0000000000000000000000000000000000000000..afc9f365541c6293044a42c9232a9304993c4910 --- /dev/null +++ b/MrBigsock/Assets/Code/Item/Base/IInactiveItem.cs @@ -0,0 +1,16 @@ +using System.Collections; +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.InputSystem; + + +namespace BigSock.Item { + + /* + An interface an item that isn't an active item. + */ + public interface IInactiveItem : IItem { + + } +} \ No newline at end of file diff --git a/MrBigsock/Assets/Code/Item/Base/IInactiveItem.cs.meta b/MrBigsock/Assets/Code/Item/Base/IInactiveItem.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..0819f5f004e7a5e488314634329cb3eb3e5d0af4 --- /dev/null +++ b/MrBigsock/Assets/Code/Item/Base/IInactiveItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 93e248179b4fee8428e39b1579ae6df0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Code/Item/Base/IPassiveItem.cs b/MrBigsock/Assets/Code/Item/Base/IPassiveItem.cs new file mode 100644 index 0000000000000000000000000000000000000000..56c2b6ef1656936a4afb57c8f9c7f2ecafc63e2c --- /dev/null +++ b/MrBigsock/Assets/Code/Item/Base/IPassiveItem.cs @@ -0,0 +1,20 @@ +using System.Collections; +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.InputSystem; + + +namespace BigSock.Item { + + /* + An interface for items that are passive. + */ + public interface IPassiveItem : IInactiveItem { + /* + The modifier of the item. + */ + ICharacterStats Modifier { get; set; } + + } +} \ No newline at end of file diff --git a/MrBigsock/Assets/Code/Item/Base/IPassiveItem.cs.meta b/MrBigsock/Assets/Code/Item/Base/IPassiveItem.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..36821ebd8994b9c1bfac70bcd8bdc15e4a85758b --- /dev/null +++ b/MrBigsock/Assets/Code/Item/Base/IPassiveItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a3123e6cdf218144cb7916a122b22aa1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Code/Item/Base/PassiveItemBase.cs b/MrBigsock/Assets/Code/Item/Base/PassiveItemBase.cs index 1b09c3b45c9e33bb67790386d61559486ca16d0e..c5a96e9964a3f0b2e0cbde0ea655137a98f84e47 100644 --- a/MrBigsock/Assets/Code/Item/Base/PassiveItemBase.cs +++ b/MrBigsock/Assets/Code/Item/Base/PassiveItemBase.cs @@ -10,7 +10,7 @@ namespace BigSock.Item { /* A class that represents an item that provides passive stat boosts. */ - public abstract class PassiveItemBase : ItemBase { + public abstract class PassiveItemBase : ItemBase, IPassiveItem { /* The modifier of the item. */ diff --git a/MrBigsock/Assets/Code/Item/Inventory.cs b/MrBigsock/Assets/Code/Item/Inventory.cs index 8a5b3f2981a3f116b41d677a0ddbced07506e37e..b9b552cc2e8d89cff9fe310912547f69f7a999a1 100644 --- a/MrBigsock/Assets/Code/Item/Inventory.cs +++ b/MrBigsock/Assets/Code/Item/Inventory.cs @@ -5,27 +5,129 @@ using UnityEngine; using UnityEngine.InputSystem; + +/* +Notes for using the inventory system: + - Ignore most the stuff in there. + - You can read the 4 different lists to get what items are there: + - Backpack + - Accessories + - Equipment + - Tools + - !! DO NOT MODIFY LISTS EXTERNALLY, USE THE METHODS !! + - Each list has a corresponding cap. + - You can read the cap to see the limit. + - You can set the cap to expand/shrink the list. (shrink isn't implemented yet) + - How to use: + - AddItem() -- Adds an item to the backpack. + -- This is used for picking up items. + - MoveItem() -- Moves the item from one position to another. + -- This is for managing the inventory in the menu. + - DropItem() -- Drops an item from a particular slot. + -- This is used for when player drops an item in the menu. + //- FindItem()-- Finds the position of the item in the inventory. + -- This is used for when player drops an item in the menu. + - I want to add an item to a particular equipment slot. + -- var pos = inv.AddItem(item); + -- inv.MoveItem(item, InventoryType.Backpack, pos, InventoryType.Equipment, availablePos); +*/ + namespace BigSock.Item { + /* + The different areas of the inventory. + */ + public enum InventoryType { + Backpack, + Tool, + Accessory, + Equipment, + } + /* An inventory of a character. */ - public class Inventory { + public partial class Inventory { + + /* - The items in the inventory. + The max number of items the backpack can hold. */ - public List<IItem> Items { get; protected set; } = new List<IItem>(); + public int BackpackCap { + get => Backpack.Count; + set { + while(value > Backpack.Count) Backpack.Add(null); + // No support for shrinking inventory yet. + if(value < Backpack.Count) throw new NotImplementedException(); + } + } + /* + The part that holds items not in use. + */ + public List<IItem> Backpack { get; protected set; } = new List<IItem>(); + /* - The modifier from all the passives. + The max number of accessories the user can have on. */ - public ICharacterStats Modifier { get; protected set; } = new CharacterStats(); + public int AccessoriesCap { + get => Accessories.Count; + set { + while(value > Accessories.Count) Accessories.Add(null); + // No support for shrinking inventory yet. + if(value < Accessories.Count) throw new NotImplementedException(); + } + } + /* + The accessories the user has on. + An accessory is put on the user's weapon. + */ + public List<IInactiveItem> Accessories { get; protected set; } = new List<IInactiveItem>(); /* - The max number of items the inventory can hold. + The max number of equipment the user can have on. + */ + public int EquipmentCap { + get => Equipment.Count; + set { + while(value > Equipment.Count) Equipment.Add(null); + // No support for shrinking inventory yet. + if(value < Equipment.Count) throw new NotImplementedException(); + } + } + /* + The equipment the user has on. + Equipment is worn by the user (Clothing, hats, etc). + */ + public List<IInactiveItem> Equipment { get; protected set; } = new List<IInactiveItem>(); + + + /* + The max number of tools the user can have out. */ - public int Cap { get; set; } = 10; + public int ToolsCap { + get => Tools.Count; + set { + while(value > Tools.Count) Tools.Add(null); + // No support for shrinking inventory yet. + if(value < Tools.Count) throw new NotImplementedException(); + } + } + /* + The tools the user has out. + A tool is something the user can actively use (The abilities the user can use). + */ + public List<IActiveItem> Tools { get; protected set; } = new List<IActiveItem>(); + + + + + /* + The modifier from all the passives. + */ + public ICharacterStats Modifier { get; protected set; } = new CharacterStats(); + /* @@ -34,53 +136,456 @@ namespace BigSock.Item { public Character Owner { get; } - public Inventory(Character owner) { + public Inventory(Character owner, int backpackCap = 1, int accessoriesCap = 1, int equipmentCap = 1, int toolsCap = 4) { if(owner == null) throw new ArgumentNullException(paramName: nameof(owner)); Owner = owner; + BackpackCap = backpackCap; + AccessoriesCap = accessoriesCap; + EquipmentCap = equipmentCap; + ToolsCap = toolsCap; } /* Adds an item to the inventory and manages changes. */ - public bool AddItem(IItem item) { - if(Items.Count >= Cap) return false; - - Items.Add(item); + public int AddItem(IItem item) { + // Find the first available slot. + var pos = FindEmptySlot(); + if(pos == -1) return pos; - // Add the passive effects to the modifier. - if(item is PassiveItemBase passive) { - Modifier = Modifier.Add(passive.Modifier); - } + Backpack[pos] = item; - // Add the listener for this item to the owner. - else if(item is ConditionalItemBase conditional) { - Owner.AddItemListener(conditional); - } - //! Add ifs to handle the other 2 types of items. + // if(Items.Count >= Cap) return false; + // + // Items.Add(item); - return true; + // // Add the passive effects to the modifier. + // if(item is PassiveItemBase passive) { + // Modifier = Modifier.Add(passive.Modifier); + // } + + // // Add the listener for this item to the owner. + // else if(item is ConditionalItemBase conditional) { + // Owner.AddItemListener(conditional); + // } + // //! Add ifs to handle the other 2 types of items. + + return pos; } /* Removes an item from the inventory and manages changes. + !! Depricated, no use method. */ public bool RemoveItem(IItem item) { - if(!Items.Remove(item)) return false; + throw new NotImplementedException(); + // if(!Items.Remove(item)) return false; + // + // // Remove the passive effects from the modifier. + // if(item is PassiveItemBase passive) { + // Modifier = Modifier.Remove(passive.Modifier); + // } + + // // Remove the listener for this item from the owner. + // else if(item is ConditionalItemBase conditional) { + // Owner.RemoveItemListener(conditional); + // } + // //! Add ifs to handle the other 2 types of items. + + // return true; + } + + /* + Moves an item from one inventory slot to another. + */ + public bool MoveItem(IItem item, InventoryType fType, int fPos, InventoryType tType, int tPos) { + if(item == null) return false; + if(fType == tType && fPos == tPos) return false; + + // Try to remove the item from its original slot. + if(!RemoveItem(item, fType, fPos)) return false; - // Remove the passive effects from the modifier. - if(item is PassiveItemBase passive) { - Modifier = Modifier.Remove(passive.Modifier); + // Try to add the item to the desired slot. + if(!AddItem(item, tType, tPos)) { + // Try to add the item back to its original slot. + if(!AddItem(item, fType, fPos)) { + // If the item was lost to the void. + Debug.Log($"[Inventory.MoveItem({item.Id}, {fType}, {fPos}, {tType}, {tPos})] Couldn't return item to its original place."); + } + return false; } - // Remove the listener for this item from the owner. - else if(item is ConditionalItemBase conditional) { - Owner.RemoveItemListener(conditional); + return true; + } + + /* + Drops an item from a given slot. + */ + public bool DropItem(IItem item, InventoryType iType, int pos) { + if(item == null) return false; + + return RemoveItem(item, iType, pos); + } + + /* + Find the index of an item in teh inventory. + */ + //public int FindItem(IItem item, InventoryType iType) { + // List<IItem> lst; + // switch(iType) { + // case InventoryType.Backpack: lst = (List<IItem>) Backpack; break; + // case InventoryType.Tool: lst = (List<IItem>) Tools; break; + // case InventoryType.Accessory: lst = (List<IItem>) Accessories; break; + // case InventoryType.Equipment: lst = (List<IItem>) Equipment; break; + // default: return -1; + // } + // for(int i = 0; i < lst.Count; ++i) + // if(item == lst[i]) return i; + // return -1; + //} + + } + + + + + /* + Black magic, gets background stuff to work. + Don't touch it, don't worry about it, for all you care, there are dwarves in the pc that make this work. + */ + public partial class Inventory { + + /* + Finds first empty slot in the backpack. + Returns -1 if all full. + */ + private int FindEmptySlot() { + for(int i = 0; i < Backpack.Count; ++i) + if(Backpack[i] == null) return i; + return -1; + } + + + /* + Code that handles adding of items with effects to areas other than the backpack. + */ + + + private bool AddItem(IItem item, InventoryType iType, int pos) { + switch(iType) { + case InventoryType.Backpack: return AddBackpack(item, pos); + case InventoryType.Tool: return AddTool(item, pos); + case InventoryType.Accessory: return AddAccessory(item, pos); + case InventoryType.Equipment: return AddEquipment(item, pos); + default: return false; + } + } + private bool RemoveItem(IItem item, InventoryType iType, int pos) { + switch(iType) { + case InventoryType.Backpack: return RemoveBackpack(item, pos); + case InventoryType.Tool: return RemoveTool(item, pos); + case InventoryType.Accessory: return RemoveAccessory(item, pos); + case InventoryType.Equipment: return RemoveEquipment(item, pos); + default: return false; } - //! Add ifs to handle the other 2 types of items. + } + + + private bool AddTool(IItem item, int pos) { + // Check range + if(0 > pos || pos >= Tools.Count) return false; + // Check is empty. + if(Tools[pos] != null) return false; + + if(item is IActiveItem itm) { + Tools[pos] = itm; + + AddedItem(itm); + return true; + } else return false; + } + private bool RemoveTool(IItem item, int pos) { + // Check range + if(0 > pos || pos >= Tools.Count) return false; + // Check is empty. + if(Tools[pos] != item) return false; + + Tools[pos] = null; + RemovedItem(item); + return true; + } + + private bool AddBackpack(IItem item, int pos) { + // Check range + if(0 > pos || pos >= Backpack.Count) return false; + // Check is empty. + if(Backpack[pos] != null) return false; + + Backpack[pos] = item; + return true; + } + private bool RemoveBackpack(IItem item, int pos) { + // Check range + if(0 > pos || pos >= Backpack.Count) return false; + // Check is empty. + if(Backpack[pos] != item) return false; + + Backpack[pos] = null; return true; } + private bool AddEquipment(IItem item, int pos) { + // Check range + if(0 > pos || pos >= Equipment.Count) return false; + // Check is empty. + if(Equipment[pos] != null) return false; + + if(item is IInactiveItem itm) { + Equipment[pos] = itm; + + AddedItem(itm); + return true; + } else return false; + } + private bool RemoveEquipment(IItem item, int pos) { + // Check range + if(0 > pos || pos >= Equipment.Count) return false; + // Check is empty. + if(Equipment[pos] != item) return false; + + Equipment[pos] = null; + RemovedItem(item); + return true; + } + + private bool AddAccessory(IItem item, int pos) { + // Check range + if(0 > pos || pos >= Accessories.Count) return false; + // Check is empty. + if(Accessories[pos] != null) return false; + + if(item is IInactiveItem itm) { + Accessories[pos] = itm; + + AddedItem(itm); + return true; + } else return false; + } + private bool RemoveAccessory(IItem item, int pos) { + // Check range + if(0 > pos || pos >= Accessories.Count) return false; + // Check is empty. + if(Accessories[pos] != item) return false; + + Accessories[pos] = null; + RemovedItem(item); + return true; + } + + + /* + Code that handles adding of items with effects to areas other than the backpack. + */ + + private void AddedItem(IItem item) { + if(item is IPassiveItem passive) AddedItem(passive); + if(item is IConditionalItem conditional) AddedItem(conditional); + if(item is IActiveItem active) AddedItem(active); + } + private void RemovedItem(IItem item) { + if(item is IPassiveItem passive) RemovedItem(passive); + if(item is IConditionalItem conditional) RemovedItem(conditional); + if(item is IActiveItem active) RemovedItem(active); + } + + private void AddedItem(IPassiveItem item) { + Modifier = Modifier.Add(item.Modifier); + Owner?.UpdateModifiers(); + } + private void RemovedItem(IPassiveItem item) { + Modifier = Modifier.Remove(item.Modifier); + Owner?.UpdateModifiers(); + } + + private void AddedItem(IConditionalItem item) { + Owner?.AddItemListener(item); + } + private void RemovedItem(IConditionalItem item) { + Owner?.RemoveItemListener(item); + } + + private void AddedItem(IActiveItem item) { + //Owner?.UpdateAbilities(); + } + private void RemovedItem(IActiveItem item) { + //Owner?.UpdateAbilities(); + } } -} \ No newline at end of file + + + /* + ToDo: + - SectionCap.set => Shrink. + - Way to extract abilities from the tools. + - Add way to check what inactive slot an item is ment for. + */ +} + +/* + + ##################################@@@@WWW@@#####@W@W@WWW@######################################################## + ################################WxMWWWMMMMMMMWWMWWW@@WW@@@W@@#################################################### + ##############################@MxMWWWMMMW@@@@WWWWMW@@@@@@@@@@WW@@################################################ + ##############################MMMWWWMWW@@@@@W@@WWWW@@@@#@###@@@@@@W@############################################# + ############################@xxMMWMWW@@@@@@@@@#@@@W@@@#######@@@@#@@WW@########################################## + ###########################WMMxWWMMWW@@@@@@@@@#@@@@@@#########@@@##@@@WWW@####################################### + #########################@MMMMMWMWWWW@@@@@#@@@@##@@@@############@@@@@@@##@@@#################################### + #########################WMMWWWWWW@WW@@@@@##@@##@@@@@###########@@@@@######@@WW@################################# + ########################WMWWWW@WW@@WW@@@@#######@@@@@@##@@@@@@@@@@@@######@##@@WM@############################### + ####################WxMMMWWWW@@W@@@WWW@@@#@#####@@@@@#@@###@@@@@@@@@@#########@@@@@@@############################ + ##################@MWWWWWWWWW@@@@@@@@@@@#######@@@@@@######@@@WWW@@@################@@@########################## + #################@W@@@@W@WWW@@@@@@@@@##########@@@@#######@@@@@@@@@@@@@@##@@@#########@@######################### + ################@@@@@@@WW@@@@@#@@@@##############@########@@@@@@@@@@###@#@@@@@#######@##@######################## + ###############@W@@WWW@@@@@@@@#@@@@#############@########@@@@@@@@@@##@@##@@@@@@@#####@@@@@@###################### + ##############@W@WWW@W@@@@@@@@#@@@######################@@#@@####@@@@#####@@@@#########@@#W###################### + #############WW@@@W@@@@@@@@#@@@@@##########################@#@@@@@@#####################@#@@##################### + ############WMWWWW@WWW@@@@@##@@@############################@@@###########################@W@#################### + ###########WMWWWW@@@@@@@######@######################@##@@@@@#########@####################@W#################### + ##########WMWWWWWWW@@@@@@########################@@#####@@@@##@@@@###@@#########@@@######@##@W################### + #########@xMWWWWW@W@@@@@@@############################@@@########@@@@@###@#########@@####@@@@WW################## + #########WMWWW@@@@@@@@@@@@@@##############@###@@@######@@@@@@@@#@@@@@@@@###@########@@@#@@@@@@WW################# + #########WWW@@@@@@@@@W@@@@@@@################@####@@@@@@@@@@@@@@@@####@@@####@@#########@@@@@@@WW################ + ########@WW@@@@@@@@@W@@@@@###############@####@@##@####@@#@@@@@@@@@#####@@####@@###########@@@@WWW############### + ########@WW@@@@@@@@WWW@@@##############################@@@@@@@@#@###############@###########@@@@WM@############## + #######@WW@@@@@@@@@WWW@@@###############################@@@@@####################@##############@@W############## + #######MW@@@@@WW@@WWWW@@@@#########################@@@@@@@@@####@@@###############@###############@@############# + ######@WW@@@@@@WW@@W@WW@@@@######################@@@@@@##################@###@#####@#############@@W############# + ######@WWWWWW@@@WWWWWWWW@@@#####################@@@@@@########@@@@########@@#@####@##@#############@@############ + ######WWWWW@WW@@WMWWWWW@@@@####################@@@@#########################@##@@###################@@########### + ######MWWWW@@@@@@WWWWW@@@@@##################@@############################@@#######################@@@########## + ######W@WWWW@@@@WWWW@@@@@@@###############@@@@@#############################@@###@###################@@########## + ######M@@@WWW@@WWWW@@@@W@@@##@####@####@@@@@@#######@#####@#@################@###@####################@@######### + ######W@@@WW@@WWW@@@@@@W@@@##@@@@@@#@@@@@@@@########@@####@@@@@@@@############@@#######################W######### + #####WW@@@@@W@WW@@@@@@W@@@##@@@@@@@@@W@@@@@@@#######@#####@@@@@@@@@############@########################@######## + #####@W@@@@@WWW@@@@@@@@WW@@@WW@@@@@@@@@@@@@@@@###@@@@@@@@@@@@@@@@@@@@@#@#####@@#@##@####################@######## + #####@W@@@@@WWW@@@@@@@@@W@@WMWW@@@@W@@WWW@@@@@@@@@WWWW@@@@@@@@@@#@@@@@@@@#####@#@@@@####################@@####### + #####WW@@@@@WWW@@@##@@WWW@@MMWWW@WWWWW@W@WW@@@@@@WWWW@@@@@@@@@@@@####@###@#####@#@@######################@####### + #####W@W@@W@WWW@@@#@@WMMMWWMMMMMWWWWMMWWWWWWW@WW@WWW@@@@@@@@##########@##########@@@#####################@####### + #####W@W@@@WW@@@@@#@@MxxMWMWMMxMWMxMMMMMMWWWWWWWWWWW@WWW@@@@###########@###########@@#####################@###### + #####WWW@@@W@@###@@@WMxnxWMWxxnxMMxMMMxxxMMMMWWW@W@@@@@@@@@@###@########@####@######@#####################@###### + ####@WWW@@@W@@#####@MnnznMMMxzzznxxxnnnnxxxxMWWWWWW@#@@@@@@@@####@######@###########@@####################@###### + ####WWW@W@@W@@#####WnznzznMxMnnzznzznnnxnnnnMWWW@W@@@@@@#@@@@@#@#@@@##@#@@############@###################@###### + ####WWW@@@@W@@@###@Mnznz#zMxxxz+###+#zzzzznnMWMMWWW@@@@@@@@@@@@@@@@@##@@@@@###########@@###################@##### + ###@WWMW@@@W@@@@#@@Mzzz#+#nnnxnz########zzznxxxxMWW@@@@@@@@@@@@@@@@@@@#@@@@################################@##### + ###W@@WWW@@W@@@@@@@xnzz###+nnnxnz#######zznznnxnxMW@@@@W@@W@@@@@@@@@@@@@@@@#################################@#### + ##W@@@@WWW@WW@@@@@Wxnz++##+#nzznzz#####znz#znnxxnxxW@@WWWWWW@@@@@@@@@@@@@#@@################################@#### + ##@@@@@WWWWWWW@@@WWMxz++++++nz##zzz#####zzzzzzznnnxMW@WWWWWWWW@@@@@@@@@@@###@###############################@@### + ##W@@@@@WWW@MWWWWWWMMxz+**+##nz#+#z###+++++#####znnxMWWWWWWWWW@@WW@@@@@@@@###@@##############################W### + #@@@@@@@@@@WWWMWWMMMxxz#*i*+#zzz#+###+++++++++++#zznxMMMWWWWWW@@WW@W@@@@@@################################@##W### + #@#@@@@@@@@WWMMMWWWMxnn#+ii**##nz#####+++**++++++#zznxMMMWWWWMW@W@@W@@@@@@@@@################################W### + @@@@@@@#@@@@WWWWWWWMMMMz+**ii*++znnnzz##++++****++#znnxxWWWW@WW@W@WWWW@@@@@@@################################@### + @@@@@@@@@@@@WWWWWWMMMxxxnz+*iii*++#zznnzz#++****+++#zznnxWWW@@W@W@WWWWW@@@@@@@###############################@### + W@@@@@@@@@@@W@WWWWWMxxzz#+**iiiii**+#znnz#+*******++##z#zxWW@@W@@@WWWWWW@@@@@@###############################@@## + W@@@@@@@@@@WW@@@WWWxnnzn##+*ii;;ii*i*++##+***iii****+####zMW@@@@@@@WWWWW@@@@@@@@##############################W## + W@@#@@@@@@WWW@@@WWWxzz+##++*i;;;;;ii********i*iiii***+##+#nMW@@@@@@WWWWWW@W@@@@@@#############################W## + W@@@@@@@@@@W@@@@WWWxz#++****i;;;;;;iiiiiiiiiiiiiiii***+#++#nxW@@@@@WWWWWW@WW@@@@@#############################@## + M@@@@@@@@@WW@@@@WWMx##+*iiiii;;;;;;;iiiiiiiiiiiiiiiii**++###xMW@@@@@WWWWMWWW@@@@@#############################@@# + @@@@@@@@@@WW@@@@MWxn##*iiiii;;;;;;;iiiiiiiiiiiiiiiiiiii*+++#nMM@@@@@WWWWWWWWW@@@###############################@# + @@@@@@@@@WW@@@@WWWxn#*iiii;;;;;;;;;;;;;;iiiiiiiiiii;iiii*+++#nMW@@@@WWWWWWWWW@@@@@#############################@# + @@@@@@@@@@@@@@@WWMn#+iii;;;;;;;;;;;;;;;;;;i;;;;;;ii;;;iii*+++#nM@@@@@WWWWWWMW@@@@@@@############################# + #@@@@@@@@@@@@@WWWMz+*ii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iii**++##xW@@@@@@WWWWMMW@@@@@@@############################ + #W@@@@@@@@@@@@WMMx#+iii;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;iiii*++++zxW@@@@WWWWWWMMW@@@W@@@########################### + #W@@@@@@@@@@WWMMx#+*iii;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;iii***+++#nxW@@WWWWWWWWWWWWWW@@@########################W# + #@@@@@@@@@@@WWMxz++iiii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiii***++##zzMMMWWMMWWWMMWWWWW@@@#######################@# + #@@@@@@@@@WWWMxz++*iii;;;;;;;;;;;;:::;::;;;;;;;;;;;;;;iiii***+**+#z#znxMWWWMWWMMWWWWWW@@@######################@# + ##@@@@@@@@WWWMz#+*iiiii;;;;;;;;;::;:::::::;;;;;;;;;;;;;iiiii*****++##znnxMWWWWWMWWWWWWW@@@#@###################@# + #@@@@@@@@@@WWx#+*iiiiiii;;;:;:;;::;:::::;:;;;;;;;;;;;;;iiiii*iii***++##zznxMMWWWWMMMMWW@@##@###################W# + #@@@@@@@@@@W@x#+iiiiiii;;;;;;;;;;;:;:;;:;:;;;;;;;;;;;;iiiiiiiiii***++++##zznxxxxMMMMMWW@@@@####################@# + #W@@@@@@@@@W@x+*iiiiii;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiii****+++##zznxxnxxxMMMW@@@#####################@# + #@W@@@@@@@@W@n*iiiiiii;;;;;;;;;;;;;;;;;:;;;;;;;;:;;;;;iiiiiiiiiiii***++++##zznnnnnnxxMMW@@####################### + #@M@#@@#@@WWWn*iiiiii;;i;;;;;;;;;;;;;;;;;;;;;i;;;;;;;iiiiiiiiiiiii**+++++###znnnnnnnxxMW@@@###################### + #@M@@@#@@@WWWz*iiiiiiiiiii;;ii;iiii;;;;;;;;;;i;;;;i;iiiii*iii***i**++#++#####znnnnznxxMM@@####################### + #MWW@@##@@WWWz*i*iii*******i*++++++**iiii;;;iii;;;iiii*****+++##++++#z#######znnnnnznxxMW@@###################@W# + #xW@@###@@@WW#*iiii**i***+*+#zzznnz##++***i;;i;;;;i*i*#####zzznnz##+#z#zzzzzzznnnnnnznxxW@@##################@@W# + #MW@@@###@@@W#i*iii*****++++#znnnnnz#####*i;;i;;;i*++##znnnnnxxnnnzzzz##zzzzzznnnnnnznxxM@@########@#####@@#@@@@# + #WWW@@##@@@@W+i*iii*****++###znnnxnnz#z##+*;;i;;;i+zz#zznxxxMMxxnnnzzz##zzzznnnnnnnnnnxxxW@#######@@@###@@@@@#@M# + @W@@@@####@@M*iiiii**iii*++znxMMMMxxxxz##+*;;;;;;*+znnnnnnxMMMxnzzz#######zzznnnznnnnnnxxMW@#####@@@#@@@@@@@@#@W@ + @@@@W@@@#@@@x*iiiiiiiii*+##xMMxMxxxnznz#+**i;;;;i*#nnnnnnnxxxnznzzzzz###+##zzzzzznnnnnnxxxMW@###@@@###@@@@@###@@W + @W@@@@@@@@@@z*iiiiiiii+#+zzzn#*xMnn###+++*ii;;;;i*#nnnnnznnzznnxMxxMxnzzz###zzzzznznnnnnxxxMW@#########@@@@@@@@@W + #@@@@@@@@@@M+iiiiiiii*##n+;+nzz@x#z+#z*i*ii;:;;;i+#nnnnnz##zn#*nz*xMMMMnznz#z####znnnnnnnxxMW@#############@@@@@@ + #W@@@@@@@@Wx*iiii;;i*+#+*i;inz#z##z++#+iiii;:;;;i+znnnnz+#zz+;;nzz@Mxnxxxznz#z###zzznnnnnnxxMW##############@@@@@ + #W@@@@@@WWWn*i*i;;;ii***ii;;+z#z##+*+*+i;ii;:::;i+znnnn##z#+i::#z#zznnnzxxnz#z####zzznnnnxxxMM##############@@@@@ + #WWW@@@WWWWz*iii;;;ii*iii;;;;i*******i;iii;;:::;i+znnnz*z+++*i;izzzzzz###nnz#######zzznnnxxxMW@##############@@@@ + #WWWWWMMMWMz*ii;;;;;;;;;;;;;;;iiii***iiiii;;;::;i+znnnz+*iiii;ii*+###+++#nnz#########zznnnxxMW@################@# + #WWWWWnnMMxz*ii;;;;;;;;;;;;;;;;;i***ii**ii;;;;;;i+#nnzz#+***iiiii*****+##z##++++++###zzznnxxMW@###@#@@@@@@@@@@WW# + #@MWWM#nMMxn*ii;;;;;;;;;;;;;;;iii*iii*iiii;;;;;i*+#nnzz#+****ii;iiii**+###+****++++##zzznnxxMW@##@@@@@@WWWW@@WWM# + ##WWWM*#nnxn*i;;;;;;;;;;;;;;;;;;;iiiiiiiii;;;;;i*+#zzzzz#*****iiii**+++##+*****++++##zznnnxxM@@#@@@@@WWWMMMWWWW@# + ##@MWM+#nnnn*ii;;;:::;;;;;;;;::;;;;;;iiiii;;;;ii*+zzzzz##+*iiiiiii***++++*********++#zznnnxxMW@#@@WWMMMMWMxMWWW@# + ###WWW#+znnn+i;;;;;:;;;;;::::::::;;;;;;iii;;;;ii*+zzzzz##+i*iiiiiiii**************++#zznnxxxMW@@@@WWMMMMMMnx@WW## + ###WWWzi#znn+ii;;;;;;:;;::::::::::;;:;;;ii;;;;i**#zzzzz##+****iii;iiiii******i****++#zznnnxxMW@@@@WWWMMMMMnn@#@## + ##@W@Wni##zn+ii;;;:;;::::::;;:::::::;;;ii;;;;;ii+#zzzzzz#+**iiii;;;;;ii*******i***++#znnnnxxMW@#@WWWWMMMMMnn@@@## + ##@@@@M*++zx#iiii;;:::::;::::::;::::;;;;;;;;;;ii+#zzzzz##++*iiiii;;;iiiii********+++#znnnnxxMW@#@@WWMMMMMxxz@W### + ###W@@W+*i*x#iii;;:::::;;;::::::::::;;;;;;;;;;;i*#zzzzz#z+**iiii;;;iiiiiiiii*****+++#znnnnxxMW@#@@WMMxxMMxxz@@### + ###WWWW*i;inz*i;;;::::::::::::::::::;;;;;;;;;;i*+#zzzzzz#+*iii;i;;iiiiiiiiiiii***++##znnnnxxMW@@@@WxnnxxMxnzW#### + ####W@@+;:ixz*ii;;;:;:::::::::::::::;;;;;;;;;ii*+#zzzzz##+*iii;;ii;iiiiiiiii**i**++##znxnnxxMW@@@@WMnznnxxnzM#### + #####M@+;:ixn*ii;;;:;:::::::::::::::;;;;;;;;;;i*+#zzzzz##+*iii;;;;;iiiiiiiiii****++##znxxxxxMW@@@@WxnnnnxMnzW#### + #####@W+;:;#x+ii;;;:;:;::::::::::::;;;;;;;;;;;;*+##zzzzz#+*iii;;;;;iiiii**iii***+++#znnxxxxxMW@WWWWxnzznxMzz@#### + #######+;::in+ii;;;:;;;:::::::::::;;;;;;;;;;;;i**+#zzzzz#+*i;;;:;;;;;iiii*ii****++##znnxxxxMW@@MxWWMnzzznxzx##### + #######+;::;*#ii;;;:::::::::::::::;;;;;;;;;;;;i**+#zznzz#+*i;;;:;;;;;iiiiii****+++#zznnxxxxMWW@MMWWMnzzznxzM##### + #######*;::ii*ii;;;;:::::::::::::::;;;;;;;;;;;ii*+#znnnz#+*i;;;:;;;;;;iiiiii****++#zznnxxxMWW@@MMMWMxz##zxzW##### + #######*;:;i*i*ii;;;:::::::::::::::;;;;;;;;;;;ii*+#znnnnz+*i;;;;::;;;;;iiiii***++##zznnxxxMW@@WxMMWMxnzznnzW##### + #######+;::i***ii;;;;:::::::::::::;;;;;;;;:;;;i**+#znzznz#*i;;;:::;;;;;iiii***+++##zznnxxxMW@WxMMMMMxnzznnz@##### + ########;;:;ii*ii;;;;::::::::::::::;;;;;;:::;;**++#zz##znz*i;;;:::;;;;;iiii***++##zznnnxxxxMWxxMMMMMxnzznzn###### + #######n;;:;;;*ii;;;;::::::::::::::;;;;;::,::;i*++##z#+#zn+ii;;::::;;;;iiii***+###zzznnxxxxMMxxMMMMMxz#znzx###### + #######x;;::;:iii;;;;:::::::;;::::::;;;;:::::;i*+++###+##z#*i;;;;:;;;;;iiii**++###zzznxxxxxMxxMMMMMMxz#znz@###### + #######Wi;;:::*iii;;;::::::::::;;:::;;;;;:::;i**++##+++##zz+i;;;;;;;;;;iiii**++#z#zznnxxxxMMxnMMMMMxnzznzn@###### + #######@*;;;::*iii;;;:::::::::;;::::;i*i;;;:;i*+###++++##nn+ii;;;;;;;;iiiii*++#####znnnxxxxMxxxxxxxnznxzzx####### + ########z;;:::iiii;;;;:::::::::::::::;**ii;;i*+##znxnz##znz+*i;;;;;;;;iiii**++####zznnnnxxMMxxnnnnxxnxnzzM####### + ########M;:;::iiii;;;;;;:::::;:::::::;iiiiii*+#zzznnnzzznn#+*i;;;;;;;;iiii***+####znnnnxxxxMxxnznnnxxnzzn@####### + ########@i;;;:iiii;;;;;;::::::;;::;::;;;;iii*+#zzzzzzznnz#++*i;;;;;;;iii****+#+###znnnxnxxxMxxxnzzznnzzzM######## + #########+;;;:iiii;;;;;;;:::::;;:::;;;;i;;ii*++###zzzzzz#+****ii;;;;iiii***++#++##zznnxxxxxMxxxnnzznzzzn######### + #########Mi;::**ii;;;;;;;:;;:;;;;;;;;;;;;;;i***++#######+***i*ii;;;;iiii***++#++##zznnxxxxxMxnnnzzz#zzn@######### + ##########n;;;i*iii;;;;;:;;;;;;;;;;;;;;;i;;;iiii*++####++**ii***ii;iiiii**++##++##zznnnnxxxMxnnzzzzzznW########## + ############;iiiiiii;;;;;;::;;;;i;;;i;;;;;;;iii;i***+++++******+*iiiiiii**++##++##zznnnxxxxMxnzzzzzzzW########### + ###########@+;iiiii;;;;;;;:;;i;;;;;iii;;;;;;iii;;ii**+++++******+*i;ii*i*++###++##zznnnnxxxMxnzz##zzM############ + #############@ziiiiii;;;;;:;ii;;i;i;i;;;;;;;ii;;;ii**+##++++***+++*iii***++###+++#zznnnxxxMWMnz##zzx############# + ##############xiiiiii;;;;;:;ii;;;;;;;;;;;;:;;;i;;;ii**+##++++*+++***ii****+###++##zznnnxxxx@@xzzzxWW############# + ##############Wiiiiii;;;;;;;iii;i;;;;;;::::;;;;;;;iii**++##+++++***iiii***+#zz#+##zznnnxxxM@##@W@@@@############# + ##############@*iiii;;;;;;;;;iiii;;;;::::::;;:::;;;ii**++####+++**iiiii***+#zz#+##zzznnnxxM#######W@############# + ################i*iiii;;;;;;;ii*+*iiiiiiii*i;;;;;;;ii***+++####+*iii*ii*+++#zz++##zznnnnxxM######@@############## + ###############xiiiiiii;;;;;;;;;i+#zz########++++#+++++++##znxn#*iiiii**++##z#++#zznzzznxx@#####W@############### + ###############Wiiii;ii;;;;;;;;;;;*++*++###zzzzzzzzznnxxMxxxn#+*ii;iii*++##zz##+#zzzzznnxx@###@W@################ + ################+iii;iii;;;;;;;;;;;ii*i**i*******+*++##zzz#+++*ii;;iii*+###zz#+##zznzznnxM##@@W@################# + ################xiii;;iii;;:;;;;;;;;;iiiii;;;;;;i***++##++++++*iiiiii**+#zzzz++#zzznzznnxMW@@@################### + ################@*ii;;;ii;;;;;;;;;;;:;;;i;;;;;;;ii***+**+++#+**iiiiiii*+#znz#++#zzzzzznxxM####################### + #################niiii;ii;;;;;;;;;;;;:::;;;;;;;;;ii*****+##+******i*i*+#zzz##++#zzzzzznxx######################## + #################@*iii;;ii;;;;i;;;;;;;;;:::;;;;;;;iii**+++++**********+#zzz#++##zzzzznxx@######################## + ##################xii;;;ii;;;;i;;;;;;;;;;;;;;;;iiii**+++++***+********##zz##++#zznzzznxM######################### + ##################@*i;i;;iiii;;;;;;;;;;iiiiiii******+++*******+******+##zz##+##zzzzznxM########################## + ###################xii;;iiiii;;;;;;;;;;;iii****+*************+++***++##zz#++++#zzznnnx@########################## + ####################nii;iiiii;;;;;;;;;;;;;ii***ii**i**ii***+*+*+++*++#zz##+++#zzznnnx@########################### + ####################@*i;;iiii;;;;ii;;;;;;iiiiiiii*iiiiii***++++++**+##zz#+++#zznnnnxW############################ + #####################xii;;;iii;;;;ii;;;;;;iiiiiiiiiiiiiii**++++#+**+#####++##zznnxxM############################# + #######################ii;;;i;;;;;i;;;;;;;;i;;i;iiiiiiii***++++#+**+#z##+####znnxxM############################## + ######################@*i;iii;;;;;i;;;;;;;;;;;;;;iiiiiiii****+++++++zz#+###zznnxxM############################### + #######################x*iiii;;;;;;;;;;;;;;;;;;;;iiii;i***i**++++++#zz###z#zznxMM@############################### + ########################n*ii;;;;;;;;;;;;;;;;;;;;;iiiiii******+++++##zz###zznnxxM@################################ + #########################ziiii;;;;;;;;;;;:;;;;;;;;;;iiii***+*+++++##zz#zznnnxxx@################################# + ###########################ii;;;;;;;;;;::::;;:;;;;iiiii******++++##zzzzzznnxxM@################################## + ##########################@+iii;::;:::::::::::;;;i;iiii***+*++++##zzzzzznnxxM@################################### + ###########################@+ii;::;;;:::::::;:;;;;;;iiii****++++#zzzznnnnxxM##################################### + ############################M*i;;::::::::::;;;;;;;;;ii******+++##zznnnnnxxM###################################### + #############################M*i;:::::::::;;;;;;;;;;;i******++zzznnnnnnxxW####################################### + ##############################Mii;;::::::;;;i;;;;;;;;iiii*+*+##znnnnnnxM@######################################## + ###############################Mi;;;::;;;;;;;i;;;;;;ii*ii**++#zznnnnnx@########################################## + ################################Mi;;;;:;;;;;;;;;;;;;ii****++#zznnnnxW############################################ + #################################zi;;;;;i;;;i;;;;;iiiii**+##zznnnM@############################################## + ##################################x*i;iiiiiiiiiiiiii***+++#zznMW################################################# + ###################################@z***i******i***++++###znW#################################################### + #####################################@WMxxxxnz#++++zznxxMM@###################################################### + + It just works :) + +*/ \ No newline at end of file diff --git a/MrBigsock/Assets/Code/PlayerController.cs b/MrBigsock/Assets/Code/PlayerController.cs index 5bc4dba32dfdc8f53bf152d2fa3663c4955abc2d..0846bcf016754b51643f1866165dd5815e2d84a5 100644 --- a/MrBigsock/Assets/Code/PlayerController.cs +++ b/MrBigsock/Assets/Code/PlayerController.cs @@ -36,6 +36,7 @@ namespace BigSock { protected IAttack _testAttack; protected IAttack _testAttack2; + protected IAbility _dodge; public DateTime NextTimeCanAttack { get; private set; } = DateTime.Now; @@ -58,13 +59,16 @@ namespace BigSock { //!! DEBUG: Add item to player at start to test if it works. - TryPickUpItem(ItemService.SINGLETON.Get(201)); - TryPickUpItem(ItemService.SINGLETON.Get(201)); - TryPickUpItem(ItemService.SINGLETON.Get(202)); - TryPickUpItem(ItemService.SINGLETON.Get(101)); - var tmp = PrefabService.SINGLETON; + //TryPickUpItem(ItemService.SINGLETON.Get(201)); + //TryPickUpItem(ItemService.SINGLETON.Get(201)); + //TryPickUpItem(ItemService.SINGLETON.Get(202)); + //TryPickUpItem(ItemService.SINGLETON.Get(101)); + + //var tmp = PrefabService.SINGLETON; + _testAttack = (IAttack) AbilityService.SINGLETON.Get(101); _testAttack2 = (IAttack) AbilityService.SINGLETON.Get(102); + _dodge = AbilityService.SINGLETON.Get(201); } @@ -122,12 +126,20 @@ namespace BigSock { } } + // If pressed Z: Big attack. if(Input.GetKey(KeyCode.Z)) { _testAttack2.Use(this, Camera.main.ScreenToWorldPoint(Input.mousePosition)); } + // If pressed X: dodge. + if(Input.GetKey(KeyCode.X)) { + _dodge.Use(this, Camera.main.ScreenToWorldPoint(Input.mousePosition)); + } + + + //!! Code for testing the new item stuff. - if(Input.GetKeyDown(KeyCode.Space)) { + if(Input.GetKeyDown(KeyCode.M)) { var item = ItemService.SINGLETON.GetRandom(); // new ItemRunningShoes(); TryPickUpItem(item); } diff --git a/MrBigsock/Assets/Prefabs/Bosses.meta b/MrBigsock/Assets/Prefabs/Bosses.meta new file mode 100644 index 0000000000000000000000000000000000000000..7b1ca818d1360656106a06cd15c34d06a6ff107c --- /dev/null +++ b/MrBigsock/Assets/Prefabs/Bosses.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a8b050ffd129a85479ea8c52d32cc433 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Prefabs/Bosses/Skeleton_Boss.prefab b/MrBigsock/Assets/Prefabs/Bosses/Skeleton_Boss.prefab new file mode 100644 index 0000000000000000000000000000000000000000..2d63c2fe3a762a192cc1f917865f59c482ca8b2d --- /dev/null +++ b/MrBigsock/Assets/Prefabs/Bosses/Skeleton_Boss.prefab @@ -0,0 +1,380 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1433933627902830908 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4160105189502734449} + - component: {fileID: 5876884673920654141} + - component: {fileID: 3055707651548922511} + m_Layer: 3 + m_Name: MeleeCollider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4160105189502734449 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1433933627902830908} + 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: 201222405459208470} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!58 &5876884673920654141 +CircleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1433933627902830908} + 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: 2 +--- !u!114 &3055707651548922511 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1433933627902830908} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 02e1a714e20472c46a1f156e232741cd, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1801356079000001599 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2646869585318470754} + - component: {fileID: 5214615873191808356} + - component: {fileID: 2176826259710694891} + m_Layer: 6 + m_Name: followCollider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2646869585318470754 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1801356079000001599} + 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: 201222405459208470} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!58 &5214615873191808356 +CircleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1801356079000001599} + 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: 20 +--- !u!114 &2176826259710694891 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1801356079000001599} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 02e1a714e20472c46a1f156e232741cd, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &4349609284953701266 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 201222405459208470} + - component: {fileID: 8461637434535057470} + - component: {fileID: 6125326625377168187} + - component: {fileID: 1606193836527915566} + - component: {fileID: 8286296275760738666} + - component: {fileID: 4762512358206024136} + m_Layer: 6 + m_Name: Skeleton_Boss + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &201222405459208470 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4349609284953701266} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 13.75, y: 1.4, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2646869585318470754} + - {fileID: 4160105189502734449} + - {fileID: 8932620361758865679} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &8461637434535057470 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4349609284953701266} + 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: -722478285, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 8, y: 8} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!50 &6125326625377168187 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4349609284953701266} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 100 + 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!114 &1606193836527915566 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4349609284953701266} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 60320d8322a7e904b98e674486014057, type: 3} + m_Name: + m_EditorClassIdentifier: + baseAttackSpeed: 3 + baseMovementSpeed: 200 + baseDamage: 3 + knockbackForce: 3 + baseHP: 1000 + baseMaxHP: 1000 + dropXP: 0 + xp: 0 + maxXp: 0 + level: 0 + collisionOffset: 0.05 + movementFilter: + useTriggers: 0 + useLayerMask: 1 + useDepth: 0 + useOutsideDepth: 0 + useNormalAngle: 0 + useOutsideNormalAngle: 0 + layerMask: + serializedVersion: 2 + m_Bits: 0 + minDepth: 0 + maxDepth: 0 + minNormalAngle: 0 + maxNormalAngle: 0 +--- !u!95 &8286296275760738666 +Animator: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4349609284953701266} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: 5d5ffe83d5ce7544cb692df316e1215b, 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 &4762512358206024136 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4349609284953701266} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: -0.38910437, y: -0.00957644} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 8, y: 8} + newSize: {x: 8, y: 8} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 2.4747057, y: 4.089797} + m_EdgeRadius: 0 +--- !u!1 &7650257163233883537 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8932620361758865679} + - component: {fileID: 8891134058921715253} + - component: {fileID: 1160752332247117278} + m_Layer: 6 + m_Name: ChargeCollider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8932620361758865679 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7650257163233883537} + 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: 201222405459208470} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!58 &8891134058921715253 +CircleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7650257163233883537} + 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 &1160752332247117278 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7650257163233883537} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 02e1a714e20472c46a1f156e232741cd, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/MrBigsock/Assets/Prefabs/Bosses/Skeleton_Boss.prefab.meta b/MrBigsock/Assets/Prefabs/Bosses/Skeleton_Boss.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..b811a0fdfa099b05b51d01e1a88bffb2d6b3c46b --- /dev/null +++ b/MrBigsock/Assets/Prefabs/Bosses/Skeleton_Boss.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 11ac40832f040ae40b407577564319a7 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Sprites/Enemy/Boss.meta b/MrBigsock/Assets/Sprites/Enemy/Boss.meta new file mode 100644 index 0000000000000000000000000000000000000000..02dd99bc8f9a57e306f1e51b61fe248e50afae13 --- /dev/null +++ b/MrBigsock/Assets/Sprites/Enemy/Boss.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9e5133f21c6209c49ac46a3a397b9386 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Sprites/Enemy/Boss/Animations.meta b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations.meta new file mode 100644 index 0000000000000000000000000000000000000000..5b614eceb53ae0bb2d18e0cfd283910cad20b629 --- /dev/null +++ b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 794f6515c7f76c349b6908daed3f9ecf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss.meta b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss.meta new file mode 100644 index 0000000000000000000000000000000000000000..78e99c0d6917a7a0c6f9a56c1324b31eba07f288 --- /dev/null +++ b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e0dd7df002684314bba0aa5606a41ddd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/Skeleton_Boss.controller b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/Skeleton_Boss.controller new file mode 100644 index 0000000000000000000000000000000000000000..f8b1f2783038af56af42b63037def53824fa1964 --- /dev/null +++ b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/Skeleton_Boss.controller @@ -0,0 +1,348 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-5838770561437212160 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: attack + 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: 3a9b296f05a5f46468b4842e79a78301, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-2098245271132397025 +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: 8534352760552452239} + 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!1101 &-1309177908714018832 +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: take_damage + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 47660793621835083} + 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!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Skeleton_Boss + 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: idle + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: take_damage + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: death + 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: 2429554114940910762} + 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 &47660793621835083 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: take_damage + 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: d9feefb0b24016744b9057c554aac352, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &1044698477948029890 +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: idle + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 1118687558395868663} + 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!1102 &1118687558395868663 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: idle + 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: f7fa4cb4485ac3e429ba960c3de71c8a, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &1124569929887641331 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: death + 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: 7fd66e3f3101a9b4a8a05f6b0a3bf6fe, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &1597897340192746556 +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: death + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 1124569929887641331} + 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!1107 &2429554114940910762 +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: 1118687558395868663} + m_Position: {x: 30, y: 240, z: 0} + - serializedVersion: 1 + m_State: {fileID: -5838770561437212160} + m_Position: {x: 550, y: 240, z: 0} + - serializedVersion: 1 + m_State: {fileID: 1124569929887641331} + m_Position: {x: 570, y: -120, z: 0} + - serializedVersion: 1 + m_State: {fileID: 8534352760552452239} + m_Position: {x: 310, y: 240, z: 0} + - serializedVersion: 1 + m_State: {fileID: 47660793621835083} + m_Position: {x: 310, y: -120, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: + - {fileID: 1044698477948029890} + - {fileID: -2098245271132397025} + - {fileID: 8993286053556206782} + - {fileID: 1597897340192746556} + - {fileID: -1309177908714018832} + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 330, y: 90, 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: 1118687558395868663} +--- !u!1102 &8534352760552452239 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walk + 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: 47714463124abda4bb00217551026751, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &8993286053556206782 +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: -5838770561437212160} + 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 diff --git a/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/Skeleton_Boss.controller.meta b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/Skeleton_Boss.controller.meta new file mode 100644 index 0000000000000000000000000000000000000000..44c0c07a052a2bf422b301cf43448eb0ba223bde --- /dev/null +++ b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/Skeleton_Boss.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5d5ffe83d5ce7544cb692df316e1215b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/attack.anim b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/attack.anim new file mode 100644 index 0000000000000000000000000000000000000000..149ad7b9758be3a5995a95ce474acf512165594f --- /dev/null +++ b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/attack.anim @@ -0,0 +1,107 @@ +%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: 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: -722478285, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.083333336 + value: {fileID: -1447034090, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.16666667 + value: {fileID: 1527731990, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.25 + value: {fileID: 362425380, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.33333334 + value: {fileID: 1481348189, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.41666666 + value: {fileID: 1893060442, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.53333336 + value: {fileID: -342043623, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.75 + value: {fileID: 97825813, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1 + value: {fileID: -1177099960, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1.0833334 + value: {fileID: 909389799, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1.1666666 + value: {fileID: 1200564664, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1.25 + value: {fileID: 1584559168, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1.3333334 + value: {fileID: -786967481, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1.4166666 + value: {fileID: -786967481, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: -722478285, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -1447034090, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 1527731990, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 362425380, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 1481348189, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 1893060442, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -342043623, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 97825813, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -1177099960, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 909389799, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 1200564664, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 1584559168, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -786967481, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -786967481, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1.4333333 + 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/Boss/Animations/Skeleton_Boss/attack.anim.meta b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/attack.anim.meta new file mode 100644 index 0000000000000000000000000000000000000000..db2e730b4401425a65ee3975eaf5dfb92178583a --- /dev/null +++ b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/attack.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3a9b296f05a5f46468b4842e79a78301 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/death.anim b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/death.anim new file mode 100644 index 0000000000000000000000000000000000000000..4473d8960704da9c90122b90a19777e60d8c4cb8 --- /dev/null +++ b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/death.anim @@ -0,0 +1,107 @@ +%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: death + 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: 1402845578, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.16666667 + value: {fileID: 714976635, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.33333334 + value: {fileID: -461665815, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.5 + value: {fileID: -1692103412, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.6666667 + value: {fileID: -1341093431, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.8333333 + value: {fileID: -1222086038, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1 + value: {fileID: 1656035190, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1.1666666 + value: {fileID: 720433861, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1.3333334 + value: {fileID: 828691209, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1.5 + value: {fileID: 929828768, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1.6666666 + value: {fileID: -428074515, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1.8333334 + value: {fileID: -546767935, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 2 + value: {fileID: 175368976, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 2.25 + value: {fileID: 175368976, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: 1402845578, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 714976635, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -461665815, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -1692103412, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -1341093431, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -1222086038, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 1656035190, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 720433861, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 828691209, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 929828768, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -428074515, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -546767935, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 175368976, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 175368976, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 2.2666667 + 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/Boss/Animations/Skeleton_Boss/death.anim.meta b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/death.anim.meta new file mode 100644 index 0000000000000000000000000000000000000000..b7ee1c2c429b26570a3cbc48c8a94452497a8f33 --- /dev/null +++ b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/death.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7fd66e3f3101a9b4a8a05f6b0a3bf6fe +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/idle.anim b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/idle.anim new file mode 100644 index 0000000000000000000000000000000000000000..4e5347e479f6cbdade7c46a95486e6d753cf12cc --- /dev/null +++ b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/idle.anim @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: idle + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: 1340907545, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.16666667 + value: {fileID: -1712310563, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.33333334 + value: {fileID: -1373758493, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.5 + value: {fileID: -1047202879, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.6666667 + value: {fileID: -1047202879, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: 1340907545, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -1712310563, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -1373758493, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -1047202879, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -1047202879, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.68333334 + 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/Boss/Animations/Skeleton_Boss/idle.anim.meta b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/idle.anim.meta new file mode 100644 index 0000000000000000000000000000000000000000..b284a594ff45c857a603dc91af227994db0ac6e6 --- /dev/null +++ b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/idle.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f7fa4cb4485ac3e429ba960c3de71c8a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/take_damage.anim b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/take_damage.anim new file mode 100644 index 0000000000000000000000000000000000000000..a24f33160defc6b7b485627b5c6be372b06ef72a --- /dev/null +++ b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/take_damage.anim @@ -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: take_damage + 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: -1679100626, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.16666667 + value: {fileID: -1815008914, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.33333334 + value: {fileID: 1702759138, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.5 + value: {fileID: 1702759138, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: -1679100626, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -1815008914, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 1702759138, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 1702759138, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.51666665 + 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/Boss/Animations/Skeleton_Boss/take_damage.anim.meta b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/take_damage.anim.meta new file mode 100644 index 0000000000000000000000000000000000000000..655cd43c56067d2335a32bdc58c38d33b8b145ea --- /dev/null +++ b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/take_damage.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d9feefb0b24016744b9057c554aac352 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/walk.anim b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/walk.anim new file mode 100644 index 0000000000000000000000000000000000000000..82e07a084545a95829f1198e5687c26d55d73cf8 --- /dev/null +++ b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/walk.anim @@ -0,0 +1,104 @@ +%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: 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: -382089572, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.16666667 + value: {fileID: 1666962449, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.33333334 + value: {fileID: 818034259, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.5 + value: {fileID: -2145901636, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.6666667 + value: {fileID: -1429346059, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 0.8333333 + value: {fileID: 944162138, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1 + value: {fileID: -393278014, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1.1666666 + value: {fileID: -1083811977, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1.3333334 + value: {fileID: -2024026546, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1.5 + value: {fileID: -1486025557, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1.6666666 + value: {fileID: -1833217975, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 1.8333334 + value: {fileID: 615122412, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - time: 2 + value: {fileID: 615122412, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: -382089572, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 1666962449, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 818034259, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -2145901636, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -1429346059, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 944162138, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -393278014, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -1083811977, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -2024026546, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -1486025557, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: -1833217975, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 615122412, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + - {fileID: 615122412, guid: 98bf4e0aff694a845b137f81cfdd83e5, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 2.0166667 + 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/Boss/Animations/Skeleton_Boss/walk.anim.meta b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/walk.anim.meta new file mode 100644 index 0000000000000000000000000000000000000000..38890b03f6ca0912324455d0fbd9c23b53521c02 --- /dev/null +++ b/MrBigsock/Assets/Sprites/Enemy/Boss/Animations/Skeleton_Boss/walk.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 47714463124abda4bb00217551026751 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Sprites/Enemy/Boss/Sprites.meta b/MrBigsock/Assets/Sprites/Enemy/Boss/Sprites.meta new file mode 100644 index 0000000000000000000000000000000000000000..87cb08b73a58a0382b4fbe09a797ed32295f4222 --- /dev/null +++ b/MrBigsock/Assets/Sprites/Enemy/Boss/Sprites.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1d6b75f42babbeb40bba3a23f287720f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Sprites/Enemy/Boss/Sprites/Skeleton enemy.png b/MrBigsock/Assets/Sprites/Enemy/Boss/Sprites/Skeleton enemy.png new file mode 100644 index 0000000000000000000000000000000000000000..5a771028dd9af970059ee369ef470488cba9413c Binary files /dev/null and b/MrBigsock/Assets/Sprites/Enemy/Boss/Sprites/Skeleton enemy.png differ diff --git a/MrBigsock/Assets/Sprites/Enemy/Boss/Sprites/Skeleton enemy.png.meta b/MrBigsock/Assets/Sprites/Enemy/Boss/Sprites/Skeleton enemy.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..1ad35b3885def89563de835756d8e68828775a3c --- /dev/null +++ b/MrBigsock/Assets/Sprites/Enemy/Boss/Sprites/Skeleton enemy.png.meta @@ -0,0 +1,1113 @@ +fileFormatVersion: 2 +guid: 98bf4e0aff694a845b137f81cfdd83e5 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + 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 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 8 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: Skeleton enemy_0 + rect: + serializedVersion: 2 + x: 0 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: c6af0839a019fe44c8291c009f755638 + internalID: -722478285 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_1 + rect: + serializedVersion: 2 + x: 64 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: fc14baf233ec43c47a8822ddd74eb7eb + internalID: -1447034090 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_2 + rect: + serializedVersion: 2 + x: 128 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 50b30edec982a8942a45c8d994d26abb + internalID: 1527731990 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_3 + rect: + serializedVersion: 2 + x: 192 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: fb43e4f877a858c4b9fd0a49786577c8 + internalID: 362425380 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_4 + rect: + serializedVersion: 2 + x: 256 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 1a057e87b59d5f141b4d218be525fc87 + internalID: 1481348189 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_5 + rect: + serializedVersion: 2 + x: 320 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: a6784b636b5fc16409d5fb9ce1269271 + internalID: 1893060442 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_6 + rect: + serializedVersion: 2 + x: 384 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 93f683c4f6634cf4e8e5e915584dc4ec + internalID: -342043623 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_7 + rect: + serializedVersion: 2 + x: 448 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: bfde440370fa0cf4bb61aeb029e9a475 + internalID: 97825813 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_8 + rect: + serializedVersion: 2 + x: 512 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 1c40ba28353d17345ba01473f5e62c78 + internalID: -1177099960 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_9 + rect: + serializedVersion: 2 + x: 576 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: f0f47c02a13ca3f4fb2464f95962ad1c + internalID: 909389799 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_10 + rect: + serializedVersion: 2 + x: 640 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 11063cc1d4a50ed4a83e2a0fa230a401 + internalID: 1200564664 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_11 + rect: + serializedVersion: 2 + x: 704 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 867361fe989ee6c4faa43619a38be81f + internalID: 1584559168 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_12 + rect: + serializedVersion: 2 + x: 768 + y: 256 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: dab3a25010c6e8148aaab6ba744de424 + internalID: -786967481 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_13 + rect: + serializedVersion: 2 + x: 0 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 1cde1da8872658047abe87ed41e3d28a + internalID: 1402845578 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_14 + rect: + serializedVersion: 2 + x: 64 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 896a75825ff61814696442ac80f4a8cc + internalID: 714976635 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_15 + rect: + serializedVersion: 2 + x: 128 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 9cbb0ae8807c555439b0b7f6be2a672b + internalID: -461665815 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_16 + rect: + serializedVersion: 2 + x: 192 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: d0865587d2b8bea46b80c3a9693e6b7f + internalID: -1692103412 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_17 + rect: + serializedVersion: 2 + x: 256 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 899d9ea30fcda4348a7cc3559c57cf77 + internalID: -1341093431 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_18 + rect: + serializedVersion: 2 + x: 320 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: df73374343a9ec245b20ca3d6ed32bec + internalID: -1222086038 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_19 + rect: + serializedVersion: 2 + x: 384 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 5c4af53955c73c74786c8a1319184881 + internalID: 1656035190 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_20 + rect: + serializedVersion: 2 + x: 448 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 3ad859183d2a5864688ea41df514ddae + internalID: 720433861 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_21 + rect: + serializedVersion: 2 + x: 512 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 383f50ade4873af4ea8d92256b9ea263 + internalID: 828691209 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_22 + rect: + serializedVersion: 2 + x: 576 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: e82c46fc1c9ed16439afdbe081cfbfde + internalID: 929828768 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_23 + rect: + serializedVersion: 2 + x: 640 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 3ae35059a0e095f45b4b200b14e60f5b + internalID: -428074515 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_24 + rect: + serializedVersion: 2 + x: 704 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 6db74e1bb640e0a498d67bf6916e877d + internalID: -546767935 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_25 + rect: + serializedVersion: 2 + x: 768 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: a0358dceedb59f141ba8ee789ee3e05c + internalID: 175368976 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_26 + rect: + serializedVersion: 2 + x: 0 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 97c7568a28fa89547bdcdabc0c7f7d56 + internalID: -382089572 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_27 + rect: + serializedVersion: 2 + x: 64 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 7237fe67a06484d4d87d656f1efa36a1 + internalID: 1666962449 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_28 + rect: + serializedVersion: 2 + x: 128 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 19fc4b0f53eaf724d90cf4df28568998 + internalID: 818034259 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_29 + rect: + serializedVersion: 2 + x: 192 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: d11887e2557ce3e4dba5be911308e9a2 + internalID: -2145901636 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_30 + rect: + serializedVersion: 2 + x: 256 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: ae2c4991b7fc82e4785e9b13f2998a1e + internalID: -1429346059 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_31 + rect: + serializedVersion: 2 + x: 320 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: ee3369efd78a29e47bf3305f22f70db4 + internalID: 944162138 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_32 + rect: + serializedVersion: 2 + x: 384 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 555535da87bd4714fa421da90b4afea8 + internalID: -393278014 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_33 + rect: + serializedVersion: 2 + x: 448 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 7bd1d8ba411de174183f8be8d5345fc0 + internalID: -1083811977 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_34 + rect: + serializedVersion: 2 + x: 512 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: ac7c7b1be21df124cbcdb4c9e8383762 + internalID: -2024026546 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_35 + rect: + serializedVersion: 2 + x: 576 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: bd1db925f35e8e0489c280df3f27bf32 + internalID: -1486025557 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_36 + rect: + serializedVersion: 2 + x: 640 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 65ab608da15183643a0db83622430280 + internalID: -1833217975 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_37 + rect: + serializedVersion: 2 + x: 704 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 42a3069a4cf831a4187cdbd517f4eb8b + internalID: 615122412 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_38 + rect: + serializedVersion: 2 + x: 0 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: f7bbd61de54004446a77c891ab2a02f3 + internalID: 1340907545 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_39 + rect: + serializedVersion: 2 + x: 64 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 9b524e63be2cc1a428416f6a9747f4c4 + internalID: -1712310563 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_40 + rect: + serializedVersion: 2 + x: 128 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: cf774c40b2e2fd14f80785dc7c7f5249 + internalID: -1373758493 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_41 + rect: + serializedVersion: 2 + x: 192 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: ba9e4ca7e9e57c1498fbb5dd5a03291a + internalID: -1047202879 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_42 + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: a9b57975443795f469aa80dd64557778 + internalID: -1679100626 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_43 + rect: + serializedVersion: 2 + x: 64 + y: 0 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 9785072cac400f040b1e344399829862 + internalID: -1815008914 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Skeleton enemy_44 + rect: + serializedVersion: 2 + x: 128 + y: 0 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 6aaf03038439aa54584d2a66d0159958 + internalID: 1702759138 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: + Skeleton enemy_7: 97825813 + Skeleton enemy_25: 175368976 + Skeleton enemy_5: 1893060442 + Skeleton enemy_16: -1692103412 + Skeleton enemy_1: -1447034090 + Skeleton enemy_2: 1527731990 + Skeleton enemy_37: 615122412 + Skeleton enemy_24: -546767935 + Skeleton enemy_12: -786967481 + Skeleton enemy_29: -2145901636 + Skeleton enemy_43: -1815008914 + Skeleton enemy_40: -1373758493 + Skeleton enemy_41: -1047202879 + Skeleton enemy_42: -1679100626 + Skeleton enemy_11: 1584559168 + Skeleton enemy_9: 909389799 + Skeleton enemy_33: -1083811977 + Skeleton enemy_39: -1712310563 + Skeleton enemy_30: -1429346059 + Skeleton enemy_3: 362425380 + Skeleton enemy_20: 720433861 + Skeleton enemy_17: -1341093431 + Skeleton enemy_22: 929828768 + Skeleton enemy_27: 1666962449 + Skeleton enemy_28: 818034259 + Skeleton enemy_23: -428074515 + Skeleton enemy_34: -2024026546 + Skeleton enemy_15: -461665815 + Skeleton enemy_8: -1177099960 + Skeleton enemy_31: 944162138 + Skeleton enemy_13: 1402845578 + Skeleton enemy_38: 1340907545 + Skeleton enemy_18: -1222086038 + Skeleton enemy_32: -393278014 + Skeleton enemy_10: 1200564664 + Skeleton enemy_6: -342043623 + Skeleton enemy_35: -1486025557 + Skeleton enemy_44: 1702759138 + Skeleton enemy_4: 1481348189 + Skeleton enemy_26: -382089572 + Skeleton enemy_36: -1833217975 + Skeleton enemy_19: 1656035190 + Skeleton enemy_14: 714976635 + Skeleton enemy_0: -722478285 + Skeleton enemy_21: 828691209 + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: