Ejemplo n.º 1
0
		public string Combatti(Nemico c, out int result)
		{
			Random r = new Random();
			int rand = r.Next(85, 101);
			int dannoInflitto = (rand / 50) * (((Attacco / c.Difesa) * ((Livello / 5) + 1)) + 1);
			rand = r.Next(85, 101);
			int dannoRicevuto = (rand / 50) * (((c.Attacco / Difesa) * ((c.Livello / 5) + 1)) + 1);

			bool vivo = true, nemicoVivo = true;
			string res = "";

			rand = r.Next(0, 101);
			if (Precisione >= rand)
			{
				nemicoVivo = c.Danneggia(dannoInflitto);
				res += String.Format("Hai inflitto {0} danni a {1}!\n", dannoInflitto, c.Nome);
			}
			else
				res += String.Format("Hai mancato {0}!\n", c.Nome);
			rand = r.Next(0, 101);
			if (c.Precisione >= rand)
			{
				vivo = Danneggia(dannoRicevuto);
				res += String.Format("{0} ti ha inflitto {1} danni!\n", c.Nome, dannoRicevuto);
			}
			else
				res += String.Format("{0} ti ha mancato!\n", c.Nome);

			if (vivo)
			{
				if (nemicoVivo)
				{
					result = 1;
					return res;
				}
				else
				{
					result = 0;
					res += String.Format("Hai sconfitto {0}!\n", c.Nome);
					if(GuadagnaEsperienza(c.DropExp))
						res += String.Format("Hai guadagnato {0} exp e sei salito di livello!\n", c.DropExp);
					else
						res += String.Format("Hai guadagnato {0} exp!\n", c.DropExp);
					return res;
				}
			}
			else
			{
				if (nemicoVivo)
				{
					result = -1;
					res += String.Format("Sei morto contro {0}!\n", c.Nome);
					return res;
				}
				else
				{
					res += String.Format("Sei moribondo, ma sei riuscito a sconfiggere {0}!\n", c.Nome);
					Salute = 1;
					result = 0;
					return res;
				}
			}
		}
		public string Combattimento(Nemico n)
		{
			int res;
			string s = _giocatore.Combatti(n, out res);
			if (res == 1)
			{
				_inCombattimento = true;
				_combatti.IsEnabled = true;
				_fuggi.IsEnabled = true;

			}
			else if (res == 0)
			{
				_inCombattimento = false;
				foreach (Oggetto o in n.Drop())
				{
					_giocatore.Inv.Aggiungi(o);
					s += "Hai ottenuto " + o + " dal nemico " + n + "\n";
				}
				CaricaInventarioGiocatore();
				Mappa[IndiceStanza].Cose.Remove(n);
				_avversariCoinvolti.Items.Remove(n);
				if (_avversariCoinvolti.Items.Count == 0)
					_combatti.IsEnabled = false;
				_fuggi.IsEnabled = false;
			}
			else
				FineAvventura();
			return s;
		}