增加一个更新随从信息的方法
This commit is contained in:
parent
79a002afea
commit
159ed4a031
9
src/global.d.ts
vendored
9
src/global.d.ts
vendored
@ -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;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -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});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user