【发布时间】:2019-10-12 09:49:39
【问题描述】:
我正在制作基于文本的 Skyrim 版本,但我无法找到让附魔/锻造奖励发挥作用的方法。我有一个武器类和一个盔甲类。我的游戏中包含的每种武器和盔甲都有一个对象。我的武器属性是名称、基础伤害、锻造奖励、附魔和价值。对于盔甲,属性是名称、槽位、基础防御、锻造奖励、附魔和价值。
您可以在库存中拥有多个相同的物品,这会产生无法拥有相同物品的不同版本的问题。例如,假设你有 2 把铁剑,你想附魔一把。如果你使用 ironsword.enchantment = [firedamage, 20] 来做这件事,那么现在你找到的每把铁剑和每把铁剑都会有 20 点火焰伤害的附魔。锻造也会出现同样的问题,如果你强化一把铁剑,所有的铁剑都会被强化。
有人知道这个问题的解决方案吗?我能想到的一种方法是每个对象都有 1000 个版本,每次你得到一个新版本时,你都会得到下一个对象。例如:你得到的第一把铁剑将是对象 ironsword1。下一次你得到一把铁剑时,它会是 Ironsword2,这会一直持续到你得到 1000 把铁剑。这显然会非常耗时,我觉得肯定有更好的方法。
【问题讨论】:
-
请显示一些代码来说明你是如何做到这一点的?我假设库存中只有一个项目列表,它们都是这些类的实例,然后附魔不会影响其他类,依此类推。
-
听起来您的类层次结构设置不正确,但是您的问题中没有示例代码,因此不可能知道。建议您edit您的问题并修复此遗漏。
标签: python python-2.7 class object properties