Пример #1
0
    def initialize(self):
        self.tutorial = False
        self.game_over = False
        self.battle = False
        self.story = False
        self.can_lose = False
        self.next_turn = True
        self.in_dungeon = False
        self.in_tower = False
        self.turn = 0
        self.win_condition = "Death"
        self.tower = []
        self.current_floor = ""
        self.loop = False
        player = Player(1, "Magicko")
        player.Inventory["Potion"] += 2
        Narrator = Scene(player, self)
        Controller = Command(player, Narrator, self)
        self.Controller = Controller
        Narrator.Game_State = self
        Controller.screen = Narrator.screen
        Controller.line = Narrator.line
        player.screen = Narrator.screen
        player.line = Narrator.line
        #----------------------------------------------------------------------------------------------------------------------------------------
        #                                                          Init Rooms
        #----------------------------------------------------------------------------------------------------------------------------------------
        #Ground Floor
        ground_floor_candle = Interactable(["Candle", "Fire"])
        ground_floor_candle.Commands = ["Fire", "Burn", "Light"]
        ground_floor_candle.Keys = [{
            "Name": "Fire",
            "Value": False,
            "Type": "Spell",
            "Terms": ground_floor_candle.Commands
        }]
        ground_floor = Room("Tower Entrance", 5, [ground_floor_candle])
        ground_floor.Solved = True
        ground_floor.Floor = 0

        #Tower 1
        Ice = Interactable(["Ice", "Door", "Fire"])
        Ice.Commands = ["Fire", "Melt", "Burn"]
        Ice.Keys = [{
            "Name": "Fire",
            "Value": False,
            "Type": "Spell",
            "Terms": Ice.Commands
        }]
        tower1 = Room("Cold Room", 8, [Ice])
        tower1.Floor = 1

        #Tower 2
        Cauldron = Interactable(["Cauldron", "Water"])
        Cauldron.Commands = ["Pour", "Water", "Fill"]
        Cauldron.Keys = [{
            "Name": "Water",
            "Value": False,
            "Type": "Spell",
            "Terms": Cauldron.Commands
        }]
        tower2 = Room("Cauldron Room", 15, [Cauldron])
        tower2.Floor = 2

        #Tower 3
        poison = Interactable(["Poison", "Gas", "Wind", "Air"])
        poison.Commands = ["Wind", "Blow", "Clear"]
        poison.Keys = [{
            "Name": "Wind",
            "Value": False,
            "Type": "Spell",
            "Terms": poison.Commands
        }]
        torch = Interactable(["Torch", "Fire"])
        torch.Commands = ["Fire", "Light", "Burn", "Melt"]
        torch.Keys = [{
            "Name": "Fire",
            "Value": False,
            "Type": "Spell",
            "Terms": torch.Commands
        }]
        tower3 = Room("Death Room", 26, [poison, torch])
        tower3.Floor = 3

        #Tower 4
        circuit_board = Interactable(
            ["Circuit Board", "Lightning", "Board", "Circuits"])
        circuit_board.Commands = [
            "Lightning", "Shock", "Electricute", "Jump Start", "Kick Start",
            "Bolt", "Jolt"
        ]
        circuit_board.Keys = [{
            "Name": "Lightning",
            "Value": False,
            "Type": "Spell",
            "Terms": circuit_board.Commands
        }]
        tower4 = Room("Generator Room", 31, [circuit_board])
        tower4.Floor = 4

        #Tower 5
        tower5 = Room("Top of the Tower", 40, [])
        tower5.Floor = 5

        #Dungeon 1
        dungeon1 = Dungeon("Fire Dungeon", 7, [], 1, ["Fire", "Normal"], 5)

        #Dungeon 2
        dungeon2 = Dungeon("Ice Dungeon", 41, [], 2, ["Ice", "Normal"], 6)

        #Dungeon 3
        dungeon3 = Dungeon("Water Dungeon", 42, [], 3, ["Water", "Normal"], 7)

        #Dungeon 4
        dungeon4 = Dungeon("Wind Dungeon", 43, [], 4, ["Wind", "Normal"], 8)

        #Dungeon 5
        dungeon5 = Dungeon("Lightning Dungeon", 44, [], 5,
                           ["Lightning", "Normal"], 9)
        dungeon5.bottom_floor = True

        self.tower = [
            dungeon5, dungeon4, dungeon3, dungeon2, dungeon1, ground_floor,
            tower1, tower2, tower3, tower4, tower5
        ]
        self.main_menu(player, Controller, Narrator)