RoleData.ts 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import { RoleConf } from "../ui/tower/conf/RoleConf";
  2. //服务器端返回的英雄数据
  3. interface RoleServer {
  4. id: string; //英雄id 动物形象id
  5. grade: number; //星级
  6. dna_lv: string; //基因等级
  7. dna_attr: { any } //基因属性
  8. equip: [];//读取状态
  9. skin: [];//皮肤
  10. fight_force: number;//战力
  11. conf: {}//配置
  12. }
  13. //出战英雄数据[种族1 typeID,种族2 typeID,种族3 typeID,种族4 typeID]
  14. export type FightRole = [number, number, number, number]
  15. class Data {
  16. private _roles: { [id: string]: RoleServer } = {};
  17. //上阵英雄
  18. private _fightRole: FightRole = [0, 0, 0, 0];
  19. //羁绊
  20. private _fate: { [id: string]: number } = {};
  21. setData(data: { [id: string]: RoleServer }): void {
  22. let rConf = RoleConf.data;
  23. if (data) {
  24. for (const id in data) {
  25. if (data.hasOwnProperty(id)) {
  26. if (rConf[id]) {
  27. const role = data[id];
  28. role.conf = rConf[id];
  29. this._roles[id] = role;
  30. // console.log(`ID: ${id}, Name: ${role.name}, Level: ${role.level}`);
  31. }
  32. }
  33. }
  34. }
  35. }
  36. getData() {
  37. return this._roles;
  38. }
  39. getRoleDataByID(id: string | number): RoleServer {
  40. if (typeof id === 'number') {
  41. id = id.toString();
  42. }
  43. return this._roles[id];
  44. }
  45. setRoleDataByID(id: string | number, data: RoleServer) {
  46. if (typeof id === 'number') {
  47. id = id.toString();
  48. }
  49. if (this._roles[id]) {
  50. this._roles[id] = data;
  51. }
  52. }
  53. //设置出战角色 data {"1":"xxx","2":"xxx","3":"xxx","4":"xxx"}
  54. set fightRole(data: { [key: string]: string } | FightRole) {
  55. if (!data) return;
  56. this._fightRole = [0, 0, 0, 0];
  57. if (Array.isArray(data)) {
  58. this._fightRole = data as FightRole;
  59. } else {
  60. for (let i = 0; i < this._fightRole.length; i++) {
  61. this._fightRole[i] = Number(data[(i + 1).toString()] || "0");
  62. }
  63. }
  64. }
  65. //获取出战角色
  66. get fightRole() :FightRole{
  67. // return [101,201,301,401];
  68. return this._fightRole;
  69. }
  70. set fate(data: { [key: string]: {} }) {
  71. }
  72. get fate() {
  73. return this._fate;
  74. }
  75. }
  76. export let RoleData = new Data;