Example #1
0
    def reset(self):
        self.shakeScreen = resources.screen
        self.screen = self.shakeScreen.copy()
        resources.screen_copied = self.screen
        self.background = Background(self.screen)
        self.screenShaker = ScreenShaker()

        self.OPACITY = 250

        self.activeRegions = {}
        self.allPackages = {}
        self.allPackageNames = []
        self.allShields = []
        self.messages = []

        self.MAX_SHIP_HP = 100
        self.shipHp = 100
        self.MAX_SHIP_POWER = 1000
        self.ship_power = 1000
        self.ship_reload = 0
        self.SHIP_MAX_PROGRESS = 2000
        self.ship_progress = 0
        self.night_opacity = self.OPACITY

        #self.cannon_accuracy = 3

        self.console = Console.Console(self.screen)
        self.addMessage(
            "Once upon a time, there was a woman named Wax Chug da Gwad. She had a solar powered ship. However, she was far from home and the solar panels sucked. And tentacle monsters appeared. Help Wax Chug get home."
        )

        resources.time = Time()
        self.time = resources.time
        #tells Time to call "toggleDay" when 6:00 happens
        self.time.setToggleDayListener(self, '6:00')
        self.day = False
        self.night = resources.all_sprites["night.png"]

        self.monsterList = MonsterList()

        self.initializePackages()
Example #2
0
    def reset(self):
        self.shakeScreen = resources.screen
        self.screen = self.shakeScreen.copy()
        resources.screen_copied = self.screen
        self.background = Background(self.screen)
        self.screenShaker = ScreenShaker()
        
        self.OPACITY = 250
        
        self.activeRegions = {}
        self.allPackages = {}
        self.allPackageNames = []
        self.allShields = []
        self.messages = []

        self.MAX_SHIP_HP = 100
        self.shipHp = 100
        self.MAX_SHIP_POWER = 1000
        self.ship_power = 1000
        self.ship_reload = 0
        self.SHIP_MAX_PROGRESS = 2000
        self.ship_progress = 0
        self.night_opacity = self.OPACITY

        #self.cannon_accuracy = 3
        
        self.console = Console.Console(self.screen)
        self.addMessage("Once upon a time, there was a woman named Wax Chug da Gwad. She had a solar powered ship. However, she was far from home and the solar panels sucked. And tentacle monsters appeared. Help Wax Chug get home.")
        
        resources.time = Time()
        self.time = resources.time
        #tells Time to call "toggleDay" when 6:00 happens
        self.time.setToggleDayListener(self, '6:00')
        self.day = False
        self.night = resources.all_sprites["night.png"]

        self.monsterList = MonsterList()

        self.initializePackages()
