我正在为学校制作一个RPG游戏,我想知道如何在修改后收回整数的原始值。
在我的代码中,我有一个战士可以做一个关键的打击,这将使他的攻击加倍仅仅一个回合,问题是他保持他的攻击量为游戏的其余部分。。。有人知道吗?

 func warriorAbility(_ attacker: Character, _ target: Character){

    attacker.weapon.damages *= 2

    print("\(attacker.name) the \(attacker.classe) use 'Battlecry !' and do a critical strike of \(attacker.weapon.damages) damages point. He double his atk !")
}
class Sword: Weapon{
init(){
    super.init(damages: 10, name: "Sword")
}
} class Fighter : Character{
init(name: String, classe: Classe){
    super.init(name: name, healthpoint: 100, maxHealthpoint: 100, weapon: Sword(), classe: classe)
}

}
编辑:增加了我的战士职业和剑职业

最佳答案

与其改变武器的属性,然后必须恢复它,我建议你在游戏中建立关键伤害。
类似于:

struct Weapon {
   let damage: Int
   let criticalMultiplier: Int
   let name: String
}

let sword = Weapon(damage: 10, criticalMultiplier:2, name:"sword")

struct Move {
   let attacker: Character
   let target: Character
   let isCritical: Bool

   func damage() -> Int {
      return attacker.weapon.damage * isCritical ? attacker.weapon.criticalMultiplier : 1
   }
}

关于ios - 修改后如何使int返回其原始值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53480231/

10-09 03:23