数据模型 - sgtcloud/sgtcloud-ossgame-project-zero GitHub Wiki

英雄Hero,技能Skill,装备Equip三个类有以下共同方法接口

  • 是否最高等级isMaxLevel
  • 获取当前等级getLv
  • 获取指定等级信息getLevelData
  • 获取IDgetId
  • 获取下一级升级资源getNextLevelUpgrade
  • 是否解锁isLocked

Hero

  • 英雄实体类,包含英雄的所有属性,每个英雄一个对象,
  • 对象初始化时需要给定id和初始等级
  • 新注册玩家除第一个英雄是初始化一级,其余英雄都是0级未解锁状态,如定制初始等级可在Player.js中的heroes中配置
  • 老玩家从存档中加载英雄数据
  • 英雄初始化的时候绑定监听事件EVENT.HERO_DIE死亡和EVENT.HERO_REVIVE复活,用以判断上次退出游戏时的英雄状态。
  • 如果上次退出时英雄是死亡状态,且距上次退出的时间小于复活时间,那么进入游戏后英雄依然是死亡状态并进行实时的复活倒计时
  • 英雄在初始化时调用isLocked()方法判断当前是否是锁定状态
  • 升级方法upgrade
  • refreshProps刷新和计算所有属性值
  • getLife是获取英雄最大的HP值,getCurrentLife获取英雄当前剩余HP值
  • getLevelData获取指定级别需要的资源,默认当前级别
  • 使用dataSource.heros[this._id]获取当前英雄的所有数据

Skill

  • 技能实体类,封装技能的属性,包含主动和被动技能
  • 对象初始化时需要给定id和初始等级,初始化在Hero#init方法中
  • 初始等级从存档中加载,若存档中没有则默认为0级
  • 技能类型type,1为主动技能,其他为被动技能
  • traverseSkillEffects遍历当前技能的所有技能效果

Equip

  • 装备实体类,结构基本同Skill
  • 初始化过程同Skill,初始化在Hero#init方法中
  • 装备的初始等级是1级
  • 装备分为普通装备和神器,type为1的时候是普通装备,大于1为神器
  • 神器增加全部英雄的属性,普通装备只增加当前英雄属性

Enemy

  • 敌人实体类,包括小怪和boss
  • getBonus获取Enemy死亡后掉落资源

ArenaHero

  • 竞技场中英雄实体,继承自Hero,重写构造方法、calcPropisDead
  • ArenaHero使用新的PlayerData对象,不能使用全局PlayerData对象

PlayerData

  • 角色数据操作模型类

ArenaPlayerData

  • 继承自PlayerData,重写initPlayerDatainit方法

Stage

  • 关卡实体类

Player

  • 存档模版模型,一个全局json对象
  • 包含以下属性:
    • id 角色ID
    • name角色昵称
    • vip vip等级
    • stage战役ID
    • stage_battle_num 关卡数
    • into_stage_battle_timestamp开始战斗时间
    • not_get_reward 为获取离线奖励
    • first_time首次进入游戏时间
    • recovery_orders未验证的订单ID
    • completed_order_total充值统计
    • first_recharge_status首次充值状态
    • month_card_start_time月卡开始时间
    • month_card_end_time月卡结束时间
    • resource 资源
      • gold 金币
      • gem钻石
      • relic宝物
      • wood木材
      • leatherstage
      • bronze
      • iron
      • crystal水晶
      • rune符文
      • essence魔晶
      • iron_chest铁宝箱
      • iron_key铁钥匙
      • silver_chest银宝箱
      • silver_key银钥匙
      • golden_chest金宝箱
      • golden_key金钥匙
      • small_blood小HP药
      • middle_blood中HP药
      • large_blood大HP药
    • time 保存各种冷却开始时间戳
      • die 死亡冷却时间,json类型,格式为{heroId:死亡时间}
      • cd技能cd时间,json类型,格式为{skillId:技能释放时间}
    • statistics数据统计
      • total_fairy打开小精灵总数量
      • total_gem累计获得钻石总数
      • total_relic累计获得宝物总数
      • total_gold累计获得金币总数
      • total_tap总点伤
      • total_damage总秒伤
      • total_enemy_kill累计击杀普通怪物数量
      • total_boss_kill累计击杀Boss数量
      • total_chest_open累计打开宝箱总量
      • total_max_level已通关最高关卡
      • total_offline_time累计离线时间
      • total_play_time累计游戏时间
    • arena竞技场配置
      • times 每天初始的竞技场挑战次数
    • heros英雄信息,格式为json数组,每个json包含以下属性
      • id 英雄id
      • lv英雄等级
      • life英雄当前血量
      • star星级
      • skills技能信息,格式为json,{"技能ID":{"leve":5}}
      • equips装备信息,格式为json,{"装备ID":{"level":5}}