summaryrefslogtreecommitdiff
path: root/app/lib/activity_processor.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/lib/activity_processor.rb')
-rw-r--r--app/lib/activity_processor.rb12
1 files changed, 9 insertions, 3 deletions
diff --git a/app/lib/activity_processor.rb b/app/lib/activity_processor.rb
index 5d80b15..72aa85d 100644
--- a/app/lib/activity_processor.rb
+++ b/app/lib/activity_processor.rb
@@ -289,9 +289,15 @@ class ActivityProcessor
end
end
- # Apply power to random damages
- actor.power.times do
- dealt_damage[dealt_damage.keys.sample] += 1
+ # Apply power to random damages, not allowing power to more than double the damage output
+ base_damage = dealt_damage.clone
+ remaining_power_to_distribute = actor.power
+ while remaining_power_to_distribute > 0 && dealt_damage.keys.select { |type| dealt_damage[type] < (base_damage[type] * 2) }.any? do
+ damage_type = dealt_damage.keys.sample
+ if dealt_damage[damage_type] < (base_damage[damage_type] * 2)
+ dealt_damage[dealt_damage.keys.sample] += 1
+ remaining_power_to_distribute -= 1
+ end
end
resolved_damage = {}