import { Player } from "../../schema/Player"; import { PetHandler } from "./PetHandler"; import { HeroCfg } from "../../../cfg/parsers/HeroCfg"; 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"; import { UnitCfg } from "cfg/parsers/UnitCfg"; import { Skill } from "../skill/Skill"; export class PlayerHandler { public _player: Player; public _playercfg: HeroCfg; public _self: PetHandler; public _unitcfg: UnitCfg; public _pets: PetHandler[]; public _skills: Skill[]; public _exskills: Skill[]; private _owner: BattleHandler; public init(aplayer: Player, owner: BattleHandler){ this._owner = owner; this._player = aplayer; this._playercfg = CfgMan.findPlayerCfg(this._player.heroId); this._self = new PetHandler(); this._self.init(null, this); let lst = this._playercfg.exSkill? [this._playercfg.exSkill]: null; this._self.setParam({id: this._playercfg.unitId, exskillid: lst}); this._unitcfg = this._playercfg && CfgMan.findUnitCfg(this._playercfg.unitId); }; public getCurrCardCount(){ return 0; }; public getTotalCardCount(){ return 0; }; public newPet(): PetHandler { let res = null; let pr = null; for(let key in this._player.pets){ let obj = this._player.pets.get(key); if(obj.ap == 0){ res = obj; break; } } if(res){ pr = new PetHandler; pr.init(res, this); this._pets.push(pr); } return pr; }; public useCard(obj: {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({id: cfg.eff1Id, ap:obj.cardpoint, effcnt: obj.eff_cnt, exskillid: [cfg.eff2Id, cfg.eff3Id, cfg.eff4Id, cfg.eff5Id]}); }else if(cfg.typeId == EffectCardType.MAGIC){ } }; public useSkill(obj:{ skillid: number, dstplayer: Player, dstpet: Pet}) { }; public addSkill(skillid: number){ } }