好友:赠送领取爱心

This commit is contained in:
luying
2021-02-03 19:12:36 +08:00
parent 0046dc2afa
commit fe85f0e247
11 changed files with 449 additions and 66 deletions

View File

@@ -0,0 +1,141 @@
import {FriendShipType} from '../db/FriendShip';
export function getRoleIds(roleIds: string[]) {
roleIds.sort();
return {
roleIdA: roleIds[0],
roleIdB: roleIds[1],
roleIds: roleIds.join('|')
}
}
export function outputCnt(myRoleId: string, friendShip: FriendShipType) {
let roleIds = friendShip.roleIds.split('|');
let { roleIdA, roleIdB } = getRoleIds(roleIds);
if (roleIdA == myRoleId) {
return {
sendHeart: friendShip.sendHeartCntA, // 我送给他
sendHeartTime: friendShip.sendHeartCntATime, // 我送他时间
beSentHeart: friendShip.sendHeartCntB, // 他送我
beSentHeartTime: friendShip.sendHeartCntBTime, // 他送我时间
receiveHeart: friendShip.receiveHeartCntA, // 我收他
receiveHeartTime: friendShip.receiveHeartCntATime, // 我收他时间
beReceivedHeart: friendShip.receiveHeartCntB, // 他收我
beReceivedHeartTime: friendShip.receiveHeartCntBTime // 他收我时间
}
} else if (roleIdB == myRoleId) {
return {
sendHeart: friendShip.sendHeartCntB,
sendHeartTime: friendShip.sendHeartCntBTime,
beSentHeart: friendShip.sendHeartCntA,
beSentHeartTime: friendShip.sendHeartCntATime,
receiveHeart: friendShip.receiveHeartCntB,
receiveHeartTime: friendShip.receiveHeartCntBTime,
beReceivedHeart: friendShip.receiveHeartCntA,
beReceivedHeartTime: friendShip.receiveHeartCntATime
}
} else {
return false
}
}
interface InputParam {
inc: {
sendHeart?: number; // 赠送
receiveHeart?: number; // 收取
},
set: {
sendHeartTime?: number; // 赠送时间
receiveHeartTime?: number; // 收取时间
},
lt: {
sendHeart?: number; // 赠送
receiveHeart?: number; // 收取
}
}
export function inputSendCnt(myRoleId: string, hisRoleId: string, param: InputParam) {
let { roleIdA, roleIdB } = getRoleIds([myRoleId, hisRoleId]);
if(roleIdA == myRoleId) {
return {
inc: {
sendHeartCntA: param.inc.sendHeart,
},
set: {
sendHeartCntATime: param.set.sendHeartTime,
},
lt: {
sendHeartCntA: {
$lt: param.inc.sendHeart
}
}
}
} else if (roleIdB == myRoleId) {
return {
inc: {
sendHeartCntB: param.inc.sendHeart
},
set: {
sendHeartCntBTime: param.set.sendHeartTime
},
lt: {
sendHeartCntB: {
$lt: param.inc.sendHeart
}
}
}
} else {
return false;
}
}
export function inputReceiveCnt(myRoleId: string, hisRoleId: string, param: InputParam) {
let { roleIdA, roleIdB } = getRoleIds([myRoleId, hisRoleId]);
if(roleIdA == myRoleId) {
return {
inc: {
receiveHeartCntA: param.inc.receiveHeart,
},
set: {
receiveHeartCntATime: param.set.receiveHeartTime
},
lt: {
receiveHeartCntA: {
$lt: param.inc.receiveHeart
}
}
}
} else if (roleIdB == myRoleId) {
return {
inc: {
receiveHeartCntB: param.inc.receiveHeart,
},
set: {
receiveHeartCntBTime: param.set.receiveHeartTime
},
lt: {
receiveHeartCntB: {
$lt: param.inc.receiveHeart
}
}
}
} else {
return false;
}
}
export function setCanReceiveAndCanSend(this: any, roleId: string, friendship: FriendShipType) {
let frd = outputCnt(roleId, friendship);
if(frd) {
let { sendHeart, receiveHeart, beSentHeart } = frd;
console.log('***',sendHeart, receiveHeart, beSentHeart)
if(sendHeart >= 1) {
this.canSend = false;
}
if(beSentHeart >= 1 && receiveHeart < beSentHeart) {
this.canReceive = true;
}
}
}

View File

@@ -66,4 +66,12 @@ export async function addEquips(roleId: string, roleName: string, weapon: EquipI
*/
export function getGoldObject(count: number) {
return { id: CURRENCY_BY_TYPE.get(CURRENCY_TYPE.GOLD), count};
}
/**
* @description 获取友情点物品 { id, count }
* @param count 友情点数量
*/
export function getFriendPointObject(count: number) {
return { id: CURRENCY_BY_TYPE.get(CURRENCY_TYPE.FRIEND_POINT), count};
}

View File

@@ -555,4 +555,4 @@ export function getRobotInfo() {
robotRoleName: getChineseName(),
robotRoleId: genCode(8)
}
}
}