![]() |
|
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 |
|
Programming Guru
![]() Join Date: Apr 2005
Posts: 1,825
Rep Power: 5
![]() |
SOLVED: List not Callable
Any idea why it can't call the list into the class?
battle__screen.py from turns import*
class battle_object (object):
def __init__(self, stats):
self.name = stats[0]
self.level = stats[1]
if len(stats) == 15:
self.curHP = stats[3]
self.maxHP = stats[2]
self.curMP = stats[5]
self.maxMP = stats[4]
self.strength = stats[6]
self.defense = stats[7]
self.agility = stats[8]
self.luck = stats[9]
self.accuracy = stats[10]
self.experience = stats[11]
self.weapon = stats[12]
self.armor = stats[13]
self.magic = stats[14]
elif len(stats) == 10:
self.curHP = stats[2]
self.maxHP = stats[2]
self.curMP = stats[3]
self.maxHP = stats[3]
self.strength = stats[4]
self.defense = stats[5]
self.agility = stats[6]
self.luck = stats[7]
self.accuracy = stats[8]
self.magic = stats[9]
self.experience = '';self.weapon = '';self.armor = ''
def attack(self, target):
target.curHP -= self.strength
#^^^insert formula here^^^#
class party (object):
def __init__(self, MEMBERS, TYPE):
self.members = MEMBERS
self.type = TYPE
if len(self.members) > 0: self.member1 = "T"
if len(self.members) > 1: self.member2 = "T"
if len(self.members) > 2: self.member3 = "T"
if len(self.members) > 3: self.member4 = "T"
if len(self.members) > 4: self.member5 = "T"
if len(self.members) > 5: self.member6 = "T"
self.status = "T"
def Status(self):
if self.type == "E":
if len(self.members) > 0:
if self.member1 == "T":
if enemy4.curHP < 1:
self.member1 = "F"
if len(self.members) > 1:
if self.member2 == "T":
if enemy5.curHP < 1:
self.member2 = "F"
if len(self.members) > 2:
if self.member3 == "T":
if enemy6.curHP < 1:
self.member3 = "F"
if len(self.members) > 3:
if self.member4 == "T":
if enemy7.curHP < 1:
self.member4 = "F"
if len(self.members) > 4:
if self.member5 == "T":
if enemy8.curHP < 1:
self.member5 = "F"
if len(self.members) > 5:
if self.member6 == "T":
if enemy9.curHP < 1:
self.member6 = "F"
if self.type == "P":
if len(self.members) > 0:
if self.member1 == "T":
if character0.curHP < 1:
self.member1 = "F"
if len(self.members) > 1:
if self.member2 == "T":
if character1.curHP < 1:
self.member2 = "F"
if len(self.members) > 2:
if self.member3 == "T":
if character2.curHP < 1:
self.member3 = "F"
if len(self.members) > 3:
if self.member4 == "T":
if character3.curHP < 1:
self.member4 = "F"
temp = 0
for a in range(1, len(self.members)+1):
if a == 1:
if self.member1 == "T": temp += 1
if a == 2:
if self.member2 == "T": temp += 1
if a == 3:
if self.member3 == "T": temp += 1
if a == 4:
if self.member4 == "T": temp += 1
if a == 5:
if self.member5 == "T": temp += 1
if a == 6:
if self.member6 == "T": temp += 1
if a == 7:
if self.member7 == "T": temp += 1
if a == 8:
if self.member8 == "T": temp += 1
if a == 9:
if self.member9 == "T": temp += 1
if temp == len(self.members):
self.status = "F"
def battle (party, enemy, area):
"""Figure and Declare Amount of Players on Screen"""
p = [];p2 = [];e = [];e2 = []
if len(party) > 0: character0 = battle_object(party[0]);p.append([0, character0.agility]);p2.append(1)
if len(party) > 1: character1 = battle_object(party[1]);p.append([1, character1.agility]);p2.append(2)
if len(party) > 2: character2 = battle_object(party[2]);p.append([2, character2.agility]);p2.append(3)
if len(party) > 3: character3 = battle_object(party[3]);p.append([3, character3.agility]);p2.append(4)
if len(enemy) > 0: enemy4 = battle_object(enemy[0]);e.append([4, enemy4.agility]);e2.append(1)
if len(enemy) > 1: enemy5 = battle_object(enemy[1]);e.append([5, enemy5.agility]);e2.append(2)
if len(enemy) > 2: enemy6 = battle_object(enemy[2]);e.append([6, enemy6.agility]);e2.append(3)
if len(enemy) > 3: enemy7 = battle_object(enemy[3]);e.append([7, enemy7.agility]);e2.append(4)
if len(enemy) > 4: enemy8 = battle_object(enemy[4]);e.append([8, enemy8.agility]);e2.append(5)
if len(enemy) > 5: enemy9 = battle_object(enemy[5]);e.append([9, enemy9.agility]);e2.append(6)
"""Declare Individual Party and Status"""
CharacterParty = party(p2, "P")
EnemyParty = party(e2, "E")
"""Choose the Order of Turns, Based on Agility"""
turns = return_turns(p, e, 5)
"""Main Loop"""
battle_return = "0"
while battle_return == "0":
if turns[0] == 0: print"Character0"
elif turns[0] == 1: print"Character1"
elif turns[0] == 2: print"Character2"
elif turns[0] == 3: print"Character3"
elif turns[0] > 3:
target = random.choice(p2)
if turns[0] == 4:
enemy4.attack(target) ###randomize the action eventually
#if turns[0] == 5: etc...
"""Check Status"""
CharacterParty.Status()
EnemyParty.Status()
if CharacterParty.status == "F":
battle_return = 'You Died'
if EnemyParty.status == "F":
battle_return = 'You Won'
"""If A Short of Turns is Found, Add More. Otherwise, Advance one Turn"""
if len(turns) == 15: turns__ = return_turns(p, e, 5) ; turns.append(turns__)
else: turns = turns[1:]
##########################################
name="Turk"
lvl = 5
maxhp = 30
curhp = 30
maxmp = 5
curmp = 5
stn = 12
defn = 8
agi = 7
luck = 9
accuracy = 7
exp = figure_exp(lvl)
weapon = "Rusty Sword"
armor = "Rusty Armor"
magic = ["ice"]
Turk = [name, lvl, maxhp, curhp, maxmp, curmp, stn, defn, agi, luck, accuracy, exp, weapon, armor, magic]
party = [Turk]
area = "area_2"
#def average_enemy_stats([name, e_lvl, e_hp, e_mp, e_stn, e_defn, e_agi, e_luck, e_acc, magic]):
# enemy = [name, e_lvl, e_hp, e_mp, e_stn, e_defn, e_agi, e_luck, e_acc, magic]
# return enemy
e_lvl = (random.randrange(1,3))
enemy = [ ["Goblin",
(random.randrange(1,3)),
(((e_lvl + 5) * 2) + random.randrange(0, 3))+1,
(0)+1,
((e_lvl) * 2)+1,
((e_lvl) * 2) + random.randrange(-2, 2)+1,
((e_lvl) * 2) + random.randrange(-2, 4)+1,
((e_lvl) * 2) + random.randrange(-2, 1)+1,
((e_lvl) +30) / 10 + random.randrange(0, e_lvl)+1,
["fire"] ] ]
battle(party, enemy, area)
##########################################turns.py import random
def figure_exp(lvl):
experience = 0
for a in range(1, lvl+1):experience += (a/2*500 + a*10)
b = str(experience)
return b
def return_turns(party, enemy, ratio):
"""Declare an array of values carrying the character
number and speed, for all characters"""
SpeedSet = []
Set = []
for a in range(len(party)):
Set.append(10*party[a][1]+party[a][0])
b= Set[a]
SpeedSet.append(b)
Set = []
for a in range(len(enemy)):
Set.append(10*enemy[a][1]+enemy[a][0])
b= Set[a]
SpeedSet.append(b)
"""Sort from greatest to least to more easily manage"""
SpeedSet.sort()
SpeedSet.reverse()
"""Assign a ratio value based on the difference from
the maximum speed, including the ratio value inputted
in the main function argument"""
NewSet = []
for a in range(len(SpeedSet)):
NewSet.append( int((( float( int( str(max(SpeedSet)) [:len(str(max(SpeedSet)))-1] ) - int( str(SpeedSet[a]) [:len(str(SpeedSet[a]))-1] )) / (int(max(SpeedSet))/ratio)+1) *100)+1 ))
"""Eliminate odd ratio values"""
for a in range(len(NewSet)):
if NewSet[a]%2 == 0:
NewSet[a]+=1
"""Assign turns based on the divisibility of one's ratio"""
Turns = []
for b in range(10000):
for a in range(len(NewSet)):
if (b+1)%NewSet[a] == 0: Turns.append(int(str(SpeedSet[a])[len(str(SpeedSet[a]))-1]))
"""End function"""
return Turns
#################################################################
player1 = 0
player2 = 0
enemy1 = 0
enemy2 = 0
for a in range(len(Turns)):
if Turns[a] == "1": player1 += 1
if Turns[a] == "2": player2 += 1
if Turns[a] == "3": enemy1 += 1
if Turns[a] == "4": enemy2 += 1
print "Player 1: Gets %d Turns, With %s Speed."%(player1, str(party[0][1]))
print "Player 2: Gets %d Turns, With %s Speed."%(player2, str(party[1][1]))
print "Enemy 1: Gets %d Turns, With %s Speed."%(enemy1, str(enemy[0][1]))
print "Enemy 2: Gets %d Turns, With %s Speed."%(enemy2, str(enemy[1][1]))
print Turns
#################################################################Last edited by Sane; May 6th, 2005 at 4:16 PM. |
|
|
|
|
|
#2 |
|
Programming Guru
![]() Join Date: Apr 2005
Posts: 1,825
Rep Power: 5
![]() |
Solved: Party was already a variable, so I confused the program. Oops. o_o
|
|
|
|
|
|
#3 | |
|
Programmer
Join Date: Apr 2005
Posts: 73
Rep Power: 4
![]() |
Quote:
def mytest(HP, MP, DEX, CHR):
print "health is", HP
print "mana is", MP
print "dex is", DEX
print "chr is", CHR
x = (121, 14)
y = {"CHR": 14, "DEX": 12}
mytest(*x, **y)--OH. |
|
|
|
|
![]() |
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|