From 2af4b94ddc81c36e2990bbd7a76f5b01f9cb9fc1 Mon Sep 17 00:00:00 2001 From: Patrice Vignola Date: Sat, 22 Aug 2015 03:56:33 -0400 Subject: [PATCH] Add the first pass of the mom behavior --- Assets/Scenes/PatScene.unity | Bin 19188 -> 20356 bytes Assets/Scripts/Child.cs | 20 ++++++++++-- Assets/Scripts/ChildController.cs | 7 ++++- Assets/Scripts/MomBehavior.cs | 47 +++++++++++++++++++++++++++++ Assets/Scripts/MomBehavior.cs.meta | 12 ++++++++ 5 files changed, 83 insertions(+), 3 deletions(-) create mode 100644 Assets/Scripts/MomBehavior.cs create mode 100644 Assets/Scripts/MomBehavior.cs.meta diff --git a/Assets/Scenes/PatScene.unity b/Assets/Scenes/PatScene.unity index 9a4d869739281d112714db1b9b72595dbc10d7eb..027082add01820070450ecb364549f395c93e7a7 100644 GIT binary patch delta 1308 zcmZ8fTS!!45T1W8xt3d7yXCfNcBPA}9Wz^X-94texmjBV7WL3Y$}3s9Q5h6$AQ6?7 zO+pdTg{X&$6nikjh$!ksSc$-j#D{t*=mG`OgQuDQoHgsf{4?{-%=gdybAEP;wrgT5 zKrjbjLmL20A-jq+6y)aRF0adjQBBjtGy>RoTerUa@RjOoUAs|Xq88AQiIcfoBl#McsNpPPm~ENVn55;32r=EI3hGF6Fpf8zPB9fHo6`%pRlZ(;88#9_6AAmy zFs8XUtb%mZfvfFXie)lw|l{tmFC$1=u~xcv9r?VH z7zgO{8nIUt+f6=qW&ypf?n!qB=O|Vj^?6KlQqWWADNdwN6`}M>Bzk7=yG8Rjljq^s zQ7L-tkr7jDxVO+_+G)d6#PXdo|G&?*DI8*wEvfqJ@SX(Sz_YlG*#1-;B9`7%{7o!f zlK_rUbo{ir_g-&f7KMI{>!kNc(R*2D#1d(^zQ|)Lv}03|r&yt%q=T}?v(&9^Z6OF= zQS2mX-eS5jZM_kza^MqUx#YliMIL{G-v6J8bUG%1;Uf>ErlA4)Uw-oXXO67u{PC;m z&CsGzGvLJH5!8xXgb7>x^Mx5Z{oi^lYOlbOpaT=7R@@lOChZbd>|hrv&~0DwQ^A9ry#XVl~15 delta 728 zcmZWlO=}ZT6umD=C&89VX%=BjNY#RZwKf_JP1DRwAtYlbaodG~Dq5?His-_P;KGHd zLE$2}u$V5F+l1ag~iI7$HKD>UiFp(M4RG^X@(8y!$?GJrUi9Vw5P` zBs$q8qTQ%FSn2q9YW(OzihjGUD~5;~TJXyWv4^{p?U{v*^|;JXh^QloJ_jXSS4uCo z4(yX_r;lhAD{R2?Uiw~LCg;%7ZFt)~_dLAzp(?$bySS3m1Juu#a(cGjPjn6{9tL<* z*4uNJWim4G|CIBy*RM#A26+Qh9u4wVPOpsM7klrr=qDH9rLkeJf_K72->bvxJ)OdQ zVS1a-=9h%v_xb%Iz(4ZeM356^l0#-pRT;m(ruv#`pnqpdwT9HFB~#OuRBu>Ez|Rz) zDGc+PHNZPoTJ&*hW|()1BaOE4O0ZLi@<%Jm2_weyg;3)`Ar`>C)uQ1gQU59?g~o}J z0j?@uR@^FOptMR!{)*dZT(}_-;QHBFxLP2Dqg-;mEq`WVmC8c;1Q2 m0jh2~>3`aa9cQyVfqsl1m!IQP%9Z>0l%Z3Hc(W2w)zv>|J->DU diff --git a/Assets/Scripts/Child.cs b/Assets/Scripts/Child.cs index 9342307..77ce71a 100644 --- a/Assets/Scripts/Child.cs +++ b/Assets/Scripts/Child.cs @@ -7,13 +7,18 @@ public class Child : MonoBehaviour public float Speed = 10f; public float JumpForce = 10f; public GameObject GroundCheck; + public Pillow pillow; private Rigidbody _rb; private bool _isGrounded = false; private float _xValue; private float _zValue; - public Pillow pillow; + private bool _isSleeping; + public bool IsSleeping + { + get { return _isSleeping; } + } void Awake() { @@ -27,7 +32,6 @@ public class Child : MonoBehaviour Debug.Log(_isGrounded); } - void OnTriggerEnter(Collider other) { if (other.tag == "Pillow") { @@ -78,4 +82,16 @@ public class Child : MonoBehaviour _rb.AddForce(new Vector3(0f, JumpForce, 0f)); } } + + public void Sleep() + { + _isSleeping = IsOnBed(); + } + + private bool IsOnBed() + { + Collider[] colliders = Physics.OverlapSphere(GroundCheck.transform.position, 0.149f, 1 << LayerMask.NameToLayer("Bed")); + + return colliders.Length > 0; + } } diff --git a/Assets/Scripts/ChildController.cs b/Assets/Scripts/ChildController.cs index 54826bf..8c4cef5 100644 --- a/Assets/Scripts/ChildController.cs +++ b/Assets/Scripts/ChildController.cs @@ -13,7 +13,7 @@ public class ChildController : MonoBehaviour void Awake() { - InputManager.Instance.PushActiveContext("Gameplay", (int)PlayerNumber); + InputManager.Instance.PushActiveContext("Awake", (int)PlayerNumber); InputManager.Instance.AddCallback((int)PlayerNumber, HandlePlayerAxis); InputManager.Instance.AddCallback((int)PlayerNumber, HandlePlayerButtons); @@ -57,6 +57,11 @@ public class ChildController : MonoBehaviour { _child.Jump(); } + + if (input.Actions.Contains("Sleep")) + { + _child.Sleep(); + } } } diff --git a/Assets/Scripts/MomBehavior.cs b/Assets/Scripts/MomBehavior.cs new file mode 100644 index 0000000..b05b7b4 --- /dev/null +++ b/Assets/Scripts/MomBehavior.cs @@ -0,0 +1,47 @@ +using UnityEngine; +using System.Collections; +using UnityEngine.UI; + +public class MomBehavior : MonoBehaviour +{ + public Child[] Children; + + public Text WarningText; + public float MinTriggerTime = 60f; + public float MaxTriggerTime = 90f; + public float WarningHeadsupTime = 5f; + + private float _elapsedTime = 0f; + + private float _nextTriggerTime; + + void Awake() + { + _nextTriggerTime = GetNextTriggerTime(); + Debug.Log("NextTrigger: " + _nextTriggerTime); + } + + void Update() + { + // When the mom hasn't been triggered for a while, it can appear anytime between 2 borders + + _elapsedTime += Time.deltaTime; + + if (_elapsedTime >= _nextTriggerTime - WarningHeadsupTime && _elapsedTime < _nextTriggerTime) + { + WarningText.gameObject.SetActive(true); + } + else if (_elapsedTime >= _nextTriggerTime) + { + WarningText.gameObject.SetActive(false); + _nextTriggerTime = GetNextTriggerTime(); + + _elapsedTime = 0f; + } + } + + private float GetNextTriggerTime() + { + return UnityEngine.Random.Range(MinTriggerTime, MaxTriggerTime); + } +} diff --git a/Assets/Scripts/MomBehavior.cs.meta b/Assets/Scripts/MomBehavior.cs.meta new file mode 100644 index 0000000..d1165d8 --- /dev/null +++ b/Assets/Scripts/MomBehavior.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dc7c5ec2b3918f14591f5f055ded72ef +timeCreated: 1440227199 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: