historical/toontown-classic.git/toontown/battle/SuitBattleGlobals.py

1085 lines
39 KiB
Python
Raw Normal View History

2024-01-16 11:20:27 -06:00
from BattleBase import *
import random
from direct.directnotify import DirectNotifyGlobal
from otp.otpbase import OTPLocalizer
from toontown.toonbase import TTLocalizer
notify = DirectNotifyGlobal.directNotify.newCategory('SuitBattleGlobals')
debugAttackSequence = {}
def pickFromFreqList(freqList):
randNum = random.randint(0, 99)
count = 0
index = 0
level = None
for f in freqList:
count = count + f
if randNum < count:
level = index
break
index = index + 1
return level
def getActualFromRelativeLevel(name, relLevel):
data = SuitAttributes[name]
actualLevel = data['level'] + relLevel
return actualLevel
def getSuitVitals(name, level = -1):
data = SuitAttributes[name]
if level == -1:
level = pickFromFreqList(data['freq'])
dict = {}
dict['level'] = getActualFromRelativeLevel(name, level)
if dict['level'] == 11:
level = 0
dict['hp'] = data['hp'][level]
dict['def'] = data['def'][level]
attacks = data['attacks']
alist = []
for a in attacks:
adict = {}
name = a[0]
adict['name'] = name
adict['animName'] = SuitAttacks[name][0]
adict['hp'] = a[1][level]
adict['acc'] = a[2][level]
adict['freq'] = a[3][level]
adict['group'] = SuitAttacks[name][1]
alist.append(adict)
dict['attacks'] = alist
return dict
def pickSuitAttack(attacks, suitLevel):
attackNum = None
randNum = random.randint(0, 99)
notify.debug('pickSuitAttack: rolled %d' % randNum)
count = 0
index = 0
total = 0
for c in attacks:
total = total + c[3][suitLevel]
for c in attacks:
count = count + c[3][suitLevel]
if randNum < count:
attackNum = index
notify.debug('picking attack %d' % attackNum)
break
index = index + 1
configAttackName = simbase.config.GetString('attack-type', 'random')
if configAttackName == 'random':
return attackNum
elif configAttackName == 'sequence':
for i in xrange(len(attacks)):
if attacks[i] not in debugAttackSequence:
debugAttackSequence[attacks[i]] = 1
return i
return attackNum
else:
for i in xrange(len(attacks)):
if attacks[i][0] == configAttackName:
return i
return attackNum
return
def getSuitAttack(suitName, suitLevel, attackNum = -1):
attackChoices = SuitAttributes[suitName]['attacks']
if attackNum == -1:
notify.debug('getSuitAttack: picking attacking for %s' % suitName)
attackNum = pickSuitAttack(attackChoices, suitLevel)
attack = attackChoices[attackNum]
adict = {}
adict['suitName'] = suitName
name = attack[0]
adict['name'] = name
adict['id'] = SuitAttacks.keys().index(name)
adict['animName'] = SuitAttacks[name][0]
adict['hp'] = attack[1][suitLevel]
adict['acc'] = attack[2][suitLevel]
adict['freq'] = attack[3][suitLevel]
adict['group'] = SuitAttacks[name][1]
return adict
# Formatted by Jake S. - You're welcome!
SuitAttributes = {'f': {'name': TTLocalizer.SuitFlunky, # cog name
'singularname': TTLocalizer.SuitFlunkyS, # cogs singular name, for tasks
'pluralname': TTLocalizer.SuitFlunkyP, # cogs plural name, for tasks
'level': 0, # level the cog starts at (level - 1)
'hp':(40,60,80,100,120), # cogs hp (more numbers, more levels)
'def':(25,50,69,80,100), # cogs defence (more numbers, more levels)
'freq':(50,30,10,7,5), # cogs level frequency
'acc':(50,55,60,65,70), # cogs accuracy (more numbers, more levels)
'attacks':
(('Watercooler',
(15,25,30,34,40), # attack damage
(50,65,75,80,90), # attack accuracy
(30,35,40,45,50)), # move frequency (all move frequency of each attack must add up to 100, for example 30,10,60 from level 1 of each attack)
('RubberStamp',
(15,25,30,34,40), # attack damage
(25,35,50,65,70),
(10,15,20,25,30)),
('ClipOnTie',
(7,7,15,15,20),
(75,80,85,90,95),
(60,50,40,30,20)))},
'p': {'name': TTLocalizer.SuitPencilPusher,
'singularname': TTLocalizer.SuitPencilPusherS,
'pluralname': TTLocalizer.SuitPencilPusherP,
'level': 1,
'hp':(12,20,30,42,56),
'def':(5,10,15,20,25),
'freq':(50,30,10,5,5),
'acc':(45,50,55,60,65),
'attacks':
(('FountainPen',
(2,3,4,6,9),
(75,75,75,75,75),
(20,20,20,20,20)),
('RubOut',
(4,5,6,8,12),
(75,75,75,75,75),
(20,20,20,20,20)),
('FingerWag',
(1,2,2,3,4),
(75,75,75,75,75),
(35,30,25,20,15)),
('WriteOff',
(4,6,8,10,12),
(75,75,75,75,75),
(5,10,15,20,25)),
('FillWithLead',
(3,4,5,6,7),
(75,75,75,75,75),
(20,20,20,20,20)))},
'ym': {'name': TTLocalizer.SuitYesman,
'singularname': TTLocalizer.SuitYesmanS,
'pluralname': TTLocalizer.SuitYesmanP,
'level': 2,
'hp':(20,30,42,56,72),
'def':(10,15,20,25,30),
'freq':(50,30,10,5,5),
'acc':(65,70,75,80,85),
'attacks':
(('RubberStamp',
(2,2,3,3,4),
(75,75,75,75,75),
(35,35,35,35,35)),
('RazzleDazzle',
(1,1,1,1,1),
(50,50,50,50,50),
(25,20,15,10,5)),
('Synergy',
(4,5,6,7,8),
(50,60,70,80,90),
(5,10,15,20,25)),
('TeeOff',
(3,3,4,4,5),
(50,60,70,80,90),
(35,35,35,35,35)))},
'mm': {'name': TTLocalizer.SuitMicromanager,
'singularname': TTLocalizer.SuitMicromanagerS,
'pluralname': TTLocalizer.SuitMicromanagerP,
'level': 3,
'hp':(30,42,56,72,90),
'def':(15,20,25,30,35),
'freq':(50,30,10,5,5),
'acc':(70,75,80,82,85),
'attacks':
(('Demotion',
(6,8,12,15,18),
(50,60,70,80,90),
(30,30,30,30,30)),
('FingerWag',
(4,6,9,12,15),
(50,60,70,80,90),
(10,10,10,10,10)),
('FountainPen',
(3,4,6,8,10),
(50,60,70,80,90),
(15,15,15,15,15)),
('BrainStorm',
(4,6,9,12,15),
(5,5,5,5,5),
(25,25,25,25,25)),
('BuzzWord',
(4,6,9,12,15),
(50,60,70,80,90),
(20,20,20,20,20)))},
'ds': {'name': TTLocalizer.SuitDownsizer,
'singularname': TTLocalizer.SuitDownsizerS,
'pluralname': TTLocalizer.SuitDownsizerP,
'level': 4,
'hp':(42,56,72,90,110),
'def':(20,25,30,35,40),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55),
'attacks':
(('Canned',
(5,6,8,10,12),
(60,75,80,85,90),
(25,25,25,25,25)),
('Downsize',
(8,9,11,13,15),
(50,65,70,75,80),
(35,35,35,35,35)),
('PinkSlip',
(4,5,6,7,8),
(60,65,75,80,85),
(25,25,25,25,25)),
('Sacked',
(5,6,7,8,9),
(50,50,50,50,50),
(15,15,15,15,15)))},
'hh': {'name': TTLocalizer.SuitHeadHunter,
'singularname': TTLocalizer.SuitHeadHunterS,
'pluralname': TTLocalizer.SuitHeadHunterP,
'level': 5,
'hp':(56,72,90,110,132),
'def':(25,30,35,40,45),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55),
'attacks':
(('FountainPen',
(5,6,8,10,12),
(60,75,80,85,90),
(15,15,15,15,15)),
('GlowerPower',
(7,8,10,12,13),
(50,60,70,80,90),
(20,20,20,20,20)),
('HalfWindsor',
(8,10,12,14,16),
(60,65,70,75,80),
(20,20,20,20,20)),
('HeadShrink',
(10,12,15,18,21),
(65,75,80,85,95),
(35,35,35,35,35)),
('Rolodex',
(6,7,8,9,10),
(60,65,70,75,80),
(10,10,10,10,10)))},
'cr': {'name': TTLocalizer.SuitCorporateRaider,
'singularname': TTLocalizer.SuitCorporateRaiderS,
'pluralname': TTLocalizer.SuitCorporateRaiderP,
'level': 6,
'hp':(72,90,110,132,156),
'def':(30,35,40,45,50),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55),
'attacks':
(('Canned',
(6,7,8,9,10),
(60,75,80,85,90),
(20,20,20,20,20)),
('EvilEye',
(12,15,18,21,24),
(60,70,75,80,90),
(35,35,35,35,35)),
('PlayHardball',
(7,8,12,15,16),
(60,65,70,75,80),
(30,30,30,30,30)),
('PowerTie',
(10,12,14,16,18),
(65,75,80,85,95),
(15,15,15,15,15)))},
'tbc': {'name': TTLocalizer.SuitTheBigCheese,
'singularname': TTLocalizer.SuitTheBigCheeseS,
'pluralname': TTLocalizer.SuitTheBigCheeseP,
'level': 7,
'hp':(90,110,132,156,200,462,992,1722,2652,3382,4112,4842,5572,6302),
'def':(35,40,45,50,55,60,65,70,70,70,70,70,70,70),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55,60,65,70,70,70,70,70,70,70),
'attacks':
(('CigarSmoke',
(10,12,15,18,20,22,23,24,25,26,27,28,29,30),
(55,65,75,85,95,95,95,95,95,95,95,95,95,95),
(20,20,20,20,20,20,20,20,20,20,20,20,20,20)),
('FloodTheMarket',
(14,16,18,20,22,23,23,24,25,26,27,28,29,30),
(70,75,85,90,95,95,95,95,95,95,95,95,95,95),
(10,10,10,10,10,10,10,10,10,10,10,10,10,10)),
('SongAndDance',
(14,15,17,19,20,21,22,23,24,25,26,27,28,29),
(60,65,70,75,80,85,90,90,90,90,90,90,90,90),
(20,20,20,20,20,20,20,20,20,20,20,20,20,20)),
('TeeOff',
(8,11,14,17,20,21,21,22,22,23,23,24,24,25),
(55,65,70,75,80,85,90,90,90,90,90,90,90,90),
(50,50,50,50,50,50,50,50,50,50,50,50,50,50)))},
'cc': {'name': TTLocalizer.SuitColdCaller,
'singularname': TTLocalizer.SuitColdCallerS,
'pluralname': TTLocalizer.SuitColdCallerP,
'level': 0,
'hp':(6,12,20,30,42),
'def':(2,5,10,12,15),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55),
'attacks':
(('FreezeAssets',
(1,1,1,1,1),
(90,90,90,90,90),
(5,10,15,20,25)),
('PoundKey',
(2,2,3,4,5),
(75,80,85,90,95),
(25,25,25,25,25)),
('DoubleTalk',
(2,3,4,6,8),
(50,55,60,65,70),
(25,25,25,25,25)),
('HotAir',
(3,4,6,8,10),
(50,50,50,50,50),
(45,40,35,30,25)))},
'tm': {'name': TTLocalizer.SuitTelemarketer,
'singularname': TTLocalizer.SuitTelemarketerS,
'pluralname': TTLocalizer.SuitTelemarketerP,
'level': 1,
'hp':(12,20,30,42,56),
'def':(5,10,15,20,25),
'freq':(50,30,10,5,5),
'acc':(45,50,55,60,65),
'attacks':
(('ClipOnTie',
(2,2,3,3,4),
(75,75,75,75,75),
(15,15,15,15,15)),
('PickPocket',
(1,1,1,1,1),
(75,75,75,75,75),
(15,15,15,15,15)),
('Rolodex',
(4,6,7,9,12),
(50,50,50,50,50),
(30,30,30,30,30)),
('DoubleTalk',
(4,6,7,9,12),
(75,80,85,90,95),
(40,40,40,40,40)))},
'nd': {'name': TTLocalizer.SuitNameDropper,
'singularname': TTLocalizer.SuitNameDropperS,
'pluralname': TTLocalizer.SuitNameDropperP,
'level': 2,
'hp':(20,30,42,56,72),
'def':(10,15,20,25,30),
'freq':(50,30,10,5,5),
'acc':(65,70,75,80,85),
'attacks':
(('RazzleDazzle',
(4,5,6,9,12),
(75,80,85,90,95),
(30,30,30,30,30)),
('Rolodex',
(5,6,7,10,14),
(95,95,95,95,95),
(40,40,40,40,40)),
('Synergy',
(3,4,6,9,12),
(50,50,50,50,50),
(15,15,15,15,15)),
('PickPocket',
(2,2,2,2,2),
(95,95,95,95,95),
(15,15,15,15,15)))},
'gh': {'name': TTLocalizer.SuitGladHander,
'singularname': TTLocalizer.SuitGladHanderS,
'pluralname': TTLocalizer.SuitGladHanderP,
'level': 3,
'hp':(30,42,56,72,90),
'def':(15,20,25,30,35),
'freq':(50,30,10,5,5),
'acc':(70,75,80,82,85),
'attacks':
(('RubberStamp',
(4,3,3,2,1),
(90,70,50,30,10),
(40,30,20,10,5)),
('FountainPen',
(3,3,2,1,1),
(70,60,50,40,30),
(40,30,20,10,5)),
('Filibuster',
(4,6,9,12,15),
(30,40,50,60,70),
(10,20,30,40,45)),
('Schmooze',
(5,7,11,15,20),
(55,65,75,85,95),
(10,20,30,40,45)))},
'ms': {'name': TTLocalizer.SuitMoverShaker,
'singularname': TTLocalizer.SuitMoverShakerS,
'pluralname': TTLocalizer.SuitMoverShakerP,
'level': 4,
'hp':(42,56,72,90,110),
'def':(20,25,30,35,40),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55),
'attacks':
(('BrainStorm',
(5,6,8,10,12),
(60,75,80,85,90),
(15,15,15,15,15)),
('HalfWindsor',
(6,9,11,13,16),
(50,65,70,75,80),
(20,20,20,20,20)),
('Quake',
(9,12,15,18,21),
(60,65,75,80,85),
(20,20,20,20,20)),
('Shake',
(6,8,10,12,14),
(70,75,80,85,90),
(25,25,25,25,25)),
('Tremor',
(5,6,7,8,9),
(50,50,50,50,50),
(20,20,20,20,20)))},
'tf': {'name': TTLocalizer.SuitTwoFace,
'singularname': TTLocalizer.SuitTwoFaceS,
'pluralname': TTLocalizer.SuitTwoFaceP,
'level': 5,
'hp':(56,72,90,110,132),
'def':(25,30,35,40,45),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55),
'attacks':
(('EvilEye',
(10,12,14,16,18),
(60,75,80,85,90),
(30,30,30,30,30)),
('HangUp',
(7,8,10,12,13),
(50,60,70,80,90),
(15,15,15,15,15)),
('RazzleDazzle',
(8,10,12,14,16),
(60,65,70,75,80),
(30,30,30,30,30)),
('RedTape',
(6,7,8,9,10),
(60,65,75,85,90),
(25,25,25,25,25)))},
'm': {'name': TTLocalizer.SuitTheMingler,
'singularname': TTLocalizer.SuitTheMinglerS,
'pluralname': TTLocalizer.SuitTheMinglerP,
'level': 6,
'hp':(72,90,110,132,156),
'def':(30,35,40,45,50),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55),
'attacks':
(('BuzzWord',
(10,11,13,15,16),
(60,75,80,85,90),
(20,20,20,20,20)),
('ParadigmShift',
(12,15,18,21,24),
(60,70,75,80,90),
(25,25,25,25,25)),
('PowerTrip',
(10,13,14,15,18),
(60,65,70,75,80),
(15,15,15,15,15)),
('Schmooze',
(7,8,12,15,16),
(55,65,75,85,95),
(30,30,30,30,30)),
('TeeOff',
(8,9,10,11,12),
(70,75,80,85,95),
(10,10,10,10,10)))},
'mh': {'name': TTLocalizer.SuitMrHollywood,
'singularname': TTLocalizer.SuitMrHollywoodS,
'pluralname': TTLocalizer.SuitMrHollywoodP,
'level': 7,
'hp':(90,110,132,156,200,462,992,1722,2652,3382,4112,4842,5572,6302),
'def':(35,40,45,50,55,60,65,70,70,70,70,70,70,70),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55,60,65,70,70,70,70,70,70,70),
'attacks':
(('PowerTrip',
(10,12,15,18,20,22,24,26,28,30,32,34,36,38),
(55,65,75,85,95,95,95,95,95,95,95,95,95,95),
(50,50,50,50,50,50,50,50,50,50,50,50,50,50)),
('RazzleDazzle',
(8,11,14,17,20,22,24,26,28,30,32,34,36,38),
(70,75,85,90,95,95,95,95,95,95,95,95,95,95),
(50,50,50,50,50,50,50,50,50,50,50,50,50,50)))},
'sc': {'name': TTLocalizer.SuitShortChange,
'singularname': TTLocalizer.SuitShortChangeS,
'pluralname': TTLocalizer.SuitShortChangeP,
'level': 0,
'hp':(6,12,20,30,42),
'def':(2,5,10,12,15),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55),
'attacks':
(('Watercooler',
(2,2,3,4,6),
(50,50,50,50,50),
(20,20,20,20,20)),
('BounceCheck',
(3,5,7,9,11),
(75,80,85,90,95),
(15,15,15,15,15)),
('ClipOnTie',
(1,1,2,2,3),
(50,50,50,50,50),
(25,25,25,25,25)),
('PickPocket',
(2,2,3,4,6),
(95,95,95,95,95),
(40,40,40,40,40)))},
'pp': {'name': TTLocalizer.SuitPennyPincher,
'singularname': TTLocalizer.SuitPennyPincherS,
'pluralname': TTLocalizer.SuitPennyPincherP,
'level': 1,
'hp':(12,20,30,42,56),
'def':(5,10,15,20,25),
'freq':(50,30,10,5,5),
'acc':(45,50,55,60,65),
'attacks':
(('BounceCheck',
(4,5,6,8,12),
(75,75,75,75,75),
(45,45,45,45,45)),
('FreezeAssets',
(2,3,4,6,9),
(75,75,75,75,75),
(20,20,20,20,20)),
('FingerWag',
(1,2,3,4,6),
(50,50,50,50,50),
(35,35,35,35,35)))},
'tw': {'name': TTLocalizer.SuitTightwad,
'singularname': TTLocalizer.SuitTightwadS,
'pluralname': TTLocalizer.SuitTightwadP,
'level': 2,
'hp':(20,30,42,56,72),
'def':(10,15,20,25,30),
'freq':(50,30,10,5,5),
'acc':(65,70,75,80,85),
'attacks':
(('Fired',
(3,4,5,5,6),
(75,75,75,75,75),
(75,5,5,5,5)),
('GlowerPower',
(3,4,6,9,12),
(95,95,95,95,95),
(10,15,20,25,30)),
('FingerWag',
(3,3,4,4,5),
(75,75,75,75,75),
(5,70,5,5,5)),
('FreezeAssets',
(3,4,6,9,12),
(75,75,75,75,75),
(5,5,65,5,30)),
('BounceCheck',
(5,6,9,13,18),
(75,75,75,75,75),
(5,5,5,60,30)))},
'bc': {'name': TTLocalizer.SuitBeanCounter,
'singularname': TTLocalizer.SuitBeanCounterS,
'pluralname': TTLocalizer.SuitBeanCounterP,
'level': 3,
'hp':(30,42,56,72,90),
'def':(15,20,25,30,35),
'freq':(50,30,10,5,5),
'acc':(70,75,80,82,85),
'attacks':
(('Audit',
(4,6,9,12,15),
(95,95,95,95,95),
(20,20,20,20,20)),
('Calculate',
(4,6,9,12,15),
(75,75,75,75,75),
(25,25,25,25,25)),
('Tabulate',
(4,6,9,12,15),
(75,75,75,75,75),
(25,25,25,25,25)),
('WriteOff',
(4,6,9,12,15),
(95,95,95,95,95),
(30,30,30,30,30)))},
'nc': {'name': TTLocalizer.SuitNumberCruncher,
'singularname': TTLocalizer.SuitNumberCruncherS,
'pluralname': TTLocalizer.SuitNumberCruncherP,
'level': 4,
'hp':(42,56,72,90,110),
'def':(20,25,30,35,40),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55),
'attacks':
(('Audit',
(5,6,8,10,12),
(60,75,80,85,90),
(15,15,15,15,15)),
('Calculate',
(6,7,9,11,13),
(50,65,70,75,80),
(30,30,30,30,30)),
('Crunch',
(8,9,11,13,15),
(60,65,75,80,85),
(35,35,35,35,35)),
('Tabulate',
(5,6,7,8,9),
(50,50,50,50,50),
(20,20,20,20,20)))},
'mb': {'name': TTLocalizer.SuitMoneyBags,
'singularname': TTLocalizer.SuitMoneyBagsS,
'pluralname': TTLocalizer.SuitMoneyBagsP,
'level': 5,
'hp':(56,72,90,110,132),
'def':(25,30,35,40,45),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55),
'attacks':
(('Liquidate',
(10,12,14,16,18),
(60,75,80,85,90),
(30,30,30,30,30)),
('MarketCrash',
(8,10,12,14,16),
(60,65,70,75,80),
(45,45,45,45,45)),
('PowerTie',
(6,7,8,9,10),
(60,65,75,85,90),
(25,25,25,25,25)))},
'ls': {'name': TTLocalizer.SuitLoanShark,
'singularname': TTLocalizer.SuitLoanSharkS,
'pluralname': TTLocalizer.SuitLoanSharkP,
'level': 6,
'hp':(72,90,110,132,156),
'def':(30,35,40,45,50),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55),
'attacks':
(('Bite',
(10,11,13,15,16),
(60,75,80,85,90),
(30,30,30,30,30)),
('Chomp',
(12,15,18,21,24),
(60,70,75,80,90),
(35,35,35,35,35)),
('PlayHardball',
(9,11,12,13,15),
(55,65,75,85,95),
(20,20,20,20,20)),
('WriteOff',
(6,8,10,12,14),
(70,75,80,85,95),
(15,15,15,15,15)))},
'rb': {'name': TTLocalizer.SuitRobberBaron,
'singularname': TTLocalizer.SuitRobberBaronS,
'pluralname': TTLocalizer.SuitRobberBaronP,
'level': 7,
'hp':(90,110,132,156,200,462,992,1722,2652,3382,4112,4842,5572,6302),
'def':(35,40,45,50,55,60,65,70,70,70,70,70,70,70),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55,60,65,70,70,70,70,70,70,70),
'attacks':
(('PowerTrip',
(11,14,16,18,21,22,23,24,25,26,27,28,29,30),
(60,65,70,75,80,80,80,85,90,90,90,90,90,90),
(50,50,50,50,50,50,50,50,50,50,50,50,50,50)),
('TeeOff',
(10,12,14,16,18,20,22,24,26,27,28,29,30,31),
(60,65,75,85,90,90,90,90,95,95,95,95,95,95),
(50,50,50,50,50,50,50,50,50,50,50,50,50,50)))},
'bf': {'name': TTLocalizer.SuitBottomFeeder,
'singularname': TTLocalizer.SuitBottomFeederS,
'pluralname': TTLocalizer.SuitBottomFeederP,
'level': 0,
'hp':(6,12,20,30,42),
'def':(2,5,10,12,15),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55),
'attacks':
(('RubberStamp',
(2,3,4,5,6),
(75,80,85,90,95),
(20,20,20,20,20)),
('Shred',
(2,4,6,8,10),
(50,55,60,65,70),
(20,20,20,20,20)),
('Watercooler',
(3,4,5,6,7),
(95,95,95,95,95),
(10,10,10,10,10)),
('PickPocket',
(1,1,2,2,3),
(25,30,35,40,45),
(50,50,50,50,50)))},
'b': {'name': TTLocalizer.SuitBloodsucker,
'singularname': TTLocalizer.SuitBloodsuckerS,
'pluralname': TTLocalizer.SuitBloodsuckerP,
'level': 1,
'hp':(12,20,30,42,56),
'def':(5,10,15,20,25),
'freq':(50,30,10,5,5),
'acc':(45,50,55,60,65),
'attacks':
(('EvictionNotice',
(1,2,3,3,4),
(75,75,75,75,75),
(20,20,20,20,20)),
('RedTape',
(2,3,4,6,9),
(75,75,75,75,75),
(20,20,20,20,20)),
('Withdrawal',
(6,8,10,12,14),
(95,95,95,95,95),
(10,10,10,10,10)),
('Liquidate',
(2,3,4,6,9),
(50,60,70,80,90),
(50,50,50,50,50)))},
'dt': {'name': TTLocalizer.SuitDoubleTalker,
'singularname': TTLocalizer.SuitDoubleTalkerS,
'pluralname': TTLocalizer.SuitDoubleTalkerP,
'level': 2,
'hp':(20,30,42,56,72),
'def':(10,15,20,25,30),
'freq':(50,30,10,5,5),
'acc':(65,70,75,80,85),
'attacks':
(('RubberStamp',
(1,1,1,1,1),
(50,60,70,80,90),
(5,5,5,5,5)),
('BounceCheck',
(1,1,1,1,1),
(50,60,70,80,90),
(5,5,5,5,5)),
('BuzzWord',
(1,2,3,5,6),
(50,60,70,80,90),
(20,20,20,20,20)),
('DoubleTalk',
(6,6,9,13,18),
(50,60,70,80,90),
(25,25,25,25,25)),
('Jargon',
(3,4,6,9,12),
(50,60,70,80,90),
(25,25,25,25,25)),
('MumboJumbo',
(3,4,6,9,12),
(50,60,70,80,90),
(20,20,20,20,20)))},
'ac': {'name': TTLocalizer.SuitAmbulanceChaser,
'singularname': TTLocalizer.SuitAmbulanceChaserS,
'pluralname': TTLocalizer.SuitAmbulanceChaserP,
'level': 3,
'hp':(30,42,56,72,90),
'def':(15,20,25,30,35),
'freq':(50,30,10,5,5),
'acc':(65,70,75,80,85),
'attacks':
(('Shake',
(4,6,9,12,15),
(75,75,75,75,75),
(15,15,15,15,15)),
('RedTape',
(6,8,12,15,19),
(75,75,75,75,75),
(30,30,30,30,30)),
('Rolodex',
(3,4,5,6,7),
(75,75,75,75,75),
(20,20,20,20,20)),
('HangUp',
(2,3,4,5,6),
(75,75,75,75,75),
(35,35,35,35,35)))},
'bs': {'name': TTLocalizer.SuitBackStabber,
'singularname': TTLocalizer.SuitBackStabberS,
'pluralname': TTLocalizer.SuitBackStabberP,
'level': 4,
'hp':(42,56,72,90,110),
'def':(20,25,30,35,40),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55),
'attacks':
(('GuiltTrip',
(8,11,13,15,18),
(60,75,80,85,90),
(40,40,40,40,40)),
('RestrainingOrder',
(6,7,9,11,13),
(50,65,70,75,90),
(25,25,25,25,25)),
('FingerWag',
(5,6,7,8,9),
(50,55,65,75,80),
(35,35,35,35,35)))},
'sd': {'name': TTLocalizer.SuitSpinDoctor,
'singularname': TTLocalizer.SuitSpinDoctorS,
'pluralname': TTLocalizer.SuitSpinDoctorP,
'level': 5,
'hp':(56,72,90,110,132),
'def':(25,30,35,40,45),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55),
'attacks':
(('ParadigmShift',
(9,10,13,16,17),
(60,75,80,85,90),
(30,30,30,30,30)),
('Quake',
(8,10,12,14,16),
(60,65,70,75,80),
(20,20,20,20,20)),
('Spin',
(10,12,15,18,20),
(70,75,80,85,90),
(35,35,35,35,35)),
('WriteOff',
(6,7,8,9,10),
(60,65,75,85,90),
(15,15,15,15,15)))},
'le': {'name': TTLocalizer.SuitLegalEagle,
'singularname': TTLocalizer.SuitLegalEagleS,
'pluralname': TTLocalizer.SuitLegalEagleP,
'level': 6,
'hp':(72,90,110,132,156),
'def':(30,35,40,45,50),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55),
'attacks':
(('EvilEye',
(10,11,13,15,16),
(60,75,80,85,90),
(20,20,20,20,20)),
('Jargon',
(7,9,11,13,15),
(60,70,75,80,90),
(15,15,15,15,15)),
('Legalese',
(11,13,16,19,21),
(55,65,75,85,95),
(35,35,35,35,35)),
('PeckingOrder',
(12,15,17,19,22),
(70,75,80,85,95),
(30,30,30,30,30)))},
'bw': {'name': TTLocalizer.SuitBigWig,
'singularname': TTLocalizer.SuitBigWigS,
'pluralname': TTLocalizer.SuitBigWigP,
'level': 7,
'hp':(90,110,132,156,200,462,992,1722,2652,3382,4112,4842,5572,6302),
'def':(35,40,45,50,55,60,65,70,70,70,70,70,70,70),
'freq':(50,30,10,5,5),
'acc':(35,40,45,50,55,60,65,70,70,70,70,70,70,70),
'attacks':
(('PowerTrip',
(10,11,13,15,16,18,20,21,23,24,25,25,26,27),
(75,80,85,90,95,95,95,95,95,95,95,95,95,95),
(50,50,50,50,50,50,50,50,50,50,50,50,50,50)),
('ThrowBook',
(13,15,17,19,21,23,25,27,29,32,34,36,38,40),
(80,85,85,85,90,90,90,90,95,95,95,95,95,95),
(50,50,50,50,50,50,50,50,50,50,50,50,50,50)))}}
ATK_TGT_UNKNOWN = 1
ATK_TGT_SINGLE = 2
ATK_TGT_GROUP = 3
SuitAttacks = {'Audit': ('phone', ATK_TGT_SINGLE),
'Bite': ('throw-paper', ATK_TGT_SINGLE),
'BounceCheck': ('throw-paper', ATK_TGT_SINGLE),
'BrainStorm': ('effort', ATK_TGT_SINGLE),
'BuzzWord': ('speak', ATK_TGT_SINGLE),
'Calculate': ('phone', ATK_TGT_SINGLE),
'Canned': ('throw-paper', ATK_TGT_SINGLE),
'Chomp': ('throw-paper', ATK_TGT_SINGLE),
'CigarSmoke': ('cigar-smoke', ATK_TGT_SINGLE),
'ClipOnTie': ('throw-paper', ATK_TGT_SINGLE),
'Crunch': ('throw-object', ATK_TGT_SINGLE),
'Demotion': ('magic1', ATK_TGT_SINGLE),
'DoubleTalk': ('speak', ATK_TGT_SINGLE),
'Downsize': ('magic2', ATK_TGT_SINGLE),
'EvictionNotice': ('throw-paper', ATK_TGT_SINGLE),
'EvilEye': ('glower', ATK_TGT_SINGLE),
'Filibuster': ('speak', ATK_TGT_SINGLE),
'FillWithLead': ('pencil-sharpener', ATK_TGT_SINGLE),
'FingerWag': ('finger-wag', ATK_TGT_SINGLE),
'Fired': ('magic2', ATK_TGT_SINGLE),
'FiveOClockShadow': ('glower', ATK_TGT_SINGLE),
'FloodTheMarket': ('glower', ATK_TGT_SINGLE),
'FountainPen': ('pen-squirt', ATK_TGT_SINGLE),
'FreezeAssets': ('glower', ATK_TGT_SINGLE),
'Gavel': ('gavel', ATK_TGT_SINGLE),
'GlowerPower': ('glower', ATK_TGT_SINGLE),
'GuiltTrip': ('magic1', ATK_TGT_GROUP),
'HalfWindsor': ('throw-paper', ATK_TGT_SINGLE),
'HangUp': ('phone', ATK_TGT_SINGLE),
'HeadShrink': ('magic1', ATK_TGT_SINGLE),
'HotAir': ('speak', ATK_TGT_SINGLE),
'Jargon': ('speak', ATK_TGT_SINGLE),
'Legalese': ('speak', ATK_TGT_SINGLE),
'Liquidate': ('magic1', ATK_TGT_SINGLE),
'MarketCrash': ('throw-paper', ATK_TGT_SINGLE),
'MumboJumbo': ('speak', ATK_TGT_SINGLE),
'ParadigmShift': ('magic2', ATK_TGT_GROUP),
'PeckingOrder': ('throw-object', ATK_TGT_SINGLE),
'PickPocket': ('pickpocket', ATK_TGT_SINGLE),
'PinkSlip': ('throw-paper', ATK_TGT_SINGLE),
'PlayHardball': ('throw-paper', ATK_TGT_SINGLE),
'PoundKey': ('phone', ATK_TGT_SINGLE),
'PowerTie': ('throw-paper', ATK_TGT_SINGLE),
'PowerTrip': ('magic1', ATK_TGT_GROUP),
'Quake': ('quick-jump', ATK_TGT_GROUP),
'RazzleDazzle': ('smile', ATK_TGT_SINGLE),
'RedTape': ('throw-object', ATK_TGT_SINGLE),
'ReOrg': ('magic3', ATK_TGT_SINGLE),
'RestrainingOrder': ('throw-paper', ATK_TGT_SINGLE),
'Rolodex': ('roll-o-dex', ATK_TGT_SINGLE),
'RubberStamp': ('rubber-stamp', ATK_TGT_SINGLE),
'RubOut': ('hold-eraser', ATK_TGT_SINGLE),
'Sacked': ('throw-paper', ATK_TGT_SINGLE),
'SandTrap': ('golf-club-swing', ATK_TGT_SINGLE),
'Schmooze': ('speak', ATK_TGT_SINGLE),
'Shake': ('stomp', ATK_TGT_GROUP),
'Shred': ('shredder', ATK_TGT_SINGLE),
'SongAndDance': ('song-and-dance', ATK_TGT_SINGLE),
'Spin': ('magic3', ATK_TGT_SINGLE),
'Synergy': ('magic3', ATK_TGT_GROUP),
'Tabulate': ('phone', ATK_TGT_SINGLE),
'TeeOff': ('golf-club-swing', ATK_TGT_SINGLE),
'ThrowBook': ('throw-object', ATK_TGT_SINGLE),
'Tremor': ('stomp', ATK_TGT_GROUP),
'Watercooler': ('watercooler', ATK_TGT_SINGLE),
'Withdrawal': ('magic1', ATK_TGT_SINGLE),
'WriteOff': ('hold-pencil', ATK_TGT_SINGLE)}
AUDIT = SuitAttacks.keys().index('Audit')
BITE = SuitAttacks.keys().index('Bite')
BOUNCE_CHECK = SuitAttacks.keys().index('BounceCheck')
BRAIN_STORM = SuitAttacks.keys().index('BrainStorm')
BUZZ_WORD = SuitAttacks.keys().index('BuzzWord')
CALCULATE = SuitAttacks.keys().index('Calculate')
CANNED = SuitAttacks.keys().index('Canned')
CHOMP = SuitAttacks.keys().index('Chomp')
CIGAR_SMOKE = SuitAttacks.keys().index('CigarSmoke')
CLIPON_TIE = SuitAttacks.keys().index('ClipOnTie')
CRUNCH = SuitAttacks.keys().index('Crunch')
DEMOTION = SuitAttacks.keys().index('Demotion')
DOWNSIZE = SuitAttacks.keys().index('Downsize')
DOUBLE_TALK = SuitAttacks.keys().index('DoubleTalk')
EVICTION_NOTICE = SuitAttacks.keys().index('EvictionNotice')
EVIL_EYE = SuitAttacks.keys().index('EvilEye')
FILIBUSTER = SuitAttacks.keys().index('Filibuster')
FILL_WITH_LEAD = SuitAttacks.keys().index('FillWithLead')
FINGER_WAG = SuitAttacks.keys().index('FingerWag')
FIRED = SuitAttacks.keys().index('Fired')
FIVE_O_CLOCK_SHADOW = SuitAttacks.keys().index('FiveOClockShadow')
FLOOD_THE_MARKET = SuitAttacks.keys().index('FloodTheMarket')
FOUNTAIN_PEN = SuitAttacks.keys().index('FountainPen')
FREEZE_ASSETS = SuitAttacks.keys().index('FreezeAssets')
GAVEL = SuitAttacks.keys().index('Gavel')
GLOWER_POWER = SuitAttacks.keys().index('GlowerPower')
GUILT_TRIP = SuitAttacks.keys().index('GuiltTrip')
HALF_WINDSOR = SuitAttacks.keys().index('HalfWindsor')
HANG_UP = SuitAttacks.keys().index('HangUp')
HEAD_SHRINK = SuitAttacks.keys().index('HeadShrink')
HOT_AIR = SuitAttacks.keys().index('HotAir')
JARGON = SuitAttacks.keys().index('Jargon')
LEGALESE = SuitAttacks.keys().index('Legalese')
LIQUIDATE = SuitAttacks.keys().index('Liquidate')
MARKET_CRASH = SuitAttacks.keys().index('MarketCrash')
MUMBO_JUMBO = SuitAttacks.keys().index('MumboJumbo')
PARADIGM_SHIFT = SuitAttacks.keys().index('ParadigmShift')
PECKING_ORDER = SuitAttacks.keys().index('PeckingOrder')
PICK_POCKET = SuitAttacks.keys().index('PickPocket')
PINK_SLIP = SuitAttacks.keys().index('PinkSlip')
PLAY_HARDBALL = SuitAttacks.keys().index('PlayHardball')
POUND_KEY = SuitAttacks.keys().index('PoundKey')
POWER_TIE = SuitAttacks.keys().index('PowerTie')
POWER_TRIP = SuitAttacks.keys().index('PowerTrip')
QUAKE = SuitAttacks.keys().index('Quake')
RAZZLE_DAZZLE = SuitAttacks.keys().index('RazzleDazzle')
RED_TAPE = SuitAttacks.keys().index('RedTape')
RE_ORG = SuitAttacks.keys().index('ReOrg')
RESTRAINING_ORDER = SuitAttacks.keys().index('RestrainingOrder')
ROLODEX = SuitAttacks.keys().index('Rolodex')
RUBBER_STAMP = SuitAttacks.keys().index('RubberStamp')
RUB_OUT = SuitAttacks.keys().index('RubOut')
SACKED = SuitAttacks.keys().index('Sacked')
SANDTRAP = SuitAttacks.keys().index('SandTrap')
SCHMOOZE = SuitAttacks.keys().index('Schmooze')
SHAKE = SuitAttacks.keys().index('Shake')
SHRED = SuitAttacks.keys().index('Shred')
SONG_AND_DANCE = SuitAttacks.keys().index('SongAndDance')
SPIN = SuitAttacks.keys().index('Spin')
SYNERGY = SuitAttacks.keys().index('Synergy')
TABULATE = SuitAttacks.keys().index('Tabulate')
TEE_OFF = SuitAttacks.keys().index('TeeOff')
THROW_BOOK = SuitAttacks.keys().index('ThrowBook')
TREMOR = SuitAttacks.keys().index('Tremor')
WATERCOOLER = SuitAttacks.keys().index('Watercooler')
WITHDRAWAL = SuitAttacks.keys().index('Withdrawal')
WRITE_OFF = SuitAttacks.keys().index('WriteOff')
def getFaceoffTaunt(suitName, doId):
if suitName in SuitFaceoffTaunts:
taunts = SuitFaceoffTaunts[suitName]
else:
taunts = TTLocalizer.SuitFaceoffDefaultTaunts
return taunts[doId % len(taunts)]
SuitFaceoffTaunts = OTPLocalizer.SuitFaceoffTaunts
def getAttackTauntIndexFromIndex(suit, attackIndex):
adict = getSuitAttack(suit.getStyleName(), suit.getLevel(), attackIndex)
return getAttackTauntIndex(adict['name'])
def getAttackTauntIndex(attackName):
if attackName in SuitAttackTaunts:
taunts = SuitAttackTaunts[attackName]
return random.randint(0, len(taunts) - 1)
else:
return 1
def getAttackTaunt(attackName, index = None):
if attackName in SuitAttackTaunts:
taunts = SuitAttackTaunts[attackName]
else:
taunts = TTLocalizer.SuitAttackDefaultTaunts
if index != None:
if index >= len(taunts):
notify.warning('index exceeds length of taunts list in getAttackTaunt')
return TTLocalizer.SuitAttackDefaultTaunts[0]
return taunts[index]
else:
return random.choice(taunts)
return
SuitAttackTaunts = TTLocalizer.SuitAttackTaunts