function getAlphaRank(points = player.p.points) {
    if (Decimal.eq(points, 0)) return new Decimal(0)
    return getAlphaLevel(points).div(20).floor()
}
function getAlphaRankCost(points = player.p.points) {
    return getAlphaRank(points).add(1).mul(20)
}
function getAlphaRankEffect(points = player.p.points) {
    return getAlphaRank(points).div(25)
}
function getBetaRank(points = player.p.points) {
    if (Decimal.eq(points, 0)) return new Decimal(0)
    return getBetaLevel(points).div(15).floor()
}
function getBetaRankCost(points = player.p.points) {
    return getBetaRank(points).add(1).mul(15)
}
function getBetaRankEffect(points = player.p.points) {
    return getBetaRank(points).div(100).mul(3)
}
function getGammaRank(points = player.p.points) {
    if (Decimal.eq(points, 0)) return new Decimal(0)
    return getGammaLevel(points).div(12).floor()
}
function getGammaRankCost(points = player.p.points) {
    return getGammaRank(points).add(1).mul(12)
}
function getGammaRankEffect(points = player.p.points) {
    return getGammaRank(points).div(15)
}
function getDeltaRank(points = player.p.points) {
    if (Decimal.eq(points, 0)) return new Decimal(0)
    return getDeltaLevel(points).div(10).floor()
}
function getDeltaRankCost(points = player.p.points) {
    return getDeltaRank(points).add(1).mul(10)
}
function getDeltaRankEffect(points = player.p.points) {
    return getDeltaRank(points).div(20)
}
function getEpsilonRank(points = player.p.points) {
    if (Decimal.eq(points, 0)) return new Decimal(0)
    return getEpsilonLevel(points).div(8).floor()
}
function getEpsilonRankCost(points = player.p.points) {
    return getEpsilonRank(points).add(1).mul(8)
}
function getEpsilonRankEffect(points = player.p.points) {
    return getEpsilonRank(points).div(10)
}
function getZetaRank(points = player.p.points) {
    if (Decimal.eq(points, 0)) return new Decimal(0)
    return getZetaLevel(points).div(7).floor()
}
function getZetaRankCost(points = player.p.points) {
    return getZetaRank(points).add(1).mul(7)
}
function getZetaRankEffect(points = player.p.points) {
    return getZetaRank(points).div(5)
}

function getTotalRank() {
    return getAlphaRank().add(getBetaRank()).add(getGammaRank()).add(getDeltaRank()).add(getEpsilonRank()).add(getZetaRank())
}