Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/MAFH2/BattleEngine.py
diff options
context:
space:
mode:
authorjlew <jlew.blackout@gmail.com>2010-08-05 02:27:54 (GMT)
committer jlew <jlew.blackout@gmail.com>2010-08-05 02:34:17 (GMT)
commita40c23156be43a23df3f93eb0355cd4f21763233 (patch)
tree5a852419761143ceeada401867825c534eeb31d7 /MAFH2/BattleEngine.py
parent4e706cac2b99b7eb4b98bd55d5a28da728d4cf39 (diff)
parent50df09bbfa69fe00b16ea8ec9ceabadba5ce7d08 (diff)
Merge branch 'animationrework'
Conflicts: MAFH2/BattleEngine.py
Diffstat (limited to 'MAFH2/BattleEngine.py')
-rw-r--r--MAFH2/BattleEngine.py45
1 files changed, 30 insertions, 15 deletions
diff --git a/MAFH2/BattleEngine.py b/MAFH2/BattleEngine.py
index 598bb03..e9ae66e 100644
--- a/MAFH2/BattleEngine.py
+++ b/MAFH2/BattleEngine.py
@@ -2,8 +2,11 @@ from fortuneengine.GameEngineElement import GameEngineElement
from Enemy import get_enemy
from BattleMenu import BattleMenuHolder
from MagicMenu import MagicMenuHolder
-from AnimatedSprite import Spritesheet
+from Spritesheet import Spritesheet
from Items import get_item
+from fortuneengine.DrawableObject import DrawableObject
+from fortuneengine.DynamicDrawableObject import DynamicDrawableObject
+from fortuneengine.Scene import Scene
import pygame
import time
@@ -14,6 +17,7 @@ import random
PLAYER_WAIT = 1
PLAYER_MULT = 2
+_dirtyList=[]
class BattleEngine(GameEngineElement):
def __init__(self, dgn):
@@ -39,15 +43,21 @@ class BattleEngine(GameEngineElement):
e_index = self.current_room.get_enemy( i )
if e_index != '0':
- self.enemy_list.append( get_enemy( e_index ) )
+ curE = get_enemy( e_index )
+ self.enemy_list.append( curE )
+ self.game_engine.get_scene().addObject(curE.get_sprite())
# Preload images
- self.__images = {}
+ self.__drawableObjects = {}
for i in ['arrow_select']:
- self.__images[i] = pygame.image.load( HUD_PATH + i + ".gif" )
+ self.__drawableObjects[i] = DrawableObject([pygame.image.load( HUD_PATH + i + ".gif" )], '')
+ self.game_engine.get_scene().addObject(self.__drawableObjects[i])
- self.__images['hp'] = Spritesheet( HUD_PATH + "hp.png" ).img_extract(11,1,100,100)
- self.__images['bt'] = Spritesheet( HUD_PATH + "bt.png" ).img_extract(1,11,100,25)
+ self.__drawableObjects['hp'] = DrawableObject(Spritesheet( HUD_PATH + "hp.gif" ).img_extract(11,1,100,100,[255,0,255]), '')
+ self.__drawableObjects['bt'] = DrawableObject(Spritesheet( HUD_PATH + "bt.gif" ).img_extract(1,11,100,25), '', True)
+ self.__drawableObjects['hp'].setColorKey((255,0,255))
+ self.game_engine.get_scene().addObject(self.__drawableObjects['hp'])
+ self.game_engine.get_scene().addObject(self.__drawableObjects['bt'])
self.add_to_engine()
self.game_engine.add_object('battlemenu', BattleMenuHolder( self.menu_callback ) )
@@ -313,6 +323,7 @@ class BattleEngine(GameEngineElement):
if enemy.HP <= 0:
enemy.alive = False
self.enemy_list.remove(enemy)
+ enemy.get_sprite().makeTransparent(True)
self.active_target = 1
if enemy.alive:
random.seed()
@@ -354,9 +365,13 @@ class BattleEngine(GameEngineElement):
room.remove_item( i )
self.game_engine.get_object('mesg').add_line(_("%s dropped!")% item.name)
room.has_enemy = False
+
#self terminate
#print 'end battle called'
self.remove_from_engine()
+ for key in self.__drawableObjects:
+ self.game_engine.get_scene().removeObject(self.__drawableObjects[key])
+
self.game_engine.get_object('battlemenu').remove_from_engine()
self.game_engine.remove_object('battle')
@@ -399,28 +414,28 @@ class BattleEngine(GameEngineElement):
x=250
y=150
i = 1
-
+
tick_time = pygame.time.get_ticks()
# Draw Enemy and Item Selection
for enemy in self.enemy_list:
- if enemy.alive:
- if self.active_target == i:
- screen.blit(self.__images['arrow_select'], (x+(i*200),y-25))
- enemy.sprite.update( tick_time )
- screen.blit(enemy.sprite.image, (x+(i*200),y))
- i = i+1
+ if enemy.alive and self.active_target == i:
+ self.__drawableObjects['arrow_select'].setPosition(x+(i*200),y-25)
+ enemy.get_sprite().setPosition(x+(i*200),y)
+ i = i+1
# Draw Hud
profile = self.game_engine.get_object('profile')
# Player Health
health = 10 - profile.hero.healthLevel()
- screen.blit(self.__images['hp'][health], (25,25))
+
+ self.__drawableObjects['hp'].goToFrame(health)
+ self.__drawableObjects['hp'].setPosition(25,25)
#Battle Timer
if(self.battleTimer > 0):
tIndex = int(time.time() - self.battleTimer)
if tIndex > 10:
tIndex = 10
- screen.blit(self.__images['bt'][tIndex], (25,130))
+ #screen.blit(self.__images['bt'][tIndex], (25,130))