diff --git a/changelog.txt b/changelog.txt index 91ae61f..eff5b3e 100755 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,13 @@ +--------------------------------------------------------------------------------------------------- +Version: 0.17.16 +Date: 4. 07. 2019 + Tweaks: + - Reduced biter AoE damage by 25% + - Added biter direct target damage in the amount of 1/3 of the AoE damage + - Reduced the average distance settlers travel by 50% + Bugfixes: + - Fixed biters not being able to kill neutral objects + --------------------------------------------------------------------------------------------------- Version: 0.17.15 Date: 4. 06. 2019 diff --git a/info.json b/info.json index fdae800..4c6ff7f 100755 --- a/info.json +++ b/info.json @@ -1,7 +1,7 @@ { "name" : "Rampant", "factorio_version" : "0.17", - "version" : "0.17.15", + "version" : "0.17.16", "title" : "Rampant", "author" : "Veden", "homepage" : "https://forums.factorio.com/viewtopic.php?f=94&t=31445", diff --git a/libs/AIAttackWave.lua b/libs/AIAttackWave.lua index 0b66661..83fdca5 100755 --- a/libs/AIAttackWave.lua +++ b/libs/AIAttackWave.lua @@ -184,7 +184,7 @@ function aiAttackWave.formSettlers(map, surface, natives, chunk, tick) if squadPosition then local squad = createSquad(squadPosition, surface, nil, true) - squad.maxDistance = gaussianRandomRange(natives.expansionMaxDistance, + squad.maxDistance = gaussianRandomRange(natives.expansionMaxDistance * 0.5, natives.expansionMaxDistanceDerivation, CHUNK_SIZE * 1, natives.expansionMaxDistance) diff --git a/prototypes/utils/BiterUtils.lua b/prototypes/utils/BiterUtils.lua index 6cbdc93..fbd45c5 100755 --- a/prototypes/utils/BiterUtils.lua +++ b/prototypes/utils/BiterUtils.lua @@ -844,20 +844,34 @@ function biterFunctions.createMeleeAttack(attributes) target_type = "entity", action = { - type = "area", - radius = attributes.radius, - force = "enemy", - ignore_collision_condition = true, - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = { amount = attributes.damage, type = attributes.damageType or "physical" } - } - } - } + { + type = "area", + radius = attributes.radius, + force = "enemy", + ignore_collision_condition = true, + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = attributes.damage * 0.75, type = attributes.damageType or "physical" } + } + } + }, + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = attributes.damage * 0.25, type = attributes.damageType or "physical" } + } + } + } + } }, sound = make_biter_roars(0.7), animation = biterattackanimation(attributes.scale, attributes.tint, attributes.tint) diff --git a/prototypes/utils/UpdatesVanilla.lua b/prototypes/utils/UpdatesVanilla.lua index 93a8d9e..b08a2ef 100755 --- a/prototypes/utils/UpdatesVanilla.lua +++ b/prototypes/utils/UpdatesVanilla.lua @@ -130,23 +130,38 @@ function vanillaUpdates.useDumbProjectiles() unit = units["small-biter"] unit["attack_parameters"]["ammo_type"]["action"] = { - type = "area", - radius = 0.2, - force = "enemy", - ignore_collision_condition = true, - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = { amount = 7, type = "physical" } - } - } + { + type = "area", + radius = 0.2, + force = "enemy", + ignore_collision_condition = true, + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = 7 * 0.75, type = "physical" } + } + } + }, + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = 7 * 0.25, type = "physical" } + } + } + } } unit = units["medium-biter"] unit["attack_parameters"]["ammo_type"]["action"] = { + { type = "area", radius = 0.6, force = "enemy", @@ -157,13 +172,27 @@ function vanillaUpdates.useDumbProjectiles() target_effects = { type = "damage", - damage = { amount = 15, type = "physical" } + damage = { amount = 15 * 0.75, type = "physical" } } } + }, + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = 15 * 0.25, type = "physical" } + } + } + } } unit = units["big-biter"] unit["attack_parameters"]["ammo_type"]["action"] = { + { type = "area", radius = 0.9, force = "enemy", @@ -174,26 +203,53 @@ function vanillaUpdates.useDumbProjectiles() target_effects = { type = "damage", - damage = { amount = 30, type = "physical" } + damage = { amount = 30 * 0.75, type = "physical" } } } + }, + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = 30 * 0.25, type = "physical" } + } + } + } } unit = units["behemoth-biter"] unit["attack_parameters"]["ammo_type"]["action"] = { - type = "area", - radius = 1.2, - force = "enemy", - ignore_collision_condition = true, - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = { amount = 90, type = "physical" } - } - } + { + type = "area", + radius = 1.2, + force = "enemy", + ignore_collision_condition = true, + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = 90 * 0.75, type = "physical" } + } + } + }, + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = 90 * 0.25, type = "physical" } + } + } + } } end