Пример #1
0
    void OnCollisionEnter(Collision collision)
    {
        if (this.tag == "Snitch")
        {
            GameObject g    = GameObject.FindWithTag("Game");
            QGame      game = g.GetComponent <QGame>();
            Destroy(GameObject.FindWithTag("Snitch"));
            game.createSnitch(this);                  // Passing it into here so it can be removed from the Snitch Team
            game.UpdateScore(collision.collider.tag); // i.e. Red, Green
        }

        if (this.tag == "Red" && collision.collider.tag == "Green")
        {
            QPlayer   r  = this.GetComponent <QPlayer>();
            RedTeam   rt = (RedTeam)r.team;
            QPlayer   g  = collision.collider.GetComponent <QPlayer>();
            GreenTeam gt = (GreenTeam)g.team;

            if (!rt.behaviour.TackleSuccess())
            {
                r.PlayerCrash();

                r.team.RemovePlayer(r);
            }
            if (!gt.behaviour.TackleSuccess())
            {
                g.PlayerCrash();
                g.team.RemovePlayer(g);
            }
        }
    }
 public override Vector3 CalculateTurn(QPlayer snitch)
 {
     if (targetLocation == Vector3.zero || (snitch.transform.position - targetLocation).magnitude < 10)
     {
         // Debug.Log("TargetLocation " + targetLocation);
         targetLocation = new Vector3(Random.Range(-75f, 75), Random.Range(5f, 100f), Random.Range(-75f, 75f));
     }
     return(targetLocation);
 }
    public override void AddPlayer()
    {
        QPlayer newPlayer = Instantiate(
            playerPrefab,
            spawn + Random.insideUnitSphere * 30,
            Random.rotation,
            transform);

        players.Add(newPlayer);
    }
    public override void AddPlayer()
    {
        QPlayer newPlayer = Instantiate(
            playerPrefab,
            transform.position,
            Random.rotation,
            transform);

        newPlayer.SetTeam(this);
        players.Add(newPlayer);
    }
    public override Vector3 CalculateMove(QPlayer player)
    {
        Vector3 velocity = player.body.velocity;
        Vector3 force    = player.transform.forward * acceleration;

        velocity += force;
        if (velocity.magnitude > maxSpeed)
        {
            velocity = velocity.normalized * maxSpeed;
        }

        return(velocity);
    }
        public async Task <IActionResult> PutQPlayer([FromRoute] string playername, [FromBody] QPlayer qplayer)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Tblplayersv2 player = await _context.Tblplayersv2.SingleOrDefaultAsync(p => p.Playername == playername);

            Tblboardsquaresv2 boardsquare = await _context.Tblboardsquaresv2.SingleOrDefaultAsync(bs => bs.Playerid == player.Id);

            if (player != null)
            {
                player.Playername      = qplayer.Playername;
                player.Facingdirection = qplayer.Facingdirection;

                /* Has Player Moved ?*/
                if ((boardsquare.Colposition == qplayer.Colposition) && (boardsquare.Rowposition == qplayer.Rowposition))
                {
                    /* Player has NOT moved */
                }
                else
                {
                    boardsquare.Playerid = null;
                    boardsquare.Player   = null;
                    Tblboardsquaresv2 newboardsquare = await _context.Tblboardsquaresv2.SingleOrDefaultAsync((bs => (bs.Colposition == qplayer.Colposition) && (bs.Rowposition == qplayer.Rowposition)));

                    newboardsquare.Player = player;
                }

                try
                {
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!Tblplayersv2Exists(player.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
            }
            return(NoContent());
        }
Пример #7
0
 void OnTriggerEnter(Collider enteredCollider)
 {
     if (enteredCollider.CompareTag("KillZone"))
     {
         if (this.tag == "Red")
         {
             QPlayer r  = this.GetComponent <QPlayer>();
             RedTeam rt = (RedTeam)r.team;
             rt.AddPlayer();
         }
         else if (this.tag == "Green")
         {
             QPlayer   g  = this.GetComponent <QPlayer>();
             GreenTeam gt = (GreenTeam)g.team;
             gt.AddPlayer();
         }
         Destroy(gameObject);
     }
 }
    Vector3 avoidObstacles(QPlayer player)
    {
        Vector3 move     = Vector3.zero;
        int     numAvoid = 0;

        foreach (QPlayer p in players)
        {
            Vector3 colPosition = p.transform.position;
            if (Vector3.Distance(colPosition, player.transform.position) < (player.neighborRadius)) // ATM, will avoid anything within its radius
            {
                numAvoid++;
                move += (Vector3)(player.transform.position - colPosition);
            }
        }
        if (numAvoid > 0)
        {
            move /= numAvoid;
        }
        return(move * 50);
    }
        public async Task <IActionResult> PostQPlayer([FromBody] QPlayer qplayer)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Tblplayersv2 player = new Tblplayersv2
            {
                Playername      = qplayer.Playername,
                Facingdirection = qplayer.Facingdirection
            };

            Tblboardsquaresv2 boardsquare = await _context.Tblboardsquaresv2.SingleOrDefaultAsync((bs => (bs.Colposition == qplayer.Colposition) && (bs.Rowposition == qplayer.Rowposition)));

            boardsquare.Player = player;

            _context.Tblplayersv2.Add(player);

            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetTblplayersv2", new { id = player.Id }, player));
        }
 public override Vector3 CalculateTurn(QPlayer player)
 {
     return(GameObject.FindWithTag("Snitch").transform.position);
 }
Пример #11
0
 public void createSnitch(QPlayer oldSnitch)
 {
     snitchTeam.RemovePlayer(oldSnitch);
     snitchTeam.AddPlayer();
 }
Пример #12
0
 public abstract Vector3 CalculateTurn(QPlayer agent);
Пример #13
0
 public abstract Vector3 CalculateMove(QPlayer agent);
Пример #14
0
 public override void RemovePlayer(QPlayer p)
 {
     players.Remove(p);
 }
 public override void RemovePlayer(QPlayer snitch)
 {
     players.Remove(snitch);
 }
Пример #16
0
 public abstract void RemovePlayer(QPlayer p);