1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

Over the Reich - Creation Thread

Discussion in 'Civ2 - Scenario League' started by JPetroski, Feb 4, 2011.

  1. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,685
    OK great, I will take the events in the meanwhile and make the minor changes I discussed above. I'm going to add in the other Experten and make them all unique units. There should be five in total. I don't envision us needing the unit space for other things and there are other places I could find a spare slot if absolutely necessary. The way I see it, the Germans need something "fun." The Allies get all the historic missions and have a use for most of the aircraft, and also get to go out and conquer. We're really expecting the German player to just sit there, watch their empire crumble, and take it. Giving them a few hero units to mess around with should make the game more interesting and help balance the considerable help that the Allies are now getting.

    Just so you know, I'm traveling the early part of next week and won't be able to make any changes.
     
  2. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,685
    I think I pretty much took care of what I need for the events but please post if you take them in case I second guess myself and wish to make other changes later.

    -I corrected the two minor issues above (deleted out the reference to USAAF airbase and fixed the Tours bug).
    -I added the Experten as unique units:

    *Egon Mayer: Germans get this unit after killing a number of enemy bombers beyond escort range;
    *Heinz-Wolfgang Schnaufer - given on night map after Germans score 100 points (also, he is a radar user)
    *Hermann Graf - given if Germans successfully defend Schweinfurt
    *Josef Priller - given if Germans score 300 points
    *Adolf Galland - given if Germans score 500 points and have jet aircraft

    These units cannot be intercepted by anything that can't intercept jets and have other benefits.

    I also added a -100 fuel cost if the Allies kill a German refinery. I'm going to have to test this out and see how it works in practice and if it is more trouble than it is worth given the random nature of improvements being sold, but I'm trying to curtail German operations if the Allies do a good job of targeting the fuel supply.
     

    Attached Files:

  3. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,685
    Here is a list of all the polygons. I'm not totally certain if you need me to define a tile or not to use as a landmark for the sea but I'd probably just grab any one in the middle of these and call it a day for that. At any rate, it will be good to test just how precise one needs to be to make this viable and if I need more precision I'll simply have to go back and do this more carefully.

    I do think if we were able to use cities as landmarks that would be good. So for example, "P-47s shot down Me109 in [Northern Germany] near [Hamburg]."

    I'm not sure if that is possible.

    Edit - just so you know, this error did pop up:

    ERROR: failed to find valid map tile when populating "tileLookup" for 165,122,1 - this tile does not exist, 122 should be an odd number.


    polygon = {{0,0},{98,0},{98,14},{76,20},{61,31},{36,48},{0,48},} --North Atlantic Approach
    polygon = {{0,50},{46,50},{46,94},{0,94},} -- Mid Atlantic Approach
    polygon = {{0,96},{46,96},{46,144},{0,144},} -- South Atlantic Approach
    polygon = {{47,95},{47,145},{113,145},{123,135},{126,126},{123,109},{108,106},{97,101},{82,96},} --Bay of Biscay
    polygon = {{47,91},{83,91},{83,47},{47,49},} --Celtic Sea
    polygon = {{84,72},{84,90},{118,92},{121,95},{131,93},{137,93},{138,82},{147,83},{147,89},{162,90},{165,85},{193,81},{192,74},{186,76},{166,76},{157,75},{142,74},{118,74},} -- English Channel
    polygon = {{84,68},{88,70},{94,70},{102,66},{110,66},{117,65},{127,65},{122,64},{117,63},{111,59},{103,57},{93,59},} --Bristol Channel
    polygon = {{93,55},{103,55},{103,53},{105,51},{113,51},{123,47},{123,41},{126,40},{139,41},{145,35},{144,26},{129,23},{116,18},{116,26},{107,29},{102,36},{93,47},} --Irish Sea
    polygon = {{194,70},{201,75},{211,69},{210,50},{204,30},{192,12},{172,22},{181,35},{186,44},{190,46},{191,51},{192,54},{195,55},{198,56},{202,58},{202,64},{198,66},} -- Dogger Bank
    polygon = {{173,19},{170,16},{166,12},{168,6},{174,0},{185,1},{191,1},{192,14},{185,19},} -- Coast of Scotland
    polygon = {{193,1},{196,14},{201,31},{211,39},{227,43},{243,23},{259,19},{263,1},{222,0},} -- North Sea
    polygon = {{218,76},{218,58},{236,40},{253,29},{269,39},{272,56},{253,59},{241,59},{231,69},} -- Coast of Holland
    polygon = {{274,56},{271,37},{269,19},{281,3},{298,26},{301,39},{301,53},{288,54},} -- Heligoland Bight
    polygon = {{300,24},{299,7},{316,2},{332,0},{347,5},{350,16},{337,17},{333,11},{327,11},{322,14},{315,15},{308,16},} -- Skagerrak
    polygon = {{332,20},{350,16},{362,28},{359,33},{360,50},{336,52},} -- Kattegat
    polygon = {{362,42},{372,40},{376,40},{379,41},{382,40},{385,37},{390,34},{405,35},{406,52},{384,56},{368,54},{360,52},} -- Baltic Sea
    polygon = {{43,39},{46,48},{66,48},{89,47},{103,33},{115,25},{113,17},{104,14},{98,12},{84,12},{74,20},{65,17},{56,16},{51,23},{48,34},} --Ireland
    polygon = {{123,1},{125,23},{137,25},{150,26},{161,23},{171,19},{166,14},{169,7},{177,3},{175,1},{158,0},{135,1},{128,6},} --Scotland
    polygon = {{143,27},{154,28},{168,22},{171,23},{179,35},{182,44},{169,47},{161,51},{151,51},{141,49},{138,44},{141,41},{144,38},} --Northern England
    polygon = {{137,51},{138,62},{134,66},{125,67},{112,66},{105,67},{96,70},{90,72},{96,74},{107,73},{116,74},{122,72},{135,73},{147,73},{153,75},{158,74},{167,75},{176,76},{190,74},{201,63},{199,57},{191,55},{187,49},{179,47},{172,46},{168,52},{158,54},{147,53},} -- Southern England
    polygon = {{136,44},{136,62},{132,64},{123,63},{116,60},{109,57},{104,54},{110,52},{116,52},{118,44},{122,40},} --Wales
    polygon = {{0,134},{12,136},{24,138},{33,139},{38,140},{44,144},{49,145},{33,145},{11,145},{0,144},} -- Spain
    polygon = {{86,92},{94,90},{103,91},{119,93},{131,95},{136,96},{137,109},{124,106},{115,107},{105,105},{95,101},{86,98},} -- Brittany
    polygon = {{120,112},{130,110},{139,111},{147,113},{154,116},{155,145},{139,145},{114,144},{117,117},} --Western France
    polygon = {{138,84},{140,108},{152,112},{169,111},{185,109},{184,88},{164,88},{145,85},} -- Normandy
    polygon = {{160,116},{163,145},{225,145},{223,107},{197,109},{177,113},} -- Southern France

    polygon = {{185,87},{191,89},{196,90},{201,97},{202,108},{194,110},{186,102},} -- Paris
    polygon = {{191,87},{198,90},{202,96},{212,92},{215,81},{211,77},{198,76},{193,77},} -- Pas de Calais
    polygon = {{217,77},{228,76},{240,74},{240,74},{259,85},{265,101},{257,119},{241,119},{229,123},{229,101},} --Belgium
    polygon = {{230,72},{242,60},{254,56},{265,55},{261,71},{247,73},{237,73},} -- Holland
    polygon = {{262,72},{274,66},{285,71},{286,92},{276,94},} -- The Ruhr
    polygon = {{276,96},{269,117},{268,124},{280,124},{295,123},{310,118},{309,99},{296,90},} --Southwest Germany
    polygon = {{311,97},{311,145},{339,145},{341,127},{350,118},{346,104},{328,104},} -- Bavaria
    polygon = {{352,116},{370,118},{392,120},{407,117},{407,145},{373,145},{353,145},} -- Austria
    polygon = {{369,95},{369,117},{388,118},{399,115},{406,108},{391,101},{377,97},} -- Czechoslovakia
    polygon = {{377,61},{379,97},{396,102},{407,101},{406,78},{407,55},} -- Poland
    polygon = {{375,57},{365,49},{356,52},{354,72},{365,83},{375,77},} -- Berlin
    polygon = {{371,85},{371,91},{366,94},{352,96},{337,97},{338,84},{353,81},} -- Saxony
    polygon = {{269,59},{270,68},{278,68},{289,73},{298,82},{305,85},{318,78},{335,79},{346,74},{348,56},{332,52},{318,50},{299,55},{281,57},} -- Northern Germany
    polygon = {{304,48},{298,42},{301,23},{320,16},{332,12},{339,27},{335,41},{323,47},} -- Denmark
     
    Last edited: Oct 18, 2019
  4. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,685
    I'm noticing that I'm forgetting to manually activate them at the end of the turn a lot and suspect others will as well. This will have the effect of showing enemy forces to the other player if the mistake is made as even the control N doesn't seem to bypass this for some reason.

    There is no more manual unload by ramming a shore with a boat so perhaps it isn't necessary? The shore batteries need to fire when the Task force presses k to call up ammo, or when the enemy forces on the task group themselves activate to storm the beaches. I may be missing something but I think we would be OK with removing the 0MP?

    The issue is that the game just forgets that they exist so they never activate unless you click on them, or you reload the game (as the next player in our circumstances).
     
  5. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,685
    I'm going to attempt to increase the Allied score by 2.5 for attacks against Railyards and Military Ports at lunch today - I have the events but will get them to you before the evening.
     
  6. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,685
    I made the change and it works, but I only changed this section here. Is there any chance I have broken the ports elsewhere? I don't think I did - but I wanted to check with you and show you were I put this in case we later encounter a bug. The events are available.

    Code:
    if loser.owner == tribeAliases.Germans then
            if loser.type.domain == 1 and not (loser.type.flags & 2^12 == 2^12) then
            incrementCounter("AlliedScore", specialNumbers.alliedScoreIncrementDestroyPlane)
            --incrementCounter("GermanScore", -specialNumbers.alliedScoreIncrementDestroyPlane)
            elseif loser.type == unitAliases.Industry1 or loser.type == unitAliases.Industry2 or loser.type == unitAliases.Industry3 then
            incrementCounter("AlliedScore",specialNumbers.alliedScoreIncrementKillIndustry)
            --incrementCounter("GermanScore",-specialNumbers.alliedScoreIncrementKillIndustry)
            elseif loser.type == unitAliases.Railyard then
            incrementCounter("AlliedScore",specialNumbers.alliedScoreIncrementKillRailyard)
            elseif loser.type == unitAliases.MilitaryPort then
            incrementCounter("AlliedScore",specialNumbers.alliedScoreIncrementKillGermanPort)
            elseif loser.type == unitAliases.Refinery1 or loser.type == unitAliases.Refinery2 or loser.type == unitAliases.Refinery3 then
                    incrementCounter("AlliedScore",specialNumbers.alliedScoreIncrementKillRefinery)
                    tribeAliases.Germans.money = tribeAliases.Germans.money+specialNumbers.refineryKilledMoney
            --incrementCounter("GermanScore",-specialNumbers.alliedScoreIncrementKillRefinery)
            elseif loser.type == unitAliases.ACFactory1 or loser.type == unitAliases.ACFactory2 or loser.type == unitAliases.ACFactory3 then       
            incrementCounter("AlliedScore",specialNumbers.alliedScoreIncrementKillFactory)
            --incrementCounter("GermanScore",-specialNumbers.alliedScoreIncrementKillFactory)
            elseif loser.type == unitAliases.Urban1 or loser.type == unitAliases.Urban2 or loser.type == unitAliases.Urban3 then
                if isGermanCity(loser.homeCity) then
                    incrementCounter("AlliedScore",specialNumbers.alliedScoreIncrementKillGermanUrban)
                    --incrementCounter("GermanScore",-specialNumbers.alliedScoreIncrementKillGermanUrban)
                else
                    incrementCounter("AlliedScore",specialNumbers.alliedScoreIncrementKillOccupiedUrban)
                    --incrementCounter("GermanScore",-specialNumbers.alliedScoreIncrementKillOccupiedUrban)
                end
            end
        end
    
     

    Attached Files:

  7. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,685
    I have absolutely no idea why the first of these works fine and the second doesn't. I am scratching my head here and could use a second set of eyes in the events file above.

    Code:
    if tribe == tribeAliases.Allies and counterValue("AlliedScore") >= specialNumbers.bomberReinforcement1Threshold then
            justOnce(tribeAliases.Allies.name..tostring(specialNumbers.bomberReinforcement1Threshold).."ThresholdJO",function()
            civlua.createUnit(unitAliases.Stirling, tribeAliases.Allies, {{154,48,2}}, {count=2, randomize=false, veteran=false})
            civlua.createUnit(unitAliases.Stirling, tribeAliases.Allies, {{175,55,2}}, {count=2, randomize=false, veteran=false})
            civlua.createUnit(unitAliases.Stirling, tribeAliases.Allies, {{148,72,2}}, {count=2, randomize=false, veteran=false})
            civlua.createUnit(unitAliases.Stirling, tribeAliases.Allies, {{117,71,2}}, {count=2, randomize=false, veteran=false})
            civlua.createUnit(unitAliases.Stirling, tribeAliases.Allies, {{179,53,2}}, {count=2, randomize=false, veteran=false})
            civlua.createUnit(unitAliases.Stirling, tribeAliases.Allies, {{176,60,2}}, {count=2, randomize=false, veteran=false})
            civlua.createUnit(unitAliases.Stirling, tribeAliases.Allies, {{181,57,2}}, {count=2, randomize=false, veteran=false})
            civ.ui.text(func.splitlines(textAliases.BomberCommandReinforcements))
            end)
        end
    
    The one below does not work. It does not throw up an error, but does not work, create the units, or the text.

    Code:
    if tribe == tribeAliases.Allies and counterValue("AlliedScore") >= specialNumbers.USAAFReinforcement1Threshold then
            justOnce(tribeAliases.Allies.name..tostring(specialNumbers.USAAFReinforcement1Threshold).."ThresholdJO",function()
            civlua.createUnit(unitAliases.B17F, tribeAliases.Allies, {{175,55,0}}, {count=3, randomize=false, veteran=false})
            civlua.createUnit(unitAliases.B17F, tribeAliases.Allies, {{179,53,0}}, {count=3, randomize=false, veteran=false})
            civlua.createUnit(unitAliases.B17F, tribeAliases.Allies, {{176,60,0}}, {count=3, randomize=false, veteran=false})
            civlua.createUnit(unitAliases.B17F, tribeAliases.Allies, {{181,57,0}}, {count=3, randomize=false, veteran=false})
            civ.ui.text(func.splitlines(textAliases.B17Reinforcements))
            end)
        end
    
    What am I missing here? None of the USAAF reinforcement ones are working, but the Bomber Command ones seem to be.
     
  8. Prof. Garfield

    Prof. Garfield Deity Supporter

    Joined:
    Mar 6, 2004
    Messages:
    2,275
    Location:
    Ontario
    If you "translate" the key for the second justOnce function, you get

    "Allies75ThresholdJO"

    If you translate the Stalingrad message justOnce key, you get the same thing. This means that only one of these events will happen, that being the one that the program tries first.

    Try changing the key for one or both. Maybe add some random characters to the end of the key name.

    I'll look into the various issues you have raised when I start work on the events tomorrow.
     
  9. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,685
    Ah - that makes sense. Yes, it works when I make sure I don't have duplicative special number integers. Thanks!
     
  10. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,685
    I changed around the integers to get everything to work going forward. I'm going to make a few more changes since you won't need the events until tomorrow.
     
    Last edited: Oct 18, 2019
  11. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,685
    I made a few changes based on a playtest I've been conducting:

    -Removed prototypes completely from scenario as they were allowing 1 tech per turn conversions once Engines II researched
    -Significantly increased the cost of tier II - III factories and aircraft factories
    -Increased cost of airfield from 3 to 5 fuel
    -Decreased # of times Experten can fire from 6 (which was rediculous) to 4 (which is one better than interceptors)
    -Made heavy flak either fire at night or high-alt, not low. 88s will now be for high targets only (no tanks so no need for them low).
    -Task Force wasn't losing MP when it fired
    -Changed Graf Zeppelin to being built in Kiel rather than Hamburg

    FYI: Another weird thing going on is that the Task Groups aren't losing any MP when they fire. They should lose 6. If this is unavoidable I'll simply make them direct attack units. They should really only be targeting something in the coastal tile anyway. Let me know if this is what we need to do.
     

    Attached Files:

  12. Prof. Garfield

    Prof. Garfield Deity Supporter

    Joined:
    Mar 6, 2004
    Messages:
    2,275
    Location:
    Ontario
    I have the events.
     
  13. Prof. Garfield

    Prof. Garfield Deity Supporter

    Joined:
    Mar 6, 2004
    Messages:
    2,275
    Location:
    Ontario
    What bomber? I'm having a trouble re-creating the error.
     
  14. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,685
    This is fixed. Sorry for the confusion
     
  15. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,685
    I'm not showing any views on the last file I uploaded so I hope you grabbed that one.
     
  16. Prof. Garfield

    Prof. Garfield Deity Supporter

    Joined:
    Mar 6, 2004
    Messages:
    2,275
    Location:
    Ontario
    Events are available. I think I've checked the "outstanding" issues with the Events.lua file, but let me know if I've missed something. I know I still have to replace the 'newspaper' with the new text version, but remind me if there is anything else I have to do other than link the combat report once I've completed it. That'll be my next task.

    changelog

    Ships aren't set to 0 movement when certain units are activated anymore.

    Task forces no longer 'detect' raids, since they no longer have anti-aircraft capability anyway.

    The Operation Hydra Failure text now tells the Germans where their new V2 launcher is.

    V1 and V2 added to units that can only damage urban targets and special targets on the night map. Note that regular bombs also damage flak (which was probably deliberate).
     

    Attached Files:

  17. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,685
    I think that is pretty much it. One suggestion for the newspaper: can we save the text that pops for radar for that turn that discusses what was found and where? Of all the messages, that's probably the one people are going to want to refer back to most.

    I'm going to keep playtesting. I've played the first 20 to 25 turns 4 times this week before making changes that prompt a restart. I guess it is good in respect to how short the turns become, but these MP scenarios are a real bear to balance. I do think I'm pretty close to where I want it, and the scenario looks and feels like I envisioned it, so thank you for that.

    Hopefully we can start a game next weekend if you're around.
     
  18. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,685
    It's been awhile since I've uploaded most of the files. Here is the scenario less sounds and improvements, which haven't changed since earlier releases. Anyone who is following along can feel free to take a look. There will be a few more tweaks over the next week or so, at which point I'll "officially" upload the files to SLeague and Civfanatics. The attaches is to an extent unpolished and is missing some updates, but I'm hoping to have something truly playtestable in a week and further hoping that two people who have never played before will give it a shot!!! So please, take a look, play a few turns vs. yourself to figure out the mechanics, and find someone to shoot down!

    I will be out for the next few days and won't be able to playtest further. My latest is once again at turn 24. A few observations:

    1. The addition of early reinforcements turns the first 5th of the game from pure build up to build up plus action, which is good.
    2. The Germans seem to get 2x Experten pretty early, but they aren't very imbalancing as they only attack 4x per turn. It does give them something fun to do early.
    3. Even with pretty heavy convoy losses, it's still possible for the Allies to have a majority of their cities completely developed between turns 18 - 24, so from that point on, they start building up units rapidly.
    4. I'm pretty happy with most of the balance but think I will rework the Task Force munition a bit.
    5. Veteran units are vital. Early US bombing raids are fairly ineffective but if they can get those damaged bombers home, they can start building a powerful strike force that is deadly.
    6. The payload plus veteran unit mechanisms make this a much more fun campaign.
     

    Attached Files:

  19. Prof. Garfield

    Prof. Garfield Deity Supporter

    Joined:
    Mar 6, 2004
    Messages:
    2,275
    Location:
    Ontario
    I'm making progress, but the combat reporting is rather complicated code. I'm still not using the events yet, however.

    As a reminder to myself, I'll have to track down the task force movement when firing bug.

    You said something somewhere about heavy flak not targeting low altitude. Was that just reactions, or can the 'k' attack now only hit high altitude? If so, I'll have to change some code so that flak doesn't warn about low altitude raids.

    Do you want a kill counter for the "Experten"? Might be fun for the German player.
     
  20. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,685
    Your other changes to the Task Force have fixed the movement bug so it looks to be all set.

    What I think I meant for flak was to simply make it so k fires on altMap 1. I have it on a list to do and can make the change when I get back if you dont (it's actually changed in the events on the main game download I just posted but as it's so small I just intended to do it twice in case you had the events). We had k shoot low alt at first because the 88s were also used as AT guns, but theres little reason for that now that we've changed the ground game, and it's annoying to have to constantly press n to raise the ammo up to where you usually want it.

    After reflection, I'm probably going to allow flak bursts to keep their native transport between maps 0 and 1 because the flak train needs to fire them low, so I dont think you need to make any changes to the warning. Also, I wouldn't want enemy bombers to just dive after releasing their payload to get away from the flak. I just think that 95% of the time a player will use it, they'll want to hit a higher target so as a quality of life mechanism, that's probably where it should start.

    I'm not sure what you mean by the kill counter? If you're tracking how many kills they have, it would be pretty cool, but what would be most useful is a second increment function built that only takes into account aircraft shot down by aircraft munitions (no flak and should have flexibility for how many points awarded for different aircraft, as the Germans used an actual point scale in the West that we could mirror).

    Right now, the Germans get Schnaufer at 100 or so "Points," but in the current version that means mostly U-Boat kills, which is odd. If I could have them show up only after aircraft kills, that would be better.
     
    Last edited: Oct 21, 2019

Share This Page