//methods public void Use(ITargetable Target) { //costing HeroRef.Csp -= Cost; //dmg Dmged = this.Dmg(); (Target as IFighter).MinDmg += Dmged; (Target as IFighter).MaxDmg += Dmged; (Target as IFighter).Ad += Dmged; (Target as Heroes.Person).HeroIcon.OnGetChr(gForm); (Target as Heroes.Person).HeroColor.OnGet(gColor); (Target as Heroes.Person).HeroBack.OnGet(gBack); //msg DrawerLine Line = new DrawerLine(); Line.DefaultForegroundColor = HeroRef.Color; Line.DefaultBackgroundColor = HeroRef.Back; Line += DCLine.New(Name, Color, Back); Line += " immprove attack on "; Line += DCLine.New(Dmged.ToString(), Color, Back); Line += " !"; Temp.State.Current.Chat.Message(Line); PressedNow = Input.Pressed; Input.OnInput += Input_OnInput; }
//methods public void Use(ITargetable Target) { if (!CanCast()) { return; } //costing HeroRef.Csp -= Cost; for (int i = 0; i < HeroRef.R.Level + 1; i++) { //dmg Int32 Dmg = this.Dmg(Target); Target.Chp -= Dmg; //msg DrawerLine Line = new DrawerLine(); Line.DefaultForegroundColor = HeroRef.Color; Line.DefaultBackgroundColor = HeroRef.Back; Line += DCLine.New("Rainbow splatter", Color, Back); Line += " deal "; Line += DCLine.New(Dmg.ToString(), Color, Back); Line += " damage!"; Temp.State.Current.Chat.Message(Line); } if (HeroRef.R.Level > 0) { new Blessingoftheelements().Use(null); } }
public override void Draw() { Console.Clear(); base.DrawTitle(); DrawerOptions opt = new DrawerOptions(); opt.Top = 1; foreach (Option o in Options) { opt.Left = (Console.WindowWidth / 2) - (o.Text.Length / 2); opt.Top += 2; DrawerLine Line = new DrawerLine(); if (Options.IndexOf(o) == Index) { Line.DefaultBackgroundColor = o.Color; Line.DefaultForegroundColor = o.Back; } else { Line.DefaultForegroundColor = o.Color; Line.DefaultBackgroundColor = o.Back; } Line += o.Text; DrawerContent Content = new DrawerContent(); Content.AppendLine(Line); Drawer.Draw(Content, opt); } }
//methods public void Use(ITargetable Target) { if (!CanCast()) { return; } //costing HeroRef.Csp -= Cost; //dmg Int32 Dmg = this.Dmg(Target); Target.Chp -= Dmg; //msg DrawerLine Line = new DrawerLine(); Line.DefaultForegroundColor = HeroRef.Color; Line.DefaultBackgroundColor = HeroRef.Back; Line += DCLine.New((Target as IThing).Name, (Target as IThing).Color, (Target as IThing).Back); Line += " take "; Line += DCLine.New(Dmg.ToString(), Color, Back); Line += " damage from "; Line += DCLine.New(Name, Color, Back); Line += "!"; Temp.State.Current.Chat.Message(Line); }
//methods public void Use(ITargetable Target) { if (!CanCast()) { return; } if (Target.GetType() != typeof(Objects.Monsters.Exemples.EvilSinger) || Target.GetType() != typeof(Objects.Monsters.Exemples.Necromant) || Target.GetType() != typeof(Objects.Monsters.Exemples.Zombie)) { return; } //costing HeroRef.Csp -= Cost; //dmg Int32 Dmg = this.Dmg(Target); Target.Chp -= Dmg; //msg DrawerLine Line = new DrawerLine(); Line.DefaultForegroundColor = HeroRef.Color; Line.DefaultBackgroundColor = HeroRef.Back; Line += DCLine.New(Name, Color, Back); Line += " deal "; Line += DCLine.New(Dmg.ToString(), Color, Back); Line += " damage!"; Temp.State.Current.Chat.Message(Line); }
//methods public void Use(ITargetable Target) { if (!CanCast()) { return; } //costing HeroRef.Csp -= Cost; //additional (heal) Int32 HDmg = this.Dmg(); if (HeroRef.Chp.Int() < HeroRef.Mhp.Int()) { if (HeroRef.Chp.Int() + HDmg > HeroRef.Mhp.Int()) { HeroRef.Chp = HeroRef.Mhp; } else { HeroRef.Chp += HDmg; } } DrawerLine Line = new DrawerLine(); Line.DefaultForegroundColor = HeroRef.Color; Line.DefaultBackgroundColor = HeroRef.Back; Line += DCLine.New(Name, Color, Back); Line += " heal "; Line += DCLine.New(HDmg.ToString(), Color, Back); Line += " your hp!"; Temp.State.Current.Chat.Message(Line); }
private void MagicAttacking() { Int32 Dmg = Cast(State.Current.Hero.Barrier); State.Current.Hero.Chp -= Dmg; DrawerLine Line = new DrawerLine(); Line.DefaultForegroundColor = ConsoleColor.DarkGreen; Line.DefaultBackgroundColor = ConsoleColor.Black; if (this.GetType().GetInterface("IThing") != null) { Line += DCLine.New((this as IThing).Name, (this as IThing).Color, (this as IThing).Back); } else { Line += "Monster"; } Line += " deal "; Line += DCLine.New(Dmg.ToString(), ConsoleColor.White, ConsoleColor.Red); Line += DCLine.New(" magic", ConsoleColor.Magenta, ConsoleColor.White); Line += " damage!"; State.Current.Chat.Message(Line); }
//methods public void Use(ITargetable Target) { //costing HeroRef.Csp -= Cost; //dmg Dmged = this.Dmg(); Target.Armor += Dmged; Target.Barrier += Dmged; (Target as IMagican).Ap += Dmged; //msg DrawerLine Line = new DrawerLine(); Line.DefaultForegroundColor = HeroRef.Color; Line.DefaultBackgroundColor = HeroRef.Back; Line += DCLine.New(Name, Color, Back); Line += " immprove arm,bar,ap on"; Line += DCLine.New(Dmged.ToString(), Color, Back); Line += " !"; Temp.State.Current.Chat.Message(Line); PressedNow = Input.Pressed; Input.OnInput += Input_OnInput; }
public void MessageMin(DrawerLine Msg) { //Logger.Add(Msg); LastMiniLines.Insert(0, Msg); LastMiniLines.RemoveRange(10, 1); DrawMini(); }
public static void Yell(DCLine StatName, Int32 _Value, Coord Position, Action IncreaseEffect, DrawerLine DisposeString) { while (true) { IO.DrawerLine line = new IO.DrawerLine(); line.DefaultForegroundColor = ConsoleColor.White; line.DefaultBackgroundColor = ConsoleColor.Red; line += "It's improvement pack! You taked " + State.Current.Hero.ImpPackCurrent + "/" + State.Current.Hero.ImpPackMax + ", take this one? Y/N"; State.Current.Chat.Message(line); switch (Console.ReadKey(true).Key) { case ConsoleKey.Y: { IO.DrawerLine linew = new IO.DrawerLine(); linew.DefaultForegroundColor = ConsoleColor.Cyan; linew.DefaultBackgroundColor = ConsoleColor.DarkRed; linew += DCLine.New("You", State.Current.Hero.Color, State.Current.Hero.Back); linew += " use IPack and inc "; linew += StatName; linew += " on the "; linew += DCLine.New(_Value.ToString(), ConsoleColor.Red, ConsoleColor.Cyan); linew += "!"; State.Current.Chat.Message(linew); if (State.Current.Hero.ImpPackCurrent < State.Current.Hero.ImpPackMax) { State.Current.Hero.ImpPackIncrease(); IncreaseEffect(); } else { DrawerLine newline = new DrawerLine(); newline.DefaultForegroundColor = ConsoleColor.Red; newline.DefaultBackgroundColor = ConsoleColor.White; newline += "Oh no! You cant't take more improvements at this level!"; } State.Current.GameField.Map[Position.X, Position.Y] = new Objects.Mapped.EThing(); State.Current.GameField.Draw(); return; } case ConsoleKey.N: { State.Current.Chat.Message(DisposeString); State.Current.GameField.Map[Position.X, Position.Y] = new Objects.Mapped.EThing(); State.Current.GameField.Draw(); return; } } } }
//methods public void Use(ITargetable Target) { if (!CanCast()) { return; } //costing HeroRef.Csp -= Cost; //additional (heal and restore sp) Int32 HDmg = this.Dmg(); if (HeroRef.Chp.Int() < HeroRef.Mhp.Int()) { if (HeroRef.Chp.Int() + HDmg > HeroRef.Mhp.Int()) { HeroRef.Chp = HeroRef.Mhp; } else { HeroRef.Chp += HDmg; } } if (HeroRef.Csp.Int() < HeroRef.Msp.Int()) { if (HeroRef.Csp.Int() + HDmg > HeroRef.Msp.Int()) { HeroRef.Csp = HeroRef.Msp; } else { HeroRef.Csp += HDmg; } } DrawerLine Line = new DrawerLine(); Line.DefaultForegroundColor = HeroRef.Color; Line.DefaultBackgroundColor = HeroRef.Back; Line += DCLine.New(Name, Color, Back); Line += " heal and restore "; Line += DCLine.New(HDmg.ToString(), Color, Back); Line += " elements!"; Temp.State.Current.Chat.Message(Line); if (HeroRef.R.Level > 0) { new Blessingoftheelements().Use(null); } }
protected Boolean CanCast() { if (HeroRef.Csp.Int() - Cost <= 0) { DrawerLine Line = new DrawerLine(); Line.DefaultForegroundColor = HeroRef.Color; Line.DefaultBackgroundColor = HeroRef.Back; Line += "Not enough "; Line += DCLine.New(HeroRef.SPName, (ConsoleColor)HeroRef.SPColor.Enum(), ConsoleColor.White); Line += " !"; Temp.State.Current.Chat.Message(Line); return(false); } return(true); }
//methods public void Use(ITargetable Target) { Int32 Dmg = this.Dmg(); var trap = new Objects.Mapped.Trap(Dmg); State.Current.Hero.Bag = trap; //msg DrawerLine Line = new DrawerLine(); Line.DefaultForegroundColor = HeroRef.Color; Line.DefaultBackgroundColor = HeroRef.Back; Line += "You set the trap with " + Dmg + " dmg!"; Temp.State.Current.Chat.Message(Line); }
void Input_OnInput() { if (PressedNow + 15 <= Input.Pressed) { HeroRef.Armor -= Dmged; HeroRef.Barrier -= Dmged; HeroRef.Ap -= Dmged; DrawerLine Line = new DrawerLine(); Line.DefaultForegroundColor = HeroRef.Color; Line.DefaultBackgroundColor = HeroRef.Back; Line += DCLine.New(Name, Color, Back); Line += " completed his action."; Temp.State.Current.Chat.Message(Line); Input.OnInput -= Input_OnInput; } }
protected virtual void DrawTitle() { DrawerOptions opt = new DrawerOptions(); opt.Left = (Console.WindowWidth / 2) - (Title.Text.Length / 2); opt.Top = 1; DrawerContent cont = new DrawerContent(); DrawerLine line = new DrawerLine(); line.DefaultForegroundColor = Title.Color; line.DefaultBackgroundColor = Title.Back; line += Title.Text; cont.AppendLine(line); Drawer.Draw(cont, opt); }
public void WhenDies() { if (Loot != null && Loot.GetType() != typeof(EThing)) { DrawerLine Line = new DrawerLine(); Line.DefaultBackgroundColor = ConsoleColor.DarkGreen; Line.DefaultForegroundColor = ConsoleColor.White; Line += DCLine.New("You", State.Current.Hero.Color, State.Current.Hero.Back); Line += " get a "; Line += DCLine.New(Loot.Name, Loot.Color, Loot.Back); Line += " !"; State.Current.Chat.Message(Line); Loot.Action(); } State.Current.Hero.Cexp += Exp; if (this.GetType().GetInterface("IThing") != null) { DrawerLine Line = new DrawerLine(); Line.DefaultBackgroundColor = ConsoleColor.DarkGreen; Line.DefaultForegroundColor = ConsoleColor.Black; Line += DCLine.New((this as IThing).Name, (this as IThing).Color, (this as IThing).Back); Line += " died! "; Line += DCLine.New("You", State.Current.Hero.Color, State.Current.Hero.Back); Line += " get "; Line += DCLine.New(Exp.ToString(), ConsoleColor.Blue, ConsoleColor.White); Line += " exp!"; State.Current.Chat.Message(Line); } else { State.Current.Chat.Message(new DrawerLine("Monster died! You get " + Exp.ToString() + " exp!", ConsoleColor.Magenta)); } if (this.GetType().GetInterface("IThing") != null) { State.Current.GameField.Map[(this as IThing).Position.X, (this as IThing).Position.Y] = new Mapped.EThing(); } State.Current.GameField.Draw(); State.Current.Info.Draw(); }
public DrawerContent GetColorfull() { DrawerContent Content = new DrawerContent(); for (int j = 0; j < 30; j++) { DrawerLine Line = new DrawerLine(); for (int i = 0; i < 69; i++) { DrawerChar Char = new DrawerChar(); Char.Icon = Map[i, j].Icon; Char.Color = Map[i, j].Color; Char.Back = Map[i, j].Back; Line.Add(Char); } Content.AppendLine(Line); } return Content; }
void Input_OnInput() { if (PressedNow + 30 <= Input.Pressed) { HeroRef.MinDmg -= Dmged; HeroRef.MaxDmg -= Dmged; HeroRef.Ad -= Dmged; HeroRef.HeroIcon.RemoveChr(gForm); HeroRef.HeroColor.Remove(gColor); HeroRef.HeroBack.Remove(gBack); DrawerLine Line = new DrawerLine(); Line.DefaultForegroundColor = HeroRef.Color; Line.DefaultBackgroundColor = HeroRef.Back; Line += DCLine.New(Name, Color, Back); Line += " completed his action."; Temp.State.Current.Chat.Message(Line); Input.OnInput -= Input_OnInput; } }
//methods public void Use(ITargetable Target) { //costing HeroRef.Csp -= Cost; //dmg Int32 Dmg = this.Dmg(Target); Target.Chp -= Dmg; //msg DrawerLine Line = new DrawerLine(); Line.DefaultForegroundColor = HeroRef.Color; Line.DefaultBackgroundColor = HeroRef.Back; Line += DCLine.New(Name, Color, Back); Line += " deal "; Line += DCLine.New(Dmg.ToString(), Color, Back); Line += " damage!"; Temp.State.Current.Chat.Message(Line); }
public override void Draw() { Console.Clear(); base.DrawTitle(); DrawerOptions opt = new DrawerOptions(); opt.Left = (Console.WindowWidth / 2) - (Text.Length / 2); opt.Top = (Console.WindowHeight / 2); DrawerLine Line = new DrawerLine(); Line.DefaultForegroundColor = ForegroundColor; Line.DefaultBackgroundColor = BackgroundColor; Line.Add(Text); DrawerContent con = new DrawerContent(); con.AppendLine(Line); Drawer.Draw(con, opt); }
public void Message(DrawerLine Msg) { if (Msg.Chars.Count >= "Have you seen where be near the seller? You broke the item...".Length) { Msg.Chars.RemoveRange(Msg.Chars.Count - 5, 5); } Msg.Chars.InsertRange(0, new DrawerLine(DateTime.Now.ToShortTimeString() + "> ", ConsoleColor.DarkGreen).Chars); Msg.Chars.AddRange(new DrawerLine(" {" + TimeManager.Steps + "}", ConsoleColor.DarkGreen).Chars); Logger.Add(Msg); for (int i = Msg.Chars.Count; i < 68; i++) { Msg.Chars.Add(new DrawerChar() { Icon = ' ' }); } LastLines.Insert(0, Msg); LastLines.RemoveRange(10, 1); Draw(); }
private static void ClassSpecials(Int32 PlusHp, Int32 MinDmg, Int32 MaxDmg) { switch ((Class)State.Current.Hero.Class.Enum()) { case Class.Alchemist: SPUniq("Elements", ConsoleColor.Magenta, 25); StartVision('@', ConsoleColor.Magenta, ConsoleColor.Yellow); LevelUpRates(PlusHp, 1, MinDmg, MaxDmg); break; case Class.Bard: StartVision('♫', ConsoleColor.Yellow, ConsoleColor.Green); LevelUpRates(PlusHp, 1, MinDmg, MaxDmg); break; case Class.BloodMage: SPUniq("Blood", ConsoleColor.DarkRed, State.Current.Hero.Mhp); State.Current.Hero.Csp.OnSet((Int32 Prev) => { State.Current.Hero.Chp -= Prev; return(Prev); }); StartVision('¤', ConsoleColor.Red, ConsoleColor.DarkRed); LevelUpRates(PlusHp, PlusHp, MinDmg, MaxDmg); break; case Class.Engineer: StartVision('☼', ConsoleColor.DarkYellow, ConsoleColor.Black); LevelUpRates(PlusHp, 4, MinDmg, MaxDmg); break; case Class.Exorcist: StartVision('√', ConsoleColor.Cyan, ConsoleColor.Yellow); LevelUpRates(PlusHp, 2, MinDmg, MaxDmg); break; case Class.FireMage: SPUniq("Mana", ConsoleColor.Blue, 200); StartVision('‼', ConsoleColor.Red, ConsoleColor.Yellow); LevelUpRates(PlusHp, 10, MinDmg, MaxDmg); break; case Class.Monk: StartVision('§', ConsoleColor.Yellow, ConsoleColor.Black); LevelUpRates(PlusHp, 5, MinDmg, MaxDmg); break; case Class.Necromancer: StartVision('↨', ConsoleColor.Green, ConsoleColor.DarkMagenta); LevelUpRates(PlusHp, 1, MinDmg, MaxDmg); break; case Class.Paladin: SPUniq("Mana", ConsoleColor.Blue, 100); State.Current.Hero.Chp.OnSet((Int32 Prev) => { if (State.Current.Hero.Chp.Int() - Prev <= 0) { if (State.Current.Hero.Csp.Int() - Prev >= 0) { State.Current.Hero.Csp -= Prev; DrawerLine Line = new DrawerLine(); Line.DefaultForegroundColor = ConsoleColor.Blue; Line.DefaultBackgroundColor = ConsoleColor.White; Line += "Mana shield absorbed fatal damage."; Temp.State.Current.Chat.Message(Line); return(0); } } return(Prev); }); StartVision('P', ConsoleColor.Yellow, ConsoleColor.DarkYellow); LevelUpRates(PlusHp, 8, MinDmg, MaxDmg); break; case Class.Rogue: SPUniq("Poison", ConsoleColor.Green, 3); Input.OnInput += () => { if (State.Random.Next(4) == 0) { if (State.Current.Hero.Csp.Int() < State.Current.Hero.Msp.Int()) { State.Current.Hero.Csp += 1; State.Current.Chat.Message(new DrawerLine("You find out what to cook poison!", ConsoleColor.Green)); } } }; StartVision('&', ConsoleColor.Green, ConsoleColor.Black); LevelUpRates(PlusHp, 0, MinDmg, MaxDmg); break; case Class.Shaman: StartVision('@', ConsoleColor.Blue, ConsoleColor.DarkGray); LevelUpRates(PlusHp, 25, MinDmg, MaxDmg); break; case Class.Warrior: StartVision('☻', ConsoleColor.Red, ConsoleColor.Black); LevelUpRates(PlusHp, 0, MinDmg, MaxDmg); break; default: break; } }
//methods public void Use(ITargetable Target) { String stat = ""; ConsoleColor ElementColor = ConsoleColor.Black; Dmged = 1; switch (Element = State.Random.Next(4)) { case 0: { stat = "improve dmg"; ElementColor = ConsoleColor.Red; HeroRef.MinDmg += 1; HeroRef.MaxDmg += 1; PressedNow = Input.Pressed; Input.OnInput += Input_OnInput; break; } case 1: { stat = "heal hp"; ElementColor = ConsoleColor.Blue; if (HeroRef.Chp.Int() < HeroRef.Mhp.Int()) { if (HeroRef.Chp.Int() + 1 > HeroRef.Mhp.Int()) { HeroRef.Chp = HeroRef.Mhp; } else { HeroRef.Chp += 1; } } break; } case 2: { stat = "add element"; ElementColor = ConsoleColor.Cyan; HeroRef.Msp += 1; HeroRef.Csp += 1; break; } case 3: { stat = "add mhp"; ElementColor = ConsoleColor.DarkYellow; HeroRef.Mhp += 1; HeroRef.Chp += 1; break; } } //msg DrawerLine Line = new DrawerLine(); Line.DefaultForegroundColor = HeroRef.Color; Line.DefaultBackgroundColor = HeroRef.Back; Line += DCLine.New(Name, Color, Back); Line += DCLine.New(stat, ElementColor, ConsoleColor.Black); Line += " !"; Temp.State.Current.Chat.Message(Line); }
public static void Add(DrawerLine Line) { Log.Add(Line); }
//methods public void Use(ITargetable Target) { if (!CanCast()) { return; } //costing HeroRef.Csp -= Cost; //dmg Int32 Dmg = this.Dmg(Target); Target.Chp -= Dmg; //additional (heal) Int32 HDmg = (Int32)(Dmg * 1.3); if (HeroRef.Chp.Int() < HeroRef.Mhp.Int()) { if (HeroRef.Chp.Int() + HDmg > HeroRef.Mhp.Int()) { HeroRef.Chp = HeroRef.Mhp; } else { HeroRef.Chp += HDmg; } } //msg DrawerLine Line = new DrawerLine(); Line.DefaultForegroundColor = HeroRef.Color; Line.DefaultBackgroundColor = HeroRef.Back; Line += DCLine.New(Name, Color, Back); Line += " deal "; Line += DCLine.New(Dmg.ToString(), Color, Back); Line += " damage!"; Temp.State.Current.Chat.Message(Line); for (int i = 0; i < HeroRef.R.Level + 1; i++) { //dmg Dmg = 1; Target.Armor -= 1; Target.Barrier -= 1; //msg Line = new DrawerLine(); Line.DefaultForegroundColor = HeroRef.Color; Line.DefaultBackgroundColor = HeroRef.Back; Line += DCLine.New(Name, Color, Back); Line += " decreases "; Line += DCLine.New((Target as IThing).Name, (Target as IThing).Color, (Target as IThing).Back); Line += " arm and bar by 1!"; Temp.State.Current.Chat.Message(Line); } Line = new DrawerLine(); Line.DefaultForegroundColor = HeroRef.Color; Line.DefaultBackgroundColor = HeroRef.Back; Line += DCLine.New(Name, Color, Back); Line += " heal "; Line += DCLine.New(HDmg.ToString(), Color, Back); Line += " your hp!"; Temp.State.Current.Chat.Message(Line); if (HeroRef.R.Level > 0) { new Blessingoftheelements().Use(null); } }