public virtual async Task MessageReceivedAsync(IDialogContext context, IAwaitable <IMessageActivity> result) { // List of popular movies try { await context.PostAsync($"I am searching for movies, please be patient :)"); MoviesSearch search = new MoviesSearch(); List <Movie> movieResult = await search.GetPopularMovies(); if (movieResult.Count != 0) { await context.PostAsync($"Here is popular movie list : "); CardUtil.showHeroCardMovies((IMessageActivity)context.Activity, movieResult); } else { await context.PostAsync($"I couldn't find list of movies, you can try again."); } } catch (Exception e) { Debug.WriteLine($"Error when filtering by popular movies: {e}"); } context.Done(this); }
public SheepCard PlayStrongestLoosingCard(IPlayer thisPlayer, ITrick trick) { var legalCards = thisPlayer.Cards.Where(c => trick.IsLegalAddition(c, thisPlayer)); var winnableCards = GameStateUtils.GetCardsThatCouldWin(trick, legalCards); return(legalCards.Except(winnableCards).OrderBy(c => CardUtil.GetRank(c)).First()); }
public bool CanFit(Card card, out Card Joker) { Joker = null; if (card.IsJoker()) { return(card.Color == Color && Cards.Count < 14); } var jokers = Cards.Where(c => c.IsJoker()); if (card.Suit != Suit || (Cards.Count == 14 && !jokers.Any())) { return(false); } // Check whether the new card replaces a joker foreach (var joker in jokers) { var jokerRank = CardUtil.GetJokerRank(Cards, Cards.IndexOf(joker)); if (jokerRank == card.Rank) { Joker = joker; return(true); } } return((HighestRank != Card.CardRank.ACE && card.Rank == HighestRank + 1) || (LowestRank != Card.CardRank.ACE && card.Rank == LowestRank - 1) || (LowestRank == Card.CardRank.TWO && card.Rank == Card.CardRank.ACE)); }
private void SetShowPuzzle(AwardPB apb) { var card = GlobalData.CardModel.GetCardBase(apb.ResourceId); _cardQualityImage = transform.Find("Puzzle/CardQualityImage").GetComponent <Image>(); transform.Find("Puzzle/NameText").GetComponent <Text>().text = card.CardName + I18NManager.Get("Visit_Hint5") + apb.Num.ToString(); bool isPuzzle; isPuzzle = apb.Resource == ResourcePB.Puzzle ? true : false; transform.Find("Puzzle/PuzzleRawImage").gameObject.SetActive(isPuzzle); transform.Find("Puzzle/RawImage").gameObject.SetActive(isPuzzle); _cardQualityImage.sprite = AssetManager.Instance.GetSpriteAtlas(CardUtil.GetNewCreditSpritePath(card.Credit)); // _cardQualityImage.SetNativeSize(); RawImage cardImage = transform.Find("Puzzle/Mask/CardImage").GetComponent <RawImage>(); Texture texture = ResourceManager.Load <Texture>("Card/Image/SmallCard/" + apb.ResourceId, ModuleConfig.MODULE_VISIT); if (texture == null) { texture = ResourceManager.Load <Texture>("Card/Image/SmallCard/1420", ModuleConfig.MODULE_VISIT); } cardImage.texture = texture; transform.Find("Puzzle/PuzzleRawImage/Text").GetText().text = apb.Num.ToString(); }
public SheepCard GiveAwayPoints(IPlayer thisPlayer, ITrick trick) { return(thisPlayer.Cards .Where(c => trick.IsLegalAddition(c, thisPlayer)) .OrderByDescending(c => CardUtil.GetPoints(c)) .First()); }
public virtual async Task MessageReceivedAsync(IDialogContext context, IAwaitable <IMessageActivity> result) { var message = await result; string entity = ""; if (message.Text.Length > 0) { entity = message.Text; } await context.PostAsync("Here is a weather : "); if (entity == "") { entity = "Mostar"; } try { CardUtil.showWeatherHeroCard((IMessageActivity)context.Activity, WeatherData.getWeatherData(entity)); } catch (Exception e) { await context.PostAsync($"I couldn't find a weather forecast :( You can try again. "); } context.Done <object>(null); }
protected async override Task PostAsync(IActivity item, string state, CancellationToken token) { var searchResult = await this.searchService.Search(state); var replyActivity = ((Activity)item).CreateReply(); await CardUtil.ShowSearchResults(replyActivity, searchResult, $"I'm sorry, I did not understand '{state}'.\nType 'help' to know more about me :)"); }
public List <SheepCard> RetireTwoFailSuitsWithOneAceOrTen() { if (_acesAndTens.Count != 1) { return(null); } var pointSuit = _acesAndTensPerSuit.Single(g => g.Key != Suit.TRUMP).Key; var oneCardSuits = CardsPerSuit .Where(cps => cps.Value == 1) .OrderBy(cps => cps.Key == pointSuit ? 1 : 2) .Select(cps => cps.Key) .Take(2) .ToList(); var buryCards = _cards.Where(c => oneCardSuits.Contains(CardUtil.GetSuit(c))).ToList(); if (buryCards.Count != 2) { return(null); } if (!buryCards.Contains(_acesAndTens.Single())) { return(null); } return(buryCards); }
public void Process(GameField game, Player caster, Player opponent, PokemonCard pokemonSource) { if (caster.BenchedPokemon.Count == GameField.BenchMaxSize && opponent.BenchedPokemon.Count == GameField.BenchMaxSize) { caster.DrawCards(2); return; } var message = new YesNoMessage() { Message = "Do you accept the challenge?" }.ToNetworkMessage(caster.Id); if (!opponent.NetworkPlayer.SendAndWaitForResponse <YesNoMessage>(message).AnsweredYes) { caster.DrawCards(2); return; } var casterResponse = DeckSearchUtil.SearchDeck(game, caster, CardUtil.GetCardFilters(CardType.BasicPokemon), GameField.BenchMaxSize - caster.BenchedPokemon.Count); var opponentResponse = DeckSearchUtil.SearchDeck(game, opponent, CardUtil.GetCardFilters(CardType.BasicPokemon), GameField.BenchMaxSize - opponent.BenchedPokemon.Count); foreach (var pokemon in casterResponse.OfType <PokemonCard>()) { caster.BenchedPokemon.Add(pokemon); } foreach (var pokemon in opponentResponse.OfType <PokemonCard>()) { opponent.BenchedPokemon.Add(pokemon); } caster.Deck.Shuffle(); opponent.Deck.Shuffle(); }
public void RemoveCard(SheepCard card) { Participant.Cards = CardUtil.CardListToString(Cards.Except(new List <SheepCard>() { card }).ToList()); }
public List <SheepCard> RetireOneFailSuitsWithOneAceOrTen() { if (_acesAndTens.Count != 1) { return(null); } var pointSuit = _acesAndTensPerSuit.Single(g => g.Key != Suit.TRUMP).Key; var twoCardSuit = CardsPerSuit .Where(cps => cps.Value == 2) .Where(cps => cps.Key == pointSuit) .Select(cps => cps.Key) .FirstOrDefault(); var buryCards = _cards.Where(c => CardUtil.GetSuit(c) == twoCardSuit).ToList(); if (buryCards.Count != 2) { return(null); } if (!buryCards.Contains(_acesAndTens.Single())) { return(null); } return(buryCards); }
public void AddCard(SheepCard card) { Participant.Cards = CardUtil.CardListToString(Cards.Union(new List <SheepCard>() { card }).ToList()); }
public void AddBuried(SheepCard card) { var buriedList = Buried.ToList(); buriedList.Add(card); BuriedCards = CardUtil.CardListToString(buriedList); }
public void Process(GameField game, Player caster, Player opponent, PokemonCard pokemonSource) { var target = TargetsOpponent ? opponent : caster; if (!CoinflipConditional.IsOk(game, caster)) { return; } if (amount == -1) { var allCards = new List <Card>(target.Hand); game.LastDiscard = allCards.Count; if (ShuffleIntoDeck) { target.Deck.ShuffleInCards(new List <Card>(target.Hand)); target.Hand.Clear(); target.TriggerDiscardEvent(allCards); } else { target.DiscardCards(allCards); } return; } IDeckFilter[] filters = CardUtil.GetCardFilters(CardType).ToArray(); int minAmount = AllowDiscardLess ? 0 : Amount; GameUtils.DiscardCardsFromHand(target, game, new DiscardCardSettings(minAmount, Amount, filters, ShuffleIntoDeck)); }
public override void SetData(VisitLevelVo vo) { base.SetData(vo); int index = 2;//奖励展示写死 string path = "Card/Image/MiddleCard/" + vo.Awards[index].ResourceId.ToString(); Debug.Log("VisitLevelCardItem " + path); RawImage propImage = transform.Find("CardMask/Card").GetComponent <RawImage>(); Texture tx = ResourceManager.Load <Texture>(path, ModuleConfig.MODULE_VISIT); if (tx == null) { tx = ResourceManager.Load <Texture>("Card/Image/MiddleCard/1420", ModuleConfig.MODULE_VISIT); } propImage.texture = tx; var card = GlobalData.CardModel.GetCardBase(vo.Awards[index].ResourceId); var credit = transform.GetImage("Credit"); credit.sprite = AssetManager.Instance.GetSpriteAtlas(CardUtil.GetNewCreditSpritePath(card.Credit)); //propImage.SetNativeSize(); if (vo.IsPass) { ExtraAni(); } }
private void ShowTalon(int cards, string talonCardCode = null) { transform.DOMove(showPosition, 1f); cardsInTalon = cards; CardsLeftText.text = cards.ToString(); TalonDisplay.enabled = true; TrumpCard.enabled = true; TrumpSuitIcon.enabled = false; if (cards <= 1) { TalonDisplay.enabled = false; } if (cards == 0) { TrumpCard.enabled = false; TrumpSuitIcon.enabled = true; } if (talonCardCode != null) { TrumpCard.sprite = CardUtil.GetSprite(talonCardCode); int suitNumber = CardUtil.Suit(talonCardCode); TrumpSuitIcon.sprite = _suits[suitNumber]; } }
private SheepCard GetLeadMove(ITrick trick) { if (trick.IHand.Picker == this || IamPartner(trick)) { return(Cards .Where(c => trick.IsLegalAddition(c, this)) .OrderBy(c => CardUtil.GetSuit(c) == Suit.TRUMP ? 1 : 2) .FirstOrDefault()); } else { if (trick.IHand.IGame.PartnerMethodEnum == PartnerMethod.CalledAce && trick.IHand.PartnerCardEnum.HasValue) { var partnerCardSuit = CardUtil.GetSuit(trick.IHand.PartnerCardEnum.Value); return(Cards .OrderBy(c => CardUtil.GetSuit(c) == partnerCardSuit ? 1 : 2) .FirstOrDefault()); } else { return(Cards .OrderBy(c => CardUtil.GetSuit(c) != Suit.TRUMP ? 1 : 2) .FirstOrDefault()); } } }
public void GivePlayerCardTest() { var players = new TablePlayer[] { new TablePlayer { PlayerId = 1, GameVariant = GamesVariants.Normal }, new TablePlayer { PlayerId = 2, GameVariant = GamesVariants.Normal }, new TablePlayer { PlayerId = 3, GameVariant = GamesVariants.Normal }, new TablePlayer { PlayerId = 4, GameVariant = GamesVariants.Normal } }; CardUtil.SetHandCards(players, false); bool[] playersHasDiamondClubCard = new bool[4]; for (var i = 0; i < players.Length; i++) { var hasPlayerDiamondClubCard = HasDiamondClubCard(players[i].GetHandCards()); Assert.True(players[i].HasClubsQueenOnHand == hasPlayerDiamondClubCard); } }
protected async override Task PostAsync(IActivity item, string state, CancellationToken token) { var searchResult = await this.searchService.Search(state); var replyActivity = ((Activity)item).CreateReply(); await CardUtil.ShowSearchResults(replyActivity, searchResult, $"Maaf, saya tidak mengerti '{state}'.\nKetik 'tolong' untuk info yang membantu Anda :)"); }
protected async override Task PostAsync(IActivity item, string state, CancellationToken token) { var searchResult = await this.searchService.Search(state); var replyActivity = ((Activity)item).CreateReply(); await CardUtil.ShowSearchResults(replyActivity, searchResult, $"申し訳ありません。「{state}」を理解できませんでした。\n'ヘルプ' または 'help' と入力すると、ヘルプメニューを表示します。"); }
public virtual async Task MessageRecievedAsync(IDialogContext context, IAwaitable <IMessageActivity> result) { var message = await result; try { PeopeAppService searchService = new PeopeAppService(); List <People> searchResult = await searchService.SearchByNamePeople(message.Text); if (searchResult.Count > 0) { CardUtil.ShowPeopleHeroCard(message, searchResult); await SelectedConfirm(context); } else { await context.PostAsync(string.Format(CultureInfo.CurrentCulture, "No hemos encontrado información. Por favor intente de nuevo")); await StartAsync(context); } } catch (Exception e) { Debug.WriteLine($"Error when searching for people: {e.Message}"); } // context.Done<object>(null); }
public void CardUtil_GetFace() { Assert.AreEqual(CardType.QUEEN, CardUtil.GetFace(SheepCard.QUEEN_CLUBS)); Assert.AreEqual(CardType.QUEEN, CardUtil.GetFace(SheepCard.QUEEN_DIAMONDS)); Assert.AreEqual(CardType.N7, CardUtil.GetFace(SheepCard.N7_CLUBS)); Assert.AreEqual(CardType.N7, CardUtil.GetFace(SheepCard.N7_DIAMONDS)); }
public virtual async Task MessageRecievedAsync(IDialogContext context, IAwaitable <IMessageActivity> result) { var message = await result; try { PeopeAppService searchService = new PeopeAppService(); List <People> searchResult = await searchService.SearchByNamePeople(message.Text); if (searchResult.Count > 0) { CardUtil.ShowPeopleHeroCard(message, searchResult); Thread.Sleep(4000); await SelectedConfirm(context); } else { await context.PostAsync(string.Format(CultureInfo.CurrentCulture, "¡LO SIENTO...! No encontré la información. Por favor, intente nuevamente")); await StartAsync(context); } } catch (Exception e) { Debug.WriteLine($"Error when searching for people: {e.Message}"); await context.PostAsync("¡LO SIENTO...! Por el momento no esta disponible este servicio. Por favor, intente más tarde."); context.Done <object>(null); } }
public void GetBestRankHandAndDeckTest() { IReadOnlyList <Card> hand = CardUtil.GetCards("2H 2S 3H 3S 3C"); IReadOnlyList <Card> deck = CardUtil.GetCards("2D 3D 6C 9C TH"); Assert.AreEqual(HandRank.FourOfAKind, HandChecker.GetBestRank(hand, deck)); }
public SheepCard PlayWeakestWin(IPlayer thisPlayer, ITrick trick) { var legalCards = thisPlayer.Cards.Where(c => trick.IsLegalAddition(c, thisPlayer)); var winnableCards = GameStateUtils.GetCardsThatCouldWin(trick, legalCards); return(winnableCards.OrderByDescending(c => CardUtil.GetRank(c)).First()); }
public TrickWinner Winner() { var moves = OrderedMoves; if (!moves.Any()) { return(null); } var firstSuite = CardUtil.GetSuit(moves.First().Value); var validCards = new List <KeyValuePair <IPlayer, SheepCard> >(); foreach (var keyValuePair in moves) { var suite = CardUtil.GetSuit(keyValuePair.Value); if (suite == firstSuite || suite == Suit.TRUMP) { validCards.Add(keyValuePair); } } return(new TrickWinner() { Player = validCards.OrderBy(kvp => CardUtil.GetRank(kvp.Value)).First().Key, Points = moves.Sum(c => CardUtil.GetPoints(c.Value)) }); }
public void SetData(DrawCardResultVo vo) { _data = vo; if (vo.IsNew) { transform.Find("NewImage").gameObject.Show(); } else { transform.Find("NewImage").gameObject.Hide(); } //todo bool isPuzzle; isPuzzle = vo.Resource == ResourcePB.Puzzle ? true : false; transform.Find("NameText").GetComponent <Text>().text = isPuzzle?$"{vo.Name}({I18NManager.Get("Card_PuzzleTap")})": vo.Name; transform.Find("PuzzleRawImage").gameObject.SetActive(isPuzzle); transform.Find("RawImage").gameObject.SetActive(isPuzzle); _cardQualityImage.sprite = AssetManager.Instance.GetSpriteAtlas(CardUtil.GetNewCreditSpritePath(vo.Credit)); // _cardQualityImage.SetNativeSize(); RawImage cardImage = transform.Find("Mask/CardImage").GetComponent <RawImage>(); Texture texture = ResourceManager.Load <Texture>(vo.CardPath, ModuleConfig.MODULE_DRAWCARD); if (texture == null) { texture = ResourceManager.Load <Texture>("Card/Image/SmallCard/1000", ModuleConfig.MODULE_DRAWCARD); } cardImage.texture = texture; }
public ActionResult SaveBoard([FromBody] BoardDto board) { _boardReository.SaveBoard(board); var hashId = CardUtil.GetHashId(User.Identity.Name, board.boardSeq); return(Ok(hashId)); }
public async Task StartAsync(IDialogContext context) { if (string.IsNullOrWhiteSpace(this.category)) { FacetResult facetResult = await this.searchService.FetchFacets(); if (facetResult.Facets.Category.Length != 0) { List <string> categories = new List <string>(); foreach (Category category in facetResult.Facets.Category) { categories.Add($"{category.Value} ({category.Count})"); } PromptDialog.Choice(context, this.AfterMenuSelection, categories, "Let\'s see if I can find something in the knowledge for you. Which category is your question about?"); } } else { SearchResult searchResult = await this.searchService.SearchByCategory(this.category); await CardUtil.ShowSearchResults(context, searchResult, $"Sorry, I could not find any results in the knowledge base for _'{this.category}'_"); context.Done <object>(null); } }
public async Task Weather(IDialogContext context, LuisResult result) { // OpenWeatherAPI openWeatherAPI = new OpenWeatherAPI(WebConfigurationManager.AppSettings["OpenWeatherAPI"]); //OpenWeatherAPI openWeatherAPI = new OpenWeatherAPI("bd5e378503939ddaee76f12ad7a97608"); string entity = ""; QureyController qc = new QureyController(); qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); if (result.Entities.Count > 0) { entity = result.Entities[0].Entity; } if (entity == "" || WeatherData.getWeatherData(entity) == null) { context.Call(new WeatherDialog(), this.ResumeAfterOptionDialog); } else { try { CardUtil.showWeatherHeroCard((IMessageActivity)context.Activity, WeatherData.getWeatherData(entity)); string res = "Weather for entity"; qc.PostAnswerOne(res, result.TopScoringIntent.Intent); } catch (Exception e) { Debug.WriteLine($"Error when generating data: {e}"); await context.PostAsync($"I couldn't find a weather forecast :( You can try again. "); } } }