public override bool Load()
    {
        Characters targetData = target as Characters;

        var    client = new DatabaseClient("", "");
        string error  = string.Empty;
        var    db     = client.GetDatabase(targetData.SheetName, ref error);
        var    table  = db.GetTable <CharactersData>(targetData.WorksheetName) ?? db.CreateTable <CharactersData>(targetData.WorksheetName);

        List <CharactersData> myDataList = new List <CharactersData>();

        var all = table.FindAll();

        foreach (var elem in all)
        {
            CharactersData data = new CharactersData();

            data = Cloner.DeepCopy <CharactersData>(elem.Element);
            myDataList.Add(data);
        }

        targetData.dataArray = myDataList.ToArray();

        EditorUtility.SetDirty(targetData);
        AssetDatabase.SaveAssets();

        return(true);
    }
예제 #2
0
            public async Task DisplayCharacterInfo(IUser User = null)
            {
                if (User == null)
                {
                    CharacterCreationEmbed.WithColor(Color.Blue);
                    CharacterCreationEmbed.AddField($"<:InfoBook:603974731535876106>```{Context.User}, your character info:```", $"```Name is: {CharactersData.GetCharacterName(Context.User.Id)}" +
                                                    $"\nGold: {CharactersData.GetCharacterMoney(Context.User.Id)}\n――――――――――Skills――――――――――\nMining:             |" +
                                                    $"{Math.Round(Convert.ToDouble(CharactersData.GetCharacterMiningSkill(Context.User.Id)),1)}\nWood chopping:      |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterWoodChoppingSkill(Context.User.Id)),1)}" +
                                                    $"\nHunting:            |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterHuntingSkill(Context.User.Id)),1)}\nFishing:            |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterFishingSkill(Context.User.Id)),1)}" +
                                                    $"\nFarming:            |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterFarmingSkill(Context.User.Id)),1)}\nTrade:              |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterTradeSkill(Context.User.Id)),1)}" +
                                                    $"\n――――――CraftingSkills―――――――\nOre melting:        |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterOreMeltingSkill(Context.User.Id)),1)}\nWoodworking:        |" +
                                                    $"{Math.Round(Convert.ToDouble(CharactersData.GetCharacterWoodworkingSkill(Context.User.Id)),1)}\nBlacksmith:         |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterBlacksmithSkill(Context.User.Id)),1)}" +
                                                    $"\nFurniture maker:    |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterFurnitureMakerSkill(Context.User.Id)),1)}\nCooking:            |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterCookingSkill(Context.User.Id)),1)}" +
                                                    $"\nSnipper:            |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterSnipperSkill(Context.User.Id)),1)}```");
                }
                else
                {
                    CharacterCreationEmbed.WithColor(Color.Blue);
                    CharacterCreationEmbed.AddField($"<:InfoBook:603974731535876106>```{User.Username}, your character info:```", $"```Name is: {CharactersData.GetCharacterName(User.Id)}" +
                                                    $"\nGold: {CharactersData.GetCharacterMoney(User.Id)}\n――――――――――Skills――――――――――\nMining:             |" +
                                                    $"{Math.Round(Convert.ToDouble(CharactersData.GetCharacterMiningSkill(User.Id)), 1)}\nWood chopping:      |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterWoodChoppingSkill(User.Id)), 1)}" +
                                                    $"\nHunting:            |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterHuntingSkill(User.Id)), 1)}\nFishing:            |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterFishingSkill(User.Id)), 1)}" +
                                                    $"\nFarming:            |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterFarmingSkill(User.Id)), 1)}\nTrade:              |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterTradeSkill(User.Id)), 1)}" +
                                                    $"\n――――――CraftingSkills―――――――\nOre melting:        |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterOreMeltingSkill(User.Id)), 1)}\nWoodworking:        |" +
                                                    $"{Math.Round(Convert.ToDouble(CharactersData.GetCharacterWoodworkingSkill(User.Id)), 1)}\nBlacksmith:         |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterBlacksmithSkill(User.Id)), 1)}" +
                                                    $"\nFurniture maker:    |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterFurnitureMakerSkill(User.Id)), 1)}\nCooking:            |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterCookingSkill(User.Id)), 1)}" +
                                                    $"\nSnipper:            |{Math.Round(Convert.ToDouble(CharactersData.GetCharacterSnipperSkill(User.Id)), 1)}```");
                }

                await Context.Channel.SendMessageAsync("", false, CharacterCreationEmbed.Build());
            }
예제 #3
0
            public async Task CreateCharacter(IUser User = null, string CharacterName = null)
            {
                //Check commands for correctness
                if (User.Id != Context.User.Id)
                {
                    CharacterCreationEmbed.WithColor(Color.Blue);
                    CharacterCreationEmbed.AddField(":x:```Eror```", "```You are able to create character only for yourself!```");
                    await Context.Channel.SendMessageAsync("", false, CharacterCreationEmbed.Build());

                    return;
                }
                if (CharacterName == null)
                {
                    CharacterCreationEmbed.WithColor(Color.Blue);
                    CharacterCreationEmbed.AddField(":x:```Eror```", "```You should write character name!```");
                    await Context.Channel.SendMessageAsync("", false, CharacterCreationEmbed.Build());

                    return;
                }

                //Execution of  command
                CharacterCreationEmbed.WithColor(Color.Blue);
                CharacterCreationEmbed.AddField(":gear:```You have successfully created a character!```", $"```Character name is {CharacterName}```");
                await Context.Channel.SendMessageAsync("", false, CharacterCreationEmbed.Build());

                //Save in data
                await CharactersData.SaveCharacterName(User.Id, CharacterName);
            }
예제 #4
0
 public DataTransferToSO(BulletData bulletData, CharactersData charactersData, GameSettings gameSettings)
 {
     gameSettings.Level = 1;
     _gameData          = DataLoader.LoadData <GameData>();
     _bulletData        = bulletData;
     _playerData        = charactersData.PlayerData;
     _enemySliderData   = charactersData.EnemySliderData;
     _enemyFlyerData    = charactersData.EnemyFlyerData;
     _enemyBossData     = charactersData.EnemyBossData;
 }
예제 #5
0
 public void Initialize()
 {
     userData              = new UserData();
     this.missionsData     = new MissionsData();
     this.optionsData      = new OptionsData();
     this.upgradesData     = new UpgradesData();
     this.charactersData   = new CharactersData(charactersCollection.characters.Count);
     this.achievementsData = new AchievementsData(AchievementsList.Instance.achievements.Count);
     this.LoadOrCreate();
 }
