diff --git a/.vscode/launch.json b/.vscode/launch.json index ba17817..1eaf40b 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -32,6 +32,22 @@ "type": "node", "trace": true + }, + + { + "address": "127.0.0.1", + "localRoot": "${workspaceFolder}/src", + "name": "127.0.0.1", + "port": 9229, + "remoteRoot": "E:\\work_git\\server\\src", + "request": "attach", + "skipFiles": [ + "/**", + "node_modules/**" + ], + "type": "node", + "trace": true + } ] } \ No newline at end of file diff --git a/src/rooms/logic/Handler/BattleHandler.ts b/src/rooms/logic/Handler/BattleHandler.ts index 594047d..58ed024 100644 --- a/src/rooms/logic/Handler/BattleHandler.ts +++ b/src/rooms/logic/Handler/BattleHandler.ts @@ -63,7 +63,7 @@ export class BattleHandler { return false; } let obj = players.find( (item: PlayerHandler) =>{ - item.isMyPet(pet); + return item.isMyPet(pet); }); if(!obj){ return false; @@ -165,7 +165,7 @@ export class BattleHandler { } break; case GameCampType.ENEMY: - if(dst && dst._friend != src && dst.isAlive()){ + if(dst && dst != src && dst._friend != src && dst.isAlive()){ lst.push(dst); } break; @@ -232,6 +232,10 @@ export class BattleHandler { pt *= obj.dbpt_cnt; } + if(!dstph){ + dstph = ph; + } + let ps = new SkillParam(obj.card, pt, obj.eff_cnt, ph, null, dstph, dstpt); ph.useCard(ps); diff --git a/src/rooms/logic/Handler/PlayerHandler.ts b/src/rooms/logic/Handler/PlayerHandler.ts index 35af267..0043331 100644 --- a/src/rooms/logic/Handler/PlayerHandler.ts +++ b/src/rooms/logic/Handler/PlayerHandler.ts @@ -135,6 +135,11 @@ export class PlayerHandler { return false; } obj.srcpet = pet; + if(!obj.dstpet){ + if(obj.dstplayer && obj.dstplayer.isMyPet(pet)){ + obj.dstpet = pet; + } + } pet.loadData(cfg.stageunit_id, obj, [cfg.quoteskill1id, cfg.quoteskill2id, cfg.quoteskill3id, cfg.quoteskill4id]); }else if(cfg.type_id == EffectCardType.MAGIC){ @@ -260,7 +265,7 @@ export class PlayerHandler { this._owner.onDelPetNotify(apet); // 遗愿 - this.simpleCheckSkills(apet._dieSkills, apet); + this.simpleCheckSkills(apet._dieSkills); this.delPet(apet); }; @@ -378,7 +383,7 @@ export class PlayerHandler { }; simpleCheckSkills(skills: Skill[], apet?: PetHandler, param?: SkillParam): SkillTarget[]{ - let ps = param? param: new SkillParam(0, 0, 0, this, apet, null, null); + let ps = param? param: new SkillParam(0, 0, 0, this, apet, this, apet); let reslst: SkillTarget[] = []; skills.forEach((item: Skill)=>{ item.checkTrigger(TriggerType.NO_COND, 0, ps, (skill: Skill, ap: SkillParam, res: SkillTarget[])=>{ diff --git a/src/rooms/logic/skill/TriggerMan.ts b/src/rooms/logic/skill/TriggerMan.ts index 6c6dc35..cb89da5 100644 --- a/src/rooms/logic/skill/TriggerMan.ts +++ b/src/rooms/logic/skill/TriggerMan.ts @@ -73,7 +73,7 @@ let TriggerManager = { onTrigger(sender: Skill, param: SkillParam): SkillTarget[] { - let effectid = sender._type; + let effectid = sender._data.effect_typeid; let env = sender.getEnhanceValue(param); let effv = sender.getEffValue(param.cardpoint); let tgts = sender.getTargets(param);