Ejemplo n.º 1
0
 public ObserveCommandProcessor(IRavenfallClient game, IPlayerProvider playerProvider, ITwitchUserStore userStore)
 {
     //this.RequiresBroadcaster = true;
     this.game           = game;
     this.playerProvider = playerProvider;
     this.userStore      = userStore;
 }
Ejemplo n.º 2
0
        private void LoginWindow(IPlayerProvider playerProvider)
        {
            ImGui.SetNextWindowSize(_playerWindowSize);
            if (!ImGui.Begin($"Fantasy Player: {playerProvider.PlayerState.ServiceName} Login",
                             ref _plugin.Configuration.PlayerSettings.PlayerWindowShown,
                             ImGuiWindowFlags.NoResize))
            {
                return;
            }

            if (!playerProvider.PlayerState.IsAuthenticating)
            {
                InterfaceUtils.TextCentered($"Please login to {playerProvider.PlayerState.ServiceName} to start.");
                if (InterfaceUtils.ButtonCentered("Login"))
                {
                    playerProvider.StartAuth();
                }
            }
            else
            {
                InterfaceUtils.TextCentered("Waiting for a response to login... Please check your browser.");
                if (InterfaceUtils.ButtonCentered("Re-open Url"))
                {
                    playerProvider.RetryAuth();
                }
            }

            ImGui.End();
        }
Ejemplo n.º 3
0
 public CommandProvider(
     IPlayerProvider playerProvider,
     ICommandHandler commandHandler)
 {
     this.playerProvider = playerProvider;
     this.commandHandler = commandHandler;
 }
Ejemplo n.º 4
0
 public ResourcesCommandProcessor(
     IRavenfallClient game,
     IPlayerProvider playerProvider)
 {
     this.game           = game;
     this.playerProvider = playerProvider;
 }
Ejemplo n.º 5
0
 public UserPlayerCreateHandler(
     IGameData gameData,
     IPlayerProvider playerProvider)
 {
     this.gameData       = gameData;
     this.playerProvider = playerProvider;
 }
Ejemplo n.º 6
0
 public TradeItemCommandProcessor(
     IRavenfallClient game,
     IPlayerProvider playerProvider)
 {
     this.game           = game;
     this.playerProvider = playerProvider;
 }
Ejemplo n.º 7
0
        private void CheckProvider(IPlayerProvider playerProvider)
        {
            if (playerProvider.PlayerState.ServiceName == null) return;
            if (playerProvider.PlayerState.ServiceName == _lastId) return;

            _lastId = playerProvider.PlayerState.ServiceName;
            //TODO: Add and remove command handlers based on provider settings, those need to be added too

            var cmdManager = _plugin.FPCommandManager;

            cmdManager.Commands.Remove("shuffle");
            cmdManager.Commands.Remove("next");
            cmdManager.Commands.Remove("back");
            cmdManager.Commands.Remove("pause");
            cmdManager.Commands.Remove("play");
            cmdManager.Commands.Remove("volume");
            cmdManager.Commands.Remove("relogin");

            cmdManager.Commands.Add("shuffle",
                (OptionType.Boolean, new string[] { }, "Toggle shuffle.", OnShuffleCommand));
            cmdManager.Commands.Add("next",
                (OptionType.None, new string[] {"skip"}, "Skip to the next track.", OnNextCommand));
            cmdManager.Commands.Add("back",
                (OptionType.None, new string[] {"previous"}, "Go back a track.", OnBackCommand));
            cmdManager.Commands.Add("pause",
                (OptionType.None, new string[] {"stop"}, "Pause playback.", OnPauseCommand));
            cmdManager.Commands.Add("play",
                (OptionType.None, new string[] { }, "Continue playback.", OnPlayCommand));
            cmdManager.Commands.Add("volume",
                (OptionType.Int, new string[] { }, "Set playback volume.", OnVolumeCommand));

            cmdManager.Commands.Add("relogin",
                (OptionType.None, new string[] {"reauth"}, "Re-opens the login window and lets you login again",
                    OnReLoginCommand));
        }
