Time to get cracking, I guess.
Questions :
A. Does Alblaka have this code? What has he said? How's his effort to incorporate this into the core IC2 going? No point in me spending dozens of hours debugging this and expanding it if Alblaka's team is already halfway there.
B. What major known bugs do I need to hunt down? Obviously there's the buffer overflow...what other ones are there?
IF Alblaka isn't about to add it, here's what I wanted to do :
1. Change area shields to no longer iterate more than once a minute or so. Instead, they will cut ALL blocks in their way regardless. (except bedrock) (this is to create a defense against a number of exploits, some theoretical). The "block cutter" upgrade will instead create a permanent 4x4 hole in the shield on the side that block cutter upgrade is on. This also simply bypasses that nasty bug where blocks can be cut even when the block cutter upgrade is present if you log in and log out of the game.
2. Allow offsets for area shields, however, no offset equal to the radius of the shield or bigger than chunk loading range.
3. Expand the size allowed for deflector upgrades (which will also no longer iterate)
4. Make an inhibitor placed on a shield generator core inhibit all shields on a different frequency card in that volume. Save these "inhibited volumes" to disk in the config file (so that if they cause corruption a server admin can see where the volumes are. Also, this would let me lazily use your existing save/load a data field to the config file code.
5. I wanted to update all recipes to use "sensible" stuff. Energy crystals instead of diamonds, adv circuits instead of circuits, more complex recipes for the upgrades, etc. The current recipes are kind of silly. Like the subwater upgrade would have an IC2 pump in it. The EU injector an HV transformer, NOT a batbox. Etc.
6. Implement your "defense grid" idea. There will be an item, an ID badge, that has to be programmed by placing it into an MFFS core. The ID badge must be in a player's inventory for them to be protected, UNLESS they are within a "dead zone" located within 5-10 blocks of the MFFS core OR area projector.
Every 10 seconds, all players and monsters within 6 blocks of the OUTSIDE of the energy shield (to prevent reach exploits) are scanned. Players are given a text message warning, and will be shot on the next scan. (so they have 10 seconds to run away). Each player or monster found will be shot, consuming ammunition inside a magazine in the defense grid cannon upgrade. The damage will be enough to 1 shot any monster and to bring a player in nano armor down to half health. If a player is wearing quantum armor, anti-quantum ammo will be used if it is available in the magazine.
Ammunition recipe is 1 refined iron + 2 copper + 2 bronze + 1 gunpowder + 1 ender pearl. This would make about 16-32 rounds of ammo.
Anti-quantum ammo is 1 iridium plate + 4 refined iron + 1 TNT + 1 ender pearl + 1 adv circuit. This would make only 1 round. 1 anti-quantum round is enough to bring a player in full 100% health quantum down to half, such that 1 more anti-quantum shot will kill them.
All this will be for Bukkit, which will be the primary version I develop for and support. The other versions will only be available if I have time.
Comments about my proposed changes?