public QuestMenu(Quest[] quests, Player player) { // Location = new Point(MainForm.res.Width-Width,Map.StartPoint.Y);//Adjustable Location = new Point(0,SideMenu.EndPoint.Y);//Adjustable CurrentStartID = 0; if (MaxDisplayed>=quests.Length) { Add(new RelativeLabel(new Point (0,0), new Size(Width,Offset+quests.Length*(Height+Offset)+NameLabelHeight+Offset)), "BackgroundLabel"); for (int i=0;i<quests.Length;i++) { Add(CreateQuestGroupControl(quests[i],player,i,0)); } } else { Add(new RelativeLabel(new Point (0,0), new Size(Width,Offset+MaxDisplayed*(Height+Offset)+2*(ButtonHeight+Offset)+NameLabelHeight+Offset)), "BackgroundLabel"); for (int i=CurrentStartID;i<CurrentStartID+MaxDisplayed;i++) { Add(CreateQuestGroupControl(quests[i],player,i,Offset+ButtonHeight)); } Add(new RelativeLabel(new Point(Offset,NameLabelHeight+2*Offset), new Size(Width-2*Offset,ButtonHeight)),"UpButton"); GetControl("UpButton").Text = "^"; GetControl("UpButton").Click += delegate { if(CurrentStartID>0) CurrentStartID--; UpdateVisibleQuests(quests,player); }; Add(new RelativeLabel(new Point(Offset, SubGroups[MaxDisplayed-1].Location.Y+Offset+Height-SideMenu.EndPoint.Y), new Size(Width-2*Offset,ButtonHeight)),"DownButton"); GetControl("DownButton").Text = "v"; GetControl("DownButton").Click += delegate { if(CurrentStartID+MaxDisplayed<quests.Length) CurrentStartID++; UpdateVisibleQuests(quests,player); }; } GetControl("BackgroundLabel").BackColor = Color.Lime; Add(new RelativeLabel(new Point(Offset,Offset), new Size(Width - 2*Offset,NameLabelHeight)), "NameLabel"); GetControl("NameLabel").Text = "Quests"; }
public MainForm() { InitializeComponent(); // The InitializeComponent() call is required for Windows Forms designer support. InitDisplay(); //Set se Resolution EstablishConnection(); Map = new Map(); SideMenu = new SideMenu(); //Map this.Controls.Add(Map.FrameLabel); Map.FrameLabel.BringToFront(); Map.FrameLabel.MouseUp += OnMoveMap; Map.FrameLabel.MouseDown += OnMoveMap; Map.RedrawImage(); //Places Places = new Locations(SendMoveRequest); InitControlGroup(Places.Menu); foreach(Place p in Places.AllPlaces.Values) { this.Controls.Add(p.ClickLabel); p.ClickLabel.Parent = Map.FrameLabel; p.ClickLabel.BringToFront(); } OnMoveMap(Map.FrameLabel, new MouseEventArgs(MouseButtons.None, 0, 0, 0, 0)); Map.FrameLabel.MouseDown += delegate { foreach (Place p in Places.AllPlaces.Values) p.ClickLabel.Visible = false; }; //Players UpdatePlayerLocation(); //Sidemenu InitControlGroup(SideMenu); SideMenu.Visible = true; foreach (RelativeLabel c in SideMenu.Controls) c.Click += SideMenuButtonClick; InitControlGroup(SideMenu.LogMenu); //FIXME: debug... REMOVE! Quests[0] = new Quest("Quest 1", new int[2] {1,2},new Resources(2,3,1,4),2,3,new Item[0]); Quests[1] = new Quest("Quest 1", new int[2] {1,2},new Resources(2,3,1,4),2,3,new Item[0]); Quests[2] = new Quest("Quest 1", new int[2] {1,2},new Resources(2,3,1,4),2,3,new Item[0]); //END }
public ControlGroup CreateQuestGroupControl(Quest quest, Player player, int SlotNum, int SpecOffset) { ControlGroup c = new ControlGroup(new Point(Location.X,SlotNum*(Height+Offset)+SideMenu.EndPoint.Y+2*Offset+NameLabelHeight+SpecOffset)); c.Add(new RelativeLabel(new Point(Offset,0), new Size(Height,Height)), "ImageLabel"); c.Add(new RelativeLabel(new Point(Offset+Height+Offset,0),new Size(Width-3*Offset-Height,50)),"TextLabel"); c.Add(new RelativeLabel(new Point(Offset+Height+Offset,50),new Size(Width-3*Offset-Height,50)),"RequirementsLabel"); string[] TextBuf = QuestText(quest,player); c.GetControl("TextLabel").Text = TextBuf[0]; c.GetControl("RequirementsLabel").Text = TextBuf[1]; c.GetControl("ImageLabel").BackgroundImage = Character.GetCharacter(quest.CharacterID).CharacterImage; return c; }
public void UpdateVisibleQuests(Quest[] quests, Player player) { for (int i=0; i<MaxDisplayed;i++) { string [] TextBuf=QuestText(quests[i+CurrentStartID],player); SubGroups[i].GetControl("TextLabel").Text = TextBuf[0]; SubGroups[i].GetControl("RequirementsLabel").Text = TextBuf[1]; SubGroups[i].GetControl("ImageLabel").BackgroundImage = Character.GetCharacter(i+CurrentStartID).CharacterImage; } }
public string[] QuestText(Quest quest, Player player) { string TextBuf2 = Character.GetCharacter(0).Name+" "+"Charakter "+quest.CharacterID.ToString()+": "+quest.Text; string TextBuf = ""; TextBuf += "Location: " + player.LocationID + " =? " + quest.LocationID + " "; TextBuf += "Resources: "; if (quest.ResourcesNeeded > new Resources()) for (int i = 0; i<quest.ResourcesNeeded.All.Length;i++) TextBuf += player.Resources.All[i].ToString() + "/" + quest.ResourcesNeeded.All[i].ToString() +" "; else TextBuf += "none "; TextBuf += "Players: "; if (quest.PlayerIDs.Length == 0) TextBuf += "all "; else foreach (int i in quest.PlayerIDs) TextBuf += i.ToString() + " "; TextBuf += "Items: "; if (quest.NeededItems.Length == 0) TextBuf += "none "; else foreach (Item i in quest.NeededItems) TextBuf += i.Name + " "; return new string[2] {TextBuf2, TextBuf}; }