mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2024-12-30 23:17:53 +02:00
79 lines
3.5 KiB
Lua
79 lines
3.5 KiB
Lua
-- prints death messages to all forces with custom texts -- by mewmew
|
|
|
|
local Event = require 'utils.event'
|
|
local message_color = {r = 0.9, g = 0.9, b = 0.9}
|
|
|
|
local messages = {
|
|
['small-biter'] = {' was nibbled to death.', ' should not have played with the biters.', ' is biter food.'},
|
|
['medium-biter'] = {' lost their leg to a hungry biter.', ' is biter food.', ' was a tasty biter treat.'},
|
|
['big-biter'] = {' had their head chomped off.', ' is biter food.', ' was a tasty biter treat.'},
|
|
['behemoth-biter'] = {' was devoured by a behemoth biter.', ' was crushed by a behemoth biter.', ' is biter food.'},
|
|
['small-spitter'] = {' melted away by acid spit!', " couldn't dodge the spit in time."},
|
|
['medium-spitter'] = {' melted away by acid spit!', " couldn't dodge the spit in time."},
|
|
['big-spitter'] = {' melted away by acid spit!', " couldn't dodge the spit in time.", ' got blasted away by a spitter.'},
|
|
['behemoth-spitter'] = {' melted away by acid spit!', " couldn't dodge the spit in time.", ' got blasted away by a spitter.'},
|
|
['small-worm-turret'] = {' melted away by acid spit!', " couldn't dodge the spit in time."},
|
|
['medium-worm-turret'] = {' melted away by acid spit!', " couldn't dodge the spit in time.", ' got blasted away by a medium worm turret.'},
|
|
['big-worm-turret'] = {' melted away by acid spit!', " couldn't dodge the spit in time.", ' got blasted away by a big worm turret.'},
|
|
['gun-turret'] = {' was mowed down by a barrage from a gun turret.'},
|
|
['laser-turret'] = {' was fatally enlightened by a laser beam.'},
|
|
['cargo-wagon'] = {' was flattened.', ' was crushed.'},
|
|
['locomotive'] = {' was flattened.', ' was crushed.'}
|
|
}
|
|
|
|
local function on_player_died(event)
|
|
local player = game.players[event.player_index]
|
|
|
|
local tag = ''
|
|
if player.tag then
|
|
if player.tag ~= '' then
|
|
tag = ' ' .. player.tag
|
|
end
|
|
end
|
|
|
|
if event.cause then
|
|
local cause = event.cause
|
|
if not cause.name then
|
|
game.print(player.name .. tag .. ' was killed.', message_color)
|
|
return
|
|
end
|
|
if messages[cause.name] then
|
|
game.print(player.name .. messages[cause.name][math.random(1, #messages[cause.name])], message_color)
|
|
return
|
|
end
|
|
|
|
if cause.name == 'character' then
|
|
if not player.name then
|
|
return
|
|
end
|
|
if not cause.player.name then
|
|
return
|
|
end
|
|
if cause.player.tag ~= '' then
|
|
game.print(player.name .. tag .. ' was killed by ' .. cause.player.name .. ' ' .. cause.player.tag .. '.', message_color)
|
|
else
|
|
game.print(player.name .. tag .. ' was killed by ' .. cause.player.name .. '.', message_color)
|
|
end
|
|
return
|
|
end
|
|
|
|
if cause.type == 'car' then
|
|
local driver = cause.get_driver()
|
|
if driver and driver.player then
|
|
game.print(player.name .. tag .. ' was killed by ' .. driver.player.name .. ' ' .. player.tag .. '.', message_color)
|
|
return
|
|
end
|
|
end
|
|
|
|
game.print(player.name .. tag .. ' was killed by ' .. cause.name .. '.', message_color)
|
|
return
|
|
end
|
|
for _, p in pairs(game.connected_players) do
|
|
if player.force.name ~= p.force.name then
|
|
p.print(player.name .. tag .. ' was killed.', message_color)
|
|
end
|
|
end
|
|
end
|
|
|
|
Event.add(defines.events.on_player_died, on_player_died)
|