ocedius
C++ induced baldness
This is the version (albeit crude) I am using at the moment
Yes, I know, it is slow and messy, but it works for now
Code:
def onBeginPlayerTurn(self, argsList):
'Called at the beginning of a players turn'
iGameTurn, iPlayer = argsList
py = PyPlayer(iPlayer)
for pUnit in py.getUnitList():
pPlot = pUnit.plot()
for i in range(pPlot.getNumUnits()):
pUnit2 = pPlot.getUnit(i)
if CyGame().getSorenRandNum(100, "Bob") <= 100: # 10% global chance for diseased units undergoing change
if pUnit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_DISEASED')) and not pUnit2.isHasPromotion(gc.getInfoTypeForString('PROMOTION_DISEASED')):
pUnit2.setHasPromotion((gc.getInfoTypeForString('PROMOTION_DISEASED')), True)
CyInterface().addMessage(pUnit2.getOwner(),True,25,'A unit has become diseased!','AS2D_DISEASED',1,'Art/Interface/Buttons/Promotions/Diseased.dds',ColorTypes(7),pUnit2.getX(),pUnit2.getY(),True,True)
return
if pUnit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_IMMUNE')) and not pUnit2.isHasPromotion(gc.getInfoTypeForString('PROMOTION_ACQUIREDIMMUNITY')):
pUnit2.setHasPromotion((gc.getInfoTypeForString('PROMOTION_ACQUIREDIMMUNITY')), True)
CyInterface().addMessage(pUnit2.getOwner(),True,25,'A unit has become immune!','AS2D_DISEASED',1,'Art/Interface/Buttons/Promotions/Curedisease.dds',ColorTypes(8),pUnit2.getX(),pUnit2.getY(),True,True)
return
if pUnit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_IMMUNE')) and pUnit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_ACQUIREDIMMUNITY')):
pUnit.setHasPromotion((gc.getInfoTypeForString('PROMOTION_ACQUIREDIMMUNITY')), False) # so no unit can have both immune and acquired promotions
return
if pUnit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_DISEASED')) and pUnit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_ACQUIREDIMMUNITY')):
if CyGame().getSorenRandNum(100, "Bob") <= 50: # 5% global chance for diseased units becoming cured
pUnit.setHasPromotion((gc.getInfoTypeForString('PROMOTION_DISEASED')), False) # cure unit (kinda senseless)
else:
pUnit.setHasPromotion((gc.getInfoTypeForString('PROMOTION_ACQUIREDIMMUNITY')), False) # so no unit can have both diseased and acquired promotions (kinda senseless)
if pUnit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_DISEASED')) and pUnit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_ACQUIREDIMMUNITY')):
if CyGame().getSorenRandNum(100, "Bob") <= 50: # 5% global chance for diseased units becoming cured
pUnit.setHasPromotion((gc.getInfoTypeForString('PROMOTION_DISEASED')), False) # cure unit (kinda senseless)
else:
pUnit.setHasPromotion((gc.getInfoTypeForString('PROMOTION_ACQUIREDIMMUNITY')), False) # so no unit can have both diseased and acquired promotions (kinda senseless)
if pUnit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_IMMUNE')) and pUnit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_DISEASED')):
if CyGame().getSorenRandNum(100, "Bob") <= 50: # 5% global chance for diseased units becoming cured
pUnit.setHasPromotion((gc.getInfoTypeForString('PROMOTION_DISEASED')), False) # cure unit (kinda senseless)
else:
pUnit.setHasPromotion((gc.getInfoTypeForString('PROMOTION_IMMUNE')), False) # so no unit can have both diseased and immune promotions (kinda senseless)
if CyGame().getSorenRandNum(100, "Bob") <= 5: # 5% global chance for diseased units becoming cured
if pUnit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_DISEASED')):
pUnit.kill(True,0)
CyInterface().addMessage(pUnit.getOwner(),True,25,'The diseased unit has died!','AS2D_DISEASED',1,'Art/Interface/Buttons/Promotions/Diseased.dds',ColorTypes(7),pUnit.getX(),pUnit.getY(),True,True)
Yes, I know, it is slow and messy, but it works for now