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