package de.banananetwork.dsa.currencies; public enum CoinType { // TODO Transfer from constant values to variable ones // TODO Add some other currencies (https://de.wiki-aventurica.de/wiki/Aventurische_W%C3%A4hrungen) MITTELREICH_KREUZER(1), // Base Value MITTELREICH_NICKEL(2), MITTELREICH_HELLER(10), MITTELREICH_SILBERTALER(MITTELREICH_HELLER, 10), MITTELREICH_DUKATEN(MITTELREICH_SILBERTALER, 10); private final int multiplier; CoinType(int multiplier) { this.multiplier = multiplier; } CoinType(CoinType reference, int multiplier) { this.multiplier = reference.multiplier * multiplier; } public int transferTo(int baseValue) { return baseValue / multiplier; } public double transferToExact(int baseValue) { return (double) baseValue / multiplier; } public int transferFrom(int coinValue) { return coinValue * multiplier; } }