public static MenuItemBundle CreateListBundle(string bundleName, List <GENeighbour> geNeighbours, MenuItemBundle parent) { MenuItemBundle newBundle = new MenuItemBundle(bundleName, parent); if (!ActivatableGameElement.IsActiveGEInList(geNeighbours)) { Description.GetInstance().AddDescriptionText(LabelUtility.Instance.GetLabel(LabelNames.EMPTYNEIGHBOURLIST)); } foreach (GENeighbour neighbour in geNeighbours) { newBundle.AddMenuItem(new MIRoomChange(neighbour.MenuText.GetText(), newBundle, neighbour)); neighbour.OnActivationChange += newBundle.RefreshOnEvent; } newBundle.AddMenuItem(new MIBack(parent)); return(newBundle); }
public static MenuItemBundle CreateListBundle(string bundleName, List <GEItem> geItems, MenuItemBundle parent) { MenuItemBundle newBundle = new MenuItemBundle(bundleName, parent); if (!ActivatableGameElement.IsActiveGEInList(geItems)) { Description.GetInstance().AddDescriptionText(LabelUtility.Instance.GetLabel(LabelNames.EMPTYITEMLIST)); } foreach (GEItem item in geItems) { newBundle.AddMenuItem(new MIOpenBundle <GEItem>(item.ItemName.GetText(), item, newBundle)); item.OnActivationChange += newBundle.RefreshOnEvent; } newBundle.AddMenuItem(new MIBack(parent)); return(newBundle); }
private void OnActivation() { if (!isActive) { return; } Description description = Description.GetInstance(); description.ClearDescription(); description.AddDescriptionText(endText.GetText()); GameController.GetInstance().ShowGameOver(gameOverText.GetText()); MenuItemBundle menuItemBundle = new MenuItemBundle("", null); menuItemBundle.AddMenuItem(new MIGameEnd("OK", null)); menuItemBundle.IsBlocker = true; description.IsBlocked = true; MenuController.GetInstance().CurrentBundle = menuItemBundle; }
public static MenuItemBundle CreateListBundle(string bundleName, List <GENpc> geNpcs, MenuItemBundle parent) { MenuItemBundle newBundle = new MenuItemBundle(bundleName, parent); if (!ActivatableGameElement.IsActiveGEInList(geNpcs)) { Description.GetInstance().AddDescriptionText(LabelUtility.Instance.GetLabel(LabelNames.EMPTYNPCLIST)); } foreach (GENpc npc in geNpcs) { newBundle.AddMenuItem(new MIOpenBundle <GENpc>(npc.NameText.GetText(), npc, newBundle)); npc.OnActivationChange += newBundle.RefreshOnEvent; } newBundle.AddMenuItem(new MIBack(parent)); return(newBundle); }
protected override void Execute() { Description descriptionPanel = Description.GetInstance(); descriptionPanel.ClearDescription(); if (bundleInstance == null || (actualConv == null || actualConv != npc.ActiveConversation)) { if (actualConv != null) { actualConv.OnActivationChange -= parentBundle.RefreshOnEvent; } actualConv = npc.ActiveConversation; bundleInstance = MenuItemBundleFactroy.CreateConversationLineBundle(LabelUtility.Instance.GetLabel(LabelNames.CONVERSATIONWITH) + npc.NameText.GetText(), parentBundle, actualConv.FirstLine, npc.NameText.GetText()); actualConv.OnActivationChange += parentBundle.RefreshOnEvent; } bundleInstance.ExecuteSideEffects(); menuController.CurrentBundle = bundleInstance; }
public static MenuItemBundle CreateConversationLineBundle(string bundleName, MenuItemBundle parent, GENpc.GELine line, string talkerName) { Description descriptionPanel = Description.GetInstance(); MenuItemBundle newBundle = new MenuItemBundle(bundleName, parent); newBundle.OnExecutionSidefects += delegate(object o, EventArgs e) { descriptionPanel.AddDescriptionText(talkerName + ":\n" + line.LineText.GetText()); }; if (line.Answers.Count == 0 || line.IsLastLine) { newBundle.AddMenuItem(new MIBack(parent)); return(newBundle); } int i = 1; bool isShort = GENpc.GEAnswer.IsAnswerShort(line.Answers, 12); foreach (GENpc.GEAnswer answer in line.Answers) { if (isShort) { newBundle.AddMenuItem(new MIAnswer(answer.AnswerText.GetText(), answer, parent, talkerName)); } else { MIAnswer item = new MIAnswer(i++.ToString(), answer, parent, talkerName); newBundle.AddMenuItem(item); newBundle.OnExecutionSidefects += delegate(object o, EventArgs e) { if (answer.IsActive()) { descriptionPanel.AddDescriptionText(item.GetMenuText() + ": " + answer.AnswerText.GetText()); } }; } answer.OnActivationChange += newBundle.RefreshOnEvent; } return(newBundle); }
protected override void Execute() { if (bundleInstance == null) { if (element is GERoom) { bundleInstance = MenuItemBundleFactroy.CreateBundle(element as GERoom, parentBundle); } else if (element is GEItem) { bundleInstance = MenuItemBundleFactroy.CreateBundle(element as GEItem, parentBundle); } else if (element is GENpc) { bundleInstance = MenuItemBundleFactroy.CreateBundle(element as GENpc, parentBundle); } else { //... } } menuController.CurrentBundle = bundleInstance; }
public MIRoomChange(string menuText, MenuItemBundle parentBundle, GENeighbour geNeighbour) : base(menuText, parentBundle) { this.geNeighbour = geNeighbour; description = Description.GetInstance(); gameController = GameController.GetInstance(); }
public MIOpenBundle(string menuText, T element, MenuItemBundle parentBundle) : base(menuText, parentBundle) { this.element = element; }
private MIOpenList(string menuText, MenuItemBundle parentBundle) : base(menuText, parentBundle) { }
protected MenuItem(string menuText, MenuItemBundle parentBundle) { this.menuText = menuText; this.parentBundle = parentBundle; menuController = MenuController.GetInstance(); }
public MIShowDescription(string menuText, MenuItemBundle parentBundle, Func <string> getDescText) : base(menuText, parentBundle) { description = Description.GetInstance(); this.getDescText = getDescText; }
public MIConversation(string menuText, MenuItemBundle parentBundle, GENpc npc) : base(menuText, parentBundle) { this.npc = npc; }
public MIGameEnd(string menuText, MenuItemBundle parentBundle) : base(menuText, parentBundle) { }
public MIBack(MenuItemBundle parentBundle) : base(LabelUtility.Instance.GetLabel(LabelNames.BACK), parentBundle) { }
public MIShowDescription(string menuText, MenuItemBundle parentBundle, string descriptionText) : base(menuText, parentBundle) { this.descriptionText = descriptionText; description = Description.GetInstance(); }
public MIAnswer(string menuText, GENpc.GEAnswer answer, MenuItemBundle parentBundle, string answerTo) : base(menuText, parentBundle) { this.geAnswer = answer; this.answerTo = answerTo; }
public MIGameElementAction(string menuText, MenuItemBundle parentBundle, GEMenuItem geMenuItem) : base(menuText, parentBundle) { this.geMenuItem = geMenuItem; description = Description.GetInstance(); }
public MIEquip(GEItem geItem, MenuItemBundle parentBundle) : base(LabelUtility.Instance.GetLabel(LabelNames.PICKUP), parentBundle) { elementManager = ObjectManager.CurrentGEM; this.geItem = geItem; description = Description.GetInstance(); }