Ejemplo n.º 8
0
 public SquadMaker()
 {
     _playerProvider         = PlayerAccessFactory.GetFilePlayerDataAccessObj();
     _algSequenceProvider    = new AlgorithmSequenceDataProvider();
     _internalDataProvider   = new AlgorithmInputProvider();
     _squadsProvider         = new SquadsProvider();
     _iTeamAverageCalculator = new TeamAverageCalculator();
 }
Ejemplo n.º 9
0
 public GameStateService(ILogger logger,
                         IBackupService backupService,
                         IPlayerProvider playerProvider,
                         IGameStateServiceView view) : base(logger)
 {
     this.backupService  = backupService;
     this.playerProvider = playerProvider;
     this.view           = view;
 }
Ejemplo n.º 10
0
        public TwitchBot(
            ILogger logger,
            IKernel kernel,
            IRavenfallClient ravenfall,
            IPlayerProvider playerProvider,
            ITwitchMessageFormatter localizer,
            IMessageBus messageBus,
            ICommandProvider commandProvider,
            ICommandHandler commandHandler,
            IChannelProvider channelProvider,
            IConnectionCredentialsProvider credentialsProvider)
        {
            this.logger           = logger;
            this.kernel           = kernel;
            this.ravenfall        = ravenfall;
            this.playerProvider   = playerProvider;
            this.messageFormatter = localizer;
            this.messageBus       = messageBus;
            this.commandProvider  = commandProvider;

            this.commandHandler      = commandHandler;
            this.channelProvider     = channelProvider;
            this.credentialsProvider = credentialsProvider;

            this.messageBus.Subscribe <string>("streamer_userid_acquired", userid =>
            {
                try
                {
                    if (listeningToChannelPoints)
                    {
                        return;
                    }


                    if (pubsubIsConnected)
                    {
                        pubsubIsConnected = false;
                        pubsub.Disconnect();
                    }

                    pubsub.ListenToChannelPoints(userid);
                    pubsub.Connect();
                    pubsubIsConnected = true;

                    logger.WriteDebug("Connecting to PubSub");
                }
                catch (Exception exc)
                {
                    logger.WriteError(exc.ToString());
                }
            });

            this.CreateTwitchClient();

            ravenfall.ProcessAsync(Settings.UNITY_SERVER_PORT);
        }
Ejemplo n.º 11
0
 public RoundDirector(IPlayerProvider playerProvider, StageScoreManager stageScoreManager, IPlayerFactory playerFactory, StageMapSetting stageMapSetting, IBasketFactory basketFactory,
                      ScoreManager scoreManager)
 {
     _playerProvider    = playerProvider;
     _stageScoreManager = stageScoreManager;
     _playerFactory     = playerFactory;
     _stageMapSetting   = stageMapSetting;
     _basketFactory     = basketFactory;
     _scoreManager      = scoreManager;
 }
Ejemplo n.º 12
0
        public static int MaxGameScore(this IPlayerProvider playerProvider, Gender gender)
        {
            var genderPlayers = playerProvider.AllPlayers.Where(p => p.Gender == gender).ToList();

            if (genderPlayers.Any())
            {
                return(genderPlayers.Max(p => p.GameScore));
            }
            return(0);
        }
Ejemplo n.º 13
0
        public List <Team> Generate(IPlayerProvider playerProvider, int numTeams)
        {
            PopulateRoundResults(Rounds, playerProvider);

            // create teams and distribute players
            _teams = Enumerable.Range(0, numTeams)
                     .Select(i => new Team(i + 1))
                     .ToList();
            return(DistributePlayers());
        }
Ejemplo n.º 14
0
        public List <Team> Generate(IPlayerProvider playerProvider, int numTeams, List <HatRound> rounds)
        {
            PopulateRoundResults(rounds, playerProvider);

            // create teams and distribute players
            _teams = Enumerable.Range(0, numTeams)
                     .Select(i => new Team(string.Format("Team {0} ({1})", i + 1, i % 2 == 0 ? "light" : "dark")))
                     .ToList();
            return(DistributePlayers());
        }
Ejemplo n.º 15
0
        private void InitializeProvider(Type type, IPlayerProvider playerProvider)
        {
            playerProvider.Initialize(_plugin);
            PlayerProviders.Add(type, playerProvider);

            if (_plugin.Configuration.PlayerSettings.DefaultProvider == type.FullName)
            {
                CurrentPlayerProvider ??= playerProvider;
            }
        }
