增加发起者回传+冲锋结果优化
This commit is contained in:
parent
1f904b6e1c
commit
9e2f379be2
@ -5,7 +5,7 @@ import { PlayerHandler } from "./PlayerHandler";
|
||||
import CfgMan from "../CfgMan";
|
||||
import { EffectCardType, GameCampType, GameUnitType, SkillRangeUnitType } from "../skill/SkillConst";
|
||||
import { Pet } from "rooms/schema/Pet";
|
||||
import {SkillParam, SkillTarget} from "../skill/SkillParam";
|
||||
import {PetUpdateProcess, SkillParam, SkillTarget} from "../skill/SkillParam";
|
||||
import { nosync, Room } from "colyseus";
|
||||
import { Skill } from "../skill/Skill";
|
||||
import { PetHandler } from "./PetHandler";
|
||||
@ -754,11 +754,11 @@ export class BattleHandler {
|
||||
return this._room.sNeedChangePet(aplayer.getId());
|
||||
};
|
||||
|
||||
public onUpdatePetNotify(apet: PetHandler, from?: PetHandler){
|
||||
public onUpdatePetNotify(apet: PetHandler, from: PetHandler){
|
||||
return this._room.updatePet([apet.exportInfo()], from? from._owner.getId(): null);
|
||||
};
|
||||
|
||||
public onUpdatePetsNotify(pets: PetHandler[], from?: PetHandler){
|
||||
public onUpdatePetsNotify(pets: PetHandler[], from: PetHandler){
|
||||
if(!pets || pets.length <= 0){
|
||||
return;
|
||||
}
|
||||
@ -769,6 +769,12 @@ export class BattleHandler {
|
||||
return this._room.updatePet(lst, from? from._owner.getId(): null);
|
||||
};
|
||||
|
||||
public onUpdatePets(infos: PetUpdateProcess[]){
|
||||
infos.forEach((item: PetUpdateProcess) =>{
|
||||
this._room.updatePet([item.info], item.from? item.from._owner.getId(): null);
|
||||
});
|
||||
};
|
||||
|
||||
public onPlayerAddCardNotify(aplayer: PlayerHandler, count: number, maxcount: number,
|
||||
from?: PlayerHandler): number{
|
||||
return this._room.addCard(aplayer.getId(), count, maxcount, 1, from? from.getId(): null);
|
||||
@ -849,7 +855,7 @@ export class BattleHandler {
|
||||
// });
|
||||
};
|
||||
|
||||
public onPlayerAddHPNotify(aplayer: PlayerHandler, addhp: number, from?: PlayerHandler){
|
||||
public onPlayerAddHPNotify(aplayer: PlayerHandler, addhp: number, from: PlayerHandler){
|
||||
return this._room.updateHp(aplayer.getId(), addhp, from? from.getId(): null);
|
||||
};
|
||||
//end------------------------------------------------
|
||||
|
@ -260,7 +260,7 @@ export class PetHandler {
|
||||
}
|
||||
}
|
||||
if(n >= 0){
|
||||
this.dataChanged();
|
||||
this.dataChanged(from);
|
||||
return -value;
|
||||
}
|
||||
|
||||
@ -284,15 +284,15 @@ export class PetHandler {
|
||||
if(this._isHero){
|
||||
let tmp = this._baseap;
|
||||
this._baseap = 0;
|
||||
this.dataChanged();
|
||||
this.dataChanged(from);
|
||||
this.addHP(tmp, from);
|
||||
}else{
|
||||
this.dataChanged();
|
||||
this.dataChanged(from);
|
||||
this.die();
|
||||
}
|
||||
}else{
|
||||
// this._ceilBaseAP();
|
||||
this.dataChanged();
|
||||
this.dataChanged(from);
|
||||
}
|
||||
|
||||
return res;
|
||||
@ -326,7 +326,7 @@ export class PetHandler {
|
||||
}else if(rv > 0){
|
||||
// 圣盾减伤后消失
|
||||
if(this.hasShield()){
|
||||
this.delShield();
|
||||
this.delShield(from);
|
||||
this._owner.onShieldUsed(this);
|
||||
rv = 0;
|
||||
}
|
||||
@ -356,15 +356,15 @@ export class PetHandler {
|
||||
return 0;
|
||||
};
|
||||
|
||||
public addHPS(value: number){
|
||||
public addHPS(value: number, from: PetHandler){
|
||||
this._hps += value;
|
||||
(value != 0) && this.dataChanged();
|
||||
(value != 0) && this.dataChanged(from);
|
||||
return value;
|
||||
};
|
||||
|
||||
public addReduceHurt(value: number){
|
||||
public addReduceHurt(value: number, from: PetHandler){
|
||||
this._exredhurt += value;
|
||||
(value != 0) && this.dataChanged();
|
||||
(value != 0) && this.dataChanged(from);
|
||||
return value;
|
||||
};
|
||||
|
||||
@ -421,7 +421,7 @@ export class PetHandler {
|
||||
return n;
|
||||
};
|
||||
|
||||
public reborn(){
|
||||
public reborn(from: PetHandler){
|
||||
if(this._hasreborned){
|
||||
// this.die();
|
||||
return false;
|
||||
@ -435,7 +435,7 @@ export class PetHandler {
|
||||
this._baseap = this._bakBaseap;
|
||||
this._bakBaseap = 0;
|
||||
|
||||
this.dataChanged();
|
||||
this.dataChanged(from);
|
||||
}
|
||||
|
||||
this._hasreborned = true;
|
||||
@ -504,10 +504,10 @@ export class PetHandler {
|
||||
return this._buffs.get(SkillEffectType.BUFF_SHIELD) > 0;
|
||||
};
|
||||
|
||||
public delShield(): boolean{
|
||||
let n = this.delBuff(SkillEffectType.BUFF_SHIELD);
|
||||
public delShield(from: PetHandler): boolean{
|
||||
let n = this.delBuff(SkillEffectType.BUFF_SHIELD, -1, from);
|
||||
if(n >= 0){
|
||||
this.dataChanged();
|
||||
this.dataChanged(from);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -543,7 +543,7 @@ export class PetHandler {
|
||||
return bok;
|
||||
};
|
||||
|
||||
// remove掉apet的光环
|
||||
// remove加在自己身上的属于apet的光环
|
||||
public removeEffHalo(apet: PetHandler): boolean{
|
||||
let bok = false;
|
||||
|
||||
@ -557,7 +557,7 @@ export class PetHandler {
|
||||
return bok;
|
||||
};
|
||||
|
||||
public addBuff(buffid: number, buffcount: number = 1): number{
|
||||
public addBuff(buffid: number, buffcount: number, from: PetHandler): number{
|
||||
let n = this._buffs.get(buffid);
|
||||
// todo: 暂时不叠加
|
||||
if(n){
|
||||
@ -565,16 +565,19 @@ export class PetHandler {
|
||||
}
|
||||
let cnt = buffcount;
|
||||
this._buffs.set(buffid, cnt);
|
||||
this.dataChanged();
|
||||
this.dataChanged(from);
|
||||
return cnt;
|
||||
};
|
||||
|
||||
public delBuff(buffid: number, buffcount: number = 0): number{
|
||||
public delBuff(buffid: number, buffcount: number, from: PetHandler): number{
|
||||
let n = this._buffs.get(buffid);
|
||||
if(typeof(n) != 'number'){
|
||||
return -1;
|
||||
}
|
||||
if(buffcount == 0){
|
||||
return n;
|
||||
}
|
||||
if(buffcount < 0){
|
||||
n = 0;
|
||||
}else{
|
||||
n-=buffcount;
|
||||
@ -588,7 +591,7 @@ export class PetHandler {
|
||||
}else{
|
||||
this._buffs.set(buffid, n);
|
||||
}
|
||||
this.dataChanged();
|
||||
this.dataChanged(from);
|
||||
return n;
|
||||
};
|
||||
|
||||
@ -642,7 +645,7 @@ export class PetHandler {
|
||||
return obj;
|
||||
};
|
||||
|
||||
public dataChanged(){
|
||||
this._owner.onPetChanged(this);
|
||||
public dataChanged(from: PetHandler){
|
||||
this._owner.onPetChanged(this, from);
|
||||
}
|
||||
}
|
||||
|
@ -265,7 +265,7 @@ export class PlayerHandler {
|
||||
this.onHaloAdd(pet, true);
|
||||
}
|
||||
if(bchged){
|
||||
pet.dataChanged();
|
||||
pet.dataChanged(pet);
|
||||
}
|
||||
}
|
||||
return this.simpleCheckSkills(lst, pet, param);
|
||||
@ -322,8 +322,8 @@ export class PlayerHandler {
|
||||
return this._player.hp;
|
||||
};
|
||||
|
||||
public addHPS(value: number): number{
|
||||
return this._self? this._self.addHPS(value): 0;
|
||||
public addHPS(value: number, from: PetHandler): number{
|
||||
return this._self? this._self.addHPS(value, from): 0;
|
||||
};
|
||||
|
||||
public getHPS(): number{
|
||||
@ -348,8 +348,8 @@ export class PlayerHandler {
|
||||
}
|
||||
};
|
||||
|
||||
public addReduceHurt(value: number){
|
||||
return this._self? this._self.addReduceHurt(value): 0;
|
||||
public addReduceHurt(value: number, from: PetHandler){
|
||||
return this._self? this._self.addReduceHurt(value, from): 0;
|
||||
};
|
||||
|
||||
public totalAP(){
|
||||
@ -369,8 +369,8 @@ export class PlayerHandler {
|
||||
//todo:
|
||||
};
|
||||
|
||||
public reborn(): boolean{
|
||||
return this._self? this._self.reborn(): false;
|
||||
public reborn(from: PetHandler): boolean{
|
||||
return this._self? this._self.reborn(from): false;
|
||||
};
|
||||
|
||||
public attack(sk: Skill, apet: PetHandler, param: SkillParam, ev: number, isAtkBack: boolean = false){
|
||||
@ -428,8 +428,8 @@ export class PlayerHandler {
|
||||
return true;
|
||||
};
|
||||
|
||||
public onPetChanged(apet: PetHandler){
|
||||
this._owner.onUpdatePetNotify(apet);
|
||||
public onPetChanged(apet: PetHandler, from: PetHandler){
|
||||
this._owner.onUpdatePetNotify(apet, from);
|
||||
};
|
||||
|
||||
/**
|
||||
@ -474,7 +474,7 @@ export class PlayerHandler {
|
||||
}
|
||||
}
|
||||
|
||||
this._owner.onUpdatePetsNotify(lst);
|
||||
this._owner.onUpdatePetsNotify(lst, apet);
|
||||
};
|
||||
|
||||
public onHaloRemove(apet: PetHandler){
|
||||
@ -493,7 +493,7 @@ export class PlayerHandler {
|
||||
}
|
||||
}
|
||||
|
||||
this._owner.onUpdatePetsNotify(lst);
|
||||
this._owner.onUpdatePetsNotify(lst, apet);
|
||||
};
|
||||
|
||||
onAttackBefore(apet: PetHandler, sp?: SkillParam){
|
||||
@ -793,11 +793,11 @@ export class PlayerHandler {
|
||||
this._totalcc += v;
|
||||
};
|
||||
|
||||
addBuff(buffid: number, buffcount: number = 1): number{
|
||||
return this._self? this._self.addBuff(buffid, buffcount): 0;
|
||||
addBuff(buffid: number, buffcount: number, from: PetHandler): number{
|
||||
return this._self? this._self.addBuff(buffid, buffcount, from): 0;
|
||||
};
|
||||
|
||||
delBuff(buffid: number, buffcount: number = 0): number{
|
||||
return this._self? this._self.delBuff(buffid, buffcount): -1;
|
||||
delBuff(buffid: number, buffcount: number, from: PetHandler): number{
|
||||
return this._self? this._self.delBuff(buffid, buffcount, from): -1;
|
||||
}
|
||||
}
|
||||
|
@ -517,7 +517,7 @@ export class Skill {
|
||||
let efftype = SkillEffectType.HP_STEAL_ENHANCE;
|
||||
if(tgt.dsttype != GameUnitType.NONE){
|
||||
let effv = effvalue/100;
|
||||
let n = tgt.dst.addHPS(effv);
|
||||
let n = tgt.dst.addHPS(effv, tgt.srcPet());
|
||||
tgt.success(efftype, n);
|
||||
}else{
|
||||
tgt.fail(efftype, -1);
|
||||
@ -603,7 +603,7 @@ export class Skill {
|
||||
switch(efftype){
|
||||
case SkillEffectType.BUFF_SHIELD:
|
||||
if(tgt.dsttype != GameUnitType.NONE){
|
||||
let n = tgt.dst.addBuff(efftype);
|
||||
let n = tgt.dst.addBuff(efftype, 1, tgt.srcPet());
|
||||
if(n){
|
||||
tgt.success(efftype, n);
|
||||
}else{
|
||||
@ -621,7 +621,7 @@ export class Skill {
|
||||
reduceHurt(effvalue: number, tgt: SkillTarget){
|
||||
let efftype = SkillEffectType.HURT_REDUCE;
|
||||
if(tgt.dsttype != GameUnitType.NONE){
|
||||
let n = tgt.dst.addReduceHurt(effvalue);
|
||||
let n = tgt.dst.addReduceHurt(effvalue, tgt.srcPet());
|
||||
tgt.success(efftype, n);
|
||||
}else{
|
||||
tgt.fail(efftype, -1);
|
||||
@ -658,7 +658,7 @@ export class Skill {
|
||||
reborn(tgt: SkillTarget){
|
||||
let efftype = SkillEffectType.REBORN;
|
||||
if(tgt.dsttype != GameUnitType.NONE){
|
||||
let res = tgt.dst.reborn();
|
||||
let res = tgt.dst.reborn(tgt.srcPet());
|
||||
if(res){
|
||||
tgt.success(efftype, 1);
|
||||
}else{
|
||||
@ -692,7 +692,7 @@ export class Skill {
|
||||
let dst = tgt.dsttype == GameUnitType.PLAYER? (tgt.dst as PlayerHandler)._self: (tgt.dst as PetHandler);
|
||||
let n = obj.attack(this, dst, param, v, isAtkBack);
|
||||
if(n <= 0){
|
||||
tgt.success(efftype, n);
|
||||
tgt.success(SkillEffectType.HURT_POWER, n);
|
||||
// if(this._data.quoteskillid){
|
||||
// let dp = this._data.skill_users? param.oppClone(): param;
|
||||
// let pet = tgt.srcpet;
|
||||
@ -714,6 +714,7 @@ export class Skill {
|
||||
tgt.success(SkillEffectType.HURT_POWER, sv, true);
|
||||
}
|
||||
}
|
||||
tgt.success(efftype, hv);
|
||||
}else{
|
||||
tgt.fail(efftype, n);
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ import {PetHandler} from "../Handler/PetHandler";
|
||||
import { Skill } from "./Skill";
|
||||
import { GameUnitType, SkillEffectType, SkillUserType } from "./SkillConst";
|
||||
import { SKillEffectData, SkillInfoData, SkillInfoMsg } from "../../../message/SkillInfo";
|
||||
import { PetInfo } from "message/PetInfo";
|
||||
|
||||
export class SkillParam{
|
||||
cardid: number;
|
||||
@ -272,3 +273,14 @@ export class SkillTarget{
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
export class PetUpdateProcess{
|
||||
info: PetInfo;
|
||||
from: PetHandler;
|
||||
|
||||
constructor(pet: PetHandler, from: PetHandler){
|
||||
this.from = from;
|
||||
this.info = pet.exportInfo();
|
||||
};
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user