public void Enter(Minion owner)
    {
        this.Owner    = owner;
        minionManager = MinionManager.Instance;

        if (chosenPartner == null)
        {
            validPartners = minionManager.FindAvailabePartners(Owner);

            //There aren't any valid partners add a cooldown to reproduction so we dont stay in an infinite loop to look for partners
            if (validPartners.Count == 0)
            {
                Owner.stats.ReproduceTimer = 2;
                Owner.CheckForNewJob();
            }
            else
            {
                //Pick a partner and force that partner to reproduce
                chosenPartner = validPartners[Random.Range(0, validPartners.Count)];
                chosenPartner.stateMachine.ChangeState(new ReproductionState(Owner));
            }
        }
    }