diff --git a/src/rooms/GeneralRoom.ts b/src/rooms/GeneralRoom.ts index 201ee9f..4115089 100644 --- a/src/rooms/GeneralRoom.ts +++ b/src/rooms/GeneralRoom.ts @@ -49,7 +49,7 @@ export class GeneralRoom extends Room { this.onMessage("select_pet_c2s", (client, message) => { console.log('select_pet from ', client.sessionId, message); - this.dispatcher.dispatch(new SelectPetCommand(), {client, cardId: message.cardId, playerId: message.player, pos: message.pos, effCards: message.effCards }); + this.dispatcher.dispatch(new SelectPetCommand(), {client, cardId: message.card, playerId: message.player, pos: message.pos, effCards: message.effCards }); }); this.onMessage("select_hero_c2s", (client, message) => { diff --git a/src/rooms/commands/SelectPetCommand.ts b/src/rooms/commands/SelectPetCommand.ts index d30f86c..79cec39 100644 --- a/src/rooms/commands/SelectPetCommand.ts +++ b/src/rooms/commands/SelectPetCommand.ts @@ -14,7 +14,7 @@ export class SelectPetCommand extends Command { execute({client, cardId, playerId, pos, effCards} = this.payload) { let sessionId = this.state.currentTurn; @@ -22,27 +22,30 @@ export class SelectPetCommand extends Command 2) { moreAp += 10; } - } - for (let [key, pet] of player.pets) { - if (pet.ap == 0 ) { - pet.ap = ap + moreAp; - break; + if (card.id == cardId) { + targetCard = card; } } + if (!targetCard) { + return; + } + let eff_cnt = effCards.length; + let dstplayer = this.state.players.get(playerId); let dstpet; if (pos != undefined) { dstpet = dstplayer.pets.get(pos+''); } - let cardpoint = 10; - let eff_cnt = effCards.length; - let data = {srcplayer: player, card: cardId, cardpoint, eff_cnt, dstplayer, dstpet} + let cardpoint = moreAp; + + let data = {srcplayer: player, card: targetCard.effect, cardpoint, eff_cnt, dstplayer, dstpet} this.room.battleMan.useCard(data); return [new TurnEndCommand()]; diff --git a/src/rooms/logic/Handler/BattleHandler.ts b/src/rooms/logic/Handler/BattleHandler.ts index 95aef5a..f693329 100644 --- a/src/rooms/logic/Handler/BattleHandler.ts +++ b/src/rooms/logic/Handler/BattleHandler.ts @@ -52,7 +52,7 @@ export class BattleHandler { public useCard(obj: {srcplayer: Player, card: number, cardpoint: number, eff_cnt: number, dstplayer: Player, dstpet: Pet}) { - if(!obj || obj.card){ + if(!obj || !obj.card){ return false; } diff --git a/src/rooms/logic/Handler/PetHandler.ts b/src/rooms/logic/Handler/PetHandler.ts index b6301ba..af67b23 100644 --- a/src/rooms/logic/Handler/PetHandler.ts +++ b/src/rooms/logic/Handler/PetHandler.ts @@ -16,9 +16,9 @@ export class PetHandler { _cfg: UnitCfg; _skills: Map = new Map(); - _bornSkills: Skill[]; - _dieSkills: Skill[]; - _halos: Skill[]; + _bornSkills: Skill[] = []; + _dieSkills: Skill[] = []; + _halos: Skill[] = []; _baseap: number; // 基础 diff --git a/src/rooms/logic/Handler/PlayerHandler.ts b/src/rooms/logic/Handler/PlayerHandler.ts index ac11234..94f9f35 100644 --- a/src/rooms/logic/Handler/PlayerHandler.ts +++ b/src/rooms/logic/Handler/PlayerHandler.ts @@ -19,11 +19,11 @@ export class PlayerHandler { public _unitcfg: UnitCfg; - public _pets: PetHandler[]; + public _pets: PetHandler[] = []; - public _skills: Skill[]; + public _skills: Skill[] = []; - public _exskills: Skill[]; + public _exskills: Skill[] = []; private _owner: BattleHandler; @@ -52,8 +52,7 @@ export class PlayerHandler { public newPet(): PetHandler { let res = null; let pr = null; - for(let key in this._player.pets){ - let obj = this._player.pets.get(key); + for(let [key, obj] of this._player.pets){ if(obj.ap == 0){ res = obj; break; @@ -87,7 +86,7 @@ export class PlayerHandler { if(!pet){ return false; } - pet.setParam({id: cfg.stageunit_id, ap:obj.cardpoint, effcnt: obj.eff_cnt, exskillid: + pet.setParam({id: cfg.stageunit_id, ap:obj.cardpoint, effcnt: obj.eff_cnt, exskillid: [cfg.quoteskill1id, cfg.quoteskill2id, cfg.quoteskill3id, cfg.quoteskill4id]}); //todo: build pet init json -> client @@ -115,7 +114,7 @@ export class PlayerHandler { obj.checkHalo(apet); } apet.checkHalo(obj); - }); + }); }; public setFriend(aplayer: PlayerHandler){