Over The Reich JPetroski vs. Prof. Garfield

Changed firestorm probability to 3%, and added and tested (in cheat mode) 'late arrival' for allied army groups and task forces. Some of these are set to turn 126, so they won't actually arrive late, but the entries are there in case they need to be changed.

specialNumbers.armyGroup1LateArrival = 100 -- If deadline missed for army group points, the army group will arrive on this turn (assuming the points are achieved)
specialNumbers.armyGroup2LateArrival = 100 -- If deadline missed for army group points, the army group will arrive on this turn (assuming the points are achieved)
specialNumbers.armyGroup3LateArrival = 100 -- If deadline missed for army group points, the army group will arrive on this turn (assuming the points are achieved)
specialNumbers.armyGroup4LateArrival = 110 -- If deadline missed for army group points, the army group will arrive on this turn (assuming the points are achieved)
specialNumbers.armyGroup5LateArrival = 126 -- If deadline missed for army group points, the army group will arrive on this turn (assuming the points are achieved)
specialNumbers.taskForce1LateArrival = 100 -- If deadline missed for task force, it will arrive on this turn (assuming the points are achieved by then)
specialNumbers.taskForce2LateArrival = 126 -- If deadline missed for task force, it will arrive on this turn (assuming the points are achieved by then)
specialNumbers.taskForce3LateArrival = 126 -- If deadline missed for task force, it will arrive on this turn (assuming the points are achieved by then)
specialNumbers.taskForce4LateArrival = 126 -- If deadline missed for task force, it will arrive on this turn (assuming the points are achieved by then)

specialNumbers.firestormChance = 0.03 -- probability that a firestorm will start when an urban center is destroyed without the firefighter improvement in the city

I will next work on going over the readme one last time (I have some notes for things to fact check), and pass it back to you.

The events still need the tab help text changed. Search for
OTRFlagTextTable
OTRUnitTypeTextTable

Tab help now automatically shows munitions, so that can be removed from the custom help text. If you're doing something else, I'll modify this after I finish with the readme. Let me know if you 'take' the events.lua file.
 

Attachments

I just realized that I should probably include a 'clear wait list' function, so that units that are set to waiting are cleared of that status. Sometimes, you want to make some units wait, but only until you've moved other units near them, not until you've moved all other units. I'm thinking of using ctrl+w to activate it.

If I can find a spare key or two, maybe we want a 'find nearest bomber/fighter' button, so you don't have to search for a fighter or bomber to hit a particular target.
 
There are still a few comments to address in the readme.
 

Attachments

I think the science rate is decent advice for the Allies - or, at least it worked out OK for me. There's definitely a point where having extra gold to start swamping the Luftwaffe seems to be more valuable than niftier aircraft. I'll make the adjustments to the readme shortly.
 
I think the science rate is decent advice for the Allies - or, at least it worked out OK for me. There's definitely a point where having extra gold to start swamping the Luftwaffe seems to be more valuable than niftier aircraft. I'll make the adjustments to the readme shortly.

It was my experience playing the Allies that pretty soon, you have so much fuel that you don't know what to do with it, so you might as well keep high science. I suppose now there is the 'experimental aircraft' to convert fuel to science later in the game if necessary.
 
Everything is available.

Ctrl+w now clears the 'waiting' list of units, so all units are selected according to the 'weighting' function. Pressing W will again make them wait.

I changed the help text for the units, removing the references to Ammo, since that is now done automatically.

I added the panzer division to gun battery vulnerable units. You might want to extend the gun battery range and effectiveness. At the moment, battle groups can bombard from out of range.

I'm not going to worry about a 'select nearby airplane' function just now. It requires a bit more thought than I realized in order to be useful. If we keep this in a sort of 'playtest' state for a few weeks, I have time to add it in. It wouldn't affect balance in any way, and be relatively easy to test.
 

Attachments

I changed the reactions so I could remove the double on the He219 and increased barrage distance to 3. I didn't mess with effectiveness as players always have the option of stacking several of them to do that, which you really can't do with ground forces. I updated the readme with your proposed changes and the w key.

I'm reminded of a story my father often tells me. He and his friend had purchased a rundown shack by Lake Champlain together with plans of fixing it up. Over several summers they did marvelous work in this regard. But when it came time to nail in the final board, they decided not to, so that it would forever be "unfinished."

Are we at that final board yet? I'm not losing sleep over the state of this scenario now and could upload the resource change and bump the "post-release support thread" unless there's something you're plugging away on and need some more time. With the only likely changes being a bug fix or two, I don't see the harm in updating the resource.
 

Attachments

Are we at that final board yet? I'm not losing sleep over the state of this scenario now and could upload the resource change and bump the "post-release support thread" unless there's something you're plugging away on and need some more time. With the only likely changes being a bug fix or two, I don't see the harm in updating the resource.

The only thing I can think of to add is a 'quality of life' addition to activate an appropriate fighter or bomber at a key press, so the player doesn't have to search nearby air bases or airspace manually. Unlike the other quality of life changes I made, I never felt an urgent need to make the fix while actually playing. I think what I'll do instead is add a file that the player can modify. I'll move the unit activation weighting there, and put in a couple functions with access to a key or two. Then, the players can modify it to suit their own personal idea of what is good hotkey behaviour (or ask someone else to do it for them). We'll add a suitable house rule that if this file is modified, it must be supplied to the opponent, and the effects explained (so the player doesn't use information they 'shouldn't' have).

I'll make this change tonight.

