The Cold War 1947 - 1991

@Prof. Garfield could we maybe get around this by using the reaction system, but allowing two-way "combat" rather than the one way system from OTR?

So basically, if the Soviets wanted to contest air space among a unit stack, they'd activate their unit next to the stack (maybe with a warning text box explaining this may be a bad move). When the activation happens, both sides can inflict damage on the other. If the defender is defeated, then it dies and problem solved. If you can't defeat it, you don't have air superiority.

If only bombers were on the stack, they should probably be moved as you mentioned.

It would be nice to get around this Civ2 quirk.

OK, I think we're getting somewhere here. All we have to do is have a way to simulate combat between air units, sort of how I would do it in onResolveCombat for the cases where a fighter attacked a ground unit. We don't have to worry about modifying attack and defense values so that Civ II chooses the 'correct' unit to defend.

How about this:

If a fighter is active when 'k' is pressed, all airborne enemy aircraft in adjacent squares are checked, and the 'best' one defensively is selected. Then, a simulated combat happens with the same rules as regular Civ II combat. If the attacker is defeated, it is destroyed. If the selected defender is destroyed, and the attacker's MP is reduced to 1/4. An attack from an aircraft with 1/4 mp will automatically be declared a loss, so the plane can't do any more damage, though it might move away by a square.

In this way, air superiority could be contested without worrying about ground unit defenders.

I suppose I could make it so that if multiple adjacent squares have air units, a message box lets the attacker choose what square to attack.
 
How about this:

I don't want to speak for @techumseh or @civ2units but "I think" we're all in agreement that there is an issue with the base civ2 mechanism because the "order of operations" is off in that fighters should defend against fighters/aircraft first. I think we're all in agreement that it is stupid that a tank would attack an aircraft first, but I also get tech's concern that it's equally stupid to have a tank drive up to a stack and press a button to negate all air superiority.

Your solution outlined above would resolve this and the fact that you can use the base game mechanism/combat formula makes it, in my mind, ideal. The only thing I'd throw out there is this:

Regarding the 1/4 MP reduction - instead of doing this can we just reduce the MP of the attacker to 1 and only allow attackers to attack if they have at least 2 MP? There are no 1-turn air units out there so every air unit only gets to attack once per turn, and this would resolve that. I'm concerned about using 1/4 instead because that seems like too high of a range reduction that isn't really necessary. I don't want a unit that normally has a range of 12 to only be able to launch attacks with 9 spaces, though I suppose there's no way around the 2 MP remaining issue given the way we're missing the turns aloft data in the ToTPP code.
 
@techumseh and @civ2units - regarding reactions... I will try and put together a user-friendly table for you as fast as I can, however if you open up the simpleReactions.lua file in a text editor (notepad would work for this though notepad ++ is preferable) here is how you read the gobblygook in the meanwhile:

--Look for stuff that looks like the below.


