///
///
///
///
///
class HumanoidSkin extends Bodypart {
public sorenessWeight = 0;
public genderWeight = Bodypart.WEIGHT_MEDIUM;
public slots : Array = [
Humanoid.SLOT_FACE, Humanoid.SLOT_NECK, Humanoid.SLOT_SHOULDERS,
Humanoid.SLOT_ARMS, Humanoid.SLOT_HANDS, Humanoid.SLOT_UPPER_CHEST,
Humanoid.SLOT_MIDRIFF, Humanoid.SLOT_WAIST, Humanoid.SLOT_BACK,
Humanoid.SLOT_HIPS, Humanoid.SLOT_BUTT, Humanoid.SLOT_LEG_UPPER,
Humanoid.SLOT_LEG_LOWER
];
public skinSoftness = 5; // 0 to 10, 0 being rough and 10 being silky
public skinHairiness = 2; // 0 to 10, 10 being literal gorilla and 0 being smooth everywhere, 1~2 probably some armpit or something
public constructor (options? : ThingOptions) {
super(options);
this.addGetAlterations((thing) => {
return {
Softness : this.skinSoftness,
Hairiness : this.skinHairiness
}
});
this.addSetAlterations((thing, changes) => {
this.skinSoftness = changes.Softness;
this.skinHairiness = changes.Hairiness;
});
}
public getSluttiness () {
return this.getGenderValue();
}
public getDescription () {
let owner = this.getPartOne();
let green = (owner.getStat(Attributes.Corruption) > 50);
let say = new Say("Your skin is ");
if (this.skinSoftness > 7) {
say.add("perfectly smooth");
} else if (this.skinSoftness > 4) {
say.add("smooth");
} else {
say.add("rough");
}
say.add(" and ");
if (this.skinHairiness > 8) {
say.add("hairy, like a gorilla's")
} else if (this.skinHairiness > 6) {
say.add("hairy")
} else if (this.skinHairiness > 3) {
say.add("somewhat hairless");
} else {
say.add("completely hairless");
}
say.add(".");
if (green) {
say.add(" The taint of your corruption has turned your skin green, like an orc's.")
}
return say;
}
public getGenderValue () {
let softnessRank = this.skinSoftness * 100;
let hairinessRank = 1000 - (this.skinHairiness * 100);
return (softnessRank + hairinessRank) / 20;
}
public arrangeGenderValue (genderValue : number) {
let ideal = genderValue / 10;
this.skinHairiness= 10 - Math.round(ideal);
this.skinSoftness = Math.round(ideal);
( this.getPartOne()).invalidateCaches();
}
}