Add skelecog and waiter invasions to summon page

This commit is contained in:
John 2015-07-07 21:16:55 +03:00
parent e4d46fa992
commit ac60242003
5 changed files with 84 additions and 28 deletions

View file

@ -15,7 +15,7 @@ class SummonCogDialog(DirectFrame, StateData.StateData):
notify.setInfo(True) notify.setInfo(True)
def __init__(self, suitIndex): def __init__(self, suitIndex):
DirectFrame.__init__(self, parent=aspect2dp, pos=(0, 0, 0.3), relief=None, image=DGG.getDefaultDialogGeom(), image_scale=(1.6, 1, 0.85), image_pos=(0, 0, 0.18), image_color=ToontownGlobals.GlobalDialogColor, text=TTLocalizer.SummonDlgTitle, text_scale=0.12, text_pos=(0, 0.5), borderWidth=(0.01, 0.01), sortOrder=NO_FADE_SORT_INDEX) DirectFrame.__init__(self, parent=aspect2dp, pos=(0, 0, 0.3), relief=None, image=DGG.getDefaultDialogGeom(), image_scale=(1.6, 1, 1.07), image_pos=(0, 0, 0.09), image_color=ToontownGlobals.GlobalDialogColor, text=TTLocalizer.SummonDlgTitle, text_scale=0.12, text_pos=(0, 0.5), borderWidth=(0.01, 0.01), sortOrder=NO_FADE_SORT_INDEX)
StateData.StateData.__init__(self, 'summon-cog-done') StateData.StateData.__init__(self, 'summon-cog-done')
self.initialiseoptions(SummonCogDialog) self.initialiseoptions(SummonCogDialog)
self.suitIndex = suitIndex self.suitIndex = suitIndex
@ -41,17 +41,20 @@ class SummonCogDialog(DirectFrame, StateData.StateData):
guiButton = loader.loadModel('phase_3/models/gui/quit_button') guiButton = loader.loadModel('phase_3/models/gui/quit_button')
self.head = Suit.attachSuitHead(self, self.suitName) self.head = Suit.attachSuitHead(self, self.suitName)
z = self.head.getZ() z = self.head.getZ()
self.head.setPos(-0.4, -0.1, z + 0.25) self.head.setPos(-0.4, -0.1, z + 0.14)
self.suitLabel = DirectLabel(parent=self, relief=None, text=self.suitFullName, text_font=ToontownGlobals.getSuitFont(), pos=(-0.4, 0, 0.025), scale=0.07) self.suitLabel = DirectLabel(parent=self, relief=None, text=self.suitFullName, text_font=ToontownGlobals.getSuitFont(), pos=(-0.4, 0, -0.085), scale=0.07)
closeButtonImage = (gui.find('**/CloseBtn_UP'), gui.find('**/CloseBtn_DN'), gui.find('**/CloseBtn_Rllvr')) closeButtonImage = (gui.find('**/CloseBtn_UP'), gui.find('**/CloseBtn_DN'), gui.find('**/CloseBtn_Rllvr'))
buttonImage = (guiButton.find('**/QuitBtn_UP'), guiButton.find('**/QuitBtn_DN'), guiButton.find('**/QuitBtn_RLVR')) buttonImage = (guiButton.find('**/QuitBtn_UP'), guiButton.find('**/QuitBtn_DN'), guiButton.find('**/QuitBtn_RLVR'))
disabledColor = Vec4(0.5, 0.5, 0.5, 1) disabledColor = Vec4(0.5, 0.5, 0.5, 1)
self.summonBuildingButton = DirectButton(parent=self, relief=None, text=TTLocalizer.SummonDlgButton2, image=buttonImage, image_scale=(1.7, 1, 1), image3_color=disabledColor, text_scale=0.06, text_pos=(0, -0.01), pos=(0.3, 0, 0.35), command=self.issueSummons, extraArgs=['building']) base.cr.lmao = self
self.summonInvasionButton = DirectButton(parent=self, relief=None, text=TTLocalizer.SummonDlgButton3, image=buttonImage, image_scale=(1.7, 1, 1), image3_color=disabledColor, text_scale=0.06, text_pos=(0, -0.01), pos=(0.3, 0, 0.225), command=self.issueSummons, extraArgs=['invasion']) self.summonBuildingButton = DirectButton(parent=self, relief=None, text=TTLocalizer.SummonDlgButton1, image=buttonImage, image_scale=(1.7, 1, 1), image3_color=disabledColor, text_scale=0.06, text_pos=(0, -0.01), pos=(0.3, 0, 0.35), command=self.issueSummons, extraArgs=['building'])
self.summonCogdoButton = DirectButton(parent=self, relief=None, text=TTLocalizer.SummonDlgButton4, image=buttonImage, image_scale=(1.7, 1, 1), image3_color=disabledColor, text_scale=0.06, text_pos=(0, -0.01), pos=(0.3, 0, 0.1), command=self.issueSummons, extraArgs=['cogdo']) self.summonInvasionButton = DirectButton(parent=self, relief=None, text=TTLocalizer.SummonDlgButton2, image=buttonImage, image_scale=(1.7, 1, 1), image3_color=disabledColor, text_scale=0.06, text_pos=(0, -0.01), pos=(0.3, 0, 0.225), command=self.issueSummons, extraArgs=['invasion'])
self.summonV2InvasionButton = DirectButton(parent=self, relief=None, text=TTLocalizer.SummonDlgButton5, image=buttonImage, image_scale=(1.7, 1, 1), image3_color=disabledColor, text_scale=0.048, text_pos=(0, -0.01), pos=(0.3, 0, -0.025), command=self.issueSummons, extraArgs=['v2invasion']) self.summonCogdoButton = DirectButton(parent=self, relief=None, text=TTLocalizer.SummonDlgButton3, image=buttonImage, image_scale=(1.7, 1, 1), image3_color=disabledColor, text_scale=0.06, text_pos=(0, -0.01), pos=(0.3, 0, 0.1), command=self.issueSummons, extraArgs=['cogdo'])
self.summonSkelInvasionButton = DirectButton(parent=self, relief=None, text=TTLocalizer.SummonDlgButton4, image=buttonImage, image_scale=(1.7, 1, 1), image3_color=disabledColor, text_scale=0.051, text_pos=(0, -0.01), pos=(0.3, 0, -0.025), command=self.issueSummons, extraArgs=['skelinvasion'])
self.summonWaiterInvasionButton = DirectButton(parent=self, relief=None, text=TTLocalizer.SummonDlgButton5, image=buttonImage, image_scale=(1.7, 1, 1), image3_color=disabledColor, text_scale=0.056, text_pos=(0, -0.01), pos=(0.3, 0, -0.15), command=self.issueSummons, extraArgs=['waiterinvasion'])
self.summonV2InvasionButton = DirectButton(parent=self, relief=None, text=TTLocalizer.SummonDlgButton6, image=buttonImage, image_scale=(1.7, 1, 1), image3_color=disabledColor, text_scale=0.048, text_pos=(0, -0.01), pos=(0.3, 0, -0.275), command=self.issueSummons, extraArgs=['v2invasion'])
self.statusLabel = DirectLabel(parent=self, relief=None, text='', text_wordwrap=12, pos=(0.3, 0, 0.3), scale=0.07) self.statusLabel = DirectLabel(parent=self, relief=None, text='', text_wordwrap=12, pos=(0.3, 0, 0.3), scale=0.07)
self.cancel = DirectButton(parent=self, relief=None, image=closeButtonImage, pos=(0.7, 0, -0.15), command=self.__cancel) self.cancel = DirectButton(parent=self, relief=None, image=closeButtonImage, pos=(0.7, 0, -0.366), command=self.__cancel)
gui.removeNode() gui.removeNode()
guiButton.removeNode() guiButton.removeNode()
self.hide() self.hide()
@ -122,6 +125,8 @@ class SummonCogDialog(DirectFrame, StateData.StateData):
self.summonBuildingButton.hide() self.summonBuildingButton.hide()
self.summonInvasionButton.hide() self.summonInvasionButton.hide()
self.summonCogdoButton.hide() self.summonCogdoButton.hide()
self.summonSkelInvasionButton.hide()
self.summonWaiterInvasionButton.hide()
self.summonV2InvasionButton.hide() self.summonV2InvasionButton.hide()
def issueSummons(self, summonsType): def issueSummons(self, summonsType):
@ -129,6 +134,10 @@ class SummonCogDialog(DirectFrame, StateData.StateData):
text = TTLocalizer.SummonDlgBuildingConf text = TTLocalizer.SummonDlgBuildingConf
elif summonsType == 'invasion': elif summonsType == 'invasion':
text = TTLocalizer.SummonDlgInvasionConf text = TTLocalizer.SummonDlgInvasionConf
elif summonsType == 'skelinvasion':
text = TTLocalizer.SummonDlgSkelInvasionConf
elif summonsType == 'waiterinvasion':
text = TTLocalizer.SummonDlgWaiterInvasionConf
elif summonsType == 'v2invasion': elif summonsType == 'v2invasion':
text = TTLocalizer.SummonDlgV2InvasionConf text = TTLocalizer.SummonDlgV2InvasionConf
text = text % self.suitFullName text = text % self.suitFullName
@ -159,6 +168,8 @@ class SummonCogDialog(DirectFrame, StateData.StateData):
self.summonBuildingButton['state'] = DGG.DISABLED self.summonBuildingButton['state'] = DGG.DISABLED
self.summonInvasionButton['state'] = DGG.DISABLED self.summonInvasionButton['state'] = DGG.DISABLED
self.summonCogdoButton['state'] = DGG.DISABLED self.summonCogdoButton['state'] = DGG.DISABLED
self.summonSkelInvasionButton['state'] = DGG.DISABLED
self.summonWaiterInvasionButton['state'] = DGG.DISABLED
self.summonV2InvasionButton['state'] = DGG.DISABLED self.summonV2InvasionButton['state'] = DGG.DISABLED
def enableButtons(self): def enableButtons(self):
@ -168,6 +179,10 @@ class SummonCogDialog(DirectFrame, StateData.StateData):
self.summonInvasionButton['state'] = DGG.NORMAL self.summonInvasionButton['state'] = DGG.NORMAL
if base.localAvatar.hasCogSummons(self.suitIndex, 'cogdo'): if base.localAvatar.hasCogSummons(self.suitIndex, 'cogdo'):
self.summonCogdoButton['state'] = DGG.NORMAL self.summonCogdoButton['state'] = DGG.NORMAL
if base.localAvatar.hasCogSummons(self.suitIndex, 'skelinvasion'):
self.summonSkelInvasionButton['state'] = DGG.NORMAL
if base.localAvatar.hasCogSummons(self.suitIndex, 'waiterinvasion'):
self.summonWaiterInvasionButton['state'] = DGG.NORMAL
if base.localAvatar.hasCogSummons(self.suitIndex, 'v2invasion'): if base.localAvatar.hasCogSummons(self.suitIndex, 'v2invasion'):
self.summonV2InvasionButton['state'] = DGG.NORMAL self.summonV2InvasionButton['state'] = DGG.NORMAL

