-- 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.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)