def doTraitInsane(argsList):
iEvent = argsList[0]
kTriggeredData = argsList[1]
iPlayer = kTriggeredData.ePlayer
pPlayer = gc.getPlayer(iPlayer)
for i in range(gc.getNumTraitInfos()):
if (pPlayer.hasTrait(i) and i != gc.getInfoTypeForString('TRAIT_INSANE')):
CyMessageControl().sendApplyEvent(5013, EventContextTypes.EVENTCONTEXT_ALL, (iPlayer,i,False))
Traits = [ 'TRAIT_AGGRESSIVE','TRAIT_ARCANE','TRAIT_CHARISMATIC','TRAIT_CREATIVE','TRAIT_EXPANSIVE','TRAIT_FINANCIAL','TRAIT_INDUSTRIOUS','TRAIT_ORGANIZED','TRAIT_PHILOSOPHICAL','TRAIT_RAIDERS','TRAIT_SPIRITUAL' ]
iRnd1 = CyGame().getSorenRandNum(len(Traits), "Insane")
iRnd2 = CyGame().getSorenRandNum(len(Traits), "Insane")
while iRnd2 == iRnd1:
iRnd2 = CyGame().getSorenRandNum(len(Traits), "Insane")
iRnd3 = CyGame().getSorenRandNum(len(Traits), "Insane")
while iRnd3 == iRnd1 or iRnd3 == iRnd2:
iRnd3 = CyGame().getSorenRandNum(len(Traits), "Insane")
CyMessageControl().sendApplyEvent(5013, EventContextTypes.EVENTCONTEXT_ALL, (iPlayer,gc.getInfoTypeForString(Traits[iRnd1]),True))
CyMessageControl().sendApplyEvent(5013, EventContextTypes.EVENTCONTEXT_ALL, (iPlayer,gc.getInfoTypeForString(Traits[iRnd2]),True))
CyMessageControl().sendApplyEvent(5013, EventContextTypes.EVENTCONTEXT_ALL, (iPlayer,gc.getInfoTypeForString(Traits[iRnd3]),True))