bool BottleFiller::fill(BottleInstance* bottle){ if(fillTime == 0){ fillTime = 50; return false; } if(fillTime<=45 && fillTime>5){ double actualLiquidHeight = bottle->getLiquidHeight(); Bottle* paintBottle = Bottle::Instance(); double maxLiquidHeight = paintBottle->getFilledHeight(); double fillRatio = maxLiquidHeight/40; double fill = min(fillRatio,maxLiquidHeight-actualLiquidHeight); bottle->setLiquidHeight(actualLiquidHeight+fill); } fillTime --; if(fillTime == 0) { bottle->setFillFinished(true); return true; } else { return false; } }