I have a unit launching Spitter. He shoots projectiles that spawn into units.
Everything works fine on the "Enemy" force, but if I convert the unit, via my NE Buildings mod, the spawned units still have "Enemy" as force and as a result attack me and the unit that created them...
The projectile seems to have a force of "Neutral", so I can't set it to that.
This is the code:
In Control, that spawns the units:
Code: Select all
-- Spawn Launched Units
function SpawnLaunchedUnits(enemy, unit_to_spawn)
local subEnemyName = subEnemyNameTable[enemy.name]
if not subEnemyName then
return
end
if subEnemyNameTable[enemy.name][global.evoFactorFloor] then
if enemy.name == "ne_green_splash_1" then
subEnemyName = subEnemyNameTable[enemy.name][global.evoFactorFloor]
else
subEnemyName = unit_to_spawn.spawn..subEnemyNameTable[enemy.name][global.evoFactorFloor]
end
end
local number = subEnemyNumberTable[enemy.name][global.evoFactorFloor]
for i = 1, number do
local subEnemyPosition = enemy.surface.find_non_colliding_position(subEnemyName, enemy.position, 2, 0.5)
if subEnemyPosition then
--writeDebug("The ne_green_splash_1 force is: " .. enemy.force.name)
create_unit = enemy.surface.create_entity({name = subEnemyName, position = subEnemyPosition})
--writeDebug("The Created Unit's force is: " .. create_unit.force.name)
--create_unit = enemy.surface.create_entity({name = subEnemyName, position = subEnemyPosition, force = game.forces.enemy})
create_unit.health = create_unit.health *.95
Remove_Trees(create_unit)
end
end
end
Code: Select all
-- Spitter Projectile - Non-Honing
function Spitter_Attack_Projectile_NH(data)
return
{
type = "projectile",
ammo_category = "rocket",
cooldown = data.cooldown,
range = data.range,
projectile_creation_distance = data.projectile_creation_distance,
ammo_type =
{
category = "rocket",
clamp_position = true,
target_type = "position",
action =
{
type = "direct",
action_delivery =
{
type = "projectile",
projectile = data.projectile,
starting_speed = 0.3,
max_range = data.range,
}
}
},
sound = make_spitter_roars(data.roarvolume),
animation = spitterattackanimation(data.scale, data.tint1, data.tint2),
}
end
Code: Select all
--- Unit Unit-Projectiles
{
type = "projectile",
name = "Unit-Projectile",
flags = {"not-on-map"},
acceleration = 0.005,
action =
{
type = "direct",
action_delivery =
{
type = "instant",
target_effects =
{
{
type = "create-entity",
entity_name = "ne_unit_launcher_trigger_1",
},
{
type = "damage",
damage = { amount = 2 , type = "physical"}
},
{
type = "create-sticker",
sticker = "slowdown-sticker"
},
}
}
},
animation =
{
filename = "__Natural_Evolution_Enemies__/graphics/entity/acid-projectile-green.png",
line_length = 5,
width = 16,
height = 18,
frame_count = 33,
priority = "high"
},
shadow =
{
filename = "__Natural_Evolution_Enemies__/graphics/entity/acid-projectile-purple-shadow.png",
line_length = 5,
width = 28,
height = 16,
frame_count = 33,
priority = "high",
shift = {-0.09, 0.395}
},
rotatable = false
},
Code: Select all
--- Unit Launcher Smoke that will cause the Trigger
Unit_Launcher_Trigger_1 = table.deepcopy(data.raw["smoke-with-trigger"]["poison-cloud"])
Unit_Launcher_Trigger_1.name = "ne_unit_launcher_trigger_1"
Unit_Launcher_Trigger_1.duration = 60 * 1
Unit_Launcher_Trigger_1.fade_away_duration = 0
Unit_Launcher_Trigger_1.spread_duration = 0
Unit_Launcher_Trigger_1.action = {
type = "direct",
action_delivery =
{
type = "instant",
target_effects =
{
type = "create-entity",
entity_name = "ne_green_splash_1",
trigger_created_entity = true,
},
}
}
Unit_Launcher_Trigger_1.slow_down_factor = 1
Unit_Launcher_Trigger_1.cyclic = true
Unit_Launcher_Trigger_1.color = { r = 0/255, g = 0/255, b = 0/255, a = 0}
Unit_Launcher_Trigger_1.animation =
{ -- No Animations
filename = "__Natural_Evolution_Enemies__/graphics/entity/empty.png",
flags = { "compressed" },
priority = "low",
width = 32,
height = 32,
frame_count = 1,
animation_speed = 1,
line_length = 1,
scale = 1
}
data:extend{Unit_Launcher_Trigger_1}
Code: Select all
--- Green Splash 1 - Units
Green_Splash = table.deepcopy(data.raw["corpse"]["ne-acid-splash-purple"])
Green_Splash.name = "ne_green_splash_1"
Green_Splash.time_before_removed = 60 * 15
Green_Splash.splash =
{
{
filename = "__Natural_Evolution_Enemies__/graphics/entity/splash-1.png",
line_length = 5,
width = 199,
height = 159,
frame_count = 20,
tint = {r = 0, g = 1, b = 0, a = 1},
shift = {0.484375, -0.171875}
},
{
filename = "__Natural_Evolution_Enemies__/graphics/entity/splash-2.png",
line_length = 5,
width = 238,
height = 157,
frame_count = 20,
tint = {r = 0, g = 1, b = 0, a = 1},
shift = {0.8125, -0.15625}
},
{
filename = "__Natural_Evolution_Enemies__/graphics/entity/splash-3.png",
line_length = 5,
width = 240,
height = 162,
frame_count = 20,
tint = {r = 0, g = 1, b = 0, a = 1},
shift = {0.71875, -0.09375}
},
{
filename = "__Natural_Evolution_Enemies__/graphics/entity/splash-4.png",
line_length = 5,
width = 241,
height = 146,
frame_count = 20,
tint = {r = 0, g = 1, b = 0, a = 1},
shift = {0.703125, -0.375}
}
}
data:extend{Green_Splash}
Full mod attached.
Thanks.
