Так что я только начал со Свифта на днях.В процессе работы с каким-то кодом я попытался написать функцию, которая позволяла бы атаковать целевого игрока и противника и уменьшала бы HP врагов на величину силы атаки игрока.Внутри функции все работает нормально, но я не могу найти способ заставить ее воздействовать на выбранного врага за пределами функции.Может быть, это что-то, что придет на более позднем уроке, но в моей голове это должно быть что-то простое, что я не могу понять.
Вот код, который я использую.
struct Player {
var maxHP: Int
var currentHP: Int
var maxMP: Int
var currentMP: Int
var currentLVL: Int
var damageATT: Int
}
struct Enemy {
var maxHP: Int
var currentHP: Int
var damageAtt: Int
}
var alexRider = Player(maxHP: 100, currentHP: 100, maxMP: 100, currentMP: 100, currentLVL: 1, damageATT: 5)
var enemyOne = Enemy(maxHP: 20, currentHP: 20, damageAtt: 2)
var enemyTwo = Enemy(maxHP: 40, currentHP: 40, damageAtt: 4)
func attackTarget(attacker player: Player, enemy target: Enemy) {
var attackTAR = target
attackTAR.currentHP -= player.damageATT
print("Dealt \(player.damageATT) damage!")
print("Enemy now has \(attackTAR.currentHP) health remaining")
}
attackTarget(attacker: alexRider, enemy: enemyTwo)
print(enemyTwo.currentHP)
Очевидно, что когда я печатаю currentHP в конце кода, он такой же, как и начатый, поскольку область видимости переменных внутри функции не выходит за пределы.Команды печати внутри функции работают нормально, чтобы показать величину ущерба и оставшиеся HP экземпляра внутри.
Есть ли что-то простое, что мне здесь не хватает?Опять же, я знаю, что это должно быть что-то простое, но только начав с этим, я надеялся, что кто-то может указать мне правильное направление.
Спасибо.