Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
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
parent5aeecc5f1890ff1d4429d6e3c20e34877b915544 (diff)
Enemies attack, you attack them.
-rw-r--r--MAFH2/BattleEngine.py79
-rw-r--r--MAFH2/Enemy.py2
-rw-r--r--MAFH2/Hero.py10
-rw-r--r--MAFH2/MagicMenu.py10
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)