123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- import AccountModel from "../../data/Account/AccountModel";
- import EventManager from "../../framework/event/EventManager";
- import Utils from "../../framework/utils/utils";
- import { ATTACK_MODE, EVENT_TYPE } from "./gameEnum";
- import gameEventManager from "./gameEventManager";
- /**游戏数据类 */
- class GameData {
- /**单例 */
- private static _instance: GameData = null;
- isSetZomBie: boolean = true; //是否可以重生僵尸
- bAddBoss: boolean;
- /**获取游戏数据类单例 */
- static get instance(): GameData {
- if (this._instance == null) {
- this._instance = new GameData();
- }
- return this._instance;
- }
- /**当前攻击模式 */
- cur_attack_mode = ATTACK_MODE.close;
- _curBulletNum: number = 0;
- _curPowerNum: number = 0;
- _curDay: number = 1;
- _curKillZomNum: number = 0;
- get curDay(): number {
- return this._curDay;
- }
- set curDay(num: number) {
- this._curDay = num;
- AccountModel.getInstance().curDay = num;
- zjSdk?.sendEvent('Entering Day' + num + '');//进入第X天
- EventManager.emit(EVENT_TYPE.UPDATE_DAY_NUM);
- }
- get curBulletNum(): number {
- return this._curBulletNum;
- }
- set curBulletNum(num: number) {
- let isSub = num < this._curBulletNum;
- this._curBulletNum = num;
- AccountModel.getInstance().curBullet = num;
- EventManager.emit(EVENT_TYPE.UPDATE_BULLET_NUM,isSub);
- }
- get curPowerNum(): number {
- return this._curPowerNum;
- }
- set curPowerNum(num: number) {
- this._curPowerNum = num;
- AccountModel.getInstance().curPower = num;
- EventManager.emit(EVENT_TYPE.UPDATE_TILI_NUM);
- }
- get curKillZomNum(): number {
- return this._curKillZomNum;
- }
- set curKillZomNum(num: number) {
- const isSend = num > this._curKillZomNum;
- this._curKillZomNum = num;
- AccountModel.getInstance().curKillZomNum = num;
- if (isSend){
- gameEventManager.emit(EVENT_TYPE.zombieDieForCrazy);
- }
- }
- curPeopleNum: number = 1;
- peopleDieNum: number = 0;
- curDiePeopleNum: number = 0;
- curKillBossNum: number = 0;
- playerDtList: Object[] = [];
- isDayTime: boolean = true;
- curInDungeonType: number;
- public init() {
- this.curDay = AccountModel.getInstance().curDay; //当前天数
- this.curPowerNum = AccountModel.getInstance().curPower; //当前体力
- this._curBulletNum = AccountModel.getInstance().curBullet;//当前子弹数
- this.curPeopleNum = 0;//当前玩家数
- this.peopleDieNum = 0;//玩家死亡数
- this.curDiePeopleNum = 0; //当前死亡玩家数
- this._curKillZomNum = AccountModel.getInstance().curKillZomNum; //当前已杀死的僵尸数
- this.curKillBossNum = 0; //当前杀死的boss数
- this.bAddBoss = false;
- //-----------------------------以下切换副本界面需要用到的数据------------------------------------------------------//
- this.playerDtList = [];
- //this.isDayTime = true; //是否是白天
- this.curInDungeonType = null; //当前进入的房间类型
- }
- }
- export default GameData.instance;
- /**场景数据类 */
- export class SceneData {
- /**玩家数据组 */
- player_datas: PlayerData[] = [];
- /**道具数据组 */
- prop_datas: PropData[] = [];
- /**僵尸数据组 */
- zombie_datas: ZombieData[] = [];
- }
- /**玩家数据类 */
- export class PlayerData {
- /**角色id */
- id = 0;
- /**当前血量 */
- cur_hp = 0;
- /**近战武器id */
- close_weapon_id = 0;
- /**远程武器id */
- remote_weapon_id = 0;
- /**位置 */
- pos: cc.Vec2 = null;
- /**设置数据
- * @param id 角色id
- * @param cur_hp 当前血量
- * @param close_weapon_id 近战武器id
- * @param remote_weapon_id 远程武器id
- * @param pos 位置
- */
- setData(id: number, cur_hp: number, close_weapon_id: number, remote_weapon_id: number, pos: cc.Vec2) {
- this.id = id;
- this.cur_hp = cur_hp;
- this.close_weapon_id = close_weapon_id;
- this.remote_weapon_id = remote_weapon_id;
- this.pos = pos;
- }
- }
- /**道具数据类 */
- export class PropData {
- /**道具id */
- id = 0;
- /**位置 */
- pos: cc.Vec2 = null;
- }
- /**僵尸数据类 */
- export class ZombieData {
- /**id */
- id = 0;
- /**当前血量 */
- cur_hp = 0;
- /**位置 */
- pos: cc.Vec2 = null;
- }
|