This commit is contained in:
Putoo
2026-07-04 18:07:37 +08:00
parent ea32e7046e
commit fa00fc5d66
26 changed files with 871 additions and 69 deletions

View File

@@ -0,0 +1,165 @@
<template>
<div class="content">
<div class="common">
<Abutton>{{ autoFight == 0 ? "开启自动攻击" : "关闭自动攻击" }}</Abutton>
</div>
<div class="common">
你向{{ otAttr.name }}发起了攻击!
</div>
<div class="common">
<Abutton @click="FightAtk">攻击</Abutton>
<span>&nbsp;.&nbsp;</span>
<span v-if="otAttr.code == 'Monster'">
<Abar :href='"/prop/monster?m=" + otAttr.viceId'>查看</Abar>
</span>
<span v-else>
<Abar :href='"/user/user?no=" + otAttr.viceId'>查看</Abar>
</span>
<span>&nbsp;.&nbsp;</span>
<Abutton @click="ExitFight">撤退({{ exitCopper }}铜贝)</Abutton>
</div>
<div class="common">
<div>
{{ otAttr.name }}体力({{ otAttr.blood }}/{{ otAttr.upBlood }})
<span v-if="otHarm != 0">
{{ otHarm > 0 ? "+" + otHarm : otHarm }}
</span>
</div>
<div>
你体力({{ myAttr.blood }}/{{ myAttr.upBlood }})
<span v-if="myHarm != 0">
{{ myHarm > 0 ? "+" + myHarm : myHarm }}
</span>
</div>
</div>
<div class="common">
你状态
<span v-for="item in myLoad">
{{ item.name }}({{ item.count }})
</span>
</div>
<div class="common">
<span v-for="(item, index) in myDrug" :key="index">
<Abutton @click="UseFightDrug(item.id)">{{ item.name }}({{ item.count }})</Abutton>
<span v-if="(index + 1) != myDrug.length">&nbsp;.&nbsp;</span>
</span>
</div>
<div class="common">
<Abar href="/user/equ">状态</Abar>
<span>&nbsp;.&nbsp;</span>
<Abar href="/user/bag">物品</Abar>
<span>&nbsp;.&nbsp;</span>
<Abar href="/pet">宠物</Abar>
</div>
</div>
</template>
<script setup lang="ts">
definePageMeta({
layout: layout.empty,
middleware: 'page-loading'
})
let fightId = PageExtend.QueryString("f");
const autoFight = ref(0);
const myHarm = ref(0);
const otHarm = ref(0);
const myAttr = ref<IUserAttr | any>({} as IUserAttr);
const otAttr = ref<IUserAttr | any>({} as IUserAttr);
const myDrug = ref<Array<any>>([]);
const myLoad = ref<Array<any>>([]);
const exitCopper = ref(0);
const coolTime = ref(0);
let coolLock = false;//冷却锁
const coolTimer = ref(0);//冷却定时器
let dataLock = false;//数据锁
onMounted(async () => {
try {
await BindData("");
}
finally {
PageLoading.Close();
}
})
onUnmounted(() => {
clearTimeout(coolTimer.value)
})
/**加载方法 */
const BindData = async (data: string): Promise<void> => {
let result = await FightService.Fight(fightId, data);
if (result.code == 0) {
myAttr.value = result.data.myAttr as IUserAttr;
otAttr.value = result.data.otAttr as IUserAttr;
myDrug.value = result.data.myDrug;
myLoad.value = result.data.myLoad;
exitCopper.value = result.data.exitCopper;
coolTime.value = result.data.cool;
dataLock = false;
myHarm.value = result.data.myHarm;
otHarm.value = result.data.otHarm;
}
else if (result.code == 100) {
PageExtend.RedirectTo("/fight/result?f=" + fightId);
}
else {
PageExtend.RedirectTo("/map");
}
};
/**退出战斗 */
const ExitFight = async () => {
MessageExtend.LoadingToast("退出战斗中...");
let result = await FightService.Exit(fightId);
MessageExtend.LoadingClose();
if (result.code == 0) {
if (result.data == "") {
PageExtend.RedirectTo("/map");
}
else {
PageExtend.RedirectTo("/fight?f=" + result.data);
}
}
else if (result.code == 100) {
PageExtend.RedirectTo("/fight/result?f=" + fightId);
}
else if (result.code == 101) {
MessageExtend.Notify(result.msg, "danger");
}
else {
PageExtend.RedirectTo("/map");
}
}
/**使用药品 */
const UseFightDrug = async (drugId: string) => {
MessageExtend.LoadingToast("药品使用中...");
let result = await FightService.UseFightDrug(fightId, drugId);
MessageExtend.LoadingClose();
if (result.code == 0) {
await BindData("");
}
else {
MessageExtend.Notify(result.msg, "danger");
}
}
/**攻击 */
const FightAtk = async () => {
if (coolLock == false && dataLock == false) {
StartCool();
let result = FightTool.FightHandle(myAttr.value, otAttr.value);
let data = JSON.stringify(result);
await BindData(data);
}
}
const StartCool = () => {
coolLock = true;
dataLock = true;
coolTimer.value = setTimeout(() => {
coolLock = false;
}, coolTime.value)
}
</script>

