增加触发技能处理
This commit is contained in:
parent
3288cb74a0
commit
26bfd6a378
@ -188,7 +188,7 @@ export class BattleHandler {
|
||||
|
||||
ph.useCard(ps);
|
||||
|
||||
this.onUseCardEnd(obj);
|
||||
this.onUseCardEnd(ps);
|
||||
};
|
||||
|
||||
/**
|
||||
@ -211,7 +211,7 @@ export class BattleHandler {
|
||||
};
|
||||
|
||||
/**
|
||||
* 吃牌/胡牌确认
|
||||
* 吃牌/胡牌确认[暂不用]
|
||||
* @param aplayer : 玩家
|
||||
* @param fromplayer : 吃别人的牌,自己胡牌时此参数传空
|
||||
*/
|
||||
@ -222,27 +222,25 @@ export class BattleHandler {
|
||||
};
|
||||
|
||||
/**
|
||||
* 吃牌/胡牌结束(暂时不用)??
|
||||
* 吃牌/胡牌结束 ??
|
||||
* @param aplayer :玩家
|
||||
* @param linkcards :吃到的牌组信息
|
||||
*/
|
||||
public onCardLinkOver(aplayer: Player, linkcards: Card[]){
|
||||
public onCardLinkOver(aplayer: Player, linkcards: Card[], fromplayer?: Player){
|
||||
let ph = this.getPlayer(aplayer);
|
||||
ph && ph.onCardLinkEnd(linkcards);
|
||||
let fromph = this.getPlayer(fromplayer);
|
||||
ph && ph.onCardLinkEnd(linkcards, fromph);
|
||||
};
|
||||
|
||||
/**
|
||||
* 使用卡牌结束(暂时自动回调,无需外部触发)
|
||||
* @param obj :使用卡牌相关操作
|
||||
* @param sp :使用卡牌相关操作
|
||||
*/
|
||||
public onUseCardEnd(obj:
|
||||
{srcplayer: Player, card: number, cardpoint: number, dbpt_cnt: number, eff_cnt: number, dstplayer: Player, dstpet: Pet}
|
||||
){
|
||||
if(!obj){
|
||||
public onUseCardEnd(sp: SkillParam){
|
||||
if(!sp){
|
||||
return;
|
||||
}
|
||||
let ph = this.getPlayer(obj.srcplayer);
|
||||
ph && ph.onUseCardEnd();
|
||||
sp.srcplayer && sp.srcplayer.onUseCardEnd(sp);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -5,7 +5,7 @@ import CfgMan from "../CfgMan";
|
||||
import {Skill} from "../skill/Skill";
|
||||
import SkillMan from "../skill/SkillMan";
|
||||
|
||||
import { EnhanceEffectType, PowerValueType } from "../skill/SkillConst";
|
||||
import { EnhanceEffectType, PowerValueType, TriggerType } from "../skill/SkillConst";
|
||||
import { PlayerHandler } from "./PlayerHandler";
|
||||
import { PetInfoMsg } from "../../../message/PetInfo";
|
||||
import { SkillParam } from "../skill/SkillParam";
|
||||
@ -24,6 +24,8 @@ export class PetHandler {
|
||||
|
||||
_effhalos: Skill[] = [];
|
||||
|
||||
_waitskills: Skill[] = [];
|
||||
|
||||
_baseap: number; // 基础
|
||||
|
||||
_exap: number = 0; // 额外
|
||||
@ -109,6 +111,8 @@ export class PetHandler {
|
||||
}else if(obj.isHaloSkill()){
|
||||
this._halos.push(obj);
|
||||
halocb && halocb(this);
|
||||
}else{
|
||||
this._waitskills.push(obj);
|
||||
}
|
||||
}
|
||||
|
||||
@ -136,6 +140,10 @@ export class PetHandler {
|
||||
this._halos.splice(idx, 1);
|
||||
halocb && halocb(this);
|
||||
}
|
||||
idx = this._waitskills.indexOf(obj);
|
||||
if(idx >= 0){
|
||||
this._waitskills.splice(idx, 1);
|
||||
}
|
||||
}
|
||||
this._skills.delete(skillid);
|
||||
}
|
||||
@ -205,6 +213,12 @@ export class PetHandler {
|
||||
});
|
||||
};
|
||||
|
||||
public checkSkills(tgtype: TriggerType){
|
||||
this._waitskills.forEach((item: Skill) => {
|
||||
item.checkTrigger(tgtype, )
|
||||
});
|
||||
};
|
||||
|
||||
public exportData(): PetInfoMsg{
|
||||
let obj = new PetInfoMsg({
|
||||
id: this._id,
|
||||
|
@ -22,13 +22,11 @@ export class PlayerHandler {
|
||||
|
||||
public _pets: PetHandler[] = [];
|
||||
|
||||
public _skills: Skill[] = [];
|
||||
|
||||
public _exskills: Skill[] = [];
|
||||
|
||||
public _owner: BattleHandler;
|
||||
|
||||
_friend: PlayerHandler;
|
||||
public _friend: PlayerHandler;
|
||||
|
||||
_totalcc: number = 0;
|
||||
|
||||
public init(aplayer: Player, owner: BattleHandler){
|
||||
this._owner = owner;
|
||||
@ -48,7 +46,7 @@ export class PlayerHandler {
|
||||
};
|
||||
|
||||
public getTotalCardCount(){
|
||||
return 0;
|
||||
return this._totalcc;
|
||||
};
|
||||
|
||||
public getId(): string{
|
||||
@ -299,30 +297,54 @@ export class PlayerHandler {
|
||||
};
|
||||
|
||||
onCardLinkReady(fromplayer: PlayerHandler){
|
||||
|
||||
this.checkSkills(TriggerType.CARD_LINK_BEFORE);
|
||||
};
|
||||
|
||||
onCardLinkEnd(linkcards: Card[]){
|
||||
|
||||
onCardLinkEnd(linkcards: Card[], fromplayer: PlayerHandler){
|
||||
this.checkSkills(TriggerType.CARD_LINK_AFTER);
|
||||
};
|
||||
|
||||
onCardDroped(dropcards: Card[], srcplayer: PlayerHandler){
|
||||
|
||||
this.checkSkills(TriggerType.CARD_DROP_MYROUND);
|
||||
};
|
||||
|
||||
onCardGetted(getcards: Card[], srcplayer: PlayerHandler){
|
||||
|
||||
getcards && (this._totalcc += getcards.length);
|
||||
this.checkSkills(TriggerType.CARD_GETTED);
|
||||
};
|
||||
|
||||
onUseCardEnd(){
|
||||
|
||||
onUseCardEnd(sp: SkillParam){
|
||||
this.checkSkills(TriggerType.CARD_USED, 0, sp);
|
||||
};
|
||||
|
||||
onRoundStart(){
|
||||
|
||||
this.checkSkills(TriggerType.ROUND_START_MYSELF);
|
||||
};
|
||||
|
||||
onRoundEnd(){
|
||||
this.checkSkills(TriggerType.ROUND_END_MYSELF);
|
||||
};
|
||||
|
||||
checkSkills(tgttype: TriggerType, tgtvalue?: any, tgtsp?: SkillParam){
|
||||
let sp = tgtsp;
|
||||
if(!sp){
|
||||
sp = new SkillParam(0, 0, 0, this, this._self, null, null);
|
||||
}
|
||||
let reslst: SkillTarget[] = [];
|
||||
this._self._waitskills.forEach((item:Skill) => {
|
||||
item.checkTrigger(tgttype, tgtvalue, sp, (skill: Skill, ap: SkillParam, res: SkillTarget[])=>{
|
||||
if(res){
|
||||
reslst = reslst.concat(res);
|
||||
}else{
|
||||
let st = new SkillTarget(skill);
|
||||
st.LoadParam(sp);
|
||||
reslst.push(st);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
resetTotalCard(){
|
||||
this._totalcc = 0;
|
||||
}
|
||||
}
|
||||
|
@ -178,6 +178,9 @@ export class Skill {
|
||||
|
||||
this._man && this._man.onSkillTrigger(this, param, res);
|
||||
|
||||
if(this.isTotalCardSkill()){
|
||||
this._owner && this._owner.resetTotalCard();
|
||||
}
|
||||
return res;
|
||||
};
|
||||
|
||||
|
@ -46,6 +46,7 @@ export class SkillTarget{
|
||||
srcplayer: PlayerHandler;
|
||||
srcpet: PetHandler;
|
||||
srcskill: Skill;
|
||||
srcskillid: number;
|
||||
dst: any;
|
||||
dsttype: GameUnitType;
|
||||
|
||||
@ -55,6 +56,7 @@ export class SkillTarget{
|
||||
this.srcplayer = splayer;
|
||||
this.srcpet = spet;
|
||||
this.srcskill = skill;
|
||||
this.srcskillid = skill._id;
|
||||
this.dst = dstobj;
|
||||
this.dsttype = dsttype;
|
||||
};
|
||||
@ -91,6 +93,7 @@ export class SkillTarget{
|
||||
let msg = new SkillInfoMsg();
|
||||
msg.data = new SkillInfoData();
|
||||
let obj = msg.data;
|
||||
obj.skill_id = this.srcskillid;
|
||||
obj.player = this.srcplayer.getId(),
|
||||
obj.pos = this.srcpet? this.srcpet._idx: 0;
|
||||
obj.datas = [];
|
||||
|
Loading…
x
Reference in New Issue
Block a user