def __init__(self, party, enemies): GameState.__init__(self) self.bkg = gfx.load("misc/overpass.png") self.bkg = pygame.transform.scale(self.bkg, (sd.get_size())) self.actors = [] self.glitter = [] hero = lib2d.sheetloader.load_actor("hero", Hero) hero.avatar.play("walk") hero.face("north") self.actors.append(hero) m0 = Monster() m0.render() m0.rect.topleft = (170, 10) # hack party = [hero] enemies = [m0] self.timer = VisualTimer(0, (10, 30, 100, 16)) self.player_area = Rect(160, 140, 160, 78) self.party = [party, enemies] self.member_focus = 0 self.stale_spells = [] # kinda a hack until [if] i properly implement a scheduler for # concurrent states self.states = [] self.substate = None
def __init__(self, party, enemies): GameState.__init__(self) self.bkg = gfx.load("misc/overpass.png") self.bkg = pygame.transform.scale(self.bkg, (sd.get_size())) self.actors = [] self.glitter = [] hero = lib2d.sheetloader.load_actor("hero", Hero) hero.avatar.play("walk") hero.face("north") self.actors.append(hero) m0 = Monster() m0.render() m0.rect.topleft = (170, 10) # hack party = [hero] enemies = [m0] self.timer = VisualTimer(0, (10,30,100,16)) self.player_area = Rect(160, 140, 160, 78) self.party = [party, enemies] self.member_focus = 0 self.stale_spells = [] # kinda a hack until [if] i properly implement a scheduler for # concurrent states self.states = [] self.substate = None
class BattleState(GameState): """ This state is used to handle combat between the player and a CPU monster. The real work is handled by SelectState and StackState. """ def __init__(self, party, enemies): GameState.__init__(self) self.bkg = gfx.load("misc/overpass.png") self.bkg = pygame.transform.scale(self.bkg, (sd.get_size())) self.actors = [] self.glitter = [] hero = lib2d.sheetloader.load_actor("hero", Hero) hero.avatar.play("walk") hero.face("north") self.actors.append(hero) m0 = Monster() m0.render() m0.rect.topleft = (170, 10) # hack party = [hero] enemies = [m0] self.timer = VisualTimer(0, (10,30,100,16)) self.player_area = Rect(160, 140, 160, 78) self.party = [party, enemies] self.member_focus = 0 self.stale_spells = [] # kinda a hack until [if] i properly implement a scheduler for # concurrent states self.states = [] self.substate = None def win(self): """ Called when the player wins """ sd.replace(WinningState()) def start(self, state): """ hack! """ self.states.append(state) self.substate = self.states[-1] self.substate.activate() def done(self): """ hack! """ self.substate.deactivate() self.states.pop() self.substate = self.states[-1] self.substate.activate() def draw(self, surface): surface.fill((0,0,0)) self.substate.draw(surface) self.timer.draw(surface) surface.blit(self.party[1][0].image, (170,10)) # draw the monster [ g.draw(surface) for g in self.glitter ] surface.fill((32,32,32), self.player_area) def handle_event(self, event): self.substate.handle_event(event) def activate(self): self.start(SelectState(self)) def update(self, time): """ if another state such as select state is here, make sure they are calling this update """ [ i.update(time) for i in self.glitter ] [ a.avatar.update(time) for a in self.actors ] self.timer.update(time) self.glitter = [ i for i in self.glitter if i.alive ] self.substate.update(time)
class BattleState(GameState): """ This state is used to handle combat between the player and a CPU monster. The real work is handled by SelectState and StackState. """ def __init__(self, party, enemies): GameState.__init__(self) self.bkg = gfx.load("misc/overpass.png") self.bkg = pygame.transform.scale(self.bkg, (sd.get_size())) self.actors = [] self.glitter = [] hero = lib2d.sheetloader.load_actor("hero", Hero) hero.avatar.play("walk") hero.face("north") self.actors.append(hero) m0 = Monster() m0.render() m0.rect.topleft = (170, 10) # hack party = [hero] enemies = [m0] self.timer = VisualTimer(0, (10, 30, 100, 16)) self.player_area = Rect(160, 140, 160, 78) self.party = [party, enemies] self.member_focus = 0 self.stale_spells = [] # kinda a hack until [if] i properly implement a scheduler for # concurrent states self.states = [] self.substate = None def win(self): """ Called when the player wins """ sd.replace(WinningState()) def start(self, state): """ hack! """ self.states.append(state) self.substate = self.states[-1] self.substate.activate() def done(self): """ hack! """ self.substate.deactivate() self.states.pop() self.substate = self.states[-1] self.substate.activate() def draw(self, surface): surface.fill((0, 0, 0)) self.substate.draw(surface) self.timer.draw(surface) surface.blit(self.party[1][0].image, (170, 10)) # draw the monster [g.draw(surface) for g in self.glitter] surface.fill((32, 32, 32), self.player_area) def handle_event(self, event): self.substate.handle_event(event) def activate(self): self.start(SelectState(self)) def update(self, time): """ if another state such as select state is here, make sure they are calling this update """ [i.update(time) for i in self.glitter] [a.avatar.update(time) for a in self.actors] self.timer.update(time) self.glitter = [i for i in self.glitter if i.alive] self.substate.update(time)