public static Direction GetUserVisibleDirection(AITank tank, List <Direction> allowedDirections) { if (Walls != null) { foreach (var item in Walls) { if (!(item is UserControlledTank)) { continue; } if (allowedDirections.Contains(Direction.Left) && tank.LeftRectangle.Intersects(item.collisionRect)) { return(Direction.Left); } else if (allowedDirections.Contains(Direction.Right) && tank.RightRectangle.Intersects(item.collisionRect)) { return(Direction.Right); } else if (allowedDirections.Contains(Direction.Up) && tank.UpRectangle.Intersects(item.collisionRect)) { return(Direction.Up); } else if (allowedDirections.Contains(Direction.Down) && tank.DownRectangle.Intersects(item.collisionRect)) { return(Direction.Down); } } } return(Direction.None); }
void OnCollisionEnter(Collision collision) { Debug.Log(collision.collider.name); Vector3 position = collision.transform.position; if (collision.gameObject.name [0] == 'A') { AITank ai = collision.gameObject.GetComponent <AITank> (); ai.HP = 0; if (ai.HP <= 0) { Instantiate(Resources.Load("Explosion1"), ai.transform.position, Quaternion.identity); } Player.Instance.recollectBullet(); } else if (collision.gameObject.name == "Player") { if (!Player.Instance.transform.GetComponent <HP> ().getDamage(b.ATK)) { Player.Instance.isRunning = false; Player.Instance.HP -= b.ATK; if (Player.Instance.HP <= 0) { Instantiate(Resources.Load("Explosion1"), Player.Instance.transform.position, Quaternion.identity); TankFactory.Instance.isGameOver = true; } TankFactory.Instance.recollectBullet(); } } else { if (b.owner == "TKF") { TankFactory.Instance.recollectBullet(); } else { Player.Instance.recollectBullet(); } } Instantiate(Resources.Load("Explosion8"), new Vector3(position.x, position.y, position.z), Quaternion.identity); flag = false; }
IEnumerator Produce() { status = "producing"; yield return(new WaitForSeconds(4.0f)); if (brokens.Count == 0) { Vector3 position = transform.position; GameObject ai = Instantiate(Resources.Load("AI"), new Vector3(position.x + 8.0f, 2.0f, position.z - 5.0f), Quaternion.identity) as GameObject; tanks.Add(ai.GetComponent <AITank>()); } else { AITank ai = brokens [0]; ai.Restart(); brokens.Remove(ai); tanks.Add(ai); } status = "ready"; }
public void recollect(AITank tank) { tanks.Remove(tank); brokens.Add(tank); }