示例#1
0
import pygame
from monster import get_monster
from items import get_water, get_foodstuff, get_medicine, get_weapon

# Color palette:
COLOR_DARKEST   = (26, 14, 5)
COLOR_DARK      = (50, 31, 19)
COLOR_LIGHT     = (130, 102, 84)
COLOR_LIGHTEST  = (203, 163, 136)

# Tile
TILE_W = TILE_H = 32
DEFAULT_MONSTER_LIST = [get_monster("rattlesnake"), get_monster("small_scorpion"),
        get_monster("big_scorpion"), get_monster("road_runner"),
        get_monster("coyote"), get_monster("camel"), get_monster("skink")]
DEFAULT_FOOD_LIST = [get_foodstuff("cactus_piece")]
DEFAULT_HYDRATION_LIST = [get_water("water_bottle")]
DEFAULT_MEDICINE_LIST = [get_medicine("antidote")]
DEFAULT_WEAPON_LIST = [get_weapon("stick"), get_weapon("sharp_rock"),
        get_weapon("pointy_stick")]

OASIS_MONSTER_LIST = DEFAULT_MONSTER_LIST + [get_monster("crocodile")]

CAMP_FOOD_LIST = [get_foodstuff("cactus_piece"), get_foodstuff("granola_bar")]
CAMP_WEAPON_LIST = [get_weapon("plusone_mace")]

PYRAMID_WEAPON_LIST = [get_weapon("warped_blade")]


# Character:
CHANCE_DEC = 20
示例#2
0
    def handleEvents(self):
        event_list = pygame.event.get()

        def handleMouseEvent(event):
            self.splashing = 0
            clicked_pos = pygame.mouse.get_pos()

            if self.state == "normal":
                if self.button_search.get_surface_mapped_rect(_screen).collidepoint(clicked_pos):
                    curtile = self.world.get_cur_tile(self.character.position)
                    self.console.push_text("You search the area around you...")
                    self.character.search(curtile)

                elif self.button_drink_antidote.get_surface_mapped_rect(_screen).collidepoint(clicked_pos):
                    self.character.use_antidote()

                elif self.button_end_turn.get_surface_mapped_rect(_screen).collidepoint(clicked_pos):
                    self.console.push_text("Tired, you make the decision to rest for a while")
                    self.newturn()

                elif self.dirbtn.n_rect.collidepoint(clicked_pos):
                    self.character.move("N", self.world, self.console)

                elif self.dirbtn.s_rect.collidepoint(clicked_pos):
                    self.character.move("S", self.world, self.console)

                elif self.dirbtn.e_rect.collidepoint(clicked_pos):
                    self.character.move("E", self.world, self.console)

                elif self.dirbtn.w_rect.collidepoint(clicked_pos):
                    self.character.move("W", self.world, self.console)

            elif self.state == "combat":
                if self.button_attack.get_surface_mapped_rect(_screen).collidepoint(clicked_pos):
                    self.combat.do_combat_turn(1)

                elif self.button_defend.get_surface_mapped_rect(_screen).collidepoint(clicked_pos):
                    self.combat.do_combat_turn(2)

                elif self.button_flee.get_surface_mapped_rect(_screen).collidepoint(clicked_pos):
                    self.combat.do_combat_turn(3)

        def handleKeyEvent(event):
            self.splashing = 0
            if event.key == pygame.K_ESCAPE:
                self.running = False
            elif self.state == "normal":
                if event.key == pygame.K_w or event.key == pygame.K_UP:
                    self.character.move("N", self.world, self.console)

                elif event.key == pygame.K_s or event.key == pygame.K_DOWN:
                    self.character.move("S", self.world, self.console)

                elif event.key == pygame.K_d or event.key == pygame.K_RIGHT:
                    self.character.move("E", self.world, self.console)

                elif event.key == pygame.K_a or event.key == pygame.K_LEFT:
                    self.character.move("W", self.world, self.console)

        for event in event_list:
            if event.type == pygame.MOUSEBUTTONUP:
                handleMouseEvent(event)

            elif event.type == pygame.KEYUP:
                handleKeyEvent(event)

            elif event.type == config.COMBAT:
                self.state = "combat"
                curtile = self.world.get_cur_tile(self.character.position)
                self.combat = combat(self.character, curtile.get_monster(), self.console)
            elif event.type == config.ENDCOMBAT:
                self.state = "normal"
                self.combat = None
            elif event.type == config.GAMEOVER:
                self.state = "gameover"
            elif event.type == config.NEWTURN:
                self.newturn()
            elif event.type == config.WIN:
                self.state = "normal"
                self.combat = None
                self.character.find_food(get_foodstuff("raw_meat"))
                self.console.push_text("You harvest som meat")
            elif event.type == pygame.QUIT:
                self.running = False