Ejemplo n.º 1
0
 void Load()
 {
     if (mission.exact)
     {
         if (target.TakeResource(mission.resource, mission.amount))
         {
             load    = mission.amount;
             target  = mission.patron;
             raw     = mission.resource;
             loading = false;
         }
     }
     else
     {
         if (target.HasResource(mission.resource, maxLoad))
         {
             if (target.TakeResource(mission.resource, maxLoad))
             {
                 load = maxLoad;
             }
         }
         else
         {
             float f = target.ResourceAmount(mission.resource);
             if (target.TakeResource(mission.resource, target.ResourceAmount(mission.resource)))
             {
                 load = f;
             }
         }
         target  = mission.patron;
         raw     = mission.resource;
         loading = false;
     }
     MoveTo(target.GetGameObject().transform.position);
 }
Ejemplo n.º 2
0
 public ResourceDeposit(RawResources res, float acc, float pre, float am)
 {
     resource   = res;
     access     = acc;
     prevalence = pre;
     amount     = am;
 }
Ejemplo n.º 3
0
 public bool HasResource(RawResources r, float amount)
 {
     if (r == resource)
     {
         return(Stockpile >= amount);
     }
     return(false);
 }
Ejemplo n.º 4
0
 public float ResourceAmount(RawResources r)
 {
     if (r == resource)
     {
         return(Stockpile);
     }
     return(0f);
 }
Ejemplo n.º 5
0
 public float ResourceAmount(RawResources r)
 {
     if (ResourceStockpile.ContainsKey(r))
     {
         return(ResourceStockpile[r].GetAmount());
     }
     return(0f);
 }
Ejemplo n.º 6
0
 public bool HasResource(RawResources r, float amount)
 {
     if (!ResourceStockpile.ContainsKey(r))
     {
         ResourceStockpile.Add(r, new RawResource(r));
         return(false);
     }
     return(ResourceStockpile [r].GetAmount() >= amount);
 }
Ejemplo n.º 7
0
 public bool TakeResource(RawResources r, float amount)
 {
     if (!ResourceStockpile.ContainsKey(r))
     {
         ResourceStockpile.Add(r, new RawResource(r));
         return(false);
     }
     return(ResourceStockpile [r].Use(amount));
 }
Ejemplo n.º 8
0
 // Use this for initialization
 void Start()
 {
     StrategicClock.PhaseChange.AddListener(PhaseManager);
     target = GetComponent <IMineable>();
     Collections.Mines.Add(this);
     Collections.ResourceSources.Add(this);
     if (GetComponent <Asteroid>())
     {
         resource = GetComponent <Asteroid>().deposit.resource;
     }
 }
Ejemplo n.º 9
0
    public bool GiveResource(RawResources r, float amount)
    {
        if (!ResourceStockpile.ContainsKey(r))
        {
            ResourceStockpile.Add(r, new RawResource(r));
//			Debug.Log (r.ToString () + " has been added");
        }
        ResourceStockpile [r].Add(amount);
        UpdateText();
        return(true);
    }
Ejemplo n.º 10
0
 public bool TakeResource(RawResources r, float amount)
 {
     if (r == resource)
     {
         if (Stockpile >= amount)
         {
             Stockpile -= amount;
             return(true);
         }
     }
     return(false);
 }
Ejemplo n.º 11
0
 public ResourceDeposit(RawResources res)
 {
     resource   = res;
     access     = UnityEngine.Random.Range(0.0f, 1f);
     prevalence = UnityEngine.Random.Range(0.0f, 1f);
     if (access > .4f && prevalence > .4f)
     {
         amount = UnityEngine.Random.Range(1000f, 5000f);
     }
     else
     {
         amount = UnityEngine.Random.Range(200f, 3000f);
     }
 }
Ejemplo n.º 12
0
 public float Mine(RawResources r, float amount)
 {
     if (ResourceDeposits[r] == null)
     {
         return(0f);
     }
     amount = amount * ResourceDeposits[r].access;
     if (amount <= ResourceDeposits[r].amount)
     {
         ResourceDeposits[r].amount -= amount;
         return(amount);
     }
     return(0f);
 }
Ejemplo n.º 13
0
 public float Mine(RawResources r, float amount)
 {
     if (deposit.resource != r)
     {
         return(0f);
     }
     amount = amount * deposit.access;
     if (amount <= deposit.amount)
     {
         deposit.amount -= amount;
         UpdateText();
         return(amount);
     }
     return(0f);
 }
Ejemplo n.º 14
0
    void GenerateRequest(RawResources r, int am, bool b)
    {
        ResourceRequest req = new ResourceRequest(r, am, b);

        req.patron = this;
        List <Freighter> temp = new List <Freighter> ();

        temp.AddRange(Collections.Available);
        temp.OrderBy(
            targ => Vector3.Distance(this.transform.position, targ.transform.position)).ToList();
        try{
            temp [0].AssignMission(req);
        }
        catch {
            Debug.Log("No valid ships");
            return;
        }
    }
Ejemplo n.º 15
0
 public RawResource(RawResources r)
 {
     resource = r;
     Amount   = 1000f;       //TODO change to 0 later
 }
Ejemplo n.º 16
0
 public bool exact;     //will fill cargo if false
 public ResourceRequest(RawResources r, int a, bool b)
 {
     resource = r;
     amount   = a;
     exact    = b;
 }
Ejemplo n.º 17
0
 public bool GiveResource(RawResources r, float amount)
 {
     return(false);
 }
Ejemplo n.º 18
0
 void AddDeposit(RawResources r)
 {
     ResourceDeposits.Add(r, new ResourceDeposit(r));
 }