RoleData.ts 2.6 KB

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