public final MapleFamilyCharacter addFamilyMemberInfo(final MapleCharacter mc, final int seniorid, final int junior1, final int junior2) {
        final MapleFamilyCharacter ret = new MapleFamilyCharacter(mc, id, seniorid, junior1, junior2);
        members.put(mc.getId(), ret);
        ret.resetPedigree(this);
        bDirty = true;
        List<Integer> toRemove = new ArrayList<>();
        for (int i = 0; i < ret.getPedigree().size(); i++) {
            if (ret.getPedigree().get(i) == ret.getId()) {
                continue;
            }
            MapleFamilyCharacter mfc = getMFC(ret.getPedigree().get(i));
            if (mfc == null) {
                toRemove.add(i);
            } else {
                mfc.resetPedigree(this);
            }
        }
        for (int i : toRemove) {
            ret.getPedigree().remove(i);
        }
        return ret;
    }