mingyu-core 0.1.7 → 0.1.9

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 (200) hide show
  1. package/README.md +11 -3
  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 +9 -0
  7. package/dist/bazi/baziAnalysisFormatter.js.map +1 -1
  8. package/dist/bazi/baziCalculator.d.ts.map +1 -1
  9. package/dist/bazi/baziCalculator.js +61 -3
  10. package/dist/bazi/baziCalculator.js.map +1 -1
  11. package/dist/bazi/baziConditionMatchers/branchMatchers.d.ts +1 -0
  12. package/dist/bazi/baziConditionMatchers/branchMatchers.d.ts.map +1 -1
  13. package/dist/bazi/baziConditionMatchers/branchMatchers.js +13 -1
  14. package/dist/bazi/baziConditionMatchers/branchMatchers.js.map +1 -1
  15. package/dist/bazi/baziConditionMatchers/index.d.ts.map +1 -1
  16. package/dist/bazi/baziConditionMatchers/index.js +4 -2
  17. package/dist/bazi/baziConditionMatchers/index.js.map +1 -1
  18. package/dist/bazi/baziConditionMatchers/stemMatchers.d.ts +1 -0
  19. package/dist/bazi/baziConditionMatchers/stemMatchers.d.ts.map +1 -1
  20. package/dist/bazi/baziConditionMatchers/stemMatchers.js +7 -3
  21. package/dist/bazi/baziConditionMatchers/stemMatchers.js.map +1 -1
  22. package/dist/bazi/baziEnhancement/classicPatterns.d.ts.map +1 -1
  23. package/dist/bazi/baziEnhancement/classicPatterns.js +31 -11
  24. package/dist/bazi/baziEnhancement/classicPatterns.js.map +1 -1
  25. package/dist/bazi/baziPromptEnhancement.d.ts.map +1 -1
  26. package/dist/bazi/baziPromptEnhancement.js +49 -0
  27. package/dist/bazi/baziPromptEnhancement.js.map +1 -1
  28. package/dist/bazi/baziShenSha/helpers/dayRules.d.ts +0 -3
  29. package/dist/bazi/baziShenSha/helpers/dayRules.d.ts.map +1 -1
  30. package/dist/bazi/baziShenSha/helpers/dayRules.js +101 -56
  31. package/dist/bazi/baziShenSha/helpers/dayRules.js.map +1 -1
  32. package/dist/bazi/baziShenSha/helpers/disasterRules.d.ts +0 -3
  33. package/dist/bazi/baziShenSha/helpers/disasterRules.d.ts.map +1 -1
  34. package/dist/bazi/baziShenSha/helpers/disasterRules.js +745 -23
  35. package/dist/bazi/baziShenSha/helpers/disasterRules.js.map +1 -1
  36. package/dist/bazi/baziShenSha/helpers/globalRules.d.ts +0 -6
  37. package/dist/bazi/baziShenSha/helpers/globalRules.d.ts.map +1 -1
  38. package/dist/bazi/baziShenSha/helpers/globalRules.js +48 -16
  39. package/dist/bazi/baziShenSha/helpers/globalRules.js.map +1 -1
  40. package/dist/bazi/baziShenSha/helpers/luRules.d.ts +0 -3
  41. package/dist/bazi/baziShenSha/helpers/luRules.d.ts.map +1 -1
  42. package/dist/bazi/baziShenSha/helpers/luRules.js +266 -37
  43. package/dist/bazi/baziShenSha/helpers/luRules.js.map +1 -1
  44. package/dist/bazi/baziShenSha/helpers/marriageRules.d.ts +0 -3
  45. package/dist/bazi/baziShenSha/helpers/marriageRules.d.ts.map +1 -1
  46. package/dist/bazi/baziShenSha/helpers/marriageRules.js +5 -7
  47. package/dist/bazi/baziShenSha/helpers/marriageRules.js.map +1 -1
  48. package/dist/bazi/baziShenSha/helpers/nobleRules.d.ts +0 -3
  49. package/dist/bazi/baziShenSha/helpers/nobleRules.d.ts.map +1 -1
  50. package/dist/bazi/baziShenSha/helpers/nobleRules.js +208 -41
  51. package/dist/bazi/baziShenSha/helpers/nobleRules.js.map +1 -1
  52. package/dist/bazi/baziShenSha/helpers/tenGodAnalysis.d.ts +0 -4
  53. package/dist/bazi/baziShenSha/helpers/tenGodAnalysis.d.ts.map +1 -1
  54. package/dist/bazi/baziShenSha/helpers/tenGodAnalysis.js +0 -8
  55. package/dist/bazi/baziShenSha/helpers/tenGodAnalysis.js.map +1 -1
  56. package/dist/bazi/baziShenSha/index.d.ts +0 -20
  57. package/dist/bazi/baziShenSha/index.d.ts.map +1 -1
  58. package/dist/bazi/baziShenSha/index.js +0 -20
  59. package/dist/bazi/baziShenSha/index.js.map +1 -1
  60. package/dist/bazi/baziShenSha/variants.d.ts +0 -3
  61. package/dist/bazi/baziShenSha/variants.d.ts.map +1 -1
  62. package/dist/bazi/baziShenSha/variants.js.map +1 -1
  63. package/dist/bazi/baziShenShaData.d.ts +0 -20
  64. package/dist/bazi/baziShenShaData.d.ts.map +1 -1
  65. package/dist/bazi/baziShenShaData.js +286 -34
  66. package/dist/bazi/baziShenShaData.js.map +1 -1
  67. package/dist/bazi/baziStrengthAnalyzer.d.ts.map +1 -1
  68. package/dist/bazi/baziStrengthAnalyzer.js +8 -9
  69. package/dist/bazi/baziStrengthAnalyzer.js.map +1 -1
  70. package/dist/bazi/baziTypes.d.ts +16 -0
  71. package/dist/bazi/baziTypes.d.ts.map +1 -1
  72. package/dist/bazi/baziTypes.js.map +1 -1
  73. package/dist/bazi/chinaDst.d.ts +36 -0
  74. package/dist/bazi/chinaDst.d.ts.map +1 -0
  75. package/dist/bazi/chinaDst.js +86 -0
  76. package/dist/bazi/chinaDst.js.map +1 -0
  77. package/dist/bazi/harmonyTransform.d.ts +16 -0
  78. package/dist/bazi/harmonyTransform.d.ts.map +1 -0
  79. package/dist/bazi/harmonyTransform.js +285 -0
  80. package/dist/bazi/harmonyTransform.js.map +1 -0
  81. package/dist/bazi/index.d.ts +6 -0
  82. package/dist/bazi/index.d.ts.map +1 -1
  83. package/dist/bazi/index.js +3 -1
  84. package/dist/bazi/index.js.map +1 -1
  85. package/dist/bazi/lifeStageAnalysis.d.ts.map +1 -1
  86. package/dist/bazi/lifeStageAnalysis.js +0 -3
  87. package/dist/bazi/lifeStageAnalysis.js.map +1 -1
  88. package/dist/bazi/nayinAnalysis.d.ts.map +1 -1
  89. package/dist/bazi/nayinAnalysis.js +0 -1
  90. package/dist/bazi/nayinAnalysis.js.map +1 -1
  91. package/dist/bazi/paipanWarnings.d.ts +25 -0
  92. package/dist/bazi/paipanWarnings.d.ts.map +1 -0
  93. package/dist/bazi/paipanWarnings.js +124 -0
  94. package/dist/bazi/paipanWarnings.js.map +1 -0
  95. package/dist/bazi/relationStructure.d.ts.map +1 -1
  96. package/dist/bazi/relationStructure.js +0 -4
  97. package/dist/bazi/relationStructure.js.map +1 -1
  98. package/dist/bazi/stemRootAnalysis.d.ts.map +1 -1
  99. package/dist/bazi/stemRootAnalysis.js +26 -16
  100. package/dist/bazi/stemRootAnalysis.js.map +1 -1
  101. package/dist/bazi/usefulGodPlacement.d.ts.map +1 -1
  102. package/dist/bazi/usefulGodPlacement.js +0 -2
  103. package/dist/bazi/usefulGodPlacement.js.map +1 -1
  104. package/dist/divination/algorithms/_shared/index.d.ts +1 -1
  105. package/dist/divination/algorithms/_shared/index.d.ts.map +1 -1
  106. package/dist/divination/algorithms/_shared/index.js +1 -1
  107. package/dist/divination/algorithms/_shared/index.js.map +1 -1
  108. package/dist/divination/algorithms/_shared/wuxing.d.ts +9 -8
  109. package/dist/divination/algorithms/_shared/wuxing.d.ts.map +1 -1
  110. package/dist/divination/algorithms/_shared/wuxing.js +40 -18
  111. package/dist/divination/algorithms/_shared/wuxing.js.map +1 -1
  112. package/dist/divination/algorithms/almanac.d.ts +2 -2
  113. package/dist/divination/algorithms/almanac.d.ts.map +1 -1
  114. package/dist/divination/algorithms/almanac.js +197 -32
  115. package/dist/divination/algorithms/almanac.js.map +1 -1
  116. package/dist/divination/algorithms/lenormand.js +2 -2
  117. package/dist/divination/algorithms/liuren/helpers/lessons.d.ts.map +1 -1
  118. package/dist/divination/algorithms/liuren/helpers/lessons.js +11 -7
  119. package/dist/divination/algorithms/liuren/helpers/lessons.js.map +1 -1
  120. package/dist/divination/algorithms/liuren/helpers/transmission.d.ts +6 -0
  121. package/dist/divination/algorithms/liuren/helpers/transmission.d.ts.map +1 -1
  122. package/dist/divination/algorithms/liuren/helpers/transmission.js +38 -0
  123. package/dist/divination/algorithms/liuren/helpers/transmission.js.map +1 -1
  124. package/dist/divination/algorithms/liuren/index.d.ts.map +1 -1
  125. package/dist/divination/algorithms/liuren/index.js +17 -14
  126. package/dist/divination/algorithms/liuren/index.js.map +1 -1
  127. package/dist/divination/algorithms/liuyao.d.ts +57 -0
  128. package/dist/divination/algorithms/liuyao.d.ts.map +1 -1
  129. package/dist/divination/algorithms/liuyao.js +221 -50
  130. package/dist/divination/algorithms/liuyao.js.map +1 -1
  131. package/dist/divination/algorithms/meihua/helpers/methods.d.ts +2 -2
  132. package/dist/divination/algorithms/meihua/helpers/methods.d.ts.map +1 -1
  133. package/dist/divination/algorithms/meihua/helpers/methods.js +47 -7
  134. package/dist/divination/algorithms/meihua/helpers/methods.js.map +1 -1
  135. package/dist/divination/algorithms/meihua/index.d.ts.map +1 -1
  136. package/dist/divination/algorithms/meihua/index.js +22 -15
  137. package/dist/divination/algorithms/meihua/index.js.map +1 -1
  138. package/dist/divination/algorithms/qimen/helpers/_constants.d.ts +2 -4
  139. package/dist/divination/algorithms/qimen/helpers/_constants.d.ts.map +1 -1
  140. package/dist/divination/algorithms/qimen/helpers/_constants.js +3 -5
  141. package/dist/divination/algorithms/qimen/helpers/_constants.js.map +1 -1
  142. package/dist/divination/algorithms/qimen/helpers/classic-patterns.d.ts +15 -7
  143. package/dist/divination/algorithms/qimen/helpers/classic-patterns.d.ts.map +1 -1
  144. package/dist/divination/algorithms/qimen/helpers/classic-patterns.js +814 -127
  145. package/dist/divination/algorithms/qimen/helpers/classic-patterns.js.map +1 -1
  146. package/dist/divination/algorithms/qimen/helpers/directions.d.ts +4 -3
  147. package/dist/divination/algorithms/qimen/helpers/directions.d.ts.map +1 -1
  148. package/dist/divination/algorithms/qimen/helpers/directions.js +16 -9
  149. package/dist/divination/algorithms/qimen/helpers/directions.js.map +1 -1
  150. package/dist/divination/algorithms/qimen/helpers/jushu-extended.d.ts +7 -6
  151. package/dist/divination/algorithms/qimen/helpers/jushu-extended.d.ts.map +1 -1
  152. package/dist/divination/algorithms/qimen/helpers/jushu-extended.js +55 -24
  153. package/dist/divination/algorithms/qimen/helpers/jushu-extended.js.map +1 -1
  154. package/dist/divination/algorithms/qimen/helpers/jushu.d.ts +20 -13
  155. package/dist/divination/algorithms/qimen/helpers/jushu.d.ts.map +1 -1
  156. package/dist/divination/algorithms/qimen/helpers/jushu.js +96 -61
  157. package/dist/divination/algorithms/qimen/helpers/jushu.js.map +1 -1
  158. package/dist/divination/algorithms/qimen/helpers/layout.d.ts +1 -1
  159. package/dist/divination/algorithms/qimen/helpers/layout.d.ts.map +1 -1
  160. package/dist/divination/algorithms/qimen/helpers/layout.js +18 -24
  161. package/dist/divination/algorithms/qimen/helpers/layout.js.map +1 -1
  162. package/dist/divination/algorithms/qimen/helpers/pattern-combos.d.ts +40 -0
  163. package/dist/divination/algorithms/qimen/helpers/pattern-combos.d.ts.map +1 -0
  164. package/dist/divination/algorithms/qimen/helpers/pattern-combos.js +1799 -0
  165. package/dist/divination/algorithms/qimen/helpers/pattern-combos.js.map +1 -0
  166. package/dist/divination/algorithms/qimen/helpers/patterns.d.ts +6 -5
  167. package/dist/divination/algorithms/qimen/helpers/patterns.d.ts.map +1 -1
  168. package/dist/divination/algorithms/qimen/helpers/patterns.js +74 -22
  169. package/dist/divination/algorithms/qimen/helpers/patterns.js.map +1 -1
  170. package/dist/divination/algorithms/qimen/helpers/seasonality.d.ts +1 -1
  171. package/dist/divination/algorithms/qimen/helpers/seasonality.d.ts.map +1 -1
  172. package/dist/divination/algorithms/qimen/helpers/stem-pair-patterns.d.ts +8 -1
  173. package/dist/divination/algorithms/qimen/helpers/stem-pair-patterns.d.ts.map +1 -1
  174. package/dist/divination/algorithms/qimen/helpers/stem-pair-patterns.js +731 -67
  175. package/dist/divination/algorithms/qimen/helpers/stem-pair-patterns.js.map +1 -1
  176. package/dist/divination/algorithms/qimen/helpers/ying-qi.d.ts +10 -6
  177. package/dist/divination/algorithms/qimen/helpers/ying-qi.d.ts.map +1 -1
  178. package/dist/divination/algorithms/qimen/helpers/ying-qi.js +58 -25
  179. package/dist/divination/algorithms/qimen/helpers/ying-qi.js.map +1 -1
  180. package/dist/divination/algorithms/qimen/index.d.ts.map +1 -1
  181. package/dist/divination/algorithms/qimen/index.js +112 -21
  182. package/dist/divination/algorithms/qimen/index.js.map +1 -1
  183. package/dist/divination/algorithms/xiaoliuren.d.ts +1 -1
  184. package/dist/divination/algorithms/xiaoliuren.js +12 -12
  185. package/dist/divination/algorithms/xiaoliuren.js.map +1 -1
  186. package/dist/divination/divination-data.d.ts.map +1 -1
  187. package/dist/divination/divination-data.js +2 -4
  188. package/dist/divination/divination-data.js.map +1 -1
  189. package/dist/types/analysis.d.ts +21 -0
  190. package/dist/types/analysis.d.ts.map +1 -1
  191. package/dist/types/divination.d.ts +84 -2
  192. package/dist/types/divination.d.ts.map +1 -1
  193. package/dist/ziwei/iztro/build-analysis-payload/index.d.ts.map +1 -1
  194. package/dist/ziwei/iztro/build-analysis-payload/index.js +7 -1
  195. package/dist/ziwei/iztro/build-analysis-payload/index.js.map +1 -1
  196. package/dist/ziwei/iztro/pattern-detection.d.ts +4 -2
  197. package/dist/ziwei/iztro/pattern-detection.d.ts.map +1 -1
  198. package/dist/ziwei/iztro/pattern-detection.js +1300 -184
  199. package/dist/ziwei/iztro/pattern-detection.js.map +1 -1
  200. 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