예제 #6
0
 private void Construct(IPrefabsCreater prefabsCreater, CharactersData charactersData, GameSettings gameSettings,
                        IEnemyRemover enemyRemover)
 {
     _prefabsCreater     = prefabsCreater;
     _navMeshAgent       = GetComponent <NavMeshAgent>();
     _navMeshAgent.speed = charactersData.EnemySliderData.CharacterSpeed;
     _enemySliderHp      = charactersData.EnemySliderData.CharacterHp;
     _gameSettings       = gameSettings;
     _enemyRemover       = enemyRemover;
     _canAttack          = true;
 }
    /// <summary>
    /// Enemies the attack.
    /// </summary>
    /// <param name="playerToAttack">The player to attack.</param>
    /// <param name="playerToAttackDatas">The player to attack datas.</param>
    public void EnemyAttack(GameObject playerToAttack, CharactersData playerToAttackDatas)
    {
        var go = sequenceEnumerator.Current.Second;

        Sequence   actions = new Sequence(new SequenceParms());
        TweenParms parms   = new TweenParms().Prop("position", playerToAttack.transform.position + new Vector3(SpaceBetweenCharacterAndEnemy, 0, 0)).Ease(EaseType.EaseOutQuart);
        TweenParms parmsResetPlayerPosition = new TweenParms().Prop("position", go.transform.position).Ease(EaseType.EaseOutQuart);

        actions.Append(HOTween.To(go.transform, 0.5f, parms));
        actions.Append(HOTween.To(go.transform, 0.5f, parmsResetPlayerPosition));

        actions.Play();

        var enemyCharacterdatas = go.GetComponent <EnemyCharacterDatas> ();
        int calculatedDamage    = 0;

        if (enemyCharacterdatas != null && selectedPlayerDatas != null)
        {
            switch (battlAction)
            {
            case EnumBattleAction.Weapon:
                calculatedDamage       = enemyCharacterdatas.Attack - playerToAttackDatas.Defense;
                calculatedDamage       = Mathf.Clamp(calculatedDamage, 0, calculatedDamage);
                playerToAttackDatas.HP = Mathf.Clamp(playerToAttackDatas.HP - calculatedDamage, 0, playerToAttackDatas.HP - calculatedDamage);
                ShowPopup("-" + calculatedDamage.ToString(), playerToAttack.transform.position);
                playerToAttack.BroadcastMessage("SetHPValue", playerToAttackDatas.MaxHP <= 0 ?0 : playerToAttackDatas.HP * 100 / playerToAttackDatas.MaxHP);
                Destroy(Instantiate(WeaponParticleEffect, playerToAttack.transform.localPosition, Quaternion.identity), 1.5f);
                SoundManager.WeaponSound();
                go.SendMessage("Animate", EnumBattleState.Attack.ToString());
                playerToAttack.SendMessage("Animate", EnumBattleState.Hit.ToString());

                break;

            default:
                calculatedDamage       = enemyCharacterdatas.Attack - playerToAttackDatas.Defense;
                calculatedDamage       = Mathf.Clamp(calculatedDamage, 0, calculatedDamage);
                playerToAttackDatas.HP = Mathf.Clamp(playerToAttackDatas.HP - calculatedDamage, 0, playerToAttackDatas.HP - calculatedDamage);
                ShowPopup("-" + calculatedDamage.ToString(), playerToAttack.transform.position);
                playerToAttack.BroadcastMessage("SetHPValue", playerToAttackDatas.MaxHP <= 0 ?0 : playerToAttackDatas.HP * 100 / playerToAttackDatas.MaxHP);
                Destroy(Instantiate(WeaponParticleEffect, playerToAttack.transform.localPosition, Quaternion.identity), 1.5f);
                SoundManager.WeaponSound();
                go.SendMessage("Animate", EnumBattleState.Attack.ToString());
                playerToAttack.SendMessage("Animate", EnumBattleState.Hit.ToString());

                break;
            }
        }
        if (playerToAttackDatas.HP <= 0)
        {
            KillCharacter(playerToAttack);
        }
        //selectedPlayer.SendMessage ("ChangeEnumCharacterState", battlection);
        selectedEnemy = null;
    }
예제 #8
0
 private void Construct(IPrefabsCreater prefabsCreater, CharactersData charactersData, GameSettings gameSettings,
                        IChooserRandPosToMove chooserRandPosToMove, IBulletSystem bulletSystem, IEnemyRemover enemyRemover)
 {
     _prefabsCreater       = prefabsCreater;
     _navMeshAgent         = GetComponent <NavMeshAgent>();
     _navMeshAgent.speed   = charactersData.EnemyFlyerData.CharacterSpeed;
     _enemyFlyerHP         = charactersData.EnemyFlyerData.CharacterHp;
     _gameSettings         = gameSettings;
     _chooserRandPosToMove = chooserRandPosToMove;
     _bulletSystem         = bulletSystem;
     _enemyRemover         = enemyRemover;
 }
예제 #9
0
 private void SceneManager_activeSceneChanged(Scene arg0, Scene arg1)
 {
     if (arg1.name == "ClickOnMoveOk")
     {
         CharactersData.IncreaseStep();
         Debug.Log(CharactersData.Step);
     }
     else if (arg1.name == "MovementScene" && CharactersData.Step >= 5)
     {
         SceneManager.LoadScene("Win");
     }
 }
예제 #10
0
 protected void ResetData()
 {
     Constants = Resources.Load <Characters>("Characters");
     for (int i = 0; i < Constants.dataArray.Length; i++)
     {
         // Horrivel
         if (Constants.dataArray[i].CHARACTERTYPE != GetCharacterType())
         {
             continue;
         }
         Data = Constants.dataArray[i];
         break;
     }
 }
예제 #11
0
            private void Start()
            {
                charData = GetComponent <CharactersData>();
                aniCtrl  = charData.GetComponent <CharactersAniCtrl>();
                pool     = GameObject.Find("MemoryPool").GetComponent <MemoryPooling>();

                _audio = GetComponent <AudioSource>();


                if (isPlayer)
                {
                    playerUI = GetComponent <UIBar>();
                }
            }