Example #3
0
class Game:
    def reset(self):
        self.shakeScreen = resources.screen
        self.screen = self.shakeScreen.copy()
        resources.screen_copied = self.screen
        self.background = Background(self.screen)
        self.screenShaker = ScreenShaker()

        self.OPACITY = 250

        self.activeRegions = {}
        self.allPackages = {}
        self.allPackageNames = []
        self.allShields = []
        self.messages = []

        self.MAX_SHIP_HP = 100
        self.shipHp = 100
        self.MAX_SHIP_POWER = 1000
        self.ship_power = 1000
        self.ship_reload = 0
        self.SHIP_MAX_PROGRESS = 2000
        self.ship_progress = 0
        self.night_opacity = self.OPACITY

        #self.cannon_accuracy = 3

        self.console = Console.Console(self.screen)
        self.addMessage(
            "Once upon a time, there was a woman named Wax Chug da Gwad. She had a solar powered ship. However, she was far from home and the solar panels sucked. And tentacle monsters appeared. Help Wax Chug get home."
        )

        resources.time = Time()
        self.time = resources.time
        #tells Time to call "toggleDay" when 6:00 happens
        self.time.setToggleDayListener(self, '6:00')
        self.day = False
        self.night = resources.all_sprites["night.png"]

        self.monsterList = MonsterList()

        self.initializePackages()

    def __init__(self):
        self.reset()

    def addPackage(self, name, compType, position):
        package = CompartmentPackage(self.screen, compType, position)
        self.allPackages[name] = package
        self.activeRegions[package.get_corners()] = name
        self.allPackageNames.append(name)
        if compType == "shield":
            self.allShields.append(name)

    def initializePackages(self):

        self.addPackage("Weapon 2", "weapon", (708, 470))
        self.addPackage("Weapon", "weapon", (588, 470))
        self.addPackage("Health", "health", (468, 500))
        self.addPackage("Shield 2", "shield", (228, 500))
        self.addPackage("Shield", "shield", (348, 500))
        self.addPackage("Engine", "engine", (108, 500))
        self.addPackage("Light", "light", (443, 375))

    def click(self, position):
        for region in self.activeRegions:
            x = position[0]
            y = position[1]
            if x < region[0][0]:
                continue
            if x > region[1][0]:
                continue
            if y < region[0][1]:
                continue
            if y > region[1][1]:
                continue
            name = self.activeRegions[region]
            #print(name+" selected :)")
            self.allPackages[name].compartment.toggleSelect()
            break

    def addMessage(self, customText, event=None):
        if event != None:
            self.messages.append(event[0], event[1], event[2], customText)
        else:
            self.messages.append([None, None, "Flavor", customText])

    def update(self):
        self.background.update()
        self.background.draw()

        # update stuff
        self.time.update()
        self.console.get_message(self.messages)

        if self.day:
            if (self.ship_power < self.MAX_SHIP_POWER):
                self.ship_power += 5.5
                if self.ship_power > self.MAX_SHIP_POWER:
                    self.ship_power = self.MAX_SHIP_POWER

        for name in self.allPackages:
            self.allPackages[name].update(name)

        self.night.set_alpha(self.night_opacity)

        self.monsterList.update()

        if self.ship_progress >= self.SHIP_MAX_PROGRESS:
            resources.state = "WIN"
            resources.sound_manager.playSound('win.ogg')

        elif self.shipHp <= 0:
            resources.state = "LOSE"
            resources.sound_manager.playSound('lose.ogg')

        # draw stuff
        for p in self.allPackages:
            if p != "Light":
                self.allPackages[p].draw()

        self.monsterList.draw()
        self.allPackages["Light"].draw()

        if self.ship_progress == self.SHIP_MAX_PROGRESS / 2:
            self.addMessage("You're halfway home... You can do this.")

        if self.ship_power >= self.MAX_SHIP_POWER / 2 - 5 and self.ship_power <= self.MAX_SHIP_POWER / 2 + 5:
            self.messages.append([
                None, None, "Flavor", "Your power is getting low. Be careful!"
            ])

        self.console.draw()

        self.screenShaker.update()
        self.shakeScreen.blit(self.screen, self.screenShaker.getValue())

    def toggleDay(self):
        self.day = not self.day
        #if self.day:
        #   self.cannon_accuracy = 1
        #else:
        #    self.cannon_accuracy = 3
        #print("DAY" if self.day else "NIGHT")

    def enemyAttack(self, dmg):
        resources.sound_manager.playSound('tentacle.ogg')

        for shieldName in self.allShields:
            if self.allPackages[shieldName].compartment.active:
                self.screenShaker.shake()
                self.allPackages[shieldName].attacked(dmg * 3)
                self.affectShipHp(-dmg / 3)
                for comp in self.allPackages:
                    if self.allPackages[
                            comp].compartment.active == False and not self.allPackages[
                                comp].compartment.currentlyDisabled:
                        self.allPackages[
                            comp].compartment.currentlyDisabled = True
                        comp_type = self.allPackages[comp].compartment.compType
                        first_letter = comp_type[0].upper()
                        self.addMessage(first_letter + comp_type[1:] +
                                        " has been disabled.")
                return

        self.screenShaker.shake(6, 2000)

        if self.shipHp < self.MAX_SHIP_HP / 2:
            self.addMessage("Your ship is in critical health.")

        self.affectShipHp(-dmg * 2)

        for name in self.allPackages:
            dmg += random.randint(-5, 5)
            self.allPackages[name].attacked(dmg)

        for comp in self.allPackages:
            if self.allPackages[
                    comp].compartment.active == False and not self.allPackages[
                        comp].compartment.currentlyDisabled:
                self.allPackages[comp].compartment.currentlyDisabled = True
                comp_type = self.allPackages[comp].compartment.compType
                first_letter = comp_type[0].upper()

                self.addMessage(first_letter + comp_type[1:] +
                                " has been disabled.")

    def affectShipHp(self, value):
        self.shipHp += value
        self.shipHp = max(self.shipHp, 0)
        self.shipHp = min(self.MAX_SHIP_HP, self.shipHp)
        if self.shipHp <= 0:
            pass
            #print("You died")

    def cannonAttack(self, dmg):
        self.monsterList.attackOldestMonster(dmg)
