﻿using rjw.Modules.Interactions.Defs;
using rjw.Modules.Interactions.Enums;
using rjw.Modules.Interactions.Objects;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace rjw.Modules.Interactions.Extensions
{
	public static class HediffWithGenitalPartExtensions
	{
		//Vanilla
		public static IEnumerable<ISexPartHediff> Penises(this IEnumerable<ISexPartHediff> self) =>
			self.Where(e => e.Def.genitalFamily == GenitalFamily.Penis);
		public static IEnumerable<ISexPartHediff> Vaginas(this IEnumerable<ISexPartHediff> self) =>
			self.Where(e => e.Def.genitalFamily == GenitalFamily.Vagina);
		public static IEnumerable<ISexPartHediff> Breasts(this IEnumerable<ISexPartHediff> self) =>
			self.Where(e => e.Def.genitalFamily == GenitalFamily.Breasts);
		public static IEnumerable<ISexPartHediff> Udders(this IEnumerable<ISexPartHediff> self) =>
			self.Where(e => e.Def.genitalFamily == GenitalFamily.Udders);
		public static IEnumerable<ISexPartHediff> Anuses(this IEnumerable<ISexPartHediff> self) =>
			self.Where(e => e.Def.genitalFamily == GenitalFamily.Anus);

		//Ovi
		public static IEnumerable<ISexPartHediff> FemaleOvipositors(this IEnumerable<ISexPartHediff> self) =>
			self.Where(e => e.Def.genitalFamily == GenitalFamily.FemaleOvipositor);
		public static IEnumerable<ISexPartHediff> MaleOvipositors(this IEnumerable<ISexPartHediff> self) =>
			self.Where(e => e.Def.genitalFamily == GenitalFamily.MaleOvipositor);
	}
}
