protected override void Move()
    {
        teleportTimer -= Time.deltaTime;
        if (teleportTimer < 0.0f)
        {
            teleportTimer = teleportSpeed;
            Vector3 newlocation = new Vector3(Random.Range(10.0f, 20.0f), Random.Range(10.0f, 20.0f), 0);
            newlocation.x *= (Random.Range(0, 2) == 0) ? 1 : -1;
            newlocation.y *= (Random.Range(0, 2) == 0) ? 1 : -1;
            WarpHole warp1 = worldManager.SpawnFromPool(WorldManager.ePoolTag.WARPHOLE, transform.position, transform.rotation).GetComponent <WarpHole>();
            if (warp1)
            {
                warp1.Activate();
            }
            transform.position += newlocation;
            WarpHole warp2 = worldManager.SpawnFromPool(WorldManager.ePoolTag.WARPHOLE, transform.position, transform.rotation).GetComponent <WarpHole>();
            if (warp2)
            {
                warp2.Activate();
            }
        }

        target = Player.transform.position;

        direction          = target - transform.position;
        angle              = Mathf.Atan2(direction.x, direction.y) * Mathf.Rad2Deg;
        rotation           = Quaternion.AngleAxis(-angle, Vector3.forward);
        transform.rotation = Quaternion.Slerp(transform.rotation, rotation, rotationSpeed * Time.deltaTime);
    }
Beispiel #2
0
    public void MovePlayer()
    {
        WarpHole warp = WorldManager.Instance.SpawnFromPool(WorldManager.ePoolTag.WARPHOLE, pos, Quaternion.identity).GetComponent <WarpHole>();

        if (warp)
        {
            warp.Activate();
        }
        foreach (Transform t in WorldManager.Instance.Ship.bodyPartTransforms)
        {
            t.position = pos;
        }
        AndroidManager.HapticFeedback();
    }
        public void CreateWarphole(float xpos, float ypos, byte warpIndex, int destinationAreaID)
        {
            // Warps aren't allowed to be in the sun. This prevents any oddities from occuring.
            if (xpos == 0 && ypos == 0)
            {
                // Todo: Log this somehow?
                return;
            }

            var location = new Vector2(xpos, ypos);

            var w = new WarpHole(_messageManager, _physicsManager.World, WarpholeTexture, location, warpIndex, destinationAreaID);

            Warpholes.Add(w);
        }
Beispiel #4
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        pos = collision.transform.position;
        if (flipX)
        {
            pos.x = -pos.x;
        }
        if (pos.x > 0)
        {
            pos.x -= 10.0f;
            pos.y += 10.0f;
        }
        if (flipY)
        {
            pos.y = -pos.y;
        }
        if (pos.y > 0)
        {
            pos.y -= 10.0f;
        }
        else
        {
            pos.y += 10.0f;
        }

        if (!collision.transform.CompareTag("Player") && collision.gameObject.layer != 8 && collision.gameObject.layer != 11) //dont do turrets or snake
        {
            WarpHole warp = WorldManager.Instance.SpawnFromPool(WorldManager.ePoolTag.WARPHOLE, pos, Quaternion.identity).GetComponent <WarpHole>();
            if (warp)
            {
                warp.Activate();
            }
            WarpHole warp2 = WorldManager.Instance.SpawnFromPool(WorldManager.ePoolTag.WARPHOLE, collision.transform.position, Quaternion.identity).GetComponent <WarpHole>();
            if (warp2)
            {
                warp2.Activate();
            }
            collision.transform.position = pos;
        }
    }
Beispiel #5
0
    /// <summary>
    /// position on starting vortex, play spawning effects, and spawn with delay
    /// </summary>
    void BeginSpawn()
    {
        // randomly position on spawn vortex
        var r = Random.value * 360f;

        transform.position = WarpHole.GetRandomPos(team.team, r);
        transform.rotation = WarpHole.me[team.team].transform.rotation;
        transform.Rotate(0, 0, r, Space.Self);

        // play sound
        mySpawnPS.transform.position = transform.position;
        mySpawnPS.Play();

        // if we have the camera, play sound and fast-zoom to spawn pos
        if (CamFollow.me.follow == transform)
        {
            CamFollow.me.focusChaseMode = true;
            CamFollow.me.PlaySpawnSound(0);
        }
        // spawn with delay
        Invoke(nameof(CompleteSpawn), spawnDuration);
    }
Beispiel #6
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        pos = collision.transform.position;
        if (flipX)
        {
            pos.x = -pos.x;
        }
        if (pos.x > 0)
        {
            pos.x -= 10.0f;
        }
        else
        {
            pos.y += 10.0f;
        }
        if (flipY)
        {
            pos.y = -pos.y;
        }
        if (pos.y > 0)
        {
            pos.y -= 10.0f;
        }
        else
        {
            pos.y += 10.0f;
        }

        if (collision.transform.CompareTag("Player"))
        {
            WarpHole warp = WorldManager.Instance.SpawnFromPool(WorldManager.ePoolTag.WARPHOLE, collision.transform.position, Quaternion.identity).GetComponent <WarpHole>();
            if (warp)
            {
                warp.Activate();
            }
            TeleportTransition.SetTrigger("Warp");
        }
    }
 public WarpholeBodyDataObject(WarpHole w, int destinationAreaID) : base(w, BodyTypes.WarpHole)
 {
     DestinationAreaID = destinationAreaID;
 }