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(ShortDescriptor shortDesc, PartDescriptor <DataClass> longDesc, PlayerBodyPartDelegate <ContainerClass> playerDesc, ChangeType <DataClass> transformDesc, RestoreType <DataClass> restoreDesc) : base(shortDesc) { 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)); }
public GenericBite(ShortDescriptor teethName, byte strength = 1) : base(Attack) { biteStrength = Utils.Clamp2(strength, (byte)0, (byte)5); if (teethName is null) { throw new ArgumentNullException(); } teeth = () => teethName(false); }
internal TailSlam(ShortDescriptor tailName, byte strength = 1) : base(Attack) { attackStrength = Utils.Clamp2(strength, (byte)0, (byte)5); if (tailName is null) { throw new ArgumentNullException(nameof(tailName)); } name = () => tailName(false); }
//Constructor for an behavior that only has one member. This format allows a common function to be used for both formats, and a flag to alter the text //to match the required type. private protected BehaviorBase(ShortDescriptor shortDescFn) { if (shortDescFn is null) { throw new ArgumentNullException(nameof(shortDescFn)); } //doesn't matter, the value is ignored. shortDesc = () => shortDescFn(false); singleDesc = () => shortDescFn(true); }
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)); }
private OvipositorType(ShortDescriptor shortDesc, PartDescriptor <OvipositorData> longDesc, PlayerBodyPartDelegate <Ovipositor> playerDesc, OvipositorTransform transform, OvipositorRestore restore) : this(0, shortDesc, longDesc, playerDesc, transform, restore) { }