///
///
///
///
///
class HumanoidExtremity extends Bodypart {
public nailsPainted : boolean = false;
public nailColor = 0;
public static nailColorNames = ['none', 'red', 'pink'];
public static getColor (index : number) {
return HumanoidExtremity.nailColorNames[index];
}
public constructor (options? : ThingOptions) {
super(options);
this.addGetAlterations((thing) => {
return {
Painted : this.nailsPainted,
Color : this.nailColor
}
});
this.addSetAlterations((thing, changes) => {
this.nailsPainted = changes.Painted;
this.nailColor = changes.Color;
});
}
public getSluttiness () {
return this.getGenderValue();
}
public getGenderValue () {
let nailPaintedCorrection = this.nailColor * 50; // TODO: Don't leave this as-is... there should be plenty of colors.
let nailPaintedCorrectionWeight = this.nailsPainted ? 3 : 0;
let gv = this.genderValue;
let gw = this.genderWeight;
return ((gv * gw) + (nailPaintedCorrection * nailPaintedCorrectionWeight)) / (gw + nailPaintedCorrectionWeight);
}
public arrangeGenderValue (gv : number) {
this.genderValue = gv; // TODO: This will be extremity size/appearance. Maybe make it more detailed if interested.
this.nailsPainted = gv > 60;
if (this.nailsPainted) {
if (gv > 70) {
this.nailColor = 2;
} else {
this.nailColor = 1;
}
}
( this.getPartOne()).invalidateCaches();
}
}