Okay so I was trying to simplify my code:
Old Code: def draw_enemy_hp(enemy, x, y, hidden)
colour = STAT_BAR_COLOURS[:hp_bar]
draw_enemy_bar(x, y, 120, 10, enemy.maxhp, ENEMY_STATS[:maxhp], colour)
contents.font.color = system_color
contents.draw_text(x, y-22, 24, 32, "#{$data_system.words.hp}:")
contents.font.color = normal_color
rect = Rect.new(x + 24, y-22, 72, 32)
unless hidden
contents.draw_text(rect, enemy.maxhp.group)
else
contents.draw_text(rect, '???')
end
end
def draw_enemy_sp(enemy, x, y, hidden)
colour = STAT_BAR_COLOURS[:hp_bar]
draw_enemy_bar(x, y, 120, 10, enemy.maxsp, ENEMY_STATS[:maxsp], colour)
contents.font.color = system_color
contents.draw_text(x, y-22, 24, 32, "#{$data_system.words.sp}:")
contents.font.color = normal_color
rect = Rect.new(x + 24, y-22, 72, 32)
unless hidden
contents.draw_text(rect, enemy.maxhp.group)
else
contents.draw_text(rect, '???')
end
end
New Code:
DEF = [
['hp', :hp_bar, 'enemy.maxhp', :maxhp],
['sp', :sp_bar, 'enemy.maxsp', :maxsp],
]
(DEF.size).times do |i|
eval "def draw_enemy_#{DEF[i][0]}(enemy, x, y, hidden)
value = #{DEF[i][2]}
max = ENEMY_STATS[#{DEF[i][3]}]
draw_enemy_bar(x, y, 120, 10, value, max, STAT_BAR_COLOURS[#{DEF[i][1]}])
contents.font.color = system_color
contents.draw_text(x, y-22, 24, 32, $data_system.words.#{DEF[i][0]})
contents.font.color = normal_color
rect = Rect.new(x + 24, y-22, 72, 32)
unless hidden
contents.draw_text(rect, #{DEF[i][2]}.group)
else
contents.draw_text(rect, '???')
end
end"
end
And for some reason I kept getting an error, well to my eyes I don't really see how I'm getting this error. So if anyone else can help spot it that would be great. If you need anymore info I'll post it.