def play(self): libtcod.console_init_root(SCREEN_WIDTH, SCREEN_HEIGHT, 'Moria - {0}'.format(self.iteration), False, libtcod.RENDERER_SDL2, "F", False) self.root_console = libtcodconsole.Console(SCREEN_WIDTH, SCREEN_HEIGHT) self.panel = libtcodconsole.Console(SCREEN_WIDTH, PANEL_HEIGHT) fighter_component = Fighter(hp=PLAYER_MAX_HEALTH, defence=PLAYER_DEFENCE, power=PLAYER_POWER) inventory_component = Inventory(26) equipment_component = Equipment() coin_pouch = CoinPouch(0) self.player = Entity(0, 0, '@', libtcod.white, "Player", blocks=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, inventory=inventory_component, equipment=equipment_component, coin_pouch=coin_pouch) self.entities = [self.player] self.game_map = GameMap() self.game_map.make_map(self.player, self.entities) self.fov_recompute = True self.fov_map = initialize_fov(self.game_map) self.message_log = MessageLog() self.game_state = GameStates.PLAYERS_TURN self.previous_game_state = self.game_state self.init_game() while not self.game_ended and self.player is not None: if self.agent is not None: print("Shop has", len(self.game_map.shop.items)) self.agent.action = None self.run_agent(self.player, self.agent, self.fov_map) self.current_enemy = None self.run_game() return self.game_result
def get_game_variables(constants): # fighter_component = Fighter(hp=100, defense=1, power=2) # inventory_component = Inventory(26) # level_component = Level() # equipment_component = Equipment() # player = Entity(0, 0, '@', libtcod.white, 'Player', blocks=True, render_order=RenderOrder.ACTOR, # fighter=fighter_component, inventory=inventory_component, level=level_component, equipment=equipment_component, race="human") player = generate_character(0, 0, "human", False) entities = [player] # equippable_component = Equippable( # EquipmentSlots.MAIN_HAND, attack_bonus=2, attacks=generate_attack_set(blade_attack_definitions)) # dagger = Entity(0, 0, '-', libtcod.sky, 'Dagger', # equippable=equippable_component) knife = generate_weapon_from_template("knife") player.inventory.add_item(knife) player.equipment.toggle_equip(knife) game_map = GameMap(constants['map_width'], constants['map_height']) # game_map.make_map(constants['max_rooms'], constants['room_min_size'], constants['room_max_size'], # constants['map_width'], constants['map_height'], player, entities) game_map.make_overworld_map( 12, ["player_house"], constants['map_width'], constants['map_height'], player, entities, True) message_log = MessageLog( constants['message_x'], constants['message_width'], constants['message_height']) game_state = GameStates.PLAYERS_TURN return player, entities, game_map, message_log, game_state
def get_game_variables(constants): fighter_component = Fighter("player") inventory_component = Inventory(26) level_component = Level() player = Entity(0, 0, "@", tcod.white, "Player", blocks=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, inventory=inventory_component, level=level_component) game_state = GameStates.PLAYER_TURN entities = [player] game_map = GameMap(constants['map_width'], constants['map_height']) game_map.make_map(constants['max_rooms'], constants['room_min_size'], constants['room_max_size'], constants['map_width'], constants['map_height'], player, entities, float(player.fighter.cr), constants['max_items_per_room']) message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) return player, entities, game_map, message_log, game_state
def get_game_variables(constants): player = playerships.player_cruiser() targeting_cursor = entity.Entity( 0, 0, '#', 'yellow', 'TargetingCursor', blocks=False, render_order=RenderOrder.INACTIVE_TARGETING) entities = [player, targeting_cursor] game_map = GameMap(constants['map_width'], constants['map_height']) game_map.make_map(constants['max_asteroids'], constants['max_asteroid_radius'], entities, constants['max_enemies_per_screen'], constants['max_items_per_screen'], constants['max_stars_per_screen']) message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) game_state = GameStates.PLAYERS_TURN return player, entities, game_map, message_log, game_state
def __init__(self): self.message_log = MessageLog(MSG_X, MSG_WIDTH, MSG_HEIGHT) self.fov_recompute = True self.game_state = GameStates.PLAYERS_TURN self.panel_state = None self.active_panel = 'map' # TODO temporary self.world = {} self.current_map = None self.current_map_id = None player_combatant = Combatant(health=50, strength=10, agility=10, endurance=10, mob_number=0) player_logic = PlayerLogic() self.player = Entity(x=40, y=20, char='@', color=(255, 255, 255), name='Player', blocks=True, render_order=RenderOrder.ACTOR, team=Team.PLAYER, ai=player_logic, combatant=player_combatant) self.nothing_entity = Entity(name='nothing')
def get_arena_variables(constants): fighter_component = Fighter(hp=100, defense=1, power=3, speed=100) inventory_component = Inventory(26) level_component = Level() equipment_component = Equipment() player = Entity( [], 3, 3, "@", libtcod.white, "Player", blocks=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, inventory=inventory_component, level=level_component, equipment=equipment_component, ) entities = [player] constants["fov_radius"] = 100 # We can see the whole map in the arena game_map = GameMap(constants["map_width"], constants["map_height"]) game_map.make_arena(entities) message_log = MessageLog( constants["message_x"], constants["message_width"], constants["message_height"] ) game_state = GameStates.PLAYERS_TURN return player, entities, game_map, message_log, game_state
def get_game_variables(constants): fighter_component = Fighter(hp=100, str=3, dex=3) inventory_component = Inventory(26) level_component = Level() equipment_component = Equipment() death_component = Death(kill_player) player = Entity(0, 0, '@', libtcod.white, 'Player', blocks=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, inventory=inventory_component, level=level_component, equipment=equipment_component, death=death_component) entities = [player] dagger = generate_weapon('dagger', 0, 0) player.inventory.add_item(dagger) player.equipment.toggle_equip(dagger) potion = generate_item('healing_potion', 0, 0) player.inventory.add_item(potion) game_map = GameMap(constants['map_width'], constants['map_height'], constants['version']) game_map.make_map(constants['max_rooms'], constants['room_min_size'], constants['room_max_size'], constants['map_width'], constants['map_height'], player, entities) message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) game_state = GameStates.PLAYERS_TURN return player, entities, game_map, message_log, game_state
def get_game_variables(constants): player = Entity(0, 0, '@', libtcod.white, 'Player', blocks=True, render_order=RenderOrder.ACTOR) Fighter(hp=100, defense=11, power=2, hit=11).add_to_entity(player) Level().add_to_entity(player) inventory_component = Inventory(26) inventory_component.add_to_entity(player) equipment_component = Equipment() equipment_component.add_to_entity(player) dagger = Entity(0, 0, '-', libtcod.sky, 'Dagger') equippable_component = Equippable(EquipmentSlots.MAIN_HAND, power_bonus=2) equippable_component.add_to_entity(dagger) inventory_component.add_item(dagger) equipment_component.toggle_equip(dagger) StatusEffects().add_to_entity(player) world = World(player, constants['map_width'], constants['map_height']) message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) game_state = GameStates.PLAYERS_TURN return player, world, message_log, game_state
def regenerate_map(player, map_width, map_height, max_rooms, min_room_size, max_room_size, min_npcs, max_npcs, colors, entities, floor_number, message_x, message_width, message_height, preserve_messages=False): """ Fully resets the game map without closing the window. """ # Reinitialize the tile map game_map = GameMap(map_width, map_height) # Remove all entities except the player entities.clear() entities.append(player) # Generate a new game map generate_all(game_map, map_width, map_height, max_rooms, min_room_size, max_room_size, min_npcs, max_npcs, colors, entities, floor_number) # Reset the message log if not preserve_messages: message_log = MessageLog(message_x, message_width, message_height) else: message_log = None # Set up the fov_map for the new game map and recalculate it fov_recalculate = True fov_map = initialize_fov(game_map) return game_map, fov_recalculate, fov_map, message_log
def get_game_variables(consts): # Player fighter_component = Fighter(hp=30, defense=2, power=5) inventory_comp = Inventory(26) level_comp = Level() player = Entity(0, 0, '@', tcod.white, 'Player', blocks=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, inventory=inventory_comp, level=level_comp) entities = [player] # Game Map game_map = GameMap(consts['map_width'], consts['map_height']) game_map.make_map(consts['max_rooms'], consts['room_min'], consts['room_max'], consts['map_width'], consts['map_height'], player, entities, consts['max_monsts_room'], consts['max_items_room']) # Game State game_state = GameStates.PLAYER_TURN # Message Log message_log = MessageLog(consts['msg_x'], consts['msg_width'], consts['msg_height']) return player, entities, game_map, message_log, game_state
def load_game(cls): if not os.path.isfile("save_game.json"): raise FileNotFoundError with open("save_game.json") as save_file: json_data = json.load(save_file) entities = [ Entity.from_json(json_data=entity_json_data) for entity_json_data in json_data["entities"] ] player = entities[json_data["player_index"]] game_map = GameMap.from_json(json_data=json_data["game_map"]) message_log = MessageLog.from_json(json_data=json_data["message_log"]) game_state = GameStates(json_data["game_state"]) game = cls() game.map_generator: Optional[MapGenerator] = MapGenerator( map_width=CONSTANTS.map_width, map_height=CONSTANTS.map_height) game.entities = entities game.player = player game.map_generator.game_map = game_map game.message_log = message_log game.current_state = game_state game.camera: Camera = Camera.from_json(json_data=json_data, player=player) return game
def get_game_variables(constants): fighter_component = Fighter(hp=100, defense=1, power=2) inventory_component = Inventory(26) level_component = Level() equipment_component = Equipment() #Create a player entity for the player player = Entity(0, 0, '@', libtcod.white, 'Player', blocks=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, inventory=inventory_component, level=level_component, equipment=equipment_component) entities = [player] #Give a starting weapon - a dagger - to the player equippable_component = Equippable(EquipmentSlots.MAIN_HAND, power_bonus=2) dagger = Entity(0, 0, '-', libtcod.sky, 'Dagger', equippable=equippable_component) player.inventory.add_item(dagger) player.equipment.toggle_equip(dagger) game_map = GameMap(constants['map_width'], constants['map_height']) game_map.make_map(constants['max_rooms'], constants['room_min_size'], constants['room_max_size'], constants['map_width'], constants['map_height'], player, entities) message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) game_state = GameStates.PLAYERS_TURN return player, entities, game_map, message_log, game_state
def get_game_variables(constants): fighter_component = Fighter(hp=100, defense=1, power=2) inventory_component = Inventory(26) level_component = Level() equipment_component = Equipment() player = Entity(0, 0, '@', libtcod.white, "Player", blocks=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, inventory=inventory_component, level=level_component, equipment=equipment_component) entities = [player] equippable_component = Equippable(EquipmentSlots.MAIN_HAND, power_bonus=2) dagger = Entity(0, 0, '-', libtcod.sky, "Dagger", equippable=equippable_component) player.inventory.add_item(dagger) player.equipment.toggle_equip(dagger) game_map = GameMap(constants["map_width"], constants["map_height"]) game_map.make_map(constants["max_room"], constants["room_min_size"], constants["room_max_size"], constants["map_width"], constants["map_height"], player, entities) message_log = MessageLog(constants["message_x"], constants["message_width"], constants["message_height"]) game_state = GameStates.PLAYERS_TURN return player, entities, game_map, message_log, game_state
def get_game_variables(constants): # Entities fighter_component = Fighter(hp=10000, defense=1, strength=200, dexterity=0, intelligence=0, charisma=0) inventory_component = Inventory(26) level_component = Level() equipment_component = Equipment() player = Entity(0, 0, '@', libtcodpy.white, 'Player', blocks=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, inventory=inventory_component, level=level_component, equipment=equipment_component) entities = [player] for itm in range(0, 25): item_component = Item(use_function=heal, amount=40) item = Entity(0, 0, '!', libtcodpy.violet, 'Healing Potion', render_order=RenderOrder.ITEM, item=item_component) player.inventory.add_item(item) equippable_component = Equippable(EquipmentSlots.MAIN_HAND, strength_bonus=2) dagger = Entity(0, 0, '-', libtcodpy.sky, 'Dagger', equippable=equippable_component) player.inventory.add_item(dagger) player.equipment.toggle_equip(dagger) # Game Map game_map = GameMap(constants['map_width'], constants['map_height']) game_map.make_map(constants['max_rooms'], constants['room_min_size'], constants['room_max_size'], constants['map_width'], constants['map_height'], player, entities) # Message message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) game_state = GameStates.PLAYERS_TURN return player, entities, game_map, message_log, game_state
def get_game_variables(constants): fighter_component = Fighter(hp=30, defence=2, power=5) inventory_component = Inventory(26) player = Entity(0, 0, '@', libtcod.white, 'Player', blocks=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, inventory=inventory_component) entities = [player] game_map = GameMap(constants['map_width'], constants['map_height']) game_map.make_map(constants['max_rooms'], constants['room_min_size'], constants['room_max_size'], constants['map_width'], constants['map_height'], player, entities, constants['max_monsters_per_room'], constants['max_items_per_room']) message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) game_state = GameStates.PLAYERS_TURN return player, entities, game_map, message_log, game_state
def get_game_variables(): fighter_component = Fighter(hp=100, defense=1, power=2) inventory_component = Inventory(26) level_component = Level() equipment_component = Equipment() player = Entity(name="Player", entity_type=EntityType.PLAYER, x=const.SCREEN_WIDTH // 2, y=const.SCREEN_HEIGHT // 2, glyph=ord('@'), fg=(255, 255, 255), blocks=True, fighter=fighter_component, inventory=inventory_component, level=level_component, equipment=equipment_component) equippable_component = Equippable(EquipmentSlots.MAIN_HAND, power_bonus=2) dagger = Entity("Dagger", EntityType.ITEM, 0, 0, ord('-'), fg=tcod.sky, equippable=equippable_component) player.inventory.add_item(dagger) player.equipment.toggle_equip(dagger) dungeon = {} game_map = GameMap(const.MAP_WIDTH, const.MAP_HEIGHT) game_map.make_map(const.MAX_ROOMS, const.ROOM_MIN_SIZE, const.ROOM_MAX_SIZE, const.MAP_WIDTH, const.MAP_HEIGHT, player) game_map.entities.append(player) dungeon.update({game_map.dungeon_level: game_map}) message_log = MessageLog(0, const.LOG_WIDTH, const.LOG_HEIGHT) game_state = GameState.PLAYER_TURN camera = Camera(0, 0, const.VIEWPORT_WIDTH - 1, const.VIEWPORT_HEIGHT - 1) current_level = 1 return player, dungeon, message_log, game_state, current_level, camera
def get_game_variables(constants): """Initialize game variables.""" # === Entities === fighter_component = Fighter(hp=100, defense=1, power=3) inventory_component = Inventory(26) level_component = Level() equipment_component = Equipment() player = Entity(0, 0, '@', libtcod.lightest_grey, 'Player', blocks=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, inventory=inventory_component, level=level_component, equipment=equipment_component, description='You.') entities = [player] equippable_component = Equippable(**dagger['kwargs']) char, color, name = dagger['entity_args'] starting_weapon = Entity(0, 0, char, color, name, render_order=RenderOrder.ITEM, equippable=equippable_component, description=dagger['description']) player.inventory.add_item(starting_weapon) player.equipment.toggle_equip(starting_weapon) # === Game map === game_map = GameMap(constants['map_width'], constants['map_height'], constants['room_min_size'], constants['room_max_size']) dungeon_type = Tunnel game_map.make_map(dungeon_type, player, entities) # === Message log === message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) # === Game state === game_state = GameStates.PLAYER_TURN return player, entities, game_map, message_log, game_state
def get_game_variables(config): fighter_component = Fighter(hp=100, defense=2, power=4) inventory_component = Inventory(26) level_component = Level() equipment_component = Equipment() player = Entity(0, 0, '@', libtcod.white, 'Player', blocks=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, inventory=inventory_component, level=level_component, equipment=equipment_component) entities = [player] game_map = GameMap(config) game_map.make_map(player, entities) message_log = MessageLog(config) game_state = GameStates.PLAYERS_TURN return player, entities, game_map, message_log, game_state
def get_game_variables(constants): inventory_component = Inventory(26) body_component = get_human_body() player = Entity(int(constants['screen_width'] / 2), int(constants['screen_height'] / 2), '@', tcod.white, "Player", blocks=True, render_order=RenderOrder.ACTOR, ai=Player, inventory=inventory_component, body=body_component) entities = [player] animator = Animator([]) turn_count = 0 game_map = GameMap(constants['map_width'], constants['map_height']) game_map.make_map(player, entities, constants) message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) game_state = GameStates.PLAYER_TURN return player, entities, animator, turn_count, game_map, message_log, game_state
def get_game_variables(constants): fighter_component = Fighter(hp=100, defense=1, power=4) inventory_component = Inventory(26) level_component = Level() player = Entity(0, 0, '@', (255, 255, 255), 'Player', blocks=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, inventory=inventory_component, level=level_component) entities = [player] game_map = GameMap(constants['map_width'], constants['map_height']) make_map(game_map, constants['max_rooms'], constants['room_min_size'], constants['room_max_size'], constants['map_width'], constants['map_height'], player, entities, constants['colors']) message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) game_state = GameStates.PLAYERS_TURN return player, entities, game_map, message_log, game_state
def get_game_variables(constants): fighter_component = Fighter(hp=100, defense=1, power=3) inventory_component = Inventory(26) level_component = Level() equipment_component = Equipment() caster_component = Caster(mana=5, focus=2) body_component = Body('anthropod') player = Entity(0,0, '@', (255,255,255), 'Player', blocks=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, caster=caster_component, inventory=inventory_component, level=level_component, equipment=equipment_component, body=body_component) entities = [player] equippable_component = Equippable(EquipmentSlots.MAIN_HAND, power_bonus=1) dagger = Entity(0, 0, '-', constants['colors'].get('sky'), 'Dagger', equippable=equippable_component) player.inventory.add_item(dagger, constants['colors']) player.equipment.toggle_equip(dagger) lexicon = get_lexicon() game_map = GameMap(constants['map_width'], constants['map_height']) make_map(game_map, constants['max_rooms'], constants['room_min_size'], constants['room_max_size'], constants['map_width'], constants['map_height'], player, entities, constants['colors'], lexicon) message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) game_state = GameStates.PLAYERS_TURN return player, entities, game_map, message_log, game_state, lexicon
def get_game_variables(constants): fighter_comp = Fighter(20, 5, 5) inventory_comp = Inventory(10) level_comp = Level() equipment_component = Equipment() player = Entity('Player', int(constants['screen_width'] / 2), int(constants['screen_height'] / 2), '@', libtcod.white, is_player=True, fighter=fighter_comp, inventory=inventory_comp, level=level_comp, equipment=equipment_component) entities = [player] weapon = get_item('Hammer', 0, 0) player.inventory.add_item(weapon) player.equipment.toggle_equip(weapon) game_map = GameMap(constants['map_width'], constants['map_height']) game_map.make_map(constants['max_rooms'], constants['room_min_size'], constants['room_max_size'], constants['map_width'], constants['map_height'], player, entities) game_map.populate_dungeon(entities) message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) game_state = GameStates.PLAYER_TURN return player, entities, game_map, message_log, game_state
def get_game_variables(constants): # Open the event queue, and load it up. event_queue = EventQueue() # Create entities lists. entities = [] # Create player. location = (int(constants['screen_width'] / 2), int(constants['screen_height'] / 2)) player = entity_factory(EntityType.PLAYER, location, entities) # Create NPC. location = (int(constants['screen_width'] / 2) - 12, int(constants['screen_height'] / 2)) entity_factory(EntityType.NPC, location, entities) # Create cursor. cursor_component = Cursor() location_component = Location() render_component = Render('X', libtcod.red) cursor = Entity('cursor', 0, cursor=cursor_component, location=location_component, render=render_component) cursor.render_order=RenderOrder.CURSOR # Create game_map. game_map = GameMap(constants['map_width'], constants['map_height']) # Create message_log. message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) # Set game_state. game_state = GameStates.PLAYER_TURN # Set turn_state. turn_state = TurnStates.UPKEEP_PHASE return player, cursor, entities, game_map, message_log, game_state, turn_state, event_queue
def initialize_game(constants, chosen): player_component, inventory_component, abilities_component, info_component, starting_equip, starting_feats, name = Character(chosen) level_component = Level() equipment_component = Equipment() player = Entity(0, 0, '@', libtcod.lightest_gray, name, blocks=True, render_order=RenderOrder.PLAYER, fighter=player_component, inventory=inventory_component, abilities=abilities_component, level=level_component, equipment=equipment_component, info=info_component) entities = [player] player.abilities.add_feat(starting_feats) player.inventory.add_item(starting_equip) player.equipment.toggle_equip(starting_equip) game_map = GameMap(constants['map_width'], constants['map_height']) game_map.make_map(constants['max_rooms'], constants['room_min_size'], constants['room_max_size'], constants['map_width'], constants['map_height'], player, entities) message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) game_state = GameStates.PLAYERS_TURN permanent_cooldown_counter = 0 return player, entities, game_map, message_log, game_state, permanent_cooldown_counter
def render_all(entities: List[Entity], player: Entity, game_map: GameMap, game_state: GameStates, message_log: MessageLog, constants): # Draw the map game_map.current_floor.render(colors=constants['colors']) entities_in_render_order = sorted(entities, key=lambda x: x.render_order.value) # Draw all entities in the list for entity in entities_in_render_order: if game_map.current_floor.fov[entity.x, entity.y]: entity.draw() render_bar(x=81, y=1, total_width=30, label='HP', current_value=player.fighter.hp, maximum_value=player.fighter.max_hp, text_color='white', bar_primary_color='green', bar_secondary_color='red') terminal.printf(x=81, y=3, s=f'Dungeon Floor: {game_map.current_floor_number}') message_log.render() names_under_mouse = get_names_under_mouse(entities, game_map.current_floor.fov) if names_under_mouse: terminal.printf(81, 5, names_under_mouse) if game_state in (GameStates.SHOW_INVENTORY, GameStates.DROP_INVENTORY): if game_state == GameStates.SHOW_INVENTORY: inventory_title = 'Press the key next to an item to use it, or Esc to cancel.\n' else: inventory_title = 'Press the key next to an item to drop it, or Esc to cancel.\n' inventory_menu(header=inventory_title, player=player, inventory_width=50, screen_width=constants['screen_width'], screen_height=constants['screen_height'])
def next_floor(self, player: Entity, message_log: MessageLog, constants: Type['constants']) -> List[Entity]: self.dungeon_level += 1 entities = [player] self.tiles = self.initialize_tiles() self.make_map( constants.max_rooms, constants.room_min_size, constants.room_max_size, player, entities) player.fighter.heal(player.fighter.max_hp // 2) message_log.add_message( Message('You take a moment to rest, and recover your strength.', tcod.light_violet)) return entities
def get_game_variables(constants): fighter_component = Fighter(hp=100, defense=1, power=2, magic=0, magic_defense=1, talismanhp=0, gold=0) inventory_component = Inventory(26) equipment_inventory_component = Inventory(26) level_component = Level() equipment_component = Equipment() player = Entity(0, 0, '@', libtcod.white, 'Player', blocks=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, inventory=inventory_component, level=level_component, equipment=equipment_component, equipment_inventory=equipment_inventory_component) entities = [player] equipment_component = Equippable(EquipmentSlots.MAIN_HAND, power_bonus=1) dagger = Entity(0, 0, '-', libtcod.darker_orange, "Dagger (+1 atk)", equippable=equipment_component) player.equipment_inventory.add_item(dagger) player.equipment.toggle_equip(dagger) item_component = Item(use_function=cast_magic, damage=2, maximum_range=3) magic_wand = Entity(0, 0, '|', libtcod.darker_sepia, "Magic Wand", item=item_component) player.inventory.add_item(magic_wand) game_map = GameMap(constants['map_width'], constants['map_height']) game_map.make_map(constants['max_rooms'], constants['room_min_size'], constants['room_max_size'], constants['map_width'], constants['map_height'], player, entities) message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) game_state = GameStates.PLAYERS_TURN return player, entities, game_map, message_log, game_state
def get_game_variables(constants): status_component = Status_Effects() job_component = Jobs() fighter_component = Fighter(hp=100, mana=50, defense=1, power=2, attack_dice_minimum=1, attack_dice_maximum=4, constitution=10, willpower=10, status_effects=status_component, job=job_component, nutrition=500, ac=1, accuracy=1) inventory_component = Inventory(26) level_component = Level() equipment_component = Equipment() skill_component = Skills(50) player = Entity(0, 0, '@', libtcod.white, 'Player', blocks=True, player=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, inventory=inventory_component, level=level_component, equipment=equipment_component, skills=skill_component) entities = [player] equippable_component = Equippable(EquipmentSlots.MAIN_HAND, power_bonus=2) dagger = Entity(0, 0, '-', libtcod.sky, 'Dagger', equippable=equippable_component) player.inventory.add_item(dagger) player.equipment.toggle_equip(dagger) game_map = GameMap(constants['map_width'], constants['map_height']) game_map.make_map(constants['max_rooms'], constants['room_min_size'], constants['room_max_size'], constants['map_width'], constants['map_height'], player, entities) message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) game_state = GameStates.PLAYERS_TURN return player, entities, game_map, message_log, game_state
def get_game_variables(constants): fighter_component = Fighter(hp=100, defense=1, power=4, agility=4) inventory_component = Inventory(26) level_component = Level() equipment_component = Equipment() player = Entity(0, 0, '@', libtcod.white, 'Player', blocks=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, inventory=inventory_component, level=level_component, equipment=equipment_component) entities = [player] equippable_component = Equippable(EquipmentSlots.MAIN_HAND, power_bonus=4) dagger = Entity(0, 0, '/', libtcod.sky, 'Carving Knife', equippable=equippable_component) equippable_component = Equippable(EquipmentSlots.OFF_HAND, defense_bonus=1, agility_bonus=-1) buckler = Entity(0, 0, '{', libtcod.sky, 'Buckler', equippable=equippable_component) player.inventory.add_item(dagger) player.equipment.toggle_equip(dagger) player.inventory.add_item(buckler) player.equipment.toggle_equip(buckler) game_map = GameMap(constants['map_width'], constants['map_height']) game_map.make_map(constants['max_rooms'], constants['room_min_size'], constants['room_max_size'], constants['max_maze_rooms'], constants['maze_min_size'], constants['maze_max_size'], constants['map_width'], constants['map_height'], player, entities) message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) game_state = GameStates.CHARACTER_CREATION ggender = Gender.male return player, entities, game_map, message_log, game_state, ggender
def init_message_and_states(): """ 메세지 출력 """ message_log = MessageLog(MESSAGE_X, MESSAGE_WIDTH, MESSAGE_HEIGHT) game_state = GameStates.PLAYERS_TURN previous_game_state = game_state targeting_item = None return message_log, game_state, previous_game_state, targeting_item