1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-01-06 00:23:49 +02:00
ComfyFactorio/modules/show_health.lua
2021-03-24 20:14:55 +01:00

55 lines
2.1 KiB
Lua

local Event = require 'utils.event'
Event.add(
defines.events.on_entity_damaged,
function(event)
local entity = event.entity
if not entity.valid then
return
end
if event.entity.name ~= 'character' then
return
end
local player = game.get_player(event.entity.player)
if not player.character then
return
end
if player.character then
if player.character.health == nil then
return
end
local index = player.index
local health = math.ceil(player.character.health)
if global.player_health == nil then
global.player_health = {}
end
if global.player_health[index] == nil then
global.player_health[index] = health
end
if global.player_health[index] ~= health then
if health < global.player_health[index] then
local text = health .. ' (-' .. math.floor(event.final_damage_amount) .. ')'
if health > 200 then
player.surface.create_entity {
name = 'flying-text',
color = {b = 0.2, r = 0.1, g = 1, a = 0.8},
text = text,
position = {player.position.x, player.position.y - 2}
}
elseif health > 100 then
player.surface.create_entity {name = 'flying-text', color = {r = 1, g = 1, b = 0}, text = text, position = {player.position.x, player.position.y - 2}}
else
player.surface.create_entity {
name = 'flying-text',
color = {b = 0.1, r = 1, g = 0, a = 0.8},
text = text,
position = {player.position.x, player.position.y - 2}
}
end
end
global.player_health[index] = health
end
end
end
)