From 0ba72b440b93bd32a54b5f76c07f5a3b2833b33e Mon Sep 17 00:00:00 2001 From: yuexin Date: Fri, 18 Dec 2020 19:04:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E7=89=88=E6=9C=AC=E5=87=86=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/todolist.xmind | Bin 0 -> 43705 bytes src/rooms/logic/CfgMan.ts | 35 ++++++++++++++ src/rooms/logic/Handler/BattleHandler.ts | 2 +- src/rooms/logic/Handler/PetHandler.ts | 59 +++++++++++++++++++---- src/rooms/logic/Handler/PlayerHandler.ts | 24 ++++++--- src/rooms/logic/skill/Skill.ts | 5 ++ src/rooms/logic/skill/SkillConst.ts | 54 +++++++++++++++++++++ 7 files changed, 161 insertions(+), 18 deletions(-) create mode 100644 doc/todolist.xmind diff --git a/doc/todolist.xmind b/doc/todolist.xmind new file mode 100644 index 0000000000000000000000000000000000000000..d22f2ea0c5e9f87c654e75b4d955869e43e47327 GIT binary patch literal 43705 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 literal 0 HcmV?d00001 diff --git a/src/rooms/logic/CfgMan.ts b/src/rooms/logic/CfgMan.ts index b8949ef..cd4b825 100644 --- a/src/rooms/logic/CfgMan.ts +++ b/src/rooms/logic/CfgMan.ts @@ -2,6 +2,7 @@ import { EffectCardCfg } from "cfg/parsers/EffectCardCfg"; import { HeroCfg } from "cfg/parsers/HeroCfg"; import { SkillCfg } from "cfg/parsers/SkillCfg"; import { UnitCfg } from "cfg/parsers/UnitCfg"; +import arrUtil from "utils/array.util"; import { BaseConst } from "../../constants/BaseConst"; import { EffectCardType, EnhanceEffectType, SkillEffectSignType, SkillEffectValueType, SkillTargetType } from "./skill/SkillConst"; @@ -12,6 +13,8 @@ let CfgMan = { */ _cardcache: new Map(), + _typecards: new Map(), + findPlayerCfg(playerid: number): HeroCfg{ return global.$cfg.get(BaseConst.HERO).get(playerid); }, @@ -109,6 +112,38 @@ let CfgMan = { this._cardcache.set(cardid + '', {target: res}); return res; + }, + + randomCard(subtype: number): number{ + if(this._typecards.size == 0){ + for(let [key, val] of global.$cfg.get(BaseConst.EFFECTCARD)){ + let id1 = val.affix1id; + let id2 = val.affix2id; + if(id1){ + let lst = this._typecards.get(id1 + ''); + if(!lst){ + lst = [key]; + this._typecards.set(id1 + '', lst); + }else{ + lst.push(key); + } + } + + if(id2 && id2 != id1){ + let lst = this._typecards.get(id2 + ''); + if(!lst){ + lst = [key]; + this._typecards.set(id2 + '', lst); + }else{ + lst.push(key); + } + } + } + } + + let obj = this._typecards.get(subtype + ''); + + return obj? arrUtil.randomOne(obj): 0; } }; diff --git a/src/rooms/logic/Handler/BattleHandler.ts b/src/rooms/logic/Handler/BattleHandler.ts index a5b5143..33d7a82 100644 --- a/src/rooms/logic/Handler/BattleHandler.ts +++ b/src/rooms/logic/Handler/BattleHandler.ts @@ -102,7 +102,7 @@ export class BattleHandler { { let pet = apet; let bok = this.petIsValid(pet, players, ct); - if(checktaunt && (!bok || !pet._istaunt)){ + if(checktaunt && (!bok || !pet.isTaunt())){ for(let i = 0; i < players.length;i++){ let obj = players[i].findTauntPet(); if(obj){ diff --git a/src/rooms/logic/Handler/PetHandler.ts b/src/rooms/logic/Handler/PetHandler.ts index dce9edd..595d8a9 100644 --- a/src/rooms/logic/Handler/PetHandler.ts +++ b/src/rooms/logic/Handler/PetHandler.ts @@ -29,6 +29,8 @@ export class PetHandler { _baseap: number; // 基础 + _basehp: number = 0; + // _exap: number = 0; // 额外 _exredhurt: number = 0; // 减伤 @@ -37,10 +39,15 @@ export class PetHandler { _istaunt: boolean = false; // 是否是嘲讽 + _isSilent: boolean = false; // 是否被沉默 + _silentCD: number = 0; // 沉默剩余回合 + _selfskills: number[] = []; _idx: number; + _bakBaseap: number; + public init(apet: Pet, owner: PlayerHandler, index: number){ this._pet = apet; this._owner = owner; @@ -188,6 +195,7 @@ export class PetHandler { if(value <= 0){ return 0; } + let n = -value; for(let i = 0; i < this._effhalos.length;i++){ let dv = this._effhalos[i].addHaloValue(n); @@ -196,21 +204,20 @@ export class PetHandler { break; } } - if(n < 0){ - this._baseap += n; - this._ceilBaseAP(); + if(n >= 0){ + this.dataChanged(); + return value; } - this.dataChanged(); - if(this._baseap <= 0){ - this.die(); - } - return value; + + return this.addBaseAP(n); }; public addBaseAP(value: number): number{ if(value == 0){ return 0; } + + this._bakBaseap = this._baseap; this._baseap += value; this._ceilBaseAP(); this.dataChanged(); @@ -254,11 +261,22 @@ export class PetHandler { this._owner && this._owner.onPetBorned(this, param); }; + public isDead(){ + return this._baseap <= 0; + }; + public die(){ - this.clear(); this._owner && this._owner.onPetDied(this); }; + public reborn(){ + this._effhalos.forEach((item: Skill) => { + item.resetHaloValue(); + }); + this._baseap = this._bakBaseap; + this._bakBaseap = 0; + }; + public clear(){ if(this._halos.length > 0){ this._halos.length = 0; @@ -276,10 +294,30 @@ export class PetHandler { this._istaunt = false; }; + public isTaunt(){ + return this._istaunt; + }; + + public isSilent(){ + return this._isSilent; + }; + public summonPet(petid: number, count: number = 1, exparam: SkillParam):number{ return this._owner.summonPet(petid, count, exparam); }; + public beSilent(count: number){ + this._isSilent = true; + this._silentCD = count; + if(this.hasHaloSkill()){ + + } + }; + + public hasHaloSkill(): boolean{ + return this._halos.length > 0; + }; + public hasHalo(skill: Skill): boolean{ return this._halos.includes(skill); }; @@ -314,6 +352,9 @@ export class PetHandler { }; public checkSkills(tgtype: TriggerType, tgtv: any, sp: SkillParam, cb?: any){ + if(this._isSilent){ + return; + } this._waitskills.forEach((item: Skill) => { item.checkTrigger(tgtype, tgtv, sp, cb); }); diff --git a/src/rooms/logic/Handler/PlayerHandler.ts b/src/rooms/logic/Handler/PlayerHandler.ts index 41ccc61..18a1245 100644 --- a/src/rooms/logic/Handler/PlayerHandler.ts +++ b/src/rooms/logic/Handler/PlayerHandler.ts @@ -270,16 +270,24 @@ export class PlayerHandler { this._owner.onAddPetNotify(apet); // 战吼 - this.simpleCheckSkills(apet._bornSkills, apet, param); + if(!apet.isSilent()){ + this.simpleCheckSkills(apet._bornSkills, apet, param); + } }; - public onPetDied(apet: PetHandler){ - this._owner.onDelPetNotify(apet); - + public onPetDied(apet: PetHandler): boolean{ // 遗愿 - this.simpleCheckSkills(apet._dieSkills); + if(!apet.isSilent()){ + this.simpleCheckSkills(apet._dieSkills); + } - this.delPet(apet); + if(apet.isDead()){ + this._owner.onDelPetNotify(apet); + apet.clear(); + this.delPet(apet); + } + + return true; }; public onPetChanged(apet: PetHandler){ @@ -350,11 +358,11 @@ export class PlayerHandler { }; public findTauntPet(): PetHandler{ - if(this._self && this._self._istaunt){ + if(this._self && this._self.isTaunt()){ return this._self; } return this._pets.find((item: PetHandler) =>{ - return item._istaunt; + return item.isTaunt(); }) }; diff --git a/src/rooms/logic/skill/Skill.ts b/src/rooms/logic/skill/Skill.ts index 90c4374..d969417 100644 --- a/src/rooms/logic/skill/Skill.ts +++ b/src/rooms/logic/skill/Skill.ts @@ -24,6 +24,7 @@ export class Skill { _cb: any; halo_v: number = -1; + reborn_v: number = -1; rd: number = 0; // LIFE-CYCLE CALLBACKS: @@ -198,6 +199,10 @@ export class Skill { return 0; }; + resetHaloValue(){ + this.halo_v = -1; + }; + trigger(param: SkillParam, cb?: any) { //触发buff效果 let res = TriggerManager.onTrigger(this, param); diff --git a/src/rooms/logic/skill/SkillConst.ts b/src/rooms/logic/skill/SkillConst.ts index 9e97bba..763d476 100644 --- a/src/rooms/logic/skill/SkillConst.ts +++ b/src/rooms/logic/skill/SkillConst.ts @@ -1,4 +1,16 @@ // 判断条件 +/** + * 0.无条件发动 + * 1.当前手牌数 + * 2.累计抽牌数 + * 3.胡牌(吃牌/自摸)(就是无条件,所以废弃) + * 4.吃别人牌(吃牌) + * 5.自己胡牌(自摸) + * 6.自己受到来自他人的冲锋后 + * 7.受到伤害后 + * 8.发动冲锋技能(ID40122)前 + */ + export const enum CondType { NO_COND = 0, @@ -12,6 +24,12 @@ export const enum CondType CARD_ACTION_LINK_OTHER = 4, CARD_ACTION_LINK_SELF = 5, + + BE_ATTACK = 6, + + BE_HURT = 7, + + BEFORE_ATTACK = 8, }; // 判断方式 @@ -96,6 +114,14 @@ export const enum SkillRangeUnitType{ * 11.扣除HP * 12.增加出场战力[暂不用] * 13.自己受到的伤害降低 + * 21.获得引用卡牌(需引用卡牌ID) + * 22.冲锋,对被攻击者造成“攻击者战力的伤害值”,同时由攻击者承受“被攻击者战力的伤害值” + * 23.伤害(对战力、HP均有效) + * 24.强化法术强度 + * 25.沉默N回合(N=参数) + * 26.重生(并获得死前战力) + * 27.遭受反击的伤害参数,减半 + * 28.使获得技能(引用技能ID) */ export const enum SkillEffectType { @@ -114,6 +140,13 @@ export const enum SkillEffectType POWER_ADD_BUFF = 12, HURT_REDUCE = 13, CARD_GETDIRECT = 21, + ATTACK = 22, + HURT_ALL = 23, + ENHANCE_MAGIC = 24, + SILENT = 25, + REBORN = 26, + ATTACK_BACK = 27, + SKILL_GET = 28, }; // 技能效果参数类型 @@ -147,6 +180,9 @@ export const enum EffectCardType * 3.(使引用随从、技能的次数)+效果强化牌数 * 4.(使出场战力)+效果强化参数*效果强化牌数 * 5.(使出场战力)+效果强化参数的倍速*联合牌总点数*效果强化牌数 + * 21.使本技能的释放次数(下限)+a牌数 + * 22.使本技能的释放次数(上限)+a牌数 + * 23.使本技能的引用次数(上限)+a牌数:同理,引用次数,没加下限的,就是下限 */ export const enum EnhanceEffectType { NONE = 0, @@ -155,6 +191,9 @@ export const enum EnhanceEffectType { EN_SUBSKILL_BYCFG = 3, EN_POWER_BYCFG = 4, EN_POWER_BYAP = 5, + EN_SKILL_USECOUNT_MIN = 21, + EN_SKILL_USECOUNT_MAX = 22, + EN_SKILL_QCOUNT_MAX = 23, }; // 游戏单位类型 @@ -168,6 +207,18 @@ export const enum GameUnitType { }; // 游戏敌我阵营 +/** + * 1.自己(势力) + * 2.友方(势力),不包括自己 + * 3.自己和友方(势力) + * 4.单个敌方(势力) + * 5.全部敌方(势力) + * 6.场上全部(势力),无视敌我 + + * 7.自己和友方(势力)中的随机一个 + * 8.全部敌方(势力)中的随机一个 + * 9.先对家,不存在,执行第八条 + */ export const enum GameCampType { NONE = 0, SELF = 1, @@ -176,6 +227,9 @@ export const enum GameCampType { ENEMY = 4, ENEMYTEAM = 5, ALL = 6, + RANDOM_US = 7, + RANDOM_ENEMY = 8, + FACE_ENEMY = 9, }; // 战力参数数值