示例#1
0
        public void UpdateProvisionPriority(ResourcePackage resourcePackage, RequestPriority priority)
        {
            var provisions = Provisions.ToArray();

            foreach (var provision in provisions)
            {
                if (provision == resourcePackage)
                {
                    Provisions.UpdatePriority(provision, priority);
                }
            }
        }
示例#2
0
        public ResourcePackage RequestResource(Structure requestingStructure, ResourceType resourceType, RequestPriority priority)
        {
            var providedPackage = Provisions.Dequeue(resourceType, rp => HasPathFilter(rp.StartStructure, requestingStructure));

            if (providedPackage != null)
            {
                providedPackage.DestinationStructure = requestingStructure;
                providedPackage.SpecifyResourceType(resourceType);
                providedPackage.Move();
                return(providedPackage);
            }
            var resourcePackage = new ResourcePackage(resourceType, World.PathFinder, World.GameSettings.GameplaySettings)
            {
                DestinationStructure = requestingStructure
            };

            AddPackage(resourcePackage);
            Requests.Enqueue(resourcePackage, priority);
            return(resourcePackage);
        }
示例#3
0
 private void ProcessProvisionsUse(Provisions provisions)
 {
     if (provisions.Id == 22 && _player.Lives < 3)
     {
         _player.Lives            += provisions.Value;
         _player.ExperiencePoints += provisions.ExperiencePoints;
     }
     else if (provisions.Id != 22 && _player.Health < 100)
     {
         _player.ExperiencePoints += provisions.ExperiencePoints;
         _player.Health           += provisions.Value;
         if (_player.Health > 100)
         {
             _player.Health = 100;
         }
     }
     else
     {
     }
     OnPropertyChanged(nameof(Player));
     OnPropertyChanged(nameof(GameItem));
 }
        private void GetDays()
        {
            using (SqlConnection connection = new SqlConnection(
                       Properties.Settings.Default.connectionString))
            {
                using (SqlCommand command = connection.CreateCommand())
                {
                    command.CommandType = System.Data.CommandType.StoredProcedure;
                    command.CommandText = "p_get_user_days";

                    SqlParameter dp = command.Parameters.Add("@UserId", SqlDbType.VarChar);
                    dp.Value = _user.Id;

                    dp       = command.Parameters.Add("@ProvisionId", SqlDbType.VarChar);
                    dp.Value = SelectedProvision is null ? null : SelectedProvision.Id.ToString();

                    connection.Open();

                    using (SqlDataReader dataReader = command.ExecuteReader())
                    {
                        if (dataReader.HasRows)
                        {
                            int idx_Date          = dataReader.GetOrdinal("Date");
                            int idx_ProvisionName = dataReader.GetOrdinal("ProvisionName");
                            int idx_Status        = dataReader.GetOrdinal("Status");
                            int idx_Id            = dataReader.GetOrdinal("Id");
                            int idx_Description   = dataReader.GetOrdinal("Description");

                            Days = new ObservableCollection <Day>();

                            while (dataReader.Read())
                            {
                                var day = new Day();
                                if (!dataReader.IsDBNull(idx_Date))
                                {
                                    day.Date = dataReader.GetDateTime(idx_Date);
                                }
                                if (!dataReader.IsDBNull(idx_ProvisionName))
                                {
                                    day.ProvisionName = dataReader.GetString(idx_ProvisionName);
                                }
                                if (!dataReader.IsDBNull(idx_Status))
                                {
                                    day.Status = dataReader.GetString(idx_Status);
                                }
                                if (!dataReader.IsDBNull(idx_Id))
                                {
                                    day.Id = dataReader.GetGuid(idx_Id);
                                }
                                if (!dataReader.IsDBNull(idx_Description))
                                {
                                    day.Description = dataReader.GetString(idx_Description);
                                }
                                Day.Statuses   = Statuses;
                                Day.Provisions = Provisions.Select(p => p.Name).ToList();
                                Days.Add(day);
                            }

                            DaysGrid.DataContext = Days;
                        }
                        else
                        {
                            Day.Statuses         = Statuses;
                            Day.Provisions       = Provisions.Select(p => p.Name).ToList();
                            Days                 = new ObservableCollection <Day>();
                            DaysGrid.DataContext = Days;
                        }
                    }
                }
            }
        }