diff --git a/Assets/Prefabs/PersonNode.prefab b/Assets/Prefabs/PersonNode.prefab index 51bf4c8..a2b1414 100644 --- a/Assets/Prefabs/PersonNode.prefab +++ b/Assets/Prefabs/PersonNode.prefab @@ -17,6 +17,23 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!1 &147480 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 424146} + - 33: {fileID: 3395424} + - 23: {fileID: 2372840} + m_Layer: 0 + m_Name: BloodSplatter + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 --- !u!1 &176828 GameObject: m_ObjectHideFlags: 1 @@ -27,8 +44,27 @@ GameObject: - 4: {fileID: 498100} - 33: {fileID: 3387390} - 23: {fileID: 2308108} + - 114: {fileID: 11422410} m_Layer: 0 - m_Name: xQuad + m_Name: xMarkRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &177472 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 476902} + - 33: {fileID: 3311720} + - 23: {fileID: 2315696} + - 114: {fileID: 11439868} + m_Layer: 0 + m_Name: xMarkLeft m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -62,12 +98,37 @@ Transform: m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 193868} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -544.163269, y: -235.973114, z: 0} + m_LocalPosition: {x: -.133731544, y: -.756275117, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: + - {fileID: 424146} - {fileID: 496448} m_Father: {fileID: 0} m_RootOrder: 0 +--- !u!4 &424146 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147480} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -.0109999999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 410576} + m_RootOrder: 0 +--- !u!4 &476902 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177472} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -.00999999978} + m_LocalScale: {x: 1.25, y: 1.25, z: 1} + m_Children: [] + m_Father: {fileID: 496448} + m_RootOrder: 0 --- !u!4 &496448 Transform: m_ObjectHideFlags: 1 @@ -78,9 +139,10 @@ Transform: m_LocalPosition: {x: 0, y: 0, z: -.00100000005} m_LocalScale: {x: .800000012, y: .800000012, z: 1} m_Children: + - {fileID: 476902} - {fileID: 498100} m_Father: {fileID: 410576} - m_RootOrder: 0 + m_RootOrder: 1 --- !u!4 &498100 Transform: m_ObjectHideFlags: 1 @@ -89,17 +151,41 @@ Transform: m_GameObject: {fileID: 176828} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: -.00999999978} - m_LocalScale: {x: 1.5, y: 1.5, z: 1} + m_LocalScale: {x: 1.25, y: 1.25, z: 1} m_Children: [] m_Father: {fileID: 496448} - m_RootOrder: 0 + m_RootOrder: 1 --- !u!23 &2308108 MeshRenderer: m_ObjectHideFlags: 1 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 176828} - m_Enabled: 0 + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 65515d5275108d64f993d24ce2e0e11d, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_ImportantGI: 0 + m_AutoUVMaxDistance: .5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2315696 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177472} + m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 m_Materials: @@ -165,6 +251,37 @@ MeshRenderer: m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 m_SortingOrder: 0 +--- !u!23 &2372840 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147480} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 8c192887af84c6d489323981a0248291, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_ImportantGI: 0 + m_AutoUVMaxDistance: .5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3311720 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177472} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!33 &3312470 MeshFilter: m_ObjectHideFlags: 1 @@ -186,6 +303,13 @@ MeshFilter: m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 176828} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &3395424 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 147480} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!54 &5464416 Rigidbody: m_ObjectHideFlags: 1 @@ -241,7 +365,32 @@ MonoBehaviour: MiddleColor: {r: 1, g: .921568632, b: .0156862754, a: 1} EndColor: {r: 1, g: 0, b: 0, a: 1} internQuad: {fileID: 2363438} - xQuad: {fileID: 2308108} + KillHoldDuration: 2 + xMarkLeft: {fileID: 11439868} + xMarkRight: {fileID: 11422410} + bloodSplatter: {fileID: 2372840} +--- !u!114 &11422410 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176828} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 51e725985a0e317458c006132d935c25, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11439868 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177472} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 51e725985a0e317458c006132d935c25, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &100100000 Prefab: m_ObjectHideFlags: 1 diff --git a/Assets/Resources/Materials/BloodSplatter.mat b/Assets/Resources/Materials/BloodSplatter.mat new file mode 100644 index 0000000..4df1a3d --- /dev/null +++ b/Assets/Resources/Materials/BloodSplatter.mat @@ -0,0 +1,165 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: BloodSplatter + m_Shader: {fileID: 32, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 53b43f40f83eccf429bfd482f09effb1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Cutoff + second: .5 + data: + first: + name: _Shininess + second: .257999986 + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Parallax + second: .0199999996 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: .5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _EmissionScaleUI + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _Ratio + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 0} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 0} + data: + first: + name: _EmissionColorUI + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _CompletedColor + second: {r: 0, g: 0, b: 0, a: 0} + data: + first: + name: _RemainingColor + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Resources/Materials/BloodSplatter.mat.meta b/Assets/Resources/Materials/BloodSplatter.mat.meta new file mode 100644 index 0000000..b3b5b6f --- /dev/null +++ b/Assets/Resources/Materials/BloodSplatter.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8c192887af84c6d489323981a0248291 +timeCreated: 1439745852 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Materials/BloodSplatter.png b/Assets/Resources/Materials/BloodSplatter.png new file mode 100644 index 0000000..967f4a7 Binary files /dev/null and b/Assets/Resources/Materials/BloodSplatter.png differ diff --git a/Assets/Resources/Materials/BloodSplatter.png.meta b/Assets/Resources/Materials/BloodSplatter.png.meta new file mode 100644 index 0000000..9d2bff8 --- /dev/null +++ b/Assets/Resources/Materials/BloodSplatter.png.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 53b43f40f83eccf429bfd482f09effb1 +timeCreated: 1439745776 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: 0 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Materials/externQuad.mat b/Assets/Resources/Materials/externQuad.mat index db33c3f..2d830c3 100644 --- a/Assets/Resources/Materials/externQuad.mat +++ b/Assets/Resources/Materials/externQuad.mat @@ -2,7 +2,7 @@ %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: - serializedVersion: 6 + serializedVersion: 5 m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} @@ -11,7 +11,6 @@ Material: m_ShaderKeywords: m_LightmapFlags: 5 m_CustomRenderQueue: -1 - stringTagMap: {} m_SavedProperties: serializedVersion: 2 m_TexEnvs: @@ -79,6 +78,10 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} m_Floats: + data: + first: + name: _Cutoff + second: .5 data: first: name: _SrcBlend @@ -87,10 +90,6 @@ Material: first: name: _DstBlend second: 0 - data: - first: - name: _Cutoff - second: .5 data: first: name: _Parallax @@ -119,6 +118,10 @@ Material: first: name: _UVSec second: 0 + data: + first: + name: _EmissionScaleUI + second: 0 data: first: name: _Mode @@ -127,6 +130,10 @@ Material: first: name: _Metallic second: 0 + data: + first: + name: _Ratio + second: .5 m_Colors: data: first: @@ -136,3 +143,15 @@ Material: first: name: _Color second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _EmissionColorUI + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _CompletedColor + second: {r: 0, g: 0, b: 0, a: 0} + data: + first: + name: _RemainingColor + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Resources/Materials/skullLogo.mat b/Assets/Resources/Materials/skullLogo.mat new file mode 100644 index 0000000..0af990f --- /dev/null +++ b/Assets/Resources/Materials/skullLogo.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: skullLogo + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 25ff200345c91d641a8f4edfe64cdc95, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Cutoff + second: .5 + data: + first: + name: _Parallax + second: .0199999996 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: .5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Resources/Materials/skullLogo.mat.meta b/Assets/Resources/Materials/skullLogo.mat.meta new file mode 100644 index 0000000..78049f4 --- /dev/null +++ b/Assets/Resources/Materials/skullLogo.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 17f2c3e8895cc004db164dd0f8963cd2 +timeCreated: 1439707135 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Materials/xMark.mat b/Assets/Resources/Materials/splash.mat similarity index 94% rename from Assets/Resources/Materials/xMark.mat rename to Assets/Resources/Materials/splash.mat index 0b18871..a1df4cf 100644 --- a/Assets/Resources/Materials/xMark.mat +++ b/Assets/Resources/Materials/splash.mat @@ -6,8 +6,8 @@ Material: m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} - m_Name: xMark - m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0} + m_Name: splash + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 5 m_CustomRenderQueue: -1 @@ -19,7 +19,7 @@ Material: first: name: _MainTex second: - m_Texture: {fileID: 2800000, guid: 84643d1735e87de44889f90b3540c999, type: 3} + m_Texture: {fileID: 2800000, guid: a36d12e06ea9bd446b8aa07497d246dd, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} data: diff --git a/Assets/Resources/Materials/splash.mat.meta b/Assets/Resources/Materials/splash.mat.meta new file mode 100644 index 0000000..9a36690 --- /dev/null +++ b/Assets/Resources/Materials/splash.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 30af58f30cfd7f143a3f5748b216fe5b +timeCreated: 1439708198 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Materials/xMarkLeft.mat b/Assets/Resources/Materials/xMarkLeft.mat new file mode 100644 index 0000000..ad509ab --- /dev/null +++ b/Assets/Resources/Materials/xMarkLeft.mat @@ -0,0 +1,149 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: xMarkLeft + m_Shader: {fileID: 4800000, guid: bb0f298d1fd9ff24c8aed06d334c0b1f, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: efd71283395b4f7468fd7cd652d22155, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Cutoff + second: .5 + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Parallax + second: .0199999996 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: .5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _Ratio + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _CompletedColor + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _RemainingColor + second: {r: 1, g: 1, b: 1, a: 0} diff --git a/Assets/Resources/Materials/xMark.mat.meta b/Assets/Resources/Materials/xMarkLeft.mat.meta similarity index 100% rename from Assets/Resources/Materials/xMark.mat.meta rename to Assets/Resources/Materials/xMarkLeft.mat.meta diff --git a/Assets/Resources/Materials/xMarkLeft.png b/Assets/Resources/Materials/xMarkLeft.png new file mode 100644 index 0000000..84b0706 Binary files /dev/null and b/Assets/Resources/Materials/xMarkLeft.png differ diff --git a/Assets/Resources/Materials/xMarkLeft.png.meta b/Assets/Resources/Materials/xMarkLeft.png.meta new file mode 100644 index 0000000..6b5c551 --- /dev/null +++ b/Assets/Resources/Materials/xMarkLeft.png.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: efd71283395b4f7468fd7cd652d22155 +timeCreated: 1439738572 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Materials/xMarkRight.mat b/Assets/Resources/Materials/xMarkRight.mat new file mode 100644 index 0000000..326e285 --- /dev/null +++ b/Assets/Resources/Materials/xMarkRight.mat @@ -0,0 +1,149 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: xMarkRight + m_Shader: {fileID: 4800000, guid: b0aba77b532f48a48b23f8b41fbe3bcd, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 0fd4daec51f3afd48a2410f5fe9a02af, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Cutoff + second: .5 + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Parallax + second: .0199999996 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: .5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _Ratio + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _CompletedColor + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _RemainingColor + second: {r: 1, g: 1, b: 1, a: 0} diff --git a/Assets/Resources/Materials/xMarkRight.mat.meta b/Assets/Resources/Materials/xMarkRight.mat.meta new file mode 100644 index 0000000..2fb7568 --- /dev/null +++ b/Assets/Resources/Materials/xMarkRight.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 65515d5275108d64f993d24ce2e0e11d +timeCreated: 1439740902 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Materials/xMarkRight.png b/Assets/Resources/Materials/xMarkRight.png new file mode 100644 index 0000000..afe1f49 Binary files /dev/null and b/Assets/Resources/Materials/xMarkRight.png differ diff --git a/Assets/Resources/Materials/xMarkRight.png.meta b/Assets/Resources/Materials/xMarkRight.png.meta new file mode 100644 index 0000000..03bebdf --- /dev/null +++ b/Assets/Resources/Materials/xMarkRight.png.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 0fd4daec51f3afd48a2410f5fe9a02af +timeCreated: 1439738554 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 0 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/gravestoneBubble.png b/Assets/Resources/gravestoneBubble.png new file mode 100644 index 0000000..280e788 Binary files /dev/null and b/Assets/Resources/gravestoneBubble.png differ diff --git a/Assets/Resources/gravestoneBubble.png.meta b/Assets/Resources/gravestoneBubble.png.meta new file mode 100644 index 0000000..4aebb14 --- /dev/null +++ b/Assets/Resources/gravestoneBubble.png.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 856ca562f724d934e89bca0999754c23 +timeCreated: 1439691731 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/skullLogo.png b/Assets/Resources/skullLogo.png new file mode 100644 index 0000000..cd5859a Binary files /dev/null and b/Assets/Resources/skullLogo.png differ diff --git a/Assets/Resources/skullLogo.png.meta b/Assets/Resources/skullLogo.png.meta new file mode 100644 index 0000000..130ab95 --- /dev/null +++ b/Assets/Resources/skullLogo.png.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 25ff200345c91d641a8f4edfe64cdc95 +timeCreated: 1439676699 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/slaughterLogo.png b/Assets/Resources/slaughterLogo.png new file mode 100644 index 0000000..4740d12 Binary files /dev/null and b/Assets/Resources/slaughterLogo.png differ diff --git a/Assets/Resources/slaughterLogo.png.meta b/Assets/Resources/slaughterLogo.png.meta new file mode 100644 index 0000000..f536eab --- /dev/null +++ b/Assets/Resources/slaughterLogo.png.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: eaaa90877e079004eb38be08a3e86db7 +timeCreated: 1439706021 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/splash.png b/Assets/Resources/splash.png new file mode 100644 index 0000000..9f22a53 Binary files /dev/null and b/Assets/Resources/splash.png differ diff --git a/Assets/Resources/splash.png.meta b/Assets/Resources/splash.png.meta new file mode 100644 index 0000000..88fe3b9 --- /dev/null +++ b/Assets/Resources/splash.png.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: a36d12e06ea9bd446b8aa07497d246dd +timeCreated: 1439707873 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/UiTweaking.unity b/Assets/Scenes/UiTweaking.unity index 07d0daf..4bc893f 100644 --- a/Assets/Scenes/UiTweaking.unity +++ b/Assets/Scenes/UiTweaking.unity @@ -159,6 +159,7 @@ Camera: m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: .0219999999 + m_StereoMirrorMode: 0 --- !u!4 &61719365 Transform: m_ObjectHideFlags: 0 @@ -732,15 +733,19 @@ Prefab: objectReference: {fileID: 0} - target: {fileID: 22417254, guid: c993e87661906234fba410e55ed66832, type: 2} propertyPath: m_AnchorMin.y - value: .594142556 + value: 0 objectReference: {fileID: 0} - target: {fileID: 22417254, guid: c993e87661906234fba410e55ed66832, type: 2} propertyPath: m_AnchorMax.x - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 22417254, guid: c993e87661906234fba410e55ed66832, type: 2} propertyPath: m_AnchorMax.y - value: 1 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22458514, guid: c993e87661906234fba410e55ed66832, type: 2} + propertyPath: m_AnchoredPosition.y + value: 7.62939453e-06 objectReference: {fileID: 0} m_RemovedComponents: [] m_ParentPrefab: {fileID: 100100000, guid: c993e87661906234fba410e55ed66832, type: 2} @@ -922,6 +927,7 @@ MonoBehaviour: m_SubmitButton: Submit m_CancelButton: Cancel m_InputActionsPerSecond: 10 + m_RepeatDelay: .5 m_AllowActivationOnMobileDevice: 0 --- !u!114 &1999982086 MonoBehaviour: diff --git a/Assets/Scenes/splash.unity b/Assets/Scenes/splash.unity new file mode 100644 index 0000000..5550f9f --- /dev/null +++ b/Assets/Scenes/splash.unity @@ -0,0 +1,381 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: .25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_Fog: 0 + m_FogColor: {r: .5, g: .5, b: .5, a: 1} + m_FogMode: 3 + m_FogDensity: .00999999978 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: .211999997, g: .226999998, b: .259000003, a: 1} + m_AmbientEquatorColor: {r: .114, g: .125, b: .133000001, a: 1} + m_AmbientGroundColor: {r: .0469999984, g: .0430000015, b: .0350000001, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: .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} +--- !u!127 &3 +LevelGameManager: + m_ObjectHideFlags: 0 +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_GIWorkflowMode: 0 + m_LightmapsMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 3 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AOMaxDistance: 1 + m_Padding: 2 + m_CompAOExponent: 0 + m_LightmapParameters: {fileID: 0} + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherRayCount: 1024 + m_LightmapSnapshot: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &5 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentRadius: .5 + agentHeight: 2 + agentSlope: 45 + agentClimb: .400000006 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + cellSize: .166666672 + manualCellSize: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &12356507 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 12356509} + - 108: {fileID: 12356508} + 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 &12356508 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 12356507} + m_Enabled: 1 + serializedVersion: 6 + m_Type: 1 + m_Color: {r: 1, g: .956862748, b: .839215696, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_Strength: 1 + m_Bias: .0500000007 + m_NormalBias: .400000006 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_AreaSize: {x: 1, y: 1} +--- !u!4 &12356509 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 12356507} + m_LocalRotation: {x: .408217937, y: -.234569728, z: .109381676, w: .875426054} + 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 +--- !u!1 &608195445 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 608195450} + - 20: {fileID: 608195449} + - 92: {fileID: 608195448} + - 124: {fileID: 608195447} + - 81: {fileID: 608195446} + 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 &608195446 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 608195445} + m_Enabled: 1 +--- !u!124 &608195447 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 608195445} + m_Enabled: 1 +--- !u!92 &608195448 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 608195445} + m_Enabled: 1 +--- !u!20 &608195449 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 608195445} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: .192156866, g: .301960796, b: .474509805, a: .0196078438} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: .300000012 + 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_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: .0219999999 + m_StereoMirrorMode: 0 +--- !u!4 &608195450 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 608195445} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1 &613726785 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 613726789} + - 114: {fileID: 613726788} + - 114: {fileID: 613726787} + - 114: {fileID: 613726786} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &613726786 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 613726785} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AllowActivationOnStandalone: 0 +--- !u!114 &613726787 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 613726785} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: .5 + m_AllowActivationOnMobileDevice: 0 +--- !u!114 &613726788 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 613726785} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &613726789 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 613726785} + 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: 2 +--- !u!1 &1865312312 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1865312316} + - 33: {fileID: 1865312315} + - 64: {fileID: 1865312314} + - 23: {fileID: 1865312313} + m_Layer: 0 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &1865312313 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1865312312} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_Materials: + - {fileID: 2100000, guid: 30af58f30cfd7f143a3f5748b216fe5b, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_ImportantGI: 0 + m_AutoUVMaxDistance: .5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!64 &1865312314 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1865312312} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &1865312315 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1865312312} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1865312316 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1865312312} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 4.61999989, y: 2.30999994, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 diff --git a/Assets/Scenes/splash.unity.meta b/Assets/Scenes/splash.unity.meta new file mode 100644 index 0000000..23cd7f0 --- /dev/null +++ b/Assets/Scenes/splash.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 551926e94351f4248a01898e8c79c890 +timeCreated: 1439706445 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/NetworkingSphere.cs b/Assets/Scripts/NetworkingSphere.cs index 1d1acca..ef8acb6 100644 --- a/Assets/Scripts/NetworkingSphere.cs +++ b/Assets/Scripts/NetworkingSphere.cs @@ -1,248 +1,257 @@ -using UnityEngine; -using System.Collections; -using System.Collections.Generic; -using DeathBook.Model; - -public class NetworkingSphere : MonoBehaviour -{ - public GameObjectsOptions gameObjects = new GameObjectsOptions(); +using UnityEngine; +using System.Collections; +using System.Collections.Generic; +using DeathBook.Model; + +public class NetworkingSphere : MonoBehaviour +{ + public GameObjectsOptions gameObjects = new GameObjectsOptions(); public LevelOptions levelOptions = new LevelOptions(); public GameStrategy strategy = new GameStrategy(); - private NetworkDisconnection sphere; - - [System.Serializable] - public class GameObjectsOptions - { - public Link LinkObj; - public PersonNode PersonObj; - } - - [System.Serializable] - public class LevelOptions - { - public int NumPeople = 50; - public int AvgNumFriends = 20; - public float FriendshipLikeliness = 0.4f; - public float SphereRadius = 1f; - } - - public float rotationSpeed = 0.7f; - public float torqueForce = 50f; - - public PersonDetailsPanel DetailsPanel; - - private bool dragging = false; - private Vector3 delta = new Vector3(); - private Rigidbody rb; - - private LevelManager manager; - - private PersonNode[] peopleNodes; - - private PersonNode _selectedNode; - private float _timeSinceLastClick; - - // Used to disable the physics when the user has clicked on a node - private bool _isRotatingTowardsNode = false; - - void Awake() - { - manager = LevelManager.Instance; + private NetworkDisconnection sphere; + + [System.Serializable] + public class GameObjectsOptions + { + public Link LinkObj; + public PersonNode PersonObj; + } + + [System.Serializable] + public class LevelOptions + { + public int NumPeople = 50; + public int AvgNumFriends = 20; + public float FriendshipLikeliness = 0.4f; + public float SphereRadius = 1f; + } + + public float rotationSpeed = 0.7f; + public float torqueForce = 50f; + + public PersonDetailsPanel DetailsPanel; + + private bool dragging = false; + private Vector3 delta = new Vector3(); + private Rigidbody rb; + + private LevelManager manager; + + private PersonNode[] peopleNodes; + + private PersonNode _selectedNode; + private float _timeSinceLastClick; + + // Used to disable the physics when the user has clicked on a node + private bool _isRotatingTowardsNode = false; + + void Awake() + { + manager = LevelManager.Instance; Level lvl = manager.NewLevel(levelOptions.NumPeople, levelOptions.AvgNumFriends, levelOptions.FriendshipLikeliness, levelOptions.SphereRadius, strategy); - - InstantiateNodes(lvl); - AssignLinks(lvl); - rb = GetComponent(); - } - - void OnGUI() - { + + InstantiateNodes(lvl); + AssignLinks(lvl); + rb = GetComponent(); + } + + void OnGUI() + { int time = manager.GameLevel.DayTime; GUI.Button(new Rect(50, 50, 100, 40), Utils.GetTimeString(time)); GUI.Button(new Rect(160, 50, 100, 40), manager.GameLevel.Awareness + ""); - } - - void Update() - { - if (_timeSinceLastClick < 2f) - { - _timeSinceLastClick += Time.deltaTime; - } - - manager.GameLevel.Update(Time.deltaTime); - - //TEMPORARY QUICK FIX: Even though we are never moving the sphere, it starts moving as soon as it stops rotating - transform.position = Vector3.zero; - - Vector3 screenMousePos = Input.mousePosition; - - screenMousePos.z = transform.position.z - Camera.main.transform.position.z; - - Vector3 worldMousePos = Camera.main.ScreenToWorldPoint(screenMousePos); - - // If the world position of the mouse is greater than the radius of the sphere, we are outside - if (Mathf.Sqrt(worldMousePos.x * worldMousePos.x + worldMousePos.y * worldMousePos.y) > levelOptions.SphereRadius + 1f) - { - transform.Rotate(Vector3.one * Time.deltaTime * rotationSpeed); - } - - //when right btn clicked, call the change rotation - if (Input.GetMouseButtonDown(1)) - { - dragging = true; - } - else if (Input.GetMouseButtonUp(1)) - { - dragging = false; - delta = new Vector3(); - } - - if (dragging && !_isRotatingTowardsNode) - { - MoveSphere(); - } - - - //scroll - if (Input.GetAxis("Mouse ScrollWheel") != 0) - { - // if (Camera.main.ScreenToViewportPoint(Input.mousePosition) < new Vector3(1,1,1)) - if (Camera.main.ScreenToViewportPoint(Input.mousePosition).x < 1) - { - Camera.main.fieldOfView -= Input.GetAxis("Mouse ScrollWheel") * 10f; - } - } - } - - void MoveSphere() - { - float deltaX = Input.GetAxis("Mouse X"); - float deltaY = Input.GetAxis("Mouse Y"); - if (deltaX == 0 && deltaY == 0) - { - delta = new Vector3(); - rb.angularVelocity *= 0.8f; - } - delta += new Vector3(deltaX, deltaY, 0); - - rb.AddTorque(Vector3.down * delta.x * torqueForce * Time.deltaTime, ForceMode.Impulse); - rb.AddTorque(Vector3.right * delta.y * torqueForce * Time.deltaTime, ForceMode.Impulse); - } - - private void InstantiateNodes(Level lvl) - { - peopleNodes = new PersonNode[lvl.People.Count]; - - for (int i = 0; i < lvl.People.Count; i++) - { - Person person = lvl.People[i]; - - PersonNode pInst = Instantiate(gameObjects.PersonObj, person.InitialPosition, Quaternion.identity) as PersonNode; - - pInst.OnClicked += OnNodeClicked; - - pInst.Model = person; - pInst.transform.parent = this.transform; - - peopleNodes[i] = pInst; - } - } - - private void OnNodeClicked(PersonNode node) - { - if (_selectedNode != null) - { - _selectedNode.Select(false); - } - - if (_timeSinceLastClick < 0.5f && node == _selectedNode) - { - // We focus on the node if double clicked - FocusOnNode(node); - } - - _timeSinceLastClick = 0f; - - DetailsPanel.SetNode(node); - node.Select(true); - - _selectedNode = node; - } - - private void AssignLinks(Level lvl) - { - foreach (FriendshipLink f in lvl.Friendships) - { - Link link = Instantiate(gameObjects.LinkObj) as Link; - int id1 = f.Friend1.id; - int id2 = f.Friend2.id; - link.Model = f; - link.AttachToObjects(peopleNodes[id1].gameObject, peopleNodes[id2].gameObject); - - // Temporary stuff, for testing - peopleNodes[id1].AddLink(link); - peopleNodes[id2].AddLink(link); - } - } - - public void FocusOnNode(PersonNode node) - { - StopCoroutine("RotateTowardsNodeCoroutine"); - StartCoroutine("RotateTowardsNodeCoroutine", node); - - /* - Debug.Log(node.transform.eulerAngles); - - float xangle = (Mathf.Atan2(finalPos.z, finalPos.y) - Mathf.Atan2(initialPos.z, initialPos.y)) * Mathf.Rad2Deg; - - Debug.Log(node.transform.position); - transform.Rotate(new Vector3(90, 0, 0)); - //transform.rotation = transform.rotation * Quaternion.AngleAxis(xangle, Vector3.right); - Debug.Log(xangle); - float yAngle = (Mathf.Atan2(finalPos.x, finalPos.z) - Mathf.Atan2(node.transform.position.x, node.transform.position.z)) * Mathf.Rad2Deg; - Debug.Log(yAngle); - //transform.Rotate(new Vector3(xangle, yAngle, 0)); - - //float zAngle = (Mathf.Atan2(finalPos.y, finalPos.x) - Mathf.Atan2(initialPos.y, initialPos.x)) * Mathf.Rad2Deg; - - //transform.rotation = transform.rotation * Quaternion.AngleAxis(xangle, Vector3.right) * Quaternion.AngleAxis(yAngle, Vector3.up) * Quaternion.AngleAxis(zAngle, Vector3.forward); - */ - } - - private IEnumerator RotateTowardsNodeCoroutine(PersonNode node) - { - _isRotatingTowardsNode = true; - rb.angularVelocity = Vector3.zero; - - //Vector3 finalPos = new Vector3(0f, 0f, -SphereRadius); - - Quaternion initialRot = transform.localRotation; - - - transform.localRotation = Quaternion.identity; // Temporary hack for the game jam - - - Vector3 nodePos = node.transform.position; - - Vector3 longDir = nodePos; - longDir.y = 0; - - float xAngle = Mathf.Asin(nodePos.normalized.y) * Mathf.Rad2Deg; // Latitude - float yAngle = Vector3.Angle(-Vector3.forward, longDir) * (longDir.x < 0 ? -1 : 1); // Longitude - - Quaternion finalRot = Quaternion.AngleAxis(-xAngle, Vector3.right) * Quaternion.AngleAxis(yAngle, Vector3.up); - - float ratio = 0f; - - while (ratio < 1f && transform.localRotation != finalRot) - { - ratio += Time.deltaTime / 1.5f; - - transform.localRotation = Quaternion.Lerp(initialRot, finalRot, Mathf.SmoothStep(0f, 1f, ratio)); - - yield return null; - } - - _isRotatingTowardsNode = false; - } -} + } + + void Update() + { + if (_timeSinceLastClick < 2f) + { + _timeSinceLastClick += Time.deltaTime; + } + + manager.GameLevel.Update(Time.deltaTime); + + //TEMPORARY QUICK FIX: Even though we are never moving the sphere, it starts moving as soon as it stops rotating + transform.position = Vector3.zero; + + Vector3 screenMousePos = Input.mousePosition; + + screenMousePos.z = transform.position.z - Camera.main.transform.position.z; + + Vector3 worldMousePos = Camera.main.ScreenToWorldPoint(screenMousePos); + + // If the world position of the mouse is greater than the radius of the sphere, we are outside + if (Mathf.Sqrt(worldMousePos.x * worldMousePos.x + worldMousePos.y * worldMousePos.y) > levelOptions.SphereRadius + 1f) + { + transform.Rotate(Vector3.one * Time.deltaTime * rotationSpeed); + } + + //when right btn clicked, call the change rotation + if (Input.GetMouseButtonDown(1)) + { + dragging = true; + } + else if (Input.GetMouseButtonUp(1)) + { + dragging = false; + delta = new Vector3(); + } + + if (dragging && !_isRotatingTowardsNode) + { + MoveSphere(); + } + + + //scroll + if (Input.GetAxis("Mouse ScrollWheel") != 0) + { + // if (Camera.main.ScreenToViewportPoint(Input.mousePosition) < new Vector3(1,1,1)) + if (Camera.main.ScreenToViewportPoint(Input.mousePosition).x < 1) + { + Camera.main.fieldOfView -= Input.GetAxis("Mouse ScrollWheel") * 10f; + } + } + } + + void MoveSphere() + { + float deltaX = Input.GetAxis("Mouse X"); + float deltaY = Input.GetAxis("Mouse Y"); + if (deltaX == 0 && deltaY == 0) + { + delta = new Vector3(); + rb.angularVelocity *= 0.8f; + } + delta += new Vector3(deltaX, deltaY, 0); + + rb.AddTorque(Vector3.down * delta.x * torqueForce * Time.deltaTime, ForceMode.Impulse); + rb.AddTorque(Vector3.right * delta.y * torqueForce * Time.deltaTime, ForceMode.Impulse); + } + + private void InstantiateNodes(Level lvl) + { + peopleNodes = new PersonNode[lvl.People.Count]; + + for (int i = 0; i < lvl.People.Count; i++) + { + Person person = lvl.People[i]; + + PersonNode pInst = Instantiate(gameObjects.PersonObj, person.InitialPosition, Quaternion.identity) as PersonNode; + + pInst.OnClicked += OnNodeClicked; + + pInst.Model = person; + pInst.transform.parent = this.transform; + + peopleNodes[i] = pInst; + } + } + + private void OnNodeClicked(PersonNode node) + { + rb.angularVelocity = Vector3.zero; + + if (_selectedNode != null) + { + _selectedNode.Select(false); + } + + if (!_isRotatingTowardsNode || node != _selectedNode) + { + FocusOnNode(node); + } + + + /* + if (_timeSinceLastClick < 0.5f && node == _selectedNode) + { + // We focus on the node if double clicked + FocusOnNode(node); + } + + _timeSinceLastClick = 0f;*/ + + DetailsPanel.SetNode(node); + node.Select(true); + + _selectedNode = node; + } + + private void AssignLinks(Level lvl) + { + foreach (FriendshipLink f in lvl.Friendships) + { + Link link = Instantiate(gameObjects.LinkObj) as Link; + int id1 = f.Friend1.id; + int id2 = f.Friend2.id; + link.Model = f; + link.AttachToObjects(peopleNodes[id1].gameObject, peopleNodes[id2].gameObject); + + // Temporary stuff, for testing + peopleNodes[id1].AddLink(link); + peopleNodes[id2].AddLink(link); + } + } + + public void FocusOnNode(PersonNode node) + { + StopCoroutine("RotateTowardsNodeCoroutine"); + StartCoroutine("RotateTowardsNodeCoroutine", node); + + /* + Debug.Log(node.transform.eulerAngles); + + float xangle = (Mathf.Atan2(finalPos.z, finalPos.y) - Mathf.Atan2(initialPos.z, initialPos.y)) * Mathf.Rad2Deg; + + Debug.Log(node.transform.position); + transform.Rotate(new Vector3(90, 0, 0)); + //transform.rotation = transform.rotation * Quaternion.AngleAxis(xangle, Vector3.right); + Debug.Log(xangle); + float yAngle = (Mathf.Atan2(finalPos.x, finalPos.z) - Mathf.Atan2(node.transform.position.x, node.transform.position.z)) * Mathf.Rad2Deg; + Debug.Log(yAngle); + //transform.Rotate(new Vector3(xangle, yAngle, 0)); + + //float zAngle = (Mathf.Atan2(finalPos.y, finalPos.x) - Mathf.Atan2(initialPos.y, initialPos.x)) * Mathf.Rad2Deg; + + //transform.rotation = transform.rotation * Quaternion.AngleAxis(xangle, Vector3.right) * Quaternion.AngleAxis(yAngle, Vector3.up) * Quaternion.AngleAxis(zAngle, Vector3.forward); + */ + } + + private IEnumerator RotateTowardsNodeCoroutine(PersonNode node) + { + _isRotatingTowardsNode = true; + rb.angularVelocity = Vector3.zero; + + //Vector3 finalPos = new Vector3(0f, 0f, -SphereRadius); + + Quaternion initialRot = transform.localRotation; + + + transform.localRotation = Quaternion.identity; // Temporary hack for the game jam + + + Vector3 nodePos = node.transform.position; + + Vector3 longDir = nodePos; + longDir.y = 0; + + float xAngle = Mathf.Asin(nodePos.normalized.y) * Mathf.Rad2Deg; // Latitude + float yAngle = Vector3.Angle(-Vector3.forward, longDir) * (longDir.x < 0 ? -1 : 1); // Longitude + + Quaternion finalRot = Quaternion.AngleAxis(-xAngle, Vector3.right) * Quaternion.AngleAxis(yAngle, Vector3.up); + + float ratio = 0f; + + while (ratio < 1f && transform.localRotation != finalRot) + { + ratio += Time.deltaTime / 1.5f; + + transform.localRotation = Quaternion.Lerp(initialRot, finalRot, Mathf.SmoothStep(0f, 1f, ratio)); + + yield return null; + } + + _isRotatingTowardsNode = false; + } +} diff --git a/Assets/Scripts/PersonDetailsPanel.cs b/Assets/Scripts/PersonDetailsPanel.cs index 98e30b1..c38d63d 100644 --- a/Assets/Scripts/PersonDetailsPanel.cs +++ b/Assets/Scripts/PersonDetailsPanel.cs @@ -1,127 +1,127 @@ -using UnityEngine; -using System.Collections; -using UnityEngine.UI; -using DeathBook.Model; -using DeathBook.Util; -using System.Collections.Generic; - -public class PersonDetailsPanel : MonoBehaviour, IObserver -{ - public Image ProfilePicture; - public Text Name; - public Text FriendsTitle; - public GameObject FriendsPanel; - public Button KillButton; - public Button WatchButton; - public Button XButton; - public GameObject Container; - public RatioProgression AwarenessBar; - public RatioProgression FriendAwarenessBar; - - public UIFriendPicture FriendPicture; - - private PersonNode _node; - private Person _model; - - void Awake() - { - Container.SetActive(false); - } - - public void SetNode(PersonNode node) - { - if (_model != null) - { - _model.UnSubscribe(this); - } - - _node = node; - _model = node.Model; - - _model.Subscribe(this); - - Container.SetActive(true); - - UpdateInfo(); - } - - public void Notify() - { - UpdateInfo(); - } - - private void UpdateInfo() - { - Name.text = _model.Name; - - KillButton.gameObject.SetActive(_model.Alive); - WatchButton.gameObject.SetActive(_model.Alive); - - AwarenessBar.SetCompletedRatio(_model.AwarenessLevel); - - foreach (Transform picture in FriendsPanel.transform) - { - Destroy(picture.gameObject); - } - - ProfilePicture.sprite = _model.Picture; - - RectTransform panelTrans = FriendsPanel.GetComponent(); - - panelTrans.anchorMin = new Vector2(0f, -0.3125f * _model.FriendList.Count); - panelTrans.anchorMax = new Vector2(1f, 1f); - panelTrans.offsetMin = Vector2.zero; - panelTrans.offsetMax = Vector2.zero; - - float height = 1f / _model.FriendList.Count; - - // We copy the list so we can sort it without affecting the model data - List list = new List(_model.FriendList); - list.Sort(); - - FriendsTitle.text = string.Concat("Friends (", list.Count, ")"); - - for (int i = 0; i < list.Count; i++) - { - Person friend = list[i].Friend; - - float minY = 1f - (height - 0.01f) * (i + 1) - i * 0.01f; - float maxY = 1f - height * i; - - // Friend picture - UIFriendPicture friendPicture = Instantiate(FriendPicture) as UIFriendPicture; - Image picture = friendPicture.Picture; - - friendPicture.Model = friend; - picture.sprite = friend.Picture; - picture.transform.SetParent(FriendsPanel.transform); - picture.rectTransform.anchorMin = new Vector2(0.022f, minY); - picture.rectTransform.anchorMax = new Vector2(0.26f, maxY); - picture.rectTransform.offsetMin = Vector2.zero; - picture.rectTransform.offsetMax = Vector2.zero; - - // Awareness bar - RatioProgression awarenessBar = Instantiate(FriendAwarenessBar) as RatioProgression; - RectTransform barRectTrans = awarenessBar.GetComponent(); - - awarenessBar.SetCompletedRatio(friend.AwarenessLevel); - - awarenessBar.transform.SetParent(FriendsPanel.transform); - barRectTrans.anchorMin = new Vector2(0.28f, minY); - barRectTrans.anchorMax = new Vector2(1f, maxY); - barRectTrans.offsetMin = Vector2.zero; - barRectTrans.offsetMax = Vector2.zero; - } - } - - public void Close() - { - Container.SetActive(false); - _node.Select(false); - } - - public void KillNode() - { - _node.Kill(); - } -} +using UnityEngine; +using System.Collections; +using UnityEngine.UI; +using DeathBook.Model; +using DeathBook.Util; +using System.Collections.Generic; + +public class PersonDetailsPanel : MonoBehaviour, IObserver +{ + public Image ProfilePicture; + public Text Name; + public Text FriendsTitle; + public GameObject FriendsPanel; + public Button KillButton; + public Button WatchButton; + public Button XButton; + public GameObject Container; + public RatioProgression AwarenessBar; + public RatioProgression FriendAwarenessBar; + + public UIFriendPicture FriendPicture; + + private PersonNode _node; + private Person _model; + + void Awake() + { + Container.SetActive(false); + } + + public void SetNode(PersonNode node) + { + if (_model != null) + { + _model.UnSubscribe(this); + } + + _node = node; + _model = node.Model; + + _model.Subscribe(this); + + Container.SetActive(true); + + UpdateInfo(); + } + + public void Notify() + { + UpdateInfo(); + } + + private void UpdateInfo() + { + Name.text = _model.Name; + + KillButton.gameObject.SetActive(_model.Alive); + WatchButton.gameObject.SetActive(_model.Alive); + + AwarenessBar.SetCompletedRatio(_model.AwarenessLevel); + + foreach (Transform picture in FriendsPanel.transform) + { + Destroy(picture.gameObject); + } + + ProfilePicture.sprite = _model.Picture; + + RectTransform panelTrans = FriendsPanel.GetComponent(); + + panelTrans.anchorMin = new Vector2(0f, -0.3125f * _model.FriendList.Count); + panelTrans.anchorMax = new Vector2(1f, 1f); + panelTrans.offsetMin = Vector2.zero; + panelTrans.offsetMax = Vector2.zero; + + float height = 1f / _model.FriendList.Count; + + // We copy the list so we can sort it without affecting the model data + List list = new List(_model.FriendList); + list.Sort(); + + FriendsTitle.text = string.Concat("Friends (", list.Count, ")"); + + for (int i = 0; i < list.Count; i++) + { + Person friend = list[i].Friend; + + float minY = 1f - (height - 0.01f) * (i + 1) - i * 0.01f; + float maxY = 1f - height * i; + + // Friend picture + UIFriendPicture friendPicture = Instantiate(FriendPicture) as UIFriendPicture; + Image picture = friendPicture.Picture; + + friendPicture.Model = friend; + picture.sprite = friend.Picture; + picture.transform.SetParent(FriendsPanel.transform); + picture.rectTransform.anchorMin = new Vector2(0.022f, minY); + picture.rectTransform.anchorMax = new Vector2(0.26f, maxY); + picture.rectTransform.offsetMin = Vector2.zero; + picture.rectTransform.offsetMax = Vector2.zero; + + // Awareness bar + RatioProgression awarenessBar = Instantiate(FriendAwarenessBar) as RatioProgression; + RectTransform barRectTrans = awarenessBar.GetComponent(); + + awarenessBar.SetCompletedRatio(friend.AwarenessLevel); + + awarenessBar.transform.SetParent(FriendsPanel.transform); + barRectTrans.anchorMin = new Vector2(0.28f, minY); + barRectTrans.anchorMax = new Vector2(1f, maxY); + barRectTrans.offsetMin = Vector2.zero; + barRectTrans.offsetMax = Vector2.zero; + } + } + + public void Close() + { + Container.SetActive(false); + _node.Select(false); + } + + public void KillNode() + { + _node.Kill(); + } +} diff --git a/Assets/Scripts/PersonNode.cs b/Assets/Scripts/PersonNode.cs index 3c79943..24b67ca 100644 --- a/Assets/Scripts/PersonNode.cs +++ b/Assets/Scripts/PersonNode.cs @@ -20,7 +20,10 @@ public class PersonNode : MonoBehaviour, IObserver public Color EndColor = Color.red; public Renderer internQuad; - public Renderer xQuad; + public float KillHoldDuration = 2f; + public RatioProgression xMarkLeft; + public RatioProgression xMarkRight; + public Renderer bloodSplatter; private List _links; private bool _highlighted = false; @@ -30,6 +33,8 @@ public class PersonNode : MonoBehaviour, IObserver private Renderer _renderer; private Transform _transform; + private float _holdDuration; + public Person Model { get { return _model; } @@ -99,9 +104,48 @@ public class PersonNode : MonoBehaviour, IObserver public void Kill() { - _model.Kill(); + if (_model.Kill()) + { + StartCoroutine(SplashBlood()); + } } + private IEnumerator SplashBlood() + { + bloodSplatter.gameObject.SetActive(true); + + float ratio = 0f; + + Vector3 finalScale = Vector3.one * 1.7f; + + while (ratio < 1f) + { + ratio += Time.deltaTime / 0.4f; + + bloodSplatter.transform.localScale = Vector3.Lerp(Vector3.zero, finalScale, ratio); + + yield return null; + } + + ratio = 0f; + + Color initialColor = bloodSplatter.material.color; + Color finalColor = initialColor; + finalColor.a = 0f; + + // Fade out + while (ratio < 1f) + { + ratio += Time.deltaTime / 1f; + + bloodSplatter.material.color = Color.Lerp(initialColor, finalColor, ratio); + + yield return null; + } + + bloodSplatter.gameObject.SetActive(false); + } + public void Notify() { //Debug.Log("Received notification! " + Model.AwarenessLevel); @@ -113,12 +157,10 @@ public class PersonNode : MonoBehaviour, IObserver //If dead -> set offline until all friends are aware, then add a big red X to profile pic if (_model.Alive) { - xQuad.enabled = false; SetColors(); } else { - xQuad.enabled = true; gameObject.GetComponent().material.color = new Color32(50, 50, 50, 1); UpdateLinks(false); } @@ -168,10 +210,38 @@ public class PersonNode : MonoBehaviour, IObserver void OnMouseDown() { + _holdDuration = 0f; + // The sphere should be subscribed to this event and update the data accordingly if (OnClicked != null) { OnClicked(this); } } + + void OnMouseDrag() + { + if (!_model.Alive) return; + + Debug.Log(_model.Alive); + + _holdDuration += Time.deltaTime; + + xMarkLeft.SetCompletedRatio(Mathf.Clamp(_holdDuration - 0.025f, 0f, 1f)); + xMarkRight.SetCompletedRatio(Mathf.Clamp(_holdDuration - 1.025f, 0f, 1f)); + + if (_holdDuration >= KillHoldDuration) + { + Kill(); + } + } + + void OnMouseUp() + { + if (_model.Alive) + { + xMarkLeft.SetCompletedRatio(0f); + xMarkRight.SetCompletedRatio(0f); + } + } } diff --git a/Assets/Scripts/loadLevel.cs b/Assets/Scripts/loadLevel.cs new file mode 100644 index 0000000..751d94b --- /dev/null +++ b/Assets/Scripts/loadLevel.cs @@ -0,0 +1,19 @@ +using UnityEngine; +using System.Collections; + +public class loadLevel : MonoBehaviour +{ + public int timeToWait = 2; + // Use this for initialization + + void Start() + { + Invoke("NextScene", timeToWait); + } + + void NextScene() + { + Application.LoadLevel("Gameplay"); + } + +} diff --git a/Assets/Scripts/loadLevel.cs.meta b/Assets/Scripts/loadLevel.cs.meta new file mode 100644 index 0000000..f06929b --- /dev/null +++ b/Assets/Scripts/loadLevel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2931322f1f0c62f40b2d7a6e493934ca +timeCreated: 1439741672 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Shaders/RatioProgression/RatioProgressionDiagonalLeft.shader b/Assets/Shaders/RatioProgression/RatioProgressionDiagonalLeft.shader new file mode 100644 index 0000000..6af864d --- /dev/null +++ b/Assets/Shaders/RatioProgression/RatioProgressionDiagonalLeft.shader @@ -0,0 +1,86 @@ +// http://wiki.unity3d.com/index.php?title=Shader_Code + +Shader "Pat Shaders/RatioProgressionDiagonalLeft" +{ + Properties + { + _CompletedColor ("Completed Tint", Color) = (0,0,0,0) + _RemainingColor ("Remaining Tint", Color) = (1,1,1,1) + + _MainTex ("Texture", 2D) = "white" {} + + _Ratio ("Ratio", Range(0,1)) = 0.5 + } + + SubShader + { + // http://docs.unity3d.com/460/Documentation/Manual/SL-SubshaderTags.html + Tags + { + "Queue"="Transparent-1" + + } + + // http://docs.unity3d.com/Manual/SL-Blend.html + Blend One OneMinusSrcAlpha + + Pass + { + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + + fixed4 _CompletedColor; + fixed4 _RemainingColor; + float _Ratio; + sampler2D _MainTex; + + // Data transferred from application to vertex program + struct vertexInput + { + float4 vertex : POSITION; + float2 texcoord0 : TEXCOORD0; // Normalized, from 0 to 1 + }; + + // Data transferred from vertex program to fragment program + struct fragmentInput + { + float4 position : SV_POSITION; + float2 texcoord0 : TEXCOORD0; // Normalized, from 0 to 1 + }; + + // Vertex program + fragmentInput vert(vertexInput i) + { + fragmentInput o; + + o.position = mul(UNITY_MATRIX_MVP, i.vertex); // Model*View*Projection matrix + o.texcoord0 = i.texcoord0; + + return o; + } + + // Fragment program + fixed4 frag(fragmentInput i) : COLOR + { + float4 color; + + if (i.texcoord0.x <= _Ratio && i.texcoord0.y >= 1 - _Ratio) + { + color = tex2D(_MainTex, i.texcoord0) * _CompletedColor; + } + else + { + color = tex2D(_MainTex, i.texcoord0) * _RemainingColor; + } + + color.rgb = color.rgb * color.a; + + return color; + } + + ENDCG + } + } +} diff --git a/Assets/Shaders/RatioProgression/RatioProgressionDiagonalLeft.shader.meta b/Assets/Shaders/RatioProgression/RatioProgressionDiagonalLeft.shader.meta new file mode 100644 index 0000000..0a1d39d --- /dev/null +++ b/Assets/Shaders/RatioProgression/RatioProgressionDiagonalLeft.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: bb0f298d1fd9ff24c8aed06d334c0b1f +timeCreated: 1439740748 +licenseType: Free +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Shaders/RatioProgression/RatioProgressionDiagonalRight.shader b/Assets/Shaders/RatioProgression/RatioProgressionDiagonalRight.shader new file mode 100644 index 0000000..ba506b8 --- /dev/null +++ b/Assets/Shaders/RatioProgression/RatioProgressionDiagonalRight.shader @@ -0,0 +1,86 @@ +// http://wiki.unity3d.com/index.php?title=Shader_Code + +Shader "Pat Shaders/RatioProgressionDiagonalRight" +{ + Properties + { + _CompletedColor ("Completed Tint", Color) = (0,0,0,0) + _RemainingColor ("Remaining Tint", Color) = (1,1,1,1) + + _MainTex ("Texture", 2D) = "white" {} + + _Ratio ("Ratio", Range(0,1)) = 0.5 + } + + SubShader + { + // http://docs.unity3d.com/460/Documentation/Manual/SL-SubshaderTags.html + Tags + { + "Queue"="Transparent-1" + + } + + // http://docs.unity3d.com/Manual/SL-Blend.html + Blend One OneMinusSrcAlpha + + Pass + { + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + + fixed4 _CompletedColor; + fixed4 _RemainingColor; + float _Ratio; + sampler2D _MainTex; + + // Data transferred from application to vertex program + struct vertexInput + { + float4 vertex : POSITION; + float2 texcoord0 : TEXCOORD0; // Normalized, from 0 to 1 + }; + + // Data transferred from vertex program to fragment program + struct fragmentInput + { + float4 position : SV_POSITION; + float2 texcoord0 : TEXCOORD0; // Normalized, from 0 to 1 + }; + + // Vertex program + fragmentInput vert(vertexInput i) + { + fragmentInput o; + + o.position = mul(UNITY_MATRIX_MVP, i.vertex); // Model*View*Projection matrix + o.texcoord0 = i.texcoord0; + + return o; + } + + // Fragment program + fixed4 frag(fragmentInput i) : COLOR + { + float4 color; + + if (i.texcoord0.x >= 1 - _Ratio && i.texcoord0.y >= 1 - _Ratio) + { + color = tex2D(_MainTex, i.texcoord0) * _CompletedColor; + } + else + { + color = tex2D(_MainTex, i.texcoord0) * _RemainingColor; + } + + color.rgb = color.rgb * color.a; + + return color; + } + + ENDCG + } + } +} diff --git a/Assets/Shaders/RatioProgression/RatioProgressionDiagonalRight.shader.meta b/Assets/Shaders/RatioProgression/RatioProgressionDiagonalRight.shader.meta new file mode 100644 index 0000000..b7f7d97 --- /dev/null +++ b/Assets/Shaders/RatioProgression/RatioProgressionDiagonalRight.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b0aba77b532f48a48b23f8b41fbe3bcd +timeCreated: 1439740921 +licenseType: Free +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 802c8ce..78b2941 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 5.0.2f1 +m_EditorVersion: 5.1.1f1 m_StandardAssetsVersion: 0