コード例 #1
0
        private async Task <DialogTurnResult> FindEvents(WaterfallStepContext sc, CancellationToken cancellationToken)
        {
            var userState = await UserAccessor.GetAsync(sc.Context, () => new EventSkillUserState());

            var          location = userState.Location;
            List <Event> events   = await _eventbriteService.GetEventsAsync(location);

            List <Card> cards = new List <Card>();

            foreach (var item in events)
            {
                var eventCardData = new EventCardData()
                {
                    Title     = item.Name.Text,
                    ImageUrl  = item?.Logo?.Url ?? " ",
                    StartDate = item.Start.Local.ToString("dddd, MMMM dd, h:mm tt"),
                    Location  = GetVenueLocation(item),
                    Price     = item.IsFree ? "Free" : "Starts at " +
                                Convert.ToDouble(item.TicketAvailability.MinTicketPrice.MajorValue)
                                .ToString("C", System.Globalization.CultureInfo.GetCultureInfo(item.Locale.Replace("_", "-"))),
                    Url = item.Url
                };

                cards.Add(new Card(GetCardName(sc.Context, "EventCard"), eventCardData));
            }

            await sc.Context.SendActivityAsync(ResponseManager.GetCardResponse(FindEventsResponses.FoundEvents, cards, null));

            return(await sc.EndDialogAsync());
        }
コード例 #2
0
    private void LoadEventCardsXml(string pathName, List <EventCardData> list)
    {
        string      path   = "Config";
        string      text   = ResourcesManager.Instance.LoadConfig(path, pathName).text;
        XmlDocument xmlDoc = new XmlDocument();

        xmlDoc.LoadXml(text);
        XmlNode     root     = xmlDoc.SelectSingleNode("Card");
        XmlNodeList nodeList = root.ChildNodes;

        foreach (XmlNode node in nodeList)
        {
            XmlNode id         = node.SelectSingleNode("id");
            XmlNode name       = node.SelectSingleNode("name");
            XmlNode Des        = node.SelectSingleNode("Des");
            XmlNode spriteName = node.SelectSingleNode("spriteName");

            EventCardData data = new EventCardData();
            data.id         = CommonHelper.Str2Int(id.InnerText);
            data.name       = name.InnerText;
            data.Des        = Des.InnerText;
            data.spriteName = spriteName.InnerText;

            list.Add(data);
        }
    }
コード例 #3
0
        public void NewChance(GamePlayer gplayer)
        {
            EventCardData temp = LocalKansData[0];

            this.EventNotification = gplayer.MyPlayer.PlayerName + " trekt een kans kaart";
            this.EventNotification = gplayer.MyPlayer.PlayerName + " : " + temp.Description;
            this._activeEventCard  = temp;
            GameFunctions.HandleCardEvent(gplayer, LocalKansData[0]);
            LocalKansData.Remove(temp);
            LocalKansData.Add(temp);
        }
コード例 #4
0
    public EventCardData GetlistDataById(int id)
    {
        EventCardData data = null;

        for (int i = 0; i < CollectionCardList.Count; i++)
        {
            if (CollectionCardList[i].id == id)
            {
                data = CollectionCardList[i];
                break;
            }
        }
        return(data);
    }
コード例 #5
0
 public static void HandleCardEvent(GamePlayer gPlayer, EventCardData Card)
 {
     if (Card.IsPrison)
     {
         toJail(gPlayer);
     }
     else if (Card.IsEscapePrison)
     {
         if (Card.Type == "kans")
         {
             gPlayer.HasEscapePrisonCh = true;
             gPlayer.MyState.ModifyPrisonCard(true, false);
         }
         else
         {
             gPlayer.HasEscapePrisonCo = true;
             gPlayer.MyState.ModifyPrisonCard(false, false);
         }
     }
     else if (Card.IsLocationChangeBW)
     {
         if (Card.SoftLocation > 0)
         {
             gPlayer.Location -= (byte)Card.SoftLocation;
             BoardEffect(gPlayer, gPlayer.MyState);
         }
         else
         {
             updateLocation(gPlayer, (int)Card.HardLocation, true);
         }
     }
     else if (Card.IsLocationChangeFW)
     {
         if (Card.SoftLocation > 0)
         {
             updateLocation(gPlayer, (int)Card.SoftLocation);
         }
         else
         {
             if (gPlayer.Location > (int)Card.HardLocation)
             {
                 int temp = (40 - gPlayer.Location) + (int)Card.HardLocation;
                 updateLocation(gPlayer, temp);
             }
             else
             {
                 updateLocation(gPlayer, (int)Card.HardLocation, true);
             }
         }
     }
     else if (Card.IsChanceChoice)
     {
         gPlayer.MyState.ChanceChoice = true;
     }
     else if (Card.CashChange != 0)
     {
         if (Card.IsGlobal)
         {
             foreach (var item in gPlayer.MyState.PlayerList)
             {
                 item.Cash    -= Card.CashChange;
                 gPlayer.Cash += Card.CashChange;
             }
         }
         else if (Card.IsPayHouse)
         {
             int temp = 0;
             foreach (var item in gPlayer.PlayerProperty)
             {
                 temp += item.HouseLevel;
             }
             gPlayer.Cash -= temp * Card.CashChange;
         }
         else
         {
             gPlayer.Cash += Card.CashChange;
         }
     }
 }