diff --git a/Assets/Art/Annimations/SlicerAnnimationController.controller b/Assets/Art/Annimations/SlicerAnnimationController.controller new file mode 100644 index 0000000..cba1fcf --- /dev/null +++ b/Assets/Art/Annimations/SlicerAnnimationController.controller @@ -0,0 +1,72 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1107 &-5631257115978900138 +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: -913315461596400722} + m_Position: {x: 30, y: 70, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -913315461596400722} +--- !u!1102 &-913315461596400722 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SlicerSpin + 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: 99d3ffc5ae968d04f9c27a69b3f41977, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SlicerAnnimationController + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: -5631257115978900138} + 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} diff --git a/Assets/Art/Annimations/SlicerAnnimationController.controller.meta b/Assets/Art/Annimations/SlicerAnnimationController.controller.meta new file mode 100644 index 0000000..dd130f1 --- /dev/null +++ b/Assets/Art/Annimations/SlicerAnnimationController.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dcc6e059d37ea494791174b515289826 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Art/Annimations/SlicerSpin.anim b/Assets/Art/Annimations/SlicerSpin.anim new file mode 100644 index 0000000..f3b3340 --- /dev/null +++ b/Assets/Art/Annimations/SlicerSpin.anim @@ -0,0 +1,78 @@ +%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: SlicerSpin + 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: 2084882389, guid: 0aea2ef73138c3b469b2db9651c7c5f8, type: 3} + - time: 0.083333336 + value: {fileID: 306182468, guid: 0aea2ef73138c3b469b2db9651c7c5f8, type: 3} + - time: 0.15 + value: {fileID: 2084882389, guid: 0aea2ef73138c3b469b2db9651c7c5f8, type: 3} + attribute: m_Sprite + path: + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + 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: 2015549526 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 1 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: + - {fileID: 2084882389, guid: 0aea2ef73138c3b469b2db9651c7c5f8, type: 3} + - {fileID: 306182468, guid: 0aea2ef73138c3b469b2db9651c7c5f8, type: 3} + - {fileID: 2084882389, guid: 0aea2ef73138c3b469b2db9651c7c5f8, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.16666667 + 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/Assets/Art/Annimations/SlicerSpin.anim.meta b/Assets/Art/Annimations/SlicerSpin.anim.meta new file mode 100644 index 0000000..43ee2af --- /dev/null +++ b/Assets/Art/Annimations/SlicerSpin.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 99d3ffc5ae968d04f9c27a69b3f41977 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Art/Building/Slicer-v1.png.meta b/Assets/Art/Building/Slicer-v1.png.meta index 0eaf565..33143f9 100644 --- a/Assets/Art/Building/Slicer-v1.png.meta +++ b/Assets/Art/Building/Slicer-v1.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 13 mipmaps: mipMapMode: 0 - enableMipMap: 1 + enableMipMap: 0 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -34,16 +34,16 @@ TextureImporter: maxTextureSize: 2048 textureSettings: serializedVersion: 2 - filterMode: 1 + filterMode: 0 aniso: 1 mipBias: 0 - wrapU: 0 - wrapV: 0 + wrapU: 1 + wrapV: 1 wrapW: 0 - nPOTScale: 1 + nPOTScale: 0 lightmap: 0 compressionQuality: 50 - spriteMode: 0 + spriteMode: 2 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 @@ -52,9 +52,9 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 - textureType: 0 + textureType: 8 textureShape: 1 singleChannelComponent: 0 flipbookRows: 1 @@ -108,12 +108,56 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 - sprites: [] + sprites: + - serializedVersion: 2 + name: Slicer-v1_0 + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 40 + height: 40 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 0b6518fd594357e40b54fa3288ec3f48 + internalID: 2084882389 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Slicer-v1_1 + rect: + serializedVersion: 2 + x: 40 + y: 0 + width: 40 + height: 40 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 7f71cfcdf1a6bc24ea4695256ef77c81 + internalID: 306182468 + vertices: [] + indices: + edges: [] + weights: [] outline: [] customData: physicsShape: [] bones: [] - spriteID: + spriteID: c8b393f953a444c4abafe2d26afe3e9a internalID: 0 vertices: [] indices: @@ -121,8 +165,12 @@ TextureImporter: weights: [] secondaryTextures: [] spriteCustomMetadata: - entries: [] - nameFileIdTable: {} + entries: + - key: SpriteEditor.SliceSettings + value: '{"sliceOnImport":false,"gridCellCount":{"x":2.0,"y":1.0},"gridSpriteSize":{"x":40.0,"y":40.0},"gridSpriteOffset":{"x":0.0,"y":0.0},"gridSpritePadding":{"x":0.0,"y":0.0},"pivot":{"x":0.5,"y":0.5},"pivotPixels":{"x":0.0,"y":0.0},"autoSlicingMethod":0,"spriteAlignment":0,"pivotUnitMode":0,"slicingType":2,"keepEmptyRects":false,"isAlternate":false}' + nameFileIdTable: + Slicer-v1_0: 2084882389 + Slicer-v1_1: 306182468 mipmapLimitGroupName: pSDRemoveMatte: 0 userData: diff --git a/Assets/Prefabs/Buildings/Registry.asset b/Assets/Prefabs/Buildings/Registry.asset index fc128c1..223be46 100644 --- a/Assets/Prefabs/Buildings/Registry.asset +++ b/Assets/Prefabs/Buildings/Registry.asset @@ -25,3 +25,6 @@ MonoBehaviour: - Name: Spring Prefab: {fileID: 8624048914473773482, guid: 6060f6928011bf54dad9c5ef16fb1048, type: 3} + - Name: Slicer + Prefab: {fileID: 8624048914473773482, guid: d26b0bb551b891e41a14009e6df42019, + type: 3} diff --git a/Assets/Prefabs/Buildings/SlicerBuilding.prefab b/Assets/Prefabs/Buildings/SlicerBuilding.prefab new file mode 100644 index 0000000..7951467 --- /dev/null +++ b/Assets/Prefabs/Buildings/SlicerBuilding.prefab @@ -0,0 +1,220 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8624048914473773482 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 546461529234046531} + - component: {fileID: 6946449142574024064} + - component: {fileID: 512124502862012575} + - component: {fileID: 739724694248001410} + - component: {fileID: 2938597077917375806} + - component: {fileID: -6667291122109179156} + - component: {fileID: 2693608777607402836} + m_Layer: 0 + m_Name: SlicerBuilding + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &546461529234046531 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8624048914473773482} + 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: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 120} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6946449142574024064 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8624048914473773482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f2a0d2e92ab8436a8854e59ee269188a, type: 3} + m_Name: + m_EditorClassIdentifier: Fruitomation::Fruitomation.Game.SlicerBuilding + BuildingSprite: {fileID: 2084882389, guid: 0aea2ef73138c3b469b2db9651c7c5f8, type: 3} + k__BackingField: {x: 4, y: 4} + SlicerAnimator: {fileID: 739724694248001410} +--- !u!222 &512124502862012575 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8624048914473773482} + m_CullTransparentMesh: 1 +--- !u!95 &739724694248001410 +Animator: + serializedVersion: 7 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8624048914473773482} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: dcc6e059d37ea494791174b515289826, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_AnimatePhysics: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!114 &2938597077917375806 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8624048914473773482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 2084882389, guid: 0aea2ef73138c3b469b2db9651c7c5f8, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!61 &-6667291122109179156 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8624048914473773482} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 40, y: 120} + m_EdgeRadius: 0 +--- !u!114 &2693608777607402836 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8624048914473773482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2938597077917375806} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_TargetAssemblyTypeName: Fruitomation.Game.FanBuilding, Fruitomation + m_MethodName: OnBuildingClicked + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 diff --git a/Assets/Prefabs/Buildings/SlicerBuilding.prefab.meta b/Assets/Prefabs/Buildings/SlicerBuilding.prefab.meta new file mode 100644 index 0000000..d52e7f6 --- /dev/null +++ b/Assets/Prefabs/Buildings/SlicerBuilding.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d26b0bb551b891e41a14009e6df42019 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/GameScene.unity b/Assets/Scenes/GameScene.unity index 20e25b8..fa43ef5 100644 --- a/Assets/Scenes/GameScene.unity +++ b/Assets/Scenes/GameScene.unity @@ -1461,11 +1461,11 @@ RectTransform: m_LocalScale: {x: 0, y: 0, z: 0} m_ConstrainProportionsScale: 1 m_Children: + - {fileID: 2005593404} - {fileID: 1944344878} - {fileID: 2112507919} - {fileID: 2026916298} - {fileID: 96288173} - - {fileID: 2005593404} - {fileID: 2142689107} - {fileID: 1330313875} - {fileID: 1194686691} diff --git a/Assets/Scripts/Game/Buildings/SlicerBuilding.cs b/Assets/Scripts/Game/Buildings/SlicerBuilding.cs index 200aeca..6230aec 100644 --- a/Assets/Scripts/Game/Buildings/SlicerBuilding.cs +++ b/Assets/Scripts/Game/Buildings/SlicerBuilding.cs @@ -1,7 +1,32 @@ -namespace Fruitomation.Game +using Fruitomation.Global; +using UnityEngine; + +namespace Fruitomation.Game { public class SlicerBuilding : Building { + [Header("Slicer Specific Items")] + [SerializeField] private Animator SlicerAnimator; + private void Update() + { + if (GameStateController.Is(GameState.Simulation)) + { + if (SlicerAnimator.speed == 0) + { + SlicerAnimator.Play(0, 0, 0f); // Play from beginning + SlicerAnimator.speed = 1; // Playing + } + } + + else + { + if (SlicerAnimator.speed != 0) + { + SlicerAnimator.Play(0, 0, 0f); // Jump back to default frame + SlicerAnimator.speed = 0; // Paused + } + } + } } } \ No newline at end of file