[sanguoforciv4] r355 committed - 0.309: 将文化改为民忠...

2 views
Skip to first unread message

codesite...@google.com

unread,
Oct 20, 2009, 5:51:31 AM10/20/09
to sanguom...@googlegroups.com
Revision: 355
Author: TongShen.Martin
Date: Tue Oct 20 02:50:19 2009
Log: 0.309: 将文化改为民忠
将商业收入课税,税额影响城市民忠
地块产出受民忠度影响

0.309: change culture into city loyalty
a new slider: commerce slider
plot yield change according to plot loyalty
http://code.google.com/p/sanguoforciv4/source/detail?r=355

Added:
/trunk/The History of Three Kingdoms/Assets/Python/SgMessageConstants.py
/trunk/The History of Three
Kingdoms/Assets/XML/Text/Civ4GameText_Sanguo_CityLoyalty.xml
Modified:
/trunk/The History of Three Kingdoms/Assets/Python/BUG/BugUtil.py
/trunk/The History of Three Kingdoms/Assets/Python/BUG/GameUtil.py
/trunk/The History of Three Kingdoms/Assets/Python/CvSanguoEventManager.py
/trunk/The History of Three
Kingdoms/Assets/Python/EntryPoints/CvSanguoInterface.py
/trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvAdvancedLegionScreen.py
/trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvCreateChampionScreen.py
/trunk/The History of Three Kingdoms/Assets/Python/Screens/CvHeroAdvisor.py
/trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvLegionScreen.py
/trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvMainInterface.py
/trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvNineTransformationScreen.py
/trunk/The History of Three Kingdoms/Assets/Python/Screens/CvTechChooser.py
/trunk/The History of Three
Kingdoms/Assets/XML/GameInfo/CIV4GameOptionInfos.xml
/trunk/The History of Three
Kingdoms/Assets/XML/Technologies/CIV4TechInfos.xml
/trunk/The History of Three
Kingdoms/Assets/XML/Text/CIV4GameText_Sanguo_Changed.xml
/trunk/The History of Three
Kingdoms/Assets/XML/Text/CIV4GameText_Sanguo_Help.xml
/trunk/The History of Three
Kingdoms/Assets/XML/Text/CIV4GameText_Sanguo_Hero.xml
/trunk/The History of Three
Kingdoms/Assets/XML/Text/CIV4GameText_Sanguo_Objects.xml
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CvCity.cpp
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CvCityAI.cpp
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CvDLLWidgetData.cpp
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CvEnums.h
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CvGame.cpp
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CvGame.h
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CvGameInterface.cpp
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CvGameTextMgr.cpp
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CvGlobals.h
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CvPlayer.cpp
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CvPlayer.h
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CvPlayerAI.cpp
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CvPlot.cpp
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CvUnit.cpp
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CyEnumsInterface.cpp
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CyPlayer.cpp
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CyPlayer.h
/trunk/The History of Three Kingdoms/CvGameCoreDLL/CyPlayerInterface2.cpp
/trunk/The History of Three Kingdoms/Documents/changelog.txt
/trunk/The History of Three Kingdoms/Documents/changelog_en.txt

