using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DIGIEVO { public enum DamageType { Physical, Special, None } public struct Move { public const int NUMBER_OF_MOVES = 22; public static List allMoves; public string name; public string description; public Element element; public DamageType damageType; public int damage; public int expcost; public float dodgechance; public float variation; public int type; public int pp; public int maxPP; public float rarity; public bool canLearn; public static void InitAllMoves() { allMoves = new List(); for (int i = 0; i < NUMBER_OF_MOVES; i++) { Move move = new Move(); move.name = "UNKNOWN"; move.description = ""; move.element = Element.NORMAL; move.damageType = DamageType.Physical; move.damage = 0; move.expcost = 50; move.dodgechance = 0.1f; move.variation = 0.3f; move.type = i; move.maxPP = 5; move.pp = 5; move.rarity = 0.5f; move.canLearn = true; switch (i) { case 0: //WAIT move.name = "WAIT"; move.damageType = DamageType.None; move.dodgechance = 0; move.description = "Do nothing for one turn."; break; case 1: //TACKLE move.name = "TACKLE"; move.damage = 100; move.description = "A basic attack. Deals average damage."; move.pp = 10; break; case 2: //FIRE move.name = "FIRE"; move.damage = 100; move.damageType = DamageType.Special; move.element = Element.FIRE; move.description = "A FIRE-element attack that deals average damage."; move.pp = 3; break; case 3: //WATER move.name = "WATER"; move.damage = 100; move.damageType = DamageType.Special; move.element = Element.WATER; move.description = "A WATER-element attack that deals average damage."; move.pp = 3; break; case 4: //GRASS move.name = "GRASS"; move.damage = 100; move.damageType = DamageType.Special; move.element = Element.GRASS; move.description = "A GRASS-element attack that deals average damage."; move.pp = 3; break; case 5: //LIGHT move.name = "LIGHT"; move.damage = 100; move.damageType = DamageType.Special; move.element = Element.LIGHT; move.description = "A LIGHT-element attack that deals average damage."; move.pp = 3; break; case 6: //DARK move.name = "DARK"; move.damage = 100; move.damageType = DamageType.Special; move.element = Element.DARK; move.description = "A DARK-element attack that deals average damage."; move.pp = 3; break; case 7: //FLAIL move.name = "FLAIL"; move.damage = 100; move.variation = 1.8f; move.expcost = 50; move.description = "Flail wildly. Damage varies strongly."; move.pp = 3; break; case 8: //HEAL move.name = "HEAL"; move.damage = 0; move.damageType = DamageType.None; move.expcost = 100; move.pp = 1; move.rarity = 0.25f; move.element = Element.LIGHT; move.description = "Fully heals the user's HP."; break; case 9: //DISABLE move.name = "DISABLE"; move.damage = 0; move.damageType = DamageType.None; move.expcost = 100; move.pp = 1; move.rarity = 0.25f; move.element = Element.DARK; move.description = "Disables one of the enemy's moves, chosen at random."; break; case 10: //FOCUS move.name = "FOCUS"; move.damage = 0; move.dodgechance = 0; move.damageType = DamageType.None; move.canLearn = false; break; case 11: //BARRIER move.name = "BARRIER"; move.damage = 0; move.damageType = DamageType.None; move.element = Element.LIGHT; move.description = "Prevents all damage of the next attack."; move.pp = 3; move.rarity = 0.4f; move.expcost = 100; break; case 12: //INFERNO move.name = "INFERNO"; move.damage = 250; move.damageType = DamageType.Special; move.element = Element.FIRE; move.description = "Waits a turn, then does massive FIRE damage."; move.pp = 2; move.rarity = 0.3f; move.expcost = 150; break; case 13: //FLOOD move.name = "FLOOD"; move.damage = 250; move.damageType = DamageType.Special; move.element = Element.WATER; move.description = "Waits a turn, then does massive WATER damage."; move.pp = 2; move.rarity = 0.3f; move.expcost = 150; break; case 14: //HURRICANE move.name = "HURRICANE"; move.damage = 250; move.damageType = DamageType.Special; move.element = Element.GRASS; move.description = "Waits a turn, then does massive GRASS damage."; move.pp = 2; move.rarity = 0.3f; move.expcost = 150; break; case 15: //EARTHQUAKE move.name = "EARTHQUAKE"; move.damage = 250; move.damageType = DamageType.Physical; move.element = Element.NORMAL; move.description = "Waits a turn, then does massive physical damage."; move.pp = 2; move.rarity = 0.3f; move.expcost = 150; break; case 16: //FIRE PUNCH move.name = "FIRE PUNCH"; move.damage = 100; move.damageType = DamageType.Physical; move.element = Element.FIRE; move.description = "A punch powered by FIRE."; move.pp = 3; break; case 17: //WATER PUNCH move.name = "WATER PUNCH"; move.damage = 100; move.damageType = DamageType.Physical; move.element = Element.WATER; move.description = "A punch powered by WATER."; move.pp = 3; break; case 18: //LEAF PUNCH move.name = "LEAF PUNCH"; move.damage = 100; move.damageType = DamageType.Physical; move.element = Element.GRASS; move.description = "A punch powered by GRASS."; move.pp = 3; break; case 19: //HOLY PUNCH move.name = "HOLY PUNCH"; move.damage = 100; move.damageType = DamageType.Physical; move.element = Element.LIGHT; move.description = "A punch powered by LIGHT."; move.pp = 3; break; case 20: //SHADOW PUNCH move.name = "SHADOW PUNCH"; move.damage = 100; move.damageType = DamageType.Physical; move.element = Element.DARK; move.description = "A punch powered by DARK."; move.pp = 3; break; case 21: //CERTAIN STRIKE move.name = "CERTAIN STRIKE"; move.damage = 80; move.dodgechance = 0f; move.description = "An attack that can never be dodged."; move.pp = 3; move.canLearn = false; break; } move.maxPP = move.pp; allMoves.Add(move); } } } }