static public void Taidonnosto() { Hahmo pelaaja = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja"); Console.Clear(); ConsoleKeyInfo nappiInfo; do { Console.Clear(); Console.WriteLine("\nValitse nostettava taito: \n1) STR {0} \n2) DEX {1} \n3) DEF {2}", pelaaja.Str, pelaaja.Dex, pelaaja.Def); nappiInfo = Console.ReadKey(true); if (nappiInfo.Key == ConsoleKey.D2) { break; } if (nappiInfo.Key == ConsoleKey.D3) { break; } } while (nappiInfo.Key != ConsoleKey.D1); if (nappiInfo.Key == ConsoleKey.D1) { Console.Clear(); pelaaja.Str++; Console.WriteLine("\nVoimaa nostettu."); Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(" STR {0}", pelaaja.Str); Console.ResetColor(); Console.WriteLine(" DEX {0}\n DEF {1}", pelaaja.Dex, pelaaja.Def); } if (nappiInfo.Key == ConsoleKey.D2) { Console.Clear(); pelaaja.Dex++; Console.WriteLine("\nNopeutta nostettu"); Console.WriteLine(" STR {0}", pelaaja.Str); Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(" DEX {0}", pelaaja.Dex); Console.ResetColor(); Console.WriteLine(" DEF {0}", pelaaja.Def); } if (nappiInfo.Key == ConsoleKey.D3) { Console.Clear(); pelaaja.Def++; pelaaja.LisääHptä(pelaaja.Def, pelaaja.Hp, pelaaja.MaxHp); Console.WriteLine("\nPuolustusta nostettu"); Console.WriteLine(" STR {0}\n DEX {1}", pelaaja.Str, pelaaja.Dex); Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(" DEF {0}", pelaaja.Def); Console.ResetColor(); } System.Threading.Thread.Sleep(400); }
public static void LuoUusiPelaaja() { Areenalista.Add(new Pelaaja("Pelaaja", 5, 1, 1, 1, 5)); Hahmo pelaaja = Areenalista.Find(item => item.Nimi == "Pelaaja"); pelaaja.LisääHptä(pelaaja.Def, pelaaja.Hp, pelaaja.MaxHp); }
static public void SaaTavara(string tavara) { Hahmo pelaaja = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja"); Random arvonta = new Random(); int arpaNro = arvonta.Next(1, 11); if (pelaaja.Dex >= arpaNro) { Console.Clear(); Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("Löysit {0}n.", tavara); if (tavara == "Pommi") { Tavaralista.Add(new Tavara("Pommi")); } if (tavara == "Juoma") { Tavaralista.Add(new Tavara("Juoma")); } Console.ResetColor(); } else { //Console.Clear(); //Console.WriteLine("Et löytänyt mitään ({0} vs. {1})", pelaaja.Dex, arpaNro); } System.Threading.Thread.Sleep(600); }
public static void VihollisenVuoro(Hahmo vihollinen) { Hahmo pelaaja = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja"); try { if (pelaaja.Kuollut == false) { Console.Clear(); if (Areena.Areenalista.Contains(vihollinen)) { //Console.WriteLine("Vuorossa {0}", vihollinen.Nimi); if (pelaaja.Väistä() == false) { pelaaja.MenetäHPtä(vihollinen.Hyökkää(pelaaja, vihollinen)); Console.WriteLine("\n\n..."); Console.ReadKey(true); } else { Console.WriteLine("{0} hyökkäsi, pelaaja väisti.", vihollinen.Nimi); System.Threading.Thread.Sleep(900); } } } } catch (Exception) { } }
public void LaskePuolustus() { Hahmo pelaaja = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja"); Def = Def - puolustusDef; Dex = Dex - 1; Puolustautunut = false; Tagi = ""; }
static void Main(string[] args) { UI.Päävalikko(); //Lisätään pelaaja areenalistaan Areena.LuoUusiPelaaja(); Hahmo pelaaja = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja"); Pelaaja.Hahmonluonti(9); Pelaaja.SaaTavara("Juoma"); Pelaaja.SaaTavara("Pommi"); //Taistelun asetukset int taisteluita = 3, luurankoMin = 1, luurankoMax = 1, vampyyriMin = 1, vampyyriMax = 1; for (int i = 0; i < taisteluita; i++) { Areena.LuoVihollisia(Areena.VihollisMääränArvonta(luurankoMin, luurankoMax), "Luuranko"); if (i > 0) { Areena.LuoVihollisia(Areena.VihollisMääränArvonta(vampyyriMin, vampyyriMax), "Vampyyri"); } if (pelaaja.Kuollut == false) { AloitaTaistelu(); } luurankoMin++; luurankoMax++; if (pelaaja.Kuollut) { break; } } //Pelin loppu if (pelaaja.Kuollut == false) { Console.Clear(); Console.WriteLine("VOITIT"); Console.ReadKey(true); } else { Console.Clear(); Console.WriteLine("Hävisit."); Console.ReadKey(true); } }
public static void HeitäPommi(Hahmo heittäjä, Hahmo vihollinen, List <Hahmo> toissijaisetViholliset) { Random arvonta = new Random(); int vahinkoKerroin = arvonta.Next(4, 9); int toissijainenKerroin = arvonta.Next(2, 5) + heittäjä.Dex; int vahinko = (vahinkoKerroin + heittäjä.Dex) - vihollinen.Def; if (vahinko < 1) { int torjuttuVahinko = (4 * vahinkoKerroin) - 1; vahinko = 1; Console.Write("{0} heitti pommin, {1} menetti ", heittäjä.Nimi, vihollinen.Nimi); UI.VahinkoVäri(vahinko); Console.Write(":n kestopisteen (" + torjuttuVahinko + " vastustettu)\n"); } else { Console.Write("{0} heitti pommin, {1} menetti ", heittäjä.Nimi, vihollinen.Nimi); UI.VahinkoVäri(vahinko); Console.Write(" kestopistettä (" + vihollinen.Def + " vastustettu)\n"); } //toissijainen vahinko for (int i = 0; i < toissijaisetViholliset.Count; i++) { int toissijainenVahinko = toissijainenKerroin - toissijaisetViholliset[i].Def; if (toissijainenVahinko < 1) { int torjuttuVahinko = toissijainenKerroin - 1; toissijainenVahinko = 1; toissijaisetViholliset[i].Hp -= toissijainenVahinko; Console.Write("\nMyös {0} menetti ", toissijaisetViholliset[i].Nimi); UI.VahinkoVäri(toissijainenVahinko); Console.Write(" kestopistettä (" + torjuttuVahinko + " vastustettu)\n"); Areena.PoistaKuolleet(); } else { toissijaisetViholliset[i].Hp -= toissijainenVahinko; Console.Write("\nMyös {0} menetti ", toissijaisetViholliset[i].Nimi); UI.VahinkoVäri(toissijainenVahinko); Console.Write(" kestopistettä (" + toissijaisetViholliset[i].Def + " vastustettu)\n"); Areena.PoistaKuolleet(); } } Areena.PoistaKuolleet(); vihollinen.MenetäHPtä(vahinko); System.Threading.Thread.Sleep(2500); }
public int Hyökkää(Hahmo puolustaja, Hahmo hyökkääjä) { Random arvonta = new Random(); int vahinkoKerroin = arvonta.Next(1, 4); int kriittinenArvonta = arvonta.Next(1, 101); int vahinko = (Str * vahinkoKerroin) - puolustaja.Def; if (hyökkääjä.Dex >= kriittinenArvonta)//kriittinen osuma { vahinko = (vahinko + 1) * 2; Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine("Kriittinen osuma"); Console.ResetColor(); } if (vahinko < 1) { int torjuttuVahinko = (Str * vahinkoKerroin) - 1; vahinko = 1; Console.Write("{0} hyökkäsi, {1}{2} menetti ", Nimi, puolustaja.Nimi, puolustaja.Tagi); UI.VahinkoVäri(vahinko); Console.Write(":n kestopisteen (" + torjuttuVahinko + " vastustettu)\n"); } else { Console.Write("{0} hyökkäsi, {1}{2} menetti ", Nimi, puolustaja.Nimi, puolustaja.Tagi); UI.VahinkoVäri(vahinko); Console.Write(" kestopistettä (" + puolustaja.Def + " vastustettu)\n"); } if (hyökkääjä.Nimi.Contains("Vampyyri")) { if (hyökkääjä.Hp < hyökkääjä.MaxHp) { hyökkääjä.Hp += vahinko; Console.Write("\n{0} sai takaisin ", hyökkääjä.Nimi); Console.ForegroundColor = ConsoleColor.DarkGreen; Console.Write(vahinko); Console.ResetColor(); Console.Write(" kestopistettä."); if (hyökkääjä.Hp > hyökkääjä.MaxHp) { hyökkääjä.Hp = hyökkääjä.MaxHp; } } } return(vahinko); }
public static List <Hahmo> ValitseToissijaisetViholliset(Hahmo ensisijainenVihollinen) { List <Hahmo> excludeLista = new List <Hahmo>(); Hahmo pelaaja = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja"); excludeLista.Add(ensisijainenVihollinen); excludeLista.Add(pelaaja); var tulos = Areena.Areenalista.Except(excludeLista); List <Hahmo> toissijaisetViholliset = tulos.ToList(); return(toissijaisetViholliset); }
public void Puolusta() { Random arvonta = new Random(); Hahmo pelaaja = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja"); ExtraVuoronArvonta(); int arpaNro = arvonta.Next(1, 4); puolustusDef = arpaNro + Def; Def = Def + puolustusDef; Dex = Dex + 1; Puolustautunut = true; Tagi = "[puolustautunut]"; }
public static void JuoJuoma(Hahmo juoja) { int parannusMäärä = juoja.Def * 2 + 5; juoja.Hp += parannusMäärä; if (juoja.Hp > juoja.MaxHp) { juoja.Hp = juoja.MaxHp; } Console.Write("Juoma paransi "); Console.ForegroundColor = ConsoleColor.DarkGreen; Console.Write(parannusMäärä); Console.ResetColor(); Console.Write(" kestopistettä"); System.Threading.Thread.Sleep(950); }
static public void SaaKokemusta(int exp) { Hahmo pelaaja = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja"); Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("Sait {0} kokemuspistettä.", exp); Exp = Exp + exp; Console.WriteLine("\n\n..."); Console.ReadKey(true); if (Exp >= 5 && Taso < 2) { Console.Clear(); Console.Write("Nousit tasolle 2."); Taso++; System.Threading.Thread.Sleep(900); Console.ResetColor(); pelaaja.MaxHp += 5; pelaaja.Hp += 5; Taidonnosto(); } else if (Exp >= 15 && Taso < 3) { Console.Clear(); Console.Write("Nousit tasolle 3."); Taso++; System.Threading.Thread.Sleep(900); Console.ResetColor(); pelaaja.MaxHp += 5; pelaaja.Hp += 5; Taidonnosto(); } else if (Exp >= 30 && Taso < 4) { Console.Clear(); Console.Write("Nousit tasolle 4."); Taso++; System.Threading.Thread.Sleep(900); Console.ResetColor(); pelaaja.MaxHp += 5; pelaaja.Hp += 5; Taidonnosto(); } else if (Exp >= 50 && Taso < 5) { Console.Clear(); Console.Write("Nousit tasolle 5."); Taso++; System.Threading.Thread.Sleep(900); Console.ResetColor(); pelaaja.MaxHp += 5; pelaaja.Hp += 5; Taidonnosto(); } else if (Exp >= 75 && Taso < 5) { Console.Clear(); Console.Write("Nousit tasolle 5."); Taso++; System.Threading.Thread.Sleep(900); Console.ResetColor(); pelaaja.MaxHp += 5; pelaaja.Hp += 5; Taidonnosto(); } Console.ResetColor(); }
public static void PelaajanVuoro(Hahmo pelaaja) { if (pelaaja.Kuollut == false) { Hahmo vihollinen; if (pelaaja.Puolustautunut && pelaaja.ExtraVuoro == false) { pelaaja.LaskePuolustus(); } ConsoleKeyInfo nappiInfo; do { Console.Clear(); if (pelaaja.ExtraVuoro == false) { Console.WriteLine("\nPelaajan vuoro\nValitse komento: \n1) Hyökkää \n2) Tavara \n3) Puolusta"); nappiInfo = Console.ReadKey(true); if (nappiInfo.Key == ConsoleKey.D2) { break; } if (nappiInfo.Key == ConsoleKey.D3) { break; } } else { Console.WriteLine("\nEXTRAVUORO\nValitse komento: \n1) Hyökkää \n2) Tavara"); nappiInfo = Console.ReadKey(true); pelaaja.ExtraVuoro = false; if (nappiInfo.Key == ConsoleKey.D2 && Pelaaja.Tavaralista.Count() > 0) { break; } else if (nappiInfo.Key == ConsoleKey.D2 && Pelaaja.Tavaralista.Count() < 1) { Console.Clear(); Console.WriteLine("Ei tavaroita"); pelaaja.ExtraVuoro = true; System.Threading.Thread.Sleep(600); } } } while (nappiInfo.Key != ConsoleKey.D1); //Hyökkäys if (nappiInfo.Key == ConsoleKey.D1 || nappiInfo.Key == ConsoleKey.NumPad1) { vihollinen = UI.ValitseVihollinen(); if (vihollinen.Väistä() == false) { vihollinen.MenetäHPtä(pelaaja.Hyökkää(vihollinen, pelaaja)); Console.WriteLine("\n\n..."); Console.ReadKey(true); } else { Console.WriteLine("{0} hyökkäsi, {1} väisti.", pelaaja.Nimi, vihollinen.Nimi); System.Threading.Thread.Sleep(900); } } //Puolustus if (nappiInfo.Key == ConsoleKey.D3 || nappiInfo.Key == ConsoleKey.NumPad3) { pelaaja.Puolusta(); Console.Clear(); Console.WriteLine("Pelaaja puolustautuu"); System.Threading.Thread.Sleep(600); } //Tavara if (nappiInfo.Key == ConsoleKey.D2 || nappiInfo.Key == ConsoleKey.NumPad2) { if (Pelaaja.Tavaralista.Count() > 0) { Tavara valittuTavara = UI.ValitseTavara(); if (valittuTavara.Nimi == "Juoma") { Tavara.JuoJuoma(pelaaja); Pelaaja.Tavaralista.Remove(valittuTavara); } if (valittuTavara.Nimi == "Pommi") { vihollinen = UI.ValitseVihollinen(); Tavara.HeitäPommi(pelaaja, vihollinen, UI.ValitseToissijaisetViholliset(vihollinen)); Pelaaja.Tavaralista.Remove(valittuTavara); } } else { Console.Clear(); Console.WriteLine("Ei tavaroita."); System.Threading.Thread.Sleep(600); PelaajanVuoro(pelaaja); } } if (pelaaja.ExtraVuoro == true) //uusi vuoro { PelaajanVuoro(pelaaja); } } }
static public void AloitaTaistelu() { #region Taistelun alku Console.Clear(); Console.WriteLine("Taistelu {0}", Pelaaja.voitetutTaistelut + 1); System.Threading.Thread.Sleep(1100); Hahmo pelaaja = Areena.Areenalista.Find(item => item.Nimi == "Pelaaja"); #endregion for (int j = 0; pelaaja.Hp > 0; j++) //taistelu jatkuu, kunnes pelaajan hp loppuu { #region Taistelun voittoehdot bool voittoehdotTäytetty = Vuoro.TaistelunVoittoehdotTäytetty(); if (voittoehdotTäytetty) //Taistelun voitto { Console.Clear(); Pelaaja.voitetutTaistelut++; Console.WriteLine("Taisteluja voitettu {0}/3", Pelaaja.voitetutTaistelut); System.Threading.Thread.Sleep(950); Console.ResetColor(); break; } #endregion #region Kierroksen alku //kierroksen alussa järjestetään areenalista dex:n mukaan: List <Hahmo> järjestettyLista = Vuoro.SuurinDex(Areena.Areenalista); Console.Clear(); Console.ResetColor(); Console.Write("Kierros {0}\n\nVuorojärjestys:", (j + 1)); for (int k = 0; k < järjestettyLista.Count(); k++) //Käydään areenalista läpi { if (järjestettyLista[k] != null) { int vuoroNro = k + 1; Console.Write("\n " + vuoroNro + ". " + järjestettyLista[k].Nimi + ", HP: "); UI.HpVäri(järjestettyLista[k].Hp, järjestettyLista[k].MaxHp); if (järjestettyLista[k].Puolustautunut) { Console.Write(" [puolustautuu]"); } } } Console.WriteLine("\n\n..."); Console.ReadKey(true); #endregion for (int i = 0; i < Areena.Areenalista.Count(); i++) { Hahmo vuorossa = järjestettyLista[i]; if (vuorossa == pelaaja) { Vuoro.PelaajanVuoro(pelaaja); } else { Vuoro.VihollisenVuoro(vuorossa); } } } }