void CvUnit::doHeal()
// Vincentz Healing Cost
{
if (((currHitPoints() * 100) / maxHitPoints()) < (healRate(plot())) *5)
{
int unitHealCost = ((healRate(plot())) * (getUnitInfo().getProductionCost()) / GC.getDefineINT("UNIT_HEAL_COST_MODIFIER"));
if (GET_PLAYER(getOwnerINLINE()).getGold() > unitHealCost)
{
changeDamage(-(healRate(plot())));
GET_PLAYER(getOwnerINLINE()).changeGold(-unitHealCost);
}
}
}
// Vincentz Healing end
//Vincentz Civimage
szBuffer.append(NEWLINE);
szBuffer.append(CvWString::format(L"<img=%S size=64></img>", GC.getLeaderHeadInfo(GET_PLAYER((PlayerTypes)widgetDataStruct.m_iData1).getLeaderType()).getButton()));
szBuffer.append(CvWString::format(L"<img=%S size=64></img>", GC.getCivilizationInfo(GET_PLAYER((PlayerTypes)widgetDataStruct.m_iData1).getCivilizationType()).getButton()));
if (GET_PLAYER((PlayerTypes)widgetDataStruct.m_iData1).getStateReligion() != NO_RELIGION)
{
szBuffer.append(CvWString::format(L"<img=%S size=64></img>", GC.getReligionInfo(GET_PLAYER((PlayerTypes)widgetDataStruct.m_iData1).getStateReligion()).getButton()));
}
szBuffer.append(NEWLINE);
for (int i = 0; i < GC.getNumCivicOptionInfos(); i++)
{
CivicTypes eCivic = GET_PLAYER((PlayerTypes)widgetDataStruct.m_iData1).getCivics((CivicOptionTypes)i);
szBuffer.append(CvWString::format(L"<img=%S size=38></img>", GC.getCivicInfo(eCivic).getButton()));
}
//Vincentz Civimage
<Define>
<DefineName>MAXUPT</DefineName>
<iDefineIntVal>25</iDefineIntVal>
</Define>
verifyStackValid();
//Vincentz #UPT
int iNumVisibleUnits = 0;
if (pPlot->isVisible(GC.getGameINLINE().getActiveTeam(), false))
{
CLLNode<IDInfo>* pUnitNode5 = pPlot->headUnitNode();
while(pUnitNode5 != NULL)
{
CvUnit* pUnit = ::getUnit(pUnitNode5->m_data);
pUnitNode5 = pPlot->nextUnitNode(pUnitNode5);
if (pUnit && !pUnit->isInvisible(GC.getGameINLINE().getActiveTeam(), false))
{
++iNumVisibleUnits;
}
}
}
if (!pPlot->isVisibleEnemyUnit(this))
{
if (iNumVisibleUnits >= GC.getDefineINT("MAXUPT"))
{
return false;
}
}
//Vincentz #UPT
//Vincentz #UPT
int iNumVisibleUnits = 0;
if (plot()->isVisible(GC.getGameINLINE().getActiveTeam(), !GC.getGameINLINE().isDebugMode()))
{
CLLNode<IDInfo>* pUnitNode5 = plot()->headUnitNode();
while(pUnitNode5 != NULL)
{
CvUnit* pUnit = ::getUnit(pUnitNode5->m_data);
pUnitNode5 = plot()->nextUnitNode(pUnitNode5);
if (pUnit && !pUnit->isInvisible(GC.getGameINLINE().getActiveTeam(), false))
{
++iNumVisibleUnits;
}
}
}
if ((iNumVisibleUnits > GC.getDefineINT("MAXUPT")) && (getDomainType() != DOMAIN_AIR))
{
return jumpToNearestValidPlot();
}
//Vincentz #UPT
//Vincentz #UPT
int iNumVisibleUnits = 0;
if (pPlot->isVisible(GC.getGameINLINE().getActiveTeam(), GC.getGameINLINE().isDebugMode()))
{
CLLNode<IDInfo>* pUnitNode5 = pPlot->headUnitNode();
while(pUnitNode5 != NULL)
{
CvUnit* pUnit = ::getUnit(pUnitNode5->m_data);
pUnitNode5 = pPlot->nextUnitNode(pUnitNode5);
if (pUnit && !pUnit->isInvisible(GC.getGameINLINE().getActiveTeam(), GC.getGameINLINE().isDebugMode()))
{
++iNumVisibleUnits;
}
}
}
szTempBuffer.Format(L"Units (%d / %d) ", (iNumVisibleUnits), (GC.getDefineINT("MAXUPT")));
szString.append(szTempBuffer);
if (isHasMet((TeamTypes)iI))
{
FAssertMsg(iI != getID(), "iI is not expected to be equal with getID()");
iCount++;
//Vincentz Techshare Start
if (isOpenBorders((TeamTypes)iI))
{
iCount++;
}
}
}
}
}
/* if (iCount >= iBestShare)
{
setHasTech(eTech, true, NO_PLAYER, true, true);
}
*/
if ((GC.getGameINLINE().getSorenRandNum((10+iBestShare), "Project Tech Sharing")) < (GC.getDefineINT("PROJECT_TECHSHARE_CHANCE")))
{
int newProjectResearch = (getResearchCost(eTech) * iCount * GC.getGameINLINE().getSorenRandNum(10, "Project Tech Sharing") * GC.getDefineINT("PROJECT_TECHSHARE_MODIFIER"));
newProjectResearch /= (MAX_PLAYERS * iBestShare * (GC.getGameSpeedInfo(GC.getGameINLINE().getGameSpeedType()).getResearchPercent()));
if (isHuman())
{
newProjectResearch *= (GC.getHandicapInfo(getHandicapType()).getNoTechTradeModifier());
newProjectResearch /= 100;
}
changeResearchProgress(eTech, (newProjectResearch), NO_PLAYER);
for (int iI = 0; iI < MAX_PLAYERS; iI++)
{
if (GET_PLAYER((PlayerTypes)iI).isAlive())
{
if (GET_PLAYER((PlayerTypes)iI).getTeam() == getID())
{
CvWString szBuffer = gDLL->getText("TXT_KEY_GOT_RESEARCH_FROM_PROJECT", GC.getTechInfo(eTech).getTextKeyWide(), newProjectResearch);
gDLL->getInterfaceIFace()->addMessage(((PlayerTypes)iI), false, GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_PROJECT_COMPLETED", MESSAGE_TYPE_INFO, NULL, (ColorTypes)GC.getInfoTypeForString("COLOR_HIGHLIGHT_TEXT"));
}
}
}
}
}
}
//Vincentz Techshare End
You've been a busy Wizard Vinz. All of this latest on your update?
//Vincentz NewSpy
// int iEspionagePoints = GET_TEAM(getTeam()).getEspionagePointsAgainstTeam(GET_PLAYER(eTargetPlayer).getTeam());
int iEspionagePoints = GET_TEAM(getTeam()).getEspionagePointsEver();;
// Vincentz NewSpy
// iHave = GET_TEAM(getTeam()).getEspionagePointsAgainstTeam(eTargetTeam);
iHave = GET_TEAM(getTeam()).getEspionagePointsEver();
if (bSomethingHappened)
{
// GET_TEAM(getTeam()).changeEspionagePointsAgainstTeam(eTargetTeam, -iMissionCost);
GET_TEAM(getTeam()).changeEspionagePointsEver(-iMissionCost);
}
gDLL->getInterfaceIFace()->addMessage(getID(), true, GC.getEVENT_MESSAGE_TIME(), gDLL->getText("TXT_KEY_ESPIONAGE_MISSION_PERFORMED"), "AS2D_POSITIVE_DINK", MESSAGE_TYPE_INFO, ARTFILEMGR.getInterfaceArtInfo("ESPIONAGE_BUTTON")->getPath(), (ColorTypes)GC.getInfoTypeForString("COLOR_GREEN"), iX, iY, true, true);
//Vincentz NewSpy
gDLL->getInterfaceIFace()->addMessage(getID(), true, GC.getEVENT_MESSAGE_TIME(), gDLL->getText("TXT_KEY_ESPIONAGE_POINTS_LEFT", GET_TEAM(getTeam()).getEspionagePointsEver()), "AS2D_POSITIVE_DINK", MESSAGE_TYPE_INFO, ARTFILEMGR.getInterfaceArtInfo("ESPIONAGE_BUTTON")->getPath(), (ColorTypes)GC.getInfoTypeForString("COLOR_GREEN"), iX, iY, true, true);
szBuffer.append(NEWLINE);
szBuffer.append(gDLL->getText("TXT_KEY_ACTION_ESPIONAGE_MISSION"));
//Vincentz NewSpy
szBuffer.append(NEWLINE);
szBuffer.append(gDLL->getText("TXT_KEY_ESPIONAGE_POINTS_LEFT", GET_TEAM(pHeadSelectedUnit->getTeam()).getEspionagePointsEver()));
//Vincentz End
Cough cough, the icons are the original emblems of the London guilds. ;-)
They were good... just not for small icons. He made easily recognizable icons.
Take a look.![]()