private void ActivityAction(ActivityType activityType) { MenuManager.Instance.RemoveMenu(); MenuManager.Instance.RemoveMenu(); OnlineActivity activity = null; switch (activityType) { case ActivityType.SendHelp: activity = new ActivitySendHelp(targetServer, DataManager.Instance.Save.CreateContactInfo(), targetContact); break; case ActivityType.GetHelp: activity = new ActivityGetHelp(targetServer, DataManager.Instance.Save.CreateContactInfo(), targetContact); break; case ActivityType.TradeTeam: activity = new ActivityTradeTeam(targetServer, DataManager.Instance.Save.CreateContactInfo(), targetContact); break; case ActivityType.TradeItem: activity = new ActivityTradeItem(targetServer, DataManager.Instance.Save.CreateContactInfo(), targetContact); break; case ActivityType.TradeMail: activity = new ActivityTradeMail(targetServer, DataManager.Instance.Save.CreateContactInfo(), targetContact); break; } action(activity); }
public void UpdateStatus() { ActivityTradeItem tradeTeam = NetworkManager.Instance.Activity as ActivityTradeItem; if (tradeTeam.OfferedItems != theirInfo.CurrentOffer) { theirInfo.SetCurrentItems(tradeTeam.OfferedItems); } //set status yourStatus.SetText(CurrentState.ToLocal("msg")); theirStatus.SetText(tradeTeam.CurrentState.ToLocal("msg")); }
protected override void ChoseMultiIndex(List <int> slots) { int startIndex = CurrentChoiceTotal; List <InvItem> indices = new List <InvItem>(); foreach (int slot in slots) { indices.Add(new InvItem(AllowedGoods[slot])); } OfferItemsMenu menu = new OfferItemsMenu(this.Bounds, this); menu.SetCurrentItems(indices); MenuManager.Instance.AddMenu(menu, true); CurrentState = ExchangeState.Viewing; ActivityTradeItem tradeTeam = NetworkManager.Instance.Activity as ActivityTradeItem; tradeTeam.OfferItems(indices); tradeTeam.SetReady(CurrentState); }
public override void Update(InputManager input) { Visible = true; NetworkManager.Instance.Update(); if (NetworkManager.Instance.Status == OnlineStatus.Offline) { //give offline message in a dialogue MenuManager.Instance.RemoveMenu(); MenuManager.Instance.RemoveMenu(); MenuManager.Instance.AddMenu(MenuManager.Instance.CreateDialogue(NetworkManager.Instance.ExitMsg), false); } else { ActivityTradeItem tradeItem = NetworkManager.Instance.Activity as ActivityTradeItem; if (baseMenu.CurrentState == ExchangeState.Viewing) { if (input.JustPressed(FrameInput.InputType.Confirm)) { baseMenu.CurrentState = ExchangeState.Ready; tradeItem.SetReady(baseMenu.CurrentState); } else if (input.JustPressed(FrameInput.InputType.Cancel)) { GameManager.Instance.SE("Menu/Cancel"); MenuManager.Instance.RemoveMenu(); baseMenu.CurrentState = ExchangeState.Selecting; tradeItem.OfferItems(new List <InvItem>()); tradeItem.SetReady(baseMenu.CurrentState); } } else if (baseMenu.CurrentState == ExchangeState.Ready) { if (tradeItem.CurrentState == ExchangeState.Ready) { QuestionDialog dialog = MenuManager.Instance.CreateQuestion(Text.FormatKey("DLG_TRADE_ITEM_ASK"), () => { baseMenu.CurrentState = ExchangeState.Exchange; tradeItem.SetReady(baseMenu.CurrentState); }, () => { baseMenu.CurrentState = ExchangeState.Viewing; tradeItem.SetReady(baseMenu.CurrentState); }); MenuManager.Instance.AddMenu(dialog, true); } else { if (input.JustPressed(FrameInput.InputType.Cancel)) { GameManager.Instance.SE("Menu/Cancel"); baseMenu.CurrentState = ExchangeState.Viewing; tradeItem.SetReady(baseMenu.CurrentState); } } } else if (baseMenu.CurrentState == ExchangeState.Exchange) { if (tradeItem.CurrentState == ExchangeState.Exchange || tradeItem.CurrentState == ExchangeState.PostTradeWait) { int chosenIndex = baseMenu.CurrentPage * baseMenu.SpacesPerPage + baseMenu.CurrentChoice; List <int> offerItems = new List <int>(); foreach (InvItem item in CurrentOffer) { offerItems.Add(item.ID); } DataManager.Instance.Save.ActiveTeam.TakeItems(offerItems); DataManager.Instance.Save.ActiveTeam.StoreItems(tradeItem.OfferedItems); baseMenu.CurrentState = ExchangeState.PostTradeWait; tradeItem.SetReady(baseMenu.CurrentState); } else if (tradeItem.CurrentState != ExchangeState.Ready) { MenuManager.Instance.AddMenu(MenuManager.Instance.CreateDialogue(Text.FormatKey("DLG_TRADE_CANCELED")), true); baseMenu.CurrentState = ExchangeState.Viewing; tradeItem.SetReady(baseMenu.CurrentState); } } else if (baseMenu.CurrentState == ExchangeState.PostTradeWait) { if (tradeItem.CurrentState != ExchangeState.Exchange) { DataManager.Instance.SaveMainGameState(); int chosenIndex = baseMenu.CurrentPage * baseMenu.SpacesPerPage + baseMenu.CurrentChoice; tradeItem.OfferItems(new List <InvItem>()); MenuManager.Instance.RemoveMenu(); MenuManager.Instance.ReplaceMenu(new TradeItemMenu(chosenIndex)); GameManager.Instance.Fanfare("Fanfare/Treasure"); MenuManager.Instance.AddMenu(MenuManager.Instance.CreateDialogue(Text.FormatKey("DLG_TRADE_ITEM_COMPLETE")), false); tradeItem.SetReady(ExchangeState.Selecting); } } baseMenu.UpdateStatus(); } }