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); }
public ResourceDeposit(RawResources res, float acc, float pre, float am) { resource = res; access = acc; prevalence = pre; amount = am; }
public bool HasResource(RawResources r, float amount) { if (r == resource) { return(Stockpile >= amount); } return(false); }
public float ResourceAmount(RawResources r) { if (r == resource) { return(Stockpile); } return(0f); }
public float ResourceAmount(RawResources r) { if (ResourceStockpile.ContainsKey(r)) { return(ResourceStockpile[r].GetAmount()); } return(0f); }
public bool HasResource(RawResources r, float amount) { if (!ResourceStockpile.ContainsKey(r)) { ResourceStockpile.Add(r, new RawResource(r)); return(false); } return(ResourceStockpile [r].GetAmount() >= amount); }
public bool TakeResource(RawResources r, float amount) { if (!ResourceStockpile.ContainsKey(r)) { ResourceStockpile.Add(r, new RawResource(r)); return(false); } return(ResourceStockpile [r].Use(amount)); }
// 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; } }
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); }
public bool TakeResource(RawResources r, float amount) { if (r == resource) { if (Stockpile >= amount) { Stockpile -= amount; return(true); } } return(false); }
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); } }
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); }
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); }
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; } }
public RawResource(RawResources r) { resource = r; Amount = 1000f; //TODO change to 0 later }
public bool exact; //will fill cargo if false public ResourceRequest(RawResources r, int a, bool b) { resource = r; amount = a; exact = b; }
public bool GiveResource(RawResources r, float amount) { return(false); }
void AddDeposit(RawResources r) { ResourceDeposits.Add(r, new ResourceDeposit(r)); }