粮草先行:离开页面的时候不发道具&离开军团不算加成
This commit is contained in:
@@ -22,12 +22,14 @@ export class WoodenHorseMember {
|
||||
items: RewardInter[] = [];
|
||||
code?: string;
|
||||
hasReceiveInitItems: boolean = false;
|
||||
isOnline: boolean = false;
|
||||
|
||||
constructor(roleId: string, roleName: string, sid: string, code: string) {
|
||||
this.roleId = roleId;
|
||||
this.roleName = roleName;
|
||||
this.sid = sid;
|
||||
this.code = code;
|
||||
if(sid) this.isOnline = true;
|
||||
}
|
||||
|
||||
addTempItem(item: RewardInter) {
|
||||
@@ -58,6 +60,11 @@ export class WoodenHorseMember {
|
||||
|
||||
updateSid(sid: string) {
|
||||
this.sid = sid;
|
||||
this.isOnline = true;
|
||||
}
|
||||
|
||||
leave() {
|
||||
this.isOnline = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -236,19 +243,24 @@ export class WoodenHorse {
|
||||
if(this.durability < 0) this.durability = 0;
|
||||
break;
|
||||
case RACE_EVENT.ITEM:
|
||||
let ranMember: WoodenHorseMember[] = getRandEelm(this.members, GUILDACTIVITY.RACEACTIVITY_EVENT_MEMBERCNT);
|
||||
if(ranMember.length <= 0) ranMember = this.members;
|
||||
let onlineMembers = this.members.filter(member => member.isOnline);
|
||||
let memberCnt = onlineMembers.length;
|
||||
console.log('##### HANDLE_ITEM', memberCnt, onlineMembers)
|
||||
|
||||
let ranMember: WoodenHorseMember[] = getRandEelm(onlineMembers, GUILDACTIVITY.RACEACTIVITY_EVENT_MEMBERCNT);
|
||||
if(ranMember.length <= 0) ranMember = onlineMembers;
|
||||
for(let member of ranMember) {
|
||||
let item = gameData.raceEventItems;
|
||||
member.addTempItems(item);
|
||||
}
|
||||
let normalItems = getRaceEventItems();
|
||||
|
||||
for(let [id, {total, max}] of normalItems) {
|
||||
let randResult = getRandResultByMember(total, max, this.members.length);
|
||||
for(let i = 0; i < this.members.length; i++) {
|
||||
let randResult = getRandResultByMember(total, max, memberCnt);
|
||||
for(let i = 0; i < onlineMembers.length; i++) {
|
||||
let count = randResult.arr[i]||0;
|
||||
if(count > 0) {
|
||||
this.members[i].addTempItem({ id, count });
|
||||
onlineMembers[i].addTempItem({ id, count });
|
||||
normalItems.get(id).total -= count;
|
||||
}
|
||||
}
|
||||
@@ -278,6 +290,15 @@ export class WoodenHorse {
|
||||
}
|
||||
}
|
||||
|
||||
public leaveMemberSid(roleId: string, isQuit = false) {
|
||||
let index = this.members.findIndex(cur => cur.roleId == roleId);
|
||||
if(index != -1) {
|
||||
this.members[index].leave();
|
||||
}
|
||||
if(isQuit) this.memberCnt--;
|
||||
if(this.memberCnt < 0) this.memberCnt = 0;
|
||||
}
|
||||
|
||||
public setRemainItem(id: number, remain: number, max: number) {
|
||||
this.remainItems.set(id, { total: remain, max });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user