private void HitShip(BattleShip targetShip, Missile missile) { var assestprovider = new BattleshipAssestProvider(targetShip); IEnumerable <IGoalkeeper> goalkeepers = assestprovider.GetGoalkeepers(); IGoalkeeper goalkeeper = goalkeepers.FirstOrDefault(); bool hasGoalkeeper = goalkeeper != null; if (hasGoalkeeper && IsMissileCatched(goalkeeper)) { missile.SetEffect(MissileEffect.HitAndCatched); return; } MissileEffect effect = targetShip.AcceptMissile(missile); missile.SetEffect(effect); }
private bool IsMissileCatched(IGoalkeeper goalkeeper) { System.Tuple <int, string> challenge = Challenge.GetChallenge(); try { int answer = goalkeeper.AcceptChallenge(challenge.Item2); bool catched = Chance.GetChance() && answer == challenge.Item1; return(catched); } catch (Exception ex) { return(false); } }