|
|
|
@ -1,6 +1,7 @@
@@ -1,6 +1,7 @@
|
|
|
|
|
<template> |
|
|
|
|
<div v-if="dungeon" class="battle"> |
|
|
|
|
<div class="player" :style="battle.playerStyle"> |
|
|
|
|
<div class="player"> |
|
|
|
|
<img class="player-icon" :src="dungeon_icon.player"> |
|
|
|
|
</div> |
|
|
|
|
<div class="monster" v-for="(v, k) in dungeon.monsters" :key="k" |
|
|
|
|
:style="{ left: (95 / dungeon.monsters.length) * (k + 1) + '%' }"> |
|
|
|
@ -84,11 +85,11 @@ const playerMove = (monsterIdx?, playerIdx?) => {
@@ -84,11 +85,11 @@ const playerMove = (monsterIdx?, playerIdx?) => {
|
|
|
|
|
let idx2 = playerIdx || 0; |
|
|
|
|
const max = 20; |
|
|
|
|
const lenght = 95 / props.dungeon?.monsters.length; |
|
|
|
|
const left = monsterIdx * lenght + lenght / max * idx2; |
|
|
|
|
battle.value.playerStyle = { |
|
|
|
|
left: left + '%', |
|
|
|
|
backgroundPosition: Math.floor(left % 4) * 32 + 'px 96px' |
|
|
|
|
} |
|
|
|
|
const left = monsterIdx * lenght + lenght / (max + 1) * idx2; |
|
|
|
|
battle.value.left = + left + '%'; |
|
|
|
|
const position = Math.floor(left % 4) * 32; |
|
|
|
|
battle.value.imgLeft = -1 * position + 'px'; |
|
|
|
|
battle.value.clip = 'rect(96px, ' + (position + 32) + 'px, 144px, ' + position + 'px)' |
|
|
|
|
if (idx2 > max) { |
|
|
|
|
exploreDungeon(monsterIdx); |
|
|
|
|
} else { |
|
|
|
@ -104,12 +105,6 @@ const battleWithMonster = (monster) => {
@@ -104,12 +105,6 @@ const battleWithMonster = (monster) => {
|
|
|
|
|
return new Promise((resolve, reject) => { |
|
|
|
|
const player = state.playerAttribute.attribute; |
|
|
|
|
const result = callBattleResult(player, monster); |
|
|
|
|
// let monsterDmg = Math.ceil(monster.atk * (1 - player.reducPercent) - player.bloc); |
|
|
|
|
// monsterDmg < 1 && (monsterDmg = 1); |
|
|
|
|
|
|
|
|
|
// const playerDeadTime = Math.ceil(player.curHp / monsterDmg); |
|
|
|
|
// const monsterDeadTime = Math.ceil(monster.hp / player.dps); |
|
|
|
|
// const takeDmg = monsterDeadTime * monsterDmg; |
|
|
|
|
const battleTime = Math.round(player_battle_time * 100 / (100 + state.rebornAttribute.battleSpeed)) |
|
|
|
|
|
|
|
|
|
const getMsg = (i18nName) => { |
|
|
|
@ -139,14 +134,23 @@ onMounted(() => { });
@@ -139,14 +134,23 @@ onMounted(() => { });
|
|
|
|
|
</script> |
|
|
|
|
<style lang="scss" scoped> |
|
|
|
|
.battle { |
|
|
|
|
width: 100%; |
|
|
|
|
|
|
|
|
|
.player { |
|
|
|
|
overflow: hidden; |
|
|
|
|
position: absolute; |
|
|
|
|
z-index: 2; |
|
|
|
|
top: 1.2rem; |
|
|
|
|
height: 48px; |
|
|
|
|
width: 32px; |
|
|
|
|
background: url(@/assets/icons/player-s.png); |
|
|
|
|
left: v-bind('state.battle.left'); |
|
|
|
|
|
|
|
|
|
.player-icon { |
|
|
|
|
top: -96px; |
|
|
|
|
left: v-bind('state.battle.imgLeft'); |
|
|
|
|
position: absolute; |
|
|
|
|
clip: v-bind('state.battle.clip'); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.monster { |
|
|
|
|