1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-03-17 20:58:13 +02:00

added vehicles and robots as kill causes

This commit is contained in:
MewMew 2019-10-25 09:08:39 +02:00
parent 723cb7a87e
commit 8687ef48c5
2 changed files with 69 additions and 19 deletions

View File

@ -288,6 +288,12 @@ local kill_causes = {
if not event.cause.player then return end
return {event.cause.player}
end,
["combat-robot"] =
function(event)
if not event.cause.last_user then return end
if not game.players[event.cause.last_user.index] then return end
return {game.players[event.cause.last_user.index]}
end,
["car"] =
function(event)
local players = {}

View File

@ -74,7 +74,7 @@ end
local function update_player_stats(player)
local strength = global.rpg[player.index].strength - 10
global.player_modifiers[player.index].character_inventory_slots_bonus["rpg"] = math.round(strength * 0.2, 3)
global.player_modifiers[player.index].character_mining_speed_modifier["rpg"] = math.round(strength * 0.006, 3)
global.player_modifiers[player.index].character_mining_speed_modifier["rpg"] = math.round(strength * 0.008, 3)
local magic = global.rpg[player.index].magic - 10
local v = magic * 0.15
@ -496,37 +496,81 @@ local function on_gui_click(event)
end
local xp_yield = {
["behemoth-biter"] = 12,
["behemoth-spitter"] = 12,
["behemoth-worm-turret"] = 40,
["big-biter"] = 6,
["big-spitter"] = 6,
["big-worm-turret"] = 32,
["biter-spawner"] = 32,
["behemoth-biter"] = 16,
["behemoth-spitter"] = 16,
["behemoth-worm-turret"] = 64,
["big-biter"] = 8,
["big-spitter"] = 8,
["big-worm-turret"] = 48,
["biter-spawner"] = 64,
["character"] = 16,
["gun-turret"] = 8,
["laser-turret"] = 16,
["medium-biter"] = 3,
["medium-spitter"] = 3,
["medium-worm-turret"] = 24,
["medium-biter"] = 4,
["medium-spitter"] = 4,
["medium-worm-turret"] = 32,
["small-biter"] = 1,
["small-spitter"] = 1,
["small-worm-turret"] = 16,
["spitter-spawner"] = 32,
["spitter-spawner"] = 64,
}
local function train_type_cause(cause)
local players = {}
if cause.train.passengers then
for _, player in pairs(cause.train.passengers) do
players[#players + 1] = player
end
end
return players
end
local get_cause_player = {
["character"] = function(cause)
if not cause.player then return end
return {cause.player}
end,
["combat-robot"] = function(cause)
if not cause.last_user then return end
if not game.players[cause.last_user.index] then return end
return {game.players[cause.last_user.index]}
end,
["car"] = function(cause)
local players = {}
local driver = cause.get_driver()
if driver then
if driver.player then players[#players + 1] = driver.player end
end
local passenger = cause.get_passenger()
if passenger then
if passenger.player then players[#players + 1] = passenger.player end
end
return players
end,
["locomotive"] = train_type_cause,
["cargo-wagon"] = train_type_cause,
["artillery-wagon"] = train_type_cause,
["fluid-wagon"] = train_type_cause,
}
local function on_entity_died(event)
if not event.cause then return end
if not event.cause.valid then return end
if event.cause.name ~= "character" then return end
if not event.cause.player then return end
if not event.entity.valid then return end
if event.cause.force.index == event.entity.force.index then return end
if xp_yield[event.entity.name] then
gain_xp(event.cause.player, xp_yield[event.entity.name])
else
gain_xp(event.cause.player, 0.5)
end
if not get_cause_player[event.cause.type] then return end
local players = get_cause_player[event.cause.type](event.cause)
if not players then return end
if not players[1] then return end
for _, player in pairs(players) do
if xp_yield[event.entity.name] then
gain_xp(player, xp_yield[event.entity.name])
else
gain_xp(player, 0.5)
end
end
end
--Melee damage modifier