internal BodyTrait(BodyTraitType type, StarData location, IkonComposite loadData) : this(type, new LocationBody(location), loadData) { }
internal BodyTrait(BodyTraitType type, StarData location) : this(type, new LocationBody(location)) { }
internal BodyTrait(BodyTraitType type, Planet location) : this(type, new LocationBody(location.Star, location)) { }
private BodyTrait(BodyTraitType type, ITraitEffect effect) { this.Type = type; this.Effect = effect; }
private BodyTrait(BodyTraitType type, LocationBody location, IkonComposite loadData) { this.Type = type; this.Effect = type.Effect.Load(location, this, loadData); }
private BodyTrait(BodyTraitType type, LocationBody location) { this.Type = type; this.Effect = type.Effect.Instantiate(location, this); }