예제 #1
0
    public IEnumerator LuckyStart(TileLucky lucky, PlayerController player)
    {
        if (!player.botController)
        {
            this.gameObject.SetActive(true);
        }

        clicked = false;

        bool isLucky = lucky.luckType == EnumDt.luckType.luck;

        icon.sprite = isLucky ? iconLuck : iconReverse;

        if (isLucky)
        {
            audioSource.PlayOneShot(luckyAudio);
        }
        else
        {
            audioSource.PlayOneShot(reverseAudio);
        }

        luckyDescription.text = lucky.text;

        if (player.botController)
        {
            yield return(player.botController.ExecuteAction(() => { clicked = true; }));
        }

        yield return(new WaitUntil(() => clicked == true));
    }
    public override IEnumerator OnPlayerStop(PlayerController player)
    {
        TileLucky lucky = GetLuckyCard();

        yield return(luckyMenuController.LuckyStart(lucky, player));

        yield return(luckyEffect.StartLucky(player, lucky));
    }
    public IEnumerator StartLucky(PlayerController player, TileLucky tile)
    {
        tileLucky        = tile;
        playerController = player;

        switch (tile.method)
        {
        case "PayToBank":
        {
            Debug.Log("Sorte ou revez PayToBank " + tile.text);
            PayToBank(player, tile.value, tile.percentage);
            break;
        }

        case "GoTo":
        {
            Debug.Log("Sorte ou revez GOTO " + tile.tileIndex);
            TileController tileController = board.tileControllers.Find(n => n.index.Equals(tile.tileIndex));
            GoTo(player, tileController, tile.tileName);
            break;
        }

        case "FreeBoat":
        {
            Debug.Log("Sorte ou revez Barquinho " + tile.text);
            FreeBoat(player);
            break;
        }

        case "ChooseProperty":
        {
            Debug.Log("Sorte ou revez Propertie " + tile.text);
            ChooseProperty(player);
            break;
        }

        case "StayAway":
        {
            player.stayAway = true;
            clicked         = true;
            break;
        }

        default:
        {
            Debug.LogError("Metodo nao encontrado");
            clicked = true;
            break;
        }
        }

        string msg = tile.feedbackText.Replace("[Jogador]", $"{player.name}");

        player.LogMessagePlayer(msg, false);

        yield return(new WaitUntil(() => clicked == true));
    }