mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-30 04:21:41 +09:00
Added some varience to the location
This commit is contained in:
@@ -3,5 +3,6 @@ return {
|
|||||||
show_player_messages=true, -- weather a message in chat will make a popup above them
|
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_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_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
|
||||||
}
|
}
|
||||||
@@ -7,19 +7,34 @@ local config = require 'config.popup_messages'
|
|||||||
Event.add(defines.events.on_entity_damaged, function(event)
|
Event.add(defines.events.on_entity_damaged, function(event)
|
||||||
local entity = event.entity
|
local entity = event.entity
|
||||||
local cause = event.cause
|
local cause = event.cause
|
||||||
local damage = event.original_damage_amount
|
local damage = math.floor(event.original_damage_amount)
|
||||||
local health = entity.health
|
local health = math.floor(entity.health)
|
||||||
local health_percentage = entity.get_health_ratio()
|
local health_percentage = entity.get_health_ratio()
|
||||||
local text_colour = {r=1-health_percentage,g=health_percentage,b=0}
|
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
|
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
|
end
|
||||||
|
|
||||||
-- Checks if the source was a player and the entity was not a player
|
-- Outputs the message as floating text
|
||||||
if entity.name ~= 'player' and cause and cause.name == 'player' and config.show_player_damage then
|
if message then
|
||||||
Game.print_floating_text(entity.surface,entity.position,{'damage-popup.player-damage',damage},text_colour)
|
Game.print_floating_text(
|
||||||
|
entity.surface,
|
||||||
|
position,
|
||||||
|
message,
|
||||||
|
text_colour
|
||||||
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
end)
|
end)
|
||||||
Reference in New Issue
Block a user