diff --git a/data/en.mse-locale/locale b/data/en.mse-locale/locale index 289798b4..b5d89202 100644 --- a/data/en.mse-locale/locale +++ b/data/en.mse-locale/locale @@ -91,6 +91,13 @@ menu: basic shapes: &Basic Shapes F8 symmetry: S&ymmetry F9 paint: P&aint F10 + + # Updates window + apply changes: Apply changes + cancel changes: Cancel changes + install package: Install package + upgrade package: Upgrade package + remove package: Remove package ############################################################## Menu help texts help: diff --git a/data/magic-new-planeswalker.mse-style/style b/data/magic-new-planeswalker.mse-style/style index 6584e1b5..3a193792 100644 --- a/data/magic-new-planeswalker.mse-style/style +++ b/data/magic-new-planeswalker.mse-style/style @@ -38,8 +38,8 @@ init script: # Use guild mana symbols? guild_mana := { styling.use_guild_mana_symbols } - paintbrush_color:= { if card.border_color == "black" or card.border_color == rgb(0,0,0) then "white" - else "black" + paintbrush_color:= { + if card.border_color < 96 then "white" else "black" } # Loyalty cost arrows @@ -334,10 +334,7 @@ card style: name: Matrix size: 10 weight: bold - color: - script: - if card.border_color == "black" or card.border_color == rgb(0,0,0) then rgb(255,255,255) - else rgb(0,0,0) + color: { paintbrush_color() } copyright line: left: 43 @@ -349,10 +346,7 @@ card style: font: name: MPlantin size: 7 - color: - script: - if card.border_color == "black" or card.border_color == rgb(0,0,0) then rgb(255,255,255) - else rgb(0,0,0) + color: { paintbrush_color() } ############################################################## Extra card fields extra card field: diff --git a/doc/type/color.txt b/doc/type/color.txt index f1821ac5..6dd8e31e 100644 --- a/doc/type/color.txt +++ b/doc/type/color.txt @@ -5,6 +5,12 @@ In files and scritps a color can be represented as
rgb(red_component, green_component, blue_component)where red_component, green_component and blue_component are numbers between 0 and 255 (inclusive). +--Named colors-- +MSE also supports named colors, for instance @"white"@ is the same as @rgb(255,255,255)@. +For a full list of supported colors, see [[http://www.wxwidgets.org/manuals/stable/wx_wxcolourdatabase.html|the wxWidgets documentation]]. + +In scripts named colors are represented as [[type:string]]s. + --Examples-- For example: ! Code Represents <<< diff --git a/src/script/value.cpp b/src/script/value.cpp index 5c93c980..97357da9 100644 --- a/src/script/value.cpp +++ b/src/script/value.cpp @@ -195,7 +195,12 @@ class ScriptString : public ScriptValue { if (wxSscanf(value.c_str(),_("rgb(%u,%u,%u)"),&r,&g,&b)) { return Color(r, g, b); } else { - throw ScriptError(_ERROR_3_("can't convert value", value, typeName(), _TYPE_("color"))); + // color from database? + Color c(value); + if (!c.Ok()) { + throw ScriptError(_ERROR_3_("can't convert value", value, typeName(), _TYPE_("color"))); + } + return c; } } virtual int itemCount() const { return (int)value.size(); } @@ -226,6 +231,7 @@ class ScriptColor : public ScriptValue { virtual ScriptType type() const { return SCRIPT_COLOR; } virtual String typeName() const { return _TYPE_("color"); } virtual operator Color() const { return value; } + virtual operator int() const { return (value.Red() + value.Blue() + value.Green()) / 3; } virtual operator String() const { return String::Format(_("rgb(%u,%u,%u)"), value.Red(), value.Green(), value.Blue()); } diff --git a/src/util/io/reader.cpp b/src/util/io/reader.cpp index c793b209..8b4d9b76 100644 --- a/src/util/io/reader.cpp +++ b/src/util/io/reader.cpp @@ -329,6 +329,9 @@ template <> void Reader::handle(Color& col) { UInt r,g,b; if (wxSscanf(getValue().c_str(),_("rgb(%u,%u,%u)"),&r,&g,&b)) { col.Set(r, g, b); + } else { + col = Color(previous_value); + if (!col.Ok()) col = *wxBLACK; } }