mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-14 10:12:59 +02:00
Update Nullkiller.cpp
Fix issue with selling/buying the same resources back and forth. But probably leads to not using the market early on. (needs more testing)
This commit is contained in:
parent
6193e6224f
commit
a79f76f32b
@ -601,7 +601,10 @@ bool Nullkiller::handleTrading()
|
|||||||
buildAnalyzer->update();
|
buildAnalyzer->update();
|
||||||
TResources required = buildAnalyzer->getTotalResourcesRequired();
|
TResources required = buildAnalyzer->getTotalResourcesRequired();
|
||||||
TResources income = buildAnalyzer->getDailyIncome();
|
TResources income = buildAnalyzer->getDailyIncome();
|
||||||
TResources available = getFreeResources();
|
TResources available = cb->getResourceAmount();
|
||||||
|
|
||||||
|
logAi->debug("Available %s", available.toString());
|
||||||
|
logAi->debug("Required %s", required.toString());
|
||||||
|
|
||||||
int mostWanted = -1;
|
int mostWanted = -1;
|
||||||
int mostExpendable = -1;
|
int mostExpendable = -1;
|
||||||
@ -610,7 +613,7 @@ bool Nullkiller::handleTrading()
|
|||||||
|
|
||||||
for (int i = 0; i < required.size(); ++i)
|
for (int i = 0; i < required.size(); ++i)
|
||||||
{
|
{
|
||||||
if (required[i] == 0)
|
if (required[i] <= 0)
|
||||||
continue;
|
continue;
|
||||||
float ratio = static_cast<float>(available[i]) / required[i];
|
float ratio = static_cast<float>(available[i]) / required[i];
|
||||||
|
|
||||||
@ -625,6 +628,8 @@ bool Nullkiller::handleTrading()
|
|||||||
float ratio = available[i];
|
float ratio = available[i];
|
||||||
if (required[i] > 0)
|
if (required[i] > 0)
|
||||||
ratio = static_cast<float>(available[i]) / required[i];
|
ratio = static_cast<float>(available[i]) / required[i];
|
||||||
|
else
|
||||||
|
ratio = available[i];
|
||||||
|
|
||||||
bool okToSell = false;
|
bool okToSell = false;
|
||||||
|
|
||||||
@ -635,7 +640,7 @@ bool Nullkiller::handleTrading()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (available[i] > required[i])
|
if (required[i] <= 0)
|
||||||
okToSell = true;
|
okToSell = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -645,7 +650,7 @@ bool Nullkiller::handleTrading()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//logAi->info("mostExpendable: %d mostWanted: %d", mostExpendable, mostWanted);
|
logAi->debug("mostExpendable: %d mostWanted: %d", mostExpendable, mostWanted);
|
||||||
|
|
||||||
if (mostExpendable == mostWanted || mostWanted == -1 || mostExpendable == -1)
|
if (mostExpendable == mostWanted || mostWanted == -1 || mostExpendable == -1)
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user