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, eVT: SkillEffectValueType,
eST: SkillEffectSignType, eST: SkillEffectSignType,
eV: number, eV: number,
aP: number, aP: number
enV: number
): number{ ): number{
let n = eV; let n = eV;
switch(eST){ switch(eST){
@ -67,7 +66,6 @@ let CfgMan = {
default: default:
break; break;
} }
n += enV;
return n; return n;
} }
}; };

View File

@ -271,12 +271,14 @@ export class BattleHandler {
}; };
public onAddPetNotify(apet: PetHandler){ public onAddPetNotify(apet: PetHandler){
this._room.bAddPet(apet.exportData()); return this._room.bAddPet(apet.exportData());
}; };
public onPlayerAddCard(aplayer: PlayerHandler, count: number, maxcount: number){ 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, ap: this._baseap,
extAp: this._exap, extAp: this._exap,
pos: this._idx, pos: this._idx,
player: this._owner.getId(),
harmReduce: this._exredhurt, harmReduce: this._exredhurt,
skills: this._selfskills, skills: this._selfskills,
extSkills: this._exskills extSkills: this._exskills

View File

@ -49,6 +49,10 @@ export class PlayerHandler {
return 0; return 0;
}; };
public getId(): string{
return this._player.heroId + '';
};
public newPet(): PetHandler { public newPet(): PetHandler {
let res = null; let res = null;
let pr = null; let pr = null;
@ -146,6 +150,10 @@ export class PlayerHandler {
return this._owner.onPlayerAddCard(this, 0, maxcount); return this._owner.onPlayerAddCard(this, 0, maxcount);
}; };
public stealCard(dstplayer: PlayerHandler, count: number){
return this._owner.onPlayerStealCard(this, dstplayer, count);
};
public checkHalo(apet:PetHandler){ public checkHalo(apet:PetHandler){
this._pets.forEach((obj: PetHandler)=>{ this._pets.forEach((obj: PetHandler)=>{
if(obj != apet){ 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); 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) { trigger(param: SkillParam) {
//触发buff效果 //触发buff效果
let res = TriggerManager.onTrigger(this, param); let res = TriggerManager.onTrigger(this, param);
@ -230,9 +235,8 @@ export class Skill {
}); });
}; };
handleCard(efftype: SkillEffectType, enhanceV: number, power: number, tgt: SkillTarget){ handleCard(efftype: SkillEffectType, effvalue: number, enhanceV: number, tgt: SkillTarget){
let res = CfgMan.calcEffectValue(this._data.eff_numtypeid, let res = effvalue + enhanceV;
this._data.num_signid, this._data.eff_num, power, enhanceV);
switch(efftype){ switch(efftype){
case SkillEffectType.CARD_ADD: case SkillEffectType.CARD_ADD:
if(tgt.dsttype == GameUnitType.PLAYER){ if(tgt.dsttype == GameUnitType.PLAYER){
@ -249,18 +253,35 @@ export class Skill {
} }
break; break;
case SkillEffectType.CARD_STEAL: 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; break;
default: default:
break; break;
} }
}; };
getRealEffValue(enhanceV: number){ handlePower(efftype: SkillEffectType, effvalue: number, enhanceV: number, tgt: SkillTarget){
switch(this._data.eff_numtypeid){
case SkillEffectValueType.NUMBER: };
return
} 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) { setOwner(owner: PetHandler) {

View File

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

View File

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