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); }
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; }