public StaticCamera(Vector2 position, float degrees, Game1 game) : base(game) { Position = position; Sprite = new AnimatedSprite(null, game, new Vector2(Chunk.TileSize, Chunk.TileSize)); ViewCone = new ConeEntity(game); ViewCone.FromDegrees(degrees, 33); ViewCone.Radius = Chunk.TileSize * 999; ViewCone.UpdatePosition(position); }
public void Alert(Vector2 position, Chunk chunk) { PositionKnown = 2; if (State != AIState.Targeting && State != AIState.Searching) { ViewCone.Radius = 2 * ViewSize; ViewCone.FromDegrees(Direction, 30); } if (Target(position, chunk, AIState.Targeting)) { FinishPath = () => { AlertSignal.Play("alert"); ViewCone.SetColor(ConeEntity.AlertColor); } } ; }
public GroundDrone(Vector2 position, Game1 game) : base(game, new Vector2(Chunk.TileSize / 3, Chunk.TileSize / 2)) { Position = position; Spawn = position; Sprite = new AnimatedSprite(null, game, new Vector2(32, 32)); AlertSignal = new AnimatedSprite(null, game, new Vector2(16, 16)); ViewCone = new ConeEntity(game) { Radius = Chunk.TileSize * 6 }; ViewCone.FromDegrees(0, 30); ViewCone.UpdatePosition(Position); Velocity = new Vector2(PatrolSpeed.X, PatrolSpeed.Y); }
public AerialDrone(Vector2 position, Game1 game) : base(game, new Vector2(Chunk.TileSize / 3, Chunk.TileSize / 6)) { Spawn = position; Position = position; WanderLocation = Position; TargetLocation = Position; LastTarget = Position; Sprite = new AnimatedSprite(null, game, new Vector2(32, 32)); AlertSignal = new AnimatedSprite(null, game, new Vector2(16, 16)); ViewCone = new ConeEntity(game, false); Direction = (float)game.RNG.NextDouble() * 2 * (float)Math.PI; ViewCone.FromDegrees(0, 50); ViewCone.Radius = Chunk.TileSize * 5; ViewCone.UpdatePosition(position); }