=======================================
--- /dev/null
+++ /trunk/The History of Three
Kingdoms/Assets/Python/SgMessageConstants.py Tue Oct 20 02:50:19 2009
@@ -0,0 +1,18 @@
+## Sid Meier's Civilization 4
+## Copyright 2008-2009 The History of Three Kingdoms
+
+
+FORM_LEGION = 0
+CREATE_NEW_HERO = 1
+RECRUIT_HERO = 2
+CHECK_CORE_TROOP = 3
+CHECK_MEMBER_TROOP = 4
+CHANGE_CURRENT_NINE_TRANSFORMATION = 5
+PERSUADE_HERO = 6
+EXECUTE_HERO = 7
+RELEASE_HERO = 8
+FORM_ADVANCED_LEGION = 9
+JOIN_LEGION = 10
+AI_CREATE_NEW_HERO = 11
+CLEAR_LEGION_MEMBER = 12
+CHANGE_PERCENT = 13
=======================================
--- /dev/null
+++ /trunk/The History of Three
Kingdoms/Assets/XML/Text/Civ4GameText_Sanguo_CityLoyalty.xml Tue Oct 20
02:50:19 2009
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="GB2312"?>
+<!-- edited with XMLSPY v2004 rel. 2 U (http://www.xmlspy.com) by lcollins
(Firaxis Games) -->
+<!-- Sid Meier's Civilization 4 -->
+<!-- Copyright Firaxis Games 2005 -->
+<!-- freesand leo -->
+<!-- Game Text Cities -->
+<Civ4GameText xmlns="http://www.firaxis.com">
+ <TEXT>
+ <Tag>TXT_KEY_CITY_LOYALTY_RAW_COMMERCE</Tag>
+ <English>Commerce</English>
+<L1 /><L2 /><L3 /><L4 />
+ <Chinese>ÉÌÒµÊÕÈë</Chinese>
+ </TEXT>
+ <TEXT>
+ <Tag>TXT_KEY_MISC_HELP_TAXED_COMMERCE</Tag>
+ <English>-----------------------[NEWLINE]Taxed Commerce:</English>
+<L1 /><L2 /><L3 /><L4 />
+ <Chinese>-----------------------[NEWLINE]˰ÊÕ£º</Chinese>
+ </TEXT>
+ <TEXT>
+ <Tag>TXT_KEY_MISC_HELP_SLIDER_PERCENT_FLOAT_COMMERCE</Tag>
+ <English>%d1%% of %d2[ICON_COMMERCE] = %s3 %F4</English>
+<L1 /><L2 /><L3 /><L4 />
+ <Chinese>%d1%%/%d2[ICON_COMMERCE] = %s3 %F4</Chinese>
+ </TEXT>
+ <TEXT>
+ <Tag>TXT_KEY_MISC_HELP_SLIDER_PERCENT_FLOAT_CULTURE</Tag>
+ <English>-----------------------[NEWLINE](50% - %d1%%)
of %d2[ICON_COMMERCE] = %s3 %F4</English>
+<L1 /><L2 /><L3 /><L4 />
+ <Chinese>-----------------------[NEWLINE](50%
- %d1%%)/%d2[ICON_COMMERCE] = %s3 %F4</Chinese>
+ </TEXT>
+</Civ4GameText>
=======================================
--- /trunk/The History of Three Kingdoms/Assets/Python/BUG/BugUtil.py Tue
Aug 25 06:46:25 2009
+++ /trunk/The History of Three Kingdoms/Assets/Python/BUG/BugUtil.py Tue
Oct 20 02:50:19 2009
@@ -677,7 +677,7 @@

Depreated: Use GameUtil.isEspionage() instead.
"""
- try:
- return gc.getGame().isOption(GameOptionTypes.GAMEOPTION_NO_ESPIONAGE)
- except:
- return False
+ ##try:
+ ## return gc.getGame().isOption(GameOptionTypes.GAMEOPTION_NO_ESPIONAGE)
+ ##except:
+ return False
=======================================
--- /trunk/The History of Three Kingdoms/Assets/Python/BUG/GameUtil.py Tue
Aug 25 06:46:25 2009
+++ /trunk/The History of Three Kingdoms/Assets/Python/BUG/GameUtil.py Tue
Oct 20 02:50:19 2009
@@ -82,6 +82,6 @@
"""
Returns True if using at least 3.17 and the 'No Espionage' option is not
enabled.
"""
- if isVersionAtLeast(317):
- return not gc.getGame().isOption(GameOptionTypes.GAMEOPTION_NO_ESPIONAGE)
+ ## if isVersionAtLeast(317):
+ ## return not
gc.getGame().isOption(GameOptionTypes.GAMEOPTION_NO_ESPIONAGE)
return True
=======================================
--- /trunk/The History of Three
Kingdoms/Assets/Python/CvSanguoEventManager.py Sun Sep 27 18:36:06 2009
+++ /trunk/The History of Three
Kingdoms/Assets/Python/CvSanguoEventManager.py Tue Oct 20 02:50:19 2009
@@ -18,6 +18,8 @@
import OOSLogger
import BugUtil

+from SgMessageConstants import *
+
gc = CyGlobalContext()
localText = CyTranslator()
PyPlayer = PyHelpers.PyPlayer
@@ -469,7 +471,7 @@
iData1, iData2, iData3, iData4, iData5 = argsList

# Form Legion Stuff
- if iData1 == 0:
+ if iData1 == FORM_LEGION:
pPlayer = gc.getPlayer(iData3)
pHero = pPlayer.getUnit(iData2)
bRegroup = False
@@ -478,7 +480,7 @@
pHero.formLegion(bRegroup, True)
return 0
# Create New Hero Stuff
- elif iData1 == 1:
+ elif iData1 == CREATE_NEW_HERO:
unit = CyInterface().getHeadSelectedUnit()
if not unit.isNone():
iX = unit.getX()
@@ -534,7 +536,7 @@
gc.getGame().createRandomHero(iData2, iX, iY, iLeadership, iMight,
iLoyalty, iCombat, iFirstPro, iSecondPro, iThirdPro, bThreePros)
gc.getPlayer(iData2).recalculateGreatGeneralThreshold()
# Recruit Hero Stuff
- elif iData1 == 2:
+ elif iData1 == RECRUIT_HERO:
bDiscount = True
if iData4 == 0:
bDiscount = False
@@ -542,7 +544,7 @@
if bDiscount:
gc.getPlayer(iData3).recalculateGreatGeneralThreshold()
# Check Core Troop / Leader Troop Stuff
- elif iData1 == 3:
+ elif iData1 == CHECK_CORE_TROOP:
if iData4 == 0 and iData5 == 0:
gc.getGame().addHeroCoreTroop(iData3, iData2)
elif iData4 == 0 and iData5 == 1:
@@ -550,29 +552,29 @@
else:
gc.getGame().deleteHeroCoreTroop(iData3)
# Check Member Troop / Normal Troop Stuff
- elif iData1 == 4:
+ elif iData1 == CHECK_MEMBER_TROOP:
if iData4 == 0:
gc.getGame().addHeroLegionMember(iData3, iData2)
else:
gc.getGame().deleteHeroLegionMember(iData3, iData2)
# Change Current Nine Transformation Promotion
- elif iData1 == 5:
+ elif iData1 == CHANGE_CURRENT_NINE_TRANSFORMATION:
if iData4 != -1 and iData4 != iData5:
gc.getGame().setHeroCurrentNineTransformationPromotion(iData3, iData4)
# Persuade Hero
- elif iData1 == 6:
+ elif iData1 == PERSUADE_HERO:
if iData2 != -1 and iData3 != -1:
gc.getPlayer(iData3).persuadeHero(iData2)
# Execute Hero
- elif iData1 == 7:
+ elif iData1 == EXECUTE_HERO:
if iData2 != -1 and iData3 != -1:
gc.getPlayer(iData3).executeHero(iData2)
# Release Hero
- elif iData1 == 8:
+ elif iData1 == RELEASE_HERO:
if iData2 != -1 and iData3 != -1:
gc.getPlayer(iData3).releaseHero(iData2)
# Form Advanced Legion Stuff
- elif iData1 == 9:
+ elif iData1 == FORM_ADVANCED_LEGION:
if iData2 != -1 and iData3 != -1:
pHero =
gc.getPlayer(iData2).getUnit(gc.getGame().getHeroUnitID(iData3))
if not pHero.isNone():
@@ -581,7 +583,7 @@
bRegroup = False
pHero.formAdvancedLegion(bRegroup, True)
# Join Legion / Advanced Legion Stuff
- elif iData1 == 10:
+ elif iData1 == JOIN_LEGION:
pPlayer = gc.getPlayer(iData3)
pHero = pPlayer.getUnit(iData4)
pUnit = pPlayer.getUnit(iData2)
@@ -592,7 +594,7 @@
pUnit.joinAdvancedLegion( iData4 )
pPlayer.clearJoinLegionTempHeroList()
# AI create random hero
- elif iData1 == 11:
+ elif iData1 == AI_CREATE_NEW_HERO:
iLeadership = -1
iMight = -1
iLoyalty = -1
@@ -641,8 +643,12 @@
gc.getGame().createRandomHero(iData2, iData3, iData4, iLeadership,
iMight, iLoyalty, iCombat, iFirstPro, iSecondPro, iThirdPro, bThreePros)
gc.getPlayer(iData2).recalculateGreatGeneralThreshold()
# Clear legion member stuff
- elif iData1 == 12:
+ elif iData1 == CLEAR_LEGION_MEMBER:
gc.getGame().clearHeroLegionMember(iData2)
+ # Change Commerce/Food Percent stuff
+ elif iData1 == CHANGE_PERCENT:
+ if iData3 == -1:
+ gc.getPlayer(iData2).changeCommerceTaxPercent(iData4)



=======================================
--- /trunk/The History of Three
Kingdoms/Assets/Python/EntryPoints/CvSanguoInterface.py Sun Sep 27 18:36:06
2009
+++ /trunk/The History of Three
Kingdoms/Assets/Python/EntryPoints/CvSanguoInterface.py Tue Oct 20 02:50:19
2009
@@ -5,6 +5,7 @@
from CvPythonExtensions import *
import CvUtil
import CvAdvisorUtils
+from SgMessageConstants import *

gc = CyGlobalContext()

@@ -28,7 +29,7 @@
eTargetCoreTroop = gc.getPlayer(iPlayer).getJoinLegionTempHeroIDAt(i)

if eTargetCoreTroop != -1:
- CyMessageControl().sendModNetMessage(10, iUnitID, iPlayer,
eTargetCoreTroop, iData4)
+ CyMessageControl().sendModNetMessage(JOIN_LEGION, iUnitID, iPlayer,
eTargetCoreTroop, iData4)

return True

@@ -40,7 +41,7 @@
iFlag = 0
if bRegroup:
iFlag = 1
- CyMessageControl().sendModNetMessage(0, iHeroID, iPlayer, iFlag, -1)
+ CyMessageControl().sendModNetMessage(FORM_LEGION, iHeroID, iPlayer,
iFlag, -1)

return True

@@ -57,7 +58,7 @@
if bIsMember:
iFlag2 = 1

- CyMessageControl().sendModNetMessage(3, iUnitID, iHeroType, iFlag1,
iFlag2)
+ CyMessageControl().sendModNetMessage(CHECK_CORE_TROOP, iUnitID,
iHeroType, iFlag1, iFlag2)

def doCheckMemberTroop(argsList):
iUnitID = argsList[0]
@@ -68,7 +69,7 @@
if bChecked:
iFlag = 1

- CyMessageControl().sendModNetMessage(4, iUnitID, iHeroType, iFlag, -1)
+ CyMessageControl().sendModNetMessage(CHECK_MEMBER_TROOP, iUnitID,
iHeroType, iFlag, -1)

def doDestroyOwnTown(argsList):
iPlayer = argsList[0]
@@ -168,23 +169,26 @@


def doAICreateRandomHero(argsList):
- CyMessageControl().sendModNetMessage(11, argsList[0], argsList[1],
argsList[2], -1)
+ CyMessageControl().sendModNetMessage(AI_CREATE_RANDOM_HERO, argsList[0],
argsList[1], argsList[2], -1)


def doUnitCreatedFeat(argsList):
- CvAdvisorUtils.unitCreatedFeats(argsList[0], argsList[1])
+ CvAdvisorUtils.unitCreatedFeats(argsList[0], argsList[1])

def doCaptureHeroFeat(argsList):
- CvAdvisorUtils.captureHeroFeat(argsList[0], argsList[1])
+ CvAdvisorUtils.captureHeroFeat(argsList[0], argsList[1])

def doFormLegionFeat(argsList):
- CvAdvisorUtils.formLegionFeat(argsList[0], argsList[1])
+ CvAdvisorUtils.formLegionFeat(argsList[0], argsList[1])

def doFormAdvancedLegionFeat(argsList):
- CvAdvisorUtils.formAdvancedLegionFeat(argsList[0], argsList[1])
+ CvAdvisorUtils.formAdvancedLegionFeat(argsList[0], argsList[1])

def doCreateRandomHeroFeat(argsList):
- CvAdvisorUtils.createRandomHeroFeat(argsList[0], argsList[1])
+ CvAdvisorUtils.createRandomHeroFeat(argsList[0], argsList[1])

def doGainCityPerkFeat(argsList):
- CvAdvisorUtils.gainCityPerkFeat(argsList[0], argsList[1],
argsList[2])
+ CvAdvisorUtils.gainCityPerkFeat(argsList[0], argsList[1], argsList[2])
+
+def doChangePercent(argsList):
+ CyMessageControl().sendModNetMessage(CHANGE_PERCENT, argsList[0],
argsList[1], argsList[2], -1)
=======================================
--- /trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvAdvancedLegionScreen.py Fri Sep 25
08:21:08 2009
+++ /trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvAdvancedLegionScreen.py Tue Oct 20
02:50:19 2009
@@ -6,6 +6,7 @@
import ScreenInput
import CvScreenEnums
import CvScreensInterface
+from SgMessageConstants import *

TEXTURE_SIZE = 24
X_START = 6
@@ -552,12 +553,12 @@

self.updateResult( True, True )

- CyMessageControl().sendModNetMessage(12, self.iHero, -1, -1, -1)
+ CyMessageControl().sendModNetMessage(CLEAR_LEGION_MEMBER, self.iHero,
-1, -1, -1)
else:
- CyMessageControl().sendModNetMessage(12, self.iHero, -1, -1, -1)
+ CyMessageControl().sendModNetMessage(CLEAR_LEGION_MEMBER, self.iHero,
-1, -1, -1)

for iUnitID in self.InitLegionMemberList:
- CyMessageControl().sendModNetMessage(4, iUnitID, self.iHero, 0, -1)
+ CyMessageControl().sendModNetMessage(CHECK_MEMBER_TROOP, iUnitID,
self.iHero, 0, -1)

self.placeUnits()
self.updateResult( True, True )
@@ -589,7 +590,7 @@
iFlag = 0
if self.bRegroup:
iFlag = 1
- CyMessageControl().sendModNetMessage(9, self.iPlayer, self.iHero,
iFlag, -1)
+ CyMessageControl().sendModNetMessage(FORM_ADVANCED_LEGION,
self.iPlayer, self.iHero, iFlag, -1)
screen.hideScreen()
return 1

=======================================
--- /trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvCreateChampionScreen.py Wed Oct 7
20:41:24 2009
+++ /trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvCreateChampionScreen.py Tue Oct 20
02:50:19 2009
@@ -6,6 +6,7 @@
import CvUtil
import ScreenInput
import CvScreenEnums
+from SgMessageConstants import *

import BugUtil

@@ -577,11 +578,11 @@
elif (inputClass.getNotifyCode() == NotifyCode.NOTIFY_CLICKED):
if inputClass.getFunctionName() == "Confirm":
if self.iHero == gc.getNumHeroInfos():
- CyMessageControl().sendModNetMessage(1, self.iPlayer,
self.ChoiceRemembered["STATS"], self.ChoiceRemembered["COMBAT"],
self.ChoiceRemembered["PROMOTION"])
+ CyMessageControl().sendModNetMessage(CREATE_NEW_HERO, self.iPlayer,
self.ChoiceRemembered["STATS"], self.ChoiceRemembered["COMBAT"],
self.ChoiceRemembered["PROMOTION"])
self.getScreen().hideScreen()
return 1
elif self.iHero != -1 and self.iPlayer != -1:
- CyMessageControl().sendModNetMessage(2, self.iHero, self.iPlayer, 1,
-1)
+ CyMessageControl().sendModNetMessage(RECRUIT_HERO, self.iHero,
self.iPlayer, 1, -1)
self.getScreen().hideScreen()
return 1
elif inputClass.getFunctionName() == "HeroButton":
=======================================
--- /trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvHeroAdvisor.py Thu Oct 15 05:02:19 2009
+++ /trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvHeroAdvisor.py Tue Oct 20 02:50:19 2009
@@ -7,6 +7,7 @@
import CvUtil
import ScreenInput
import CvScreenEnums
+from SgMessageConstants import *

import BugUtil
import WidgetUtil
@@ -1149,7 +1150,7 @@
def handleInput (self, inputClass):
if (inputClass.getNotifyCode() == NotifyCode.NOTIFY_CLICKED):
if inputClass.getFunctionName() == "Recruit":
- CyMessageControl().sendModNetMessage(2, inputClass.getData1(),
inputClass.getData2(), 0, -1)
+ CyMessageControl().sendModNetMessage(RECRUIT_HERO,
inputClass.getData1(), inputClass.getData2(), 0, -1)
self.getScreen().hideScreen()
return 1
if inputClass.getFunctionName() == "SubScreen":
@@ -1173,21 +1174,21 @@
return 1
if inputClass.getFunctionName() == "Persuade":
if self.iHero != -1:
- CyMessageControl().sendModNetMessage(6, self.iHero,
self.iActiveLeader, -1, -1)
+ CyMessageControl().sendModNetMessage(PERSUADE_HERO, self.iHero,
self.iActiveLeader, -1, -1)
self.updatePrisoners(self.iHero)
return 1
else:
return 0
if inputClass.getFunctionName() == "Execute":
if self.iHero != -1:
- CyMessageControl().sendModNetMessage(7, self.iHero,
self.iActiveLeader, -1, -1)
+ CyMessageControl().sendModNetMessage(EXECUTE_HERO, self.iHero,
self.iActiveLeader, -1, -1)
self.updatePrisoners(self.iHero)
return 1
else:
return 0
if inputClass.getFunctionName() == "Release":
if self.iHero != -1:
- CyMessageControl().sendModNetMessage(8, self.iHero,
self.iActiveLeader, -1, -1)
+ CyMessageControl().sendModNetMessage(RELEASE_HERO, self.iHero,
self.iActiveLeader, -1, -1)
self.updatePrisoners(self.iHero)
return 1
else:
=======================================
--- /trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvLegionScreen.py Fri Sep 25 08:21:08 2009
+++ /trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvLegionScreen.py Tue Oct 20 02:50:19 2009
@@ -6,6 +6,7 @@
import ScreenInput
import CvScreenEnums
import CvScreensInterface
+from SgMessageConstants import *

TEXTURE_SIZE = 24
X_START = 6
@@ -676,12 +677,12 @@

self.updateResult( True, True )

- CyMessageControl().sendModNetMessage(12, self.iHero, -1, -1, -1)
+ CyMessageControl().sendModNetMessage(CLEAR_LEGION_MEMBER, self.iHero,
-1, -1, -1)
else:
- CyMessageControl().sendModNetMessage(12, self.iHero, -1, -1, -1)
+ CyMessageControl().sendModNetMessage(CLEAR_LEGION_MEMBER, self.iHero,
-1, -1, -1)

for iUnitID in self.InitLegionMemberList:
- CyMessageControl().sendModNetMessage(4, iUnitID, self.iHero, 0, -1)
+ CyMessageControl().sendModNetMessage(CHECK_MEMBER_TROOP, iUnitID,
self.iHero, 0, -1)

self.placeUnits()
self.updateResult( True, True )
=======================================
--- /trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvMainInterface.py Sun Sep 27 18:36:06 2009
+++ /trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvMainInterface.py Tue Oct 20 02:50:19 2009
@@ -1407,25 +1407,25 @@
#### Sanguo Mod Hero, start, added by poyuzhe 01.18.09
## if (iLeaderPromo != -1 and pLoopUnit.isHasPromotion(iLeaderPromo)):
if pLoopUnit.getLegionHero() != -1:
- if pLoopUnit.getLeaderHero() == -1:
- if pLoopUnit.getHeroType() ==
pLoopUnit.getLegionHero():
- if
gc.getHeroInfo(pLoopUnit.getHeroType()).getLeaderType() !=
gc.getPlayer(pLoopUnit.getOwner()).getLeaderType():
- szDotState += "_GG"
- else:
- szDotState
+= "_LEADER"
- else:
- szDotState += "_HERO"
- else:
- if pLoopUnit.getHeroType() == -1:
- szDotState += "_NORMAL"
- else:
- if
pLoopUnit.isLeaderTroop():
- if
gc.getHeroInfo(pLoopUnit.getLeaderHero()).getLeaderType() ==
gc.getPlayer(pLoopUnit.getOwner()).getLeaderType():
- szDotState
+= "_MARSHAL"
- else:
- szDotState
+= "_GUARDIAN"
- else:
- szDotState
+= "_CORE"
+ if pLoopUnit.getLeaderHero() == -1:
+ if pLoopUnit.getHeroType() == pLoopUnit.getLegionHero():
+ if gc.getHeroInfo(pLoopUnit.getHeroType()).getLeaderType() !=
gc.getPlayer(pLoopUnit.getOwner()).getLeaderType():
+ szDotState += "_GG"
+ else:
+ szDotState += "_LEADER"
+ else:
+ szDotState += "_HERO"
+ else:
+ if pLoopUnit.getHeroType() == -1:
+ szDotState += "_NORMAL"
+ else:
+ if pLoopUnit.isLeaderTroop():
+ if gc.getHeroInfo(pLoopUnit.getLeaderHero()).getLeaderType() ==
gc.getPlayer(pLoopUnit.getOwner()).getLeaderType():
+ szDotState += "_MARSHAL"
+ else:
+ szDotState += "_GUARDIAN"
+ else:
+ szDotState += "_CORE"
xSize = 16
ySize = 16
xOffset = -3
@@ -3389,6 +3389,17 @@

screen = CyGInterfaceScreen( "MainInterface",
CvScreenEnums.MAIN_INTERFACE )

+ #### Sanguo Mod City Loyalty, start, by poyuzhe 10.19.09
+ szString = "IncreasePercentCommerce"
+ screen.hide( szString )
+ szString = "DecreasePercentCommerce"
+ screen.hide( szString )
+ szString = "MaxPercentCommerce"
+ screen.hide( szString )
+ szString = "MinPercentCommerce"
+ screen.hide( szString )
+ #### Sanguo Mod City Loyalty, end
+
for iI in range( CommerceTypes.NUM_COMMERCE_TYPES ):
szString = "IncreasePercent" + str(iI)
screen.hide( szString )
@@ -3412,6 +3423,34 @@
if not CyInterface().isCityScreenUp():
iXStart = 114
#### Sanguo Mod Hero, end
+
+ #### Sanguo Mod City Loyalty, start, by poyuzhe 10.19.09
+ #### Commerce Tax
+ if MainOpt.isShowMinMaxCommerceButtons() and not
CyInterface().isCityScreenUp():
+ iMinMaxAdjustX = 20
+ szString = "MaxPercentCommerce"
+ screen.setButtonGFC( szString, u"", "", iXStart, 50 + (19 * iCount),
20, 20, WidgetTypes.WIDGET_CHANGE_PERCENT, -1, 100,
ButtonStyles.BUTTON_STYLE_CITY_PLUS)
+ screen.show( szString )
+ screen.enable( szString, True )
+ szString = "MinPercentCommerce"
+ screen.setButtonGFC( szString, u"", "", iXStart + 60, 50 + (19 *
iCount), 20, 20, WidgetTypes.WIDGET_CHANGE_PERCENT, -1, -100,
ButtonStyles.BUTTON_STYLE_CITY_MINUS )
+ screen.show( szString )
+ screen.enable( szString, True )
+ else:
+ iMinMaxAdjustX = 0
+
+ szString = "IncreasePercentCommerce"
+ screen.setButtonGFC( szString, u"", "", iXStart + iMinMaxAdjustX, 50 +
(19 * iCount), 20, 20, WidgetTypes.WIDGET_CHANGE_PERCENT, -1,
gc.getDefineINT("COMMERCE_PERCENT_CHANGE_INCREMENTS"),
ButtonStyles.BUTTON_STYLE_CITY_PLUS )
+ screen.show( szString )
+ screen.enable( szString, True )
+ szString = "DecreasePercentCommerce"
+ screen.setButtonGFC( szString, u"", "", iXStart + 20 + iMinMaxAdjustX,
50 + (19 * iCount), 20, 20, WidgetTypes.WIDGET_CHANGE_PERCENT, -1,
-gc.getDefineINT("COMMERCE_PERCENT_CHANGE_INCREMENTS"),
ButtonStyles.BUTTON_STYLE_CITY_MINUS )
+ screen.show( szString )
+ screen.enable( szString, True )
+
+ iCount = iCount + 1
+ #### Sanguo Mod City Loyalty, end
+
for iI in range( CommerceTypes.NUM_COMMERCE_TYPES ):
# Intentional offset...
eCommerce = (iI + 1) % CommerceTypes.NUM_COMMERCE_TYPES
@@ -5208,6 +5247,13 @@
if ( ePlayer < 0 or ePlayer >= gc.getMAX_PLAYERS() ):
return 0

+ #### Sanguo Mod City Loyalty, start, by poyuzhe 10.19.09
+ szString = "PercentTextCommerce"
+ screen.hide(szString)
+ szString = "RateTextCommerce"
+ screen.hide(szString)
+ #### Sanguo Mod City Loyalty, end
+
for iI in range(CommerceTypes.NUM_COMMERCE_TYPES):
szString = "PercentText" + str(iI)
screen.hide(szString)
@@ -5224,6 +5270,28 @@
if not CyInterface().isCityScreenUp():
iXStart = 59
#### Sanguo Mod Hero, end
+
+ #### Sanguo Mod City Loyalty, start, by poyuzhe 10.19.09
+ szOutText =
u"<font=2>%c:%d%%</font>" %(gc.getYieldInfo(YieldTypes.YIELD_COMMERCE).getChar(),
gc.getPlayer(ePlayer).getCommerceTaxPercent())
+ szString = "PercentTextCommerce"
+ screen.setLabel( szString, "Background", szOutText,
CvUtil.FONT_LEFT_JUSTIFY, iXStart, 50 + (iCount * 19), -0.1,
FontTypes.SMALL_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1 )
+ screen.show( szString )
+
+ if not CyInterface().isCityScreenUp():
+ szOutText = u"<font=2>" +
localText.getText("TXT_KEY_MISC_POS_GOLD_PER_TURN_SHORT",
(gc.getPlayer(ePlayer).calculateTotalYield(YieldTypes.YIELD_COMMERCE) *
gc.getPlayer(ePlayer).getCommerceTaxPercent() / 100, )) + u"</font>"
+ szString = "RateText" + str(iI)
+# BUG - Min/Max Sliders - start
+ if MainOpt.isShowMinMaxCommerceButtons():
+ iMinMaxAdjustX = 40
+ else:
+ iMinMaxAdjustX = 0
+ screen.setLabel( szString, "Background", szOutText,
CvUtil.FONT_LEFT_JUSTIFY, iXStart + 93 + iMinMaxAdjustX, 50 + (iCount *
19), -0.1, FontTypes.SMALL_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1 )
+# BUG - Min/Max Sliders - end
+ screen.show( szString )
+
+ iCount = iCount + 1;
+ #### Sanguo Mod City Loyalty, end
+
for iI in range( CommerceTypes.NUM_COMMERCE_TYPES ):
eCommerce = (iI + 1) % CommerceTypes.NUM_COMMERCE_TYPES
if (gc.getPlayer(ePlayer).isCommerceFlexible(eCommerce) or
(CyInterface().isCityScreenUp() and (eCommerce ==
CommerceTypes.COMMERCE_GOLD))):
@@ -5615,6 +5683,11 @@
screen.hide( szName )
#### Sanguo Mod City Perk, end

+ #### Sanguo Mod City Loyalty, start, by poyuzhe 10.20.09
+ szName = "CityPercentTextCommerce"
+ screen.hide( szName )
+ #### Sanguo Mod City Loyalty, end
+
for i in range(CommerceTypes.NUM_COMMERCE_TYPES):
szName = "CityPercentText" + str(i)
screen.hide( szName )
@@ -5951,6 +6024,16 @@

iCount = 0

+ #### Sanguo Mod City Loyalty, start, by poyuzhe 10.20.09
+ iRawCommerce =
pHeadSelectedCity.getYieldRate(YieldTypes.YIELD_COMMERCE) *
(gc.getPlayer(pHeadSelectedCity.getOwner()).getCommerceTaxPercent())
+ szBuffer = u"%d.%02d %c" %( iRawCommerce / 100, iRawCommerce%100,
gc.getYieldInfo(YieldTypes.YIELD_COMMERCE).getChar())
+
+ szName = "CityPercentTextCommerce"
+ screen.setLabel( szName, "Background", szBuffer,
CvUtil.FONT_RIGHT_JUSTIFY, 220, 45 + (19 * iCount) + 4, -0.3,
FontTypes.SMALL_FONT, WidgetTypes.WIDGET_COMMERCE_MOD_HELP, -1, -1 )
+ screen.show( szName )
+ iCount = iCount + 1
+ #### Sanguo Mod City Loyalty, end
+
for i in range(CommerceTypes.NUM_COMMERCE_TYPES):
eCommerce = (i + 1) % CommerceTypes.NUM_COMMERCE_TYPES

@@ -5966,7 +6049,11 @@
szTempBuffer = u", %d%c" %(-iHappiness,
CyGame().getSymbolID(FontSymbols.UNHAPPY_CHAR))
szBuffer = szBuffer + szTempBuffer

- szName = "CityPercentText" + str(iCount)
+ #### Sanguo Mod City
Loyalty, start, by poyuzhe 10.20.09
+## szName = "CityPercentText" + str(iCount)
+ szName = "CityPercentText" + str(eCommerce)
+ #### Sanguo Mod City Loyalty, end
+
screen.setLabel( szName, "Background", szBuffer,
CvUtil.FONT_RIGHT_JUSTIFY, 220, 45 + (19 * iCount) + 4, -0.3,
FontTypes.SMALL_FONT, WidgetTypes.WIDGET_COMMERCE_MOD_HELP, eCommerce, -1 )
screen.show( szName )
iCount = iCount + 1
@@ -6402,12 +6489,19 @@
screen.setLabel( "DefenseText", "Background", szBuffer,
CvUtil.FONT_RIGHT_JUSTIFY, xResolution - 270, 40, -0.3,
FontTypes.SMALL_FONT, WidgetTypes.WIDGET_HELP_DEFENSE, -1, -1 )
screen.show( "DefenseText" )

- if ( pHeadSelectedCity.getCultureLevel !=
CultureLevelTypes.NO_CULTURELEVEL ):
+ if ( pHeadSelectedCity.getCultureLevel() !=
CultureLevelTypes.NO_CULTURELEVEL ):
iRate =
pHeadSelectedCity.getCommerceRateTimes100(CommerceTypes.COMMERCE_CULTURE)
if (iRate%100 == 0):
szBuffer = localText.getText("INTERFACE_CITY_COMMERCE_RATE",
(gc.getCommerceInfo(CommerceTypes.COMMERCE_CULTURE).getChar(),
gc.getCultureLevelInfo(pHeadSelectedCity.getCultureLevel()).getTextKey(),
iRate/100))
else:
- szRate = u"+%d.%02d" % (iRate/100, iRate%100)
+ #### Sanguo Mod City
Loyalty, start, by poyuzhe 10.20.09
+## szRate = u"+%d.%02d" % (iRate/100, iRate%100)
+ szRate = ""
+ if iRate >= 0:
+ szRate =
u"+%d.%02d" % (iRate/100, abs(iRate) % 100)
+ else:
+ szRate =
u"%d.%02d" % (iRate/100, abs(iRate) % 100)
+ #### Sanguo Mod City Loyalty, end
szBuffer = localText.getText("INTERFACE_CITY_COMMERCE_RATE_FLOAT",
(gc.getCommerceInfo(CommerceTypes.COMMERCE_CULTURE).getChar(),
gc.getCultureLevelInfo(pHeadSelectedCity.getCultureLevel()).getTextKey(),
szRate))

# BUG - Culture Turns - start
=======================================
--- /trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvNineTransformationScreen.py Fri Sep 18
07:27:23 2009
+++ /trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvNineTransformationScreen.py Tue Oct 20
02:50:19 2009
@@ -6,6 +6,7 @@
import ScreenInput
import CvScreenEnums
import CvScreensInterface
+from SgMessageConstants import *

TEXTURE_SIZE = 24
X_START = 6
@@ -114,7 +115,7 @@
if ( inputClass.getData1() != -1):
control = "PromotionButton" + str(inputClass.getData1())
screen.setState(control, True)
- CyMessageControl().sendModNetMessage(5, self.iPlayer, self.iHero,
inputClass.getData1(), self.iOldPromotion)
+
CyMessageControl().sendModNetMessage(CHANGE_CURRENT_NINE_TRANSFORMATION,
self.iPlayer, self.iHero, inputClass.getData1(), self.iOldPromotion)
else:
if ( self.iOldPromotion != -1 ):
control = "PromotionButton" + str(self.iOldPromotion)
=======================================
--- /trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvTechChooser.py Tue Aug 25 06:46:25 2009
+++ /trunk/The History of Three
Kingdoms/Assets/Python/Screens/CvTechChooser.py Tue Oct 20 02:50:19 2009
@@ -445,7 +445,7 @@
if (eLoopUnit != -1):
# BUG - 3.19 No Espionage - start
# CvUnitInfo.getEspionagePoints() was added in 319
- if (GameUtil.getVersion() < 319 or
gc.getUnitInfo(eLoopUnit).getEspionagePoints() == 0 or not
gc.getGame().isOption(GameOptionTypes.GAMEOPTION_NO_ESPIONAGE)):
+ if (GameUtil.getVersion() < 319 or
gc.getUnitInfo(eLoopUnit).getEspionagePoints() == 0):
# BUG - 3.19 No Espionage - end
screen.addDDSGFCAt( szFreeUnitButton, szTechRecord,
gc.getPlayer(gc.getGame().getActivePlayer()).getUnitButton(eLoopUnit), iX +
fX, iY + Y_ROW, TEXTURE_SIZE, TEXTURE_SIZE,
WidgetTypes.WIDGET_HELP_FREE_UNIT, eLoopUnit, i, False )
fX += X_INCREMENT
=======================================
--- /trunk/The History of Three
Kingdoms/Assets/XML/GameInfo/CIV4GameOptionInfos.xml Tue Sep 29 23:51:43
2009
+++ /trunk/The History of Three
Kingdoms/Assets/XML/GameInfo/CIV4GameOptionInfos.xml Tue Oct 20 02:50:19
2009
@@ -168,13 +168,6 @@
<bVisible>1</bVisible>
</GameOptionInfo>
<GameOptionInfo>
- <Type>GAMEOPTION_NO_ESPIONAGE</Type>
- <Description>TXT_KEY_GAME_OPTION_NO_ESPIONAGE</Description>
- <Help>TXT_KEY_GAME_OPTION_NO_ESPIONAGE_HELP</Help>
- <bDefault>0</bDefault>
- <bVisible>1</bVisible>
- </GameOptionInfo>
- <GameOptionInfo>
<Type>GAMEOPTION_NO_HERO_DEATH_FROM_COMBAT</Type>
<Description>TXT_KEY_GAME_OPTION_NO_HERO_DEATH_FROM_COMBAT</Description>
<Help>TXT_KEY_GAME_OPTION_NO_HERO_DEATH_FROM_COMBAT_HELP</Help>
=======================================
--- /trunk/The History of Three
Kingdoms/Assets/XML/Technologies/CIV4TechInfos.xml Sat Aug 15 08:37:16 2009
+++ /trunk/The History of Three
Kingdoms/Assets/XML/Technologies/CIV4TechInfos.xml Tue Oct 20 02:50:19 2009
@@ -671,11 +671,7 @@
<iGridX>6</iGridX>
<iGridY>9</iGridY>
<DomainExtraMoves/>
- <CommerceFlexible>
- <bFlexible>0</bFlexible>
- <bFlexible>0</bFlexible>
- <bFlexible>1</bFlexible>
- </CommerceFlexible>
+ <CommerceFlexible/>
<TerrainTrades/>
<bRiverTrade>0</bRiverTrade>
<Flavors>
=======================================
--- /trunk/The History of Three
Kingdoms/Assets/XML/Text/CIV4GameText_Sanguo_Changed.xml Wed Oct 7
20:41:24 2009
+++ /trunk/The History of Three
Kingdoms/Assets/XML/Text/CIV4GameText_Sanguo_Changed.xml Tue Oct 20
02:50:19 2009
@@ -670,9 +670,9 @@
</TEXT>
<TEXT>
<Tag>TXT_KEY_HINT_15</Tag>
- <English>Don't neglect your empire's culture - a high cultural influence
boosts defense for all eras.</English>
+ <English>Don't neglect your city's loyalty - a high loyalty boosts
defense for all eras.</English>
<L1 /><L2 /><L3 /><L4 />
-
<Chinese>²»¿ÉºöÊÓ±¾¹úÎÄ»¯µÄ·¢Õ¹¡ª¡ªÎÄ»¯Ó°Ïì¿ÉÒÔÔÚÈκÎʱ´úÌáÉý³ÇÊзÀÓùÄÜÁ¦¡£</Chinese>
+
<Chinese>²»¿ÉºöÊÓ³ÇÊеÄÃñÖÒ¶È¡ª¡ªÃñÖÒ¿ÉÒÔÔÚÈκÎʱ´úÌáÉý³ÇÊзÀÓùÄÜÁ¦¡£</Chinese>
</TEXT>
<TEXT>
<Tag>TXT_KEY_HINT_18</Tag>
@@ -718,9 +718,9 @@
</TEXT>
<TEXT>
<Tag>TXT_KEY_HINT_42</Tag>
- <English>There are many ways to make your people happy: with belief,
with luxurious resources, with city improvements, with civics, with culture
rate. If you lack opportunities in some areas, focus your attention on the
others. Avoid having Angry Citizens whenever possible!</English>
+ <English>There are many ways to make your people happy: with belief,
with luxurious resources, with city improvements, with civics, with high
city loyalty. If you lack opportunities in some areas, focus your attention
on the others. Avoid having Angry Citizens whenever possible!</English>
<L1 /><L2 /><L3 /><L4 />
-
<Chinese>ÒªÁîÄãµÄÈËÃñ¿ìÀÖÓжàÖÖ·½·¨£ºÐÅÄî¡¢ÉݳÞ×ÊÔ´¡¢³ÇÊн¨Öþ¡¢ÄÚÕþ·¨ÁîÒÔ¼°ÌáÉýÎÄ»¯µÈ¼¶µÈ¡£Èç¹ûÄãÔÚijЩ·½ÃæÄÑÓÐ×÷Ϊ£¬¾ÍרעÓÚÆäËûÁìÓò¡£¾¡Á¿±ÜÃâ³öÏÖ²»ÂúµÄÊÐÃñ!</Chinese>
+
<Chinese>ÒªÁîÄãµÄÈËÃñ¿ìÀÖÓжàÖÖ·½·¨£ºÐÅÄî¡¢ÉݳÞ×ÊÔ´¡¢³ÇÊн¨Öþ¡¢ÄÚÕþ·¨ÁîÒÔ¼°ÌáÉý³ÇÊÐÃñÖҶȵȡ£Èç¹ûÄãÔÚijЩ·½ÃæÄÑÓÐ×÷Ϊ£¬¾ÍרעÓÚÆäËûÁìÓò¡£¾¡Á¿±ÜÃâ³öÏÖ²»ÂúµÄÊÐÃñ!</Chinese>
</TEXT>
<TEXT>
<Tag>TXT_KEY_HINT_46</Tag>
@@ -1018,12 +1018,12 @@
</TEXT>
<TEXT>
<Tag>TXT_KEY_GAME_OPTION_NO_ESPIONAGE_HELP</Tag>
- <English>Spies are not available, and Espionage Points are converted
into Culture</English>
- <L1>Les espions ne sont pas disponibles, et des points d'espionnage sont
convertis en culture</L1>
+ <English>Spies are not available, and Espionage Points are converted
into Loyalty</English>
+ <L1>Les espions ne sont pas disponibles, et des points d'espionnage sont
convertis en loyalty</L1>
<L2>Spione sind nicht vorhanden und Spionage-Punkte werden in Kultur
umgewandelt</L2>
<L3>Le spie non sono disponibili ed i punti di spionaggio sono
convertiti in coltura</L3>
<L4>Los esp¨ªas no est¨¦n disponibles, y los puntos del espionaje se
convierten en cultura</L4>
- <Chinese>ÎÞ·¨½¨Ôì¼äµý£¨Ï¸×÷£©£¬¼äµýµãÊýת»¯ÎªÎÄ»¯µãÊý</Chinese>
+ <Chinese>ÎÞ·¨½¨Ôì¼äµý£¨Ï¸×÷£©£¬¼äµýµãÊýת»¯ÎªÃñÖÒµãÊý</Chinese>
</TEXT>
<TEXT>
<Tag>TXT_KEY_MISC_HELP_COMMERCE_TO_COMMERCE_FLOAT</Tag>
@@ -1722,4 +1722,82 @@
<L1 /><L2 /><L3 /><L4 />
<Chinese>µÈ¼¶</Chinese>
</TEXT>
+ <TEXT>
+ <Tag>TXT_KEY_MISC_CITY_NATIONALITY</Tag>
+ <English>City Loyalty:</English>
+<L1 /><L2 /><L3 /><L4 />
+ <Chinese>³ÇÊÐÃñÖÒ¶È:</Chinese>
+ </TEXT>
+ <TEXT>
+ <Tag>TXT_KEY_MISC_CULTURE</Tag>
+ <English>Loyalty: %d1_Curr/%d2_Need [ICON_CULTURE]</English>
+<L1 /><L2 /><L3 /><L4 />
+ <Chinese>ÃñÖÒ: %d1_Curr/%d2_Need [ICON_CULTURE]</Chinese>
+ </TEXT>
+ <TEXT>
+ <Tag>TXT_KEY_MISC_CULTURE_LEVEL</Tag>
+ <English>%s1_CityName has achieved %s2_LevelName!</English>
+<L1 /><L2 /><L3 /><L4 />
+ <Chinese>%s1_CityNameʵÏÖÁË%s2_LevelName!</Chinese>
+ </TEXT>
+ <TEXT>
+ <Tag>TXT_KEY_MISC_CULTURE_LEVEL_UNKNOWN</Tag>
+ <English>An unknown city has achieved %s1_LevelName!</English>
+<L1 /><L2 /><L3 /><L4 />
+ <Chinese>Ò»×ùÔ¶·½³ÇÊÐʵÏÖÁË%s1_LevelName!</Chinese>
+ </TEXT>
+ <TEXT>
+ <Tag>TXT_KEY_MISC_CULTURE_FLOAT</Tag>
+ <English>Loyalty: %s1_Curr/%d2_Need [ICON_CULTURE]</English>
+<L1 /><L2 /><L3 /><L4 />
+ <Chinese>ÃñÖÒ: %s1_Curr/%d2_Need [ICON_CULTURE]</Chinese>
+ </TEXT>
+ <TEXT>
+ <Tag>TXT_KEY_CULTURELEVEL_NONE</Tag>
+ <English>None</English>
+<L1 /><L2 /><L3 /><L4 />
+ <Chinese>³õÀ´Õ§µ½</Chinese>
+ </TEXT>
+ <TEXT>
+ <Tag>TXT_KEY_CULTURELEVEL_POOR</Tag>
+ <English>Shaking</English>
+<L1 /><L2 /><L3 /><L4 />
+ <Chinese>ÈËÐĸ¡¶¯</Chinese>
+ </TEXT>
+ <TEXT>
+ <Tag>TXT_KEY_CULTURELEVEL_FLEDGLING</Tag>
+ <English>Improving</English>
+<L1 /><L2 /><L3 /><L4 />
+ <Chinese>°ëÐŰëÒÉ</Chinese>
+ </TEXT>
+ <TEXT>
+ <Tag>TXT_KEY_CULTURELEVEL_DEVELOPING</Tag>
+ <English>Strengthening</English>
+<L1 /><L2 /><L3 /><L4 />
+ <Chinese>Ö𲽺Ãת</Chinese>
+ </TEXT>
+ <TEXT>
+ <Tag>TXT_KEY_CULTURELEVEL_REFINED</Tag>
+ <English>Trusting</English>
+<L1 /><L2 /><L3 /><L4 />
+ <Chinese>Ŧ´øÀιÌ</Chinese>
+ </TEXT>
+ <TEXT>
+ <Tag>TXT_KEY_CULTURELEVEL_INFLUENTIAL</Tag>
+ <English>Happy</English>
+<L1 /><L2 /><L3 /><L4 />
+ <Chinese>ÀÖÓÚΪÃñ</Chinese>
+ </TEXT>
+ <TEXT>
+ <Tag>TXT_KEY_CULTURELEVEL_LEGENDARY</Tag>
+ <English>Devoted</English>
+<L1 /><L2 /><L3 /><L4 />
+ <Chinese>½øÍËÓë¹²</Chinese>
+ </TEXT>
+ <TEXT>
+ <Tag>TXT_KEY_MISC_HELP_RELIGION_COMMERCE</Tag>
+ <English>[ICON_BULLET]%D1%F2 from Belief</English>
+<L1 /><L2 /><L3 /><L4 />
+ <Chinese>[ICON_BULLET]%D1%F2 À´×ÔÐÅÄî</Chinese>
+ </TEXT>
</Civ4GameText>
=======================================
--- /trunk/The History of Three
Kingdoms/Assets/XML/Text/CIV4GameText_Sanguo_Help.xml Thu Sep 24 10:17:15
2009
+++ /trunk/The History of Three
Kingdoms/Assets/XML/Text/CIV4GameText_Sanguo_Help.xml Tue Oct 20 02:50:19
2009
@@ -127,9 +127,9 @@
</TEXT>
<TEXT>
<Tag>TXT_KEY_TRAIT_BENEVOLENT_HELP</Tag>
- <English>[SPACE][SPACE][ICON_BULLET]No Resistance in Captured Cities
[NEWLINE][SPACE][SPACE][ICON_BULLET]Assimilate Half the Culture Points When
Capture Cities [NEWLINE][SPACE][SPACE][ICON_BULLET]Buildings in conquered
Cities More Likely to Survive</English>
+ <English>[SPACE][SPACE][ICON_BULLET]No Resistance in Captured Cities
[NEWLINE][SPACE][SPACE][ICON_BULLET]Assimilate Half the Loyalty Points When
Capture Cities [NEWLINE][SPACE][SPACE][ICON_BULLET]Buildings in conquered
Cities More Likely to Survive</English>
<L1 /><L2 /><L3 /><L4 />
-
<Chinese>[SPACE][SPACE][ICON_BULLET]»ñÈ¡³ÇÊÐʱÎÞ±©¶¯[NEWLINE][SPACE][SPACE][ICON_BULLET]»ñÈ¡³ÇÊÐʱ»ñµÃ¸Ã³ÇÊÐÒ»°ëµÄÎÄ»¯[NEWLINE][SPACE][SPACE][ICON_BULLET]»ñÈ¡³ÇÊÐʱ½¨Öþ´æÁô¿ÉÄÜÐÔÔö´ó</Chinese>
+
<Chinese>[SPACE][SPACE][ICON_BULLET]»ñÈ¡³ÇÊÐʱÎÞ±©¶¯[NEWLINE][SPACE][SPACE][ICON_BULLET]»ñÈ¡³ÇÊÐʱ»ñµÃ¸Ã³ÇÊÐÒ»°ëµÄÃñÖÒ[NEWLINE][SPACE][SPACE][ICON_BULLET]»ñÈ¡³ÇÊÐʱ½¨Öþ´æÁô¿ÉÄÜÐÔÔö´ó</Chinese>
</TEXT>
<TEXT>
<Tag>TXT_KEY_TRAIT_SEAFARING_HELP</Tag>
=======================================
--- /trunk/The History of Three
Kingdoms/Assets/XML/Text/CIV4GameText_Sanguo_Hero.xml Fri Oct 2 09:08:25
2009
+++ /trunk/The History of Three
Kingdoms/Assets/XML/Text/CIV4GameText_Sanguo_Hero.xml Tue Oct 20 02:50:19
2009
Binary file, no diff available.
=======================================
--- /trunk/The History of Three
Kingdoms/Assets/XML/Text/CIV4GameText_Sanguo_Objects.xml Tue Sep 15
08:01:36 2009
+++ /trunk/The History of Three
Kingdoms/Assets/XML/Text/CIV4GameText_Sanguo_Objects.xml Tue Oct 20
02:50:19 2009
Binary file, no diff available.
=======================================
--- /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvCity.cpp Wed Oct
7 20:41:24 2009
+++ /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvCity.cpp Tue Oct
20 02:50:19 2009
@@ -1810,13 +1810,15 @@
}
}

- if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ /*if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
{
if (GC.getUnitInfo(eUnit).isSpy() ||
GC.getUnitInfo(eUnit).getEspionagePoints() > 0)
{
return false;
}
- }
+ }*/
+ // Sanguo Mod Strategist, end

if
(!(GET_TEAM(getTeam()).isHasTech((TechTypes)(GC.getUnitInfo(eUnit).getPrereqAndTech()))))
{
@@ -8600,7 +8602,8 @@
FAssertMsg(eIndex < NUM_COMMERCE_TYPES, "eIndex expected to be <
NUM_COMMERCE_TYPES");

int iRate = m_aiCommerceRate[eIndex];
- if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ /*if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
{
if (eIndex == COMMERCE_CULTURE)
{
@@ -8610,7 +8613,8 @@
{
iRate = 0;
}
- }
+ }*/
+ // Sanguo Mod Strategist, end

return iRate;
}
@@ -8620,11 +8624,23 @@
{
int iCommerce;

- iCommerce = ((iYieldRate *
GET_PLAYER(getOwnerINLINE()).getCommercePercent(eIndex)) / 100);
+ // Sanguo Mod City Loyalty, start, by poyuzhe 10.19.09
+ //iCommerce = ((iYieldRate *
GET_PLAYER(getOwnerINLINE()).getCommercePercent(eIndex)) / 100);
+
+ if (eIndex == COMMERCE_CULTURE)
+ {
+ return (iYieldRate * (50 -
GET_PLAYER(getOwnerINLINE()).getCommerceTaxPercent()) / 100);
+ }
+
+ iCommerce = ((iYieldRate *
GET_PLAYER(getOwnerINLINE()).getCommerceTaxPercent() *
GET_PLAYER(getOwnerINLINE()).getCommercePercent(eIndex)) / 10000);
+ // Sanguo Mod City Loyalty, end

if (eIndex == COMMERCE_GOLD)
{
- iCommerce += (iYieldRate - iCommerce -
getCommerceFromPercent(COMMERCE_RESEARCH, iYieldRate) -
getCommerceFromPercent(COMMERCE_CULTURE, iYieldRate) -
getCommerceFromPercent(COMMERCE_ESPIONAGE, iYieldRate));
+ // Sanguo Mod City Loyalty, start, by poyuzhe 10.19.09
+ //iCommerce += (iYieldRate - iCommerce -
getCommerceFromPercent(COMMERCE_RESEARCH, iYieldRate) -
getCommerceFromPercent(COMMERCE_CULTURE, iYieldRate) -
getCommerceFromPercent(COMMERCE_ESPIONAGE, iYieldRate));
+ iCommerce += (iYieldRate *
GET_PLAYER(getOwnerINLINE()).getCommerceTaxPercent() / 100 - iCommerce -
getCommerceFromPercent(COMMERCE_RESEARCH, iYieldRate) -
getCommerceFromPercent(COMMERCE_ESPIONAGE, iYieldRate));
+ // Sanguo Mod City Loyalty, end
}

return iCommerce;
@@ -8678,7 +8694,15 @@
if (iOldCommerce != iNewCommerce)
{
m_aiCommerceRate[eIndex] = iNewCommerce;
- FAssert(m_aiCommerceRate[eIndex] >= 0);
+
+ // Sanguo Mod City Loyalty, start, by poyuzhe 10.19.09
+#ifdef _DEBUG
+ if (eIndex != COMMERCE_CULTURE)
+ {
+ FAssert(m_aiCommerceRate[eIndex] >= 0);
+ }
+#endif
+ // Sanguo Mod City Loyalty, end

GET_PLAYER(getOwnerINLINE()).invalidateCommerceRankCache(eIndex);

@@ -9979,10 +10003,12 @@
{
FAssertMsg(eIndex >= 0, "eIndex expected to be >= 0");
FAssertMsg(eIndex < GC.getNumUnitInfos(), "eIndex expected to be <
GC.getNumUnitInfos()");
- if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE) &&
GC.getUnitInfo(eIndex).getEspionagePoints() > 0)
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ /*if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE) &&
GC.getUnitInfo(eIndex).getEspionagePoints() > 0)
{
return;
- }
+ }*/
+ // Sanguo Mod Strategist, end

m_paiGreatPeopleUnitRate[eIndex] = iNewValue;
FAssert(getGreatPeopleUnitRate(eIndex) >= 0);
=======================================
--- /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvCityAI.cpp Tue Sep
22 03:53:27 2009
+++ /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvCityAI.cpp Tue Oct
20 02:50:19 2009
@@ -846,10 +846,13 @@
{
iEconomyFlags |= BUILDINGFOCUS_SPECIALIST;
}
- if (!GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
- {
+
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ //if (!GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ //{
iEconomyFlags |= BUILDINGFOCUS_ESPIONAGE;
- }
+ //}
+ // Sanguo Mod Strategist, end

if (iNumCitiesInArea > 2)
{
@@ -4696,11 +4699,14 @@
{
iTempValue = (kBuilding.getCommerceChange(COMMERCE_CULTURE) * 3);
iTempValue +=
(kBuilding.getObsoleteSafeCommerceChange(COMMERCE_CULTURE) * 3);
- if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ /*if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
{
iTempValue += (kBuilding.getCommerceChange(COMMERCE_ESPIONAGE) * 3);
iTempValue +=
(kBuilding.getObsoleteSafeCommerceChange(COMMERCE_ESPIONAGE) * 3);
- }
+ }*/
+ // Sanguo Mod Strategist, end

if ((getCommerceRate(COMMERCE_CULTURE) == 0) &&
(AI_calculateTargetCulturePerTurn() == 1))
{
@@ -4728,10 +4734,13 @@
}

iValue += ((kBuilding.getCommerceModifier(COMMERCE_CULTURE) *
getBaseCommerceRate(COMMERCE_CULTURE)) / 15);
- if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ /*if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
{
iValue += ((kBuilding.getCommerceModifier(COMMERCE_ESPIONAGE) *
getBaseCommerceRate(COMMERCE_ESPIONAGE)) / 15);
- }
+ }*/
+ // Sanguo Mod Strategist, end
}

if (iFocusFlags & BUILDINGFOCUS_BIGCULTURE)
@@ -4756,7 +4765,10 @@
}
}

- if (iFocusFlags & BUILDINGFOCUS_ESPIONAGE ||
(GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE) && (iFocusFlags &
BUILDINGFOCUS_CULTURE)))
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ // if (iFocusFlags & BUILDINGFOCUS_ESPIONAGE ||
(GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE) && (iFocusFlags &
BUILDINGFOCUS_CULTURE)))
+ if (iFocusFlags & BUILDINGFOCUS_ESPIONAGE)
+ // Sanguo Mod Strategist, end
{
iTempValue = ((kBuilding.getCommerceModifier(COMMERCE_ESPIONAGE) *
getBaseCommerceRate(COMMERCE_ESPIONAGE)) / 60);

@@ -10664,10 +10676,12 @@
iEconomyFlags |= BUILDINGFOCUS_HAPPY;
iEconomyFlags |= BUILDINGFOCUS_HEALTHY;
iEconomyFlags |= BUILDINGFOCUS_SPECIALIST;
- if (!GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
- {
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ //if (!GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ //{
iEconomyFlags |= BUILDINGFOCUS_ESPIONAGE;
- }
+ //}
+ // Sanguo Mod Strategist, end

//20 means 5g or ~2 happiness...
if (AI_chooseBuilding(iEconomyFlags, 20, 20 / iMinValueDivisor))
@@ -11686,10 +11700,12 @@
if (iPass >= 4)
{
iFocusFlags |= (BUILDINGFOCUS_GOLD | BUILDINGFOCUS_RESEARCH |
BUILDINGFOCUS_MAINTENANCE);
- if (!GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
- {
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ //if (!GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ //{
iFocusFlags |= BUILDINGFOCUS_ESPIONAGE;
- }
+ //}
+ // Sanguo Mod Strategist, end
}

return AI_bestBuildingThreshold(iFocusFlags, 0, std::max(0, 20 - iPass *
5));
=======================================
--- /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvDLLWidgetData.cpp
Tue Sep 22 03:53:27 2009
+++ /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvDLLWidgetData.cpp
Tue Oct 20 02:50:19 2009
@@ -1298,7 +1298,22 @@

void CvDLLWidgetData::doChangePercent(CvWidgetDataStruct &widgetDataStruct)
{
-
CvMessageControl::getInstance().sendPercentChange(((CommerceTypes)widgetDataStruct.m_iData1),
widgetDataStruct.m_iData2);
+ // Sanguo Mod City Loyalty, start, by poyuzhe 10.19.09
+ if (widgetDataStruct.m_iData1 > -1)
+ {
+
CvMessageControl::getInstance().sendPercentChange(((CommerceTypes)widgetDataStruct.m_iData1),
widgetDataStruct.m_iData2);
+ }
+ else
+ {
+ CyArgsList argsList;
+
+ argsList.add(GAME.getActivePlayer());
+ argsList.add(widgetDataStruct.m_iData1);
+ argsList.add(widgetDataStruct.m_iData2);
+
+ gDLL->getPythonIFace()->callFunction(PYSanguoModule, "doChangePercent",
argsList.makeFunctionArgs());
+ }
+ // Sanguo Mod City Loyalty, end
}

void CvDLLWidgetData::doCityTab(CvWidgetDataStruct &widgetDataStruct)
@@ -3271,14 +3286,26 @@

void CvDLLWidgetData::parseChangePercentHelp(CvWidgetDataStruct
&widgetDataStruct, CvWStringBuffer &szBuffer)
{
+ // Sanguo Mod City Loyalty, start, by poyuzhe 10.19.09
+ CvWString szString;
+ if (widgetDataStruct.m_iData1 > -1)
+ {
+ szString = GC.getCommerceInfo((CommerceTypes)
widgetDataStruct.m_iData1).getTextKeyWide();
+ }
+ else if (widgetDataStruct.m_iData1 == -1)
+ {
+ szString = gDLL->getText("TXT_KEY_CITY_LOYALTY_RAW_COMMERCE");
+ }
+
if (widgetDataStruct.m_iData2 > 0)
{
- szBuffer.assign(gDLL->getText("TXT_KEY_MISC_INCREASE_RATE",
GC.getCommerceInfo((CommerceTypes)
widgetDataStruct.m_iData1).getTextKeyWide(), widgetDataStruct.m_iData2));
+ szBuffer.assign(gDLL->getText("TXT_KEY_MISC_INCREASE_RATE", szString,
widgetDataStruct.m_iData2));
}
else
{
- szBuffer.assign(gDLL->getText("TXT_KEY_MISC_DECREASE_RATE",
GC.getCommerceInfo((CommerceTypes)
widgetDataStruct.m_iData1).getTextKeyWide(), -(widgetDataStruct.m_iData2)));
- }
+ szBuffer.assign(gDLL->getText("TXT_KEY_MISC_DECREASE_RATE", szString,
-(widgetDataStruct.m_iData2)));
+ }
+ // Sanguo Mod City Loyalty, end
}


@@ -4802,7 +4829,10 @@
}
else
{
- CvWString szCulture = CvWString::format(L"%d.%02d",
iCultureTimes100/100, iCultureTimes100%100);
+ // Sanguo Mod City Loyalty, start, by poyuzhe 10.20.09
+ //CvWString szCulture = CvWString::format(L"%d.%02d",
iCultureTimes100/100, iCultureTimes100%100);
+ CvWString szCulture = CvWString::format(L"%d.%02d",
iCultureTimes100/100, abs(iCultureTimes100)%100);
+ // Sanguo Mod City Loyalty, end
szBuffer.assign(gDLL->getText("TXT_KEY_MISC_CULTURE_FLOAT",
szCulture.GetCString(), pHeadSelectedCity->getCultureThreshold()));
}

@@ -5582,7 +5612,16 @@
CvCity* pCity = gDLL->getInterfaceIFace()->getHeadSelectedCity();
if (NULL != pCity)
{
- GAMETEXT.setCommerceHelp(szBuffer, *pCity,
(CommerceTypes)widgetDataStruct.m_iData1);
+ // Sanguo Mod City Loyalty, start, by poyuzhe 10.20.09
+ if (widgetDataStruct.m_iData1 > -1)
+ {
+ GAMETEXT.setCommerceHelp(szBuffer, *pCity,
(CommerceTypes)widgetDataStruct.m_iData1);
+ }
+ else if (widgetDataStruct.m_iData1 == -1)
+ {
+ GAMETEXT.setYieldHelp(szBuffer , *pCity, YIELD_COMMERCE);
+ }
+ // Sanguo Mod City Loyalty, end
}
}

=======================================
--- /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvEnums.h Tue Sep 29
23:51:43 2009
+++ /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvEnums.h Tue Oct 20
02:50:19 2009
@@ -739,8 +739,8 @@
GAMEOPTION_NO_VASSAL_STATES,
GAMEOPTION_NO_GOODY_HUTS,
GAMEOPTION_NO_EVENTS,
- GAMEOPTION_NO_ESPIONAGE,
// Sanguo Mod Hero, start, added by poyuzhe 02.08.09
+ // GAMEOPTION_NO_ESPIONAGE,
GAMEOPTION_NO_HERO_DEATH_FROM_COMBAT,
GAMEOPTION_NO_HERO_DEATH_FROM_AGE,
GAMEOPTION_NO_HERO_EXECUTION,
=======================================
--- /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvGame.cpp Thu Oct
15 05:02:19 2009
+++ /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvGame.cpp Tue Oct
20 02:50:19 2009
@@ -9097,11 +9097,13 @@
int CvGame::getCultureThreshold(CultureLevelTypes eLevel) const
{
int iThreshold =
GC.getCultureLevelInfo(eLevel).getSpeedThreshold(getGameSpeedType());
- if (isOption(GAMEOPTION_NO_ESPIONAGE))
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ /*if (isOption(GAMEOPTION_NO_ESPIONAGE))
{
iThreshold *= 100 +
GC.getDefineINT("NO_ESPIONAGE_CULTURE_LEVEL_MODIFIER");
iThreshold /= 100;
- }
+ }*/
+ // Sanguo Mod Strategist, end
return iThreshold;
}

=======================================
--- /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvGame.h Thu Oct 15
05:02:19 2009
+++ /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvGame.h Tue Oct 20
02:50:19 2009
@@ -804,9 +804,4 @@

void doUpdateCacheOnTurn();
};
-
-// Sanguo Mod helper, start, by poyuzhe 10.15.09
-#define GAME GC.getGameINLINE()
-// Sanguo Mod helper, end
-
#endif
=======================================
--- /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvGameInterface.cpp
Sun Jun 28 06:56:22 2009
+++ /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvGameInterface.cpp
Tue Oct 20 02:50:19 2009
@@ -1426,10 +1426,12 @@
return true;
break;
case CONTROL_ESPIONAGE_SCREEN:
- if (!isOption(GAMEOPTION_NO_ESPIONAGE))
- {
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ //if (!isOption(GAMEOPTION_NO_ESPIONAGE))
+ //{
return true;
- }
+ //}
+ // Sanguo Mod Strategist,end
break;

case CONTROL_NEXTCITY:
=======================================
--- /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvGameTextMgr.cpp
Tue Sep 29 23:51:43 2009
+++ /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvGameTextMgr.cpp
Tue Oct 20 02:50:19 2009
@@ -12231,15 +12231,17 @@

void CvGameTextMgr::getEspionageString(CvWStringBuffer& szBuffer,
PlayerTypes ePlayer, PlayerTypes eTargetPlayer)
{
- if (!GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
- {
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ //if (!GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ //{
CvPlayer& kPlayer = GET_PLAYER(ePlayer);
TeamTypes eTeam = (TeamTypes) kPlayer.getTeam();
CvTeam& kTeam = GET_TEAM(eTeam);
CvPlayer& kTargetPlayer = GET_PLAYER(eTargetPlayer);

szBuffer.append(gDLL->getText("TXT_KEY_ESPIONAGE_AGAINST_PLAYER",
kTargetPlayer.getNameKey(),
kTeam.getEspionagePointsAgainstTeam(kTargetPlayer.getTeam()),
GET_TEAM(kTargetPlayer.getTeam()).getEspionagePointsAgainstTeam(kPlayer.getTeam())));
- }
+ //}
+ // Sanguo Mod Strategist, end
}

void CvGameTextMgr::getTradeString(CvWStringBuffer& szBuffer, const
TradeData& tradeData, PlayerTypes ePlayer1, PlayerTypes ePlayer2)
@@ -13087,8 +13089,21 @@

// Slider
int iBaseCommerceRate = city.getCommerceFromPercent(eCommerceType,
city.getYieldRate(YIELD_COMMERCE) * 100);
- CvWString szRate = CvWString::format(L"%d.%02d", iBaseCommerceRate/100,
iBaseCommerceRate%100);
- szBuffer.append(gDLL->getText("TXT_KEY_MISC_HELP_SLIDER_PERCENT_FLOAT",
owner.getCommercePercent(eCommerceType), city.getYieldRate(YIELD_COMMERCE),
szRate.GetCString(), info.getChar()));
+
+ // Sanguo Mod City Loyalty, start, by poyuzhe 10.20.09
+ //CvWString szRate = CvWString::format(L"%d.%02d", iBaseCommerceRate/100,
iBaseCommerceRate%100);
+ //szBuffer.append(gDLL->getText("TXT_KEY_MISC_HELP_SLIDER_PERCENT_FLOAT",
owner.getCommercePercent(eCommerceType), city.getYieldRate(YIELD_COMMERCE),
szRate.GetCString(), info.getChar()));
+ CvWString szRate = CvWString::format(L"%d.%02d", iBaseCommerceRate/100,
abs(iBaseCommerceRate)%100);
+ if (eCommerceType != COMMERCE_CULTURE)
+ {
+ szBuffer.append(gDLL->getText("TXT_KEY_MISC_HELP_SLIDER_PERCENT_FLOAT",
owner.getCommercePercent(eCommerceType), city.getYieldRate(YIELD_COMMERCE)
* owner.getCommerceTaxPercent() / 100, szRate.GetCString(),
info.getChar()));
+ }
+ else
+ {
+
szBuffer.append(gDLL->getText("TXT_KEY_MISC_HELP_SLIDER_PERCENT_FLOAT_CULTURE",
owner.getCommercePercent(eCommerceType), city.getYieldRate(YIELD_COMMERCE),
szRate.GetCString(), info.getChar()));
+ }
+ // Sanguo Mod City Loyalty, end
+
szBuffer.append(NEWLINE);

int iSpecialistCommerce = city.getSpecialistCommerce(eCommerceType) +
(city.getSpecialistPopulation() + city.getNumGreatPeople()) *
owner.getSpecialistExtraCommerce(eCommerceType);
@@ -13246,7 +13261,8 @@
iModYield += iProductionToCommerce;
}

- if (eCommerceType == COMMERCE_CULTURE &&
GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ /*if (eCommerceType == COMMERCE_CULTURE &&
GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
{
int iEspionageToCommerce =
city.getCommerceRateTimes100(COMMERCE_CULTURE) - iModYield;
if (0 != iEspionageToCommerce)
@@ -13264,11 +13280,15 @@
}
iModYield += iEspionageToCommerce;
}
- }
+ }*/
+ // Sanguo Mod Strategist, end

FAssertMsg(iModYield ==
city.getCommerceRateTimes100(eCommerceType), "Commerce yield does not match
actual value");

- CvWString szYield = CvWString::format(L"%d.%02d", iModYield/100,
iModYield%100);
+ // Sanguo Mod City Loyalty, start, by poyuzhe 10.20.09
+ // CvWString szYield = CvWString::format(L"%d.%02d", iModYield/100,
iModYield%100);
+ CvWString szYield = CvWString::format(L"%d.%02d", iModYield/100,
abs(iModYield)%100);
+ // Sanguo Mod City Loyalty, end

szBuffer.append(gDLL->getText("TXT_KEY_MISC_HELP_COMMERCE_FINAL_YIELD_FLOAT",
info.getTextKeyWide(), szYield.GetCString(), info.getChar()));
szBuffer.append(NEWLINE);
}
@@ -13389,6 +13409,20 @@
}

FAssertMsg((iBaseModifier * iBaseProduction) / 100 ==
city.getYieldRate(eYieldType), "Yield Modifier in setProductionHelp does
not agree with actual value");
+
+ // Sanguo Mod City Loyalty, start, by poyuzhe 10.20.09
+ if (eYieldType == YIELD_COMMERCE)
+ {
+ szBuffer.append(gDLL->getText("TXT_KEY_MISC_HELP_TAXED_COMMERCE"));
+ szBuffer.append(NEWLINE);
+
+ int iYieldRate = city.getYieldRate(eYieldType) *
owner.getCommerceTaxPercent();
+ CvWString szRate = CvWString::format(L"%d.%02d", iYieldRate/100,
iYieldRate%100);
+
+
szBuffer.append(gDLL->getText("TXT_KEY_MISC_HELP_SLIDER_PERCENT_FLOAT_COMMERCE",
owner.getCommerceTaxPercent(), city.getYieldRate(YIELD_COMMERCE),
szRate.GetCString(), info.getChar()));
+ szBuffer.append(NEWLINE);
+ }
+ // Sanguo Mod City Loyalty, end
}

void CvGameTextMgr::setConvertHelp(CvWStringBuffer& szBuffer, PlayerTypes
ePlayer, ReligionTypes eReligion)
=======================================
--- /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvGlobals.h Tue Sep
29 23:51:43 2009
+++ /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvGlobals.h Tue Oct
20 02:50:19 2009
@@ -1270,8 +1270,14 @@
#define GC CvGlobals::getInstance()
#ifndef _USRDLL
#define gDLL GC.getDLLIFaceNonInl()
+// Sanguo Mod helper, start, by poyuzhe 10.15.09
+#define GAME GC.getGame()
+// Sanguo Mod helper, end
#else
#define gDLL GC.getDLLIFace()
+// Sanguo Mod helper, start, by poyuzhe 10.15.09
+#define GAME GC.getGameINLINE()
+// Sanguo Mod helper, end
#endif

#ifndef _USRDLL
=======================================
--- /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvPlayer.cpp Thu Oct
15 05:02:19 2009
+++ /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvPlayer.cpp Tue Oct
20 02:50:19 2009
@@ -340,22 +340,6 @@
}
}
}
-
- // Sanguo Mod Official Belief, start, by poyuzhe 12.01.08
- for (iI = 0; iI < GC.getNumLeaderRelationInfos(); iI++)
- {
- if
((LeaderHeadTypes)(GC.getLeaderRelationInfo((LeaderRelationTypes)iI).getLeaderType())
== getLeaderType())
- {
- for (int iJ = 0; iJ < GC.getNumLeaderHeadInfos(); iJ++)
- {
- if
(GC.getLeaderRelationInfo((LeaderRelationTypes)iI).getLeaderAttitudeChange(iJ) !=
0)
- {
- setLeaderAttitudeChange((LeaderHeadTypes)iJ,
GC.getLeaderRelationInfo((LeaderRelationTypes)iI).getLeaderAttitudeChange(iJ));
- }
- }
- }
- }
- // Sanguo Mod Official Belief, end
}

// Sanguo Mod Hero, start, added by poyuzhe 08.27.09
@@ -856,6 +840,10 @@
m_iVotesModifier = 0;
// Sanguo Mod Emperor, end

+ // Sanguo Mod City Loyalty, start, by poyuzhe 10.19.09
+ m_iCommerceTaxPercent = 50;
+ // Sanguo Mod City Loyalty, end
+
m_eID = eID;
updateTeamType();
updateHuman();
@@ -1167,10 +1155,9 @@
m_aUnitExtraCosts.clear();
m_triggersFired.clear();

- // Sanguo Mod Official Belief, start, by poyuzhe 12.01.08
- aLeaderAttitudeChange.clear();
+ // Sanguo Mod join legion, start, by poyuzhe 12.01.08
lJoinLegionTempHeroList.clear();
- // Sanguo Mod Official Belief, end
+ // Sanguo Mod join legion, end
}

m_plotGroups.removeAll();
@@ -3391,871 +3378,6 @@
return m_pbTraits[(int)eTrait];
//Sanguo Mod Civilization Trait, end
}
-
-//Sanguo Mod Civilization Trait, start, by poyuzhe 11.20.08
-void CvPlayer::setHasTrait(TraitTypes eTrait, bool bNewValue)
-{
- FAssertMsg((eTrait >= 0), "eTrait is less than zero");
-
- int iI, iChange;
-
- if (bNewValue)
- {
- iChange = 1;
- }
- else
- {
- iChange = -1;
- }
-
- if (m_pbTraits[(int)eTrait] == bNewValue)
- {
- return;
- }
-
- m_pbTraits[(int)eTrait] = bNewValue;
-
- changeExtraHealth(GC.getTraitInfo(eTrait).getHealth() * iChange);
- changeExtraHappiness(GC.getTraitInfo(eTrait).getHappiness() * iChange);
-
- for (iI = 0; iI < GC.getNumBuildingInfos(); iI++)
- {
- changeExtraBuildingHappiness((BuildingTypes)iI,
GC.getBuildingInfo((BuildingTypes)iI).getHappinessTraits((int)eTrait) *
iChange);
- }
-
- changeUpkeepModifier(GC.getTraitInfo(eTrait).getUpkeepModifier() *
iChange);
-
changeLevelExperienceModifier(GC.getTraitInfo(eTrait).getLevelExperienceModifier()
* iChange);
-
changeGreatPeopleRateModifier(GC.getTraitInfo(eTrait).getGreatPeopleRateModifier()
* iChange);
-
changeGreatGeneralRateModifier(GC.getTraitInfo(eTrait).getGreatGeneralRateModifier()
* iChange);
-
changeDomesticGreatGeneralRateModifier(GC.getTraitInfo(eTrait).getDomesticGreatGeneralRateModifier()
* iChange);
-
-
changeMaxGlobalBuildingProductionModifier(GC.getTraitInfo(eTrait).getMaxGlobalBuildingProductionModifier()
* iChange);
-
changeMaxTeamBuildingProductionModifier(GC.getTraitInfo(eTrait).getMaxTeamBuildingProductionModifier()
* iChange);
-
changeMaxPlayerBuildingProductionModifier(GC.getTraitInfo(eTrait).getMaxPlayerBuildingProductionModifier()
* iChange);
-
- for (iI = 0; iI < NUM_YIELD_TYPES; iI++)
- {
- changeTradeYieldModifier(((YieldTypes)iI),
GC.getTraitInfo(eTrait).getTradeYieldModifier(iI) * iChange);
- }
-
- for (iI = 0; iI < NUM_COMMERCE_TYPES; iI++)
- {
- changeFreeCityCommerce(((CommerceTypes)iI),
GC.getTraitInfo(eTrait).getCommerceChange(iI) * iChange);
- changeCommerceRateModifier(((CommerceTypes)iI),
GC.getTraitInfo(eTrait).getCommerceModifier(iI) * iChange);
- }
-
- for (iI = 0; iI < GC.getNumCivicOptionInfos(); iI++)
- {
- if (GC.getCivicOptionInfo((CivicOptionTypes)
iI).getTraitNoUpkeep(int(eTrait)))
- {
- changeNoCivicUpkeepCount(((CivicOptionTypes)iI), iChange);
- }
- }
-
- // Cao Cao, TRAIT_TALENTED
- for (iI = 0; iI < GC.getNumSpecialistInfos(); iI++)
- {
- int iJ;
- for (iJ = 0; iJ < NUM_YIELD_TYPES; iJ++)
- {
- changeSpecialistExtraYield((SpecialistTypes)iI, (YieldTypes)iJ,
GC.getTraitInfo(eTrait).getSpecialistYieldChange(iI, iJ) * iChange);
- }
- for (iJ = 0; iJ < NUM_COMMERCE_TYPES; iJ++)
- {
- changeSpecialistTypeExtraCommerce((SpecialistTypes)iI,
(CommerceTypes)iJ, GC.getTraitInfo(eTrait).getSpecialistCommerceChange(iI,
iJ) * iChange);
- }
- }
-
- // Liu Bei, TRAIT_BENEVOLENT
- if (GC.getTraitInfo(eTrait).isBenevolent())
- {
- setBenevolent(bNewValue);
- }
-
- // Sun Ce, TRAIT_SEAFARING
- for (iI = 0; iI < GC.getNumTerrainInfos(); iI++)
- {
- setTerrainExperienceModifier((TerrainTypes)iI,
(GC.getTraitInfo(eTrait).getTerrainExperienceModifier(iI) * iChange));
- }
-
- for (iI = 0; iI < NUM_YIELD_TYPES; iI++)
- {
- updateExtraYieldThreshold((YieldTypes)iI);
- // Sun Ce, TRAIT_SEAFARING
- changeSeaPlotYield((YieldTypes)iI,
(GC.getTraitInfo(eTrait).getGlobalSeaPlotYieldChange(iI) * iChange));
- // Liu Zhang, TRAIT_GUERRILLA
- setPeakYieldChange((YieldTypes)iI,
(GC.getTraitInfo(eTrait).getPeakYieldChange(iI) * iChange));
- }
-
- // Yuan Shao, TRAIT_FAMOUS
- if (GC.getTraitInfo(eTrait).isFamous())
- {
- if (bNewValue == true)
- {
- GET_TEAM(getTeam()).setFamous(true);
- }
- else //only setFamous(false) when other team members are not famous
- {
- bool bTeamMemberFamous = false;
- for (iI = 0; iI < MAX_PLAYERS; iI++)
- {
- if (GET_PLAYER((PlayerTypes)iI).isAlive())
- {
- if (GET_PLAYER((PlayerTypes)iI).getTeam() == getTeam())
- {
- if (iI != getID())
- {
- for (int iJ = 0; iJ < GC.getNumTraitInfos(); iJ++)
- {
- if
(GET_PLAYER((PlayerTypes)iI).hasTrait((TraitTypes)iJ))
- {
- if (GC.getTraitInfo((TraitTypes)iJ).isFamous())
- {
- bTeamMemberFamous = true;
- break;
- }
- }
- }
- }
- }
- }
- }
-
- if (bTeamMemberFamous == false)
- {
- GET_TEAM(getTeam()).setFamous(false);
- }
- }
- }
-
- // Liu Biao, TRAIT_CULTURED gives or takes away PeaceCommerceModifier
only if the Team is at Peace with all other normal teams
- if (GET_TEAM(getTeam()).getAtWarCount(true) == 0)
- {
- int iPeaceCommerceModifier;
- for (iI = 0; iI < NUM_COMMERCE_TYPES; iI++)
- {
- iPeaceCommerceModifier =
GC.getTraitInfo(eTrait).getPeaceCommerceModifier(iI);
- if (iPeaceCommerceModifier != 0)
- {
- changeCommerceRateModifier(((CommerceTypes)iI),
iPeaceCommerceModifier * iChange);
- }
- }
- }
-
- // Lu Bu, TRAIT_TOUGH
- if (GC.getTraitInfo(eTrait).isTough())
- {
- setTough(bNewValue);
- }
-
- // Gongsun Du, TRAIT_RECLUSE, added by poyuzhe 11.28.08
- if (GC.getTraitInfo(eTrait).isRecluse())
- {
- if (bNewValue == true)
- {
- GET_TEAM(getTeam()).setRecluse(true);
- }
- else //only setRecluse(false) when other team members are not recluse
- {
- bool bTeamMemberRecluse = false;
- for (iI = 0; iI < MAX_PLAYERS; iI++)
- {
- if (GET_PLAYER((PlayerTypes)iI).isAlive())
- {
- if (GET_PLAYER((PlayerTypes)iI).getTeam() == getTeam())
- {
- if (iI != getID())
- {
- for (int iJ = 0; iJ < GC.getNumTraitInfos(); iJ++)
- {
- if
(GET_PLAYER((PlayerTypes)iI).hasTrait((TraitTypes)iJ))
- {
- if (GC.getTraitInfo((TraitTypes)iJ).isRecluse())
- {
- bTeamMemberRecluse = true;
- break;
- }
- }
- }
- }
- }
- }
- }
-
- if (bTeamMemberRecluse == false)
- {
- GET_TEAM(getTeam()).setRecluse(false);
- }
- }
- }
-
- // Zhang Lu, TRAIT_RICE_TAOIST, added by poyuzhe 11.28.08
-
changeBaseImmigrationChance((GC.getTraitInfo(eTrait).getBaseImmigrationChance())
* iChange);
-
- // Ma Teng, TRAIT_AFFINITY, added by nk, 11.28.08
- for (iI = 0; iI < GC.getNumUnitCombatInfos(); ++iI)
- {
- if (GC.getTraitInfo(eTrait).isForceDefensiveBonusUnitCombat(iI))
- {
- setForceDefensiveBonusUnitCombat((UnitCombatTypes)iI, bNewValue);
- }
- }
-
- // Meng Huo, TRAIT_NAN_MAN, added by poyuzhe 11.28.08
- for (iI = 0; iI < GC.getNumFeatureInfos(); iI++)
- {
- for (int iJ = 0; iJ < NUM_YIELD_TYPES; iJ++)
- {
- changeFeatureYieldChange((FeatureTypes)iI, (YieldTypes)iJ,
(GC.getTraitInfo(eTrait).getFeatureYieldChange(iI, iJ)) * iChange);
- }
- changeFeatureHealthChange((FeatureTypes)iI,
(GC.getTraitInfo(eTrait).getFeatureHealthChange(iI)) * iChange);
- // Shan Yue, TRAIT_SHAN_YUE, added by poyuzhe 11.29.08
- changeFeatureProductionChange((FeatureTypes)iI,
(GC.getTraitInfo(eTrait).getFeatureProductionChange(iI)) * iChange);
- changeFeatureGrowthChange((FeatureTypes)iI,
(GC.getTraitInfo(eTrait).getFeatureGrowthChange(iI)) * iChange);
- }
-
- updateMaxAnarchyTurns();
-}
-
-// Cao Cao, TRAIT_TALENTED
-void CvPlayer::changeSpecialistTypeExtraCommerce(SpecialistTypes eIndex1,
CommerceTypes eIndex2, int iChange)
-{
- if (iChange != 0)
- {
- m_ppaaiSpecialistTypeExtraCommerce[eIndex1][eIndex2] =
(m_ppaaiSpecialistTypeExtraCommerce[eIndex1][eIndex2] + iChange);
- updateCommerce();
- AI_makeAssignWorkDirty();
- }
-}
-
-int CvPlayer::getSpecialistTypeExtraCommerce(SpecialistTypes eIndex1,
CommerceTypes eIndex2) const
-{
- return m_ppaaiSpecialistTypeExtraCommerce[eIndex1][eIndex2];
-}
-
-// Liu Bei, TRAIT_BENEVOLENT
-bool CvPlayer::isBenevolent() const
-{
- return m_bBenevolent;
-}
-
-void CvPlayer::setBenevolent(bool bNewValue)
-{
- m_bBenevolent = bNewValue;
-}
-
-// Sun Ce, TRAIT_SEAFARING
-int CvPlayer::getTerrainExperienceModifier(TerrainTypes eTerrain) const
-{
- return m_paiTerrainExperienceModifier[eTerrain];
-}
-
-void CvPlayer::setTerrainExperienceModifier(TerrainTypes eTerrain, int
iModifier)
-{
- m_paiTerrainExperienceModifier[eTerrain] = iModifier;
-}
-
-// Liu Zhang, TRAIT_GUERRILLA
-int CvPlayer::getPeakYieldChange(YieldTypes eIndex) const
-{
- return m_aiPeakYieldChange[eIndex];
-}
-
-void CvPlayer::setPeakYieldChange(YieldTypes eIndex, int iNewValue)
-{
- m_aiPeakYieldChange[eIndex] = iNewValue;
-}
-
-// Lu Bu, TRAIT_TOUGH
-bool CvPlayer::isTough() const
-{
- return m_bTough;
-}
-
-void CvPlayer::setTough(bool bNewValue)
-{
- m_bTough = bNewValue;
-}
-
-// Zhang Lu, TRAIT_RICE_TAOIST, added by poyuzhe 11.28.08
-int CvPlayer::getBaseImmigrationChance() const
-{
- return m_iBaseImmigrationChance;
-}
-
-void CvPlayer::changeBaseImmigrationChance(int iChange)
-{
- m_iBaseImmigrationChance += iChange;
- FAssert(m_iBaseImmigrationChance >= 0);
-}
-
-// Ma Teng, TRAIT_AFFINITY, added by nk, 11.28.08
-bool CvPlayer::isForceDefensiveBonusUnitCombat(UnitCombatTypes
eUnitCombat) const
-{
- FAssertMsg((eUnitCombat >= 0), "eUnitCombat is less than zero");
-
- return m_pabForceDefensiveBonusUnitCombat[(int)eUnitCombat];
-}
-
-void CvPlayer::setForceDefensiveBonusUnitCombat(UnitCombatTypes
eUnitCombat, bool bNewValue)
-{
- FAssertMsg((eUnitCombat >= 0), "eUnitCombat is less than zero");
-
- m_pabForceDefensiveBonusUnitCombat[(int)eUnitCombat] = bNewValue;
-}
-
-// Meng Huo, TRAIT_NAN_MAN, added by poyuzhe 11.28.08
-int CvPlayer::getFeatureYieldChange(FeatureTypes eFeature, YieldTypes
eYield) const
-{
- return m_ppaiFeatureYieldChange[eFeature][eYield];
-}
-
-void CvPlayer::changeFeatureYieldChange(FeatureTypes eFeature, YieldTypes
eYield, int iChange)
-{
- m_ppaiFeatureYieldChange[eFeature][eYield] += iChange;
-}
-
-int CvPlayer::getFeatureHealthChange(FeatureTypes eFeature) const
-{
- return m_paiFeatureHealthChange[eFeature];
-}
-
-void CvPlayer::changeFeatureHealthChange(FeatureTypes eFeature, int
iChange)
-{
- m_paiFeatureHealthChange[eFeature] += iChange;
-}
-
-// Shan Yue, TRAIT_SHAN_YUE, added by poyuzhe 11.29.08
-int CvPlayer::getFeatureProductionChange(FeatureTypes eFeature) const
-{
- return m_paiFeatureProductionChange[eFeature];
-}
-
-void CvPlayer::changeFeatureProductionChange(FeatureTypes eFeature, int
iChange)
-{
- m_paiFeatureProductionChange[eFeature] += iChange;
-}
-
-int CvPlayer::getFeatureGrowthChange(FeatureTypes eFeature) const
-{
- return m_paiFeatureGrowthChange[eFeature];
-}
-
-void CvPlayer::changeFeatureGrowthChange(FeatureTypes eFeature, int
iChange)
-{
- m_paiFeatureGrowthChange[eFeature] += iChange;
-}
-// Sanguo Mod Civilization Trait, end
-
-// Sanguo Mod Official Belief, start, by poyuzhe 12.01.08
-int CvPlayer::getLeaderAttitudeChange(LeaderHeadTypes eLeader) const
-{
- if (aLeaderAttitudeChange.count(eLeader) == 0)
- {
- return 0;
- }
-
- return (aLeaderAttitudeChange.find(eLeader))->second;
-}
-
-void CvPlayer::setLeaderAttitudeChange(LeaderHeadTypes eLeader, int
iNewValue)
-{
- aLeaderAttitudeChange[eLeader] = iNewValue;
-}
-// Sanguo Mod Official Belief, end
-
-// Sanguo Mod Emperor, start, by poyuzhe 12.19.08
-int CvPlayer::getVotesModifier() const
-{
- return m_iVotesModifier;
-}
-
-void CvPlayer::setVotesModifier(int iNewValue)
-{
- m_iVotesModifier = iNewValue;
- if (m_iVotesModifier < -100)
- {
- m_iVotesModifier = -100;
- }
- else if (m_iVotesModifier > 100)
- {
- m_iVotesModifier = 100;
- }
-}
-
-void CvPlayer::changeVotesModifier(int iChange)
-{
- setVotesModifier((getVotesModifier() + iChange));
-}
-// Sanguo Mod Emperor, end
-
-// Sanguo Mod Hero, start, added by poyuzhe 01.04.09
-int CvPlayer::getRecruitHeroGold(HeroTypes eHero) const
-{
- int iSpeedModifier =
GC.getGameSpeedInfo(GC.getGameINLINE().getGameSpeedType()).getGrowthPercent();
- int iBaseGold = GC.getDefineINT("HERO_RECRUITMENT_BASE_GOLD");
- int iGold = (GC.getGameINLINE().getElapsedGameTurns() <=
iSpeedModifier) ? iBaseGold : (iBaseGold +
(GC.getGameINLINE().getElapsedGameTurns() - iSpeedModifier) * 2);
-
- int iLoyalty = 0;
- int iBeliefStr = 0;
-
- if (GC.getGameINLINE().getCurrentDefaultCivilization(eHero) !=
NO_CIVILIZATION)
- {
- iLoyalty =
GC.getHeroInfo(eHero).getCivilizationLoyalty(GC.getGameINLINE().getCurrentDefaultCivilization(eHero));
- }
-
- if (getCivilizationType() ==
GC.getGameINLINE().getCurrentDefaultCivilization(eHero))
- {
- iGold *= (100 - iLoyalty / 2);
- iGold /= 50;
- }
- else
- {
- iGold *= (40 + iLoyalty / 2);
- iGold /= 20;
- }
-
- if (GC.getHeroInfo(eHero).getBelief() != NO_RELIGION)
- {
- iBeliefStr = GC.getHeroInfo(eHero).getBeliefStrength();
- }
-
- if (getStateReligion() == GC.getHeroInfo(eHero).getBelief())
- {
- iGold *= (200 - iBeliefStr / 4);
- iGold /= 200;
- }
- else
- {
- iGold *= (200 + iBeliefStr / 4);
- iGold /= 200;
- }
-
- iGold *= iSpeedModifier;
- iGold /= 100;
-
- return iGold;
-}
-
-bool CvPlayer::canEverRecruitHero(HeroTypes eHero) const
-{
- if (GC.getGameINLINE().getHeroDebutStatus(eHero) == -3 ||
GC.getGameINLINE().getHeroDebutStatus(eHero) >= 0)
- {
- return false;
- }
-
- /*if (GC.getGameINLINE().getCurrentDefaultCivilization(eHero) !=
NO_CIVILIZATION)
- {
- if (GC.getGameINLINE().getCurrentDefaultCivilization(eHero) !=
getCivilizationType() &&
GC.getHeroInfo(eHero).getCivilizationLoyalty(GC.getGameINLINE().getCurrentDefaultCivilization(eHero))
== 100)
- {
- if
(GC.getGameINLINE().isCivEverActive((CivilizationTypes)GC.getGameINLINE().getCurrentDefaultCivilization(eHero)))
- {
- return false;
- }
- }
- }*/
-
- /*if (GC.getHeroInfo(eHero).getBelief() != NO_RELIGION)
- {
- if (getStateReligion() != GC.getHeroInfo(eHero).getBelief() &&
GC.getHeroInfo(eHero).getBeliefStrength() == 100)
- {
- return false;
- }
- }*/
-
- return true;
-}
-
-bool CvPlayer::canRecruitHero(HeroTypes eHero, bool bDiscount) const
-{
- if (NULL == getCapitalCity())
- {
- return false;
- }
-
- if (!canEverRecruitHero(eHero))
- {
- return false;
- }
-
- if (GC.getGameINLINE().getHeroDebutStatus(eHero) != -2)
- {
- return false;
- }
-
- if (GC.getGameINLINE().getHeroCapturePlayer(eHero) != NO_PLAYER)
- {
- return false;
- }
-
- if (getGold() < (bDiscount ? getRecruitHeroGold(eHero) / 2 :
getRecruitHeroGold(eHero)))
- {
- return false;
- }
-
- return true;
-}
-
-void CvPlayer::recruitHero(HeroTypes eHero, bool bDiscount)
-{
- int iX, iY;
- findXY(&iX, &iY);
-
- if (iX > -1 && iY > -1)
- {
- initHero(eHero, iX, iY,
GC.getGameINLINE().getHeroDebutStatus(eHero) != getID());
-
- CvWString szBuffer = gDLL->getText("TXT_KEY_HERO_RECRUITED",
GC.getHeroInfo(eHero).getDescription());
- gDLL->getInterfaceIFace()->addMessage(getID(), false,
GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_UNIT_GREATPEOPLE",
MESSAGE_TYPE_MAJOR_EVENT, GC.getHeroInfo(eHero).getButton(),
(ColorTypes)GC.getInfoTypeForString("COLOR_UNIT_TEXT"), iX, iY, true, true);
- changeGold(-(bDiscount ? getRecruitHeroGold(eHero) / 2 :
getRecruitHeroGold(eHero)));
- // Temporary: give a crappy loyalty if XML default is zero
- if (GC.getHeroInfo(eHero).getCivilizationLoyalty(getCivilizationType())
== 0)
- {
- GC.getHeroInfo(eHero).setCivilizationLoyalty(getCivilizationType(), 30);
- }
- }
-}
-
-void CvPlayer::changeHeroMaintenance(HeroTypes eHero, bool bRecruit, bool
bLost, int iLevelChange)
-{
- FAssert (!(bRecruit && bLost));
- FAssert (eHero >= 0 && eHero < GC.getNumHeroInfos());
-
- int iCurrentLevel = GC.getGameINLINE().getHeroLevel(eHero);
- if (bRecruit)
- {
- changeExtraUnitCost(iCurrentLevel * iCurrentLevel / 8);
- }
- else if (bLost)
- {
- changeExtraUnitCost(-iCurrentLevel * iCurrentLevel / 8);
- }
- else
- {
- changeExtraUnitCost(iCurrentLevel * iCurrentLevel / 8 - (iCurrentLevel -
iLevelChange) * (iCurrentLevel - iLevelChange) / 8);
- }
-}
-
-void CvPlayer::recalculateGreatGeneralThreshold()
-{
- int iNumHeroes = 0;
- for (int iI = 0; iI < GC.getNumHeroInfos(); iI++)
- {
- if (GC.getGameINLINE().getHeroDebutStatus((HeroTypes)iI) ==
getID())
- {
- iNumHeroes++;
- }
- }
- m_iGreatGeneralsThresholdModifier =
((GC.getDefineINT("GREAT_GENERALS_THRESHOLD") * std::max(0, (4 *
GC.getDefineINT("GREAT_GENERALS_THRESHOLD_INCREASE") * ((iNumHeroes * (1 +
iNumHeroes) / 20) + iNumHeroes) + 100))) / 300);
-}
-
-void CvPlayer::persuadeHero(HeroTypes eHero)
-{
- FAssert (GC.getGameINLINE().willHeroJoinFaction(eHero, getID()));
-
- PlayerTypes ePlayer =
(PlayerTypes)GC.getGameINLINE().getHeroDebutStatus(eHero);
-
- CyArgsList argsList;
-
- argsList.add(eHero);
- argsList.add(getID());
- argsList.add(ePlayer);
-
-
gDLL->getPythonIFace()->callFunction(PYSanguoModule, "doHeroSurrender",
argsList.makeFunctionArgs());
-
- if
(GC.getSurrenderInfo((SurrenderTypes)GC.getHeroInfo(eHero).getSurrenderType()).getPythonCallback() !=
NULL)
- {
- gDLL->getPythonIFace()->callFunction(PYSanguoModule,
GC.getSurrenderInfo((SurrenderTypes)GC.getHeroInfo(eHero).getSurrenderType()).getPythonCallback(),
argsList.makeFunctionArgs());
- }
-
- if ((int)ePlayer >= 0 && GET_PLAYER(ePlayer).isAlive())
- {
- GET_PLAYER(ePlayer).AI_changeMemoryCount(getID(), MEMORY_CONVERTED_HERO,
1);
- GET_PLAYER(ePlayer).AI_invalidateAttitudeCache(getID());
- }
-
- int iX, iY;
- findXY(&iX, &iY);
-
- initHero(eHero, iX, iY, ePlayer != getID());
-
- if (ePlayer != getID())
- {
- CvWString szBuffer = gDLL->getText("TXT_KEY_HERO_PERSUADED",
GC.getHeroInfo(eHero).getDescription());
- gDLL->getInterfaceIFace()->addMessage(getID(), false,
GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_UNIT_GREATPEOPLE",
MESSAGE_TYPE_MAJOR_EVENT, GC.getHeroInfo(eHero).getButton(),
(ColorTypes)GC.getInfoTypeForString("COLOR_UNIT_TEXT"), iX, iY, true, true);
- if (ePlayer >= 0 && GET_PLAYER(ePlayer).isAlive())
- {
- szBuffer = gDLL->getText("TXT_KEY_HERO_BETRAYED",
GC.getHeroInfo(eHero).getDescription(), getCivilizationDescription());
- gDLL->getInterfaceIFace()->addMessage(ePlayer, false,
GC.getEVENT_MESSAGE_TIME(), szBuffer,
GC.getEraInfo(GC.getGameINLINE().getCurrentEra()).getAudioUnitDefeatScript(),
MESSAGE_TYPE_INFO, GC.getHeroInfo(eHero).getButton(),
(ColorTypes)GC.getInfoTypeForString("COLOR_WARNING_TEXT"));
- }
- }
- GC.getGameINLINE().setHeroCapturePlayer(eHero, NO_PLAYER);
-
- // Temporary: give a crappy loyalty if XML default is zero
- if (GC.getHeroInfo(eHero).getCivilizationLoyalty(getCivilizationType())
== 0)
- {
- GC.getHeroInfo(eHero).setCivilizationLoyalty(getCivilizationType(), 30);
- }
-
- GC.getGameINLINE().setHeroSurrenderRand(eHero, -1);
-
- return;
-}
-
-void CvPlayer::executeHero(HeroTypes eHero)
-{
- PlayerTypes ePlayer = NO_PLAYER;
- if (GC.getGameINLINE().getHeroDebutStatus(eHero) >= 0)
- {
- ePlayer = (PlayerTypes)GC.getGameINLINE().getHeroDebutStatus(eHero);
- if (GET_PLAYER(ePlayer).isAlive())
- {
- GET_PLAYER(ePlayer).AI_changeMemoryCount(getID(), MEMORY_EXECUTED_HERO,
1);
- GET_PLAYER(ePlayer).AI_invalidateAttitudeCache(getID());
- }
- }
-
- CvWString szBuffer = gDLL->getText("TXT_KEY_HERO_EXECUTED",
GC.getHeroInfo(eHero).getDescription(), getCivilizationDescription());
- for (int iI = 0; iI < MAX_CIV_PLAYERS; iI++)
- {
- if (GET_PLAYER((PlayerTypes)iI).isHuman() &&
GET_PLAYER((PlayerTypes)iI).isAlive())
- {
- gDLL->getInterfaceIFace()->addMessage((PlayerTypes)iI, false,
GC.getEVENT_MESSAGE_TIME(), szBuffer,
GC.getEraInfo(GC.getGameINLINE().getCurrentEra()).getAudioUnitDefeatScript(),
MESSAGE_TYPE_MAJOR_EVENT);
- }
- }
-
- GC.getGameINLINE().doHeroDeath(eHero, false);
-
- GC.getGameINLINE().setHeroCapturePlayer(eHero, NO_PLAYER);
-
- int iLoop;
- for (CvUnit* pLoopUnit = firstUnit(&iLoop); NULL != pLoopUnit; pLoopUnit
= nextUnit(&iLoop))
- {
- if (pLoopUnit->canFight())
- {
-
pLoopUnit->changeTempStrengthModifier(GC.getDefineINT("HERO_EXECUTION_TEMP_STRENGTH_BOOST"));
- }
- }
-
- GC.getGameINLINE().setHeroSurrenderRand(eHero, -1);
-
- return;
-}
-
-void CvPlayer::releaseHero(HeroTypes eHero)
-{
- PlayerTypes ePlayer =
(PlayerTypes)GC.getGameINLINE().getHeroDebutStatus(eHero);
- FAssert (ePlayer != getID() && ePlayer != NO_PLAYER);
- FAssert (GET_PLAYER(ePlayer).isAlive());
-
- if (GET_PLAYER(ePlayer).isAlive())
- {
- GET_PLAYER(ePlayer).AI_changeMemoryCount(getID(), MEMORY_RELEASED_HERO,
1);
-
- int iX, iY;
- GET_PLAYER(ePlayer).findXY(&iX, &iY);
-
- GET_PLAYER(ePlayer).initHero(eHero, iX, iY, true);
-
- CvWString szBuffer = gDLL->getText("TXT_KEY_YOU_RELEASE_HERO",
GC.getHeroInfo(eHero).getDescription());
- gDLL->getInterfaceIFace()->addMessage(getID(), false,
GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_POSITIVE_DINK",
MESSAGE_TYPE_INFO);
- szBuffer = gDLL->getText("TXT_KEY_HERO_RELEASED",
GC.getHeroInfo(eHero).getDescription(), getCivilizationDescription());
- gDLL->getInterfaceIFace()->addMessage(ePlayer, false,
GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_POSITIVE_DINK",
MESSAGE_TYPE_INFO, GC.getHeroInfo(eHero).getButton(),
(ColorTypes)GC.getInfoTypeForString("COLOR_YELLOW"), iX, iY, true, true);
-
- GC.getGameINLINE().setHeroCapturePlayer(eHero, NO_PLAYER);
-
- GET_PLAYER(ePlayer).AI_invalidateAttitudeCache(getID());
- }
- else
- {
- GC.getGameINLINE().setHeroDebutStatus(eHero, -2);
- GC.getGameINLINE().setHeroUnitID(eHero, -1);
- GC.getGameINLINE().setHeroCapturePlayer(eHero, NO_PLAYER);
- }
-
- GC.getGameINLINE().setHeroSurrenderRand(eHero, -1);
-
- return;
-}
-
-void CvPlayer::freePlayerHeroes(PlayerTypes ePlayer, HeroTypes eHero)
-{
- FAssert (GC.getGameINLINE().getHeroCapturePlayer(eHero) == getID())
- FAssert (GC.getGameINLINE().getHeroDebutStatus(eHero) == ePlayer)
-
- if (GET_PLAYER(ePlayer).isAlive())
- {
- int iX, iY;
- GET_PLAYER(ePlayer).findXY(&iX, &iY);
- GET_PLAYER(ePlayer).initHero(eHero, iX, iY, true);
- GC.getGameINLINE().setHeroCapturePlayer(eHero, NO_PLAYER);
- CvWString szBuffer = gDLL->getText("TXT_KEY_HERO_FREED",
GC.getHeroInfo(eHero).getDescription());
- gDLL->getInterfaceIFace()->addMessage(ePlayer, false,
GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_POSITIVE_DINK",
MESSAGE_TYPE_INFO, GC.getHeroInfo(eHero).getButton(),
(ColorTypes)GC.getInfoTypeForString("COLOR_GREEN"), iX, iY, true, true);
- if (isAlive())
- {
- szBuffer = gDLL->getText("TXT_KEY_HERO_BEEN_FREED",
GET_PLAYER(ePlayer).getCivilizationDescription(),
GC.getHeroInfo(eHero).getDescription());
- gDLL->getInterfaceIFace()->addMessage(getID(), false,
GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_NEGATIVE_DINK",
MESSAGE_TYPE_INFO, GC.getHeroInfo(eHero).getButton(),
(ColorTypes)GC.getInfoTypeForString("COLOR_RED"), iX, iY, true, true);
- }
- }
- else
- {
- GC.getGameINLINE().setHeroDebutStatus(eHero, -2);
- GC.getGameINLINE().setHeroCapturePlayer(eHero, NO_PLAYER);
- }
-}
-
-CvUnit* CvPlayer::initHero(HeroTypes eHero, int iX, int iY, bool
bUpdateMaintenance)
-{
- CvUnit *pHero = initUnit((UnitTypes)GC.getHeroInfo(eHero).getUnitType(),
iX, iY);
- if (pHero == NULL)
- {
- return NULL;
- }
-
- pHero->setHeroType(eHero);
- GC.getGameINLINE().setHeroDebutStatus(eHero, getID());
- GC.getGameINLINE().setHeroUnitID(eHero, pHero->getID());
- if (bUpdateMaintenance)
- {
- changeHeroMaintenance(eHero, true, false, 0);
- }
-
- return pHero;
-}
-
-void CvPlayer::findXY(int* iX, int* iY, bool bUnitOnly)
-{
- if (!isAlive())
- {
- *iX = -1;
- *iY = -1;
- }
- else
- {
- CvCity* pCity = getCapitalCity();
- if (NULL != pCity && !bUnitOnly)
- {
- *iX = pCity->getX_INLINE();
- *iY = pCity->getY_INLINE();
- }
- else
- {
- int iLoop;
- CvUnit* pLoopUnit = firstUnit(&iLoop);
- *iX = pLoopUnit->getX_INLINE();
- *iY = pLoopUnit->getY_INLINE();
- }
- }
-}
-// Sanguo Mod Hero, end
-
-// Sanguo Mod Hero, join legion, start, by poyuzhe 09.14.08
-void CvPlayer::clearJoinLegionTempHeroList()
-{
- lJoinLegionTempHeroList.clear();
-}
-
-void CvPlayer::pushToJoinLegionTempHeroList(int iUnitID)
-{
- lJoinLegionTempHeroList.push_back(iUnitID);
-}
-
-int CvPlayer::getJoinLegionTempHeroListSize() const
-{
- return (int)lJoinLegionTempHeroList.size();
-}
-
-int CvPlayer::getJoinLegionTempHeroIDAt(int iIndex) const
-{
- FAssert (iIndex >= 0 && iIndex < (int)lJoinLegionTempHeroList.size());
- int iCount = 0;
- for (std::list<int>::const_iterator iter =
lJoinLegionTempHeroList.begin(); iter != lJoinLegionTempHeroList.end();
++iter)
- {
- if (iCount == iIndex)
- {
- return (*iter);
- }
- iCount++;
- }
- return -1;
-}
-// Sanguo Mod Hero, end
-
-// Sanguo Mod Tutorial, start, by poyuzhe 09.27.09
-bool CvPlayer::isFeatPopup() const
-{
- if (!isOption(PLAYEROPTION_ADVISOR_POPUPS))
- {
- return false;
- }
-
- if (!isHuman())
- {
- return false;
- }
-
- if (GC.getGameINLINE().isNetworkMultiPlayer())
- {
- return false;
- }
-
- /*if (GC.getGameINLINE().getElapsedGameTurns() == 0)
- {
- return false;
- }*/
-
- return true;
-}
-// Sanguo Mod Tutorial, end
-
-// Sanguo Mod Performance, start, by poyuzhe 09.28.09
-int CvPlayer::getScoreComponent(int iRawScore, int iInitial, int iMax, int
iFactor, bool bExponential, bool bFinal, bool bVictory) const
-{
- if (GC.getGameINLINE().getEstimateEndTurn() == 0)
- {
- return 0;
- }
- float fTurnRatio;
- float fMax;
-
- if (bFinal && bVictory)
- {
- fTurnRatio = (float)(GC.getGameINLINE().getGameTurn()) /
(float)(GC.getGameINLINE().getEstimateEndTurn());
- }
- if (bExponential && (iInitial != 0))
- {
- float fRatio = (float)iMax / (float)iInitial;
- fMax = iInitial * pow(fRatio, fTurnRatio);
- }
- else
- {
- fMax = iInitial + fTurnRatio * (iMax - iInitial);
- }
-
- float iFree = (GC.getDefineINT("SCORE_FREE_PERCENT") * fMax) / 100;
- float iScore;
- if ((iFree + fMax) != 0)
- {
- iScore = (iFactor * (iRawScore + iFree)) / (iFree + fMax);
- }
- else
- {
- iScore = (float)iFactor;
- }
-
- if (bVictory)
- {
- iScore = ((100 + GC.getDefineINT("SCORE_VICTORY_PERCENT")) * iScore) /
100;
- }
-
- if (bFinal)
- {
- iScore = ((100 + GC.getDefineINT("SCORE_HANDICAP_PERCENT_OFFSET") +
(GC.getGameINLINE().getHandicapType() *
GC.getDefineINT("SCORE_HANDICAP_PERCENT_PER"))) * iScore) / 100;
- }
-
- return (int)iScore;
-}
-// Sanguo Mod Performance, end


/*************************************************************************************************/
/** AI_AUTO_PLAY_MOD
07/09/08 jdog5000 */
@@ -4568,7 +3690,10 @@

AI_assignWorkingPlots();

- if (0 == GET_TEAM(getTeam()).getHasMetCivCount(true) ||
GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ //if (0 == GET_TEAM(getTeam()).getHasMetCivCount(true) ||
GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ if (0 == GET_TEAM(getTeam()).getHasMetCivCount(true))
+ // Sanguo Mod Strategist, end
{
setCommercePercent(COMMERCE_ESPIONAGE, 0);
}
@@ -7351,13 +6476,15 @@
}
}

- if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ /*if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
{
if (GC.getUnitInfo(eUnit).isSpy() ||
GC.getUnitInfo(eUnit).getEspionagePoints() > 0)
{
return false;
}
- }
+ }*/
+ // Sanguo Mod Strategist, end

if
(!(GET_TEAM(getTeam()).isHasTech((TechTypes)(GC.getUnitInfo(eUnit).getPrereqAndTech()))))
{
@@ -13059,7 +12186,8 @@
FAssertMsg(eIndex < NUM_COMMERCE_TYPES, "eIndex is expected to be within
maximum bounds (invalid Index)");

int iRate = m_aiCommerceRate[eIndex];
- if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ /*if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
{
if (eIndex == COMMERCE_CULTURE)
{
@@ -13069,7 +12197,8 @@
{
iRate = 0;
}
- }
+ }*/
+ // Sanguo Mod Strategist, end

return iRate / 100;
}
@@ -13083,7 +12212,12 @@
if (iChange != 0)
{
m_aiCommerceRate[eIndex] += iChange;
- FAssert(getCommerceRate(eIndex) >= 0);
+#ifdef _DEBUG
+ if (eIndex != COMMERCE_CULTURE)
+ {
+ FAssert(getCommerceRate(eIndex) >= 0);
+ }
+#endif

if (getID() == GC.getGameINLINE().getActivePlayer())
{
@@ -13215,7 +12349,10 @@

if (eIndex == COMMERCE_ESPIONAGE)
{
- if (0 == GET_TEAM(getTeam()).getHasMetCivCount(true) ||
GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ //if (0 == GET_TEAM(getTeam()).getHasMetCivCount(true) ||
GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ if (0 == GET_TEAM(getTeam()).getHasMetCivCount(true))
+ // Sanguo Mod Strategist, end
{
return false;
}
@@ -18295,23 +17432,14 @@
pStream->Read(GC.getNumFeatureInfos(), m_paiFeatureGrowthChange);
// Sanguo Mod Civilization Trait, end

***The diff for this file has been truncated for email.***
=======================================
--- /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvPlayer.h Tue Sep
29 23:51:43 2009
+++ /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvPlayer.h Tue Oct
20 02:50:19 2009
@@ -1054,11 +1054,6 @@
void changeFeatureGrowthChange(FeatureTypes eFeature, int iChange);
// Sanguo Mod Civilization Trait, end

- // Sanguo Mod Official Belief, start, by poyuzhe 12.01.08
- int getLeaderAttitudeChange(LeaderHeadTypes eLeader) const;
- void setLeaderAttitudeChange(LeaderHeadTypes eLeader, int iNewValue);
- // Sanguo Mod Official Belief, end
-
// Sanguo Mod Emperor, start, by poyuzhe 12.19.08
int getVotesModifier() const;
void setVotesModifier(int iNewValue);
@@ -1072,11 +1067,13 @@
void recruitHero(HeroTypes eHero, bool bDiscount = false); //
Exposed to Python
void changeHeroMaintenance(HeroTypes eHero, bool bRecruit, bool bLost,
int iLevelChange);
void recalculateGreatGeneralThreshold();
+
void persuadeHero(HeroTypes eHero); // Exposed to Python
void executeHero(HeroTypes eHero); // Exposed to Python
void releaseHero(HeroTypes eHero); // Exposed to Python
void freePlayerHeroes(PlayerTypes ePlayer, HeroTypes eHero);
- CvUnit* initHero(HeroTypes eHero, int iX, int iY, bool
bUpdateMaintenance = true); // Exposed to Python
+
+ CvUnit* initHero(HeroTypes eHero, int iX, int iY, bool bUpdateMaintenance
= true); // Exposed to Python
void findXY(int* iX, int* iY, bool bUnitOnly = false);
// Sanguo Mod Hero, end

@@ -1095,6 +1092,12 @@
int getScoreComponent(int iRawScore, int iInitial, int iMax, int iFactor,
bool bExponential, bool bFinal, bool bVictory) const;
// Sanguo Mod Performance, end

+ // Sanguo Mod City Loyalty, start, by poyuzhe 10.19.09
+ int getCommerceTaxPercent() const; // Exposed to Python
+ void setCommerceTaxPercent(int iNewValue); // Exposed to Python
+ void changeCommerceTaxPercent(int iChange); // Exposed to Python
+ // Sanguo Mod City Loyalty, end
+
virtual void AI_init() = 0;
virtual void AI_reset(bool bConstructor) = 0;
virtual void AI_doTurnPre() = 0;
@@ -1312,14 +1315,14 @@
int* m_paiFeatureGrowthChange;
// Sanguo Mod Civilization Trait, end

- // Sanguo Mod Official Belief, start, by poyuzhe 12.01.08
- std::map<LeaderHeadTypes, int> aLeaderAttitudeChange;
- // Sanguo Mod Official Belief, end
-
// Sanguo Mod Emperor, start, by poyuzhe 12.19.08
int m_iVotesModifier;
// Sanguo Mod Emperor, end

+ // Sanguo Mod City Loyalty, start, by poyuzhe 10.19.09
+ int m_iCommerceTaxPercent;
+ // Sanguo Mod City Loyalty, end
+
// Sanguo Mod Hero, join legion, start, by poyuzhe 09.14.08
std::list<int> lJoinLegionTempHeroList;
// Sanguo Mod Hero, end
=======================================
--- /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvPlayerAI.cpp Tue
Sep 29 23:51:43 2009
+++ /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvPlayerAI.cpp Tue
Oct 20 02:50:19 2009
@@ -11892,10 +11892,12 @@

int CvPlayerAI::AI_getEspionageWeight() const
{
- if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ /*if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
{
return 0;
- }
+ }*/
+ // Sanguo Mod Strategist, end
return m_iEspionageWeight;
}

@@ -17293,8 +17295,9 @@
}

// Espionage
- if (!GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
- {
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ //if (!GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ //{
int iTempValue = 0;
if (getCommercePercent(COMMERCE_ESPIONAGE) == 0)
{
@@ -17314,7 +17317,9 @@
{
m_iStrategyHash |= AI_STRATEGY_BIG_ESPIONAGE;
}
- }
+ //}
+ // Sanguo Mod Strategist, end
+
//Turn off inappropriate strategies.
if (GC.getGameINLINE().isOption(GAMEOPTION_ALWAYS_PEACE))
{
=======================================
--- /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvPlot.cpp Thu Oct
15 05:02:19 2009
+++ /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvPlot.cpp Tue Oct
20 02:50:19 2009
@@ -6502,11 +6502,11 @@
}

// Sanguo Mod City Loyalty, start, by poyuzhe 10.15.09
- /*if (ePlayer != NO_PLAYER)
+ if (ePlayer != NO_PLAYER)
{
iYield *= calculateCulturePercent(ePlayer);
iYield /= 100;
- }*/
+ }
// Sanguo Mod City Loyalty, end

return std::max(0, iYield);
@@ -6722,7 +6722,7 @@
}

// Sanguo Mod City Loyalty, start, by poyuzhe 10.15.09
- //updateYield();
+ updateYield();
// Sanguo Mod City Loyalty, end
}
}
=======================================
--- /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvUnit.cpp Fri Oct
16 02:04:56 2009
+++ /trunk/The History of Three Kingdoms/CvGameCoreDLL/CvUnit.cpp Tue Oct
20 02:50:19 2009
@@ -6995,7 +6995,7 @@
if (pCity->getOwnerINLINE() != getOwnerINLINE())
{
pCity->changeCulture(getOwnerINLINE(),
(GC.getDefineINT("MISSIONARY_CULTURE_SPREAD_AMOUNT")) *
(GC.getGameSpeedInfo(GC.getGameINLINE().getGameSpeedType()).getUnitGreatWorkPercent())
/ 100, true, true);
- if ((!GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE)) &&
(GET_PLAYER(getOwnerINLINE()).getTeam() !=
GET_PLAYER(pCity->getOwnerINLINE()).getTeam()))
+ if (GET_PLAYER(getOwnerINLINE()).getTeam() !=
GET_PLAYER(pCity->getOwnerINLINE()).getTeam())
{

GET_TEAM(GET_PLAYER(getOwnerINLINE()).getTeam()).changeEspionagePointsAgainstTeam(GET_PLAYER(pCity->getOwnerINLINE()).getTeam(),
(GC.getDefineINT("MISSIONARY_ESPIONAGE_POINT_AMOUNT")) *
(GC.getGameSpeedInfo(GC.getGameINLINE().getGameSpeedType()).getUnitGreatWorkPercent())
/ 100);
}
@@ -7677,10 +7677,12 @@
return false;
}

- if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ /*if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
{
return false;
- }
+ }*/
+ // Sanguo Mod Strategist, end

if (getEspionagePoints(NULL) == 0)
{
@@ -7739,10 +7741,12 @@
return false;
}

- if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
+ /*if (GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
{
return false;
- }
+ }*/
+ // Sanguo Mod Strategist, end

PlayerTypes ePlotOwner = pPlot->getOwnerINLINE();
if (NO_PLAYER == ePlotOwner)
=======================================
--- /trunk/The History of Three Kingdoms/CvGameCoreDLL/CyEnumsInterface.cpp
Tue Sep 29 23:51:43 2009
+++ /trunk/The History of Three Kingdoms/CvGameCoreDLL/CyEnumsInterface.cpp
Tue Oct 20 02:50:19 2009
@@ -534,8 +534,8 @@
.value("GAMEOPTION_NO_VASSAL_STATES", GAMEOPTION_NO_VASSAL_STATES)
.value("GAMEOPTION_NO_GOODY_HUTS", GAMEOPTION_NO_GOODY_HUTS)
.value("GAMEOPTION_NO_EVENTS", GAMEOPTION_NO_EVENTS)
- .value("GAMEOPTION_NO_ESPIONAGE", GAMEOPTION_NO_ESPIONAGE)
// Sanguo Mod Hero, start, added by poyuzhe 02.08.09
+ // .value("GAMEOPTION_NO_ESPIONAGE", GAMEOPTION_NO_ESPIONAGE)
.value("GAMEOPTION_NO_HERO_DEATH_FROM_COMBAT",
GAMEOPTION_NO_HERO_DEATH_FROM_COMBAT)
.value("GAMEOPTION_NO_HERO_DEATH_FROM_AGE",
GAMEOPTION_NO_HERO_DEATH_FROM_AGE)
.value("GAMEOPTION_NO_HERO_EXECUTION", GAMEOPTION_NO_HERO_EXECUTION)
=======================================
--- /trunk/The History of Three Kingdoms/CvGameCoreDLL/CyPlayer.cpp Thu Oct
15 05:02:19 2009
+++ /trunk/The History of Three Kingdoms/CvGameCoreDLL/CyPlayer.cpp Tue Oct
20 02:50:19 2009
@@ -2415,3 +2415,22 @@
return m_pPlayer ? m_pPlayer->getJoinLegionTempHeroIDAt(iIndex) : -1;
}
// Sanguo Mod Hero, end
+
+// Sanguo Mod City Loyalty, start, by poyuzhe 10.19.09
+int CyPlayer::getCommerceTaxPercent() const
+{
+ return m_pPlayer ? m_pPlayer->getCommerceTaxPercent() : -1;
+}
+
+void CyPlayer::setCommerceTaxPercent(int iNewValue)
+{
+ if (m_pPlayer)
+ m_pPlayer->setCommerceTaxPercent(iNewValue);
+}
+
+void CyPlayer::changeCommerceTaxPercent(int iChange)
+{
+ if (m_pPlayer)
+ m_pPlayer->changeCommerceTaxPercent(iChange);
+}
+// Sanguo Mod City Loyalty, end
=======================================
--- /trunk/The History of Three Kingdoms/CvGameCoreDLL/CyPlayer.h Thu Oct
15 05:02:19 2009
+++ /trunk/The History of Three Kingdoms/CvGameCoreDLL/CyPlayer.h Tue Oct
20 02:50:19 2009
@@ -544,9 +544,11 @@
void recruitHero(int /*HeroTypes*/ eHero, bool bDiscount);
void changeHeroMaintenance(int /*HeroTypes*/ eHero, bool bRecruit,
bool bLost, int iLevelChange);
void recalculateGreatGeneralThreshold();
+
void persuadeHero(int /*HeroTypes*/ eHero);
void executeHero(int /*HeroTypes*/ eHero);
void releaseHero(int /*HeroTypes*/ eHero);
+
CyUnit* initHero(int /*HeroTypes*/ eHero, int iX, int iY, bool
bUpdateMaintenance);
python::tuple findXY(bool bUnitOnly);
// Sanguo Mod Hero, end
@@ -556,6 +558,12 @@
int getJoinLegionTempHeroIDAt(int iIndex) const;
// Sanguo Mod Hero, end

+ // Sanguo Mod City Loyalty, start, by poyuzhe 10.19.09
+ int getCommerceTaxPercent() const;
+ void setCommerceTaxPercent(int iNewValue);
+ void changeCommerceTaxPercent(int iChange);
+ // Sanguo Mod City Loyalty, end
+
private:
CvPlayer* m_pPlayer;
};
=======================================
--- /trunk/The History of Three
Kingdoms/CvGameCoreDLL/CyPlayerInterface2.cpp Thu Oct 15 05:02:19 2009
+++ /trunk/The History of Three
Kingdoms/CvGameCoreDLL/CyPlayerInterface2.cpp Tue Oct 20 02:50:19 2009
@@ -102,5 +102,11 @@
.def("clearJoinLegionTempHeroList",
&CyPlayer::clearJoinLegionTempHeroList, "void ()")
.def("getJoinLegionTempHeroIDAt",
&CyPlayer::getJoinLegionTempHeroIDAt, "int (int iIndex)")
// Sanguo Mod Hero, end
+
+ // Sanguo Mod City Loyalty, start, by poyuzhe 10.19.09
+ .def("getCommerceTaxPercent", &CyPlayer::getCommerceTaxPercent, "int ()")
+ .def("setCommerceTaxPercent", &CyPlayer::setCommerceTaxPercent, "void
(int iNewValue)")
+ .def("changeCommerceTaxPercent",
&CyPlayer::changeCommerceTaxPercent, "void (int iChange)")
+ // Sanguo Mod City Loyalty, end
;
}
=======================================
--- /trunk/The History of Three Kingdoms/Documents/changelog.txt Fri Oct 16
02:04:56 2009
+++ /trunk/The History of Three Kingdoms/Documents/changelog.txt Tue Oct 20
02:50:19 2009
@@ -1103,3 +1103,7 @@
ÔÚÎÞ³ÇÊÐÕæÊµµØÍ¼¾çÇé³õʼÁìÐäÓ¢ÐÛ×Ô¶¯¼ÓÈëÊÆÁ¦

0.308: ÐÞÕý»÷°ÜÒþ²Ø¹ú¼®´¬Ö»µ¼ÖÂÓÀ¾Ã·âËøµÄBug
+
+0.309: ½«ÎÄ»¯¸ÄΪÃñÖÒ
+ ½«ÉÌÒµÊÕÈë¿Î˰£¬Ë°¶îÓ°Ïì³ÇÊÐÃñÖÒ
+ µØ¿é²ú³öÊÜÃñÖÒ¶ÈÓ°Ïì
=======================================
--- /trunk/The History of Three Kingdoms/Documents/changelog_en.txt Fri Oct
16 02:04:56 2009
+++ /trunk/The History of Three Kingdoms/Documents/changelog_en.txt Tue Oct
20 02:50:19 2009
@@ -1,3 +1,7 @@
+0.309: change culture into city loyalty
+ a new slider: commerce slider
+ plot yield change according to plot loyalty
+
0.308: fix: fix phantom blockading caused by defeating a hidden
nationality unit

0.307: fix: fix the capture last city CTD bug once and for all
Reply all
Reply to author
Forward
0 new messages