public void CreateLink(int id) { PagePanelItem newItem = Instantiate(linksPrefab, linksParent).GetComponent <PagePanelItem>(); if (newItem) { newItem.Init(GameManager.CurrentCampaign.GetPageById(id)); newItem.onOpenPage.AddListener(delegate { GameManager.Instance.OpenPage(newItem.page.id); }); newItem.onRemove.AddListener(delegate { RemoveItem(newItem); }); items.Add(newItem); } }
public void CreatePageItem(Page page) { PagePanelItem newItem = Instantiate(panelPrefab, pagesParent).GetComponent <PagePanelItem>(); if (newItem) { newItem.Init(page); newItem.onOpenPage.AddListener(delegate { GameManager.Instance.OpenPage(newItem.page.id); }); newItem.onRemove.AddListener(delegate { RemoveItem(newItem); }); items.Add(newItem); } }
private void RemoveItem(PagePanelItem item) { for (int i = 0; i < GameManager.CurrentCampaign.pages.Count; i++) { GameManager.CurrentCampaign.pages[i].links.Remove(item.page.id); } if (GameManager.Instance.mainPanel.currentPageId == item.page.id) { GameManager.Instance.mainPanel.ActivateAllPages(false); GameManager.Instance.linksPanel.Clear(); } else { GameManager.Instance.linksPanel.SetLinksToCurrentPage(); } GameManager.CurrentCampaign.pages.Remove(item.page); items.Remove(item); Destroy(item.gameObject); }
private void RemoveItem(PagePanelItem newItem) { if (newItem.page.pageType == PageTypes.Map) { for (int i = 1; i < newItem.page.texts.Count; i++) { if (MapItemDataConverter.GetId(newItem.page.texts[i]) == GameManager.Instance.mainPanel.currentPageId) { newItem.page.texts.RemoveAt(i); break; } } } else { GameManager.Instance.currentCampaign.GetPageById(newItem.page.id).links.Remove(GameManager.Instance.mainPanel.currentPageId); } GameManager.CurrentCampaign.GetPageById(GameManager.Instance.mainPanel.currentPageId).links.Remove(newItem.page.id); items.Remove(newItem); Destroy(newItem.gameObject); }