mingyu-core 0.1.8 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/README.md +16 -1
  2. package/dist/bazi/baziAnalysis.d.ts.map +1 -1
  3. package/dist/bazi/baziAnalysis.js +0 -2
  4. package/dist/bazi/baziAnalysis.js.map +1 -1
  5. package/dist/bazi/baziAnalysisFormatter.d.ts.map +1 -1
  6. package/dist/bazi/baziAnalysisFormatter.js +10 -1
  7. package/dist/bazi/baziAnalysisFormatter.js.map +1 -1
  8. package/dist/bazi/baziAnalysisPipeline.d.ts +1 -1
  9. package/dist/bazi/baziAnalysisPipeline.d.ts.map +1 -1
  10. package/dist/bazi/baziAnalysisPipeline.js +1 -1
  11. package/dist/bazi/baziAnalysisPipeline.js.map +1 -1
  12. package/dist/bazi/baziCalculator.d.ts.map +1 -1
  13. package/dist/bazi/baziCalculator.js +61 -3
  14. package/dist/bazi/baziCalculator.js.map +1 -1
  15. package/dist/bazi/baziConditionMatchers/branchMatchers.d.ts +1 -0
  16. package/dist/bazi/baziConditionMatchers/branchMatchers.d.ts.map +1 -1
  17. package/dist/bazi/baziConditionMatchers/branchMatchers.js +13 -1
  18. package/dist/bazi/baziConditionMatchers/branchMatchers.js.map +1 -1
  19. package/dist/bazi/baziConditionMatchers/index.d.ts.map +1 -1
  20. package/dist/bazi/baziConditionMatchers/index.js +4 -2
  21. package/dist/bazi/baziConditionMatchers/index.js.map +1 -1
  22. package/dist/bazi/baziConditionMatchers/stemMatchers.d.ts +1 -0
  23. package/dist/bazi/baziConditionMatchers/stemMatchers.d.ts.map +1 -1
  24. package/dist/bazi/baziConditionMatchers/stemMatchers.js +7 -3
  25. package/dist/bazi/baziConditionMatchers/stemMatchers.js.map +1 -1
  26. package/dist/bazi/baziEnhancement/classicPatterns.d.ts.map +1 -1
  27. package/dist/bazi/baziEnhancement/classicPatterns.js +31 -11
  28. package/dist/bazi/baziEnhancement/classicPatterns.js.map +1 -1
  29. package/dist/bazi/baziPromptEnhancement.d.ts.map +1 -1
  30. package/dist/bazi/baziPromptEnhancement.js +49 -0
  31. package/dist/bazi/baziPromptEnhancement.js.map +1 -1
  32. package/dist/bazi/baziShenSha/helpers/dayRules.d.ts +0 -3
  33. package/dist/bazi/baziShenSha/helpers/dayRules.d.ts.map +1 -1
  34. package/dist/bazi/baziShenSha/helpers/dayRules.js +101 -56
  35. package/dist/bazi/baziShenSha/helpers/dayRules.js.map +1 -1
  36. package/dist/bazi/baziShenSha/helpers/disasterRules.d.ts +0 -3
  37. package/dist/bazi/baziShenSha/helpers/disasterRules.d.ts.map +1 -1
  38. package/dist/bazi/baziShenSha/helpers/disasterRules.js +745 -23
  39. package/dist/bazi/baziShenSha/helpers/disasterRules.js.map +1 -1
  40. package/dist/bazi/baziShenSha/helpers/globalRules.d.ts +0 -6
  41. package/dist/bazi/baziShenSha/helpers/globalRules.d.ts.map +1 -1
  42. package/dist/bazi/baziShenSha/helpers/globalRules.js +48 -16
  43. package/dist/bazi/baziShenSha/helpers/globalRules.js.map +1 -1
  44. package/dist/bazi/baziShenSha/helpers/luRules.d.ts +0 -3
  45. package/dist/bazi/baziShenSha/helpers/luRules.d.ts.map +1 -1
  46. package/dist/bazi/baziShenSha/helpers/luRules.js +266 -37
  47. package/dist/bazi/baziShenSha/helpers/luRules.js.map +1 -1
  48. package/dist/bazi/baziShenSha/helpers/marriageRules.d.ts +0 -3
  49. package/dist/bazi/baziShenSha/helpers/marriageRules.d.ts.map +1 -1
  50. package/dist/bazi/baziShenSha/helpers/marriageRules.js +5 -7
  51. package/dist/bazi/baziShenSha/helpers/marriageRules.js.map +1 -1
  52. package/dist/bazi/baziShenSha/helpers/nobleRules.d.ts +0 -3
  53. package/dist/bazi/baziShenSha/helpers/nobleRules.d.ts.map +1 -1
  54. package/dist/bazi/baziShenSha/helpers/nobleRules.js +208 -41
  55. package/dist/bazi/baziShenSha/helpers/nobleRules.js.map +1 -1
  56. package/dist/bazi/baziShenSha/helpers/tenGodAnalysis.d.ts +0 -4
  57. package/dist/bazi/baziShenSha/helpers/tenGodAnalysis.d.ts.map +1 -1
  58. package/dist/bazi/baziShenSha/helpers/tenGodAnalysis.js +0 -8
  59. package/dist/bazi/baziShenSha/helpers/tenGodAnalysis.js.map +1 -1
  60. package/dist/bazi/baziShenSha/index.d.ts +0 -20
  61. package/dist/bazi/baziShenSha/index.d.ts.map +1 -1
  62. package/dist/bazi/baziShenSha/index.js +0 -20
  63. package/dist/bazi/baziShenSha/index.js.map +1 -1
  64. package/dist/bazi/baziShenSha/variants.d.ts +0 -3
  65. package/dist/bazi/baziShenSha/variants.d.ts.map +1 -1
  66. package/dist/bazi/baziShenSha/variants.js.map +1 -1
  67. package/dist/bazi/baziShenShaData.d.ts +0 -20
  68. package/dist/bazi/baziShenShaData.d.ts.map +1 -1
  69. package/dist/bazi/baziShenShaData.js +286 -34
  70. package/dist/bazi/baziShenShaData.js.map +1 -1
  71. package/dist/bazi/baziStrengthAnalyzer.d.ts +5 -1
  72. package/dist/bazi/baziStrengthAnalyzer.d.ts.map +1 -1
  73. package/dist/bazi/baziStrengthAnalyzer.js +45 -15
  74. package/dist/bazi/baziStrengthAnalyzer.js.map +1 -1
  75. package/dist/bazi/baziTypes.d.ts +17 -0
  76. package/dist/bazi/baziTypes.d.ts.map +1 -1
  77. package/dist/bazi/baziTypes.js.map +1 -1
  78. package/dist/bazi/chinaDst.d.ts +36 -0
  79. package/dist/bazi/chinaDst.d.ts.map +1 -0
  80. package/dist/bazi/chinaDst.js +86 -0
  81. package/dist/bazi/chinaDst.js.map +1 -0
  82. package/dist/bazi/index.d.ts +4 -0
  83. package/dist/bazi/index.d.ts.map +1 -1
  84. package/dist/bazi/index.js +2 -1
  85. package/dist/bazi/index.js.map +1 -1
  86. package/dist/bazi/lifeStageAnalysis.d.ts.map +1 -1
  87. package/dist/bazi/lifeStageAnalysis.js +0 -3
  88. package/dist/bazi/lifeStageAnalysis.js.map +1 -1
  89. package/dist/bazi/monthCommand.d.ts.map +1 -1
  90. package/dist/bazi/monthCommand.js +77 -23
  91. package/dist/bazi/monthCommand.js.map +1 -1
  92. package/dist/bazi/nayinAnalysis.d.ts.map +1 -1
  93. package/dist/bazi/nayinAnalysis.js +0 -1
  94. package/dist/bazi/nayinAnalysis.js.map +1 -1
  95. package/dist/bazi/paipanWarnings.d.ts +25 -0
  96. package/dist/bazi/paipanWarnings.d.ts.map +1 -0
  97. package/dist/bazi/paipanWarnings.js +123 -0
  98. package/dist/bazi/paipanWarnings.js.map +1 -0
  99. package/dist/bazi/relationStructure.d.ts.map +1 -1
  100. package/dist/bazi/relationStructure.js +0 -4
  101. package/dist/bazi/relationStructure.js.map +1 -1
  102. package/dist/bazi/stemRootAnalysis.d.ts.map +1 -1
  103. package/dist/bazi/stemRootAnalysis.js +26 -16
  104. package/dist/bazi/stemRootAnalysis.js.map +1 -1
  105. package/dist/bazi/usefulGodPlacement.d.ts.map +1 -1
  106. package/dist/bazi/usefulGodPlacement.js +0 -2
  107. package/dist/bazi/usefulGodPlacement.js.map +1 -1
  108. package/dist/divination/algorithms/_shared/index.d.ts +1 -1
  109. package/dist/divination/algorithms/_shared/index.d.ts.map +1 -1
  110. package/dist/divination/algorithms/_shared/index.js +1 -1
  111. package/dist/divination/algorithms/_shared/index.js.map +1 -1
  112. package/dist/divination/algorithms/_shared/wuxing.d.ts +9 -8
  113. package/dist/divination/algorithms/_shared/wuxing.d.ts.map +1 -1
  114. package/dist/divination/algorithms/_shared/wuxing.js +40 -18
  115. package/dist/divination/algorithms/_shared/wuxing.js.map +1 -1
  116. package/dist/divination/algorithms/almanac.d.ts +2 -2
  117. package/dist/divination/algorithms/almanac.d.ts.map +1 -1
  118. package/dist/divination/algorithms/almanac.js +197 -32
  119. package/dist/divination/algorithms/almanac.js.map +1 -1
  120. package/dist/divination/algorithms/lenormand.d.ts +2 -2
  121. package/dist/divination/algorithms/lenormand.d.ts.map +1 -1
  122. package/dist/divination/algorithms/lenormand.js +6 -6
  123. package/dist/divination/algorithms/lenormand.js.map +1 -1
  124. package/dist/divination/algorithms/liuren/helpers/lessons.d.ts.map +1 -1
  125. package/dist/divination/algorithms/liuren/helpers/lessons.js +11 -7
  126. package/dist/divination/algorithms/liuren/helpers/lessons.js.map +1 -1
  127. package/dist/divination/algorithms/liuren/helpers/transmission.d.ts +6 -0
  128. package/dist/divination/algorithms/liuren/helpers/transmission.d.ts.map +1 -1
  129. package/dist/divination/algorithms/liuren/helpers/transmission.js +38 -0
  130. package/dist/divination/algorithms/liuren/helpers/transmission.js.map +1 -1
  131. package/dist/divination/algorithms/liuren/index.d.ts.map +1 -1
  132. package/dist/divination/algorithms/liuren/index.js +17 -14
  133. package/dist/divination/algorithms/liuren/index.js.map +1 -1
  134. package/dist/divination/algorithms/liuyao.d.ts +57 -0
  135. package/dist/divination/algorithms/liuyao.d.ts.map +1 -1
  136. package/dist/divination/algorithms/liuyao.js +221 -50
  137. package/dist/divination/algorithms/liuyao.js.map +1 -1
  138. package/dist/divination/algorithms/meihua/helpers/methods.d.ts +8 -18
  139. package/dist/divination/algorithms/meihua/helpers/methods.d.ts.map +1 -1
  140. package/dist/divination/algorithms/meihua/helpers/methods.js +52 -66
  141. package/dist/divination/algorithms/meihua/helpers/methods.js.map +1 -1
  142. package/dist/divination/algorithms/meihua/index.d.ts +2 -2
  143. package/dist/divination/algorithms/meihua/index.d.ts.map +1 -1
  144. package/dist/divination/algorithms/meihua/index.js +25 -31
  145. package/dist/divination/algorithms/meihua/index.js.map +1 -1
  146. package/dist/divination/algorithms/qimen/helpers/_constants.d.ts +2 -4
  147. package/dist/divination/algorithms/qimen/helpers/_constants.d.ts.map +1 -1
  148. package/dist/divination/algorithms/qimen/helpers/_constants.js +3 -5
  149. package/dist/divination/algorithms/qimen/helpers/_constants.js.map +1 -1
  150. package/dist/divination/algorithms/qimen/helpers/classic-patterns.d.ts +15 -7
  151. package/dist/divination/algorithms/qimen/helpers/classic-patterns.d.ts.map +1 -1
  152. package/dist/divination/algorithms/qimen/helpers/classic-patterns.js +814 -127
  153. package/dist/divination/algorithms/qimen/helpers/classic-patterns.js.map +1 -1
  154. package/dist/divination/algorithms/qimen/helpers/directions.d.ts +4 -3
  155. package/dist/divination/algorithms/qimen/helpers/directions.d.ts.map +1 -1
  156. package/dist/divination/algorithms/qimen/helpers/directions.js +16 -9
  157. package/dist/divination/algorithms/qimen/helpers/directions.js.map +1 -1
  158. package/dist/divination/algorithms/qimen/helpers/jushu-extended.d.ts +7 -6
  159. package/dist/divination/algorithms/qimen/helpers/jushu-extended.d.ts.map +1 -1
  160. package/dist/divination/algorithms/qimen/helpers/jushu-extended.js +55 -24
  161. package/dist/divination/algorithms/qimen/helpers/jushu-extended.js.map +1 -1
  162. package/dist/divination/algorithms/qimen/helpers/jushu.d.ts +20 -13
  163. package/dist/divination/algorithms/qimen/helpers/jushu.d.ts.map +1 -1
  164. package/dist/divination/algorithms/qimen/helpers/jushu.js +96 -61
  165. package/dist/divination/algorithms/qimen/helpers/jushu.js.map +1 -1
  166. package/dist/divination/algorithms/qimen/helpers/layout.d.ts +1 -1
  167. package/dist/divination/algorithms/qimen/helpers/layout.d.ts.map +1 -1
  168. package/dist/divination/algorithms/qimen/helpers/layout.js +18 -24
  169. package/dist/divination/algorithms/qimen/helpers/layout.js.map +1 -1
  170. package/dist/divination/algorithms/qimen/helpers/pattern-combos.d.ts +12 -0
  171. package/dist/divination/algorithms/qimen/helpers/pattern-combos.d.ts.map +1 -1
  172. package/dist/divination/algorithms/qimen/helpers/pattern-combos.js +1558 -9
  173. package/dist/divination/algorithms/qimen/helpers/pattern-combos.js.map +1 -1
  174. package/dist/divination/algorithms/qimen/helpers/patterns.d.ts +6 -5
  175. package/dist/divination/algorithms/qimen/helpers/patterns.d.ts.map +1 -1
  176. package/dist/divination/algorithms/qimen/helpers/patterns.js +74 -22
  177. package/dist/divination/algorithms/qimen/helpers/patterns.js.map +1 -1
  178. package/dist/divination/algorithms/qimen/helpers/seasonality.d.ts +0 -16
  179. package/dist/divination/algorithms/qimen/helpers/seasonality.d.ts.map +1 -1
  180. package/dist/divination/algorithms/qimen/helpers/seasonality.js +0 -85
  181. package/dist/divination/algorithms/qimen/helpers/seasonality.js.map +1 -1
  182. package/dist/divination/algorithms/qimen/helpers/stem-pair-patterns.d.ts +8 -1
  183. package/dist/divination/algorithms/qimen/helpers/stem-pair-patterns.d.ts.map +1 -1
  184. package/dist/divination/algorithms/qimen/helpers/stem-pair-patterns.js +731 -67
  185. package/dist/divination/algorithms/qimen/helpers/stem-pair-patterns.js.map +1 -1
  186. package/dist/divination/algorithms/qimen/helpers/ying-qi.d.ts +10 -6
  187. package/dist/divination/algorithms/qimen/helpers/ying-qi.d.ts.map +1 -1
  188. package/dist/divination/algorithms/qimen/helpers/ying-qi.js +58 -25
  189. package/dist/divination/algorithms/qimen/helpers/ying-qi.js.map +1 -1
  190. package/dist/divination/algorithms/qimen/index.d.ts.map +1 -1
  191. package/dist/divination/algorithms/qimen/index.js +89 -18
  192. package/dist/divination/algorithms/qimen/index.js.map +1 -1
  193. package/dist/divination/algorithms/xiaoliuren.d.ts +1 -1
  194. package/dist/divination/algorithms/xiaoliuren.js +12 -12
  195. package/dist/divination/algorithms/xiaoliuren.js.map +1 -1
  196. package/dist/divination/config.d.ts +41 -0
  197. package/dist/divination/config.d.ts.map +1 -0
  198. package/dist/divination/config.js +111 -0
  199. package/dist/divination/config.js.map +1 -0
  200. package/dist/divination/divination-data.d.ts.map +1 -1
  201. package/dist/divination/divination-data.js +2 -4
  202. package/dist/divination/divination-data.js.map +1 -1
  203. package/dist/divination/engine/liuren-template.d.ts +4 -0
  204. package/dist/divination/engine/liuren-template.d.ts.map +1 -0
  205. package/dist/divination/engine/liuren-template.js +39 -0
  206. package/dist/divination/engine/liuren-template.js.map +1 -0
  207. package/dist/divination/engine/liuyao-template.d.ts +3 -0
  208. package/dist/divination/engine/liuyao-template.d.ts.map +1 -0
  209. package/dist/divination/engine/liuyao-template.js +46 -0
  210. package/dist/divination/engine/liuyao-template.js.map +1 -0
  211. package/dist/divination/engine/method-text.d.ts +6 -0
  212. package/dist/divination/engine/method-text.d.ts.map +1 -0
  213. package/dist/divination/engine/method-text.js +105 -0
  214. package/dist/divination/engine/method-text.js.map +1 -0
  215. package/dist/divination/share-text.d.ts +2 -0
  216. package/dist/divination/share-text.d.ts.map +1 -0
  217. package/dist/divination/share-text.js +8 -0
  218. package/dist/divination/share-text.js.map +1 -0
  219. package/dist/types/divination.d.ts +44 -0
  220. package/dist/types/divination.d.ts.map +1 -1
  221. package/dist/ziwei/iztro/build-analysis-payload/index.d.ts.map +1 -1
  222. package/dist/ziwei/iztro/build-analysis-payload/index.js +7 -1
  223. package/dist/ziwei/iztro/build-analysis-payload/index.js.map +1 -1
  224. package/dist/ziwei/iztro/pattern-detection.d.ts +4 -2
  225. package/dist/ziwei/iztro/pattern-detection.d.ts.map +1 -1
  226. package/dist/ziwei/iztro/pattern-detection.js +1300 -184
  227. package/dist/ziwei/iztro/pattern-detection.js.map +1 -1
  228. package/package.json +1 -1
