add trigger interface

This commit is contained in:
yuexin 2020-12-03 11:54:05 +08:00
parent 2c72c2e0de
commit c25a0d5c1c
5 changed files with 99 additions and 27 deletions

View File

@ -8,7 +8,8 @@ import { Pet } from "rooms/schema/Pet";
export class BattleHandler {
private _cs: CardGameState;
private _players: PlayerHandler[];
private _players: Map<Player, PlayerHandler> = new Map();
public init(cs: CardGameState){
this._cs = cs;
@ -17,20 +18,15 @@ export class BattleHandler {
public addPlayer(aplayer: Player){
let ph = new PlayerHandler();
ph.init(aplayer, this);
this._players.push(ph);
this._players.set(aplayer, ph);
};
public delPlayer(aplayer: Player){
let idx = this._players.findIndex((item: PlayerHandler)=>{
return item._player == aplayer;
})
this._players.splice(idx, 1);
this._players.delete(aplayer);
};
public getPlayer(aplayer: Player){
return this._players.find((item: PlayerHandler)=>{
return item._player == aplayer;
})
return this._players.get(aplayer);
};
public useCard(obj:
@ -48,4 +44,78 @@ export class BattleHandler {
ph.useCard(obj);
};
/**
*
* @param obj
*/
public useSkill(obj:{
srcplayer: Player, skillid: number, dstplayer: Player, dstpet: Pet
}){
};
/**
* /
* @param aplayer : 玩家
* @param fromplayer
*/
public onCardLinkReady(aplayer: Player, fromplayer?: Player){
};
/**
* /
* @param aplayer
* @param linkcards
*/
public onCardLinkOver(aplayer: Player, linkcards: Card[]){
};
/**
* 使
* @param obj 使
*/
public onUseCardEnd(obj:
{srcplayer: Player, card: Card, cardpoint: number, eff_cnt: number, dstplayer: Player, dstpet: Pet}
){
};
/**
*
* @param aplayer
* @param fromplayer : 谁使玩家弃牌的
* @param dropcards : 弃掉的牌组
*/
public onCardDroped(aplayer: Player, dropcards: Card[], fromplayer?: Player){
};
/**
*
* @param aplayer
* @param fromplayer : 谁使玩家获得牌的
* @param dropcards : 获得的牌组
*/
public onCardGetted(aplayer: Player, getcards: Card[], fromplayer?: Player){
};
/**
*
* @param aplayer
*/
public onPlayerRoundStart(aplayer: Player){
}
/**
*
* @param aplayer
*/
public onPlayerRoundEnd(aplayer: Player){
}
}

View File

@ -35,6 +35,6 @@ export class PetHandler {
}
});
}
}

View File

@ -6,12 +6,15 @@ import CfgMan from "../CfgMan";
import { Card } from "rooms/schema/Card";
import { Pet } from "rooms/schema/Pet";
import { EffectCardType } from "../skill/SkillConst";
import { UnitCfg } from "cfg/parsers/UnitCfg";
export class PlayerHandler {
public _player: Player;
public _playercfg: HeroCfg;
public _unitcfg: UnitCfg;
public _pets: PetHandler[];
private _owner: BattleHandler;
@ -20,6 +23,7 @@ export class PlayerHandler {
this._owner = owner;
this._player = aplayer;
this._playercfg = CfgMan.findPlayerCfg(this._player.heroId);
this._unitcfg = this._playercfg && CfgMan.findUnitCfg(this._playercfg.unitId);
};
public getCurrCardCount(){
@ -68,6 +72,16 @@ export class PlayerHandler {
}else if(cfg.typeId == EffectCardType.MAGIC){
}
};
public useSkill(obj:{
skillid: number, dstplayer: Player, dstpet: Pet})
{
};
public addSkill(skillid: number){
}
}

View File

@ -1,11 +1,7 @@
import { PetHandler } from "../Handler/PetHandler";
import { TriggerType } from "./SkillConst";
import TriggerManager from "./TriggerMan";
let con = require('constant');
let SK_TYPE = con.SKILL_TYPE;
let TG_TYPE = con.TRIGGER_TYPE;
export class Skill {
_currCount: number;
_roundCount: number;
@ -136,19 +132,9 @@ export class Skill {
return this._data && (this._data.is_sp == 1);
};
// 是否是位移技能
isMapSkill() {
return false; //this._type == SK_TYPE.DASH_ATK || this._type == SK_TYPE.BACK_ATK;
};
// 是否是获得即起效技能
isIMMSkill() {
return this._data && (this._data.trigger_id == TG_TYPE.IMM);
};
// 是否是抢先攻击技能
isDefFirstSkill() {
return this._data && (this._type == SK_TYPE.ATK_FIRST);
return this._data && (this._data.trigger_id == TriggerType.NO_COND);
};
canComposition() {
@ -176,7 +162,7 @@ export class Skill {
};
checkTrigger(tg_type: any, tg_value: any, tg_target: any, cb: any) {
if (tg_type == TG_TYPE.MYGROUPROUND_START) {
if (tg_type == TriggerType.ROUND_START_MYSELF) {
this._roundCount++;
if (this._start) {
this._startround++;

View File

@ -38,6 +38,8 @@ export const enum TriggerType
ROUND_END_MYSELF = 5,
CARD_GETTED = 6,
ROUND_START_MYSELF = 6,
};
export const enum SkillType{