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()); }
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); }
public void createSnitch(QPlayer oldSnitch) { snitchTeam.RemovePlayer(oldSnitch); snitchTeam.AddPlayer(); }
public abstract Vector3 CalculateTurn(QPlayer agent);
public abstract Vector3 CalculateMove(QPlayer agent);
public override void RemovePlayer(QPlayer p) { players.Remove(p); }
public override void RemovePlayer(QPlayer snitch) { players.Remove(snitch); }
public abstract void RemovePlayer(QPlayer p);