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 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
                                      • K Offline
                                        KurtGodel7 Moderators @Cernel
                                        last edited by

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

                                        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).

                                        I'm going to set aside the question of whether conscript teleporting should or shouldn't be legal. Instead, I'll point out that if the goal is to prevent conscript teleporting, forbidding conscript-only attacks will not prevent conscript teleporting. Such a rule will merely introduce a 1/6 chance of the teleport failing. (Because now you have to send an infantry into the teleport attack, creating a 1/6 chance of an unwanted victory on round 1 of the battle.) If the goal is to stop Russia from teleporting Moscow conscripts to Volgograd (for example), introducing a 1/6 chance of the player getting diced and having the teleport fail is not the way to accomplish that. The reason that I (and most players) play this map low luck is precisely to avoid having the outcome of the entire game decided by a single die roll. Depending on the overall game situation, a bad die roll in Ryazan (or whichever territory you're attempting to teleport through) could absolutely decide the outcome of the game. Anyone who wants die rolls to be able to decide the outcome of the game is perfectly welcome to play dice. But having the fate of a very large stack of conscripts decided by a single arbitrary die roll is not something that would be welcomed by most low luck players.

                                        In most cases it's already possible to prevent teleporting. If the Centrals player sees a situation in which Russia might want to teleport, then good game play on the Centrals part would involve depriving potential teleport territories of any units for the conscripts to attack. Almost all the conscript teleporting I've ever done could have been prevented by the Centrals using that tactic.

                                        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).

                                        Fair enough. My solution is that at the end of a round of combat, if the attacker has no offensive firepower, then the combat is over and the attacker is forced to retreat. Any units which cannot retreat (as for example conscripts which arrived amphibiously) automatically die.

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

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

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

                                          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).

                                          Fair enough. My solution is that at the end of a round of combat, if the attacker has no offensive firepower, then the combat is over and the attacker is forced to retreat. Any units which cannot retreat (as for example conscripts which arrived amphibiously) automatically die.

                                          I tend to agree. I already believed this myself, but didn't say so because I was mostly curious what others would have opted for, to solve the endless loop case, and the matter is not very clear to me, as arguments can be made that, if a unit is defenceless, than it cannot avoid me staying in the same territory (though, in this case, why can it avoid me conquering the territory, then?). Another argument might be that "infinite" combat rounds are actually an approximation for meaning a very great number of them, a number that is not given as it is assumed that it would be virtually impossible to reach it, thus, as long as I can go on for infinite combat rounds without anyone hitting, then I can reach this hypothetical end point, stalemating (meaning that every time I'm attack 0 against defence 0 I should have the option to retreat or stalemate, and only stalemate if I cannot retreat).

                                          But, if we go with infinite combat rounds being really infinite, it is obvious that if I have a unit that is exactly like an infantry, except that it is attack/defence 0/0, then normal rules should apply, thus these two infantries should keep making combat rounds without ever hitting each other, thus the attacking infantry should be simply obliged to retreat, as it cannot do anything else (which is also the explicitly state behaviour for Classic transports that happen to be alone in attack, though this can be interpreted as a "no suicide" rule, as Classic has no defence 0 units). If the infantry cannot retreat, then it makes the only sense to remove it, because, if it cannot stay in the attacked territory and it cannot go anywhere else, then it cannot stay in the game. Stalemating units that cannot retreat, while not stalemating units that can, would make no sense, because, then, an offloaded infantry could do something more than a not-offloaded one could, and losing the ability to retreat should not be something that gives you more possibilities, over having such ability.

                                          Now the matter would be:
                                          Is any developer going to fix the program this way?
                                          If not, should the Notes of this game be updated with this behaviour mentioned, and the players requested to use edit mode to enforce it:

                                          At the end of a round of combat, if the attacker has no offensive power, then the combat is over and the attacker must retreat, if possible. Any units which cannot retreat (for example conscripts which arrived amphibiously) automatically die. This applies also in case all defending units have no defensive powers (that means only trenches are in the territory). However, only in the case of only transports against only transports, the attacker can decide to stalemate in the sea zone (but never in land territories), instead of retreating.

                                          The point where I don't agree with you, instead, is that I tend to think that the v3 rules of not sending transports alone to make battle, in the first place, should apply to conscripts too (I'm sure this will add a major dice element to a game that indeed is, as I assume you know, a regular dice game, as default). However, I also think that this rule should be optional, so, if preferred, this particular game could set this "property" (if it would exist) as true (meaning you can send them alone). However, as not being a player of this game, I cannot have a personal interest in it.

                                          @Panther I know that you are mostly interested in the official games, but just referencing in case you have any ideas about how the rules could be most consistently applied to this custom game case (that is supposed to "follow" Anniversary rules).

                                          Also, of course, @Imbaked.

                                          Side note, I've a game under development (270BC Wars) in which there are skirmishers and walls that are about the same things as conscripts and trenches, so all of this would be relevant for that too (as long as I don't change how things work there, of course).

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

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

                                            I tend to agree. I already believed this myself, but didn't say so because I was mostly curious what others would have opted for, to solve the endless loop case, and the matter is not very clear to me, as arguments can be made that, if a unit is defenceless, than it cannot avoid me staying in the same territory (though, in this case, why can it avoid me conquering the territory, then?).

                                            There are basically three ways to resolve that issue.

                                            1. Attacker loses (my suggested method)
                                            2. Stalemate (the current method)
                                            3. Attacker wins

                                            The problem with option 3) is that if the attacker wins, that means that a conscript just killed something it's incapable of killing. A unit which lacks any offensive firepower at all shouldn't be able to go around killing trenches. Allowing a territory to be "stalemated" is not desirable, and serves no game play purpose. So that leaves you with option 1.

                                            Now the matter would be:
                                            Is any developer going to fix the program this way?
                                            If not, should the Notes of this game be updated with this behaviour mentioned, and the players requested to use edit mode to enforce it:

                                            This would be a reasonable adjustment to the game notes, assuming that there's no developer available to fix this.

                                            The point where I don't agree with you, instead, is that I tend to think that the v3 rules of not sending transports alone to make battle, in the first place, should apply to conscripts too (I'm sure this will add a major dice element to a game that indeed is, as I assume you know, a regular dice game, as default).

                                            The larger the map the longer it takes to play, and therefore the larger the impact of getting diced. If you lose a game because of dice in a game that only took you 1 hour to play, that's only 1% as bad as losing a game to dice in a game which lasted 100 hours. This may be why the overwhelming majority of Domination 1914 NML players play the game with low luck.

                                            The map already contains a larger luck-based element than a typical low luck map, due to the way the tech system works. The negative of the increased luck-based element is more than offset by the positive of the added depth and richness that tech system brings. Imposing a 1/6 chance of a conscript teleport failing would add another luck-based element to the game, and the negative of that would not be offset by any positive. The change would not improve the game play in any way. Virtually all the conscript teleporting I've done or seen done can be prevented by good game play. It's much better for things to be decided by game play, than it is to try to prevent them by making them dicey.

                                            However, as not being a player of this game, I cannot have a personal interest in it.

                                            Maybe it's time you changed that! This is hands-down the best map I've ever played. If you want to get started, I'd be happy to be your partner.

                                            C 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
                                            • 5
                                            • 6
                                            • 7
                                            • 8
                                            • 9
                                            • 12
                                            • 13
                                            • 7 / 13
                                            • First post
                                              Last post
                                            Copyright © 2016-2018 TripleA-Devs | Powered by NodeBB Forums