Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/MAFH2/Hero.py
diff options
context:
space:
mode:
Diffstat (limited to 'MAFH2/Hero.py')
-rw-r--r--MAFH2/Hero.py112
1 files changed, 112 insertions, 0 deletions
diff --git a/MAFH2/Hero.py b/MAFH2/Hero.py
new file mode 100644
index 0000000..f55ccac
--- /dev/null
+++ b/MAFH2/Hero.py
@@ -0,0 +1,112 @@
+from Actor import Actor
+from Items import get_item
+
+#######################################################################
+#Hero class - represents the player in battle and holds all of their data
+##########################################################################
+class Hero(Actor):
+ def __init__(self):
+ Actor.__init__(self)
+
+ self.weapon=None
+ self.armor=None
+ self.accessory=None
+ self.eqItem=[] #player can equip up to 4 usable items to use in battle
+ self.inv_Ar = [] #inventory
+ self.attacks_Ar = [] #associated array for attack string names and attack power values
+ self.currentInput=""
+ self.currentProb1=0
+ self.currentProb2=0
+ self.currentAnswer=0
+ self.fractionSum=0
+ self.akhal=0
+
+ #amulet=get_item('1')
+ #calculator=get_item('s')
+ #emptyItem=None
+ #self.eqItem=[emptyItem,emptyItem,emptyItem,emptyItem]
+ #self.inv_Ar=[amulet,calculator]
+
+ #returns player's current attack power
+ def attackPower(self,name):
+ if name=="basic":
+ return self.ATT+self.BAE
+ elif name=="critical":
+ return self.ATT+self.BAE+self.BAB
+ elif name=="Fire":
+ return self.ATT+self.BAB
+ elif name=="Heal":
+ return self.BAB-10
+ elif name=="Lightning":
+ return self.ATT+self.BAB
+ elif name=="Division":
+ return (self.ATT+self.BAE+self.BAB)*1.5
+ elif name=="Missile":
+ return self.ATT+self.BAB
+ def setBonusAP(self,BAP):
+ self.BAB=BAP
+#****INVENTORY MUTATORS********************************************#
+ #add item to equipment
+ def equip(self,item):
+ #add _item to equipment
+ if item.type=="Weapon":
+ if not self.weapon==None:
+ self.inv_Ar.append(self.weapon)
+ self.weapon=item
+ self.inv_Ar.remove(item)
+ self.BAE=item.power
+ elif item.type=="Armor":
+ if not self.armor==None:
+ self.inv_Ar.append(self.armor)
+ self.armor=item
+ self.inv_Ar.remove(item)
+ self.BDE=item.power
+ elif item.type=="Accessory":
+ if not self.accessory==None:
+ self.inv_Ar.append(self.accessory)
+ self.accessory=item
+ self.inv_Ar.remove(item)
+ self.BHP=item.power
+ elif item.type=="Usable":
+ if self.HP < self.MHP:
+ self.HP+=int(self.MHP*item.power)
+ self.player.migrateMessages("You heal for "+repr(int(self.MHP*item.power)))
+ self.inv_Ar.remove(item)
+ else:
+ self.player.migrateMessages("You are already at full health")
+ if self.HP>self.MHP:
+ self.HP=self.MHP
+
+
+ #remove item from equipment
+ def remEquipment(self,item):
+ if item != None:
+ if item.type=="Weapon":
+ self.weapon=None
+ self.BAE=0
+ self.inv_Ar.append(item)
+ elif item.type=="Armor":
+ self.armor=None
+ self.BDE=0
+ self.inv_Ar.appen(item)
+ elif item.type=="Accessory":
+ self.accessory=None
+ self.BHP=0
+ self.inv_Ar.append(item)
+ elif item==None:
+ i=0
+ else:
+ if item in self.eqItem:
+ self.eqItem[self.eqItem.index(item)]=None
+ self.inv_Ar.append(item)
+ #remove _item from equipment -- leave cell empty
+
+ #add item to inventory
+ def addInventory(self,item):
+ self.inv_Ar.append(item)
+ #add _item to end of inventory
+
+ def remInventory(self,item):
+ self.inv_Ar.remove(item)
+ #remove _item from inventory
+#end class Hero