예제 #12
0
            public async Task IncomingPlayerIronRemeltingRequest()
            {
                if (CharactersData.GetCharacterOreMeltingSkill(Context.User.Id) >= 5)
                {
                    //Checking commands
                    if (CharactersData.GetCharacterIronOre(Context.User.Id) < 5)
                    {
                        RemeltingEmbed.WithColor(Color.Blue);
                        RemeltingEmbed.AddField("<:Iron:603979800092344340>```You don't have enought iron to remelt it!```", $"```You need {5 - CharactersData.GetCharacterIronOre(Context.User.Id)} more units of iron ore```");
                        await Context.Channel.SendMessageAsync("", false, RemeltingEmbed.Build());

                        return;
                    }
                    //Execution of command
                    RemeltingEmbed.WithColor(Color.Blue);
                    int TotalBarsToGive = 0, TotalOreToTook = 0;
                    for (int i = CharactersData.GetCharacterIronOre(Context.User.Id); i >= 5; i -= 5)
                    {
                        int ChanceToGetBonusBars = random.Next(0, 10);
                        int RemeltedBarsToGive;
                        if (ChanceToGetBonusBars > (7 - CharactersData.GetCharacterOreMeltingSkill(Context.User.Id) / 12))
                        {
                            RemeltedBarsToGive = random.Next(2, 3);
                        }
                        else
                        {
                            RemeltedBarsToGive = 1;
                        }
                        TotalBarsToGive += RemeltedBarsToGive;
                        TotalOreToTook  += 5;
                    }
                    RemeltingEmbed.AddField("<:Iron:603979800092344340>```Success!```", $"```You have received {TotalBarsToGive} iron bars!```");
                    await Context.Channel.SendMessageAsync("", false, RemeltingEmbed.Build());

                    //Save data
                    await CharactersData.SaveCharacterRemeltedIron(Context.User.Id, TotalBarsToGive, 0.3f / CharactersData.GetCharacterOreMeltingSkill(Context.User.Id), TotalOreToTook);;
                    return;
                }
                else
                {
                    RemeltingEmbed.WithColor(Color.Blue);
                    RemeltingEmbed.AddField($"<:Iron:603979800092344340>```Remelting skill comes with time, {CharactersData.GetCharacterName(Context.User.Id)}```",
                                            "```Required level of skill is: [5]\n" +
                                            $"Your current skill level is: [{CharactersData.GetCharacterOreMeltingSkill(Context.User.Id)}]```");
                    await Context.Channel.SendMessageAsync("", false, RemeltingEmbed.Build());

                    return;
                }
            }
예제 #13
0
            public async Task IncomingPlayerPotatoCollectingRequest()
            {
                if (CharactersData.GetCharacterFarmingSkill(Context.User.Id) >= 5)
                {
                    if ((DateTime.Now - CharactersData.GetCharacterFarmingCooldown(Context.User.Id)).TotalSeconds >= 120) // checks if more than 120 seconds have passed between the last requests send by the player
                    {
                        //In future update add a axe durability check

                        //Execution of command
                        int PlantsToGiveAmount = random.Next(1, 5) + Convert.ToInt32(CharactersData.GetCharacterFarmingSkill(Context.User.Id));
                        PlantsFarmEmbed.WithColor(Color.Blue);
                        PlantsFarmEmbed.AddField("<:Wheat:603957637947588608>```Success!```", $"```You have received {PlantsToGiveAmount} potatoes!```");
                        await Context.Channel.SendMessageAsync("", false, PlantsFarmEmbed.Build());

                        //Save data
                        await CharactersData.SavePlayerFarmCooldown(Context.User.Id, DateTime.Now); //Refresh cooldown for mining

                        await CharactersData.SaveCharacterPotato(Context.User.Id, PlantsToGiveAmount, 0.3f / CharactersData.GetCharacterFarmingSkill(Context.User.Id));
                    }
                    else
                    {
                        //Send message about cooldown
                        PlantsFarmEmbed.WithColor(Color.Blue);
                        if (120 - (DateTime.Now - CharactersData.GetCharacterFarmingCooldown(Context.User.Id)).TotalSeconds > 60)
                        {
                            PlantsFarmEmbed.AddField($"<:Wheat:603957637947588608>```{CharactersData.GetCharacterName(Context.User.Id)}, you're too exhausted to collect plants```",
                                                     $"```Try again in 1m {Math.Round(Convert.ToDecimal(120 - (DateTime.Now - CharactersData.GetCharacterFarmingCooldown(Context.User.Id)).TotalSeconds - 60))}s```");
                        }
                        else
                        {
                            PlantsFarmEmbed.AddField($"<:Wheat:603957637947588608>```{CharactersData.GetCharacterName(Context.User.Id)}, you're too exhausted to collect plants```",
                                                     $"```Try again in {Math.Round(Convert.ToDecimal(120 - (DateTime.Now - CharactersData.GetCharacterFarmingCooldown(Context.User.Id)).TotalSeconds))}s```");
                        }
                        await Context.Channel.SendMessageAsync("", false, PlantsFarmEmbed.Build());

                        return;
                    }
                }
                else
                {
                    PlantsFarmEmbed.WithColor(Color.Blue);
                    PlantsFarmEmbed.AddField($"<:Wheat:603957637947588608>```Farming skill comes with time, {CharactersData.GetCharacterName(Context.User.Id)}```",
                                             "```Required level of skill is: [5]\n" +
                                             $"Your current skill level is: [{CharactersData.GetCharacterFarmingSkill(Context.User.Id)}]```");
                    await Context.Channel.SendMessageAsync("", false, PlantsFarmEmbed.Build());

                    return;
                }
            }
예제 #14
0
            public async Task IncomingPlayerAdamantiteMiningRequest()
            {
                if (CharactersData.GetCharacterMiningSkill(Context.User.Id) >= 35)
                {
                    if ((DateTime.Now - CharactersData.GetCharacterMiningCooldown(Context.User.Id)).TotalSeconds >= 120) // checks if more than 120 seconds have passed between the last requests send by the player
                    {
                        //In future update add a pickaxe durability check

                        //Execution of command
                        int OreToGiveAmount = random.Next(1, 5) + Convert.ToInt32(CharactersData.GetCharacterMiningSkill(Context.User.Id) / 2);
                        MiningEmbed.WithColor(Color.Blue);
                        MiningEmbed.AddField("<:Pickaxe:603957608641986560>```Success!```", $"```You have received {OreToGiveAmount} units of adamantite ore!```");
                        await Context.Channel.SendMessageAsync("", false, MiningEmbed.Build());

                        //Save data
                        await CharactersData.SavePlayerMiningCooldown(Context.User.Id, DateTime.Now); //Refresh cooldown for mining

                        await CharactersData.SaveCharacterAdamantiteOre(Context.User.Id, OreToGiveAmount, 0.3f / CharactersData.GetCharacterMiningSkill(Context.User.Id));
                    }
                    else
                    {
                        //Send message about cooldown
                        MiningEmbed.WithColor(Color.Blue);
                        if (120 - (DateTime.Now - CharactersData.GetCharacterMiningCooldown(Context.User.Id)).TotalSeconds > 60)
                        {
                            MiningEmbed.AddField($"<:Pickaxe:603957608641986560>```{CharactersData.GetCharacterName(Context.User.Id)}, you're too exhausted to mine ores```",
                                                 $"```Try again in 1m {Math.Round(Convert.ToDecimal(120 - (DateTime.Now - CharactersData.GetCharacterMiningCooldown(Context.User.Id)).TotalSeconds - 60))}s```");
                        }
                        else
                        {
                            MiningEmbed.AddField($"<:Pickaxe:603957608641986560>```{CharactersData.GetCharacterName(Context.User.Id)}, you're too exhausted to mine ores```",
                                                 $"```Try again in {Math.Round(Convert.ToDecimal(120 - (DateTime.Now - CharactersData.GetCharacterMiningCooldown(Context.User.Id)).TotalSeconds))}s```");
                        }
                        await Context.Channel.SendMessageAsync("", false, MiningEmbed.Build());

                        return;
                    }
                }
                else
                {
                    MiningEmbed.WithColor(Color.Blue);
                    MiningEmbed.AddField($"<:Pickaxe:603957608641986560>```Mining skill comes with time, {CharactersData.GetCharacterName(Context.User.Id)}```",
                                         "```Required level of skill is: [35]\n" +
                                         $"Your current skill level is: [{CharactersData.GetCharacterMiningSkill(Context.User.Id)}]```");
                    await Context.Channel.SendMessageAsync("", false, MiningEmbed.Build());

                    return;
                }
            }
