Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/MAFH.activity/Hero.py
blob: 0e17b321e2bac24cb8cd00effdcf00051cd6bda7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
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,player):
    Actor.__init__(self)

    self.player=player
    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