- Players get an increment to entities built when a robot they own builds something
- Players don't get an increment if they placed the blueprint and the base's roboport con bots build the entity OR if another players robots do the building.
- Replaced furance with furnace in all files
- Attempted to fix global desync issue, but probably not right
- Added server_player so /get_pollution_multiplier can be called from server
My plan is to make a harder crash site version where getting free resources from outposts creates pollution.
My intention is to balance it so it's still better to get items from outposts, but this commit is intended to give me a way to take saved games and test different amounts of pollution to check for balance. I don't intend to test this on live for a while but want to test it offline, this will give me the ability to turn it on half way through a game.
Need to consider how it doesn't take into account what the item is so it will be better to get free end-game items and probably limit how much iron we let into base later in the game. Might also create interesting meta where we are careful about what resources we take from outposts depending upon the pollution making setting.
- Added function to check distance between two entities as I couldn't find one in utils
- Added call to check how far from destroyer to wagon
- Since there's now a check I removed the 2 second wait between spawning and starting to fire in favour of using distance instead (384, 386)
- fixed code indenting
- added comments to warm about potential issues with surface names
- modified check for chest containing poison so it only happens once per /strike command
- If it couldn't find a non-colliding position it errored when trying to use the worm position to spawn biters
- This would cause the callback to stop working and the roboport wouldn't spawn worms.
- Fixed by adding check for nil worm position
It's handy to know who's doing the upgrading so I've added their name to all the crash site toasts. This branch depends on the arrakis/dunes one as in that branch I moved some things into a features folder.
sandworms.lua
- Added feedback to player that places the roboport
- Added floating text *thump* as warning when roboport placed and 30 seconds before attack
- Changed worm/biter spawn balance
- Fixed failed lua check
- Changed spawn time to 5 to 15 minutes instead of 6 to 20 minutes
repair_cars.lua:
- Removed surplus else statement as requested
- Added ability for tanks to repair. Cars were very underwhelming past medium worms, their health is too low to be useful.
others:
- Fixed multiline strings in ScenarioInfo
- Saves more kill data to Scoreboard
- Displays total kills in score board
- Saves player data to crash site scenario data set
- Added scenario name to data set so that if we later want to add data for danger ores we can filter it out
- Reduced intervals for each level from 3, 2, 1, 0.5 seconds to 2, 1.5, 1, 0.5 seconds.
- Reduced cost from 7500 per level to 4000 per level.
These changes should make the tank useful in the period of the game for which it's designed. I will watch the next few games to check balance and adjust if it's too OP.
- Made changes suggested by grilledham
- Disabled market item when research levels complete so that the tooltip can still be seen
- Changed cost to 7500 extra per level
Previously we couldn't tell if a restart was due to game win or fail. Statistics are now saved that include the start and end epoch, the game time in ticks (so we can gauge activity), how many biters, worms and nests were killed, how many enemy_entities remain (so we can tell if the map was cleared) and how many players participated in total.
The strike count and cost described by the market was correct but the actual number of capsules sent and the number of capsules removed from the chest was wrong. Bug due to starting index, have now updated the maths to be correct.
Tested and the market description, number of shots fired and the number of capsules removed from the chest are now correct.
Rearranged the order of the code so that it's more performant and added comments to further explain the logic and reasons for the complications, ie. the cheesing with artillery.
Previously the airstrike was not reaching the corners of the map. There was a default max_range value of 1000 that limited how far the poison capsules could travel. Have set it to 1400 so that it can reach the corners of the map.
THIS NEEDS PLAY TESTING. Please don't merge until I've confirmed I've play tested it.
- Current behaviour is that when destroyers/defenders are created their target position is set to the entity that killed them.
- If a player picks up the artillery after the capsules spawn then they lose their cause.target and stop, not reaching the cause of the turret death.
- I've changed this behaviour so that if the target.cause is artillery then it spawns a defender/destroyer projectile NOT an entity. The projectile target can therefore be a position not an entity. So the capsules won't stop if the artillery is picked up.
- If the cause is not artillery turret or wagon then a destroyer/defender capsule entity is spawned instead of a projectile because a projectile cannot track the player.
- If the player picks up the artillery turret before the projectile that kills a turret arrives then the event cause.name will be missing and no bots spawn at all. I have changed the behaviour so that "if not cause" then we assume they're doing something fucky. We won't have the entity cause name or position, so let's just spawn double the normal amount of destroyers and just send them at 0, 0 since we know nothing else to do with them.