// the system triggers a mission public bool TriggeredMissionStart(Character character, bool spreadInGang, int missionId, MissionLocation location, int level, out MissionInProgress missionInProgress) { Logger.Info("trying to trigger missionId: " + missionId + " characterId:" + character.Id); Mission mission; _missionDataCache.GetMissionById(missionId, out mission).ThrowIfFalse(ErrorCodes.ItemNotFound); var resolved = MissionAdministrator.StartMission(character, spreadInGang, mission, location, level, out missionInProgress); return(resolved); }
public bool StartMission(Character character, bool spreadInGang, Mission mission, MissionLocation location, int level, out Dictionary <string, object> info) { //add the new mission in progress, set things in motion MissionInProgress missionInProgress; var resolved = MissionAdministrator.StartMission(character, spreadInGang, mission, location, level, out missionInProgress); if (!resolved) { info = new Dictionary <string, object>(); return(false); } Transaction.Current.OnCommited(() => GetOptionsByRequest(character, missionInProgress.myLocation)); info = new Dictionary <string, object> { { k.mission, missionInProgress.ToDictionary() }, }; return(true); }