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
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()
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
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 = []
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)
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])
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()
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()