示例#1
0
        public void GetMission(DataRow pDR)
        {
            mcMission tmM = new mcMission(pDR);

            Missions.Add(tmM);
            keyToMission.Add(tmM.Key, tmM);
        }
        /// <summary>
        /// Loads all player missions, combining the cd client and uchu database into mission instances
        /// </summary>
        private async Task LoadAsync()
        {
            if (GameObject is Player player)
            {
                await using var uchuContext = new UchuContext();

                // On load, load all the missions from database and store them in memory
                var missions = await uchuContext.Missions.Where(
                    m => m.CharacterId == GameObject.Id
                    ).ToArrayAsync();

                foreach (var mission in missions)
                {
                    var instance = new MissionInstance(mission.MissionId, player);
                    await instance.LoadAsync(uchuContext);

                    lock (Missions)
                    {
                        Missions.Add(instance);
                    }
                }
                this._loaded = true;

                Listen(player.OnRespondToMission, async(missionId, receiver, rewardLot) =>
                {
                    await RespondToMissionAsync(missionId, receiver, rewardLot);
                });
            }
        }
示例#3
0
 public override void AfterConstruction()
 {
     base.AfterConstruction();
     StartOn = DateTime.Now;
     EndOn   = StartOn.AddHours(1);
     Missions.Add(Session.GetObjectByKey <Mission>(SecuritySystem.CurrentUserId));
 }
示例#4
0
 public virtual Mission AddMission(Mission mission)
 {
     mission.FlightLog = this;
     mission.MarkedUpdated();
     Missions.Add(mission);
     mission.Validate();
     return(mission);
 }
示例#5
0
        private void OnMissionCreated(Mission mission)
        {
            Missions.Add(mission);
            PlayableCell cell = _Grid.GetCell(mission.CellKey);

            cell.ClientID = mission.ClientID;
            cell.TargetID = mission.TargetID;
            Messenger <PlayableCell> .Broadcast(PlayableCell.EVENT_CELL_UPDATED, cell);
        }
        /// <summary>
        /// Creates and loads a new mission securely into the mission inventory
        /// </summary>
        /// <param name="missionId">The missionId to create a mission for</param>
        /// <param name="gameObject">The game object to assign the mission to</param>
        /// <returns>The newly created mission instance</returns>
        public async Task <MissionInstance> AddMissionAsync(int missionId, GameObject gameObject)
        {
            var mission = new MissionInstance(missionId, (Player)GameObject);
            await mission.LoadAsync();

            lock (Missions) {
                Missions.Add(mission);
            }

            return(mission);
        }
示例#7
0
 public void AddTask(Mission task)
 {
     Missions.Add(task);
 }
示例#8
0
 private void AddMission(MissionTemplate mission)
 {
     Missions.Add(mission.Name, mission);
 }
