Selam yeniden, oyunumun genel özelliklerini bitirmeme az kaldı ama yine bir hata ile karşılaştım. Şimdi tamda item takıb hasarı arttırmayı deniyorum ama nedense çalışmadı belkide başkası yardım eder diye bura atıyorum tüm kodu.
Kod:
import os
import sys
import random
##################################
# bütün class'lar
weapons = {"Demir Kılıç": 40}
class Player:
def __init__(self, name):
self.name = name
self.maxhealty = 100
self.healty = self.maxhealty
self.base_attack = 10
self.gold = 40
self.pots = 1
self.weap = ["Paslanmış Kılıç"]
self.curweap = ["Paslanmış Kılıç"]
@property
def Attack(self):
Attack = self.base_attack
if self.curweap == 'Paslanmış Kılıç':
Attack += 5
elif self.curweap == 'Demir Kılıç':
Attack += 10
return Attack
class Goblin:
def __init__(self, name):
self.name = name
self.maxhealty = 50
self.healty = self.maxhealty
self.attack = 5
self.goldgain = 10
GoblinIG = Goblin('Goblin')
class Zombie:
def __init__(self, name):
self.name = name
self.maxhealty = 75
self.healty = self.maxhealty
self.attack = 8
self.goldgain = 15
ZombieIG = Zombie('Zombi')
##################################
#ysni oyun baslangici
def main():
print(" Oyunuma Hoşgeldiniz! \n")
print(" 1.) Başla")
print(" 2.) Yükle")
print(" 3.) Çıkış \n")
seçim = input('--> ')
if seçim == '1':
start()
elif seçim == '2':
pass
elif seçim == '3':
sys.exit()
else:
os.system('clear')
main()
def start():
os.system('clear')
print(" Selam, ismin ne? \n")
seçim = input("--> ")
global PlayerIG
PlayerIG = Player(seçim)
start1()
##################################
#ana menü
def start1():
os.system('clear')
print(' Adı: {}'.format(PlayerIG.name))
print(' Saldırı: {}'.format(PlayerIG.Attack))
print(' Can: {}/{}'.format(PlayerIG.healty, PlayerIG.maxhealty))
print(' Altın: {}'.format(PlayerIG.gold))
print(' İksir: {}\n'.format(PlayerIG.pots))
print(' 1.) Savaş')
print(' 2.) Dükkan')
print(' 3.) Save')
print(' 4.) Çıkış\n')
seçim = input("--> ")
if seçim == '1':
prefight()
elif seçim == '2':
store()
elif seçim == '3':
pass
elif seçim == '4':
sys.exit()
else:
start1()
##################################
#Combat system
def prefight():
global enemy
enemyNum = random.randint(1, 2)
if enemyNum == 1:
enemy = GoblinIG
else:
enemy = ZombieIG
fight()
def fight():
os.system('clear')
print(' {} vs {}\n'.format(PlayerIG.name, enemy.name))
print(' {} canı: {}/{} {} canı: {}/{}\n'.format(PlayerIG.name, PlayerIG.healty, PlayerIG.maxhealty, enemy.name, enemy.healty, enemy.maxhealty))
print(' İksir: {}\n'.format(PlayerIG.pots))
print(' 1.) Saldır')
print(' 2.) İksir İç')
print(' 3.) Kaç\n')
seçim = input('--> ')
if seçim == '1':
attack()
elif seçim == '2':
drinkpot()
elif seçim == '3':
run()
else:
fight()
def attack():
os.system('clear')
PAttack = int(random.uniform(PlayerIG.base_attack / 2, PlayerIG.Attack))
EAttack = int(random.uniform(enemy.attack / 2, enemy.attack))
if PAttack == PlayerIG.base_attack / 2:
print('Kaçırdın!\n')
else:
enemy.healty -= PAttack
print('{} hasar vurdun!\n'.format(PAttack))
seçim = input('--> ')
if enemy.healty <= 0:
win()
os.system('clear')
if EAttack == enemy.attack / 2:
print('Düşman kaçırdı!\n')
else:
PlayerIG.healty -= EAttack
print('Düşman sana {} hasar verdi\n'.format(EAttack))
seçim = input('--> ')
if PlayerIG.healty <= 0:
lose()
else:
fight()
##################################
def win():
os.system('clear')
enemy.healty = enemy.maxhealty
PlayerIG.gold += enemy.goldgain
print('{} Başarıyla Öldürdün!'.format(enemy.name))
print('{} Altın Kazandın'.format(enemy.goldgain))
seçim = input('--> ')
start1()
def lose():
os.system('clear')
print('Öldün!')
seçim = input('--> ')
main()
##################################
def drinkpot():
os.system('clear')
if PlayerIG.pots == 0:
print('İksirin Yok!')
else:
PlayerIG.healty += 30
if PlayerIG.healty > PlayerIG.maxhealty:
PlayerIG.healty = PlayerIG.maxhealty
print('İksir içtin ve 30 canın yenilendi!\n')
PlayerIG.pots -= 1
EAttack = int(random.uniform(enemy.attack / 2, enemy.attack))
if EAttack == enemy.attack / 2:
print('Düşman kaçırdı!\n')
else:
PlayerIG.healty -= EAttack
print('Düşman sana {} hasar verdi\n'.format(EAttack))
seçim = input('--> ')
if PlayerIG.healty <= 0:
lose()
else:
fight()
seçim = input('--> ')
fight()
##################################
def run():
os.system('clear')
runNum = random.randint(1, 3)
if runNum == 1:
print('Başarıyla kaçtın!')
seçim = input('--> ')
start1()
elif runNum == 2:
run_sans = random.randint(5, 35)
PlayerIG.healty -= run_sans
if PlayerIG.healty <= 0:
print('{} hasar alıb öldün'.format(run_sans))
lose()
else:
print('{} hasar alarak kaçtın'.format(run_sans))
start1()
elif runNum == 3:
PlayerIG.healty -= 30
print('kaçamadın ve 30 hasar aldın')
fight()
##################################
def store():
os.system('clear')
print('Dükkana Hoşgeldin!\n')
print('Ne Almak İstersin?\n')
print('1.) Demir Kılıc [+10 Saldırı] ---> 40 Altın')
print('\n99.) Çıkış')
seçim = input('\n--> ')
if seçim == '1':
os.system('clear')
if PlayerIG.gold >= 40:
PlayerIG.gold -= 40
PlayerIG.weap.append('Demir Kılıç')
print('Demir Kılıçı Aldın!')
seçim2 = input('\n--> ')
store()
else:
print('Yeteri kadar Altının yok!')
seçim2 = input('\n--> ')
store()
elif seçim == '99':
start1()
else:
store()
##################################
main()