diff options
author | Kevin Hockey <Blitzkev@gmail.com> | 2010-07-08 19:14:22 (GMT) |
---|---|---|
committer | Kevin Hockey <Blitzkev@gmail.com> | 2010-07-08 19:14:22 (GMT) |
commit | dd12a7a8093d74fb17a7d6dc70180ee976ffa59d (patch) | |
tree | f988ee48cc08bb89422d45b96a1dd12e361c1d95 | |
parent | 5aeecc5f1890ff1d4429d6e3c20e34877b915544 (diff) |
Enemies attack, you attack them.
-rw-r--r-- | MAFH2/BattleEngine.py | 79 | ||||
-rw-r--r-- | MAFH2/Enemy.py | 2 | ||||
-rw-r--r-- | MAFH2/Hero.py | 10 | ||||
-rw-r--r-- | MAFH2/MagicMenu.py | 10 |
4 files changed, 62 insertions, 39 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: diff --git a/MAFH2/Enemy.py b/MAFH2/Enemy.py index b6531d9..6ea4d64 100644 --- a/MAFH2/Enemy.py +++ b/MAFH2/Enemy.py @@ -15,7 +15,7 @@ ENEMY = { '7':{'name':_('Cave Crab'),'img':"Crab.png",'hp':50,'att':7,'weak':'missile','sprite':(1,1,400,400)}, '8':{'name':_('Frost Giant'),'img':"frost_giant.png",'hp':45,'att':9,'weak':'fire','sprite':(1,1,250,250)}, #UPDATE BONESPROUT VALUES - '9':{'name':_('Bonesprout'),'img':"bonesprout.png",'hp':45,'att':9,'weak':'fire','sprite':(1,1,250,250)}, + '9':{'name':_('Bonesprout'),'img':"bonesprout.png",'hp':45,'att':8,'weak':'fire','sprite':(1,1,250,250)}, 'a':{'name':_('anim_test'),'img':"anim_test.gif",'hp':45,'att':9,'weak':'fire','sprite':(3,2, 156,166)}, } diff --git a/MAFH2/Hero.py b/MAFH2/Hero.py index c0cc49b..7c83296 100644 --- a/MAFH2/Hero.py +++ b/MAFH2/Hero.py @@ -33,15 +33,15 @@ class Hero(Actor): return self.ATT+self.BAE elif name=="critical": return self.ATT+self.BAE+self.BAB - elif name=="Fire": + elif name=="fire": return self.ATT+self.BAB - elif name=="Heal": + elif name=="heal": return self.BAB-10 - elif name=="Lightning": + elif name=="lightning": return self.ATT+self.BAB - elif name=="Division": + elif name=="division": return (self.ATT+self.BAE+self.BAB)*1.5 - elif name=="Missile": + elif name=="missile": return self.ATT+self.BAB def setBonusAP(self,BAP): self.BAB=BAP diff --git a/MAFH2/MagicMenu.py b/MAFH2/MagicMenu.py index 26ec022..781148e 100644 --- a/MAFH2/MagicMenu.py +++ b/MAFH2/MagicMenu.py @@ -6,8 +6,6 @@ from AnimatedSprite import Spritesheet from constants import MENU_PATH, PUZZLE_PATH from gettext import gettext as _ -NORMAL_MENU = 1 -GRID_MENU = 2 class MagicMenuHolder( GameEngineElement ): def __init__(self, callback): @@ -41,7 +39,6 @@ class MagicMenuHolder( GameEngineElement ): #example of what will come if id == "fire": - menu_type = GRID_MENU spell_type = 0 menu_options = [ [_('1'), lambda: self.menu_called("fire1"), 140], @@ -54,7 +51,6 @@ class MagicMenuHolder( GameEngineElement ): [_('8'), lambda: self.menu_called("wrongchoice"), 140] ] elif id == "lightning": - menu_type = GRID_MENU spell_type = 1 menu_options = [ [_('1'), lambda: self.menu_called("lig1"), 140], @@ -67,7 +63,6 @@ class MagicMenuHolder( GameEngineElement ): [_('8'), lambda: self.menu_called("wrongchoice"), 140] ] elif id == "missile": - menu_type = GRID_MENU spell_type = 2 menu_options = [ [_('1'), lambda: self.menu_called("miss1"), 140], @@ -80,7 +75,6 @@ class MagicMenuHolder( GameEngineElement ): [_('8'), lambda: self.menu_called("wrongchoice"), 140] ] elif id == "heal": - menu_type = GRID_MENU spell_type = 3 menu_options = [ [_('1'), lambda: self.menu_called("heal1"), 140], @@ -92,10 +86,10 @@ class MagicMenuHolder( GameEngineElement ): [_('7'), lambda: self.menu_called("wrongchoice"), 140], [_('8'), lambda: self.menu_called("wrongchoice"), 140] ] - self.menu = MagicMenu(menu_options, 237, 375, menu_type, spell_type) + self.menu = MagicMenu(menu_options, 237, 375, spell_type) class MagicMenu(GameEngineElement): - def __init__(self, menu_options, x, y, type, spell_type): + def __init__(self, menu_options, x, y, spell_type): GameEngineElement.__init__(self, has_draw=True, has_event=True) magic_list = self.game_engine.get_object('battle').magic_list self.menu = Menu(menu_options, spell_type, magic_list) |