Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/MAFH2/BattleEngine.py
diff options
context:
space:
mode:
authorKevin Hockey <Blitzkev@gmail.com>2010-07-08 19:14:22 (GMT)
committer Kevin Hockey <Blitzkev@gmail.com>2010-07-08 19:14:22 (GMT)
commitdd12a7a8093d74fb17a7d6dc70180ee976ffa59d (patch)
treef988ee48cc08bb89422d45b96a1dd12e361c1d95 /MAFH2/BattleEngine.py
parent5aeecc5f1890ff1d4429d6e3c20e34877b915544 (diff)
Enemies attack, you attack them.
Diffstat (limited to 'MAFH2/BattleEngine.py')
-rw-r--r--MAFH2/BattleEngine.py79
1 files changed, 54 insertions, 25 deletions
diff --git a/MAFH2/BattleEngine.py b/MAFH2/BattleEngine.py
index 361078c..5d95775 100644
--- a/MAFH2/BattleEngine.py
+++ b/MAFH2/BattleEngine.py
@@ -27,6 +27,7 @@ class BattleEngine(GameEngineElement):
self.spellType = 0 #0 = non, 1-4 are spells in order, 5 is special
self.isMagic = False
+ self.correct = False
self.state = PLAYER_WAIT
self.player_input = '0'
self.active_target = 1
@@ -80,8 +81,10 @@ class BattleEngine(GameEngineElement):
#figure out damage for crit attack
if int(self.player_input) == (self.critAns):
menu.set_disp('Correct!')
+ self.correct = True
else:
menu.set_disp('Incorrect')
+ self.correct = False
menu.set_sec_disp('')
self.player_input = ''
@@ -96,30 +99,27 @@ class BattleEngine(GameEngineElement):
menu.set_sec_disp( self.player_input )
elif selection == 'fire':
- menu.set_disp('Fire Cast!')
self.game_engine.add_object('magicmenu', MagicMenuHolder( self.menu_callback ) )
self.game_engine.get_object('magicmenu').show_menu('fire')
+ self.spellType = 1
self.isMagic = True
self.magicWin = False
-
- elif selection == 'heal':
- menu.set_disp('Heal Cast!')
- self.game_engine.add_object('magicmenu', MagicMenuHolder( self.menu_callback ) )
- self.game_engine.get_object('magicmenu').show_menu('heal')
- self.isMagic = True
- self.magicWin = False
-
elif selection == 'lightning':
- menu.set_disp('Lightning Cast!')
self.game_engine.add_object('magicmenu', MagicMenuHolder( self.menu_callback ) )
self.game_engine.get_object('magicmenu').show_menu('lightning')
+ self.spellType = 2
self.isMagic = True
self.magicWin = False
-
elif selection == 'missile':
- menu.set_disp('Missile Cast!')
self.game_engine.add_object('magicmenu', MagicMenuHolder( self.menu_callback ) )
self.game_engine.get_object('magicmenu').show_menu('missile')
+ self.spellType = 3
+ self.isMagic = True
+ self.magicWin = False
+ elif selection == 'heal':
+ self.game_engine.add_object('magicmenu', MagicMenuHolder( self.menu_callback ) )
+ self.game_engine.get_object('magicmenu').show_menu('heal')
+ self.spellType = 4
self.isMagic = True
self.magicWin = False
@@ -260,24 +260,49 @@ class BattleEngine(GameEngineElement):
self.__attack_phase(menu)
def __attack_phase(self, menu):
- # Check to see how much hp enemy has left.
- # Enemy Attack
- # Check player health
+ #do the correct damage to correct enemy
hero = self.game_engine.get_object('profile').hero
- weakness = self.enemy_list[self.active_target]
- spellTypes = ['none', 'fire', 'lightning', 'missile', 'heal', 'special']
- bonus = 0
- if spellTypes[self.spellType] == weakness:
- bonus = 60
-
-
-
+ damage = 0
+ if self.isMagic:
+ weakness = self.enemy_list[self.active_target]
+ spellTypes = ['none', 'fire', 'lightning', 'missile', 'heal', 'special']
+ bonus = 0
+ if spellTypes[self.spellType] == weakness:
+ bonus = 60
+ damage += bonus
+ if self.magicWin:
+ damage += hero.attackPower(spellTypes[self.spellType])
+ self.enemy_list[self.active_target].HP -= damage
+ self.player_input = spellTypes[self.spellType] + ' cast!'
+ else:
+ self.player_input = 'Spell fizzles'
+ elif self.state == PLAYER_MULT:
+ if self.correct:
+ damage = hero.attackPower("critical")
+ self.enemy_list[self.active_target].HP -= damage
+ self.player_input = "Your attack crits for " + str(damage) + " damage"
+ else:
+ damage = hero.attackPower('basic')
+ self.enemy_list[self.active_target].HP -= damage
+ self.player_input = "You attack for " + str(damage) + " damage"
+
+ #generate enemy attack
+ for enemy in self.enemy_list:
+ random.seed()
+ enemyAttack = random.randint(0,100)
+ if enemyAttack > 90:
+ hero.defendAttack(enemy.attackPower('special'))
+ elif enemyAttack < 6:
+ hero.defendAttack(enemy.attackPower('critical'))
+ else:
+ hero.defendAttack(enemy.attackPower('basic'))
+
+ self.game_engine.get_object('profile').hero = hero
self.state = PLAYER_WAIT
self.magic_list = []
- print("in __attack_phase")
self.__end_battle(menu)
def __end_battle(self, menu):
@@ -288,7 +313,11 @@ class BattleEngine(GameEngineElement):
self.game_engine.remove_object('magicmenu')
else:
menu.show_menu('selection')
-
+
+ self.game_engine.get_object('battlemenu').set_disp(self.player_input)
+
+ #Are enemies dead?
+
def event_handler(self, event):
if event.type == pygame.KEYDOWN: