mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-01-06 00:23:49 +02:00
b86879df91
Edit: Fixed to it doesn't trigger when the player dies.
30 lines
1.4 KiB
Lua
30 lines
1.4 KiB
Lua
local event = require 'utils.event'
|
|
local game = require 'utils.game'
|
|
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)
|