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. Prof. Garfield

    Prof. Garfield Deity Supporter

    Joined:
    Mar 6, 2004
    Messages:
    2,431
    Location:
    Ontario
    Events are available, post if you take them. I probably won't do more work tonight, but you never know.

    Changelog:

    The Airlift conducted flag is set for all cities with Jagdfliegerschule in the after production event.

    The airlift already done by this city message should be changed accordingly.

    uBoats now respawn only in the following cities:

    local tierOneRespawnCities={
    cityAliases.Brest,
    cityAliases.LeHavre,
    cityAliases.Bordeaux,
    cityAliases.LaRochelle,
    }

    local tierTwoRespawnCities={
    cityAliases.Hamburg,
    cityAliases.Bremen,
    cityAliases.Wilhelmshaven,
    cityAliases.Lubeck,
    cityAliases.Kiel,
    cityAliases.Rostock,
    }

    A city is chosen at random from among the tier one cities with ports. If there are no such cities, a tier two city is chosen instead. The likelihood of respawning is the same probability=germanPorts/(germanPorts+alliedPorts).

    The new submarine has the same home city as the destroyed one (with fewer cities to respawn in, I foresaw a problem where there was not enough support).


    TRAINLIFT

    trainlift is done by pressing 'u' when a ground unit is active.
    Trainlifts must be done between cities with railyards, and which are connected by terrain that a train can pass.

    specialNumbers.trainliftCityExclusionRadius = 5 -- Enemy can't "trainlift" using rails within this many squares of an enemy city
    specialNumbers.trainliftBattleGroupExclusionRadius = 3 -- enemy trainlifts can't use rails within this many squares of a full strength battle group
    specialNumbers.trainliftDepletedBattleGroupExclusionRadius = 2 -- enemy trainlifts can't use rails within this many squares of a depleted battle group
    specialNumbers.trainliftFixedCost = 50 -- base cost in gold for any trainlift
    specialNumbers.trainliftCostPerTile = 2 -- cost for each tile traversed by trainlift

    local trainCanCrossTerrain = {
    [0]=true,
    [1]=true,
    [4]=true,
    [6]=true,
    [8]=true,
    [9]=true,
    [12]=true,
    [13]=true,
    [14]=true,
    }
    All other enemy ground units block the rails within a radius of 1 if they are
    standing on a train traversable tile (so that they block the rails even if the
    square they are on can be avoided by cutting a corner)

    Air (and sea) units don't block the tracks for a trainlift (this can be
    altered if needed).

    Railyard units block the rails below, on the off chance that a railyard is
    more than 5 squares from a city and has been rebuilt by the enemy

    Units and cities on a different landmass don't prevent trains from moving.

    Some units can't be trainlifted. If the table has a string instead of true, a custom message is shown instead of a generic one

    -- noTrainlift is indexed by unittype id. These units can't be transported using the
    -- 'trainlift system. If the value is a string, that message is displayed for why the
    -- unit can't be transported by train
    -- If true, a generic message is shown.
    -- Air and Sea units can never be trainlifted, the function just closes with no action
    local noTrainlift = {}
    noTrainlift[unitAliases.FlakTrain.id] = "Flak Trains cannot be transported by other locomotives. They must relocate under their own power."
    noTrainlift[unitAliases.FreightTrain.id] = "This is already a train. We can't transport it using the military transport system."
    noTrainlift[unitAliases.EarlyRadar.id] = true

    On this topic, you may want to review the trainlift messages. It was hard to figure out exactly what to write, since there is no comparable word to airlift for trains.

    I have removed "orderly retreat" (activated by backspace) from infantry units, now that there is trainlift.


    Still Needed Tasks
    Change the archive system
    Build a better combat reporting system and implement a log maker (at least the parts necessary for OTR).

    Maybe Needed Tasks
    Port sabotage, Port bonus. Perhaps if you're not on your "home" landmass, you're train network must have access to a functioning military port in order to trainlift. This shouldn't be too hard. Or, we forbid using the trainlift entirely on the invasion continent (even easier).
    Review the messages shown for city capture, now that Germans can do cross channel invasion also.
     

    Attached Files:

  2. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,980
    Well done - I'm sitting in the airport and wont get in until late, but I'll check everything out tomorrow.
     
  3. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,980
    Did you send everything necessary? I think I might need "characterTable"

    Keyboard shortcuts:
    Ctrl-F1: Prints this help text
    Ctrl-F2: Aborts running script
    Ctrl-F5: Reruns last script
    Up/Down: Scrolls input history


    Over the Reich
    D:\Test of Time\Scenario\OTR - update\text.lua:80: module 'characterTable' not found:
    no field package.preload['characterTable']
    no file 'D:\Test of Time\lua\characterTable.lua'
    no file 'D:\Test of Time\lua\characterTable\init.lua'
    no file 'D:\Test of Time\characterTable.lua'
    no file 'D:\Test of Time\characterTable\init.lua'
    no file 'D:\Test of Time\..\share\lua\5.3\characterTable.lua'
    no file 'D:\Test of Time\..\share\lua\5.3\characterTable\init.lua'
    no file '.\characterTable.lua'
    no file '.\characterTable\init.lua'
    no file 'D:\Test of Time\Scenario\OTR - update\characterTable.lua'
    no file 'D:\Test of Time\characterTable.dll'
    no file 'D:\Test of Time\..\lib\lua\5.3\characterTable.dll'
    no file 'D:\Test of Time\loadall.dll'
    no file '.\characterTable.dll'
    stack traceback:
    [C]: in function 'require'
    D:\Test of Time\Scenario\OTR - update\text.lua:80: in main chunk
    [C]: in function 'require'
    D:\Test of Time\Scenario\OTR - update\events.lua:95: in main chunk
     
  4. Prof. Garfield

    Prof. Garfield Deity Supporter

    Joined:
    Mar 6, 2004
    Messages:
    2,431
    Location:
    Ontario
    Sorry. Check my text library. Will be home in a 3-4 hrs if you still have trouble.
     
  5. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,980
    I was able to find it - it works great! Thanks!
     
  6. Prof. Garfield

    Prof. Garfield Deity Supporter

    Joined:
    Mar 6, 2004
    Messages:
    2,431
    Location:
    Ontario
    For combat reporting, I'm planning a system where the report is organized based on region. The table has the region name as the key, and as value it has function(tile)-->bool , which returns true if the combat tile (where the unit that was attacked sits) is in the region and false otherwise.

    If the combat tile is not in any region, the nearest city, or other landmark is used to organize the report.

    If you update the General Library, you can get a function gen.inPolygon, which will be useful in defining regions. There is also a PolygonScript available, which should further facilitate defining regions. Let me know if you need help.

    I'll probably be able to get a decent amount of work on combat reporting done Sunday, not sure about Saturday (will be evening, if anything). Most of this work won't need the events (since I'll be working from a new module), but post if you take them, since I'll need to modify the events to join everything together.
     
  7. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,980
    I took a stab at finding the gen.inPolygon function but could not find it.

    I also took a closer look at the text for the military rail transport system and honestly I can't think of a better one. The United States apparently calls it the "Military Railway Service" but they aren't the main users of it in this scenario, and frankly I think yours sounds better anyway. I vote that we keep it.

    I might be missing something but I think that until it's time to start defining regions, I am not in the events so I'll continue to plug away with the scenario literature and help files. I'm making good progress on the readme but as long as it is, when it's done it'll probably need a proof skim just to make sure I haven't missed anything.

    For those who are following along - I think this is pretty exciting and useful for other projects:

    We now have a situation where units can basically be "airlifted" by the rail network, but only between cities with train stations, and only if there is an actual rail track terrain type (plus a few others we chose) connecting the two. Doing so costs fuel (money) commensurate with the distance between the two stations. Enemy bombers can destroy a unit that represents a train station, which changes the terrain away from rail track, so it is possible to shut this down from the air. It can then be repaired by building a certain building which replenishes the unit, and changes the terrain.

    Pretty friggin' cool if you ask me
    :goodjob:
     
    CurtSibling likes this.
  8. Prof. Garfield

    Prof. Garfield Deity Supporter

    Joined:
    Mar 6, 2004
    Messages:
    2,431
    Location:
    Ontario
    I've attached the current General Library files.

    I've also added a note in the General Library thread to download from GitHub by pressing the Green "Clone or Download" button. With that instruction, is it now easy to download it? If not, I may go back to attaching updates to thread posts.

    Yes, I'll go over the readme at some point as well, to make sure that we don't miss any functionality. I'll still post when I have the events, but I don't think you have much to do in the events just now.
     

    Attached Files:

  9. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,980
    I believe I'm done with the describe.txt and will continue working on the readme.

    I don't think there is a reason we can't start the final playtest soon if the below is all that remains to be done. All of it seems to be stuff that could be added while playing without messing with any major compatibility issues. Two eyes on a playtest would make it easier to QA any text files I may have missed. Four eyes would be even better, and would let us know if two people who have not taken part in the design of this can play it and have fun *cough* *cough* @CurtSibling @techumseh @committed hero @tootall_2012 @Knighttime @Fairline @Tanelorn @anyonewhoisstillplaying this game. These multiplayer games are really hard to playtest by yourself so anyone who has been following along, this is pretty much wrapping for development and aside from some tweaks we'll probably make after your feedback, I think you'll be enjoying close to the finished product here.

    I would like to try and polish this over the next week or so (probably playing 20-30 turns single player as well) but then possibly make it available for a download for anyone who is interested, and start up another match against you @Prof. Garfield, if you're game. Just let me know which side you'd like to play.

    I take it the city capture is in one of the game text files so I'll poke around and take a look at it prior to Sunday.

    If it isn't too hard then I'd go with the former (require a military port) mostly because I could see that being very useful in other scenarios. But if it is going to cause too much trouble then the latter would work just fine. Neither should happen immediately so I don't know that it would matter if we just launched a playtest.
     
  10. Prof. Garfield

    Prof. Garfield Deity Supporter

    Joined:
    Mar 6, 2004
    Messages:
    2,431
    Location:
    Ontario
    I mean the text that shows after the dday invasion when the allies or Germans capture a city (i.e. the allies must control a port between Bordeaux and Hamburg, etc. or the Germans win).

    I think you are right. All that might happen is that archived messages are no longer available, or something similar. I'll make sure to get port sabotage done just to make sure.

    I think I'll be able to put in a good amount of work Wednesday and Thursday, but I won't have time at all Friday to Monday based on my current schedule.

    Sure, I'll play you again. I'd like to play Allies, since I actually know what most of their aircraft are supposed to do. Do you want to post the game play to Youtube? If so, we probably want to wait until I finish all the automatic logging stuff.
     
  11. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,980
    Can we just add an elseif to the code so the Germans get a different text message?

    That sounds good. I'm glad you're willing to reprise your role as the Allies. You're the better player, so I think it is good that you play the protagonist so we get an idea of how easy (or not) the new changes have made it for them to invade. I'm slightly concerned about the payload implications, but have tweaked many of the points to account for that.

    I'm still pretty new to the whole YouTube scene - are you proposing that we simply film ourselves each turn and then upload a video of that turn, walking players through our decisions (and new options) or how would this look?
     
  12. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,980
    I found a bug -

    When pressing backspace with an 88mm flak battery, I get the message for "Consolidating Ground Forces: We can equip 0 88mm Flak Batteries with the contents of -1 freighters..."

    This error does not occur when using backspace to fire all radar stations.

    The munition is still created so I can work through it for my single player playtest but it's definitely something we need to fix.
     
  13. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,980
    One more quality of life suggestion - I know we don't want to add many events, but I think you're going to be glad you added this when you start to play.

    Can we somehow make it so that bombers that start off a turn in a friendly airfield with "NONE" as their home base are re-homed to that airfield? Otherwise one has to manually change the home city for each aircraft repeatedly which is a chore a few turns in and will only be worse 50 turns in. I think so long as this happens after the start of the turn, we don't need to worry about them disbanding automatically (though the player will need to make sure they take care in where they land to not overwhelm the system, or they're going to need to fly to other airfields that turn or lose the aircraft the next one).

    I foresee this being a huge time waster if we don't proactively fix it.
     
  14. Prof. Garfield

    Prof. Garfield Deity Supporter

    Joined:
    Mar 6, 2004
    Messages:
    2,431
    Location:
    Ontario
    I have the events.

    I don't remember exactly what all the messages were, but one was shown when I had the Germans capture London during the trainlift test, and it was not correct for that situation. It shouldn't be too hard to fix, we just have to go through the city capture events and check.

    Yes, basically that. Play the turn, maybe point out new features, explain a bit of your strategic thinking. Basically show off the game, and that the turns are not too long. Have regular uploads to maximize the "advertising" value.

    I'll look into it.

    Sure, I'll make planes home automatically to an airfield, unless the airfield can't support any more units. In that case, I'll give the player a text notice.
     
  15. Prof. Garfield

    Prof. Garfield Deity Supporter

    Joined:
    Mar 6, 2004
    Messages:
    2,431
    Location:
    Ontario
    Events are available.

    changelog:

    Fixed backspace re-group formation bug

    Fixed harbour user table so that depleted battle groups have 6 movement points instead of 8

    Unit types that have a payload attack which are activated in a city are automatically homed to that city if they have no home city and the city can support an extra unit. If the city is maxed out on support, a message is shown to the player.
     

    Attached Files:

  16. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,980
    I have the events but will have them back to you shortly
     
  17. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,980
    The events are available.

    Changelog:

    -Fixed error where 2nd turn text was appearing on turn three in place of third turn text
    -Added clear instructions to 2nd turn text regarding rehoming (like Knighttime's "leader bonus" the rehome doesn't take effect if one manually activates the bomber - the game must cycle to that bomber).
    -Increased German score for killing heavy bomber to .25 from .1

    I looked through the city capture piece. It looks like the weird message is the one that triggers when the Germans start pushing the Allies back into the sea. I think if we can only have the current message occur if state.DDayInvasion=true then that would likely solve it in most realistic scenarios (I think it would be pretty unlikely that the Germans would invade England AND the Allies would invade France, which is the only way it wouldn't make sense). I did not attempt to change this.

    "If you update the General Library..." Where am I supposed to put this? It's currently in a folder in the scenario called "General Library-master" - am I supposed to move the contents of that folder into the actual scenario file, or the main lua folder in ToTPP?

    Also, to update this - am I grabbing coordinates and putting them in here?:


    Code:
    local polygonTable={
        {},
        {},
        {},
        {},
        {},
        {},
        {},
        {},
        {},
        {},
    }
    Also a weird thing I've noticed in the playtest is that a pollution marker appears at 197,85 but it isn't on my development save. No idea what is causing this and I'm not too worried about it but I point it out here in case later it proves to be the culprit of some unknown future issue.
     

    Attached Files:

    Last edited: Oct 10, 2019
  18. Prof. Garfield

    Prof. Garfield Deity Supporter

    Joined:
    Mar 6, 2004
    Messages:
    2,431
    Location:
    Ontario
    I've had less time to work on this yesterday and today than I thought I would. If I get the chance to do some work today, I'll work more on the combat reporting feature, but I won't try to integrate it into the events. I'll be working very long hours Friday to Monday, so I don't want to risk breaking anything in the events. If you need some information or a fix, let me know. The worst that will happen is that I'll say it has to wait.

    My latest events provided an even more recent copy of generalLibrary.lua, so that is updated. Move PolygonScript.lua to the OTR folder, then delete the folder "General Library-master". Then use the Load Script function to run PolygonScript, which will provide instructions on making and checking polygons, and print table constructors for polygons to the console. Note that the inPolygon function does not check the map, so that must be done with other code.

    Here is how I plan to use regions:

    -- Every battle is assigned a region for organizational purposes.
    -- The region is determined by means of a "Geography Table"
    --
    -- A geographyTable is a table indexed by strings, with the
    -- following possible values
    -- geographyTable["My Region Name"] = function(tile)-->boolean
    -- The tile is considered in My Region Name if the function
    -- returns true, and not in the region if the function returns false
    -- geographyTable["My First Landmark Name"] = tile object
    -- geographyTable["My Second Landmark Name"] = {integer,integer,integer}
    -- geographyTable["My Third Landmark Name"] = {integer,integer,table of integers}
    -- geogrpahyTable["My Fourth Landmark Name"] = {integer,integer}
    -- If the tile is not in any region, then it is placed in a 'region' "near"
    -- a landmark. A landmark described as a tile or as an integer triple
    -- is only a landmark on a single map
    -- A landmark described by a pair of integers is good for all maps
    -- A landmark of the form {integer,integer,table of integers} is a
    -- landmark for all the map numbers in table of integers


    I'll make the change when I get the chance.

    OK, I'll track this down at some point.
     
  19. JPetroski

    JPetroski Emperor

    Joined:
    Jan 24, 2011
    Messages:
    1,980
    I'm pretty sure I have the text files sorted now. Here is the readme. The only part I wasn't sure of was the port mechanism as I'm not sure where we will land on that (if the Allies will get 3 bonus units or not, for example).

    -Also - I took a quick look at the polygons -

    so basically I will press k to define my corners, then press backspace and ask it to fill the polygon, and then press backspace and ask it to print the coordinates, and then report back here to you with the coordinates?

    Edit - from a quality of life standpoint for the first turn, do you think I should bother with making each civ start (as I would envision) "ideally" (so having things set up with the right entertainers, "right" production, etc.) or do you think that this would be a waste of time as players would just tweak it anyway? Right now I have things set up somewhat plausibly but probably not ideally.

    The first turn is a monster so I thought there might be a way to make it better is all.
     

    Attached Files:

    Last edited: Oct 13, 2019
    CurtSibling likes this.
  20. Prof. Garfield

    Prof. Garfield Deity Supporter

    Joined:
    Mar 6, 2004
    Messages:
    2,431
    Location:
    Ontario
    Yes, we can do it that way. Also, let me know what the maps are. I.e. do you want low and high altitude day to be one region, and night for the same coordinates to be another, low high and night to be one region, or low high and night to be three separate regions.

    I might also be able to give you an example of what to do yourself, tomorrow.

    I think you should make it good enough so that players can jump right in and test out aircraft and figure other things out without first having to fix dozens of cities. I wouldn't worry about making it perfect, just good enough so that someone playing for the first time doesn't suffer a major disadvantage because they waited a few turns before taking a close look at city production.

    Maybe set up cities with partially completed items, so a handful of things finish each turn, and then the player can take a look at that city and decide new production or change worker allocation, etc.
     

Share This Page