Over The Reich JPetroski vs. Prof. Garfield

Maybe change the tech tree a bit. I think you wanted to reduce the techs needed for Mustangs. I think it might make sense to put Bomber Destroyers II behind some other tech. Jabo II would delay the tech short term, but not affect long term tech totals (since Jabo III is necessary for tactics II and III). Maybe it makes sense to put Bomber Destroyers II behind Strategic Bombers II.

I ended up putting bomber destroyers after Engines III rather than II because I'm not crazy about making the Germans acquire strat bombers. I cut 2x techs out of the Mustang path.

I'd still like the events. I've added in Verdun but haven't checked the reactions or some of the other things you mentioned. I'll add the V1/V2 to unittypestobedeleted as well.

I made the changes you suggested to the railyards with Karlesruhe, Lille, and Antwerp.

I'll probably upload the new scenario tomorrow unless I find time tonight.

In the console use the commands:

Do you recall how to advance clouds along? I've reintroduced them but the skies are completely clear now. That's not the end of the world but I could have sworn there was a way to make them advance along.
 
Do you recall how to advance clouds along? I've reintroduced them but the skies are completely clear now. That's not the end of the world but I could have sworn there was a way to make them advance along.

I realized that what I said could be misinterpreted. Those commands are available commands related to clouds. What you want to do is enter the command console.updateAllWeather() several times in the console. IIRC, I started the weather patterns off map, so it may take a few weather updates to bring the clouds over Europe.

I'll add the V1/V2 to unittypestobedeleted as well.

The V1s can't be deleted every turn, since they have to stay in the air for 5 or 6 turns. I can make the fix, I just forgot to do so.

I'll probably upload the new scenario tomorrow unless I find time tonight.

I don't think we're quite ready to 'release' the scenario yet. Or, did you simply mean upload the files to this thread, so we're sure we're working on the same thing?

