public void ProcessSuccess(SuccessRating rating, Instruction action) { if (action != null) { ResultTextList.Add(string.Format("{0} at {1}", rating.ToString(), action.Action.ToString())); action.IsSuccess = rating; switch (action.Action) { case ActionType.Abduct: switch (action.IsSuccess) { case SuccessRating.GoodSuccess: case SuccessRating.GreatSuccess: case SuccessRating.NormalSuccess: int newIndex = 0; for (int i = 0; i < 8; i++) { newIndex = i; if (cultists[i] == null) { i = 10; } } cultists[newIndex] = new Cultist() { PersonID = (int)action.TargetID, Instruction = null }; ++numberOfCultists; sacrificeCandidates.Remove(sacrificeCandidates.Find(sa => sa.PersonID == action.TargetID)); break; case SuccessRating.BadFailure: case SuccessRating.TerribleFailure: case SuccessRating.Failure: break; } peoplePool.activePool[(int)action.TargetID].Active = false; break; case ActionType.Investigate: switch (action.IsSuccess) { case SuccessRating.GoodSuccess: case SuccessRating.GreatSuccess: case SuccessRating.NormalSuccess: if (sacrificeCandidates.Exists(sa => sa.PersonID == action.TargetID)) { var sacrifice = sacrificeCandidates.Find(sa => sa.PersonID == action.TargetID); sacrifice.IndepthInvestigated = true; Person sac = GetPerson(sacrifice.PersonID); sac.FlavourText = flavourPool.GetInvestigationValue(sac.assets.Profession, sac.assets.Sin) + " " + flavourPool.GetInvestigationValue(sac.assets.Profession, sac.assets.Virtue); } else { var cultist = cultistCandidates.Find(cult => cult.PersonID == action.TargetID); cultist.IndepthInvestigated = true; Person cu = GetPerson(cultist.PersonID); cu.FlavourText = flavourPool.GetInvestigationValue(cu.assets.Profession, cu.assets.Sin) + " " + flavourPool.GetInvestigationValue(cu.assets.Profession, cu.assets.Virtue); } break; case SuccessRating.BadFailure: case SuccessRating.TerribleFailure: case SuccessRating.Failure: break; } break; case ActionType.Recruit: switch (action.IsSuccess) { case SuccessRating.GoodSuccess: case SuccessRating.GreatSuccess: case SuccessRating.NormalSuccess: int newIndex = 0; for (int i = 0; i < 8; i++) { newIndex = i; if (cultists[i] == null) { i = 10; } } cultists[newIndex] = new Cultist() { PersonID = (int)action.TargetID, Instruction = null }; ++numberOfCultists; break; case SuccessRating.BadFailure: case SuccessRating.TerribleFailure: case SuccessRating.Failure: break; } peoplePool.activePool[(int)action.TargetID].Active = false; cultistCandidates.Remove(cultistCandidates.Find(cult => cult.PersonID == action.TargetID)); break; case ActionType.None: break; default: break; } } }