Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MAFH2/BattleEngine.py211
-rw-r--r--MAFH2/MagicMenu.py47
2 files changed, 204 insertions, 54 deletions
diff --git a/MAFH2/BattleEngine.py b/MAFH2/BattleEngine.py
index 4435641..63c63d4 100644
--- a/MAFH2/BattleEngine.py
+++ b/MAFH2/BattleEngine.py
@@ -23,7 +23,9 @@ class BattleEngine(GameEngineElement):
self.font = pygame.font.SysFont("cmr10",18,False,False)
self.enemy_list = []
+ self.magic_list = []
+ self.isMagic = False
self.state = PLAYER_WAIT
self.player_input = '0'
self.active_target = 1
@@ -53,15 +55,16 @@ class BattleEngine(GameEngineElement):
if selection == 'attack_show':
menu.set_sec_disp('0')
self.player_input = '0'
+ self.isMagic = False
random.seed()
isCrit = random.randint(0,100)
- tempR1 = random.randint(0,10)
- tempR2 = random.randint(0,10)
- self.critAns = tempR1 * tempR2
if( isCrit > 90 ):
#Show problem
menu.show_menu('attack')
+ tempR1 = random.randint(0,10)
+ tempR2 = random.randint(0,10)
+ self.critAns = tempR1 * tempR2
menu.set_disp('%d x %d' %(tempR1, tempR2))
self.state = PLAYER_MULT
else:
@@ -73,62 +76,214 @@ class BattleEngine(GameEngineElement):
elif self.state == PLAYER_MULT:
if selection == 'enter':
- #figure out damage for crit attack
-
+ #figure out damage for crit attack
if int(self.player_input) == (self.critAns):
menu.set_disp('Correct!')
else:
menu.set_disp('Incorrect')
menu.set_sec_disp('0')
+ self.player_input = '0'
self.__attack_phase(menu)
- elif selection == 'clear':
- self.player_input = '0'
+ elif selection == 'clear':
+ self.player_input = '0'
+ menu.set_sec_disp('0')
+
+ else:
+ self.player_input = self.player_input + selection
+ menu.set_sec_disp( self.player_input )
elif selection == 'fire':
menu.set_disp('Fire Cast!')
- self.game_engine.add_object('firemenu', MagicMenuHolder( self.menu_callback ) )
- self.game_engine.get_object('firemenu').show_menu('fire')
- print("got here")
+ self.game_engine.add_object('magicmenu', MagicMenuHolder( self.menu_callback ) )
+ self.game_engine.get_object('magicmenu').show_menu('fire')
+ self.isMagic = True
#self.__attack_phase(menu)
elif selection == 'heal':
- menu.set_disp('Heal Cast!')
- self.__attack_phase(menu)
+ 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
elif selection == 'lightning':
- menu.set_disp('Lightning Cast!')
- self.__attack_phase(menu)
+ 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.isMagic = True
elif selection == 'missile':
- menu.set_disp('Missile Cast!')
- self.__attack_phase(menu)
-
+ 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.isMagic = True
+
elif selection == 'scan':
menu.set_disp('Enemy Scanned!')
- self.__attack_phase(menu)
- else:
- #MUST BE A NUMBER
- if self.player_input == '0':
- self.player_input = selection
- else:
- self.player_input = self.player_input + selection
- menu.set_sec_disp( self.player_input )
+ self.__attack_phase(menu)
+
+ elif selection == 'fire1':
+ if(1 in self.magic_list):
+ self.__attack_phase(menu)
+ else:
+ self.magic_list.append(1)
+ #draw overlay
+ if(len(self.magic_list) > 3):
+ #reset variables
+ self.__attack_phase(menu)
+ elif selection == 'fire2':
+ if(1 in self.magic_list):
+ self.__attack_phase(menu)
+ else:
+ self.magic_list.append(2)
+ #draw overlay
+ if(len(self.magic_list) > 3):
+ #reset variables
+ self.__attack_phase(menu)
+ elif selection == 'fire3':
+ if(1 in self.magic_list):
+ self.__attack_phase(menu)
+ else:
+ self.magic_list.append(3)
+ #draw overlay
+ if(len(self.magic_list) > 3):
+ #reset variables
+ self.__attack_phase(menu)
+ elif selection == 'fire4':
+ if(1 in self.magic_list):
+ self.__attack_phase(menu)
+ else:
+ self.magic_list.append(4)
+ #draw overlay
+ if(len(self.magic_list) > 3):
+ #reset variables
+ self.__attack_phase(menu)
+ elif selection == 'lig1':
+ if(1 in self.magic_list):
+ self.__attack_phase(menu)
+ else:
+ self.magic_list.append(1)
+ #draw overlay
+ if(len(self.magic_list) > 3):
+ #reset variables
+ self.__attack_phase(menu)
+ elif selection == 'lig2':
+ if(1 in self.magic_list):
+ self.__attack_phase(menu)
+ else:
+ self.magic_list.append(2)
+ #draw overlay
+ if(len(self.magic_list) > 3):
+ #reset variables
+ self.__attack_phase(menu)
+ elif selection == 'lig3':
+ if(1 in self.magic_list):
+ self.__attack_phase(menu)
+ else:
+ self.magic_list.append(3)
+ #draw overlay
+ if(len(self.magic_list) > 3):
+ #reset variables
+ self.__attack_phase(menu)
+ elif selection == 'lig4':
+ if(1 in self.magic_list):
+ self.__attack_phase(menu)
+ else:
+ self.magic_list.append(4)
+ #draw overlay
+ if(len(self.magic_list) > 3):
+ #reset variables
+ self.__attack_phase(menu)
+ elif selection == 'miss1':
+ if(1 in self.magic_list):
+ self.__attack_phase(menu)
+ else:
+ self.magic_list.append(1)
+ #draw overlay
+ if(len(self.magic_list) > 3):
+ #reset variables
+ self.__attack_phase(menu)
+ elif selection == 'miss2':
+ if(1 in self.magic_list):
+ self.__attack_phase(menu)
+ else:
+ self.magic_list.append(2)
+ #draw overlay
+ if(len(self.magic_list) > 3):
+ #reset variables
+ self.__attack_phase(menu)
+ elif selection == 'miss3':
+ if(1 in self.magic_list):
+ self.__attack_phase(menu)
+ else:
+ self.magic_list.append(3)
+ #draw overlay
+ if(len(self.magic_list) > 3):
+ #reset variables
+ self.__attack_phase(menu)
+ elif selection == 'miss4':
+ if(1 in self.magic_list):
+ self.__attack_phase(menu)
+ else:
+ self.magic_list.append(4)
+ #draw overlay
+ if(len(self.magic_list) > 3):
+ #reset variables
+ self.__attack_phase(menu)
+ elif selection == 'heal1':
+ if(1 in self.magic_list):
+ self.__attack_phase(menu)
+ else:
+ self.magic_list.append(1)
+ #draw overlay
+ if(len(self.magic_list) > 3):
+ #reset variables
+ self.__attack_phase(menu)
+ elif selection == 'heal2':
+ if(1 in self.magic_list):
+ self.__attack_phase(menu)
+ else:
+ self.magic_list.append(2)
+ #draw overlay
+ if(len(self.magic_list) > 3):
+ #reset variables
+ self.__attack_phase(menu)
+ elif selection == 'heal3':
+ if(1 in self.magic_list):
+ self.__attack_phase(menu)
+ else:
+ self.magic_list.append(3)
+ #draw overlay
+ if(len(self.magic_list) > 3):
+ #reset variables
+ self.__attack_phase(menu)
+ elif selection == 'heal4':
+ if(1 in self.magic_list):
+ self.__attack_phase(menu)
+ else:
+ self.magic_list.append(4)
+ #draw overlay
+ if(len(self.magic_list) > 3):
+ #reset variables
+ self.__attack_phase(menu)
+ elif selection == 'wrongchoice':
+ self.__attack_phase(menu)
def __attack_phase(self, menu):
# Check to see how much hp enemy has left.
# Enemy Attack
# Check player health
print("in __attack_phase")
- menu.set_sec_disp('0')
self.__end_battle(menu)
def __end_battle(self, menu):
#Give items if any
#self terminate
- menu.show_menu('selection')
- pass
+ if (not self.isMagic):
+ menu.show_menu('selection')
+ else:
+ self.game_engine.get_object('magicmenu').remove_from_engine()
def event_handler(self, event):
if event.type == pygame.USEREVENT+1:
diff --git a/MAFH2/MagicMenu.py b/MAFH2/MagicMenu.py
index b41ba3e..606f928 100644
--- a/MAFH2/MagicMenu.py
+++ b/MAFH2/MagicMenu.py
@@ -47,10 +47,10 @@ class MagicMenuHolder( GameEngineElement ):
[_('2'), lambda: self.menu_called("fire2"), 140],
[_('3'), lambda: self.menu_called("fire3"), 140],
[_('4'), lambda: self.menu_called("fire4"), 140],
- [_('5'), lambda: self.menu_called("fire5"), 140],
- [_('6'), lambda: self.menu_called("fire6"), 140],
- [_('7'), lambda: self.menu_called("fire7"), 140],
- [_('8'), lambda: self.menu_called("fire8"), 140]
+ [_('5'), lambda: self.menu_called("wrongchoice"), 140],
+ [_('6'), lambda: self.menu_called("wrongchoice"), 140],
+ [_('7'), lambda: self.menu_called("wrongchoice"), 140],
+ [_('8'), lambda: self.menu_called("wrongchoice"), 140]
]
elif id == "lightning":
menu_type = GRID_MENU
@@ -60,10 +60,10 @@ class MagicMenuHolder( GameEngineElement ):
[_('2'), lambda: self.menu_called("lig2"), 140],
[_('3'), lambda: self.menu_called("lig3"), 140],
[_('4'), lambda: self.menu_called("lig4"), 140],
- [_('5'), lambda: self.menu_called("lig5"), 140],
- [_('6'), lambda: self.menu_called("lig6"), 140],
- [_('7'), lambda: self.menu_called("lig7"), 140],
- [_('8'), lambda: self.menu_called("lig8"), 140]
+ [_('5'), lambda: self.menu_called("wrongchoice"), 140],
+ [_('6'), lambda: self.menu_called("wrongchoice"), 140],
+ [_('7'), lambda: self.menu_called("wrongchoice"), 140],
+ [_('8'), lambda: self.menu_called("wrongchoice"), 140]
]
elif id == "missile":
menu_type = GRID_MENU
@@ -73,10 +73,10 @@ class MagicMenuHolder( GameEngineElement ):
[_('2'), lambda: self.menu_called("miss2"), 140],
[_('3'), lambda: self.menu_called("miss3"), 140],
[_('4'), lambda: self.menu_called("miss4"), 140],
- [_('5'), lambda: self.menu_called("miss5"), 140],
- [_('6'), lambda: self.menu_called("miss6"), 140],
- [_('7'), lambda: self.menu_called("miss7"), 140],
- [_('8'), lambda: self.menu_called("miss8"), 140]
+ [_('5'), lambda: self.menu_called("wrongchoice"), 140],
+ [_('6'), lambda: self.menu_called("wrongchoice"), 140],
+ [_('7'), lambda: self.menu_called("wrongchoice"), 140],
+ [_('8'), lambda: self.menu_called("wrongchoice"), 140]
]
elif id == "heal":
menu_type = GRID_MENU
@@ -86,10 +86,10 @@ class MagicMenuHolder( GameEngineElement ):
[_('2'), lambda: self.menu_called("heal2"), 140],
[_('3'), lambda: self.menu_called("heal3"), 140],
[_('4'), lambda: self.menu_called("heal4"), 140],
- [_('5'), lambda: self.menu_called("heal5"), 140],
- [_('6'), lambda: self.menu_called("heal6"), 140],
- [_('7'), lambda: self.menu_called("heal7"), 140],
- [_('8'), lambda: self.menu_called("heal8"), 140]
+ [_('5'), lambda: self.menu_called("wrongchoice"), 140],
+ [_('6'), lambda: self.menu_called("wrongchoice"), 140],
+ [_('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)
@@ -113,7 +113,6 @@ class Menu(object):
"""Initialize the EzMenu! options should be a sequence of lists in the
format of [option_name, option_function]"""
- self.randoms = []
self.buttons = []
self.options = options
self.x = 0
@@ -183,6 +182,8 @@ class Menu(object):
self.buttons.append(self.btn6)
self.buttons.append(self.btn7)
self.buttons.append(self.btn8)
+ random.seed()
+ random.shuffle(self.buttons)
self.height = (len(self.options)*self.btn1.get_height()) / self.cols
@@ -191,6 +192,7 @@ class Menu(object):
i=0 # Row Spacing
h=0 # Selection Spacing
j=0 # Col Spacing
+ index=0 #current spot in buttons list
height = self.btn1.get_height()
width = self.btn1.get_width()
@@ -206,22 +208,15 @@ class Menu(object):
#get number b/w 1&8 that hasn't been used
#add it to "btn" and blit it
- random.seed()
- temp = random.randint(1,8)
- while(temp in self.randoms):
- temp = random.randint(1,8)
-
- self.randoms.append(temp)
- surface.blit(self.buttons[temp-1], (newX, newY) )
+ surface.blit(self.buttons[index], (newX, newY) )
j+=1
h+=1
+ index+=1
if j >= self.cols:
i+=1
j=0
- print("out of for")
-
def update(self, event):
"""Update the menu and get input for the menu."""
return_val = True