예제 #1
0
 def __init__(self, win):
     self.width = 1350
     self.height = 700
     self.win = win
     self.enemys = []
     self.attack_towers = []
     self.support_towers = []
     self.lives = 10
     self.money = 2000
     self.bg = pygame.image.load(os.path.join("game_assets", "bg.png"))
     self.bg = pygame.transform.scale(self.bg, (self.width, self.height))
     self.timer = time.time()
     self.life_font = pygame.font.SysFont("comicsans", 65)
     self.selected_tower = None
     self.menu = VerticalMenu(self.width - side_img.get_width() + 70, 250, side_img)
     self.menu.add_btn(buy_archer, "buy_archer", 500)
     self.menu.add_btn(buy_archer_2, "buy_archer_2", 750)
     self.menu.add_btn(buy_damage, "buy_damage", 1000)
     self.menu.add_btn(buy_range, "buy_range", 1000)
     self.moving_object = None
     self.wave = 0
     self.current_wave = waves[self.wave][:]
     self.pause = True
     self.music_on = True
     self.playPauseButton = PlayPauseButton(play_btn, pause_btn, 10, self.height - 85)
     self.soundButton = PlayPauseButton(sound_btn, sound_btn_off, 90, self.height - 85)
예제 #2
0
 def __init__(self):
     self.active = True
     self.timer = time.time()
     self.pb_timer = time.time()
     # initalize main window settings
     self.screen = pygame.display.set_mode((settings.win_width, settings.win_height))
     settings.bg = settings.bg.convert_alpha()
     loader.convert_alpha()
     # Enemies:
     self.powerups = pygame.sprite.Group()
     self.enemies = []
     # For towers:
     self.attack_towers = []
     self.support_towers = []
     self.selected_tower = None
     self.moving_object = None
     # Player resources
     self.lives = 10
     self.money = 600
     # Gameplay values:
     self.pause = True
     self.wave_num = 1
     self.current_wave = waves[self.wave_num - 1][:]
     # Buttons:
     self.buy_menu = VerticalMenu(settings.win_width, 170)
     self.play_pause_btn = PlayPauseButton(10, settings.win_height - 120)
     self.music_btn = PlayPauseButton(self.play_pause_btn.width + 30, settings.win_height - 120)
     self.music_btn.play_img = loader.music_img
     self.music_btn.img = loader.music_img
     self.music_btn.pause_img = loader.musicoff_img
예제 #3
0
 def __init__(self):
     self.width = 1600
     self.height = 1000
     self.win = pygame.display.set_mode((self.width, self.height))
     self.enemys = []
     self.units = []
     self.attack_towers = []
     self.support_towers = []
     self.lives = 10
     self.points = 30
     self.money = 5000
     self.bg = pygame.transform.scale(pygame.image.load(os.path.join("game_assets/support_stuff", "map.png")),
                                      (1600, 1000))
     self.timer = time.time()
     self.font = pygame.font.SysFont("comicsans", 70)
     self.clicks = []
     self.selected_tower = None
     self.wave = 0
     self.current_wave = waves[self.wave][:]
     self.pause = True
     self.music_on = True
     self.playPauseButton = PlayPauseButton(play_btn, pause_btn, 10, self.height - 85)
     self.soundButton = PlayPauseButton(sound_btn, sound_btn_off, 10 + self.playPauseButton.width, self.height - 85)
     self.menu = VerticalMenu(self.width - vertical_img.get_width() - 5, 200, vertical_img)
     self.menu.add_btn(longRangeshortcut, "longRangeTower", 500)
     self.menu.add_btn(rangeShortcut, "rangeTower", 750)
     self.menu.add_btn(damageShortcut, "damageTower", 1000)
     self.moving_object = None
예제 #4
0
 def __init__(self):
     # super().__init__()
     self.width = 1600
     self.height = 1000
     self.win = pygame.display.set_mode((self.width, self.height))
     self.player1 = Game()
     self.player1.win = self.win
     self.player2 = Game()
     self.player2.win = self.win
     self.current_player = self.player1
     self.playersTurn = 0
     self.pointsGained = 0
     self.timer = time.time()
     self.font = pygame.font.SysFont("comicsans", 35)
     self.selected_tower = None
     self.switchButton = PlayPauseButton(play_btn, pause_btn, 100, 20)
     self.playPauseButton = PlayPauseButton(play_btn, pause_btn, 10, self.height - 85)
     self.soundButton = PlayPauseButton(sound_btn, sound_btn_off, 10 + self.playPauseButton.width, self.height - 85)
     self.startRoundButton = PlayPauseButton(pause_btn, play_btn, 100, 100)
     self.current_wave = []
     self.pause = True
     self.switch = False
     self.start = False
     self.music_on = True
     self.startRoundButton.paused = self.start  # this line is made so the image will be drawn correctly
     self.menu = VerticalMenu(self.width - vertical_img.get_width() - 5, 200, vertical_img)
     self.menu.add_btn(longRangeshortcut, "longRangeTower", 500)
     self.menu.add_btn(rangeShortcut, "rangeTower", 750)
     self.menu.add_btn(damageShortcut, "damageTower", 1000)
     self.moving_object = None
