home · contact · privacy
TCE: Add water.
authorChristian Heller <c.heller@plomlompom.de>
Wed, 9 Mar 2016 21:35:55 +0000 (22:35 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Wed, 9 Mar 2016 21:35:55 +0000 (22:35 +0100)
plugins/client/TheCrawlingEater.py
plugins/server/TheCrawlingEater.py

index a1af9c2565a5db5ad49f751ad8fe5a6b6dbdb516..106fc5be707ef66ae44e4e5bc6fba096edee31e7 100644 (file)
@@ -34,6 +34,7 @@ def win_map(self):
     curses.init_pair(3, curses.COLOR_RED, curses.COLOR_BLACK)
     curses.init_pair(4, curses.COLOR_YELLOW, curses.COLOR_BLACK)
     curses.init_pair(5, curses.COLOR_MAGENTA, curses.COLOR_BLACK)
+    curses.init_pair(6, curses.COLOR_BLACK, curses.COLOR_BLUE)
     col_unknown = curses.color_pair(1)
     col_mem_obstacle = curses.color_pair(2)
     col_mem = curses.color_pair(2)
@@ -41,6 +42,7 @@ def win_map(self):
     col_dirt = curses.color_pair(4)
     col_earth = curses.color_pair(3)
     col_player = curses.color_pair(5)
+    col_water = curses.color_pair(6)
     for y in range(world_data["map_size"]):
         for x in range(world_data["map_size"]):
             pos = y * world_data["map_size"] + x
@@ -61,8 +63,8 @@ def win_map(self):
                 bonus = (" ", attribute)
                 winmap += [(char, attribute), bonus]
             else:
-                bonus_char = " "
                 attribute = col_stone
+                bonus = " "
                 if char == ".":
                     attribute = col_dirt
                 elif char == ":":
@@ -71,10 +73,11 @@ def win_map(self):
                     attribute = col_earth
                 elif char == "#":
                     attribute = col_dirt
+                elif char == "~":
+                    attribute = col_water
                 elif char == "o":
                     attribute = col_player
-                    bonus_char = char
-                bonus = (bonus_char, attribute)
+                    bonus = (char, attribute)
                 winmap += [(char, attribute), bonus]
         if y % 2 == 0:
             winmap += "  "
index e23f00f2cb893e4350d413a37b864b4fd70dd86b..355b025c846a441613b6520efc9b37679bddd242 100644 (file)
@@ -124,15 +124,24 @@ def make_map():
             if y == 0 or y == (length - 1) or x == 0 or x == (length - 1):
                 break
             world_db["MAP"][pos] = ord("#")
-    n_trees = int((length ** 2) / 16)
-    i_trees = 0
-    while (i_trees <= n_trees):
+    n_ground = int((length ** 2) / 16)
+    i_ground = 0
+    while (i_ground <= n_ground):
         single_allowed = rand.next() % 32
         y, x, pos = new_pos()
         if "#" == chr(world_db["MAP"][pos]) \
                 and ((not single_allowed) or is_neighbor((y, x), "_")):
             world_db["MAP"][pos] = ord("_")
-            i_trees += 1
+            i_ground += 1
+    n_water = int((length ** 2) / 64)
+    i_water = 0
+    while (i_water <= n_water):
+        single_allowed = rand.next() % 32
+        y, x, pos = new_pos()
+        if "_" == chr(world_db["MAP"][pos]) \
+                and ((not single_allowed) or is_neighbor((y, x), "~")):
+            world_db["MAP"][pos] = ord("~")
+            i_water += 1
 
 
 def calc_effort(ta, t):