Added some varience to the location

This commit is contained in:
Cooldude2606
2019-03-22 23:34:02 +00:00
parent 40de1fd59b
commit 44880ffe87
2 changed files with 24 additions and 8 deletions

View File

@@ -3,5 +3,6 @@ return {
show_player_messages=true, -- weather a message in chat will make a popup above them
show_player_mentions=true, -- weather a mentioned player will have a popup when mentioned in chat
show_player_damage=true, -- weather to show damage done by players
show_player_health=true -- weather to show player health when attacked
show_player_health=true, -- weather to show player health when attacked
damage_location_variance=0.8 -- how close to the eade of an entity the popups will appear
}

View File

@@ -7,19 +7,34 @@ local config = require 'config.popup_messages'
Event.add(defines.events.on_entity_damaged, function(event)
local entity = event.entity
local cause = event.cause
local damage = event.original_damage_amount
local health = entity.health
local damage = math.floor(event.original_damage_amount)
local health = math.floor(entity.health)
local health_percentage = entity.get_health_ratio()
local text_colour = {r=1-health_percentage,g=health_percentage,b=0}
-- Checks if its a player and show player health is enabled
-- Gets the location of the text
local size = entity.get_radius()
if size < 1 then size = 1 end
local r = (math.random()-0.5)*size*config.damage_location_variance
local p = entity.position
local position = {x=p.x+r,y=p.y-size}
-- Sets the message
local message
if entity.name == 'player' and config.show_player_health then
Game.print_player_floating_text(entity.index,{'damage-popup.player-health',health},text_colour)
message = {'damage-popup.player-health',health}
elseif entity.name ~= 'player' and cause and cause.name == 'player' and config.show_player_damage then
message = {'damage-popup.player-damage',damage}
end
-- Checks if the source was a player and the entity was not a player
if entity.name ~= 'player' and cause and cause.name == 'player' and config.show_player_damage then
Game.print_floating_text(entity.surface,entity.position,{'damage-popup.player-damage',damage},text_colour)
-- Outputs the message as floating text
if message then
Game.print_floating_text(
entity.surface,
position,
message,
text_colour
)
end
end)