예제 #5
0
    def __init__(self, win, username):
        self.__width = 1250
        self.__height = 700
        self.win = win
        self.enemies = []
        self.attack_towers = []
        self.support_towers = []
        self.traps = []
        self.__lives = 10
        self.__money = 200000
        self.__enemy_kill = 0
        self.bg = pygame.image.load(
            os.path.join("../game_assets/background_3.png")).convert_alpha()
        self.bg = pygame.transform.scale(self.bg,
                                         (self.__width, self.__height))
        self.game_map = None
        self.__timer = time.time()
        self.life_font = pygame.font.SysFont("life count", 30)
        self.username_font = pygame.font.SysFont(
            pygame.font.get_default_font(), 40)
        self.selected_tower = None
        self.object_orientation = []
        self.moving_object = None
        self.moving_effect = None
        self.wave = 15
        self.__current_wave = waves[self.wave][:]
        self.pause = True
        self.music_on = True
        self.username = username
        self.play_pause_button = PlayPauseButton(play_btn.convert_alpha(),
                                                 pause_btn.convert_alpha(), 10,
                                                 self.__height - 85)
        self.sound_button = PlayPauseButton(sound_btn.convert_alpha(),
                                            sound_btn_off.convert_alpha(), 90,
                                            self.__height - 85)

        self.stop_trap_btn = PlayPauseButton(stop_trap_img.convert_alpha(),
                                             stop_trap_img.convert_alpha(),
                                             1000, self.__height - 90)
        self.destroy_trap_btn = PlayPauseButton(
            destroying_trap_img.convert_alpha(),
            destroying_trap_img.convert_alpha(), 915, self.__height - 90)

        self.menu = VerticalMenu(self.__width - side_img.get_width() + 80, 190,
                                 side_img)
        self.menu.add_btn(tower_icon_img.images[3].convert_alpha(),
                          "buy_archer_1", 500)
        self.menu.add_btn(tower_icon_img.images[0].convert_alpha(),
                          "buy_archer_2", 750)
        self.menu.add_btn(tower_icon_img.images[2].convert_alpha(),
                          "buy_damage", 1000)
        self.menu.add_btn(tower_icon_img.images[1].convert_alpha(),
                          "buy_range", 1000)

        self.is_input_chit = False
        self.current_chit_code = ""
예제 #6
0
    def __init__(self,tencentprice,aliprice,jdprice,appleprice,googleprice,twitterprice):
        self.tencentprice = tencentprice
        self.aliprice = aliprice
        self.jdprice = jdprice
        self.appleprice = appleprice
        self.googleprice = googleprice
        self.twitterprice = twitterprice
        self.width = 1080
        self.height = 720
        self.win = pygame.display.set_mode((self.width, self.height))
        self.enemys = []
        self.towers = []
        self.support_tower = []
        self.lives = 10
        # self.towers = 10
        self.money = 5000
        self.score = 0
        self.rank = rank()
        self.StartMenu = StartMenu(startmenu_img)
        self.bg = bg
        self.bg = pygame.transform.scale(self.bg, (self.width, self.height))
        self.bg_index = 0
        self.timer = time.time()
        self.selected_tower = None
        self.menu = VerticalMenu(self.width, 0, verticalMenu)
        self.menu.add_button(buy_archer, 'buy_archer', appleprice)
        self.menu.add_button(buy_archer_2, 'buy_archer_2', googleprice)
        self.menu.add_button(buy_damage, 'buy_damage', 0)
        self.menu.add_button(buy_range, 'buy_range', twitterprice)
        # self.moving_object = False
        self.moving_object = None
        self.wave = 0
        self.current_wave = waves[self.wave][:]
        self.pause = False
        self.playPauseButton = PlayPauseButton(play_btn, pause_btn, 20, self.height - 85)
        self.font = pygame.font.Font(r'../Fonts/DINCond-BlackExpert.otf', 28)
        self.path = []
        self.score_list = []
        self.situation = False
        # self.clicks = []

        self.lives = 10
