示例#1
0
    public bool UpdateOrder()
    {
        if (currentTargetAsteroid != null)
        {
            if (MoveOrder.move(currentTargetAsteroid.transform.position, aiAttributes.AttachedShip.speed, aiAttributes.AttachedShip.rotationSpeed, 0.2f, 2f, aiAttributes.AttachedRigidBody, gameObject))
            {
                if (Time.time >= miningTimer)
                {
                    miningTimer = Time.time + aiAttributes.miningTime;
                    // Mine more metal, if mined metal does not fit into cargo, return true
                    if (!aiAttributes.AttachedShip.Cargo.AddMetal(currentTargetAsteroid.MineAsteroid(aiAttributes.miningDamage)))
                    {
                        return(true);
                    }

                    // Check if there is enough metal, return true if so
                    if (aiAttributes.AttachedShip.Cargo.CurrentMetal >= aiAttributes.AttachedShip.Cargo.maxMetal * 0.9f)
                    {
                        return(true);
                    }
                }
            }
        }
        else
        {
            // Return true if current asteroid is destroyed
            return(true);
        }

        return(false);
    }
示例#2
0
    public bool UpdateOrder()
    {
        if (aiAttributes == null)
        {
            aiAttributes = GetComponent <AiAttributes>();
        }

        return(MoveOrder.move(aiAttributes.currentManualTarget, aiAttributes.AttachedShip.speed, aiAttributes.AttachedShip.rotationSpeed, 0.2f, 0.5f, aiAttributes.AttachedRigidBody, gameObject));
    }
示例#3
0
 public bool UpdateOrder()
 {
     if (closestEnemy != null)
     {
         return(MoveOrder.move(targetPos, aiAttributes.AttachedShip.speed, aiAttributes.AttachedShip.rotationSpeed, 0.2f, 0.5f, aiAttributes.AttachedRigidBody, gameObject));
     }
     else
     {
         return(true);
     }
 }
示例#4
0
 public bool UpdateOrder()
 {
     if (buyingFrom != null)
     {
         if (MoveOrder.move(buyingFrom.transform.position, aiAttributes.AttachedShip.speed, aiAttributes.AttachedShip.rotationSpeed, 0.2f, 1f, aiAttributes.AttachedRigidBody, gameObject))
         {
             buyingFrom.SellToShip(aiAttributes.AttachedShip, aiAttributes.AttachedShip.Cargo.GetCurrentFreeCargo());
             return(true);
         }
         else
         {
             return(false);
         }
     }
     else
     {
         return(true);
     }
 }
示例#5
0
 public bool UpdateOrder()
 {
     if (sellingTo != null)
     {
         if (MoveOrder.move(sellingTo.transform.position, aiAttributes.AttachedShip.speed, aiAttributes.AttachedShip.rotationSpeed, 0.2f, 1f, aiAttributes.AttachedRigidBody, gameObject))
         {
             sellingTo.BuyFromShip(aiAttributes.AttachedShip, aiAttributes.AttachedShip.Cargo.CurrentMetal);
             return(true);
         }
         else
         {
             return(false);
         }
     }
     else
     {
         return(true);
     }
 }
示例#6
0
 public bool UpdateOrder()
 {
     if (currentTarget != null)
     {
         if (MoveOrder.move(targetPos, aiAttributes.AttachedShip.speed, aiAttributes.AttachedShip.rotationSpeed, 0.2f, 0.5f, aiAttributes.AttachedRigidBody, gameObject) ||
             Vector2.Distance(transform.position, currentTarget.transform.position) > aiAttributes.AttachedSensors.checkRadius)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
     else
     {
         return(true);
     }
 }
    public bool UpdateOrder()
    {
        if (patrolTarget != null)
        {
            if (MoveOrder.move(patrolTarget.transform.position, aiAttributes.AttachedShip.speed, aiAttributes.AttachedShip.rotationSpeed, 0.2f, 1.8f, aiAttributes.AttachedRigidBody, gameObject))
            {
                waitingTimer -= Time.deltaTime;
                if (waitingTimer <= 0)
                {
                    return(true);
                }
            }
        }
        else
        {
            return(true);
        }

        return(false);
    }
示例#8
0
    public bool UpdateOrder()
    {
        if (currentTarget != null)
        {
            if (MoveOrder.move(targetPos, aiAttributes.AttachedShip.speed, aiAttributes.AttachedShip.rotationSpeed, 0.2f, 3f, aiAttributes.AttachedRigidBody, gameObject))
            {
                waitingTimer -= Time.deltaTime;
                if (waitingTimer <= 0)
                {
                    return(true);
                }
            }
        }
        else
        {
            return(true);
        }

        return(false);
    }
示例#9
0
    public bool UpdateOrder()
    {
        if (attachedFactory.factory != null)
        {
            if (MoveOrder.move(attachedFactory.factory.transform.position, aiAttributes.AttachedShip.speed, aiAttributes.AttachedShip.rotationSpeed, 0.2f, 1f, aiAttributes.AttachedRigidBody, gameObject))
            {
                if (aiAttributes.AttachedShip.Cargo.SellMetal(attachedFactoryCargo, aiAttributes.AttachedShip.Cargo.CurrentMetal))
                {
                    // Return true if the transaction is succesfull
                    return(true);
                }
            }
            else
            {
                // Return false if attached factory is destroyed
                return(false);
            }
        }

        return(true);
    }