1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-09-16 09:06:21 +02:00

rpg addition

This commit is contained in:
MewMew
2019-10-12 22:54:00 +02:00
parent 320d2de32e
commit 33a395498b
3 changed files with 11 additions and 56 deletions

View File

@@ -14,6 +14,7 @@ require "modules.dangerous_goods"
require "modules.custom_death_messages" require "modules.custom_death_messages"
require "modules.biter_evasion_hp_increaser" require "modules.biter_evasion_hp_increaser"
require "modules.rocks_yield_ore" require "modules.rocks_yield_ore"
require "modules.rpg"
local event = require 'utils.event' local event = require 'utils.event'
local boss_biter = require "maps.fish_defender.boss_biters" local boss_biter = require "maps.fish_defender.boss_biters"

View File

@@ -34,8 +34,7 @@ end
local function accelerate() local function accelerate()
if not global.locomotive then return end if not global.locomotive then return end
if not global.locomotive.valid then return end if not global.locomotive.valid then return end
local driver = global.locomotive.get_driver() if global.locomotive.get_driver() then return end
if driver then return end
global.locomotive_driver = global.locomotive.surface.create_entity({name = "character", position = global.locomotive.position, force = "player"}) global.locomotive_driver = global.locomotive.surface.create_entity({name = "character", position = global.locomotive.position, force = "player"})
global.locomotive_driver.driving = true global.locomotive_driver.driving = true
global.locomotive_driver.riding_state = {acceleration = defines.riding.acceleration.accelerating, direction = defines.riding.direction.straight} global.locomotive_driver.riding_state = {acceleration = defines.riding.acceleration.accelerating, direction = defines.riding.direction.straight}
@@ -45,73 +44,29 @@ local function remove_acceleration()
if not global.locomotive then return end if not global.locomotive then return end
if not global.locomotive.valid then return end if not global.locomotive.valid then return end
if global.locomotive_driver then global.locomotive_driver.destroy() end if global.locomotive_driver then global.locomotive_driver.destroy() end
end global.locomotive_driver = nil
--[[
local function constant_speed()
if not global.locomotive_cargo then return end
if not global.locomotive_cargo.valid then return end
if not global.locomotive_cargo.train.locomotives then return end
if not global.locomotive_cargo.train.locomotives.front_movers then return end
if not global.locomotive_cargo.train.locomotives.front_movers[1] then return end
local loco = global.locomotive_cargo.train.locomotives.front_movers[1]
local front_rail_connection = global.locomotive_cargo.train.front_rail.
defines.rail_direction.front
defines.rail_direction.back
if loco.speed < 1 and then
local driver = loco.get_driver()
if driver then return end
global.locomotive_driver = loco.surface.create_entity({name = "character", position = loco.position, force = "player"})
global.locomotive_driver.driving = true
global.locomotive_driver.riding_state = {acceleration = defines.riding.acceleration.accelerating, direction = defines.riding.direction.straight}
else
if global.locomotive_driver then global.locomotive_driver.destroy() end
end
end
]]
local function set_player_spawn()
if not global.locomotive_cargo then return end
if not global.locomotive_cargo.valid then return end
local position = global.locomotive_cargo.surface.find_non_colliding_position("stone-furnace", global.locomotive_cargo.position, 16, 2)
if not position then return end
game.forces.player.set_spawn_position({x = position.x, y = position.y}, global.locomotive_cargo.surface)
end end
local function set_player_spawn_and_refill_fish() local function set_player_spawn_and_refill_fish()
if not global.locomotive_cargo then return end if not global.locomotive_cargo then return end
if not global.locomotive_cargo.valid then return end if not global.locomotive_cargo.valid then return end
global.locomotive_cargo.get_inventory(defines.inventory.cargo_wagon).insert({name = "raw-fish", count = 8}) global.locomotive_cargo.get_inventory(defines.inventory.cargo_wagon).insert({name = "raw-fish", count = 4})
local position = global.locomotive_cargo.surface.find_non_colliding_position("stone-furnace", global.locomotive_cargo.position, 16, 2) local position = global.locomotive_cargo.surface.find_non_colliding_position("stone-furnace", global.locomotive_cargo.position, 16, 2)
if not position then return end if not position then return end
game.forces.player.set_spawn_position({x = position.x, y = position.y}, global.locomotive_cargo.surface) game.forces.player.set_spawn_position({x = position.x, y = position.y}, global.locomotive_cargo.surface)
end end
local function force_nearby_units_to_attack()
if not global.locomotive_cargo then return end
if not global.locomotive_cargo.valid then return end
global.locomotive_cargo.surface.set_multi_command({
command={
type = defines.command.attack,
target = global.locomotive_cargo,
distraction = defines.distraction.none
},
unit_count = 4,
force = "enemy",
unit_search_distance = 256
})
end
local function tick() local function tick()
if game.tick % 30 == 0 then if game.tick % 30 == 0 then
fish_tag() fish_tag()
accelerate() accelerate()
if game.tick % 1800 == 0 then if game.tick % 1800 == 0 then
set_player_spawn_and_refill_fish() set_player_spawn_and_refill_fish()
if global.game_reset_tick then end
if global.game_reset_tick < game.tick then if global.game_reset_tick then
global.game_reset_tick = nil if global.game_reset_tick < game.tick then
reset_map() global.game_reset_tick = nil
end reset_map()
end end
end end
else else

View File

@@ -580,8 +580,7 @@ local function on_entity_damaged(event)
event.entity.health = event.entity.health + event.final_damage_amount event.entity.health = event.entity.health + event.final_damage_amount
local damage = event.original_damage_amount + event.original_damage_amount * get_melee_modifier(event.cause.player) local damage = event.final_damage_amount + event.final_damage_amount * get_melee_modifier(event.cause.player)
if math_random(0,999) < get_one_punch_chance(event.cause.player) * 10 then if math_random(0,999) < get_one_punch_chance(event.cause.player) * 10 then
one_punch(event.cause, event.entity, damage) one_punch(event.cause, event.entity, damage)
@@ -657,7 +656,7 @@ end
local function on_player_crafted_item(event) local function on_player_crafted_item(event)
if not event.recipe.energy then return end if not event.recipe.energy then return end
local player = game.players[event.player_index] local player = game.players[event.player_index]
gain_xp(player, event.recipe.energy * 0.25) gain_xp(player, event.recipe.energy * 0.20)
end end
local function on_player_respawned(event) local function on_player_respawned(event)