Exemple #1
0
        private static async Task <HandleMinionResult> HandleMinion(YokaiMinion minion)
        {
            if (ConditionParser.HasAtLeast(minion.MedalItemId, YokaiWatchGrindData.GetMedalsToFarm(minion)))
            {
                return(HandleMinionResult.Finished);
            }

            if (minion.Ignored)
            {
                return(HandleMinionResult.Ignored);
            }

            if (SummonMinion.CanSummonMinion() && !await SummonMinion.IsMinionSummoned(minion.EnglishName))
            {
                var summonMinionResult = await SummonMinion.Main(minion.EnglishName);

                if (summonMinionResult != SummonMinionResult.Success)
                {
                    minion.Ignored = true;
                    return(HandleMinionResult.Failed);
                }
            }

            if (Core.Player.InCombat || !WorldManager.CanTeleport() || WorldManager.ZoneId == GetMinionMedalZone(minion))
            {
                return(HandleMinionResult.InProgress);
            }

            var medalsToFarm = YokaiWatchGrindData.GetMedalsToFarm(minion) - OracleInventoryManager.GetItemAmount(minion.MedalItemId);

            Logger.SendLog("We need " + medalsToFarm + " Legendary " + minion.EnglishName + " Medal(s). Teleporting to your chosen zone.");
            await ZoneChange.HandleZoneChange(GetMinionMedalZone(minion), true);

            return(HandleMinionResult.InProgress);
        }
Exemple #2
0
    public void SummonMinionRune(Rune rune, Action action)
    {
        SummonMinion sm     = rune as SummonMinion;
        Controller   player = EntityManager.Singelton.GetEntity(sm.controller_uid) as Controller;

        Card card = EntityManager.Singelton.GetEntity(sm.minion_uid) as Card;

        float yPos = 0;

        if (sm.controller_uid == homeGuid)
        {
            yPos = -2.0f;
        }
        else if (sm.controller_uid == awayGuid)
        {
            yPos = 4.0f;
        }

        GameObject go = Resources.Load <GameObject>(CARD_AVATAR_PREFAB_LOCATION);

        go = GameObject.Instantiate(go);


        go.transform.position = new Vector3(6, yPos, -3);

        go.name = card.GetName();

        string useGuid = Guid.NewGuid().ToString();

        if (card.GetCardType() == CardType.unknown)
        {
            go.GetComponent <CardAvatar>().SetupBlankCard(useGuid, player.GetGuid());
        }
        else
        {
            go.GetComponent <CardAvatar>().Setup(card, useGuid, player.GetGuid());
        }
        card.SetCardAvatar(go.GetComponent <CardAvatar>());
        go.GetComponent <CardAvatar>().SetControllerGuid(sm.controller_uid);

        EntityManager.Singelton.AddEntity(useGuid, go.GetComponent <CardAvatar>());
        AddCardToPlayArea(card.GetCardAvatar(), player.GetGuid(), sm.field_index);

        action();
        action = null;
    }