Ejemplo n.º 1
0
 void validateDueContracts(List <Contract> dueContracts)
 {
     // print("validating");
     foreach (var contract in dueContracts)
     {
         // print("contract: " + contract.Name);
         bool valid = true;
         foreach (var crop in contract.Crops)
         {
             // print("crop: " + crop.Key);
             int harvestedCropCount;
             if (harvestedCrops.TryGetValue(crop.Key, out harvestedCropCount))
             {
                 // print("found: " + crop.Key);
                 harvestedCropCount -= crop.Value;
                 if (harvestedCropCount >= 0)
                 {
                     harvestedCrops[crop.Key] = harvestedCropCount;
                     continue;
                 }
             }
             else
             {
                 print("contract: " + contract.Name);
                 print("missing: " + crop.Key);
                 valid = false;
                 break;
             }
         }
         if (valid)
         {
             print("redeemed contract: " + contract.Value);
             cash += contract.Value;
             ledger.RedeemContract(contract);
         }
         else
         {
             cash -= (int)(contract.Value * 1.1f);
             ledger.CancelContract(contract);
         }
     }
 }