增加一个更新随从信息的方法

This commit is contained in:
zhl 2020-12-08 18:34:55 +08:00
parent 79a002afea
commit 159ed4a031
3 changed files with 54 additions and 15 deletions

9
src/global.d.ts vendored
View File

@ -1,6 +1,6 @@
import {IMsg} from "./message/IMsg";
import {Client, Room} from "colyseus";
import {PetInfoMsg} from "./message/PetInfo";
import {PetInfo, PetInfoMsg} from "./message/PetInfo";
import {BattleHandler} from "./rooms/logic/Handler/BattleHandler";
import {SkillInfoMsg} from "./message/SkillInfo";
import {PartResultMsg} from "./message/PartResult";
@ -107,7 +107,6 @@ declare module "colyseus" {
* @param options
*/
bRemovePet(data?: RemovePetMsg, options?: any): void;
/**
* 广
* @param data
@ -177,6 +176,12 @@ declare module "colyseus" {
*/
updateHp(dstplayer: string, hp: number): number;
/**
*
* @param datas
*/
updatePet(datas: PetInfo[]): void;
}
}

View File

@ -3,25 +3,24 @@ import {IMsg} from "./IMsg";
/**
* ,
*/
export class PetInfo {
id: number;
player: string;
isHero: boolean;
ap: number;
pos: number;
extAp: number;
harmReduce?: number;
skills: number[];
extSkills: number[]
}
export class PetInfoMsg implements IMsg {
data: any;
errcode: number;
errmsg: string;
constructor(data?: {
id: number,
player: string,
isHero: boolean,
ap: number,
pos: number,
extAp: number,
harmReduce?: number,
skills: number[],
extSkills: number[]
}) {
constructor(data?: PetInfo) {
this.errcode = 0;
this.data = data;
}
}

View File

@ -2,6 +2,7 @@ import {Room} from "colyseus";
import gameUtil from "../utils/game.util";
import {error} from "../common/Debug";
import {PlayerStateConst} from "../constants/PlayerStateConst";
import {PetInfo} from "../message/PetInfo";
/**
*
@ -94,5 +95,39 @@ Object.defineProperties(Room.prototype, {
}
return player.hp;
}
},
/**
*
* @param data
*/
updatePet: {
value: function (datas: PetInfo[]): void {
let playerSet: Set<string> = new Set();
for (let obj of datas) {
let pid = obj.player;
playerSet.add(pid);
let player = this.state.players.get(pid);
let pet = player.pets.get(obj.pos + '');
pet.id = obj.id;
pet.ap = obj.ap;
pet.extAp = obj.extAp;
pet.harmReduce = obj.harmReduce;
pet.skills.length = 0;
pet.state = 1;
if (obj.skills) {
pet.skills.length = 0;
for (let s of obj.skills) {
pet.skills.push(s);
}
}
if (obj.extSkills) {
pet.extSkills.length = 0;
for (let s of obj.extSkills) {
pet.extSkills.push(s);
}
}
}
this.broadcast("pet_update_s2c", {data: [...playerSet]}, {afterNextPatch: true});
}
}
});