Beyond that, all I'd like to do is have a bit of playtesting happen before the 'proper' release. I don't want to have the game uploaded to the downloads section, only to have to scramble to make bug fixes that have arisen due to our recent modifications. I did try to test everything, but that was all using the cheat menu and the console. There is a chance (it feels small, but if it felt large, I'd know what to look for) that playing the game properly will cause something to break.

So, basically, aside from that one change above, I'm fine 'finishing' as long as we're reasonably sure that what is here works. I'm sure we could play OTR 10 more times and come up with things to change, but I think that it is now time to see if anyone else wants to play, and if they think anything needs to change.
 
I can spend a bit of time doing a little more bug testing, but I think all I'm really concerned about are "white screens" at this point, specifically regarding some reactions i changed and also the prototype mechanism.
 
Changes:
Fixed a console showing bug when numpad minus is used while the active unit is in an airbase.

Linked the state to the General Library so gen.getState() can be used if necessary, and linked the unit activation function so gen.activate(unit) can be used.

Added playerDefined.lua, and moved customWeightFunction from Events.lua to playerDefined.lua. This way, a user can change how the next active unit is chosen.

Linked 3 functions in playerDefined.lua to numpad Plus, numpad Asterisk, and numpad Slash. At the moment, these just show a message if pressed, directing the player to the file playerDefined.lua.
 

Attachments

I happened to notice that Panzer Divisions have native transport, so I disabled it in the events. Here is an update.
 

Attachments

Changed P47 help to mention that Jabo II is needed to use secondary attack. If you want to change it to another technology, the help text will be updated automatically. However, if you remove the technology requirement, the help text must be changed.

This also includes an updated helpkey.lua file. It seems to have been missed from an update a few days ago, but it is important. I'm pretty sure the other files I provided were current.

In the civlopedia description of P47D40, you don't describe the updated mechanics of no climbing after attack; in fact, you suggest that it can climb to high altitude after an attack. You should update this. Also, it might be worth mentioning that these planes need Jabo II in order to use their secondary attack, so that players don't get surprised.

Its small changes/fixes/corrections like this that make me want to wait a short time before 'releasing' this 'properly'.
 

Attachments

Linked 3 functions in playerDefined.lua to numpad Plus, numpad Asterisk, and numpad Slash. At the moment, these just show a message if pressed, directing the player to the file playerDefined.lua.

Can you write a paragraph or two about how to use this and I'll place it in the readme?
 
At times, Over the Reich games can be large and complicated. To speed up turns, we have implemented a number of "quality of life" innovations, including several hotkeys to speed up certain actions. You might, however, find that there is some part of your turn that takes up precious minutes without any redeeming strategic or amusement value, and wish to automate it. To facilitate this, we have provided a file called playerDefined.lua, where you can write your own hotkey scripts for Over the Reich. We linked the +,*,/ keys on the number pad (not the letter key portion of the keyboard) with 3 functions in playerDefined.lua. By changing these functions, you can automate some aspect of the game. For example, the Allied player might wish to activate a bomber with a payload that is within range of the current location of the cursor. Manually checking all nearby bombers, and counting if they are actually in range is a bit tedious, but it is not that hard to do via a script. If you have an idea for a hotkey, Prof. Garfield is willing implement it for you, or help you implement it yourself. The playerDefined.lua files do not have to be the same for both players (in fact, that is kind of their point). By using player defined hotkeys, we don't have to anticipate what the 'best' hotkeys are, and we can allow different hotkeys based on different player preferences.

The following restrictions should be observed for player defined hotkeys:
1. Don't change game mechanics. The player implemented hotkeys are meant to do things that can be achieved without them.
2. Don't use information you are not guaranteed to get in game. Printing a report of the enemy forces is not allowed. Also, going to the nearest enemy aircraft isn't allowed, since the aircraft might not be visible in the map. Summoning an interceptor to the location of the cursor would be allowed, however.
3. You must provide your copy of playerDefined.lua to your opponent, and advise them any time you make a change to it.
4. If asked, you should provide your opponent an explanation of what your code does.
5. You shouldn't interfere with your opponent's hotkeys. For example, if your opponent saves some information in the state table, don't make your hotkey delete that data.

In addition to the three player defined, there is also the 'customWeightFunction'. This function determines what unit the game will activate next. Each unit is assigned a 'weight,' taking into account the currently active unit. The unit with the lowest weight will be activated next. By changing the customWeightFunction, you can change how the game activates units. For example, in the customWeightFunction provided, radar stations will activate one after the other. This is because, the 'weight' of all radar stations is reduced when a radar station is currently active. Your customWeightFunction should follow the same restrictions as the hotkeys, especially only using information the active player can have in game.

Edit: I suppose I should provide a 'find nearest bomber' script as a sample.
 
About the README. The last time I sent it to you, I made a lot more changes than I noted in the comments. I was expecting you to use that file, and make further changes, as necessary. The comments were just things I wasn't sure about, and wanted you to review. Sorry for the confusion. I can go through the files and make the changes again, if you like. If you'd like to use the file I provided as a base, and re-make your most recent changes to that, add a change that the He219 no longer has a rocket attack.
 
I also noticed the B26 has the Depth Charge, instead of the B24. It might make sense to uncomment this line (almost at the very bottom of the events), and make a new table, just to catch anything else.

--document.makeMunitionCSV(artilleryUnitTypes,secondaryAttackUnitTypes,healthMunitionQuantityTable)
 
Here's a sample playerDefined.lua file. It has a script to find a bomber that can attack the currently selected tile, with what I hope is a reasonable amount of explanatory text for the code.
 

Attachments

I also noticed the B26 has the Depth Charge, instead of the B24. It might make sense to uncomment this line (almost at the very bottom of the events), and make a new table, just to catch anything else.

I thought I changed this in the reactionsOTR that I uploaded?
 
I thought I changed this in the reactionsOTR that I uploaded?

Oh, you're right. I must have been looking at the other readme version. I'm going to go through them both later today, and make make sure all the changes are in a single version.
 
Back
Top Bottom