예제 #15
0
파일: Player.cs 프로젝트: MarkosUA/Archer
 private void Construct(Joystick joystick, CharactersData charactersData, IBulletSystem bulletSystem,
                        IPrefabsCreater prefabsCreater, GameSettings gameSettings, IEndGame endGame, IPlayerHealth playerHealth)
 {
     _joystick       = joystick;
     _navMeshAgent   = GetComponent <NavMeshAgent>();
     _playerHP       = charactersData.PlayerData.CharacterHp;
     _playerSpeed    = charactersData.PlayerData.CharacterSpeed;
     _bulletSystem   = bulletSystem;
     _prefabsCreater = prefabsCreater;
     _gameSettings   = gameSettings;
     _endGame        = endGame;
     _playerHealth   = playerHealth;
     _playerHealth.ChangeHealth(_playerHP);
     _canShoot = true;
 }
예제 #16
0
            public async Task IncomingPlayerBunnyMeatCollectingRequest()
            {
                if (CharactersData.GetCharacterCookingSkill(Context.User.Id) >= 5)
                {
                    //Checking commands
                    if (CharactersData.GetCharacterBunnyCarcass(Context.User.Id) < 1)
                    {
                        CookingEmbed.WithColor(Color.Blue);
                        CookingEmbed.AddField("<:Meat:607579880569307146>```You don't have enough bunny carcasses to collect meat from them!```", "```At least 1 bunny carcass required```");
                        await Context.Channel.SendMessageAsync("", false, CookingEmbed.Build());

                        return;
                    }
                    //Execution of command
                    CookingEmbed.WithColor(Color.Blue);
                    int TotalMeatToGive = 0, TotalCarcassesToTook = 0, ChanceToGetBonusMeat, MeatToGive;
                    for (int i = CharactersData.GetCharacterBunnyCarcass(Context.User.Id); i >= 1; i -= 1)
                    {
                        ChanceToGetBonusMeat = random.Next(0, 10);
                        if (ChanceToGetBonusMeat > (7 - CharactersData.GetCharacterCookingSkill(Context.User.Id) / 12))
                        {
                            MeatToGive = random.Next(3, 6);
                        }
                        else
                        {
                            MeatToGive = random.Next(2, 4);
                        }
                        TotalMeatToGive      += MeatToGive;
                        TotalCarcassesToTook += 1;
                    }
                    CookingEmbed.AddField("<:Meat:607579880569307146>```Success!```", $"```You have received {TotalMeatToGive} units of bunny meat!```");
                    await Context.Channel.SendMessageAsync("", false, CookingEmbed.Build());

                    //Save data
                    await CharactersData.SaveCharacterBunnyMeat(Context.User.Id, TotalMeatToGive, 0.3f / CharactersData.GetCharacterCookingSkill(Context.User.Id), TotalCarcassesToTook);;
                    return;
                }
                else
                {
                    CookingEmbed.WithColor(Color.Blue);
                    CookingEmbed.AddField($"<:Meat:607579880569307146>```Cooking skill comes with time, {CharactersData.GetCharacterName(Context.User.Id)}```",
                                          "```Required level of skill is: [5]\n" +
                                          $"Your current skill level is: [{CharactersData.GetCharacterCookingSkill(Context.User.Id)}]```");
                    await Context.Channel.SendMessageAsync("", false, CookingEmbed.Build());

                    return;
                }
            }
예제 #17
0
            public async Task IncomingPlayerRuffFishingRequest()
            {
                if (CharactersData.GetCharacterFishingSkill(Context.User.Id) >= 5)
                {
                    if ((DateTime.Now - CharactersData.GetCharacterFishingCooldown(Context.User.Id)).TotalSeconds >= 120) // checks if more than 120 seconds have passed between the last requests send by the player
                    {
                        //In future update add a fishing rod durability check

                        //Execution of command
                        FishingEmbed.WithColor(Color.Blue);
                        FishingEmbed.AddField("<:FishingRod:603598075239596042>```Success!```", $"```You caught a ruff fish!```");
                        await Context.Channel.SendMessageAsync("", false, FishingEmbed.Build());

                        //Save data
                        await CharactersData.SavePlayerFishingCooldown(Context.User.Id, DateTime.Now); //Refresh cooldown for mining

                        await CharactersData.SaveCharacterCarp(Context.User.Id, 1, 0.3f / CharactersData.GetCharacterFishingSkill(Context.User.Id));
                    }
                    else
                    {
                        //Send message about cooldown
                        FishingEmbed.WithColor(Color.Blue);
                        if (120 - (DateTime.Now - CharactersData.GetCharacterFishingCooldown(Context.User.Id)).TotalSeconds > 60)
                        {
                            FishingEmbed.AddField($"<:FishingRod:603598075239596042>```{CharactersData.GetCharacterName(Context.User.Id)}, you're too exhausted to go fishing```",
                                                  $"```Try again in 1m {Math.Round(Convert.ToDecimal(120 - (DateTime.Now - CharactersData.GetCharacterFishingCooldown(Context.User.Id)).TotalSeconds - 60))}s```");
                        }
                        else
                        {
                            FishingEmbed.AddField($"<:FishingRod:603598075239596042>```{CharactersData.GetCharacterName(Context.User.Id)}, you're too exhausted to go fishing```",
                                                  $"```Try again in {Math.Round(Convert.ToDecimal(120 - (DateTime.Now - CharactersData.GetCharacterFishingCooldown(Context.User.Id)).TotalSeconds))}s```");
                        }
                        await Context.Channel.SendMessageAsync("", false, FishingEmbed.Build());

                        return;
                    }
                }
                else
                {
                    FishingEmbed.WithColor(Color.Blue);
                    FishingEmbed.AddField($"<:FishingRod:603598075239596042>```Fishing skill comes with time, {CharactersData.GetCharacterName(Context.User.Id)}```",
                                          "```Required level of skill is: [5]\n" +
                                          $"Your current skill level is: [{CharactersData.GetCharacterFishingSkill(Context.User.Id)}]```");
                    await Context.Channel.SendMessageAsync("", false, FishingEmbed.Build());

                    return;
                }
            }
