Page 12 of 29

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 8:41 am
by bobingabout
Airat9000 wrote:
Wed Apr 03, 2019 8:04 am
bobingabout wrote:
Wed Apr 03, 2019 7:52 am
What did you try to do?
I wrote already - to increase the wealth of resources at the beginning before generating the map ..
It is necessary to raise the number, but I don’t see where to change the code.
Okay, lets see. you'll basically want to do the following:
Go to the file I mentioned (demo-resource.lua in the base game) and copy the autoplace definition for iron ore (I can't see the game code where I am, this is not exact code) for my example, I'll use one of the ores from my mod.
you will need to take note of the order the resources are called, because you'll need to manually re-use the index. iron ore is 0 because it's first, I think copper is next, so it's a 1. I don't remember the order of the other 4 base game ores.
in your copy of this code, edit base density. (I'm guessing)
set it again.

So...
you start with something that looks like this: (I'm using Bauxide, because I can see the code for it)

Code: Select all

  autoplace = resource_autoplace.resource_autoplace_settings{
    name = "bauxite-ore",
    order = "c",
    base_density = 8,
    has_starting_area_placement = false,
    resource_index = resource_autoplace.get_next_resource_index(),
    regular_rq_factor_multiplier = 1,
  },
You'd need to change it to something like this in your mod:

Code: Select all

data.raw.resource["bauxite-ore"].autoplace = resource_autoplace.resource_autoplace_settings{
    name = "bauxite-ore",
    order = "c",
    base_density = 800, --I increased it
    has_starting_area_placement = false,
    resource_index = 12, --This is a guess
    regular_rq_factor_multiplier = 1,
  },
It would be much easier if you could just edit the value you wanted, but, you can't, because that function resource_autoplace.resource_autoplace_settings generates a totally different set of data when it is called. your only option is to do the entire thing again.

Really though, I am totally guessing with all this, the current ore generation system is a fucking NIGHTMARE to work with.

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 9:43 am
by Airat9000
bobingabout wrote:
Wed Apr 03, 2019 8:41 am
Airat9000 wrote:
Wed Apr 03, 2019 8:04 am
bobingabout wrote:
Wed Apr 03, 2019 7:52 am
What did you try to do?
I wrote already - to increase the wealth of resources at the beginning before generating the map ..
It is necessary to raise the number, but I don’t see where to change the code.
Okay, lets see. you'll basically want to do the following:
Go to the file I mentioned (demo-resource.lua in the base game) and copy the autoplace definition for iron ore (I can't see the game code where I am, this is not exact code) for my example, I'll use one of the ores from my mod.
you will need to take note of the order the resources are called, because you'll need to manually re-use the index. iron ore is 0 because it's first, I think copper is next, so it's a 1. I don't remember the order of the other 4 base game ores.
in your copy of this code, edit base density. (I'm guessing)
set it again.

So...
you start with something that looks like this: (I'm using Bauxide, because I can see the code for it)

Code: Select all

  autoplace = resource_autoplace.resource_autoplace_settings{
    name = "bauxite-ore",
    order = "c",
    base_density = 8,
    has_starting_area_placement = false,
    resource_index = resource_autoplace.get_next_resource_index(),
    regular_rq_factor_multiplier = 1,
  },
You'd need to change it to something like this in your mod:

Code: Select all

data.raw.resource["bauxite-ore"].autoplace = resource_autoplace.resource_autoplace_settings{
    name = "bauxite-ore",
    order = "c",
    base_density = 800, --I increased it
    has_starting_area_placement = false,
    resource_index = 12, --This is a guess
    regular_rq_factor_multiplier = 1,
  },
It would be much easier if you could just edit the value you wanted, but, you can't, because that function resource_autoplace.resource_autoplace_settings generates a totally different set of data when it is called. your only option is to do the entire thing again.

Really though, I am totally guessing with all this, the current ore generation system is a fucking NIGHTMARE to work with.
understand you - old file you not work in
ore-functions.lua to bobliblary

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 9:48 am
by Airat9000
:lol: :lol:
base_density = 8000,
2019-04-03_12-47-23.png
2019-04-03_12-47-23.png (1.68 MiB) Viewed 5799 times

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 10:49 am
by bobingabout
Airat9000 wrote:
Wed Apr 03, 2019 9:43 am
understand you - old file you not work in
ore-functions.lua to bobliblary
Currently, ore-functions.lua in boblibrary is only used for Gem ore.
Everything else uses the new base game function.
Airat9000 wrote:
Wed Apr 03, 2019 9:48 am
:lol: :lol:
base_density = 8000,
2019-04-03_12-47-23.png
That's a lot of copper. I'm happy you got it working.

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 11:19 am
by RocketManChronicles
BlueTemplar wrote:
Wed Apr 03, 2019 8:08 am
RocketManChronicles wrote:
Tue Apr 02, 2019 8:00 pm
, there are changes that make turrets very weak near nests. The two biggest things that affect this are the Spitters and the Worms spits. Before 0.17, they just hit and did damage. Now, 0.17+ not only do they hit, but their spit stays and does damage over time. So when a turret is hit by a spitter, it doesn't just take damage, it now takes damage and even more damage over time. The stationary nature of turrets makes them very weak when they are not in a permanent wall setting.
No they don't - turrets seem to be immune to acid puddle damage (over time).
(They do get affected by splash damage...)
After going back and checking, I set up some turrets to sacrifice (FOR SCIENCE!) to see how they interact. So, from what I observed, the acid does not affect the turrets, as you were correct. However, they do take damage over time from the fire enemies. Turrets definitely suffer splash damage and with enough projectiles coming their way, I could not keep up in repairs even. I tried repairs with bots from my personal roboport and also by hand. The bots would die from the damage over time of anything, plus suffer from splash damage greatly. By hand, I could probably keep one turret up while the others fall, then the one I am repairing will fall as it is the last one.

Now, the Rampant mod greatly affects how the biters approach the turrets. If one gets a hit in, others just flood to that turret and they will force themselves to overrun the turrets.

Ok, so we are talking about the first four hours. That means that you could be on the verge of unlocking tanks. If no tanks are available, then the best bet is to have a cluster of turrets to run to for repairing the car. You use a car loaded with AP ammo and a few hundred grenades. Use the car for hit and run tactics, drive in, take a spawner down, drive out. But you must zig-zag the whole time. And continually lobbing grenades out the window. Let about 200 enemies pile up behind you while you focus on taking out a spawner, then run around in circles kiting the enemies until they are thinned a bit, then drive to your turret cluster to allow them to clean up the last few chasing enemies while you repair the car. Rinse and repeat. This can be time consuming but with speed, you should be able to avoid catastrophic damage to the car.

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 12:22 pm
by Recon777
MageKing17 wrote:
Wed Apr 03, 2019 5:17 am
If that's not the way you want to play, why are you using Rampant at all?
Because it's the only way to get a challenge in the LATE game.

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 1:38 pm
by bobingabout
Recon777 wrote:
Wed Apr 03, 2019 12:22 pm
MageKing17 wrote:
Wed Apr 03, 2019 5:17 am
If that's not the way you want to play, why are you using Rampant at all?
Because it's the only way to get a challenge in the LATE game.
if you really want a challenge, I could configure it so that the game sends you an ARMY of Leviathans.

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 1:39 pm
by Kamsta99
Is it possible to make inserters from logistic mod to toggle overide reach distance by hotkey ? Because GUI have only one option also take space on my screen... It isnt nonsense :?
Anyway thanks for great mod :D

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 2:22 pm
by bobingabout
Kamsta99 wrote:
Wed Apr 03, 2019 1:39 pm
Is it possible to make inserters from logistic mod to toggle overide reach distance by hotkey ? Because GUI have only one option also take space on my screen... It isnt nonsense :?
Anyway thanks for great mod :D
That already exists. After placing an inserter, simply point to it and press Shift + L.
The GUI is more useful if you want to do a large batch of long handed inserters.

if you use Adjustable Inserters mod too, there's even more options with hotkeys.

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 4:33 pm
by RocketManChronicles
bobingabout wrote:
Wed Apr 03, 2019 1:38 pm
Recon777 wrote:
Wed Apr 03, 2019 12:22 pm
MageKing17 wrote:
Wed Apr 03, 2019 5:17 am
If that's not the way you want to play, why are you using Rampant at all?
Because it's the only way to get a challenge in the LATE game.
if you really want a challenge, I could configure it so that the game sends you an ARMY of Leviathans.
I'm listening....

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 4:50 pm
by bobingabout
RocketManChronicles wrote:
Wed Apr 03, 2019 4:33 pm
bobingabout wrote:
Wed Apr 03, 2019 1:38 pm
Recon777 wrote:
Wed Apr 03, 2019 12:22 pm
MageKing17 wrote:
Wed Apr 03, 2019 5:17 am
If that's not the way you want to play, why are you using Rampant at all?
Because it's the only way to get a challenge in the LATE game.
if you really want a challenge, I could configure it so that the game sends you an ARMY of Leviathans.
I'm listening....
I already have it on my list to review enemies, changing the spawning shouldn't be an issue.

here is the spawner information as it is now:

Code: Select all

Biter spawner
    result_units = (function()
                     local res = {}
                     res[1] = {"small-biter", {{0.0, 0.3}, {0.6, 0.0}}}
                     if not data.is_demo then
                       -- from evolution_factor 0.3 the weight for medium-biter is linearly rising from 0 to 0.3
                       -- this means for example that when the evolution_factor is 0.45 the probability of spawning
                       -- a small biter is 66% while probability for medium biter is 33%.
                       res[2] = {"medium-biter", {{0.2, 0.0}, {0.6, 0.3}, {0.7, 0.1}}}
                       -- for evolution factor of 1 the spawning probabilities are: small-biter 0%, medium-biter 1/8, big-biter 4/8, behemoth biter 3/8
                       res[3] = {"big-biter", {{0.5, 0.0}, {1.0, 0.4}}}
                       res[4] = {"behemoth-biter", {{0.9, 0.0}, {1.0, 0.3}}}
                     end
                     return res
                   end)(),

Spitter spawner
    result_units = (function()
                     local res = {}
                     res[1] = {"small-biter", {{0.0, 0.3}, {0.35, 0}}}
                     res[2] = {"small-spitter", {{0.25, 0.0}, {0.5, 0.3}, {0.7, 0.0}}}
                     res[3] = {"medium-spitter", {{0.4, 0.0}, {0.7, 0.3}, {0.9, 0.1}}}
                     res[4] = {"big-spitter", {{0.5, 0.0}, {1.0, 0.4}}}
                     res[5] = {"behemoth-spitter", {{0.9, 0.0}, {1.0, 0.3}}}
                     return res
                   end)(),

Bob biter spawner
    result_units =
    {
      {"small-biter", {{0.0, 0.3}, {0.5, 0.3}, {0.7, 0.0}}},
      {"medium-biter", {{0.2, 0.0}, {0.6, 0.3}, {0.8, 0.0}}},
--      {"big-biter", {{0.6, 0.0}, {0.8, 0.4}, {0.9, 0.0}}},
-- Big enemies apear at 0.6, slowly become elemental between 0.7 and 0.8, and disapear by 0.9
      {"big-biter", {{0.6, 0.0}, {0.7, 0.4}, {0.8, 0.0}}},
      {"bob-big-piercing-biter", {{0.7, 0.0}, {0.8, 0.4}, {0.9, 0.0}}},
      {"bob-huge-acid-biter", {{0.7, 0.0}, {0.8, 0.2}}},
      {"bob-huge-explosive-biter", {{0.7, 0.0}, {0.8, 0.1}}},
      {"bob-giant-poison-biter", {{0.8, 0.0}, {0.9, 0.2}}},
      {"bob-giant-fire-biter", {{0.8, 0.0}, {0.9, 0.1}}},
      {"bob-titan-biter", {{0.9, 0.0}, {1.0, 0.3}}},
      {"bob-behemoth-biter", {{0.99, 0.0}, {1.0, 0.3}}},
      {"bob-leviathan-biter", {{0.99, 0.0}, {1.0, 0.05}}},
    },

Bob spitter spawner
    result_units =
    {
      {"small-biter", {{0.0, 0.3}, {0.25, 0.3}, {0.35, 0.0}}},
      {"small-spitter", {{0.25, 0.3}, {0.5, 0.3}, {0.7, 0.0}}},
      {"medium-spitter", {{0.4, 0.0}, {0.6, 0.3}, {0.8, 0.0}}},
--      {"big-spitter", {{0.6, 0.0}, {0.8, 0.4}, {0.9, 0.0}}},
-- Big enemies apear at 0.6, slowly become elemental between 0.7 and 0.8, and disapear by 0.9
      {"big-spitter", {{0.6, 0.0}, {0.7, 0.4}, {0.8, 0.0}}},
      {"bob-big-electric-spitter", {{0.7, 0.0}, {0.8, 0.4}, {0.9, 0.0}}},
      {"bob-huge-explosive-spitter", {{0.7, 0.0}, {0.8, 0.2}}},
      {"bob-huge-acid-spitter", {{0.7, 0.0}, {0.8, 0.1}}},
      {"bob-giant-fire-spitter", {{0.8, 0.0}, {0.9, 0.2}}},
      {"bob-giant-poison-spitter", {{0.8, 0.0}, {0.9, 0.1}}},
      {"bob-titan-spitter", {{0.9, 0.0}, {1.0, 0.3}}},
      {"bob-behemoth-spitter", {{0.99, 0.0}, {1.0, 0.3}}},
      {"bob-leviathan-spitter", {{0.99, 0.0}, {1.0, 0.05}}},
    },
As you can see, to start with, everything from big and higher should drop by 0.1, and Leviathan has a 0.05 rating where most others have around a 0.3, meaning it's a 6th as likely to spawn.

To make things harder, I could add options to change the spawning so that tougher enemies show up even earlier, or in higher numbers in late game, or both.
They would all have to be startup options though, as this information is all read only in runtime.

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 5:19 pm
by Raphaello
bobingabout wrote:
Wed Apr 03, 2019 2:22 pm
[The GUI is more useful if you want to do a large batch of long handed inserters.
Changing inserters in batch is possible? How to do it?

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 5:21 pm
by bobingabout
Raphaello wrote:
Wed Apr 03, 2019 5:19 pm
bobingabout wrote:
Wed Apr 03, 2019 2:22 pm
[The GUI is more useful if you want to do a large batch of long handed inserters.
Changing inserters in batch is possible? How to do it?
what I mean is. if you know you're going to need to place a lot of long handed inserters, it's best to turn the option on because every inserter you place will be long until you turn it off.
but if you're doing one offs, or toggling between long and short, it's easier to just place it first, then point to it and press Shift+L

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 5:23 pm
by mrvn
bobingabout wrote:
Wed Apr 03, 2019 8:41 am
Airat9000 wrote:
Wed Apr 03, 2019 8:04 am
bobingabout wrote:
Wed Apr 03, 2019 7:52 am
What did you try to do?
I wrote already - to increase the wealth of resources at the beginning before generating the map ..
It is necessary to raise the number, but I don’t see where to change the code.
Okay, lets see. you'll basically want to do the following:
Go to the file I mentioned (demo-resource.lua in the base game) and copy the autoplace definition for iron ore (I can't see the game code where I am, this is not exact code) for my example, I'll use one of the ores from my mod.
you will need to take note of the order the resources are called, because you'll need to manually re-use the index. iron ore is 0 because it's first, I think copper is next, so it's a 1. I don't remember the order of the other 4 base game ores.
in your copy of this code, edit base density. (I'm guessing)
set it again.

So...
you start with something that looks like this: (I'm using Bauxide, because I can see the code for it)

Code: Select all

  autoplace = resource_autoplace.resource_autoplace_settings{
    name = "bauxite-ore",
    order = "c",
    base_density = 8,
    has_starting_area_placement = false,
    resource_index = resource_autoplace.get_next_resource_index(),
    regular_rq_factor_multiplier = 1,
  },
You'd need to change it to something like this in your mod:

Code: Select all

data.raw.resource["bauxite-ore"].autoplace = resource_autoplace.resource_autoplace_settings{
    name = "bauxite-ore",
    order = "c",
    base_density = 800, --I increased it
    has_starting_area_placement = false,
    resource_index = 12, --This is a guess
    regular_rq_factor_multiplier = 1,
  },
It would be much easier if you could just edit the value you wanted, but, you can't, because that function resource_autoplace.resource_autoplace_settings generates a totally different set of data when it is called. your only option is to do the entire thing again.

Really though, I am totally guessing with all this, the current ore generation system is a fucking NIGHTMARE to work with.
Or simply slide the slider in the new map settings towards richer.

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 6:16 pm
by Kargaros
bobingabout wrote:
Wed Apr 03, 2019 5:21 pm
what I mean is. if you know you're going to need to place a lot of long handed inserters, it's best to turn the option on because every inserter you place will be long until you turn it off.
but if you're doing one offs, or toggling between long and short, it's easier to just place it first, then point to it and press Shift+L
So THAT's what I was doing wrong :o
I saw the shortcut in the control setting a few days ago, and I tried shift+L before placing an inserter, shift+L at the same time as placing an inserter, and some other combinations, but what I didn't try was placing the inserter first and pressing shift+L afterwards.
I have to try this out :D

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 6:32 pm
by bobingabout
Kargaros wrote:
Wed Apr 03, 2019 6:16 pm
bobingabout wrote:
Wed Apr 03, 2019 5:21 pm
what I mean is. if you know you're going to need to place a lot of long handed inserters, it's best to turn the option on because every inserter you place will be long until you turn it off.
but if you're doing one offs, or toggling between long and short, it's easier to just place it first, then point to it and press Shift+L
So THAT's what I was doing wrong :o
I saw the shortcut in the control setting a few days ago, and I tried shift+L before placing an inserter, shift+L at the same time as placing an inserter, and some other combinations, but what I didn't try was placing the inserter first and pressing shift+L afterwards.
I have to try this out :D
Yeah, I would have loved to have something like this, place an inserter while holding L to make it long.
unfortunately, pressing a key configuration can be made to trigger an event, but there's no "key released" or "key held" option, only a key press event. So, you have to work with what you have.
you can also read things like, what is in your hand, and what the cursor is pointing to, is it in range? so using these checks I can have stuff like... if you're pointing to an inserter, and it is in range, change the reach.
likewise, if the toggle is turned on, when the built entity event triggers, check what you're holding, if it matches (actually, it only checks to make sure it's not a blueprint or blueprint book) then apply the settings to the placed entity.

And that's how the 2 functions in boblogistics work.

bobinserter adds a lot more functions, but they're all based on those 2 event combinations. the menu that opens when you point to an inserter is just the keypress event and read what you're pointing to, and remembers the entity you were pointing to.
There's a new option that changes it so it opens on the left when you open the normal inserter GUI too.

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 7:40 pm
by Raphaello
Thanks for answer. I only used shortcuts and GUI to adjust already placed inserters. TIL I can use GUI to set up the inserter before placing it :D

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 7:54 pm
by Kargaros
My initial assumption was actually that shift+L would toggle the option for long inserters in the GUI panel, but that quickly turned out to be wrong.
It would be nice to have a toggle shortcut so that you could do: *shortcut to enable long-inserter mode*, place a number of long inserters, *shortcut to toggle long-inserter mode off again*, place normal inserters.
I will however work with what is available, and I expect I will quickly get used to the way shift+L works :-)

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 8:20 pm
by bobingabout
In theory, it is possible to add other shortcuts to toggle the pre-place, but if I tried to also implement this in bobinserters with all the functions, that would get complex fast.

Re: [0.17.x] Bob's Mods: General Discussion

Posted: Wed Apr 03, 2019 11:54 pm
by bobingabout
bobingabout wrote:
Wed Apr 03, 2019 4:50 pm
RocketManChronicles wrote:
Wed Apr 03, 2019 4:33 pm
bobingabout wrote:
Wed Apr 03, 2019 1:38 pm
Recon777 wrote:
Wed Apr 03, 2019 12:22 pm
MageKing17 wrote:
Wed Apr 03, 2019 5:17 am
If that's not the way you want to play, why are you using Rampant at all?
Because it's the only way to get a challenge in the LATE game.
if you really want a challenge, I could configure it so that the game sends you an ARMY of Leviathans.
I'm listening....
I already have it on my list to review enemies, changing the spawning shouldn't be an issue.

here is the spawner information as it is now:

Code: Select all

Biter spawner
    result_units = (function()
                     local res = {}
                     res[1] = {"small-biter", {{0.0, 0.3}, {0.6, 0.0}}}
                     if not data.is_demo then
                       -- from evolution_factor 0.3 the weight for medium-biter is linearly rising from 0 to 0.3
                       -- this means for example that when the evolution_factor is 0.45 the probability of spawning
                       -- a small biter is 66% while probability for medium biter is 33%.
                       res[2] = {"medium-biter", {{0.2, 0.0}, {0.6, 0.3}, {0.7, 0.1}}}
                       -- for evolution factor of 1 the spawning probabilities are: small-biter 0%, medium-biter 1/8, big-biter 4/8, behemoth biter 3/8
                       res[3] = {"big-biter", {{0.5, 0.0}, {1.0, 0.4}}}
                       res[4] = {"behemoth-biter", {{0.9, 0.0}, {1.0, 0.3}}}
                     end
                     return res
                   end)(),

Spitter spawner
    result_units = (function()
                     local res = {}
                     res[1] = {"small-biter", {{0.0, 0.3}, {0.35, 0}}}
                     res[2] = {"small-spitter", {{0.25, 0.0}, {0.5, 0.3}, {0.7, 0.0}}}
                     res[3] = {"medium-spitter", {{0.4, 0.0}, {0.7, 0.3}, {0.9, 0.1}}}
                     res[4] = {"big-spitter", {{0.5, 0.0}, {1.0, 0.4}}}
                     res[5] = {"behemoth-spitter", {{0.9, 0.0}, {1.0, 0.3}}}
                     return res
                   end)(),

Bob biter spawner
    result_units =
    {
      {"small-biter", {{0.0, 0.3}, {0.5, 0.3}, {0.7, 0.0}}},
      {"medium-biter", {{0.2, 0.0}, {0.6, 0.3}, {0.8, 0.0}}},
--      {"big-biter", {{0.6, 0.0}, {0.8, 0.4}, {0.9, 0.0}}},
-- Big enemies apear at 0.6, slowly become elemental between 0.7 and 0.8, and disapear by 0.9
      {"big-biter", {{0.6, 0.0}, {0.7, 0.4}, {0.8, 0.0}}},
      {"bob-big-piercing-biter", {{0.7, 0.0}, {0.8, 0.4}, {0.9, 0.0}}},
      {"bob-huge-acid-biter", {{0.7, 0.0}, {0.8, 0.2}}},
      {"bob-huge-explosive-biter", {{0.7, 0.0}, {0.8, 0.1}}},
      {"bob-giant-poison-biter", {{0.8, 0.0}, {0.9, 0.2}}},
      {"bob-giant-fire-biter", {{0.8, 0.0}, {0.9, 0.1}}},
      {"bob-titan-biter", {{0.9, 0.0}, {1.0, 0.3}}},
      {"bob-behemoth-biter", {{0.99, 0.0}, {1.0, 0.3}}},
      {"bob-leviathan-biter", {{0.99, 0.0}, {1.0, 0.05}}},
    },

Bob spitter spawner
    result_units =
    {
      {"small-biter", {{0.0, 0.3}, {0.25, 0.3}, {0.35, 0.0}}},
      {"small-spitter", {{0.25, 0.3}, {0.5, 0.3}, {0.7, 0.0}}},
      {"medium-spitter", {{0.4, 0.0}, {0.6, 0.3}, {0.8, 0.0}}},
--      {"big-spitter", {{0.6, 0.0}, {0.8, 0.4}, {0.9, 0.0}}},
-- Big enemies apear at 0.6, slowly become elemental between 0.7 and 0.8, and disapear by 0.9
      {"big-spitter", {{0.6, 0.0}, {0.7, 0.4}, {0.8, 0.0}}},
      {"bob-big-electric-spitter", {{0.7, 0.0}, {0.8, 0.4}, {0.9, 0.0}}},
      {"bob-huge-explosive-spitter", {{0.7, 0.0}, {0.8, 0.2}}},
      {"bob-huge-acid-spitter", {{0.7, 0.0}, {0.8, 0.1}}},
      {"bob-giant-fire-spitter", {{0.8, 0.0}, {0.9, 0.2}}},
      {"bob-giant-poison-spitter", {{0.8, 0.0}, {0.9, 0.1}}},
      {"bob-titan-spitter", {{0.9, 0.0}, {1.0, 0.3}}},
      {"bob-behemoth-spitter", {{0.99, 0.0}, {1.0, 0.3}}},
      {"bob-leviathan-spitter", {{0.99, 0.0}, {1.0, 0.05}}},
    },
As you can see, to start with, everything from big and higher should drop by 0.1, and Leviathan has a 0.05 rating where most others have around a 0.3, meaning it's a 6th as likely to spawn.

To make things harder, I could add options to change the spawning so that tougher enemies show up even earlier, or in higher numbers in late game, or both.
They would all have to be startup options though, as this information is all read only in runtime.
I updated, what do you think?

Code: Select all

    result_units =
    {
      {"small-biter", {{0.0, 0.3}, {0.5, 0.3}, {0.6, 0.0}}},
      {"medium-biter", {{0.2, 0.0}, {0.6, 0.3}, {0.7, 0.0}}},
-- Big enemies apear at 0.5, slowly become elemental between 0.6 and 0.7, and disapear by 0.8
      {"big-biter", {{0.5, 0.0}, {0.6, 0.4}, {0.7, 0.0}}},
      {"bob-big-piercing-biter", {{0.6, 0.0}, {0.7, 0.4}, {0.8, 0.0}}},
      {"bob-huge-acid-biter", {{0.6, 0.0}, {0.7, 0.2}}},
      {"bob-huge-explosive-biter", {{0.6, 0.0}, {0.7, 0.1}}},
      {"bob-giant-poison-biter", {{0.7, 0.0}, {0.8, 0.2}}},
      {"bob-giant-fire-biter", {{0.7, 0.0}, {0.8, 0.1}}},
      {"bob-titan-biter", {{0.8, 0.0}, {0.9, 0.3}}},
      {"bob-behemoth-biter", {{0.9, 0.0}, {1.0, 0.3}}},
      {"bob-leviathan-biter", {{0.95, 0.0}, {1.0, 0.05}}},
    },

    result_units =
    {
      {"small-biter", {{0.0, 0.3}, {0.2, 0.3}, {0.4, 0.0}}},
      {"small-spitter", {{0.2, 0.3}, {0.4, 0.3}, {0.6, 0.0}}},
      {"medium-spitter", {{0.4, 0.0}, {0.6, 0.3}, {0.7, 0.0}}},
-- Big enemies apear at 0.5, slowly become elemental between 0.6 and 0.7, and disapear by 0.8
      {"big-spitter", {{0.5, 0.0}, {0.6, 0.4}, {0.7, 0.0}}},
      {"bob-big-electric-spitter", {{0.6, 0.0}, {0.7, 0.4}, {0.8, 0.0}}},
      {"bob-huge-explosive-spitter", {{0.6, 0.0}, {0.7, 0.2}}},
      {"bob-huge-acid-spitter", {{0.6, 0.0}, {0.7, 0.1}}},
      {"bob-giant-fire-spitter", {{0.7, 0.0}, {0.8, 0.2}}},
      {"bob-giant-poison-spitter", {{0.7, 0.0}, {0.8, 0.1}}},
      {"bob-titan-spitter", {{0.8, 0.0}, {0.9, 0.3}}},
      {"bob-behemoth-spitter", {{0.9, 0.0}, {1.0, 0.3}}},
      {"bob-leviathan-spitter", {{0.95, 0.0}, {1.0, 0.05}}},
    },