몬스터와의 간단한 전투게임.
Attack, SpecialAttack, Heal, Surrender 총 4개의 선택지가 있다.
SpecialAttack은 3턴마다 사용할 수 있으며 Surrender를 제외한 모든 선택지에서 몬스터가 반격한다.
모든 BattleLog는 화면 아래에 구현된다.
전투가 끝나면 승패(혹은 무)를 알리는 메시지가 뜨고 게임을 다시 시작할 수 있다.
나름 간단한 게임을 만드는데도 오류를 몇 번 겪었다.
computed: {
monsterBarStyle() {
if (this.monsterHealth < 0) {
return { width: "0%" };
}
return { width: this.monsterHealth + "%" };
},
playerBarStyle() {
if (this.playerHealth < 0) {
return { width: "0%" };
}
return { width: this.playerHealth + "%" };
},
위와 같이 체력이 0보다 작아지면 width 0%를 return 하게 하여 해결
healPlayer() {
this.currentRound++;
const heal = randomValue(8, 20);
if (this.playerHealth + heal > 100) {
this.playerHealth = 100;
} else {
this.playerHealth += heal;
}
this.addBattleLog("player", "heal", heal);
this.attackPlayer();
},
현재 플레이어의 체력 + 힐량 > 100 일시, 플레이어의 체력을 100으로 나타내는 것으로 해결
깃허브이 게임을 만들면서 많은 것을 복습하게 되었다.
특히 v-if, else 와 v-for 에 대해서 더 자세히 배우는 시간이 되었다.
처음 만들기 전에 생각으로는 엄청 간단하게 만들것 같다고 생각했는데,
생각보다 신경써야할 부분이 많고 버그나 오류같은게 생겼을 때는 너무 당황했다.