CatColorRules.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import { ColorDate } from "./ColorDate";
  2. import { PinAction } from "./PinAction";
  3. import { Global } from "./Global";
  4. export class CatColorRules {
  5. public static cat_color_arr: ColorDate[];
  6. public static set_cat_color(color_arr: ColorDate[]) {
  7. CatColorRules.cat_color_arr = color_arr;
  8. }
  9. public static r_0():PinAction[]{
  10. let pin_arr:PinAction[] = [];
  11. Global.bucket_action.get_pin_arr(pin_arr);
  12. Global.layer_empty_action.get_pin_arr(pin_arr);
  13. let layer_pin_colors_arr = Global.layer_root_action.lvl_action.get_pin_color();
  14. layer_pin_colors_arr.forEach(element => {
  15. pin_arr.push(element);
  16. });
  17. return pin_arr;
  18. }
  19. public static r_1():PinAction[]{
  20. let pin_arr:PinAction[] = [];
  21. Global.bucket_action.get_pin_arr(pin_arr);
  22. Global.layer_empty_action.get_pin_arr(pin_arr);
  23. return pin_arr;
  24. }
  25. public static r_2():PinAction[]{
  26. let pin_arr:PinAction[] = [];
  27. Global.layer_empty_action.get_pin_arr(pin_arr);
  28. return pin_arr;
  29. }
  30. public static r_3():PinAction[]{
  31. let pin_arr:PinAction[] = [];
  32. Global.bucket_action.get_pin_arr(pin_arr);
  33. return pin_arr;
  34. }
  35. public static r_4():PinAction[]{
  36. let pin_arr:PinAction[] = [];
  37. return pin_arr;
  38. }
  39. public static get_next_cat_color(pin_arr:PinAction[]): ColorDate {
  40. let cat_color_arr = Global.layer_cat_action.get_cat_color_arr();
  41. let ret: ColorDate = null;
  42. for (let i = 0; i < pin_arr.length; i++) {
  43. let pin = pin_arr[i];
  44. if (!pin) {
  45. continue;
  46. }
  47. if (!pin.pin_color) {
  48. continue;
  49. }
  50. let color_same = false;
  51. for (let j = 0; j < cat_color_arr.length; j++) {
  52. if (cat_color_arr[j].id == pin.pin_color.id) {
  53. color_same = true;
  54. break;
  55. }
  56. }
  57. if (color_same) {
  58. continue;
  59. }
  60. // cat 颜色 和 现又的钉子不相同,去数组里面找到这个颜色取出来
  61. ret = CatColorRules.get_the_color(pin.pin_color);
  62. if (ret) {
  63. console.log("获取》〉》〉》〉得到应新色:", ret.id);
  64. break;
  65. }
  66. }
  67. if (!ret) {
  68. ret = CatColorRules.get_shift_color();
  69. }
  70. return ret;
  71. }
  72. //取出来特定颜色
  73. public static get_the_color(the_color: ColorDate): ColorDate {
  74. let temp = [];
  75. let ret: ColorDate = null;
  76. for (let i = 0; i < CatColorRules.cat_color_arr.length; i++) {
  77. let c = CatColorRules.cat_color_arr[i];
  78. if (ret == null) {
  79. if (c.id == the_color.id) {
  80. ret = c;
  81. } else {
  82. temp.push(c);
  83. }
  84. } else {
  85. temp.push(c);
  86. }
  87. }
  88. if (ret != null) {
  89. CatColorRules.set_cat_color(temp);
  90. }
  91. return ret;
  92. }
  93. //弹出来一个
  94. private static get_shift_color(): ColorDate {
  95. return CatColorRules.cat_color_arr.shift();
  96. }
  97. }