예제 #18
0
            public async Task IncomingPlayerBunnyHuntingRequest()
            {
                if (CharactersData.GetCharacterHuntingSkill(Context.User.Id) >= 5)
                {
                    if ((DateTime.Now - CharactersData.GetCharacterHuntingCooldown(Context.User.Id)).TotalSeconds >= 120) // checks if more than 120 seconds have passed between the last requests send by the player
                    {
                        //In future update add a bow durability check

                        //Execution of command
                        HuntingEmbed.WithColor(Color.Blue);
                        HuntingEmbed.AddField("<:Bow:603635600247226368>```Success!```", $"```You have received 1 bunny carcass!```");
                        await Context.Channel.SendMessageAsync("", false, HuntingEmbed.Build());

                        //Save data
                        await CharactersData.SavePlayerHuntingCooldown(Context.User.Id, DateTime.Now); //Refresh cooldown

                        await CharactersData.SaveCharacterBunnyCarcass(Context.User.Id, 1, 0.3f / CharactersData.GetCharacterHuntingSkill(Context.User.Id));
                    }
                    else
                    {
                        //Send message about cooldown
                        HuntingEmbed.WithColor(Color.Blue);
                        if (120 - (DateTime.Now - CharactersData.GetCharacterHuntingCooldown(Context.User.Id)).TotalSeconds > 60)
                        {
                            HuntingEmbed.AddField($"<:Bow:603635600247226368>```{CharactersData.GetCharacterName(Context.User.Id)}, you're too exhausted to hunt```",
                                                  $"```Try again in 1m {Math.Round(Convert.ToDecimal(120 - (DateTime.Now - CharactersData.GetCharacterHuntingCooldown(Context.User.Id)).TotalSeconds - 60))}s```");
                        }
                        else
                        {
                            HuntingEmbed.AddField($"<:Bow:603635600247226368>```{CharactersData.GetCharacterName(Context.User.Id)}, you're too exhausted to hunt```",
                                                  $"```Try again in {Math.Round(Convert.ToDecimal(120 - (DateTime.Now - CharactersData.GetCharacterHuntingCooldown(Context.User.Id)).TotalSeconds))}s```");
                        }
                        await Context.Channel.SendMessageAsync("", false, HuntingEmbed.Build());

                        return;
                    }
                }
                else
                {
                    HuntingEmbed.WithColor(Color.Blue);
                    HuntingEmbed.AddField($"<:Bow:603635600247226368>```Hunting skill comes with time, {CharactersData.GetCharacterName(Context.User.Id)}```",
                                          "```Required level of skill is: [5]\n" +
                                          $"Your current skill level is: [{CharactersData.GetCharacterHuntingSkill(Context.User.Id)}]```");
                    await Context.Channel.SendMessageAsync("", false, HuntingEmbed.Build());

                    return;
                }
            }
            public async Task IncomingPlayerBunnyLeatherCollectingRequest()
            {
                if (CharactersData.GetCharacterHuntingSkill(Context.User.Id) >= 5)
                {
                    //Checking commands
                    if (CharactersData.GetCharacterBunnyCarcass(Context.User.Id) < 1)
                    {
                        LeatherEmbed.WithColor(Color.Blue);
                        LeatherEmbed.AddField("<:Knife:607575664987734026>```You don't have enough bunny carcasses to collect leather from them!```", "```At least 1 bunny carcass required```");
                        await Context.Channel.SendMessageAsync("", false, LeatherEmbed.Build());

                        return;
                    }
                    //Execution of command
                    LeatherEmbed.WithColor(Color.Blue);
                    int TotalLeatherToGive = 0, TotalCarcassesToTook = 0, ChanceToGetBonusLeather, LeatherToGive;
                    for (int i = CharactersData.GetCharacterBunnyCarcass(Context.User.Id); i >= 1; i -= 1)
                    {
                        ChanceToGetBonusLeather = random.Next(0, 10);
                        if (ChanceToGetBonusLeather > (7 - CharactersData.GetCharacterHuntingSkill(Context.User.Id) / 12))
                        {
                            LeatherToGive = random.Next(3, 4);
                        }
                        else
                        {
                            LeatherToGive = random.Next(1, 2);
                        }
                        TotalLeatherToGive   += LeatherToGive;
                        TotalCarcassesToTook += 1;
                    }
                    LeatherEmbed.AddField("<:Knife:607575664987734026>```Success!```", $"```You have received {TotalLeatherToGive} units of bunny leather!```");
                    await Context.Channel.SendMessageAsync("", false, LeatherEmbed.Build());

                    //Save data
                    await CharactersData.SaveCharacterBunnyLeather(Context.User.Id, TotalLeatherToGive, 0.3f / CharactersData.GetCharacterHuntingSkill(Context.User.Id), TotalCarcassesToTook);;
                    return;
                }
                else
                {
                    LeatherEmbed.WithColor(Color.Blue);
                    LeatherEmbed.AddField($"<:Knife:607575664987734026>```Hunting skill comes with time, {CharactersData.GetCharacterName(Context.User.Id)}```",
                                          "```Required level of skill is: [5]\n" +
                                          $"Your current skill level is: [{CharactersData.GetCharacterHuntingSkill(Context.User.Id)}]```");
                    await Context.Channel.SendMessageAsync("", false, LeatherEmbed.Build());

                    return;
                }
            }
