private protected TongueType(ushort tongueLength, double tongueWidth, ShortDescriptor shortDesc, PartDescriptor <TongueData> longDesc, PlayerBodyPartDelegate <Tongue> playerDesc, ChangeType <TongueData> transform, RestoreType <TongueData> restore) : base(shortDesc, longDesc, playerDesc, transform, restore) { _index = indexMaker++; tongues.AddAt(this, _index); length = tongueLength; width = tongueWidth; }
private protected FullBehavior(SimpleDescriptor standardShortDesc, SimpleDescriptor singleShortDesc, PartDescriptor <DataClass> longDesc, PlayerBodyPartDelegate <ContainerClass> playerDesc, ChangeType <DataClass> transformDesc, RestoreType <DataClass> restoreDesc) : base(standardShortDesc, singleShortDesc) { longStr = longDesc ?? throw new ArgumentNullException(nameof(longDesc)); playerStr = playerDesc ?? throw new ArgumentNullException(nameof(playerDesc)); transformFromStr = transformDesc ?? throw new ArgumentNullException(nameof(transformDesc)); restoredStr = restoreDesc ?? throw new ArgumentNullException(nameof(restoreDesc)); }
//C# 7.2 magic. basically, prevents it from being messed with except internally. private AntennaeType(ShortPluralDescriptor desc, SimpleDescriptor singleItemDesc, PluralPartDescriptor <AntennaeData> longDesc, PlayerBodyPartDelegate <Antennae> playerDesc, ChangeType <AntennaeData> transformMessage, RestoreType <AntennaeData> revertToDefault) : base(PluralHelper(desc), singleItemDesc, LongPluralHelper(longDesc), playerDesc, transformMessage, revertToDefault) { shortPluralDesc = desc ?? throw new ArgumentNullException(nameof(desc)); longPluralDesc = longDesc ?? throw new ArgumentNullException(nameof(longDesc)); _index = indexMaker++; antennaes.AddAt(this, _index); }
private OvipositorType(byte maxEggs, ShortDescriptor shortDesc, PartDescriptor <OvipositorData> longDesc, PlayerBodyPartDelegate <Ovipositor> playerDesc, OvipositorTransform transform, OvipositorRestore restore) : base(shortDesc) { this.maxEggs = maxEggs; this.longDesc = longDesc ?? throw new ArgumentNullException(nameof(longDesc)); this.playerDesc = playerDesc ?? throw new ArgumentNullException(nameof(playerDesc)); this.transformStr = transform ?? throw new ArgumentNullException(nameof(transform)); restoreStr = restore ?? throw new ArgumentNullException(nameof(restore)); }
protected EarType(bool internalEar, ShortPluralDescriptor shortDesc, SimpleDescriptor singleItemDesc, PluralPartDescriptor <EarData> longDesc, PlayerBodyPartDelegate <Ears> playerDesc, ChangeType <EarData> transform, RestoreType <EarData> restore) : base(PluralHelper(shortDesc), singleItemDesc, LongPluralHelper(longDesc), playerDesc, transform, restore) { shortPluralDesc = shortDesc; longPluralDesc = longDesc; _index = indexMaker++; ears.AddAt(this, id); isInternalEar = internalEar; }
//i should use maybe plural desriptor here by naming conventions, but in this case i know exactly when it's plural, so i can fake it with the function that //exposes the delegate. probably should do it anyway, but it's easier to implement like this. private protected EyeType(EyeColor defaultEyeColor, EyeChangeDelegate eyeChange, ShortPluralDescriptor shortDesc, SimpleDescriptor singleItemDesc, PartDescriptor <EyeData> longDesc, SingleEyeDescriptor oneEyeDesc, PartDescriptor <EyeData> fullDesc, PlayerBodyPartDelegate <Eyes> playerDesc, ChangeType <EyeData> transform, RestoreType <EyeData> restore, byte numEyes = 2, ScleraColor color = ScleraColor.CLEAR) : base(PluralHelper(shortDesc), singleItemDesc, longDesc, playerDesc, transform, restore) { EyeChangeSpecial = eyeChange; eyeCount = numEyes; defaultColor = defaultEyeColor; _index = indexMaker++; eyeDesc = shortDesc; eyeFullDesc = fullDesc ?? throw new ArgumentNullException(nameof(fullDesc)); this.oneEyeDesc = oneEyeDesc ?? throw new ArgumentNullException(nameof(oneEyeDesc)); eyes.AddAt(this, _index); scleraColor = color; }
//wings that support large wings need to define a behavior on transform - do they keep the large wings? private protected WingType(BehaviorOnTransform behaviorOnTransform, WingSizeChangeDelegate changeSizeText, WingShortDesc wingShortDesc, WingSingleDesc singleWingDesc, PluralPartDescriptor <WingData> longDesc, PlayerBodyPartDelegate <Wings> playerDesc, ChangeType <WingData> transform, RestoreType <WingData> restore) : base(WingParser(wingShortDesc), WingSingleParser(singleWingDesc), LongPluralHelper(longDesc), playerDesc, transform, restore) { _index = indexMaker++; wings.AddAt(this, _index); transformBehavior = behaviorOnTransform; this.wingShortDesc = wingShortDesc; this.wingSingleDesc = singleWingDesc; longPluralDesc = longDesc; canChangeSize = true; changeSizeStr = changeSizeText ?? throw new ArgumentNullException(nameof(changeSizeText)); }
internal FeatheredWings(HairFurColors defaultHair, BehaviorOnTransform behaviorOnTransform, WingSizeChangeDelegate changeSizeText, WingShortDesc wingShortDesc, WingSingleDesc singleWingDesc, PluralPartDescriptor <WingData> longDesc, PlayerBodyPartDelegate <Wings> playerDesc, ChangeType <WingData> transform, RestoreType <WingData> restore) : base(behaviorOnTransform, changeSizeText, wingShortDesc, singleWingDesc, longDesc, playerDesc, transform, restore) { defaultFeatherColor = defaultHair; }
internal FeatheredWings(HairFurColors defaultHair, bool canFly, ShortPluralDescriptor shortDesc, SimpleDescriptor singleWingDesc, PluralPartDescriptor <WingData> longDesc, PlayerBodyPartDelegate <Wings> playerDesc, ChangeType <WingData> transform, RestoreType <WingData> restore) : base(canFly, shortDesc, singleWingDesc, longDesc, playerDesc, transform, restore) { defaultFeatherColor = defaultHair; }
private protected WingType(bool canFly, ShortPluralDescriptor shortDesc, SimpleDescriptor singleWingDesc, PluralPartDescriptor <WingData> longDesc, PlayerBodyPartDelegate <Wings> playerDesc, ChangeType <WingData> transform, RestoreType <WingData> restore) : base(PluralHelper(shortDesc), singleWingDesc, LongPluralHelper(longDesc), playerDesc, transform, restore) { _index = indexMaker++; wings.AddAt(this, _index); transformBehavior = canFly ? BehaviorOnTransform.CONVERT_TO_LARGE : BehaviorOnTransform.CONVERT_TO_SMALL; //was wrong, caught in testing. wingShortDesc = (_, plural) => shortDesc(plural); wingSingleDesc = (_) => singleWingDesc(); longPluralDesc = longDesc; canChangeSize = false; changeSizeStr = (x, y) => ""; }
private OvipositorType(ShortDescriptor shortDesc, PartDescriptor <OvipositorData> longDesc, PlayerBodyPartDelegate <Ovipositor> playerDesc, OvipositorTransform transform, OvipositorRestore restore) : this(0, shortDesc, longDesc, playerDesc, transform, restore) { }
public StoneStareEyeType(EyeColor defaultEyeColor, EyeChangeDelegate eyeChange, ShortPluralDescriptor shortDesc, SimpleDescriptor singleItemDesc, PartDescriptor <EyeData> longDesc, SingleEyeDescriptor oneEyeDesc, PartDescriptor <EyeData> fullDesc, PlayerBodyPartDelegate <Eyes> playerDesc, ChangeType <EyeData> transform, RestoreType <EyeData> restore, byte numEyes = 2, ScleraColor color = ScleraColor.CLEAR) : base(defaultEyeColor, eyeChange, shortDesc, singleItemDesc, longDesc, oneEyeDesc, fullDesc, playerDesc, transform, restore, numEyes, color) { }
protected GillType(ShortPluralDescriptor shortDesc, SimpleDescriptor singleDesc, PartDescriptor <GillData> longDesc, PlayerBodyPartDelegate <Gills> playerDesc, ChangeType <GillData> transform, RestoreType <GillData> restore) : base(PluralHelper(shortDesc), singleDesc, longDesc, playerDesc, transform, restore) { _index = indexMaker++; gills.AddAt(this, _index); pluralDesc = shortDesc; }