コード例 #1
0
        /// <summary> Creates a new manager and loads settings stored in the settings file. </summary>
        /// <param name="generateDatabase"> Whether to read data from JSON instead of the database. </param>
        /// <param name="readOnlyJson"> Whether to generate the database. </param>
        public Manager
        (
            IWarThunderFileManager fileManager,
            IWarThunderFileReader fileReader,
            IWarThunderSettingsManager settingsManager,
            IParser parser,
            IUnpacker unpacker,
            IConverter converter,
            IWarThunderJsonHelper jsonHelper,
            ICsvDeserializer csvDeserializer,
            IDataRepositoryFactory dataRepositoryFactory,
            IRandomiser randomizer,
            IVehicleSelector vehicleSelector,
            IPresetGenerator presetGenerator,
            IThunderSkillParser thunderSkillParser,
            bool generateDatabase,
            bool readOnlyJson,
            bool readPreviouslyUnpackedJson,
            params IConfiguredLogger[] loggers
        ) : base(EOrganizationLogCategory.Manager, loggers)
        {
            _generateDatabase           = generateDatabase;
            _readOnlyJson               = readOnlyJson;
            _readPreviouslyUnpackedJson = readPreviouslyUnpackedJson;
            _startupConfiguration       = GetStartupConfiguration(_generateDatabase, _readOnlyJson, _readPreviouslyUnpackedJson);
            _excludedGaijinIdParts      = new List <string>()
            {
                "_football",
                "germ_panzerkampflaufer_565_r",
                "germ_panzerkampflaufer_565_r_2",
                "po-2_nw",
                "_race",
                "sdi_",
                "_space_suit",
                "toon_",
                "_tutorial",
                "ucav_assault",
                "ucav_scout",
                "uk_centaur_aa_mk_",
                "us_m35",
                "us_m35_2",
                "ussr_sht_1",
                "ussr_sht_1_2",
            };
            _fileManager           = fileManager;
            _fileReader            = fileReader;
            _parser                = parser;
            _unpacker              = unpacker;
            _converter             = converter;
            _jsonHelper            = jsonHelper;
            _csvDeserializer       = csvDeserializer;
            _dataRepositoryFactory = dataRepositoryFactory;
            _randomizer            = randomizer;
            _vehicleSelector       = vehicleSelector;
            _presetGenerator       = presetGenerator;
            _thunderSkillParser    = thunderSkillParser;

            _cache = new List <IPersistentObject>();

            PlayableVehicles = new Dictionary <string, IVehicle>();
コード例 #2
0
        /// <summary> Creates a new vehicle selector. </summary>
        /// <param name="randomiser"> An instance of a randomiser. </param>
        /// <param name="loggers"> Instances of loggers. </param>
        public VehicleSelector(IRandomiser randomiser, params IConfiguredLogger[] loggers)
            : base(EOrganizationLogCategory.VehicleSelector, loggers)
        {
            _randomiser = randomiser;

            LogDebug(ECoreLogMessage.Created.FormatFluently(EOrganizationLogCategory.VehicleSelector));
        }
コード例 #3
0
ファイル: Stats.cs プロジェクト: Staphill/ZLand
        public Stats(INotificiationService notificiationService, IRandomiser randomiser)
        {
            NotificiationService = notificiationService;
            Randomiser           = randomiser;
            notificiationService.Notify("Generating stats for actor");
            var statsPool = Randomiser.RandomInt(100, 160);

            notificiationService.Notify(string.Format("StatsPool: {0}", statsPool));
            var randomStats = randomiser.RandomIntArray(1, 20, statsPool, 8);

            Intelligence = randomStats[0];
            notificiationService.Notify(string.Format("Intelligence: {0}", Intelligence));
            Wisdom = randomStats[1];
            notificiationService.Notify(string.Format("Wisdom: {0}", Wisdom));
            Strength = randomStats[2];
            notificiationService.Notify(string.Format("Strength: {0}", Strength));
            Dexterity = randomStats[3];
            notificiationService.Notify(string.Format("Dexterity: {0}", Dexterity));
            Constitution = randomStats[4];
            notificiationService.Notify(string.Format("Constitution: {0}", Constitution));
            Agility = randomStats[5];
            notificiationService.Notify(string.Format("Agility: {0}", Agility));
            Luck = randomStats[6];
            notificiationService.Notify(string.Format("Luck: {0}", Luck));
            Charisma = randomStats[7];
            notificiationService.Notify(string.Format("Charisma: {0}", Charisma));
            ValidateAndThrowExceptionIfErrors();
        }
コード例 #4
0
        /// <summary> Creates a new manager and loads settings stored in the <see cref="EWpfClientFile.Settings"/> file. </summary>
        /// <param name="generateDatabase"> Whether to read data from JSON instead of the database. </param>
        /// <param name="readOnlyJson"> Whether to generate the database. </param>
        /// <param name="readPreviouslyUnpackedJson"> Whether to extract game files. </param>
        public WpfClientManager
        (
            IWarThunderFileManager fileManager,
            IWarThunderFileReader fileReader,
            IWarThunderSettingsManager settingsManager,
            IParser parser,
            IUnpacker unpacker,
            IConverter converter,
            IWarThunderJsonHelper jsonHelper,
            ICsvDeserializer csvDeserializer,
            IDataRepositoryFactory dataRepositoryFactory,
            IRandomiser randomizer,
            IVehicleSelector vehicleSelector,
            IPresetGenerator presetGenerator,
            bool generateDatabase,
            bool readOnlyJson,
            bool readPreviouslyUnpackedJson,
            params IConfiguredLogger[] loggers
        ) : base(fileManager, fileReader, settingsManager, parser, unpacker, converter, jsonHelper, csvDeserializer, dataRepositoryFactory, randomizer, vehicleSelector, presetGenerator, generateDatabase, readOnlyJson, readPreviouslyUnpackedJson, loggers)
        {
            _flagImageSources             = new Dictionary <ECountry, ImageSource>();
            _vehicleIconBitmapSources     = new ConcurrentDictionary <string, BitmapSource>();
            _vehiclePortraitBitmapSources = new ConcurrentDictionary <string, BitmapSource>();

            ProcessVehicleImages = (vehicle) => { GetIconBitmapSource(vehicle); GetPortraitBitmapSource(vehicle); };
        }
コード例 #5
0
ファイル: TumblrModule.cs プロジェクト: sbrydon/Norbert
 public void Loaded(IConfigLoader configLoader, IChatClient chatClient, 
     IHttpClient httpClient, IFileSystem fileSystem, IRandomiser randomiser)
 {
     var config = LoadConfig(configLoader);
     var tumblrClient = new TumblrClient(httpClient, config.ApiKey);
     _tumblrListener = new TumblrListener(chatClient, tumblrClient, randomiser);
 }
コード例 #6
0
ファイル: MapsModule.cs プロジェクト: sbrydon/Norbert
 public void Loaded(IConfigLoader configLoader, IChatClient chatClient, 
     IHttpClient httpClient, IFileSystem fileSystem, IRandomiser randomiser)
 {
     var config = LoadConfig(configLoader);
     var mapsClient = new MapsClient(httpClient, config.ApiKey);
     _mapListener = new MapListener(chatClient, mapsClient);
 }
コード例 #7
0
ファイル: TumblrListener.cs プロジェクト: sbrydon/Norbert
        public TumblrListener(IChatClient chatClient, ITumblrClient tumblrClient, IRandomiser randomiser)
        {
            _chatClient = chatClient;
            _tumblrClient = tumblrClient;
            _randomiser = randomiser;

            _chatClient.CommandReceived += OnCommandReceived;
        }
コード例 #8
0
        /// <summary> Creates a new randomizer. </summary>
        /// <param name="randomiser"> An instance of a randomiser. </param>
        /// <param name="loggers"> Instances of loggers. </param>
        public PresetGenerator(IRandomiser randomiser, IVehicleSelector vehicleSelector, params IConfiguredLogger[] loggers)
            : base(EOrganizationLogCategory.PresetGenerator, loggers)
        {
            _randomiser      = randomiser;
            _vehicleSelector = vehicleSelector;

            LogDebug(ECoreLogMessage.Created.Format(EOrganizationLogCategory.PresetGenerator));
        }
コード例 #9
0
ファイル: SingListener.cs プロジェクト: sbrydon/Norbert
        public SingListener(IChatClient chatClient, IMusixClient musixClient, IRandomiser randomiser)
        {
            _chatClient = chatClient;
            _musixClient = musixClient;
            _randomiser = randomiser;

            _chatClient.CommandReceived += OnCommandReceived;
        }
コード例 #10
0
ファイル: ModuleManager.cs プロジェクト: sbrydon/Norbert
 public ModuleManager(IConfigLoader configLoader, IFileSystem fileSystem, 
     IChatClient chatClient, IHttpClient httpClient, IRandomiser randomiser)
 {
     _configLoader = configLoader;
     _fileSystem = fileSystem;
     _chatClient = chatClient;
     _httpClient = httpClient;
     _randomiser = randomiser;
 }
コード例 #11
0
 protected Attack(int baseCost, string name, int range, double minDamage, double maxDamage, DamageType damageType, double criticalHitChance, double criticalMissChance, IRandomiser randomiser)
     : base(baseCost, name, range)
 {
     MinDamage          = minDamage;
     MaxDamage          = maxDamage;
     DamageType         = damageType;
     CriticalHitChance  = criticalHitChance;
     CriticalMissChance = criticalMissChance;
     Randomiser         = randomiser;
 }
コード例 #12
0
 public CountriesGenerator
 (
     IListRandomiser listRandomiser,
     IRandomiser <int> intRandomiser,
     IMultipleValuesRandomiser <int> multipleValuesRandomiser
 )
 {
     _listRandomiser           = listRandomiser;
     _intRandomiser            = intRandomiser;
     _multipleValuesRandomiser = multipleValuesRandomiser;
 }
コード例 #13
0
        /// <summary> Initialises helpers. </summary>
        /// <param name="generateDatabase"> Whether to read data from JSON instead of the database. </param>
        /// <param name="readOnlyJson"> Whether to generate the database. </param>
        /// <param name="readPreviouslyUnpackedJson"> Whether to extract game files. </param>
        private static void InitialiseHelpers(bool generateDatabase, bool readOnlyJson, bool readPreviouslyUnpackedJson)
        {
            var settingsTypes = new List <Type>
            {
                typeof(Settings),
                typeof(WpfSettings),
            };

            var requiredSettingNames = settingsTypes
                                       .SelectMany(settingsType => settingsType.GetProperties(BindingFlags.Public | BindingFlags.Static))
                                       .Where(settingProperty => settingProperty.GetCustomAttribute <RequiredSettingAttribute>() is RequiredSettingAttribute)
                                       .Select(settingProperty => settingProperty.Name);

            WindowFactory = new WindowFactory(Loggers);

            FileManager            = new WarThunderFileManager(Loggers);
            FileReader             = new WarThunderFileReader(Loggers);
            SettingsManager        = new WpfClientSettingsManager(FileManager, EWpfClientFile.Settings, requiredSettingNames, Loggers);
            _parser                = new Parser(Loggers);
            _unpacker              = new Unpacker(FileManager, Loggers);
            _dataRepositoryFactory = new DataRepositoryFactoryWarThunder(Loggers);
            _converter             = new Converter(Loggers);
            _jsonHelper            = new WarThunderJsonHelper(Loggers);
            _csvDeserializer       = new CsvDeserializer(Loggers);
            _randomizer            = new CustomRandomiserWithNormalisation(Loggers);
            _vehicleSelector       = new VehicleSelector(_randomizer, Loggers);
            _presetGenerator       = new PresetGenerator(_randomizer, _vehicleSelector, Loggers);
            _thunderSkillParser    = new ThunderSkillParser(Loggers);

            Manager = new WpfClientManager
                      (
                FileManager,
                FileReader,
                SettingsManager,
                _parser,
                _unpacker,
                _converter,
                _jsonHelper,
                _csvDeserializer,
                _dataRepositoryFactory,
                _randomizer,
                _vehicleSelector,
                _presetGenerator,
                _thunderSkillParser,
                generateDatabase,
                readOnlyJson,
                readPreviouslyUnpackedJson,
                Loggers
                      );
            InitialiseLocalisationManager();
        }
コード例 #14
0
 public Crowbar(IRandomiser randomiser)
     : base(name: "Crowbar",
            description: "Ask Gordon Freeman",
            baseValue: 40,
            weight: 2,
            durability: 1,
            actions: new List <Action>
 {
     new MeleAttack(1, "Swing", 1, 3, DamageType.BluntForce(), 0.05, 0.05, randomiser),
     new MeleAttack(2, "Powerful Swing", 2, 8, DamageType.BluntForce(), 0.07, 0.09, randomiser)
 },
            isTwoHanded: true)
 {
 }
コード例 #15
0
ファイル: Stats.cs プロジェクト: Staphill/ZLand
 public Stats(int intelligence, int wisdom, int dexterity, int strength, int constitution, int agility, int luck, int charisma, INotificiationService notificiationService, IRandomiser randomiser)
 {
     Intelligence         = intelligence;
     Wisdom               = wisdom;
     Dexterity            = dexterity;
     Strength             = strength;
     Constitution         = constitution;
     Agility              = agility;
     Luck                 = luck;
     Charisma             = charisma;
     NotificiationService = notificiationService;
     Randomiser           = randomiser;
     ValidateAndThrowExceptionIfErrors();
 }
コード例 #16
0
        /// <summary> Randomizes contents of the collection using the given instance of a randomizer. </summary>
        /// <typeparam name="T"> The type of collection elements. </typeparam>
        /// <param name="collection"> The collection to randomize. </param>
        /// <param name="randomizer"> The instance of a randomizer to randomize the collection with. </param>
        /// <returns></returns>
        public static IEnumerable <T> Randomize <T>(this IEnumerable <T> collection, IRandomiser randomizer)
        {
            var sourceList     = collection.ToList();
            var randomizedList = new List <T>();

            while (randomizedList.Count() < collection.Count())
            {
                var selection = randomizer.GetRandom(sourceList);

                randomizedList.Add(selection);
                sourceList.Remove(selection);
            }

            return(randomizedList);
        }
コード例 #17
0
 public PhysicalFeatureSetGenerator(IRandomiser <Rating> randomiser)
 {
     _randomiser = randomiser;
 }
コード例 #18
0
 public ListRandomiser(IRandomiser <int> intRandomiser)
 {
     _intRandomiser = intRandomiser;
 }
コード例 #19
0
 public GenderGenerator(IRandomiser <int> intRandomiser)
 {
     _intRandomiser = intRandomiser;
 }
コード例 #20
0
 public PunctuationRemover(IRandomiser randomiser, IOptions <Thresholds> thresholds)
 {
     _randomiser = randomiser;
     _thresholds = thresholds.Value;
 }
コード例 #21
0
 public DateOfBirthGenerator(IGame game, IRandomiser <PersonAge> ageRandomiser)
 {
     _game          = game ?? throw new ArgumentNullException(nameof(game));
     _ageRandomiser = ageRandomiser;
 }
コード例 #22
0
 public void Initialize()
 {
     _randomizer      = new CustomRandomiser(Presets.Logger);
     _vehicleSelector = new VehicleSelector(_randomizer, Presets.Logger);
 }
コード例 #23
0
 public WordMuddler(IRandomiser randomiser, IOptions <Thresholds> thresholds)
 {
     _randomiser = randomiser;
     _thresholds = thresholds.Value;
 }
コード例 #24
0
 public PercentileGenerator(IRandomiser <int> intRandomiser)
 {
     this._intRandomiser = intRandomiser;
 }
コード例 #25
0
        /// <summary> Creates a new manager and loads settings stored in the settings file. </summary>
        /// <param name="generateDatabase"> Whether to read data from JSON instead of the database. </param>
        /// <param name="readOnlyJson"> Whether to generate the database. </param>
        public Manager
        (
            IWarThunderFileManager fileManager,
            IWarThunderFileReader fileReader,
            IWarThunderSettingsManager settingsManager,
            IParser parser,
            IUnpacker unpacker,
            IConverter converter,
            IWarThunderJsonHelper jsonHelper,
            ICsvDeserializer csvDeserializer,
            IDataRepositoryFactory dataRepositoryFactory,
            IRandomiser randomizer,
            IVehicleSelector vehicleSelector,
            IPresetGenerator presetGenerator,
            bool generateDatabase,
            bool readOnlyJson,
            bool readPreviouslyUnpackedJson,
            params IConfiguredLogger[] loggers
        ) : base(EOrganizationLogCategory.Manager, loggers)
        {
            _generateDatabase           = generateDatabase;
            _readOnlyJson               = readOnlyJson;
            _readPreviouslyUnpackedJson = readPreviouslyUnpackedJson;
            _startupConfiguration       = GetStartupConfiguration(_generateDatabase, _readOnlyJson, _readPreviouslyUnpackedJson);
            _excludedGaijinIdParts      = new List <string>()
            {
                "_football",
                "germ_panzerkampflaufer_565_r",
                "germ_panzerkampflaufer_565_r_2",
                "po-2_nw",
                "_race",
                "_space_suit",
                "_tutorial",
                "uk_centaur_aa_mk_",
                "us_m35",
                "us_m35_2",
                "ussr_sht_1",
                "ussr_sht_1_2",
            };
            _fileManager           = fileManager;
            _fileReader            = fileReader;
            _parser                = parser;
            _unpacker              = unpacker;
            _converter             = converter;
            _jsonHelper            = jsonHelper;
            _csvDeserializer       = csvDeserializer;
            _dataRepositoryFactory = dataRepositoryFactory;
            _randomizer            = randomizer;
            _vehicleSelector       = vehicleSelector;
            _presetGenerator       = presetGenerator;

            _cache           = new List <IPersistentObject>();
            PlayableVehicles = new Dictionary <string, IVehicle>();

            _settingsManager = settingsManager;
            _settingsManager.Initialise(_startupConfiguration.IsIn(new List <EStartup> {
                EStartup.ReadDatabase, EStartup.ReadUnpackedJson
            }));
            LoadSettings();

            ResearchTrees = new Dictionary <ENation, ResearchTree>();

            LogDebug(ECoreLogMessage.Created.FormatFluently(EOrganizationLogCategory.Manager));
        }
コード例 #26
0
ファイル: SpaceMover.cs プロジェクト: Lauraducky/blakebot
 public SpaceMover(IRandomiser randomiser, IOptions <Thresholds> thresholds)
 {
     _randomiser = randomiser;
     _thresholds = thresholds.Value;
 }
コード例 #27
0
 public MeleAttack(int baseCost, string name, double minDamage, double maxDamage, DamageType damageType, double criticalHitChance, double criticalMissChance, IRandomiser randomiser)
     : base(baseCost, name, 1, minDamage, maxDamage, damageType, criticalHitChance, criticalMissChance, randomiser)
 {
 }
コード例 #28
0
 public FeatureRatingRandomiser(IRandomiser <int> intRandomiser)
 {
     _intRandomiser = intRandomiser;
 }
コード例 #29
0
 public void Initialize()
 {
     _randomizer = new CustomRandomiser(Presets.Logger);
 }
コード例 #30
0
 public AgeRandomiser(IRandomiser <int> intRandomiser)
 {
     _intRandomiser = intRandomiser;
 }
コード例 #31
0
 public CapitalisationRemover(IRandomiser randomiser, IOptions <Thresholds> thresholds)
 {
     _randomiser = randomiser;
     _thresholds = thresholds.Value;
 }
コード例 #32
0
ファイル: ChatLogModule.cs プロジェクト: sbrydon/Norbert
 public void Loaded(IConfigLoader configLoader, IChatClient chatClient, 
     IHttpClient httpClient, IFileSystem fileSystem, IRandomiser randomiser)
 {
     var config = LoadConfig(configLoader, fileSystem);
     _chatListener = new ChatListener(fileSystem, chatClient, config);
 }