##Basic War Prizes 1.1 by modifiedA4
##Basic War Prizes 1.11 by KiwiTT for Final Frontier Plus 1.8
from CvPythonExtensions import *
import CvUtil
import PyHelpers
import CvAdvisorUtils
import CvTechChooser
import BugCore
import BugUtil
import CvEventInterface
gc = CyGlobalContext()
localText = CyTranslator()
PyPlayer = PyHelpers.PyPlayer
PyInfo = PyHelpers.PyInfo
PyCity = PyHelpers.PyCity
PyGame = PyHelpers.PyGame
class BasicWarPrizesEvent:
def __init__(self, eventMgr):
self.eventMgr = eventMgr
eventMgr.addEventHandler("combatResult", self.onCombatResult)
def onCombatResult(self, argsList):
'Combat Result'
pWinner,pLoser = argsList
playerX = PyPlayer(pWinner.getOwner())
unitX = PyInfo.UnitInfo(pWinner.getUnitType())
playerY = PyPlayer(pLoser.getOwner())
unitY = PyInfo.UnitInfo(pLoser.getUnitType())
iBBonus=25 # 25% chance of capture
## mechaerik/modifieda4/KiwiTT War Prize ModComp START##
pPlayer = gc.getPlayer(pWinner.getOwner())
pPlayerLoser = gc.getPlayer(pLoser.getOwner())
if (unitX.getUnitCombatType() == gc.getInfoTypeForString("UNITCOMBAT_CAPITAL_SHIP")) or (unitX.getUnitCombatType() == gc.getInfoTypeForString("UNITCOMBAT_STARBASE")):
if (unitY.getUnitCombatType() == gc.getInfoTypeForString("UNITCOMBAT_LIGHT_SHIP")):
if not (unitX.getUnitClassType() == gc.getInfoTypeForString("UNITCLASS_SCOUT_I") or unitX.getUnitClassType() == gc.getInfoTypeForString("UNITCLASS_SCOUT_II") or unitX.getUnitClassType() == gc.getInfoTypeForString("UNITCLASS_SCOUT_III")):
if not (unitY.getUnitClassType() == gc.getInfoTypeForString("UNITCLASS_SCOUT_I") or unitY.getUnitClassType() == gc.getInfoTypeForString("UNITCLASS_SCOUT_II") or unitY.getUnitClassType() == gc.getInfoTypeForString("UNITCLASS_SCOUT_III")):
if playerX.isBarbarian():
iBBonus=10 # barbarian bonus 10%
if CyGame().getSorenRandNum(100, "modifieda4") <= iBBonus:
iUnit = pLoser.getUnitType()
newUnit = pPlayer.initUnit(pLoser.getUnitType(), pWinner.getX(), pWinner.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.NO_DIRECTION)
newUnit.finishMoves()
newUnit.setDamage(90, pWinner.getOwner())
if (pPlayer.isHuman()):
CyInterface().addMessage(pWinner.getOwner(),false,20,CyTranslator().getText("TXT_KEY_MISC_WARPRIZES_SUCCESS",(pLoser.getName(),)),'',0,'Art/Interface/Buttons/General/warning_popup.dds',ColorTypes(gc.getInfoTypeForString("COLOR_BLUE")), pWinner.getX(), pWinner.getY(), True,True)
elif (pPlayerLoser.isHuman()):
CyInterface().addMessage(pLoser.getOwner(),false,20,CyTranslator().getText("TXT_KEY_MISC_WARPRIZES_FAILURE",(pLoser.getName(),)),'',0,'Art/Interface/Buttons/General/warning_popup.dds',ColorTypes(gc.getInfoTypeForString("COLOR_RED")), pLoser.getX(), pLoser.getY(), True,True)
## War Prize Modcomp END##