合并冲锋/反击
This commit is contained in:
parent
ee9c1ee684
commit
58ac45ab0b
@ -3,9 +3,9 @@ import {Card} from "../../schema/Card";
|
||||
import {CardGameState} from "../../schema/CardGameState";
|
||||
import { PlayerHandler } from "./PlayerHandler";
|
||||
import CfgMan from "../CfgMan";
|
||||
import { EffectCardType, GameCampType, GameUnitType, SkillRangeUnitType } from "../skill/SkillConst";
|
||||
import { EffectCardType, GameCampType, GameUnitType, SkillEffectType, SkillRangeUnitType } from "../skill/SkillConst";
|
||||
import { Pet } from "rooms/schema/Pet";
|
||||
import {PetUpdateProcess, SkillParam, SkillTarget} from "../skill/SkillParam";
|
||||
import {PetUpdateProcess, SkillParam, SkillResult, SkillTarget} from "../skill/SkillParam";
|
||||
import { nosync, Room } from "colyseus";
|
||||
import { Skill } from "../skill/Skill";
|
||||
import { PetHandler } from "./PetHandler";
|
||||
@ -899,12 +899,22 @@ export class BattleHandler {
|
||||
* indexOfAttack
|
||||
start: number: number*/
|
||||
let __indexOfAttack = function(start: number): number {
|
||||
//todo:
|
||||
for(let i = start; i < skillres.length;i++){
|
||||
if(skillres[i].bresok && skillres[i].isAttackSkill()){
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
};
|
||||
|
||||
let __indexOfAttackBk = function(atkres: SkillTarget, start: number): number{
|
||||
//todo:
|
||||
let __indexOfAttackBk = function(start: number, atkres: SkillTarget): number{
|
||||
for(let i = start; i < skillres.length;i++){
|
||||
let obj = skillres[i];
|
||||
if(obj.bresok && obj.isAttackBackSkill()
|
||||
&& atkres.dst == obj.srcPet() && obj.dst == atkres.srcPet()){
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
};
|
||||
|
||||
@ -912,6 +922,33 @@ export class BattleHandler {
|
||||
if(!skillres || skillres.length <= 0){
|
||||
return;
|
||||
}
|
||||
|
||||
// 合并冲锋/反击
|
||||
let nstart = 0;
|
||||
while(true){
|
||||
if(nstart >= skillres.length){
|
||||
break;
|
||||
}
|
||||
let natk = __indexOfAttack(nstart);
|
||||
if(natk < 0){
|
||||
break;
|
||||
}
|
||||
nstart = natk + 1;
|
||||
let atkobj = skillres[natk];
|
||||
let natkbk = __indexOfAttackBk(nstart, atkobj);
|
||||
if(natkbk){
|
||||
let atkbkobj = skillres[natkbk];
|
||||
atkbkobj.res.forEach((item: SkillResult) => {
|
||||
if(item.bsuccess){
|
||||
if(item.effect_type == SkillEffectType.CHG_AP || item.effect_type == SkillEffectType.CHG_HP){
|
||||
atkobj.success(item.effect_type, item.effect_res, true);
|
||||
}
|
||||
}
|
||||
});
|
||||
skillres.splice(natkbk, 1);
|
||||
}
|
||||
}
|
||||
|
||||
let checklst: PlayerHandler[] = [];
|
||||
let lst: SkillInfoMsg[] = [];
|
||||
let resmap: Map<string, SkillTarget[]> = new Map;
|
||||
|
Loading…
x
Reference in New Issue
Block a user