TripleA Logo TripleA Forum
    • TripleA Website
    • Categories
    • Recent
    • Popular
    • Users
    • Groups
    • Tags
    • Register
    • Login

    Domination 1914 No Man's Land - Official Thread

    Scheduled Pinned Locked Moved Maps & Mods
    250 Posts 22 Posters 225.1k Views 21 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C Offline
      Cernel Moderators @redrum
      last edited by

      @redrum said in Domination 1914 No Man's Land - Official Thread:

      @Cernel That is similar but different as gas is not an AA unit. Its a firstStrike suicide unit and capture would happen before that.

      Not sure if here you are talking from a program or from a rules standpoint, but from a "intended rules" standpoint, capture of infrastructures happen at the same time as territory capture, that is after all AA, first strike and regular attack and defence fire alike. So, if in that issue the AAA would just normally defend, like infantries and such, they would be still able to roll their defensive dice before being captured.

      Meaning that if capture happens between AA fire and first strike, that would be a bug too.

      @Panther for confirmation.

      C 1 Reply Last reply Reply Quote 0
      • C Offline
        Cernel Moderators @Cernel
        last edited by

        @Cernel Of course, for the standard games, infrastructure capture happening at any point after AA fire is good enough, and where the point is would change nothing, in practice, since all infrastructures are only able to AA fire (and the only 1 case of combat-able infrastructure is the AA gun before v5).

        However, moving from the practice to the theory, the reason why, for example, when you move 1 infantry into a territory with only 1 AA gun (before v5), you capture the territory and the AA gun without the infantry actually attacking is not that this capture happens between AA fire and regular attacks, but it is due to the fact that the infantry skips attacking, having no targets, and go directly to the, still subsequent, step, where it captures the AA gun and the territory. Program wise, you can let them fire, as that is just pointless.

        If we would make a mod of any games from v2 to v4 (in Classic, there is the matter of capturing infrastructures by blitzing), in which all is the same except the fact that AA gun defend normally, then they would fire before being captured, if alone, and would not be captured if killing all attackers.

        @Panther for confirmation.

        All this is not for going off topic, but just for clarifying that, for the bug report at hand, it is totally irrelevant the fact that the gas attack is AA or first strike or normal.

        redrumR 1 Reply Last reply Reply Quote 0
        • redrumR Offline
          redrum Admin @Cernel
          last edited by

          @Cernel No, I'm just pointing out that the situations are related but slightly different. Point being that if that bug is fixed to allow only AA to fire before allowing capture that wouldn't change gas behavior as you point out the capture would need to happen after the entire first round of battle. I think this discussion is better in the github issue or the existing forum thread: https://forums.triplea-game.org/topic/1698/can-air-transport-be-removed-from-land-combat-other-paratrooper-qs

          I believe gas has always been the way it is in NML though most players I think would prefer being allowed to attack with just gas (and that may have been the original intention of the map creator but I'm not sure).

          TripleA Developer with a Passion for AI: https://forums.triplea-game.org/topic/105/ai-development-discussion-and-feedback

          C 1 Reply Last reply Reply Quote 0
          • C Offline
            Cernel Moderators @redrum
            last edited by

            @redrum Yes, gas has always been the way it is, as well as the engine behaviour, at least after the very early development stage of the map.

            K 1 Reply Last reply Reply Quote 0
            • C Offline
              Cernel Moderators
              last edited by

              An issue with the map may be that it is hard to tell apart Americans from Italians (I don't think it is because they are both green, as it is easy enough to tell apart the ownership colours, as well as those units that follow a clear colour scheme, for example the infantries and the transports):
              20200202.png

              redrumR 1 Reply Last reply Reply Quote 1
              • redrumR Offline
                redrum Admin @Cernel
                last edited by redrum

                @Cernel Yes, some of the units are not colored well and its confusing between US and Italy. I changed the territory colors so that they are fairly unique but I don't have the image skills to recolor the unit images. If you want to take a pass on making the unit image colors more consistent then I'd gladly update the map with them. I think the Italian artillery in particular are really bad and appear to be some weird image hack as their outline is messed up looking as well.

                TripleA Developer with a Passion for AI: https://forums.triplea-game.org/topic/105/ai-development-discussion-and-feedback

                C 1 Reply Last reply Reply Quote 0
                • C Offline
                  Cernel Moderators @redrum
                  last edited by

                  @redrum Since one would just make a mass recolorization, in this case, it would be good having a list of all units (hopefully few) that are badly in need of other fixes, like Italy field_gun, as just recolorizing that one is probably going to get worse.

                  Or is it the Italy field_gun the only case, so one could just fix that one, then recolourize all safely?

                  1 Reply Last reply Reply Quote 0
                  • C Offline
                    Cernel Moderators
                    last edited by

                    Anyways, I've mass-recolorized the images, but now the map doesn't load, and I get this error:

                    feb 02, 2020 11:08:45 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:45 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:45 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:45 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:45 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:45 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:45 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:45 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    
                    feb 02, 2020 11:08:46 PM games.strategy.engine.framework.GameRunner lambda$start$0
                    GRAVE: Width (0) and height (0) must be non-zero
                    java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                    	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                    	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                    	at java.awt.Image.getScaledInstance(Unknown Source)
                    	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                    	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                    	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                    	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                    	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    	at java.lang.Thread.run(Unknown Source)
                    

                    Repeated so many times I could not post, so I cut down a bunch of the errors.
                    Any idea what that is about?

                    C 1 Reply Last reply Reply Quote 0
                    • C Offline
                      Cernel Moderators @Cernel
                      last edited by

                      @Cernel In any case, if the mass recolourization creates images that somehow TripleA cannot read, I don't think I want to recolourize each image singularly, so I'd be out of this. I've no idea why it is not working, so I'm stuck.

                      1 Reply Last reply Reply Quote 0
                      • C Offline
                        Cernel Moderators
                        last edited by Cernel

                        I've just verified that each time I "Colorize" an image with GIMP 2.10, that image becomes unreadable by TripleA, causing serious display issues, and receiving this error (so, doing it in batch or singularly doesn't matter):

                        feb 03, 2020 12:02:22 AM games.strategy.engine.framework.GameRunner lambda$start$0
                        GRAVE: Width (0) and height (0) must be non-zero
                        java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                        	at java.awt.image.ReplicateScaleFilter.<init>(Unknown Source)
                        	at java.awt.image.AreaAveragingScaleFilter.<init>(Unknown Source)
                        	at java.awt.Image.getScaledInstance(Unknown Source)
                        	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:131)
                        	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:112)
                        	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:106)
                        	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:71)
                        	at games.strategy.triplea.ui.MapPanel.lambda$paint$7(MapPanel.java:625)
                        	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                        	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                        	at java.lang.Thread.run(Unknown Source)
                        

                        So, I cannot do any colorization at all, until I sort this out, sadly, which may not happen in a long time. I could try to update GIMP, but I see it is still at version 2.10.

                        It seems the problem is only with the "Colorize" function, not anything else I've tried.

                        Sorry.

                        EDIT: I tried to mass-recolourize the Italians of "world_at_war" too, with GIMP 2.10, and it failed the exact same way, except only for "Artillery", "Mech.Inf" and "HeavyTank", that display correctly (no idea why). So, I'm really clueless. Someone else will have to do the recolourizations or whatever, until I sort this out. I've also verified that it is not only for "Colorize", as only flipping an image horizontally caused this problem too.

                        HeppsH 1 Reply Last reply Reply Quote 0
                        • HeppsH Offline
                          Hepps Moderators @Cernel
                          last edited by

                          @Cernel Maybe post the images here.

                          "A joyous heart sours with the burden of expectation"
                          Hepster

                          C 1 Reply Last reply Reply Quote 0
                          • C Offline
                            Cernel Moderators @Hepps
                            last edited by

                            @Hepps Here it is an example, this is the original infantry for Italy:
                            infantry_original.png
                            If I colourize it this way with GIMP 2.10 (nothing else done):
                            infantry.png
                            Then the game fails to draw the map, and I get this error:

                            feb 03, 2020 3:27:38 AM org.triplea.game.client.HeadedGameRunner lambda$main$0
                            GRAVE: Width (0) and height (0) must be non-zero
                            java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                            	at java.desktop/java.awt.image.ReplicateScaleFilter.<init>(ReplicateScaleFilter.java:102)
                            	at java.desktop/java.awt.image.AreaAveragingScaleFilter.<init>(AreaAveragingScaleFilter.java:77)
                            	at java.desktop/java.awt.Image.getScaledInstance(Image.java:172)
                            	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:134)
                            	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:118)
                            	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:95)
                            	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:64)
                            	at games.strategy.triplea.ui.panels.map.MapPanel.lambda$paint$7(MapPanel.java:758)
                            	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
                            	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
                            	at java.base/java.lang.Thread.run(Thread.java:834)
                            
                            feb 03, 2020 3:27:38 AM org.triplea.game.client.HeadedGameRunner lambda$main$0
                            GRAVE: Width (0) and height (0) must be non-zero
                            java.lang.IllegalArgumentException: Width (0) and height (0) must be non-zero
                            	at java.desktop/java.awt.image.ReplicateScaleFilter.<init>(ReplicateScaleFilter.java:102)
                            	at java.desktop/java.awt.image.AreaAveragingScaleFilter.<init>(AreaAveragingScaleFilter.java:77)
                            	at java.desktop/java.awt.Image.getScaledInstance(Image.java:172)
                            	at games.strategy.triplea.image.UnitImageFactory.getImage(UnitImageFactory.java:134)
                            	at games.strategy.triplea.ui.screen.UnitsDrawer.draw(UnitsDrawer.java:118)
                            	at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:95)
                            	at games.strategy.triplea.ui.screen.Tile.getImage(Tile.java:64)
                            	at games.strategy.triplea.ui.panels.map.MapPanel.drawTiles(MapPanel.java:824)
                            	at games.strategy.triplea.ui.panels.map.MapPanel.paint(MapPanel.java:701)
                            	at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
                            	at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
                            	at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5255)
                            	at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(RepaintManager.java:1654)
                            	at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1629)
                            	at java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1566)
                            	at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1333)
                            	at java.desktop/javax.swing.JComponent._paintImmediately(JComponent.java:5203)
                            	at java.desktop/javax.swing.JComponent.paintImmediately(JComponent.java:5013)
                            	at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:868)
                            	at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:851)
                            	at java.base/java.security.AccessController.doPrivileged(Native Method)
                            	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
                            	at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:851)
                            	at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:826)
                            	at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:775)
                            	at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1901)
                            	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
                            	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
                            	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
                            	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
                            	at java.base/java.security.AccessController.doPrivileged(Native Method)
                            	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
                            	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
                            	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
                            	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
                            	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
                            	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
                            	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
                            	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
                            

                            The map is currently unzipped in single folder, so the path is:
                            downloadedMaps/domination_1914_no_mans_land/units/Italy

                            And the image, as you can see, load without problems here in forum, or anywhere else I can tell, but not in TripleA, both for the latest prerelease 2.0.17884 and for the current release 1.9.0.0.13066, albeit not alike.

                            HeppsH 1 Reply Last reply Reply Quote 0
                            • HeppsH Offline
                              Hepps Moderators @Cernel
                              last edited by

                              @Cernel I was curious to see how the image was formatted when saved with Gimp.

                              Appears to be a png image. That was my main thought... was whether the images were saved properly.

                              "A joyous heart sours with the burden of expectation"
                              Hepster

                              C 2 Replies Last reply Reply Quote 0
                              • C Offline
                                Cernel Moderators @Hepps
                                last edited by

                                @Hepps The other thing I realized is that when I tried (and failed, the same way) with the WAW Italians, the only 3 images that worked fine were the "Artillery", "Mech.Inf" and "HeavyTank", as said, and those are exactly the only 3 ones I made, for the Italians.

                                1 Reply Last reply Reply Quote 0
                                • C Offline
                                  Cernel Moderators @Hepps
                                  last edited by

                                  @Hepps If you swap the infantry for Italy (adding the second one I uploaded), in the D1914NML map, does it fail for you too?

                                  1 Reply Last reply Reply Quote 0
                                  • K Offline
                                    KurtGodel7 Moderators @Cernel
                                    last edited by

                                    @Cernel

                                    Gass seems just fine the way it is now. Changing it to eliminate the land unit requirement would make gass even stronger, and I don't know that stronger gass is what this map needs.

                                    1 Reply Last reply Reply Quote 0
                                    • C Offline
                                      Cernel Moderators @redrum
                                      last edited by

                                      @redrum When conscripts alone attack trenches alone, the two immediately stalemate, but the territory remains to the previous ownership. Does this make sense?

                                      First of all, if I have two otherwise normal units, except that are attack/defence 0, what one assumes it would happen is that you keep making combat rounds as normal, but nobody ever hitting anyone else.

                                      Thus, as per normal combat, if I send conscripts alone against trenches alone, I would expect still to be able to retreat, while the program doesn't allow me to, but instantly stalemates me, like if the trenches are some sort of ignorable unit that I decided to ignore.

                                      If there should be a default behaviour upon this case, I would rather say that the program should oblige me to retreat, as it would be pointless keeping making useless combat rounds (eventually, I will have to retreat anyways, to go on with the game).

                                      On the other hand, if I cannot retreat, it makes sense to stalemate, as otherwise I would be stuck attacking at 0 against units defending at 0, and the game would remain stuck forever in this pointless battle loop. This would be the case of offloading 1 conscript into a territory with 1 trench, if the program would not stalemate me.

                                      However, moving from a rules standpoint to a realistic standpoint, I can see that if I am in a territory with someone else, and we both cannot hit each other, there is nothing the other side can do to avoid me staying there, while I can do nothing to remove it from the territory, thus stalemate makes sense.

                                      However, in this case, why is the conscript not capturing the territory?

                                      Since the conscript can enter and capture an empty territory, why this same conscript is, instead, not able to enter and capture a territory with only trenches inside, in the moment these trenches can do nothing to keep the conscript out of the territory, how can they avoid the conscript capturing it, instead?

                                      And how can any user be expected to infer that in case of conscripts attacking trenches all this will happen:

                                      • I will have no ability to retreat at all.
                                      • I'm able to stay in the territory, and I'm actually forced to do so.
                                      • The trenches are able to avoid me capturing the territory.

                                      ?

                                      Also, should the "v3" rule that you cannot send transports alone to make a battle extended to conscripts too?

                                      K 1 Reply Last reply Reply Quote 0
                                      • K Offline
                                        KurtGodel7 Moderators @Cernel
                                        last edited by KurtGodel7

                                        @Cernel

                                        I'll sometimes attack a defended territory with pure conscripts, for the purpose of "teleporting" my conscripts from one territory to another. For example: suppose there is a large Austrian force in Don. I am too weak to hold both Moscow and Volgograd. There is one Turkish infantry in Ryazan. My goal is to hold Volgograd only while abandoning Moscow, so I attack that 1 Ryazan infantry with all Moscow conscripts and 1 conscript from Volgograd. After one round of combat I retreat to Volgograd.

                                        If a territory is defended with pure trenches, the above cannot be done. As you pointed out, conscripts only are stranded when attacking trenches only. But there's an easy workaround for someone familiar with how this works: simply attack the trench with conscripts + 1 unit with offensive firepower. You don't have to worry about winning the battle and getting stranded in the territory you're attempting to teleport through, because trenches have two hitpoints.

                                        I'm not a fan of converting conscripts to v3 rules for transports. For one thing, a conscript is conceptually different from a v3 transport. V3 transports cannot be taken as casualties in combat, whereas "taken as casualty" is pretty much the entire point of the conscript! Secondly, from a game play perspective, imposing a v3 mod on the conscript would make teleporting conscripts dicey. To take the above example: if I wanted to teleport my Moscow conscripts to Volgograd, by attacking the Turkish infantry in Ryazan, now I have to send the conscripts I'm trying to teleport, + 1 infantry. If that infantry hits on the first combat round, then my conscripts are stranded in Ryazan. Depending on the game situation, that could potentially be absolutely brutal.

                                        On the other hand, I feel that a conscript being "stranded" in a trench-only territory is annoying and unnecessary. How to resolve that problem? One way to accomplish that is this: you get to launch an attack with pure conscripts, but you are forced to retreat after one combat round. There is no legitimate game reason for someone to want to continue the combat into a second round if they're attacking with 0 offensive firepower. This solution would eliminate the option for conscripts to strand themselves in conscript/trench stalemates, without doing anything to harm conscripts' ability to teleport.

                                        C 3 Replies Last reply Reply Quote 0
                                        • C Offline
                                          Cernel Moderators @KurtGodel7
                                          last edited by Cernel

                                          @KurtGodel7 said in Domination 1914 No Man's Land - Official Thread:

                                          @Cernel

                                          I'll sometimes attack a defended territory with pure conscripts, for the purpose of "teleporting" my conscripts from one territory to another. For example: suppose there is a large Austrian force in Don. I am too weak to hold both Moscow and Volgograd. There is one Turkish infantry in Ryazan. My goal is to hold Volgograd only while abandoning Moscow, so I attack that 1 Ryazan infantry with all Moscow conscripts and 1 conscript from Volgograd. After one round of combat I retreat to Volgograd.

                                          I'm sure you do, and many others do. This is a typical strategy amongst games having attack 0 fodder land units that are both slow and cheap, especially with Neutral (unowned) territories. Question is, is it an illegal strategy? I can tell you that both in Classic and in all games from Anniversary onwards ( @Panther recently highlighted it), you cannot attack with transports alone, while you can in Revised. Is this because they are transports or is this because they are attack 0? My take is that it is because they are attack 0, so, unless the mapmaker makes an exception in Notes, this should apply to any offenceless units (and this game is supposed to follow Anniversary rules).

                                          If a territory is defended with pure trenches, the above cannot be done. As you pointed out, conscripts only are stranded when attacking trenches only. But there's an easy workaround for someone familiar with how this works: simply attack the trench with conscripts + 1 unit with offensive firepower. You don't have to worry about winning the battle and getting stranded in the territory you're attempting to teleport through, because trenches have two hitpoints.

                                          I feel like the strategy of attacking 1 infantry with 100, or so, conscripts, and keep teleporting endlessly is at odds with what the retreat dynamic is intended for, but, on the other hand, if you can do it against 1 defending infantry alone, I cannot see a reason why you cannot do it against 1 trench alone (though I see that thanks to the 2 hit points repairable, this practically works too, the way you say). Overall, I feel all these dynamics are very weird.

                                          I'm not a fan of converting conscripts to v3 rules for transports. For one thing, a conscript is conceptually different from a v3 transport. V3 transports cannot be taken as casualties in combat, whereas "taken as casualty" is pretty much the entire point of the conscript!

                                          This is actually not true. V3 transports, once in combat, are just normal units, and can be taken as casualties, with the only two exceptions that they have to be taken as casualties after all other units and autodestruction if alone (which is mostly there just to save you the effort of keeping rolling dice until all transports are inevitably destroyed). People might have the tendency of seeing v3 transports as sort of "sea infrastructures", but they are not.

                                          You probably know, or anyways you can easily test, that if you attack with a number of transports and other units and get hit in excess to the number of other units, transports will be taken as casualties for the remained, then you can retreat the surviving transports (this is just to show you that it is not true that they "cannot be taken as casualties in combat", just they have to be taken as last casualties).

                                          However, I get what you say, and basically the current behaviour of v3 transports is substantially the same thing as saying that "V3 transports cannot be taken as casualties in combat and are autodestroyed when alone", except only for giving you a chance to retreat some of them after a failed attack, that basically virtually never happens as long as you play Low Luck.

                                          Secondly, from a game play perspective, imposing a v3 mod on the conscript would make teleporting conscripts dicey. To take the above example: if I wanted to teleport my Moscow conscripts to Volgograd, by attacking the Turkish infantry in Ryazan, now I have to send the conscripts I'm trying to teleport, + 1 infantry. If that infantry hits on the first combat round, then my conscripts are stranded in Ryazan. Depending on the game situation, that could potentially be absolutely brutal.

                                          Yeah, but wouldn't this make more sense with the scenario in general. Do you actually feel it is sensible that you can keep attacking the same defender for hundreds of rounds with hundreds of units, endlessly. This is particularly extreme when you have one static Neutral defender, that becomes basically a jumping element in a platformer game.

                                          On the other hand, I feel that a conscript being "stranded" in a trench-only territory is annoying and unnecessary. How to resolve that problem? One way to accomplish that is this: you get to launch an attack with pure conscripts, but you are forced to retreat after one combat round. There is no legitimate game reason for someone to want to continue the combat into a second round if they're attacking with 0 offensive firepower. This solution would eliminate the option for conscripts to strand themselves in conscript/trench stalemates, without doing anything to harm conscripts' ability to teleport.

                                          I totally subscribe to this "petition", but want to point out that you also need to find a solution (alternative to stalemating) to the case in which I offload 1 conscript into a territory with 1 trench, otherwise the game will end stuck forever in an endless combat loop. Even forbidding sending conscripts alone would not be a solution, unless you enforce it "per ship", as offloading from hostile sea zones I can still end up with only offloaded conscrips remaining (because the other units had their transports destroyed or retreated).

                                          Beside totally agreeing with this point and suggestion, I also add that I definitely believe TripleA should not apply rules based on values alone. If I make an attack or defence (or both) 0 unit, and, as a mapmaker, want that unit being just a regular unit that has that attack/defence value assigned, that unit should work by regular rules, except that it always misses (unless supported or something, of course). This is how the trench should work. If it should not, that should not happen because of having attack/defence 0, but because of some specific property or options (also better documented in notes).

                                          To sum it up, I believe that, currently, TripleA applies (extensively) the "transport stalemate in combat" behaviour (with the bug of not offering the retreat choice) any time you have attack 0 pitted against defence 0. As I see it (beside fixing the no retreat bug), this should be changed as to require not only having attack and defence 0 in total, but also all defending units being ignorable (which the trench is not, as if you have only trenches you cannot move into that territory with attack-able units and choose to ignore the trenches).

                                          K 1 Reply Last reply Reply Quote 0
                                          • C Offline
                                            Cernel Moderators @KurtGodel7
                                            last edited by Cernel

                                            @KurtGodel7 Anyways, I see your point on the v3 transports rules where you cannot decide to attack with them alone, that is currently a moot point as those rules are not even part of TripleA but, extending them, it should basically be decided whether:

                                            • This rule applies specifically to that particular game unit called as "transport" (thus, it should be an unit option "cannotAttackAlone", that you can assign or not to conscripts too) (this option is not really viable, as you would need updating all v3 Rules games, assigning this option to all regular transports in those games).
                                            • This rule applies to any units having attack vaule 0.
                                            • This rule applies to any units that must be taken last as casualties.

                                            Personally, I would go with looking for "attack value 0", also on the account that already back in Classic you were forbidden attacking with transports alone, there were attack 0 but normal fodder.

                                            Then, when implementing such a behaviour, you should also have a property for not having it, when true, this property being true for v2 rules only (not for v1 nor v3+ rules).

                                            1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 8
                                            • 9
                                            • 10
                                            • 11
                                            • 12
                                            • 13
                                            • 10 / 13
                                            • First post
                                              Last post
                                            Copyright © 2016-2018 TripleA-Devs | Powered by NodeBB Forums