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..b2811a9 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; + //TODO: + let data = {srcplayer: player, card: targetCard.effect, cardpoint, eff_cnt, dstplayer, dstpet, dbpt_cnt: 0} 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 fae9f95..b0058d0 100644 --- a/src/rooms/logic/Handler/BattleHandler.ts +++ b/src/rooms/logic/Handler/BattleHandler.ts @@ -48,7 +48,7 @@ export class BattleHandler { public useCard(obj: {srcplayer: Player, card: number, cardpoint: number, dbpt_cnt: 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 5aaeaa5..9e978f8 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){ diff --git a/src/utils/game.util.ts b/src/utils/game.util.ts index 311b56f..2784094 100644 --- a/src/utils/game.util.ts +++ b/src/utils/game.util.ts @@ -18,7 +18,7 @@ let gameUtil = { let countMap: Map = new Map(); let localId = 1; for (let [id, cfg] of numCfgMap) { - for (let i = 0; i < cfg.count; i++) { + for (let i = 0; i <= cfg.count; i++) { if (cfg.type_id == 1) { let effid = this.getRandomEffect(cfg.weightArr, effCfgMap, countMap); let card = new Card(localId ++, cfg.point, cfg.type_id, effid);