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
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