示例#1
0
 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;
         }
     }
 }
示例#2
0
        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;
            }
        }
示例#3
0
 ResourcePool GetResourcePool(int resourceId)
 {
     return(teamEnt.GetComponents <ResourcePool>().Single(p => p.resourceId == resourceId));
 }