示例#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>();
        /// <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();
        }
        /// <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
 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
 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
        public TumblrListener(IChatClient chatClient, ITumblrClient tumblrClient, IRandomiser randomiser)
        {
            _chatClient = chatClient;
            _tumblrClient = tumblrClient;
            _randomiser = randomiser;

            _chatClient.CommandReceived += OnCommandReceived;
        }
        /// <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
        public SingListener(IChatClient chatClient, IMusixClient musixClient, IRandomiser randomiser)
        {
            _chatClient = chatClient;
            _musixClient = musixClient;
            _randomiser = randomiser;

            _chatClient.CommandReceived += OnCommandReceived;
        }
示例#10
0
 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;
 }
 public CountriesGenerator
 (
     IListRandomiser listRandomiser,
     IRandomiser <int> intRandomiser,
     IMultipleValuesRandomiser <int> multipleValuesRandomiser
 )
 {
     _listRandomiser           = listRandomiser;
     _intRandomiser            = intRandomiser;
     _multipleValuesRandomiser = multipleValuesRandomiser;
 }
        /// <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();
 }
        /// <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);
        }
 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;
 }
 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;
 }
 public PercentileGenerator(IRandomiser <int> intRandomiser)
 {
     this._intRandomiser = intRandomiser;
 }
        /// <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
 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;
 }
 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
 public void Loaded(IConfigLoader configLoader, IChatClient chatClient, 
     IHttpClient httpClient, IFileSystem fileSystem, IRandomiser randomiser)
 {
     var config = LoadConfig(configLoader, fileSystem);
     _chatListener = new ChatListener(fileSystem, chatClient, config);
 }