/* * Copyright (C) 2012 Joe AmRhein * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.arconus.dicecommander.model.entities.dice; import com.arconus.dicecommander.interactors.diceformatters.FormatDiceFormula; public class DiceFormula { private int dieModifier; private SingleDie singleDie; private int formulaModifier; public DiceFormula(int dieModifier, SingleDie singleDie, int formulaModifier) { this.dieModifier = dieModifier; this.singleDie = singleDie; this.formulaModifier = formulaModifier; } public String getDiceFormulaString() { return FormatDiceFormula.getDiceFormulaString(dieModifier, singleDie, formulaModifier); } public DiceFormulaResult roll() { DiceFormulaResult ret = new DiceFormulaResult(formulaModifier); for (int i = 0; i < dieModifier; i++) { ret.addSingleDieResult(singleDie.roll()); } return ret; } public DiceFormulaResult rollCritical() { DiceFormulaResult ret = new DiceFormulaResult(formulaModifier); for (int i = 0; i < dieModifier; i++) { ret.addSingleDieResult(singleDie.rollCritical()); } return ret; } public int getFormulaModifier() { return formulaModifier; } public void setFormulaModifier(int formulaModifier) { this.formulaModifier = formulaModifier; } public int getDieModifier() { return dieModifier; } public void setDieModifier(int dieModifier) { this.dieModifier = dieModifier; } public int getDieSize() { return singleDie.getNumberOfSides(); } public void setSingleDie(SingleDie singleDie) { this.singleDie = singleDie; } }