2019-11-02 17:27:54 -05:00
|
|
|
from toontown.toonbase import TTLocalizer
|
|
|
|
from toontown.toonbase import ToontownBattleGlobals
|
2022-12-16 18:40:57 -06:00
|
|
|
from panda3d.core import Vec4
|
2019-11-02 17:27:54 -05:00
|
|
|
Up = 1
|
|
|
|
Down = 0
|
|
|
|
MaxRank = 13
|
|
|
|
MaxSuit = 4
|
|
|
|
Hearts = 0
|
|
|
|
Diamonds = 1
|
|
|
|
Clubs = 2
|
|
|
|
Spades = 3
|
|
|
|
Suits = [Hearts,
|
|
|
|
Diamonds,
|
|
|
|
Clubs,
|
|
|
|
Spades]
|
|
|
|
Unknown = 255
|
|
|
|
UpColor = Vec4(1, 1, 1, 1)
|
|
|
|
RolloverColor = Vec4(1, 1, 0.5, 1)
|
|
|
|
DownColor = Vec4(1, 0.9, 0.9, 1)
|
|
|
|
DisabledColor = Vec4(1, 1, 1, 0.5)
|
|
|
|
CardColors = (UpColor,
|
|
|
|
DownColor,
|
|
|
|
RolloverColor,
|
|
|
|
DisabledColor)
|
|
|
|
|
|
|
|
def getCardName(value):
|
|
|
|
if value == Unknown:
|
|
|
|
return TTLocalizer.PlayingCardUnknown
|
|
|
|
else:
|
|
|
|
rank = value % MaxRank
|
|
|
|
suit = value / MaxRank
|
|
|
|
return TTLocalizer.getPlayingCardName(suit, rank)
|
|
|
|
|
|
|
|
|
|
|
|
Styles = ['standard']
|
|
|
|
CardImages = {}
|
|
|
|
_cardImagesInitialized = 0
|
|
|
|
_modelPathBase = 'phase_3.5/models/gui/inventory_icons'
|
|
|
|
|
|
|
|
def convertValueToGagTrackAndLevel(value):
|
|
|
|
imageNum = int(rank / MaxSuit)
|
|
|
|
track = imageNum % (ToontownBattleGlobals.MAX_TRACK_INDEX + 1)
|
|
|
|
level = imageNum / (ToontownBattleGlobals.MAX_TRACK_INDEX + 1)
|
|
|
|
return (track, level)
|
|
|
|
|
|
|
|
|
|
|
|
def convertRankToGagTrackAndLevel(rank):
|
2019-12-30 23:20:22 -06:00
|
|
|
track = rank % (ToontownBattleGlobals.MAX_TRACK_INDEX + 1)
|
2019-12-31 12:36:56 -06:00
|
|
|
level = rank // (ToontownBattleGlobals.MAX_TRACK_INDEX + 1)
|
2019-11-02 17:27:54 -05:00
|
|
|
return (track, level)
|
|
|
|
|
|
|
|
|
|
|
|
def initCardImages():
|
|
|
|
global _cardImagesInitialized
|
|
|
|
suitCodes = ('h', 'd', 'c', 's')
|
|
|
|
rankCodes = ('02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '01')
|
|
|
|
for style in Styles:
|
|
|
|
modelPath = _modelPathBase
|
|
|
|
cardModel = loader.loadModel(modelPath)
|
|
|
|
cardModel.hide()
|
|
|
|
CardImages[style] = {}
|
|
|
|
for suitIndex in range(MaxSuit):
|
|
|
|
CardImages[style][suitIndex] = {}
|
|
|
|
for rankIndex in range(MaxRank):
|
|
|
|
track, level = convertRankToGagTrackAndLevel(rankIndex)
|
|
|
|
propName = ToontownBattleGlobals.AvPropsNew[track][level]
|
|
|
|
cardNode = cardModel.find('**/%s' % propName)
|
|
|
|
CardImages[style][suitIndex][rankIndex] = cardNode
|
|
|
|
|
|
|
|
propName = ToontownBattleGlobals.AvPropsNew[ToontownBattleGlobals.MAX_TRACK_INDEX][ToontownBattleGlobals.MAX_LEVEL_INDEX]
|
|
|
|
CardImages[style]['back'] = cardModel.find(propName)
|
|
|
|
|
|
|
|
_cardImagesInitialized = 1
|
|
|
|
|
|
|
|
|
|
|
|
def getImage(style, suit, rank):
|
|
|
|
if _cardImagesInitialized == 0:
|
|
|
|
initCardImages()
|
|
|
|
return CardImages[style][suit][rank]
|
|
|
|
|
|
|
|
|
|
|
|
def getBack(style):
|
|
|
|
if _cardImagesInitialized == 0:
|
|
|
|
initCardImages()
|
|
|
|
return CardImages[style]['back']
|