add skill handler(not finish)
This commit is contained in:
parent
1e49ef6def
commit
2c72c2e0de
@ -6,6 +6,7 @@ import {SkillCfg} from "../cfg/parsers/SkillCfg";
|
|||||||
import {SystemCardCfg} from "../cfg/parsers/SystemCardCfg";
|
import {SystemCardCfg} from "../cfg/parsers/SystemCardCfg";
|
||||||
import {UnitCfg} from "../cfg/parsers/UnitCfg";
|
import {UnitCfg} from "../cfg/parsers/UnitCfg";
|
||||||
import {BaseConst} from "../constants/BaseConst";
|
import {BaseConst} from "../constants/BaseConst";
|
||||||
|
import SkillMan from "../rooms/logic/skill/SkillMan";
|
||||||
|
|
||||||
export function initData() {
|
export function initData() {
|
||||||
const rP = DataParser.regCommonParser.bind(DataParser);
|
const rP = DataParser.regCommonParser.bind(DataParser);
|
||||||
@ -16,5 +17,8 @@ export function initData() {
|
|||||||
rP(BaseConst.SYSTEMCARD, SystemCardCfg);
|
rP(BaseConst.SYSTEMCARD, SystemCardCfg);
|
||||||
rP(BaseConst.UNIT, UnitCfg);
|
rP(BaseConst.UNIT, UnitCfg);
|
||||||
DataParser.loadAll();
|
DataParser.loadAll();
|
||||||
|
|
||||||
|
let map = global.$cfg.get(BaseConst.SKILL);
|
||||||
|
SkillMan.loadData(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,15 +34,11 @@ export class BattleHandler {
|
|||||||
};
|
};
|
||||||
|
|
||||||
public useCard(obj:
|
public useCard(obj:
|
||||||
{srcplayer: Player, card: Card, dbeff_cnt: number, dbpt_cnt: number, dstplayer: Player, dstpet: Pet})
|
{srcplayer: Player, card: Card, cardpoint: number, eff_cnt: number, dstplayer: Player, dstpet: Pet})
|
||||||
{
|
{
|
||||||
if(!obj || obj.card){
|
if(!obj || obj.card){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
let cfg = CfgMan.findEffCardCfg(obj.card.id);
|
|
||||||
if(!cfg){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
let ph = this.getPlayer(obj.srcplayer);
|
let ph = this.getPlayer(obj.srcplayer);
|
||||||
|
|
||||||
@ -50,10 +46,6 @@ export class BattleHandler {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cfg.typeId == EffectCardType.NPC){
|
ph.useCard(obj);
|
||||||
|
|
||||||
}else if(cfg.typeId == EffectCardType.MAGIC){
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
}
|
}
|
@ -1,4 +1,5 @@
|
|||||||
import { Pet } from "../../schema/Pet";
|
import { Pet } from "../../schema/Pet";
|
||||||
|
import CfgMan from "../CfgMan";
|
||||||
|
|
||||||
import {Skill} from "../skill/Skill";
|
import {Skill} from "../skill/Skill";
|
||||||
import { PlayerHandler } from "./PlayerHandler";
|
import { PlayerHandler } from "./PlayerHandler";
|
||||||
@ -6,6 +7,12 @@ import { PlayerHandler } from "./PlayerHandler";
|
|||||||
export class PetHandler {
|
export class PetHandler {
|
||||||
private _pet: Pet;
|
private _pet: Pet;
|
||||||
private _owner: PlayerHandler;
|
private _owner: PlayerHandler;
|
||||||
|
_id: number;
|
||||||
|
_cfg: any;
|
||||||
|
_exskills: number[];
|
||||||
|
|
||||||
|
_ap: number;
|
||||||
|
|
||||||
public init(apet: Pet, owner: PlayerHandler){
|
public init(apet: Pet, owner: PlayerHandler){
|
||||||
this._pet = apet;
|
this._pet = apet;
|
||||||
this._owner = owner;
|
this._owner = owner;
|
||||||
@ -16,4 +23,18 @@ export class PetHandler {
|
|||||||
public addAttr(attrstr: string, value: number, sender: Skill){
|
public addAttr(attrstr: string, value: number, sender: Skill){
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public setParam(id: number, ap: number, effcnt: number, exskillid: number[]){
|
||||||
|
this._id = id;
|
||||||
|
this._cfg = CfgMan.findUnitCfg(id);
|
||||||
|
|
||||||
|
this._exskills.length = 0;
|
||||||
|
exskillid.forEach((skillid: number)=>{
|
||||||
|
if(skillid > 0){
|
||||||
|
this._exskills.push(skillid);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
@ -5,6 +5,7 @@ import { BattleHandler } from "./BattleHandler";
|
|||||||
import CfgMan from "../CfgMan";
|
import CfgMan from "../CfgMan";
|
||||||
import { Card } from "rooms/schema/Card";
|
import { Card } from "rooms/schema/Card";
|
||||||
import { Pet } from "rooms/schema/Pet";
|
import { Pet } from "rooms/schema/Pet";
|
||||||
|
import { EffectCardType } from "../skill/SkillConst";
|
||||||
|
|
||||||
export class PlayerHandler {
|
export class PlayerHandler {
|
||||||
public _player: Player;
|
public _player: Player;
|
||||||
@ -50,9 +51,23 @@ export class PlayerHandler {
|
|||||||
};
|
};
|
||||||
|
|
||||||
public useCard(obj:
|
public useCard(obj:
|
||||||
{card: Card, dbeff_cnt: number, dbpt_cnt: number, dstplayer: Player, dstpet: Pet})
|
{card: Card, cardpoint: number, eff_cnt: number, dstplayer: Player, dstpet: Pet})
|
||||||
{
|
{
|
||||||
|
let cfg = CfgMan.findEffCardCfg(obj.card.id);
|
||||||
|
if(!cfg){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(cfg.typeId == EffectCardType.NPC){
|
||||||
|
let pet = this.newPet();
|
||||||
|
if(!pet){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
pet.setParam(cfg.eff1Id, obj.cardpoint, obj.eff_cnt, [cfg.eff2Id, cfg.eff3Id, cfg.eff4Id, cfg.eff5Id]);
|
||||||
|
|
||||||
|
}else if(cfg.typeId == EffectCardType.MAGIC){
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -8,32 +8,25 @@
|
|||||||
// - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
|
// - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
|
||||||
|
|
||||||
import { Skill } from "./Skill";
|
import { Skill } from "./Skill";
|
||||||
|
import {SkillCfg} from "../../../cfg/parsers/SkillCfg";
|
||||||
|
|
||||||
let SkillManager = {
|
let SkillMan = {
|
||||||
_skillmap: {},
|
_skillmap: new Map(),
|
||||||
_tilemap: {},
|
|
||||||
|
|
||||||
onSkillTrigger(skill, param, bok) {
|
_skillcb: function(p1:any, p2:any, p3:any, p4:any){},
|
||||||
|
|
||||||
|
onSkillTrigger(skill:Skill, param: any, bok: boolean) {
|
||||||
this._skillcb && this._skillcb(skill, param, bok, skill._owner);
|
this._skillcb && this._skillcb(skill, param, bok, skill._owner);
|
||||||
},
|
},
|
||||||
|
|
||||||
getSkillMaxLevel(id) {
|
addSkill(id: number, data: SkillCfg) {
|
||||||
let obj = this._skillmap[id];
|
|
||||||
if (obj) {
|
|
||||||
return obj._data.max_lv;
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
addSkill(id, data) {
|
|
||||||
let obj = new Skill();
|
let obj = new Skill();
|
||||||
obj.init(id, data, this);
|
obj.init(id, data, this);
|
||||||
this._skillmap[id] = obj;
|
this._skillmap.set(id, obj);
|
||||||
},
|
},
|
||||||
|
|
||||||
getSkill(id) {
|
getSkill(id: number) {
|
||||||
let obj = this._skillmap[id];
|
let obj = this._skillmap.get(id);
|
||||||
if (obj) {
|
if (obj) {
|
||||||
return obj.clone();
|
return obj.clone();
|
||||||
// return comutils.cloneFull(obj);
|
// return comutils.cloneFull(obj);
|
||||||
@ -41,9 +34,17 @@ let SkillManager = {
|
|||||||
return null;
|
return null;
|
||||||
},
|
},
|
||||||
|
|
||||||
setSkillCallback(cb) {
|
setSkillCallback(cb: any) {
|
||||||
this._skillcb = cb;
|
this._skillcb = cb;
|
||||||
|
},
|
||||||
|
|
||||||
|
loadData(skills: Map<number, SkillCfg>){
|
||||||
|
skills.forEach((value, key)=>{
|
||||||
|
if(key > 0){
|
||||||
|
this.addSkill(key, value);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export default SkillManager;
|
export default SkillMan;
|
Loading…
x
Reference in New Issue
Block a user