44 lines
1.0 KiB
C#
44 lines
1.0 KiB
C#
public class GameResource
|
|
{
|
|
public string name;
|
|
public ItemData item;
|
|
|
|
private int currentAmount;
|
|
private int maxAmount;
|
|
private bool isEndless;
|
|
private float extractionSpeed;
|
|
private double timeSinceLastExtraction;
|
|
|
|
public GameResource(string name)
|
|
{
|
|
this.name = name;
|
|
maxAmount = GameData.rand.Next(1000, 10000);
|
|
currentAmount = maxAmount;
|
|
isEndless = false;
|
|
extractionSpeed = 1f;
|
|
item = GameData.availableItems[name];
|
|
}
|
|
|
|
public bool Extract(double delta)
|
|
{
|
|
timeSinceLastExtraction += delta;
|
|
if (timeSinceLastExtraction < extractionSpeed) return false;
|
|
|
|
timeSinceLastExtraction = 0;
|
|
if (isEndless) return true;
|
|
|
|
if (currentAmount > 0)
|
|
{
|
|
currentAmount--;
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public bool CanExtract()
|
|
{
|
|
return (isEndless || currentAmount > 0) && GameData.availableResearch[item.Research].state == ResearchState.RESEARCHED;
|
|
}
|
|
}
|