Inheritance: MonoBehaviour
        public override bool HandleEvent(Event e)
        {
            if (e is RoomChangedEvent rce)
            {
                var r = GetComponent <RoomComponent>().Room;

                if (rce.Who is LocalPlayer)
                {
                    if (rce.New == r)
                    {
                        Camera.Instance?.Follow(this, 0.3f);
                    }
                    else if (rce.Old == r)
                    {
                        Camera.Instance?.Unfollow(this);
                    }
                }
            }
            else if (e is SpawnTrigger.TriggeredEvent stte)
            {
                trigger = stte.Trigger;
            }
            else if (e is DiedEvent de)
            {
                Interact(de.Who);
                return(true);
            }

            return(base.HandleEvent(e));
        }
 void OnEnable()
 {
     if (Application.isEditor && !EditorApplication.isPlaying)
     {
         SpawnTrigger st = target as SpawnTrigger;
         EditorApplication.update = st.UpdateEditor;
     }
 }
 public void SetHome(SpawnTrigger newHome)
 {
     if (home == null)
     {
         home = newHome;
         NextPathPoint();
     }
 }
Beispiel #4
0
        void CreateSpawnTriggers()
        {
            var leftGo = new GameObject();

            leftGo.transform.position = new Vector3(-worldsize / 2 + zoneOffset, 0, 0);
            leftSpawnTrigger          = leftGo.AddComponent <SpawnTrigger>();
            var rightGo = new GameObject();

            rightGo.transform.position = new Vector3(worldsize / 2 - zoneOffset, 0, 0);
            rightSpawnTrigger          = rightGo.AddComponent <SpawnTrigger>();
        }
    protected override void OnEnable()
    {
        base.OnEnable();

        if (!eTarget.TriggerzonePrefab)
        {
            SpawnTrigger _triggerSpawn = Resources.Load <SpawnTrigger>(triggerSpawnAssetName);
            if (_triggerSpawn)
            {
                eTarget.TriggerzonePrefab = _triggerSpawn;
            }
        }
        Tools.current = Tool.None;
    }
Beispiel #6
0
        //Constructor Specific Difficulty
        public Spawn(
            SpawnTrigger triggerType, int triggerPosition,          //trigger stuff
            ShipType shipType, Vector2 position, Vector2 direction, //ship stuff
            Difficulty dif)
        {
            this.triggerType = triggerType;
            this.trigger     = triggerPosition;

            this.shipType  = shipType;
            this.position  = position;
            this.direction = direction;

            this.difficulty = dif;
        }
Beispiel #7
0
    public void SpawnMap()
    {
        //게임 오브젝트 go 에 Instantiate(오브젝트 생성 코드) 생성한 오브젝트를 넣어줌
        //Instantiate(GameObject original ,Vector3 position ,Quaternion rotation) = 차례대로 생성할 게임 오브젝트/생성할 위치 값/회전 값
        //만약 회전을 하지 않을 경우에는 Quaternion.identity 기입 =기본값, 회전없음
        GameObject go = Instantiate(maps[Random.Range(0, 7)], new Vector3(0, 0, 10), Quaternion.identity);

        //게임 오브젝트인 go에서 맵 컴포넌트를 찾아서 맵 변수인 ma에 넣음
        Map ma = go.GetComponent <Map>();

        //스폰트리거를 를 찾아서 스폰트리거 변수인 sa에 넣음
        SpawnTrigger sa = go.transform.GetComponentInChildren <SpawnTrigger>();

        //sa스폰트리거 컴포넌트 안에 있는 변수인 m에 맵 변수를 넣음
        //이것은 SpawnMap로 생성 된 프리팹 스폰트리거(콜라이드에 있음) 컴포넌트 m에 맵 프리팹이 들어가 있지 않아서임
        sa.m = ma;
    }
Beispiel #8
0
    void SpawnAll()
    {
        if (!TriggerzonePrefab)
        {
            return;
        }

        for (int i = 0; i < AllPoint.Count; i++)
        {
            SpawnTrigger _trigger = Instantiate(TriggerzonePrefab);

            if (_trigger)
            {
                _trigger.SetDate(AllPoint[i]);
            }
        }
    }
Beispiel #9
0
    public IEnumerator Choose()
    {
        finished = false;
        int random_value = Random.Range(0, maxValue + 1);

        SpawnTrigger spawntrigger = gameObject.AddComponent <SpawnTrigger>();

        spawntrigger.enabled    = false;
        spawntrigger.TriggerOrg = true;
        spawntrigger.exe        = SpawnTrigger.ExecutionType.Parallel;
        spawntrigger.delay      = new float[1];
        spawntrigger.triggers   = new GameObject[1];

        for (int j = 0; j < values.Length; j++)
        {
            if (random_value <= values[j])
            {
                spawntrigger.triggers[0] = triggers[j];
                break;
            }
        }

        yield return(null);

        //if(spawntrigger == null) { Debug.Log("NULL"); }
        StartCoroutine(spawntrigger.Begin());

        if (spawntrigger.getExeType() == SpawnTrigger.ExecutionType.Parallel)
        {
            while (!spawntrigger.getFinished())
            {
                yield return(null);
            }
        }

        finished = true;

        if (oneuse)
        {
            Destroy(gameObject);
        }

        Destroy(spawntrigger);
        inuse = false;
    }
