好友:赠送领取爱心
This commit is contained in:
141
shared/pubUtils/friendUtil.ts
Normal file
141
shared/pubUtils/friendUtil.ts
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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};
|
||||
}
|
||||
@@ -555,4 +555,4 @@ export function getRobotInfo() {
|
||||
robotRoleName: getChineseName(),
|
||||
robotRoleId: genCode(8)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user