public void ActivatePassive(string nameOfPassive, Hero player) { if (nameOfPassive == "AMPLIFY MAGIC") { this.IsAmplified = true; this.PassiveDuration = AbilityDurationConstants.AmplifierDuration; player.Actions.First(a => a.Name == nameOfPassive).SetCooldown(AbilityCooldownConstants.AmplifyMagicCooldown); ArcaneBlast arcaneBlast = player.Actions[0] as ArcaneBlast; } else { this.Mana += AbilityConstants.ArcaneMageManaRegeneration; this.PassiveDuration--; player.Actions.First(a => a.Name == nameOfPassive).SetCooldown(AbilityCooldownConstants.ManaRegenerationCooldown); } if (this.PassiveDuration <= 0) { this.isAmplified = false; } }
private static CurrentSpell ArcaneMageCommands(Player mage) { ConsoleKeyInfo enter = new ConsoleKeyInfo(); Console.Clear(); var counter = 1; while (enter.Key != ConsoleKey.Enter) { if (enter.Key == ConsoleKey.DownArrow) { counter++; } else if (enter.Key == ConsoleKey.UpArrow) { counter--; } GameTitle.GetTitle(); string actionSelect = $"SELECT ACTION FOR {mage.Name}"; string polymorph = $"POLYMORPH-- DISABLE TARGET FOR 2 TURNS, COST: 200 MANA, COOLDOWN: 4"; string arcaneBlast = $"ARCANE BLAST-- DAMAGE:{mage.Spellpower * 3}, COST: 90 MANA, , NO COOLDOWN"; string amplifier = $"AMPLIFY MAGIC-- DOUBLE SPELL DAMAGE FOR NEXT 2 TURNS, COST: 250 MANA, COOLDOWN: 4"; string manaRegen = $"MANA REGENERATION-- GET 300 MANA, COOLDOWN: 3"; Console.WriteLine("{0}", actionSelect); switch (counter) { case 1: Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine("{0,2}", "-> " + polymorph); Console.WriteLine("{0,2}", arcaneBlast); Console.WriteLine("{0,2}", amplifier); Console.WriteLine("{0,2}", manaRegen); break; case 2: Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine("{0,2}", polymorph); Console.WriteLine("{0,2}", "-> " + arcaneBlast); Console.WriteLine("{0,2}", amplifier); Console.WriteLine("{0,2}", manaRegen); break; case 3: Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine("{0,2}", polymorph); Console.WriteLine("{0,2}", arcaneBlast); Console.WriteLine("{0,2}", "-> " + amplifier); Console.WriteLine("{0,2}", manaRegen); break; case 4: Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine("{0,2}", polymorph); Console.WriteLine("{0,2}", arcaneBlast); Console.WriteLine("{0,2}", amplifier); Console.WriteLine("{0,2}", "-> " + manaRegen); break; default: if (counter == 5) { counter = 1; Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine("{0,2}", "-> " + polymorph); Console.WriteLine("{0,2}", arcaneBlast); Console.WriteLine("{0,2}", amplifier); Console.WriteLine("{0,2}", manaRegen); break; } else if (counter == 0) { counter = 4; Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine("{0,2}", polymorph); Console.WriteLine("{0,2}", arcaneBlast); Console.WriteLine("{0,2}", amplifier); Console.WriteLine("{0,2}", "-> " + manaRegen); break; } break; } enter = Console.ReadKey(); Console.Clear(); } var currentSpell = new CurrentSpell(); switch (counter) { case 1: var polymorph = new Polymorph(); currentSpell = polymorph.GetPolymorph(mage); break; case 2: var arcaneBlast = new ArcaneBlast(); currentSpell = arcaneBlast.GetArcaneBlast(mage); break; case 3: var amplifier = new Amplifier(); currentSpell = amplifier.GetAmplifier(mage); break; default: var manaReg = new ManaRegeneration(); currentSpell = manaReg.GetManaReg(mage); break; } return(currentSpell); }
public Spell GetSpell(SpellId spellId) { Spell s = Spells[(int)spellId]; if (s != null) { return(s); } //Spell s = null; //if (Spells.TryGetValue((int)spellId, out s)) return s; switch (spellId) { case SpellId.ArcaneBolt: s = new ArcaneBolt(this); break; case SpellId.LightningBolt: s = new LightningBolt(this); break; case SpellId.ArcaneMissiles: s = new ArcaneMissiles(this, false); break; case SpellId.ArcaneMissilesMB: s = new ArcaneMissiles(this, true); break; case SpellId.ArcaneMissilesCC: s = new ArcaneMissilesCC(this); break; case SpellId.ArcaneMissilesNoProc: s = new ArcaneMissiles(this, false, true, false, false); break; /*case SpellId.ArcaneMissilesFTF: * s = new ArcaneMissiles(this); * break; * case SpellId.ArcaneMissilesFTT: * s = new ArcaneMissiles(this); * break;*/ case SpellId.Frostbolt: s = new Frostbolt(this); break; case SpellId.FrostboltNoCC: s = new Frostbolt(this, true, false, false); break; case SpellId.Fireball: s = new Fireball(this, false); break; case SpellId.FrostfireBolt: s = new FrostfireBolt(this, false); break; case SpellId.Pyroblast: s = new Pyroblast(this, false); break; case SpellId.FireBlast: s = new FireBlast(this); break; case SpellId.Scorch: s = new Scorch(this); break; case SpellId.ScorchNoCC: s = new Scorch(this, false); break; case SpellId.ArcaneBarrage: s = new ArcaneBarrage(this); break; case SpellId.ArcaneBlast33: s = new ArcaneBlast(this, 3, 3); break; case SpellId.ArcaneBlast33NoCC: s = new ArcaneBlast(this, 3, 3, true, false, false); break; case SpellId.ArcaneBlast00: s = new ArcaneBlast(this, 0, 0); break; case SpellId.ArcaneBlast00NoCC: s = new ArcaneBlast(this, 0, 0, true, false, false); break; case SpellId.ArcaneBlast10: s = new ArcaneBlast(this, 1, 0); break; case SpellId.ArcaneBlast01: s = new ArcaneBlast(this, 0, 1); break; case SpellId.ArcaneBlast11: s = new ArcaneBlast(this, 1, 1); break; case SpellId.ArcaneBlast11NoCC: s = new ArcaneBlast(this, 1, 1, true, false, false); break; case SpellId.ArcaneBlast22: s = new ArcaneBlast(this, 2, 2); break; case SpellId.ArcaneBlast22NoCC: s = new ArcaneBlast(this, 2, 2, true, false, false); break; case SpellId.ArcaneBlast12: s = new ArcaneBlast(this, 1, 2); break; case SpellId.ArcaneBlast23: s = new ArcaneBlast(this, 2, 3); break; case SpellId.ArcaneBlast30: s = new ArcaneBlast(this, 3, 0); break; case SpellId.ABAM: s = new ABAM(this); break; case SpellId.ABMBAM: s = new ABMBAM(this); break; case SpellId.ABABar: s = new ABABar(this); break; case SpellId.ABAMP: s = new ABAMP(this); break; case SpellId.AB3AMSc: s = new AB3AMSc(this); break; case SpellId.ABAM3Sc: s = new ABAM3Sc(this); break; case SpellId.ABAM3Sc2: s = new ABAM3Sc2(this); break; case SpellId.ABAM3FrB: s = new ABAM3FrB(this); break; case SpellId.ABAM3FrB2: s = new ABAM3FrB2(this); break; case SpellId.ABFrB: s = new ABFrB(this); break; case SpellId.AB3FrB: s = new AB3FrB(this); break; case SpellId.ABFrB3FrB: s = new ABFrB3FrB(this); break; case SpellId.ABFrB3FrB2: s = new ABFrB3FrB2(this); break; case SpellId.ABFrB3FrBSc: s = new ABFrB3FrBSc(this); break; case SpellId.ABFB3FBSc: s = new ABFB3FBSc(this); break; case SpellId.AB3Sc: s = new AB3Sc(this); break; case SpellId.FireballScorch: s = new FireballScorch(this); break; case SpellId.FireballFireBlast: s = new FireballFireBlast(this); break; case SpellId.ABAM3ScCCAM: s = new ABAM3ScCCAM(this); break; case SpellId.ABAM3Sc2CCAM: s = new ABAM3Sc2CCAM(this); break; case SpellId.ABAM3FrBCCAM: s = new ABAM3FrBCCAM(this); break; case SpellId.ABAM3FrBCCAMFail: s = new ABAM3FrBCCAMFail(this); break; case SpellId.ABAM3FrBScCCAM: s = new ABAM3FrBScCCAM(this); break; case SpellId.ABAMCCAM: s = new ABAMCCAM(this); break; case SpellId.ABAM3CCAM: s = new ABAM3CCAM(this); break; case SpellId.ArcaneExplosion: s = new ArcaneExplosion(this); break; case SpellId.FlamestrikeSpammed: s = new Flamestrike(this, true); break; case SpellId.FlamestrikeSingle: s = new Flamestrike(this, false); break; case SpellId.Blizzard: s = new Blizzard(this); break; case SpellId.BlastWave: s = new BlastWave(this); break; case SpellId.DragonsBreath: s = new DragonsBreath(this); break; case SpellId.ConeOfCold: s = new ConeOfCold(this); break; case SpellId.ArcaneBlast0POM: s = new ArcaneBlast(this, 0, 0, false, false, true); break; case SpellId.FireballPOM: s = new Fireball(this, true); break; case SpellId.FrostboltPOM: s = new Frostbolt(this, false, false, true); break; case SpellId.PyroblastPOM: s = new Pyroblast(this, true); break; case SpellId.CustomSpellMix: s = new SpellCustomMix(this); break; } if (s != null) { s.SpellId = spellId; Spells[(int)spellId] = s; } return(s); }