Merge branch 'master' of git.kingsome.cn:node/card_svr

This commit is contained in:
zhl 2020-12-04 17:19:35 +08:00
commit 7740507c3c
7 changed files with 67 additions and 20 deletions

View File

@ -51,8 +51,7 @@ let CfgMan = {
eVT: SkillEffectValueType,
eST: SkillEffectSignType,
eV: number,
aP: number,
enV: number
aP: number
): number{
let n = eV;
switch(eST){
@ -67,7 +66,6 @@ let CfgMan = {
default:
break;
}
n += enV;
return n;
}
};

View File

@ -271,12 +271,14 @@ export class BattleHandler {
};
public onAddPetNotify(apet: PetHandler){
this._room.bAddPet(apet.exportData());
return this._room.bAddPet(apet.exportData());
};
public onPlayerAddCard(aplayer: PlayerHandler, count: number, maxcount: number){
this._room.addCard(aplayer._player.heroId + '', count, maxcount);
return this._room.addCard(aplayer.getId(), count, maxcount);
};
public onPlayerStealCard(srcplayer: PlayerHandler, dstplayer: PlayerHandler, count: number){
return this._room.drawCardFromPlayer(srcplayer.getId(), dstplayer.getId(), count);
};
}

View File

@ -170,6 +170,7 @@ export class PetHandler {
ap: this._baseap,
extAp: this._exap,
pos: this._idx,
player: this._owner.getId(),
harmReduce: this._exredhurt,
skills: this._selfskills,
extSkills: this._exskills

View File

@ -49,6 +49,10 @@ export class PlayerHandler {
return 0;
};
public getId(): string{
return this._player.heroId + '';
};
public newPet(): PetHandler {
let res = null;
let pr = null;
@ -146,6 +150,10 @@ export class PlayerHandler {
return this._owner.onPlayerAddCard(this, 0, maxcount);
};
public stealCard(dstplayer: PlayerHandler, count: number){
return this._owner.onPlayerStealCard(this, dstplayer, count);
};
public checkHalo(apet:PetHandler){
this._pets.forEach((obj: PetHandler)=>{
if(obj != apet){

View File

@ -200,6 +200,11 @@ export class Skill {
return CfgMan.calcEnhanceValue(this._data.edd_effid, this._data.edd_effnum, param.edd_cnt, param.cardpoint);
};
getEffValue(param: SkillParam): number{
return CfgMan.calcEffectValue(this._data.eff_numtypeid,
this._data.num_signid, this._data.eff_num, param.cardpoint);
};
trigger(param: SkillParam) {
//触发buff效果
let res = TriggerManager.onTrigger(this, param);
@ -230,9 +235,8 @@ export class Skill {
});
};
handleCard(efftype: SkillEffectType, enhanceV: number, power: number, tgt: SkillTarget){
let res = CfgMan.calcEffectValue(this._data.eff_numtypeid,
this._data.num_signid, this._data.eff_num, power, enhanceV);
handleCard(efftype: SkillEffectType, effvalue: number, enhanceV: number, tgt: SkillTarget){
let res = effvalue + enhanceV;
switch(efftype){
case SkillEffectType.CARD_ADD:
if(tgt.dsttype == GameUnitType.PLAYER){
@ -249,18 +253,35 @@ export class Skill {
}
break;
case SkillEffectType.CARD_STEAL:
if(tgt.dsttype == GameUnitType.PLAYER){
let n = tgt.srcplayer.stealCard(tgt.dst, res);
if(n >= 0){
tgt.success(efftype, n);
}
}
break;
case SkillEffectType.CARD_CHG_EN:
//todo: 暂不处理
break;
default:
break;
}
};
getRealEffValue(enhanceV: number){
switch(this._data.eff_numtypeid){
case SkillEffectValueType.NUMBER:
return
}
handlePower(efftype: SkillEffectType, effvalue: number, enhanceV: number, tgt: SkillTarget){
};
handleHP(efftype: SkillEffectType, effvalue: number, enhanceV: number, tgt: SkillTarget){
};
summon(efftype: SkillEffectType, effvalue: number, enhanceV: number, tgt: SkillTarget){
};
addBuff(efftype: SkillEffectType, effvalue: number, enhanceV: number, tgt: SkillTarget){
};
setOwner(owner: PetHandler) {

View File

@ -111,7 +111,7 @@ export const enum SkillEffectType
SUMMON_SKILL = 8,
TAUNT = 9,
HURT_HP = 10,
POWER_ADD_BORN = 11,
POWER_ADD_BUFF = 11,
HURT_RED = 12,
};

View File

@ -74,8 +74,8 @@ let TriggerManager = {
onTrigger(sender: Skill, param: SkillParam): SkillTarget[] {
let effectid = sender._type;
let bResOk = true;
let env = sender.getEnhanceValue(param);
let effv = sender.getEffValue(param);
let tgts = sender.getTargets(param);
if(!tgts || !tgts.length){
return null;
@ -84,22 +84,39 @@ let TriggerManager = {
switch (effectid) {
case SkillEffectType.NONE:
return null;
case SkillEffectType.CARD_ADD:
case SkillEffectType.CARD_ADD_LIMIT:
case SkillEffectType.CARD_STEAL:
case SkillEffectType.CARD_CHG_EN:
tgts.forEach((item)=>{
sender.handleCard(effectid, env, param.cardpoint, item);
sender.handleCard(effectid, effv, env, item);
});
break;
case SkillEffectType.POWER_ENHANCE:
case SkillEffectType.HURT_POWER:
tgts.forEach((item)=>{
sender.handlePower(effectid, effv, env, item);
});
break;
case SkillEffectType.SUMMON_NPC:
case SkillEffectType.SUMMON_SKILL:
tgts.forEach((item)=>{
sender.summon(effectid, effv, env, item);
});
break;
case SkillEffectType.TAUNT:
//todo: 不处理
case SkillEffectType.HURT_HP:
case SkillEffectType.POWER_ADD_BORN:
tgts.forEach((item)=>{
sender.handleHP(effectid, effv, env, item);
});
break;
case SkillEffectType.POWER_ADD_BUFF:
case SkillEffectType.HURT_RED:
tgts.forEach((item)=>{
sender.addBuff(effectid, effv, env, item);
});
break;
}
@ -121,7 +138,7 @@ let TriggerManager = {
case SkillEffectType.SUMMON_SKILL:
case SkillEffectType.TAUNT:
case SkillEffectType.HURT_HP:
case SkillEffectType.POWER_ADD_BORN:
case SkillEffectType.POWER_ADD_BUFF:
case SkillEffectType.HURT_RED:
break;
}