public static List <Casa> CasasAndaveis(Personagem per, Mapa map) { List <Casa> CasasAndaveis = new List <Casa>(); int px = per.PosX;//deu exception aq qnd clicou varias vzs nos perso do msm time int py = per.PosY; int rg = per.MovRange; for (int x = rg; x >= -rg; x--) { for (int y = rg; y >= -rg; y--) { if (y == 0 && x == 0 || px + x < 0 || px + x >= 20 || py + y < 0 || py + y >= 20) { continue; } if (map.casa[px + x, py + y].Andavel == true && map.casa[px + x, py + y].Personagem == null) { CasasAndaveis.Add(map.casa[px + x, py + y]); } } } CasasAndaveis.Add(map.casa[px, py]); return(CasasAndaveis); }
public Mapa InciarMapa()//iniciar o back do mapa { Mapa mapa = new Mapa(); GerarCasas(mapa); //Random rnd = new Random();//utilizar o rnd ao criar um item no mapa return(mapa); }
public void GeraItemNaCasa(int x, int y, Mapa map, Random valorSorteado) { int VS = valorSorteado.Next(0, 100); if (VS <= 10) { if (!((x == 1 && y == 7) || (x == 1 && y == 8) || (x == 2 && y == 7) || (x == 2 && y == 8)) && !((x == 17 && y == 7) || (x == 17 && y == 8) || (x == 18 && y == 7) || (x == 18 && y == 8))) { map.casa[x, y].Item = GeraItem(x, y, map, VS); } } }
private void GerarCasas(Mapa mapa) { foreach (int[] casa in CasasNaoAndaveis) { Debug.WriteLine(" " + casa[0] + " " + casa[1]); } Random valorSorteado = new Random(); for (int x = 0; x < DimX; x++) { for (int y = 0; y < DimY; y++) { mapa.casa[x, y] = new Casa(x, y); EhAdavel(mapa.casa[x, y], CasasNaoAndaveis); GeraItemNaCasa(x, y, mapa, valorSorteado); } } }
}//checar se a casa pode ser ocupada Na geracao private Item.Item GeraItem(int posX, int posY, Mapa mapa, int valorSorteado) { if (PodeAndar(posX, posY, mapa)) { if (valorSorteado == 2) { return new Item.Item { Descricao = "Não Utilizável", Nome = "PEDRA", Tipo = EItens.NaoUtilizavel, UrlImage = "ms-appx:///Assets/itens/pedra.png" } } ; //DEVE SER ALTERADO QUANDO TROCAR A COLEÇÃO else if (valorSorteado == 3) { return new Item.Item { Descricao = "Recebe Dinheiro Ao Pegar", Nome = "DIAMANTE", Tipo = EItens.Gold, UrlImage = "ms-appx:///Assets/itens/minerais/diamante.png" } } ; //DEVE SER ALTERADO QUANDO TROCAR A COLEÇÃO else if (valorSorteado == 4 || valorSorteado == 5) { return new Item.Item { Descricao = "Recebe Dinheiro Ao Pegar", Nome = "RUBI", Tipo = EItens.Gold, UrlImage = "ms-appx:///Assets/itens/minerais/rubi.png" } } ; //DEVE SER ALTERADO QUANDO TROCAR A COLEÇÃO else if (valorSorteado == 6 || valorSorteado == 7) { return new Item.Item { Descricao = "Recebe Dinheiro Ao Pegar", Nome = "OURO", Tipo = EItens.Gold, UrlImage = "ms-appx:///Assets/itens/minerais/ouro.png" } } ; //DEVE SER ALTERADO QUANDO TROCAR A COLEÇÃO else if (valorSorteado == 8) { return new Item.Item { Descricao = "Cura em 30 sua vida atual", Nome = "POÇÃO CURA", Tipo = EItens.Consumivel, UrlImage = "ms-appx:///Assets/itens/pocoes/poção_att+10.png" } } ; //DEVE SER ALTERADO QUANDO TROCAR A COLEÇÃO else if (valorSorteado == 9 || valorSorteado == 10) { return new Item.Item { Descricao = "Aumenta em 20 sua vida Maxima", Nome = "POÇÃO VIDAMAX", Tipo = EItens.Consumivel, UrlImage = "ms-appx:///Assets/itens/pocoes/poção_def+10.png" } } ; //DEVE SER ALTERADO QUANDO TROCAR A COLEÇÃO else if (valorSorteado % 2 == 0) { return new Item.Item { Descricao = "Aumenta em 1 o seu Atk Range e o Mov Range", Nome = "POÇÃO RANGE", Tipo = EItens.Consumivel, UrlImage = "ms-appx:///Assets/itens/pocoes/poção_att+5.png" } } ; //DEVE SER ALTERADO QUANDO TROCAR A COLEÇÃO else { return new Item.Item { Descricao = "Aumenta em 5 o dano", Nome = "POÇÃO DANO", Tipo = EItens.Consumivel, UrlImage = "ms-appx:///Assets/itens/pocoes/poção_def+5.png" } }; //DEVE SER ALTERADO QUANDO TROCAR A COLEÇÃO } else { return(null); } }
private bool PodeAndar(int posX, int posY, Mapa mapa) { return(mapa.casa[posX, posY].Andavel); //return true; }//checar se a casa pode ser ocupada Na geracao