public void ItemDrop(bool enemyAlive, HeroClassTypes heroClass) { // get item drop chance - DONE // get what type of item is dropped - DONE // chance of different type of weapon // ask to equip // equip itemDropped = PercentageItemDrop(enemyAlive); itemType = ItemTypeDropped(itemDropped); if (itemType == ItemType.Weapon) { ReturnWeaponType(heroClass); } else if (itemType == ItemType.Armour) { ReturnArmourType(); } else if (itemType == ItemType.Item) { ReturnItemType(); } }
public HeroClass(string name, Alignment faction, HeroClassTypes heroClassTypes) { _name = name; _faction = faction; _isAlive = true; switch (heroClassTypes) { case HeroClassTypes.spearman: _basicHealth = _basicHealthSpearman; _basicstrength = _basicstrengthSpearman; _basicDexterity = _basicDexteritySpearman; break; case HeroClassTypes.swordsman: _basicHealth = _basicHealthSwordsman; _basicstrength = _basicstrengthSwordsman; _basicDexterity = _basicDexteritySwordsman; break; case HeroClassTypes.ranger: _basicHealth = _basicHealthRanger; _basicstrength = _basicstrengthRanger; _basicDexterity = _basicDexterityRanger; break; default: break; } }
public void AttackPlayer1(HeroClassTypes heroClassTypes, Hero hero, EnemyClassType enemyClass) { int damage = ReturnDamageDealt(enemyClass); int reducedDamage = EnemyDamageReductionFromDefence(damage, heroClassTypes, hero); PlayerHealthReduction1(hero, reducedDamage, heroClassTypes); }
public void UseItem(HeroClassTypes heroClass) { int tempPotionProperty = potion.ITEM_PROPERTIES; switch (potion.PotionTypes) { case PotionTypes.Health: SettingPlayerHealthWithPotion(heroClass, tempPotionProperty); break; case PotionTypes.Defence: SettingPlayerDefenceWithPotion(heroClass, tempPotionProperty); break; case PotionTypes.Attack: SettingPlayerStrengthWithPotion(heroClass, tempPotionProperty); break; default: break; } _usableItem = false; potion = new PotionItem(); }
public void AttackEnemy1(HeroClassTypes heroClassTypes, Enemy enemy, EnemyClassType enemyClass, int missFactor) { int damage = ReturnDamageDealt(heroClassTypes, missFactor); int reducedDamage = EnemyDamageReductionFromDefence(damage, enemyClass, enemy); EnemyHealthReduction1(enemy, reducedDamage, enemyClass); }
private int EnemyDamageReductionFromDefence(int damage, HeroClassTypes heroClass, Hero hero) { int defence = 0; int reducedDamage = 0; switch (heroClass) { case HeroClassTypes.spearman: defence = hero.heroSpear.Defending(); //reducedDamage = DamageChecker(damage, defence); break; case HeroClassTypes.swordsman: defence = hero.heroSword.Defending(); break; case HeroClassTypes.ranger: defence = hero.heroRanger.Defending(); break; default: break; } reducedDamage = DamageChecker(damage, defence); DamageDealt = reducedDamage; return(reducedDamage); }
public static void GettingStats(HeroClassTypes heroClass) { switch (heroClass) { case HeroClassTypes.spearman: Spearman spearman = new Spearman("Spearman", Alignment.good); Console.WriteLine($"Class Type : {spearman.Name}"); Console.WriteLine($"Health : {spearman.Health}"); Console.WriteLine($"Strength : {spearman.Strength}"); Console.WriteLine($"Dexterity : {spearman.Dexterity}"); Console.WriteLine($"Defence : {spearman.Defence}"); break; case HeroClassTypes.swordsman: Swordsman swordsman = new Swordsman("Swordsman", Alignment.good); Console.WriteLine($"Class Type : {swordsman.Name}"); Console.WriteLine($"Health : {swordsman.Health}"); Console.WriteLine($"Strength : {swordsman.Strength}"); Console.WriteLine($"Dexterity : {swordsman.Dexterity}"); Console.WriteLine($"Defence : {swordsman.Defence}"); break; case HeroClassTypes.ranger: Ranger ranger = new Ranger("Ranger", Alignment.good); Console.WriteLine($"Class Type : {ranger.Name}"); Console.WriteLine($"Health : {ranger.Health}"); Console.WriteLine($"Strength : {ranger.Strength}"); Console.WriteLine($"Dexterity : {ranger.Dexterity}"); Console.WriteLine($"Defence : {ranger.Defence}"); break; default: break; } }
private static string ItemDroppedHelperItemTypeProperties(ItemManager item, HeroClassTypes heroClass) { switch (item.ITEMTYPEDROPPED) { case ItemType.Weapon: return(item.WEAPONDROPPED.Damage.ToString()); case ItemType.Armour: return(item.ARMOR_DROPPED.Defence.ToString()); case ItemType.Item: if (item.POTION_DROPPED.PotionTypes == PotionTypes.Health) { return("+" + item.POTION_DROPPED.ITEM_PROPERTIES.ToString() + " Health"); } else if (item.POTION_DROPPED.PotionTypes == PotionTypes.Defence) { return("+" + item.POTION_DROPPED.ITEM_PROPERTIES.ToString() + " Defence Points"); } else if (item.POTION_DROPPED.PotionTypes == PotionTypes.Attack) { return("+" + item.POTION_DROPPED.ITEM_PROPERTIES.ToString() + " Attack Damage"); } else { return("You need a basic weapon!"); } default: return("You need a basic weapon!"); } }
private static void AnimationPlay(string[] animationClip, HeroClassTypes heroClass, EnemyClassType enemyClass, Hero hero, Enemy enemy, bool homePage) { int delayBetweenAnimationCycles = 250; for (int i = 0; i < animationClip.Length; i++) { MenuQueries.CharacterInformationSheet(heroClass, hero, enemy, enemyClass); Utilities.ColorWriteLines(animationClip[i], ConsoleColor.Gray); MenuQueries.CharacterInformationBattleSheet(hero, enemy, homePage); Thread.Sleep(delayBetweenAnimationCycles); MenuQueries.ConsoleClearResetMenu(); } for (int i = animationClip.Length - 1; i >= 0; i--) { MenuQueries.CharacterInformationSheet(heroClass, hero, enemy, enemyClass); Utilities.ColorWriteLines(animationClip[i], ConsoleColor.Gray); MenuQueries.CharacterInformationBattleSheet(hero, enemy, homePage); Thread.Sleep(delayBetweenAnimationCycles); if (i != 0) { MenuQueries.ConsoleClearResetMenu(); } } }
public static void CharacterDisplay(HeroClassTypes heroClass, EnemyClassType enemyClass) { AnimationsData animationsData = new AnimationsData(); int playerIndex; int enemyIndex; string display; playerIndex = ReturnHeroAnimationListNumber(heroClass); enemyIndex = ReturnEnemyAnimationListNumber(enemyClass); display = animationsData.DisplayCharacter(playerIndex, enemyIndex); Console.WriteLine(display); }
public void PlayerDefend(HeroClassTypes heroClass, bool defending) { DamageDealt = 0; if (defending == true) { ISAttacking = false; } switch (heroClass) { case HeroClassTypes.spearman: if (defending == true) { Console.WriteLine("You are defending!"); heroSpear.IsDefending = true; } else { heroSpear.IsDefending = false; } break; case HeroClassTypes.swordsman: if (defending == true) { Console.WriteLine("You are defending!"); heroSword.IsDefending = true; } else { heroSword.IsDefending = false; } break; case HeroClassTypes.ranger: if (defending == true) { Console.WriteLine("You are defending!"); heroRanger.IsDefending = true; } else { heroRanger.IsDefending = false; } break; default: break; } }
public static void AnimationBattle(HeroClassTypes heroClass, EnemyClassType enemyClass, int playerCombatSelecter, int enemyCombatSelecter, Hero hero, Enemy enemy, bool homePage) { MenuQueries.ConsoleClearResetMenu(); int heroAnimationListNumber; int enemyAnimationListNumber; int animationIndex; heroAnimationListNumber = ReturnHeroAnimationListNumber(heroClass); enemyAnimationListNumber = ReturnEnemyAnimationListNumber(enemyClass); animationIndex = ReturnAnimationIndexNumber(playerCombatSelecter, enemyCombatSelecter); AnimationPlay(ReturnAnimationArray(heroAnimationListNumber, enemyAnimationListNumber, animationIndex), heroClass, enemyClass, hero, enemy, homePage); }
public void Fighting(HeroClassTypes heroClassTypes, EnemyClassType enemyClassType, StateManager stateManager, int playerCombatSelecter, int enemyCombatSelecter, Hero playerHero, Enemy enemy) { { if (playerCombatSelecter == 1) { if (enemyCombatSelecter == 1) { playerHero.AttackEnemy1(heroClassTypes, enemy, enemyClassType, stateManager.AttackMissFactor()); enemy.AttackPlayer1(heroClassTypes, playerHero, enemyClassType); MenuQueries.BattleDisplayPage(heroClassTypes, playerHero, enemy, enemyClassType, false, playerCombatSelecter, enemyCombatSelecter); } else if (enemyCombatSelecter == 2) { enemy.EnemyDefend(enemyClassType, true); playerHero.AttackEnemy1(heroClassTypes, enemy, enemyClassType, stateManager.AttackMissFactor()); enemy.EnemyDefend(enemyClassType, false); MenuQueries.BattleDisplayPage(heroClassTypes, playerHero, enemy, enemyClassType, false, playerCombatSelecter, enemyCombatSelecter); } } else if (playerCombatSelecter == 2) { if (enemyCombatSelecter == 1) { playerHero.PlayerDefend(heroClassTypes, true); enemy.AttackPlayer1(heroClassTypes, playerHero, enemyClassType); playerHero.PlayerDefend(heroClassTypes, false); MenuQueries.BattleDisplayPage(heroClassTypes, playerHero, enemy, enemyClassType, false, playerCombatSelecter, enemyCombatSelecter); } else if (enemyCombatSelecter == 2) { playerHero.PlayerDefend(heroClassTypes, true); enemy.EnemyDefend(enemyClassType, true); playerHero.PlayerDefend(heroClassTypes, false); enemy.EnemyDefend(enemyClassType, false); MenuQueries.BattleDisplayPage(heroClassTypes, playerHero, enemy, enemyClassType, false, playerCombatSelecter, enemyCombatSelecter); } } else { playerHero.UseItem(heroClassTypes); } } }
private static int ReturnHeroAnimationListNumber(HeroClassTypes heroClass) { switch (heroClass) { case HeroClassTypes.spearman: return(0); case HeroClassTypes.swordsman: return(1); case HeroClassTypes.ranger: return(2); default: return(0); } }
private static string ItemDroppedHelperItemTypeDescription(ItemManager item, HeroClassTypes heroClass) { switch (item.ITEMTYPEDROPPED) { case ItemType.Weapon: return(item.WEAPONDROPPED.WeaponDescription); case ItemType.Armour: return(item.ARMOR_DROPPED.ArmourDescription); case ItemType.Item: return(item.POTION_DROPPED.ITEM_DESCRIPTION); default: return("You need a basic weapon!"); } }
private static string CharacterInformationPlayerNameSheet(Hero hero, HeroClassTypes heroClass) { switch (heroClass) { case HeroClassTypes.spearman: return(hero.heroSpear.Name.ToUpper()); case HeroClassTypes.swordsman: return(hero.heroSword.Name.ToUpper()); case HeroClassTypes.ranger: return(hero.heroRanger.Name.ToUpper()); default: return("No Name Available"); } }
private static string ItemDroppedHelperItemTypeName(ItemManager item, HeroClassTypes heroClass) { switch (item.ITEMTYPEDROPPED) { case ItemType.Weapon: return(item.WEAPONDROPPED.Name); case ItemType.Armour: return(item.ARMOR_DROPPED.Name); case ItemType.Item: return(item.POTION_DROPPED.ITEM_NAME); default: return("You need a basic weapon!"); } }
private static string CharacterInformationPlayerHealthSheet(Hero hero, HeroClassTypes heroClass) { switch (heroClass) { case HeroClassTypes.spearman: return(hero.heroSpear.Health.ToString()); case HeroClassTypes.swordsman: return(hero.heroSword.Health.ToString()); case HeroClassTypes.ranger: return(hero.heroRanger.Health.ToString()); default: return("No Health Available"); } }
public int GettingHealth(HeroClassTypes heroClass) { switch (heroClass) { case HeroClassTypes.spearman: return(heroSpear.Health); case HeroClassTypes.swordsman: return(heroSword.Health); case HeroClassTypes.ranger: return(heroRanger.Health); default: return(1); } }
public static string ItemDropped(ItemManager item, HeroClassTypes heroClass) { string spacer = "|"; string itemName = "Item"; string itemDescription = "Item Description"; string itemProperties = "Properties"; string input; switch (item.ITEMTYPEDROPPED) { case ItemType.Weapon: itemProperties = "Damage"; break; case ItemType.Armour: itemProperties = "Defence"; break; case ItemType.Item: itemProperties = "Properties"; break; default: break; } Console.Clear(); Console.WriteLine($"{ SubHeading}"); Console.WriteLine("\n\n\n\n\n\n\n\n\n"); Console.WriteLine($"\t\t {spacer} ****************************************************** {spacer}"); Console.WriteLine($"\t\t {spacer} Item Dropped! {spacer}"); Console.WriteLine($"\t\t {spacer} ------------------------------------------------------ {spacer}"); Console.WriteLine($"\t\t {spacer} {itemName, -16} : {ItemDroppedHelperItemTypeName(item, heroClass), -17} {spacer}"); Console.WriteLine($"\t\t {spacer} {itemDescription, -16} : {ItemDroppedHelperItemTypeDescription(item, heroClass),-36}{spacer}"); Console.WriteLine($"\t\t {spacer} {itemProperties, -16} : {ItemDroppedHelperItemTypeProperties(item, heroClass),-24} {spacer}"); Console.WriteLine($"\t\t {spacer} ****************************************************** {spacer}"); Console.WriteLine(); input = Input.InputStringForYesNoStatements("Would you like to equip the item?"); Console.WriteLine($"\n\t\t {spacer} ****************************************************** {spacer}"); return(input); // like to equip? }
public void SettingHealth(HeroClassTypes heroClass, int healthNewHealthValue) { switch (heroClass) { case HeroClassTypes.spearman: heroSpear.Health = healthNewHealthValue; break; case HeroClassTypes.swordsman: heroSword.Health = healthNewHealthValue; break; case HeroClassTypes.ranger: heroRanger.Health = healthNewHealthValue; break; default: break; } }
private void SettingPlayerDefenceWithPotion(HeroClassTypes heroClass, int defenceFromPotion) { switch (heroClass) { case HeroClassTypes.spearman: heroSpear.Defence += defenceFromPotion; break; case HeroClassTypes.swordsman: heroSword.Defence += defenceFromPotion; break; case HeroClassTypes.ranger: heroRanger.Defence += defenceFromPotion; break; default: break; } }
private void SettingPlayerStrengthWithPotion(HeroClassTypes heroClass, int strengthFromPotion) { switch (heroClass) { case HeroClassTypes.spearman: heroSpear.Strength += strengthFromPotion; break; case HeroClassTypes.swordsman: heroSword.Strength += strengthFromPotion; break; case HeroClassTypes.ranger: heroRanger.Strength += strengthFromPotion; break; default: break; } }
private void PlayerHealthReduction1(Hero hero, int damage, HeroClassTypes heroClass) { int healthSetter = 0; int enemyHealth = hero.GettingHealth(heroClass); int currentHealth = enemyHealth - damage; int healthReduction = enemyHealth - damage; if (currentHealth <= 0) { healthSetter = 0; hero.SettingHealth(heroClass, healthSetter); hero.IsAlive = false; } else { Console.WriteLine($"Enemy Attacks for {damage}"); hero.SettingHealth(heroClass, healthReduction); } }
public static void CharacterInformationSheet(HeroClassTypes heroClass, Hero hero, Enemy enemy, EnemyClassType enemyClass) { string health = "Health"; string weapons = "Weapon"; string armour = "Armour"; string item = "Item"; string spacer = "--"; char lineSpacer = '-'; string blank = " "; Console.WriteLine(new string(lineSpacer, Console.WindowWidth - 1)); Console.WriteLine($"{spacer} {CharacterInformationPlayerNameSheet(hero, heroClass),-50}{spacer} {CharacterInformationEnemyNameSheet(enemy, enemyClass),-50} {spacer}"); Console.WriteLine(new string(lineSpacer, Console.WindowWidth - 1)); Console.WriteLine(string.Format($"{spacer} {health,-10} : {CharacterInformationPlayerHealthSheet(hero, heroClass),-37}{spacer} {health,-10} : {CharacterInformationEnemyHealthSheet(enemy, enemyClass),-37} {spacer}")); Console.WriteLine(string.Format($"{spacer} {weapons,-10} : {hero.Weapon.Name,-37}{spacer} {weapons,-10} : {blank,-37} {spacer}")); Console.WriteLine(string.Format($"{spacer} {armour,-10} : {hero.Armor.Name,-37}{spacer} {armour,-10} : {blank,-37} {spacer}")); Console.WriteLine(string.Format($"{spacer} {item,-10} : {CharacterInformationEnemyPotionTypeheet(hero),-37}{spacer} {item,-10} : {blank,-37} {spacer}")); Console.WriteLine(new string(lineSpacer, Console.WindowWidth - 1)); Console.WriteLine(new string(lineSpacer, Console.WindowWidth - 1)); }
public Hero(HeroClassTypes heroClassTypes, string name) { heroClassSelected = heroClassTypes; _isAlive = true; PlayerLevel = 1; PlayerExperience = 0; switch (heroClassTypes) { case HeroClassTypes.spearman: //hero = new HeroClass(name, Alignment.good, HeroClassTypes.spearman); heroSpear = new Spearman(name, Alignment.good); weapon = new WoodenSpear(); armour = new Armor(); potion = new PotionItem(); break; case HeroClassTypes.swordsman: //hero = new HeroClass(name, Alignment.good, HeroClassTypes.swordsman); heroSword = new Swordsman(name, Alignment.good); weapon = new WoodenSword(); armour = new Armor(); potion = new PotionItem(); break; case HeroClassTypes.ranger: //hero = new HeroClass(name, Alignment.good, HeroClassTypes.ranger); heroRanger = new Ranger(name, Alignment.good); weapon = new WoodenBow(); armour = new Armor(); potion = new PotionItem(); break; default: break; } }
private int ReturnDamageDealt(HeroClassTypes heroClass, int missFactor) { int damage = 0; ISAttacking = true; switch (heroClass) { case HeroClassTypes.spearman: damage = heroSpear.Attack(missFactor); break; case HeroClassTypes.swordsman: damage = heroSword.Attack(missFactor); break; case HeroClassTypes.ranger: damage = heroRanger.Attack(missFactor); break; default: break; } if (damage == 0) { Console.WriteLine("No damage done!"); ISMissing = true; return(0); } else { damage += weapon.Damage; ISMissing = false; return(damage); } }
public static void BattleDisplayPage(HeroClassTypes heroClass, Hero hero, Enemy enemy, EnemyClassType enemyClass, bool homePage, int playerCombatSelecter, int enemyCombatSelecter) { Animation.AnimationBattle(heroClass, enemyClass, playerCombatSelecter, enemyCombatSelecter, hero, enemy, homePage); }
public static void BattleDisplayPage(HeroClassTypes heroClass, Hero hero, Enemy enemy, EnemyClassType enemyClass, bool homePage) { CharacterInformationSheet(heroClass, hero, enemy, enemyClass); Animation.CharacterDisplay(heroClass, enemyClass); CharacterInformationBattleSheet(hero, enemy, homePage); }
private void ReturnWeaponType(HeroClassTypes heroClass) { randomDropChancePercentage = randomItemDropChance.Next(1, 101); int lowPercent = 0; int woodRange = lowPercent + WoodenEquipmentDropChance; int stoneRange = woodRange + StoneEquipmentDropChance; int ironRange = stoneRange + ironEquipmentDropChance; int diamondRange = ironRange + diamondEquipmentDropChance; if (randomDropChancePercentage > lowPercent && randomDropChancePercentage <= woodRange) { switch (heroClass) { case HeroClassTypes.spearman: itemTempWeapon = new WoodenSpear(); break; case HeroClassTypes.swordsman: itemTempWeapon = new WoodenSword(); break; case HeroClassTypes.ranger: itemTempWeapon = new WoodenBow(); break; default: itemTempWeapon = new Weapon(); break; } } else if (randomDropChancePercentage > woodRange && randomDropChancePercentage <= stoneRange) { switch (heroClass) { case HeroClassTypes.spearman: itemTempWeapon = new StoneSpear(); break; case HeroClassTypes.swordsman: itemTempWeapon = new StoneSword(); break; case HeroClassTypes.ranger: itemTempWeapon = new StoneBow(); break; default: itemTempWeapon = new Weapon(); break; } } else if (randomDropChancePercentage > stoneRange && randomDropChancePercentage <= ironRange) { switch (heroClass) { case HeroClassTypes.spearman: itemTempWeapon = new IronSpear(); break; case HeroClassTypes.swordsman: itemTempWeapon = new IronSword(); break; case HeroClassTypes.ranger: itemTempWeapon = new IronBow(); break; default: itemTempWeapon = new Weapon(); break; } } else { switch (heroClass) { case HeroClassTypes.spearman: itemTempWeapon = new DiamondSpear(); break; case HeroClassTypes.swordsman: itemTempWeapon = new DiamondSword(); break; case HeroClassTypes.ranger: itemTempWeapon = new DiamondBow(); break; default: itemTempWeapon = new Weapon(); break; } } }