HJ_Server/src/api_s2c/ganhai/ApiRefreshShip.ts
DESKTOP-15R5JU0\legu 97e070ea81 init
2023-11-17 12:02:12 +08:00

46 lines
1.6 KiB
TypeScript

import { ApiCall } from "tsrpc";
import { PlayerFun } from '../../public/player';
import { ReqRefreshShip, ResRefreshShip } from "../../shared/protocols/ganhai/PtlRefreshShip";
import { randomMyShips } from './ApiOpen';
export default async function (call: ApiCall<ReqRefreshShip, ResRefreshShip>) {
let dbData = await G.mongodb.collection('ganhai').findOne({ uid: call.uid });
if (dbData.ship != null) return call.error('', { code: -1 });
let reNum = dbData.useRefreshNum
let _refresh: boolean = false
let _yijianzuigao: boolean = false
if (call.req?.yjzg) {
_yijianzuigao = true
let need = G.gc.ganhai.oneClickNeed;
await PlayerFun.checkNeedIsMeet(call, need);
await PlayerFun.cutNeed(call, need);
} else {
reNum += 1;
if (reNum > G.gc.ganhai.refreshNum) {
let _maxNum = G.gc.ganhai.refreshMaxNeed;
let need = G.gc.ganhai.refreshNeed.map(_need => {
return {
..._need,
n: ((reNum - 1) * 20) > _maxNum ? _maxNum : (reNum - 1) * 20
};
});
await PlayerFun.checkNeedIsMeet(call, need);
await PlayerFun.cutNeed(call, need);
}
_refresh = reNum % G.gc.ganhai.num == 0
}
let shipIndex = randomMyShips(_refresh,_yijianzuigao);
G.mongodb.collection('ganhai').updateOne({ uid: call.uid }, { $set: { myShips: shipIndex, useRefreshNum: reNum } });
call.succ({
change: {
myShips: shipIndex,
useRefreshNum: reNum
}
});
}