Exemple #1
0
    def __init__( self ):

        self.engine = annchienta.getEngine()
        self.videoManager = annchienta.getVideoManager()
        self.inputManager = annchienta.getInputManager()
        self.cacheManager = annchienta.getCacheManager()
        self.mapManager   = annchienta.getMapManager()
        self.mathManager  = annchienta.getMathManager()
        self.sceneManager = SceneManager.getSceneManager()

        # Background spriteace
        self.background = annchienta.Surface( "images/backgrounds/sky.png" )
        self.backgroundY = 0.0

        # Create a ship for the player
        self.ship = GameObject( annchienta.Vector( videoManager.getScreenWidth()/2, videoManager.getScreenHeight()/2 ),
                                annchienta.Surface( "sprites/ship_small.png" ) )

        # Load sprites into cache
        self.enemySprite = annchienta.Surface("sprites/ship_pirate.png")

        # All enemies
        self.enemies = []

        # The final enemy
        self.captain = None

        # Number of miliseconds we need to fly to gain victory
        self.victoryTime = 60000
Exemple #2
0
def runMiniGame():
    sceneManager = SceneManager.getSceneManager()
    videoManager = annchienta.getVideoManager()
    mapManager = annchienta.getMapManager()

    sceneManager.initDialog( [] )

    # Clear entire screen.
    videoManager.clear()
    videoManager.setColor(0,0,0)
    videoManager.drawRectangle( 0, 0, videoManager.getScreenWidth(), videoManager.getScreenHeight() )
    videoManager.flip()

    # Some intro talk.
    sceneManager.text( "August:\nAnd so we took Banver's ship in attempt to reach the Jemor continent.", None )
    sceneManager.text( "August:\nBut soon we were noticed by these sky pirates Banver mentioned.", None )
    sceneManager.text( "August:\nAt first, it seemed like there weren't too many, so we tried to evade them.", None )
    sceneManager.text( "August:\nBut then...", None )

    # Save first
    sceneManager.text( "Info: Your game was saved automatically.", None )
    path = os.path.join(os.path.expanduser("~"), ".fall-of-imiryn/save.xml")
    partyManager.save(path)

    game = Game()
    game.run()

    sceneManager.quitDialog()

    # If we made it...
    if mapManager.isRunning():
        partyManager.addRecord("fleet_caught_by_captain")
        partyManager.refreshMap()
Exemple #3
0
    def __init__( self, name, toolTip=None ):
        
        # Stuff for sounds
        self.cacheManager = annchienta.getCacheManager()
        self.audioManager = annchienta.getAudioManager()
        self.soundClickRev = self.cacheManager.getSound('sounds/click-reverse.ogg')
        self.soundClickNeg = self.cacheManager.getSound('sounds/click-negative.ogg')
        self.soundClickPos = self.cacheManager.getSound('sounds/click-positive.ogg')
        self.soundClickNeu = self.cacheManager.getSound('sounds/click-neutral.ogg')
        self.soundSave =     self.cacheManager.getSound('sounds/save.ogg')
    
        # Base constructor
        MenuItem.MenuItem.__init__( self, name, toolTip )
        
        # Get references
        self.inputManager = annchienta.getInputManager()
        self.videoManager = annchienta.getVideoManager()
        self.mapManager = annchienta.getMapManager()
        self.sceneManager = SceneManager.getSceneManager()

        # Flags
        self.done = False
        self.canceled = False
        
        # Size of the menu
        self.width, self.height = 0, 0

        # Position on the screen
        self.x, self.y = 0, 0
        self.columns = 1
        self.rows = 1

        # If the tooltip should be drawn on top of the screen
        self.toolTipOnTop = True

        # Kinda self explanatory
        self.maxItemsInColumn = 4

        # The options in the menu. Use setOptions() to set them!
        self.options = []

        # The currently selected item index
        self.selectedOptionIndex = 0
        self.selectedOption = None
Exemple #4
0
    def __init__(self, combatants, background, canFlee):

        # Set variables
        self.combatants = combatants
        self.running = True
        self.background = background
        self.canFlee = canFlee
        self.won = False
        self.actionLock = False

        # Get references
        self.engine = annchienta.getEngine()
        self.videoManager = annchienta.getVideoManager()
        self.inputManager = annchienta.getInputManager()
        self.cacheManager = annchienta.getCacheManager()
        self.mathManager = annchienta.getMathManager()
        self.mapManager = annchienta.getMapManager()
        self.audioManager = annchienta.getAudioManager()
        self.sceneManager = SceneManager.getSceneManager()
        self.partyManager = PartyManager.getPartyManager()

        # Lines for the 'console' window
        self.lines = []
