def render( self ): pbge.my_state.view.overlays.clear() pbge.my_state.view.overlays[ self.attacker.pos ] = (self.cursor_sprite,self.SC_ORIGIN) mmecha = pbge.my_state.view.modelmap.get(pbge.my_state.view.mouse_tile) if pbge.my_state.view.mouse_tile in self.legal_tiles: aoe = self.invo.area.get_area( self.camp, self.attacker.pos, pbge.my_state.view.mouse_tile ) for p in aoe: pbge.my_state.view.overlays[ p ] = (self.cursor_sprite,self.SC_AOE) if self.targets: for t in self.targets: aoe = self.invo.area.get_area( self.camp, self.attacker.pos, t ) for p in aoe: pbge.my_state.view.overlays[ p ] = (self.cursor_sprite,self.SC_AOE) if pbge.my_state.view.mouse_tile in self.legal_tiles: pbge.my_state.view.overlays[ pbge.my_state.view.mouse_tile ] = (self.cursor_sprite,self.SC_CURSOR) elif mmecha and self.can_move_and_attack( mmecha[0] ): fp = min(self.firing_points, key=lambda r: self.nav.cost_to_tile.get(r,10000)) pbge.my_state.view.overlays[ pbge.my_state.view.mouse_tile ] = (self.cursor_sprite,self.SC_CURSOR) mypath = self.nav.get_path(fp) for p in mypath[1:]: pbge.my_state.view.overlays[ p ] = (self.cursor_sprite,self.SC_TRAILMARKER) else: pbge.my_state.view.overlays[ pbge.my_state.view.mouse_tile ] = (self.cursor_sprite,self.SC_VOIDCURSOR) pbge.my_state.view() # Display info for this tile. my_info = self.camp.scene.get_tile_info(pbge.my_state.view.mouse_tile) if my_info: if mmecha and hasattr(self.invo.fx,"get_odds"): odds,modifiers = self.invo.fx.get_odds(self.camp,self.attacker,mmecha[0]) my_info.info_blocks.append(info.OddsInfoBlock(odds,modifiers)) my_info.popup()
def render(self, flash=False): if self.num_targets > 1: self.targets_widget.active = True else: self.targets_widget.active = False pbge.my_state.view.overlays.clear() pbge.my_state.view.overlays[self.pc.pos] = (self.cursor_sprite, self.SC_ORIGIN) mmecha = pbge.my_state.view.modelmap.get(pbge.my_state.view.mouse_tile) if mmecha: mmecha = [m for m in mmecha if m.is_operational()] if self.invo and pbge.my_state.view.mouse_tile in self.legal_tiles: aoe = self.invo.area.get_area(self.camp, self.pc.pos, pbge.my_state.view.mouse_tile) for p in aoe: pbge.my_state.view.overlays[p] = (self.cursor_sprite, self.SC_AOE) if self.invo and self.targets: for t in self.targets: aoe = self.invo.area.get_area(self.camp, self.pc.pos, t) for p in aoe: pbge.my_state.view.overlays[p] = (self.cursor_sprite, self.SC_AOE) if pbge.my_state.view.mouse_tile in self.legal_tiles: pbge.my_state.view.overlays[pbge.my_state.view.mouse_tile] = ( self.cursor_sprite, self.SC_CURSOR) if self.clock: self.clock.set_ap_mp_costs(ap_to_spend=1) elif mmecha and self.can_move_and_attack(mmecha[0].pos): if self.camp.fight: mp_remaining = self.camp.fight.cstat[self.pc].mp_remaining if self.clock: self.clock.set_ap_mp_costs( ap_to_spend=1, mp_to_spend=self.nav.cost_to_tile[self.mypath[-1]]) else: mp_remaining = float('inf') traildrawer.draw_trail( self.cursor_sprite, self.SC_TRAILMARKER, self.SC_ZEROCURSOR, self.SC_ENDCURSOR, self.camp.scene, self.pc, mp_remaining, self.mypath + [pbge.my_state.view.mouse_tile]) else: pbge.my_state.view.overlays[pbge.my_state.view.mouse_tile] = ( self.cursor_sprite, self.SC_VOIDCURSOR) if self.clock: self.clock.set_ap_mp_costs() pbge.my_state.view() # Display info for this tile. my_info = self.camp.scene.get_tile_info(pbge.my_state.view) if my_info: if self.invo and mmecha and hasattr(self.invo.fx, "get_odds"): odds, modifiers = self.invo.fx.get_odds( self.camp, self.pc, mmecha[0]) my_info.info_blocks.append(info.OddsInfoBlock(odds, modifiers)) my_info.view_display()