Inheritance: MonoBehaviour
    // Update is called once per frame
    void Update()
    {
        velocity_y += gravity * Time.deltaTime;
        transform.Translate(velocity_x, velocity_y, 0);

        objTrigger = GameObject.Find("FallObjOff").GetComponent <ObjectTrigger>();

        if (objTrigger.isLevel1 == true)
        {
            risingWater = GameObject.Find("Rising Water");
        }
        else
        {
            risingWater = GameObject.Find("Rising Water 2");
        }

        //if (risingWater.active == true)
        //{
        //    if (transform.position.y < risingWater.transform.position.y - 2 * risingWater.transform.localScale.y)
        //        Destroy(this.gameObject);
        //}
        if (transform.position.y < -500)
        {
            Destroy(this.gameObject);
        }
    }
Beispiel #2
0
        public override void OnActivateStay(HedgehogController controller)
        {
            if (controller == null)
            {
                return;
            }

            var index = Controllers.IndexOf(controller);

            if (index < 0)
            {
                return;
            }

            ControllerProgress[index] += TravelSpeed / _cachedLength * Time.fixedDeltaTime;

            var walk = Physics2DUtility.Walk(_cachedPath, ControllerProgress[index], false) +
                       (Vector2)(controller.transform.position - controller.Sensors.Center.position);

            Velocities[index]             = (walk - (Vector2)controller.transform.position) / Time.fixedDeltaTime;
            controller.transform.position = new Vector3(walk.x, walk.y, controller.transform.position.z);

            if (ControllerProgress[index] > 1.0f)
            {
                ObjectTrigger.Deactivate(controller);
            }
        }
Beispiel #3
0
    private void OnTriggerStay(Collider other)
    {
        if (other.CompareTag("Object"))
        {
            interactPanel.SetActive(true);
        }

        if (other.CompareTag("Object") && Input.GetKeyDown(interactButton))
        {
            ObjectTrigger obj = other.gameObject.GetComponent <ObjectTrigger>();
            gm.StartDialogue(obj.dialogue);

            if (obj.isKey)
            {
                obj.door.SetActive(false);
                other.gameObject.SetActive(false);
            }
        }

        if (other.CompareTag("Door") || other.CompareTag("Stair") && Input.GetKeyDown(interactButton) && gm.state == GameState.FreeRoam)
        {
            Door door = other.gameObject.GetComponent <Door>();
            door.StartDialogue();
        }

        if (other.CompareTag("Jalangkung") && Input.GetKeyDown(interactButton) && gm.state == GameState.FreeRoam)
        {
            Door door = other.gameObject.GetComponent <Door>();
            door.JalangkungDialogue();
        }
    }
Beispiel #4
0
        /// <summary>
        /// Add a scratch event to the game if it is defined in the gameData
        /// </summary>
        /// <param name="scratchEvilAction"></param>
        public void AddScratchAction(EvilAction scratchEvilAction)
        {
            GameObject    tempGo     = new GameObject();
            ObjectTrigger objTrigger = tempGo.AddComponent <ObjectTrigger>();

            objTrigger.actionTrigger = scratchEvilAction;
            scratchActions.Add(objTrigger);
        }
Beispiel #5
0
        /// <summary>
        /// Add a voice event to the game if it is defined in the gameData
        /// </summary>
        /// <param name="voiceEvilAction"></param>
        public void AddVoiceAction(EvilAction voiceEvilAction)
        {
            GameObject    tempGo     = new GameObject();
            ObjectTrigger objTrigger = tempGo.AddComponent <ObjectTrigger>();

            objTrigger.actionTrigger        = voiceEvilAction;
            objTrigger.holdingTimeThreshold = .1f;
            objTrigger.triggerCompleteTime  = 2f;
            objTrigger.isSolved             = false;
            voiceActionObjs.Add(objTrigger);
        }
Beispiel #6
0
        /// <summary>
        /// Handling user Push (Acceleration)
        /// </summary>
        /// <param name="shakeThreshold"></param>
        void OnUserPush(ThresholdLevel shakeThreshold)
        {
            Vector2       shakeLoc   = gyroCam.pixelRect.center;
            GameObject    hitObj     = MobileInput.instance.CastRayHitFromCam(shakeLoc, gyroCam);
            ObjectTrigger objTrigger = TryGetObjectTrigger(hitObj);

            if (objTrigger != null)
            {
                PlayAudio(AssetManager.instance.push);

                TryTriggerInteraction(objTrigger, TriggerTypes.push);
            }
        }
