Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def density
- if (@density.is_a?Density)
- return @density
- end
- rerolls=(1..@size).to_a.select { |r| @reroll_modifiers.any? { |m| mod.reroll_with? r } }
- if(@compounding)
- temp=CompoundDieDensity.new(@size,rerolls)
- @density=ModifiedDieDensity.new(temp,@count,@fun_modifiers)
- elsif(@penetrating)
- temp=PenetratingDieDensity.new(@size,rerolls)
- @density=ModifiedDieDensity.new(temp,@count,@fun_modifiers)
- # This is a rather special case....
- elsif(@exploding)
- nomaxrolls=rerolls
- if (not rerolls.include? @size)
- nomaxrolls << @size
- end
- temp=DieDensity.new(@size,nomaxrolls)
- count=ExplodingDieNumberDensity.new(@size,rerolls,@count)
- if (rerolls.include? @size)
- @density=ModifiedDieDensity.new(temp,@count,@fun_modifiers)
- else
- @density=ExplodingDieDensity.new(temp,@size,@count,@fun_modifiers)
- end
- else
- temp=DieDensity.new(@size,rerolls)
- @density=ModifiedDieDensity.new(temp,@count,@fun_modifiers)
- end
- return @density
- end
Advertisement
Add Comment
Please, Sign In to add comment