public void DansFour(List <UI_Item> Uitems) { UI_Item[] inv = new UI_Item[3]; foreach (UI_Item init in Uitems) { Point p = Memoire.ScreenToInv(init.Location.X, init.Location.Y); if (p.X == 55) { if (p.Y == 16) { EcranDeJeu.four.Inventaire.SetItem(0, init.item); inv[0] = init; } else if (p.Y == 52) { EcranDeJeu.four.Inventaire.SetItem(1, init.item); inv[1] = init; } } if (p.X == 116 && p.Y == 35) { EcranDeJeu.four.Inventaire.SetItem(2, init.item); inv[2] = init; } } if (inv[0] != null && inv[1] != null && inv[2] != null) { EcranDeJeu.four.Update(); for (int i = 0; i <= 2; i++) { Memoire.items.Remove(inv[i]); Memoire.form.Controls.Remove(inv[i]); } UI_Item it1 = new UI_Item(EcranDeJeu.four.Inventaire.GetItem(0), Memoire.InvToScreen(55, 16)); Memoire.items.Add(it1); Memoire.form.Controls.Add(it1); UI_Item it2 = new UI_Item(EcranDeJeu.four.Inventaire.GetItem(1), Memoire.InvToScreen(55, 52)); Memoire.items.Add(it2); Memoire.form.Controls.Add(it2); UI_Item it3 = new UI_Item(EcranDeJeu.four.Inventaire.GetItem(2), Memoire.InvToScreen(116, 35)); Memoire.items.Add(it3); Memoire.form.Controls.Add(it3); } }
/// <summary> /// place les items du joueur sur l'ecran /// </summary> public static void OuvrireInventaire() { Memoire.items = new List <UI_Item>(); Memoire.items.Add(new UI_Item(Sauvegarde.joueur.Barre.GetItem(0), Memoire.InvToScreen(7, 141))); Memoire.items.Add(new UI_Item(Sauvegarde.joueur.Barre.GetItem(1), Memoire.InvToScreen(25, 141))); Memoire.items.Add(new UI_Item(Sauvegarde.joueur.Barre.GetItem(2), Memoire.InvToScreen(43, 141))); Memoire.items.Add(new UI_Item(Sauvegarde.joueur.Inventaire.GetItem(0), Memoire.InvToScreen(7, 119))); Memoire.items.Add(new UI_Item(Sauvegarde.joueur.Inventaire.GetItem(1), Memoire.InvToScreen(25, 119))); Memoire.items.Add(new UI_Item(Sauvegarde.joueur.Inventaire.GetItem(2), Memoire.InvToScreen(43, 119))); Memoire.items.Add(new UI_Item(Sauvegarde.joueur.Inventaire.GetItem(3), Memoire.InvToScreen(7, 101))); Memoire.items.Add(new UI_Item(Sauvegarde.joueur.Inventaire.GetItem(4), Memoire.InvToScreen(25, 101))); Memoire.items.Add(new UI_Item(Sauvegarde.joueur.Inventaire.GetItem(5), Memoire.InvToScreen(43, 101))); foreach (UI_Item it in Memoire.items) { Memoire.form.Controls.Add(it); } Memoire.selected = new UI_Item(null, new Point(Memoire.form.ClientSize.Width / 2, Memoire.form.ClientSize.Height / 2)); Memoire.form.Controls.Add(Memoire.selected); }
public void DansTableDeCraft(List <UI_Item> Uitems) { Inventaire invcraft = EcranDeJeu.inventaires[0]; UI_Item[,] inv = new UI_Item[3, 3]; UI_Item c = null; foreach (UI_Item init in Uitems) { Point p = Memoire.ScreenToInv(init.Location.X, init.Location.Y); if (p.X >= 28 && p.X <= 83 && p.Y >= 16 && p.Y <= 52) { int i = (p.X - 29) / 18 + ((p.Y - 16) / 18 * invcraft.Longueur); invcraft.SetItem(i, init.item); inv[(p.X - 29) / 18, (p.Y - 16) / 18] = init; } if (p.X == 125 && p.Y == 36) { c = init; } } Craft(inv, c, invcraft, Memoire.InvToScreen(125, 36), new Point(29, 16)); }
public void Craft(UI_Item[,] items, UI_Item to, Inventaire invcraft, Point toCoord, Point start) { Craft craft = TableDeCraft.CheckAll(invcraft); if (craft != null) { for (int x = 0; x < items.GetLength(0); x++) { for (int y = 0; y < items.GetLength(1); y++) { Memoire.items.Remove(items[x, y]); Memoire.form.Controls.Remove(items[x, y]); } } if (to != null) { Memoire.items.Remove(to); Memoire.form.Controls.Remove(to); if (Memoire.selected.item == null && to.item != null) { Memoire.form.Controls.Remove(Memoire.selected); Memoire.selected = to; to = null; Memoire.form.Controls.Add(Memoire.selected); } } bool a = true; for (int x = 0; x < items.GetLength(0); x++) { for (int y = 0; y < items.GetLength(1); y++) { Item item = invcraft.GetItem(x + (y * items.GetLength(0))); if (Memoire.selected != null && Memoire.selected.item != null && craft.To.id() == Memoire.selected.item.id() && item != null && craft.From[x, y] != null) { item.Quantite -= craft.From[x, y].Quantite; if (item.Quantite == 0) { a = false; invcraft.SetItem(x + (y * items.GetLength(0)), null); item = null; } } UI_Item uit = new UI_Item(item, Memoire.InvToScreen(start.X + x * 18, start.Y + y * 18)); Memoire.items.Add(uit); Memoire.form.Controls.Add(uit); } } if (a) { UI_Item cit = new UI_Item(craft.To.Clone(), toCoord); Memoire.items.Add(cit); Memoire.form.Controls.Add(cit); } } if (craft == null && to != null && to.item != null) { Memoire.items.Remove(to); Memoire.form.Controls.Remove(to); } }
public void DansMarchand(List <UI_Item> Uitems) { UI_Item UitV1 = null; UI_Item UitV2 = null; UI_Item itDo = null; foreach (UI_Item init in Uitems) { Point p = Memoire.ScreenToInv(init.Location.X, init.Location.Y); if (p.Y == 14) { if (p.X == 77) { UitV1 = init; } if (p.X == 95) { UitV2 = init; } if (p.X == 147) { itDo = init; } } } if (Memoire.selected.item != null && itDo != null && itDo.item != null && Memoire.selected.item.id() != itDo.item.id()) { AnnulerMove(itDo); return; } if (UitV1.item == null && UitV2.item != null) { Point l1 = UitV1.Location; UitV1.Location = UitV2.Location; UitV2.Location = l1; UI_Item i1 = UitV1; UitV1 = UitV2; UitV2 = i1; } if (UitV1.item != null) { foreach (Echange echange in EcranDeJeu.marchand.Echanges) { bool iv2 = echange.ItemVoulu2 == null; bool i2 = UitV2.item == null; if (echange.ItemVoulu != null && echange.ItemVoulu.id() == UitV1.item.id() && echange.ItemVoulu.Quantite <= UitV1.item.Quantite && (iv2 == i2) && (( (!iv2 && !i2) && echange.ItemVoulu2.id() == UitV2.item.id() && echange.ItemVoulu2.Quantite <= UitV2.item.Quantite) || (iv2 && i2))) { if (itDo == null) { itDo = new UI_Item(echange.ItemDonne.Clone(), Memoire.InvToScreen(147, 14)); Memoire.items.Add(itDo); Memoire.form.Controls.Add(itDo); } else { Memoire.items.Remove(itDo); Memoire.form.Controls.Remove(itDo); if (Memoire.selected.item == null && itDo.item != null) { Memoire.form.Controls.Remove(Memoire.selected); Memoire.selected = new UI_Item(itDo.item, Memoire.selected.Location); itDo.item = null; Memoire.form.Controls.Add(Memoire.selected); } if (Memoire.selected.item != null && Memoire.selected.item.id() == echange.ItemDonne.id()) { bool a = true; if (UitV1.item != null && echange.ItemVoulu != null) { Memoire.items.Remove(UitV1); Memoire.form.Controls.Remove(UitV1); UitV1.item.Quantite -= echange.ItemVoulu.Quantite; if (UitV1.item.Quantite <= 0) { UitV1.item = null; a = false; } UitV1 = new UI_Item(UitV1.item, UitV1.Location); Memoire.items.Add(UitV1); Memoire.form.Controls.Add(UitV1); } if (UitV2.item != null && echange.ItemVoulu2 != null) { Memoire.items.Remove(UitV2); Memoire.form.Controls.Remove(UitV2); UitV2.item.Quantite -= echange.ItemVoulu2.Quantite; if (UitV2.item.Quantite <= 0) { UitV2.item = null; a = false; } UitV2 = new UI_Item(UitV2.item, UitV2.Location); Memoire.items.Add(UitV2); Memoire.form.Controls.Add(UitV2); } if (a) { itDo = new UI_Item(echange.ItemDonne.Clone(), itDo.Location); Memoire.items.Add(itDo); Memoire.form.Controls.Add(itDo); } } else { itDo = new UI_Item(echange.ItemDonne.Clone(), itDo.Location); Memoire.items.Add(itDo); Memoire.form.Controls.Add(itDo); } } return; } } } if (itDo != null) { Memoire.form.Controls.Remove(itDo); Memoire.items.Remove(itDo); } }
public void DansJoueur(List <UI_Item> Uitems) { UI_Item[,] crafts = new UI_Item[2, 2]; UI_Item tocraft = null; UI_Item casque = null; UI_Item plastron = null; UI_Item jambiere = null; UI_Item botte = null; foreach (UI_Item init in Uitems) { Point p = Memoire.ScreenToInv(init.Location.X, init.Location.Y); if (p.X == 7) { if (p.Y == 7) { casque = init; } if (p.Y == 25) { plastron = init; } if (p.Y == 43) { jambiere = init; } if (p.Y == 61) { botte = init; } } if ((p.X == 97 || p.X == 115) && (p.Y == 17 || p.Y == 35)) { Sauvegarde.joueur.Crafting.SetItem((p.X - 97) / 18 + (((p.Y - 17) / 18) * 2), init.item); crafts[(p.X - 97) / 18, (p.Y - 17) / 18] = init; } if (p.X == 153 && p.Y == 27) { tocraft = init; } } if (casque.item is Casque c) { Sauvegarde.joueur.Casque = c; } else if (casque.item == null) { Sauvegarde.joueur.Casque = null; } else { Sauvegarde.joueur.Casque = null; AnnulerMove(casque); } if (plastron.item is Plastron pl) { Sauvegarde.joueur.Plastron = pl; } else if (plastron.item == null) { Sauvegarde.joueur.Plastron = null; } else { Sauvegarde.joueur.Plastron = null; AnnulerMove(plastron); } if (jambiere.item is Jambiere j) { Sauvegarde.joueur.Jambiere = j; } else if (jambiere.item == null) { Sauvegarde.joueur.Jambiere = null; } else { Sauvegarde.joueur.Jambiere = null; AnnulerMove(jambiere); } if (botte.item is Botte b) { Sauvegarde.joueur.Botte = b; } else if (botte.item == null) { Sauvegarde.joueur.Botte = null; } else { Sauvegarde.joueur.Botte = null; AnnulerMove(botte); } Craft(crafts, tocraft, Sauvegarde.joueur.Crafting, Memoire.InvToScreen(153, 27), new Point(97, 17)); }
/// <summary> /// liste d'echange d'un marchand /// </summary> public static void AfficherMarchand() { AfficherMap(Sauvegarde.joueur, Sauvegarde.monde); Graphics gfx = Graphics.FromImage(Memoire.form.backGround); int w = Memoire.form.ClientSize.Width; int h = Memoire.form.ClientSize.Height; gfx.DrawImage(Properties.Resources.Inventaire_Marchand , w / 32, h / 32, w - (w / 32) * 2, h - (h / 32) * 2); Size itsize = new Size((int)((16f / 177f) * (w - (w / 32) * 2)), (int)((16f / 166f) * (h - (h / 32) * 2))); for (int i = 0; i < 5; i++) { if (i >= marchand.Echanges.Length) { break; } Echange echange = marchand.Echanges[i]; if (echange.ItemVoulu != null) { Bitmap img = new Bitmap((Bitmap)Properties.Resources.ResourceManager.GetObject("Item_" + echange.ItemVoulu.id()), itsize); Graphics g = Graphics.FromImage(img); SizeF s = g.MeasureString(echange.ItemVoulu.Quantite + "", SystemFonts.DefaultFont); if (echange.ItemVoulu.Quantite > 1) { g.DrawString(echange.ItemVoulu.Quantite + "", SystemFonts.DefaultFont, Brushes.Black, new PointF(itsize.Width - s.Width, itsize.Height - s.Height)); } Point start = Memoire.InvToScreen(84, 47 + i * 22); gfx.DrawImage(img, start.X, start.Y, itsize.Width, itsize.Height); } if (echange.ItemVoulu2 != null) { Bitmap img = new Bitmap((Bitmap)Properties.Resources.ResourceManager.GetObject("Item_" + echange.ItemVoulu2.id()), itsize); Graphics g = Graphics.FromImage(img); SizeF s = g.MeasureString(echange.ItemVoulu2.Quantite + "", SystemFonts.DefaultFont); if (echange.ItemVoulu2.Quantite > 1) { g.DrawString(echange.ItemVoulu2.Quantite + "", SystemFonts.DefaultFont, Brushes.Black, new PointF(itsize.Width - s.Width, itsize.Height - s.Height)); } Point start = Memoire.InvToScreen(102, 47 + i * 22); gfx.DrawImage(img, start.X, start.Y, itsize.Width, itsize.Height); } if (echange.ItemDonne != null) { Bitmap img = new Bitmap((Bitmap)Properties.Resources.ResourceManager.GetObject("Item_" + echange.ItemDonne.id()), itsize); Graphics g = Graphics.FromImage(img); SizeF s = g.MeasureString(echange.ItemDonne.Quantite + "", SystemFonts.DefaultFont); if (echange.ItemDonne.Quantite > 1) { g.DrawString(echange.ItemDonne.Quantite + "", SystemFonts.DefaultFont, Brushes.Black, new PointF(itsize.Width - s.Width, itsize.Height - s.Height)); } Point start = Memoire.InvToScreen(140, 47 + i * 22); gfx.DrawImage(img, start.X, start.Y, itsize.Width, itsize.Height); } } }
/// <summary> /// change l'ecran</br> /// IL FAUT ACTUALISE LE FORM /// </summary> /// <param name="necran"></param> public static void ChangerEcran(Ecrans necran, object autre) { if (ecran == necran) { return; } List <UI_Item> items = new List <UI_Item>(); if (necran == Ecrans.Inventaire) { OuvrireInventaire(); inventaires = (Inventaire[])autre; Inventaire inv = inventaires[0]; if (inv.Hauteur > 3) { throw new ArgumentException("inventaire trop haut"); } if (inv.Longueur > 9) { throw new ArgumentException("inventaire trop long"); } for (int x = 0; x < inv.Longueur; x++) { for (int y = 0; y < inv.Hauteur; y++) { items.Add(new UI_Item(inv.GetItem(x + (y * inv.Longueur)), Memoire.InvToScreen(7 + x * 18, 53 - y * 18))); } } } if (necran == Ecrans.Joueur) { OuvrireInventaire(); Joueur joueur = autre as Joueur; inventaires = new Inventaire[] { joueur.Inventaire, joueur.Barre }; items.Add(new UI_Item(joueur.Casque, Memoire.InvToScreen(7, 7))); items.Add(new UI_Item(joueur.Plastron, Memoire.InvToScreen(7, 25))); items.Add(new UI_Item(joueur.Jambiere, Memoire.InvToScreen(7, 43))); items.Add(new UI_Item(joueur.Botte, Memoire.InvToScreen(7, 61))); items.Add(new UI_Item(joueur.Crafting.GetItem(0), Memoire.InvToScreen(97, 17))); items.Add(new UI_Item(joueur.Crafting.GetItem(2), Memoire.InvToScreen(97, 35))); items.Add(new UI_Item(joueur.Crafting.GetItem(1), Memoire.InvToScreen(115, 17))); items.Add(new UI_Item(joueur.Crafting.GetItem(3), Memoire.InvToScreen(115, 35))); } if (necran == Ecrans.Marchand) { OuvrireInventaire(); marchand = (Marchand)autre; inventaires = new Inventaire[] { Sauvegarde.joueur.Inventaire, Sauvegarde.joueur.Barre }; items.Add(new UI_Item(null, Memoire.InvToScreen(77, 14))); items.Add(new UI_Item(null, Memoire.InvToScreen(95, 14))); //items.Add(new UI_Item(null, Memoire.InvToScreen(147, 14))); } if (necran == Ecrans.TableCraft) { OuvrireInventaire(); Inventaire inv = ((Inventaire[])autre)[0]; items.Add(new UI_Item(inv.GetItem(0), Memoire.InvToScreen(29, 16))); items.Add(new UI_Item(inv.GetItem(1), Memoire.InvToScreen(47, 16))); items.Add(new UI_Item(inv.GetItem(2), Memoire.InvToScreen(65, 16))); items.Add(new UI_Item(inv.GetItem(3), Memoire.InvToScreen(29, 34))); items.Add(new UI_Item(inv.GetItem(4), Memoire.InvToScreen(47, 34))); items.Add(new UI_Item(inv.GetItem(5), Memoire.InvToScreen(65, 34))); items.Add(new UI_Item(inv.GetItem(6), Memoire.InvToScreen(29, 52))); items.Add(new UI_Item(inv.GetItem(7), Memoire.InvToScreen(47, 52))); items.Add(new UI_Item(inv.GetItem(8), Memoire.InvToScreen(65, 52))); inventaires = (Inventaire[])autre; } if (necran == Ecrans.Four) { OuvrireInventaire(); KeyValuePair <Four_Block, Inventaire[]> returne = (KeyValuePair <Four_Block, Inventaire[]>)autre; four = returne.Key; inventaires = returne.Value; Inventaire inv = returne.Value[0]; items.Add(new UI_Item(inv.GetItem(0), Memoire.InvToScreen(55, 16))); items.Add(new UI_Item(inv.GetItem(1), Memoire.InvToScreen(55, 52))); items.Add(new UI_Item(inv.GetItem(2), Memoire.InvToScreen(116, 35))); } if (necran == Ecrans.Jeu) { if (Memoire.items != null) { SauvegarderInventaire(); } inventaires = null; marchand = null; four = null; ActuHotBarre(); } foreach (UI_Item it in items) { Memoire.items.Add(it); Memoire.form.Controls.Add(it); } if (ecran == Ecrans.Jeu) { Memoire.form.Controls.Remove(Memoire.barre); Memoire.form.Controls.Remove(Memoire.selector); Memoire.form.Controls.Remove(Memoire.coeur); Memoire.form.Controls.Remove(Memoire.nourriture); } ecran = necran; Memoire.form.Actualiser(); }