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 {UnitCfg} from "../cfg/parsers/UnitCfg";
|
||||
import {BaseConst} from "../constants/BaseConst";
|
||||
import SkillMan from "../rooms/logic/skill/SkillMan";
|
||||
|
||||
export function initData() {
|
||||
const rP = DataParser.regCommonParser.bind(DataParser);
|
||||
@ -16,5 +17,8 @@ export function initData() {
|
||||
rP(BaseConst.SYSTEMCARD, SystemCardCfg);
|
||||
rP(BaseConst.UNIT, UnitCfg);
|
||||
DataParser.loadAll();
|
||||
|
||||
let map = global.$cfg.get(BaseConst.SKILL);
|
||||
SkillMan.loadData(map);
|
||||
}
|
||||
|
||||
|
@ -34,15 +34,11 @@ export class BattleHandler {
|
||||
};
|
||||
|
||||
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){
|
||||
return false;
|
||||
}
|
||||
let cfg = CfgMan.findEffCardCfg(obj.card.id);
|
||||
if(!cfg){
|
||||
return false;
|
||||
}
|
||||
|
||||
let ph = this.getPlayer(obj.srcplayer);
|
||||
|
||||
@ -50,10 +46,6 @@ export class BattleHandler {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(cfg.typeId == EffectCardType.NPC){
|
||||
|
||||
}else if(cfg.typeId == EffectCardType.MAGIC){
|
||||
|
||||
}
|
||||
ph.useCard(obj);
|
||||
};
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
import { Pet } from "../../schema/Pet";
|
||||
import CfgMan from "../CfgMan";
|
||||
|
||||
import {Skill} from "../skill/Skill";
|
||||
import { PlayerHandler } from "./PlayerHandler";
|
||||
@ -6,6 +7,12 @@ import { PlayerHandler } from "./PlayerHandler";
|
||||
export class PetHandler {
|
||||
private _pet: Pet;
|
||||
private _owner: PlayerHandler;
|
||||
_id: number;
|
||||
_cfg: any;
|
||||
_exskills: number[];
|
||||
|
||||
_ap: number;
|
||||
|
||||
public init(apet: Pet, owner: PlayerHandler){
|
||||
this._pet = apet;
|
||||
this._owner = owner;
|
||||
@ -16,4 +23,18 @@ export class PetHandler {
|
||||
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 { Card } from "rooms/schema/Card";
|
||||
import { Pet } from "rooms/schema/Pet";
|
||||
import { EffectCardType } from "../skill/SkillConst";
|
||||
|
||||
export class PlayerHandler {
|
||||
public _player: Player;
|
||||
@ -50,9 +51,23 @@ export class PlayerHandler {
|
||||
};
|
||||
|
||||
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
|
||||
|
||||
import { Skill } from "./Skill";
|
||||
import {SkillCfg} from "../../../cfg/parsers/SkillCfg";
|
||||
|
||||
let SkillManager = {
|
||||
_skillmap: {},
|
||||
_tilemap: {},
|
||||
let SkillMan = {
|
||||
_skillmap: new Map(),
|
||||
|
||||
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);
|
||||
},
|
||||
|
||||
getSkillMaxLevel(id) {
|
||||
let obj = this._skillmap[id];
|
||||
if (obj) {
|
||||
return obj._data.max_lv;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
|
||||
addSkill(id, data) {
|
||||
addSkill(id: number, data: SkillCfg) {
|
||||
let obj = new Skill();
|
||||
obj.init(id, data, this);
|
||||
this._skillmap[id] = obj;
|
||||
this._skillmap.set(id, obj);
|
||||
},
|
||||
|
||||
getSkill(id) {
|
||||
let obj = this._skillmap[id];
|
||||
getSkill(id: number) {
|
||||
let obj = this._skillmap.get(id);
|
||||
if (obj) {
|
||||
return obj.clone();
|
||||
// return comutils.cloneFull(obj);
|
||||
@ -41,9 +34,17 @@ let SkillManager = {
|
||||
return null;
|
||||
},
|
||||
|
||||
setSkillCallback(cb) {
|
||||
setSkillCallback(cb: any) {
|
||||
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