summaryrefslogtreecommitdiff |
diff options
-rw-r--r-- | src/asset/Makefile | 32 | ||||
-rwxr-xr-x | src/asset/src/generate_n_colors.py | 71 | ||||
-rwxr-xr-x | src/asset/src/generate_n_entities.py | 28 | ||||
-rw-r--r-- | src/asset/template/character_icon_entry.css | 2 | ||||
-rw-r--r-- | src/asset/template/tile_entry.css | 2 | ||||
-rw-r--r-- | src/asset/www/characters.css | 44 | ||||
-rw-r--r-- | src/asset/www/tiles.css | 51 | ||||
-rw-r--r-- | src/battlemap/www/style.css | 13 |
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);} |