Trees! (kudos @Alshock)
authorJBM <jbm@codingame.com>
Mon, 25 May 2020 11:31:20 +0000 (13:31 +0200)
committerJBM <jbm@codingame.com>
Wed, 27 May 2020 14:54:24 +0000 (16:54 +0200)
config/statement_en.html
src/main/java/com/codingame/game/View.java
src/main/resources/view/assets/Alshock.png [new file with mode: 0644]

index 2f674bc..d3d2cd5 100644 (file)
        <span>Change Log</span>
      </h2>
      <ul>
        <span>Change Log</span>
      </h2>
      <ul>
+       <li>
+         This is computer science.  Trees are non-negociable.
+         (asset contributed by
+         <a href="https://www.codingame.com/profile/f529ecfbb6cc3b402a40027fd38beec14437821">
+           Alshock
+         </a>)
+       </li>
        <li>
          Don't destroy the castle if the troll doesn't reach it.
        </li>
        <li>
          Don't destroy the castle if the troll doesn't reach it.
        </li>
index 21489ff..8653ab4 100644 (file)
@@ -217,6 +217,29 @@ class View {
         graphicEntityModule.createSprite()
                 .setImage("background.png")
                 .setAnchor(0);
         graphicEntityModule.createSprite()
                 .setImage("background.png")
                 .setAnchor(0);
+
+        int numTrees = random.nextInt(101);
+        while (numTrees --> 0) {
+            int x, y;
+            do {
+                x = random.nextInt(1920);
+                // yes, this biases randomness wrt perspective! :-(
+                y = 700 + random.nextInt(175);
+            } while (y > 880 && (x < 200 || x > 1720));
+            double scale = ( 100.0 / 433.0           // base height from PNG
+                             * (y - 680) / (875 - 680) ); // perspective
+            graphicEntityModule.createSprite()
+                .setImage("Alshock.png")
+                .setAnchorX(0.5)
+                .setAnchorY(1)
+                .setX(x)
+                .setY(y)
+                .setScaleX(scale * (random.nextInt(2) == 0 ? -1 : 1))
+                .setScaleY(scale)
+                .setRotation((random.nextDouble() - 0.5) * Math.PI / 1800)
+                .setSkewX((random.nextDouble() - 0.5) /4)
+                .setSkewY((random.nextDouble() - 0.5) /8);
+        }
     }
 
     private void drawTroll() {
     }
 
     private void drawTroll() {
diff --git a/src/main/resources/view/assets/Alshock.png b/src/main/resources/view/assets/Alshock.png
new file mode 100644 (file)
index 0000000..7282d09
Binary files /dev/null and b/src/main/resources/view/assets/Alshock.png differ