Esempio n. 1
0
    def _render_normal_movemode(self):
        if self.mover.get_current_speed() <= 1:
            self.clock.set_ap_mp_costs()
        elif pbge.my_state.view.mouse_tile in self.nav.cost_to_tile:
            mypath = self.nav.get_path(pbge.my_state.view.mouse_tile)

            # Draw the trail, highlighting where one action point ends and the next begins.
            traildrawer.draw_trail(
                self.cursor_sprite, self.SC_TRAILMARKER, self.SC_ZEROCURSOR,
                self.SC_ENDCURSOR, self.camp.scene, self.mover,
                self.camp.fight.cstat[self.mover].mp_remaining, mypath)
            self.clock.set_ap_mp_costs(mp_to_spend=self.nav.cost_to_tile[
                pbge.my_state.view.mouse_tile])
        elif pbge.my_state.view.mouse_tile in self.reachable_waypoints:
            wp, pos = self.reachable_waypoints[pbge.my_state.view.mouse_tile]
            mypath = self.nav.get_path(pos)

            # Draw the trail, highlighting where one action point ends and the next begins.
            traildrawer.draw_trail(
                self.cursor_sprite, self.SC_TRAILMARKER, self.SC_ZEROCURSOR,
                self.SC_ENDCURSOR, self.camp.scene, self.mover,
                self.camp.fight.cstat[self.mover].mp_remaining, mypath)
            self.clock.set_ap_mp_costs(
                ap_to_spend=1, mp_to_spend=self.nav.cost_to_tile[mypath[-1]])

        else:
            pbge.my_state.view.overlays[pbge.my_state.view.mouse_tile] = (
                self.cursor_sprite, self.SC_VOIDCURSOR)
            self.clock.set_ap_mp_costs()
Esempio n. 2
0
    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()
Esempio n. 3
0
    def render(self):
        pbge.my_state.view.overlays.clear()
        pbge.my_state.view.overlays[self.origin] = (self.cursor_sprite,
                                                    self.SC_ORIGIN)

        if pbge.my_state.view.mouse_tile in self.nav.cost_to_tile:
            pbge.my_state.view.overlays[pbge.my_state.view.mouse_tile] = (
                self.cursor_sprite, self.SC_ZEROCURSOR + min(
                    4,
                    self.camp.fight.ap_needed(self.mover, self.nav,
                                              pbge.my_state.view.mouse_tile)))
            mypath = self.nav.get_path(pbge.my_state.view.mouse_tile)

            # Draw the trail, highlighting where one action point ends and the next begins.
            traildrawer.draw_trail(
                self.cursor_sprite, self.SC_TRAILMARKER, self.SC_ZEROCURSOR,
                self.camp.scene, self.mover,
                self.camp.fight.cstat[self.mover].mp_remaining, mypath)
        elif pbge.my_state.view.mouse_tile in self.reachable_waypoints:
            wp, pos = self.reachable_waypoints[pbge.my_state.view.mouse_tile]
            pbge.my_state.view.overlays[pos] = (
                self.cursor_sprite, self.SC_ZEROCURSOR +
                min(4, self.camp.fight.ap_needed(self.mover, self.nav, pos)))
            pbge.my_state.view.overlays[wp.pos] = (self.cursor_sprite,
                                                   self.SC_CURSOR)
            mypath = self.nav.get_path(pos)

            # Draw the trail, highlighting where one action point ends and the next begins.
            traildrawer.draw_trail(
                self.cursor_sprite, self.SC_TRAILMARKER, self.SC_ZEROCURSOR,
                self.camp.scene, self.mover,
                self.camp.fight.cstat[self.mover].mp_remaining, mypath)

        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:
            my_info.popup()

        pbge.my_state.do_flip()