reactInfo[object.uMiG15.id] = {reactionsPerTurn = 1, --reactionInfo[object.uMiG15] is the unit that will have the reaction i.e. the defender. reactionsPerTurn is how many times that unit will react per turn (so the MiG-15 will react once).
details={
{triggerUnitTypes = {object.uStrategicBomber,object.uTu95,object.uVulcan,object.uB52Stratofortress}, forbiddenUnitTypesOnTileReactionUnit = carrierList, --Trigger unit types are the units the MiG will react TO. The carrier list stuff means it won't react to units that are on a carrier.
reactionRange = 2, hitChance = 1, damageSchedule = damageType.EarlyJetFightervsBomberAttack, --Reaction range is how many tiles away the MiG will react. Hit chance being 1 means it will definitely hit. damageSchedule is math but basically early stuff won't do as much damage as later stuff.
destroyMunitionsWithKill = true, --destroyMunitionsWithKill means that if the MiG shoots down the bomber via a reaction, it also destroys the munition. Hence, defend your cities with fighters to protect them.
},-- close reactionDetail 1

Code:
--FIGHTER VS. STRAT BOMBERS
damageType.LateJetFightervsBomberAttack = gen.makeThresholdTable({[0]=7,[.25]=8,[.5]=9,[.75]=10}) -- Late Jets
damageType.MidJetFightervsBomberAttack = gen.makeThresholdTable({[0]=6,[.25]=7,[.5]=8,[.75]=9}) -- Mid Jets
damageType.EarlyJetFightervsBomberAttack = gen.makeThresholdTable({[0]=2,[.25]=4,[.5]=6,[.75]=8}) -- Early Jets (
damageType.PropFightervsBomberAttack = gen.makeThresholdTable({[0]=3,[.25]=4,[.5]=5,[.75]=6}) -- Prop fighters

Just so you're aware, ALL fighters have a hit chance of 1 (meaning 100% chance to hit). However, the earlier the fighter, the less damage it does. As you can see from below, even if you don't understand exactly what the numbers are, they get smaller the older the aircraft is. The number after the "=" is how many hitpoints are done in damage depending on a dice roll. I kept things very simple with this damage roll. Basically there is a 25% chance that any of these numbers could be the damage. (so a 25% chance of a late jet inflicting 7 hit points in damage, and a 25% chance of it inflicting 8 hit points in damage, and a 25% chance of it inflicting 9 hitpoints in damage, and a 25% chance of it inflicting 10 hitpoints in damage.

Thus, 3x late jet fighters in any city is a guaranteed kill against a 20 hitpoint bomber (because at the least, you'll get 21 hit points in damage), if that makes sense. The enemy would need to bring enough bombers to "absorb" the reactions of these three fighters (in this case with late jets, 4 reactions). Thus, in the late game, a city that was defended by 3 late jet fighters could definitely fend off 4 strategic bombers (they'd all be destroyed) but might not fend off the 5th. I say "might" because if those jet fighters had "good" roles (and did 10 hp damage), they aren't all going to react. Only the first two fighters would (because once the unit is destroyed, the other fighters stop reacting, so you might be able to stretch it to more bombers destroyed than 4). At least that is MY understanding of it, and if I'm wrong, please correct me @Prof. Garfield.


The ATTACK submarines will react against the SSBN submarines. They have a slight hit chance, that really depends on the sub v. sub matchup. For example, an SSK (the first sub) will have a 50% chance of hitting the Early SSBN (first missile sub) but only a 30% chance of hitting the Late SSBN (the later missile sub). The SSN advance (last attack sub) has an 80% and 60% chance of hitting the Early SSBN and late SSBN respectively. Attack subs can also react to attack subs when they're launching cruise missiles but they have even worse odds.

The damage schedule (how much damage these reactions do) for subs is a guaranteed 20 hitpoints (unit death) IF they hit. This is because a sub that is torpedoed is done for. So, there's a good chance the torp misses, but if it hits, it's an automatic kill.

I hope this helps you plot your strategy. I'll try and get a table added to the readme shortly. Let me know what questions you have. Thanks!
 
Last edited:
Regarding the 1/4 MP reduction - instead of doing this can we just reduce the MP of the attacker to 1 and only allow attackers to attack if they have at least 2 MP? There are no 1-turn air units out there so every air unit only gets to attack once per turn, and this would resolve that. I'm concerned about using 1/4 instead because that seems like too high of a range reduction that isn't really necessary. I don't want a unit that normally has a range of 12 to only be able to launch attacks with 9 spaces, though I suppose there's no way around the 2 MP remaining issue given the way we're missing the turns aloft data in the ToTPP code.

You've misunderstood me, I think.

In OTR, we had to leave aircraft with 1 movement point, because our movement multiplier was 1 (that is, we didn't have fractional movement points). Here, we can leave the air unit with 1/4 move, since we have a movement multiplier of 4. On the unit's next turn, it will have its full movement allotment in order to return to base, but with its range counter reduced by 1.

I view this version of the 'k attack' to be equivalent to making a 'regular' attack, in that we want the fighter's turn to end after that attack is made. Since we don't have access to the range variable, we have to leave the unit with some amount of movement points. If we leave the unit with 1/4 movement point, it can still fly another square, but if it attacks, I can easily recognise it in the resolve combat code (since aircraft don't normally have fractional movement left), and make the unit automatically lose.

For a 12 move fighter, the fighter can fly out 11 squares, have 1 mp left, make an 'air superiority attack', now have 1/4 mp left, and move another square (I think air and sea units with a fractional movement point can always move the extra tile). On the next turn, the fighter will have another 12 mp to return to base.

Thus, 3x late jet fighters in any city is a guaranteed kill against a 20 hitpoint bomber (because at the least, you'll get 21 hit points in damage), if that makes sense. The enemy would need to bring enough bombers to "absorb" the reactions of these three fighters (in this case with late jets, 4 reactions). Thus, in the late game, a city that was defended by 3 late jet fighters could definitely fend off 4 strategic bombers (they'd all be destroyed) but might not fend off the 5th. I say "might" because if those jet fighters had "good" roles (and did 10 hp damage), they aren't all going to react. Only the first two fighters would (because once the unit is destroyed, the other fighters stop reacting, so you might be able to stretch it to more bombers destroyed than 4). At least that is MY understanding of it, and if I'm wrong, please correct me @Prof. Garfield.

That is correct.

forbiddenUnitTypesOnTileReactionUnit = carrierList, --Trigger unit types are the units the MiG will react TO. The carrier list stuff means it won't react to units that are on a carrier.

This means that a MiG won't react if it is on the carrier, not that it won't react to a bomber that is currently on a carrier. You want forbiddenUnitTypesOnTileTriggerUnit for that.

Does this only work for strategic bombers (ie. when 'k' is pressed)? Most cases will be when the attacker is coming in with tactical ground support aircraft or even fighters. I think it's important that only those air units stacked with the ground unit (or naval unit) be used to defend against an air attack on that stack.

The 'reaction' event only occurs for a 'k' or 'u' munition attack, so only strategic bombers and subs in this scenario, I think. A 'reaction' event could be made to take place before 'regular' combat, but no one has done that yet as far as I am aware.
 
Just a shot in the dark... Is it possible to reduce the defense factor of any ground or naval unit stacked with an air unit to 1 or 0? If it were, then the air units would automatically defend and only fighters could attack them. Once all air units were destroyed the remaining ground or naval units would then defend normally.

It is only possible to change attack and defense ratings for entire unit types, not individual units. In practice, this means I can buff the attack of a unit under certain circumstances, since I know what unit is active and therefore going to attack, but I can't buff or debuff individual unit defences, since I don't know where an attack will take place. The way the event triggers work, once I know what unit is being attacked, it is too late to change combat stats.

What we're doing is going to achieve what you want, except that instead of moving into the square, you will move adjacent to it, and press 'k' with your fighter to challenge the air unit with the highest defence in that square.
 
@JPetroski

What's the transportation cost for gifted units supposed to be? At the moment it is 2 gold per tile in the x direction, and 1/4 gold per tile in the y direction. I think I meant to suggest 1/2 gold per tile, but forgot a set of parentheses.

I had noticed when I held Dakar that the gifting didn't take a round map into account, and figured I'd tidy that up while making these other fixes.

On the topic of fixes, for the inspection mechanism, I've currently set it up so that diplomatic units (spies) are not visible to the inspector. Instead, they show as freight for all players except USA and USSR, while for USA and USSR they show up as engineers. I make them show up so that you can't examine the size of the unit stack to determine if there are any missing units, and deduce the existence of spies. I figure the presence of spies wouldn't be readily observable to a boarding party. Let me know if you want spies to be listed as spies.
 
I don't know if this has happened for anyone else, but as a single-player I got this events error for RFK between Apr. and Aug. 1968. Screenshot below:

Spoiler :
kennedy_error.gif


If this has already been noticed, I can erase this message. :)
 
Sorry about that @amadeus - I forgot to write "CurrentEventsRobertKennedy. Here is a fix for you. @Prof. Garfield when making changes to these things unfortunately we need to change both the eventsMP and eventsSP files btw and we'll all use the batch file to bring our game current. Can you please add the above change (at line 20700) to your list?

What's the transportation cost for gifted units supposed to be? At the moment it is 2 gold per tile in the x direction, and 1/4 gold per tile in the y direction. I think I meant to suggest 1/2 gold per tile, but forgot a set of parentheses.

I think you probably meant to make it 1/2 and 1/4 to account for the way the maps are drawn with tiles so I'd agree you should make that swap please.

On the topic of fixes, for the inspection mechanism, I've currently set it up so that diplomatic units (spies) are not visible to the inspector. Instead, they show as freight for all players except USA and USSR, while for USA and USSR they show up as engineers. I make them show up so that you can't examine the size of the unit stack to determine if there are any missing units, and deduce the existence of spies. I figure the presence of spies wouldn't be readily observable to a boarding party. Let me know if you want spies to be listed as spies.

Cool feature - you're probably the only player I know who would figure that out or notice but if you want to change it have a ball :)

I had noticed when I held Dakar that the gifting didn't take a round map into account, and figured I'd tidy that up while making these other fixes.

Thanks!
 

Attachments

  • EventsSP.zip
    156.3 KB · Views: 48
Is it possible to gift units between Non Aligned and China?
I have tried it but can only gift units to the Europeans and the other Western nations which doesn't really make sense.
 
They are competitors, so I had disabled this ability on purpose, however, perhaps it would be better if this scenario were more of a sandbox and it was enabled.

I'm fine with switching it for you, if the others don't mind.
 
@JPetroski

At the moment, I've set the cost of inspecting a freighter to be 50 for both parties. Would you like a different value (the cost can be different for the inspector and the freighter owner). I think its important for inspection to have a cost for the player being inspected, so that inspection creates tension and refusing inspection doesn't immediately imply something untoward is going on.

I don't mind if India and China give things to each other.
 
They are competitors, so I had disabled this ability on purpose, however, perhaps it would be better if this scenario were more of a sandbox and it was enabled.

I'm fine with switching it for you, if the others don't mind.

Sounds good :)
If the others agree, I would be happy if you would enable the function.

First I tried to play both nations as competitors to each other like in reality but fighting a war against myself isn't really meaningful.
Unless you would like to see a war against my both nations.
 
At the moment, I've set the cost of inspecting a freighter to be 50 for both parties. Would you like a different value (the cost can be different for the inspector and the freighter owner). I think its important for inspection to have a cost for the player being inspected, so that inspection creates tension and refusing inspection doesn't immediately imply something untoward is going on.

That works fine for me. Thanks!
 
Does this scenario have an intended counter strategy against shore bombardment by battleships and cruisers?

I think you'll find they're both quite vulnerable to strat bombers (though air cover helps) and your SCUD missile launchers.

Rocket Research I can't be given away, so SCUD launchers are worthless for the Pro East when it comes to fighting marauding navies. It also means that the Pro East can't get SSM batteries. Veteran battleships also have little to fear from rookie strategic bombers, and gaining veteran status for strategic bombers is nearly impossible (and you would still need several to sink a battleship).

I'm becoming more and more convinced that the Pro East can't make any progress without massive help from events, like in Vietnam. A single tank can hold up quite a few RPGs and gun trucks, so spawning inland rebellions is a losing proposition, since the Europeans can use colonial system to move units anywhere they need to. A successful coup must take place on the same turn it is spawned, and must capture a coastal city, and that city should be an international port, or good units will cost even more.

The trouble is, once you're on the coast, you're subject to bombardment from the sea, where battleships can easily defeat whatever units you buy to defend, and it costs the attacker almost nothing. Maybe you can sink a ship or two if you also buy bombers and the attacker can't quite empty your city, but it is still a losing proposition. And you must be on the coast, or you can't win a war. Even in Iran, right on the doorstep of the USSR, I blundered my port city (although I'm not sure I could have held it against battleships and cruisers even if I hadn't tried to attack Kuwait), and lost the war because I couldn't reinforce.

The situation is extremely frustrating, and leads me to believe that the best strategy for the Soviets is to invade Europe almost immediately, perhaps waiting to discover jet fighters or something first. It feels like the only tool the Soviets have is to threaten to invade Europe, and if the threat is credible, you might as well just do it.
 
Top Bottom