示例#9
0
        public static void Initialize()
        {
            var httpClient = new HttpClient();

            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "http://drops.warframestat.us/data/all.json");

            var httpResponse = httpClient.SendAsync(request);

            httpResponse.Wait();
            var result  = httpResponse.Result;
            var content = result.Content.ReadAsStringAsync().Result;

            var response = JsonConvert.DeserializeObject <WarframeDropDataModels.AllDataReponse>(content);

            #region Missions
            Missions.Clear();

            var missionRewardsEnumerator = response.MissionRewards.GetEnumerator();

            while (missionRewardsEnumerator.MoveNext())
            {
                var planetKeyValuePair = missionRewardsEnumerator.Current;

                var missionsEnumerator = planetKeyValuePair.Value.GetEnumerator();

                while (missionsEnumerator.MoveNext())
                {
                    var missionModelKeyValuePair = missionsEnumerator.Current;

                    var mission = new SearchResultModels.Mission
                    {
                        Planet = planetKeyValuePair.Key,
                        Name   = missionModelKeyValuePair.Key,
                        Type   = missionModelKeyValuePair.Value.GameMode
                    };

                    for (int i = 0; i < missionModelKeyValuePair.Value.MissionRewards.Count; i++)
                    {
                        var missionReward = missionModelKeyValuePair.Value.MissionRewards[i];

                        if (mission.Rewards == null)
                        {
                            mission.Rewards = new List <SearchResultModels.Item>();
                        }

                        mission.Rewards.Add(missionReward.ToItem());
                    }

                    if (missionModelKeyValuePair.Value.MissionRewards.A != null)
                    {
                        for (int i = 0; i < missionModelKeyValuePair.Value.MissionRewards.A.Count; i++)
                        {
                            var missionReward = missionModelKeyValuePair.Value.MissionRewards.A[i];

                            if (mission.RotationA == null)
                            {
                                mission.RotationA = new List <SearchResultModels.Item>();
                            }

                            mission.RotationA.Add(missionReward.ToItem());
                        }
                    }

                    if (missionModelKeyValuePair.Value.MissionRewards.B != null)
                    {
                        for (int i = 0; i < missionModelKeyValuePair.Value.MissionRewards.B.Count; i++)
                        {
                            var missionReward = missionModelKeyValuePair.Value.MissionRewards.B[i];

                            if (mission.RotationB == null)
                            {
                                mission.RotationB = new List <SearchResultModels.Item>();
                            }

                            mission.RotationB.Add(missionReward.ToItem());
                        }
                    }

                    if (missionModelKeyValuePair.Value.MissionRewards.C != null)
                    {
                        for (int i = 0; i < missionModelKeyValuePair.Value.MissionRewards.C.Count; i++)
                        {
                            var missionReward = missionModelKeyValuePair.Value.MissionRewards.C[i];

                            if (mission.RotationC == null)
                            {
                                mission.RotationC = new List <SearchResultModels.Item>();
                            }

                            mission.RotationC.Add(missionReward.ToItem());
                        }
                    }

                    Missions.Add(mission);
                }
            }
            #endregion

            #region Bounties
            Bounties.Clear();

            ConvertBounties(response.CetusBountyRewards, "Earth");
            ConvertBounties(response.SolarisBountyRewards, "Venus");
            ConvertBounties(response.DeimosRewards, "Deimos");
            #endregion

            #region Relics
            Relics.Clear();

            for (int i = 0; i < response.Relics.Count; i++)
            {
                var relicModel = response.Relics[i];

                if (i == 0 || i % 4 != 0)
                {
                    continue;
                }

                var relic = new SearchResultModels.Relic
                {
                    Era         = relicModel.Tier,
                    Description = relicModel.RelicName,
                    Locations   = new List <SearchResultModels.ItemLocation>()
                };

                relic.Rewards = relicModel.Rewards.Select(j => j.ToItem()).OrderByDescending(i => i.DropChance).ToList();

                var relicName = $"{relic.Era} {relic.Description} Relic";

                var locations = Missions.Where(j => j.Rewards?.Any(k => k.Name == relicName) == true).ToList();

                for (int j = 0; j < locations.Count; j++)
                {
                    var location = locations[j];

                    var chance = location.Rewards.FirstOrDefault(k => k.Name == relicName).DropChance;

                    relic.Locations.Add(new SearchResultModels.ItemLocation
                    {
                        Mission = location,
                        Chance  = chance
                    });
                }

                locations = Missions.Where(j => j.RotationA?.Any(k => k.Name == relicName) == true).ToList();

                for (int j = 0; j < locations.Count; j++)
                {
                    var location = locations[j];

                    var chance = location.RotationA.FirstOrDefault(k => k.Name == relicName).DropChance;

                    relic.Locations.Add(new SearchResultModels.ItemLocation
                    {
                        Rotation = "A",
                        Chance   = chance,
                        Mission  = location
                    });
                }

                locations = Missions.Where(j => j.RotationB?.Any(k => k.Name == relicName) == true).ToList();

                for (int j = 0; j < locations.Count; j++)
                {
                    var location = locations[j];

                    var chance = location.RotationB.FirstOrDefault(k => k.Name == relicName).DropChance;

                    relic.Locations.Add(new SearchResultModels.ItemLocation
                    {
                        Rotation = "B",
                        Chance   = chance,
                        Mission  = location
                    });
                }

                locations = Missions.Where(j => j.RotationC?.Any(k => k.Name == relicName) == true).ToList();

                for (int j = 0; j < locations.Count; j++)
                {
                    var location = locations[j];

                    var chance = location.RotationC.FirstOrDefault(k => k.Name == relicName).DropChance;

                    relic.Locations.Add(new SearchResultModels.ItemLocation
                    {
                        Rotation = "C",
                        Chance   = chance,
                        Mission  = location
                    });
                }

                relic.Locations = relic.Locations.OrderByDescending(i => i.Chance).ToList();

                Relics.Add(relic);
            }
            #endregion
        }
示例#10
0
 public Consultant AddMission(Mission m)
 {
     m.Consultant = this;
     Missions.Add(m);
     return(this);
 }
 /// <summary>
 /// Adds a mission for unit testing.
 /// </summary>
 /// <param name="mission">The test mission to add.</param>
 public void AddTestMission(MissionInstance mission)
 {
     lock (Missions) {
         Missions.Add(mission);
     }
 }
 public void addMission(MissionAcceptedEvent newMission)
 {
     Missions.Add(newMission);
 }