public ExternatlTradingResource SplitExternal(double ratio, ExternalMarket destination, double localTravelTime)
        {
            double splitAmount = Amount * ratio;

            Amount -= splitAmount;
            return(new ExternatlTradingResource(Owner, ResourceType, destination, splitAmount, localTravelTime));
        }
Exemplo n.º 2
0
 public Region()
 {
     Negbours       = new List <Region>();
     internalMarket = new InternalMarket();
     externalMarket = new ExternalMarket(this, Negbours);
     Populations    = new List <Population>();
 }
Exemplo n.º 3
0
        public Region Init(int population)
        {
            InternalMarket = new InternalMarket();
            InternalMarket.Init();
            ExternalMarket = new ExternalMarket(this);
            ExternalMarket.Init();
            Populations = new List <Population>();
            Random rnd = new Random();

            if (population <= 0)
            {
                population = 100;
            }
            //1.8 + rnd.NextDouble() * 0.4
            if (population > 1000000000)
            {
                Populations.Add(new Farmer(population / 2, ResourceTypes.ResourceType.Fruit, 10).Init());
            }
            else
            {
                Populations.Add(new Farmer(population / 2, ResourceTypes.ResourceType.Fruit, 1.8 + rnd.NextDouble() * 0.4).Init());
            }
            Populations.Add(new Farmer(population / 2, ResourceTypes.ResourceType.Cloth, 1.8 + rnd.NextDouble() * 0.4).Init());
            return(this);
        }
        public ExternalTradingResource SplitAmountExternal(double amount, ExternalMarket destination, double localTravelTime)
        {
            double splitAmount = amount;

            Amount -= splitAmount;
            return(new ExternalTradingResource(Owner, ResourceType, splitAmount).Init(destination, localTravelTime));
        }
Exemplo n.º 5
0
        public Region(bool fruits)
        {
            Negbours       = new List <Region>();
            internalMarket = new InternalMarket();
            externalMarket = new ExternalMarket(this, Negbours);
            Populations    = new List <Population>();

            if (fruits)
            {
                Populations.Add(new Farmer(10000, ResourceTypes.GetResourceType("Fruit")));
            }
            else
            {
                Populations.Add(new Farmer(10000, ResourceTypes.GetResourceType("Cloth")));
            }
        }
Exemplo n.º 6
0
 public Destination(ExternalMarket destination, double daysRemaning)
 {
     DaysRemaning      = daysRemaning;
     MarketDestination = destination;
 }
Exemplo n.º 7
0
 private void AddNeighbour(Region neighbour)
 {
     ExternalMarket.AddNeighbour(neighbour);
 }
Exemplo n.º 8
0
 public void CleanUp()
 {
     ExternalMarket.FinilizeTrades();
     InternalMarket.CleanUp();
 }
 public ExternatlTradingResource(Population Owner, ResourceType resourceType, ExternalMarket destination, double Amount, double daysRemaning) : base(Owner, resourceType, Amount)
 {
     this.destination = new Destination(destination, daysRemaning);
 }
 public void UpdateDestination(ExternalMarket externalMarket, double transportTime)
 {
     Destination.MarketDestination = externalMarket;
     Destination.DaysRemaning      = transportTime;
 }
 public ExternalTradingResource Init(ExternalMarket destination, double daysRemaning)
 {
     Destination = new Destination(destination, daysRemaning);
     return(this);
 }