예제 #7
0
    def __init__(self, win):

        # Basics
        self.win = win
        self.width = 1200
        self.height = 700
        self.lives = 20
        self.money = 35
        self.bg = pygame.image.load(
            os.path.join("game_assets/background/", "kingdom.png"))
        self.bg = pygame.transform.scale(self.bg, (self.width, self.height))
        self.clicks = []  # use to see clicks
        self.timer = time.time()
        self.go_lose = False
        self.go_win = False

        # Actors
        self.enemys = []
        self.attack_towers = []
        self.support_towers = []
        self.fortress = []
        self.fortress_sold = []
        self.selected_tower = None
        self.moving_object = None
        self.draw_drop = False
        self.drop_x = 0
        self.drop_y = 0
        self.reward = 0

        # Side Tower menu
        self.menu = VerticalMenu(self.width - 45, 46, side_img)
        self.menu.add_btn(buy_shin, "buy_shin", 40)
        self.menu.add_btn(buy_moubu, "buy_moubu", 120)
        self.menu.add_btn(buy_kanki, "buy_kanki", 80)
        self.menu.add_btn(buy_ouhon, "buy_ouhon", 150)
        self.menu.add_btn(buy_fortress, "buy_fortress", 200)
        self.menu.add_btn(buy_kyoukai, "buy_kyoukai", 100)
        self.menu.add_btn(buy_ten, "buy_ten", 100)
        self.menu.add_btn(buy_ryo, "buy_ryo", 100)

        # Buttons and options
        self.life_font = self.money_font = pygame.font.Font(
            "game_assets/fonts/SF Atarian System.ttf", 32)
        self.wave_font = pygame.font.Font(
            "game_assets/fonts/SF Atarian System.ttf", 18)
        self.wave_font2 = pygame.font.Font(
            "game_assets/fonts/SF Atarian System.ttf", 72)
        self.playPauseButton = PlayPauseButton(play_btn, pause_btn,
                                               self.width / 2 - 118, 0, False)
        self.soundButton = PlayPauseButton(sound_btn, sound_btn_off,
                                           self.width / 2 + 88, 0, True)
        self.sideButton = PlayPauseButton(side_btn, side_btn, self.width - 33,
                                          272, False)
        self.speedButton = ReturnButton(speed1_btn, speed2_btn, speed3_btn,
                                        self.width / 2 - 170, 0)
        self.speed = 1
        self.shake_money = False
        self.shake_life = False
        self.change_sound = False

        # Fortress
        self.fortress_sound = False
        self.to_resist = []
        self.first_contact = True

        # Wave and Gen enemies
        self.wave = 0
        self.current_wave = waves[self.wave][:]
        self.spawn_rate = spawn_rates[:]
        self.current_spawn_rate = 1.5
        self.kingdom = [
            Quin_base(),
            Zao_base(),
            Yan_base(),
            Qi_base(),
            Wei_base(),
            Han_base(),
            Chu_base(),
            Chu2_base(),
            Chu3_base()
        ]
        self.current_kingdom = self.kingdom[0]
        self.next_spawn = False

        # Game level
        self.level = ""
        self.lvl = {"Easy": 0, "Medium": 1, "Hard": 2}
        self.coef_rate = 1

        # Graphs
        self.start_ticks = 0
        # Plot-1
        self.df = pd.DataFrame()
        self.data_dict = {
            'seconds': [],
            'waves': [],
            'money': [],
            'lives': [],
            'money_earnt': [],
            'money_spent': [],
            'shin': [],
            'moubu': [],
            'kanki': [],
            'ouhon': [],
            'ten': [],
            'kyoukai': [],
            'ryo': [],
            'fortress': [],
            'towers': []
        }
        self.counters = {
            'shin': 0,
            'moubu': 0,
            'kanki': 0,
            'ouhon': 0,
            'ten': 0,
            'kyoukai': 0,
            'ryo': 0,
            'fortress': 0
        }
        self.money_earnt = 0
        self.money_spent = 0
        # Plot-2
        self.df_enemies = pd.DataFrame(
            data={
                'waves': [],
                'spawned': [],
                'killed': [],
                "Zao Warrior": [],
                "Yan Warrior": [],
                "Qi Warrior": [],
                "Wei Catapult": [],
                "Wei Balista": [],
                "Han Warrior": [],
                "Chu Warrior": [],
                "Chu Elephant": [],
                "Chu Boat": [],
                "Yan Boat": [],
                "Qi Boat": [],
                "Zao Riboku": []
            })
        self.not_killed = {
            "zao_warrior": 0,
            "yan_warrior": 0,
            "qi_warrior": 0,
            "wei_catapult": 0,
            "wei_balista": 0,
            "han_warrior": 0,
            "chu_warrior": 0,
            "chu_elephant": 0,
            "chu_boat": 0,
            "yan_boat": 0,
            "qi_boat": 0,
            "zao_riboku": 0
        }
        self.counter_gold = {"Gold Earnt": [], "Enemies (Type)": []}
        self.list_enemy_spawned = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
        self.not_kill_count = 0
        self.spawn_count = 0