protected override void OnMoved(Bullet afterMove) { if (DeltaTime == TimeSpan.Zero) { base.OnMoved(afterMove); return; } Debug.WriteLine($"Released grenade deltaTime.TotalSeconds = {DeltaTime.TotalSeconds}"); var distanceAfterMove = afterMove.DistanceTo(myTarget) * DeltaTime.TotalSeconds; Debug.WriteLine($"Released grenade after move distance * deltaTime.TotalSeconds = {distanceAfterMove}"); if (distanceAfterMove < 3) { var botsToDamage = Battlefield.Bots .OfType <Bot>() .Where(bot => afterMove.DistanceTo(bot) < myExplosionRadius) .ToList(); if (botsToDamage.Any()) { botsToDamage.ForEach(bot => bot.TakeDamageFrom(this)); } Battlefield.Remove(this); Battlefield.Add(new Explosion(Battlefield, Position)); } else { base.OnMoved(afterMove); } }
private void Respawn() { Init(Battlefield, BotAI); Position = new Point(Home.Position.X, Home.Position.Y); Battlefield.Add(this); OnRespawned(); }
public void DropDownResource() { Speed = MaxSpeed; OnResourceDropped(Resource); Battlefield.Add(new Resource(new Point(Position.X, Position.Y))); Resource = null; }
public Round(IBotAIFactory botAIFactory) { ElapsedTime = TimeSpan.Zero; var botAIs = botAIFactory.CreateBotAIs(); var width = double.Parse(ConfigurationManager.AppSettings["BattlefieldWidth"]); var height = double.Parse(ConfigurationManager.AppSettings["BattlefieldHeight"]); Battlefield = new Battlefield(width, height); Bots = new List <Bot>(); myRandom = new Random(); foreach (var botAI in botAIs) { var bot = new Bot(Battlefield, botAI); Battlefield.Add(bot); Bots.Add(bot); } AddHospital(); InitializePositions(); myTurnDelay = double.Parse(ConfigurationManager.AppSettings["TurnDelayInMilliseconds"]); myTimeout = TimeSpan .FromSeconds(int.Parse( ConfigurationManager.AppSettings["RoundTimeoutInSeconds"])); myWeaponsCount = int.Parse(ConfigurationManager.AppSettings["WeaponsCount"]); myResourceCount = int.Parse(ConfigurationManager.AppSettings["ResourceCount"]); myFirstAidKitCount = int.Parse(ConfigurationManager.AppSettings["FirstAidKitCount"]); }
private void Aim() { if (IsDead) { return; } myRemainingAimTime -= DeltaTime; if (myRemainingAimTime <= TimeSpan.Zero) { var bullets = myWeapon.Fire(this, myTarget); foreach (var bullet in bullets) { Battlefield.Add(bullet); } } }