@@ -1,19 +1,646 @@
1
1
  import { calculateKongWangBranches } from '../../kongWang.js';
2
- /**
3
- * 灾厄神煞规则
4
- */
2
+ const AN_JIN_SHA_BY_YEAR_BRANCH = {
3
+ 子: { branch: '巳', name: '吟呻煞' },
4
+ 午: { branch: '巳', name: '吟呻煞' },
5
+ 卯: { branch: '巳', name: '吟呻煞' },
6
+ 酉: { branch: '巳', name: '吟呻煞' },
7
+ 寅: { branch: '酉', name: '破碎煞' },
8
+ 申: { branch: '酉', name: '破碎煞' },
9
+ 巳: { branch: '酉', name: '破碎煞' },
10
+ 亥: { branch: '酉', name: '破碎煞' },
11
+ 辰: { branch: '丑', name: '白衣煞' },
12
+ 戌: { branch: '丑', name: '白衣煞' },
13
+ 丑: { branch: '丑', name: '白衣煞' },
14
+ 未: { branch: '丑', name: '白衣煞' },
15
+ };
16
+ const SAN_QIU_WU_MU_BY_MONTH_BRANCH = {
17
+ 寅: { sanQiu: '丑', wuMu: '未' },
18
+ 卯: { sanQiu: '丑', wuMu: '未' },
19
+ 辰: { sanQiu: '丑', wuMu: '未' },
20
+ 巳: { sanQiu: '辰', wuMu: '戌' },
21
+ 午: { sanQiu: '辰', wuMu: '戌' },
22
+ 未: { sanQiu: '辰', wuMu: '戌' },
23
+ 申: { sanQiu: '未', wuMu: '丑' },
24
+ 酉: { sanQiu: '未', wuMu: '丑' },
25
+ 戌: { sanQiu: '未', wuMu: '丑' },
26
+ 亥: { sanQiu: '戌', wuMu: '辰' },
27
+ 子: { sanQiu: '戌', wuMu: '辰' },
28
+ 丑: { sanQiu: '戌', wuMu: '辰' },
29
+ };
30
+ const YUE_SHA_BY_MONTH_BRANCH = {
31
+ 寅: '丑',
32
+ 午: '丑',
33
+ 戌: '丑',
34
+ 亥: '戌',
35
+ 卯: '戌',
36
+ 未: '戌',
37
+ 申: '未',
38
+ 子: '未',
39
+ 辰: '未',
40
+ 巳: '辰',
41
+ 酉: '辰',
42
+ 丑: '辰',
43
+ };
44
+ const YUE_YAN_BY_MONTH_BRANCH = {
45
+ 寅: '戌',
46
+ 卯: '酉',
47
+ 辰: '申',
48
+ 巳: '未',
49
+ 午: '午',
50
+ 未: '巳',
51
+ 申: '辰',
52
+ 酉: '卯',
53
+ 戌: '寅',
54
+ 亥: '丑',
55
+ 子: '子',
56
+ 丑: '亥',
57
+ };
58
+ const TOU_DAI_SHA_BY_YEAR_BRANCH = {
59
+ 寅: '辰',
60
+ 午: '辰',
61
+ 戌: '辰',
62
+ 巳: '未',
63
+ 酉: '未',
64
+ 丑: '未',
65
+ 申: '戌',
66
+ 子: '戌',
67
+ 辰: '戌',
68
+ 亥: '丑',
69
+ 卯: '丑',
70
+ 未: '丑',
71
+ };
72
+ const PO_JUN_BY_YEAR_BRANCH = {
73
+ 申: '亥',
74
+ 子: '亥',
75
+ 辰: '亥',
76
+ 亥: '寅',
77
+ 卯: '寅',
78
+ 未: '寅',
79
+ 寅: '巳',
80
+ 午: '巳',
81
+ 戌: '巳',
82
+ 巳: '申',
83
+ 酉: '申',
84
+ 丑: '申',
85
+ };
86
+ const YEAR_BRANCH_GROUP_BY_BRANCH = {
87
+ 寅: '寅午戌',
88
+ 午: '寅午戌',
89
+ 戌: '寅午戌',
90
+ 巳: '巳酉丑',
91
+ 酉: '巳酉丑',
92
+ 丑: '巳酉丑',
93
+ 申: '申子辰',
94
+ 子: '申子辰',
95
+ 辰: '申子辰',
96
+ 亥: '亥卯未',
97
+ 卯: '亥卯未',
98
+ 未: '亥卯未',
99
+ };
100
+ const JIE_TOU_SHA_BY_YEAR_GROUP = {
101
+ 寅午戌: {
102
+ 甲: '己亥',
103
+ 丙: '辛亥',
104
+ 戊: '癸亥',
105
+ 庚: '乙亥',
106
+ 壬: '丁亥',
107
+ },
108
+ 巳酉丑: {
109
+ 乙: '戊寅',
110
+ 丁: '庚寅',
111
+ 己: '壬寅',
112
+ 辛: '甲寅',
113
+ 癸: '丙寅',
114
+ },
115
+ 申子辰: {
116
+ 甲: '己巳',
117
+ 丙: '辛巳',
118
+ 戊: '癸巳',
119
+ 庚: '乙巳',
120
+ 壬: '丁巳',
121
+ },
122
+ 亥卯未: {
123
+ 乙: '戊申',
124
+ 丁: '庚申',
125
+ 己: '壬申',
126
+ 辛: '甲申',
127
+ 癸: '丙申',
128
+ },
129
+ };
130
+ const JIE_TOU_GUI_BY_YEAR_GROUP = {
131
+ 寅午戌: {
132
+ 甲: '辛亥',
133
+ 丙: '癸亥',
134
+ 戊: '乙亥',
135
+ 庚: '丁亥',
136
+ 壬: '己亥',
137
+ },
138
+ 巳酉丑: {
139
+ 乙: '庚寅',
140
+ 丁: '壬寅',
141
+ 己: '甲寅',
142
+ 辛: '丙寅',
143
+ 癸: '戊寅',
144
+ },
145
+ 申子辰: {
146
+ 甲: '辛巳',
147
+ 丙: '癸巳',
148
+ 戊: '乙巳',
149
+ 庚: '丁巳',
150
+ 壬: '己巳',
151
+ },
152
+ 亥卯未: {
153
+ 乙: '庚申',
154
+ 丁: '壬申',
155
+ 己: '甲申',
156
+ 辛: '丙申',
157
+ 癸: '戊申',
158
+ },
159
+ };
160
+ const SAN_GONG_SHA_BY_YEAR_BRANCH = {
161
+ 寅: '壬子',
162
+ 午: '壬子',
163
+ 戌: '壬子',
164
+ 巳: '丙午',
165
+ 酉: '丙午',
166
+ 丑: '丙午',
167
+ 申: '乙卯',
168
+ 子: '乙卯',
169
+ 辰: '乙卯',
170
+ 亥: '辛酉',
171
+ 卯: '辛酉',
172
+ 未: '辛酉',
173
+ };
174
+ const GUAN_HUI_SHA_BY_YEAR_STEM = {
175
+ 甲: '辛丑',
176
+ 乙: '辛丑',
177
+ 丙: '壬辰',
178
+ 丁: '壬辰',
179
+ 戊: '乙未',
180
+ 己: '乙未',
181
+ 庚: '丙戌',
182
+ 辛: '丙戌',
183
+ 壬: '戊辰',
184
+ 癸: '戊辰',
185
+ };
186
+ const CAI_HUI_SHA_BY_YEAR_BRANCH = {
187
+ 寅: '辛丑',
188
+ 午: '辛丑',
189
+ 戌: '辛丑',
190
+ 巳: '乙未',
191
+ 酉: '乙未',
192
+ 丑: '乙未',
193
+ 申: '丙戌',
194
+ 子: '丙戌',
195
+ 辰: '丙戌',
196
+ 亥: '戊辰',
197
+ 卯: '戊辰',
198
+ 未: '戊辰',
199
+ };
200
+ const ZHEN_GUI_XING_JI_STEMS_BY_YEAR_STEM = {
201
+ 甲: ['丁', '壬'],
202
+ 己: ['丁', '壬'],
203
+ 乙: ['戊', '癸'],
204
+ 庚: ['戊', '癸'],
205
+ 丙: ['甲', '己'],
206
+ 辛: ['甲', '己'],
207
+ 丁: ['乙', '庚'],
208
+ 壬: ['乙', '庚'],
209
+ 戊: ['丙', '辛'],
210
+ 癸: ['丙', '辛'],
211
+ };
212
+ const WU_GUI_KONG_WANG_BRANCHES_BY_YEAR_STEM = {
213
+ 甲: ['巳', '午'],
214
+ 己: ['巳', '午'],
215
+ 乙: ['寅', '卯'],
216
+ 庚: ['寅', '卯'],
217
+ 丙: ['子', '丑'],
218
+ 辛: ['子', '丑'],
219
+ 丁: ['戌', '亥'],
220
+ 壬: ['戌', '亥'],
221
+ 戊: ['申', '酉'],
222
+ 癸: ['申', '酉'],
223
+ };
224
+ const PO_ZU_KONG_WANG_BRANCH_BY_YEAR_STEM = {
225
+ 甲: '午',
226
+ 乙: '午',
227
+ 丙: '申',
228
+ 丁: '申',
229
+ 戊: '戌',
230
+ 己: '戌',
231
+ 庚: '子',
232
+ 辛: '子',
233
+ 壬: '寅',
234
+ 癸: '寅',
235
+ };
236
+ const QING_LONG_SHA_BY_YEAR_BRANCH = {
237
+ 寅: '丙寅',
238
+ 午: '丙寅',
239
+ 戌: '丙寅',
240
+ 巳: '辛巳',
241
+ 酉: '辛巳',
242
+ 丑: '辛巳',
243
+ 申: '壬申',
244
+ 子: '壬申',
245
+ 辰: '壬申',
246
+ 亥: '乙亥',
247
+ 卯: '乙亥',
248
+ 未: '乙亥',
249
+ };
250
+ const LIANG_HUI_SHA_BY_YEAR_BRANCH = {
251
+ 寅: '丁卯',
252
+ 午: '丁卯',
253
+ 戌: '丁卯',
254
+ 巳: '庚辰',
255
+ 酉: '庚辰',
256
+ 丑: '庚辰',
257
+ 申: '癸酉',
258
+ 子: '癸酉',
259
+ 辰: '癸酉',
260
+ 亥: '甲子',
261
+ 卯: '甲子',
262
+ 未: '甲子',
263
+ };
264
+ const FU_SHENG_DAY_BY_MONTH_BRANCH = {
265
+ 寅: '酉',
266
+ 卯: '卯',
267
+ 辰: '戌',
268
+ 巳: '辰',
269
+ 午: '亥',
270
+ 未: '巳',
271
+ 申: '子',
272
+ 酉: '午',
273
+ 戌: '丑',
274
+ 亥: '未',
275
+ 子: '寅',
276
+ 丑: '申',
277
+ };
278
+ const TIAN_XI_SHEN_BRANCH_BY_MONTH_BRANCH = {
279
+ 寅: '戌',
280
+ 卯: '戌',
281
+ 辰: '戌',
282
+ 巳: '丑',
283
+ 午: '丑',
284
+ 未: '丑',
285
+ 申: '辰',
286
+ 酉: '辰',
287
+ 戌: '辰',
288
+ 亥: '未',
289
+ 子: '未',
290
+ 丑: '未',
291
+ };
292
+ const TIAN_GU_SHA_BRANCH_BY_MONTH_BRANCH = {
293
+ 寅: '申',
294
+ 卯: '未',
295
+ 辰: '午',
296
+ 巳: '巳',
297
+ 午: '辰',
298
+ 未: '卯',
299
+ 申: '寅',
300
+ 酉: '丑',
301
+ 戌: '子',
302
+ 亥: '亥',
303
+ 子: '戌',
304
+ 丑: '酉',
305
+ };
306
+ const JING_DE_STEM_BY_MONTH_BRANCH = {
307
+ 寅: '丙',
308
+ 午: '丙',
309
+ 戌: '丙',
310
+ 巳: '庚',
311
+ 酉: '庚',
312
+ 丑: '庚',
313
+ 申: '壬',
314
+ 子: '壬',
315
+ 辰: '壬',
316
+ 亥: '甲',
317
+ 卯: '甲',
318
+ 未: '甲',
319
+ };
320
+ const JING_DE_HOUR_STEM_BY_YEAR_BRANCH = {
321
+ 寅: '辛',
322
+ 午: '辛',
323
+ 戌: '辛',
324
+ 巳: '乙',
325
+ 酉: '乙',
326
+ 丑: '乙',
327
+ 申: '丁',
328
+ 子: '丁',
329
+ 辰: '丁',
330
+ 亥: '己',
331
+ 卯: '己',
332
+ 未: '己',
333
+ };
334
+ const JING_YUE_HOUR_BRANCH_BY_YEAR_BRANCH = {
335
+ 寅: '寅',
336
+ 午: '寅',
337
+ 戌: '寅',
338
+ 巳: '巳',
339
+ 酉: '巳',
340
+ 丑: '巳',
341
+ 申: '申',
342
+ 子: '申',
343
+ 辰: '申',
344
+ 亥: '亥',
345
+ 卯: '亥',
346
+ 未: '亥',
347
+ };
348
+ const JING_YUE_PILLAR_BY_YEAR_MEETING_BRANCH = {
349
+ 寅: '癸酉',
350
+ 卯: '癸酉',
351
+ 辰: '癸酉',
352
+ 巳: '癸卯',
353
+ 午: '癸卯',
354
+ 未: '癸卯',
355
+ 申: '戊子',
356
+ 酉: '戊子',
357
+ 戌: '戊子',
358
+ 亥: '戊午',
359
+ 子: '戊午',
360
+ 丑: '戊午',
361
+ };
362
+ const ZHEN_WANG_SHA_BY_YEAR_BRANCH = {
363
+ 寅: ['癸巳', '癸亥'],
364
+ 午: ['癸巳', '癸亥'],
365
+ 戌: ['癸巳', '癸亥'],
366
+ 巳: ['丙申', '丙寅'],
367
+ 酉: ['丙申', '丙寅'],
368
+ 丑: ['丙申', '丙寅'],
369
+ 申: ['丁亥', '丁巳'],
370
+ 子: ['丁亥', '丁巳'],
371
+ 辰: ['丁亥', '丁巳'],
372
+ 亥: ['壬寅', '壬申'],
373
+ 卯: ['壬寅', '壬申'],
374
+ 未: ['壬寅', '壬申'],
375
+ };
376
+ const TIAN_SHA_BY_BRANCH = {
377
+ 申: '未',
378
+ 子: '未',
379
+ 辰: '未',
380
+ 亥: '辰',
381
+ 卯: '辰',
382
+ 未: '辰',
383
+ 寅: '丑',
384
+ 午: '丑',
385
+ 戌: '丑',
386
+ 巳: '戌',
387
+ 酉: '戌',
388
+ 丑: '戌',
389
+ };
390
+ const DI_SHA_BY_BRANCH = {
391
+ 申: '戌',
392
+ 子: '戌',
393
+ 辰: '戌',
394
+ 亥: '未',
395
+ 卯: '未',
396
+ 未: '未',
397
+ 寅: '辰',
398
+ 午: '辰',
399
+ 戌: '辰',
400
+ 巳: '丑',
401
+ 酉: '丑',
402
+ 丑: '丑',
403
+ };
404
+ const MU_SHA_BY_YEAR_BRANCH = {
405
+ 申: '辰',
406
+ 子: '辰',
407
+ 辰: '辰',
408
+ 亥: '未',
409
+ 卯: '未',
410
+ 未: '未',
411
+ 寅: '戌',
412
+ 午: '戌',
413
+ 戌: '戌',
414
+ 巳: '丑',
415
+ 酉: '丑',
416
+ 丑: '丑',
417
+ };
418
+ const HAI_QI_SHA_BY_YEAR_BRANCH = {
419
+ 申: '亥',
420
+ 子: '亥',
421
+ 辰: '亥',
422
+ 亥: '寅',
423
+ 卯: '寅',
424
+ 未: '寅',
425
+ 寅: '巳',
426
+ 午: '巳',
427
+ 戌: '巳',
428
+ 巳: '申',
429
+ 酉: '申',
430
+ 丑: '申',
431
+ };
432
+ const WU_CHENG_SHA_BY_YEAR_BRANCH = {
433
+ 寅: '巳',
434
+ 午: '巳',
435
+ 戌: '巳',
436
+ 巳: '未',
437
+ 酉: '未',
438
+ 丑: '未',
439
+ 申: '卯',
440
+ 子: '卯',
441
+ 辰: '卯',
442
+ 亥: '子',
443
+ 卯: '子',
444
+ 未: '子',
445
+ };
446
+ const BAO_BAI_SHA_BY_YEAR_BRANCH = {
447
+ 子: '未',
448
+ 丑: '午',
449
+ 寅: '巳',
450
+ 卯: '辰',
451
+ 辰: '卯',
452
+ 巳: '寅',
453
+ 午: '丑',
454
+ 未: '子',
455
+ 申: '亥',
456
+ 酉: '戌',
457
+ 戌: '酉',
458
+ 亥: '申',
459
+ };
460
+ const LI_XIANG_SHA_BY_YEAR_BRANCH = {
461
+ 寅: '午',
462
+ 午: '午',
463
+ 戌: '午',
464
+ 巳: '酉',
465
+ 酉: '酉',
466
+ 丑: '酉',
467
+ 申: '子',
468
+ 子: '子',
469
+ 辰: '子',
470
+ 亥: '卯',
471
+ 卯: '卯',
472
+ 未: '卯',
473
+ };
474
+ const PO_WAI_SHA_BY_YEAR_BRANCH = {
475
+ 寅: '酉',
476
+ 卯: '酉',
477
+ 辰: '酉',
478
+ 巳: '子',
479
+ 午: '子',
480
+ 未: '子',
481
+ 申: '卯',
482
+ 酉: '卯',
483
+ 戌: '卯',
484
+ 亥: '午',
485
+ 子: '午',
486
+ 丑: '午',
487
+ };
488
+ const XUE_GUANG_SHA_BY_YEAR_BRANCH = {
489
+ 子: ['戌'],
490
+ 戌: ['子', '申'],
491
+ 丑: ['卯'],
492
+ 卯: ['丑'],
493
+ 辰: ['午'],
494
+ 午: ['辰'],
495
+ 巳: ['未'],
496
+ 未: ['巳'],
497
+ 申: ['戌'],
498
+ 酉: ['亥'],
499
+ 亥: ['酉'],
500
+ };
501
+ const XUE_GUANG_SHA_HOUR_BY_DAY_BRANCH = {
502
+ 子: '戌',
503
+ 丑: '卯',
504
+ 辰: '午',
505
+ 未: '酉',
506
+ };
507
+ const DIAN_TOU_SHA_PILLARS = ['戊寅', '戊申', '庚寅', '庚申', '辛巳', '辛亥'];
508
+ const WU_XING_GUI_PILLARS = ['甲午', '丁酉', '己巳', '庚子', '辛亥', '壬申', '壬寅', '癸卯'];
509
+ const TIAN_XING_HOUR_STEM_BY_YEAR_BRANCH = {
510
+ 子: '乙',
511
+ 丑: '乙',
512
+ 寅: '庚',
513
+ 卯: '辛',
514
+ 辰: '辛',
515
+ 巳: '壬',
516
+ 午: '癸',
517
+ 未: '癸',
518
+ 申: '丙',
519
+ 酉: '丁',
520
+ 戌: '丁',
521
+ 亥: '戊',
522
+ };
523
+ const LEI_TING_SHA_BRANCH_BY_MONTH_BRANCH = {
524
+ 寅: '子',
525
+ 申: '子',
526
+ 卯: '寅',
527
+ 酉: '寅',
528
+ 辰: '辰',
529
+ 戌: '辰',
530
+ 巳: '午',
531
+ 亥: '午',
532
+ 午: '申',
533
+ 子: '申',
534
+ 未: '戌',
535
+ 丑: '戌',
536
+ };
537
+ const PO_SHA_BRANCH_PAIRS = [
538
+ ['卯', '午'],
539
+ ['丑', '辰'],
540
+ ['子', '酉'],
541
+ ['未', '戌'],
542
+ ];
543
+ const JIAO_HAI_SHA_DAY_HOUR_BRANCH_PAIRS = [
544
+ ['申', '亥'],
545
+ ['亥', '申'],
546
+ ['巳', '寅'],
547
+ ['寅', '巳'],
548
+ ];
549
+ const GUI_MEN_BRANCH_BY_YEAR_BRANCH = {
550
+ 子: '酉',
551
+ 酉: '子',
552
+ 丑: '午',
553
+ 午: '丑',
554
+ 寅: '未',
555
+ 未: '寅',
556
+ 卯: '申',
557
+ 申: '卯',
558
+ 辰: '亥',
559
+ 亥: '辰',
560
+ 巳: '戌',
561
+ 戌: '巳',
562
+ };
563
+ const TIAN_GANG_SHA_BY_YEAR_BRANCH = {
564
+ 子: '午',
565
+ 丑: '未',
566
+ 寅: '申',
567
+ 卯: '酉',
568
+ 辰: '戌',
569
+ 巳: '亥',
570
+ 午: '子',
571
+ 未: '丑',
572
+ 申: '寅',
573
+ 酉: '卯',
574
+ 戌: '辰',
575
+ 亥: '巳',
576
+ };
577
+ const YIN_SHA_BY_YEAR_BRANCH = {
578
+ 子: '午',
579
+ 午: '午',
580
+ 丑: '辰',
581
+ 未: '辰',
582
+ 寅: '寅',
583
+ 申: '寅',
584
+ 卯: '子',
585
+ 酉: '子',
586
+ 辰: '戌',
587
+ 戌: '戌',
588
+ 巳: '申',
589
+ 亥: '申',
590
+ };
591
+ const YANG_SHA_BY_YEAR_BRANCH = {
592
+ 寅: '戌',
593
+ 申: '戌',
594
+ 卯: '子',
595
+ 酉: '子',
596
+ 辰: '寅',
597
+ 戌: '寅',
598
+ 巳: '辰',
599
+ 亥: '辰',
600
+ 子: '午',
601
+ 午: '午',
602
+ 丑: '申',
603
+ 未: '申',
604
+ };
5
605
  export function buildDisasterRules(ctx) {
6
- const { zhi, nianGan, nianZhi, yueZhi, riGan, riZhi, isMan, ctg, cdz, zhiIdx, baziArray, variants, } = ctx;
606
+ const { gan, zhi, pillarIndex, pillarGZ, nianGan, nianZhi, yueZhi, riGan, riZhi, isMan, ctg, cdz, zhiIdx, baziArray, variants, } = ctx;
607
+ const anJinSha = AN_JIN_SHA_BY_YEAR_BRANCH[nianZhi];
608
+ const anJinShaHits = anJinSha?.branch === zhi;
609
+ const sanQiuWuMu = SAN_QIU_WU_MU_BY_MONTH_BRANCH[yueZhi];
610
+ const yearBranchGroup = YEAR_BRANCH_GROUP_BY_BRANCH[nianZhi];
611
+ const jieTouShaPillar = JIE_TOU_SHA_BY_YEAR_GROUP[yearBranchGroup]?.[nianGan];
612
+ const jieTouGuiPillar = JIE_TOU_GUI_BY_YEAR_GROUP[yearBranchGroup]?.[nianGan];
613
+ const shiZhi = baziArray[3]?.[1] || '';
614
+ const tianShangBranch = shiZhi ? cdz[(zhiIdx(shiZhi) - 2 + 12) % 12] : '';
615
+ const riKongWangBranches = calculateKongWangBranches(riGan, riZhi);
616
+ const nianKongWangBranches = variants.kongWangBasis === 'day-and-year' ? calculateKongWangBranches(nianGan, nianZhi) : [];
617
+ const kongWangBranches = [...riKongWangBranches, ...nianKongWangBranches];
618
+ const guXuBranches = kongWangBranches
619
+ .map((branch) => cdz[(zhiIdx(branch) + 6) % 12])
620
+ .filter(Boolean);
621
+ const hasPoSha = PO_SHA_BRANCH_PAIRS.some(([left, right]) => (zhi === left && baziArray.some((pillar) => pillar[1] === right)) ||
622
+ (zhi === right && baziArray.some((pillar) => pillar[1] === left)));
623
+ const hasJiaoHaiSha = JIAO_HAI_SHA_DAY_HOUR_BRANCH_PAIRS.some(([dayBranch, hourBranch]) => {
624
+ return riZhi === dayBranch && shiZhi === hourBranch;
625
+ });
626
+ const annualPalace = (offset) => cdz[(zhiIdx(nianZhi) + offset + 12) % 12] === zhi;
627
+ const nianGanIsYang = ctg.indexOf(nianGan) % 2 === 0;
628
+ const yuanChenOffset = (nianGanIsYang && isMan) || (!nianGanIsYang && !isMan) ? 5 : 7;
629
+ const yuanChenBranch = cdz[(zhiIdx(nianZhi) + yuanChenOffset + 12) % 12];
630
+ const hasYuanChen = baziArray.some((pillar) => pillar[1] === yuanChenBranch);
631
+ const chiXiaoMonthBranch = cdz[(zhiIdx(nianZhi) + 2) % 12];
632
+ const chiXiaoDayHourBranch = cdz[(zhiIdx(yueZhi) + 3) % 12];
633
+ const hasRepeatedWuXingGui = baziArray.some((pillar, index) => index >= 1 &&
634
+ index !== pillarIndex &&
635
+ WU_XING_GUI_PILLARS.includes(pillar.join('')) &&
636
+ pillar.join('') === pillarGZ);
637
+ const clashes = (source, target) => {
638
+ const index = zhiIdx(source);
639
+ return index >= 0 && cdz[(index + 6) % 12] === target;
640
+ };
7
641
  return {
8
- 空亡: () => {
9
- const riEmpty = calculateKongWangBranches(riGan, riZhi);
10
- if (riEmpty.includes(zhi))
11
- return true;
12
- if (variants.kongWangBasis !== 'day-and-year')
13
- return false;
14
- const nianEmpty = calculateKongWangBranches(nianGan, nianZhi);
15
- return nianEmpty.includes(zhi);
16
- },
642
+ 空亡: () => kongWangBranches.includes(zhi),
643
+ 孤虚: () => guXuBranches.includes(zhi),
17
644
  亡神: () => {
18
645
  const map = {
19
646
  申: '亥',
@@ -48,6 +675,8 @@ export function buildDisasterRules(ctx) {
48
675
  };
49
676
  return map[nianZhi] === zhi || map[riZhi] === zhi;
50
677
  },
678
+ 劫头杀: () => jieTouShaPillar === pillarGZ,
679
+ 劫头鬼: () => jieTouGuiPillar === pillarGZ,
51
680
  灾煞: () => {
52
681
  const map = {
53
682
  申: '午',
@@ -65,11 +694,41 @@ export function buildDisasterRules(ctx) {
65
694
  };
66
695
  return map[nianZhi] === zhi || map[riZhi] === zhi;
67
696
  },
697
+ 天杀: () => TIAN_SHA_BY_BRANCH[nianZhi] === zhi || TIAN_SHA_BY_BRANCH[riZhi] === zhi,
698
+ 地杀: () => DI_SHA_BY_BRANCH[nianZhi] === zhi || DI_SHA_BY_BRANCH[riZhi] === zhi,
699
+ 墓杀: () => MU_SHA_BY_YEAR_BRANCH[nianZhi] === zhi,
700
+ 害气杀: () => HAI_QI_SHA_BY_YEAR_BRANCH[nianZhi] === zhi,
701
+ 死气杀: () => cdz[(zhiIdx(nianZhi) + 4) % 12] === zhi,
702
+ 无成杀: () => WU_CHENG_SHA_BY_YEAR_BRANCH[nianZhi] === zhi,
703
+ 暴败杀: () => BAO_BAI_SHA_BY_YEAR_BRANCH[nianZhi] === zhi,
704
+ 离乡杀: () => pillarIndex >= 2 && LI_XIANG_SHA_BY_YEAR_BRANCH[nianZhi] === zhi,
705
+ 破外杀: () => pillarIndex >= 2 && PO_WAI_SHA_BY_YEAR_BRANCH[nianZhi] === zhi,
706
+ 血光杀: () => (pillarIndex >= 2 && XUE_GUANG_SHA_BY_YEAR_BRANCH[nianZhi]?.includes(zhi)) ||
707
+ (pillarIndex === 3 && XUE_GUANG_SHA_HOUR_BY_DAY_BRANCH[riZhi] === zhi),
708
+ 截命杀: () => cdz[(zhiIdx(nianZhi) + 1) % 12] === zhi,
709
+ 推命杀: () => cdz[(zhiIdx(nianZhi) + 11) % 12] === zhi,
710
+ 宅墓煞: () => pillarIndex >= 2 &&
711
+ (cdz[(zhiIdx(nianZhi) + 5) % 12] === zhi || cdz[(zhiIdx(nianZhi) + 7) % 12] === zhi),
712
+ 建命杀: () => pillarIndex === 1 && pillarGZ === `${nianGan}${nianZhi}`,
713
+ 六厄: () => {
714
+ const map = {
715
+ 申: '卯',
716
+ 子: '卯',
717
+ 辰: '卯',
718
+ 寅: '酉',
719
+ 午: '酉',
720
+ 戌: '酉',
721
+ 亥: '午',
722
+ 卯: '午',
723
+ 未: '午',
724
+ 巳: '子',
725
+ 酉: '子',
726
+ 丑: '子',
727
+ };
728
+ return map[nianZhi] === zhi || map[riZhi] === zhi;
729
+ },
68
730
  元辰: () => {
69
- const nianGanIsYang = ctg.indexOf(nianGan) % 2 === 0;
70
- const offset = (nianGanIsYang && isMan) || (!nianGanIsYang && !isMan) ? 5 : 7;
71
- const targetIdx = (zhiIdx(nianZhi) + offset + 12) % 12;
72
- return cdz[targetIdx] === zhi;
731
+ return yuanChenBranch === zhi;
73
732
  },
74
733
  血刃: () => {
75
734
  const map = {
@@ -104,28 +763,91 @@ export function buildDisasterRules(ctx) {
104
763
  return map[riGan] === zhi;
105
764
  },
106
765
  天罗: () => {
107
- // 戌亥互见为天罗
108
766
  const hasXu = baziArray.some((p) => p[1] === '戌');
109
767
  const hasHai = baziArray.some((p) => p[1] === '亥');
110
768
  return hasXu && hasHai && (zhi === '戌' || zhi === '亥');
111
769
  },
112
770
  地网: () => {
113
- // 辰巳互见为地网
114
771
  const hasChen = baziArray.some((p) => p[1] === '辰');
115
772
  const hasSi = baziArray.some((p) => p[1] === '巳');
116
773
  return hasChen && hasSi && (zhi === '辰' || zhi === '巳');
117
774
  },
118
775
  天医: () => {
119
- // 正月(寅)见丑,二月(卯)见寅... 即月令前一位
120
776
  const monthIdx = cdz.indexOf(yueZhi);
121
777
  if (monthIdx === -1)
122
778
  return false;
123
779
  const targetIdx = (monthIdx - 1 + 12) % 12;
124
780
  return cdz[targetIdx] === zhi;
125
781
  },
126
- 丧门: () => cdz[(zhiIdx(nianZhi) + 2) % 12] === zhi,
127
- 吊客: () => cdz[(zhiIdx(nianZhi) - 2 + 12) % 12] === zhi,
128
- 披麻: () => cdz[(zhiIdx(nianZhi) - 3 + 12) % 12] === zhi,
782
+ 太岁: () => annualPalace(0),
783
+ 剑锋: () => annualPalace(0),
784
+ 伏尸: () => annualPalace(0),
785
+ 太阳: () => annualPalace(1),
786
+ 天空: () => annualPalace(1),
787
+ 官符: () => pillarIndex >= 2 && annualPalace(4),
788
+ 病符: () => annualPalace(-1),
789
+ 死符: () => pillarIndex >= 1 && annualPalace(5),
790
+ 吟呻煞: () => anJinSha?.name === '吟呻煞' && anJinShaHits,
791
+ 破碎煞: () => anJinSha?.name === '破碎煞' && anJinShaHits,
792
+ 白衣煞: () => anJinSha?.name === '白衣煞' && anJinShaHits,
793
+ 金神大杀: () => anJinShaHits,
794
+ 太白星: () => anJinShaHits,
795
+ 斧劈星: () => anJinShaHits,
796
+ 破军: () => PO_JUN_BY_YEAR_BRANCH[nianZhi] === zhi,
797
+ 三公煞: () => SAN_GONG_SHA_BY_YEAR_BRANCH[nianZhi] === pillarGZ,
798
+ 官会杀: () => GUAN_HUI_SHA_BY_YEAR_STEM[nianGan] === pillarGZ,
799
+ 财会杀: () => CAI_HUI_SHA_BY_YEAR_BRANCH[nianZhi] === pillarGZ,
800
+ 真鬼刑疾: () => pillarIndex >= 2 && ZHEN_GUI_XING_JI_STEMS_BY_YEAR_STEM[nianGan]?.includes(gan),
801
+ 五鬼空亡: () => WU_GUI_KONG_WANG_BRANCHES_BY_YEAR_STEM[nianGan]?.includes(zhi),
802
+ 破祖空亡: () => PO_ZU_KONG_WANG_BRANCH_BY_YEAR_STEM[nianGan] === zhi,
803
+ 青龙杀: () => QING_LONG_SHA_BY_YEAR_BRANCH[nianZhi] === pillarGZ,
804
+ 良会杀: () => LIANG_HUI_SHA_BY_YEAR_BRANCH[nianZhi] === pillarGZ,
805
+ 扶生日: () => FU_SHENG_DAY_BY_MONTH_BRANCH[yueZhi] === zhi,
806
+ 天喜神: () => TIAN_XI_SHEN_BRANCH_BY_MONTH_BRANCH[yueZhi] === zhi,
807
+ 天瞽杀: () => TIAN_GU_SHA_BRANCH_BY_MONTH_BRANCH[yueZhi] === zhi,
808
+ 飞廉杀: () => TIAN_GU_SHA_BRANCH_BY_MONTH_BRANCH[yueZhi] === zhi,
809
+ 旌德: () => (pillarIndex >= 2 && JING_DE_STEM_BY_MONTH_BRANCH[yueZhi] === gan) ||
810
+ (pillarIndex === 3 && JING_DE_HOUR_STEM_BY_YEAR_BRANCH[nianZhi] === gan),
811
+ 旌钺: () => (pillarIndex === 3 && JING_YUE_HOUR_BRANCH_BY_YEAR_BRANCH[nianZhi] === zhi) ||
812
+ JING_YUE_PILLAR_BY_YEAR_MEETING_BRANCH[nianZhi] === pillarGZ,
813
+ 真亡杀: () => ZHEN_WANG_SHA_BY_YEAR_BRANCH[nianZhi]?.includes(pillarGZ),
814
+ 月煞: () => YUE_SHA_BY_MONTH_BRANCH[yueZhi] === zhi,
815
+ 月厌: () => YUE_YAN_BY_MONTH_BRANCH[yueZhi] === zhi,
816
+ 头戴杀: () => pillarIndex >= 2 && TOU_DAI_SHA_BY_YEAR_BRANCH[nianZhi] === zhi,
817
+ 妄语煞: () => pillarIndex >= 2 && annualPalace(4) && riKongWangBranches.includes(zhi),
818
+ 点头杀: () => pillarIndex >= 2 && hasYuanChen && DIAN_TOU_SHA_PILLARS.includes(pillarGZ),
819
+ 无形鬼: () => pillarIndex >= 1 && WU_XING_GUI_PILLARS.includes(pillarGZ) && hasRepeatedWuXingGui,
820
+ 三丘: () => sanQiuWuMu?.sanQiu === zhi,
821
+ 五墓: () => sanQiuWuMu?.wuMu === zhi,
822
+ 天刑: () => pillarIndex === 3 && TIAN_XING_HOUR_STEM_BY_YEAR_BRANCH[nianZhi] === gan,
823
+ 天伤: () => tianShangBranch === zhi,
824
+ 雷霆煞: () => LEI_TING_SHA_BRANCH_BY_MONTH_BRANCH[yueZhi] === zhi,
825
+ 破煞: () => hasPoSha,
826
+ 狡害杀: () => pillarIndex >= 2 && hasJiaoHaiSha,
827
+ 自缢煞: () => GUI_MEN_BRANCH_BY_YEAR_BRANCH[nianZhi] === zhi,
828
+ 鬼门: () => GUI_MEN_BRANCH_BY_YEAR_BRANCH[nianZhi] === zhi,
829
+ 天罡杀: () => TIAN_GANG_SHA_BY_YEAR_BRANCH[nianZhi] === zhi,
830
+ 阴杀: () => YIN_SHA_BY_YEAR_BRANCH[nianZhi] === zhi,
831
+ 阳杀: () => YANG_SHA_BY_YEAR_BRANCH[nianZhi] === zhi,
832
+ 鸱枭杀: () => pillarIndex >= 2 && yueZhi === chiXiaoMonthBranch && zhi === chiXiaoDayHourBranch,
833
+ 冲天杀: () => (pillarIndex === 1 && clashes(nianZhi, zhi)) || (pillarIndex === 3 && clashes(riZhi, zhi)),
834
+ 丧门: () => annualPalace(2),
835
+ 地丧: () => annualPalace(2),
836
+ 勾绞: () => annualPalace(3),
837
+ 贯索: () => annualPalace(3),
838
+ 吊客: () => annualPalace(-2),
839
+ 披麻: () => annualPalace(-3),
840
+ 五鬼: () => pillarIndex >= 2 && annualPalace(4),
841
+ 小耗: () => pillarIndex >= 1 && annualPalace(5),
842
+ 栏杆: () => annualPalace(6),
843
+ 大耗: () => annualPalace(6),
844
+ 暴败: () => annualPalace(7),
845
+ 天厄: () => annualPalace(7),
846
+ 飞廉: () => annualPalace(8),
847
+ 白虎: () => annualPalace(8),
848
+ 卷舌: () => annualPalace(9),
849
+ 福星: () => annualPalace(9),
850
+ 天狗: () => annualPalace(-2),
129
851
  };
130
852
  }
131
853
  //# sourceMappingURL=disasterRules.js.map