Beispiel #10
0
    static void DrawHandles(SpawnTrigger trigger, GizmoType gizmoType)
    {
        GUIStyle style = new GUIStyle();

        style.normal.textColor = Color.magenta;
        style.alignment        = TextAnchor.MiddleCenter;
        style.contentOffset    = new Vector2(0, -7);
        style.fontSize         = 20;

        GUIStyle indexStyle = new GUIStyle();

        indexStyle.normal.textColor = Color.yellow;
        indexStyle.alignment        = TextAnchor.UpperLeft;
        indexStyle.contentOffset    = new Vector2(12, 3);

        Handles.Label(trigger.transform.position, "T", style);

        Handles.Label(trigger.transform.position, trigger.index.ToString(), indexStyle);

        foreach (Spawner spawner in trigger.spawners)
        {
            DrawArrow.ForGizmo(trigger.transform.position, spawner.transform.position - trigger.transform.position);
        }
    }
    public override void Jump()
    {
        OrbComponent orbscript = new OrbComponent();

        if (OrbTouched != null)
        {
            orbscript = OrbTouched.GetComponent <OrbComponent>();
        }

        if (teleorb && jump)
        {
            Vector3 positionDelta = (transform.position + teleOrb_translate) - transform.position;
            jump    = false;
            teleorb = false;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }

            player_body.transform.position += teleOrb_translate;

            CinemachineVirtualCamera activeCamera = gamemanager.getActiveCamera();
            activeCamera.GetCinemachineComponent <CinemachineFramingTransposer>().OnTargetObjectWarped(activeCamera.Follow, positionDelta);
        }

        if (triggerorb && jump)
        {
            triggerorb = false;
            SpawnTrigger spawn = OrbTouched.GetComponent <SpawnTrigger>();
            StartCoroutine(spawn.Begin());

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }

        if (yellow && jump)
        {
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(true);

            fromGround           = false;
            released             = false;
            jump                 = false;
            yellow               = false;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * 1.1f);
            trail.emitting       = true;

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (pink && jump)
        {
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(true);

            fromGround           = false;
            released             = false;
            jump                 = false;
            pink                 = false;
            trail.emitting       = true;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * .94f);

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (red && jump)
        {
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(true);

            fromGround           = false;
            released             = false;
            jump                 = false;
            red                  = false;
            trail.emitting       = true;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * 1.4f);

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (blue && jump)
        {
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(true);

            playGravityParticles();

            fromGround                = false;
            released                  = false;
            jump                      = false;
            blue                      = false;
            trail.emitting            = true;
            player_body.velocity      = new Vector2(player_body.velocity.x, jumpForce * .4f);
            reversed                  = !reversed;
            player_body.gravityScale *= -1;
            grav_scale               *= -1;
            grounded                  = false;

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (green && jump)
        {
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(true);

            playGravityParticles();

            fromGround = false;
            released   = false;
            jump       = false;
            green      = false;
            reversed   = !reversed;

            if (reversed)
            {
                jumpForce = -posJump;
            }
            else
            {
                jumpForce = posJump;
            }
            trail.emitting            = true;
            player_body.velocity      = new Vector2(player_body.velocity.x, jumpForce * 1.1f);
            player_body.gravityScale *= -1;
            grav_scale *= -1;

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (black && jump)
        {
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(true);

            fromGround           = false;
            black                = false;
            released             = false;
            jump                 = true;
            downjump             = true;
            trail.emitting       = true;
            player_body.velocity = new Vector2(player_body.velocity.x, -jumpForce * 1.1f);

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if ((grounded || time < 0.05f) && jump_ground)
        {
            time                 = 1;
            trail.emitting       = false;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce);
            grounded             = false;

            checkGrounded = false;
            checkGrounded = true;

            fromGround = true;
            jump       = false;
            downjump   = false;
        }/*
          * else if (fromGround && ((!reversed && released && player_body.velocity.y > 0) || (reversed && released && player_body.velocity.y < 0)))
          * {
          * player_body.velocity /= 2;
          * released = false;
          * fromGround = false;
          * }*/
    }
Beispiel #12
0
    /*public void Eyes()
     * {
     *  int rev = 1;
     *  if (reversed) { rev = -1; }
     *  eyes.transform.localPosition = Vector3.Lerp(eyes.transform.localPosition, new Vector3(rev * (moveX / 800), 0 * rev * (player_body.velocity.y / 80), 0), .4f);
     *
     *  if (!grounded)
     *  {
     *      return;
     *  }
     *  else
     *  {
     *      if ((int)Mathf.Abs(transform.rotation.eulerAngles.z / 90) == 0)
     *      {
     *          eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Normal").gameObject.SetActive(true);
     *      }
     *      else if ((int)Mathf.Abs(transform.rotation.eulerAngles.z / 90) == 1)
     *      {
     *          eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Squint").gameObject.SetActive(true);
     *      }
     *      else if ((int)Mathf.Abs(transform.rotation.eulerAngles.z / 90) == 2)
     *      {
     *          eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Squint").gameObject.SetActive(true);
     *      }
     *      else if ((int)Mathf.Abs(transform.rotation.eulerAngles.z / 90) == 3)
     *      {
     *          eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Irked").gameObject.SetActive(true);
     *      }
     *  }
     * }*/

    public override void Jump()
    {
        OrbComponent orbscript = new OrbComponent();

        if (OrbTouched != null)
        {
            orbscript = OrbTouched.GetComponent <OrbComponent>();
        }

        if (teleorb && jump)
        {
            Vector3 positionDelta = (transform.position + teleOrb_translate) - transform.position;
            jump    = false;
            teleorb = false;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }

            player_body.transform.position += teleOrb_translate;
            CinemachineVirtualCamera activeCamera = gamemanager.getActiveCamera();
            activeCamera.GetCinemachineComponent <CinemachineFramingTransposer>().OnTargetObjectWarped(activeCamera.Follow, positionDelta);
        }

        if (triggerorb && jump)
        {
            triggerorb = false;
            SpawnTrigger spawn = OrbTouched.GetComponent <SpawnTrigger>();
            StartCoroutine(spawn.Begin());

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }

        if (yellow && jump)
        {
            jump   = false;
            yellow = false;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * 1.2f);
            trail.emitting       = true;

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            orbJumped = true;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (pink && jump)
        {
            jump                 = false;
            pink                 = false;
            trail.emitting       = true;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce);

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            orbJumped = true;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (red && jump)
        {
            jump                 = false;
            red                  = false;
            trail.emitting       = true;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * 1.4f);

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            orbJumped = true;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (blue && jump)
        {
            jump                 = false;
            blue                 = false;
            trail.emitting       = true;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * .4f);
            playGravityParticles();

            reversed = !reversed;
            player_body.gravityScale *= -1;
            grav_scale *= -1;
            grounded    = false;

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (green && jump)
        {
            jump  = false;
            green = false;
            playGravityParticles();
            reversed = !reversed;

            if (reversed)
            {
                jumpForce = -posJump;
            }
            else
            {
                jumpForce = posJump;
            }
            trail.emitting            = true;
            player_body.velocity      = new Vector2(player_body.velocity.x, jumpForce * 1.2f);
            player_body.gravityScale *= -1;
            grav_scale *= -1;

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            orbJumped = true;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (black && jump)
        {
            black                = false;
            jump                 = false;
            trail.emitting       = true;
            player_body.velocity = new Vector2(player_body.velocity.x, -jumpForce * 1.2f);

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (grounded && jump)
        {
            jump                      = false;
            blue                      = false;
            trail.emitting            = false;
            player_body.velocity      = new Vector2(player_body.velocity.x, jumpForce * .4f);
            reversed                  = !reversed;
            player_body.gravityScale *= -1;
            grav_scale               *= -1;
            grounded                  = false;

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            orbJumped = true;
        }
    }
Beispiel #13
0
    public override void Jump()
    {
        OrbComponent orbscript = new OrbComponent();

        if (OrbTouched != null)
        {
            orbscript = OrbTouched.GetComponent <OrbComponent>();
        }

        if (teleorb && jump)
        {
            Vector3 positionDelta = (transform.position + teleOrb_translate) - transform.position;
            jump    = false;
            teleorb = false;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }

            player_body.transform.position += teleOrb_translate;

            CinemachineVirtualCamera activeCamera = gamemanager.getActiveCamera();
            activeCamera.GetCinemachineComponent <CinemachineFramingTransposer>().OnTargetObjectWarped(activeCamera.Follow, positionDelta);
        }

        if (triggerorb && jump)
        {
            triggerorb = false;
            SpawnTrigger spawn = OrbTouched.GetComponent <SpawnTrigger>();
            StartCoroutine(spawn.Begin());

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }

        if (yellow && jump)
        {
            launched = true;
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(true);

            fromGround           = false;
            released             = false;
            jump                 = false;
            yellow               = false;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * 1.1f);
            trail.emitting       = true;
            //StartCoroutine(RotateArc(Vector3.forward, negate * -30.0f, 0.5f));

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (pink && jump)
        {
            launched = true;
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(true);

            fromGround           = false;
            released             = false;
            jump                 = false;
            pink                 = false;
            trail.emitting       = true;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * .95f);
            //StartCoroutine(RotateArc(Vector3.forward, negate * -25.0f, 0.5f));

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (red && jump)
        {
            launched = true;
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(true);

            fromGround           = false;
            released             = false;
            jump                 = false;
            red                  = false;
            trail.emitting       = true;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * 1.45f);

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (blue && jump)
        {
            launched = false;
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(true);

            playGravityParticles();

            fromGround                = false;
            released                  = false;
            jump                      = false;
            blue                      = false;
            trail.emitting            = true;
            player_body.velocity      = new Vector2(player_body.velocity.x, jumpForce * .4f);
            reversed                  = !reversed;
            player_body.gravityScale *= -1;
            grav_scale               *= -1;
            grounded                  = false;
            //StartCoroutine(RotateAround(Vector3.forward, regate * negate * -180.0f, 0.4f));

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (green && jump)
        {
            launched = false;
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(true);

            playGravityParticles();

            fromGround = false;
            released   = false;
            jump       = false;
            green      = false;
            reversed   = !reversed;

            if (reversed)
            {
                jumpForce = -posJump;
            }
            else
            {
                jumpForce = posJump;
            }
            trail.emitting            = true;
            player_body.velocity      = new Vector2(player_body.velocity.x, jumpForce);
            player_body.gravityScale *= -1;
            grav_scale *= -1;

            //StartCoroutine(RotateAround(Vector3.forward, regate * negate * 180.0f, 0.5f));

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (black && jump)
        {
            launched = false;
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(true);

            fromGround           = false;
            black                = false;
            released             = false;
            jump                 = true;
            downjump             = true;
            trail.emitting       = true;
            player_body.velocity = new Vector2(player_body.velocity.x, -jumpForce * 1.1f);

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if ((grounded || time < .07f) && jump && downjump)
        {
            launched = false;
            time     = 1;
            Cube_Anim.ResetTrigger("Default");
            Cube_Anim.ResetTrigger("Squash");
            Cube_Anim.SetTrigger("Stretch");
            trail.emitting       = false;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce);
            grounded             = false;

            /* f**k me
             * if (Mathf.Abs(moveX) > 0)
             * {
             *  checkGrounded = false;
             *  StartCoroutine(RotateArc(Vector3.forward, negate * -10.0f, 0.2f));
             *  checkGrounded = true;
             * }//*/

            fromGround = true;
            jump       = false;
            downjump   = false;
        }
        else if (fromGround && ((!reversed && released && player_body.velocity.y > 0) || (reversed && released && player_body.velocity.y < 0)))
        {
            Cube_Anim.ResetTrigger("Crouch");
            Cube_Anim.ResetTrigger("Squash");
            Cube_Anim.ResetTrigger("Stretch");
            Cube_Anim.SetTrigger("Default");
            player_body.velocity /= 2;
            released              = false;
            fromGround            = false;
        }
    }
    /*public void Eyes()
     * {
     *  int rev = 1;
     *  //if (reversed) { rev = -1; }
     *  eyes.transform.localPosition = Vector3.Lerp(eyes.transform.localPosition, new Vector3(rev * (moveX / 800), 0 * rev * (player_body.velocity.y / 80), 0), .4f);
     *
     *  if (!grounded)
     *  {
     *      return;
     *  }
     *  else
     *  {
     *      if ((int)Mathf.Abs(transform.rotation.eulerAngles.z / 90) == 0)
     *      {
     *          eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Normal").gameObject.SetActive(true);
     *      }
     *      else if ((int)Mathf.Abs(transform.rotation.eulerAngles.z / 90) == 1)
     *      {
     *          eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Squint").gameObject.SetActive(true);
     *      }
     *      else if ((int)Mathf.Abs(transform.rotation.eulerAngles.z / 90) == 2)
     *      {
     *          eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Squint").gameObject.SetActive(true);
     *      }
     *      else if ((int)Mathf.Abs(transform.rotation.eulerAngles.z / 90) == 3)
     *      {
     *          eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Irked").gameObject.SetActive(true);
     *      }
     *  }
     * }*/

    public override void Jump()
    {
        OrbComponent orbscript = new OrbComponent();

        if (OrbTouched != null)
        {
            orbscript = OrbTouched.GetComponent <OrbComponent>();
        }

        trail.emitting = true;

        if (teleorb_j)
        {
            Vector3 positionDelta = (transform.position + teleOrb_translate) - transform.position;

            jump      = false;
            teleorb_j = false;
            teleorb   = false;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }

            player_body.transform.position += teleOrb_translate;

            CinemachineVirtualCamera activeCamera = gamemanager.getActiveCamera();
            activeCamera.GetCinemachineComponent <CinemachineFramingTransposer>().OnTargetObjectWarped(activeCamera.Follow, positionDelta);
        }

        if (triggerorb_j)
        {
            triggerorb_j = false;
            triggerorb   = false;
            SpawnTrigger spawn = OrbTouched.GetComponent <SpawnTrigger>();
            StartCoroutine(spawn.Begin());

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }

        if (blue_j || green_j)
        {
            if (blue_j)
            {
                blue   = false;
                blue_j = false;
            }

            if (green_j)
            {
                green   = false;
                green_j = false;
            }

            playGravityParticles();

            reversed = !reversed;

            player_body.gravityScale *= -1;
            grav_scale *= -1;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }

        /*
         * int rev = 1;
         * if (reversed) { rev = -1; }
         *
         * if (jump)
         * {
         *  player_body.velocity = new Vector2(player_body.velocity.x, rev * player_body.velocity.x);
         * }
         * else
         * {
         *  player_body.velocity = new Vector2(player_body.velocity.x, rev * -player_body.velocity.x);
         * }*/
    }
Beispiel #15
0
 void Start()
 {
     spawn = trigger.GetComponent <SpawnTrigger>();
 }
    public override void Jump()
    {
        OrbComponent orbscript = new OrbComponent();

        if (OrbTouched != null)
        {
            orbscript = OrbTouched.GetComponent <OrbComponent>();
        }

        if (maxSpeed != 17)
        {
            maxSpeed = Mathf.Lerp(maxSpeed, 17, time);
            time    += 1f * Time.deltaTime;

            if (time > 1.0f)
            {
                time = 0.0f;
            }
        }

        if (teleorb && jump)
        {
            Vector3 positionDelta = (transform.position + teleOrb_translate) - transform.position;
            teleorb = false;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }

            player_body.transform.position += teleOrb_translate;
            CinemachineVirtualCamera activeCamera = gamemanager.getActiveCamera();
            activeCamera.GetCinemachineComponent <CinemachineFramingTransposer>().OnTargetObjectWarped(activeCamera.Follow, positionDelta);
        }

        if (triggerorb && jump)
        {
            triggerorb = false;
            SpawnTrigger spawn = OrbTouched.GetComponent <SpawnTrigger>();
            StartCoroutine(spawn.Begin());

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }

        if (yellow && jump)
        {
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(true);

            jump   = false;
            yellow = false;

            maxSpeed             = Mathf.Abs(jumpForce) * 1.3f;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * 1.3f);
            trail.emitting       = true;

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            time = 0;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (pink && jump)
        {
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(true);

            jump           = false;
            pink           = false;
            trail.emitting = true;

            maxSpeed             = 17;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * .8f);

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            time = 0;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (red && jump)
        {
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(true);

            jump           = false;
            red            = false;
            trail.emitting = true;

            maxSpeed             = Mathf.Abs(jumpForce) * 1.6f;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * 1.6f);

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            time = 0;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (blue && jump)
        {
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(true);

            jump           = false;
            blue           = false;
            trail.emitting = true;

            maxSpeed             = 17;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * .4f);

            playGravityParticles();
            reversed = !reversed;
            player_body.gravityScale *= -1;
            grav_scale *= -1;

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            time = 0;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (green && jump)
        {
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(true);

            jump  = false;
            green = false;
            playGravityParticles();
            reversed = !reversed;

            if (reversed)
            {
                jumpForce = -posJump;
            }
            else
            {
                jumpForce = posJump;
            }
            trail.emitting = true;

            maxSpeed                  = Mathf.Abs(jumpForce) * 1.3f;
            player_body.velocity      = new Vector2(player_body.velocity.x, jumpForce * 1.3f);
            player_body.gravityScale *= -1;
            grav_scale               *= -1;

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            time = 0;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (black && jump)
        {
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(true);

            black          = false;
            jump           = false;
            trail.emitting = true;

            maxSpeed             = 17;
            player_body.velocity = new Vector2(player_body.velocity.x, -jumpForce * 1.2f);

            time = 0;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (jump)
        {
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(true);

            //trail.emitting = false;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce);

            jump = false;
        }
    }
Beispiel #17
0
        /// <summary>
        /// Creates a new <see cref="MonsterSpawnArea"/> with the specified data.
        /// </summary>
        /// <param name="context">The persistence context.</param>
        /// <param name="map">The map.</param>
        /// <param name="monsterDefinition">The monster definition.</param>
        /// <param name="quantity">The quantity.</param>
        /// <param name="direction">The direction.</param>
        /// <param name="spawnTrigger">The spawn trigger.</param>
        /// <param name="x1">The x1 coordinate.</param>
        /// <param name="x2">The x2 coordinate.</param>
        /// <param name="y1">The y1 coordinate.</param>
        /// <param name="y2">The y2 coordinate.</param>
        /// <returns>The created monster spawn area.</returns>
        protected MonsterSpawnArea CreateMonsterSpawn(IContext context, GameMapDefinition map, MonsterDefinition monsterDefinition, short quantity, byte direction, SpawnTrigger spawnTrigger, byte x1, byte x2, byte y1, byte y2)
        {
            var area = context.CreateNew <MonsterSpawnArea>();

            area.GameMap           = map;
            area.MonsterDefinition = monsterDefinition;
            area.Quantity          = quantity;
            area.Direction         = (Direction)direction;
            area.SpawnTrigger      = spawnTrigger;
            area.X1 = x1;
            area.X2 = x2;
            area.Y1 = y1;
            area.Y2 = y2;
            return(area);
        }
Beispiel #18
0
    public IEnumerator Begin()
    {
        int i = 0;

        if (exe == (ExecutionType)0) //Sequential
        {
            while (i < triggers.Length)
            {
                float      d1 = delay[i], time = 0, d2 = 0;
                GameObject trigger = triggers[i];

                while (time <= d1)
                {
                    time += Time.deltaTime;
                    yield return(null);
                }

                switch (trigger.gameObject.tag)
                {
                // MOVE TRIGGER
                case "MoveTrigger":
                    MoveTrigger move = trigger.GetComponent <MoveTrigger>();
                    d2   = move.getDuration();
                    time = 0;

                    //Debug.Log("Trigger " +  i);
                    StartCoroutine(move.Move());

                    while (time <= d2 && !ignorefinish)
                    {
                        time += Time.deltaTime;
                        yield return(null);
                    }
                    while (move.getFinished() != true && !ignorefinish)
                    {
                        //Debug.Log("Waiting to finish");
                        yield return(null);
                    }

                    move.StopAllCoroutines();
                    break;

                // SPAWN TRIGGER
                case "SpawnTrigger":
                    SpawnTrigger spawn = trigger.GetComponent <SpawnTrigger>();
                    spawn.StopAllCoroutines();
                    StartCoroutine(spawn.Begin());

                    if (spawn.exe == ExecutionType.Parallel)
                    {
                        while (spawn.getFinished() != true && !ignorefinish)
                        {
                            //Debug.Log("Waiting to finish");
                            yield return(null);
                        }
                    }

                    break;

                // MUSIC TRIGGER
                case "MusicTrigger":
                    MusicTrigger music = trigger.GetComponent <MusicTrigger>();
                    d2   = music.getDuration();
                    time = 0;

                    // Volume
                    if (music.mode == MusicTrigger.Mode.volume)
                    {
                        StartCoroutine(music.setMusicVolume());

                        while (music.getFinished() != true && !ignorefinish)
                        {
                            //Debug.Log("Waiting to finish");
                            yield return(null);
                        }
                    }

                    // Change Song
                    else if (music.mode == MusicTrigger.Mode.music)
                    {
                        music.setBGMusic();
                    }

                    music.StopAllCoroutines();
                    break;

                // TOGGLE TRIGGER
                case "ToggleTrigger":
                    ToggleTrigger toggle = trigger.GetComponent <ToggleTrigger>();
                    StartCoroutine(toggle.Toggle());
                    while (toggle.getFinished() != true && !ignorefinish)
                    {
                        //Debug.Log("Waiting to finish");
                        yield return(null);
                    }
                    break;

                // COLOR TRIGGER
                case "ColorTrigger":
                    ColorTrigger color = trigger.GetComponent <ColorTrigger>();
                    color.SpawnActivate();
                    while (!color.getFinished() && !ignorefinish)
                    {
                        //Debug.Log("Waiting to finish");
                        yield return(null);
                    }
                    break;

                // SHAKE TRIGGER
                case "ShakeTrigger":
                    ShakeTrigger shake = trigger.GetComponent <ShakeTrigger>();
                    shake.SpawnActivate();
                    break;

                default:
                    break;
                }

                i++;

                if (i == triggers.Length && loop)
                {
                    i = 0;
                }

                yield return(null);
            }
        }


        else if (exe == (ExecutionType)1) //Parallel
        {
            finished = false;
            float longestDelay = 0, time = 0;

            while (i < triggers.Length)
            {
                GameObject trigger = triggers[i];

                switch (trigger.gameObject.tag)
                {
                // MOVE TRIGGER
                case "MoveTrigger":
                    MoveTrigger move = trigger.GetComponent <MoveTrigger>();
                    longestDelay = Mathf.Max(move.getDuration(), longestDelay);

                    //Debug.Log("Trigger " +  i);
                    StartCoroutine(move.Move());
                    break;

                // SPAWN TRIGGER
                case "SpawnTrigger":
                    SpawnTrigger spawn = trigger.GetComponent <SpawnTrigger>();
                    spawn.StopAllCoroutines();
                    StartCoroutine(spawn.Begin());
                    break;

                // MUSIC TRIGGER
                case "MusicTrigger":
                    MusicTrigger music = trigger.GetComponent <MusicTrigger>();
                    longestDelay = Mathf.Max(music.getDuration(), longestDelay);

                    // Volume
                    if (music.mode == MusicTrigger.Mode.volume)
                    {
                        StartCoroutine(music.setMusicVolume());
                    }

                    // Change Song
                    else if (music.mode == MusicTrigger.Mode.music)
                    {
                        music.setBGMusic();
                    }
                    break;

                // TOGGLE TRIGGER
                case "ToggleTrigger":
                    ToggleTrigger toggle = trigger.GetComponent <ToggleTrigger>();
                    longestDelay = Mathf.Max((toggle.on_targets.Length + toggle.off_targets.Length) * Time.fixedDeltaTime * 10, longestDelay);
                    StartCoroutine(toggle.Toggle());
                    break;

                // COLOR TRIGGER
                case "ColorTrigger":
                    ColorTrigger color = trigger.GetComponent <ColorTrigger>();
                    color.SpawnActivate();
                    break;

                default:
                    break;
                }

                i++;
            }
            while (time <= longestDelay)
            {
                time += Time.deltaTime;
                yield return(null);
            }

            finished = true;
        }
    }
    public override void Jump()
    {
        //trailUp.emitting = true;
        //trailDown.emitting = true;
        OrbComponent orbscript = new OrbComponent();

        if (OrbTouched != null)
        {
            orbscript = OrbTouched.GetComponent <OrbComponent>();
        }

        if (maxSpeed != 15)
        {
            maxSpeed = Mathf.Lerp(maxSpeed, 15, time);
            time    += 1f * Time.deltaTime;

            if (time > 1.0f)
            {
                time = 0.0f;
            }
        }

        if (teleorb_j && jump)
        {
            Vector3 positionDelta = (transform.position + teleOrb_translate) - transform.position;

            teleorb_j = false;
            teleorb   = false;
            jump      = false;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }

            player_body.transform.position += teleOrb_translate;

            CinemachineVirtualCamera activeCamera = gamemanager.getActiveCamera();
            activeCamera.GetCinemachineComponent <CinemachineFramingTransposer>().OnTargetObjectWarped(activeCamera.Follow, positionDelta);
        }

        if (triggerorb_j && jump)
        {
            triggerorb_j = false;
            triggerorb   = false;
            jump         = false;
            SpawnTrigger spawn = OrbTouched.GetComponent <SpawnTrigger>();
            StartCoroutine(spawn.Begin());

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }

        if (yellow_j)
        {
            yellow   = false;
            yellow_j = false;
            jump     = false;
            //yellow_count++;
            //if (yellow_count >= 0) { yellow_j = false; yellow_count = 0; }
            trail.emitting = true;

            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(true);

            maxSpeed             = Mathf.Abs(jumpForce) * 1.5f;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * 1.5f);
            time = 0;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (red_j)
        {
            red   = false;
            red_j = false;
            jump  = false;

            trail.emitting = true;

            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(true);

            maxSpeed             = Mathf.Abs(jumpForce) * 1.85f;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * 1.85f);
            time = 0;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (pink_j)
        {
            pink   = false;
            pink_j = false;
            jump   = false;

            trail.emitting = true;

            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(true);

            maxSpeed             = 15f;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * 1f);
            time = 0;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (blue_j)
        {
            blue   = false;
            blue_j = false;
            jump   = false;
            //yellow_count++;
            //if (yellow_count >= 0) { green_j = false; yellow_count = 0; }
            trail.emitting = true;

            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(true);

            playGravityParticles();

            reversed = !reversed;
            goingUp  = !goingUp;

            maxSpeed             = 15f;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * .7f);

            player_body.gravityScale *= -1;
            grav_scale *= -1;
            time        = 0;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (green_j)
        {
            green   = false;
            green_j = false;
            jump    = false;
            //yellow_count++;
            //if (yellow_count >= 0) { green_j = false; yellow_count = 0; }
            trail.emitting = true;

            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(true);

            playGravityParticles();

            reversed = !reversed;
            goingUp  = !goingUp;

            if (reversed)
            {
                jumpForce = -posJump;
            }
            else
            {
                jumpForce = posJump;
            }

            maxSpeed = Mathf.Abs(jumpForce) * 1.5f;

            player_body.gravityScale *= -1;
            grav_scale *= -1;

            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * 1.5f);
            time = 0;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (black_j)
        {
            black   = false;
            black_j = false;
            jump    = false;
            //black_count++;
            //if (black_count >= 5) { black_j = false; black_count = 0; }
            trail.emitting = true;

            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(true);

            maxSpeed             = Mathf.Abs(jumpForce) * 2.4f;
            player_body.velocity = new Vector2(player_body.velocity.x, 0f);
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * -2.4f);
            time = 0;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }

        if (jump)
        {
            jump           = false;
            goingUp        = !goingUp;
            trail.emitting = false;

            //player_body.velocity = new Vector2(player_body.velocity.x, player_body.velocity.y + 3f);
            eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
            eyes.transform.Find("Eyes_Normal").gameObject.SetActive(true);
        }

        player_body.AddForce(new Vector2(0, goingUp ? 80f : -80f));
        //int add = goingUp != player_body.velocity.y >= 0 ? (int)(.1f * Mathf.Abs(player_body.velocity.y)) : 0;//prevgoingUp != goingUp ? 20 : 0;
        //player_body.AddForce(new Vector2(0, goingUp ? 80f + add : -80f - add));
    }
 void Start()
 {
     Area = transform.TransformDirection (transform.localScale / 2);
     if (!Trigger) {
         Trigger = transform.GetChild (0).GetComponent<SpawnTrigger>();
     }
 }
Beispiel #21
0
        /// <summary>
        /// Creates a new <see cref="MonsterSpawnArea"/> with the specified data.
        /// </summary>
        /// <param name="monsterDefinition">The monster definition.</param>
        /// <param name="x1">The x1 coordinate.</param>
        /// <param name="x2">The x2 coordinate.</param>
        /// <param name="y1">The y1 coordinate.</param>
        /// <param name="y2">The y2 coordinate.</param>
        /// <param name="quantity">The quantity.</param>
        /// <param name="direction">The direction.</param>
        /// <param name="spawnTrigger">The spawn trigger.</param>
        /// <returns>The created monster spawn area.</returns>
        protected MonsterSpawnArea CreateMonsterSpawn(MonsterDefinition monsterDefinition, byte x1, byte x2, byte y1, byte y2, short quantity = 1, Direction direction = Direction.Undefined, SpawnTrigger spawnTrigger = SpawnTrigger.Automatic)
        {
            var area = this.Context.CreateNew <MonsterSpawnArea>();

            area.GameMap           = this.mapDefinition;
            area.MonsterDefinition = monsterDefinition;
            area.Quantity          = quantity;
            area.Direction         = direction;
            area.SpawnTrigger      = spawnTrigger;
            area.X1 = x1;
            area.X2 = x2;
            area.Y1 = y1;
            area.Y2 = y2;
            return(area);
        }
Beispiel #22
0
 /// <summary>
 /// Creates a new <see cref="MonsterSpawnArea"/> with the specified data.
 /// </summary>
 /// <param name="monsterDefinition">The monster definition.</param>
 /// <param name="x">The x coordinate.</param>
 /// <param name="y">The y coordinate.</param>
 /// <param name="direction">The direction.</param>
 /// <param name="spawnTrigger">The spawn trigger.</param>
 /// <returns>The created monster spawn area.</returns>
 protected MonsterSpawnArea CreateMonsterSpawn(MonsterDefinition monsterDefinition, byte x, byte y, Direction direction = Direction.Undefined, SpawnTrigger spawnTrigger = SpawnTrigger.Automatic)
 => this.CreateMonsterSpawn(monsterDefinition, x, x, y, y, 1, direction, spawnTrigger);
    /*public void Eyes()
     * {
     *  int rev = 1;
     *  if (reversed) { rev = -1; }
     *  eyes.transform.localPosition = Vector3.Lerp(eyes.transform.localPosition, new Vector3(rev * (moveX / 800), 0 * rev * (player_body.velocity.y / 80), 0), .4f);
     *
     *  if (!grounded)
     *  {
     *      return;
     *  }
     *  else
     *  {
     *      if ((int)Mathf.Abs(transform.rotation.eulerAngles.z / 90) == 0)
     *      {
     *          eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Normal").gameObject.SetActive(true);
     *      }
     *      else if ((int)Mathf.Abs(transform.rotation.eulerAngles.z / 90) == 1)
     *      {
     *          eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Squint").gameObject.SetActive(true);
     *      }
     *      else if ((int)Mathf.Abs(transform.rotation.eulerAngles.z / 90) == 2)
     *      {
     *          eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Irked").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Squint").gameObject.SetActive(true);
     *      }
     *      else if ((int)Mathf.Abs(transform.rotation.eulerAngles.z / 90) == 3)
     *      {
     *          eyes.transform.Find("Eyes_Wide").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Squint").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Normal").gameObject.SetActive(false);
     *          eyes.transform.Find("Eyes_Irked").gameObject.SetActive(true);
     *      }
     *  }
     * }*/

    public override void Jump()
    {
        OrbComponent orbscript = new OrbComponent();

        if (OrbTouched != null)
        {
            orbscript = OrbTouched.GetComponent <OrbComponent>();
        }

        if (teleorb && jump)
        {
            Vector3 positionDelta = (transform.position + teleOrb_translate) - transform.position;

            jump    = false;
            teleorb = false;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }

            player_body.transform.position += teleOrb_translate;

            CinemachineVirtualCamera activeCamera = gamemanager.getActiveCamera();
            activeCamera.GetCinemachineComponent <CinemachineFramingTransposer>().OnTargetObjectWarped(activeCamera.Follow, positionDelta);
        }

        if (triggerorb && jump)
        {
            triggerorb = false;
            SpawnTrigger spawn = OrbTouched.GetComponent <SpawnTrigger>();
            StartCoroutine(spawn.Begin());

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }

        if (yellow && jump)
        {
            jump   = false;
            yellow = false;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * 1.1f);
            trail.emitting       = true;

            Spider_Anim.GetComponent <Animator>().ResetTrigger("run");
            Spider_Anim.GetComponent <Animator>().ResetTrigger("curl");
            Spider_Anim.GetComponent <Animator>().ResetTrigger("stop");
            Spider_Anim.GetComponent <Animator>().SetTrigger("jump");
            Spider_Anim.GetComponent <Animator>().Play("jump", -1, 0f);
            Spider_Anim.GetComponent <Animator>().speed = 2;

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (pink && jump)
        {
            jump                 = false;
            pink                 = false;
            trail.emitting       = true;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce);

            Spider_Anim.GetComponent <Animator>().ResetTrigger("run");
            Spider_Anim.GetComponent <Animator>().ResetTrigger("curl");
            Spider_Anim.GetComponent <Animator>().ResetTrigger("stop");
            Spider_Anim.GetComponent <Animator>().SetTrigger("jump");
            Spider_Anim.GetComponent <Animator>().Play("jump", -1, 0f);
            Spider_Anim.GetComponent <Animator>().speed = 2;

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (red && jump)
        {
            jump                 = false;
            red                  = false;
            trail.emitting       = true;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * 1.4f);

            Spider_Anim.GetComponent <Animator>().ResetTrigger("run");
            Spider_Anim.GetComponent <Animator>().ResetTrigger("curl");
            Spider_Anim.GetComponent <Animator>().ResetTrigger("stop");
            Spider_Anim.GetComponent <Animator>().SetTrigger("jump");
            Spider_Anim.GetComponent <Animator>().Play("jump", -1, 0f);
            Spider_Anim.GetComponent <Animator>().speed = 2;

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (blue && jump)
        {
            jump                 = false;
            blue                 = false;
            trail.emitting       = true;
            player_body.velocity = new Vector2(player_body.velocity.x, jumpForce * .4f);

            playGravityParticles();

            reversed = !reversed;
            player_body.gravityScale *= -1;
            grav_scale *= -1;
            grounded    = false;

            Spider_Anim.GetComponent <Animator>().ResetTrigger("run");
            Spider_Anim.GetComponent <Animator>().ResetTrigger("jump");
            Spider_Anim.GetComponent <Animator>().ResetTrigger("stop");
            Spider_Anim.GetComponent <Animator>().SetTrigger("curl");
            Spider_Anim.GetComponent <Animator>().speed = 2;

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (green && jump)
        {
            jump  = false;
            green = false;

            playGravityParticles();
            reversed = !reversed;

            if (reversed)
            {
                jumpForce = -posJump;
            }
            else
            {
                jumpForce = posJump;
            }
            trail.emitting            = true;
            player_body.velocity      = new Vector2(player_body.velocity.x, jumpForce * 1.2f);
            player_body.gravityScale *= -1;
            grav_scale *= -1;

            Spider_Anim.GetComponent <Animator>().ResetTrigger("run");
            Spider_Anim.GetComponent <Animator>().ResetTrigger("jump");
            Spider_Anim.GetComponent <Animator>().ResetTrigger("stop");
            Spider_Anim.GetComponent <Animator>().SetTrigger("curl");
            Spider_Anim.GetComponent <Animator>().speed = 2;

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (black && jump)
        {
            black = false;
            //jump = false;
            trail.emitting       = true;
            player_body.velocity = new Vector2(player_body.velocity.x, -jumpForce * 1.6f);

            Spider_Anim.GetComponent <Animator>().ResetTrigger("run");
            Spider_Anim.GetComponent <Animator>().ResetTrigger("jump");
            Spider_Anim.GetComponent <Animator>().ResetTrigger("stop");
            Spider_Anim.GetComponent <Animator>().SetTrigger("curl");
            Spider_Anim.GetComponent <Animator>().speed = 2;

            if (OrbTouched != null)
            {
                orbscript.Pulse();
            }
        }
        else if (grounded && jump)
        {
            jump = false; grounded = false;

            int rev = 1, back = 1;
            if (reversed)
            {
                rev = -1;
            }
            if (!facingright)
            {
                back = -1;
            }
            RaycastHit2D groundhit, deathhit;

            if (!reversed)
            {
                //groundhit = Physics2D.Raycast(new Vector2(transform.position.x, transform.position.y + .2f), Vector2.up, 120, groundLayer);
                //deathhit = Physics2D.Raycast(new Vector2(transform.position.x, transform.position.y + .2f), Vector2.up, 120, deathLayer);
                groundhit = Physics2D.BoxCast(player_body.transform.position + new Vector3(0, .2f, 0), new Vector2(spider_collider.size.x * .5f, .1f), 0f, Vector2.up, 120, groundLayer);
                deathhit  = Physics2D.BoxCast(player_body.transform.position + new Vector3(0, .2f, 0), new Vector2(spider_collider.size.x * .5f, .1f), 0f, Vector2.up, 120, deathLayer);
            }
            else
            {
                //groundhit = Physics2D.Raycast(new Vector2(transform.position.x, transform.position.y - .2f), -Vector2.up, 120, groundLayer);
                //deathhit = Physics2D.Raycast(new Vector2(transform.position.x, transform.position.y - .2f), -Vector2.up, 120, deathLayer);

                groundhit = Physics2D.BoxCast(player_body.transform.position + new Vector3(0, -.2f, 0), new Vector2(spider_collider.size.x * .5f, .1f), 0f, -Vector2.up, 120, groundLayer);
                deathhit  = Physics2D.BoxCast(player_body.transform.position + new Vector3(0, -.2f, 0), new Vector2(spider_collider.size.x * .5f, .1f), 0f, -Vector2.up, 120, deathLayer);
            }

            //Debug.Log("D: " + deathhit.distance + "G: " + groundhit.distance);

            if (deathhit.collider != null && (deathhit.distance < groundhit.distance || groundhit.distance == 0))
            {
                spider_trail.emitting = true;

                //Debug.Log(deathhit.distance);
                reversed = !reversed;
                player_body.gravityScale *= -1;
                grav_scale        *= -1;
                transform.position = new Vector2(transform.position.x, transform.position.y + rev * (deathhit.distance - (mini ? .1f : .4f)));
            }
            else if (groundhit.collider != null)
            {
                spider_trail.emitting = true;

                //Debug.Log(groundhit.distance);
                reversed = !reversed;
                player_body.gravityScale *= -1;
                grav_scale        *= -1;
                transform.position = new Vector2(transform.position.x, transform.position.y + rev * (groundhit.distance - (mini ? .1f : .4f)));
            }
            else
            {
                spider_trail.emitting = true;
            }

            pulse_trigger_p1.Enter();
            pulse_trigger_p2.Enter();

            if (grav)
            {
                grav = false;
            }
            if (gravN)
            {
                gravN = false;
            }

            time = 0;
        }
    }