Changeset 8f1cbbd3a4dfc39ae2615a19ca9132fd7c06bc60
- Timestamp:
- 03/24/07 15:04:00
(2 years ago)
- Author:
- Christopher Jung <bktheg@web.de>
- git-committer:
- Christopher Jung <bktheg@web.de> 1174745040 +0100
- git-parent:
[a8c7a5744c9378c3a594174320715e82927776f9]
- git-author:
- Christopher Jung <bktheg@web.de> 1174745040 +0100
- Message:
Zwei Berechungsprobleme in der Werft gefixt
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r31f53b6 |
r8f1cbbd |
|
| 271 | 271 | |
|---|
| 272 | 272 | if( usedcapacity.compareTo(new BigDecimal(wf.getInt("count")-1)) > 0 ) { |
|---|
| | 273 | BigDecimal targetCapacity = new BigDecimal(wf.getInt("count")-1); |
|---|
| | 274 | |
|---|
| 273 | 275 | for( int i=0; i < plist.length; i++ ) { |
|---|
| 274 | 276 | String[] tmp = StringUtils.split(plist[i], '='); |
|---|
| … | … | |
| 276 | 278 | int ammoCount = Integer.parseInt(tmp[1]); |
|---|
| 277 | 279 | |
|---|
| 278 | | if( usedcapacity.subtract(new BigDecimal(ammoCount).multiply(new BigDecimal(ammolist.get(aid).getString("dauer")))).compareTo(new BigDecimal(wf.getInt("count")-1)) < 0 ) { |
|---|
| 279 | | plist[i] = aid+"="+ |
|---|
| 280 | | (usedcapacity.subtract(new BigDecimal(wf.getInt("count")-1)).divide(new BigDecimal(ammolist.get(aid).getString("dauer")))); |
|---|
| | 280 | BigDecimal capUsedByAmmo = new BigDecimal(ammoCount).multiply(new BigDecimal(ammolist.get(aid).getString("dauer"))); |
|---|
| | 281 | |
|---|
| | 282 | if( usedcapacity.subtract(capUsedByAmmo).compareTo(targetCapacity) < 0 ) { |
|---|
| | 283 | BigDecimal capLeftForAmmo = capUsedByAmmo.subtract(usedcapacity.subtract(targetCapacity)); |
|---|
| | 284 | plist[i] = aid+"=" + capLeftForAmmo.divide(new BigDecimal(ammolist.get(aid).getString("dauer")), BigDecimal.ROUND_HALF_EVEN).intValue(); |
|---|
| 281 | 285 | break; |
|---|
| 282 | 286 | } |
|---|
| 283 | 287 | plist[i] = aid+"=0"; |
|---|
| 284 | | usedcapacity = usedcapacity.subtract(new BigDecimal(ammoCount).multiply(new BigDecimal(ammolist.get(aid).getString("dauer")))); |
|---|
| | 288 | usedcapacity = usedcapacity.subtract(capUsedByAmmo); |
|---|
| 285 | 289 | |
|---|
| 286 | | if( usedcapacity.compareTo(new BigDecimal(wf.getInt("count")-1)) <= 0 ) break; |
|---|
| | 290 | if( usedcapacity.compareTo(targetCapacity) <= 0 ) break; |
|---|
| 287 | 291 | } |
|---|
| 288 | 292 | wf.put("produces", Common.implode(";",plist)); |
|---|
| … | … | |
| 485 | 489 | } |
|---|
| 486 | 490 | if( usedcapacity.add(new BigDecimal(count*ammo.getDouble("dauer"))).doubleValue() > wf.getInt("count") ) { |
|---|
| 487 | | count = usedcapacity.multiply(new BigDecimal(-1)).add(new BigDecimal(wf.getInt("count"))).divide(new BigDecimal(ammo.getString("dauer"))).intValue(); |
|---|
| | 491 | BigDecimal availableCap = usedcapacity.multiply(new BigDecimal(-1)).add(new BigDecimal(wf.getInt("count"))); |
|---|
| | 492 | count = availableCap.divide(new BigDecimal(ammo.getString("dauer")), BigDecimal.ROUND_HALF_EVEN).intValue(); |
|---|
| 488 | 493 | } |
|---|
| 489 | 494 | |
|---|