BattleData.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. import { Framework } from "../../framework/Framework";
  2. //位置数据拼接系数
  3. export let BattleLayoutScale = 10000
  4. export enum BattleLayoutPos {//战斗布局,f1-f15为出战区,b1-b15为后备区 value: 10000*raceID + level
  5. 'b1',
  6. 'b2',
  7. 'b3',
  8. 'b4',
  9. 'b5',
  10. 'b6',
  11. 'b7',
  12. 'b8',
  13. 'b9',
  14. 'b10',
  15. 'b11',
  16. 'b12',
  17. 'b13',
  18. 'b14',
  19. 'b15',
  20. 'f1',
  21. 'f2',
  22. 'f3',
  23. 'f4',
  24. 'f5',
  25. 'f6',
  26. 'f7',
  27. 'f8',
  28. 'f9',
  29. 'f10',
  30. 'f11',
  31. 'f12',
  32. 'f13',
  33. 'f14',
  34. 'f15',
  35. }
  36. export enum BattleOptsType{
  37. //生成
  38. New = 1,
  39. //合成
  40. Merge = 2,
  41. //移动
  42. Move = 3,
  43. //销毁
  44. Remove = 4,
  45. //击杀敌人
  46. Kill = 11,
  47. }
  48. export interface BattleOptsBase{
  49. type:BattleOptsType;
  50. }
  51. export interface BattleOptsNew extends BattleOptsBase{
  52. type:BattleOptsType.New;
  53. //位置 BattleLayoutPos
  54. pos:string;
  55. //种族
  56. raceID:number;
  57. //等级
  58. level:number;
  59. }
  60. export interface BattleOptsMerge extends BattleOptsBase{
  61. type:BattleOptsType.Merge;
  62. //目标位置
  63. targetPos:string;
  64. //源位置
  65. srcPos:string;
  66. }
  67. export interface BattleOptsMove extends BattleOptsBase{
  68. type:BattleOptsType.Move;
  69. //目标位置
  70. targetPos:string;
  71. //源位置
  72. srcPos:string;
  73. }
  74. export interface BattleOptsRemove extends BattleOptsBase{
  75. type:BattleOptsType.Remove;
  76. //位置
  77. pos:string;
  78. }
  79. export interface BattleOptsKill extends BattleOptsBase{
  80. type:BattleOptsType.Kill;
  81. //敌人id
  82. typeID:number;
  83. //击杀数量
  84. count:number;
  85. }
  86. export interface Duplicate{
  87. chapter:number, // 当前解锁的最大章节编号(重置进新章节前更新)
  88. max_process: number, // 主线进度(最大挑战成功的关卡id)
  89. process: number, // 当前挂机进度(关卡id)
  90. start_time: number, // 挂机时间 ?
  91. }
  92. export interface BattleLayoutData{
  93. typeID: number;
  94. raceID: number;
  95. level: number;
  96. }
  97. class Data {
  98. // 当前关卡数据
  99. private _duplicate:Duplicate = null;
  100. //
  101. private _layout = []
  102. //登录初始化数据
  103. setLoginData(data){
  104. if(data.duplicate){
  105. this._duplicate = data.duplicate
  106. }
  107. if(data.layout){
  108. this._layout = []
  109. Object.values(BattleLayoutPos).forEach(value => {
  110. const element = data.layout[value]
  111. if(element != undefined){
  112. this._layout.push(element)
  113. }
  114. });
  115. }
  116. }
  117. get duplicate(){
  118. return this._duplicate
  119. }
  120. set duplicate(value){
  121. this._duplicate = value
  122. }
  123. set layout(value){
  124. this._layout = value
  125. }
  126. get layout(){
  127. return this._layout
  128. }
  129. }
  130. export let BattleData = new Data;