This repository has been archived on 2021-09-06. You can view files and clone it, but cannot push or open issues or pull requests.
vuejs_course/prj-monster-01-starting-setup/app.js

56 lines
1.4 KiB
JavaScript
Raw Normal View History

2021-01-20 22:50:24 +01:00
"use strict";
2021-01-22 19:49:46 +01:00
function getRandomValue(min, max) {
2021-01-20 22:50:24 +01:00
return Math.floor(Math.random() * (max - min)) + min;
}
const app = Vue.createApp({
data() {
return {
playerHealth: 100,
monsterHealth: 100,
battleLog: [],
2021-01-21 12:28:31 +01:00
currentRound: 0,
2021-01-20 22:50:24 +01:00
};
},
computed: {
monsterBarStyles() {
return { width: this.monsterHealth + "%" };
},
playerBarStyles() {
return { width: this.playerHealth + "%" };
},
2021-01-21 12:28:31 +01:00
specialAttackAllowed() {
return this.currentRound % 3 !== 0;
},
2021-01-20 22:50:24 +01:00
},
methods: {
attackMonster() {
2021-01-21 12:28:31 +01:00
this.currentRound++;
2021-01-22 19:49:46 +01:00
this.monsterHealth -= getRandomValue(5, 12);
2021-01-20 22:50:24 +01:00
this.attackPlayer();
},
2021-01-21 12:28:31 +01:00
specialAttackMonster() {
this.currentRound++;
2021-01-22 19:49:46 +01:00
this.monsterHealth -= getRandomValue(10, 25);
this.attackPlayer();
},
2021-01-22 19:50:16 +01:00
healPlayer() {
this.currentRound++;
const healValue = getRandomValue(8, 20);
if (this.playerHealth + healValue > 100) {
this.playerHealth = 100;
} else {
this.playerHealth += healValue;
}
2021-01-21 12:28:31 +01:00
this.attackPlayer();
},
2021-01-20 22:50:24 +01:00
surrender() {},
attackPlayer() {
2021-01-22 19:50:16 +01:00
this.playerHealth -= getRandomValue(8, 15);
2021-01-20 22:50:24 +01:00
},
},
});
app.mount("#game");