示例#1
0
    def play(self):
        nom = input("Enter your name~ (Default: Katsura)\n")
        if nom == '':
            player = Character.Player(name="Katsura",
                                      health=200,
                                      attack=20,
                                      defense=10,
                                      level=1)
        else:
            player = Character.Player(name=nom,
                                      health=200,
                                      attack=20,
                                      defense=10,
                                      level=1)
        self.spawnEvent(player)  # start of the game
        self.printStatus(player)
        self.crossingEvent(3)  # 出生点 Spawn site
        print(open('crossing/crossing1_2_3.txt').read())
        routeFlag = input("Your decision:")
        mapServer = Map.Map()
        while (True):
            if (routeFlag == '-2'):
                print("-------------Exit Game--------------")
                break
            if (routeFlag == '-1'):  # 二周目
                nom = input(
                    "Welcome back! Winner! Enter your name~ (Default: Katsura)"
                )
                if nom == '':
                    player = Character.Player(name="Katsura",
                                              health=300,
                                              attack=30,
                                              defense=15,
                                              level=2)
                else:
                    player = Character.Player(name=nom,
                                              health=300,
                                              attack=30,
                                              defense=15,
                                              level=2)
                self.crossingEvent(3)  # 出生点
                time.sleep(1)
                print(open('crossing/crossing1_2_3.txt').read())
                routeFlag = input("Your decision:")

            if (routeFlag == '0'):
                player = Character.Player(name="Katsura",
                                          health=200,
                                          attack=20,
                                          defense=10,
                                          level=1)
                self.spawnEvent(player)
                print(open('crossing/crossing1_2_3.txt').read())
                routeFlag = input("Your decision:")
            if (routeFlag == '1'):
                mapServer.location(int(routeFlag))
                # Event 1-1 Fruit Tree,attack+
                self.eatFruits(player, 1)
                # Event 1-2 Battle:Otaku Goblin level1
                monster = Character.Monster()
                win = self.battle(player, monster)
                self.printStatus(player)
                if (win == True):
                    # Event 1-3 Mysterious Box
                    self.goldBox(player, type=1)
                    # Event 1-4:Merchant level1
                    self.purchase(player, 1)
                    # Branch 1-4-5 Format:from1 to 4 or 5 In this order.
                    mapServer.location(int(routeFlag))
                    routeFlag = mapServer.switch(1, 4, 5)
                else:  # If died in the battle 1-2
                    routeFlag = '0'

            elif (routeFlag == '2'):
                mapServer.location(int(routeFlag))
                #Event 2-1 Merchant lv1
                self.purchase(player, 1)
                #Event 2-2 Gold Box+100
                self.goldBox(player, type=1)
                #Event 2-3 Monster lv1
                monster = Character.Monster()
                win = self.battle(player, monster)
                if win == False:
                    routeFlag = '0'
                else:
                    #Event 2-4 Bomb box
                    flag = self.bombBoxEvent(player)
                    if flag == False:  # If killed by the bomb, back to the respawn point.
                        routeFlag = '0'
                    else:
                        #Event 2-5 Attack Fruit
                        self.eatFruits(player, type=1)
                        routeFlag = '6'

            elif (routeFlag == '3'):
                mapServer.location(int(routeFlag))
                #Event 3-1 Merchant lv1
                self.purchase(player, 1)
                #Event 3-2 Monster lv1
                monster = Character.Monster()
                win = self.battle(player, monster)
                if win == False:
                    routeFlag = '0'
                else:
                    #Event 3-3 Poisonous Fruit
                    self.eatFruits(player, type=3)
                    if player.health <= 0:
                        routeFlag = '0'
                    else:
                        #Branch Road 3-7-13
                        mapServer.location(int(routeFlag))
                        routeFlag = routeFlag = mapServer.switch(3, 7, 13)

            if (routeFlag == '4'):
                mapServer.location(int(routeFlag))
                # Event 4-1 Fruit Tree Defense+
                self.eatFruits(player, 2)

                # Event 4-2 Monster level3
                monster = Character.Monster3()
                win = self.battle(player, monster)
                if (win == True):
                    # Branch road 4-10-11
                    mapServer.location(int(routeFlag))
                    routeFlag = mapServer.switch(4, 10, 11)
                else:
                    routeFlag = '0'

            elif (routeFlag == '5'):
                mapServer.location(int(routeFlag))
                #Event 5-1 Bomb box
                flag = self.bombBoxEvent(player)
                if flag == False:  # If killed by the bomb, back to the respawn point.
                    routeFlag = '0'
                else:
                    # Event 5-2 Campfire
                    self.camping(player)
                    # Event 5-3 Poisonous Fruit
                    self.eatFruits(player, 3)
                    if player.health <= 0:
                        routeFlag = '0'
                    else:
                        # Event 5-4 Attack+
                        self.eatFruits(player, 1)
                        # Event 5-5 Merchant level2
                        self.purchase(player, 2)
                        # Event 5-6 Monster level4
                        monster = Character.Monster4()
                        win = self.battle(player, monster)
                        if (win == False):
                            routeFlag = '0'
                        else:
                            mapServer.location(int(routeFlag))
                            # Branch Road 5-12-16
                            routeFlag = mapServer.switch(5, 12, 16)

            if (routeFlag == '6'):
                mapServer.location(int(routeFlag))
                #Event 6-1 Camping
                self.camping(player)
                #Event 6-2 Defense Fruit
                self.eatFruits(player, type=2)
                #Event 6-3 Monster lv4
                monster = Character.Monster4()
                win = self.battle(player, monster)
                if win == False:
                    routeFlag = '0'
                else:
                    mapServer.location(int(routeFlag))
                    #Branch Road 6-8-9
                    routeFlag = mapServer.switch(6, 8, 9)

            if (routeFlag == '7'):
                mapServer.location(int(routeFlag))
                #Event 7-1
                self.eatFruits(player, type=1)
                #Event 7-2 Monster lv2
                monster = Character.Monster2()
                win = self.battle(player, monster)
                if win == False:
                    routeFlag = '0'
                else:  #Road 7-6
                    routeFlag = '6'

            if (routeFlag == '8'):  # 这是出口之一
                mapServer.location(int(routeFlag))
                # Event 8-2 Merchant lv3
                self.purchase(player, 3)
                # Event 8-3 Camping
                self.camping(player)
                # Event 8-4 Dragon
                dragon = Character.Dragon()
                win = self.battle(player, dragon)
                if win == False:
                    routeFlag = '0'
                else:
                    routeFlag = self.win()
            if (routeFlag == '9'):  # 这是出口之一
                mapServer.location(int(routeFlag))
                #Event 9-1 Gold Box+500
                self.goldBox(player, type=2)
                #Event 9-2 Merchantlv2
                self.purchase(player, 2)
                #Event 9-3 Monster lv5
                monster = Character.Monster5()
                win = self.battle(player, monster)
                if win == False:
                    routeFlag = '0'
                else:
                    routeFlag = self.win()

            if (routeFlag == '10'):
                mapServer.location(int(routeFlag))
                #Event 10-1 Monster level2
                monster = Character.Monster2()
                win = self.battle(player, monster)
                if (win == False):
                    routeFlag = '0'
                else:
                    #Event 10-2 Camping
                    self.camping(player)
                    #Event 10-3 Monster level4
                    monster = Character.Monster4()
                    win = self.battle(player, monster)
                    if (win == False):
                        routeFlag = '0'
                    else:
                        # Event 10-4 attack fruit
                        self.eatFruits(player, type=1)
                        # Event 10-5 Bomb Box
                        flag = self.bombBoxEvent(player)
                        if flag == False:  # If killed by the bomb, back to the respawn point.
                            routeFlag = '0'
                        else:
                            # Event 10-6 Merchant level2
                            self.purchase(player, 2)
                            routeFlag = '17'
            if (routeFlag == '11'):  # 这是出口之一
                mapServer.location(int(routeFlag))
                # Event 11-1 Gold box
                self.goldBox(player, type=2)
                # Event 11-2 Merchant level3
                self.purchase(player, 3)
                # Event 11-3 Campfire
                self.camping(player)
                # Event 11-4 Bomb box
                flag = self.bombBoxEvent(player)
                if flag == False:  # If killed by the bomb, back to the respawn point.
                    routeFlag = '0'
                else:
                    # Event 11-5 Final battle: Samurai
                    samurai = Character.Samurai()
                    print(open('battle/battleMonster6.txt').read())
                    win = self.battle(player, samurai)
                    self.printStatus(player)
                    if (win == True):
                        routeFlag = self.win()

            if (routeFlag == '12'):
                mapServer.location(int(routeFlag))
                #Event 12-1 Poison
                self.eatFruits(player, 3)
                if player.health <= 0:
                    routeFlag = '0'
                else:
                    # Event 12-2 gold+100
                    self.goldBox(player, 1)
                    routeFlag = '17'
            if (routeFlag == '13'):
                mapServer.location(int(routeFlag))
                #Event 13-1 Def+
                self.eatFruits(player, type=2)
                #Event 13-2 Monster lv2
                monster = Character.Monster2()
                win = self.battle(player, monster)
                if win == False:
                    routeFlag = '0'
                else:
                    #Event 13-3 Camping
                    self.camping(player)
                    #Event 13-4 Monster lv4
                    monster = Character.Monster4()
                    win = self.battle(player, monster)
                    if win == False:
                        routeFlag = '0'
                    else:
                        #Event 13-5 Merchant lv2
                        self.purchase2(player)
                        mapServer.location(int(routeFlag))
                        #Branch road 13-14-15
                        routeFlag = mapServer.switch(13, 14, 15)

            if (routeFlag == '14'):
                mapServer.location(int(routeFlag))
                #Event 14-1 Monster level 5
                monster = Character.Monster5()
                win = self.battle(player, monster)
                if (win == False):
                    routeFlag = '0'
                else:
                    #Event 14-2 Camping
                    self.camping(player)
                    mapServer.location(int(routeFlag))
                    #Branch 14-12-16
                    routeFlag = mapServer.switch(14, 12, 16)
            if (routeFlag == '15'):  # 这是出口之一
                mapServer.location(int(routeFlag))
                # Event 15-1 Monster level 5
                monster = Character.Monster5()
                win = self.battle(player, monster)
                if (win == False):
                    routeFlag = '0'
                else:
                    #Event 15-2 Poisonous Fruit
                    self.eatFruits(player, type=3)
                    if player.health <= 0:
                        routeFlag = '0'
                    else:
                        routeFlag = self.win()

            if (routeFlag == '16'):  # 这是出口之一
                mapServer.location(int(routeFlag))
                #Event 16-1 to 2 Attack fruit
                self.eatFruits(player, type=1)
                self.eatFruits(player, type=1)
            if (routeFlag == '17'):  # 这是出口之一
                mapServer.location(int(routeFlag))
                #Event 17-1 Monster lv5
                monster = Character.Monster5()
                win = self.battle(player, monster)
                if (win == False):
                    routeFlag = '0'
                else:
                    # Event 17-2 Gold +500
                    self.goldBox(player, type=2)
                    # Event 17-3 Merchant lv3
                    self.purchase(player, 3)
                    # Event 17-4 Camping
                    self.camping(player)
                    # Event 17-5 Boss:Ashina Isshin
                    AshinaIsshin = Character.Ashina()
                    win = self.battle(player, AshinaIsshin)
                    if (win == False):
                        routeFlag = '0'
                    else:
                        routeFlag = self.win()