Beispiel #7
0
        /// <summary>
        /// Handling onUser Touch
        /// </summary>
        /// <param name="tapPostiion"></param>
        void OnUserTouch(Vector2 tapPostiion)
        {
            GameObject hitObj = MobileInput.instance.CastRayHitFromCam(tapPostiion, gyroCam);

            levelAudioSource.Stop();
            ObjectTrigger objTrigger = TryGetObjectTrigger(hitObj);

            if (objTrigger != null && !hasUserSwiped)
            {
                PlayAudio(AssetManager.instance.touch);

                TryTriggerInteraction(objTrigger, TriggerTypes.touch);
            }
            hasUserSwiped = false;
        }
Beispiel #8
0
 /// <summary>
 /// Try to trigger an object
 /// </summary>
 /// <param name="triggerObj"></param>
 /// <param name="triggerType"></param>
 /// <returns></returns>
 bool TryTriggerInteraction(ObjectTrigger triggerObj, TriggerTypes triggerType)
 {
     Debug.Log(triggerObj + "TriggerType: " + triggerType);
     if (triggerObj != null)
     {
         if (triggerObj.actionTrigger != null && triggerObj.actionTrigger.ActionType == triggerType.ToString())
         {
             StartCoroutine(triggerObj.TriggerAction(CompleteAction));
         }
         else if (attemptTime <= 0)
         {
             TriggerFailAttempt();
         }
         return(true);
     }
     return(false);
 }
Beispiel #9
0
        /// <summary>
        /// Handling user swipe
        /// </summary>
        /// <param name="touch"></param>
        void OnUserSwipe(Touch touch)
        {
            GameObject    hitObj     = MobileInput.instance.CastRayHitFromCam(touch.position, gyroCam);
            ObjectTrigger objTrigger = TryGetObjectTrigger(hitObj);

            if (objTrigger != null)
            {
                hasUserSwiped = true;
                PlayAudio(AssetManager.instance.swipe);
                Rigidbody hitRig = hitObj.GetComponent <Rigidbody>();

                if (hitRig != null)
                {
                    Vector3 force = Vector3.ClampMagnitude((gyroCam.transform.up * touch.deltaPosition.y + gyroCam.transform.right * touch.deltaPosition.x), 3);
                    hitRig.AddForce(force, ForceMode.Impulse);
                }
                TryTriggerInteraction(objTrigger, TriggerTypes.swipe);
            }
        }
Beispiel #10
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.tag == "HauntableObject")
        {
            objecttriggerscript = collision.gameObject.GetComponent <ObjectTrigger>();

            if (objecttriggerscript.isTriggered)
            {
                if (Vector2.Distance(transform.position, objecttriggerscript.gameObject.transform.position) > 5f)
                {
                    PersonScript.status = "investigate";
                }

                if (Vector2.Distance(transform.position, objecttriggerscript.gameObject.transform.position) <= 5f)
                {
                    PersonScript.status = "gtfo";
                }
            }
        }

        Target = collision.gameObject.transform.position;
    }
    // Update is called once per frame
    void Update()
    {
        objTrigger = GameObject.Find("FallObjOff").GetComponent <ObjectTrigger>();

        if (objTrigger.isLevel1 == true)
        {
            risingWater = GameObject.Find("Rising Water");
        }
        else
        {
            risingWater = GameObject.Find("Rising Water 2");
        }

        if (FindObjectOfType <charChange>().p1 == true)
        {
            player   = GameObject.Find("Man").GetComponent <Player>();
            velocity = player.GetPlayerVelocity();
        }
        else if (FindObjectOfType <charChange>().p2 == true)
        {
            player   = GameObject.Find("Robot").GetComponent <Player>();
            velocity = player.GetPlayerVelocity();
        }

        if (velocity.x > 0)
        {
            StartSpawn = true;
        }

        if (StartSpawn == true)
        {
            currentTime -= Time.deltaTime;
            if (currentTime < 0)
            {
                SelectWave();
            }
        }
    }
Beispiel #12
0
        /// <summary>
        /// Initialize tasks from the json data
        /// </summary>
        void InitializeObjectTriggersOnRoomObjects()
        {
            var evilActions = GameState.instance.CurrentPerson.EvilAction;

            GameObject[] interactableGameObjects = GameObject.FindGameObjectsWithTag("EvilActionObject");
            if (interactableGameObjects != null)
            {
                foreach (GameObject interactableGameObject in interactableGameObjects)
                {
                    // every interactableGameObject has an ObjectTrigger script attached to it
                    ObjectTrigger objectTrigger = interactableGameObject.GetComponent <ObjectTrigger>();
                    if (objectTrigger != null)
                    {
                        EvilAction matchingIdentifierEvilAction =
                            evilActions.FirstOrDefault(b => b.Identifier.Equals(objectTrigger.EvilActionIdentifier));
                        if (matchingIdentifierEvilAction != null)
                        {
                            objectTrigger.actionTrigger = matchingIdentifierEvilAction;
                        }
                    }
                }
            }
        }
 // Start is called before the first frame update
 public override void OnStart()
 {
     triggerscript = GetComponent <ObjectTrigger>();
 }