Exemple #5
0
    def __init__(self):

        # Get some references
        self.engine = annchienta.getEngine()
        self.inputManager = annchienta.getInputManager()
        self.mapManager = annchienta.getMapManager()
        self.cacheManager = annchienta.getCacheManager()
        self.mathManager = annchienta.getMathManager()
        self.sceneManager = SceneManager.getSceneManager()

        # Set variables
        self.player = 0
        self.records = []
        self.inventory = 0
        self.lastMaps = []
        self.currentMap = 0
        self.startTime = 0

        # Create a map loader
        self.mapLoader = MapLoader()

        # Battle variables
        self.randomBattleDelay = self.mathManager.randInt(300, 400)
Exemple #6
0
import annchienta
import PartyManager, SceneManager, BattleManager

mapManager = annchienta.getMapManager()
videoManager = annchienta.getVideoManager()
partyManager = PartyManager.getPartyManager()
sceneManager = SceneManager.getSceneManager()

currentMap = partyManager.getCurrentMap()

partyManager.addRecord("inaran_cave3_scene")

# Create a whole bunch of objects/persons and set them to
# their positions.
august = partyManager.getPlayer()
augustPosition = august.getPosition().to(annchienta.TilePoint)

march = annchienta.Person("march", "locations/common/march.xml")
currentMap.addObject(
    march,
    annchienta.Point(annchienta.TilePoint, augustPosition.x + 1,
                     augustPosition.y))

avril = annchienta.Person("avril", "locations/common/avril.xml")
currentMap.addObject(
    avril,
    annchienta.Point(annchienta.TilePoint, augustPosition.x,
                     augustPosition.y + 1))

# Init our dialog.
sceneManager.initDialog([august, march, avril])
Exemple #7
0
import annchienta, SceneManager, PartyManager
partyManager, sceneManager = PartyManager.getPartyManager(
), SceneManager.getSceneManager()
mathManager = annchienta.getMathManager()

messages = [
    "He doesn't look to healthy.", "Spooky.", "I wonder what happened to him?",
    "I have a bad feeling about this...", "This is getting scary...",
    "I wonder how he died?", "I hope I don't end up like that..."
]

sceneManager.initDialog([partyManager.player])
sceneManager.speak(partyManager.player,
                   messages[mathManager.randInt(len(messages))])
sceneManager.quitDialog()
Exemple #8
0
    def __init__(self, xmlElement):

        # Call super constructor
        BattleEntity.BattleEntity.__init__(self, xmlElement)

        # We need to log stuff
        self.logManager = annchienta.getLogManager()

        # Get references
        self.videoManager = annchienta.getVideoManager()
        self.cacheManager = annchienta.getCacheManager()
        self.mathManager = annchienta.getMathManager()
        self.sceneManager = SceneManager.getSceneManager()

        # Create a dictionary describing the level stuff
        self.level = {}
        levelElement = xmlElement.getElementsByTagName("level")[0]
        for k in levelElement.attributes.keys():
            self.level[k] = int(levelElement.attributes[k].value)

        # Create a dictionary describing the health stats
        self.healthStats = {}
        healthStatsElement = xmlElement.getElementsByTagName("healthstats")[0]
        for k in healthStatsElement.attributes.keys():
            self.healthStats[k] = int(healthStatsElement.attributes[k].value)

        # Get all possible actions. The actual actions are in the first child
        # of the element, hence the code. <actions> action1 action2 </actions>
        actionsElement = xmlElement.getElementsByTagName("actions")[0]
        actionNames = str(actionsElement.firstChild.data).split()
        # Prepare to get the from the xml data
        self.actions = []
        # Get them
        for a in actionNames:
            self.addAction(a)

        # Create a dictionary describing the elemental properties
        # Only enemies have them, usually
        self.primaryElemental = {}
        elementalElements = xmlElement.getElementsByTagName("elemental")
        if len(elementalElements):
            for k in elementalElements[0].attributes.keys():
                self.primaryElemental[k] = float(
                    elementalElements[0].attributes[k].value)

        # Load sprite
        spriteElement = xmlElement.getElementsByTagName("sprite")[0]
        # Keep the filename so we can save it later on
        self.spriteFilename = str(spriteElement.getAttribute("filename"))
        self.sprite = annchienta.Surface(self.spriteFilename)
        if spriteElement.hasAttribute("x1"):
            self.sx1 = int(spriteElement.getAttribute("x1"))
            self.sy1 = int(spriteElement.getAttribute("y1"))
            self.sx2 = int(spriteElement.getAttribute("x2"))
            self.sy2 = int(spriteElement.getAttribute("y2"))
        else:
            self.sx1, self.sy1 = 0, 0
            self.sx2 = self.sprite.getWidth()
            self.sy2 = self.sprite.getHeight()

        # Get width and height from those facts.
        self.width = self.sx2 - self.sx1
        self.height = self.sy2 - self.sy1

        self.position = annchienta.Vector(0, 0)

        # We will draw a mark upon ourselves sometimes
        self.active = False
        self.selected = False

        # Damage done by an attack
        self.damage = 0
        self.damageTimer = 0.0

        self.reset()