增加条件/触发新逻辑处理
This commit is contained in:
parent
960e8afa85
commit
b7a42535c7
@ -28,6 +28,7 @@ export class BattleHandler {
|
|||||||
private _gamestart: boolean = false;
|
private _gamestart: boolean = false;
|
||||||
|
|
||||||
private _cacheSkills: SkillTarget[] = [];
|
private _cacheSkills: SkillTarget[] = [];
|
||||||
|
private _lastlinkph: PlayerHandler;
|
||||||
|
|
||||||
//--------------------对外接口--player相关---(外部调用)----------------------------
|
//--------------------对外接口--player相关---(外部调用)----------------------------
|
||||||
public init(cs: CardGameState, room: Room){
|
public init(cs: CardGameState, room: Room){
|
||||||
@ -145,44 +146,42 @@ export class BattleHandler {
|
|||||||
bok = !!pet;
|
bok = !!pet;
|
||||||
break;
|
break;
|
||||||
case SkillRangeUnitType.RANDOM_ONE:
|
case SkillRangeUnitType.RANDOM_ONE:
|
||||||
if(checktaunt){
|
case SkillRangeUnitType.RANDOM_ONE_EXOWNER:
|
||||||
let lst:PetHandler[] = [];
|
case SkillRangeUnitType.RANDOM_ONE_EXSELF:
|
||||||
players.forEach((item:PlayerHandler)=>{
|
{
|
||||||
item.findAllTauntPets(lst, isonlypet);
|
let expet:PetHandler = null;
|
||||||
});
|
if(ut == SkillRangeUnitType.RANDOM_ONE_EXOWNER){
|
||||||
if(lst.length > 0){
|
expet = senderpet;
|
||||||
pet = arrUtil.randomOne(lst);
|
}else if(ut == SkillRangeUnitType.RANDOM_ONE_EXSELF){
|
||||||
bok = true;
|
expet = srcpet;
|
||||||
}
|
}
|
||||||
}
|
if(checktaunt){
|
||||||
if(!bok){
|
let lst:PetHandler[] = [];
|
||||||
let lst:PetHandler[] = [];
|
players.forEach((item:PlayerHandler)=>{
|
||||||
players.forEach((item:PlayerHandler)=>{
|
item.findAllTauntPets(lst, isonlypet, expet);
|
||||||
item.findAllPets(lst, isonlypet);
|
});
|
||||||
});
|
if(lst.length > 0){
|
||||||
if(lst.length > 0){
|
pet = arrUtil.randomOne(lst);
|
||||||
pet = arrUtil.randomOne(lst);
|
bok = true;
|
||||||
bok = true;
|
}
|
||||||
|
}
|
||||||
|
if(!bok){
|
||||||
|
let lst:PetHandler[] = [];
|
||||||
|
players.forEach((item:PlayerHandler)=>{
|
||||||
|
item.findAllPets(lst, isonlypet, expet);
|
||||||
|
});
|
||||||
|
if(lst.length > 0){
|
||||||
|
pet = arrUtil.randomOne(lst);
|
||||||
|
bok = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SkillRangeUnitType.RANDOM_ONE_EXOWNER:
|
case SkillRangeUnitType.RANDOM_ONE_NOSHIELD:
|
||||||
case SkillRangeUnitType.RANDOM_ONE_EXSELF:
|
{
|
||||||
let expet = ut == SkillRangeUnitType.RANDOM_ONE_EXOWNER? senderpet: srcpet;
|
|
||||||
if(checktaunt){
|
|
||||||
let lst:PetHandler[] = [];
|
let lst:PetHandler[] = [];
|
||||||
players.forEach((item:PlayerHandler)=>{
|
players.forEach((item:PlayerHandler)=>{
|
||||||
item.findAllTauntPets(lst, isonlypet, expet);
|
item.findAllNoShieldPets(lst, isonlypet);
|
||||||
});
|
|
||||||
if(lst.length > 0){
|
|
||||||
pet = arrUtil.randomOne(lst);
|
|
||||||
bok = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!bok){
|
|
||||||
let lst:PetHandler[] = [];
|
|
||||||
players.forEach((item:PlayerHandler)=>{
|
|
||||||
item.findAllPets(lst, isonlypet, expet);
|
|
||||||
});
|
});
|
||||||
if(lst.length > 0){
|
if(lst.length > 0){
|
||||||
pet = arrUtil.randomOne(lst);
|
pet = arrUtil.randomOne(lst);
|
||||||
@ -232,6 +231,18 @@ export class BattleHandler {
|
|||||||
bok = !!pet;
|
bok = !!pet;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case SkillRangeUnitType.PET_LAST:
|
||||||
|
{
|
||||||
|
let lst:PetHandler[] = [];
|
||||||
|
players.forEach((item:PlayerHandler)=>{
|
||||||
|
let obj = item.getLastPet();
|
||||||
|
obj && lst.push(obj);
|
||||||
|
});
|
||||||
|
if(lst.length > 0){
|
||||||
|
pet = arrUtil.randomOne(lst);
|
||||||
|
bok = true;
|
||||||
|
}
|
||||||
|
}break;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
bok = this.petIsValid(pet, players, ct);
|
bok = this.petIsValid(pet, players, ct);
|
||||||
@ -267,9 +278,13 @@ export class BattleHandler {
|
|||||||
if(players.length > 0){
|
if(players.length > 0){
|
||||||
switch(skill._data.targetid){
|
switch(skill._data.targetid){
|
||||||
case GameUnitType.PLAYER:
|
case GameUnitType.PLAYER:
|
||||||
players.forEach((item:PlayerHandler)=>{
|
if(skill._data.rangeid == SkillRangeUnitType.PLAYER_BELINKED){
|
||||||
lst.push(new SkillTarget(skill, param.srcplayer, param.srcpet, item, GameUnitType.PLAYER));
|
this._lastlinkph && lst.push(new SkillTarget(skill, param.srcplayer, param.srcpet, this._lastlinkph, GameUnitType.PLAYER));
|
||||||
});
|
}else{
|
||||||
|
players.forEach((item:PlayerHandler)=>{
|
||||||
|
lst.push(new SkillTarget(skill, param.srcplayer, param.srcpet, item, GameUnitType.PLAYER));
|
||||||
|
});
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case GameUnitType.HERO:
|
case GameUnitType.HERO:
|
||||||
players.forEach((item:PlayerHandler)=>{
|
players.forEach((item:PlayerHandler)=>{
|
||||||
@ -445,6 +460,13 @@ export class BattleHandler {
|
|||||||
this._flowcount = res;
|
this._flowcount = res;
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public onPlayerCardChanged(player: PlayerHandler){
|
||||||
|
this._players.forEach((item: PlayerHandler) => {
|
||||||
|
item.onCardChanged(player);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
//--------------------对外接口(外部调用)----------------------------
|
//--------------------对外接口(外部调用)----------------------------
|
||||||
/**
|
/**
|
||||||
* 使用卡片
|
* 使用卡片
|
||||||
@ -566,8 +588,12 @@ export class BattleHandler {
|
|||||||
|
|
||||||
this.beginFlow('onCardLinkOver');
|
this.beginFlow('onCardLinkOver');
|
||||||
|
|
||||||
|
this._lastlinkph = fromph;
|
||||||
|
|
||||||
ph.onCardLinkEnd(linkcards, fromph);
|
ph.onCardLinkEnd(linkcards, fromph);
|
||||||
|
|
||||||
|
this._lastlinkph = null;
|
||||||
|
|
||||||
return this.endFlow('onCardLinkOver');
|
return this.endFlow('onCardLinkOver');
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -686,6 +712,9 @@ export class BattleHandler {
|
|||||||
public onPlayerDead(aplayer: Player){
|
public onPlayerDead(aplayer: Player){
|
||||||
let ph = this.getPlayer(aplayer);
|
let ph = this.getPlayer(aplayer);
|
||||||
ph && ph.die();
|
ph && ph.die();
|
||||||
|
this._players.forEach((item: PlayerHandler) => {
|
||||||
|
(item != ph) && item.onPlayerDie(ph);
|
||||||
|
});
|
||||||
this.delPlayer(aplayer);
|
this.delPlayer(aplayer);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -693,7 +722,9 @@ export class BattleHandler {
|
|||||||
* 一局游戏开始
|
* 一局游戏开始
|
||||||
*/
|
*/
|
||||||
public onGameStart(){
|
public onGameStart(){
|
||||||
|
this._players.forEach((item: PlayerHandler) => {
|
||||||
|
item.onGameStart();
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -327,6 +327,7 @@ export class PetHandler {
|
|||||||
// 圣盾减伤后消失
|
// 圣盾减伤后消失
|
||||||
if(this.hasShield()){
|
if(this.hasShield()){
|
||||||
this.delShield();
|
this.delShield();
|
||||||
|
this._owner.onShieldUsed(this);
|
||||||
rv = 0;
|
rv = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -412,7 +413,7 @@ export class PetHandler {
|
|||||||
|
|
||||||
let n = apet.beHurt(myap, this);
|
let n = apet.beHurt(myap, this);
|
||||||
|
|
||||||
!isAtkBack && this._owner.onBeAttack(apet, param);
|
!isAtkBack && this._owner.onAttackAfter(apet, param);
|
||||||
|
|
||||||
let nowap = apet.totalAP();
|
let nowap = apet.totalAP();
|
||||||
|
|
||||||
@ -586,7 +587,7 @@ export class PetHandler {
|
|||||||
return n;
|
return n;
|
||||||
};
|
};
|
||||||
|
|
||||||
public checkSkills(tgtype: TriggerType, tgtv: any, sp: SkillParam, cb?: any){
|
public checkSkills(tgtype: TriggerType, tgtv: PlayerHandler, sp: SkillParam, cb?: any){
|
||||||
if(this._isSilent){
|
if(this._isSilent){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -408,6 +408,8 @@ export class PlayerHandler {
|
|||||||
if(!apet.isSilent()){
|
if(!apet.isSilent()){
|
||||||
this.simpleCheckSkills(apet._bornSkills, apet, param);
|
this.simpleCheckSkills(apet._bornSkills, apet, param);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.checkSkills(TriggerType.PET_BORN, null, null, apet);
|
||||||
};
|
};
|
||||||
|
|
||||||
public onPetDied(apet: PetHandler): boolean{
|
public onPetDied(apet: PetHandler): boolean{
|
||||||
@ -421,6 +423,7 @@ export class PlayerHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// this.delPet(apet);
|
// this.delPet(apet);
|
||||||
|
this.checkSkills(TriggerType.PET_DIE, null, null, apet);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
@ -497,12 +500,21 @@ export class PlayerHandler {
|
|||||||
this.singleCheckSkills(apet, TriggerType.BEFORE_ATTACK, null, sp);
|
this.singleCheckSkills(apet, TriggerType.BEFORE_ATTACK, null, sp);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
onAttackAfter(apet: PetHandler, sp?: SkillParam){
|
||||||
|
this.singleCheckSkills(apet, TriggerType.AFTER_ATTACK, null, sp);
|
||||||
|
};
|
||||||
|
|
||||||
|
// 暂不用
|
||||||
onBeAttack(apet: PetHandler, sp?: SkillParam){
|
onBeAttack(apet: PetHandler, sp?: SkillParam){
|
||||||
this.singleCheckSkills(apet, TriggerType.BE_ATTACK, null, sp);
|
this.singleCheckSkills(apet, TriggerType.BE_ATTACK, null, sp);
|
||||||
};
|
};
|
||||||
|
|
||||||
onBeHurt(apet: PetHandler, value: number){
|
onBeHurt(apet: PetHandler, value: number){
|
||||||
this.singleCheckSkills(apet, TriggerType.BE_HURT, value);
|
this.singleCheckSkills(apet, TriggerType.BE_HURT);
|
||||||
|
};
|
||||||
|
|
||||||
|
onShieldUsed(apet: PetHandler){
|
||||||
|
this.singleCheckSkills(apet, TriggerType.SHIELD_USED);
|
||||||
};
|
};
|
||||||
|
|
||||||
public isMyPet(apet: PetHandler){
|
public isMyPet(apet: PetHandler){
|
||||||
@ -557,6 +569,24 @@ export class PlayerHandler {
|
|||||||
return ncnt;
|
return ncnt;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public findAllNoShieldPets(lst: PetHandler[], exself: boolean, expet?: PetHandler): number{
|
||||||
|
if(!lst){
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
let ncnt = 0;
|
||||||
|
if(!exself && this._self && this._self != expet && !this._self.hasShield()){
|
||||||
|
lst.push(this._self);
|
||||||
|
ncnt++;
|
||||||
|
}
|
||||||
|
this._pets.forEach((item: PetHandler) =>{
|
||||||
|
if(item != expet && item.isAlive() && !item.hasShield()){
|
||||||
|
lst.push(item);
|
||||||
|
ncnt++;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return ncnt;
|
||||||
|
};
|
||||||
|
|
||||||
public getMaxAPPet(exself: boolean): PetHandler{
|
public getMaxAPPet(exself: boolean): PetHandler{
|
||||||
let res: PetHandler = exself? null: this._self;
|
let res: PetHandler = exself? null: this._self;
|
||||||
this._pets.forEach((item: PetHandler) =>{
|
this._pets.forEach((item: PetHandler) =>{
|
||||||
@ -581,6 +611,13 @@ export class PlayerHandler {
|
|||||||
return res;
|
return res;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public getLastPet(): PetHandler{
|
||||||
|
if(this._pets.length > 0){
|
||||||
|
return this._pets[this._pets.length - 1];
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
|
||||||
public hasTransEffCardSkill(): boolean{
|
public hasTransEffCardSkill(): boolean{
|
||||||
if(!this._self){
|
if(!this._self){
|
||||||
return false;
|
return false;
|
||||||
@ -626,8 +663,12 @@ export class PlayerHandler {
|
|||||||
this.checkSkills(TriggerType.CARD_GETTED);
|
this.checkSkills(TriggerType.CARD_GETTED);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
onCardChanged(srcplayer: PlayerHandler){
|
||||||
|
this.checkSkills(TriggerType.CARD_CHANGED, srcplayer);
|
||||||
|
};
|
||||||
|
|
||||||
onUseCardEnd(sp: SkillParam){
|
onUseCardEnd(sp: SkillParam){
|
||||||
this.checkSkills(TriggerType.CARD_USED, 0, sp);
|
this.checkSkills(TriggerType.CARD_USED, null, sp);
|
||||||
this._cardstate = CondType.NO_COND; // 重置状态
|
this._cardstate = CondType.NO_COND; // 重置状态
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -640,14 +681,22 @@ export class PlayerHandler {
|
|||||||
this._cardstate = CondType.NO_COND; // 重置状态
|
this._cardstate = CondType.NO_COND; // 重置状态
|
||||||
};
|
};
|
||||||
|
|
||||||
checkSkills(tgttype: TriggerType, tgtvalue?: any, tgtsp?: SkillParam){
|
onGameStart(){
|
||||||
|
this.checkSkills(TriggerType.PLAYER_BORN);
|
||||||
|
};
|
||||||
|
|
||||||
|
onPlayerDie(srcplayer: PlayerHandler){
|
||||||
|
this.checkSkills(TriggerType.PLAYER_DIE, srcplayer);
|
||||||
|
};
|
||||||
|
|
||||||
|
checkSkills(tgttype: TriggerType, tgtvalue?: PlayerHandler, tgtsp?: SkillParam, expet?: PetHandler){
|
||||||
let sp = tgtsp;
|
let sp = tgtsp;
|
||||||
if(!sp){
|
if(!sp){
|
||||||
sp = new SkillParam(0, 0, 0, this, this._self, null, null);
|
sp = new SkillParam(0, 0, 0, this, this._self, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
let reslst: SkillTarget[] = [];
|
let reslst: SkillTarget[] = [];
|
||||||
this._self && this._self.checkSkills(tgttype, tgtvalue, sp, (skill: Skill, ap: SkillParam, res: SkillTarget[])=>{
|
this._self && (this._self != expet) && this._self.checkSkills(tgttype, tgtvalue, sp, (skill: Skill, ap: SkillParam, res: SkillTarget[])=>{
|
||||||
if(res){
|
if(res){
|
||||||
reslst.push(...res);
|
reslst.push(...res);
|
||||||
}else{
|
}else{
|
||||||
@ -661,6 +710,9 @@ export class PlayerHandler {
|
|||||||
if(!item.isAlive()){
|
if(!item.isAlive()){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if(item == expet){
|
||||||
|
return;
|
||||||
|
}
|
||||||
sp.srcpet = item;
|
sp.srcpet = item;
|
||||||
item.checkSkills(tgttype, tgtvalue, sp, (skill: Skill, ap: SkillParam, res: SkillTarget[])=>{
|
item.checkSkills(tgttype, tgtvalue, sp, (skill: Skill, ap: SkillParam, res: SkillTarget[])=>{
|
||||||
if(res){
|
if(res){
|
||||||
@ -676,7 +728,7 @@ export class PlayerHandler {
|
|||||||
this._owner.onSkillResult(reslst);
|
this._owner.onSkillResult(reslst);
|
||||||
};
|
};
|
||||||
|
|
||||||
singleCheckSkills(apet: PetHandler, tgttype: TriggerType, tgtvalue?: any, tgtsp?: SkillParam){
|
singleCheckSkills(apet: PetHandler, tgttype: TriggerType, tgtvalue?: PlayerHandler, tgtsp?: SkillParam){
|
||||||
let sp = tgtsp;
|
let sp = tgtsp;
|
||||||
if(!sp){
|
if(!sp){
|
||||||
sp = new SkillParam(0, 0, 0, this, apet, null, null);
|
sp = new SkillParam(0, 0, 0, this, apet, null, null);
|
||||||
@ -706,7 +758,7 @@ export class PlayerHandler {
|
|||||||
}
|
}
|
||||||
let reslst: SkillTarget[] = [];
|
let reslst: SkillTarget[] = [];
|
||||||
skills.forEach((item: Skill)=>{
|
skills.forEach((item: Skill)=>{
|
||||||
item.checkTrigger(TriggerType.NO_COND, 0, sp, (skill: Skill, ap: SkillParam, res: SkillTarget[])=>{
|
item.checkTrigger(TriggerType.NO_COND, null, sp, (skill: Skill, ap: SkillParam, res: SkillTarget[])=>{
|
||||||
if(res){
|
if(res){
|
||||||
reslst.push(...res);
|
reslst.push(...res);
|
||||||
}else{
|
}else{
|
||||||
|
@ -22,7 +22,7 @@ export class Condition {
|
|||||||
this._v = cond_value;
|
this._v = cond_value;
|
||||||
};
|
};
|
||||||
|
|
||||||
public isOK(tg_value: any, tg_owner: PlayerHandler){
|
public isOK(tg_value: PlayerHandler, tg_owner: PlayerHandler){
|
||||||
if(this._type == CondType.NO_COND){
|
if(this._type == CondType.NO_COND){
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -40,6 +40,14 @@ export class Condition {
|
|||||||
case CondType.CARD_ACTION_LINK:
|
case CondType.CARD_ACTION_LINK:
|
||||||
return tg_owner._cardstate == CondType.CARD_ACTION_LINK_OTHER ||
|
return tg_owner._cardstate == CondType.CARD_ACTION_LINK_OTHER ||
|
||||||
tg_owner._cardstate == CondType.CARD_ACTION_LINK_SELF;
|
tg_owner._cardstate == CondType.CARD_ACTION_LINK_SELF;
|
||||||
|
case CondType.SELF:
|
||||||
|
return tg_value? tg_value == tg_owner: true;
|
||||||
|
case CondType.FRIEND:
|
||||||
|
return tg_value? tg_owner._friend == tg_value: false;
|
||||||
|
case CondType.MYTEAM:
|
||||||
|
return tg_value? (tg_owner == tg_value || tg_owner._friend == tg_value): true;
|
||||||
|
case CondType.ENEMY:
|
||||||
|
return tg_value? (tg_owner != tg_value && tg_owner._friend != tg_value): false;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -135,7 +135,7 @@ export class Skill {
|
|||||||
return this._data.rangeid == SkillRangeUnitType.ALL;
|
return this._data.rangeid == SkillRangeUnitType.ALL;
|
||||||
};
|
};
|
||||||
|
|
||||||
isInRange(srcpet: PetHandler, dstpet: PetHandler, exself: boolean){
|
isInRange(srcpet: PetHandler, dstpet: PetHandler, exhero: boolean){
|
||||||
switch(this._data.rangeid){
|
switch(this._data.rangeid){
|
||||||
case SkillRangeUnitType.SELF:
|
case SkillRangeUnitType.SELF:
|
||||||
return srcpet == dstpet;
|
return srcpet == dstpet;
|
||||||
@ -156,9 +156,13 @@ export class Skill {
|
|||||||
case SkillRangeUnitType.RANDOM_ONE_EXOWNER:
|
case SkillRangeUnitType.RANDOM_ONE_EXOWNER:
|
||||||
return dstpet != this._petowner;
|
return dstpet != this._petowner;
|
||||||
case SkillRangeUnitType.MAXAP_ONE:
|
case SkillRangeUnitType.MAXAP_ONE:
|
||||||
return dstpet == this._owner.getMaxAPPet(exself);
|
return dstpet == this._owner.getMaxAPPet(exhero);
|
||||||
case SkillRangeUnitType.MINAP_ONE:
|
case SkillRangeUnitType.MINAP_ONE:
|
||||||
return dstpet == this._owner.getMinAPPet(exself);
|
return dstpet == this._owner.getMinAPPet(exhero);
|
||||||
|
case SkillRangeUnitType.PET_LAST:
|
||||||
|
return dstpet == this._owner.getLastPet();
|
||||||
|
case SkillRangeUnitType.RANDOM_ONE_NOSHIELD:
|
||||||
|
return dstpet && !dstpet.hasShield();
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -356,7 +360,7 @@ export class Skill {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
checkTrigger(tg_type: TriggerType, tg_value: any, tg_target: SkillParam, cb?: any) {
|
checkTrigger(tg_type: TriggerType, tg_value: PlayerHandler, tg_target: SkillParam, cb?: any) {
|
||||||
if (tg_type == TriggerType.ROUND_START_MYSELF) {
|
if (tg_type == TriggerType.ROUND_START_MYSELF) {
|
||||||
this._roundCount++;
|
this._roundCount++;
|
||||||
if (this._start) {
|
if (this._start) {
|
||||||
|
@ -6,6 +6,10 @@
|
|||||||
* 3.胡牌(吃牌/自摸)(就是无条件,所以废弃)
|
* 3.胡牌(吃牌/自摸)(就是无条件,所以废弃)
|
||||||
* 4.吃别人牌(吃牌)
|
* 4.吃别人牌(吃牌)
|
||||||
* 5.自己胡牌(自摸)
|
* 5.自己胡牌(自摸)
|
||||||
|
* 6.自己
|
||||||
|
* 7.友方
|
||||||
|
* 8.自己+友方
|
||||||
|
* 9.敌方
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export const enum CondType
|
export const enum CondType
|
||||||
@ -21,6 +25,14 @@ export const enum CondType
|
|||||||
CARD_ACTION_LINK_OTHER = 4,
|
CARD_ACTION_LINK_OTHER = 4,
|
||||||
|
|
||||||
CARD_ACTION_LINK_SELF = 5,
|
CARD_ACTION_LINK_SELF = 5,
|
||||||
|
|
||||||
|
SELF = 6,
|
||||||
|
|
||||||
|
FRIEND = 7,
|
||||||
|
|
||||||
|
MYTEAM = 8,
|
||||||
|
|
||||||
|
ENEMY = 9,
|
||||||
};
|
};
|
||||||
|
|
||||||
// 判断方式
|
// 判断方式
|
||||||
@ -52,6 +64,14 @@ export const enum CondDecideType {
|
|||||||
* 10.不处理
|
* 10.不处理
|
||||||
* 11.受到伤害后
|
* 11.受到伤害后
|
||||||
* 12.发动冲锋技能(ID40122)前
|
* 12.发动冲锋技能(ID40122)前
|
||||||
|
* 13.被冲锋后
|
||||||
|
* 14.冲锋后
|
||||||
|
* 15.手牌数量变化
|
||||||
|
* 16.随从出生
|
||||||
|
* 17.随从死亡
|
||||||
|
* 18.玩家出生
|
||||||
|
* 19.玩家死亡
|
||||||
|
* 20.圣盾消失
|
||||||
*/
|
*/
|
||||||
export const enum TriggerType
|
export const enum TriggerType
|
||||||
{
|
{
|
||||||
@ -78,6 +98,20 @@ export const enum TriggerType
|
|||||||
BEFORE_ATTACK = 12,
|
BEFORE_ATTACK = 12,
|
||||||
|
|
||||||
BE_ATTACK = 13,
|
BE_ATTACK = 13,
|
||||||
|
|
||||||
|
AFTER_ATTACK = 14,
|
||||||
|
|
||||||
|
CARD_CHANGED = 15,
|
||||||
|
|
||||||
|
PET_BORN = 16,
|
||||||
|
|
||||||
|
PET_DIE = 17,
|
||||||
|
|
||||||
|
PLAYER_BORN = 18,
|
||||||
|
|
||||||
|
PLAYER_DIE = 19,
|
||||||
|
|
||||||
|
SHIELD_USED = 20,
|
||||||
};
|
};
|
||||||
|
|
||||||
// 技能大类
|
// 技能大类
|
||||||
@ -121,6 +155,8 @@ export const enum SkillType{
|
|||||||
* 12.本技能拥有者外,全部
|
* 12.本技能拥有者外,全部
|
||||||
* 13.战力最高的单体
|
* 13.战力最高的单体
|
||||||
* 14.战力最低的单体
|
* 14.战力最低的单体
|
||||||
|
* 15.最后一个随从
|
||||||
|
* 16.被吃牌的玩家
|
||||||
*/
|
*/
|
||||||
export const enum SkillRangeUnitType{
|
export const enum SkillRangeUnitType{
|
||||||
NONE = 0,
|
NONE = 0,
|
||||||
@ -138,6 +174,12 @@ export const enum SkillRangeUnitType{
|
|||||||
|
|
||||||
MAXAP_ONE = 13,
|
MAXAP_ONE = 13,
|
||||||
MINAP_ONE = 14,
|
MINAP_ONE = 14,
|
||||||
|
|
||||||
|
PET_LAST = 15,
|
||||||
|
|
||||||
|
PLAYER_BELINKED = 16,
|
||||||
|
|
||||||
|
RANDOM_ONE_NOSHIELD = 17,
|
||||||
};
|
};
|
||||||
|
|
||||||
// 技能效果类型
|
// 技能效果类型
|
||||||
|
@ -25,7 +25,7 @@ export class TriggerCtrl{
|
|||||||
this._cond = condobj;
|
this._cond = condobj;
|
||||||
};
|
};
|
||||||
|
|
||||||
checkTrigger(tg_type: TriggerType, tg_value: any, tg_owner: PlayerHandler, callback?: any): boolean{
|
checkTrigger(tg_type: TriggerType, tg_value: PlayerHandler, tg_owner: PlayerHandler, callback?: any): boolean{
|
||||||
if(tg_type == TriggerType.NO_COND){
|
if(tg_type == TriggerType.NO_COND){
|
||||||
// callback && callback();
|
// callback && callback();
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user