基于Python文本的游戏装备装甲属性

2024-05-04 18:04:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个基于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

底部代码显示你是否拥有某个装备 它会改变你的数据,但我现在的问题是什么时候 你取消装备护甲或武器-它不会减少甚至改变你的属性 就像它应该做的那样。基本上,我只是想办法创建一个更新系统,根据玩家装备的物品来更新玩家的状态。在


Tags: 代码nameimportselfnone系统玩家pants
1条回答
网友
1楼 · 发布于 2024-05-04 18:04:27

听起来每个字符都有一个基本属性分数,但有效分数是由不同设备修改的基础。这是一个很好的属性用例。在

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

相关问题 更多 >