auto revive

This commit is contained in:
negue
2018-07-29 20:12:30 +02:00
parent b75e65f42d
commit b16e700de5
2 changed files with 20 additions and 11 deletions

View File

@@ -118,6 +118,8 @@ import ultimateGear from './achievements/ultimateGear';
import wonChallenge from './achievements/wonChallenge';
import loginIncentives from './achievements/login-incentives';
import revive from '../../common/script/ops/revive';
const NOTIFICATIONS = {
CHALLENGE_JOINED_ACHIEVEMENT: {
achievement: true,
@@ -218,6 +220,7 @@ export default {
isRunningYesterdailies: false,
nextCron: null,
handledNotifications,
reviveRunning: false,
};
},
computed: {
@@ -245,8 +248,7 @@ export default {
userHp (after, before) {
if (this.user.needsCron) return;
if (after <= 0) {
alert('userHp');
this.showNotificationWithModal('DEATH');
this.showDeathNotification();
// @TODO: {keyboard:false, backdrop:'static'}
} else if (after <= 30 && !this.user.flags.warnedLowHealth) {
this.$root.$emit('bv::show::modal', 'low-health');
@@ -346,6 +348,21 @@ export default {
document.removeEventListener('keydown', this.checkNextCron);
},
methods: {
showDeathNotification () {
if (this.reviveRunning) return;
this.reviveRunning = true;
this.showNotificationWithModal('DEATH');
// if there is an api call still running (which removes health)
// a call to "revive" wouldn't do anything since the user is still alive on the server
// wait a second until the prior api call is done
setTimeout(async () => {
await axios.post('/api/v4/user/revive');
revive(this.user);
this.reviveRunning = false;
}, 1000);
},
showNotificationWithModal (type, forceToModal) {
const config = NOTIFICATIONS[type];
@@ -380,7 +397,7 @@ export default {
}
if (this.user.stats.hp <= 0) {
this.showNotificationWithModal('DEATH');
this.showDeathNotification();
}
if (this.questCompleted) {