我正在研究基于Python文本的RPG并遇到了一个我无法弄清楚如何修复的问题。我试图让一个不断更新的系统告诉玩家他/她的统计数据应该取决于装备的装甲或武器。 这是我的代码中的类的示例:
import sys
import random
class Player:
def __init__(self, name):
self.name = name
self.health = 100
self.maxhealth = 100
self.weap = "Rusty Sword"
self.armH = "None"
self.armB = "Wor Shirt"
self.armA = "None"
self.armL = "Worn Pants"
self.armF = "Worn Boots"
self.gold = 100
self.stre = 1
self.magi = 0
self.rang = 0
self.defe = 0
self.level = 1
self.exp = 0
self.maxexp = 100
self.pots = 0
self.arrows = 0
self.inventory = ["Rusty Sword",
"Worn Shirt",
"Worn Pants",
"Worn Boots"]
self.spells = []
## Armor and Weapon Stats #####
## WEAPON BUFFS ##
if self.weap == "Rusty Sword":
self.stre += 10
if self.weap != "Rusy Sword":
self.stre -= 10
底部代码显示您是否有某个项目装备 它会改变你的统计数据,但我目前的问题是什么时候 你没有装备盔甲或武器,它不会减少甚至改变你的统计数据 喜欢它应该。基本上我只想找到一种方法来创建一个更新系统,根据所配备的项目相应地更新玩家的统计数据。
答案 0 :(得分:1)
听起来每个角色都有 base 属性得分,但有效得分是各种设备修改的基础。这是一个很好的财产用例。
class Player:
def __init__(self, name):
# ...
self.base_stre = 1
# ...
@property
def stre(self):
stre = self.base_stre
if self.weap == "Rusty Sword":
stre += 10
# etc
return str