I made a significant portion of the 'deploy prototype' code already (haven't finished, since it must be attached to events.lua). If you don't want it that's fine, but I think it could be useful at the very least to give some limited access to Jets. I actually think the system would provide a reasonable way of 'tweaking' the scenario for balance, by allowing each side to field a limited number of improved units to react to enemy units.

I ended up putting bomber destroyers after Engines III rather than II because I'm not crazy about making the Germans acquire strat bombers. I cut 2x techs out of the Mustang path.

That seems reasonable.
 
I just meant I'd upload what I have, not that I'd put it in the downloads section, dont worry.
 
I'm not sure I'll be uploading something today but I did get lot done with the documentation. I think all that remains "in game" to do is to save as a scenario again. Then add the events you're fixing up and the documentation and then hopefully it is done.
 
Put this into the console
Code:
console.setFlagTrue("PlayingVersusSelf")
to set the flag for 'single player', and save as a different scenario.

Is it normal that this is all I'd see when I do this?

upload_2020-12-14_5-54-13.png



Also, I believe at one point you did this:

--civ.playSound('Turn1RAF.wav')
playMusic('Turn1RAF.wav')

This has never worked for me as I don't play with music on normally -- I assume I need to play with music on for it to occur? What was the reason we changed this, if you remember? I'm inclined to change it back so it definitely plays even if one doesn't have music on, but maybe you changed it to "music" because it is so long and distracting?

Did you want me to do any part of the documentation?

The biggest thing you can do for me with the documentation is to please proof read it once when I'm done just to make sure what I remember is in "this" version actually is in "this" version. My objective is to have this (my portion) done by Thursday with a goal of trying to see if I can finalize my end of things for Boudicca this weekend, if possible. You however can of course do whatever you have time for, but I need to set some time limits so I can get this done. I'm really hoping to have my commitments done for both by the end of 2020, just so I can say I accomplished something this crazy year. Then I can wrap up Cold War and spend the 4 hours time Midway would take to finish in 2021 before diving into "the big one" with all my energy.
 
Here's the scenario so far. The events are yours. I'll be plugging away at the readme now and will then copy/paste that into the describe.txt after you confirm the sections are accurate. Right now the'yre mostly inaccurate but going forward I'm only uploading that document.
 

Attachments

  • OTR.zip
    18.4 MB · Views: 55
I got through page 21 of the readme this morning but now need to go to work. It is attached, but here are some questions:

Readme Questions:

From page 6: (2) there will be a 25% chance that any munition attack will be unsuccessful. We have incorporated these changes to add some randomness to the single player hotseat experience to make it more enjoyable to play against yourself.
Does this change at all with the new hard to kill mechanism? Is it something we need to double check to make sure the hard to kill will work? We haven't done much testing (I think) with the SP events and the new mechanics we have in play and I could see this jumbling things.

From page 8 : -Allows both players to strategically redeploy certain ground units between cities that possess railyards improvements. There must be a viable rail connection between both cities.

Does this only work for the Allies in England or does it also work if they maintain a rail network in France?

From page 11: -The Germans get additional freight trains in France if they maintain a sizeable garrison there (they need to keep at least 3 battle groups or depleted battle groups to earn 1 train, and they receive an additional train for every 3 additional battle groups deployed west of 227 as demarcated by a gray line).

Didn't we just change this or am I losing my mind?

-There is a 2% chance a firestorm will start each time an urban target is destroyed.
Do you think maybe we should bump this to 5%? It never happened and 2% may mean it never does.

From page 17 -
VERY IMPORTANT: Do NOT place your attacking units on any “firestorm” or “rubble” terrain that is created on the high-altitude maps after a successful bombing run. Any enemy aircraft that occupies a tile that a target unit needs to spawn to will be DELETED when the target unit attempts to spawn there (i.e., when the corresponding city rebuilds the improvement). This probably won’t be an issue in 99% of the time, but it is possible to lose aircraft this way.
Is this accurate or does it just get moved over?
 

Attachments

  • README.zip
    1.8 MB · Views: 40
Is it normal that this is all I'd see when I do this?

Yes. You should be able to use console.flag("PlayingVersusSelf") to double check.

Also, I believe at one point you did this:

--civ.playSound('Turn1RAF.wav')
playMusic('Turn1RAF.wav')

This has never worked for me as I don't play with music on normally -- I assume I need to play with music on for it to occur? What was the reason we changed this, if you remember? I'm inclined to change it back so it definitely plays even if one doesn't have music on, but maybe you changed it to "music" because it is so long and distracting?

I think I changed it to Music, since otherwise when you play with music, the music doesn't stop while the sound is playing. What we could try is to add a couple silent sound files, and playMusic with the silent file while using playSound for the sound we want the player to hear.

The biggest thing you can do for me with the documentation is to please proof read it once when I'm done just to make sure what I remember is in "this" version actually is in "this" version.

Sure.

Does this change at all with the new hard to kill mechanism? Is it something we need to double check to make sure the hard to kill will work? We haven't done much testing (I think) with the SP events and the new mechanics we have in play and I could see this jumbling things.

It might be worth testing to double check that something weird isn't happening, but the way I have it in the events is that there is a 25% chance that the munition will fail. Assuming that check succeeds, there is then a check for hard to damage, if the defender's current damage is 0. For that matter, I just noticed that hard to damage doesn't check that the attacker is a munition. (I think this could cause a problem if a battle group attacks a bomber on the ground.)

Does this only work for the Allies in England or does it also work if they maintain a rail network in France?

I think they can use it in France, but definitely check to be sure. I think we discussed disabling it in France (or requiring some other condition), but never actually implemented it.

Didn't we just change this or am I losing my mind?

We did discuss it, and I had suggested removing the requirement entirely. On reflection, however, I just changed the the number required:

specialNumbers.armyGroupOccupationValue = 1 -- value in the german occupation score of having an army unit in france
specialNumbers.batteredArmyGroupOccupationValue = 1 -- value in germano occupation score of having a battered army group in france

specialNumbers.armyGroupOccupationPenalty = 2 -- reduction of occupation score for allied battle group in Franceo
specialNumbers.batteredArmyGroupOccupationPenalty = 0 -- reduction of occupation score for allied depleted battle groups in france
specialNumbers.occupationScoreTrain1Threshold = 2 -- minimum occupation score for first train
specialNumbers.occupationScoreTrain2Threshold = 5
specialNumbers.occupationScoreTrain3Threshold = 7
specialNumbers.occupationScoreTrain4Threshold = 9
specialNumbers.occupationScoreTrain5Threshold = 12
specialNumbers.occupationScoreTrain6Threshold = 14

Here are the other relevant parameters

-- exclude possibility of 7 trains at the moment
specialNumbers.occupationScoreTrain7Threshold = 30 -- 6 trains max for now; minimum occupation score for seventh train
specialNumbers.maxExtractionLevel = 6 -- maximum number of trains germany can attempt to extract from France
specialNumbers.occupationCityRevelationChance0Train = 0 -- chance a city in France will be revealed if the extraction value is 0 trains
specialNumbers.occupationCityRevelationChance1Train = 0 -- chance a city in France will be revealed if the extraction value is 1 trains
specialNumbers.occupationCityRevelationChance2Train = 0.25 -- chance a city in France will be revealed if the extraction value is 2 trains
specialNumbers.occupationCityRevelationChance3Train = 0.75 -- chance a city in France will be revealed if the extraction value is 3 trains
specialNumbers.occupationCityRevelationChance4Train = 1 -- chance a city in France will be revealed if the extraction value is 4 trains
specialNumbers.occupationCityRevelationChance5Train = 1 -- chance a city in France will be revealed if the extraction value is 5 trains
specialNumbers.occupationCityRevelationChance6Train = 1 -- chance a city in France will be revealed if the extraction value is 6 trains
specialNumbers.occupationCityRevelationChance7Train = 1 -- chance a city in France will be revealed if the extraction value is 6 trains
specialNumbers.occupationAirfieldRevelationChance0Train = 0 -- chance an airfield in france will be revealed if the extraction value is 0 trains
specialNumbers.occupationAirfieldRevelationChance1Train = 0 -- chance an airfield in france will be revealed if the extraction value is 1 trains
specialNumbers.occupationAirfieldRevelationChance2Train = 0 -- chance an airfield in france will be revealed if the extraction value is 2 trains
specialNumbers.occupationAirfieldRevelationChance3Train = 0 -- chance an airfield in france will be revealed if the extraction value is 3 trains
specialNumbers.occupationAirfieldRevelationChance4Train = 0.1 -- chance an airfield in france will be revealed if the extraction value is 4 trains
specialNumbers.occupationAirfieldRevelationChance5Train = 0.25 -- chance an airfield in france will be revealed if the extraction value is 5 trains
specialNumbers.occupationAirfieldRevelationChance6Train = 0.35 -- chance an airfield in france will be revealed if the extraction value is 6 trains
specialNumbers.occupationAirfieldRevelationChance7Train = 0.35 -- chance an airfield in france will be revealed if the extraction value is 6 trains
specialNumbers.occupationFirefighterDestructionChance0Train = 0 -- chance a firefighters improvement will be destroyed if the extraction value is 0 trains
specialNumbers.occupationFirefighterDestructionChance1Train = 0 -- chance a firefighters improvement will be destroyed if the extraction value is 1 trains
specialNumbers.occupationFirefighterDestructionChance2Train = 0 -- chance a firefighters improvement will be destroyed if the extraction value is 2 trains
specialNumbers.occupationFirefighterDestructionChance3Train = 0 -- chance a firefighters improvement will be destroyed if the extraction value is 3 trains
specialNumbers.occupationFirefighterDestructionChance4Train = 0 -- chance a firefighters improvement will be destroyed if the extraction value is 4 trains
specialNumbers.occupationFirefighterDestructionChance5Train = 0 -- chance a firefighters improvement will be destroyed if the extraction value is 5 trains
specialNumbers.occupationFirefighterDestructionChance6Train = 0.05 -- chance a firefighters improvement will be destroyed if the extraction value is 6 trains
specialNumbers.occupationFirefighterDestructionChance7Train = 0.05 -- chance a firefighters improvement will be destroyed if the extraction value is 6 trains

Do you think maybe we should bump this to 5%? It never happened and 2% may mean it never does.

Did you ever deliberately try to start one? 5% per urban target killed means that if you bomb a couple day targets to get rid of the firefighters, there is a 14.26% chance that a vulnerable city will burn. 2% means that the chance is 5.88%. I could probably change the code so there is an increased chance if no firestorm has already occurred.

Is this accurate or does it just get moved over?

I will change the code so it gets moved over. Given the extensive changes that have been made, and the number of things that get moved over already, it would seem to me to make the game feel incomplete not to make this fix at this point.
 
I still have the events, since more has to be done.

changes:

Industry II and III now allow freight trains to be built in a city.

Units blocking the creation of strategic targets are now moved to adjacent squares, unless no square is available, in which case the unit is deleted.

NOTE: I did already check for munition status for hard to kill, just in a different location.
 

Attachments

  • Events.lua-14-Dec-2020.zip
    117.9 KB · Views: 37
I started going through the readme while I had a few minutes. I left a comment with each of my changes.
 

Attachments

  • README.docx-comments.zip
    1.9 MB · Views: 47
NOTE: There are a few new sounds for the sound folder. This is the result of a compromise to use civ.playSound instead of civ.playMusic while at the same time not having music play in the background.

experimentalAircraft improvement can't be sold.

-- airfields on these tiles can deploy experimental aircraft
overTwoHundred.experimentalAirfieldTiles = {
[gen.getTileID(civ.getTile(176,60,0))] = true, -- Duxford AF
[gen.getTileID(civ.getTile(352,70,0))] = true, -- Doberitz AF
}

Changing production in a city that can build the experimental aircraft improvement will bring up a list of the aircraft that are available, and their quantities. I don't think this will be too annoying, and I couldn't think of an appropriate button.

Building the experimental aircraft improvement will generate a menu which allows a choice of units to create. The player can choose instead to add 1000 (configurable) to their research progress.

Disabled the 2 cities that were able to build Sunderlands without the tech. Instead, added Sunderlands and FW200s to the experimental aircraft queue, with 10 available.

specialNumbers.BoltHeadMullaghmoreSunderlands =false -- if true, bolt head and mullaghmore can build sunderlands without the tech

Changed label for radar marker to 'Bandits' ("Railroad" in base game)
Changed label for combat marker to 'Crash' ("Pollution" in base game)
Changed label for industry tile markers to 'Illustration' ("Fortress" in base game)

Turned off the message warning that worker allocation has changed. We're pretty sure it works well enough.

Have updated the sound/music for the scenario:
civ.playSound is used for Turn1RAF.wav, etc. However, to accommodate those using the music patch, silent files are played using civ.playMusic, to stop the regular music playing in the background.

I also added the radar sound in the sound folder to play when radar is used.

I checked, and the Allies can use trainlifting in France.

Battle Groups defeat barrage balloons automatically, and do not expend a movement point doing so.

V1s and V2s are now deleted if they start a turn in a city. An appropriate message is shown to the player.

Still to do:

Fill out the prototype tables. Let me know if you need help. You need entries in numberCreated, deployToNight (if the unit should be produced on the night map), and prototypeAvailability (most info goes here).

The number of prototypes deployable is determined by turns and technologies. You can also use fieldPrototype.bestowExtraPrototypes to increase this number by event, but I didn't test this functionality.

I think there could be some merit to providing a lot of unit options through this mechanism. However, that could affect game balance, so maybe it is best just to have jets and a couple other units. On the other hand, tweaking the experimental unit availability shouldn't be all that difficult, and an outdated version would be rather unlikely to ruin the first couple games. Also, unit availability is a relatively 'small' tweak, that is unlikely to impact balance too much, since the change is inherently limited.

RECOMMENDED CHANGES TO STARTING MAP:
Bolt Head and Mullaghmore should have production changed from Sunderlands to something else
Berlin and London need the experimental aircraft improvement removed.

I just remembered that we had a concern about the Allied player not going very far into Germany. Did we want to give some sort of bonus for attacking further inside the Reich?

Also, you were concerned about the Allied player not making the targets for getting Battle Groups. We could change the code so that if they are missed before the 'early' deadline, they still become available at turn 90 or 100. The Allied player would then be in a rush, but they should still have enough troops to make some sort of landing by that point anyway.

Do you want to do anything about these?

Do you think maybe we should bump this to 5%? It never happened and 2% may mean it never does.

Did you ever deliberately try to start one? 5% per urban target killed means that if you bomb a couple day targets to get rid of the firefighters, there is a 14.26% chance that a vulnerable city will burn. 2% means that the chance is 5.88%. I could probably change the code so there is an increased chance if no firestorm has already occurred.

Any new thoughts on changing this? I suppose a simple percentage change is just a 'tweak', but if we want an increased firestorm change if none has already occurred, that will take a bit of programming effort. Buffing the burn chance to 3% means a deliberate attack (daytime to kill firefighters, then 3 night attacks) has a 8.73% chance of working. Thinking on it, maybe with the cloud restriction, a 14% chance is actually fairly reasonable. Firefighters prevent an attack on a single target from creating a blaze, and attacking only at night means the chance at 5% is 9.75% to burn, if all 3 urban targets are destroyed in a night. This would take fairly considerable planning to get such a large force to a single city, and at a time when all the urban improvements are there and there are only 2 clouds within 3 squares of the city in both day and night. (Night might not be such a hard achievement, since I believe that urban and railroads are cloud immune.)

-If you land in an urban center by accident, the aircraft will be moved outside the city, have its hitpoints drastically reduced, and movement points expended the next turn. This is to prevent the player from “shielding” their aircraft in these cities.

At the moment, I don't believe aircraft are moved outside the city. Do you want this to happen? I suppose I can see the point of doing so so that units don't 'hide' in cities until the danger is gone.
 

Attachments

  • OTR-Changes-15-Dec.zip
    1.5 MB · Views: 55
Fill out the prototype tables. Let me know if you need help.


Looking through this I noticed that the Meteor and P-80 don't have exactly the same conditions as you have allocated a tech to the P-80, so before diving in I thought I'd better ask - is there a reason this is so? There are other jets which share pathways and is it a problem if the tables in here are the same for two different units?

Code:
prototypeAvailability[unitAliases.Meteor.id] ={
    minRequirement = {  tribe = tribeAllies,
                        turn = 50,
                        tech1 = tAliases.ExperimentalDesign,
                        forbiddenTech = unitAliases.Meteor.prereq},
    turns = {[80] = 1},
    techs= {--[tAliases.AxialFlowCompressor.id]   =1, -- This is allocated to the P80
            [tAliases.JetFighterFocus.id]       =1,
            [tAliases.CentrifugalFlowEngine.id] =1,
            [tAliases.JetFighterDesign.id]      =1,
            [tAliases.JetFightersPrioritized.id]=1,
            [tAliases.ArgumentforJetJabo.id]    =1,}
    }
prototypeAvailability[unitAliases.P80.id] ={
    minRequirement = {  tribe = tribeAllies,
                        turn = 60,
                        tech1 = tAliases.ExperimentalDesign,
                        tech2 = tAliases.JetFighterDesign,},
    turns = {[100] = 1},
    techs= {[tAliases.AxialFlowCompressor.id]   =1, -- This is allocated to the P80
            }
    }

Bolt Head and Mullaghmore should have production changed from Sunderlands to something else
Berlin and London need the experimental aircraft improvement removed.

I did this in civitas but haven't uploaded/changed the new scenario yet.

Do you want to do anything about these?

-I think giving the reinforcements at turn 100 would make sense, personally. That's not a lot of time.

Any new thoughts on changing this? I suppose a simple percentage change is just a 'tweak', but if we want an increased firestorm change if none has already occurred, that will take a bit of programming effort. Buffing the burn chance to 3% means a deliberate attack (daytime to kill firefighters, then 3 night attacks) has a 8.73% chance of working. Thinking on it, maybe with the cloud restriction, a 14% chance is actually fairly reasonable. Firefighters prevent an attack on a single target from creating a blaze, and attacking only at night means the chance at 5% is 9.75% to burn, if all 3 urban targets are destroyed in a night. This would take fairly considerable planning to get such a large force to a single city, and at a time when all the urban improvements are there and there are only 2 clouds within 3 squares of the city in both day and night. (Night might not be such a hard achievement, since I believe that urban and railroads are cloud immune.)

If we do anything I'd say just buff it a tad bit.

At the moment, I don't believe aircraft are moved outside the city. Do you want this to happen? I suppose I can see the point of doing so so that units don't 'hide' in cities until the danger is gone.

I had it happen to me a few times but I can't recall if they showed up in the city or next to it. It doesn't really matter. If someone wants to "hide" their units by reducing them to nearly no hitpoints each turn, I can't see the advantage.

Attached is the readme through the end. I've incorporated your changes. I'm going to try and get these tables as well as the other help text changed by the end of the day tomorrow, though with a N'oreaster bearing down on us, who knows how that will shake out. It looks like the kids may have a white Christmas though which would be nice for them after this year.
 

Attachments

  • README (2).zip
    1.9 MB · Views: 34
Looking through this I noticed that the Meteor and P-80 don't have exactly the same conditions as you have allocated a tech to the P-80, so before diving in I thought I'd better ask - is there a reason this is so? There are other jets which share pathways and is it a problem if the tables in here are the same for two different units?

That was partly for testing, and partly since I was under the impression that the P80 saw less service than the Meteor. You can make changes to anything I did if you feel it is appropriate.

-I think giving the reinforcements at turn 100 would make sense, personally. That's not a lot of time.

If we do anything I'd say just buff it a tad bit.

I can make the changes next time I have the events.

I had it happen to me a few times but I can't recall if they showed up in the city or next to it. It doesn't really matter. If someone wants to "hide" their units by reducing them to nearly no hitpoints each turn, I can't see the advantage.

There could be some advantage to protecting planes under a battle group, or something. I can't see this being too exploitable, however, since the plane must subsequently expose itself at 1 hp next to the city. Any place where protection would be desirable would also make that move extremely dangerous. I'll double check the mechanic, then change the readme appropriately.

Attached is the readme through the end. I've incorporated your changes. I'm going to try and get these tables as well as the other help text changed by the end of the day tomorrow, though with a N'oreaster bearing down on us, who knows how that will shake out. It looks like the kids may have a white Christmas though which would be nice for them after this year.

Good luck. Before you work on the individual unit help text, I think I started work on an automated way to show munitions in the tab help. I can finish that off, if you think it would end up saving you some time.
 
Good luck. Before you work on the individual unit help text, I think I started work on an automated way to show munitions in the tab help. I can finish that off, if you think it would end up saving you some time.

I'll still end up doing the descriptions for the civilopedia but if you have something you've been working on that you also think is helpful, by all means. The only events I "have" at the moment is the module for the experimental aircraft, so feel free to utilize the other files.
 
The Helpkey now automatically produces munitions info. In documentMunitions.lua, I have a table forbiddenUnitMaps, which notes what maps each unit can't use. The purpose is to suppress the map notation for munitions. For example, the B17F would have Primary(H)= to represent that it can only use its munition on the high map. Without forbiddenUnitMaps, it would show Primary (HN)= instead. I think this table is correct, but there might be a German unit that I misclassified.

There is also a table ammoTextAmmoName[unitType.id]=string that provides an alternate name for the ammo units. I think we have enough space that it doesn't really matter, so I didn't fill it.

Helpkey can now handle multiple lines of text for the unit help, so OTRUnitTypeTextTable can use \n^ to separate 2 lines if you run out of room on one line. Note, you must use " to define the string, not [[, otherwise the \n character isn't read properly. Come to think of it, the way to put in a newline in that context is probably to actually press enter and start a new line.
 

Attachments

  • OTR-HelpKey-16-Dec.zip
    126.1 KB · Views: 38
Just realized that you might need a more recent version of the General Library than we had in OTR for this to work.
 

Attachments

  • generalLibrary.lua.zip
    22.8 KB · Views: 53
On line 1746 the unittype.id needs to be 67 not 64. I have changed it in my copy but if you're working on the events it needs the change as well. Edit - I also removed the secondary attack from Priller, Galland, and Graf. This is more of a Meyer specialty.
 
Last edited:
Unless you're making changes, I'm ready to upload this and call it done... Then, on to Boudicca!
 

Attachments

  • OTR.zip
    20.3 MB · Views: 36
There are a few more changes to the events that I need to make that were mentioned earlier. I didn't want to make them while you had the events. I also need to double check certain things in the readme. I'm inclined to think that we should leave a finished copy as an attachment in the forum for a couple weeks before uploading to the download section. I think there were a few extra last minute fixes before. I'll try to finish up the odds and ends today.
 
Top Bottom