diff --git a/IronToad_UnityProject/Assets/Art/Models/Materials/textures/shadows.png b/IronToad_UnityProject/Assets/Art/Models/Materials/textures/shadows.png new file mode 100644 index 0000000..d3ac48a Binary files /dev/null and b/IronToad_UnityProject/Assets/Art/Models/Materials/textures/shadows.png differ diff --git a/IronToad_UnityProject/Assets/Art/Models/Materials/textures/shadows.png.meta b/IronToad_UnityProject/Assets/Art/Models/Materials/textures/shadows.png.meta new file mode 100644 index 0000000..e5e23b0 --- /dev/null +++ b/IronToad_UnityProject/Assets/Art/Models/Materials/textures/shadows.png.meta @@ -0,0 +1,118 @@ +fileFormatVersion: 2 +guid: 11a03cf810b734d53aaf004e9813f384 +timeCreated: 1485053643 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: + 21300000: shadows_0 + 21300002: shadows_1 + 21300004: shadows_2 + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: shadows_0 + rect: + serializedVersion: 2 + x: 21 + y: 243 + width: 477 + height: 260 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + tessellationDetail: 0 + - serializedVersion: 2 + name: shadows_1 + rect: + serializedVersion: 2 + x: 241 + y: 0 + width: 262 + height: 262 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + tessellationDetail: 0 + - serializedVersion: 2 + name: shadows_2 + rect: + serializedVersion: 2 + x: 48 + y: 15 + width: 148 + height: 226 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + tessellationDetail: 0 + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/IronToad_UnityProject/Assets/Art/particle effects/shadow-fog-mat.mat b/IronToad_UnityProject/Assets/Art/particle effects/shadow-fog-mat.mat new file mode 100644 index 0000000..fcca70e Binary files /dev/null and b/IronToad_UnityProject/Assets/Art/particle effects/shadow-fog-mat.mat differ diff --git a/IronToad_UnityProject/Assets/Art/particle effects/shadow-fog-mat.mat.meta b/IronToad_UnityProject/Assets/Art/particle effects/shadow-fog-mat.mat.meta new file mode 100644 index 0000000..1b21246 --- /dev/null +++ b/IronToad_UnityProject/Assets/Art/particle effects/shadow-fog-mat.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ca5d73253182e408ca7ed18a9f88c137 +timeCreated: 1485000941 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/IronToad_UnityProject/Assets/Prefabs/shadow-sprite-1.prefab b/IronToad_UnityProject/Assets/Prefabs/shadow-sprite-1.prefab new file mode 100644 index 0000000..db4fd03 Binary files /dev/null and b/IronToad_UnityProject/Assets/Prefabs/shadow-sprite-1.prefab differ diff --git a/IronToad_UnityProject/Assets/Prefabs/shadow-sprite-1.prefab.meta b/IronToad_UnityProject/Assets/Prefabs/shadow-sprite-1.prefab.meta new file mode 100644 index 0000000..3776c44 --- /dev/null +++ b/IronToad_UnityProject/Assets/Prefabs/shadow-sprite-1.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4d7604cf4d94343189f9ca8fa401a92b +timeCreated: 1485054847 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/IronToad_UnityProject/Assets/Scripts/BoatController.cs b/IronToad_UnityProject/Assets/Scripts/BoatController.cs index 34d2718..b8aa89b 100644 --- a/IronToad_UnityProject/Assets/Scripts/BoatController.cs +++ b/IronToad_UnityProject/Assets/Scripts/BoatController.cs @@ -12,6 +12,7 @@ public class BoatController : BuoyantObject { private bool applyBreak = true; + // Use this for initialization void Start() { @@ -40,7 +41,7 @@ public class BoatController : BuoyantObject { Debug.Log("Forward hit:" + forwardHitSpeed); if (forwardHitSpeed > breakSpeed) { - NotificationServer.notify("show GameOverPanel"); + PlayerController.instance.takeOneDamage(); } } } diff --git a/IronToad_UnityProject/Assets/Scripts/HidingSpot.cs b/IronToad_UnityProject/Assets/Scripts/HidingSpot.cs new file mode 100644 index 0000000..1150dc0 --- /dev/null +++ b/IronToad_UnityProject/Assets/Scripts/HidingSpot.cs @@ -0,0 +1,29 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[RequireComponent(typeof(BoxCollider))] +public class HidingSpot : MonoBehaviour { + + + // Use this for initialization + void Start() { + GetComponent().isTrigger = true; + } + + // Update is called once per frame + void Update() { + + } + + void OnTriggerEnter(Collider other) { + if (other.gameObject.CompareTag("Player")) + Searchlight.playerHidden = true; + + } + + void OnTriggerExit(Collider other) { + if (other.gameObject.CompareTag("Player")) + Searchlight.playerHidden = false; + } +} diff --git a/IronToad_UnityProject/Assets/Scripts/HidingSpot.cs.meta b/IronToad_UnityProject/Assets/Scripts/HidingSpot.cs.meta new file mode 100644 index 0000000..6192a30 --- /dev/null +++ b/IronToad_UnityProject/Assets/Scripts/HidingSpot.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0a8ee24f913b2504385604346da773d7 +timeCreated: 1485054757 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/IronToad_UnityProject/Assets/Scripts/PlayerController.cs b/IronToad_UnityProject/Assets/Scripts/PlayerController.cs index a0b548e..4327d9a 100644 --- a/IronToad_UnityProject/Assets/Scripts/PlayerController.cs +++ b/IronToad_UnityProject/Assets/Scripts/PlayerController.cs @@ -12,11 +12,19 @@ public class PlayerController : MonoBehaviour { public GameObject waveRing; + public int life = 3; + public float lastDamageTime = 0; + + public static PlayerController instance; + + public GameObject[] lifeHearts; + void Start() { NotificationServer.register("show GameUI", showGameUI); NotificationServer.register("hide GameUI", hideGameUI); + instance = this; } @@ -48,6 +56,23 @@ public class PlayerController : MonoBehaviour { } + public void setLife(int life) { + for (int i = 0; i < lifeHearts.Length; i++) { + lifeHearts[i].SetActive((i < life)); + } + this.life = life; + } + + public void takeOneDamage() { + if (Time.time > lastDamageTime + 2 && life > 0) { + setLife(life - 1); + lastDamageTime = Time.time; + if (life == 0) + NotificationServer.notify("show GameOverPanel"); + } + } + + private void showGameUI() { Debug.Log("UI open"); isLocked = false; diff --git a/IronToad_UnityProject/Assets/Scripts/Searchlight.cs b/IronToad_UnityProject/Assets/Scripts/Searchlight.cs index 0b1f08b..5c354d0 100644 --- a/IronToad_UnityProject/Assets/Scripts/Searchlight.cs +++ b/IronToad_UnityProject/Assets/Scripts/Searchlight.cs @@ -22,6 +22,8 @@ public class Searchlight : MonoBehaviour public static SearchState state = SearchState.Spline; public static Collider chased; + public static bool playerHidden = false; + private static List instants = new List(); public static bool isTriggeringAtLeastOne() @@ -62,7 +64,7 @@ public class Searchlight : MonoBehaviour void OnTriggerExit(Collider other) { - if (other.tag != "Player") + if (other.tag != "Player" || playerHidden) return; isTriggering = false; if (state == SearchState.Chasing && !isTriggeringAtLeastOne()) diff --git a/IronToad_UnityProject/Assets/_Scenes/GreyBox_Prototype.unity b/IronToad_UnityProject/Assets/_Scenes/GreyBox_Prototype.unity index 2831c53..9d75dbc 100644 Binary files a/IronToad_UnityProject/Assets/_Scenes/GreyBox_Prototype.unity and b/IronToad_UnityProject/Assets/_Scenes/GreyBox_Prototype.unity differ diff --git a/IronToad_UnityProject/ProjectSettings/QualitySettings.asset b/IronToad_UnityProject/ProjectSettings/QualitySettings.asset index 4548f05..3b545db 100644 Binary files a/IronToad_UnityProject/ProjectSettings/QualitySettings.asset and b/IronToad_UnityProject/ProjectSettings/QualitySettings.asset differ