diff --git a/Assets/Scripts/Managers/PlayerJoiner.cs b/Assets/Scripts/Managers/PlayerJoiner.cs index 720a926..320e87e 100644 --- a/Assets/Scripts/Managers/PlayerJoiner.cs +++ b/Assets/Scripts/Managers/PlayerJoiner.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using State; using State.GameStateMachine; -using State.PlayerStateMachine; +using State.PawnStateMachine; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.InputSystem.UI; @@ -38,7 +38,7 @@ namespace Managers // TODO: Move all of this to a player spawner GameStateMachine.Instance.ChangeState(new PlayLevel()); var character = Instantiate(characterPrefabs[_players.Count - 1]); - var playerStateMachine = playerInput.gameObject.GetComponent(); + var playerStateMachine = playerInput.gameObject.GetComponent(); playerStateMachine.controlledPawn = character.GetComponent(); playerInput.actions.Enable(); } diff --git a/Assets/Scripts/Pawn.cs b/Assets/Scripts/Pawn.cs index e7a754e..2cb6c20 100644 --- a/Assets/Scripts/Pawn.cs +++ b/Assets/Scripts/Pawn.cs @@ -4,6 +4,8 @@ using UnityEngine; public class Pawn : MonoBehaviour { + public Animator Animator => animator; + [SerializeField] private UnitData unitData; [SerializeField] private SpriteRenderer spriteRenderer; [SerializeField] private Animator animator; @@ -11,14 +13,27 @@ public class Pawn : MonoBehaviour private Vector2 _moveInput; + public virtual void HandleIdle() + { + animator.Play("Idle"); + } + public virtual void HandleMove(Vector2 input) { _moveInput = input; animator.Play(input.magnitude > 0 ? "Walk" : "Idle"); - if(_moveInput.magnitude > 0) - spriteRenderer.flipX = _moveInput.x < 0; + if (_moveInput.magnitude > 0) + transform.localScale = new Vector3(_moveInput.x > 0 ? 1 : -1, 1, 1); } + public virtual float HandleAttack(string attackName) + { + animator.Play(attackName); + animator.Update(0f); + var state = animator.GetCurrentAnimatorStateInfo(0); + return state.length * state.speed; + } + private void FixedUpdate() { transform.Translate(_moveInput * unitData.MoveSpeed); diff --git a/Assets/Scripts/Player/InputRouter.cs b/Assets/Scripts/Player/InputRouter.cs index 317e7aa..d1df23f 100644 --- a/Assets/Scripts/Player/InputRouter.cs +++ b/Assets/Scripts/Player/InputRouter.cs @@ -1,6 +1,6 @@ using System; using State; -using State.PlayerStateMachine; +using State.PawnStateMachine; using UnityEngine; using UnityEngine.InputSystem; @@ -10,13 +10,13 @@ namespace Player public class InputRouter : MonoBehaviour { private PlayerInput _playerInput; - private PlayerStateMachine _playerStateMachine; + private PawnStateMachine pawnStateMachine; private InputActionMap _map; private void Awake() { _playerInput = GetComponent(); - _playerStateMachine = GetComponent(); + pawnStateMachine = GetComponent(); _map = _playerInput.actions.FindActionMap("Player", throwIfNotFound: true); } @@ -40,7 +40,7 @@ namespace Player private void OnJumpPerformed(InputAction.CallbackContext obj) { - _playerStateMachine.Issue(GameState.Command.Jump); + pawnStateMachine.Issue(GameState.Command.Jump); } private void OnPausePerformed(InputAction.CallbackContext obj) @@ -50,17 +50,17 @@ namespace Player private void OnAttackPerformed(InputAction.CallbackContext obj) { - _playerStateMachine.Issue(GameState.Command.Attack); + pawnStateMachine.Issue(GameState.Command.Attack); } private void OnMoveCanceled(InputAction.CallbackContext obj) { - _playerStateMachine.SetMove(Vector2.zero); + pawnStateMachine.SetMove(Vector2.zero); } private void OnMovePerformed(InputAction.CallbackContext obj) { - _playerStateMachine.SetMove(obj.ReadValue()); + pawnStateMachine.SetMove(obj.ReadValue()); } } } \ No newline at end of file diff --git a/Assets/Scripts/State/PlayerStateMachine.meta b/Assets/Scripts/State/PawnStateMachine.meta similarity index 100% rename from Assets/Scripts/State/PlayerStateMachine.meta rename to Assets/Scripts/State/PawnStateMachine.meta diff --git a/Assets/Scripts/State/PawnStateMachine/Attack.cs b/Assets/Scripts/State/PawnStateMachine/Attack.cs new file mode 100644 index 0000000..bb6bf03 --- /dev/null +++ b/Assets/Scripts/State/PawnStateMachine/Attack.cs @@ -0,0 +1,21 @@ +using System.Collections; +using UnityEngine; + +namespace State.PawnStateMachine +{ + public class Attack : GameState + { + public override void OnEnter(StateMachine machine) + { + base.OnEnter(machine); + StateMachine.StartCoroutine(PlayAttackAnimation()); + } + + private IEnumerator PlayAttackAnimation() + { + var animationLength = ((PawnStateMachine)StateMachine).controlledPawn.HandleAttack("Attack1"); + yield return new WaitForSeconds(animationLength); + StateMachine.ChangeState(new Idle()); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/State/PawnStateMachine/Attack.cs.meta b/Assets/Scripts/State/PawnStateMachine/Attack.cs.meta new file mode 100644 index 0000000..3d10bb1 --- /dev/null +++ b/Assets/Scripts/State/PawnStateMachine/Attack.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 57e3422c716a4342a5d7f00ab4da59d0 +timeCreated: 1756077009 \ No newline at end of file diff --git a/Assets/Scripts/State/PawnStateMachine/Idle.cs b/Assets/Scripts/State/PawnStateMachine/Idle.cs new file mode 100644 index 0000000..2c771b3 --- /dev/null +++ b/Assets/Scripts/State/PawnStateMachine/Idle.cs @@ -0,0 +1,30 @@ +using UnityEngine; + +namespace State.PawnStateMachine +{ + public class Idle : GameState + { + public override void OnEnter(StateMachine machine) + { + base.OnEnter(machine); + ((PawnStateMachine)StateMachine).controlledPawn.HandleIdle(); + } + + public override void Handle(Vector2 input) + { + base.Handle(input); + ((PawnStateMachine)StateMachine).controlledPawn.HandleMove(input); + } + + public override void Handle(Command command) + { + base.Handle(command); + var newState = command switch + { + Command.Attack => new Attack(), + }; + + StateMachine.ChangeState(newState); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/State/PlayerStateMachine/Idle.cs.meta b/Assets/Scripts/State/PawnStateMachine/Idle.cs.meta similarity index 100% rename from Assets/Scripts/State/PlayerStateMachine/Idle.cs.meta rename to Assets/Scripts/State/PawnStateMachine/Idle.cs.meta diff --git a/Assets/Scripts/State/PlayerStateMachine/PlayerStateMachine.cs b/Assets/Scripts/State/PawnStateMachine/PawnStateMachine.cs similarity index 89% rename from Assets/Scripts/State/PlayerStateMachine/PlayerStateMachine.cs rename to Assets/Scripts/State/PawnStateMachine/PawnStateMachine.cs index 82025ea..5f6a36d 100644 --- a/Assets/Scripts/State/PlayerStateMachine/PlayerStateMachine.cs +++ b/Assets/Scripts/State/PawnStateMachine/PawnStateMachine.cs @@ -1,9 +1,8 @@ -using System; using UnityEngine; -namespace State.PlayerStateMachine +namespace State.PawnStateMachine { - public class PlayerStateMachine : StateMachine + public class PawnStateMachine : StateMachine { public Pawn controlledPawn; private bool _forwardInput; diff --git a/Assets/Scripts/State/PlayerStateMachine/PlayerStateMachine.cs.meta b/Assets/Scripts/State/PawnStateMachine/PawnStateMachine.cs.meta similarity index 100% rename from Assets/Scripts/State/PlayerStateMachine/PlayerStateMachine.cs.meta rename to Assets/Scripts/State/PawnStateMachine/PawnStateMachine.cs.meta diff --git a/Assets/Scripts/State/PlayerStateMachine/Idle.cs b/Assets/Scripts/State/PlayerStateMachine/Idle.cs deleted file mode 100644 index 385dc08..0000000 --- a/Assets/Scripts/State/PlayerStateMachine/Idle.cs +++ /dev/null @@ -1,13 +0,0 @@ -using UnityEngine; - -namespace State.PlayerStateMachine -{ - public class Idle : GameState - { - public override void Handle(Vector2 input) - { - base.Handle(input); - ((PlayerStateMachine)StateMachine).controlledPawn.HandleMove(input); - } - } -} \ No newline at end of file diff --git a/Assets/Sprites/BLOODJOE/Human.controller b/Assets/Sprites/BLOODJOE/Human.controller index df3f14f..d25b2aa 100644 --- a/Assets/Sprites/BLOODJOE/Human.controller +++ b/Assets/Sprites/BLOODJOE/Human.controller @@ -52,6 +52,58 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1102 &-3276801887947903977 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Attack2 + 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: 6f04c5a8b205983418d17667d26f6e3d, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &-2307217987210530717 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Attack1 + 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: a2322100430e3f1468dd88217df6f236, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!91 &9100000 AnimatorController: m_ObjectHideFlags: 0 @@ -91,10 +143,16 @@ AnimatorStateMachine: m_ChildStates: - serializedVersion: 1 m_State: {fileID: -6585584643281648321} - m_Position: {x: 310, y: 120, z: 0} + m_Position: {x: 310, y: 210, z: 0} - serializedVersion: 1 m_State: {fileID: -7041491042131476571} - m_Position: {x: 320, y: 10, z: 0} + m_Position: {x: 310, y: 0, z: 0} + - serializedVersion: 1 + m_State: {fileID: -2307217987210530717} + m_Position: {x: 310, y: 70, z: 0} + - serializedVersion: 1 + m_State: {fileID: -3276801887947903977} + m_Position: {x: 310, y: 140, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: [] m_EntryTransitions: [] diff --git a/Assets/Sprites/BLOODJOE/Punch.anim b/Assets/Sprites/BLOODJOE/Punch.anim new file mode 100644 index 0000000..5774881 --- /dev/null +++ b/Assets/Sprites/BLOODJOE/Punch.anim @@ -0,0 +1,75 @@ +%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: Punch + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - serializedVersion: 2 + curve: + - time: 0 + value: {fileID: 7914097290067846508, guid: e662d235bbe71a94d9714a63229696ad, type: 3} + - time: 0.06666667 + value: {fileID: 302867376508223093, guid: 2e963a8df8218d247b9a96461b2cea08, type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + flags: 2 + 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 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: + - {fileID: 7914097290067846508, guid: e662d235bbe71a94d9714a63229696ad, type: 3} + - {fileID: 302867376508223093, guid: 2e963a8df8218d247b9a96461b2cea08, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.083333336 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Sprites/BLOODJOE/Punch.anim.meta b/Assets/Sprites/BLOODJOE/Punch.anim.meta new file mode 100644 index 0000000..ae3e256 --- /dev/null +++ b/Assets/Sprites/BLOODJOE/Punch.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a2322100430e3f1468dd88217df6f236 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Sprites/BLOODJOE/StrongPunch.anim b/Assets/Sprites/BLOODJOE/StrongPunch.anim new file mode 100644 index 0000000..0f256b6 --- /dev/null +++ b/Assets/Sprites/BLOODJOE/StrongPunch.anim @@ -0,0 +1,84 @@ +%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: StrongPunch + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - serializedVersion: 2 + curve: + - time: 0 + value: {fileID: 302867376508223093, guid: 2e963a8df8218d247b9a96461b2cea08, type: 3} + - time: 0.11666667 + value: {fileID: -8702860448738653697, guid: 2e963a8df8218d247b9a96461b2cea08, type: 3} + - time: 0.25 + value: {fileID: -2640458925702542060, guid: 8f6df09030bca8046b2495a192550881, type: 3} + - time: 0.41666666 + value: {fileID: -8702860448738653697, guid: 2e963a8df8218d247b9a96461b2cea08, type: 3} + - time: 0.55 + value: {fileID: 302867376508223093, guid: 2e963a8df8218d247b9a96461b2cea08, type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + flags: 2 + 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 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: + - {fileID: 302867376508223093, guid: 2e963a8df8218d247b9a96461b2cea08, type: 3} + - {fileID: -8702860448738653697, guid: 2e963a8df8218d247b9a96461b2cea08, type: 3} + - {fileID: -2640458925702542060, guid: 8f6df09030bca8046b2495a192550881, type: 3} + - {fileID: -8702860448738653697, guid: 2e963a8df8218d247b9a96461b2cea08, type: 3} + - {fileID: 302867376508223093, guid: 2e963a8df8218d247b9a96461b2cea08, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.56666666 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Sprites/BLOODJOE/StrongPunch.anim.meta b/Assets/Sprites/BLOODJOE/StrongPunch.anim.meta new file mode 100644 index 0000000..fde86b5 --- /dev/null +++ b/Assets/Sprites/BLOODJOE/StrongPunch.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6f04c5a8b205983418d17667d26f6e3d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Sprites/BLOODJOE/Vigilante_Punch_1.png b/Assets/Sprites/BLOODJOE/Vigilante_Punch_1.png new file mode 100644 index 0000000..665bec1 Binary files /dev/null and b/Assets/Sprites/BLOODJOE/Vigilante_Punch_1.png differ diff --git a/Assets/Sprites/BLOODJOE/Vigilante_Punch_1.png.meta b/Assets/Sprites/BLOODJOE/Vigilante_Punch_1.png.meta new file mode 100644 index 0000000..9a20cc4 --- /dev/null +++ b/Assets/Sprites/BLOODJOE/Vigilante_Punch_1.png.meta @@ -0,0 +1,156 @@ +fileFormatVersion: 2 +guid: e662d235bbe71a94d9714a63229696ad +TextureImporter: + internalIDToNameTable: + - first: + 213: 7914097290067846508 + second: Vigilante_Punch_1_0 + externalObjects: {} + serializedVersion: 13 + 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 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + 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: 16 + 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 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: Vigilante_Punch_1_0 + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 21 + height: 32 + alignment: 9 + pivot: {x: 0.41358867, y: 0.49556974} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: c65206cfd8584dd60800000000000000 + internalID: 7914097290067846508 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 2b61071434b92084abdac60207ff1aec + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + Vigilante_Punch_1_0: 7914097290067846508 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Sprites/BLOODJOE/Vigilante_Punch_2.png b/Assets/Sprites/BLOODJOE/Vigilante_Punch_2.png new file mode 100644 index 0000000..d39b7f3 Binary files /dev/null and b/Assets/Sprites/BLOODJOE/Vigilante_Punch_2.png differ diff --git a/Assets/Sprites/BLOODJOE/Vigilante_Punch_2.png.meta b/Assets/Sprites/BLOODJOE/Vigilante_Punch_2.png.meta new file mode 100644 index 0000000..63c5f7a --- /dev/null +++ b/Assets/Sprites/BLOODJOE/Vigilante_Punch_2.png.meta @@ -0,0 +1,156 @@ +fileFormatVersion: 2 +guid: 8f6df09030bca8046b2495a192550881 +TextureImporter: + internalIDToNameTable: + - first: + 213: -2640458925702542060 + second: Vigilante_Punch_2_0 + externalObjects: {} + serializedVersion: 13 + 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 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + 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: 16 + 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 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: Vigilante_Punch_2_0 + rect: + serializedVersion: 2 + x: 2 + y: 0 + width: 19 + height: 32 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 41d8d79c8943b5bd0800000000000000 + internalID: -2640458925702542060 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + Vigilante_Punch_2_0: -2640458925702542060 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: