/// <reference path="OutfitItem.ts" />
/// <reference path="OutfitItemEnums.ts" />

class OutfitItemShoes extends OutfitItem implements OutfitDefinitionShoes{
	type:'shoes' = "shoes";
	style?: number;
	cut?: number;
	heels?: number=0;

	get desc():string{

		let result = `These are ${this.qualityString} quality`;

		if(this.isTrainingShoe)
			return `${result} training shoes.`;

		if(this.heels == 0)
			result += ' flat';
		else
			result += ` ${this.heelHeight} cm high`
		
		switch(this.cut){
			case 1:     result += ' shoes.';			break;
			case 2:     result += ' ankle boots.';		break;
			case 3:     result += ' calf high boots.';	break;
			case 4:     result += ' knee high boots.';	break;
			case 5:     result += ' thigh high boots.';	break;
			case 6:     result += ' groin high boots.';	break;
		}
		/*

	/*<<if getvar("$ShoStyle") == 1>>
		These shoes are considered stripper shoes.
	<<elseif getvar("$ShoStyle") == 2>>
		These shoes are considered bimbo shoes.
	<<elseif getvar("$ShoStyle") == 3>>
		These shoes are considered alternative shoes.
	<</if>>*/

	/*<<if getvar("$ShoStyle") == 1>>
		This shoe is considered stripper style and most suitable for stripping or whoring.

	<</if>>
	<<if getvar("$ShoStyle") == 2>>
		This shoe is considered bimbo style and makes your mind drift toward sexual thoughts.

	<</if>>
	<<if getvar("$ShoStyle") == 3>>
		This shoe is considered alternative style and makes you feel more assertive and aggressive.

	<</if>>*/
		return result;
	}
	
	/**
	 * Heel height in cm
	 * @readonly
	 * @type {number}
	 */
	get heelHeight():number{
		return (this.heels * 2.54).roundToDecimal(1);
	}

	get isTrainingShoe():boolean{
		return (this.vendor == 'danilovich');
	}
}