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