예제 #20
0
            public async Task IncomingPlayerBirchTreatingRequest()
            {
                if (CharactersData.GetCharacterWoodworkingSkill(Context.User.Id) >= 5)
                {
                    //Checking commands
                    if (CharactersData.GetCharacterBirchWood(Context.User.Id) < 5)
                    {
                        TreatingEmbed.WithColor(Color.Blue);
                        TreatingEmbed.AddField("<:Plank:607523563410554880>```You don't have enought birch wood to treat it!```", $"```You need {5 - CharactersData.GetCharacterBirchWood(Context.User.Id)} more units of birch wood```");
                        await Context.Channel.SendMessageAsync("", false, TreatingEmbed.Build());

                        return;
                    }
                    //Execution of command
                    TreatingEmbed.WithColor(Color.Blue);
                    int TotalPlanksToGive = 0, TotalWoodToTook = 0, ChanceToGetBonusPlanks, TreatedPlanksToGive;
                    for (int i = CharactersData.GetCharacterBirchWood(Context.User.Id); i >= 5; i -= 5)
                    {
                        ChanceToGetBonusPlanks = random.Next(0, 10);
                        if (ChanceToGetBonusPlanks > (7 - CharactersData.GetCharacterWoodworkingSkill(Context.User.Id) / 12))
                        {
                            TreatedPlanksToGive = random.Next(2, 3);
                        }
                        else
                        {
                            TreatedPlanksToGive = 1;
                        }
                        TotalPlanksToGive += TreatedPlanksToGive;
                        TotalWoodToTook   += 5;
                    }
                    TreatingEmbed.AddField("<:Plank:607523563410554880>```Success!```", $"```You have received {TotalPlanksToGive} units of treated birch wood!```");
                    await Context.Channel.SendMessageAsync("", false, TreatingEmbed.Build());

                    //Save data
                    await CharactersData.SaveCharacterThreatedBirchWood(Context.User.Id, TotalPlanksToGive, 0.3f / CharactersData.GetCharacterWoodworkingSkill(Context.User.Id), TotalWoodToTook);;
                    return;
                }
                else
                {
                    TreatingEmbed.WithColor(Color.Blue);
                    TreatingEmbed.AddField($"<:Plank:607523563410554880>```Treating skill comes with time, {CharactersData.GetCharacterName(Context.User.Id)}```",
                                           "```Required level of skill is: [5]\n" +
                                           $"Your current skill level is: [{CharactersData.GetCharacterWoodworkingSkill(Context.User.Id)}]```");
                    await Context.Channel.SendMessageAsync("", false, TreatingEmbed.Build());

                    return;
                }
            }
예제 #21
0
    public static void CharacterSelection(Packet _packet)
    {
        bool[] _characterLength = new bool[_packet.ReadInt()];

        List <CharactersData> chars = new List <CharactersData>();

        for (int i = 0; i < _characterLength.Length; i++)
        {
            CharactersData character = new CharactersData(_packet.ReadString(), _packet.ReadInt());
            chars.Add(character);
        }

        CharacterSelectionMenu.characters = chars;

        Loader.LoadLevel(Loader.Scene.CharacterSelection, Loader.Scene.LoadingSpinner);
    }
예제 #22
0
 private void Construct(IPrefabsCreater prefabsCreater, CharactersData charactersData, GameSettings gameSettings,
                        IChooserRandPosToMove chooserRandPosToMove, BulletData bulletData, IBulletSystem bulletSystem,
                        IEnemyRemover enemyRemover)
 {
     _prefabsCreater         = prefabsCreater;
     _navMeshAgent           = GetComponent <NavMeshAgent>();
     _navMeshAgent.speed     = charactersData.EnemyBossData.CharacterSpeed;
     _enemyBossHP            = charactersData.EnemyBossData.CharacterHp;
     _charactersData         = charactersData;
     _gameSettings           = gameSettings;
     _chooserRandPosToMove   = chooserRandPosToMove;
     _canAttack              = true;
     _bulletData             = bulletData;
     _countOfTheBulletSeries = bulletData.CountOfTheBulletSeriesForBoss;
     _bulletSystem           = bulletSystem;
     _enemyRemover           = enemyRemover;
 }
예제 #23
0
            public async Task IncomingPlayerCopperRemeltingRequest()
            {
                //Checking commands
                if (CharactersData.GetCharacterCopperOre(Context.User.Id) < 5)
                {
                    RemeltingEmbed.WithColor(Color.Blue);
                    RemeltingEmbed.AddField("<:Iron:603979800092344340>```You don't have enought copper to remelt it!```", $"```You need {5 - CharactersData.GetCharacterCopperOre(Context.User.Id)} more units of copper ore```");
                    await Context.Channel.SendMessageAsync("", false, RemeltingEmbed.Build());

                    return;
                }
                //Execution of command
                RemeltingEmbed.WithColor(Color.Blue);
                int TotalBarsToGive = 0, TotalOreToTook = 0;

                for (int i = CharactersData.GetCharacterCopperOre(Context.User.Id); i >= 5; i -= 5)
                {
                    int ChanceToGetBonusBars = random.Next(0, 10);
                    int RemeltedBarsToGive;
                    if (ChanceToGetBonusBars > (7 - CharactersData.GetCharacterOreMeltingSkill(Context.User.Id) / 10))
                    {
                        RemeltedBarsToGive = random.Next(2, 3);
                    }
                    else
                    {
                        RemeltedBarsToGive = 1;
                    }
                    TotalBarsToGive += RemeltedBarsToGive;
                    TotalOreToTook  += 5;
                }
                RemeltingEmbed.AddField("<:Iron:603979800092344340>```Success!```", $"```You have received {TotalBarsToGive} copper bars!```");
                await Context.Channel.SendMessageAsync("", false, RemeltingEmbed.Build());

                //Save data
                if (CharactersData.GetCharacterOreMeltingSkill(Context.User.Id) <= 2)
                {
                    await CharactersData.SaveCharacterRemeltedCopper(Context.User.Id, TotalBarsToGive, 0.3f, TotalOreToTook);
                }
                else
                {
                    await CharactersData.SaveCharacterRemeltedCopper(Context.User.Id, TotalBarsToGive, 0.3f / CharactersData.GetCharacterOreMeltingSkill(Context.User.Id), TotalOreToTook);;
                }
                return;
            }
