void Awake() { start = GetComponentInParent <DangerArea> (); start.AddEnemie(this); }
// Use this for initialization void Start() { player = GameObject.FindGameObjectWithTag("Player"); dangerZone = FindObjectOfType <DangerArea>(); checkPlayerAlive = player.transform.GetComponent <Unit>().alive; }
public virtual void RegistrationInStack() { myStack = GetComponentInParent <DangerArea> (); myStack.AddEnemie(this); }
private bool ShouldBuildTurretHere() { if (!CanBuildTurretNow) { return(false); } if (!Actor.CanBuildTurretHere()) { return(false); } m_availableDirection = AvailableTurretDirection.None; var prioritizedDirection = Player.FacingDirection == 1 ? AvailableTurretDirection.Right : AvailableTurretDirection.Left; for (var i = 0; i < ScanLines.Count; i++) { var scanLine = ScanLines[i]; Game.DrawLine(scanLine[0], scanLine[1], Color.Yellow); if (RayCastHelper.ImpassableObjects(scanLine[0], scanLine[1]).Count() == 0) { m_availableDirection = i == 0 ? AvailableTurretDirection.Right : AvailableTurretDirection.Left; if (m_availableDirection == prioritizedDirection) { break; } } } if (m_availableDirection == AvailableTurretDirection.None) { return(false); } // Uncomment if Engineer is too OP // foreach (var bot in BotManager.GetBots<EngineerBot>()) // { // if (bot.IsBuilding) return false; // } // Don't build turret when enemies are nearby foreach (var bot in BotManager.GetBots()) { if (!ScriptHelper.SameTeam(Player, bot.Player)) { if (DangerArea.Intersects(bot.Player.GetAABB())) { return(false); } } } foreach (var turret in WeaponManager.GetWeapons <Turret>()) { if (turret.Broken) { continue; } var area = new Area( turret.Position + Vector2.UnitX * 32 * turret.Direction + Vector2.UnitY * 7, turret.Position - Vector2.UnitX * 20 * turret.Direction - Vector2.UnitY * 14); area.Normalize(); Game.DrawArea(area); //ScriptHelper.LogDebug(area, area.Intersects(player.GetAABB())); if (area.Intersects(Player.GetAABB())) { return(false); } if (ScriptHelper.IntersectCircle(Actor.Position, turret.Position, 275, turret.MinAngle, turret.MaxAngle)) { return(false); } } return(true); }