Example #4
0
class Game:
    def reset(self):
        self.shakeScreen = resources.screen
        self.screen = self.shakeScreen.copy()
        resources.screen_copied = self.screen
        self.background = Background(self.screen)
        self.screenShaker = ScreenShaker()
        
        self.OPACITY = 250
        
        self.activeRegions = {}
        self.allPackages = {}
        self.allPackageNames = []
        self.allShields = []
        self.messages = []

        self.MAX_SHIP_HP = 100
        self.shipHp = 100
        self.MAX_SHIP_POWER = 1000
        self.ship_power = 1000
        self.ship_reload = 0
        self.SHIP_MAX_PROGRESS = 2000
        self.ship_progress = 0
        self.night_opacity = self.OPACITY

        #self.cannon_accuracy = 3
        
        self.console = Console.Console(self.screen)
        self.addMessage("Once upon a time, there was a woman named Wax Chug da Gwad. She had a solar powered ship. However, she was far from home and the solar panels sucked. And tentacle monsters appeared. Help Wax Chug get home.")
        
        resources.time = Time()
        self.time = resources.time
        #tells Time to call "toggleDay" when 6:00 happens
        self.time.setToggleDayListener(self, '6:00')
        self.day = False
        self.night = resources.all_sprites["night.png"]

        self.monsterList = MonsterList()

        self.initializePackages()

    def __init__(self):
        self.reset()

    def addPackage(self, name, compType, position):
        package = CompartmentPackage(self.screen, compType, position)
        self.allPackages[name] = package
        self.activeRegions[package.get_corners()] = name
        self.allPackageNames.append(name)
        if compType == "shield":
            self.allShields.append(name)

    def initializePackages(self):

        self.addPackage("Weapon 2", "weapon", (708, 470))
        self.addPackage("Weapon", "weapon", (588, 470))
        self.addPackage("Health", "health", (468, 500))
        self.addPackage("Shield 2", "shield", (228, 500))
        self.addPackage("Shield", "shield", (348, 500))
        self.addPackage("Engine", "engine", (108, 500))
        self.addPackage("Light", "light", (443, 375))

    def click(self, position):
        for region in self.activeRegions:
            x = position[0]
            y = position[1]
            if x < region[0][0]:
                continue
            if x > region[1][0]:
                continue
            if y < region[0][1]:
                continue
            if y > region[1][1]:
                continue
            name = self.activeRegions[region]
            #print(name+" selected :)")
            self.allPackages[name].compartment.toggleSelect()
            break
    
    def addMessage(self, customText, event=None):
        if event != None:
            self.messages.append(event[0], event[1], event[2], customText)
        else:
            self.messages.append([None, None, "Flavor", customText])
    
    def update(self):
        self.background.update()
        self.background.draw()
    
    
    
        # update stuff
        self.time.update()
        self.console.get_message(self.messages)
        
        if self.day:
            if (self.ship_power < self.MAX_SHIP_POWER):
                self.ship_power += 5.5
                if self.ship_power > self.MAX_SHIP_POWER:
                    self.ship_power = self.MAX_SHIP_POWER

        for name in self.allPackages:
            self.allPackages[name].update(name)

        self.night.set_alpha(self.night_opacity)

        self.monsterList.update()
        
        if self.ship_progress >= self.SHIP_MAX_PROGRESS:
            resources.state = "WIN"
            resources.sound_manager.playSound('win.ogg')

        elif self.shipHp <= 0:
            resources.state = "LOSE"
            resources.sound_manager.playSound('lose.ogg')

        # draw stuff
        for p in self.allPackages:
            if p != "Light":
                self.allPackages[p].draw()

        self.monsterList.draw()
        self.allPackages["Light"].draw()

        if self.ship_progress == self.SHIP_MAX_PROGRESS/2:
            self.addMessage("You're halfway home... You can do this.")
        
        if self.ship_power >= self.MAX_SHIP_POWER/2 -5 and self.ship_power <= self.MAX_SHIP_POWER/2 + 5:
            self.messages.append([None, None, "Flavor", "Your power is getting low. Be careful!"])
        
        self.console.draw()
        
        self.screenShaker.update()
        self.shakeScreen.blit(self.screen, self.screenShaker.getValue())

    def toggleDay(self):
        self.day = not self.day
        #if self.day:
         #   self.cannon_accuracy = 1
        #else:
        #    self.cannon_accuracy = 3
        #print("DAY" if self.day else "NIGHT")


    def enemyAttack(self, dmg):
        resources.sound_manager.playSound('tentacle.ogg')

        for shieldName in self.allShields:
            if self.allPackages[shieldName].compartment.active:
                self.screenShaker.shake()
                self.allPackages[shieldName].attacked(dmg* 3)
                self.affectShipHp(-dmg/3)
                for comp in self.allPackages:
                    if self.allPackages[comp].compartment.active == False and not self.allPackages[comp].compartment.currentlyDisabled:
                        self.allPackages[comp].compartment.currentlyDisabled = True
                        comp_type = self.allPackages[comp].compartment.compType
                        first_letter = comp_type[0].upper()
                        self.addMessage(first_letter + comp_type[1:] + " has been disabled.")
                return

        self.screenShaker.shake(6, 2000)

        if self.shipHp < self.MAX_SHIP_HP/2:
            self.addMessage("Your ship is in critical health.")

        self.affectShipHp(-dmg * 2)

         
        for name in self.allPackages:
            dmg += random.randint(-5, 5)
            self.allPackages[name].attacked(dmg)

        for comp in self.allPackages:
            if self.allPackages[comp].compartment.active == False and not self.allPackages[comp].compartment.currentlyDisabled:
                self.allPackages[comp].compartment.currentlyDisabled = True
                comp_type = self.allPackages[comp].compartment.compType
                first_letter = comp_type[0].upper()

                self.addMessage(first_letter + comp_type[1:] + " has been disabled.")
                
    def affectShipHp(self, value):
        self.shipHp += value
        self.shipHp = max(self.shipHp, 0)
        self.shipHp = min(self.MAX_SHIP_HP, self.shipHp)
        if self.shipHp <= 0:
            pass
            #print("You died")

    def cannonAttack(self, dmg):
        self.monsterList.attackOldestMonster(dmg)