Ejemplo n.º 16
0
 public RavenfallConnectionProvider(
     Shinobytes.Ravenfall.RavenNet.Core.IMessageBus messageBus,
     Microsoft.Extensions.Logging.ILogger logger,
     Shinobytes.Ravenfall.RavenNet.Core.IKernel kernel,
     IPlayerProvider playerProvider)
 {
     this.logger         = logger;
     this.kernel         = kernel;
     this.playerProvider = playerProvider;
     this.messageBus     = messageBus;
 }
Ejemplo n.º 17
0
        private bool NeedToReverseSecond(IPlayerProvider playerProvider)
        {
            // Since the snake resets every two passes through the teams, we modulo by that to see which direction the snake is going
            // on its last leg
            var numMalePlayers   = playerProvider.PresentPlayers().Count(p => p.Gender == Gender.Male) % (NumTeams * 2);
            var maleGoingRight   = numMalePlayers < NumTeams;
            var numFemalePlayers = playerProvider.PresentPlayers().Count(p => p.Gender == Gender.Female) % (NumTeams * 2) - NumTeams;
            var femaleGoingRight = numFemalePlayers < NumTeams;

            // If both going the same direction at the end, we need to reverse the allocation of the second gender to ensure we don't
            // have too many people on a team
            return(maleGoingRight == femaleGoingRight);
        }
 public BotPlayerLeaveHandler(
     ILogger logger,
     IWorldProcessor worldProcessor,
     IPlayerProvider playerProvider,
     IUserManager userManager,
     IGameSessionManager sessionManager)
 {
     this.logger         = logger;
     this.worldProcessor = worldProcessor;
     this.playerProvider = playerProvider;
     this.userManager    = userManager;
     this.sessionManager = sessionManager;
 }
Ejemplo n.º 19
0
 public AuthRequestHandler(
     ILogger logger,
     IGameData gameData,
     IPlayerProvider playerProvider,
     IUserManager userManager,
     IAuthService authService,
     IPlayerConnectionProvider connectionProvider)
 {
     this.logger             = logger;
     this.gameData           = gameData;
     this.playerProvider     = playerProvider;
     this.userManager        = userManager;
     this.authService        = authService;
     this.connectionProvider = connectionProvider;
 }
Ejemplo n.º 20
0
 public BotPlayerJoinHandler(
     ILogger logger,
     IWorldProcessor worldProcessor,
     IPlayerProvider playerProvider,
     IUserManager userManager,
     IPlayerConnectionProvider connectionProvider,
     IGameSessionManager sessionManager)
 {
     this.logger             = logger;
     this.worldProcessor     = worldProcessor;
     this.playerProvider     = playerProvider;
     this.userManager        = userManager;
     this.connectionProvider = connectionProvider;
     this.sessionManager     = sessionManager;
 }
Ejemplo n.º 21
0
        private IPlayerProvider LoadPlayerProvider(string file)
        {
            Assembly asm = null;

            try
            {
                asm = Assembly.LoadFile(file);
            }
            catch (Exception)
            {
                //unable to load...
                throw new ArgumentException("Unable to load IPlayerProvider from " + file);
            }

            Type pluginInfo = null;

            try
            {
                Type[]     types      = asm.GetTypes();
                Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
                Assembly   core       = AppDomain.CurrentDomain.GetAssemblies().Single(x => x.GetName().Name.Equals("FitzLanePlugin"));
                Type       type       = core.GetType("FitzLanePlugin.Interfaces.IPlayerProvider");
                foreach (var t in types)
                {
                    if (type.IsAssignableFrom((Type)t))
                    {
                        pluginInfo = t;
                        break;
                    }
                }

                if (pluginInfo != null)
                {
                    object          o = Activator.CreateInstance(pluginInfo);
                    IPlayerProvider playerProvider = (IPlayerProvider)o;
                    //returning from somewhere within the method... this needs to get refactored...
                    return(playerProvider);
                }
            }
            catch (Exception ex)
            {
                //unable to load...
                throw new ArgumentException("Unable to load IPlayerProvider from " + file + "(" + ex.ToString() + ")");
            }

            //unable to load...
            throw new ArgumentException("Unable to load IPlayerProvider from " + file);
        }
