summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2017-11-15 17:35:26 +0100
committernsensfel <SpamShield0@noot-noot.org>2017-11-15 17:35:26 +0100
commit35e53a58975f1454dd841bda0c6b90be334f9158 (patch)
treef14a1df0d80813edea03a68b2b8f465009d52208
parent0ccd1a5699dee1d7a224a92833a8effbce46bd0c (diff)
Adds scripts to generate colors for chars/tiles.
-rw-r--r--src/asset/Makefile32
-rwxr-xr-xsrc/asset/src/generate_n_colors.py71
-rwxr-xr-xsrc/asset/src/generate_n_entities.py28
-rw-r--r--src/asset/template/character_icon_entry.css2
-rw-r--r--src/asset/template/tile_entry.css2
-rw-r--r--src/asset/www/characters.css44
-rw-r--r--src/asset/www/tiles.css51
-rw-r--r--src/battlemap/www/style.css13
8 files changed, 232 insertions, 11 deletions
diff --git a/src/asset/Makefile b/src/asset/Makefile
index d05793b..a3c68e9 100644
--- a/src/asset/Makefile
+++ b/src/asset/Makefile
@@ -1,6 +1,34 @@
-build:
+NUMBER_OF_TILE_TYPES ?= 16
+NUMBER_OF_CHAR_TYPES ?= 16
+
+SRC_DIR ?= ${CURDIR}/src/
+TEMPLATE_DIR ?= ${CURDIR}/template
+CSS_DIR ?= ${CURDIR}/www/
+
+CHAR_STYLE_CSS ?= $(CSS_DIR)/characters.css
+TILE_STYLE_CSS ?= $(CSS_DIR)/tiles.css
+
+GENERATE_N_COLORS_SCRIPT ?= $(SRC_DIR)/generate_n_colors.py
+GENERATE_N_ENTITIES ?= $(SRC_DIR)/generate_n_entities.py
+CHAR_STYLE_TEMPLATE ?= $(TEMPLATE_DIR)/character_icon_entry.css
+TILE_STYLE_TEMPLATE ?= $(TEMPLATE_DIR)/tile_entry.css
+
+################################################################################
+TOTAL_NUMBER_OF_COLORS = \
+ $(shell expr $(NUMBER_OF_TILE_TYPES) + $(NUMBER_OF_CHAR_TYPES))
+
+################################################################################
+build:
+ $(GENERATE_N_COLORS_SCRIPT) $(TOTAL_NUMBER_OF_COLORS) 0 | \
+ $(GENERATE_N_ENTITIES) $(NUMBER_OF_TILE_TYPES) $(TILE_STYLE_TEMPLATE) > \
+ $(TILE_STYLE_CSS)
+ $(GENERATE_N_COLORS_SCRIPT) $(TOTAL_NUMBER_OF_COLORS) \
+ $(NUMBER_OF_TILE_TYPES) | \
+ $(GENERATE_N_ENTITIES) $(NUMBER_OF_CHAR_TYPES) $(CHAR_STYLE_TEMPLATE) > \
+ $(CHAR_STYLE_CSS)
clean:
+ rm -f $(CHAR_STYLE_CSS) $(TILE_STYLE_CSS)
-reset:
+reset: clean
diff --git a/src/asset/src/generate_n_colors.py b/src/asset/src/generate_n_colors.py
new file mode 100755
index 0000000..2b38cbb
--- /dev/null
+++ b/src/asset/src/generate_n_colors.py
@@ -0,0 +1,71 @@
+#!/usr/bin/env python3
+# Color generating script adapted from:
+# http://www.8bitrobot.com/media/uploads/2011/09/colorgen.txt
+## ORIGINAL NOTICE #############################################################
+# colorgen.py
+#
+# Copyright 2011 West - License: Public domain
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+################################################################################
+
+import sys
+import math
+import itertools
+from decimal import *
+
+if (len(sys.argv) != 3):
+ print("Usage: " + sys.argv[0] + " <COLORS_COUNT> <OFFSET>")
+ print("Params:")
+ print("- COLORS_COUNT: int. COLORS_COUNT > 1.")
+ print("- OFFSET: int. Do not print the OFFSET first colors")
+ exit(-1)
+
+N = int(sys.argv[1])
+OFFSET = int(sys.argv[2])
+
+def MidSort (lst):
+ if len(lst) <= 1:
+ return lst
+ i = int(len(lst)/2)
+ ret = [lst.pop(i)]
+ left = MidSort(lst[0:i])
+ right = MidSort(lst[i:])
+ interleaved = [item for items in itertools.zip_longest(left, right)
+ for item in items if item != None]
+ ret.extend(interleaved)
+ return ret
+
+# Build list of points on a line (0 to 255) to use as color 'ticks'
+max = 255
+segs = int(N**(Decimal("1.0")/3))
+step = int(max/segs)
+p = [(i*step) for i in range(1,segs)]
+points = [0,max]
+points.extend(MidSort(p))
+
+# Not efficient!!! Iterate over higher valued 'ticks' first (the points
+# at the front of the list) to vary all colors and not focus on one channel.
+colors = ["%02X%02X%02X" % (points[0], points[0], points[0])]
+prange = 0
+total = 1
+while total < N and prange < len(points):
+ prange += 1
+ for c0 in range(prange):
+ for c1 in range(prange):
+ for c2 in range(prange):
+ if total >= N:
+ break
+ c = "%02X%02X%02X" % (points[c0], points[c1], points[c2])
+ if c not in colors:
+ colors.append(c)
+ total += 1
+
+for i in range(OFFSET,N):
+ print(colors[i])
diff --git a/src/asset/src/generate_n_entities.py b/src/asset/src/generate_n_entities.py
new file mode 100755
index 0000000..2e1b75e
--- /dev/null
+++ b/src/asset/src/generate_n_entities.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python3
+import sys
+
+if (len(sys.argv) != 3):
+ print("Usage: " + sys.argv[0] + " <ENTITY_COUNT> <ENTITY_CSS_TEMPLATE>")
+ print("Params:")
+ print("- ENTITY_COUNT: number of classes to produce.")
+ print("- ENTITY_CSS_TEMPLATE: template filename.")
+ exit(-1)
+
+N = int(sys.argv[1])
+CSS_TEMPLATE = sys.argv[2]
+
+with open(CSS_TEMPLATE, 'r') as template_file:
+ template=template_file.read()
+
+for i in range(N):
+ colors = sys.stdin.readline().split(' ')
+ print(
+ template.replace(
+ '$ID$',
+ str(i)
+ ).replace(
+ '$COLOR$',
+ sys.stdin.readline()
+ )
+ )
+
diff --git a/src/asset/template/character_icon_entry.css b/src/asset/template/character_icon_entry.css
index 5eeba27..d75b550 100644
--- a/src/asset/template/character_icon_entry.css
+++ b/src/asset/template/character_icon_entry.css
@@ -1 +1 @@
-.asset-character-icon-$ID${background-color:$COLOR$;}
+.asset-character-icon-$ID${background-color: #$COLOR$;}
diff --git a/src/asset/template/tile_entry.css b/src/asset/template/tile_entry.css
index 170d034..13f76f1 100644
--- a/src/asset/template/tile_entry.css
+++ b/src/asset/template/tile_entry.css
@@ -1 +1 @@
-.asset-tile-$ID${background-color:$COLOR$;}
+.asset-tile-$ID${background-color:#$COLOR$;}
diff --git a/src/asset/www/characters.css b/src/asset/www/characters.css
index efe407d..e349207 100644
--- a/src/asset/www/characters.css
+++ b/src/asset/www/characters.css
@@ -1,4 +1,40 @@
-.asset-character-icon-0 {background-color: Aqua;}
-.asset-character-icon-1 {background-color: Aquamarine;}
-.asset-character-icon-2 {background-color: Purple;}
-.asset-character-icon-3 {background-color: RebeccaPurple;}
+.asset-character-icon-0{background-color: #FFAAAA
+;}
+
+.asset-character-icon-1{background-color: #AA00FF
+;}
+
+.asset-character-icon-2{background-color: #AAFF00
+;}
+
+.asset-character-icon-3{background-color: #AAFFAA
+;}
+
+.asset-character-icon-4{background-color: #AAAAFF
+;}
+
+.asset-character-icon-5{background-color: #000055
+;}
+
+.asset-character-icon-6{background-color: #00AA55
+;}
+
+.asset-character-icon-7{background-color: #0055FF
+;}
+
+.asset-character-icon-8{background-color: #;}
+
+.asset-character-icon-9{background-color: #;}
+
+.asset-character-icon-10{background-color: #;}
+
+.asset-character-icon-11{background-color: #;}
+
+.asset-character-icon-12{background-color: #;}
+
+.asset-character-icon-13{background-color: #;}
+
+.asset-character-icon-14{background-color: #;}
+
+.asset-character-icon-15{background-color: #;}
+
diff --git a/src/asset/www/tiles.css b/src/asset/www/tiles.css
index 498d43e..7e91615 100644
--- a/src/asset/www/tiles.css
+++ b/src/asset/www/tiles.css
@@ -1,3 +1,48 @@
-.asset-tile-0 {background-color: green;}
-.asset-tile-1 {background-color: yellow;}
-.asset-tile-2 {background-color: red;}
+.asset-tile-0{background-color:#0000FF
+;}
+
+.asset-tile-1{background-color:#00FFFF
+;}
+
+.asset-tile-2{background-color:#FF00FF
+;}
+
+.asset-tile-3{background-color:#FFFFFF
+;}
+
+.asset-tile-4{background-color:#00FFAA
+;}
+
+.asset-tile-5{background-color:#00AAFF
+;}
+
+.asset-tile-6{background-color:#FF00AA
+;}
+
+.asset-tile-7{background-color:#FFAA00
+;}
+
+.asset-tile-8{background-color:#FFAAAA
+;}
+
+.asset-tile-9{background-color:#AA00FF
+;}
+
+.asset-tile-10{background-color:#AAFF00
+;}
+
+.asset-tile-11{background-color:#AAFFAA
+;}
+
+.asset-tile-12{background-color:#AAAAFF
+;}
+
+.asset-tile-13{background-color:#000055
+;}
+
+.asset-tile-14{background-color:#00AA55
+;}
+
+.asset-tile-15{background-color:#0055FF
+;}
+
diff --git a/src/battlemap/www/style.css b/src/battlemap/www/style.css
index 0404e2b..406673a 100644
--- a/src/battlemap/www/style.css
+++ b/src/battlemap/www/style.css
@@ -30,6 +30,19 @@
.battlemap-character-icon {z-index: 2;}
.battlemap-path-icon {z-index: 3; color: white;}
+.battlemap-character-icon
+{
+ box-sizing: border-box;
+ border: 2px solid rgba(0,0,0,0.5);
+ border-radius: 25px;
+}
+
+.battlemap-marker-icon
+{
+ box-sizing: border-box;
+ border: 2px groove rgba(0,0,0,0.5);
+}
+
.battlemap-can-go-to-marker {background-color:rgba(0,0,0,0.5);}
.battlemap-can-attack-marker {background-color:rgba(0,0,0,0.7);}