View file

@ -646,7 +646,7 @@ class DistributedLawbotBossAI(DistributedBossCogAI.DistributedBossCogAI, FSM.FSM
BattleExperienceAI.assignRewards(self.involvedToons, self.toonSkillPtsGained, self.suitsKilled, ToontownGlobals.dept2cogHQ(self.dept), self.helpfulToons) BattleExperienceAI.assignRewards(self.involvedToons, self.toonSkillPtsGained, self.suitsKilled, ToontownGlobals.dept2cogHQ(self.dept), self.helpfulToons)
preferredDept = random.randrange(len(SuitDNA.suitDepts)) preferredDept = random.randrange(len(SuitDNA.suitDepts))
#typeWeights = ['single'] * 70 + ['building'] * 27 + ['invasion'] * 3 #typeWeights = ['single'] * 70 + ['building'] * 27 + ['invasion'] * 3
preferredSummonType = random.choice(['building', 'invasion', 'cogdo', 'v2invasion']) preferredSummonType = random.choice(['building', 'invasion', 'cogdo', 'skelinvasion', 'waiterinvasion', 'v2invasion'])
for toonId in self.involvedToons: for toonId in self.involvedToons:
toon = self.air.doId2do.get(toonId) toon = self.air.doId2do.get(toonId)
if toon: if toon:
@ -665,6 +665,10 @@ class DistributedLawbotBossAI(DistributedBossCogAI.DistributedBossCogAI, FSM.FSM
summonType = 'invasion' summonType = 'invasion'
elif not toon.hasParticularCogSummons(prefDeptIndex, cogLevel, 'cogdo'): elif not toon.hasParticularCogSummons(prefDeptIndex, cogLevel, 'cogdo'):
summonType = 'cogdo' summonType = 'cogdo'
elif not toon.hasParticularCogSummons(prefDeptIndex, cogLevel, 'skelinvasion'):
summonType = 'skelinvasion'
elif not toon.hasParticularCogSummons(prefDeptIndex, cogLevel, 'waiterinvasion'):
summonType = 'waiterinvasion'
elif not toon.hasParticularCogSummons(prefDeptIndex, cogLevel, 'v2invasion'): elif not toon.hasParticularCogSummons(prefDeptIndex, cogLevel, 'v2invasion'):
summonType = 'v2invasion' summonType = 'v2invasion'
else: else:
@ -689,6 +693,16 @@ class DistributedLawbotBossAI(DistributedBossCogAI.DistributedBossCogAI, FSM.FSM
deptIndex = curDeptIndex deptIndex = curDeptIndex
foundOne = True foundOne = True
break break
elif not toon.hasParticularCogSummons(curDeptIndex, cogLevel, 'skelinvasion'):
summonType = 'skelinvasion'
deptIndex = curDeptIndex
foundOne = True
break
elif not toon.hasParticularCogSummons(curDeptIndex, cogLevel, 'waiterinvasion'):
summonType = 'waiterinvasion'
deptIndex = curDeptIndex
foundOne = True
break
elif not toon.hasParticularCogSummons(curDeptIndex, cogLevel, 'v2invasion'): elif not toon.hasParticularCogSummons(curDeptIndex, cogLevel, 'v2invasion'):
summonType = 'v2invasion' summonType = 'v2invasion'
deptIndex = curDeptIndex deptIndex = curDeptIndex
@ -697,7 +711,7 @@ class DistributedLawbotBossAI(DistributedBossCogAI.DistributedBossCogAI, FSM.FSM
possibleCogLevel = range(SuitDNA.suitsPerDept) possibleCogLevel = range(SuitDNA.suitsPerDept)
possibleDeptIndex = range(len(SuitDNA.suitDepts)) possibleDeptIndex = range(len(SuitDNA.suitDepts))
possibleSummonType = ['building', 'invasion', 'cogdo', 'v2invasion'] possibleSummonType = ['building', 'invasion', 'cogdo', 'skelinvasion', 'waiterinvasion', 'v2invasion']
#typeWeights = ['single'] * 70 + ['building'] * 27 + ['invasion'] * 3 #typeWeights = ['single'] * 70 + ['building'] * 27 + ['invasion'] * 3
if not foundOne: if not foundOne:
for i in xrange(5): for i in xrange(5):

View file

@ -1690,8 +1690,12 @@ class DistributedToon(DistributedPlayer.DistributedPlayer, Toon.Toon, Distribute
return curSetting & 2 return curSetting & 2
elif type == 'cogdo': elif type == 'cogdo':
return curSetting & 4 return curSetting & 4
elif type == 'v2invasion': elif type == 'skelinvasion':
return curSetting & 8 return curSetting & 8
elif type == 'waiterinvasion':
return curSetting & 16
elif type == 'v2invasion':
return curSetting & 32
return curSetting return curSetting
def setFlowerCollection(self, speciesList, varietyList): def setFlowerCollection(self, speciesList, varietyList):

View file

@ -3014,7 +3014,7 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo
self.kart.start() self.kart.start()
def reqCogSummons(self, type, suitIndex): def reqCogSummons(self, type, suitIndex):
if type not in ('building', 'invasion', 'cogdo', 'v2invasion'): if type not in ('building', 'invasion', 'cogdo', 'skelinvasion', 'waiterinvasion', 'v2invasion'):
self.air.writeServerEvent('suspicious', self.doId, 'invalid cog summons type: %s' % type) self.air.writeServerEvent('suspicious', self.doId, 'invalid cog summons type: %s' % type)
self.sendUpdate('cogSummonsResponse', ['fail', suitIndex, 0]) self.sendUpdate('cogSummonsResponse', ['fail', suitIndex, 0])
return return
@ -3034,7 +3034,14 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo
elif type.endswith('invasion'): elif type.endswith('invasion'):
suitDeptIndex = suitIndex / SuitDNA.suitsPerDept suitDeptIndex = suitIndex / SuitDNA.suitsPerDept
suitTypeIndex = suitIndex % SuitDNA.suitsPerDept suitTypeIndex = suitIndex % SuitDNA.suitsPerDept
flags = SuitInvasionGlobals.IFV2 if type.startswith('v2') else 0 if type.startswith('v2'):
flags = SuitInvasionGlobals.IFV2
elif type.startswith('skel'):
flags = SuitInvasionGlobals.IFSkelecog
elif type.startswith('waiter'):
flags = SuitInvasionGlobals.IFWaiter
else:
flags = 0
returnCode = self.doCogInvasion(suitDeptIndex, suitTypeIndex, flags) returnCode = self.doCogInvasion(suitDeptIndex, suitTypeIndex, flags)
if returnCode: if returnCode:
if returnCode[0] == 'success': if returnCode[0] == 'success':
@ -3149,8 +3156,12 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo
curSetting |= 2 curSetting |= 2
elif type == 'cogdo': elif type == 'cogdo':
curSetting |= 4 curSetting |= 4
elif type == 'v2invasion': elif type == 'skelinvasion':
curSetting |= 8 curSetting |= 8
elif type == 'waiterinvasion':
curSetting |= 16
elif type == 'v2invasion':
curSetting |= 32
summons[suitIndex] = curSetting summons[suitIndex] = curSetting
self.b_setCogSummonsEarned(summons) self.b_setCogSummonsEarned(summons)
@ -3164,8 +3175,12 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo
curSetting &= -3 curSetting &= -3
elif type == 'cogdo': elif type == 'cogdo':
curSetting &= -5 curSetting &= -5
elif type == 'v2invasion': elif type == 'skelinvasion':
curSetting &= -9 curSetting &= -9
elif type == 'waiterinvasion':
curSetting &= -17
elif type == 'v2invasion':
curSetting &= -33
summons[suitIndex] = curSetting summons[suitIndex] = curSetting
self.b_setCogSummonsEarned(summons) self.b_setCogSummonsEarned(summons)
if hasattr(self, 'autoRestockSummons') and self.autoRestockSummons: if hasattr(self, 'autoRestockSummons') and self.autoRestockSummons:
@ -3183,8 +3198,12 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo
return curSetting & 2 return curSetting & 2
elif type == 'cogdo': elif type == 'cogdo':
return curSetting & 4 return curSetting & 4
elif type == 'v2invasion': elif type == 'skelinvasion':
return curSetting & 8 return curSetting & 8
elif type == 'waiterinvasion':
return curSetting & 16
elif type == 'v2invasion':
return curSetting & 32
return curSetting return curSetting
def hasParticularCogSummons(self, deptIndex, level, type): def hasParticularCogSummons(self, deptIndex, level, type):
@ -3212,7 +3231,7 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo
else: else:
numSuits = len(SuitDNA.suitHeadTypes) numSuits = len(SuitDNA.suitHeadTypes)
suitIndex = random.randrange(0, numSuits) suitIndex = random.randrange(0, numSuits)
summonTypes = ['building', 'invasion', 'cogdo', 'v2invasion'] summonTypes = ['building', 'invasion', 'cogdo', 'skelinvasion', 'waiterinvasion', 'v2invasion']
if summonType in summonTypes: if summonType in summonTypes:
type = summonType type = summonType
else: else:
@ -4089,7 +4108,7 @@ def allSummons():
invoker = spellbook.getInvoker() invoker = spellbook.getInvoker()
numSuits = len(SuitDNA.suitHeadTypes) numSuits = len(SuitDNA.suitHeadTypes)
fullSetForSuit = 1 | 2 | 4 | 8 fullSetForSuit = 1 | 2 | 4 | 8 | 16 | 32
allSummons = numSuits * [fullSetForSuit] allSummons = numSuits * [fullSetForSuit]
invoker.b_setCogSummonsEarned(allSummons) invoker.b_setCogSummonsEarned(allSummons)
return 'Lots of summons!' return 'Lots of summons!'

View file

@ -4604,29 +4604,29 @@ SuitInvasionBulletin = [
SkelecogInvasionBegin = [ SkelecogInvasionBegin = [
"Hmm... We're getting a strange reading over here...", "Hmm... We're getting a strange reading over here...",
'The Cog factories are running out of parts to build new Cogs!', 'The Cog factories are running out of parts to build new Cogs!',
'Skelecogs have taken over Toontown!!!' '%(singular)s Skelecogs have taken over Toontown!!!'
] ]
SkelecogInvasionEnd = [ SkelecogInvasionEnd = [
'The Skelecog invasion has ended!!!', 'The %(singular)s Skelecog invasion has ended!!!',
'The Toons have saved the day once again!!!' 'The Toons have saved the day once again!!!'
] ]
SkelecogInvasionBulletin = [ SkelecogInvasionBulletin = [
'There is a Cog invasion in progress!!!', 'There is a Cog invasion in progress!!!',
'The Cog factories are running out of parts to build new Cogs!', 'The Cog factories are running out of parts to build new Cogs!',
'Skelecogs have taken over Toontown!!!' '%(singular)s Skelecogs have taken over Toontown!!!'
] ]
WaiterInvasionBegin = [ WaiterInvasionBegin = [
'It appears that the C.E.O. has fired all his waiters...', 'It appears that the C.E.O. has fired all his waiters...',
'The unemployed waiters are invading Toontown!!!' 'The unemployed %(singular)s waiters are invading Toontown!!!'
] ]
WaiterInvasionEnd = [ WaiterInvasionEnd = [
'The unemployed waiters have been defeated!!!', 'The unemployed %(singular)s waiters have been defeated!!!',
'The Toons have saved the day once again!!!' 'The Toons have saved the day once again!!!'
] ]
WaiterInvasionBulletin = [ WaiterInvasionBulletin = [
'There is a Cog invasion in progress!!!', 'There is a Cog invasion in progress!!!',
'The C.E.O. has fired all of his waiters!!!', 'The C.E.O. has fired all of his waiters!!!',
'The unemployed waiters are invading Toontown!!!' 'The unemployed %(singular)s waiters are invading Toontown!!!'
] ]
V2InvasionBegin = [ V2InvasionBegin = [
"Yikes!!! This isn't good, Toons!", "Yikes!!! This isn't good, Toons!",
@ -7567,12 +7567,16 @@ WitnessToonJuryWeightBonusPlural = {6: 'This is a tough case. You seated %d Toon
8: 'This is the toughest case. You seated %d Toon jurors, so your evidence has a bonus weight of %d.'} 8: 'This is the toughest case. You seated %d Toon jurors, so your evidence has a bonus weight of %d.'}
IssueSummons = 'Summon' IssueSummons = 'Summon'
SummonDlgTitle = 'Issue a Cog Summon' SummonDlgTitle = 'Issue a Cog Summon'
SummonDlgButton2 = 'Summon a Cog Building' SummonDlgButton1 = 'Summon a Cog Building'
SummonDlgButton3 = 'Summon a Cog Invasion' SummonDlgButton2 = 'Summon a Cog Invasion'
SummonDlgButton4 = 'Summon a Field Office' SummonDlgButton3 = 'Summon a Field Office'
SummonDlgButton5 = 'Summon a Version 2.0 Invasion' SummonDlgButton4 = 'Summon a Skelecog Invasion'
SummonDlgButton5 = 'Summon a Waiter Invasion'
SummonDlgButton6 = 'Summon a Version 2.0 Invasion'
SummonDlgBuildingConf = 'Would you like to summon a %s to a nearby Toon building?' SummonDlgBuildingConf = 'Would you like to summon a %s to a nearby Toon building?'
SummonDlgInvasionConf = 'Would you like to summon a %s invasion?' SummonDlgInvasionConf = 'Would you like to summon a %s invasion?'
SummonDlgSkelInvasionConf = 'Would you like to summon a %s (Skelecog) invasion?'
SummonDlgWaiterInvasionConf = 'Would you like to summon a %s (Waiter) invasion?'
SummonDlgV2InvasionConf = 'Would you like to summon a Version 2.0 %s invasion?' SummonDlgV2InvasionConf = 'Would you like to summon a Version 2.0 %s invasion?'
SummonDlgNumLeft = 'You have %s left.' SummonDlgNumLeft = 'You have %s left.'
SummonDlgDelivering = 'Delivering Summons...' SummonDlgDelivering = 'Delivering Summons...'