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); }
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()); }
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); }
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; }
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(); }
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; }
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; }
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"); } }
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; } }
private void Start() { charData = GetComponent <CharactersData>(); aniCtrl = charData.GetComponent <CharactersAniCtrl>(); pool = GameObject.Find("MemoryPool").GetComponent <MemoryPooling>(); _audio = GetComponent <AudioSource>(); if (isPlayer) { playerUI = GetComponent <UIBar>(); } }
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; } }
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; } }
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; } }
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; }
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; } }
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; } }
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; } }
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; } }
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); }
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; }
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; }
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; }
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; } }
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; }
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; }
/// <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(); } }