diff --git a/Assets/Scenes/Card.unity b/Assets/Scenes/Card.unity new file mode 100644 index 000000000..9b32d0d8c --- /dev/null +++ b/Assets/Scenes/Card.unity @@ -0,0 +1,1328 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_ExportTrainingData: 0 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!114 &98248155 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6340598963576163342, guid: 2d08cf66a0c0c024ba333f6ef6421e81, + type: 3} + m_PrefabInstance: {fileID: 6340598963505326549} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c691e236dab3ee049b690f763230cfcc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &225901632 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 225901635} + - component: {fileID: 225901634} + - component: {fileID: 225901633} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &225901633 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 225901632} + m_Enabled: 1 +--- !u!20 &225901634 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 225901632} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &225901635 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 225901632} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &478214039 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 478214041} + - component: {fileID: 478214040} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &478214040 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 478214039} + m_Enabled: 1 + serializedVersion: 9 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &478214041 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 478214039} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &759842133 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 759842137} + - component: {fileID: 759842136} + - component: {fileID: 759842135} + - component: {fileID: 759842134} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &759842134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 759842133} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &759842135 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 759842133} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &759842136 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 759842133} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &759842137 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 759842133} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1619813874} + - {fileID: 1121845293} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &921537806 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 921537807} + - component: {fileID: 921537809} + - component: {fileID: 921537808} + m_Layer: 5 + m_Name: AddCard + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &921537807 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 921537806} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1619813874} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &921537808 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 921537806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: AddCard +--- !u!222 &921537809 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 921537806} + m_CullTransparentMesh: 0 +--- !u!224 &1121845293 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + m_PrefabInstance: {fileID: 4596477797950831728} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1399871128 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1399871131} + - component: {fileID: 1399871130} + - component: {fileID: 1399871129} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1399871129 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1399871128} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &1399871130 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1399871128} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1399871131 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1399871128} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1619813873 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1619813874} + - component: {fileID: 1619813877} + - component: {fileID: 1619813876} + - component: {fileID: 1619813875} + m_Layer: 5 + m_Name: AddCard + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1619813874 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1619813873} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 921537807} + m_Father: {fileID: 759842137} + m_RootOrder: 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: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1619813875 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1619813873} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + 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: 1619813876} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: + 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: 1 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1619813876 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1619813873} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &1619813877 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1619813873} + m_CullTransparentMesh: 0 +--- !u!1 &1869137501 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4596477799044889692, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + m_PrefabInstance: {fileID: 4596477797950831728} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4596477797950831728 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 759842137} + m_Modifications: + - target: {fileID: 4596477799044889692, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_Name + value: SlotCardAdd + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -249 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.x + value: -45.9 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.y + value: -527.1 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4596477799044889693, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7812445884529029093, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445884529029093, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445884529029093, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445884529029093, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445884529029093, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445884529029093, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445883432575414, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445883432575414, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445883432575414, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445883432575414, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445883432575414, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445883432575414, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864284300322169, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864284300322169, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864284300322169, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864284300322169, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864284300322169, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864284300322169, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864285375062528, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864285375062528, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864285375062528, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864285375062528, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864285375062528, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864285375062528, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864285081517555, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864285081517555, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864285081517555, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864285081517555, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864285081517555, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864285081517555, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864284047782816, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864284047782816, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864284047782816, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864284047782816, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864284047782816, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2497864284047782816, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445883716384623, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445883716384623, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445883716384623, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445883716384623, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445883716384623, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445883716384623, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445884789157910, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445884789157910, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445884789157910, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445884789157910, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445884789157910, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7812445884789157910, guid: b76d3fbefb7d49c4d83fddd7078c7157, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b76d3fbefb7d49c4d83fddd7078c7157, type: 3} +--- !u!1001 &4988791094705802326 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 4988791094179268597, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_Name + value: CardManger + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 218.45001 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -40.049988 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_SizeDelta.x + value: 75 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_SizeDelta.y + value: 125 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4988791094179268594, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8534699851400628011, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: item.Array.data[0] + value: + objectReference: {fileID: 98248155} + - target: {fileID: 8534699851400628011, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: Card.Array.data[0] + value: + objectReference: {fileID: 98248155} + - target: {fileID: 8534699851400628011, guid: b4e92a501714797409b528eaa2e13d53, + type: 3} + propertyPath: SlotContainer + value: + objectReference: {fileID: 1869137501} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b4e92a501714797409b528eaa2e13d53, type: 3} +--- !u!1001 &6340598963505326549 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 6340598963576163343, guid: 2d08cf66a0c0c024ba333f6ef6421e81, + type: 3} + propertyPath: m_Name + value: ItemD + objectReference: {fileID: 0} + - target: {fileID: 6340598963576163337, guid: 2d08cf66a0c0c024ba333f6ef6421e81, + type: 3} + propertyPath: m_LocalPosition.x + value: 517.7013 + objectReference: {fileID: 0} + - target: {fileID: 6340598963576163337, guid: 2d08cf66a0c0c024ba333f6ef6421e81, + type: 3} + propertyPath: m_LocalPosition.y + value: 356.05365 + objectReference: {fileID: 0} + - target: {fileID: 6340598963576163337, guid: 2d08cf66a0c0c024ba333f6ef6421e81, + type: 3} + propertyPath: m_LocalPosition.z + value: -248.45679 + objectReference: {fileID: 0} + - target: {fileID: 6340598963576163337, guid: 2d08cf66a0c0c024ba333f6ef6421e81, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6340598963576163337, guid: 2d08cf66a0c0c024ba333f6ef6421e81, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6340598963576163337, guid: 2d08cf66a0c0c024ba333f6ef6421e81, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6340598963576163337, guid: 2d08cf66a0c0c024ba333f6ef6421e81, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6340598963576163337, guid: 2d08cf66a0c0c024ba333f6ef6421e81, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6340598963576163337, guid: 2d08cf66a0c0c024ba333f6ef6421e81, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6340598963576163337, guid: 2d08cf66a0c0c024ba333f6ef6421e81, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6340598963576163337, guid: 2d08cf66a0c0c024ba333f6ef6421e81, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2d08cf66a0c0c024ba333f6ef6421e81, type: 3} +--- !u!1001 &7809048484138718857 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 8415835198724702412, guid: 66daf4f4f37f14e44b5d56832ac0b158, + type: 3} + propertyPath: m_Name + value: ItemDg + objectReference: {fileID: 0} + - target: {fileID: 8415835198724702414, guid: 66daf4f4f37f14e44b5d56832ac0b158, + type: 3} + propertyPath: m_LocalPosition.x + value: 1107.2007 + objectReference: {fileID: 0} + - target: {fileID: 8415835198724702414, guid: 66daf4f4f37f14e44b5d56832ac0b158, + type: 3} + propertyPath: m_LocalPosition.y + value: 668.92126 + objectReference: {fileID: 0} + - target: {fileID: 8415835198724702414, guid: 66daf4f4f37f14e44b5d56832ac0b158, + type: 3} + propertyPath: m_LocalPosition.z + value: -241 + objectReference: {fileID: 0} + - target: {fileID: 8415835198724702414, guid: 66daf4f4f37f14e44b5d56832ac0b158, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415835198724702414, guid: 66daf4f4f37f14e44b5d56832ac0b158, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415835198724702414, guid: 66daf4f4f37f14e44b5d56832ac0b158, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415835198724702414, guid: 66daf4f4f37f14e44b5d56832ac0b158, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415835198724702414, guid: 66daf4f4f37f14e44b5d56832ac0b158, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 8415835198724702414, guid: 66daf4f4f37f14e44b5d56832ac0b158, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415835198724702414, guid: 66daf4f4f37f14e44b5d56832ac0b158, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415835198724702414, guid: 66daf4f4f37f14e44b5d56832ac0b158, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 66daf4f4f37f14e44b5d56832ac0b158, type: 3} diff --git a/Assets/Scenes/Card.unity.meta b/Assets/Scenes/Card.unity.meta new file mode 100644 index 000000000..ca5f11862 --- /dev/null +++ b/Assets/Scenes/Card.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2ee5d84aefb07da4590c65c8e7b7e298 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card.meta b/Assets/Scripts/To_Refactoring/Card.meta new file mode 100644 index 000000000..8b81f5576 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9f4799ca5ed052f418bc26ddd6bb58cd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Card1.asset b/Assets/Scripts/To_Refactoring/Card/Card1.asset new file mode 100644 index 000000000..7351ad7dc --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Card1.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c691e236dab3ee049b690f763230cfcc, type: 3} + m_Name: Card1 + m_EditorClassIdentifier: + CardName: Jacket + CardTextBadhar: + CardTextGoodhar: + CardImage: {fileID: 21300000, guid: d0d6fb85c465eb0488ca840f9ace6c6b, type: 3} + CardBossImage: {fileID: 0} diff --git a/Assets/Scripts/To_Refactoring/Card/Card1.asset.meta b/Assets/Scripts/To_Refactoring/Card/Card1.asset.meta new file mode 100644 index 000000000..db88a935d --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Card1.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 26ff93c10e4a2984e84af5059f1016d3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/CardItem.cs b/Assets/Scripts/To_Refactoring/Card/CardItem.cs new file mode 100644 index 000000000..05552b696 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/CardItem.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; + + +public class CardItem : MonoBehaviour +{ + public string NameItem; + public int Id; + + [TextArea(5, 100)] + public string descriptionBadItem; + [TextArea(5, 100)] + public string DescriptionGoodItem; + public string PathIcon; + public string pathPrefab; + public Sprite Sprite; + + + public CardItem() + { + + + } + public CardItem(int id, string nameItem, string descriptionGoodItem, Sprite sprite) + { + Id = id; + NameItem = nameItem; + DescriptionGoodItem = descriptionGoodItem; + Sprite = sprite; + + } + +} + + + + diff --git a/Assets/Scripts/To_Refactoring/Card/CardItem.cs.meta b/Assets/Scripts/To_Refactoring/Card/CardItem.cs.meta new file mode 100644 index 000000000..0c8c48a0c --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/CardItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c691e236dab3ee049b690f763230cfcc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/CardItemManager.cs b/Assets/Scripts/To_Refactoring/Card/CardItemManager.cs new file mode 100644 index 000000000..0b004b18a --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/CardItemManager.cs @@ -0,0 +1,386 @@ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; +using UnityEngine.UI; + + + + +public class CardItemManager : MonoBehaviour +{ + //public Favourite favourite; + public static CardItemManager Instance; + public static CardItemManager instanceInventory; + [HideInInspector] + public List item; + public List Card; + public List Ert; + public List CardItems; + //public List CardJ; + public Sprite[] CardItemSprites; + [SerializeField] + public string nameCardItem; + [SerializeField] + public Sprite pathSprite; + //public int index; + // public CharCard CharCard; + [SerializeField] + public string CardItemBadhar; + [SerializeField] + public string CardTextGoodhar; + [SerializeField] + public Sprite CardImage; + [SerializeField] + public Sprite CardBossImage; + public Item[] _InitialcardItems; + public Favourite favourite; + //[HideInInspector] + [SerializeField] + public GameObject cellContainer; + + [SerializeField] + public KeyCode takeButton; + public GameObject SlotContainer; + public GameObject dragPrefab; + public GameObject database; + public GameObject CardContainer; + [SerializeField] + public GameObject CardContainer1; + [SerializeField] + public GameObject CardContainer2; + [SerializeField] + public GameObject currentIcon; + + + + public void Start() + { + + item = new List(); + Card = new List(); + //SlotContainer.SetActive(false); + for (int i = 0; i < SlotContainer.transform.childCount; i++) // Создания ечейки + { + + SlotContainer.transform.GetChild(i).GetComponent().index = i; + //cellContainer.transform.GetChild(i).GetComponent(); + } + + + for (int i = 0; i < SlotContainer.transform.childCount; i++) // Создания ечейки + { + item.Add(new Item()); + } + + RenameCells(); + RenameIcons(); + } + public Item EmptySlot() + { + return new Item(); + } + + public int EmptySlotID() + { + return 0; + } + + //public void AddUnStackableItem(Item currentItem) + //{ + // for (int i = 0; i < item.Count; i++) + // { + // if (item[i].id == EmptySlotID()) + // { + // item[i] = currentItem; + // item[i].countItem = 1; + // DisplayItems(); + // //Destroy(currentItem.gameObject); + // break; + // } + // } + //} + //void AddStackableItem(Item currentItem) + //{ + // for (int i = 0; i < item.Count; i++) + // { + // if (item[i].id == currentItem.id) + // { + // item[i].countItem++; + // DisplayItems(); + // //Destroy(currentItem.gameObject); + // return; + // } + // } + // AddUnStackableItem(currentItem); + //} + + //public void AddItem(Item currentItem) + //{ + // if (currentItem.isStackable) + // AddStackableItem(currentItem); + // else + // AddUnStackableItem(currentItem); + //} + + + private void Awake() + { + instanceInventory = this; + if (!Instance) + Instance = this; + + + else + { + Destroy(gameObject); + + + return; + } + + //GenerateItems(); + + } + + //private void GenerateItems() + //{ + + // CardItems = new List(); + // CardItems.Add(new Item("One", CardItemSprites[0])); + // CardItems.Add(new Item("Two", CardItemSprites[1])); + // CardItems.Add(new Item("frie", CardItemSprites[2])); + //} + + + + + + + + + void Update() + { + Transform ItemDgj = CardContainer2.transform; + Transform ItemDg = CardContainer1.transform; + Transform ItemD = CardContainer.transform; + var H = ItemD.GetComponent(); + var g = ItemDg.GetComponent(); + var s = ItemDgj.GetComponent(); + + Debug.Log("tdu"); + // вызов метода + CardItemAdd(H); + CardItemAdd(g); + CardItemAdd(s); + + + } + + + //метод + public void CardItemAdd(Item Add) + { + + + + Ert = new List(); + Ert.Add(Add); + //Debug.Log("typ"); + + + if (Input.GetKeyDown(takeButton)) + { + + for (int i = 0; i < item.Count; i++) + { + + + if (item[i].id == 0) + { + Debug.Log("t4u"); + + foreach (var ui in Ert) + { + + item[i] = ui.GetComponent(); + break; + } + + //Debug.Log("tyu"); + DisplayItems(); + break; + + } + + + } + + + + + + + + } + + + } + //отображения в слоте + public void DisplayItems() + { + + for (int i = 0; i < item.Count; i++) + { + + if (item[i].id != 0) + { + Transform Cell = SlotContainer.transform.GetChild(i); + + Transform Icon = Cell.GetChild(0); + Image img = Icon.GetComponent(); + + img.enabled = true; + img.sprite = item[i].Icon; + + + + + } + else + + { + Transform Cell = SlotContainer.transform.GetChild(i); + + Transform Icon = Cell.GetChild(0); + Image img = Icon.GetComponent(); + img.enabled = false; + img.sprite = null; + Debug.Log("q1"); + } + } + + } + void CheckEmptyItem(Item item) + { + if (item.id == EmptySlotID()) + { + return; + } + } + void RenameCells() + { + for (int i = 0; i < SlotContainer.transform.childCount; i++) + { + Transform cell = SlotContainer.transform.GetChild(i); + cell.name = "Cell " + i.ToString(); + } + } + + void RenameIcons() + { + for (int i = 0; i < SlotContainer.transform.childCount; i++) + { + Transform cell = SlotContainer.transform.GetChild(i); + Transform icon = cell.GetChild(0); + icon.name = "Icon " + i.ToString(); + } + } + + + public void RemoveItem(int numItem) + { + if (item[numItem].countItem > 1) + { + item[numItem].countItem--; + } + else + { + item[numItem] = EmptySlot(); + } + DisplayItems(); + } + + public void DropedItem(int id) + { + for (int i = 0; i < database.transform.childCount; i++) + { + Item item = database.transform.GetChild(i).GetComponent(); + if (item != null) + { + if (item.id == id) + { + GameObject obj = Instantiate(item.gameObject); + obj.transform.position = Camera.main.transform.position + transform.forward; + } + } + } + } + public bool isExistItem(int id) + { + for (int i = 0; i < item.Count; i++) + { + if (item[i].id == id) + { + return true; + } + } + return false; + } + + public void RemoveItemID(int id) + { + for (int i = 0; i < item.Count; i++) + { + if (item[i].id == id) + { + if (item[i].countItem > 1) + { + item[i].countItem--; + } + else + { + item[i] = EmptySlot(); + } + DisplayItems(); + } + } + } + +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Assets/Scripts/To_Refactoring/Card/CardItemManager.cs.meta b/Assets/Scripts/To_Refactoring/Card/CardItemManager.cs.meta new file mode 100644 index 000000000..6cf9cdff9 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/CardItemManager.cs.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: 206de465d45a3f94ba9c374acd6a6ec8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: + - pathSprite: {instanceID: 0} + - CardImage: {fileID: 21300000, guid: 8896fe5a356564c448293e2733e457ef, type: 3} + - CardBossImage: {instanceID: 0} + - SlotContainer: {instanceID: 0} + - CardContainer: {instanceID: 0} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/CurrentFavouriteItem.cs b/Assets/Scripts/To_Refactoring/Card/CurrentFavouriteItem.cs new file mode 100644 index 000000000..dfd4c1e4a --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/CurrentFavouriteItem.cs @@ -0,0 +1,193 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; + +public class CurrentFavouriteItem : MonoBehaviour, IDropHandler +{ + private int itemNum; + + public Item currentFavouriteItem + { + get { return CardItemManager.instanceInventory.favourite.favouriteItem[ItemNum]; } + set { CardItemManager.instanceInventory.favourite.favouriteItem[ItemNum] = value; } + } + + public int ItemNum + { + get { return itemNum; } + set { itemNum = value; } + } + + + void Update() + { + //if (Input.GetButtonDown((ItemNum+1).ToString())) + //{ + // if (currentFavouriteItem.OnItemUse!=null) + // { + // currentFavouriteItem.OnItemUse.Invoke(); + // } + // if (currentFavouriteItem.isRemovable) + // { + // CardItemManager.instanceInventory.favourite.RemoveItem(ItemNum); + // } + //} + } + + public void OnDrop(PointerEventData eventData) + { + GameObject dragedObject = Drag.isDragingObject; + + if (dragedObject == null) + { + return; + } + + Drag drag = Drag.isDragingObject.GetComponent(); + + CurrentFavouriteItem dragedFavouriteItem = dragedObject.GetComponent(); + CurrentItem dragedCurrentItem = dragedObject.GetComponent(); + //CurrentStorageItem dragedStorageItem = dragedObject.GetComponent(); + + if (eventData.button == PointerEventData.InputButton.Left) + { + if (dragedObject.GetComponent()) + { + if (dragedFavouriteItem.currentFavouriteItem.id == GetComponent().currentFavouriteItem.id) + { + if (dragedFavouriteItem.currentFavouriteItem.isStackable) + { + int count = dragedFavouriteItem.currentFavouriteItem.countItem; + GetComponent().currentFavouriteItem.countItem += count; + dragedFavouriteItem.currentFavouriteItem = CardItemManager.instanceInventory.EmptySlot(); + } + } + else + { + Item currentItem = GetComponent().currentFavouriteItem; + GetComponent().currentFavouriteItem = dragedFavouriteItem.currentFavouriteItem; + dragedFavouriteItem.currentFavouriteItem = currentItem; + } + } + + if (dragedObject.GetComponent()) + { + if (dragedCurrentItem.currentInventoryItem.id == GetComponent().currentFavouriteItem.id) + { + if (dragedCurrentItem.currentInventoryItem.isStackable) + { + int count = dragedCurrentItem.currentInventoryItem.countItem; + GetComponent().currentFavouriteItem.countItem += count; + dragedCurrentItem.currentInventoryItem = CardItemManager.instanceInventory.EmptySlot(); + } + } + else + { + Item currentFavouriteItem = GetComponent().currentFavouriteItem; + GetComponent().currentFavouriteItem = dragedCurrentItem.currentInventoryItem; + dragedCurrentItem.currentInventoryItem = currentFavouriteItem; + } + } + + //if (dragedObject.GetComponent()) + //{ + // if (dragedStorageItem.currentStorageItem.id == GetComponent().currentFavouriteItem.id) + // { + // if (dragedStorageItem.currentStorageItem.isStackable) + // { + // int count = dragedStorageItem.currentStorageItem.countItem; + // GetComponent().currentFavouriteItem.countItem += count; + // dragedStorageItem.currentStorageItem = Inventory.instanceInventory.EmptySlot(); + // } + // } + // else + // { + // Item currentFavouriteItem = GetComponent().currentFavouriteItem; + // GetComponent().currentFavouriteItem = dragedStorageItem.currentStorageItem; + // dragedStorageItem.currentStorageItem = currentFavouriteItem; + // } + //} + CardItemManager.instanceInventory.DisplayItems(); + //Storage.DisplayItems(); + CardItemManager.instanceInventory.favourite.DisplayItems(); + } + + if (eventData.button == PointerEventData.InputButton.Right) + { + if (GetComponent().currentFavouriteItem.id == CardItemManager.instanceInventory.EmptySlotID()) + { + if (dragedCurrentItem) + { + Item dragItem = dragedCurrentItem.currentInventoryItem.getCopy(); + dragItem.countItem = 1; + GetComponent().currentFavouriteItem = dragItem; + //CardItemManager.instanceInventory.RemoveItem(dragedCurrentItem.ItemNum); + CardItemManager.instanceInventory.favourite.DisplayItems(); + return; + } + if (dragedFavouriteItem) + { + Item dragItem = dragedFavouriteItem.currentFavouriteItem.getCopy(); + dragItem.countItem = 1; + GetComponent().currentFavouriteItem = dragItem; + CardItemManager.instanceInventory.favourite.RemoveItem(dragedFavouriteItem.ItemNum); + return; + } + + //if (dragedStorageItem) + //{ + // Item dragItem = dragedStorageItem.currentStorageItem.getCopy(); + // dragItem.countItem = 1; + // GetComponent().currentFavouriteItem = dragItem; + // Storage.RemoveItem(dragedStorageItem.itemNum); + // Inventory.instanceInventory.favourite.DisplayItems(); + // return; + //} + } + + if (dragedCurrentItem) + { + if (GetComponent().currentFavouriteItem.id == dragedCurrentItem.currentInventoryItem.id) + { + if (dragedCurrentItem.currentInventoryItem.isStackable) + { + drag.AddItem(GetComponent().currentFavouriteItem); + //CardItemManager.instanceInventory.RemoveItem(dragedCurrentItem.ItemNum); + CardItemManager.instanceInventory.favourite.DisplayItems(); + return; + } + } + } + + //if (dragedStorageItem) + //{ + // if (GetComponent().currentFavouriteItem.id == dragedStorageItem.currentStorageItem.id) + // { + // if (dragedStorageItem.currentStorageItem.isStackable) + // { + // drag.AddItem(GetComponent().currentFavouriteItem); + // Storage.RemoveItem(dragedStorageItem.itemNum); + // Inventory.instanceInventory.favourite.DisplayItems(); + // return; + // } + // } + //} + + if (dragedFavouriteItem) + { + if (GetComponent().currentFavouriteItem.id == dragedFavouriteItem.currentFavouriteItem.id) + { + if (dragedFavouriteItem.currentFavouriteItem.isStackable) + { + drag.AddItem(GetComponent().currentFavouriteItem); + CardItemManager.instanceInventory.favourite.RemoveItem(dragedFavouriteItem.ItemNum); + return; + } + } + } + } + + } +} diff --git a/Assets/Scripts/To_Refactoring/Card/CurrentItem.cs b/Assets/Scripts/To_Refactoring/Card/CurrentItem.cs new file mode 100644 index 000000000..d56504442 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/CurrentItem.cs @@ -0,0 +1,219 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using UnityEngine.Events; + +public class CurrentItem : MonoBehaviour, IPointerClickHandler, IDropHandler +{ + private int itemNum; + public int index; + public Item currentInventoryItem + { + get { return CardItemManager.instanceInventory.item[ItemNum]; } + set { CardItemManager.instanceInventory.item[ItemNum] = value; } + } + + public int ItemNum + { + get { return itemNum; } + set { itemNum = value; } + } + + void Update() + { + + } + + public void OnPointerClick(PointerEventData eventData) + { + if (eventData.button == PointerEventData.InputButton.Left) + { + if (currentInventoryItem.OnItemUse != null) + { + currentInventoryItem.OnItemUse.Invoke(); + } + if (currentInventoryItem.isRemovable) + { + CardItemManager.instanceInventory.RemoveItem(ItemNum); + } + } + + if (eventData.button == PointerEventData.InputButton.Right) + { + if (currentInventoryItem.isDroped) + { + CardItemManager.instanceInventory.DropedItem(currentInventoryItem.id); + CardItemManager.instanceInventory.RemoveItem(ItemNum); + } + } + } + + public void OnDrop(PointerEventData eventData) + { + GameObject dragedObject = Drag.isDragingObject; + + if (dragedObject == null) + { + return; + } + + CurrentItem dragedCurrentItem = dragedObject.GetComponent(); + CurrentFavouriteItem dragedFavouriteItem = dragedObject.GetComponent(); + //CurrentStorageItem dragedStorageItem = dragedObject.GetComponent(); + + Drag drag = Drag.isDragingObject.GetComponent(); + + if (eventData.button == PointerEventData.InputButton.Left) + { + if (dragedObject.GetComponent()) + { + if (dragedCurrentItem.currentInventoryItem.id == GetComponent().currentInventoryItem.id) + { + if (dragedCurrentItem.currentInventoryItem.isStackable) + { + int count = dragedCurrentItem.currentInventoryItem.countItem; + GetComponent().currentInventoryItem.countItem += count; + dragedCurrentItem.currentInventoryItem = CardItemManager.instanceInventory.EmptySlot(); + } + } + else + { + Item currentItem = GetComponent().currentInventoryItem; + GetComponent().currentInventoryItem = dragedCurrentItem.currentInventoryItem; + dragedCurrentItem.currentInventoryItem = currentItem; + } + + } + + if (dragedObject.GetComponent()) + { + if (dragedFavouriteItem.currentFavouriteItem.id == GetComponent().currentInventoryItem.id) + { + if (dragedFavouriteItem.currentFavouriteItem.isStackable) + { + int count = dragedFavouriteItem.currentFavouriteItem.countItem; + GetComponent().currentInventoryItem.countItem += count; + dragedFavouriteItem.currentFavouriteItem = CardItemManager.instanceInventory.EmptySlot(); + } + } + else + { + Item currentItem = GetComponent().currentInventoryItem; + GetComponent().currentInventoryItem = dragedFavouriteItem.currentFavouriteItem; + dragedFavouriteItem.currentFavouriteItem = currentItem; + } + } + + //if (dragedObject.GetComponent()) + //{ + // if (dragedStorageItem.currentStorageItem.id == GetComponent().currentInventoryItem.id) + // { + // if (dragedStorageItem.currentStorageItem.isStackable) + // { + // int count = dragedStorageItem.currentStorageItem.countItem; + // GetComponent().currentInventoryItem.countItem += count; + // dragedStorageItem.currentStorageItem = Inventory.instanceInventory.EmptySlot(); + // } + // } + // else + // { + // Item currentItem = GetComponent().currentInventoryItem; + // GetComponent().currentInventoryItem = dragedStorageItem.currentStorageItem; + // dragedStorageItem.currentStorageItem = currentItem; + // } + //} + + CardItemManager.instanceInventory.DisplayItems(); + //Storage.DisplayItems(); + if (CardItemManager.instanceInventory.favourite) + CardItemManager.instanceInventory.favourite.DisplayItems(); + } + + //if (eventData.button == PointerEventData.InputButton.Right) + //{ + // if (GetComponent().currentInventoryItem.id == CardItemManager.instanceInventory.EmptySlotID()) + // { + // if (dragedCurrentItem) + // { + // Item dragItem = dragedCurrentItem.currentInventoryItem.getCopy(); + // dragItem.countItem = 1; + // GetComponent().currentInventoryItem = dragItem; + // CardItemManager.instanceInventory.RemoveItem(dragedCurrentItem.ItemNum); + // return; + // } + + // if (dragedFavouriteItem) + // { + // Item dragItem = dragedFavouriteItem.currentFavouriteItem.getCopy(); + // dragItem.countItem = 1; + // GetComponent().currentInventoryItem = dragItem; + // CardItemManager.instanceInventory.favourite.RemoveItem(dragedFavouriteItem.ItemNum); + // CardItemManager.instanceInventory.DisplayItems(); + // return; + // } + // //if (dragedStorageItem) + // //{ + // // Item dragItem = dragedStorageItem.currentStorageItem.getCopy(); + // // dragItem.countItem = 1; + // // GetComponent().currentInventoryItem = dragItem; + // // Storage.RemoveItem(dragedStorageItem.itemNum); + // // Inventory.instanceInventory.DisplayItems(); + // // return; + // //} + // } + + // if (dragedCurrentItem) + // { + // if (GetComponent().currentInventoryItem.id == dragedCurrentItem.currentInventoryItem.id) + // { + // if (dragedCurrentItem.currentInventoryItem.isStackable) + // { + // drag.AddItem(GetComponent().currentInventoryItem); + // CardItemManager.instanceInventory.RemoveItem(dragedCurrentItem.ItemNum); + // return; + // } + // } + // } + + if (dragedFavouriteItem) + { + if (GetComponent().currentInventoryItem.id == dragedFavouriteItem.currentFavouriteItem.id) + { + if (dragedFavouriteItem.currentFavouriteItem.isStackable) + { + drag.AddItem(GetComponent().currentInventoryItem); + CardItemManager.instanceInventory.favourite.RemoveItem(dragedFavouriteItem.ItemNum); + CardItemManager.instanceInventory.DisplayItems(); + return; + } + } + } + + //if (dragedStorageItem) + //{ + // if (GetComponent().currentInventoryItem.id == dragedStorageItem.currentStorageItem.id) + // { + // if (dragedStorageItem.currentStorageItem.isStackable) + // { + // drag.AddItem(GetComponent().currentInventoryItem); + // Storage.RemoveItem(dragedStorageItem.itemNum); + // Inventory.instanceInventory.DisplayItems(); + // return; + // } + // } + //} + } + } + + + + + + + + + + diff --git a/Assets/Scripts/To_Refactoring/Card/Drag.cs b/Assets/Scripts/To_Refactoring/Card/Drag.cs new file mode 100644 index 000000000..d84472a3a --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Drag.cs @@ -0,0 +1,131 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + + + +public class Drag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler +{ + + //public int index; + public static GameObject isDragingObject; + + + + public void OnBeginDrag(PointerEventData eventData) + { + GameObject dragPrefab = CardItemManager.instanceInventory.dragPrefab; + isDragingObject = gameObject; + + + + if (eventData.button == PointerEventData.InputButton.Left) + { + //dragPrefab.transform.GetChild(0).GetComponent().enabled = true; + + if (isDragingObject.GetComponent()) + { + dragPrefab.GetComponent().sprite = GetComponent().currentInventoryItem.Icon; + //if (GetComponent().currentInventoryItem.countItem > 1) + // dragPrefab.transform.GetChild(0).GetComponent().text = GetComponent().currentInventoryItem.countItem.ToString(); + //else + // dragPrefab.transform.GetChild(0).GetComponent().enabled = false; + } + + if (isDragingObject.GetComponent()) + { + dragPrefab.GetComponent().sprite = GetComponent().currentFavouriteItem.Icon; + + //if (GetComponent().currentFavouriteItem.countItem > 1) + // dragPrefab.transform.GetChild(0).GetComponent().text = GetComponent().currentFavouriteItem.countItem.ToString(); + //else + // dragPrefab.transform.GetChild(0).GetComponent().enabled = false; + } + + //if (isDragingObject.GetComponent()) + //{ + // dragPrefab.GetComponent().sprite = GetComponent().currentStorageItem.icon; + + // if (GetComponent().currentStorageItem.countItem > 1) + // dragPrefab.transform.GetChild(0).GetComponent().text = GetComponent().currentStorageItem.countItem.ToString(); + // else + // dragPrefab.transform.GetChild(0).GetComponent().enabled = false; + //} + + if (CardItemManager.instanceInventory.dragPrefab.GetComponent().sprite != null) + { + CardItemManager.instanceInventory.dragPrefab.SetActive(true); + CardItemManager.instanceInventory.dragPrefab.GetComponent().blocksRaycasts = false; + } + else + { + isDragingObject = null; + } + } + + //if (eventData.button == PointerEventData.InputButton.Right) + //{ + // dragPrefab.transform.GetChild(0).GetComponent().enabled = false; + + // if (isDragingObject.GetComponent()) + // { + // dragPrefab.GetComponent().sprite = GetComponent().currentInventoryItem.Icon; + // } + + // if (isDragingObject.GetComponent()) + // { + // dragPrefab.GetComponent().sprite = GetComponent().currentFavouriteItem.Icon; + // } + + // //if (isDragingObject.GetComponent()) + // //{ + // // dragPrefab.GetComponent().sprite = GetComponent().currentStorageItem.icon; + // //} + + // if (dragPrefab.GetComponent().sprite != null) + // { + // dragPrefab.SetActive(true); + // dragPrefab.GetComponent().blocksRaycasts = false; + // } + // else + // { + // isDragingObject = null; + // } + //} + } + + public void OnDrag(PointerEventData eventData) + { + CardItemManager.instanceInventory.dragPrefab.transform.position = Input.mousePosition; + } + + public void OnEndDrag(PointerEventData eventData) + { + isDragingObject = null; + GameObject dragPrefab = CardItemManager.instanceInventory.dragPrefab; + CardItemManager.instanceInventory.dragPrefab.GetComponent().blocksRaycasts = true; + CardItemManager.instanceInventory.dragPrefab.GetComponent().sprite = null; + CardItemManager.instanceInventory.dragPrefab.SetActive(false); + } + + public Item dragedItem(Item item) + { + for (int i = 0; i < CardItemManager.instanceInventory.database.transform.childCount; i++) + { + Item temp = CardItemManager.instanceInventory.database.transform.GetChild(i).GetComponent(); + if (temp.id == item.id) + { + return temp; + } + } + return null; + } + + public void AddItem(Item item) + { + item.countItem ++; + } +} diff --git a/Assets/Scripts/To_Refactoring/Card/Favourite.cs b/Assets/Scripts/To_Refactoring/Card/Favourite.cs new file mode 100644 index 000000000..58febda82 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Favourite.cs @@ -0,0 +1,106 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Favourite : MonoBehaviour +{ + [HideInInspector] + public List favouriteItem; + + void Start() + { + InitFavourite(); + DisplayItems(); + NumItems(); + } + + void InitFavourite() + { + favouriteItem = new List(); + for (int i = 0; i < transform.childCount; i++) + { + favouriteItem.Add(new Item()); + } + } + + void NumItems() + { + for (int i = 0; i < transform.childCount; i++) + { + Transform cell = transform.GetChild(i); + cell.GetComponent().ItemNum = i; + } + } + + public void DisplayItems() + { + for (int i = 0; i < transform.childCount; i++) + { + Item currentItem = favouriteItem[i]; + Transform cell = transform.GetChild(i); + + Image icon = cell.transform.GetChild(0).GetComponent(); + //Text count = icon.transform.GetChild(0).GetComponent(); + + if (currentItem.id != 0) + { + icon.enabled = true; + Sprite itemIcon = currentItem.Icon; + icon.sprite = itemIcon; + //count.text = null; + + if (currentItem.isStackable) + { + //if (currentItem.countItem > 1) + // count.text = currentItem.countItem.ToString(); + //else + // count.text = null; + } + } + else + { + icon.enabled = false; + icon.sprite = null; + //count.text = null; + } + } + } + + public void RemoveItem(int numItem) + { + if (favouriteItem[numItem].countItem > 1) + favouriteItem[numItem].countItem--; + else + favouriteItem[numItem] = CardItemManager.instanceInventory.EmptySlot(); + + DisplayItems(); + } + + public bool isExistItem(int id) + { + for (int i = 0; i < favouriteItem.Count; i++) + { + if (favouriteItem[i].id == id) + { + return true; + } + } + return false; + } + + public void RemoveItemID(int id) + { + for (int i = 0; i < favouriteItem.Count; i++) + { + if (favouriteItem[i].id == id) + { + if (favouriteItem[i].countItem > 1) + favouriteItem[i].countItem--; + else + favouriteItem[i] = CardItemManager.instanceInventory.EmptySlot(); + DisplayItems(); + } + } + } +} diff --git a/Assets/Scripts/To_Refactoring/Card/Invent.cs b/Assets/Scripts/To_Refactoring/Card/Invent.cs new file mode 100644 index 000000000..542161a16 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Invent.cs @@ -0,0 +1,124 @@ +using System; +using System.Collections; +using System.Collections.Generic; + +using UnityEngine; +using UnityEngine.UI; + + +public class Invent : MonoBehaviour +{ + //public static Invent Instance; + public List item; + //public Sprite[] CardItamSprites; + [SerializeField] + public GameObject SlotContainer; + [SerializeField] + public GameObject CardItemContainer; + public KeyCode takeButton; + + + + + + + + + + void Start() + { + //parametersManager = GetComponent(); + + //InitInventory(); + item = new List(); + + for (int i = 0; i < SlotContainer.transform.childCount; i++) + { + item.Add(new CardItem()); + } + //NumItems(); + + //RenameCells(); + //RenameIcons(); + //HidePanel(); + } + + //void InitInventory() + //{ + + + // } + //} + + + + public void Update() + { + + var card = GetComponent(); + item.Add(card); + + if (Input.GetKeyDown(takeButton)) + { + + + + for (int i = 0; i < item.Count; i++) + { + + + + //if (item[i].Id == 0) + //{ + + item[i] = GetComponent(); + //item.Add(GetComponent()); + DisplayCardItem(); + + + + + //} + + + + } + } + } + + + + void DisplayCardItem() + { + + for (int i = 0; i < item.Count; i++) + { + + Transform Slot = SlotContainer.transform.GetChild(i); + Transform icon = Slot.GetChild(0); + Image img = icon.GetComponent(); + //if (item[i].Id != 0) + //{ + + img.enabled = true; + img.sprite = Resources.Load(item[i].PathIcon); + //} + Debug.Log("q1"); + + + } + + } + +} + + + + + + + + + + + diff --git a/Assets/Scripts/To_Refactoring/Card/Invent.cs.meta b/Assets/Scripts/To_Refactoring/Card/Invent.cs.meta new file mode 100644 index 000000000..7f32e83fb --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Invent.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: f141789894df77a46a04aebbb75d4e1a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: + - SlotContainer: {fileID: 6033241233117090268, guid: 2d08cf66a0c0c024ba333f6ef6421e81, + type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Item.cs b/Assets/Scripts/To_Refactoring/Card/Item.cs new file mode 100644 index 000000000..38b38082b --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Item.cs @@ -0,0 +1,30 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; +using UnityEngine.UI; + +public class Item : MonoBehaviour { + public string nameItem; + [Range(1,999)] + public int id; + [HideInInspector] + public int countItem ; + public bool isStackable; + [TextArea(5,100)] + public string descriptionItem; + public Sprite Icon; + + + public bool isRemovable; + public bool isDroped; + + public UnityEvent OnItemUse; + + public UnityEvent customEvent; + + public Item getCopy() + { + return (Item)this.MemberwiseClone(); + } +} diff --git a/Assets/Scripts/To_Refactoring/Card/ItemD.cs b/Assets/Scripts/To_Refactoring/Card/ItemD.cs new file mode 100644 index 000000000..7e605cbd5 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/ItemD.cs @@ -0,0 +1,3 @@ +internal class ItemD +{ +} \ No newline at end of file diff --git a/Assets/Scripts/To_Refactoring/Card/ItemD.cs.meta b/Assets/Scripts/To_Refactoring/Card/ItemD.cs.meta new file mode 100644 index 000000000..420742b1a --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/ItemD.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6ced79e6e4619194189704f2e78155d9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/New Folder.meta b/Assets/Scripts/To_Refactoring/Card/New Folder.meta new file mode 100644 index 000000000..2cf0ce94c --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/New Folder.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 95424bb0681f6c64883c31d13623dee5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/New Folder/CardManger.prefab b/Assets/Scripts/To_Refactoring/Card/New Folder/CardManger.prefab new file mode 100644 index 000000000..1be1c95b3 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/New Folder/CardManger.prefab @@ -0,0 +1,74 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4988791094179268597 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4988791094179268594} + - component: {fileID: 4988791094179268595} + - component: {fileID: 8534699851400628011} + m_Layer: 5 + m_Name: CardManger + m_TagString: CardManger + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4988791094179268594 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4988791094179268597} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4988791094179268595 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4988791094179268597} + m_CullTransparentMesh: 0 +--- !u!114 &8534699851400628011 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4988791094179268597} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 206de465d45a3f94ba9c374acd6a6ec8, type: 3} + m_Name: + m_EditorClassIdentifier: + item: + - {fileID: 0} + Card: + - {fileID: 0} + CardItemSprites: [] + nameCardItem: + pathSprite: {fileID: 21300000, guid: 8896fe5a356564c448293e2733e457ef, type: 3} + CardItemBadhar: + CardTextGoodhar: + CardImage: {fileID: 21300000, guid: 8896fe5a356564c448293e2733e457ef, type: 3} + CardBossImage: {fileID: 0} + _InitialcardItems: [] + takeButton: 105 + SlotContainer: {fileID: 0} + CardContainer: {fileID: 0} diff --git a/Assets/Scripts/To_Refactoring/Card/New Folder/CardManger.prefab.meta b/Assets/Scripts/To_Refactoring/Card/New Folder/CardManger.prefab.meta new file mode 100644 index 000000000..f2be5bc3c --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/New Folder/CardManger.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b4e92a501714797409b528eaa2e13d53 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/New Folder/ItemAnfib.prefab b/Assets/Scripts/To_Refactoring/Card/New Folder/ItemAnfib.prefab new file mode 100644 index 000000000..661926576 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/New Folder/ItemAnfib.prefab @@ -0,0 +1,135 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6885579321460947088 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6885579321460947093} + - component: {fileID: 1286895770} + - component: {fileID: 2061563183030004568} + - component: {fileID: 1800738209564696446} + - component: {fileID: 8746477983890386150} + - component: {fileID: 1286895771} + m_Layer: 5 + m_Name: ItemAnfib + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6885579321460947093 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6885579321460947088} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.7622732, y: 0.7622732, z: 0.7622732} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 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: 508.95435, y: 320.47147} + m_SizeDelta: {x: 75, y: 125} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1286895770 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6885579321460947088} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 0 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!54 &2061563183030004568 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6885579321460947088} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &1800738209564696446 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6885579321460947088} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &8746477983890386150 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6885579321460947088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c691e236dab3ee049b690f763230cfcc, type: 3} + m_Name: + m_EditorClassIdentifier: + nameItem: sd + id: 1 + countItem: 1 + isStackable: 0 + descriptionBadItem: + descriptionGoodItem: + pathIcon: pic/p8 + pathPrefab: Prefabs/ItemAnfib + isRemovable: 0 + isDroped: 0 + OnItemUse: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!222 &1286895771 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6885579321460947088} + m_CullTransparentMesh: 0 diff --git a/Assets/Scripts/To_Refactoring/Card/New Folder/ItemAnfib.prefab.meta b/Assets/Scripts/To_Refactoring/Card/New Folder/ItemAnfib.prefab.meta new file mode 100644 index 000000000..9bb2a21ed --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/New Folder/ItemAnfib.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 96ef7522db14fad4789e7a8311572978 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/New Folder/Point.prefab b/Assets/Scripts/To_Refactoring/Card/New Folder/Point.prefab new file mode 100644 index 000000000..a85892042 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/New Folder/Point.prefab @@ -0,0 +1,76 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8066053619169446442 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8066053619169446443} + - component: {fileID: 8066053619169446441} + - component: {fileID: 8066053619169446440} + m_Layer: 5 + m_Name: Point + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8066053619169446443 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8066053619169446442} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -578.11} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 3, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8066053619169446441 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8066053619169446442} + m_CullTransparentMesh: 0 +--- !u!114 &8066053619169446440 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8066053619169446442} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.2735849, g: 0.26197046, b: 0.26197046, a: 0.8666667} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 diff --git a/Assets/Scripts/To_Refactoring/Card/New Folder/Point.prefab.meta b/Assets/Scripts/To_Refactoring/Card/New Folder/Point.prefab.meta new file mode 100644 index 000000000..667fb4842 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/New Folder/Point.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4d307e374aba93a4fbcf1db048c14472 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/New Folder/SlotCardAdd.prefab b/Assets/Scripts/To_Refactoring/Card/New Folder/SlotCardAdd.prefab new file mode 100644 index 000000000..26a34651a --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/New Folder/SlotCardAdd.prefab @@ -0,0 +1,640 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4596477799044889692 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4596477799044889693} + - component: {fileID: 4596477799044889695} + - component: {fileID: 4596477799044889694} + - component: {fileID: 1869137502} + m_Layer: 5 + m_Name: SlotCardAdd + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4596477799044889693 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4596477799044889692} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2497864284300322169} + - {fileID: 2497864285375062528} + - {fileID: 2497864285081517555} + - {fileID: 2497864284047782816} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -2, y: -249} + m_SizeDelta: {x: -45.9, y: -527.1} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4596477799044889695 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4596477799044889692} + m_CullTransparentMesh: 0 +--- !u!114 &4596477799044889694 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4596477799044889692} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5471698, g: 0.53426486, b: 0.53426486, a: 0.85882354} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 1 +--- !u!114 &1869137502 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4596477799044889692} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 75, y: 125} + m_Spacing: {x: 5, y: 0} + m_Constraint: 1 + m_ConstraintCount: 15 +--- !u!1001 &4596477797688521072 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 4596477799044889693} + m_Modifications: + - target: {fileID: 2117758768543171283, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Name + value: Slot (3) + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171294, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1a321205c3bca0e4f9f53e7029cdca3f, type: 3} +--- !u!224 &2497864284047782816 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + m_PrefabInstance: {fileID: 4596477797688521072} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4596477797939488681 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 4596477799044889693} + m_Modifications: + - target: {fileID: 2117758768543171283, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Name + value: Slot + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171294, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 0} + - target: {fileID: 6152337900219237747, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_RaycastTarget + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6152337900219237747, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1a321205c3bca0e4f9f53e7029cdca3f, type: 3} +--- !u!224 &2497864284300322169 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + m_PrefabInstance: {fileID: 4596477797939488681} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4596477798802472739 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 4596477799044889693} + m_Modifications: + - target: {fileID: 2117758768543171283, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Name + value: Slot (2) + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171294, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1a321205c3bca0e4f9f53e7029cdca3f, type: 3} +--- !u!224 &2497864285081517555 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + m_PrefabInstance: {fileID: 4596477798802472739} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4596477799012131024 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 4596477799044889693} + m_Modifications: + - target: {fileID: 2117758768543171283, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Name + value: Slot (1) + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2117758768543171294, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 0} + - target: {fileID: 6152337900219237747, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1a321205c3bca0e4f9f53e7029cdca3f, type: 3} +--- !u!224 &2497864285375062528 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2117758768543171280, guid: 1a321205c3bca0e4f9f53e7029cdca3f, + type: 3} + m_PrefabInstance: {fileID: 4596477799012131024} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Scripts/To_Refactoring/Card/New Folder/SlotCardAdd.prefab.meta b/Assets/Scripts/To_Refactoring/Card/New Folder/SlotCardAdd.prefab.meta new file mode 100644 index 000000000..0b0ae2a51 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/New Folder/SlotCardAdd.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b76d3fbefb7d49c4d83fddd7078c7157 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Resources.meta b/Assets/Scripts/To_Refactoring/Card/Resources.meta new file mode 100644 index 000000000..36cb574b0 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7e32e4aa0db0db946a302703481b3b43 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs.meta b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs.meta new file mode 100644 index 000000000..f17e1d5d7 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b9bb8925ae4b057408d2b51cb279d9d9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/Card.prefab b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/Card.prefab new file mode 100644 index 000000000..b75e23dc8 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/Card.prefab @@ -0,0 +1,71 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4580233361991628993 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2713199014875228328} + - component: {fileID: 4415195161479165224} + - component: {fileID: 3455227514906446666} + m_Layer: 5 + m_Name: Card + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2713199014875228328 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4580233361991628993} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 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: 528, y: 330} + m_SizeDelta: {x: 75, y: 125} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4415195161479165224 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4580233361991628993} + m_CullTransparentMesh: 0 +--- !u!114 &3455227514906446666 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4580233361991628993} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 75, y: 125} + m_Spacing: {x: 5, y: 0} + m_Constraint: 0 + m_ConstraintCount: 2 diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/Card.prefab.meta b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/Card.prefab.meta new file mode 100644 index 000000000..53ae6a932 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/Card.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 36c12894e51e7f94a8c24de259313228 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemAnfib.prefab b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemAnfib.prefab new file mode 100644 index 000000000..60e602919 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemAnfib.prefab @@ -0,0 +1,95 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3771788498760350448 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3771788498760350453} + - component: {fileID: 8595766970395207992} + - component: {fileID: 8298983555365887262} + - component: {fileID: 1348778799578771078} + m_Layer: 5 + m_Name: ItemAnfib + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3771788498760350453 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3771788498760350448} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.0394635, y: 1.0394635, z: 1.0394635} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 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: -3.9996338, y: -5.9999084} + m_SizeDelta: {x: 75, y: 125} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!54 &8595766970395207992 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3771788498760350448} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &8298983555365887262 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3771788498760350448} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &1348778799578771078 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3771788498760350448} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c691e236dab3ee049b690f763230cfcc, type: 3} + m_Name: + m_EditorClassIdentifier: + nameItem: + id: 1 + isStackable: 0 + descriptionBadItem: + descriptionGoodItem: + pathIcon: pic/p8 + pathPrefab: Prefabs/ItemAnfib + isRemovable: 0 + isDroped: 0 + OnItemUse: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemAnfib.prefab.meta b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemAnfib.prefab.meta new file mode 100644 index 000000000..0b74a707b --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemAnfib.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4a4836bf912c43547ae547809022061d +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemD.prefab b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemD.prefab new file mode 100644 index 000000000..9a53a6cc0 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemD.prefab @@ -0,0 +1,52 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6340598963576163343 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6340598963576163337} + - component: {fileID: 6340598963576163342} + m_Layer: 0 + m_Name: ItemD + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6340598963576163337 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6340598963576163343} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -10.298706, y: 26.05365, z: -248.45679} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6340598963576163342 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6340598963576163343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c691e236dab3ee049b690f763230cfcc, type: 3} + m_Name: + m_EditorClassIdentifier: + NameItem: + Id: 1 + descriptionBadItem: + DescriptionGoodItem: + PathIcon: pic/p0 + pathPrefab: Prefabs/ItemD + Sprite: {fileID: 21300000, guid: 8896fe5a356564c448293e2733e457ef, type: 3} diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemD.prefab.meta b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemD.prefab.meta new file mode 100644 index 000000000..d203d51c3 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemD.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2d08cf66a0c0c024ba333f6ef6421e81 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemDg.prefab b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemDg.prefab new file mode 100644 index 000000000..1e46ee7d5 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemDg.prefab @@ -0,0 +1,52 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8415835198724702412 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8415835198724702414} + - component: {fileID: 2498569857567384818} + m_Layer: 0 + m_Name: ItemDg + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8415835198724702414 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415835198724702412} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1107.2007, y: 668.92126, z: -241} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2498569857567384818 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415835198724702412} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c691e236dab3ee049b690f763230cfcc, type: 3} + m_Name: + m_EditorClassIdentifier: + NameItem: + Id: 2 + descriptionBadItem: + DescriptionGoodItem: + PathIcon: pic/p8 + pathPrefab: Prefabs/ItemDg + Sprite: {fileID: 21300000, guid: cdfc891cc059baf4a89d166791883ffc, type: 3} diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemDg.prefab.meta b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemDg.prefab.meta new file mode 100644 index 000000000..bc63f7118 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/ItemDg.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 66daf4f4f37f14e44b5d56832ac0b158 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/Slot.prefab b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/Slot.prefab new file mode 100644 index 000000000..e24b9647c --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/Slot.prefab @@ -0,0 +1,201 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &793036467717894773 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6026548677664280774} + - component: {fileID: 2392854369727163606} + - component: {fileID: 6152337900219237747} + - component: {fileID: 1666933431388680798} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6026548677664280774 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 793036467717894773} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2117758768543171280} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2392854369727163606 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 793036467717894773} + m_CullTransparentMesh: 0 +--- !u!114 &6152337900219237747 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 793036467717894773} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &1666933431388680798 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 793036467717894773} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 70, y: 120} + m_Spacing: {x: 0, y: 0} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!1 &2117758768543171283 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2117758768543171280} + - component: {fileID: 2117758768543171295} + - component: {fileID: 2117758768543171294} + - component: {fileID: 2117758768543171281} + m_Layer: 5 + m_Name: Slot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2117758768543171280 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2117758768543171283} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6026548677664280774} + m_Father: {fileID: 0} + m_RootOrder: 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: -459.6, y: 0} + m_SizeDelta: {x: 80, y: 125} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2117758768543171295 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2117758768543171283} + m_CullTransparentMesh: 0 +--- !u!114 &2117758768543171294 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2117758768543171283} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.16037738, g: 0.14751694, b: 0.14751694, a: 0.6509804} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 8896fe5a356564c448293e2733e457ef, 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 +--- !u!114 &2117758768543171281 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2117758768543171283} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 75, y: 125} + m_Spacing: {x: 5, y: 0} + m_Constraint: 0 + m_ConstraintCount: 15 diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/Slot.prefab.meta b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/Slot.prefab.meta new file mode 100644 index 000000000..c79ce6183 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/Slot.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1a321205c3bca0e4f9f53e7029cdca3f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/psp.prefab b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/psp.prefab new file mode 100644 index 000000000..eba362510 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/psp.prefab @@ -0,0 +1,98 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5599641088310197362 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6305763231530855451} + - component: {fileID: 5719649061094781339} + - component: {fileID: 6761808500099764217} + - component: {fileID: 5599641088310197363} + m_Layer: 5 + m_Name: psp + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6305763231530855451 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5599641088310197362} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 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: 528, y: 330} + m_SizeDelta: {x: 75, y: 125} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5719649061094781339 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5599641088310197362} + m_CullTransparentMesh: 0 +--- !u!114 &6761808500099764217 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5599641088310197362} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 75, y: 125} + m_Spacing: {x: 5, y: 0} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!114 &5599641088310197363 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5599641088310197362} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c691e236dab3ee049b690f763230cfcc, type: 3} + m_Name: + m_EditorClassIdentifier: + nameItem: + Id: 1 + isStackable: 0 + descriptionBadItem: + descriptionGoodItem: + PathIcon: pic/p8 + pathPrefab: Prefabs/psp + isRemovable: 0 + isDroped: 0 + OnItemUse: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/psp.prefab.meta b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/psp.prefab.meta new file mode 100644 index 000000000..c242b6cfc --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/Prefabs/psp.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2fd660f1a18374944bedbd0430c858d1 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/pic.meta b/Assets/Scripts/To_Refactoring/Card/Resources/pic.meta new file mode 100644 index 000000000..7cd152bca --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/pic.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9e9e20ce2443c744092dd4ba758532a9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/pic/Coat.png b/Assets/Scripts/To_Refactoring/Card/Resources/pic/Coat.png new file mode 100644 index 000000000..4f5bd722a Binary files /dev/null and b/Assets/Scripts/To_Refactoring/Card/Resources/pic/Coat.png differ diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/pic/Coat.png.meta b/Assets/Scripts/To_Refactoring/Card/Resources/pic/Coat.png.meta new file mode 100644 index 000000000..5d9c061e9 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/pic/Coat.png.meta @@ -0,0 +1,90 @@ +fileFormatVersion: 2 +guid: 9d22332ef2665c0489ea260e1cb747cb +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/pic/Fedora.png b/Assets/Scripts/To_Refactoring/Card/Resources/pic/Fedora.png new file mode 100644 index 000000000..08c60ff10 Binary files /dev/null and b/Assets/Scripts/To_Refactoring/Card/Resources/pic/Fedora.png differ diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/pic/Fedora.png.meta b/Assets/Scripts/To_Refactoring/Card/Resources/pic/Fedora.png.meta new file mode 100644 index 000000000..8caa3794a --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/pic/Fedora.png.meta @@ -0,0 +1,90 @@ +fileFormatVersion: 2 +guid: 92e7dacfa0390ff4e9e5af408792d3a8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/pic/Jacket.png b/Assets/Scripts/To_Refactoring/Card/Resources/pic/Jacket.png new file mode 100644 index 000000000..3898f79d9 Binary files /dev/null and b/Assets/Scripts/To_Refactoring/Card/Resources/pic/Jacket.png differ diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/pic/Jacket.png.meta b/Assets/Scripts/To_Refactoring/Card/Resources/pic/Jacket.png.meta new file mode 100644 index 000000000..b2c3c6769 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/pic/Jacket.png.meta @@ -0,0 +1,90 @@ +fileFormatVersion: 2 +guid: a4929de7696845e47a069c8fddac408b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/pic/TestInventoryImage.png b/Assets/Scripts/To_Refactoring/Card/Resources/pic/TestInventoryImage.png new file mode 100644 index 000000000..4912fd27a Binary files /dev/null and b/Assets/Scripts/To_Refactoring/Card/Resources/pic/TestInventoryImage.png differ diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/pic/TestInventoryImage.png.meta b/Assets/Scripts/To_Refactoring/Card/Resources/pic/TestInventoryImage.png.meta new file mode 100644 index 000000000..542d32e1b --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/pic/TestInventoryImage.png.meta @@ -0,0 +1,90 @@ +fileFormatVersion: 2 +guid: 50d6b6f8d11e1834fbb686fb8b0461fd +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/pic/gammaker.jpg.png b/Assets/Scripts/To_Refactoring/Card/Resources/pic/gammaker.jpg.png new file mode 100644 index 000000000..153fb613d Binary files /dev/null and b/Assets/Scripts/To_Refactoring/Card/Resources/pic/gammaker.jpg.png differ diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/pic/gammaker.jpg.png.meta b/Assets/Scripts/To_Refactoring/Card/Resources/pic/gammaker.jpg.png.meta new file mode 100644 index 000000000..0c5a3d450 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/pic/gammaker.jpg.png.meta @@ -0,0 +1,90 @@ +fileFormatVersion: 2 +guid: 96134022bcfcb0543b607b303161efa2 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/pic/p0.jpg b/Assets/Scripts/To_Refactoring/Card/Resources/pic/p0.jpg new file mode 100644 index 000000000..839f27880 Binary files /dev/null and b/Assets/Scripts/To_Refactoring/Card/Resources/pic/p0.jpg differ diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/pic/p0.jpg.meta b/Assets/Scripts/To_Refactoring/Card/Resources/pic/p0.jpg.meta new file mode 100644 index 000000000..c062488c4 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/pic/p0.jpg.meta @@ -0,0 +1,101 @@ +fileFormatVersion: 2 +guid: 8896fe5a356564c448293e2733e457ef +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 67012f34b2fb2754f9ca95c5fe6ba45f + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/pic/p1.jpg b/Assets/Scripts/To_Refactoring/Card/Resources/pic/p1.jpg new file mode 100644 index 000000000..aa25afae7 Binary files /dev/null and b/Assets/Scripts/To_Refactoring/Card/Resources/pic/p1.jpg differ diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/pic/p1.jpg.meta b/Assets/Scripts/To_Refactoring/Card/Resources/pic/p1.jpg.meta new file mode 100644 index 000000000..fb17b3e4b --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/pic/p1.jpg.meta @@ -0,0 +1,101 @@ +fileFormatVersion: 2 +guid: c6c4795a3d752fd42b2aabb7f6830949 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 7b069cb230b95f14abd0b521fd9500f2 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/pic/p8.jpg b/Assets/Scripts/To_Refactoring/Card/Resources/pic/p8.jpg new file mode 100644 index 000000000..7d0eb958d Binary files /dev/null and b/Assets/Scripts/To_Refactoring/Card/Resources/pic/p8.jpg differ diff --git a/Assets/Scripts/To_Refactoring/Card/Resources/pic/p8.jpg.meta b/Assets/Scripts/To_Refactoring/Card/Resources/pic/p8.jpg.meta new file mode 100644 index 000000000..10df282f7 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/Resources/pic/p8.jpg.meta @@ -0,0 +1,101 @@ +fileFormatVersion: 2 +guid: bd926085a7679514b939834d05635c94 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: ab476b271d6299f4c8f575d008587638 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/card.meta b/Assets/Scripts/To_Refactoring/Card/card.meta new file mode 100644 index 000000000..2aaec253f --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/card.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9177478286aa3bf47b03ad17754a5133 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/card/Card ItemJacket.asset b/Assets/Scripts/To_Refactoring/Card/card/Card ItemJacket.asset new file mode 100644 index 000000000..c79994deb --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/card/Card ItemJacket.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c691e236dab3ee049b690f763230cfcc, type: 3} + m_Name: Card ItemJacket + m_EditorClassIdentifier: + CardName: Jacket + CardTextBadhar: + CardTextGoodhar: + CardImage: {fileID: 21300000, guid: d3cd4efc0176c38448ce1056160fa77d, type: 3} + CardBossImage: {fileID: 0} diff --git a/Assets/Scripts/To_Refactoring/Card/card/Card ItemJacket.asset.meta b/Assets/Scripts/To_Refactoring/Card/card/Card ItemJacket.asset.meta new file mode 100644 index 000000000..d3a53c230 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/card/Card ItemJacket.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 22572072c2dce214a93f973a2d9017f0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/card/CardItemAnfib.asset b/Assets/Scripts/To_Refactoring/Card/card/CardItemAnfib.asset new file mode 100644 index 000000000..567ff60c6 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/card/CardItemAnfib.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c691e236dab3ee049b690f763230cfcc, type: 3} + m_Name: CardItemAnfib + m_EditorClassIdentifier: + CardName: Anfib + CardTextBadhar: + CardTextGoodhar: + CardImage: {fileID: 21300000, guid: 3d8d6c9b4d5ffdb44aecfba122ac6c48, type: 3} + CardBossImage: {fileID: 0} diff --git a/Assets/Scripts/To_Refactoring/Card/card/CardItemAnfib.asset.meta b/Assets/Scripts/To_Refactoring/Card/card/CardItemAnfib.asset.meta new file mode 100644 index 000000000..306c671a7 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/card/CardItemAnfib.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 506a623921494f945a6cc4f63410d54d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Card/p8.jpg b/Assets/Scripts/To_Refactoring/Card/p8.jpg new file mode 100644 index 000000000..7d0eb958d Binary files /dev/null and b/Assets/Scripts/To_Refactoring/Card/p8.jpg differ diff --git a/Assets/Scripts/To_Refactoring/Card/p8.jpg.meta b/Assets/Scripts/To_Refactoring/Card/p8.jpg.meta new file mode 100644 index 000000000..75d202cdf --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Card/p8.jpg.meta @@ -0,0 +1,101 @@ +fileFormatVersion: 2 +guid: 9675bd81c86c6cc448d4361c61696d1d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: ab476b271d6299f4c8f575d008587638 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character.meta b/Assets/Scripts/To_Refactoring/Character.meta new file mode 100644 index 000000000..91ac77331 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 14b521c9eeee5c6478658cf68efa8345 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/AttackModel.cs b/Assets/Scripts/To_Refactoring/Character/AttackModel.cs new file mode 100644 index 000000000..c24f8b66f --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/AttackModel.cs @@ -0,0 +1,17 @@ +using System; + + +namespace BeastHunter +{ + [Serializable] + public struct AttackModel + { + #region Fields + + public float Time; + public Damage AttackDamage; + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/AttackModel.cs.meta b/Assets/Scripts/To_Refactoring/Character/AttackModel.cs.meta new file mode 100644 index 000000000..1233bc9ad --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/AttackModel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e8c726b073535704a8f513421f98f700 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/BaseStatsClass.cs b/Assets/Scripts/To_Refactoring/Character/BaseStatsClass.cs new file mode 100644 index 000000000..6d2792dd6 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/BaseStatsClass.cs @@ -0,0 +1,37 @@ +using System; +using UnityEngine; + + +namespace BeastHunter +{ + [Serializable] + public class BaseStatsClass + { + #region Fields + + [Header("Basic stats")] + + [Tooltip("Physical power between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _physicalPower; + + [Tooltip("Physical damage resistance between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _physicalDamageResistance; + + [Tooltip("Stun resistance between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _stunProbabilityResistance; + + #endregion + + + #region Properties + + public float PhysicalPower => _physicalPower; + public float PhysicalResistance => _physicalDamageResistance; + public float StunResistance => _stunProbabilityResistance; + + #endregion + } +} diff --git a/Assets/Scripts/To_Refactoring/Character/BaseStatsClass.cs.meta b/Assets/Scripts/To_Refactoring/Character/BaseStatsClass.cs.meta new file mode 100644 index 000000000..90f97a6e0 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/BaseStatsClass.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 65ce79d331c619349bd84c33b1cb4374 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/CharacterAnimationController.cs b/Assets/Scripts/To_Refactoring/Character/CharacterAnimationController.cs new file mode 100644 index 000000000..c0ff5d587 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/CharacterAnimationController.cs @@ -0,0 +1,195 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public sealed class CharacterAnimationController + { + #region Fields + + private int _defaultMovementHash; + private int _defaultIdleHash; + private int _jumpHash; + private int _fallHash; + private int _battleIdleHash; + private int _battleIdleTwoHandedSliceHash; + private int _battleMovementHash; + private int _battleMovementTwoHandedSliceHash; + private int _battleTargetMovementHash; + private int _battleTargetMovementTwoHandedSliceHash; + private int _rollHash; + private int _rollTwoHandedSliceHash; + private int _rollForwardHash; + private int _dancingHash; + private int _stunnedHash; + private int _deadHash; + + #endregion + + + #region Properties + + private Animator CharacterAnimator { get; set; } + + #endregion + + + #region ClassLifeCycles + + public CharacterAnimationController(Animator characterAnimator) + { + CharacterAnimator = characterAnimator; + Initialize(); + } + + #endregion + + + #region Methods + + public void Initialize() + { + _defaultMovementHash = Animator.StringToHash("DefaultMovement"); + _jumpHash = Animator.StringToHash("Jump"); + _defaultIdleHash = Animator.StringToHash("DefaultIdle"); + _dancingHash = Animator.StringToHash("Dancing"); + _fallHash = Animator.StringToHash("Fall"); + _rollHash = Animator.StringToHash("Roll"); + _rollTwoHandedSliceHash = Animator.StringToHash("RollTwoHandedSlice"); + _rollForwardHash = Animator.StringToHash("RollForward"); + _battleIdleHash = Animator.StringToHash("BattleIdle"); + _battleIdleTwoHandedSliceHash = Animator.StringToHash("BattleIdleTwoHandedSlice"); + _battleMovementHash = Animator.StringToHash("BattleMovement"); + _battleMovementTwoHandedSliceHash = Animator.StringToHash("BattleMovementTwoHandedSlice"); + _battleTargetMovementHash = Animator.StringToHash("BattleTargetMovement"); + _battleTargetMovementTwoHandedSliceHash = Animator.StringToHash("BattleTargetMovementTwoHandedSlice"); + _stunnedHash = Animator.StringToHash("Stunned"); + _deadHash = Animator.StringToHash("Dead"); + } + + public void UpdateAnimationParameters(float axisX, float axisY, float moveSpeed, float animationSpeed) + { + if (CharacterAnimator != null) + { + CharacterAnimator.SetFloat("AxisX", axisX); + CharacterAnimator.SetFloat("AxisY", axisY); + CharacterAnimator.SetFloat("MoveSpeed", moveSpeed); + CharacterAnimator.speed = animationSpeed; + } + } + + public void PlayDefaultIdleAnimation() + { + CharacterAnimator.Play(_defaultIdleHash); + } + + public void PlayDefaultMovementAnimation() + { + CharacterAnimator.Play(_defaultMovementHash); + } + + public void PlayBattleIdleAnimation(WeaponItem leftWeapon, WeaponItem rightWeapon) + { + // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! to refactor + if (leftWeapon.WeaponHandType == WeaponHandType.TwoHanded && leftWeapon.WeaponType == WeaponType.MeleeCutting) + { + CharacterAnimator.Play(_battleIdleTwoHandedSliceHash); + } + else + { + CharacterAnimator.Play(_battleIdleHash); + } + } + + public void PlayBattleMovementAnimation(WeaponItem leftWeapon, WeaponItem rightWeapon) + { + // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! to refactor + if (leftWeapon.WeaponHandType == WeaponHandType.TwoHanded && leftWeapon.WeaponType == WeaponType.MeleeCutting) + { + CharacterAnimator.Play(_battleMovementTwoHandedSliceHash); + } + else + { + CharacterAnimator.Play(_battleMovementHash); + } + } + + public void PlayBattleTargetMovementAnimation(WeaponItem leftWeapon, WeaponItem rightWeapon) + { + // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! to refactor + if (leftWeapon.WeaponHandType == WeaponHandType.TwoHanded && leftWeapon.WeaponType == WeaponType.MeleeCutting) + { + CharacterAnimator.Play(_battleTargetMovementTwoHandedSliceHash); + } + else + { + CharacterAnimator.Play(_battleTargetMovementHash); + } + } + + public void PlayJumpAnimation() + { + CharacterAnimator.Play(_jumpHash); + } + + public void PlayRollAnimation(float rollingX, float rollingY, WeaponItem leftWeapon, WeaponItem rightWeapon) + { + CharacterAnimator.SetFloat("RollingX", rollingX); + CharacterAnimator.SetFloat("RollingY", rollingY); + + // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! to refactor + if (leftWeapon.WeaponHandType == WeaponHandType.TwoHanded && leftWeapon.WeaponType == WeaponType.MeleeCutting) + { + CharacterAnimator.Play(_rollTwoHandedSliceHash); + } + else + { + CharacterAnimator.Play(_rollHash); + } + } + + public void PlayRollForwardAnimation() + { + CharacterAnimator.Play(_rollForwardHash); + } + + public void PlayDancingAnimation() + { + CharacterAnimator.Play(_dancingHash); + } + + public void PlayAttackAnimation(int attackHash, float attackNumber) + { + CharacterAnimator.SetFloat("AttackNumber", attackNumber); + CharacterAnimator.Play(attackHash); + } + + public void PlayStunnedAnimation() + { + CharacterAnimator.Play(_stunnedHash); + } + + public void PlayDeadAnimation() + { + CharacterAnimator.Play(_deadHash); + } + + public void PlayFallAnimation() + { + CharacterAnimator.Play(_fallHash); + } + + public void PlayGettingWeaponAnimation(int gettingHash) + { + CharacterAnimator.Play(gettingHash); + } + + public void PlayRemovingWeaponAnimation(int removingHash) + { + CharacterAnimator.Play(removingHash); + } + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/CharacterAnimationController.cs.meta b/Assets/Scripts/To_Refactoring/Character/CharacterAnimationController.cs.meta new file mode 100644 index 000000000..3b3962a15 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/CharacterAnimationController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6b28b6d4ed5988244a413a4237f92947 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/CharacterCameraStruct.cs b/Assets/Scripts/To_Refactoring/Character/CharacterCameraStruct.cs new file mode 100644 index 000000000..f3ce82d61 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/CharacterCameraStruct.cs @@ -0,0 +1,1208 @@ +using System; +using Cinemachine; +using UnityEngine; + + +namespace BeastHunter +{ + [Serializable] + public struct CharacterCameraStruct + { + #region Fields + + [Tooltip("Character camera.")] + [SerializeField] private Camera _characterCamera; + + [Tooltip("Character camera name.")] + [SerializeField] private string _characterCameraName; + + [Tooltip("Character free look camera.")] + [SerializeField] private CinemachineFreeLook _characterFreelookCamera; + + [Tooltip("Character free look camera name.")] + [SerializeField] private string _characterFreelookCameraName; + + [Range(0.0f, 10.0f)] + [Tooltip("Freelook camera blend time between 0 and 10.")] + [SerializeField] private float _characterFreelookCameraBlendTime; + + [Tooltip("Character target camera.")] + [SerializeField] private CinemachineVirtualCamera _characterTargetCamera; + + [Tooltip("Character target camera name.")] + [SerializeField] private string _characterTargetCameraName; + + [Tooltip("Camera target name.")] + [SerializeField] private string _cameraTargetName; + + [Range(0.0f, 10.0f)] + [Tooltip("Target camera blend time between 0 and 10.")] + [SerializeField] private float _characterTargetameraBlendTime; + + [Range(0.0f, 5.0f)] + [Tooltip("Camera target height between 0 and 5.")] + [SerializeField] private float _cameraTargetHeight; + + [Tooltip("Character dialog camera.")] + [SerializeField] private CinemachineVirtualCamera _characterDialogCamera; + + [Tooltip("Character dialog camera name.")] + [SerializeField] private string _characterDialogCameraName; + + [Range(0.0f, 10.0f)] + [Tooltip("Dialog camera blend time between 0 and 10.")] + [SerializeField] private float _characterDialogCameraBlendTime; + + [Header("Lens Settings")] + + [Tooltip("Free look field of view between 1 and 179.")] + [Range(0.0f, 179.0f)] + [SerializeField] private float _freeLookFieldOfView; + + [Tooltip("Free look near clip plane between 0 and 10 000.")] + [Range(0.0f, 10000.0f)] + [SerializeField] private float _freeLookNearClipPlane; + + [Tooltip("Free look far clip plane between 0 and 10 000.")] + [Range(0.0f, 10000.0f)] + [SerializeField] private float _freeLookFarClipPlane; + + [Tooltip("Free look dutch between -180 and 180.")] + [Range(-180.0f, 180.0f)] + [SerializeField] private float _freeLookDutch; + + [Header("Axis control")] + + [Tooltip("Camera X-axis rotation speed between 0 and 1 000.")] + [Range(0.0f, 1000.0f)] + [SerializeField] private float _freeLookSpeedX; + + [Tooltip("Camera X-axis rotation acceleration lag between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookAccelerationLagX; + + [Tooltip("Camera X-axis rotation deceleration lag between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookDecelerationLagX; + + [Tooltip("Is X axis inverted.")] + [SerializeField] private bool _isInvertedAxisX; + + [Space(10)] + + [Tooltip("Camera Y-axis rotation speed between 0 and 1 000.")] + [Range(0.0f, 1000.0f)] + [SerializeField] private float _freeLookSpeedY; + + [Tooltip("Camera Y-axis rotation acceleration lag between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookAccelerationLagY; + + [Tooltip("Camera Y-axis rotation deceleration lag between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookDecelerationLagY; + + [Tooltip("Is Y axis inverted.")] + [SerializeField] private bool _isInvertedAxisY; + + [Header("Orbits settings")] + + [Tooltip("Free look spline curvature between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookSplineCurvature; + + [Tooltip("Height of freelook camera top rig between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _freeLookTopRigHeight; + + [Tooltip("Radius of freelook camera top rig between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _freeLookTopRigRadius; + + [Tooltip("Height of freelook camera middle rig between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _freeLookMiddleRigHeight; + + [Tooltip("Radius of freelook camera middle rig between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _freeLookMiddleRigRadius; + + [Tooltip("Height of freelook camera bottom rig between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _freeLookBottomRigHeight; + + [Tooltip("Radius of freelook camera low rig between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _freeLookBottomRigRadius; + + [Header("Rigs orbital transposer/composer settings")] + + [Tooltip("Top rig body Y damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _freeLookTopRigBodyDampingY; + + [Tooltip("Top rig body Z damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _freeLookTopRigBodyDampingZ; + + [Tooltip("Top rig X-axis offset between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _freeLookTopRigOffsetX; + + [Tooltip("Top rig Y-axis offset between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _freeLookTopRigOffsetY; + + [Tooltip("Top rig Z-axis offset between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _freeLookTopRigOffsetZ; + + [Tooltip("Top rig look ahead time between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _freeLookTopRigLookaheadTime; + + [Tooltip("Top rig lookahead smoothing between 0 and 10.")] + [Range(3.0f, 30.0f)] + [SerializeField] private float _freeLookTopRigLookaheadSmoothing; + + [Tooltip("Top rig horizontal damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _freeLookTopRigHorizontalDamping; + + [Tooltip("Top rig vertical damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _freeLookTopRigVerticalDamping; + + [Tooltip("Top rig screen X between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookTopRigScreenX; + + [Tooltip("Top rig screen Y between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookTopRigScreenY; + + [Tooltip("Camera top rig danger zone width between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookTopRigDeadZoneWidth; + + [Tooltip("Camera top rig danger zone height between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookTopRigDeadZoneHeight; + + [Tooltip("Camera top rig soft zone width between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookTopRigSoftZoneWidth; + + [Tooltip("Camera top rig soft zone height between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookTopRigSoftZoneHeight; + + [Tooltip("Top rig bias X between 0 and 1.")] + [Range(-0.5f, 0.5f)] + [SerializeField] private float _freeLookTopRigBiasX; + + [Tooltip("Top rig bias Y between 0 and 1.")] + [Range(-0.5f, 0.5f)] + [SerializeField] private float _freeLookTopRigBiasY; + + [Space(10)] + + [Tooltip("Top rig body Y damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _freeLookMiddleRigBodyDampingY; + + [Tooltip("Middle rig body Z damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _freeLookMiddleRigBodyDampingZ; + + [Tooltip("Middle rig X-axis offset between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _freeLookMiddleRigOffsetX; + + [Tooltip("Middle rig Y-axis offset between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _freeLookMiddleRigOffsetY; + + [Tooltip("Middle rig Z-axis offset between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _freeLookMiddleRigOffsetZ; + + [Tooltip("Middle rig look ahead time between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _freeLookMiddleRigLookaheadTime; + + [Tooltip("Middle rig lookahead smoothing between 0 and 10.")] + [Range(3.0f, 30.0f)] + [SerializeField] private float _freeLookMiddleRigLookaheadSmoothing; + + [Tooltip("Middle rig horizontal damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _freeLookMiddleRigHorizontalDamping; + + [Tooltip("Middle rig vertical damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _freeLookMiddleRigVerticalDamping; + + [Tooltip("Middle rig screen X between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookMiddleRigScreenX; + + [Tooltip("Middle rig screen Y between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookMiddleRigScreenY; + + [Tooltip("Camera Middle rig danger zone width between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookMiddleRigDeadZoneWidth; + + [Tooltip("Camera Middle rig danger zone height between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookMiddleRigDeadZoneHeight; + + [Tooltip("Camera Middle rig soft zone width between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookMiddleRigSoftZoneWidth; + + [Tooltip("Camera Middle rig soft zone height between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookMiddleRigSoftZoneHeight; + + [Tooltip("Middle rig bias X between 0 and 1.")] + [Range(-0.5f, 0.5f)] + [SerializeField] private float _freeLookMiddleRigBiasX; + + [Tooltip("Middle rig bias Y between 0 and 1.")] + [Range(-0.5f, 0.5f)] + [SerializeField] private float _freeLookMiddleRigBiasY; + + [Space(10)] + + [Tooltip("Top rig body Y damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _freeLookBottomRigBodyDampingY; + + [Tooltip("Bottom rig body Z damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _freeLookBottomRigBodyDampingZ; + + [Tooltip("Bottom rig X-axis offset between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _freeLookBottomRigOffsetX; + + [Tooltip("Bottom rig Y-axis offset between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _freeLookBottomRigOffsetY; + + [Tooltip("Bottom rig Z-axis offset between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _freeLookBottomRigOffsetZ; + + [Tooltip("Bottom rig look ahead time between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _freeLookBottomRigLookaheadTime; + + [Tooltip("Bottom rig lookahead smoothing between 0 and 10.")] + [Range(3.0f, 30.0f)] + [SerializeField] private float _freeLookBottomRigLookaheadSmoothing; + + [Tooltip("Bottom rig horizontal damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _freeLookBottomRigHorizontalDamping; + + [Tooltip("Bottom rig vertical damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _freeLookBottomRigVerticalDamping; + + [Tooltip("Bottom rig screen X between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookBottomRigScreenX; + + [Tooltip("Bottom rig screen Y between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookBottomRigScreenY; + + [Tooltip("Camera Bottom rig danger zone width between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookBottomRigDeadZoneWidth; + + [Tooltip("Camera Bottom rig danger zone height between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookBottomRigDeadZoneHeight; + + [Tooltip("Camera Bottom rig soft zone width between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookBottomRigSoftZoneWidth; + + [Tooltip("Camera Bottom rig soft zone height between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _freeLookBottomRigSoftZoneHeight; + + [Tooltip("Bottom rig bias X between 0 and 1.")] + [Range(-0.5f, 0.5f)] + [SerializeField] private float _freeLookBottomRigBiasX; + + [Tooltip("Bottom rig bias Y between 0 and 1.")] + [Range(-0.5f, 0.5f)] + [SerializeField] private float _freeLookBottomRigBiasY; + + [Header("Free look camera collider settings")] + + [Tooltip("Minimal distance from target between 0 and 100.")] + [Range(0.0f, 100.0f)] + [SerializeField] private float _colliderMinDistanceFromTarget; + + [Tooltip("Avoid obstacles.")] + [SerializeField] private bool _isColliderAvoidingObstacles; + + [Tooltip("Distance limit between 0 and 100.")] + [Range(0.0f, 100.0f)] + [SerializeField] private float _colliderDistanceLimit; + + [Tooltip("Minimal distance from target between 0 and 100.")] + [Range(0.0f, 100.0f)] + [SerializeField] private float _colliderCameraRadius; + + [Tooltip("Minimal distance from target between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _colliderDamping; + + [Tooltip("Minimal distance from target between 0 and 100.")] + [Range(0.0f, 100.0f)] + [SerializeField] private float _colliderOptimalTargetDistance; + + [Header("Lens Settings")] + + [Header("Target camera Settings")] + + [Tooltip("Target camera field of view between 1 and 179.")] + [Range(0.0f, 179.0f)] + [SerializeField] private float _targetCameraFieldOfView; + + [Tooltip("Target camera near clip plane between 0 and 10 000.")] + [Range(0.0f, 10000.0f)] + [SerializeField] private float _targetCameraNearClipPlane; + + [Tooltip("Target camera far clip plane between 0 and 10 000.")] + [Range(0.0f, 10000.0f)] + [SerializeField] private float _targetCameraFarClipPlane; + + [Tooltip("Target camera dutch between -180 and 180.")] + [Range(-180.0f, 180.0f)] + [SerializeField] private float _targetCameraDutch; + + [Header("Transposer/composer settings")] + + [Tooltip("Target camera follow offset X between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _targetCameraFollowOffsetX; + + [Tooltip("Target camera follow offset Y between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _targetCameraFollowOffsetY; + + [Tooltip("Target camera follow offset Z between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _targetCameraFollowOffsetZ; + + [Tooltip("Target camera X damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _targetCameraDampingX; + + [Tooltip("Target camera Y damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _targetCameraDampingY; + + [Tooltip("Target camera Z damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _targetCameraDampingZ; + + [Tooltip("Target camera pitch damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _targetCameraPitchDamping; + + [Tooltip("Target camera yaw damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _targetCameraYawDamping; + + [Tooltip("Target camera roll damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _targetCameraRollDamping; + + [Space(10)] + + [Tooltip("Target camera tracked object offset X between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _targetCameraTrackedOffsetX; + + [Tooltip("Target camera tracked object offset Y between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _targetCameraTrackedOffsetY; + + [Tooltip("Target camera tracked object offset Z between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _targetCameraTrackedOffsetZ; + + [Tooltip("Target camera look ahead time between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _targetCameraLookaheadTime; + + [Tooltip("Target camera lookahead smoothing between 0 and 10.")] + [Range(3.0f, 30.0f)] + [SerializeField] private float _targetCameraLookaheadSmoothing; + + [Tooltip("Target camera horizontal damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _targetCameraHorizontalDamping; + + [Tooltip("Target camera vertical damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _targetCameraVerticalDamping; + + [Tooltip("Target camera screen X between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _targetCameraScreenX; + + [Tooltip("Target camera screen Y between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _targetCameraScreenY; + + [Tooltip("Target camera danger zone width between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _targetCameraDeadZoneWidth; + + [Tooltip("Target camera danger zone height between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _targetCameraDeadZoneHeight; + + [Tooltip("Target camera soft zone width between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _targetCameraSoftZoneWidth; + + [Tooltip("Target camera soft zone height between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _targetCameraSoftZoneHeight; + + [Tooltip("Target camera bias X between 0 and 1.")] + [Range(-0.5f, 0.5f)] + [SerializeField] private float _targetCameraBiasX; + + [Tooltip("Target camera bias Y between 0 and 1.")] + [Range(-0.5f, 0.5f)] + [SerializeField] private float _targetCameraBiasY; + + [Header("Lens Settings")] + + [Header("Dialog camera Settings")] + + [Tooltip("Dialog camera field of view between 1 and 179.")] + [Range(0.0f, 179.0f)] + [SerializeField] private float _dialogCameraFieldOfView; + + [Tooltip("Dialog camera near clip plane between 0 and 10 000.")] + [Range(0.0f, 10000.0f)] + [SerializeField] private float _dialogCameraNearClipPlane; + + [Tooltip("Dialog camera far clip plane between 0 and 10 000.")] + [Range(0.0f, 10000.0f)] + [SerializeField] private float _dialogCameraFarClipPlane; + + [Tooltip("Dialog camera dutch between -180 and 180.")] + [Range(-180.0f, 180.0f)] + [SerializeField] private float _dialogCameraDutch; + + [Header("Transposer/composer settings")] + + [Tooltip("Dialog camera follow offset X between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _dialogCameraFollowOffsetX; + + [Tooltip("Dialog camera follow offset Y between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _dialogCameraFollowOffsetY; + + [Tooltip("Dialog camera follow offset Z between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _dialogCameraFollowOffsetZ; + + [Tooltip("Dialog camera X damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _dialogCameraDampingX; + + [Tooltip("Dialog camera Y damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _dialogCameraDampingY; + + [Tooltip("Dialog camera Z damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _dialogCameraDampingZ; + + [Tooltip("Dialog camera pitch damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _dialogCameraPitchDamping; + + [Tooltip("Dialog camera yaw damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _dialogCameraYawDamping; + + [Tooltip("Dialog camera roll damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _dialogCameraRollDamping; + + [Space(10)] + + [Tooltip("Dialog camera tracked object offset X between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _dialogCameraTrackedOffsetX; + + [Tooltip("Dialog camera tracked object offset Y between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _dialogCameraTrackedOffsetY; + + [Tooltip("Dialog camera tracked object offset Z between -10 and 10.")] + [Range(-10.0f, 10.0f)] + [SerializeField] private float _dialogCameraTrackedOffsetZ; + + [Tooltip("Dialog camera look ahead time between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _dialogCameraLookaheadTime; + + [Tooltip("Dialog camera lookahead smoothing between 0 and 10.")] + [Range(3.0f, 30.0f)] + [SerializeField] private float _dialogCameraLookaheadSmoothing; + + [Tooltip("Dialog camera horizontal damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _dialogCameraHorizontalDamping; + + [Tooltip("Dialog camera vertical damping between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _dialogCameraVerticalDamping; + + [Tooltip("Dialog camera screen X between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _dialogCameraScreenX; + + [Tooltip("Dialog camera screen Y between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _dialogCameraScreenY; + + [Tooltip("Dialog camera danger zone width between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _dialogCameraDeadZoneWidth; + + [Tooltip("Dialog camera danger zone height between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _dialogCameraDeadZoneHeight; + + [Tooltip("Dialog camera soft zone width between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _dialogCameraSoftZoneWidth; + + [Tooltip("Dialog camera soft zone height between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _dialogCameraSoftZoneHeight; + + [Tooltip("Dialog camera bias X between 0 and 1.")] + [Range(-0.5f, 0.5f)] + [SerializeField] private float _dialogCameraBiasX; + + [Tooltip("Dialog camera bias Y between 0 and 1.")] + [Range(-0.5f, 0.5f)] + [SerializeField] private float _dialogCameraBiasY; + + #endregion + + + #region Properties + + public Camera CharacterCamera => _characterCamera; + public CinemachineFreeLook CharacterFreelookCamera => _characterFreelookCamera; + public CinemachineVirtualCamera CharacterTargetCamera => _characterTargetCamera; + public CinemachineVirtualCamera CharacterDialogCamera => _characterDialogCamera; + + public string CharacterCameraName => _characterCameraName; + public string CharacterFreelookCameraName => _characterFreelookCameraName; + public string CharacterTargetCameraName => _characterTargetCameraName; + public string CameraTargetName => _cameraTargetName; + public string CharacterDialogCameraName => _characterDialogCameraName; + + public float CharacterFreelookCameraBlendTime => _characterFreelookCameraBlendTime; + public float CHaracterTargetCameraBlendTime => _characterTargetameraBlendTime; + public float CHaracterDialogCameraBlendTIme => _characterDialogCameraBlendTime; + public float CameraTargetHeight => _cameraTargetHeight; + + public float FreeLookFieldOfView => _freeLookFieldOfView; + public float FreeLookNearClipPlane => _freeLookNearClipPlane; + public float FreeLookFarClipPlane => _freeLookFarClipPlane; + public float FreeLookDutch => _freeLookDutch; + + public float CameraSpeedX => _freeLookSpeedX; + public float CameraAccelerationLagX => _freeLookAccelerationLagX; + public float CameraDecelerationLagX => _freeLookDecelerationLagX; + public bool IsInvertedX => _isInvertedAxisX; + + public float CameraSpeedY => _freeLookSpeedY; + public float CameraAccelerationLagY => _freeLookAccelerationLagY; + public float CameraDecelerationLagY => _freeLookDecelerationLagY; + public bool IsInvertedY => _isInvertedAxisY; + + public float FreeLookSplineCurvature => _freeLookSplineCurvature; + public float CameraTopRigHeight => _freeLookTopRigHeight; + public float CameraTopRigRadius => _freeLookTopRigRadius; + public float CameraMiddleRigHeight => _freeLookMiddleRigHeight; + public float CameraMiddleRigRadius => _freeLookMiddleRigRadius; + public float CameraBottomRigHeight => _freeLookBottomRigHeight; + public float CameraBottomRigRadius => _freeLookBottomRigRadius; + + public float FreeLookTopRigBodyDampingY => _freeLookTopRigBodyDampingY; + public float FreeLookTopRigBodyDampingZ => _freeLookTopRigBodyDampingZ; + public float CameraTopRigOffsetY => _freeLookTopRigOffsetY; + public float CameraTopRigOffsetX => _freeLookTopRigOffsetX; + public float CameraTopRigOffsetZ => _freeLookTopRigOffsetZ; + public float FreeLookTopRigLookaheadTime => _freeLookTopRigLookaheadTime; + public float FreeLookTopRigLookaheadSmoothing => _freeLookTopRigLookaheadSmoothing; + public float FreeLookTopRigHorizontalDamping => _freeLookTopRigHorizontalDamping; + public float FreeLookTopRigVerticalDamping => _freeLookTopRigVerticalDamping; + public float FreeLookTopRigScreenX => _freeLookTopRigScreenX; + public float FreeLookTopRigScreenY => _freeLookTopRigScreenY; + public float CameraTopRigDeadZoneWidth => _freeLookTopRigDeadZoneWidth; + public float CameraTopRigDeadZoneHeight => _freeLookTopRigDeadZoneHeight; + public float CameraTopRigSoftZoneWidth => _freeLookTopRigSoftZoneWidth; + public float CameraTopRigSoftZoneHeight => _freeLookTopRigSoftZoneHeight; + public float FreeLookTopRigBiasX => _freeLookTopRigBiasX; + public float FreeLookTopRigBiasY => _freeLookTopRigBiasY; + + public float FreeLookMiddleRigBodyDampingY => _freeLookMiddleRigBodyDampingY; + public float FreeLookMiddleRigBodyDampingZ => _freeLookMiddleRigBodyDampingZ; + public float CameraMiddleRigOffsetY => _freeLookMiddleRigOffsetY; + public float CameraMiddleRigOffsetX => _freeLookMiddleRigOffsetX; + public float CameraMiddleRigOffsetZ => _freeLookMiddleRigOffsetZ; + public float FreeLookMiddleRigLookaheadTime => _freeLookMiddleRigLookaheadTime; + public float FreeLookMiddleRigLookaheadSmoothing => _freeLookMiddleRigLookaheadSmoothing; + public float FreeLookMiddleRigHorizontalDamping => _freeLookMiddleRigHorizontalDamping; + public float FreeLookMiddleRigVerticalDamping => _freeLookMiddleRigVerticalDamping; + public float FreeLookMiddleRigScreenX => _freeLookMiddleRigScreenX; + public float FreeLookMiddleRigScreenY => _freeLookMiddleRigScreenY; + public float CameraMiddleRigDeadZoneWidth => _freeLookMiddleRigDeadZoneWidth; + public float CameraMiddleRigDeadZoneHeight => _freeLookMiddleRigDeadZoneHeight; + public float CameraMiddleRigSoftZoneWidth => _freeLookMiddleRigSoftZoneWidth; + public float CameraMiddleRigSoftZoneHeight => _freeLookMiddleRigSoftZoneHeight; + public float FreeLookMiddleRigBiasX => _freeLookMiddleRigBiasX; + public float FreeLookMiddleRigBiasY => _freeLookMiddleRigBiasY; + + public float FreeLookBottomRigBodyDampingY => _freeLookBottomRigBodyDampingY; + public float FreeLookBottomRigBodyDampingZ => _freeLookBottomRigBodyDampingZ; + public float CameraBottomRigOffsetY => _freeLookBottomRigOffsetY; + public float CameraBottomRigOffsetX => _freeLookBottomRigOffsetX; + public float CameraBottomRigOffsetZ => _freeLookBottomRigOffsetZ; + public float FreeLookBottomRigLookaheadTime => _freeLookBottomRigLookaheadTime; + public float FreeLookBottomRigLookaheadSmoothing => _freeLookBottomRigLookaheadSmoothing; + public float FreeLookBottomRigHorizontalDamping => _freeLookBottomRigHorizontalDamping; + public float FreeLookBottomRigVerticalDamping => _freeLookBottomRigVerticalDamping; + public float FreeLookBottomRigScreenX => _freeLookBottomRigScreenX; + public float FreeLookBottomRigScreenY => _freeLookBottomRigScreenY; + public float CameraBottomRigDeadZoneWidth => _freeLookBottomRigDeadZoneWidth; + public float CameraBottomRigDeadZoneHeight => _freeLookBottomRigDeadZoneHeight; + public float CameraBottomRigSoftZoneWidth => _freeLookBottomRigSoftZoneWidth; + public float CameraBottomRigSoftZoneHeight => _freeLookBottomRigSoftZoneHeight; + public float FreeLookBottomRigBiasX => _freeLookBottomRigBiasX; + public float FreeLookBottomRigBiasY => _freeLookBottomRigBiasY; + + public float ColliderMinDistanceFromTarget => _colliderMinDistanceFromTarget; + public bool IsColliderAvoidingObstacles => _isColliderAvoidingObstacles; + public float ColliderDistanceLimit => _colliderDistanceLimit; + public float ColliderCameraRadius => _colliderCameraRadius; + public float ColliderDamping => _colliderDamping; + public float ColliderOptimalTargetDistance => _colliderOptimalTargetDistance; + + public float TargetCameraFieldOfView => _targetCameraFieldOfView; + public float TargetCameraNearClipPlane => _targetCameraNearClipPlane; + public float TargetCameraFarClipPlane => _targetCameraFarClipPlane; + public float TargetCameraDutch => _targetCameraDutch; + public float TargetCameraFollowOffsetX => _targetCameraFollowOffsetX; + public float TargetCameraFollowOffsetY => _targetCameraFollowOffsetY; + public float TargetCameraFollowOffsetZ => _targetCameraFollowOffsetZ; + public float TargetCameraDampingX => _targetCameraDampingX; + public float TargetCameraDampingY => _targetCameraDampingY; + public float TargetCameraDampingZ => _targetCameraDampingZ; + public float TargetCameraPitchDamping => _targetCameraPitchDamping; + public float TargetCameraYawDamping => _targetCameraYawDamping; + public float TargetCameraRollDamping => _targetCameraRollDamping; + public float TargetCameraTrackedOffsetX => _targetCameraTrackedOffsetX; + public float TargetCameraTrackedOffsetY => _targetCameraTrackedOffsetY; + public float TargetCameraTrackedOffsetZ => _targetCameraTrackedOffsetZ; + public float TargetCameraLookaheadTime => _targetCameraLookaheadTime; + public float TargetCameraLookaheadSmoothing => _targetCameraLookaheadSmoothing; + public float TargetCameraHorizontalDamping => _targetCameraHorizontalDamping; + public float TargetCameraVerticalDamping => _targetCameraVerticalDamping; + public float TargetCameraScreenX => _targetCameraScreenX; + public float TargetCameraScreenY => _targetCameraScreenY; + public float TargetCameraDeadZoneWidth => _targetCameraDeadZoneWidth; + public float TargetCameraDeadZoneHeight => _targetCameraDeadZoneHeight; + public float TargetCameraSoftZoneWidth => _targetCameraSoftZoneWidth; + public float TargetCameraSoftZoneHeight => _targetCameraSoftZoneHeight; + public float TargetCameraBiasX => _targetCameraBiasX; + public float TargetCameraBiasY => _targetCameraBiasY; + + public float DialogCameraFieldOfView => _dialogCameraFieldOfView; + public float DialogCameraNearClipPlane => _dialogCameraNearClipPlane; + public float DialogCameraFarClipPlane => _dialogCameraFarClipPlane; + public float DialogCameraDutch => _dialogCameraDutch; + public float DialogCameraFollowOffsetX => _dialogCameraFollowOffsetX; + public float DialogCameraFollowOffsetY => _dialogCameraFollowOffsetY; + public float DialogCameraFollowOffsetZ => _dialogCameraFollowOffsetZ; + public float DialogCameraDampingX => _dialogCameraDampingX; + public float DialogCameraDampingY => _dialogCameraDampingY; + public float DialogCameraDampingZ => _dialogCameraDampingZ; + public float DialogCameraPitchDamping => _dialogCameraPitchDamping; + public float DialogCameraYawDamping => _dialogCameraYawDamping; + public float DialogCameraRollDamping => _dialogCameraRollDamping; + public float DialogCameraTrackedOffsetX => _dialogCameraTrackedOffsetX; + public float DialogCameraTrackedOffsetY => _dialogCameraTrackedOffsetY; + public float DialogCameraTrackedOffsetZ => _dialogCameraTrackedOffsetZ; + public float DialogCameraLookaheadTime => _dialogCameraLookaheadTime; + public float DialogCameraLookaheadSmoothing => _dialogCameraLookaheadSmoothing; + public float DialogCameraHorizontalDamping => _dialogCameraHorizontalDamping; + public float DialogCameraVerticalDamping => _dialogCameraVerticalDamping; + public float DialogCameraScreenX => _dialogCameraScreenX; + public float DialogCameraScreenY => _dialogCameraScreenY; + public float DialogCameraDeadZoneWidth => _dialogCameraDeadZoneWidth; + public float DialogCameraDeadZoneHeight => _dialogCameraDeadZoneHeight; + public float DialogCameraSoftZoneWidth => _dialogCameraSoftZoneWidth; + public float DialogCameraSoftZoneHeight => _dialogCameraSoftZoneHeight; + public float DialogCameraBiasX => _dialogCameraBiasX; + public float DialogCameraBiasY => _dialogCameraBiasY; + + #endregion + + + #region Methods + + public CinemachineFreeLook.Orbit GetFreeCameraOrbit(int orbitNumber) + { + CinemachineFreeLook.Orbit orbit = new CinemachineFreeLook.Orbit(); + + if (orbitNumber >= 0 && orbitNumber < 3) + { + switch (orbitNumber) + { + case 0: + orbit.m_Height = CameraBottomRigHeight; + orbit.m_Radius = CameraBottomRigRadius; + break; + case 1: + orbit.m_Height = CameraMiddleRigHeight; + orbit.m_Radius = CameraMiddleRigRadius; + break; + case 2: + orbit.m_Height = CameraTopRigHeight; + orbit.m_Radius = CameraTopRigRadius; + break; + default: + break; + } + } + + return orbit; + } + + public CinemachineOrbitalTransposer GetFreeCameraOrbitalTransposer(int rigNumber) + { + CinemachineOrbitalTransposer orbitalTransposer = new CinemachineOrbitalTransposer(); + + if(rigNumber >= 0 && rigNumber < 3) + { + switch (rigNumber) + { + case 0: + orbitalTransposer.m_YDamping = FreeLookBottomRigBodyDampingY; + orbitalTransposer.m_ZDamping = FreeLookBottomRigBodyDampingZ; + break; + case 1: + orbitalTransposer.m_YDamping = FreeLookMiddleRigBodyDampingY; + orbitalTransposer.m_ZDamping = FreeLookMiddleRigBodyDampingZ; + break; + case 2: + orbitalTransposer.m_YDamping = FreeLookTopRigBodyDampingY; + orbitalTransposer.m_ZDamping = FreeLookTopRigBodyDampingZ; + break; + default: + break; + } + } + + return orbitalTransposer; + } + + public CinemachineComposer GetFreeCameraComposer(int rigNumber) + { + CinemachineComposer composer = new CinemachineComposer(); + + if (rigNumber >= 0 && rigNumber < 3) + { + switch (rigNumber) + { + case 0: + composer.m_TrackedObjectOffset.x = CameraBottomRigOffsetX; + composer.m_TrackedObjectOffset.y = CameraBottomRigOffsetY; + composer.m_TrackedObjectOffset.z = CameraBottomRigOffsetZ; + composer.m_LookaheadTime = FreeLookBottomRigLookaheadTime; + composer.m_LookaheadSmoothing = FreeLookBottomRigLookaheadSmoothing; + composer.m_HorizontalDamping = FreeLookBottomRigHorizontalDamping; + composer.m_VerticalDamping = FreeLookBottomRigVerticalDamping; + composer.m_ScreenX = FreeLookBottomRigScreenX; + composer.m_ScreenY = FreeLookBottomRigScreenY; + composer.m_DeadZoneWidth = CameraBottomRigDeadZoneWidth; + composer.m_DeadZoneHeight = CameraBottomRigDeadZoneHeight; + composer.m_SoftZoneWidth = CameraBottomRigSoftZoneWidth; + composer.m_SoftZoneHeight = CameraBottomRigSoftZoneHeight; + composer.m_BiasX = FreeLookBottomRigBiasX; + composer.m_BiasY = FreeLookBottomRigBiasY; + break; + case 1: + composer.m_TrackedObjectOffset.x = CameraMiddleRigOffsetX; + composer.m_TrackedObjectOffset.y = CameraMiddleRigOffsetY; + composer.m_TrackedObjectOffset.z = CameraMiddleRigOffsetZ; + composer.m_LookaheadTime = FreeLookMiddleRigLookaheadTime; + composer.m_LookaheadSmoothing = FreeLookMiddleRigLookaheadSmoothing; + composer.m_HorizontalDamping = FreeLookMiddleRigHorizontalDamping; + composer.m_VerticalDamping = FreeLookMiddleRigVerticalDamping; + composer.m_ScreenX = FreeLookMiddleRigScreenX; + composer.m_ScreenY = FreeLookMiddleRigScreenY; + composer.m_DeadZoneWidth = CameraMiddleRigDeadZoneWidth; + composer.m_DeadZoneHeight = CameraMiddleRigDeadZoneHeight; + composer.m_SoftZoneWidth = CameraMiddleRigSoftZoneWidth; + composer.m_SoftZoneHeight = CameraMiddleRigSoftZoneHeight; + composer.m_BiasX = FreeLookMiddleRigBiasX; + composer.m_BiasY = FreeLookMiddleRigBiasY; + break; + case 2: + composer.m_TrackedObjectOffset.x = CameraTopRigOffsetX; + composer.m_TrackedObjectOffset.y = CameraTopRigOffsetY; + composer.m_TrackedObjectOffset.z = CameraTopRigOffsetZ; + composer.m_LookaheadTime = FreeLookTopRigLookaheadTime; + composer.m_LookaheadSmoothing = FreeLookTopRigLookaheadSmoothing; + composer.m_HorizontalDamping = FreeLookTopRigHorizontalDamping; + composer.m_VerticalDamping = FreeLookTopRigVerticalDamping; + composer.m_ScreenX = FreeLookTopRigScreenX; + composer.m_ScreenY = FreeLookTopRigScreenY; + composer.m_DeadZoneWidth = CameraTopRigDeadZoneWidth; + composer.m_DeadZoneHeight = CameraTopRigDeadZoneHeight; + composer.m_SoftZoneWidth = CameraTopRigSoftZoneWidth; + composer.m_SoftZoneHeight = CameraTopRigSoftZoneHeight; + composer.m_BiasX = FreeLookTopRigBiasX; + composer.m_BiasY = FreeLookTopRigBiasY; + break; + default: + break; + } + } + + return composer; + } + + public void SaveCameraSettings(CinemachineFreeLook freeLookCamera, CinemachineVirtualCamera targetCamera, + CinemachineVirtualCamera dialogCamera) + { + if (freeLookCamera == null || targetCamera == null || dialogCamera == null) + { + throw new NullReferenceException("Can't save camera settings, some cameras are null!"); + } + + CinemachineComposer bottomComposer = freeLookCamera.GetRig(0).GetCinemachineComponent(); + CinemachineComposer middleComposer = freeLookCamera.GetRig(1).GetCinemachineComponent(); + CinemachineComposer topComposer = freeLookCamera.GetRig(2).GetCinemachineComponent(); + CinemachineCollider collider = freeLookCamera.GetComponent(); + + CinemachineFreeLook.Orbit bottomOrbit = freeLookCamera.m_Orbits[0]; + CinemachineFreeLook.Orbit middleOrbit = freeLookCamera.m_Orbits[1]; + CinemachineFreeLook.Orbit topOrbit = freeLookCamera.m_Orbits[2]; + + CinemachineTransposer targetTransposer = targetCamera.GetCinemachineComponent(); + CinemachineComposer targetComposer = targetCamera.GetCinemachineComponent(); + CinemachineTransposer dialogTransposer = dialogCamera.GetCinemachineComponent(); + CinemachineComposer dialogComposer = dialogCamera.GetCinemachineComponent(); + + _isInvertedAxisX = freeLookCamera.m_XAxis.m_InvertAxis; + _isInvertedAxisY = freeLookCamera.m_YAxis.m_InvertAxis; + + _freeLookSpeedX = freeLookCamera.m_XAxis.m_MaxSpeed; + _freeLookAccelerationLagX = freeLookCamera.m_XAxis.m_AccelTime; + _freeLookDecelerationLagX = freeLookCamera.m_XAxis.m_DecelTime; + + _freeLookSpeedY = freeLookCamera.m_YAxis.m_MaxSpeed; + _freeLookAccelerationLagY = freeLookCamera.m_YAxis.m_AccelTime; + _freeLookDecelerationLagY = freeLookCamera.m_YAxis.m_DecelTime; + + _freeLookBottomRigHeight = bottomOrbit.m_Height; + _freeLookBottomRigRadius = bottomOrbit.m_Radius; + _freeLookMiddleRigHeight = middleOrbit.m_Height; + _freeLookMiddleRigRadius = middleOrbit.m_Radius; + _freeLookTopRigHeight = topOrbit.m_Height; + _freeLookTopRigRadius = topOrbit.m_Radius; + + _freeLookBottomRigOffsetY = bottomComposer.m_TrackedObjectOffset.y; + _freeLookBottomRigDeadZoneHeight = bottomComposer.m_DeadZoneHeight; + _freeLookBottomRigDeadZoneWidth = bottomComposer.m_DeadZoneWidth; + _freeLookBottomRigSoftZoneHeight = bottomComposer.m_SoftZoneHeight; + _freeLookBottomRigSoftZoneWidth = bottomComposer.m_SoftZoneWidth; + + _freeLookMiddleRigOffsetY = middleComposer.m_TrackedObjectOffset.y; + _freeLookMiddleRigDeadZoneHeight = middleComposer.m_DeadZoneHeight; + _freeLookMiddleRigDeadZoneWidth = middleComposer.m_DeadZoneWidth; + _freeLookMiddleRigSoftZoneHeight = middleComposer.m_SoftZoneHeight; + _freeLookMiddleRigSoftZoneWidth = middleComposer.m_SoftZoneWidth; + + _freeLookTopRigOffsetY = topComposer.m_TrackedObjectOffset.y; + _freeLookTopRigDeadZoneHeight = topComposer.m_DeadZoneHeight; + _freeLookTopRigDeadZoneWidth = topComposer.m_DeadZoneWidth; + _freeLookTopRigSoftZoneHeight = topComposer.m_SoftZoneHeight; + _freeLookTopRigSoftZoneWidth = topComposer.m_SoftZoneWidth; + + _colliderMinDistanceFromTarget = collider.m_MinimumDistanceFromTarget; + _isColliderAvoidingObstacles = collider.m_AvoidObstacles; + _colliderDistanceLimit = collider.m_DistanceLimit; + _colliderCameraRadius = collider.m_CameraRadius; + _colliderDamping = collider.m_Damping; + _colliderOptimalTargetDistance = collider.m_OptimalTargetDistance; + + _targetCameraFieldOfView = targetCamera.m_Lens.FieldOfView; + _targetCameraNearClipPlane = targetCamera.m_Lens.NearClipPlane; + _targetCameraFarClipPlane = targetCamera.m_Lens.FarClipPlane; + _targetCameraDutch = targetCamera.m_Lens.Dutch; + _targetCameraFollowOffsetX = targetTransposer.m_FollowOffset.x; + _targetCameraFollowOffsetY = targetTransposer.m_FollowOffset.y; + _targetCameraFollowOffsetZ = targetTransposer.m_FollowOffset.z; + _targetCameraDampingX = targetTransposer.m_XDamping; + _targetCameraDampingY = targetTransposer.m_YDamping; + _targetCameraDampingZ = targetTransposer.m_ZDamping; + _targetCameraPitchDamping = targetTransposer.m_PitchDamping; + _targetCameraYawDamping = targetTransposer.m_YawDamping; + _targetCameraRollDamping = targetTransposer.m_RollDamping; + _targetCameraTrackedOffsetX = targetComposer.m_TrackedObjectOffset.x; + _targetCameraTrackedOffsetY = targetComposer.m_TrackedObjectOffset.y; + _targetCameraTrackedOffsetZ = targetComposer.m_TrackedObjectOffset.z; + _targetCameraLookaheadTime = targetComposer.m_LookaheadTime; + _targetCameraLookaheadSmoothing = targetComposer.m_LookaheadSmoothing; + _targetCameraHorizontalDamping = targetComposer.m_HorizontalDamping; + _targetCameraVerticalDamping = targetComposer.m_VerticalDamping; + _targetCameraScreenX = targetComposer.m_ScreenX; + _targetCameraScreenY = targetComposer.m_ScreenY; + _targetCameraDeadZoneWidth = targetComposer.m_DeadZoneWidth; + _targetCameraDeadZoneHeight = targetComposer.m_DeadZoneHeight; + _targetCameraSoftZoneWidth = targetComposer.m_SoftZoneWidth; + _targetCameraSoftZoneHeight = targetComposer.m_SoftZoneHeight; + _targetCameraBiasX = targetComposer.m_BiasX; + _targetCameraBiasY = targetComposer.m_BiasY; + + _dialogCameraFieldOfView = dialogCamera.m_Lens.FieldOfView; + _dialogCameraNearClipPlane = dialogCamera.m_Lens.NearClipPlane; + _dialogCameraFarClipPlane = dialogCamera.m_Lens.FarClipPlane; + _dialogCameraDutch = dialogCamera.m_Lens.Dutch; + _dialogCameraFollowOffsetX = dialogTransposer.m_FollowOffset.x; + _dialogCameraFollowOffsetY = dialogTransposer.m_FollowOffset.y; + _dialogCameraFollowOffsetZ = dialogTransposer.m_FollowOffset.z; + _dialogCameraDampingX = dialogTransposer.m_XDamping; + _dialogCameraDampingY = dialogTransposer.m_YDamping; + _dialogCameraDampingZ = dialogTransposer.m_ZDamping; + _dialogCameraPitchDamping = dialogTransposer.m_PitchDamping; + _dialogCameraYawDamping = dialogTransposer.m_YawDamping; + _dialogCameraRollDamping = dialogTransposer.m_RollDamping; + _dialogCameraTrackedOffsetX = dialogComposer.m_TrackedObjectOffset.x; + _dialogCameraTrackedOffsetY = dialogComposer.m_TrackedObjectOffset.y; + _dialogCameraTrackedOffsetZ = dialogComposer.m_TrackedObjectOffset.z; + _dialogCameraLookaheadTime = dialogComposer.m_LookaheadTime; + _dialogCameraLookaheadSmoothing = dialogComposer.m_LookaheadSmoothing; + _dialogCameraHorizontalDamping = dialogComposer.m_HorizontalDamping; + _dialogCameraVerticalDamping = dialogComposer.m_VerticalDamping; + _dialogCameraScreenX = dialogComposer.m_ScreenX; + _dialogCameraScreenY = dialogComposer.m_ScreenY; + _dialogCameraDeadZoneWidth = dialogComposer.m_DeadZoneWidth; + _dialogCameraDeadZoneHeight = dialogComposer.m_DeadZoneHeight; + _dialogCameraSoftZoneWidth = dialogComposer.m_SoftZoneWidth; + _dialogCameraSoftZoneHeight = dialogComposer.m_SoftZoneHeight; + _dialogCameraBiasX = dialogComposer.m_BiasX; + _dialogCameraBiasY = dialogComposer.m_BiasY; + } + + public Camera CreateCharacterCamera() + { + Camera characterCamera = GameObject.Instantiate(CharacterCamera); + characterCamera.name = CharacterCameraName; + return characterCamera; + } + + public CinemachineFreeLook CreateCharacterFreelookCamera(Transform targetTransform) + { + CinemachineFreeLook characterFreelookCamera = GameObject.Instantiate(CharacterFreelookCamera); + characterFreelookCamera.name = CharacterFreelookCameraName; + + characterFreelookCamera.Follow = targetTransform; + characterFreelookCamera.LookAt = targetTransform; + + characterFreelookCamera.m_Lens.FieldOfView = FreeLookFieldOfView; + characterFreelookCamera.m_Lens.NearClipPlane = FreeLookNearClipPlane; + characterFreelookCamera.m_Lens.FarClipPlane = FreeLookFarClipPlane; + characterFreelookCamera.m_Lens.Dutch = FreeLookDutch; + + characterFreelookCamera.m_XAxis.m_InvertAxis = IsInvertedX; + characterFreelookCamera.m_XAxis.m_MaxSpeed = CameraSpeedX; + characterFreelookCamera.m_XAxis.m_AccelTime = CameraAccelerationLagX; + characterFreelookCamera.m_XAxis.m_DecelTime = CameraDecelerationLagX; + + characterFreelookCamera.m_YAxis.m_InvertAxis = IsInvertedY; + characterFreelookCamera.m_YAxis.m_MaxSpeed = CameraSpeedY; + characterFreelookCamera.m_YAxis.m_AccelTime = CameraAccelerationLagY; + characterFreelookCamera.m_YAxis.m_DecelTime = CameraDecelerationLagY; + + characterFreelookCamera.m_SplineCurvature = FreeLookSplineCurvature; + + for (var rig = 0; rig < 3; rig++) + { + CinemachineVirtualCamera cinemachineRig = characterFreelookCamera.GetRig(rig); + cinemachineRig.LookAt = targetTransform; + + CinemachineOrbitalTransposer transposerFromData = GetFreeCameraOrbitalTransposer(rig); + CinemachineOrbitalTransposer transposerFromCamera = cinemachineRig. + GetCinemachineComponent(); + + transposerFromCamera.m_YDamping = transposerFromData.m_YDamping; + transposerFromCamera.m_ZDamping = transposerFromData.m_ZDamping; + + CinemachineComposer composerFromData = GetFreeCameraComposer(rig); + CinemachineComposer composerFromCamera = cinemachineRig.GetCinemachineComponent(); + + composerFromCamera.m_TrackedObjectOffset.x = composerFromData.m_TrackedObjectOffset.x; + composerFromCamera.m_TrackedObjectOffset.y = composerFromData.m_TrackedObjectOffset.y; + composerFromCamera.m_TrackedObjectOffset.z = composerFromData.m_TrackedObjectOffset.z; + composerFromCamera.m_LookaheadTime = composerFromData.m_LookaheadTime; + composerFromCamera.m_LookaheadSmoothing = composerFromData.m_LookaheadSmoothing; + composerFromCamera.m_HorizontalDamping = composerFromData.m_HorizontalDamping; + composerFromCamera.m_VerticalDamping = composerFromData.m_VerticalDamping; + composerFromCamera.m_ScreenX = composerFromData.m_ScreenX; + composerFromCamera.m_ScreenY = composerFromData.m_ScreenY; + composerFromCamera.m_DeadZoneWidth = composerFromData.m_DeadZoneWidth; + composerFromCamera.m_DeadZoneHeight = composerFromData.m_DeadZoneHeight; + composerFromCamera.m_SoftZoneWidth = composerFromData.m_SoftZoneWidth; + composerFromCamera.m_SoftZoneHeight = composerFromData.m_SoftZoneHeight; + composerFromCamera.m_BiasX = composerFromData.m_BiasX; + composerFromCamera.m_BiasY = composerFromData.m_BiasY; + + CinemachineFreeLook.Orbit currentOrbit = GetFreeCameraOrbit(rig); + characterFreelookCamera.m_Orbits[rig] = currentOrbit; + } + + CinemachineCollider colliderFromCamera = characterFreelookCamera.GetComponent(); + colliderFromCamera.m_MinimumDistanceFromTarget = ColliderMinDistanceFromTarget; + colliderFromCamera.m_AvoidObstacles = IsColliderAvoidingObstacles; + colliderFromCamera.m_DistanceLimit = ColliderDistanceLimit; + colliderFromCamera.m_CameraRadius = ColliderCameraRadius; + colliderFromCamera.m_Damping = ColliderDamping; + colliderFromCamera.m_OptimalTargetDistance = ColliderOptimalTargetDistance; + + return characterFreelookCamera; + } + + public CinemachineVirtualCamera CreateCharacterTargetCamera(Transform targetTransform) + { + CinemachineVirtualCamera characterTargetCamera = GameObject.Instantiate(CharacterTargetCamera); + characterTargetCamera.name = CharacterTargetCameraName; + + characterTargetCamera.Follow = targetTransform; + characterTargetCamera.LookAt = targetTransform; + + characterTargetCamera.m_Lens.FieldOfView = TargetCameraFieldOfView; + characterTargetCamera.m_Lens.NearClipPlane = TargetCameraNearClipPlane; + characterTargetCamera.m_Lens.FarClipPlane = TargetCameraFarClipPlane; + characterTargetCamera.m_Lens.Dutch = TargetCameraDutch; + + CinemachineTransposer targetTransposer = characterTargetCamera. + GetCinemachineComponent(); + + targetTransposer.m_FollowOffset.x = TargetCameraFollowOffsetX; + targetTransposer.m_FollowOffset.y = TargetCameraFollowOffsetY; + targetTransposer.m_FollowOffset.z = TargetCameraFollowOffsetZ; + + targetTransposer.m_XDamping = TargetCameraDampingX; + targetTransposer.m_YDamping = TargetCameraDampingY; + targetTransposer.m_ZDamping = TargetCameraDampingZ; + targetTransposer.m_PitchDamping = TargetCameraPitchDamping; + targetTransposer.m_YawDamping = TargetCameraYawDamping; + targetTransposer.m_RollDamping = TargetCameraRollDamping; + + CinemachineComposer targetComposer = characterTargetCamera. + GetCinemachineComponent(); + + targetComposer.m_TrackedObjectOffset.x = TargetCameraTrackedOffsetX; + targetComposer.m_TrackedObjectOffset.y = TargetCameraTrackedOffsetY; + targetComposer.m_TrackedObjectOffset.z = TargetCameraTrackedOffsetZ; + targetComposer.m_LookaheadTime = TargetCameraLookaheadTime; + targetComposer.m_LookaheadSmoothing = TargetCameraLookaheadSmoothing; + targetComposer.m_HorizontalDamping = TargetCameraHorizontalDamping; + targetComposer.m_VerticalDamping = TargetCameraVerticalDamping; + targetComposer.m_ScreenX = TargetCameraScreenX; + targetComposer.m_ScreenY = TargetCameraScreenY; + targetComposer.m_DeadZoneWidth = TargetCameraDeadZoneWidth; + targetComposer.m_DeadZoneHeight = TargetCameraDeadZoneHeight; + targetComposer.m_SoftZoneWidth = TargetCameraSoftZoneWidth; + targetComposer.m_SoftZoneHeight = TargetCameraSoftZoneHeight; + targetComposer.m_BiasX = TargetCameraBiasX; + targetComposer.m_BiasY = TargetCameraBiasY; + + return characterTargetCamera; + } + + public CinemachineVirtualCamera CreateCharacterDialogCamera(Transform targetTransform) + { + CinemachineVirtualCamera characterDialogCamera = GameObject.Instantiate(CharacterDialogCamera); + characterDialogCamera.name = CharacterDialogCameraName; + + characterDialogCamera.Follow = targetTransform; + characterDialogCamera.LookAt = targetTransform; + + characterDialogCamera.m_Lens.FieldOfView = DialogCameraFieldOfView; + characterDialogCamera.m_Lens.NearClipPlane = DialogCameraNearClipPlane; + characterDialogCamera.m_Lens.FarClipPlane = DialogCameraFarClipPlane; + characterDialogCamera.m_Lens.Dutch = DialogCameraDutch; + + CinemachineTransposer dialogTransposer = characterDialogCamera. + GetCinemachineComponent(); + + dialogTransposer.m_FollowOffset.x = DialogCameraFollowOffsetX; + dialogTransposer.m_FollowOffset.y = DialogCameraFollowOffsetY; + dialogTransposer.m_FollowOffset.z = DialogCameraFollowOffsetZ; + + dialogTransposer.m_XDamping = DialogCameraDampingX; + dialogTransposer.m_YDamping = DialogCameraDampingY; + dialogTransposer.m_ZDamping = DialogCameraDampingZ; + dialogTransposer.m_PitchDamping = DialogCameraPitchDamping; + dialogTransposer.m_YawDamping = DialogCameraYawDamping; + dialogTransposer.m_RollDamping = DialogCameraRollDamping; + + CinemachineComposer dialogComposer = characterDialogCamera. + GetCinemachineComponent(); + + dialogComposer.m_TrackedObjectOffset.x = DialogCameraTrackedOffsetX; + dialogComposer.m_TrackedObjectOffset.y = DialogCameraTrackedOffsetY; + dialogComposer.m_TrackedObjectOffset.z = DialogCameraTrackedOffsetZ; + dialogComposer.m_LookaheadTime = DialogCameraLookaheadTime; + dialogComposer.m_LookaheadSmoothing = DialogCameraLookaheadSmoothing; + dialogComposer.m_HorizontalDamping = DialogCameraHorizontalDamping; + dialogComposer.m_VerticalDamping = DialogCameraVerticalDamping; + dialogComposer.m_ScreenX = DialogCameraScreenX; + dialogComposer.m_ScreenY = DialogCameraScreenY; + dialogComposer.m_DeadZoneWidth = DialogCameraDeadZoneWidth; + dialogComposer.m_DeadZoneHeight = DialogCameraDeadZoneHeight; + dialogComposer.m_SoftZoneWidth = DialogCameraSoftZoneWidth; + dialogComposer.m_SoftZoneHeight = DialogCameraSoftZoneHeight; + dialogComposer.m_BiasX = DialogCameraBiasX; + dialogComposer.m_BiasY = DialogCameraBiasY; + + return characterDialogCamera; + } + + #endregion + } +} + + diff --git a/Assets/Scripts/To_Refactoring/Character/CharacterCameraStruct.cs.meta b/Assets/Scripts/To_Refactoring/Character/CharacterCameraStruct.cs.meta new file mode 100644 index 000000000..ace996fa2 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/CharacterCameraStruct.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ab1e6553cd2d4254cb71c653e4d225ed +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/CharacterCommonSettingsStruct.cs b/Assets/Scripts/To_Refactoring/Character/CharacterCommonSettingsStruct.cs new file mode 100644 index 000000000..93df48c51 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/CharacterCommonSettingsStruct.cs @@ -0,0 +1,278 @@ +using UnityEngine; +using System; + + +namespace BeastHunter +{ + [Serializable] + public struct CharacterCommonSettingsStruct + { + #region Fields + + [Header("Scene information fields")] + + [Tooltip("Character prefab.")] + [SerializeField] private GameObject _prefab; + + [Tooltip("Character instance name.")] + [SerializeField] private string _instanceName; + + [Tooltip("Character instance tag.")] + [SerializeField] private string _instanceTag; + + [Tooltip("Character instance layer.")] + [SerializeField] private int _instanceLayer; + + [Tooltip("Character default movement runtime animator controller.")] + [SerializeField] private RuntimeAnimatorController _characterAnimator; + + [Tooltip("Vector 3 prefab position on the scene")] + [SerializeField] private Vector3 _instantiatePosition; + + [Tooltip("Prefab direction on the scene")] + [SerializeField] private float _instantiateDirection; + + [Header("Prefab rigitbody information fields")] + + [Tooltip("Character rigitbody mass between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _rigitbodyMass; + + [Tooltip("Character rigitbody drag between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _rigitbodyDrag; + + [Tooltip("Character rigitbody angular drag between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _rigitbodyAngularDrag; + + [Header("Prefab capsule collider information fields")] + + [Tooltip("Capsule collider center position")] + [SerializeField] private Vector3 _capsuleColliderCenter; + + [Tooltip("Capsule collider radius between 0 and 2.")] + [Range(0.0f, 2.0f)] + [SerializeField] private float _capsuleColliderRadius; + + [Tooltip("Capsule collider height between 0 and 5.")] + [Range(0.0f, 5.0f)] + [SerializeField] private float _capsuleColliderHeight; + + [Header("Prefab sphere trigger information fields")] + + [Tooltip("Sphere trigger center position")] + [SerializeField] private Vector3 _sphereColliderCenter; + + [Tooltip("Sphere trigger radius between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _sphereColliderRadius; + + [Tooltip("Sphere trigger radius increace in battle between 1 and 2.")] + [Range(1f, 2f)] + [SerializeField] private float _sphereColliderRadiusIncrease; + + [Header("Movement settings")] + + [Tooltip("Health points between 0 and 100.")] + [Range(0.0f, 100.0f)] + [SerializeField] private float _healthPoints; + + [Tooltip("Walk speed value between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _walkSpeed; + + [Tooltip("Run speed value between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _runSpeed; + + [Tooltip("Walk speed in battle value between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _inBattleWalkSpeed; + + [Tooltip("Run speed in battle value between 0 and 20.")] + [Range(0.0f, 20.0f)] + [SerializeField] private float _inBattleRunSpeed; + + [Tooltip("Jump horizontal force between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _jumpHorizontalForce; + + [Tooltip("Jump vertical force between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _jumpVerticalForce; + + [Tooltip("Ground check height under character between 0 and 2.")] + [Range(0.0f, 2.0f)] + [SerializeField] private float _groundCheckHeight; + + [Tooltip("Ground check height reduction while jumping between 0 and 2.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _groundCheckHeightReduction; + + [Tooltip("Character speed measuring time frame between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _speedMeasureFrame; + + [Tooltip("Character acceleration lag between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _accelerationLag; + + [Tooltip("Character deceleraton lag between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _decelerationLag; + + [Tooltip("Character acceleration lag between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _inBattleAccelerationLag; + + [Tooltip("Character deceleraton lag between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _inBattleDecelerationLag; + + [Tooltip("Character direction change lag between 0 and 1.")] + [Range(0.0f, 1.0f)] + [SerializeField] private float _directionChangeLag; + + [Tooltip("Base animator speed between 0 and 2.")] + [Range(0.0f, 2.0f)] + [SerializeField] private float _animatorBaseSpeed; + + [Header("Character battle settings")] + + [Tooltip("Target mark prefab.")] + [SerializeField] private GameObject _targetPrefab; + + [Tooltip("Target mark height above.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _targetMarkHeight; + + [Tooltip("Target mark name")] + [SerializeField] private string _targetMarkName; + + [Tooltip("Battle ignore time between 0 and 1-0.")] + [Range(0.0f, 100.0f)] + [SerializeField] private float _battleIgnoreTime; + + [Tooltip("Path of the left hand object of prefab")] + [SerializeField] private string _leftHandObjectPath; + + [Tooltip("Path of the right hand object of prefab")] + [SerializeField] private string _rightHandObjectPath; + + [Tooltip("Path of the left foot object of prefab")] + [SerializeField] private string _leftFootObjectPath; + + [Tooltip("Left foot hit box radius between 0 and 50.")] + [Range(0.0f, 50.0f)] + [SerializeField] private float _leftFootHitBoxRadius; + + [Tooltip("Path of the right foot object of prefab")] + [SerializeField] private string _rightFootObjectPath; + + [Tooltip("Right foot hit box radius between 0 and 50.")] + [Range(0.0f, 50.0f)] + [SerializeField] private float _rightFootHitBoxRadius; + + [Tooltip("Actual rolling time between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _rollTime; + + [Tooltip("Actual roll distance between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _rollFrameDistance; + + [Tooltip("Actual roll speed between 0 and 10.")] + [Range(0.0f, 10.0f)] + [SerializeField] private float _rollAnimationSpeed; + + #endregion + + + #region Properties + + public GameObject Prefab => _prefab; + public GameObject TargetPrefab => _targetPrefab; + + public RuntimeAnimatorController CharacterAnimator => _characterAnimator; + + public Vector3 InstantiatePosition => _instantiatePosition; + public Vector3 CapsuleColliderCenter => _capsuleColliderCenter; + public Vector3 SphereColliderCenter => _sphereColliderCenter; + + public string InstanceName => _instanceName; + public string InstanceTag => _instanceTag; + public int InstanceLayer => _instanceLayer; + + public float InstantiateDirection => _instantiateDirection; + public float RigitbodyMass => _rigitbodyMass; + public float RigitbodyDrag => _rigitbodyDrag; + public float RigitbodyAngularDrag => _rigitbodyAngularDrag; + + public float CapsuleColliderRadius => _capsuleColliderRadius; + public float CapsuleColliderHeight => _capsuleColliderHeight; + public float SphereColliderRadius => _sphereColliderRadius; + public float SphereColliderRadiusIncrease => _sphereColliderRadiusIncrease; + + public float HealthPoints => _healthPoints; + public float WalkSpeed => _walkSpeed; + public float RunSpeed => _runSpeed; + public float InBattleWalkSpeed => _inBattleWalkSpeed; + public float InBattleRunSpeed => _inBattleRunSpeed; + public float JumpHorizontalForce => _jumpHorizontalForce; + public float JumpVerticalForce => _jumpVerticalForce; + public float GroundCheckHeight => _groundCheckHeight; + public float GroundCHeckHeightReduction => _groundCheckHeightReduction; + public float SpeedMeasureFrame => _speedMeasureFrame; + public float AccelerationLag => _accelerationLag; + public float DecelerationLag => _decelerationLag; + public float InBattleAccelerationLag => _inBattleAccelerationLag; + public float InBattleDecelerationLag => _inBattleDecelerationLag; + public float DirectionChangeLag => _directionChangeLag; + public float AnimatorBaseSpeed => _animatorBaseSpeed; + + public float TargetMarkHeight => _targetMarkHeight; + public float BattleIgnoreTime => _battleIgnoreTime; + public string TargetMarkName => _targetMarkName; + + public string LeftHandObjectPath => _leftHandObjectPath; + public string RightHandObjectPath => _rightHandObjectPath; + public string LeftFootObjectPath => _leftFootObjectPath; + public string RightFootObjectPath => _rightFootObjectPath; + + public float LeftFootHitBoxRadius => _leftFootHitBoxRadius; + public float RightFootHitBoxRadius => _rightFootHitBoxRadius; + + public float RollTime => _rollTime; + public float RollFrameDistance => _rollFrameDistance; + public float RollAnimationSpeed => _rollAnimationSpeed; + + #endregion + + + #region Methods + + public GameObject CreateTargetMark(Transform characterTransform, Vector3 basePosition) + { + GameObject targetMark = GameObject.Instantiate(TargetPrefab); + targetMark.name = TargetMarkName; + + targetMark.transform.SetParent(characterTransform); + targetMark.transform.localPosition = Vector3.zero; + targetMark.transform.localRotation = Quaternion.Euler(0, 0, 0); + targetMark.transform.localPosition = Vector3.zero; + targetMark.transform.localEulerAngles = new Vector3(90, 0, 0); + targetMark.SetActive(false); + + return targetMark; + } + + public void SetTargetMarkBasePosition(Transform characterTransform, Transform targetMarkTransform) + { + targetMarkTransform.localPosition = Vector3.zero; + targetMarkTransform.gameObject.SetActive(false); + } + + #endregion + } +} diff --git a/Assets/Scripts/To_Refactoring/Character/CharacterCommonSettingsStruct.cs.meta b/Assets/Scripts/To_Refactoring/Character/CharacterCommonSettingsStruct.cs.meta new file mode 100644 index 000000000..1ef632f41 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/CharacterCommonSettingsStruct.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0056d1ebd4eceea4e873caece12487d1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/CharacterController.cs b/Assets/Scripts/To_Refactoring/Character/CharacterController.cs new file mode 100644 index 000000000..2e08e8b46 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/CharacterController.cs @@ -0,0 +1,607 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public sealed class CharacterController : IAwake, IUpdate, ITearDown, IDealDamage + { + #region Fields + + private CharacterModel _characterModel; + private InputModel _inputModel; + + private readonly GameContext _context; + private Services _services; + private CharacterStateMachine _stateMachine; + private CharacterAnimationController _animationController; + + private Vector3 _groundHit; + private Vector3 _lastPosition; + private Vector3 _currentPosition; + + private float _speedCountTime; + private float _speedCountFrame; + private float _currentHealth; + private float _currentBattleIgnoreTime; + + #endregion + + + #region ClassLifeCycle + + public CharacterController(GameContext context) + { + _context = context; + _inputModel = _context.InputModel; + _services = Services.SharedInstance; + } + + #endregion + + + #region OnAwake + + public void OnAwake() + { + Cursor.visible = false; + Cursor.lockState = CursorLockMode.Locked; + + _characterModel = _context.CharacterModel; + _animationController = new CharacterAnimationController(_characterModel.CharacterAnimator); + + _speedCountFrame = _characterModel.CharacterCommonSettings.SpeedMeasureFrame; + _lastPosition = _characterModel.CharacterTransform.position; + _currentPosition = _lastPosition; + _currentHealth = _characterModel.CharacterCommonSettings.HealthPoints; + _currentBattleIgnoreTime = 0; + + _stateMachine = new CharacterStateMachine(_inputModel, _characterModel, _animationController); + _stateMachine.SetStartState(_stateMachine._defaultIdleState); + + _inputModel.OnJump += SetJumpingState; + _inputModel.OnBattleExit += ExitBattle; + _inputModel.OnTargetLock += ChangeTargetMode; + _inputModel.OnAttackLeft += SetAttackingLeftState; + _inputModel.OnAttackRight += SetAttackingRightState; + _inputModel.OnDance += ChangeDancingState; + + _characterModel.PlayerBehavior.OnFilterHandler += OnFilterHandler; + _characterModel.PlayerBehavior.OnTriggerEnterHandler += OnTriggerEnterHandler; + _characterModel.PlayerBehavior.OnTriggerExitHandler += OnTriggerExitHandler; + _characterModel.PlayerBehavior.OnTakeDamageHandler += TakeDamage; + + _stateMachine.OnStateChangeHandler += OnStateChange; + LockCharAction.LockCharacterMovement += SetTalkingState; + + SetRightWeapon(_services.InventoryService.GetAllWeapons()[0]); + //SetLeftWeapon(_services.InventoryService.Feast); + //SetRightWeapon(_services.InventoryService.Feast); + _services.InventoryService.HideWepons(_characterModel); + } + + #endregion + + + #region Updating + + public void Updating() + { + if (_stateMachine.CurrentState != _stateMachine._deadState) + { + BattleIgnoreCheck(); + GroundCheck(); + MovementCheck(); + SpeedCheck(); + StateCheck(); + GetClosestEnemy(); + _stateMachine.CurrentState.Execute(); + } + + _animationController.UpdateAnimationParameters(_inputModel.inputStruct._inputTotalAxisX, + _inputModel.inputStruct._inputTotalAxisY, _characterModel.CurrentSpeed, _characterModel.AnimationSpeed); + } + + #endregion + + #region ITearDownController + + public void TearDown() + { + _inputModel.OnJump -= SetJumpingState; + _inputModel.OnBattleExit -= ExitBattle; + _inputModel.OnTargetLock -= ChangeTargetMode; + _inputModel.OnAttackLeft -= SetAttackingLeftState; + _inputModel.OnAttackRight -= SetAttackingRightState; + _inputModel.OnDance -= ChangeDancingState; + + _characterModel.PlayerBehavior.OnFilterHandler -= OnFilterHandler; + _characterModel.PlayerBehavior.OnTriggerEnterHandler -= OnTriggerEnterHandler; + _characterModel.PlayerBehavior.OnTriggerExitHandler -= OnTriggerExitHandler; + _characterModel.PlayerBehavior.OnTakeDamageHandler -= TakeDamage; + + _stateMachine.OnStateChangeHandler -= OnStateChange; + _stateMachine.TearDownStates(); + LockCharAction.LockCharacterMovement -= SetTalkingState; + } + + #endregion + + + #region IDealDamage + + public void DealDamage(InteractableObjectBehavior enemy, Damage damage) + { + if (enemy != null && damage != null) + { + enemy.OnTakeDamageHandler(damage); + } + } + + #endregion + + + #region ITakeDamage + + private void TakeDamage(Damage damage) + { + if (_stateMachine.CurrentState != _stateMachine._deadState) + { + _currentHealth -= damage.PhysicalDamage; + Debug.Log("player got " + damage.PhysicalDamage + " physical damage"); + float stunProbability = Random.Range(0f, 1f); + + if (_currentHealth <= 0) + { + _stateMachine.SetStateAnyway(_stateMachine._deadState); + } + else if (damage.StunProbability > stunProbability) + { + _stateMachine.SetStateAnyway(_stateMachine._stunnedState); + } + + _characterModel.IsInBattleMode = true; + } + } + + #endregion + + + #region Methods + + private void BattleIgnoreCheck() + { + if(_currentBattleIgnoreTime > 0) + { + _currentBattleIgnoreTime -= Time.deltaTime; + } + } + + private void GroundCheck() + { + if (_stateMachine.CurrentState != _stateMachine._jumpingState) + { + _characterModel.IsGrounded = _services.PhysicsService.CheckGround(_characterModel.CharacterCapsuleCollider. + transform.position + Vector3.up, _characterModel.CharacterCommonSettings.GroundCheckHeight, out _groundHit); + } + else + { + _characterModel.IsGrounded = _services.PhysicsService.CheckGround(_characterModel.CharacterCapsuleCollider. + transform.position + Vector3.up, _characterModel.CharacterCommonSettings.GroundCheckHeight * + _characterModel.CharacterCommonSettings.GroundCHeckHeightReduction, out _groundHit); + } + } + + private void MovementCheck() + { + if (_inputModel.inputStruct._inputAxisX != 0 || _inputModel.inputStruct._inputAxisY != 0) + { + _characterModel.IsMoving = true; + } + else + { + _characterModel.IsMoving = false; + } + } + + private void SpeedCheck() + { + if (_speedCountTime > 0) + { + _speedCountTime -= Time.fixedDeltaTime; + } + else + { + _speedCountTime = _speedCountFrame; + _currentPosition = _characterModel.CharacterTransform.position; + _characterModel.CurrentSpeed = Mathf.Sqrt((_currentPosition - _lastPosition).sqrMagnitude) / + _speedCountFrame; + _lastPosition = _currentPosition; + } + + _characterModel.VerticalSpeed = _characterModel.CharacterRigitbody.velocity.y; + } + + private void CheckTrigger() + { + _characterModel.IsEnemyNear = _characterModel.EnemiesInTrigger.Count > 0; + + if (_characterModel.IsEnemyNear && _currentBattleIgnoreTime <= 0) + { + _characterModel.IsInBattleMode = true; + } + else + { + _characterModel.IsInBattleMode = false; + _characterModel.ClosestEnemy = null; + } + } + + private void GetClosestEnemy() + { + if(_characterModel.IsEnemyNear && _stateMachine.CurrentState != _stateMachine._battleTargetMovementState && + _stateMachine.CurrentState != _stateMachine._rollingTargetState) + { + Collider enemy = null; + + float minimalDistance = _characterModel.CharacterCommonSettings.SphereColliderRadius; + float countDistance = minimalDistance; + + foreach (var collider in _characterModel.EnemiesInTrigger) + { + countDistance = Mathf.Sqrt((_characterModel.CharacterTransform.position - + collider.transform.position).sqrMagnitude); + + if (countDistance < minimalDistance) + { + minimalDistance = countDistance; + enemy = collider; + } + } + + _characterModel.ClosestEnemy = enemy; + } + } + + private void SetLeftWeapon(WeaponItem newWeapon) + { + if(newWeapon.WeaponHandType == WeaponHandType.OneHanded) + { + if (_characterModel.LeftWeaponBehavior != null) + { + _characterModel.LeftWeaponBehavior.OnFilterHandler -= OnHitBoxFilter; + _characterModel.LeftWeaponBehavior.OnTriggerEnterHandler -= OnLeftHitBoxHit; + } + + _services.InventoryService.SetWeaponInLeftHand(_characterModel, newWeapon, out WeaponHitBoxBehavior newBehaviour); + _characterModel.LeftWeaponBehavior = newBehaviour; + + _characterModel.LeftWeaponBehavior.OnFilterHandler += OnHitBoxFilter; + _characterModel.LeftWeaponBehavior.OnTriggerEnterHandler += OnLeftHitBoxHit; + } + else + { + // if two handed + } + } + + private void SetRightWeapon(WeaponItem newWeapon) + { + if (newWeapon.WeaponHandType == WeaponHandType.OneHanded) + { + if (_characterModel.RightWeaponBehavior != null) + { + _characterModel.RightWeaponBehavior.OnFilterHandler -= OnHitBoxFilter; + _characterModel.RightWeaponBehavior.OnTriggerEnterHandler -= OnRightHitBoxHit; + } + + _services.InventoryService.SetWeaponInRightHand(_characterModel, newWeapon, out WeaponHitBoxBehavior newBehaviour); + _characterModel.RightWeaponBehavior = newBehaviour; + + _characterModel.RightWeaponBehavior.OnFilterHandler += OnHitBoxFilter; + _characterModel.RightWeaponBehavior.OnTriggerEnterHandler += OnRightHitBoxHit; + } + else + { + if (_characterModel.RightWeaponBehavior != null) + { + _characterModel.RightWeaponBehavior.OnFilterHandler -= OnHitBoxFilter; + _characterModel.RightWeaponBehavior.OnTriggerEnterHandler -= OnRightHitBoxHit; + } + if (_characterModel.LeftWeaponBehavior != null) + { + _characterModel.LeftWeaponBehavior.OnFilterHandler -= OnHitBoxFilter; + _characterModel.LeftWeaponBehavior.OnTriggerEnterHandler -= OnLeftHitBoxHit; + } + + _services.InventoryService.SetWeaponInRightHand(_characterModel, newWeapon, out WeaponHitBoxBehavior newBehaviour); + _characterModel.RightWeaponBehavior = newBehaviour; + _characterModel.LeftWeaponBehavior = newBehaviour; + + _characterModel.RightWeaponBehavior.OnFilterHandler += OnHitBoxFilter; + _characterModel.RightWeaponBehavior.OnTriggerEnterHandler += OnRightHitBoxHit; + _characterModel.LeftWeaponBehavior.OnFilterHandler += OnHitBoxFilter; + _characterModel.LeftWeaponBehavior.OnTriggerEnterHandler += OnLeftHitBoxHit; + } + } + + #endregion + + + #region StateControl + + private void StateCheck() + { + if (_stateMachine.CurrentState.CanExit) + { + if (!_characterModel.IsGrounded) + { + _stateMachine.SetState(_stateMachine._fallingState); + } + else if (_characterModel.IsInBattleMode) + { + if (_characterModel.IsMoving) + { + _stateMachine.SetState(_stateMachine._battleMovementState); + } + else + { + _stateMachine.SetState(_stateMachine._battleIdleState); + } + } + else + { + if (_characterModel.IsMoving) + { + _stateMachine.SetState(_stateMachine._defaultMovementState); + } + else + { + _stateMachine.SetState(_stateMachine._defaultIdleState); + } + } + } + } + + private void ChangeTargetMode() + { + if (_characterModel.IsInBattleMode) + { + if (_stateMachine.CurrentState == _stateMachine._battleTargetMovementState) + { + if (_characterModel.IsMoving) + { + _stateMachine.SetStateOverride(_stateMachine._battleMovementState); + } + else + { + _stateMachine.SetStateOverride(_stateMachine._battleIdleState); + } + } + else + { + if (_characterModel.IsEnemyNear) + { + _stateMachine.SetStateOverride(_stateMachine._battleTargetMovementState); + } + } + } + else + { + if (_characterModel.IsEnemyNear && _characterModel.ClosestEnemy != null) + { + _stateMachine.SetStateOverride(_stateMachine._gettingWeaponState, _stateMachine._battleTargetMovementState); + } + } + } + + private void SetJumpingState() + { + if (_characterModel.IsGrounded) + { + if (!_characterModel.IsInBattleMode) + { + _stateMachine.SetStateOverride(_stateMachine._jumpingState); + } + else + { + if(_stateMachine.CurrentState == _stateMachine._battleTargetMovementState) + { + _stateMachine.SetStateOverride(_stateMachine._rollingTargetState); + } + else + { + _stateMachine.SetStateOverride(_stateMachine._rollingState); + } + } + } + } + + private void SetDodgingState() + { + _stateMachine.SetState(_stateMachine._dodgingState); + } + + private void SetFallingState() + { + _stateMachine.SetState(_stateMachine._fallingState); + } + + private void ChangeDancingState() + { + if(_stateMachine.CurrentState == _stateMachine._defaultIdleState) + { + _stateMachine.SetStateOverride(_stateMachine._dancingState); + } + else if (_stateMachine.CurrentState == _stateMachine._dancingState) + { + _stateMachine.ReturnStateOverride(); + } + } + + private void SetAttackingLeftState() + { + SetAttackingState(_stateMachine._attackingLeftState); + } + + private void SetAttackingRightState() + { + SetAttackingState(_stateMachine._attackingRightState); + } + + private void SetAttackingState(CharacterBaseState attackState) + { + if (attackState.IsAttacking) + { + if (CanAttack()) + { + if (_characterModel.IsWeaponInHands) + { + _stateMachine.SetStateOverride(attackState); + } + else + { + _stateMachine.SetStateOverride(_stateMachine._gettingWeaponState); + } + } + } + } + + private void ExitBattle() + { + _currentBattleIgnoreTime = _characterModel.CharacterCommonSettings.BattleIgnoreTime; + + if (_characterModel.IsMoving) + { + _stateMachine.SetStateOverride(_stateMachine._defaultMovementState); + } + else + { + _stateMachine.SetStateOverride(_stateMachine._defaultIdleState); + } + + _characterModel.IsInBattleMode = false; + } + + private void SetTalkingState(bool isStartsTalking) + { + if (isStartsTalking && _stateMachine.CurrentState != _stateMachine._talkingState) + { + if (_stateMachine.CurrentState.Type == StateType.Default) + { + _stateMachine.SetState(_stateMachine._talkingState); + } + else if (_stateMachine.CurrentState.Type == StateType.Battle) + { + _stateMachine.SetState(_stateMachine._removingWeaponState, _stateMachine._talkingState); + } + + _services.CameraService.SetActiveCamera(_services.CameraService.CharacterDialogCamera); + } + else if (_stateMachine.CurrentState == _stateMachine._talkingState) + { + _stateMachine.SetStateAnyway(_stateMachine._defaultIdleState); + _services.CameraService.SetActiveCamera(_services.CameraService.CharacterFreelookCamera); + } + } + + private bool CanAttack() + { + return _characterModel.IsGrounded && !_stateMachine.CurrentState.IsAttacking && + _stateMachine.CurrentState.Type != StateType.NotActive; + } + + private void OnStateChange(CharacterBaseState previousState, CharacterBaseState currentState) + { + if (currentState.Type == StateType.Battle && !_characterModel.IsWeaponInHands) + { + _characterModel.CharacterSphereCollider.radius *= _characterModel.CharacterCommonSettings.SphereColliderRadiusIncrease; + _stateMachine.SetStateOverride(_stateMachine._gettingWeaponState); + } + + if (currentState.Type != StateType.Battle && _characterModel.IsWeaponInHands) + { + _characterModel.CharacterSphereCollider.radius = _characterModel.CharacterCommonSettings.SphereColliderRadius; + _stateMachine.SetStateOverride(_stateMachine._removingWeaponState); + } + + if(!previousState.IsTargeting && currentState.IsTargeting && !_stateMachine.CurrentState.IsAttacking) + { + _services.CameraService.SetActiveCamera(_services.CameraService.CharacterTargetCamera); + } + else if(previousState.IsTargeting && !currentState.IsTargeting && !_stateMachine.CurrentState.IsAttacking) + { + _services.CameraService.SetActiveCamera(_services.CameraService.CharacterFreelookCamera); + } + } + + #endregion + + + #region TriggerControl + + private bool OnFilterHandler(Collider tagObject) + { + return !tagObject.isTrigger && tagObject.CompareTag(TagManager.ENEMY); + } + + private void OnTriggerEnterHandler(ITrigger thisdObject, Collider enteredObject) + { + if(thisdObject.Type == InteractableObjectType.Player && !_characterModel.EnemiesInTrigger. + Contains(enteredObject)) + { + _characterModel.EnemiesInTrigger.Add(enteredObject); + CheckTrigger(); + } + } + + private void OnTriggerExitHandler(ITrigger thisdObject, Collider exitedObject) + { + if(thisdObject.Type == InteractableObjectType.Player && _characterModel.EnemiesInTrigger. + Contains(exitedObject)) + { + _characterModel.EnemiesInTrigger.Remove(exitedObject); + CheckTrigger(); + } + } + + private bool OnHitBoxFilter(Collider hitedObject) + { + bool isEnemyColliderHit = hitedObject.CompareTag(TagManager.ENEMY); + + if (hitedObject.isTrigger || (_stateMachine.CurrentState != _stateMachine._attackingLeftState && + _stateMachine.CurrentState != _stateMachine._attackingRightState)) + { + isEnemyColliderHit = false; + } + + return isEnemyColliderHit; + } + + private void OnLeftHitBoxHit(ITrigger hitBox, Collider enemy) + { + if (enemy.transform.GetComponent() != null && hitBox.IsInteractable) + { + InteractableObjectBehavior enemyBehavior = enemy.transform.GetComponent(); + + DealDamage(enemyBehavior, _services.AttackService.CountDamage(_characterModel.LeftHandWeapon, + _characterModel.CharacterStatsSettings, enemyBehavior.Stats)); + hitBox.IsInteractable = false; + } + } + + private void OnRightHitBoxHit(ITrigger hitBox, Collider enemy) + { + if (enemy.transform.GetComponent() != null && hitBox.IsInteractable) + { + InteractableObjectBehavior enemyBehavior = enemy.transform.GetComponent(); + + DealDamage(enemyBehavior, _services.AttackService.CountDamage(_characterModel.RightHandWeapon, + _characterModel.CharacterStatsSettings, enemyBehavior.Stats)); + hitBox.IsInteractable = false; + } + } + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/CharacterController.cs.meta b/Assets/Scripts/To_Refactoring/Character/CharacterController.cs.meta new file mode 100644 index 000000000..6ba15613a --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/CharacterController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d3b3e93b7f8fd564898863e5ce24041f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/CharacterData.cs b/Assets/Scripts/To_Refactoring/Character/CharacterData.cs new file mode 100644 index 000000000..fe3e9ce14 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/CharacterData.cs @@ -0,0 +1,41 @@ +using UnityEngine; + + +namespace BeastHunter +{ + [CreateAssetMenu(fileName = "CharacterData")] + public sealed class CharacterData : ScriptableObject + { + #region PrivateData + + public CharacterCommonSettingsStruct _characterCommonSettings; + public BaseStatsClass _characterStatsSettings; + + #endregion + + + #region Fields + + private Vector3 _movementVector; + + #endregion + + + #region Metods + + public void MoveForward(Transform prefabTransform, float moveSpeed) + { + _movementVector = Vector3.forward * moveSpeed * Time.deltaTime; + prefabTransform.Translate(_movementVector, Space.Self); + } + + public void Move(Transform prefabTransform, float moveSpeed, Vector3 direction) + { + _movementVector = direction * moveSpeed * Time.deltaTime; + prefabTransform.Translate(_movementVector, Space.Self); + } + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/CharacterData.cs.meta b/Assets/Scripts/To_Refactoring/Character/CharacterData.cs.meta new file mode 100644 index 000000000..c1d8db9d3 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/CharacterData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d188b74f1b32ed747b065a91ad8e0d3c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/CharacterInitilizeController.cs b/Assets/Scripts/To_Refactoring/Character/CharacterInitilizeController.cs new file mode 100644 index 000000000..4ae3d4f24 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/CharacterInitilizeController.cs @@ -0,0 +1,61 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public sealed class CharacterInitilizeController : IAwake + { + #region Field + + GameContext _context; + + #endregion + + + #region ClassLifeCycle + + public CharacterInitilizeController(GameContext context) + { + _context = context; + } + + #endregion + + + #region IAwake + + public void OnAwake() + { + var characterData = Data.CharacterData; + + Vector3 instantiatePosition = characterData._characterCommonSettings.InstantiatePosition; + Vector3 groundedInstancePosition = GetGroundedPosition(instantiatePosition); + + GameObject instance = GameObject.Instantiate(characterData._characterCommonSettings.Prefab); + + CharacterModel character = new CharacterModel(instance, characterData, groundedInstancePosition); + _context.CharacterModel = character; + } + + #endregion + + + #region Methods + + private Vector3 GetGroundedPosition(Vector3 startPosition) + { + Vector3 groundedPosition = new Vector3(); + + bool isGroundBelow = Services.SharedInstance.PhysicsService.FindGround(startPosition, out groundedPosition); + + if (!isGroundBelow) + { + throw new System.Exception("Ground is above player's position!"); + } + + return groundedPosition; + } + + #endregion + } +} diff --git a/Assets/Scripts/To_Refactoring/Character/CharacterInitilizeController.cs.meta b/Assets/Scripts/To_Refactoring/Character/CharacterInitilizeController.cs.meta new file mode 100644 index 000000000..f896fcddd --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/CharacterInitilizeController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f7109da0877f9714f80b761c17794b16 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/CharacterModel.cs b/Assets/Scripts/To_Refactoring/Character/CharacterModel.cs new file mode 100644 index 000000000..f42eaad33 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/CharacterModel.cs @@ -0,0 +1,195 @@ +using UnityEngine; +using System.Collections.Generic; + + +namespace BeastHunter +{ + public sealed class CharacterModel + { + #region Properties + + public GameObject CameraTarget { get; } + public GameObject TargetMark { get; } + public GameObject LeftHandWeaponObject { get; set; } + public GameObject RightHandWeaponObject { get; set; } + + public Transform LeftHand { get; } + public Transform RightHand { get; } + public Transform LeftFoot { get; } + public Transform RightFoot { get; } + public Transform CameraTargetTransform { get; } + public Transform TargetMarkTransform { get; } + public Transform CharacterTransform { get; } + + public WeaponHitBoxBehavior LeftFootBehavior { get; } + public WeaponHitBoxBehavior RightFootBehavior { get; } + public WeaponHitBoxBehavior LeftWeaponBehavior { get; set; } + public WeaponHitBoxBehavior RightWeaponBehavior { get; set; } + + public Vector3 TargetMarkBasePosition { get; } + public CapsuleCollider CharacterCapsuleCollider { get; } + public SphereCollider CharacterSphereCollider { get; } + public Rigidbody CharacterRigitbody { get; } + public PlayerBehavior PlayerBehavior { get; } + public CharacterData CharacterData { get; } + public CharacterCommonSettingsStruct CharacterCommonSettings { get; } + public BaseStatsClass CharacterStatsSettings { get; } + + public Animator CharacterAnimator { get; set; } + public List EnemiesInTrigger { get; set; } + public Collider ClosestEnemy { get; set; } + public WeaponItem LeftHandWeapon { get; set; } + public WeaponItem RightHandWeapon { get; set; } + + public float CurrentSpeed { get; set; } + public float VerticalSpeed { get; set; } + public float AnimationSpeed { get; set; } + + public bool IsMoving { get; set; } + public bool IsGrounded { get; set; } + public bool IsInBattleMode { get; set; } + public bool IsEnemyNear { get; set; } + public bool IsWeaponInHands { get; set; } + + #endregion + + + #region ClassLifeCycle + + public CharacterModel(GameObject prefab, CharacterData characterData, Vector3 groundPosition) + { + CharacterData = characterData; + CharacterCommonSettings = CharacterData._characterCommonSettings; + CharacterStatsSettings = CharacterData._characterStatsSettings; + CharacterTransform = prefab.transform; + CharacterTransform.rotation = Quaternion.Euler(0, CharacterCommonSettings.InstantiateDirection, 0); + CharacterTransform.name = CharacterCommonSettings.InstanceName; + CharacterTransform.tag = CharacterCommonSettings.InstanceTag; + CharacterTransform.gameObject.layer = CharacterCommonSettings.InstanceLayer; + + Transform[] children = CharacterTransform.GetComponentsInChildren(); + + foreach (var child in children) + { + child.gameObject.layer = CharacterCommonSettings.InstanceLayer; + } + + if (prefab.GetComponent() != null) + { + CharacterRigitbody = prefab.GetComponent(); + } + else + { + CharacterRigitbody = prefab.AddComponent(); + CharacterRigitbody.freezeRotation = true; + CharacterRigitbody.mass = CharacterCommonSettings.RigitbodyMass; + CharacterRigitbody.drag = CharacterCommonSettings.RigitbodyDrag; + CharacterRigitbody.angularDrag = CharacterCommonSettings.RigitbodyAngularDrag; + } + + CharacterRigitbody.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic; + + if (prefab.GetComponent() != null) + { + CharacterCapsuleCollider = prefab.GetComponent(); + } + else + { + CharacterCapsuleCollider = prefab.AddComponent(); + CharacterCapsuleCollider.center = CharacterCommonSettings.CapsuleColliderCenter; + CharacterCapsuleCollider.radius = CharacterCommonSettings.CapsuleColliderRadius; + CharacterCapsuleCollider.height = CharacterCommonSettings.CapsuleColliderHeight; + } + + CharacterCapsuleCollider.transform.position = groundPosition; + + if (prefab.GetComponent() != null) + { + CharacterSphereCollider = prefab.GetComponent(); + CharacterSphereCollider.isTrigger = true; + } + else + { + CharacterSphereCollider = prefab.AddComponent(); + CharacterSphereCollider.center = CharacterCommonSettings.SphereColliderCenter; + CharacterSphereCollider.radius = CharacterCommonSettings.SphereColliderRadius; + CharacterSphereCollider.isTrigger = true; + } + + CameraTarget = Services.SharedInstance.CameraService.CreateCameraTarget(CharacterTransform); + CameraTargetTransform = CameraTarget.transform; + + TargetMarkBasePosition = new Vector3(CharacterTransform.localPosition.x, + CharacterTransform.localPosition.y + CharacterCapsuleCollider.height + + CharacterCommonSettings.TargetMarkHeight, CharacterTransform.localPosition.z); + + TargetMark = CharacterCommonSettings.CreateTargetMark(CharacterTransform, TargetMarkBasePosition); + TargetMarkTransform = TargetMark.transform; + + + if (prefab.GetComponent() != null) + { + CharacterAnimator = prefab.GetComponent(); + } + else + { + CharacterAnimator = prefab.AddComponent(); + } + + CharacterAnimator.runtimeAnimatorController = CharacterCommonSettings.CharacterAnimator; + CharacterAnimator.applyRootMotion = false; + + if (prefab.GetComponent() != null) + { + PlayerBehavior = prefab.GetComponent(); + } + else + { + PlayerBehavior = prefab.AddComponent(); + } + + PlayerBehavior.SetType(InteractableObjectType.Player); + PlayerBehavior.Stats = CharacterStatsSettings; + + EnemiesInTrigger = new List(); + ClosestEnemy = null; + IsMoving = false; + IsGrounded = false; + IsEnemyNear = false; + IsInBattleMode = false; + IsWeaponInHands = false; + CurrentSpeed = 0; + AnimationSpeed = CharacterData._characterCommonSettings.AnimatorBaseSpeed; + + LeftHand = CharacterTransform.Find(CharacterCommonSettings.LeftHandObjectPath); + RightHand = CharacterTransform.Find(CharacterCommonSettings.RightHandObjectPath); + LeftFoot = CharacterTransform.Find(CharacterCommonSettings.LeftFootObjectPath); + RightFoot = CharacterTransform.Find(CharacterCommonSettings.RightFootObjectPath); + + //SphereCollider LeftFootTrigger = LeftFoot.gameObject.AddComponent(); + //LeftFootTrigger.radius = CharacterCommonSettings.LeftFootHitBoxRadius; + //LeftFootTrigger.isTrigger = true; + //LeftFoot.gameObject.AddComponent().isKinematic = true; + //LeftFootBehavior = LeftFoot.gameObject.AddComponent(); + //LeftFootBehavior.SetType(InteractableObjectType.HitBox); + //LeftFootBehavior.IsInteractable = false; + + //SphereCollider RightFootTrigger = RightFoot.gameObject.AddComponent(); + //RightFootTrigger.radius = CharacterCommonSettings.RightFootHitBoxRadius; + //RightFootTrigger.isTrigger = true; + //RightFoot.gameObject.AddComponent().isKinematic = true; + //RightFootBehavior = RightFoot.gameObject.AddComponent(); + //RightFootBehavior.SetType(InteractableObjectType.HitBox); + //RightFootBehavior.IsInteractable = false; + + LeftHandWeapon = null; + RightHandWeapon = null; + LeftHandWeaponObject = null; + RightHandWeaponObject = null; + + Services.SharedInstance.CameraService.Initialise(this); + } + + #endregion + } +} diff --git a/Assets/Scripts/To_Refactoring/Character/CharacterModel.cs.meta b/Assets/Scripts/To_Refactoring/Character/CharacterModel.cs.meta new file mode 100644 index 000000000..1cfe5e8e9 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/CharacterModel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fd51df7a6aba7644a973f5a73d0e3bae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/DamageClass.cs b/Assets/Scripts/To_Refactoring/Character/DamageClass.cs new file mode 100644 index 000000000..00ed415eb --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/DamageClass.cs @@ -0,0 +1,25 @@ +using System; +using UnityEngine; + + +namespace BeastHunter +{ + [Serializable] + public sealed class Damage + { + #region Fields + + [Header("Basic information")] + + [Tooltip("Physical Damage between 0 and 10.")] + [Range(0.0f, 10.0f)] + public float PhysicalDamage; + + [Tooltip("Stun probability between 0 and 1.")] + [Range(0.0f, 1.0f)] + public float StunProbability; + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/DamageClass.cs.meta b/Assets/Scripts/To_Refactoring/Character/DamageClass.cs.meta new file mode 100644 index 000000000..fc24fe3c4 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/DamageClass.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0466c7333e860bc428d8d8ac9b936414 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/IDealDamage.cs b/Assets/Scripts/To_Refactoring/Character/IDealDamage.cs new file mode 100644 index 000000000..35b42890e --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/IDealDamage.cs @@ -0,0 +1,8 @@ +namespace BeastHunter +{ + public interface IDealDamage + { + void DealDamage(InteractableObjectBehavior enemy, Damage damage); + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/IDealDamage.cs.meta b/Assets/Scripts/To_Refactoring/Character/IDealDamage.cs.meta new file mode 100644 index 000000000..87346a656 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/IDealDamage.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 70e9019c3c03a4d4bbb7e8f8f1a27838 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/ITakeDamage.cs b/Assets/Scripts/To_Refactoring/Character/ITakeDamage.cs new file mode 100644 index 000000000..8662c2c1c --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/ITakeDamage.cs @@ -0,0 +1,7 @@ +namespace BeastHunter +{ + public interface ITakeDamage + { + void TakeDamage(Damage damage); + } +} diff --git a/Assets/Scripts/To_Refactoring/Character/ITakeDamage.cs.meta b/Assets/Scripts/To_Refactoring/Character/ITakeDamage.cs.meta new file mode 100644 index 000000000..cd674c718 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/ITakeDamage.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 63a175c29e9c91940a0a80113b4f0332 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/InputController.cs b/Assets/Scripts/To_Refactoring/Character/InputController.cs new file mode 100644 index 000000000..2248ae5f5 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/InputController.cs @@ -0,0 +1,107 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public sealed class InputController : IAwake, IUpdate + { + #region Properties + + private readonly GameContext _context; + private CharacterModel _characterModel; + private InputModel _inputModel; + private InputStruct _inputStruct; + + #endregion + + + #region ClassLifeCycle + + public InputController(GameContext context) + { + _context = context; + _inputModel = new InputModel(); + _context.InputModel = _inputModel; + } + + #endregion + + + #region OnAwake + + public void OnAwake() + { + _characterModel = _context.CharacterModel; + _inputStruct._inputAxisX = 0; + _inputStruct._inputAxisY = 0; + _inputStruct._inputTotalAxisX = 0; + _inputStruct._inputTotalAxisY = 0; + + _inputStruct._isInputJump = false; + _inputStruct._isInputRun = false; + _inputStruct._isInputDodge = false; + _inputStruct._isInputBattleExit = false; + _inputStruct._isInputTargetLock = false; + _inputStruct._isInputAttackLeft = false; + _inputStruct._isInputAttackRight = false; + _inputStruct._isInputUse = false; + _inputStruct._isInputDance = false; + } + + #endregion + + + #region Updating + + public void Updating() + { + GetInput(); + _inputModel.inputStruct = _inputStruct; + } + + #endregion + + + #region Methods + + public void GetInput() + { + _inputStruct._inputAxisX = Input.GetAxis("Horizontal"); + _inputStruct._inputAxisY = Input.GetAxis("Vertical"); + _inputStruct._isInputRun = Input.GetButton("Sprint"); + _inputStruct._isInputJump = Input.GetButtonDown("Jump"); + _inputStruct._isInputBattleExit = Input.GetButtonDown("Battle Exit"); + _inputStruct._isInputDodge = Input.GetButtonDown("Dodge"); + _inputStruct._isInputTargetLock = Input.GetButtonDown("Target lock"); + _inputStruct._isInputAttackLeft = Input.GetButtonDown("AttackLeft"); + _inputStruct._isInputAttackRight = Input.GetButtonDown("AttackRight"); + _inputStruct._isInputUse = Input.GetButtonDown("Use"); + _inputStruct._isInputDance = Input.GetButtonDown("Dance"); + + CheckAxisTotal(); + CheckEvents(); + } + + private void CheckAxisTotal() + { + _inputStruct._inputTotalAxisX = _inputStruct._inputAxisX > 0 ? 1 : _inputStruct._inputAxisX < 0 ? -1 : 0; + _inputStruct._inputTotalAxisY = _inputStruct._inputAxisY > 0 ? 1 : _inputStruct._inputAxisY < 0 ? -1 : 0; + } + + private void CheckEvents() + { + if (_inputStruct._isInputJump) _inputModel.OnJump?.Invoke(); + if (_inputStruct._isInputDodge) _inputModel.OnDodge?.Invoke(); + if (_inputStruct._isInputAttackLeft) _inputModel.OnAttackLeft?.Invoke(); + if (_inputStruct._isInputAttackRight) _inputModel.OnAttackRight?.Invoke(); + if (_inputStruct._isInputTargetLock) _inputModel.OnTargetLock?.Invoke(); + if (_inputStruct._isInputBattleExit) _inputModel.OnBattleExit?.Invoke(); + if (_inputStruct._isInputUse) _inputModel.OnUse?.Invoke(); + if (_inputStruct._isInputDance) _inputModel.OnDance?.Invoke(); + } + + #endregion + } +} + + diff --git a/Assets/Scripts/To_Refactoring/Character/InputController.cs.meta b/Assets/Scripts/To_Refactoring/Character/InputController.cs.meta new file mode 100644 index 000000000..f6efd9942 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/InputController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7421d997f4f8e6c47908ce50e2d8feef +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/InputModel.cs b/Assets/Scripts/To_Refactoring/Character/InputModel.cs new file mode 100644 index 000000000..65eec9a8a --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/InputModel.cs @@ -0,0 +1,29 @@ +using System; + + +namespace BeastHunter +{ + public sealed class InputModel + { + #region Fields + + public InputStruct inputStruct; + + #endregion + + + #region Properties + + public Action OnJump { get; set; } + public Action OnDodge { get; set; } + public Action OnAttackLeft { get; set; } + public Action OnAttackRight { get; set; } + public Action OnTargetLock { get; set; } + public Action OnBattleExit { get; set; } + public Action OnUse { get; set; } + public Action OnDance { get; set; } + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/InputModel.cs.meta b/Assets/Scripts/To_Refactoring/Character/InputModel.cs.meta new file mode 100644 index 000000000..387ddb0c0 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/InputModel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bcb1fd752fcd64045ab94617aba44765 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/InputStruct.cs b/Assets/Scripts/To_Refactoring/Character/InputStruct.cs new file mode 100644 index 000000000..a1ba160d1 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/InputStruct.cs @@ -0,0 +1,25 @@ +namespace BeastHunter +{ + public struct InputStruct + { + #region Fields + + public float _inputAxisX; + public float _inputAxisY; + public float _inputTotalAxisX; + public float _inputTotalAxisY; + + public bool _isInputJump; + public bool _isInputRun; + public bool _isInputDodge; + public bool _isInputBattleExit; + public bool _isInputTargetLock; + public bool _isInputAttackLeft; + public bool _isInputAttackRight; + public bool _isInputUse; + public bool _isInputDance; + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/InputStruct.cs.meta b/Assets/Scripts/To_Refactoring/Character/InputStruct.cs.meta new file mode 100644 index 000000000..2754eb74a --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/InputStruct.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 33b54c1faa98e9c48b8089e871bb708d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/PlayerBehavior.cs b/Assets/Scripts/To_Refactoring/Character/PlayerBehavior.cs new file mode 100644 index 000000000..12f06f1d4 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/PlayerBehavior.cs @@ -0,0 +1,8 @@ +namespace BeastHunter +{ + public sealed class PlayerBehavior : InteractableObjectBehavior + { + + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/PlayerBehavior.cs.meta b/Assets/Scripts/To_Refactoring/Character/PlayerBehavior.cs.meta new file mode 100644 index 000000000..629fb28ec --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/PlayerBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b471bfedd8f8a3d43847b04de6a857d2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine.meta new file mode 100644 index 000000000..f67224da5 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4a7fac76849fdec40aee0f00fd3f97d2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/CharacterStateMachine.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/CharacterStateMachine.cs new file mode 100644 index 000000000..b17dd2563 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/CharacterStateMachine.cs @@ -0,0 +1,286 @@ +using System; +using System.Collections.Generic; + + +namespace BeastHunter +{ + public sealed class CharacterStateMachine + { + #region Fields + + private List _allStates; + + #endregion + + + #region Properties + + public DefaultIdleState _defaultIdleState { get; } + public DefaultMovementState _defaultMovementState { get; } + public JumpingState _jumpingState { get; } + public FallingState _fallingState { get; } + public LandingState _landingState { get; } + public FallOnGroundState _fallOnGroundState { get; } + public BattleIdleState _battleIdleState { get; } + public BattleMovementState _battleMovementState { get; } + public BattleTargetMovementState _battleTargetMovementState { get; } + public AttackingFromLeftState _attackingLeftState { get; } + public AttackingFromRightState _attackingRightState { get; } + public DodgingState _dodgingState { get; } + public StunnedState _stunnedState { get; } + public DeadState _deadState { get; } + public RollingState _rollingState { get; } + public RollingTargetState _rollingTargetState { get; } + public TalkingState _talkingState { get; } + public DancingState _dancingState { get; } + public GettingWeaponState _gettingWeaponState { get; } + public RemovingWeaponState _removingWeaponState { get; } + + public CharacterBaseState PreviousState { get; private set; } + public CharacterBaseState CurrentState { get; private set; } + public Action OnStateChangeHandler { get; set; } + private InputModel _inputModel { get; set; } + private CharacterModel _characterModel { get; set; } + private CharacterAnimationController _animationController { get; set; } + + #endregion + + + #region ClassLifeCycle + + public CharacterStateMachine(InputModel inputModel, CharacterModel characterModel, CharacterAnimationController animationController) + { + _inputModel = inputModel; + _characterModel = characterModel; + _animationController = animationController; + _allStates = new List(); + PreviousState = null; + CurrentState = null; + + _defaultIdleState = (DefaultIdleState)CreateState(new DefaultIdleState(_characterModel, _inputModel, _animationController, this)); + _battleIdleState = (BattleIdleState)CreateState(new BattleIdleState(_characterModel, _inputModel, _animationController, this)); + _defaultMovementState = (DefaultMovementState)CreateState(new DefaultMovementState(_characterModel, _inputModel, _animationController, this)); + _battleMovementState = (BattleMovementState)CreateState(new BattleMovementState(_characterModel, _inputModel, _animationController, this)); + _battleTargetMovementState = (BattleTargetMovementState)CreateState(new BattleTargetMovementState(_characterModel, _inputModel, _animationController, this)); + _attackingLeftState = (AttackingFromLeftState)CreateState(new AttackingFromLeftState(_characterModel, _inputModel, _animationController, this)); + _attackingRightState = (AttackingFromRightState)CreateState(new AttackingFromRightState(_characterModel, _inputModel, _animationController, this)); + _jumpingState = (JumpingState)CreateState(new JumpingState(_characterModel, _inputModel, _animationController, this)); + _dodgingState = (DodgingState)CreateState(new DodgingState(_characterModel, _inputModel, _animationController, this)); + _fallingState = (FallingState)CreateState(new FallingState(_characterModel, _inputModel, _animationController, this)); + _dancingState = (DancingState)CreateState(new DancingState(_characterModel, _inputModel, _animationController, this)); + _rollingState = (RollingState)CreateState(new RollingState(_characterModel, _inputModel, _animationController, this)); + _rollingTargetState = (RollingTargetState)CreateState(new RollingTargetState(_characterModel, _inputModel, _animationController, this)); + _landingState = (LandingState)CreateState(new LandingState(_characterModel, _inputModel, _animationController, this)); + _fallOnGroundState = (FallOnGroundState)CreateState(new FallOnGroundState(_characterModel, _inputModel, _animationController, this)); + _stunnedState = (StunnedState)CreateState(new StunnedState(_characterModel, _inputModel, _animationController, this)); + _talkingState = (TalkingState)CreateState(new TalkingState(_characterModel, _inputModel, _animationController, this)); + _deadState = (DeadState)CreateState(new DeadState(_characterModel, _inputModel, _animationController, this)); + _gettingWeaponState = (GettingWeaponState)CreateState(new GettingWeaponState(_characterModel, _inputModel, _animationController, this)); + _removingWeaponState = (RemovingWeaponState)CreateState(new RemovingWeaponState(_characterModel, _inputModel, _animationController, this)); + } + + #endregion + + + #region Methods + + private CharacterBaseState CreateState(CharacterBaseState newState) + { + _allStates.Add(newState); + return newState; + } + + public void SetStartState(CharacterBaseState startState) + { + PreviousState = startState; + CurrentState = startState; + } + + public void SetState(CharacterBaseState newState) + { + if (CurrentState != newState) + { + if (CurrentState.CanExit) + { + CurrentState.OnExit(); + PreviousState = CurrentState; + CurrentState = newState; + CurrentState.NextState = null; + OnStateChange(PreviousState, CurrentState); + CurrentState.Initialize(); + } + } + } + + public void SetState(CharacterBaseState newState, CharacterBaseState nextState) + { + if (CurrentState != newState) + { + if (CurrentState.CanExit) + { + CurrentState.OnExit(); + PreviousState = CurrentState; + CurrentState = newState; + CurrentState.NextState = nextState; + OnStateChange(PreviousState, CurrentState); + CurrentState.Initialize(); + } + } + } + + public void SetStateOverride(CharacterBaseState newState) + { + if (CurrentState != newState) + { + if (CurrentState.CanBeOverriden) + { + CurrentState.OnExit(); + PreviousState = CurrentState; + CurrentState = newState; + CurrentState.NextState = null; + OnStateChange(PreviousState, CurrentState); + CurrentState.Initialize(); + } + } + } + + public void SetStateOverride(CharacterBaseState newState, CharacterBaseState nextState) + { + if (CurrentState != newState) + { + if (CurrentState.CanBeOverriden) + { + CurrentState.OnExit(); + PreviousState = CurrentState; + CurrentState = newState; + CurrentState.NextState = nextState; + OnStateChange(PreviousState, CurrentState); + CurrentState.Initialize(); + } + } + } + + public void SetStateAnyway(CharacterBaseState newState) + { + if (CurrentState != newState) + { + CurrentState.OnExit(); + PreviousState = CurrentState; + CurrentState = newState; + CurrentState.NextState = null; + OnStateChange(PreviousState, CurrentState); + CurrentState.Initialize(); + } + } + + public void SetStateAnyway(CharacterBaseState newState, CharacterBaseState nextState) + { + if (CurrentState != newState) + { + CurrentState.OnExit(); + PreviousState = CurrentState; + CurrentState = newState; + CurrentState.NextState = nextState; + OnStateChange(PreviousState, CurrentState); + CurrentState.Initialize(); + } + } + + public void ReturnState() + { + if (CurrentState.CanExit) + { + CurrentState.OnExit(); + CharacterBaseState tempState = PreviousState; + PreviousState = CurrentState; + CurrentState = tempState; + CurrentState.NextState = null; + OnStateChange(PreviousState, CurrentState); + CurrentState.Initialize(); + } + } + + public void ReturnState(CharacterBaseState nextState) + { + if (CurrentState.CanExit) + { + CurrentState.OnExit(); + CharacterBaseState tempState = PreviousState; + PreviousState = CurrentState; + CurrentState = tempState; + CurrentState.NextState = nextState; + OnStateChange(PreviousState, CurrentState); + CurrentState.Initialize(); + } + } + + public void ReturnStateOverride() + { + if (CurrentState.CanBeOverriden) + { + CurrentState.OnExit(); + CharacterBaseState tempState = PreviousState; + PreviousState = CurrentState; + CurrentState = tempState; + CurrentState.NextState = null; + OnStateChange(PreviousState, CurrentState); + CurrentState.Initialize(); + } + } + + public void ReturnStateOverride(CharacterBaseState nextState) + { + if (CurrentState.CanBeOverriden) + { + CurrentState.OnExit(); + CharacterBaseState tempState = PreviousState; + PreviousState = CurrentState; + CurrentState = tempState; + CurrentState.NextState = nextState; + OnStateChange(PreviousState, CurrentState); + CurrentState.Initialize(); + } + } + + public void ReturnStateAnyway() + { + CurrentState.OnExit(); + CharacterBaseState tempState = PreviousState; + PreviousState = CurrentState; + CurrentState = tempState; + CurrentState.NextState = null; + OnStateChange(PreviousState, CurrentState); + CurrentState.Initialize(); + } + + public void ReturnStateAnyway(CharacterBaseState nextState) + { + CurrentState.OnExit(); + CharacterBaseState tempState = PreviousState; + PreviousState = CurrentState; + CurrentState = tempState; + CurrentState.NextState = nextState; + OnStateChange(PreviousState, CurrentState); + CurrentState.Initialize(); + } + + private void OnStateChange(CharacterBaseState previousState, CharacterBaseState newState) + { + if(OnStateChangeHandler != null) + { + OnStateChangeHandler.Invoke(previousState, newState); + } + } + + public void TearDownStates() + { + foreach (var state in _allStates) + { + state.OnTearDown(); + } + } + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/CharacterStateMachine.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/CharacterStateMachine.cs.meta new file mode 100644 index 000000000..9f46643e5 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/CharacterStateMachine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3b589f28d2c9ac44080370eb1a191f18 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/StateType.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/StateType.cs new file mode 100644 index 000000000..e4ff28a1d --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/StateType.cs @@ -0,0 +1,11 @@ +namespace BeastHunter +{ + public enum StateType + { + None, + Default, + Battle, + NotActive, + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/StateType.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/StateType.cs.meta new file mode 100644 index 000000000..bd1328723 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/StateType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f65ab582bf1e18a4482c3022d30323a0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States.meta new file mode 100644 index 000000000..fbf1f9b02 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b1ec52f0734e0a64fa1d8f2f12cc5778 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/AttackingFromLeftState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/AttackingFromLeftState.cs new file mode 100644 index 000000000..a4f2c2d5f --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/AttackingFromLeftState.cs @@ -0,0 +1,83 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public sealed class AttackingFromLeftState : CharacterBaseState + { + #region Fields + + private float _currentAttackTime; + private int _currentAttackIndex; + + #endregion + + + #region ClassLifeCycle + + public AttackingFromLeftState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.Battle; + IsTargeting = false; + IsAttacking = true; + CanExit = false; + CanBeOverriden = false; + _currentAttackIndex = 0; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + _currentAttackIndex = Random.Range(0, _characterModel.LeftHandWeapon.AttacksLeft.Length); + _characterModel.LeftHandWeapon.CurrentAttack = _characterModel.LeftHandWeapon.AttacksLeft[_currentAttackIndex]; + _currentAttackTime = _characterModel.LeftHandWeapon.CurrentAttack.Time; + _animationController.PlayAttackAnimation(_characterModel.LeftHandWeapon.SimpleAttackFromLeftkAnimationHash, _currentAttackIndex); + _characterModel.LeftWeaponBehavior.IsInteractable = true; + CanExit = false; + } + + public override void Execute() + { + ExitCheck(); + StayInBattle(); + } + + public override void OnExit() + { + _characterModel.LeftWeaponBehavior.IsInteractable = false; + } + + public override void OnTearDown() + { + } + + private void ExitCheck() + { + if (_currentAttackTime > 0) + { + _currentAttackTime -= Time.deltaTime; + } + else + { + CanExit = true; + + if(_stateMachine.PreviousState == _stateMachine._battleTargetMovementState) + { + _stateMachine.ReturnState(); + } + } + } + + private void StayInBattle() + { + _characterModel.IsInBattleMode = true; + } + + #endregion + } +} diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/AttackingFromLeftState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/AttackingFromLeftState.cs.meta new file mode 100644 index 000000000..799f2ca4a --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/AttackingFromLeftState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 42747db039f352c4eb7733e52348fdfa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/AttackingFromRightState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/AttackingFromRightState.cs new file mode 100644 index 000000000..64a61abd6 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/AttackingFromRightState.cs @@ -0,0 +1,83 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public sealed class AttackingFromRightState : CharacterBaseState + { + #region Fields + + private float _currentAttackTime; + private int _currentAttackIndex; + + #endregion + + + #region ClassLifeCycle + + public AttackingFromRightState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.Battle; + IsTargeting = false; + IsAttacking = true; + CanExit = false; + CanBeOverriden = false; + _currentAttackIndex = 0; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + _currentAttackIndex = Random.Range(0, _characterModel.RightHandWeapon.AttacksRight.Length); + _characterModel.RightHandWeapon.CurrentAttack = _characterModel.RightHandWeapon.AttacksRight[_currentAttackIndex]; + _currentAttackTime = _characterModel.RightHandWeapon.CurrentAttack.Time; + _animationController.PlayAttackAnimation(_characterModel.RightHandWeapon.SimpleAttackFromRightkAnimationHash, _currentAttackIndex); + _characterModel.RightWeaponBehavior.IsInteractable = true; + CanExit = false; + } + + public override void Execute() + { + ExitCheck(); + StayInBattle(); + } + + public override void OnExit() + { + _characterModel.RightWeaponBehavior.IsInteractable = false; + } + + public override void OnTearDown() + { + } + + private void ExitCheck() + { + if (_currentAttackTime > 0) + { + _currentAttackTime -= Time.deltaTime; + } + else + { + CanExit = true; + + if (_stateMachine.PreviousState == _stateMachine._battleTargetMovementState) + { + _stateMachine.ReturnState(); + } + } + } + + private void StayInBattle() + { + _characterModel.IsInBattleMode = true; + } + + #endregion + } +} diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/AttackingFromRightState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/AttackingFromRightState.cs.meta new file mode 100644 index 000000000..da830c75c --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/AttackingFromRightState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d67400fce4ff3ba4b95c0a522184f00a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleIdleState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleIdleState.cs new file mode 100644 index 000000000..957c80b7a --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleIdleState.cs @@ -0,0 +1,50 @@ +namespace BeastHunter +{ + public sealed class BattleIdleState : CharacterBaseState + { + #region ClassLifeCycle + + public BattleIdleState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.Battle; + IsTargeting = false; + IsAttacking = false; + CanExit = true; + CanBeOverriden = true; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + _animationController.PlayBattleIdleAnimation(_characterModel.LeftHandWeapon, _characterModel.RightHandWeapon); + } + + public override void Execute() + { + StayInBattle(); + } + + public override void OnExit() + { + + } + + public override void OnTearDown() + { + } + + private void StayInBattle() + { + _characterModel.IsInBattleMode = true; + } + + #endregion + } +} + + diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleIdleState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleIdleState.cs.meta new file mode 100644 index 000000000..5d0f4783a --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleIdleState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5121587c9b618bf4896cd761ec3aeb17 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleMovementState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleMovementState.cs new file mode 100644 index 000000000..cb2edb09d --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleMovementState.cs @@ -0,0 +1,165 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public sealed class BattleMovementState : CharacterBaseState + { + #region Constants + + private const float CAMERA_LOW_SIDE_ANGLE = 45f; + private const float CAMERA_HALF_SIDE_ANGLE = 90f; + private const float CAMERA_BACK_SIDE_ANGLE = 225f; + private const float CAMERA_BACK_ANGLE = 180f; + + #endregion + + + #region Fields + + private float _currentHorizontalInput; + private float _currentVerticalInput; + private float _currentAngleVelocity; + private float _targetSpeed; + private float _speedChangeLag; + private float _currentVelocity; + + #endregion + + + #region Properties + + private Transform CameraTransform { get; set; } + private float TargetDirection { get; set; } + private float CurrentDirecton { get; set; } + private float AdditionalDirection { get; set; } + private float CurrentAngle { get; set; } + private float MovementSpeed { get; set; } + private float SpeedIncreace { get; set; } + + #endregion + + + #region ClassLifeCycle + + public BattleMovementState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.Battle; + IsTargeting = false; + IsAttacking = false; + CanExit = true; + CanBeOverriden = true; + CameraTransform = Services.SharedInstance.CameraService.CharacterCamera.transform; + SpeedIncreace = _characterModel.CharacterCommonSettings.InBattleRunSpeed / + _characterModel.CharacterCommonSettings.InBattleWalkSpeed; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + _animationController.PlayBattleMovementAnimation(_characterModel.LeftHandWeapon, _characterModel.RightHandWeapon); + } + + public override void Execute() + { + CountSpeed(); + MovementControl(); + StayInBattle(); + } + + public override void OnExit() + { + _characterModel.AnimationSpeed = _characterModel.CharacterCommonSettings.AnimatorBaseSpeed; + } + + public override void OnTearDown() + { + } + + private void StayInBattle() + { + _characterModel.IsInBattleMode = true; + } + + private void MovementControl() + { + if (_characterModel.IsGrounded) + { + _currentHorizontalInput = _inputModel.inputStruct._inputTotalAxisX; + _currentVerticalInput = _inputModel.inputStruct._inputTotalAxisY; + + switch (_currentVerticalInput) + { + case 1: + AdditionalDirection = CAMERA_LOW_SIDE_ANGLE * _currentHorizontalInput; + break; + case -1: + switch (_currentHorizontalInput) + { + case 0: + AdditionalDirection = CAMERA_BACK_ANGLE; + break; + default: + AdditionalDirection = -CAMERA_BACK_SIDE_ANGLE * _currentHorizontalInput; + break; + } + break; + case 0: + AdditionalDirection = CAMERA_HALF_SIDE_ANGLE * _currentHorizontalInput; + break; + default: + break; + } + + CurrentDirecton = _characterModel.CharacterTransform.localEulerAngles.y; + TargetDirection = CameraTransform.localEulerAngles.y + AdditionalDirection; + + CurrentAngle = Mathf.SmoothDampAngle(CurrentDirecton, TargetDirection, ref _currentAngleVelocity, + _characterModel.CharacterCommonSettings.DirectionChangeLag); + + _characterModel.CharacterTransform.localRotation = Quaternion.Euler(0, CurrentAngle, 0); + _characterModel.CharacterData.MoveForward(_characterModel.CharacterTransform, MovementSpeed); + } + } + + private void CountSpeed() + { + if (_characterModel.IsMoving) + { + if (_inputModel.inputStruct._isInputRun) + { + _targetSpeed = _characterModel.CharacterCommonSettings.InBattleRunSpeed; + _characterModel.AnimationSpeed = SpeedIncreace; + } + else + { + _targetSpeed = _characterModel.CharacterCommonSettings.InBattleWalkSpeed; + _characterModel.AnimationSpeed = 1; + } + } + else + { + _targetSpeed = 0; + } + + if (_characterModel.CurrentSpeed < _targetSpeed) + { + _speedChangeLag = _characterModel.CharacterCommonSettings.InBattleAccelerationLag; + } + else + { + _speedChangeLag = _characterModel.CharacterCommonSettings.InBattleDecelerationLag; + } + + MovementSpeed = Mathf.SmoothDamp(_characterModel.CurrentSpeed, _targetSpeed, ref _currentVelocity, + _speedChangeLag); + } + + #endregion + } +} diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleMovementState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleMovementState.cs.meta new file mode 100644 index 000000000..ed5777fd8 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleMovementState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dbfb113b03bfd354b9fdb500a72e6cb6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleTargetMovementState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleTargetMovementState.cs new file mode 100644 index 000000000..8ef23993e --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleTargetMovementState.cs @@ -0,0 +1,159 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public sealed class BattleTargetMovementState : CharacterBaseState + { + #region Constants + + private const float CAMERA_LOW_SIDE_ANGLE = 45f; + private const float CAMERA_HALF_SIDE_ANGLE = 90f; + private const float CAMERA_BACK_SIDE_ANGLE = 225f; + private const float CAMERA_BACK_ANGLE = 180f; + private const float ANGLE_SPEED_INCREASE = 1.225f; + + #endregion + + + #region Fields + + private float _currentHorizontalInput; + private float _currentVerticalInput; + private float _currentAngleVelocity; + private float _targetSpeed; + private float _speedChangeLag; + private float _currentVelocity; + private float _angleSpeedIncrease; + + #endregion + + + #region Properties + + public Vector3 MoveDirection { get; private set; } + + public float MovementSpeed { get; private set; } + public float SpeedIncreace { get; private set; } + + #endregion + + + #region ClassLifeCycle + + public BattleTargetMovementState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.Battle; + IsTargeting = true; + IsAttacking = false; + CanExit = false; + CanBeOverriden = true; + SpeedIncreace = _characterModel.CharacterCommonSettings.InBattleRunSpeed / + _characterModel.CharacterCommonSettings.InBattleWalkSpeed; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + CanExit = false; + _animationController.PlayBattleTargetMovementAnimation(_characterModel.LeftHandWeapon, _characterModel.RightHandWeapon); + } + + public override void Execute() + { + ExitCheck(); + CountSpeed(); + MovementControl(); + StayInBattle(); + } + + public override void OnExit() + { + _characterModel.AnimationSpeed = _characterModel.CharacterCommonSettings.AnimatorBaseSpeed; + } + + public override void OnTearDown() + { + } + + private void ExitCheck() + { + if(_characterModel.ClosestEnemy == null) + { + CanExit = true; + } + } + + private void StayInBattle() + { + _characterModel.IsInBattleMode = true; + } + + private void MovementControl() + { + if (_characterModel.IsGrounded) + { + _currentHorizontalInput = _inputModel.inputStruct._inputTotalAxisX; + _currentVerticalInput = _inputModel.inputStruct._inputTotalAxisY; + _angleSpeedIncrease = _characterModel.IsMoving ? ANGLE_SPEED_INCREASE : 1; + + MoveDirection = (Vector3.forward * _currentVerticalInput + Vector3.right * _currentHorizontalInput) / + (Mathf.Abs(_currentVerticalInput) + Mathf.Abs(_currentHorizontalInput)) * _angleSpeedIncrease; + + if (_characterModel.ClosestEnemy != null) + { + Vector3 lookPos = _characterModel.ClosestEnemy.transform.position - _characterModel.CharacterTransform.position; + lookPos.y = 0; + Quaternion rotation = Quaternion.LookRotation(lookPos); + _characterModel.CharacterTransform.rotation = rotation; + } + if (_characterModel.IsMoving) + { + _characterModel.CharacterData.Move(_characterModel.CharacterTransform, MovementSpeed, MoveDirection); + } + } + } + + private void CountSpeed() + { + if (_characterModel.IsMoving) + { + if (_inputModel.inputStruct._isInputRun) + { + _targetSpeed = _characterModel.CharacterCommonSettings.InBattleRunSpeed; + _characterModel.AnimationSpeed = SpeedIncreace * ANGLE_SPEED_INCREASE; + } + else + { + _targetSpeed = _characterModel.CharacterCommonSettings.InBattleWalkSpeed; + _characterModel.AnimationSpeed = ANGLE_SPEED_INCREASE; + } + } + else + { + _targetSpeed = 0; + } + + if (_characterModel.CurrentSpeed < _targetSpeed) + { + _speedChangeLag = _characterModel.CharacterCommonSettings.InBattleAccelerationLag; + } + else + { + _speedChangeLag = _characterModel.CharacterCommonSettings.InBattleDecelerationLag; + } + + MovementSpeed = Mathf.SmoothDamp(_characterModel.CurrentSpeed, _targetSpeed, ref _currentVelocity, + _speedChangeLag); + } + + #endregion + } +} + + diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleTargetMovementState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleTargetMovementState.cs.meta new file mode 100644 index 000000000..89aaf9659 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/BattleTargetMovementState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 50526f0d5a023b048b2330db96b9a705 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/CharacterBaseState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/CharacterBaseState.cs new file mode 100644 index 000000000..ec31cbf91 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/CharacterBaseState.cs @@ -0,0 +1,53 @@ +namespace BeastHunter +{ + public abstract class CharacterBaseState + { + #region Fields + + protected readonly InputModel _inputModel; + protected readonly CharacterModel _characterModel; + protected CharacterAnimationController _animationController; + protected CharacterStateMachine _stateMachine; + + #endregion + + + #region Properties + + public CharacterBaseState NextState { get; set; } + public StateType Type { get; protected set; } + public bool IsTargeting { get; protected set; } + public bool IsAttacking { get; protected set; } + public bool CanExit { get; protected set; } + public bool CanBeOverriden { get; protected set; } + + #endregion + + + #region ClassLifeCycle + + public CharacterBaseState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) + { + _characterModel = characterModel; + _inputModel = inputModel; + _animationController = animationController; + _stateMachine = stateMachine; + } + + #endregion + + + #region Methods + + public abstract void Initialize(); + + public abstract void Execute(); + + public abstract void OnExit(); + + public abstract void OnTearDown(); + + #endregion + } +} diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/CharacterBaseState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/CharacterBaseState.cs.meta new file mode 100644 index 000000000..8afacec03 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/CharacterBaseState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 66deeb1fb9739ad48a50aab9553089db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DancingState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DancingState.cs new file mode 100644 index 000000000..cf23061eb --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DancingState.cs @@ -0,0 +1,55 @@ +namespace BeastHunter +{ + public sealed class DancingState : CharacterBaseState + { + #region Fields + + + #endregion + + + #region Properties + + + #endregion + + + #region ClassLifeCycle + + public DancingState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.Default; + IsTargeting = false; + IsAttacking = false; + CanExit = false; + CanBeOverriden = true; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + _animationController.PlayDancingAnimation(); + } + + public override void Execute() + { + + } + + public override void OnExit() + { + + } + + public override void OnTearDown() + { + } + + #endregion + } +} diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DancingState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DancingState.cs.meta new file mode 100644 index 000000000..81708a3dd --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DancingState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d067d30c98f910740bed561823a6465e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DeadState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DeadState.cs new file mode 100644 index 000000000..373d4e4ea --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DeadState.cs @@ -0,0 +1,56 @@ +namespace BeastHunter +{ + public sealed class DeadState : CharacterBaseState + { + #region Fields + + + #endregion + + + #region Properties + + + #endregion + + + #region ClassLifeCycle + + public DeadState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.NotActive; + IsTargeting = false; + IsAttacking = false; + CanExit = false; + CanBeOverriden = false; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + _animationController.PlayDeadAnimation(); + } + + public override void Execute() + { + + } + + public override void OnExit() + { + + } + + public override void OnTearDown() + { + } + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DeadState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DeadState.cs.meta new file mode 100644 index 000000000..a05e4c452 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DeadState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1999ada4f76d68f46873cd7722dd29fe +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DefaultIdleState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DefaultIdleState.cs new file mode 100644 index 000000000..218aee7eb --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DefaultIdleState.cs @@ -0,0 +1,43 @@ +namespace BeastHunter +{ + public sealed class DefaultIdleState : CharacterBaseState + { + #region ClassLifeCycle + + public DefaultIdleState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.Default; + IsTargeting = false; + IsAttacking = false; + CanExit = true; + CanBeOverriden = true; + } + + #endregion + + #region Methods + + public override void Initialize() + { + _animationController.PlayDefaultIdleAnimation(); + } + + public override void Execute() + { + + } + + public override void OnExit() + { + + } + + public override void OnTearDown() + { + } + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DefaultIdleState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DefaultIdleState.cs.meta new file mode 100644 index 000000000..0ecbac3ec --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DefaultIdleState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 34ca92463e1c972418605618d97794cc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DefaultMovementState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DefaultMovementState.cs new file mode 100644 index 000000000..2ee376cfd --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DefaultMovementState.cs @@ -0,0 +1,155 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public sealed class DefaultMovementState : CharacterBaseState + { + #region Constants + + private const float CAMERA_LOW_SIDE_ANGLE = 45f; + private const float CAMERA_HALF_SIDE_ANGLE = 90f; + private const float CAMERA_BACK_SIDE_ANGLE = 225f; + private const float CAMERA_BACK_ANGLE = 180f; + + #endregion + + + #region Fields + + private float _currentHorizontalInput; + private float _currentVerticalInput; + private float _currentAngleVelocity; + private float _targetSpeed; + private float _speedChangeLag; + private float _currentVelocity; + + #endregion + + + #region Properties + + private Transform CameraTransform { get; set; } + private float TargetDirection { get; set; } + private float CurrentDirecton { get; set; } + private float AdditionalDirection { get; set; } + private float CurrentAngle { get; set; } + private float MovementSpeed { get; set; } + + #endregion + + + #region ClassLifeCycle + + public DefaultMovementState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.Default; + IsTargeting = false; + IsAttacking = false; + CanExit = true; + CanBeOverriden = true; + CameraTransform = Services.SharedInstance.CameraService.CharacterCamera.transform; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + _animationController.PlayDefaultMovementAnimation(); + } + + public override void Execute() + { + CountSpeed(); + MovementControl(); + } + + public override void OnExit() + { + + } + + public override void OnTearDown() + { + } + + private void MovementControl() + { + if (_characterModel.IsGrounded) + { + _currentHorizontalInput = _inputModel.inputStruct._inputTotalAxisX; + _currentVerticalInput = _inputModel.inputStruct._inputTotalAxisY; + + switch (_currentVerticalInput) + { + case 1: + AdditionalDirection = CAMERA_LOW_SIDE_ANGLE * _currentHorizontalInput; + break; + case -1: + switch (_currentHorizontalInput) + { + case 0: + AdditionalDirection = CAMERA_BACK_ANGLE; + break; + default: + AdditionalDirection = -CAMERA_BACK_SIDE_ANGLE * _currentHorizontalInput; + break; + } + break; + case 0: + AdditionalDirection = CAMERA_HALF_SIDE_ANGLE * _currentHorizontalInput; + break; + default: + break; + } + + CurrentDirecton = _characterModel.CharacterTransform.localEulerAngles.y; + TargetDirection = CameraTransform.localEulerAngles.y + AdditionalDirection; + CurrentAngle = Mathf.SmoothDampAngle(CurrentDirecton, TargetDirection, ref _currentAngleVelocity, + _characterModel.CharacterCommonSettings.DirectionChangeLag); + + _characterModel.CharacterTransform.localRotation = Quaternion.Euler(0, CurrentAngle, 0); + _characterModel.CharacterData.MoveForward(_characterModel.CharacterTransform, MovementSpeed); + } + } + + private void CountSpeed() + { + if (_characterModel.IsMoving) + { + if (_inputModel.inputStruct._isInputRun) + { + _targetSpeed = _characterModel.CharacterCommonSettings.RunSpeed; + } + else + { + _targetSpeed = _characterModel.CharacterCommonSettings.WalkSpeed; + } + } + else + { + _targetSpeed = 0; + } + + if (_characterModel.CurrentSpeed < _targetSpeed) + { + _speedChangeLag = _characterModel.CharacterCommonSettings.AccelerationLag; + } + else + { + _speedChangeLag = _characterModel.CharacterCommonSettings.DecelerationLag; + } + + MovementSpeed = Mathf.SmoothDamp(_characterModel.CurrentSpeed, _targetSpeed, ref _currentVelocity, + _speedChangeLag); + } + + #endregion + } +} + + diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DefaultMovementState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DefaultMovementState.cs.meta new file mode 100644 index 000000000..b72e98050 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DefaultMovementState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ed1a1b13f4c2ea04884f031493d11600 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DodgingState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DodgingState.cs new file mode 100644 index 000000000..99ba6712f --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DodgingState.cs @@ -0,0 +1,56 @@ +namespace BeastHunter +{ + public sealed class DodgingState : CharacterBaseState + { + #region Fields + + + #endregion + + + #region Properties + + + #endregion + + + #region ClassLifeCycle + + public DodgingState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.Battle; + IsTargeting = false; + IsAttacking = false; + CanExit = false; + CanBeOverriden = false; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + + } + + public override void Execute() + { + + } + + public override void OnExit() + { + + } + + public override void OnTearDown() + { + } + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DodgingState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DodgingState.cs.meta new file mode 100644 index 000000000..9ca227edb --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/DodgingState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fee70b8f6ea507a4a93c168f2835f9b5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/FallOnGroundState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/FallOnGroundState.cs new file mode 100644 index 000000000..4393f1747 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/FallOnGroundState.cs @@ -0,0 +1,56 @@ +namespace BeastHunter +{ + public sealed class FallOnGroundState : CharacterBaseState + { + #region Fields + + + #endregion + + + #region Properties + + + #endregion + + + #region ClassLifeCycle + + public FallOnGroundState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.NotActive; + IsTargeting = false; + IsAttacking = false; + CanExit = false; + CanBeOverriden = true; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + + } + + public override void Execute() + { + + } + + public override void OnExit() + { + + } + + public override void OnTearDown() + { + } + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/FallOnGroundState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/FallOnGroundState.cs.meta new file mode 100644 index 000000000..18b2b07fd --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/FallOnGroundState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3f803526a727ccd4eb0f5ea00de227f7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/FallingState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/FallingState.cs new file mode 100644 index 000000000..b7d20c3ac --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/FallingState.cs @@ -0,0 +1,52 @@ +namespace BeastHunter +{ + public sealed class FallingState : CharacterBaseState + { + + #region ClassLifeCycle + + public FallingState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.NotActive; + IsTargeting = false; + IsAttacking = false; + CanExit = false; + CanBeOverriden = false; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + _animationController.PlayFallAnimation(); + } + + public override void Execute() + { + ExitCheck(); + } + + public override void OnExit() + { + + } + + public override void OnTearDown() + { + } + + private void ExitCheck() + { + if (_characterModel.IsGrounded) + { + CanExit = true; + } + } + + #endregion + } +} \ No newline at end of file diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/FallingState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/FallingState.cs.meta new file mode 100644 index 000000000..8b6289314 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/FallingState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 980b63315c418e84ea63550baa541022 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/GettingWeaponState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/GettingWeaponState.cs new file mode 100644 index 000000000..221fd9396 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/GettingWeaponState.cs @@ -0,0 +1,109 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public sealed class GettingWeaponState : CharacterBaseState + { + #region Fields + + private float _gettingTime; + private float _appearingTime; + + #endregion + + + #region ClassLifeCycle + + public GettingWeaponState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.Battle; + IsTargeting = false; + IsAttacking = false; + CanExit = false; + CanBeOverriden = false; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + if (_characterModel.LeftHandWeapon.WeaponHandType == WeaponHandType.TwoHanded) + { + _gettingTime = _characterModel.LeftHandWeapon.TimeToGet; + _appearingTime = _characterModel.LeftHandWeapon.TimeToAppear; + _animationController.PlayGettingWeaponAnimation(_characterModel.LeftHandWeapon.GettingAnimationHash); + } + else + { + //to refactor + _gettingTime = 0; + _appearingTime = 0; + } + + CanExit = false; + } + + public override void Execute() + { + AppearanceCheck(); + ExitCheck(); + StayInBattle(); + } + + public override void OnExit() + { + + } + + public override void OnTearDown() + { + } + + private void ExitCheck() + { + if (_gettingTime >= 0) + { + _gettingTime -= Time.deltaTime; + } + else + { + CanExit = true; + + if(NextState == null) + { + _stateMachine.SetState(_stateMachine._battleIdleState); + } + else + { + _stateMachine.SetState(NextState); + } + } + } + + private void AppearanceCheck() + { + if (_appearingTime >= 0) + { + _appearingTime -= Time.deltaTime; + + if(_appearingTime < 0) + { + Services.SharedInstance.InventoryService.ShowWeapons(_characterModel); + } + } + } + + private void StayInBattle() + { + _characterModel.IsInBattleMode = true; + } + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/GettingWeaponState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/GettingWeaponState.cs.meta new file mode 100644 index 000000000..98c13a916 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/GettingWeaponState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 357c0e049e1d56648a19206583beaede +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/JumpingState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/JumpingState.cs new file mode 100644 index 000000000..069776afc --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/JumpingState.cs @@ -0,0 +1,122 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public sealed class JumpingState : CharacterBaseState + { + #region Constants + + private const float NOT_CHECK_GROUND_TIME = 0.2f; + private const float EXIT_TIME = 1f; + private const float SPEED_FORCE_COMPENSATOR = 0.5f; + + #endregion + + + #region Fields + + private Vector3 _jumpVector; + private Vector3 _previousPosition; + private Vector3 _currentPosition; + private float _currentGroundCheckTime; + private float _currentExitTime; + private float _speedBeforeJump; + + #endregion + + + #region Properties + + private float JumpVerticalForce { get; set; } + private float JumpHorizontalForce { get; set; } + + #endregion + + + #region ClassLifeCycle + + public JumpingState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.Default; + IsTargeting = false; + IsAttacking = false; + CanExit = false; + CanBeOverriden = true; + JumpVerticalForce = _characterModel.CharacterCommonSettings.JumpVerticalForce; + JumpHorizontalForce = _characterModel.CharacterCommonSettings.JumpHorizontalForce; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + CanExit = false; + _speedBeforeJump = _characterModel.CurrentSpeed; + _currentGroundCheckTime = NOT_CHECK_GROUND_TIME; + _currentExitTime = EXIT_TIME; + _animationController.PlayJumpAnimation(); + UpdatePosition(); + } + + public override void Execute() + { + ExitCheck(); + Jumping(); + } + + public override void OnExit() + { + + } + + public override void OnTearDown() + { + } + + private void ExitCheck() + { + _currentGroundCheckTime -= Time.deltaTime; + _currentExitTime -= Time.deltaTime; + + if (_currentGroundCheckTime < 0 && (_characterModel.IsGrounded || _currentExitTime <= 0)) + { + CanExit = true; + } + } + + public void UpdatePosition() + { + _previousPosition = _currentPosition; + _currentPosition = _characterModel.CharacterTransform.position; + } + + public void Jumping() + { + UpdatePosition(); + + if(_currentPosition.y >= _previousPosition.y) + { + _jumpVector = _characterModel.CharacterTransform.position + (Vector3.up * + JumpVerticalForce * _currentExitTime / EXIT_TIME + _characterModel.CharacterTransform.forward * + (JumpHorizontalForce + _speedBeforeJump * SPEED_FORCE_COMPENSATOR)) * Time.smoothDeltaTime; + _characterModel.VerticalSpeed = 1; + } + else + { + _jumpVector = _characterModel.CharacterTransform.position + _characterModel.CharacterTransform.forward * + (JumpHorizontalForce + _speedBeforeJump * SPEED_FORCE_COMPENSATOR) * Time.smoothDeltaTime; + } + + _characterModel.CharacterTransform.position = Vector3.Lerp(_characterModel.CharacterTransform.position, + _jumpVector, 1); + } + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/JumpingState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/JumpingState.cs.meta new file mode 100644 index 000000000..833a28983 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/JumpingState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: edb9dc68e7c1c014ebbb232c6a87c6d8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/KickingState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/KickingState.cs new file mode 100644 index 000000000..9d21fc66b --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/KickingState.cs @@ -0,0 +1,56 @@ +namespace BeastHunter +{ + public sealed class KickingState : CharacterBaseState + { + #region Fields + + + #endregion + + + #region Properties + + + #endregion + + + #region ClassLifeCycle + + public KickingState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.Battle; + IsTargeting = false; + IsAttacking = false; + CanExit = false; + CanBeOverriden = true; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + + } + + public override void Execute() + { + + } + + public override void OnExit() + { + + } + + public override void OnTearDown() + { + } + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/KickingState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/KickingState.cs.meta new file mode 100644 index 000000000..5a1b23bda --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/KickingState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b540c16d2145cae4fba6514cff7fe115 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/LandingState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/LandingState.cs new file mode 100644 index 000000000..8ab268b79 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/LandingState.cs @@ -0,0 +1,55 @@ +namespace BeastHunter +{ + public sealed class LandingState : CharacterBaseState + { + #region Fields + + + #endregion + + + #region Properties + + + #endregion + + + #region ClassLifeCycle + + public LandingState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.NotActive; + IsTargeting = false; + IsAttacking = false; + CanExit = false; + CanBeOverriden = true; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + + } + + public override void Execute() + { + + } + + public override void OnExit() + { + + } + + public override void OnTearDown() + { + } + + #endregion + } +} diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/LandingState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/LandingState.cs.meta new file mode 100644 index 000000000..0a413c2c5 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/LandingState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f1cba483fa38a9047ab771ff25a09f7a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RemovingWeaponState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RemovingWeaponState.cs new file mode 100644 index 000000000..a1ce5a019 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RemovingWeaponState.cs @@ -0,0 +1,108 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public sealed class RemovingWeaponState : CharacterBaseState + { + #region Fields + + private float _removingTime; + private float _disappearingTime; + + #endregion + + + #region ClassLifeCycle + + public RemovingWeaponState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.Default; + IsTargeting = false; + IsAttacking = false; + CanExit = false; + CanBeOverriden = false; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + if (_characterModel.LeftHandWeapon.WeaponHandType == WeaponHandType.TwoHanded) + { + _removingTime = _characterModel.LeftHandWeapon.TimeToRemove; + _disappearingTime = _characterModel.LeftHandWeapon.TimeToDisappear; + _animationController.PlayGettingWeaponAnimation(_characterModel.LeftHandWeapon.RemovingAnimationHash); + } + else + { + //torefactor + _removingTime = 0; + _disappearingTime = 0; + } + + CanExit = false; + } + + public override void Execute() + { + AppearanceCheck(); + ExitCheck(); + StayOutBattle(); + } + + public override void OnExit() + { + + } + + public override void OnTearDown() + { + } + + private void ExitCheck() + { + if (_removingTime >= 0) + { + _removingTime -= Time.deltaTime; + } + else + { + CanExit = true; + + if(NextState == null) + { + _stateMachine.SetState(_stateMachine._defaultIdleState); + } + else + { + _stateMachine.SetState(NextState); + } + } + } + + private void AppearanceCheck() + { + if (_disappearingTime >= 0) + { + _disappearingTime -= Time.deltaTime; + + if (_disappearingTime < 0) + { + Services.SharedInstance.InventoryService.HideWepons(_characterModel); + } + } + } + + private void StayOutBattle() + { + _characterModel.IsInBattleMode = false; + } + + #endregion + } +} diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RemovingWeaponState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RemovingWeaponState.cs.meta new file mode 100644 index 000000000..b906b758d --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RemovingWeaponState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4396764843c964c489e49d3437e63dc4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RollingState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RollingState.cs new file mode 100644 index 000000000..857423d52 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RollingState.cs @@ -0,0 +1,176 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public sealed class RollingState : CharacterBaseState + { + #region Constants + + private const float ROLL_LOW_SIDE_ANGLE = 45f; + private const float ROLL_HALF_SIDE_ANGLE = 90f; + private const float ROLL_BACK_SIDE_ANGLE = 225f; + private const float ROLL_BACK_ANGLE = 180f; + private const float ANGLE_SPEED_INCREASE = 1.225f; + + #endregion + + + #region Fields + + private Vector3 MoveDirection; + private Collider ClosestEnemy; + private float _currentHorizontalInput; + private float _currentVerticalInput; + private float _currentAngleVelocity; + + #endregion + + + #region Properties + + private Transform CameraTransform { get; set; } + private float RollTime { get; set; } + private float TargetDirection { get; set; } + private float CurrentDirecton { get; set; } + private float AdditionalDirection { get; set; } + private float CurrentAngle { get; set; } + + #endregion + + + #region ClassLifeCycle + + public RollingState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.Battle; + IsTargeting = false; + IsAttacking = false; + CanExit = false; + CanBeOverriden = false; + CameraTransform = Services.SharedInstance.CameraService.CharacterCamera.transform; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + if (_characterModel.IsMoving) + { + RollTime = _characterModel.CharacterCommonSettings.RollTime; + _characterModel.AnimationSpeed = _characterModel.CharacterCommonSettings.RollAnimationSpeed; + CanExit = false; + CanBeOverriden = false; + _currentHorizontalInput = _inputModel.inputStruct._inputTotalAxisX; + _currentVerticalInput = _inputModel.inputStruct._inputTotalAxisY; + _animationController.PlayRollForwardAnimation(); + } + else + { + CheckNextState(); + } + } + + public override void Execute() + { + ExitCheck(); + Roll(); + StayInBattle(); + } + + public override void OnExit() + { + _characterModel.AnimationSpeed = _characterModel.CharacterCommonSettings.AnimatorBaseSpeed; + } + + public override void OnTearDown() + { + } + + private void ExitCheck() + { + RollTime -= Time.deltaTime; + + if (RollTime <= 0) + { + CheckNextState(); + } + } + + private void CheckNextState() + { + CanExit = true; + CanBeOverriden = true; + + if (NextState == null) + { + if (_characterModel.IsMoving) + { + _stateMachine.SetState(_stateMachine._battleMovementState); + } + else + { + _stateMachine.SetState(_stateMachine._battleIdleState); + } + } + else + { + _stateMachine.SetState(NextState); + } + } + + private void Roll() + { + if (RollTime > 0) + { + if (_characterModel.IsGrounded) + { + switch (_currentVerticalInput) + { + case 1: + AdditionalDirection = ROLL_LOW_SIDE_ANGLE * _currentHorizontalInput; + break; + case -1: + switch (_currentHorizontalInput) + { + case 0: + AdditionalDirection = ROLL_BACK_ANGLE; + break; + default: + AdditionalDirection = -ROLL_BACK_SIDE_ANGLE * _currentHorizontalInput; + break; + } + break; + case 0: + AdditionalDirection = ROLL_HALF_SIDE_ANGLE * _currentHorizontalInput; + break; + default: + break; + } + + CurrentDirecton = _characterModel.CharacterTransform.localEulerAngles.y; + TargetDirection = CameraTransform.localEulerAngles.y + AdditionalDirection; + + CurrentAngle = Mathf.SmoothDampAngle(CurrentDirecton, TargetDirection, ref _currentAngleVelocity, + _characterModel.CharacterCommonSettings.DirectionChangeLag); + + _characterModel.CharacterTransform.localRotation = Quaternion.Euler(0, CurrentAngle, 0); + _characterModel.CharacterData.MoveForward(_characterModel.CharacterTransform, _characterModel.CharacterData. + _characterCommonSettings.RollFrameDistance); + } + } + } + + + private void StayInBattle() + { + _characterModel.IsInBattleMode = true; + } + + #endregion + } +} diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RollingState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RollingState.cs.meta new file mode 100644 index 000000000..05d77f5f0 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RollingState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c34bad78cad6e1346a1fcf3728d2e76f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RollingTargetState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RollingTargetState.cs new file mode 100644 index 000000000..eb8670e99 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RollingTargetState.cs @@ -0,0 +1,151 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public sealed class RollingTargetState : CharacterBaseState + { + #region Constants + + private const float ROLL_LOW_SIDE_ANGLE = 45f; + private const float ROLL_HALF_SIDE_ANGLE = 90f; + private const float ROLL_BACK_SIDE_ANGLE = 225f; + private const float ROLL_BACK_ANGLE = 180f; + private const float ANGLE_SPEED_INCREASE = 1.225f; + + #endregion + + + #region Fields + + private Vector3 MoveDirection; + private float _angleSpeedIncrease; + private float _currentHorizontalInput; + private float _currentVerticalInput; + + #endregion + + + #region Properties + + private float RollTime { get; set; } + + #endregion + + + #region ClassLifeCycle + + public RollingTargetState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.Battle; + IsTargeting = true; + IsAttacking = false; + CanExit = false; + CanBeOverriden = false; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + if (CanRoll()) + { + _currentHorizontalInput = _inputModel.inputStruct._inputTotalAxisX; + _currentVerticalInput = _inputModel.inputStruct._inputTotalAxisY; + RollTime = _characterModel.CharacterCommonSettings.RollTime; + _characterModel.AnimationSpeed = _characterModel.CharacterCommonSettings.RollAnimationSpeed; + PrepareRoll(_currentHorizontalInput, _currentVerticalInput); + CanExit = false; + CanBeOverriden = false; + } + else + { + CheckNextState(); + } + } + + public override void Execute() + { + ExitCheck(); + Roll(); + StayInBattle(); + } + + public override void OnExit() + { + _characterModel.AnimationSpeed = _characterModel.CharacterCommonSettings.AnimatorBaseSpeed; + } + + public override void OnTearDown() + { + } + + private void ExitCheck() + { + RollTime -= Time.deltaTime; + + if (RollTime <= 0) + { + CheckNextState(); + } + } + + private void CheckNextState() + { + CanExit = true; + CanBeOverriden = true; + + if (NextState == null) + { + _stateMachine.ReturnState(); + } + else + { + _stateMachine.SetState(NextState); + } + } + + private bool CanRoll() + { + return _inputModel.inputStruct._inputAxisX != 0 || _inputModel.inputStruct._inputAxisY != 0 ? true : false; + } + + private void Roll() + { + if (RollTime > 0) + { + if (_characterModel.ClosestEnemy != null) + { + Vector3 lookPos = _characterModel.ClosestEnemy.transform.position - _characterModel.CharacterTransform.position; + lookPos.y = 0; + Quaternion rotation = Quaternion.LookRotation(lookPos); + _characterModel.CharacterTransform.rotation = rotation; + } + + _characterModel.CharacterData.Move(_characterModel.CharacterTransform, + _characterModel.CharacterCommonSettings.RollFrameDistance, MoveDirection); + } + } + + private void PrepareRoll(float rollingX, float rollingY) + { + _angleSpeedIncrease = rollingX != 0 && rollingY != 0 ? ANGLE_SPEED_INCREASE : 1; + + MoveDirection = (Vector3.forward * rollingY + Vector3.right * rollingX) / (Mathf.Abs(rollingY) + + Mathf.Abs(rollingX)) * _angleSpeedIncrease; + + _animationController.PlayRollAnimation(rollingX, rollingY, _characterModel.LeftHandWeapon, _characterModel.RightHandWeapon); + } + + private void StayInBattle() + { + _characterModel.IsInBattleMode = true; + } + + #endregion + } +} diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RollingTargetState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RollingTargetState.cs.meta new file mode 100644 index 000000000..c59831153 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/RollingTargetState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bc16630ad99ac724cba97b93cb7e63b6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/StunnedState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/StunnedState.cs new file mode 100644 index 000000000..637966cb2 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/StunnedState.cs @@ -0,0 +1,79 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public sealed class StunnedState : CharacterBaseState + { + #region Constants + + private const float EXIT_TIME = 1f; + + #endregion + + + #region Properties + + private float ExitTime { get; set; } + + #endregion + + + #region ClassLifeCycle + + public StunnedState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.Battle; + IsTargeting = false; + IsAttacking = false; + CanExit = false; + CanBeOverriden = false; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + ExitTime = EXIT_TIME; + CanExit = false; + _animationController.PlayStunnedAnimation(); + } + + public override void Execute() + { + ExitCheck(); + } + + public override void OnExit() + { + + } + + public override void OnTearDown() + { + } + + private void ExitCheck() + { + if(ExitTime > 0) + { + ExitTime -= Time.deltaTime; + } + else + { + CanExit = true; + + if (_stateMachine.PreviousState == _stateMachine._battleTargetMovementState) + { + _stateMachine.ReturnState(); + } + } + } + + #endregion + } +} \ No newline at end of file diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/StunnedState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/StunnedState.cs.meta new file mode 100644 index 000000000..726ac2a9f --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/StunnedState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2566e9c821b6f0948b93b475d7b114bd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/TalkingState.cs b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/TalkingState.cs new file mode 100644 index 000000000..8a1c55eaf --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/TalkingState.cs @@ -0,0 +1,62 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public sealed class TalkingState : CharacterBaseState + { + #region Constants + + #endregion + + + #region Fields + + private Collider _npcTargetCollider; + + #endregion + + + #region Properties + + #endregion + + + #region ClassLifeCycle + + public TalkingState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, + CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) + { + Type = StateType.NotActive; + IsTargeting = false; + IsAttacking = false; + CanExit = false; + CanBeOverriden = false; + } + + #endregion + + + #region Methods + + public override void Initialize() + { + _animationController.PlayDefaultIdleAnimation(); + } + + public override void Execute() + { + } + + public override void OnExit() + { + } + + public override void OnTearDown() + { + } + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Character/StateMachine/States/TalkingState.cs.meta b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/TalkingState.cs.meta new file mode 100644 index 000000000..6985eb437 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/StateMachine/States/TalkingState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 264eb29f5ead05146ba32061a23dc107 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Character/WeaponHitBoxBehavior.cs b/Assets/Scripts/To_Refactoring/Character/WeaponHitBoxBehavior.cs new file mode 100644 index 000000000..b5ffe7723 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/WeaponHitBoxBehavior.cs @@ -0,0 +1,7 @@ +namespace BeastHunter +{ + public sealed class WeaponHitBoxBehavior : InteractableObjectBehavior + { + + } +} diff --git a/Assets/Scripts/To_Refactoring/Character/WeaponHitBoxBehavior.cs.meta b/Assets/Scripts/To_Refactoring/Character/WeaponHitBoxBehavior.cs.meta new file mode 100644 index 000000000..a37df09ee --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Character/WeaponHitBoxBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c08723c05f94e6445b7b72f09928a1a1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Enemies.meta b/Assets/Scripts/To_Refactoring/Enemies.meta new file mode 100644 index 000000000..1e54d85fb --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0cd79f65333112746a9da454007b2307 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab.meta b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab.meta new file mode 100644 index 000000000..376893f5f --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8523110f86719324692df07b0d0302f3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/CrabPtojectileBehaviour.cs b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/CrabPtojectileBehaviour.cs new file mode 100644 index 000000000..26e1f822d --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/CrabPtojectileBehaviour.cs @@ -0,0 +1,47 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public class CrabPtojectileBehaviour : UnityEngine.MonoBehaviour, IDealDamage + { + #region Fields + + public Damage Damage; + public BaseStatsClass Stats; + + #endregion + + + #region UnityMethods + + private void Awake() + { + Destroy(gameObject, 5); + } + + private void OnCollisionEnter(Collision collision) + { + if (collision.transform.CompareTag(TagManager.PLAYER) && + collision.transform.GetComponent() != null) + { + DealDamage(collision.transform.GetComponent(), Damage); + Destroy(gameObject); + } + } + + #endregion + + + #region Methods + + public void DealDamage(InteractableObjectBehavior enemy, Damage damage) + { + InteractableObjectBehavior enemyBehavior = enemy.GetComponent(); + enemyBehavior.OnTakeDamageHandler(Services.SharedInstance.AttackService.CountDamage(damage, Stats, enemyBehavior.Stats)); + } + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/CrabPtojectileBehaviour.cs.meta b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/CrabPtojectileBehaviour.cs.meta new file mode 100644 index 000000000..fda9927c2 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/CrabPtojectileBehaviour.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5933ee79e2d8d27428c17b8442261d64 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabBehaviour.cs b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabBehaviour.cs new file mode 100644 index 000000000..729f4984f --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabBehaviour.cs @@ -0,0 +1,10 @@ +using System; + + +namespace BeastHunter +{ + public class GiantMudCrabBehaviour : InteractableObjectBehavior + { + + } +} diff --git a/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabBehaviour.cs.meta b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabBehaviour.cs.meta new file mode 100644 index 000000000..14f6be372 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabBehaviour.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6520811c2a660d549b82365a6d735ef4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabController.cs b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabController.cs new file mode 100644 index 000000000..03ee38767 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabController.cs @@ -0,0 +1,132 @@ +using UnityEngine; +using UnityEngine.AI; + +namespace BeastHunter +{ + public class GiantMudCrabController : IAwake, IUpdate, ITearDown + { + #region Fields + + private readonly GameContext _context; + + #endregion + + + #region ClassLifeCycle + + public GiantMudCrabController(GameContext context) + { + _context = context; + } + + #endregion + + + #region IUpdate + + public void Updating() + { + _context.GiantMudCrabModel.Execute(); + } + + #endregion + + + #region IAwake + + public void OnAwake() + { + _context.GiantMudCrabModel.CrabAgent = _context.GiantMudCrabModel.Crab.GetComponent(); + _context.GiantMudCrabModel.GiantMudCrabData.NextAttackRate = 0; + + var Crabs = _context.GetTriggers(InteractableObjectType.Crab); + foreach (var trigger in Crabs) + { + var giantMudCrabBehaviour = trigger as GiantMudCrabBehaviour; + giantMudCrabBehaviour.OnFilterHandler += OnFilterHandler; + giantMudCrabBehaviour.OnTriggerEnterHandler += OnTriggerEnterHandler; + giantMudCrabBehaviour.OnTriggerExitHandler += OnTriggerExitHandler; + giantMudCrabBehaviour.OnTakeDamageHandler += OnTakeDamage; + giantMudCrabBehaviour.Stats = _context.GiantMudCrabModel.GiantMudCrabStruct.Stats; + Debug.Log("Activate"); + } + } + + #endregion + + + #region ITearDownController + + public void TearDown() + { + var Crabs = _context.GetTriggers(InteractableObjectType.Crab); + foreach (var trigger in Crabs) + { + var giantMudCrabBehaviour = trigger as GiantMudCrabBehaviour; + giantMudCrabBehaviour.OnFilterHandler -= OnFilterHandler; + giantMudCrabBehaviour.OnTriggerEnterHandler -= OnTriggerEnterHandler; + giantMudCrabBehaviour.OnTriggerExitHandler -= OnTriggerExitHandler; + giantMudCrabBehaviour.OnTakeDamageHandler -= OnTakeDamage; + } + } + + #endregion + + + #region Methods + + private void OnTakeDamage(Damage damage) + { + if (_context.GiantMudCrabModel.GiantMudCrabStruct.IsDigIn) + { + _context.GiantMudCrabModel.CurrentHealth -= damage.PhysicalDamage / 2; + Debug.Log("crab got " + damage.PhysicalDamage/2 + " damage"); + } + else + { + _context.GiantMudCrabModel.CurrentHealth -= damage.PhysicalDamage; + Debug.Log("crab got " + damage.PhysicalDamage + " damage"); + } + + float stunProbability = Random.Range(0f, 1f); + + if(damage.StunProbability > stunProbability) + { + Debug.Log("crab should be stunned"); + } + + if(_context.GiantMudCrabModel.CurrentHealth <= 0) + { + _context.GiantMudCrabModel.GiantMudCrabStruct.IsDead = true; + Debug.Log("The crab is dead"); + _context.GiantMudCrabModel.Crab.GetComponent().material.color = Color.red; + _context.GiantMudCrabModel.Crab.GetComponent().enabled = false; + Services.SharedInstance.EventManager.TriggerEvent(GameEventTypes.NpcDie, new EnemyDieArgs(_context.GiantMudCrabModel.GiantMudCrabTransform.GetComponent().GetInfo().Item1,0)); + } + } + + private bool OnFilterHandler(Collider tagObject) + { + return tagObject.CompareTag(TagManager.PLAYER); + } + + private void OnTriggerEnterHandler(ITrigger enteredObject, Collider other) + { + enteredObject.IsInteractable = true; + _context.GiantMudCrabModel.GiantMudCrabStruct.CanAttack = true; + _context.GiantMudCrabModel.GiantMudCrabStruct.IsPatrol = false; + Debug.Log("Enter"); + } + + private void OnTriggerExitHandler(ITrigger enteredObject, Collider other) + { + enteredObject.IsInteractable = false; + _context.GiantMudCrabModel.GiantMudCrabStruct.CanAttack = false; + _context.GiantMudCrabModel.GiantMudCrabStruct.IsPatrol = true; + Debug.Log("Exit"); + } + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabController.cs.meta b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabController.cs.meta new file mode 100644 index 000000000..109d06dc8 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: db5e4ad9688628d4099f91f7551b827e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabData.cs b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabData.cs new file mode 100644 index 000000000..36b390e17 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabData.cs @@ -0,0 +1,88 @@ +using UnityEngine; +using UnityEngine.AI; + + +namespace BeastHunter +{ + [CreateAssetMenu(fileName = "NewData", menuName = "CreateData/GiantMudCrab", order = 0)] + public sealed class GiantMudCrabData : ScriptableObject + { + #region Fields + + public GiantMudCrabStruct GiantMudCrabStruct; + private float _idleTime = 0; + private Vector3 _destination; + public float NextAttackRate = 0; + + #endregion + + + #region Metods + + public void Patrol(NavMeshAgent CrabAgent, Vector3 SpawnPoint, float PatrolDistance, bool IsPatrol) + { + _idleTime -= Time.deltaTime; + if (CrabAgent.pathPending || CrabAgent.remainingDistance > 0.1f) + return; + else if (IsPatrol && _idleTime <= 0) + { + _destination = PatrolDistance * Random.insideUnitCircle; + } + if (_idleTime <= 0) + { + _idleTime = Random.Range(0, 15); + } + CrabAgent.destination = _destination; + } + + public void Attack(GiantMudCrabStruct giantMudCrabStruct, NavMeshAgent CrabAgent, GameObject Target, GameObject Prefab) + { + float DistanceBetweenTargetAndPrefab = Vector3.Distance(Target.transform.position, Prefab.transform.position); + if (giantMudCrabStruct.CanAttack && !giantMudCrabStruct.IsDigIn) + { + if (DistanceBetweenTargetAndPrefab <= giantMudCrabStruct.AttackRange) + { + CrabAgent.isStopped = true; + CrabAgent.ResetPath(); + RotateTowards(Target.transform, Prefab.transform); + if (Time.time >= NextAttackRate) + { + Debug.Log("Attacking"); + new GiantMudCrabProjectile(giantMudCrabStruct.AttackDamage, giantMudCrabStruct.Stats, Target.transform, Prefab.transform.GetChild(0), giantMudCrabStruct.CrabProjectile); + NextAttackRate = giantMudCrabStruct.AttackSpeed + Time.time; + } + } + else if (DistanceBetweenTargetAndPrefab > giantMudCrabStruct.AttackRange) + { + CrabAgent.destination = Target.transform.position; + } + } + } + + public bool DigIn(GameObject Prefab, GameObject Target, float DiggingDistance, float CurrentHealth, float MaxHealth, bool IsDigIn) + { + float DistanceBetweenTargetAndPrefab = Vector3.Distance(Target.transform.position, Prefab.transform.position); + if (DistanceBetweenTargetAndPrefab < DiggingDistance && CurrentHealth <= MaxHealth / 3) + { + IsDigIn = true; + return IsDigIn; + } + IsDigIn = false; + return IsDigIn; + } + + public void BackHome(Vector3 HomePoint, Transform Prefab) + { + + } + + public void RotateTowards(Transform target, Transform Prefab) + { + Vector3 direction = (target.position - Prefab.transform.position).normalized; + Quaternion lookRotation = Quaternion.LookRotation(direction); + Prefab.transform.rotation = Quaternion.Slerp(Prefab.transform.rotation, lookRotation, Time.deltaTime * 3); + } + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabData.cs.meta b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabData.cs.meta new file mode 100644 index 000000000..1b09f553b --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c43b53840e1642541bb3128d171f3e82 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabInitilizeController.cs b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabInitilizeController.cs new file mode 100644 index 000000000..ab48dae87 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabInitilizeController.cs @@ -0,0 +1,42 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + + +namespace BeastHunter +{ + public sealed class GiantMudCrabInitilizeController : IAwake + { + #region Field + + GameContext _context; + + #endregion + + + #region ClassLifeCycle + + public GiantMudCrabInitilizeController(GameContext context) + { + _context = context; + } + + #endregion + + + #region IAwake + + public void OnAwake() + { + var GiantMudCrabData = Data.GiantMudCrabData; + Vector3 spawnPoint = Vector3.zero; + Services.SharedInstance.PhysicsService.FindGround(GiantMudCrabData.GiantMudCrabStruct.SpawnPoint, out spawnPoint); + GameObject instance = GameObject.Instantiate(GiantMudCrabData.GiantMudCrabStruct.Prefab, spawnPoint, Quaternion.identity); + GiantMudCrabModel GiantMudCrab = new GiantMudCrabModel(instance, GiantMudCrabData); + _context.GiantMudCrabModel = GiantMudCrab; + } + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabInitilizeController.cs.meta b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabInitilizeController.cs.meta new file mode 100644 index 000000000..1ebdfd1f2 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabInitilizeController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 49d7c471ccad5ab428a36bf074abcc79 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabModel.cs b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabModel.cs new file mode 100644 index 000000000..213eee138 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabModel.cs @@ -0,0 +1,58 @@ +using UnityEngine; +using UnityEngine.AI; + + +namespace BeastHunter +{ + public sealed class GiantMudCrabModel + { + #region Properties + + public SphereCollider GiantMudCrabCollider { get; } + public Transform GiantMudCrabTransform { get; } + public GiantMudCrabData GiantMudCrabData; + public GiantMudCrabStruct GiantMudCrabStruct; + public NavMeshAgent CrabAgent; + public GameObject Player; + public GameObject Crab; + public Transform CrabMouth; + + public float CurrentHealth; + + #endregion + + + #region ClassLifeCycle + + public GiantMudCrabModel(GameObject prefab, GiantMudCrabData giantMudCrabData) + { + GiantMudCrabData = giantMudCrabData; + GiantMudCrabStruct = giantMudCrabData.GiantMudCrabStruct; + GiantMudCrabTransform = prefab.transform; + Player = GameObject.FindGameObjectWithTag("Player"); + Crab = prefab; + CrabMouth = prefab.transform.GetChild(0); + CurrentHealth = GiantMudCrabData.GiantMudCrabStruct.CurrentHealth; + } + + #endregion + + + #region Metods + + public void Execute() + { + if (!GiantMudCrabStruct.IsDead) + { + if (!GiantMudCrabStruct.IsDigIn) + { + GiantMudCrabData.Patrol(CrabAgent, GiantMudCrabStruct.SpawnPoint, GiantMudCrabStruct.PatrolDistance, GiantMudCrabStruct.IsPatrol); + GiantMudCrabData.Attack(GiantMudCrabStruct, CrabAgent, Player, Crab); + } + GiantMudCrabStruct.IsDigIn = GiantMudCrabData.DigIn(Crab, Player, GiantMudCrabStruct.DiggingDistance, CurrentHealth, GiantMudCrabStruct.MaxHealth, GiantMudCrabStruct.IsDigIn); + } + } + + #endregion + } +} diff --git a/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabModel.cs.meta b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabModel.cs.meta new file mode 100644 index 000000000..818f4224a --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabModel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aef12845a07a5c244a19246578d56440 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabProjectile.cs b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabProjectile.cs new file mode 100644 index 000000000..4248fb436 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabProjectile.cs @@ -0,0 +1,35 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public class GiantMudCrabProjectile + { + #region Fields + + public Damage Damage; + public GameObject Mud; + public Rigidbody RB; + + #endregion + + + #region ClassLifeCycle + + public GiantMudCrabProjectile(Damage damage, BaseStatsClass stats, Transform player, Transform CrabMouth, GameObject Prefab) + { + Damage = damage; + Prefab.GetComponent().Damage = Damage; + Prefab.GetComponent().Stats = stats; + Mud = GameObject.Instantiate(Prefab, CrabMouth.position, Quaternion.identity); + RB = Mud.GetComponent(); + Vector3 forceVector = player.position - Mud.transform.position; + RB.AddForce(forceVector * 100); + } + + #endregion + + } +} + + diff --git a/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabProjectile.cs.meta b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabProjectile.cs.meta new file mode 100644 index 000000000..c670a8ab2 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabProjectile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fc7ba3ea00fb62349b3b110b91b86d5e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabStruct.cs b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabStruct.cs new file mode 100644 index 000000000..0e5253a50 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabStruct.cs @@ -0,0 +1,51 @@ +using System; +using UnityEngine; + + +namespace BeastHunter +{ + [Serializable] + public struct GiantMudCrabStruct + { + #region Fields + + public Damage AttackDamage; + + public BaseStatsClass Stats; + + public float MoveSpeed; + + public float AttackSpeed; + + public float AttackRange; + + public float MaxHealth; + + public float CurrentHealth; + + public float PatrolDistance; + + public float TriggerDistance; + + public float DiggingDistance; + + public GameObject Prefab; + + public Vector3 SpawnPoint; + + public GameObject CrabProjectile; + + public Transform CrabMouth; + + public bool CanAttack; + + public bool IsDigIn; + + public bool IsPatrol; + + public bool IsDead; + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabStruct.cs.meta b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabStruct.cs.meta new file mode 100644 index 000000000..7df6ae791 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Enemies/GiantMudCrab/GiantMudCrabStruct.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3f48899854c02654daf16dcf61a36768 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory.meta b/Assets/Scripts/To_Refactoring/Inventory.meta new file mode 100644 index 000000000..5e67d8de2 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0d3e2826cdc7f7c4eba12a7824e61603 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/BaseItem.cs b/Assets/Scripts/To_Refactoring/Inventory/BaseItem.cs new file mode 100644 index 000000000..81c41b699 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/BaseItem.cs @@ -0,0 +1,15 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public class BaseItem : ScriptableObject + { + #region Fields + + public ItemStruct ItemStruct; + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Inventory/BaseItem.cs.meta b/Assets/Scripts/To_Refactoring/Inventory/BaseItem.cs.meta new file mode 100644 index 000000000..408649d85 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/BaseItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 164d03bc3734ae84f90bcbe61ecf45d2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/BodyParts.cs b/Assets/Scripts/To_Refactoring/Inventory/BodyParts.cs new file mode 100644 index 000000000..184f29a68 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/BodyParts.cs @@ -0,0 +1,15 @@ +namespace BeastHunter +{ + public enum BodyParts + { + Head, + Shoulders, + Torso, + Arms, + Hips, + Legs, + Feet, + None + } +} + diff --git a/Assets/Scripts/To_Refactoring/Inventory/BodyParts.cs.meta b/Assets/Scripts/To_Refactoring/Inventory/BodyParts.cs.meta new file mode 100644 index 000000000..035bee1ad --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/BodyParts.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ab31195066cd71449ad829ab834cdd89 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/ClothItem.cs b/Assets/Scripts/To_Refactoring/Inventory/ClothItem.cs new file mode 100644 index 000000000..8e723b5f9 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/ClothItem.cs @@ -0,0 +1,128 @@ +using UnityEngine; + + +namespace BeastHunter +{ + [CreateAssetMenu(fileName = "NewCloth", menuName = "CreateItem/CreateCloth", order = 0)] + public class ClothItem : BaseItem + { + #region Fields + + public BodyParts BodyParts = BodyParts.None; + public PocketInfo[] PocketInfos; + + #endregion + + + #region Properties + + public bool HasEmptyPocket + { + get + { + bool foundEmptyPocket = false; + + foreach (var pocket in PocketInfos) + { + if (pocket.ItemInPocket == null) foundEmptyPocket = true; + } + + return foundEmptyPocket; + } + } + + public bool HasItems + { + get + { + bool foundItem = false; + + foreach (var pocket in PocketInfos) + { + if (pocket.ItemInPocket != null) foundItem = true; + } + + return foundItem; + } + } + + public bool HasWeapons + { + get + { + return WeaponQuantity > 0; + } + } + + public int WeaponQuantity + { + get + { + int weaponQuantity = 0; + + foreach (var pocket in PocketInfos) + { + if (pocket.ItemInPocket?.ItemStruct.ItemType == ItemType.Weapon) + { + weaponQuantity++; + } + } + + return weaponQuantity; + } + } + + #endregion + + + #region Methods + + public bool SetItemInEmptyPocket(BaseItem item) + { + bool isItemSet = false; + + if (HasEmptyPocket) + { + for (int pocket = 0; pocket < PocketInfos.Length - 1; pocket++) + { + if (PocketInfos[pocket].ItemTypeInPocket == item.ItemStruct.ItemType && + PocketInfos[pocket].SlotEnum == item.ItemStruct.SlotSize && + PocketInfos[pocket].ItemInPocket == null) + { + PocketInfos[pocket].ItemInPocket = item; + isItemSet = true; + } + } + } + + return isItemSet; + } + + public WeaponItem[] GetWeapons() + { + if (HasWeapons) + { + WeaponItem[] weaponItems = new WeaponItem[WeaponQuantity]; + int enumerator = 0; + + foreach (var pocket in PocketInfos) + { + if (pocket.ItemInPocket.ItemStruct.ItemType == ItemType.Weapon) + { + weaponItems[enumerator] = pocket.ItemInPocket as WeaponItem; + enumerator++; + } + } + + return weaponItems; + } + else + { + return new WeaponItem[0]; + } + } + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Inventory/ClothItem.cs.meta b/Assets/Scripts/To_Refactoring/Inventory/ClothItem.cs.meta new file mode 100644 index 000000000..0f4535065 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/ClothItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4c66b5a7aea9b07418dd89a7d55218da +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop.meta b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop.meta new file mode 100644 index 000000000..9cbb92ab7 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5d4b80593c513944083ac0be20c197b6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DragAndDropCell.cs b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DragAndDropCell.cs new file mode 100644 index 000000000..f6c06beab --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DragAndDropCell.cs @@ -0,0 +1,314 @@ +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; +using System.Collections; + +namespace BeastHunter +{ + [RequireComponent(typeof(Image))] + public class DragAndDropCell : UnityEngine.MonoBehaviour, IDropHandler + { + public class DropEventDescriptor + { + public TriggerType triggerType; + public DragAndDropCell sourceCell; + public DragAndDropCell destinationCell; + public DragAndDropItem item; + public bool permission; + } + + public SlotSize SlotSize; + public BodyParts BodyParts = BodyParts.None; + public CellType cellType = CellType.Swap; + public bool unlimitedSource = false; + public bool IsOnInventory = false; + + private DragAndDropItem myDadItem; + + void OnEnable() + { + DragAndDropItem.OnItemDragStartEvent += OnAnyItemDragStart; + DragAndDropItem.OnItemDragEndEvent += OnAnyItemDragEnd; + UpdateMyItem(); + } + + void OnDisable() + { + DragAndDropItem.OnItemDragStartEvent -= OnAnyItemDragStart; + DragAndDropItem.OnItemDragEndEvent -= OnAnyItemDragEnd; + StopAllCoroutines(); + } + + private void OnAnyItemDragStart(DragAndDropItem item) + { + UpdateMyItem(); + if (myDadItem != null) + { + myDadItem.MakeRaycast(false); + if (myDadItem == item) + { + switch (cellType) + { + case CellType.DropOnly: + DragAndDropItem.icon.SetActive(false); + break; + } + } + } + } + + private void OnAnyItemDragEnd(DragAndDropItem item) + { + UpdateMyItem(); + if (myDadItem != null) + { + myDadItem.MakeRaycast(true); + } + } + + public void OnDrop(PointerEventData data) + { + if (DragAndDropItem.icon != null) + { + DragAndDropItem item = DragAndDropItem.draggedItem; + DragAndDropCell sourceCell = DragAndDropItem.sourceCell; + if (DragAndDropItem.icon.activeSelf == true) + { + if ((item != null) && (sourceCell != this)) + { + DropEventDescriptor desc = new DropEventDescriptor(); + switch (cellType) + { + case CellType.Swap: + UpdateMyItem(); + switch (sourceCell.cellType) + { + case CellType.Swap: + desc.item = item; + desc.sourceCell = sourceCell; + desc.destinationCell = this; + SendRequest(desc); + StartCoroutine(NotifyOnDragEnd(desc)); + if (desc.permission == true) + { + if (myDadItem != null) + { + DropEventDescriptor descAutoswap = new DropEventDescriptor(); + descAutoswap.item = myDadItem; + descAutoswap.sourceCell = this; + descAutoswap.destinationCell = sourceCell; + SendRequest(descAutoswap); + StartCoroutine(NotifyOnDragEnd(descAutoswap)); + if (descAutoswap.permission == true) + { + SwapItems(sourceCell, this); + } + else + { + PlaceItem(item, desc.destinationCell); + } + } + else + { + PlaceItem(item, desc.destinationCell); + } + } + break; + default: + desc.item = item; + desc.sourceCell = sourceCell; + desc.destinationCell = this; + SendRequest(desc); + StartCoroutine(NotifyOnDragEnd(desc)); + if (desc.permission == true) + { + PlaceItem(item, desc.destinationCell); + } + break; + } + break; + case CellType.DropOnly: + desc.item = item; + desc.sourceCell = sourceCell; + desc.destinationCell = this; + SendRequest(desc); + StartCoroutine(NotifyOnDragEnd(desc)); + if (desc.permission == true) + { + Destroy(item.gameObject); + DestroyItem(); + } + break; + default: + break; + } + } + } + if (item != null) + { + if (item.GetComponentInParent() == null) + { + Destroy(item.gameObject); + } + } + UpdateMyItem(); + sourceCell.UpdateMyItem(); + } + } + + private void PlaceItem(DragAndDropItem item, DragAndDropCell destinationCell) + { + if (item != null) + { + + DestroyItem(); + myDadItem = null; + if (item.ItemData.ItemStruct.SlotSize.GetHashCode() <= destinationCell.SlotSize.GetHashCode()) + { + DragAndDropCell cell = item.GetComponentInParent(); + if (cell != null) + { + if (cell.unlimitedSource == true) + { + string itemName = item.name; + item = Instantiate(item); + item.name = itemName; + } + } + item.transform.SetParent(transform, false); + item.transform.localPosition = Vector3.zero; + item.MakeRaycast(true); + myDadItem = item; + UpdateSlotInfo(cell, destinationCell); + } + else + { + Debug.Log("SlotSize equal " + destinationCell.SlotSize + " it is too small for that item that size equal " + item.ItemData.ItemStruct.SlotSize); + } + } + } + + private void DestroyItem() + { + UpdateMyItem(); + if (myDadItem != null) + { + DropEventDescriptor desc = new DropEventDescriptor(); + desc.triggerType = TriggerType.ItemWillBeDestroyed; + desc.item = myDadItem; + desc.sourceCell = this; + desc.destinationCell = this; + if (myDadItem != null) + { + Destroy(myDadItem.gameObject); + } + } + myDadItem = null; + } + + private bool SendRequest(DropEventDescriptor desc) + { + bool result = false; + if (desc != null) + { + desc.triggerType = TriggerType.DropRequest; + desc.permission = true; + result = desc.permission; + } + return result; + } + + private IEnumerator NotifyOnDragEnd(DropEventDescriptor desc) + { + while (DragAndDropItem.draggedItem != null) + { + yield return new WaitForEndOfFrame(); + } + desc.triggerType = TriggerType.DropEventEnd; + } + + public void UpdateMyItem() + { + myDadItem = GetComponentInChildren(); + } + + public DragAndDropItem GetItem() + { + return myDadItem; + } + + public void AddItem(DragAndDropItem newItem, DragAndDropCell destinationCell) + { + if (newItem != null) + { + PlaceItem(newItem, destinationCell); + DropEventDescriptor desc = new DropEventDescriptor(); + desc.triggerType = TriggerType.ItemAdded; + desc.item = newItem; + desc.sourceCell = this; + desc.destinationCell = this; + } + } + + public void RemoveItem() + { + DestroyItem(); + } + + public void SwapItems(DragAndDropCell firstCell, DragAndDropCell secondCell) + { + if ((firstCell != null) && (secondCell != null)) + { + DragAndDropItem firstItem = firstCell.GetItem(); + DragAndDropItem secondItem = secondCell.GetItem(); + if(firstItem.ItemData.ItemStruct.SlotSize.GetHashCode() <= secondCell.SlotSize.GetHashCode() + && secondItem.ItemData.ItemStruct.SlotSize.GetHashCode() <= firstCell.SlotSize.GetHashCode()) + { + if (firstItem != null) + { + firstItem.transform.SetParent(secondCell.transform, false); + firstItem.transform.localPosition = Vector3.zero; + firstItem.MakeRaycast(true); + } + if (secondItem != null) + { + secondItem.transform.SetParent(firstCell.transform, false); + secondItem.transform.localPosition = Vector3.zero; + secondItem.MakeRaycast(true); + } + firstCell.UpdateMyItem(); + secondCell.UpdateMyItem(); + UpdateSlotInfo(firstCell, secondCell); + } + } + } + public void UpdateSlotInfo(DragAndDropCell firstCell, DragAndDropCell secondCell) + { + if(firstCell.IsOnInventory && secondCell.IsOnInventory) + { + if(firstCell.BodyParts == secondCell.BodyParts) + { + Services.SharedInstance.InventoryService.UpdatePocketInfo(firstCell.BodyParts); + } + else + { + Services.SharedInstance.InventoryService.UpdatePocketInfo(secondCell.BodyParts); + Services.SharedInstance.InventoryService.UpdatePocketInfo(firstCell.BodyParts); + } + } + else if (firstCell.IsOnInventory) + { + Services.SharedInstance.InventoryService.UpdatePocketInfo(firstCell.BodyParts); + } + else if (secondCell.IsOnInventory) + { + Services.SharedInstance.InventoryService.UpdatePocketInfo(secondCell.BodyParts); + } + else + { + Debug.Log("No one cell IsOnInventory"); + } + } + } +} + diff --git a/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DragAndDropCell.cs.meta b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DragAndDropCell.cs.meta new file mode 100644 index 000000000..2d1e23a65 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DragAndDropCell.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e81026fc9b374d249add5c2bf51dbe79 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DragAndDropItem.cs b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DragAndDropItem.cs new file mode 100644 index 000000000..2a748d77d --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DragAndDropItem.cs @@ -0,0 +1,167 @@ +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; +using System.Collections.Generic; +using System.Collections; + + +namespace BeastHunter +{ + public class DragAndDropItem : UnityEngine.MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler, IPointerDownHandler, IPointerEnterHandler, IPointerExitHandler + { + public static bool dragDisabled = false; + private Image _image; + public BaseItem ItemData; + + public static DragAndDropItem draggedItem; + public static GameObject icon; + public static DragAndDropCell sourceCell; + private static GameObject Discription; + + public delegate void DragEvent(DragAndDropItem item); + public static event DragEvent OnItemDragStartEvent; + public static event DragEvent OnItemDragEndEvent; + + private static Canvas canvas; + private static string canvasName = "DragAndDropCanvas"; + private static int canvasSortOrder = 100; + + float clicked = 0; + float clicktime = 0; + float clickdelay = 0.5f; + + void Awake() + { + if (canvas == null) + { + GameObject canvasObj = new GameObject(canvasName); + canvas = canvasObj.AddComponent(); + canvas.renderMode = RenderMode.ScreenSpaceOverlay; + canvas.sortingOrder = canvasSortOrder; + } + if(ItemData != null) + { + LoadIcon(); + } + } + + public void OnPointerEnter(PointerEventData eventData) + { + Discription = Instantiate(Resources.Load("Inventory/Discription"), canvas.transform) as GameObject; + Discription.transform.localPosition = new Vector3(-620, -280); + Text DiscriptionText = Discription.GetComponent(); + DiscriptionText.text = ItemData.ItemStruct.Discription; + } + + public void OnPointerExit(PointerEventData eventData) + { + Object.Destroy(Discription); + } + + public void OnPointerDown(PointerEventData data) + { + clicked++; + if (clicked == 1) clicktime = Time.time; + + if (clicked > 1 && Time.time - clicktime < clickdelay) + { + clicked = 0; + clicktime = 0; + if(ItemData.ItemStruct.ItemType == ItemType.Cloth) + { + Services.SharedInstance.InventoryService.SetCloth(ItemData as ClothItem); + } + + } + else if (clicked > 2 || Time.time - clicktime > 1) clicked = 0; + + } + + + public void LoadIcon() + { + if (ItemData.ItemStruct.Icon != null) + { + _image = GetComponent(); + _image.sprite = ItemData.ItemStruct.Icon; + } + } + + public void OnBeginDrag(PointerEventData eventData) + { + if (dragDisabled == false) + { + sourceCell = GetCell(); + draggedItem = this; + + icon = new GameObject(); + icon.transform.SetParent(canvas.transform); + icon.name = "Icon"; + Image myImage = GetComponent(); + myImage.raycastTarget = false; + Image iconImage = icon.AddComponent(); + iconImage.raycastTarget = false; + iconImage.sprite = myImage.sprite; + RectTransform iconRect = icon.GetComponent(); + RectTransform myRect = GetComponent(); + iconRect.pivot = new Vector2(0.5f, 0.5f); + iconRect.anchorMin = new Vector2(0.5f, 0.5f); + iconRect.anchorMax = new Vector2(0.5f, 0.5f); + iconRect.sizeDelta = new Vector2(myRect.rect.width, myRect.rect.height); + + if (OnItemDragStartEvent != null) + { + OnItemDragStartEvent(this); + } + } + } + + public void OnDrag(PointerEventData data) + { + if (icon != null) + { + icon.transform.position = Input.mousePosition; + } + } + + public void OnEndDrag(PointerEventData eventData) + { + ResetConditions(); + } + + private void ResetConditions() + { + if (icon != null) + { + Destroy(icon); + } + if (OnItemDragEndEvent != null) + { + OnItemDragEndEvent(this); + } + draggedItem = null; + icon = null; + sourceCell = null; + } + + public void MakeRaycast(bool condition) + { + Image image = GetComponent(); + if (image != null) + { + image.raycastTarget = condition; + } + } + + public DragAndDropCell GetCell() + { + return GetComponentInParent(); + } + + void OnDisable() + { + ResetConditions(); + } + } +} + diff --git a/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DragAndDropItem.cs.meta b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DragAndDropItem.cs.meta new file mode 100644 index 000000000..901175c44 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DragAndDropItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2b1afb541c6f11a42b61071bfd9cee93 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DummyControlUnit.cs b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DummyControlUnit.cs new file mode 100644 index 000000000..364e2ff64 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DummyControlUnit.cs @@ -0,0 +1,41 @@ +using UnityEngine; +using UnityEngine.UI; +using System.Collections; + + +namespace BeastHunter +{ + public class DummyControlUnit : UnityEngine.MonoBehaviour + { + public void AddItemInFreeCell(DragAndDropItem item) + { + foreach (DragAndDropCell cell in GetComponentsInChildren()) + { + if (cell != null) + { + if (cell.GetItem() == null) + { + cell.AddItem(Instantiate(item.gameObject).GetComponent(), cell); + break; + } + } + } + } + + public void RemoveFirstItem() + { + foreach (DragAndDropCell cell in GetComponentsInChildren()) + { + if (cell != null) + { + if (cell.GetItem() != null) + { + cell.RemoveItem(); + break; + } + } + } + } + } +} + diff --git a/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DummyControlUnit.cs.meta b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DummyControlUnit.cs.meta new file mode 100644 index 000000000..c698c1b30 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/DummyControlUnit.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5512a480c5d7d1b45a3a3afffc9a5566 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/ItemData.cs b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/ItemData.cs new file mode 100644 index 000000000..542a7edae --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/ItemData.cs @@ -0,0 +1,14 @@ +using UnityEngine; +using UnityEngine.UI; + + +namespace BeastHunter +{ + [CreateAssetMenu(fileName = "NewData", menuName = "CreateData/Item", order = 0)] + public class ItemData : ScriptableObject + { + public Sprite Image; + public ItemType Type; + } +} + diff --git a/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/ItemData.cs.meta b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/ItemData.cs.meta new file mode 100644 index 000000000..6fda09df0 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/DradAndDrop/ItemData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 955d0fabe3863d64b81f921b65b41a24 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/ItemStruct.cs b/Assets/Scripts/To_Refactoring/Inventory/ItemStruct.cs new file mode 100644 index 000000000..486e6bfc0 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/ItemStruct.cs @@ -0,0 +1,24 @@ +using System; +using UnityEngine; + + +namespace BeastHunter +{ + [Serializable] + public struct ItemStruct + { + #region Fields + + public string Name; + public string Discription; + + public SlotSize SlotSize; + public ItemType ItemType; + + public Mesh MeshOfObject; + public Sprite Icon; + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Inventory/ItemStruct.cs.meta b/Assets/Scripts/To_Refactoring/Inventory/ItemStruct.cs.meta new file mode 100644 index 000000000..0e64baade --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/ItemStruct.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a6578f0c258e07c4484a3edfdcd15077 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/ItemType.cs b/Assets/Scripts/To_Refactoring/Inventory/ItemType.cs new file mode 100644 index 000000000..1b38bf791 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/ItemType.cs @@ -0,0 +1,10 @@ +namespace BeastHunter +{ + public enum ItemType + { + None = 0, + Item = 1, + Weapon = 2, + Cloth = 3 + } +} diff --git a/Assets/Scripts/To_Refactoring/Inventory/ItemType.cs.meta b/Assets/Scripts/To_Refactoring/Inventory/ItemType.cs.meta new file mode 100644 index 000000000..4e0d8dbb4 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/ItemType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3afbfb630344cdf41b1f3a70aa479ce0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/MiscellaneousItem.cs b/Assets/Scripts/To_Refactoring/Inventory/MiscellaneousItem.cs new file mode 100644 index 000000000..ff5af12f1 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/MiscellaneousItem.cs @@ -0,0 +1,20 @@ +using UnityEngine; + + +namespace BeastHunter +{ + [CreateAssetMenu(fileName = "NewMiscellaneous", menuName = "CreateItem/CreateMiscellaneous", order = 0)] + public class MiscellaneousItem : BaseItem + { + #region Fields + + //EffectType + //Duration + //Rate + //Throwable + //OthersFields... + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Inventory/MiscellaneousItem.cs.meta b/Assets/Scripts/To_Refactoring/Inventory/MiscellaneousItem.cs.meta new file mode 100644 index 000000000..8a80b63f0 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/MiscellaneousItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c9d085960bebefe47b97d12801227721 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/Pictures.meta b/Assets/Scripts/To_Refactoring/Inventory/Pictures.meta new file mode 100644 index 000000000..02a52d871 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/Pictures.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 933fe39eca0110540b231f06e75c38be +folderAsset: yes +timeCreated: 1467143271 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/Pictures/Bandana.png b/Assets/Scripts/To_Refactoring/Inventory/Pictures/Bandana.png new file mode 100644 index 000000000..412936ace Binary files /dev/null and b/Assets/Scripts/To_Refactoring/Inventory/Pictures/Bandana.png differ diff --git a/Assets/Scripts/To_Refactoring/Inventory/Pictures/Bandana.png.meta b/Assets/Scripts/To_Refactoring/Inventory/Pictures/Bandana.png.meta new file mode 100644 index 000000000..a0fbe23ae --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/Pictures/Bandana.png.meta @@ -0,0 +1,101 @@ +fileFormatVersion: 2 +guid: 49c7d2e16d6758d46826a8a9ee5b58ac +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/Pictures/Coat.png b/Assets/Scripts/To_Refactoring/Inventory/Pictures/Coat.png new file mode 100644 index 000000000..4f5bd722a Binary files /dev/null and b/Assets/Scripts/To_Refactoring/Inventory/Pictures/Coat.png differ diff --git a/Assets/Scripts/To_Refactoring/Inventory/Pictures/Coat.png.meta b/Assets/Scripts/To_Refactoring/Inventory/Pictures/Coat.png.meta new file mode 100644 index 000000000..687bffaab --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/Pictures/Coat.png.meta @@ -0,0 +1,101 @@ +fileFormatVersion: 2 +guid: d48c745f777eaeb4991f9497f2ff679c +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/Pictures/Fedora.png b/Assets/Scripts/To_Refactoring/Inventory/Pictures/Fedora.png new file mode 100644 index 000000000..08c60ff10 Binary files /dev/null and b/Assets/Scripts/To_Refactoring/Inventory/Pictures/Fedora.png differ diff --git a/Assets/Scripts/To_Refactoring/Inventory/Pictures/Fedora.png.meta b/Assets/Scripts/To_Refactoring/Inventory/Pictures/Fedora.png.meta new file mode 100644 index 000000000..c843ba2c5 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/Pictures/Fedora.png.meta @@ -0,0 +1,101 @@ +fileFormatVersion: 2 +guid: aa53a44cef0e0274c8a1d64e411dc0c0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/Pictures/HealthPotion.png b/Assets/Scripts/To_Refactoring/Inventory/Pictures/HealthPotion.png new file mode 100644 index 000000000..75c77e9c1 Binary files /dev/null and b/Assets/Scripts/To_Refactoring/Inventory/Pictures/HealthPotion.png differ diff --git a/Assets/Scripts/To_Refactoring/Inventory/Pictures/HealthPotion.png.meta b/Assets/Scripts/To_Refactoring/Inventory/Pictures/HealthPotion.png.meta new file mode 100644 index 000000000..68d059b47 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/Pictures/HealthPotion.png.meta @@ -0,0 +1,101 @@ +fileFormatVersion: 2 +guid: f3e7d95abf5d7b444a387096d959dc8f +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/Pictures/Jacket.png b/Assets/Scripts/To_Refactoring/Inventory/Pictures/Jacket.png new file mode 100644 index 000000000..3898f79d9 Binary files /dev/null and b/Assets/Scripts/To_Refactoring/Inventory/Pictures/Jacket.png differ diff --git a/Assets/Scripts/To_Refactoring/Inventory/Pictures/Jacket.png.meta b/Assets/Scripts/To_Refactoring/Inventory/Pictures/Jacket.png.meta new file mode 100644 index 000000000..73a36ff77 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/Pictures/Jacket.png.meta @@ -0,0 +1,101 @@ +fileFormatVersion: 2 +guid: ed81ab10cb0d82048a81f31e2d70c9be +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/Pictures/StaminaPotoin.png b/Assets/Scripts/To_Refactoring/Inventory/Pictures/StaminaPotoin.png new file mode 100644 index 000000000..00bda363d Binary files /dev/null and b/Assets/Scripts/To_Refactoring/Inventory/Pictures/StaminaPotoin.png differ diff --git a/Assets/Scripts/To_Refactoring/Inventory/Pictures/StaminaPotoin.png.meta b/Assets/Scripts/To_Refactoring/Inventory/Pictures/StaminaPotoin.png.meta new file mode 100644 index 000000000..cf02d554d --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/Pictures/StaminaPotoin.png.meta @@ -0,0 +1,101 @@ +fileFormatVersion: 2 +guid: d9c6aa8d6ee103e4583a6ca0e3b8b3a4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/Pictures/TestInventoryImage.png b/Assets/Scripts/To_Refactoring/Inventory/Pictures/TestInventoryImage.png new file mode 100644 index 000000000..4912fd27a Binary files /dev/null and b/Assets/Scripts/To_Refactoring/Inventory/Pictures/TestInventoryImage.png differ diff --git a/Assets/Scripts/To_Refactoring/Inventory/Pictures/TestInventoryImage.png.meta b/Assets/Scripts/To_Refactoring/Inventory/Pictures/TestInventoryImage.png.meta new file mode 100644 index 000000000..d99aa7183 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/Pictures/TestInventoryImage.png.meta @@ -0,0 +1,101 @@ +fileFormatVersion: 2 +guid: 1073e26643d4cba44a5a10b2c5f88ac0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/PocketInfo.cs b/Assets/Scripts/To_Refactoring/Inventory/PocketInfo.cs new file mode 100644 index 000000000..84b93efe9 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/PocketInfo.cs @@ -0,0 +1,17 @@ +using System; + + +namespace BeastHunter +{ + [Serializable] + public struct PocketInfo + { + #region Fields + + public SlotSize SlotEnum; + public ItemType ItemTypeInPocket; + public BaseItem ItemInPocket; + + #endregion + } +} diff --git a/Assets/Scripts/To_Refactoring/Inventory/PocketInfo.cs.meta b/Assets/Scripts/To_Refactoring/Inventory/PocketInfo.cs.meta new file mode 100644 index 000000000..ce9597489 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/PocketInfo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2731a5e1e5574934cb1f9dc7ce5e8820 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/SlotSize.cs b/Assets/Scripts/To_Refactoring/Inventory/SlotSize.cs new file mode 100644 index 000000000..1fe33f60f --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/SlotSize.cs @@ -0,0 +1,11 @@ +namespace BeastHunter +{ + public enum SlotSize + { + None = 0, + Small = 1, + Medium = 2, + Large = 3 + } +} + diff --git a/Assets/Scripts/To_Refactoring/Inventory/SlotSize.cs.meta b/Assets/Scripts/To_Refactoring/Inventory/SlotSize.cs.meta new file mode 100644 index 000000000..cc811ca9f --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/SlotSize.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 52076b7dc5c7945499ead9b9afd8af21 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/SlotStruct.cs b/Assets/Scripts/To_Refactoring/Inventory/SlotStruct.cs new file mode 100644 index 000000000..f8d246047 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/SlotStruct.cs @@ -0,0 +1,21 @@ +using UnityEngine; + + +namespace BeastHunter +{ + public struct SlotStruct + { + #region Fields + + public Transform[] HeadSlots; + public Transform[] ShouldersSlots; + public Transform[] TorsoSlots; + public Transform[] ArmsSlots; + public Transform[] HipsSlots; + public Transform[] LegsSlots; + public Transform[] FeetSlots; + + #endregion + } +} + diff --git a/Assets/Scripts/To_Refactoring/Inventory/SlotStruct.cs.meta b/Assets/Scripts/To_Refactoring/Inventory/SlotStruct.cs.meta new file mode 100644 index 000000000..2dabbed4b --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/SlotStruct.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0cbe7766f0beb2349be2af0b4d0d954b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/WeaponHandType.cs b/Assets/Scripts/To_Refactoring/Inventory/WeaponHandType.cs new file mode 100644 index 000000000..ddc4aa55c --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/WeaponHandType.cs @@ -0,0 +1,8 @@ +namespace BeastHunter +{ + public enum WeaponHandType + { + OneHanded, + TwoHanded + } +} diff --git a/Assets/Scripts/To_Refactoring/Inventory/WeaponHandType.cs.meta b/Assets/Scripts/To_Refactoring/Inventory/WeaponHandType.cs.meta new file mode 100644 index 000000000..b5a0dbea3 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/WeaponHandType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e1df4e56cb770344d9e00ac31504eb4d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/WeaponItem.cs b/Assets/Scripts/To_Refactoring/Inventory/WeaponItem.cs new file mode 100644 index 000000000..ada065e67 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/WeaponItem.cs @@ -0,0 +1,59 @@ +using UnityEngine; + + +namespace BeastHunter +{ + [CreateAssetMenu(fileName = "NewWeapon", menuName = "CreateItem/CreateWeapon", order = 0)] + public sealed class WeaponItem : BaseItem + { + #region Fields + + public WeaponHandType WeaponHandType; + public WeaponType WeaponType; + + public GameObject WeaponPrefab; + + public Vector3 PrefabPositionInHand; + public Vector3 PrefabRotationInHand; + + [Tooltip("Weapon weight between 1 and 10.")] + [Range(0.0f, 10.0f)] + public float Weight; + + [Tooltip("Time needed to get the weapon between 1 and 10.")] + [Range(0.0f, 10.0f)] + public float TimeToGet; + + [Tooltip("Time needed for weapon to appear between 1 and 10.")] + [Range(0.0f, 10.0f)] + public float TimeToAppear; + + [Tooltip("Time needed to remove the weapon between 1 and 10.")] + [Range(0.0f, 10.0f)] + public float TimeToRemove; + + [Tooltip("Time needed for weapon to disappear between 1 and 10.")] + [Range(0.0f, 10.0f)] + public float TimeToDisappear; + + public AttackModel CurrentAttack; + public AttackModel[] AttacksLeft; + public AttackModel[] AttacksRight; + public AttackModel SpecialAttackLeft; + public AttackModel SpecialAttackRight; + + public string SimpleAttackAnimationName; + public string SpecialAttackAnimationName; + + public int SimpleAttackFromLeftkAnimationHash { get { return Animator.StringToHash(SimpleAttackAnimationName + "Left"); } } + public int SimpleAttackFromRightkAnimationHash { get { return Animator.StringToHash(SimpleAttackAnimationName + "Right"); } } + public int SpecialAttackFromLeftAnimationHash { get { return Animator.StringToHash(SpecialAttackAnimationName + "Left"); } } + public int SpecialAttacFromRightkAnimationHash { get { return Animator.StringToHash(SpecialAttackAnimationName + "Right"); } } + public int GettingAnimationHash { get { return Animator.StringToHash("Getting" + ItemStruct.Name); } } + public int RemovingAnimationHash { get { return Animator.StringToHash("Removing" + ItemStruct.Name); } } + + #endregion + } +} + + diff --git a/Assets/Scripts/To_Refactoring/Inventory/WeaponItem.cs.meta b/Assets/Scripts/To_Refactoring/Inventory/WeaponItem.cs.meta new file mode 100644 index 000000000..60a75d1c9 --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/WeaponItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7e6b6e6a3a4733e4bb82f476c7e2cba8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/To_Refactoring/Inventory/WeaponType.cs b/Assets/Scripts/To_Refactoring/Inventory/WeaponType.cs new file mode 100644 index 000000000..201f3f40e --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/WeaponType.cs @@ -0,0 +1,10 @@ +namespace BeastHunter +{ + public enum WeaponType + { + MeleeCutting, + MeleeSmashing, + RangeShooting, + RangeThrowing + } +} diff --git a/Assets/Scripts/To_Refactoring/Inventory/WeaponType.cs.meta b/Assets/Scripts/To_Refactoring/Inventory/WeaponType.cs.meta new file mode 100644 index 000000000..0602f0a0e --- /dev/null +++ b/Assets/Scripts/To_Refactoring/Inventory/WeaponType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 975bf9d87e04c904f8f865947f4b5354 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git "a/\320\220\320\272\321\202\320\270\320\262\321\213/\320\241\320\272\321\200\320\270\320\277\321\202\321\213/To_Refactoring/\320\236\321\202\320\272\321\200\321\213\321\202\320\272\320\260/CardItemManager.cs" "b/\320\220\320\272\321\202\320\270\320\262\321\213/\320\241\320\272\321\200\320\270\320\277\321\202\321\213/To_Refactoring/\320\236\321\202\320\272\321\200\321\213\321\202\320\272\320\260/CardItemManager.cs" new file mode 100644 index 000000000..866a524fe --- /dev/null +++ "b/\320\220\320\272\321\202\320\270\320\262\321\213/\320\241\320\272\321\200\320\270\320\277\321\202\321\213/To_Refactoring/\320\236\321\202\320\272\321\200\321\213\321\202\320\272\320\260/CardItemManager.cs" @@ -0,0 +1,181 @@ + +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEngine.UI; + + + + +public class CardItemManager : MonoBehaviour +{ + + public static CardItemManager Instance; + public List item; + public List Card; + public Sprite[] CardItemSprites; + [SerializeField] + public string nameCardItem; + [SerializeField] + public Sprite pathSprite; + + // public CharCard CharCard; + [SerializeField] + public string CardItemBadhar; + [SerializeField] + public string CardTextGoodhar; + [SerializeField] + public Sprite CardImage; + [SerializeField] + public Sprite CardBossImage; + public CardItem[] _InitialcardItems; + // [HideInInspector] + + public KeyCode takeButton; + [SerializeField] + public GameObject SlotContainer; + [SerializeField] + public GameObject CardContainer; + [SerializeField] + public GameObject CardContainers; + + + + + + public void Start() + { + item = new List(); + + + for (int i = 0; i < SlotContainer.transform.childCount; i++) // Создания ечейки + { + item.Add(new CardItem()); + } + + + #region + + + + } + //GenerateCardItemll(); + + + //private void Awake() + //{ + // if (!Instance) + // { + // Instance = this; + // } + // else + // { + // Destroy(gameObject); + // return; + // } + // GenerateCardItem(); + + + + //} + + + + //карта + + //void GenerateCardItem() + //{ + // Card = new List(); + + // Card.Add(new CardItem(1, "Jacket", CardItemBadhar, CardItemSprites[0])); + // Card.Add(new CardItem(2, "Set", "Урон протев ветра", CardItemSprites[1])); + // Card.Add(new CardItem(3, "Anfib", "Урон протев ветра", CardItemSprites[2])); + // CardItem.Add(new CardItem("Jacket", "Урон протев ветра", CardItemSprites[3])); + + //} + + + // GenerateCardItem(); + + #endregion + void Update() + { + + if (Input.GetKeyDown(takeButton)) + { + AddCard(); + } + + } + void AddCard() + { + + for (int i = 0; i < item.Count; i++) + { + + + if (item[i].Id != 0) + { + + //Transform ItemD = CardContainer; + + + // добовления предмета из рекаста или каким то оброзом из списка + //item[i] = GetComponent(); + + Transform ItemDg = CardContainers.transform; + Transform ItemD = CardContainer.transform; + item[i] = ItemD.GetComponent(); + item[i] = ItemDg.GetComponent(); + + //GenerateCardItem(); + DisplayCardItems(); + //отресовка в слоте + break; + //Destroy(GetComponent().gameObject); + }; + + } + + + + } + + void DisplayCardItems() + { + + for (int i = 0; i < item.Count; i++) + { + + Transform Slot = SlotContainer.transform.GetChild(i); + Transform icon = Slot.GetChild(0); + Image img = icon.GetComponent(); + if (item[i].Id == 0) + { + + img.enabled = true; + img.sprite = Resources.Load(item[i].PathIcon); + } + Debug.Log("q1"); + + + } + } + + } + + + + + + + + + + + + + + +