a simple pokemon fight in vue
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

104 lines
3.9 KiB

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Fight</title>
<link rel="stylesheet" href="https://bootswatch.com/5/zephyr/bootstrap.min.css">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, shrink-to-fit=no" name="viewport">
<style>
body {
background-color: #8ab638;
}
.container {
margin-top: 1em;
}
.player-row, .menu {
margin-top: 3em;
}
.player-pokemon {
-webkit-transform: scaleX(-1);
transform: scaleX(-1);
}
.spacer-for-loser {
min-height: 5em;
}
</style>
</head>
<body>
<div id="fight">
<div v-if="loaded" class="container">
<div class="row" v-if="enemy.currentFighter">
<div class="col-6">
<div class="card">
<div class="card-body">
{{ enemy.currentFighter.nickname }}
<span class="float float-end">
Lvl {{ enemy.currentFighter.level }}
</span>
<div class="progress">
<div :class="'progress-bar bg-' + getColorForHealthBar(getLeftHpPercent(enemy))" role="progressbar" :style="'width: ' + getLeftHpPercent(enemy) + '%;'" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</div>
</div>
</div>
<div class="col-6">
<img :src="enemy.currentFighter.sprites.idle" alt="" class="float-end">
</div>
</div>
<div class="row" class="spacer-for-loser" v-else>
</div>
<div class="row player-row" v-if="player.currentFighter">
<div class="col-6">
<img :src="player.currentFighter.sprites.idle" alt="" class="player-pokemon">
</div>
<div class="col-6">
<div class="card">
<div class="card-body">
{{ player.currentFighter.nickname }}
<span class="float float-end">
Lvl {{ player.currentFighter.level }}
</span>
<div class="progress">
<div :class="'progress-bar bg-' + getColorForHealthBar(getLeftHpPercent(player))" role="progressbar" :style="'width: ' + getLeftHpPercent(player) + '%;'" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</div>
</div>
</div>
</div>
<div class="row menu">
<div class="card">
<div class="card-body row">
<div class="col-8" v-if="action !== 'message'">
<div class="row" v-if="action === 'chooseAttack'">
<div class="col-6 btn btn-light" v-for="move in player.currentFighter.moves" @click="playerAttack(move)">
{{ move.name }}
</div>
</div>
</div>
<div class="col-4" v-if="action !== 'message'">
<div class="row" v-if="action !== 'message'">
<a href="javascript:" @click="action = 'chooseAttack'" v-if="!action" class="col-12 btn btn-dark">Angriff</a>
<a href="javascript:" @click="action = null" v-if="action" class="col-12 btn btn-dark">Zurück</a>
</div>
</div>
<div class="row" v-else>
<div class="col-12 btn btn-light" @click="continueRound()">
{{ currentMessage }}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="https://unpkg.com/vue@next"></script>
<script src="fight.js"></script>
</body>
</html>