View File

@@ -0,0 +1 @@
<template></template>

View File

@@ -6,7 +6,9 @@
<Abar href="/task/">任务</Abar>
<Abar href="/user/message/">消息{{ messageCount > 0 ? "(" + messageCount + ")" : "" }}</Abar>
</div>
<div class="content" v-if="gameTips != ''" style="color: red;font-size: 16px;">
{{ gameTips }}
</div>
<div class="notification">
<GameChat :data="chatData" :show-time="0"></GameChat>
</div>
@@ -127,6 +129,7 @@ const mapRes = ref<Array<any>>([]);
const monster = ref<Array<any>>([]);
const messageCount = ref(0);
const broadcast = ref<Array<any>>([]);
const gameTips = ref('');
// 城内地图显示
const showCity = ref(false);
@@ -159,6 +162,7 @@ const BindData = async (map: string): Promise<void> => {
broadcast.value = result.data.broadcast;
MapVent(result.data.mapInfo.near);
onMap.value = mapInfo.value.mapId;
gameTips.value = result.data.gameTips;
console.log(result)
}
else if (result.code == 103) {

View File

@@ -0,0 +1 @@
<template></template>

View File

@@ -12,11 +12,16 @@
<div class="content">
<div class="common" style="">
<Acheak @click="ChangeBag('0')" :on-value="type" on-cheak="0">装备</Acheak>|
<Acheak @click="ChangeBag('1')" :on-value="type" on-cheak="1">药品</Acheak>|
<Acheak @click="ChangeBag('2')" :on-value="type" on-cheak="2"></Acheak>|
<Acheak @click="ChangeBag('3')" :on-value="type" on-cheak="3">坐骑</Acheak>|
<Acheak @click="ChangeBag('4')" :on-value="type" on-cheak="4">九宫</Acheak>|
<Acheak @click="ChangeBag('0')" :on-value="type" on-cheak="0">装备</Acheak>
<span>&nbsp;|&nbsp;</span>
<Acheak @click="ChangeBag('1')" :on-value="type" on-cheak="1"></Acheak>
<span>&nbsp;|&nbsp;</span>
<Acheak @click="ChangeBag('2')" :on-value="type" on-cheak="2">物品</Acheak>
<span>&nbsp;|&nbsp;</span>
<Acheak @click="ChangeBag('3')" :on-value="type" on-cheak="3">坐骑</Acheak>
<span>&nbsp;|&nbsp;</span>
<Acheak @click="ChangeBag('4')" :on-value="type" on-cheak="4">九宫</Acheak>
<span>&nbsp;|&nbsp;</span>
<Acheak @click="ChangeBag('5')" :on-value="type" on-cheak="5">十方</Acheak>
</div>
@@ -29,22 +34,34 @@
</div>
<div class="common">
<div v-if="type == '0'">
<Acheak @click="ChangeChildBag('0')" :on-value="type_ch" on-cheak="0">全部</Acheak>.<Acheak
@click="ChangeChildBag('1')" :on-value="type_ch" on-cheak="1">穿戴</Acheak>.<Acheak
@click="ChangeChildBag('2')" :on-value="type_ch" on-cheak="2">过期</Acheak>.<Acheak
@click="ChangeChildBag('3')" :on-value="type_ch" on-cheak="3">未鉴定</Acheak>
<Acheak @click="ChangeChildBag('0')" :on-value="type_ch" on-cheak="0">全部</Acheak>
<span>&nbsp;.&nbsp;</span>
<Acheak @click="ChangeChildBag('1')" :on-value="type_ch" on-cheak="1">穿戴</Acheak>
<span>&nbsp;.&nbsp;</span>
<Acheak @click="ChangeChildBag('2')" :on-value="type_ch" on-cheak="2">过期</Acheak>
<span>&nbsp;.&nbsp;</span>
<Acheak @click="ChangeChildBag('3')" :on-value="type_ch" on-cheak="3">未鉴定</Acheak>
</div>
<div v-if="type == '2'">
<Acheak @click="ChangeChildBag('0')" :on-value="type_ch" on-cheak="0">全部</Acheak>.<Acheak
@click="ChangeChildBag('1')" :on-value="type_ch" on-cheak="1">宝石</Acheak>.<Acheak
@click="ChangeChildBag('2')" :on-value="type_ch" on-cheak="2">九宫</Acheak>.<Acheak
@click="ChangeChildBag('3')" :on-value="type_ch" on-cheak="3">圣痕</Acheak>.<Acheak
@click="ChangeChildBag('4')" :on-value="type_ch" on-cheak="4">礼包</Acheak>.<Acheak
@click="ChangeChildBag('5')" :on-value="type_ch" on-cheak="5">材料</Acheak>.<Acheak
@click="ChangeChildBag('6')" :on-value="type_ch" on-cheak="6">图纸</Acheak>.<Acheak
@click="ChangeChildBag('7')" :on-value="type_ch" on-cheak="7">卡片</Acheak>.<Acheak
@click="ChangeChildBag('8')" :on-value="type_ch" on-cheak="8">货物</Acheak>.<Acheak
@click="ChangeChildBag('9')" :on-value="type_ch" on-cheak="9">其他</Acheak>
<Acheak @click="ChangeChildBag('0')" :on-value="type_ch" on-cheak="0">全部</Acheak>
<span>&nbsp;.&nbsp;</span>
<Acheak @click="ChangeChildBag('1')" :on-value="type_ch" on-cheak="1">宝石</Acheak>
<span>&nbsp;.&nbsp;</span>
<Acheak @click="ChangeChildBag('2')" :on-value="type_ch" on-cheak="2">九宫</Acheak>
<span>&nbsp;.&nbsp;</span>
<Acheak @click="ChangeChildBag('3')" :on-value="type_ch" on-cheak="3">圣痕</Acheak>
<span>&nbsp;.&nbsp;</span>
<Acheak @click="ChangeChildBag('4')" :on-value="type_ch" on-cheak="4">礼包</Acheak>
<span>&nbsp;.&nbsp;</span>
<Acheak @click="ChangeChildBag('5')" :on-value="type_ch" on-cheak="5">材料</Acheak>
<span>&nbsp;.&nbsp;</span>
<Acheak @click="ChangeChildBag('6')" :on-value="type_ch" on-cheak="6">图纸</Acheak>
<span>&nbsp;.&nbsp;</span>
<Acheak @click="ChangeChildBag('7')" :on-value="type_ch" on-cheak="7">卡片</Acheak>
<span>&nbsp;.&nbsp;</span>
<Acheak @click="ChangeChildBag('8')" :on-value="type_ch" on-cheak="8">货物</Acheak>
<span>&nbsp;.&nbsp;</span>
<Acheak @click="ChangeChildBag('9')" :on-value="type_ch" on-cheak="9">其他</Acheak>
</div>
</div>