示例#1
0
 public MissionState(MissionState other, JournalMissionCompleted m)
 {
     Mission   = other.Mission;
     sys       = other.sys;
     body      = other.body;
     Completed = m;
     State     = StateTypes.Completed;
 }
示例#2
0
 public MissionState(MissionState other, JournalMissionCompleted m)      // completed mission
 {
     Mission        = other.Mission;
     Completed      = m;
     State          = StateTypes.Completed;
     MissionEndTime = m.EventTimeUTC;
     sys            = other.sys;
     body           = other.body;
 }
示例#3
0
        static public JToken setCommanderMissionCompleted(JournalMissionCompleted mission)
        {
            JObject eventData = new JObject();

            eventData["missionGameID"] = mission.MissionId;

            if (mission.Donation != null)
            {
                eventData["donationCredits"] = mission.Donation.Value;
            }
            if (mission.Reward != null)
            {
                eventData["rewardCredits"] = mission.Reward.Value;
            }

            if (mission.PermitsAwarded != null && mission.PermitsAwarded.Length > 0)
            {
                JArray ent = new JArray();
                foreach (var p in mission.PermitsAwarded)
                {
                    JObject o = new JObject();
                    o["starSystemName"] = p;
                    ent.Add(o);
                }

                eventData["rewardPermits"] = ent;
            }
            if (mission.CommodityReward != null && mission.CommodityReward.Length > 0)
            {
                JArray ent = new JArray();
                foreach (var p in mission.CommodityReward)
                {
                    JObject o = new JObject();
                    o["itemName"]  = p.Name;
                    o["itemCount"] = p.Count;
                    ent.Add(o);
                }

                eventData["rewardCommodities"] = ent;
            }
            if (mission.MaterialsReward != null && mission.MaterialsReward.Length > 0)
            {
                JArray ent = new JArray();
                foreach (var p in mission.MaterialsReward)
                {
                    JObject o = new JObject();
                    o["itemName"]  = p.Name;
                    o["itemCount"] = p.Count;
                    ent.Add(o);
                }

                eventData["rewardMaterials"] = ent;
            }

            return(Event("setCommanderMissionCompleted", mission.EventTimeUTC, eventData));
        }
示例#4
0
 public void Completed(JournalMissionCompleted m)
 {
     if (missionlist.Missions.ContainsKey(MissionList.Key(m))) // make sure not repeating, ignore if so
     {
         missionlist = new MissionList(missionlist);           // shallow copy
         missionlist.Completed(m);
     }
     else
     {
         System.Diagnostics.Debug.WriteLine("Missions: Unknown " + MissionList.Key(m));
     }
 }
示例#5
0
        public MissionState(MissionState other, JournalMissionCompleted m)      // completed mission
        {
            Mission    = other.Mission;
            Completed  = m;                                                     // full set..
            Redirected = other.Redirected;
            CargoDepot = other.CargoDepot;

            State          = StateTypes.Completed;
            MissionEndTime = m.EventTimeUTC;
            sys            = other.sys;
            body           = other.body;
        }
示例#6
0
        public void Completed(JournalMissionCompleted c)
        {
            string       key = Key(c);
            MissionState m   = history.GetLast(key);     // we must have a last entry to add

            if (m != null)
            {
                history.AddGeneration(key, new MissionState(m, c));
            }
            else
            {
                System.Diagnostics.Debug.WriteLine("Missions: Unknown " + key);
            }
        }
示例#7
0
 public static string Key(JournalMissionCompleted m)
 {
     return(m.MissionId.ToStringInvariant() + ":" + m.Name);
 }
示例#8
0
 public void Completed(JournalMissionCompleted c)
 {
     Missions[Key(c)] = new MissionState(Missions[Key(c)], c); // copy previous mission state, add completed
 }