// 0 - 1.1.2
        private void AIUnknown(NPC npc, bool flag, Func<Int32, Int32, ITile> TileRefs)
        {
            for (int i = 0; i < Main.MAX_PLAYERS; i++)
            {
                if (Main.players[i].Active && Main.players[i].talkNPC == npc.whoAmI)
                {
                    if (npc.type == NPCType.N105_BOUND_GOBLIN)
                    {
                        npc.Transform((int)NPCType.N107_GOBLIN_TINKERER);
                        return;
                    }
                    if (npc.type == NPCType.N106_BOUND_WIZARD)
                    {
                        npc.Transform((int)NPCType.N108_WIZARD);
                        return;
                    }
                    if (npc.type == NPCType.N123_BOUND_MECHANIC)
                    {
                        npc.Transform((int)NPCType.N124_MECHANIC);
                        return;
                    }
                }
            }

            npc.Velocity.X = npc.Velocity.X * 0.93f;

            if ((double)npc.Velocity.X > -0.1 && (double)npc.Velocity.X < 0.1)
                npc.Velocity.X = 0f;

            npc.TargetClosest(true);
            npc.spriteDirection = npc.direction;
            return;
        }