예제 #24
0
            public async Task IncomingPlayerAshWoodChoppingRequest()
            {
                if ((DateTime.Now - CharactersData.GetCharacterWoodChoppingCooldown(Context.User.Id)).TotalSeconds >= 120) // checks if more than 120 seconds have passed between the last requests send by the player
                {
                    //In future update add a axe durability check

                    //Execution of command
                    int WoodToGiveAmount = random.Next(1, 5) + Convert.ToInt32(CharactersData.GetCharacterWoodChoppingSkill(Context.User.Id));
                    WoodChoppingEmbed.WithColor(Color.Blue);
                    WoodChoppingEmbed.AddField("<:Axe:603957682004688919>```Success!```", $"```You have received {WoodToGiveAmount} units of ash wood!```");
                    await Context.Channel.SendMessageAsync("", false, WoodChoppingEmbed.Build());

                    //Save data
                    await CharactersData.SavePlayerWoodChoppingCooldown(Context.User.Id, DateTime.Now); //Refresh cooldown for mining

                    if (CharactersData.GetCharacterWoodChoppingSkill(Context.User.Id) <= 2)
                    {
                        await CharactersData.SaveCharacterAshWood(Context.User.Id, WoodToGiveAmount, 0.3f);
                    }
                    else
                    {
                        await CharactersData.SaveCharacterAshWood(Context.User.Id, WoodToGiveAmount, 0.3f / CharactersData.GetCharacterWoodChoppingSkill(Context.User.Id));
                    }
                }
                else
                {
                    //Send message about cooldown
                    WoodChoppingEmbed.WithColor(Color.Blue);
                    if (120 - (DateTime.Now - CharactersData.GetCharacterWoodChoppingCooldown(Context.User.Id)).TotalSeconds > 60)
                    {
                        WoodChoppingEmbed.AddField($"<:Axe:603957682004688919>```{CharactersData.GetCharacterName(Context.User.Id)}, you're too exhausted to chop wood```",
                                                   $"```Try again in 1m {Math.Round(Convert.ToDecimal(120 - (DateTime.Now - CharactersData.GetCharacterWoodChoppingCooldown(Context.User.Id)).TotalSeconds - 60))}s```");
                    }
                    else
                    {
                        WoodChoppingEmbed.AddField($"<:Axe:603957682004688919>```{CharactersData.GetCharacterName(Context.User.Id)}, you're too exhausted to chop wood```",
                                                   $"```Try again in {Math.Round(Convert.ToDecimal(120 - (DateTime.Now - CharactersData.GetCharacterWoodChoppingCooldown(Context.User.Id)).TotalSeconds))}s```");
                    }
                    await Context.Channel.SendMessageAsync("", false, WoodChoppingEmbed.Build());

                    return;
                }
            }
            public async Task IncomingPlayerDuckFeathersCollectRequest()
            {
                //Checking commands
                if (CharactersData.GetCharacterDuckCarcass(Context.User.Id) < 1)
                {
                    LeatherEmbed.WithColor(Color.Blue);
                    LeatherEmbed.AddField("<:Knife:607575664987734026>```You don't have enough duck carcasses to collect feathers from them!```", "```At least 1 duck carcass required!```");
                    await Context.Channel.SendMessageAsync("", false, LeatherEmbed.Build());

                    return;
                }
                //Execution of command
                LeatherEmbed.WithColor(Color.Blue);
                int TotalFeathersToGive = 0, TotalCarcassesToTook = 0, ChanceToGetBonusFeathers, FeathersToGive;

                for (int i = CharactersData.GetCharacterDuckCarcass(Context.User.Id); i >= 1; i -= 1)
                {
                    ChanceToGetBonusFeathers = random.Next(0, 10);
                    if (ChanceToGetBonusFeathers > (7 - CharactersData.GetCharacterHuntingSkill(Context.User.Id) / 10))
                    {
                        FeathersToGive = random.Next(3, 6);
                    }
                    else
                    {
                        FeathersToGive = random.Next(2, 4);
                    }
                    TotalFeathersToGive  += FeathersToGive;
                    TotalCarcassesToTook += 1;
                }
                LeatherEmbed.AddField("<:Knife:607575664987734026>```Success!```", $"```You have received {TotalFeathersToGive} duck feathers!```");
                await Context.Channel.SendMessageAsync("", false, LeatherEmbed.Build());

                //Save data
                if (CharactersData.GetCharacterHuntingSkill(Context.User.Id) <= 2)
                {
                    await CharactersData.SaveCharacterDuckFeathers(Context.User.Id, TotalFeathersToGive, 0.3f, TotalCarcassesToTook);
                }
                else
                {
                    await CharactersData.SaveCharacterDuckFeathers(Context.User.Id, TotalFeathersToGive, 0.3f / CharactersData.GetCharacterHuntingSkill(Context.User.Id), TotalCarcassesToTook);;
                }
                return;
            }
예제 #26
0
            public async Task IncomingPlayerEggsCollectingRequest()
            {
                if ((DateTime.Now - CharactersData.GetCharacterFarmingCooldown(Context.User.Id)).TotalSeconds >= 120) // checks if more than 120 seconds have passed between the last requests send by the player
                {
                    //In future update add a axe durability check

                    //Execution of command
                    int AnimalLootToGiveAmount = random.Next(1, 5) + Convert.ToInt32(CharactersData.GetCharacterFarmingSkill(Context.User.Id));
                    AnimalsFarmEmbed.WithColor(Color.Blue);
                    AnimalsFarmEmbed.AddField("<:milkBar:604047741189881857>```Success!```", $"```You have received {AnimalLootToGiveAmount} eggs!```");
                    await Context.Channel.SendMessageAsync("", false, AnimalsFarmEmbed.Build());

                    //Save data
                    await CharactersData.SavePlayerFarmCooldown(Context.User.Id, DateTime.Now); //Refresh cooldown for mining

                    if (CharactersData.GetCharacterFarmingSkill(Context.User.Id) <= 2)
                    {
                        await CharactersData.SaveCharacterEggsAmount(Context.User.Id, AnimalLootToGiveAmount, 0.3f);
                    }
                    else
                    {
                        await CharactersData.SaveCharacterEggsAmount(Context.User.Id, AnimalLootToGiveAmount, 0.3f / CharactersData.GetCharacterFarmingSkill(Context.User.Id));
                    }
                }
                else
                {
                    //Send message about cooldown
                    AnimalsFarmEmbed.WithColor(Color.Blue);
                    if (120 - (DateTime.Now - CharactersData.GetCharacterFarmingCooldown(Context.User.Id)).TotalSeconds > 60)
                    {
                        AnimalsFarmEmbed.AddField($"<:milkBar:604047741189881857>```{CharactersData.GetCharacterName(Context.User.Id)}, you're too exhausted to collect farm loot```",
                                                  $"```Try again in 1m {Math.Round(Convert.ToDecimal(120 - (DateTime.Now - CharactersData.GetCharacterFarmingCooldown(Context.User.Id)).TotalSeconds - 60))}s```");
                    }
                    else
                    {
                        AnimalsFarmEmbed.AddField($"<:Wheat:603957637947588608>```{CharactersData.GetCharacterName(Context.User.Id)}, you're too exhausted to collect farm loot```",
                                                  $"```Try again in {Math.Round(Convert.ToDecimal(120 - (DateTime.Now - CharactersData.GetCharacterFarmingCooldown(Context.User.Id)).TotalSeconds))}s```");
                    }
                    await Context.Channel.SendMessageAsync("", false, AnimalsFarmEmbed.Build());

                    return;
                }
            }
