MCPcopy
hub / github.com/SylarLong/iztro / FunctionalPalace

Class FunctionalPalace

src/astro/FunctionalPalace.ts:180–335  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

178 * 文档地址:https://docs.iztro.com/posts/palace.html#functionalastrolabe
179 */
180export default class FunctionalPalace implements IFunctionalPalace {
181 private _astrolabe?: IFunctionalAstrolabe;
182 index;
183 name;
184 isBodyPalace;
185 isOriginalPalace;
186 heavenlyStem;
187 earthlyBranch;
188 majorStars;
189 minorStars;
190 adjectiveStars;
191 changsheng12;
192 boshi12;
193 jiangqian12;
194 suiqian12;
195 decadal;
196 ages;
197
198 constructor(data: Palace) {
199 this.index = data.index;
200 this.name = data.name;
201 this.isBodyPalace = data.isBodyPalace;
202 this.isOriginalPalace = data.isOriginalPalace;
203 this.heavenlyStem = data.heavenlyStem;
204 this.earthlyBranch = data.earthlyBranch;
205 this.majorStars = data.majorStars;
206 this.minorStars = data.minorStars;
207 this.adjectiveStars = data.adjectiveStars;
208 this.changsheng12 = data.changsheng12;
209 this.boshi12 = data.boshi12;
210 this.jiangqian12 = data.jiangqian12;
211 this.suiqian12 = data.suiqian12;
212 this.decadal = data.decadal;
213 this.ages = data.ages;
214
215 return this;
216 }
217
218 has = (stars: StarName[]): boolean => hasStars(this, stars);
219 notHave = (stars: StarName[]): boolean => notHaveStars(this, stars);
220 hasOneOf = (stars: StarName[]): boolean => hasOneOfStars(this, stars);
221 hasMutagen = (mutagen: Mutagen): boolean => hasMutagenInPlace(this, mutagen);
222 notHaveMutagen = (mutagen: Mutagen): boolean => notHaveMutagenInPalce(this, mutagen);
223 isEmpty = (excludeStars?: StarName[]) => {
224 if (this.majorStars?.filter((star) => star.type === 'major').length) {
225 return false;
226 }
227
228 if (excludeStars?.length && this.hasOneOf(excludeStars)) {
229 return false;
230 }
231
232 return true;
233 };
234 setAstrolabe = (astro: IFunctionalAstrolabe) => (this._astrolabe = astro);
235 astrolabe = () => this._astrolabe;
236 fliesTo = (to: number | PalaceName, withMutagens: Mutagen | Mutagen[]) => {
237 const toPalace = this.astrolabe()?.palace(to);

Callers

nothing calls this directly

Calls 6

hasStarsFunction · 0.90
notHaveStarsFunction · 0.90
hasOneOfStarsFunction · 0.90
hasMutagenInPlaceFunction · 0.90
notHaveMutagenInPalceFunction · 0.90
mutagensToStarsFunction · 0.90

Tested by

no test coverage detected