mirror of
https://github.com/Sneed-Group/Poodletooth-iLand
synced 2025-01-09 17:53:50 +00:00
Pets will work in battle now.
This commit is contained in:
parent
6bd6420254
commit
ab3072fb84
4 changed files with 12 additions and 8 deletions
|
@ -1090,7 +1090,6 @@ class DistributedBattleBase(DistributedNode.DistributedNode, BattleBase):
|
||||||
|
|
||||||
def __handleLocalToonBattleEvent(self, response):
|
def __handleLocalToonBattleEvent(self, response):
|
||||||
mode = response['mode']
|
mode = response['mode']
|
||||||
print(response)
|
|
||||||
noAttack = 0
|
noAttack = 0
|
||||||
if mode == 'Attack':
|
if mode == 'Attack':
|
||||||
self.notify.debug('got an attack')
|
self.notify.debug('got an attack')
|
||||||
|
|
|
@ -1136,7 +1136,7 @@ class DistributedBattleBaseAI(DistributedObjectAI.DistributedObjectAI, BattleBas
|
||||||
petProxy.setSurprise(pet.getSurprise())
|
petProxy.setSurprise(pet.getSurprise())
|
||||||
pet.requestDelete()
|
pet.requestDelete()
|
||||||
def deleted(task):
|
def deleted(task):
|
||||||
petProxy.dbObject = 1
|
petProxy.doNotDeallocateChannel = True
|
||||||
petProxy.generateWithRequiredAndId(petId, self.air.districtId, self.zoneId)
|
petProxy.generateWithRequiredAndId(petId, self.air.districtId, self.zoneId)
|
||||||
petProxy.broadcastDominantMood()
|
petProxy.broadcastDominantMood()
|
||||||
self.pets[toonId] = petProxy
|
self.pets[toonId] = petProxy
|
||||||
|
|
|
@ -108,7 +108,7 @@ class LoadPetFSM(FSM):
|
||||||
self.estate = estate
|
self.estate = estate
|
||||||
self.toon = toon
|
self.toon = toon
|
||||||
self.callback = callback
|
self.callback = callback
|
||||||
self.pet = None
|
|
||||||
self.done = False
|
self.done = False
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
|
@ -229,7 +229,7 @@ class LoadEstateFSM(FSM):
|
||||||
|
|
||||||
def __gotEstate(self, estate):
|
def __gotEstate(self, estate):
|
||||||
self.estate = estate
|
self.estate = estate
|
||||||
self.estate.pets = []
|
estate.pets = []
|
||||||
|
|
||||||
self.estate.toons = self.toonIds
|
self.estate.toons = self.toonIds
|
||||||
self.estate.updateToons()
|
self.estate.updateToons()
|
||||||
|
@ -268,17 +268,16 @@ class LoadEstateFSM(FSM):
|
||||||
fsm = LoadPetFSM(self.mgr, self.estate, toon, self.__petDone)
|
fsm = LoadPetFSM(self.mgr, self.estate, toon, self.__petDone)
|
||||||
self.petFSMs.append(fsm)
|
self.petFSMs.append(fsm)
|
||||||
fsm.start()
|
fsm.start()
|
||||||
else:
|
|
||||||
continue
|
|
||||||
|
|
||||||
if not self.petFSMs:
|
if not self.petFSMs:
|
||||||
self.demand('Finished')
|
taskMgr.doMethodLater(0, lambda: self.demand('Finished'), 'nopets', extraArgs=[])
|
||||||
|
|
||||||
def __petDone(self, pet):
|
def __petDone(self, pet):
|
||||||
if self.state != 'LoadPets':
|
if self.state != 'LoadPets':
|
||||||
pet.requestDelete()
|
pet.requestDelete()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# A petFSM just finished! Let's see if all of them are done:
|
||||||
if all(petFSM.done for petFSM in self.petFSMs):
|
if all(petFSM.done for petFSM in self.petFSMs):
|
||||||
self.demand('Finished')
|
self.demand('Finished')
|
||||||
|
|
||||||
|
@ -429,6 +428,12 @@ class EstateManagerAI(DistributedObjectAI):
|
||||||
estate.destroy()
|
estate.destroy()
|
||||||
estate.owner.estate = None
|
estate.owner.estate = None
|
||||||
|
|
||||||
|
# Destroy pets:
|
||||||
|
for pet in estate.pets:
|
||||||
|
pet.requestDelete()
|
||||||
|
|
||||||
|
estate.pets = []
|
||||||
|
|
||||||
# Free estate's zone:
|
# Free estate's zone:
|
||||||
self.air.deallocateZone(estate.zoneId)
|
self.air.deallocateZone(estate.zoneId)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue