/// <summary>
    /// Gets random Player from the PlayerModel and return that Players details
    /// </summary>
    /// <returns></returns>
    public PlayerVillage GetPlayerForMatch()
    {
        int           MaxRange       = PlayersModel.PlayersList.Count;
        PlayerVillage PlayerFormatch = PlayersModel.PlayersList[Random.Range(1, MaxRange)];

        GetPlayerFrequency();
        return(PlayerFormatch);
    }
예제 #2
0
    public void SetPlayer(PlayerVillage aPlayer)
    {
        playerVillage = aPlayer;

        mPlayerImage.sprite = Resources.Load <Sprite>(aPlayer.PlayerImage);
        mPlayerName.text    = aPlayer.PlayerName;
        mPlayerLevel.text   = "Level " + aPlayer.PlayerLevel.ToString();
        mPlayerCoins.text   = aPlayer.Coins.ToString("#,#");
    }
예제 #3
0
        public static void Display(int cursorPosition = 0)
        {
            // Ref player & village
            Player        player         = Program.Player;
            PlayerVillage villageManager = player.VillagesManager;

            // Define menu options dictionary
            var menuItems = new Dictionary <string, Action <int> >();

            // Get available tasks
            IList <VillageTask> availableTasks = villageManager.CurrentVillage.Tasks.GetAvailableTasks();

            // Get all village's tasks
            foreach (VillageTask task in availableTasks)
            {
                // Skip if player cannot do this task
                if (!villageManager.CanDoTask(task))
                {
                    continue;
                }

                // Define menu option title
                string optionLabel =
                    $"{task.Description} | +{task.ReputationBonus} Reputation | -{villageManager.GetTaskHealthRequirement(task) :0.0}hp";

                // Add option to the menu
                menuItems.Add(optionLabel, (selectedIndex) =>
                {
                    // Start doing task
                    PlayerDoTaskProgress.Display(task);
                });
            }

            // Add no tasks message
            if (availableTasks.Count == 0)
            {
                menuItems.Add("No tasks available right now. Maybe sleeping will help", Display);
            }

            // Add "back to menu" button
            menuItems.Add("> Go to menu <", (selectedIndex) => ActionGroupsMenu.Display());

            // Display
            (new Menu(menuItems, "SOCIALIZE:", cursorPosition)).Display();
        }
예제 #4
0
        private void DisplayStats()
        {
            /*
             * [] 100       [] 200       [] 100
             */

            // Access player instance
            Player player = Program.Player;

            // Access player's village manager. Cache it since we will use it twice
            PlayerVillage villageManager = player.VillagesManager;

            // Stats Y position
            int posY = ResolutionHandler.GetResolution(1) - 4;

            // Space gap between elements
            string elementsGap = new string(' ', 4);

            // Declare hud elements
            string[] elements =
            {
                $"Money: ${NumberConvertor.ShortenNumber(player.MoneyManager.Money)}",
                $"Protection:  {player.Stats.DefenseProcent}%",
                $"Speed: {player.Stats.MovementSpeed}",
                $"Reputation: {villageManager.GetReputation()}/{villageManager.CurrentVillage.MaxReputation}"
            };

            // string elements =  string.Join(string.Empty, $"", elementsGap, $"🛡️ 4.1%", elementsGap, $"🧑 35/1500");
            // Convert hud elements array to string
            string elementsString = string.Join(new string(' ', 8), elements);

            // Calculate position (center)
            int posX = ResolutionHandler.GetResolution(0) / 2 - elementsString.Length / 2;

            // Set cursor position
            Console.SetCursorPosition(posX, posY);

            // Output
            Console.WriteLine(elementsString);
        }