add dsttype limit
This commit is contained in:
parent
f97fe76644
commit
8927efab0a
@ -20,6 +20,8 @@ export class PetHandler {
|
|||||||
_dieSkills: Skill[] = [];
|
_dieSkills: Skill[] = [];
|
||||||
_halos: Skill[] = [];
|
_halos: Skill[] = [];
|
||||||
|
|
||||||
|
_otherhalos: Skill[] = [];
|
||||||
|
|
||||||
_baseap: number; // 基础
|
_baseap: number; // 基础
|
||||||
|
|
||||||
_exap: number = 0; // 额外
|
_exap: number = 0; // 额外
|
||||||
@ -82,7 +84,7 @@ export class PetHandler {
|
|||||||
if(!obj){
|
if(!obj){
|
||||||
obj = SkillMan.getSkill(skillid);
|
obj = SkillMan.getSkill(skillid);
|
||||||
if(obj){
|
if(obj){
|
||||||
obj.setOwner(this);
|
obj.setOwner(this._owner);
|
||||||
this._skills.set(skillid, obj);
|
this._skills.set(skillid, obj);
|
||||||
this._selfskills.push(skillid);
|
this._selfskills.push(skillid);
|
||||||
if(obj.isBornSkill()){
|
if(obj.isBornSkill()){
|
||||||
@ -172,13 +174,13 @@ export class PetHandler {
|
|||||||
this._owner && this._owner.onPetDied(this);
|
this._owner && this._owner.onPetDied(this);
|
||||||
};
|
};
|
||||||
|
|
||||||
public attack(skill: Skill){
|
public useSkill(skillid: number){
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
public checkHalo(apet: PetHandler){
|
public checkHalo(apet: PetHandler){
|
||||||
this._halos.forEach((item: Skill)=>{
|
this._halos.forEach((item: Skill)=>{
|
||||||
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -3,9 +3,8 @@ import { PetHandler } from "./PetHandler";
|
|||||||
import { HeroCfg } from "../../../cfg/parsers/HeroCfg";
|
import { HeroCfg } from "../../../cfg/parsers/HeroCfg";
|
||||||
import { BattleHandler } from "./BattleHandler";
|
import { BattleHandler } from "./BattleHandler";
|
||||||
import CfgMan from "../CfgMan";
|
import CfgMan from "../CfgMan";
|
||||||
import { Card } from "rooms/schema/Card";
|
|
||||||
import { Pet } from "rooms/schema/Pet";
|
import { Pet } from "rooms/schema/Pet";
|
||||||
import { EffectCardType, GameUnitType } from "../skill/SkillConst";
|
import { EffectCardType, GameUnitType, TriggerType } from "../skill/SkillConst";
|
||||||
import { UnitCfg } from "cfg/parsers/UnitCfg";
|
import { UnitCfg } from "cfg/parsers/UnitCfg";
|
||||||
import { Skill } from "../skill/Skill";
|
import { Skill } from "../skill/Skill";
|
||||||
import { SkillParam, SkillTarget } from "../skill/SkillParam";
|
import { SkillParam, SkillTarget } from "../skill/SkillParam";
|
||||||
@ -42,7 +41,7 @@ export class PlayerHandler {
|
|||||||
};
|
};
|
||||||
|
|
||||||
public getCurrCardCount(){
|
public getCurrCardCount(){
|
||||||
return 0;
|
return this._player.cards.size;
|
||||||
};
|
};
|
||||||
|
|
||||||
public getTotalCardCount(){
|
public getTotalCardCount(){
|
||||||
@ -129,13 +128,13 @@ export class PlayerHandler {
|
|||||||
|
|
||||||
pet.born(obj);
|
pet.born(obj);
|
||||||
}else if(cfg.type_id == EffectCardType.MAGIC){
|
}else if(cfg.type_id == EffectCardType.MAGIC){
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public useSkill(obj: SkillParam)
|
public useSkill(skillid: number, obj: SkillParam)
|
||||||
{
|
{
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
public addSkill(skillid: number){
|
public addSkill(skillid: number){
|
||||||
@ -190,7 +189,7 @@ export class PlayerHandler {
|
|||||||
// 战吼
|
// 战吼
|
||||||
let reslst: SkillTarget[] = [];
|
let reslst: SkillTarget[] = [];
|
||||||
apet._bornSkills.forEach((item: Skill)=>{
|
apet._bornSkills.forEach((item: Skill)=>{
|
||||||
let lst = item.trigger(param);
|
let lst = item.checkTrigger(TriggerType.NO_COND, 0, param);
|
||||||
reslst = reslst.concat(lst);
|
reslst = reslst.concat(lst);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -206,6 +205,10 @@ export class PlayerHandler {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public onSkillEnd(askill: Skill, res: SkillTarget[]){
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
public isMyPet(apet: PetHandler){
|
public isMyPet(apet: PetHandler){
|
||||||
return this._pets.includes(apet);
|
return this._pets.includes(apet);
|
||||||
};
|
};
|
||||||
|
@ -13,47 +13,18 @@ export class Skill {
|
|||||||
_roundCount: number;
|
_roundCount: number;
|
||||||
_startround: number;
|
_startround: number;
|
||||||
_delayround: number;
|
_delayround: number;
|
||||||
_movegrid: number;
|
|
||||||
_visiongrid: number;
|
|
||||||
_id: number;
|
_id: number;
|
||||||
_data: SkillCfg;
|
_data: SkillCfg;
|
||||||
_type: any;
|
_type: any;
|
||||||
_show_effect: any[];
|
|
||||||
_param: number;
|
_param: number;
|
||||||
_tgctrl: TriggerCtrl;
|
_tgctrl: TriggerCtrl;
|
||||||
_maxvalue: any;
|
|
||||||
_man: any;
|
_man: any;
|
||||||
_splashinfo: {};
|
_owner: PlayerHandler;
|
||||||
_owner: PetHandler;
|
|
||||||
attr_value: any;
|
|
||||||
groupattr_value: any;
|
|
||||||
_aclst: any;
|
|
||||||
_skill1pr: any;
|
|
||||||
_skill2pr: any;
|
|
||||||
start: any;
|
|
||||||
_start: boolean;
|
_start: boolean;
|
||||||
_cb: any;
|
_cb: any;
|
||||||
atk_attr: any;
|
|
||||||
_tmp: any;
|
ap: number = 0;
|
||||||
atk_type: any;
|
rd: number = 0;
|
||||||
atk_value: any;
|
|
||||||
atk_count: any;
|
|
||||||
_attrmap: any;
|
|
||||||
wudi: any;
|
|
||||||
_need_disappear: boolean;
|
|
||||||
_atkfirst: any;
|
|
||||||
_no_move: any;
|
|
||||||
_no_atk: any;
|
|
||||||
_no_atkback: any;
|
|
||||||
_hide: any;
|
|
||||||
_imm_ph: any;
|
|
||||||
_imm_magic: any;
|
|
||||||
_immeffid: number;
|
|
||||||
_immlst: any;
|
|
||||||
_acrp: any;
|
|
||||||
attr: any;
|
|
||||||
groupattr: any;
|
|
||||||
isExSkill: boolean = false;
|
|
||||||
// LIFE-CYCLE CALLBACKS:
|
// LIFE-CYCLE CALLBACKS:
|
||||||
|
|
||||||
// onLoad () {};
|
// onLoad () {};
|
||||||
@ -67,12 +38,10 @@ export class Skill {
|
|||||||
this._roundCount = 0; // 回合数
|
this._roundCount = 0; // 回合数
|
||||||
this._startround = 0; // 触发后回合数
|
this._startround = 0; // 触发后回合数
|
||||||
this._delayround = 0; // 延迟回合数
|
this._delayround = 0; // 延迟回合数
|
||||||
this._movegrid = 0;
|
|
||||||
this._visiongrid = 0;
|
|
||||||
this._id = skillid;
|
this._id = skillid;
|
||||||
this._data = skilldata;
|
this._data = skilldata;
|
||||||
this._type = skilldata.skill_typeid;
|
this._type = skilldata.skill_typeid;
|
||||||
// this._show_effect = this.initSkillShowEffectData();
|
|
||||||
// todo: 根据bufftype处理paramlst
|
// todo: 根据bufftype处理paramlst
|
||||||
this._param = TriggerManager.handleEffectParam(this._type, skilldata.eff_num);
|
this._param = TriggerManager.handleEffectParam(this._type, skilldata.eff_num);
|
||||||
this._tgctrl = TriggerManager.addSkillTrigger(this._id, skilldata.tigger_typeid,
|
this._tgctrl = TriggerManager.addSkillTrigger(this._id, skilldata.tigger_typeid,
|
||||||
@ -145,55 +114,8 @@ export class Skill {
|
|||||||
return this._data.rangeid == SkillRangeUnitType.ALL;
|
return this._data.rangeid == SkillRangeUnitType.ALL;
|
||||||
};
|
};
|
||||||
|
|
||||||
isEffectValidPet(apet: PetHandler){
|
|
||||||
switch(this._data.rangeid){
|
|
||||||
case SkillRangeUnitType.SELF:
|
|
||||||
return this._owner == apet;
|
|
||||||
case SkillRangeUnitType.OTHER:
|
|
||||||
case SkillRangeUnitType.ALL_EXSELF:
|
|
||||||
return this._owner != apet;
|
|
||||||
default:
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
canEffectPet(apet: PetHandler){
|
|
||||||
switch(this._data.targetid){
|
|
||||||
case GameUnitType.PLAYER:
|
|
||||||
return false;
|
|
||||||
case GameUnitType.BATTLEUNIT:
|
|
||||||
return apet != null;
|
|
||||||
case GameUnitType.HERO:
|
|
||||||
return apet && apet._isHero;
|
|
||||||
case GameUnitType.PET:
|
|
||||||
return apet && !apet._isHero;
|
|
||||||
default:
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
canEffectCamp(aplayer: PlayerHandler){
|
|
||||||
let isselfplayer = this._owner._owner == aplayer;
|
|
||||||
let isteamplayer = this._owner._owner._friend == aplayer;
|
|
||||||
switch(this._data.friendlyid){
|
|
||||||
case GameCampType.SELF:
|
|
||||||
return isselfplayer;
|
|
||||||
case GameCampType.FRIEND:
|
|
||||||
return isteamplayer;
|
|
||||||
case GameCampType.MYTEAM:
|
|
||||||
return isselfplayer || isteamplayer;
|
|
||||||
case GameCampType.ENEMY:
|
|
||||||
case GameCampType.ENEMYTEAM:
|
|
||||||
return !isselfplayer && !isteamplayer;
|
|
||||||
case GameCampType.ALL:
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
getTargets(param: SkillParam): SkillTarget[]{
|
getTargets(param: SkillParam): SkillTarget[]{
|
||||||
return this._owner._owner._owner.getSkillTargets(this, param);
|
return this._owner._owner.getSkillTargets(this, param);
|
||||||
};
|
};
|
||||||
|
|
||||||
getEnhanceValue(param: SkillParam): number{
|
getEnhanceValue(param: SkillParam): number{
|
||||||
@ -211,7 +133,7 @@ export class Skill {
|
|||||||
|
|
||||||
this._currCount++;
|
this._currCount++;
|
||||||
|
|
||||||
if (!this.start) {
|
if (!this._start) {
|
||||||
this._start = true;
|
this._start = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -222,7 +144,7 @@ export class Skill {
|
|||||||
return res;
|
return res;
|
||||||
};
|
};
|
||||||
|
|
||||||
checkTrigger(tg_type: TriggerType, tg_value: any, tg_target: any, cb: any) {
|
checkTrigger(tg_type: TriggerType, tg_value: any, 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) {
|
||||||
@ -246,12 +168,18 @@ export class Skill {
|
|||||||
if(n >= 0){
|
if(n >= 0){
|
||||||
tgt.success(efftype, n);
|
tgt.success(efftype, n);
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
tgt.fail(efftype, -1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SkillEffectType.CARD_ADD_LIMIT:
|
case SkillEffectType.CARD_ADD_LIMIT:
|
||||||
let n = tgt.dst.addCardLimit(res);
|
if(tgt.dsttype == GameUnitType.PLAYER){
|
||||||
if(n >= 0){
|
let n = tgt.dst.addCardLimit(res);
|
||||||
tgt.success(efftype, n);
|
if(n >= 0){
|
||||||
|
tgt.success(efftype, n);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
tgt.fail(efftype, -1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SkillEffectType.CARD_STEAL:
|
case SkillEffectType.CARD_STEAL:
|
||||||
@ -260,6 +188,8 @@ export class Skill {
|
|||||||
if(n >= 0){
|
if(n >= 0){
|
||||||
tgt.success(efftype, n);
|
tgt.success(efftype, n);
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
tgt.fail(efftype, -1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SkillEffectType.CARD_CHG_EN:
|
case SkillEffectType.CARD_CHG_EN:
|
||||||
@ -277,12 +207,16 @@ export class Skill {
|
|||||||
if(tgt.dsttype != GameUnitType.NONE && tgt.dsttype != GameUnitType.PLAYER){
|
if(tgt.dsttype != GameUnitType.NONE && tgt.dsttype != GameUnitType.PLAYER){
|
||||||
let n = efftype == SkillEffectType.POWER_ENHANCE? tgt.dst.addBaseAP(effvalue): tgt.dst.addExAP(effvalue);
|
let n = efftype == SkillEffectType.POWER_ENHANCE? tgt.dst.addBaseAP(effvalue): tgt.dst.addExAP(effvalue);
|
||||||
tgt.success(efftype, n);
|
tgt.success(efftype, n);
|
||||||
|
}else{
|
||||||
|
tgt.fail(efftype, -1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SkillEffectType.HURT_POWER:
|
case SkillEffectType.HURT_POWER:
|
||||||
if(tgt.dsttype != GameUnitType.NONE && tgt.dsttype != GameUnitType.PLAYER){
|
if(tgt.dsttype != GameUnitType.NONE && tgt.dsttype != GameUnitType.PLAYER){
|
||||||
let n = tgt.dst.beHurt(effvalue);
|
let n = tgt.dst.beHurt(effvalue);
|
||||||
tgt.success(efftype, n);
|
tgt.success(efftype, n);
|
||||||
|
}else{
|
||||||
|
tgt.fail(efftype, -1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -295,6 +229,8 @@ export class Skill {
|
|||||||
if(tgt.dsttype == GameUnitType.PLAYER){
|
if(tgt.dsttype == GameUnitType.PLAYER){
|
||||||
let n = tgt.dst.addHp(effvalue);
|
let n = tgt.dst.addHp(effvalue);
|
||||||
tgt.success(efftype, n);
|
tgt.success(efftype, n);
|
||||||
|
}else{
|
||||||
|
tgt.fail(efftype, -1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -309,14 +245,16 @@ export class Skill {
|
|||||||
|
|
||||||
reduceHurt(efftype: SkillEffectType, effvalue: number, tgt: SkillTarget){
|
reduceHurt(efftype: SkillEffectType, effvalue: number, tgt: SkillTarget){
|
||||||
if(efftype == SkillEffectType.HURT_REDUCE){
|
if(efftype == SkillEffectType.HURT_REDUCE){
|
||||||
if(tgt.dsttype == GameUnitType.PLAYER){
|
if(tgt.dsttype != GameUnitType.NONE && tgt.dsttype != GameUnitType.PLAYER){
|
||||||
let n = tgt.dst.addReduceHurt(effvalue);
|
let n = tgt.dst.addReduceHurt(effvalue);
|
||||||
tgt.success(efftype, n);
|
tgt.success(efftype, n);
|
||||||
|
}else{
|
||||||
|
tgt.fail(efftype, -1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
setOwner(owner: PetHandler) {
|
setOwner(owner: PlayerHandler) {
|
||||||
this._owner = owner;
|
this._owner = owner;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -330,16 +268,12 @@ export class Skill {
|
|||||||
obj._roundCount = 0; // 回合数
|
obj._roundCount = 0; // 回合数
|
||||||
obj._startround = 0; // 触发后回合数
|
obj._startround = 0; // 触发后回合数
|
||||||
obj._delayround = 0; // 延迟回合数
|
obj._delayround = 0; // 延迟回合数
|
||||||
obj._movegrid = 0;
|
|
||||||
obj._visiongrid = 0;
|
|
||||||
obj._id = this._id;
|
obj._id = this._id;
|
||||||
obj._data = this._data;
|
obj._data = this._data;
|
||||||
obj._type = this._type;
|
obj._type = this._type;
|
||||||
obj._param = this._param;
|
obj._param = this._param;
|
||||||
obj._tgctrl = this._tgctrl;
|
obj._tgctrl = this._tgctrl;
|
||||||
obj._man = this._man;
|
obj._man = this._man;
|
||||||
obj._show_effect = this._show_effect;
|
|
||||||
obj._maxvalue = this._maxvalue;
|
|
||||||
return obj;
|
return obj;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -24,7 +24,7 @@ export class TriggerCtrl{
|
|||||||
this._cond = condobj;
|
this._cond = condobj;
|
||||||
};
|
};
|
||||||
|
|
||||||
checkTrigger(tg_type: TriggerType, tg_value: any, tg_owner: any, callback?: any): boolean{
|
checkTrigger(tg_type: TriggerType, tg_value: any, 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