From 4b75f069878f01cdab76359c3a076b715f9e449f Mon Sep 17 00:00:00 2001 From: Todor Balabanov Date: Sun, 24 Nov 2013 15:04:49 +0200 Subject: [PATCH] We avoid unnecessary boxing of the Integer values. Method implementation suggestion. Issue #12 --- .../controller/ActorStatsController.java | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ActorStatsController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ActorStatsController.java index b6c2f0d6c..38c51da4f 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ActorStatsController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ActorStatsController.java @@ -242,17 +242,26 @@ public final class ActorStatsController { } private static int getRandomConditionForRejuvenate(Player player) { - ArrayList potentialConditions = new ArrayList(); - for(int i = 0; i < player.conditions.size(); ++i) { - ActorCondition c = player.conditions.get(i); - if (!c.isTemporaryEffect()) continue; - if (c.conditionType.isPositive) continue; - if (c.conditionType.conditionCategory == ActorConditionType.ConditionCategory.spiritual) continue; - potentialConditions.add(i); - } - if (potentialConditions.isEmpty()) return -1; + int i = -1; + int count = 0; + int potentialConditions[] = new int[player.conditions.size()]; + for (ActorCondition c : player.conditions) { + i++; - return potentialConditions.get(Constants.rnd.nextInt(potentialConditions.size())); + if (!c.isTemporaryEffect()) + continue; + if (c.conditionType.isPositive) + continue; + if (c.conditionType.conditionCategory == ActorConditionType.ConditionCategory.spiritual) + continue; + + potentialConditions[count++] = i; + } + + if (count == 0) + return -1; + + return potentialConditions[Constants.rnd.nextInt(count)]; } public void applyConditionsToMonsters(PredefinedMap map, boolean isFullRound) {