跑通下随从流程

This commit is contained in:
zhl 2020-12-03 21:08:26 +08:00
parent 583aa8b61c
commit 744d0df50b
5 changed files with 23 additions and 21 deletions

View File

@ -49,7 +49,7 @@ export class GeneralRoom extends Room {
this.onMessage("select_pet_c2s", (client, message) => { this.onMessage("select_pet_c2s", (client, message) => {
console.log('select_pet from ', client.sessionId, 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) => { this.onMessage("select_hero_c2s", (client, message) => {

View File

@ -14,7 +14,7 @@ export class SelectPetCommand extends Command<CardGameState, {client: Client,
cardId: number, cardId: number,
playerId: string, playerId: string,
pos: number, pos: number,
effCards: string[] effCards: number[]
}> { }> {
execute({client, cardId, playerId, pos, effCards} = this.payload) { execute({client, cardId, playerId, pos, effCards} = this.payload) {
let sessionId = this.state.currentTurn; let sessionId = this.state.currentTurn;
@ -22,27 +22,30 @@ export class SelectPetCommand extends Command<CardGameState, {client: Client,
let ap = 0; let ap = 0;
let moreAp = 0; let moreAp = 0;
let count = 0; let count = 0;
let targetCard;
for (let card of this.state.cards.values()) { for (let card of this.state.cards.values()) {
ap += card.number; ap += card.number;
count ++; count ++;
if (count > 2) { if (count > 2) {
moreAp += 10; moreAp += 10;
} }
} if (card.id == cardId) {
for (let [key, pet] of player.pets) { targetCard = card;
if (pet.ap == 0 ) {
pet.ap = ap + moreAp;
break;
} }
} }
if (!targetCard) {
return;
}
let eff_cnt = effCards.length;
let dstplayer = this.state.players.get(playerId); let dstplayer = this.state.players.get(playerId);
let dstpet; let dstpet;
if (pos != undefined) { if (pos != undefined) {
dstpet = dstplayer.pets.get(pos+''); dstpet = dstplayer.pets.get(pos+'');
} }
let cardpoint = 10; let cardpoint = moreAp;
let eff_cnt = effCards.length;
let data = {srcplayer: player, card: cardId, cardpoint, eff_cnt, dstplayer, dstpet} let data = {srcplayer: player, card: targetCard.effect, cardpoint, eff_cnt, dstplayer, dstpet}
this.room.battleMan.useCard(data); this.room.battleMan.useCard(data);
return [new TurnEndCommand()]; return [new TurnEndCommand()];

View File

@ -52,7 +52,7 @@ export class BattleHandler {
public useCard(obj: public useCard(obj:
{srcplayer: Player, card: number, cardpoint: number, eff_cnt: number, dstplayer: Player, dstpet: Pet}) {srcplayer: Player, card: number, cardpoint: number, eff_cnt: number, dstplayer: Player, dstpet: Pet})
{ {
if(!obj || obj.card){ if(!obj || !obj.card){
return false; return false;
} }

View File

@ -16,9 +16,9 @@ export class PetHandler {
_cfg: UnitCfg; _cfg: UnitCfg;
_skills: Map<number, Skill> = new Map(); _skills: Map<number, Skill> = new Map();
_bornSkills: Skill[]; _bornSkills: Skill[] = [];
_dieSkills: Skill[]; _dieSkills: Skill[] = [];
_halos: Skill[]; _halos: Skill[] = [];
_baseap: number; // 基础 _baseap: number; // 基础

View File

@ -19,11 +19,11 @@ export class PlayerHandler {
public _unitcfg: UnitCfg; public _unitcfg: UnitCfg;
public _pets: PetHandler[]; public _pets: PetHandler[] = [];
public _skills: Skill[]; public _skills: Skill[] = [];
public _exskills: Skill[]; public _exskills: Skill[] = [];
private _owner: BattleHandler; private _owner: BattleHandler;
@ -52,8 +52,7 @@ export class PlayerHandler {
public newPet(): PetHandler { public newPet(): PetHandler {
let res = null; let res = null;
let pr = null; let pr = null;
for(let key in this._player.pets){ for(let [key, obj] of this._player.pets){
let obj = this._player.pets.get(key);
if(obj.ap == 0){ if(obj.ap == 0){
res = obj; res = obj;
break; break;
@ -87,7 +86,7 @@ export class PlayerHandler {
if(!pet){ if(!pet){
return false; 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]}); [cfg.quoteskill1id, cfg.quoteskill2id, cfg.quoteskill3id, cfg.quoteskill4id]});
//todo: build pet init json -> client //todo: build pet init json -> client
@ -115,7 +114,7 @@ export class PlayerHandler {
obj.checkHalo(apet); obj.checkHalo(apet);
} }
apet.checkHalo(obj); apet.checkHalo(obj);
}); });
}; };
public setFriend(aplayer: PlayerHandler){ public setFriend(aplayer: PlayerHandler){