getSurroundedPalaces function
Implementation
IFunctionlSurpalaces getSurroundedPalaces(
IFunctionalAstrolabe astrolabe,
dynamic indexOfPalace,
) {
final IFunctionalPalace? palace = getPalace(astrolabe, indexOfPalace);
if (palace == null) {
throw UnimplementedError('index or name is inccoreect');
}
// 获取目标宫位索引
final palaceIndex = fixEarthlyBranchIndex(palace.earthlyBranch);
// 获取对宫
var palace6 = getPalace(astrolabe, fixIndex(palaceIndex + 6));
// 获取官禄位
var palace4 = getPalace(astrolabe, fixIndex(palaceIndex + 4));
// 获取财帛位
var palace8 = getPalace(astrolabe, fixIndex(palaceIndex + 8));
if (palace6 == null || palace8 == null || palace4 == null) {
throw Exception("index or name is inccourrect");
}
var surroundPalace = SurroundedPalaces(
target: palace,
opposite: palace6,
wealth: palace8,
career: palace4,
);
return FunctionalSurpalaces(surroundPalace);
}