Ejemplo n.º 22
0
 public PlayerSearchViewModel(IPlayerProvider playerProvider)
 {
     _view         = new MyCollectionViewGeneric <IPlayer>(CollectionViewSource.GetDefaultView(playerProvider.GetAllWorldCupPlayer()));
     _view.Filter += (object item) =>
     {
         if (_textsearch == null)
         {
             return(true);
         }
         var itemPl = (IPlayer)item;
         return(itemPl.Name.Contains(_textsearch) ||
                itemPl.NationalTeam.Contains(_textsearch) ||
                itemPl.Club.Contains(_textsearch) ||
                itemPl.Championship.Contains(_textsearch));
     };
 }
Ejemplo n.º 23
0
        private void InitializeProvider(Type type, IPlayerProvider playerProvider)
        {
            if (PlayerProviders.ContainsKey(type))
            {
                return;
            }

            PluginLog.Log("Initializing provider: " + type.FullName);
            playerProvider.Initialize(_plugin);
            PlayerProviders.Add(type, playerProvider);
            PluginLog.Log("Initialized provider: " + type.FullName);

            if (_plugin.Configuration.PlayerSettings.DefaultProvider == type.FullName)
            {
                CurrentPlayerProvider ??= playerProvider;
            }
        }
Ejemplo n.º 24
0
        public List <Team> CreateTeams(IPlayerProvider playerProvider)
        {
            var teams = Enumerable.Range(0, NumTeams).Select(i => new Team(i + 1)).ToList();

            // We restart the snaking per gender so that players should have good matchups. However, this has
            // the possible side effect of creating one team with 2 more players than their opponent (one more
            // male, one more female). We detect this possibility here and prevent it by iterating through the teams backwards
            var needToReverseSecond = NeedToReverseSecond(playerProvider);

            // Randomly spread out all the guru male players
            // Then the guru female players
            // Then the experienced males
            // Then the experienced females
            // etc.
            var groupedByGender         = playerProvider.PresentPlayers().GroupBy(p => p.Gender);
            var thenGroupedByExperience = groupedByGender.Select(g => g.GroupBy(p => p.SkillLevel).OrderByDescending(g2 => g2.Key.Value));

            foreach (var group in thenGroupedByExperience)
            {
                List <Player> players = new List <Player>();
                foreach (var subGroup in group)
                {
                    players.AddRange(subGroup.ToList().Shuffle());
                }

                var teamLoop = teams.Snake().GetEnumerator();
                foreach (var player in players)
                {
                    teamLoop.MoveNext();
                    teamLoop.Current.AddPlayer(player);
                }
                if (needToReverseSecond)
                {
                    teams.Reverse();
                }
            }

            return(teams);
        }
Ejemplo n.º 25
0
 public DungeonCommandProcessor(IRavenfallClient game, IPlayerProvider playerProvider, ITwitchUserStore userStore)
 {
     this.game           = game;
     this.playerProvider = playerProvider;
     this.userStore      = userStore;
 }
Ejemplo n.º 26
0
 public IslandInfoCommandProcessor(IRavenfallClient game, IPlayerProvider playerProvider)
 {
     this.game           = game;
     this.playerProvider = playerProvider;
 }
Ejemplo n.º 27
0
 private void ResetProviders()
 {
     CurrentPlayerProvider = default;
     PlayerProviders       = new Dictionary <Type, IPlayerProvider>();
 }
Ejemplo n.º 28
0
 public FeedCommandProcessor(IBabyYodaClient game, IPlayerProvider playerProvider)
 {
     this.game           = game;
     this.playerProvider = playerProvider;
 }
Ejemplo n.º 29
0
 public PlayerController(IPlayerProvider playerProvider)
 {
     _playerService = playerProvider;
 }
Ejemplo n.º 30
0
 public HighscoreSkillCommandProcessor(IRavenfallClient game, IPlayerProvider playerProvider)
 {
     this.game           = game;
     this.playerProvider = playerProvider;
 }