public RankData <TPlayer> HandShowdown <TPlayer>() where TPlayer : PlayerBase { var topValidHandForThisPlayer = HandLibraryHelper <TPlayer> .HandTemplates()//get available IHand management libraries in the project .FirstOrDefault(o => o.IsValid((TPlayer)this)); //get first set of winner's data for further evaluation return(topValidHandForThisPlayer?.GetRankData((TPlayer)this)); }
public static IHand <TPlayer> GetHandLib <TPlayer>(this RankData <TPlayer> rankData) where TPlayer : PlayerBase { return(HandLibraryHelper <TPlayer> .HandTemplates() .FirstOrDefault(o => o.HandCategory == rankData.HandCategory)); }