Example #1
0
        private static void DoRecruit(NPC npc)
        {
            Monitor.Log($"Doing recruit");

            if (!ModEntry.inCall)
            {
                Monitor.Log($"Not in call, exiting");
                return;
            }

            if (ModEntry.npcAdventureModApi.RecruitCompanion(Game1.player, npc))
            {
                if (ModEntry.npcAdventureModApi.IsRecruited(npc))
                {
                    Vector2 targetPos = PhoneUtils.GetOpenSurroundingPosition();
                    Monitor.Log($"Recruiting {npc.Name} to {targetPos} (player: {Game1.player.getTileLocation()})");
                    Game1.warpCharacter(npc, Game1.player.currentLocation, targetPos);
                    npc.Sprite.StopAnimation();
                    EndCall();
                }
                else
                {
                    ShowMainCallDialogue(npc);
                }
            }
            else
            {
                Monitor.Log($"Error trying to recruit {npc.Name}", LogLevel.Error);
                ShowMainCallDialogue(npc);
            }
        }