From 67875c52cb88a6436cbe39168ca1b9a18ca22caf Mon Sep 17 00:00:00 2001 From: yuexin Date: Fri, 11 Dec 2020 17:20:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=A4=E5=AE=9A=E7=B4=AF?= =?UTF-8?q?=E8=AE=A1=E7=89=8C=E6=95=B0=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/rooms/logic/Handler/PlayerHandler.ts | 11 +++++++++-- src/rooms/logic/skill/Condition.ts | 6 +++--- src/rooms/logic/skill/Skill.ts | 15 ++++++++++----- src/rooms/logic/skill/TriggerCtrl.ts | 2 +- 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/src/rooms/logic/Handler/PlayerHandler.ts b/src/rooms/logic/Handler/PlayerHandler.ts index 6888168..45ce254 100644 --- a/src/rooms/logic/Handler/PlayerHandler.ts +++ b/src/rooms/logic/Handler/PlayerHandler.ts @@ -4,7 +4,7 @@ import { HeroCfg } from "../../../cfg/parsers/HeroCfg"; import { BattleHandler } from "./BattleHandler"; import CfgMan from "../CfgMan"; import { Pet } from "rooms/schema/Pet"; -import { EffectCardType, GameUnitType, SkillType, TriggerType } from "../skill/SkillConst"; +import { CondDecideType, CondType, EffectCardType, GameUnitType, SkillType, TriggerType } from "../skill/SkillConst"; import { UnitCfg } from "cfg/parsers/UnitCfg"; import { Skill } from "../skill/Skill"; import { SkillParam, SkillTarget } from "../skill/SkillParam"; @@ -50,7 +50,10 @@ export class PlayerHandler { return this._player.cards.size; }; - public getTotalCardCount(){ + public getTotalCardCount(ct: CondDecideType, v: number): number{ + if(ct == CondDecideType.EQUAL && this._totalcc > v){ + return v; + } return this._totalcc; }; @@ -465,5 +468,9 @@ export class PlayerHandler { resetTotalCard(){ this._totalcc = 0; + }; + + addTotalCard(v: number){ + this._totalcc += v; } } diff --git a/src/rooms/logic/skill/Condition.ts b/src/rooms/logic/skill/Condition.ts index adac190..e2441fc 100644 --- a/src/rooms/logic/skill/Condition.ts +++ b/src/rooms/logic/skill/Condition.ts @@ -13,8 +13,8 @@ import { CondType, CondDecideType } from "./SkillConst"; export class Condition { public _type: number; - private _cdt: CondDecideType; - private _v: number; + public _cdt: CondDecideType; + public _v: number; public init(cond_type: CondType, cond_dt: CondDecideType, cond_value: number){ this._type = cond_type; @@ -32,7 +32,7 @@ export class Condition { v = tg_owner.getCurrCardCount(); return this._isok(v,this._v,this._cdt); case CondType.CARD_COUNT_TOTAL: - v = tg_owner.getTotalCardCount(); + v = tg_owner.getTotalCardCount(this._cdt, this._v); return this._isok(v,this._v,this._cdt); case CondType.CARD_ACTION_LINK_OTHER: return !!tg_value; diff --git a/src/rooms/logic/skill/Skill.ts b/src/rooms/logic/skill/Skill.ts index edca007..bdcea31 100644 --- a/src/rooms/logic/skill/Skill.ts +++ b/src/rooms/logic/skill/Skill.ts @@ -3,7 +3,7 @@ import { SKillEffectData } from "message/SkillInfo"; import CfgMan from "../CfgMan"; import { PetHandler } from "../Handler/PetHandler"; import { PlayerHandler } from "../Handler/PlayerHandler"; -import { GameCampType, GameUnitType, SkillEffectType, SkillEffectValueType, SkillRangeUnitType, SkillType, TriggerType } from "./SkillConst"; +import { CondDecideType, GameCampType, GameUnitType, SkillEffectType, SkillEffectValueType, SkillRangeUnitType, SkillType, TriggerType } from "./SkillConst"; import { SkillParam, SkillTarget } from "./SkillParam"; import { TriggerCtrl } from "./TriggerCtrl"; import TriggerManager from "./TriggerMan"; @@ -214,9 +214,6 @@ export class Skill { this._man && this._man.onSkillTrigger(this, param, res); - if(this.isTotalCardSkill()){ - this._owner && this._owner.resetTotalCard(); - } return res; }; @@ -227,7 +224,15 @@ export class Skill { this._startround++; } } - if(this._tgctrl.checkTrigger(tg_type, tg_value, this._owner)){ + if(this._tgctrl.checkTrigger(tg_type, tg_value, this._owner, (cdt: CondDecideType, v: number)=>{ + if(this.isTotalCardSkill()){ + if(cdt == CondDecideType.EQUAL){ + this._owner.addTotalCard(-v); + }else if(cdt == CondDecideType.GREATER){ + this._owner.resetTotalCard(); + } + } + })){ this.trigger(tg_target, cb); return 1; }else{ diff --git a/src/rooms/logic/skill/TriggerCtrl.ts b/src/rooms/logic/skill/TriggerCtrl.ts index 18165cb..e081642 100644 --- a/src/rooms/logic/skill/TriggerCtrl.ts +++ b/src/rooms/logic/skill/TriggerCtrl.ts @@ -32,7 +32,7 @@ export class TriggerCtrl{ } if(this._tg.isOK(tg_type)){ if(this._cond.isOK(tg_value, tg_owner)){ - callback && callback(); + callback && callback(this._cond._cdt, this._cond._v); return true; } }