예제 #27
0
            public async Task IncomingPlayerAshTreatingRequest()
            {
                //Checking commands
                if (CharactersData.GetCharacterAshWood(Context.User.Id) < 5)
                {
                    TreatingEmbed.WithColor(Color.Blue);
                    TreatingEmbed.AddField("<:Plank:607523563410554880>```You don't have enought ash wood to treat it!```", $"```You need {5 - CharactersData.GetCharacterAshWood(Context.User.Id)} more units of ash wood```");
                    await Context.Channel.SendMessageAsync("", false, TreatingEmbed.Build());

                    return;
                }
                //Execution of command
                TreatingEmbed.WithColor(Color.Blue);
                int TotalPlanksToGive = 0, TotalWoodToTook = 0, ChanceToGetBonusPlanks, TreatedPlanksToGive;

                for (int i = CharactersData.GetCharacterAshWood(Context.User.Id); i >= 5; i -= 5)
                {
                    ChanceToGetBonusPlanks = random.Next(0, 10);
                    if (ChanceToGetBonusPlanks > (7 - CharactersData.GetCharacterWoodworkingSkill(Context.User.Id) / 10))
                    {
                        TreatedPlanksToGive = random.Next(2, 3);
                    }
                    else
                    {
                        TreatedPlanksToGive = 1;
                    }
                    TotalPlanksToGive += TreatedPlanksToGive;
                    TotalWoodToTook   += 5;
                }
                TreatingEmbed.AddField("<:Plank:607523563410554880>```Success!```", $"```You have received {TotalPlanksToGive} units of treated ash wood!```");
                await Context.Channel.SendMessageAsync("", false, TreatingEmbed.Build());

                //Save data
                if (CharactersData.GetCharacterWoodworkingSkill(Context.User.Id) <= 2)
                {
                    await CharactersData.SaveCharacterTheratedAshWood(Context.User.Id, TotalPlanksToGive, 0.3f, TotalWoodToTook);
                }
                else
                {
                    await CharactersData.SaveCharacterTheratedAshWood(Context.User.Id, TotalPlanksToGive, 0.3f / CharactersData.GetCharacterWoodworkingSkill(Context.User.Id), TotalWoodToTook);;
                }
                return;
            }
예제 #28
0
            public async Task IncomingPlayerDuckMeatCollectRequest()
            {
                //Checking commands
                if (CharactersData.GetCharacterDuckCarcass(Context.User.Id) < 1)
                {
                    CookingEmbed.WithColor(Color.Blue);
                    CookingEmbed.AddField("<:Meat:607579880569307146>```You don't have enough duck carcasses to collect meat from them!```", "```At least 1 duck carcass required!```");
                    await Context.Channel.SendMessageAsync("", false, CookingEmbed.Build());

                    return;
                }
                //Execution of command
                CookingEmbed.WithColor(Color.Blue);
                int TotalMeatToGive = 0, TotalCarcassesToTook = 0, ChanceToGetBonusMeat, MeatToGive;

                for (int i = CharactersData.GetCharacterDuckCarcass(Context.User.Id); i >= 1; i -= 1)
                {
                    ChanceToGetBonusMeat = random.Next(0, 10);
                    if (ChanceToGetBonusMeat > (7 - CharactersData.GetCharacterCookingSkill(Context.User.Id) / 10))
                    {
                        MeatToGive = random.Next(3, 6);
                    }
                    else
                    {
                        MeatToGive = random.Next(2, 4);
                    }
                    TotalMeatToGive      += MeatToGive;
                    TotalCarcassesToTook += 1;
                }
                CookingEmbed.AddField("<:Meat:607579880569307146>```Success!```", $"```You have received {TotalMeatToGive} duck meat!```");
                await Context.Channel.SendMessageAsync("", false, CookingEmbed.Build());

                //Save data
                if (CharactersData.GetCharacterHuntingSkill(Context.User.Id) <= 2)
                {
                    await CharactersData.SaveCharacterDuckMeat(Context.User.Id, TotalMeatToGive, 0.3f, TotalCarcassesToTook);
                }
                else
                {
                    await CharactersData.SaveCharacterDuckMeat(Context.User.Id, TotalMeatToGive, 0.3f / CharactersData.GetCharacterCookingSkill(Context.User.Id), TotalCarcassesToTook);;
                }
                return;
            }
예제 #29
0
    /// <summary>
    /// Populates the characters datas.
    /// </summary>
    public static void PopulateCharactersDatas()
    {
        var character = new CharactersData();

        character.Name         = "Sam";
        character.Type         = EnumCharacterType.Warrior;
        character.Level        = 1;
        character.PicturesName = "Sam";
        character.HP           = 100;
        character.MaxHP        = 100;
        character.MP           = 10;
        character.MaxMP        = 10;

        CharactersData[1] = character;

        character              = new CharactersData();
        character.Name         = "Lilia";
        character.Type         = EnumCharacterType.Wizard;
        character.Level        = 1;
        character.PicturesName = "Lilia";
        character.HP           = 100;
        character.MaxHP        = 100;
        character.MP           = 30;
        character.MaxMP        = 30;

        CharactersData[2] = character;


        character              = new CharactersData();
        character.Name         = "RedMage";
        character.Type         = EnumCharacterType.Wizard;
        character.Level        = 1;
        character.PicturesName = "RedMage";
        character.HP           = 20;
        character.MaxHP        = 20;
        character.MP           = 30;
        character.MaxMP        = 30;

        CharactersData[3] = character;
    }
    /// <summary>
    /// Nexts the battle sequence.
    /// </summary>
    public void NextBattleSequence()
    {
        var x = turnByTurnSequenceList.Where(w => w.First == EnumPlayerOrEnemy.Enemy).Count();
        var y = turnByTurnSequenceList.Where(w => w.First == EnumPlayerOrEnemy.Player).Count();

        if (x <= 0)
        {
            currentState = EnumBattleState.PlayerWon;
            return;
        }
        else if (y <= 0)
        {
            currentState = EnumBattleState.EnemyWon;
            return;
        }


        if (sequenceEnumerator.MoveNext())
        {
            PositionSelector(sequenceEnumerator.Current.Second);
            if (sequenceEnumerator.Current.First == EnumPlayerOrEnemy.Player)
            {
                currentState = EnumBattleState.PlayerTurn;

                selectedPlayer                 = sequenceEnumerator.Current.Second;
                selectedPlayerDatas            = GetCharacterDatas(selectedPlayer.name);
                BattlePanels.SelectedCharacter = selectedPlayerDatas;
            }
            else if (sequenceEnumerator.Current.First == EnumPlayerOrEnemy.Enemy)
            {
                currentState = EnumBattleState.EnemyTurn;
            }
        }
        else
        {
            sequenceEnumerator = turnByTurnSequenceList.GetEnumerator();
            NextBattleSequence();
        }
    }