public override void AttackCommand(Entity target) { if (!motor.Reachable(target.position)) { return; } if (target.team == entity.team) { foreach (var collector in target.GetComponents <ResourceCollectionPoint>()) { if (collector.resourceId == resourceId) { this.collector = collector; motor.Stop(); is_idle = false; moving_to_collector = true; } } } foreach (var resource in target.GetComponents <ResourceSource>()) { if (resource.resourceId == resourceId && !resource.occupied) { this.resource = resource; motor.Stop(); is_idle = false; moving_to_collector = false; } } }
public override void AttackCommand(Entity target) { var src = target.GetComponents <ResourceSource>().Where(s => IsResourceCompatible(s.resourceId) && !s.Depleted() && !s.occupied).FirstOrDefault(); if (src != null) { motor.Stop(); source = src; } }
ResourcePool GetResourcePool(int resourceId) { return(teamEnt.GetComponents <ResourcePool>().Single(p => p.resourceId == resourceId)); }