Merge branch 'experimental' of git://cockatrice.git.sourceforge.net/gitroot/cockatrice/cockatrice

This commit is contained in:
Max-Wilhelm Bruker 2011-07-09 12:14:24 +02:00
commit 07317efd46
116 changed files with 22300 additions and 8904 deletions

View file

@ -28,6 +28,8 @@ HEADERS += src/abstractcounter.h \
src/handcounter.h \
src/carddatabase.h \
src/gameview.h \
src/gameselector.h \
src/gametypemap.h \
src/decklistmodel.h \
src/dlg_load_deck_from_clipboard.h \
src/dlg_load_remote_deck.h \
@ -114,6 +116,7 @@ SOURCES += src/abstractcounter.cpp \
src/handcounter.cpp \
src/carddatabase.cpp \
src/gameview.cpp \
src/gameselector.cpp \
src/decklistmodel.cpp \
src/dlg_load_deck_from_clipboard.cpp \
src/dlg_load_remote_deck.cpp \
@ -136,6 +139,7 @@ SOURCES += src/abstractcounter.cpp \
src/gamescene.cpp \
src/arrowitem.cpp \
src/arrowtarget.cpp \
src/tab.cpp \
src/tab_server.cpp \
src/tab_room.cpp \
src/tab_message.cpp \

View file

@ -55,6 +55,7 @@
<file>translations/cockatrice_pl.qm</file>
<file>translations/cockatrice_sk.qm</file>
<file>resources/countries/ar.svg</file>
<file>resources/countries/at.svg</file>
<file>resources/countries/au.svg</file>
<file>resources/countries/be.svg</file>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -1,749 +1,186 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg5603"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_cleanup.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs5605">
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5601"
gradientUnits="userSpaceOnUse"
x1="395.53043"
y1="611.20276"
x2="395.53043"
y2="682.70667" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5599"
gradientUnits="userSpaceOnUse"
x1="406.30539"
y1="611.20276"
x2="406.30539"
y2="682.70667" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5597"
gradientUnits="userSpaceOnUse"
x1="438.18127"
y1="610.75385"
x2="438.18127"
y2="682.25769" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5595"
gradientUnits="userSpaceOnUse"
x1="427.40634"
y1="610.75385"
x2="424.43286"
y2="682.25769" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5593"
gradientUnits="userSpaceOnUse"
x1="416.63138"
y1="610.75385"
x2="416.63138"
y2="682.25769" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5591"
gradientUnits="userSpaceOnUse"
x1="385.20444"
y1="611.65173"
x2="385.20444"
y2="683.15558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5589"
gradientUnits="userSpaceOnUse"
x1="374.4295"
y1="611.65173"
x2="374.4295"
y2="683.15558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5587"
gradientUnits="userSpaceOnUse"
x1="361.40976"
y1="611.20276"
x2="361.40976"
y2="682.70667" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5585"
gradientUnits="userSpaceOnUse"
x1="349.73691"
y1="611.20276"
x2="349.73691"
y2="682.70667" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5583"
gradientUnits="userSpaceOnUse"
x1="332.0408"
y1="611.71985"
x2="332.0408"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5581"
gradientUnits="userSpaceOnUse"
x1="322.83875"
y1="611.71985"
x2="322.83875"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5579"
gradientUnits="userSpaceOnUse"
x1="300.60043"
y1="611.71985"
x2="300.60043"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5577"
gradientUnits="userSpaceOnUse"
x1="289.86472"
y1="611.71985"
x2="289.86472"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5575"
gradientUnits="userSpaceOnUse"
x1="269.1601"
y1="610.953"
x2="269.1601"
y2="682.45685" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5573"
gradientUnits="userSpaceOnUse"
x1="259.95804"
y1="610.953"
x2="259.95804"
y2="682.45685" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5571"
gradientUnits="userSpaceOnUse"
x1="339.70917"
y1="611.71985"
x2="339.70917"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5569"
gradientUnits="userSpaceOnUse"
x1="311.33618"
y1="611.71985"
x2="311.33618"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5567"
gradientUnits="userSpaceOnUse"
x1="277.59531"
y1="610.953"
x2="277.59531"
y2="682.45685" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5565"
gradientUnits="userSpaceOnUse"
x1="251.52283"
y1="611.71985"
x2="251.52283"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5563"
gradientUnits="userSpaceOnUse"
x1="240.02026"
y1="611.71985"
x2="240.02026"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5561"
gradientUnits="userSpaceOnUse"
x1="229.28452"
y1="611.71985"
x2="229.28452"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5559"
gradientUnits="userSpaceOnUse"
x1="220.08247"
y1="610.953"
x2="220.08247"
y2="682.45691" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5557"
gradientUnits="userSpaceOnUse"
x1="208.5799"
y1="610.953"
x2="208.5799"
y2="682.45691" />
<linearGradient
id="linearGradient5329">
<stop
style="stop-color:#ffe680;stop-opacity:1;"
offset="0"
id="stop5331" />
<stop
style="stop-color:#ffc341;stop-opacity:1;"
offset="1"
id="stop5333" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5555"
gradientUnits="userSpaceOnUse"
x1="196.17035"
y1="611.30573"
x2="196.17035"
y2="679.24634" />
<linearGradient
id="linearGradient3197">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop3199" />
<stop
id="stop3205"
offset="0.39693579"
style="stop-color:#bf7d51;stop-opacity:1;" />
<stop
style="stop-color:#dfa27a;stop-opacity:1;"
offset="0.63405275"
id="stop3207" />
<stop
style="stop-color:#973c00;stop-opacity:1;"
offset="1"
id="stop3201" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3197"
id="linearGradient5553"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.6458849,0,0,0.9865768,-211.71948,8.0732737)"
x1="321.41293"
y1="612.16199"
x2="321.41293"
y2="590.72852" />
<linearGradient
id="linearGradient5272">
<stop
style="stop-color:#c87137;stop-opacity:1;"
offset="0"
id="stop5274" />
<stop
style="stop-color:#faf1eb;stop-opacity:1;"
offset="1"
id="stop5276" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5272"
id="linearGradient5551"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9977113,0,0,1.1799457,0.7341533,-111.29357)"
x1="339.84283"
y1="423.96219"
x2="266.61029"
y2="423.96219" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective5611" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5840"
gradientUnits="userSpaceOnUse"
x1="395.53043"
y1="611.20276"
x2="395.53043"
y2="682.70667"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5843"
gradientUnits="userSpaceOnUse"
x1="406.30539"
y1="611.20276"
x2="406.30539"
y2="682.70667"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5846"
gradientUnits="userSpaceOnUse"
x1="438.18127"
y1="610.75385"
x2="438.18127"
y2="682.25769"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5849"
gradientUnits="userSpaceOnUse"
x1="427.40634"
y1="610.75385"
x2="424.43286"
y2="682.25769"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5852"
gradientUnits="userSpaceOnUse"
x1="416.63138"
y1="610.75385"
x2="416.63138"
y2="682.25769"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5855"
gradientUnits="userSpaceOnUse"
x1="385.20444"
y1="611.65173"
x2="385.20444"
y2="683.15558"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5858"
gradientUnits="userSpaceOnUse"
x1="374.4295"
y1="611.65173"
x2="374.4295"
y2="683.15558"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5861"
gradientUnits="userSpaceOnUse"
x1="361.40976"
y1="611.20276"
x2="361.40976"
y2="682.70667"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5864"
gradientUnits="userSpaceOnUse"
x1="349.73691"
y1="611.20276"
x2="349.73691"
y2="682.70667"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5867"
gradientUnits="userSpaceOnUse"
x1="332.0408"
y1="611.71985"
x2="332.0408"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5870"
gradientUnits="userSpaceOnUse"
x1="322.83875"
y1="611.71985"
x2="322.83875"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5873"
gradientUnits="userSpaceOnUse"
x1="300.60043"
y1="611.71985"
x2="300.60043"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5876"
gradientUnits="userSpaceOnUse"
x1="289.86472"
y1="611.71985"
x2="289.86472"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5879"
gradientUnits="userSpaceOnUse"
x1="269.1601"
y1="610.953"
x2="269.1601"
y2="682.45685"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5882"
gradientUnits="userSpaceOnUse"
x1="259.95804"
y1="610.953"
x2="259.95804"
y2="682.45685"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5885"
gradientUnits="userSpaceOnUse"
x1="339.70917"
y1="611.71985"
x2="339.70917"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5888"
gradientUnits="userSpaceOnUse"
x1="311.33618"
y1="611.71985"
x2="311.33618"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5891"
gradientUnits="userSpaceOnUse"
x1="277.59531"
y1="610.953"
x2="277.59531"
y2="682.45685"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5894"
gradientUnits="userSpaceOnUse"
x1="251.52283"
y1="611.71985"
x2="251.52283"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5897"
gradientUnits="userSpaceOnUse"
x1="240.02026"
y1="611.71985"
x2="240.02026"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5900"
gradientUnits="userSpaceOnUse"
x1="229.28452"
y1="611.71985"
x2="229.28452"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5903"
gradientUnits="userSpaceOnUse"
x1="220.08247"
y1="610.953"
x2="220.08247"
y2="682.45691"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5906"
gradientUnits="userSpaceOnUse"
x1="208.5799"
y1="610.953"
x2="208.5799"
y2="682.45691"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5909"
gradientUnits="userSpaceOnUse"
x1="196.17035"
y1="611.30573"
x2="196.17035"
y2="679.24634"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3197"
id="linearGradient5912"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.2213048,0,0,0.1326546,-71.37835,-18.694896)"
x1="321.41293"
y1="612.16199"
x2="321.41293"
y2="590.72852" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5272"
id="linearGradient5917"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.1341517,0,0,0.1586549,-42.811951,-34.744896)"
x1="339.84283"
y1="423.96219"
x2="266.61029"
y2="423.96219" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.1172201"
inkscape:cx="-22.786837"
inkscape:cy="27.255752"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata5608">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<rect
style="fill:url(#linearGradient5917);fill-opacity:1.0;fill-rule:nonzero;stroke:#000000;stroke-width:0.14588976000000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2383"
width="4.9827776"
height="61.648746"
x="-2.2713048"
y="1.6943892"
ry="2.9464471"
transform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,0,0)" />
<path
style="fill:#ebcab5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 44.904132,41.323651 L 4.8565979,1.129034 C 4.8565979,1.129034 3.2946309,0.33074409 2.991018,0.73427166 C 2.4571168,1.4438736 45.452675,43.122386 45.452675,43.122386 C 45.452675,43.122386 45.67752,42.53682 44.904132,41.323651 z"
id="path3157"
sodipodi:nodetypes="ccscc" />
<path
style="fill:#ffe680;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 32.990203,51.516739 L 51.190377,33.316565 C 52.794548,31.712394 54.360316,30.695278 54.701069,31.036031 L 57.18543,33.520392 L 59.669792,36.004754 C 60.010545,36.345507 58.993429,37.911276 57.389258,39.515446 L 39.189084,57.71562 C 37.584914,59.319791 36.019144,60.336908 35.678391,59.996155 L 33.194029,57.511793 L 30.709668,55.027432 C 30.368915,54.686679 31.386032,53.12091 32.990203,51.516739 z"
id="rect3159"
sodipodi:nodetypes="ccccccccccc" />
<rect
style="fill:url(#linearGradient5912);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.17133911;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect3175"
width="34.587376"
height="2.7105932"
x="-17.541821"
y="59.73428"
ry="1.3552966"
rx="0.3055422"
transform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,0,0)" />
<path
style="fill:url(#linearGradient5909);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 31.986721,56.353875 L 33.04455,55.296047 C 33.04455,55.296047 37.94372,59.481767 39.509347,61.724389 C 39.768454,62.095537 39.363163,62.10712 39.24489,61.988847 L 39.016887,62.289758 L 38.916474,62.681805 C 39.094748,62.97744 38.34756,63.177813 38.378609,63.21967 C 38.378609,63.21967 37.318113,61.756505 36.807978,61.175132 C 36.358275,60.662631 35.683018,60.050172 35.200893,59.568047 C 34.718767,59.085921 34.075933,58.443087 33.593807,57.960961 C 33.111681,57.478835 31.986721,56.353875 31.986721,56.353875 z"
id="rect5280"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5906);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 33.133051,55.140476 L 34.19088,54.082647 C 34.19088,54.082647 39.09005,58.268367 40.655678,60.51099 C 40.914785,60.882138 40.509494,60.89372 40.39122,60.775447 L 40.163218,61.076358 L 40.062805,61.468405 C 40.241078,61.76404 39.49389,61.964413 39.52494,62.00627 C 39.52494,62.00627 38.464443,60.543105 37.954308,59.961732 C 37.504606,59.449231 36.829348,58.836772 36.347223,58.354647 C 35.865097,57.872521 35.222263,57.229687 34.740137,56.747562 C 34.258011,56.265436 33.133051,55.140476 33.133051,55.140476 z"
id="path5283"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5903);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 34.226684,54.046844 L 35.284512,52.989015 C 35.284512,52.989015 40.183682,57.174735 41.74931,59.417358 C 42.008417,59.788506 41.603126,59.800088 41.484852,59.681815 L 41.25685,59.982726 L 41.156437,60.374773 C 41.33471,60.670408 40.587522,60.870781 40.618572,60.912638 C 40.618572,60.912638 39.558075,59.449473 39.04794,58.8681 C 38.598238,58.355599 37.92298,57.74314 37.440855,57.261015 C 36.958729,56.778889 36.315895,56.136055 35.833769,55.653929 C 35.351643,55.171804 34.226684,54.046844 34.226684,54.046844 z"
id="path5285"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5900);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 35.174496,53.244846 L 36.232324,52.187017 C 36.232324,52.187017 41.131494,56.372737 42.697122,58.61536 C 42.956229,58.986508 42.550938,58.99809 42.432665,58.879817 L 42.204662,59.180728 L 42.104249,59.572775 C 42.282522,59.86841 41.535335,60.068783 41.566384,60.11064 C 41.566384,60.11064 40.505887,58.647475 39.995753,58.066102 C 39.54605,57.553601 38.870793,56.941142 38.388668,56.459017 C 37.906542,55.976891 37.263708,55.334058 36.781582,54.851932 C 36.299456,54.369806 35.174496,53.244846 35.174496,53.244846 z"
id="path5287"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5897);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 36.195221,52.224123 L 37.253049,51.166294 C 37.253049,51.166294 42.152219,55.352014 43.717847,57.594637 C 43.976954,57.965785 43.571663,57.977367 43.45339,57.859094 L 43.225387,58.160005 L 43.124974,58.552052 C 43.303247,58.847687 42.55606,59.04806 42.587109,59.089917 C 42.587109,59.089917 41.526612,57.626752 41.016477,57.045379 C 40.566775,56.532878 39.891518,55.920419 39.409392,55.438294 C 38.927267,54.956168 38.284433,54.313334 37.802307,53.831208 C 37.320181,53.349083 36.195221,52.224123 36.195221,52.224123 z"
id="path5289"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5894);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 37.288853,51.130491 L 38.346681,50.072662 C 38.346681,50.072662 43.245851,54.258382 44.811479,56.501005 C 45.070586,56.872153 44.665295,56.883735 44.547022,56.765462 L 44.319019,57.066373 L 44.218606,57.45842 C 44.396879,57.754055 43.649692,57.954428 43.680741,57.996285 C 43.680741,57.996285 42.620244,56.53312 42.11011,55.951747 C 41.660407,55.439246 40.98515,54.826787 40.503025,54.344662 C 40.020899,53.862536 39.378065,53.219702 38.895939,52.737576 C 38.413813,52.25545 37.288853,51.130491 37.288853,51.130491 z"
id="path5291"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5891);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 39.694842,48.578683 L 40.752671,47.520855 C 40.752671,47.520855 45.65184,51.706575 47.217468,53.949197 C 47.476575,54.320345 47.071284,54.331928 46.953011,54.213655 L 46.725008,54.514566 L 46.624595,54.906613 C 46.802869,55.202248 46.055681,55.402621 46.08673,55.444478 C 46.08673,55.444478 45.026233,53.981313 44.516099,53.39994 C 44.066396,52.887439 43.391139,52.27498 42.909014,51.792855 C 42.426888,51.310729 41.784054,50.667895 41.301928,50.185769 C 40.819802,49.703643 39.694842,48.578683 39.694842,48.578683 z"
id="path5293"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5888);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 42.975738,45.443605 L 44.033567,44.385776 C 44.033567,44.385776 48.932736,48.571497 50.498364,50.814119 C 50.757471,51.185267 50.35218,51.19685 50.233907,51.078576 L 50.005904,51.379488 L 49.905491,51.771535 C 50.083765,52.06717 49.336577,52.267542 49.367626,52.3094 C 49.367626,52.3094 48.30713,50.846234 47.796995,50.264862 C 47.347292,49.752361 46.672035,49.139902 46.18991,48.657777 C 45.707784,48.175651 45.06495,47.532817 44.582824,47.050691 C 44.100698,46.568565 42.975738,45.443605 42.975738,45.443605 z"
id="path5295"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5885);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 45.673363,42.74598 L 46.731192,41.688151 C 46.731192,41.688151 51.630362,45.873871 53.195989,48.116494 C 53.455096,48.487642 53.049805,48.499225 52.931532,48.380951 L 52.703529,48.681863 L 52.603116,49.07391 C 52.78139,49.369545 52.034202,49.569917 52.065251,49.611775 C 52.065251,49.611775 51.004755,48.148609 50.49462,47.567237 C 50.044917,47.054736 49.36966,46.442277 48.887535,45.960152 C 48.405409,45.478026 47.762575,44.835192 47.280449,44.353066 C 46.798323,43.87094 45.673363,42.74598 45.673363,42.74598 z"
id="path5297"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5882);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 38.01794,50.255585 L 39.075769,49.197757 C 39.075769,49.197757 43.974938,53.383477 45.540566,55.626099 C 45.799673,55.997248 45.394382,56.00883 45.276109,55.890557 L 45.048106,56.191468 L 44.947693,56.583515 C 45.125967,56.87915 44.378779,57.079523 44.409828,57.12138 C 44.409828,57.12138 43.349331,55.658215 42.839197,55.076842 C 42.389494,54.564341 41.714237,53.951882 41.232112,53.469757 C 40.749986,52.987631 40.107152,52.344797 39.625026,51.862671 C 39.1429,51.380545 38.01794,50.255585 38.01794,50.255585 z"
id="path5299"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5879);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 38.892845,49.38068 L 39.950674,48.322852 C 39.950674,48.322852 44.849843,52.508572 46.415471,54.751194 C 46.674578,55.122342 46.269287,55.133925 46.151014,55.015652 L 45.923011,55.316563 L 45.822598,55.70861 C 46.000872,56.004245 45.253684,56.204618 45.284733,56.246475 C 45.284733,56.246475 44.224236,54.78331 43.714102,54.201937 C 43.264399,53.689436 42.589142,53.076977 42.107017,52.594852 C 41.624891,52.112726 40.982057,51.469892 40.499931,50.987766 C 40.017805,50.50564 38.892845,49.38068 38.892845,49.38068 z"
id="path5301"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5876);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 40.934292,47.485051 L 41.992121,46.427223 C 41.992121,46.427223 46.89129,50.612943 48.456918,52.855565 C 48.716025,53.226713 48.310734,53.238296 48.192461,53.120023 L 47.964458,53.420934 L 47.864045,53.812981 C 48.042319,54.108616 47.295131,54.308988 47.32618,54.350846 C 47.32618,54.350846 46.265683,52.887681 45.755549,52.306308 C 45.305846,51.793807 44.630589,51.181348 44.148464,50.699223 C 43.666338,50.217097 43.023504,49.574263 42.541378,49.092137 C 42.059252,48.610011 40.934292,47.485051 40.934292,47.485051 z"
id="path5303"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5873);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 41.955014,46.464329 L 43.012843,45.4065 C 43.012843,45.4065 47.912012,49.59222 49.47764,51.834843 C 49.736747,52.205991 49.331456,52.217574 49.213183,52.0993 L 48.98518,52.400212 L 48.884767,52.792259 C 49.063041,53.087894 48.315853,53.288266 48.346902,53.330124 C 48.346902,53.330124 47.286406,51.866958 46.776271,51.285586 C 46.326568,50.773085 45.651311,50.160626 45.169186,49.678501 C 44.68706,49.196375 44.044226,48.553541 43.5621,48.071415 C 43.079974,47.589289 41.955014,46.464329 41.955014,46.464329 z"
id="path5305"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5870);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 44.069369,44.349974 L 45.127198,43.292145 C 45.127198,43.292145 50.026368,47.477865 51.591995,49.720488 C 51.851102,50.091636 51.445811,50.103219 51.327538,49.984945 L 51.099535,50.285857 L 50.999122,50.677904 C 51.177396,50.973539 50.430208,51.173911 50.461257,51.215769 C 50.461257,51.215769 49.400761,49.752603 48.890626,49.171231 C 48.440923,48.65873 47.765666,48.046271 47.283541,47.564146 C 46.801415,47.08202 46.158581,46.439186 45.676455,45.95706 C 45.194329,45.474934 44.069369,44.349974 44.069369,44.349974 z"
id="path5307"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5867);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 44.944275,43.475068 L 46.002104,42.417239 C 46.002104,42.417239 50.901274,46.602959 52.466901,48.845582 C 52.726008,49.21673 52.320717,49.228313 52.202444,49.110039 L 51.974441,49.410951 L 51.874028,49.802998 C 52.052302,50.098633 51.305114,50.299005 51.336163,50.340863 C 51.336163,50.340863 50.275667,48.877697 49.765532,48.296325 C 49.315829,47.783824 48.640572,47.171365 48.158447,46.68924 C 47.676321,46.207114 47.033487,45.56428 46.551361,45.082154 C 46.069235,44.600028 44.944275,43.475068 44.944275,43.475068 z"
id="path5309"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5864);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 46.577609,41.743411 L 47.635438,40.685582 C 47.635438,40.685582 52.534607,44.871302 54.100235,47.113925 C 54.359342,47.485073 53.954051,47.496656 53.835778,47.378382 L 53.607775,47.679294 L 53.507362,48.071341 C 53.685636,48.366976 52.938448,48.567348 52.969497,48.609206 C 52.969497,48.609206 51.909001,47.14604 51.398866,46.564668 C 50.949163,46.052167 50.273906,45.439708 49.791781,44.957583 C 49.309655,44.475457 48.666821,43.832623 48.184695,43.350497 C 47.702569,42.868371 46.577609,41.743411 46.577609,41.743411 z"
id="path5311"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5861);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 47.687432,40.633588 L 48.74526,39.57576 C 48.74526,39.57576 53.64443,43.76148 55.210058,46.004102 C 55.469165,46.37525 55.063874,46.386833 54.945601,46.26856 L 54.717598,46.569471 L 54.617185,46.961518 C 54.795458,47.257153 54.048271,47.457526 54.07932,47.499383 C 54.07932,47.499383 53.018823,46.036218 52.508688,45.454845 C 52.058986,44.942344 51.383729,44.329885 50.901603,43.84776 C 50.419478,43.365634 49.776644,42.7228 49.294518,42.240674 C 48.812392,41.758548 47.687432,40.633588 47.687432,40.633588 z"
id="path5313"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5858);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 48.967997,39.438395 L 50.025826,38.380566 C 50.025826,38.380566 54.924995,42.566286 56.490623,44.808909 C 56.74973,45.180057 56.344439,45.191639 56.226166,45.073366 L 55.998163,45.374278 L 55.89775,45.766325 C 56.076024,46.06196 55.328836,46.262332 55.359885,46.30419 C 55.359885,46.30419 54.299388,44.841024 53.789254,44.259652 C 53.339551,43.747151 52.664294,43.134692 52.182169,42.652567 C 51.700043,42.170441 51.057209,41.527607 50.575083,41.045481 C 50.092957,40.563355 48.967997,39.438395 48.967997,39.438395 z"
id="path5315"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5855);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 49.992449,38.413941 L 51.050278,37.356112 C 51.050278,37.356112 55.949447,41.541832 57.515075,43.784455 C 57.774182,44.155603 57.368891,44.167185 57.250618,44.048912 L 57.022615,44.349824 L 56.922202,44.741871 C 57.100476,45.037506 56.353288,45.237878 56.384337,45.279736 C 56.384337,45.279736 55.32384,43.81657 54.813706,43.235198 C 54.364003,42.722697 53.688746,42.110238 53.206621,41.628113 C 52.724495,41.145987 52.081661,40.503153 51.599535,40.021027 C 51.117409,39.538901 49.992449,38.413941 49.992449,38.413941 z"
id="path5317"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5852);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 52.895063,35.340587 L 53.952892,34.282758 C 53.952892,34.282758 58.852062,38.468478 60.417689,40.711101 C 60.676796,41.082249 60.271505,41.093831 60.153232,40.975558 L 59.925229,41.27647 L 59.824816,41.668517 C 60.00309,41.964152 59.255902,42.164524 59.286951,42.206382 C 59.286951,42.206382 58.226455,40.743216 57.71632,40.161844 C 57.266617,39.649343 56.59136,39.036884 56.109235,38.554759 C 55.627109,38.072633 54.984275,37.429799 54.502149,36.947673 C 54.020023,36.465547 52.895063,35.340587 52.895063,35.340587 z"
id="path5319"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5849);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 53.919514,34.316134 L 54.977343,33.258305 C 54.977343,33.258305 59.876513,37.444025 61.44214,39.686648 C 61.701248,40.057796 61.295956,40.069379 61.177683,39.951105 L 60.94968,40.252017 L 60.849267,40.644064 C 61.027541,40.939699 60.280353,41.140071 60.311402,41.181929 C 60.311402,41.181929 59.250906,39.718763 58.740771,39.137391 C 58.291068,38.62489 57.615811,38.012431 57.133686,37.530306 C 56.65156,37.04818 56.008726,36.405346 55.5266,35.92322 C 55.044474,35.441094 53.919514,34.316134 53.919514,34.316134 z"
id="path5321"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5846);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 54.943965,33.291683 L 56.001794,32.233854 C 56.001794,32.233854 60.900964,36.419574 62.466591,38.662197 C 62.725699,39.033345 62.320407,39.044927 62.202134,38.926654 L 61.974131,39.227566 L 61.873718,39.619613 C 62.051992,39.915248 61.304804,40.11562 61.335854,40.157478 C 61.335854,40.157478 60.275357,38.694312 59.765222,38.11294 C 59.315519,37.600439 58.640262,36.98798 58.158137,36.505855 C 57.676011,36.023729 57.033177,35.380895 56.551051,34.898769 C 56.068925,34.416643 54.943965,33.291683 54.943965,33.291683 z"
id="path5323"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5843);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 51.955981,36.365039 L 53.01381,35.30721 C 53.01381,35.30721 57.91298,39.49293 59.478607,41.735553 C 59.737714,42.106701 59.332423,42.118283 59.21415,42.00001 L 58.986147,42.300922 L 58.885734,42.692969 C 59.064008,42.988604 58.31682,43.188976 58.347869,43.230834 C 58.347869,43.230834 57.287373,41.767668 56.777238,41.186296 C 56.327535,40.673795 55.652278,40.061336 55.170153,39.579211 C 54.688027,39.097085 54.045193,38.454251 53.563067,37.972125 C 53.080941,37.489999 51.955981,36.365039 51.955981,36.365039 z"
id="path5325"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5840);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 50.931529,37.389491 L 51.989358,36.331662 C 51.989358,36.331662 56.888528,40.517382 58.454155,42.760005 C 58.713262,43.131153 58.307971,43.142735 58.189698,43.024462 L 57.961695,43.325374 L 57.861282,43.717421 C 58.039556,44.013056 57.292368,44.213428 57.323417,44.255286 C 57.323417,44.255286 56.262921,42.79212 55.752786,42.210748 C 55.303083,41.698247 54.627826,41.085788 54.145701,40.603663 C 53.663575,40.121537 53.020741,39.478703 52.538615,38.996577 C 52.056489,38.514451 50.931529,37.389491 50.931529,37.389491 z"
id="path5327"
sodipodi:nodetypes="ccsccccsssc" />
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
<radialGradient id="SVGID_1_" cx="542" cy="761" r="30" gradientTransform="matrix(1 0 0 1 -512 -731)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#00DC00"/>
<stop offset="1" style="stop-color:#191919"/>
</radialGradient>
<path fill="url(#SVGID_1_)" d="M60,51.818C60,56.337,56.337,60,51.818,60H8.182C3.663,60,0,56.337,0,51.818V8.182
C0,3.663,3.663,0,8.182,0h43.636C56.337,0,60,3.663,60,8.182V51.818z"/>
<g display="none">
<g display="inline">
<path fill="#EBEBEB" d="M3.934,54.5v-1.977c2.34-0.26,2.34-0.521,2.34-2.027v-28.81c0-1.508,0-1.82-2.34-2.028v-1.976h6.292
c1.248,0,3.276,0,5.148-0.78l1.871,3.536l-1.56,0.884c-0.832-0.676-1.248-1.352-2.964-1.352H8.874v4.472h4.889
c1.716,0,1.872-0.572,1.924-1.456h1.56v5.2h-1.56c-0.156-0.78-0.364-1.456-1.82-1.456H8.874v25.481h5.356
c2.393,0,2.756-1.092,3.641-2.186l1.56,1.041l-1.872,4.057c-0.988-0.26-2.236-0.416-3.536-0.521
C12.774,54.5,11.526,54.5,10.59,54.5H3.934z"/>
<g opacity="0.35">
<path d="M15.375,16.902l1.871,3.536l-1.56,0.884c-0.832-0.676-1.248-1.352-2.964-1.352H8.874v4.472h4.889
c1.716,0,1.872-0.572,1.924-1.456h1.56v5.2h-1.56c-0.156-0.78-0.364-1.456-1.82-1.456H8.874v25.481h5.356
c2.393,0,2.756-1.092,3.641-2.186l1.56,1.041l-1.872,4.057c-0.988-0.26-2.236-0.416-3.536-0.521
C12.774,54.5,11.526,54.5,10.59,54.5H3.934v-1.977c2.34-0.26,2.34-0.521,2.34-2.027v-28.81c0-1.508,0-1.82-2.34-2.028v-1.976
h6.292C11.475,17.683,13.502,17.683,15.375,16.902 M16.061,14.992l-1.263,0.526c-1.595,0.665-3.386,0.665-4.571,0.665H3.934h-1.5
v1.5v1.976v1.373l1.367,0.122c0.482,0.043,0.783,0.085,0.971,0.12c0.002,0.13,0.002,0.28,0.002,0.414v28.81
c0,0.127,0,0.27-0.002,0.395c-0.194,0.039-0.505,0.088-1.003,0.144l-1.334,0.147v1.342V54.5V56h1.5h6.656
c0.896,0,2.122,0,3.308,0.1c1.423,0.113,2.494,0.271,3.279,0.478l1.216,0.317l0.527-1.142l1.872-4.056l0.538-1.164l-1.066-0.713
l-1.56-1.041l-1.138-0.76l-0.861,1.063c-0.152,0.188-0.291,0.377-0.426,0.563c-0.588,0.799-0.786,1.066-2.048,1.066h-3.856
v-22.48h3.492c0.136,0,0.233,0.009,0.298,0.019c0.014,0.053,0.031,0.128,0.052,0.232l0.241,1.205h1.229h1.56h1.5v-1.5v-5.2v-1.5
H18.44l0.815-0.462l-0.682-1.288l-1.871-3.536L16.061,14.992L16.061,14.992z M10.374,21.471h2.349
c0.825,0,1.024,0.148,1.516,0.583l-0.05,0.845c0,0.009-0.001,0.017-0.001,0.025c-0.102,0.011-0.24,0.019-0.425,0.019h-3.389
V21.471L10.374,21.471z"/>
</g>
</g>
</g>
<g display="none">
<g display="inline">
<path fill="#EBEBEB" d="M27.701,41.652c0.035,0.91,0.07,1.119,0.07,1.295v12.146h-2.766V37.066h3.431l5.74,12.496
c-0.035-0.91-0.035-1.119-0.035-1.262V37.066h2.768v18.025h-2.73L27.701,41.652z"/>
<g opacity="0.35">
<path d="M36.907,37.066v18.025h-2.73l-6.476-13.439c0.035,0.91,0.07,1.119,0.07,1.295v12.146h-2.766V37.066h3.431l5.74,12.496
c-0.035-0.91-0.035-1.119-0.035-1.262V37.066H36.907 M38.407,35.566h-1.5h-2.767h-1.5v1.5v5.561L29.8,36.439l-0.402-0.873h-0.961
h-3.431h-1.5v1.5v18.025v1.5h1.5h2.766h1.5v-1.5v-6.726l3.554,7.377l0.408,0.849h0.941h2.73h1.5v-1.5V37.066L38.407,35.566
L38.407,35.566z"/>
</g>
</g>
<g display="inline">
<path fill="#EBEBEB" d="M43.311,55.094V37.102h5.496c4.48,0,6.896,3.291,6.896,9.031c0,6.16-3.186,8.961-7.176,8.961H43.311z
M46.041,39.271v13.65h2.484c3.047,0,4.41-2.591,4.41-6.756c0-4.307-1.261-6.896-4.234-6.896h-2.66V39.271z"/>
<g opacity="0.35">
<path d="M48.807,37.102c4.48,0,6.896,3.291,6.896,9.031c0,6.16-3.186,8.961-7.176,8.961h-5.217V37.102H48.807 M46.041,52.924
h2.484c3.047,0,4.41-2.591,4.41-6.756c0-4.307-1.261-6.896-4.234-6.896h-2.66V52.924 M48.807,35.602h-5.496h-1.5v1.5v17.992v1.5
h1.5h5.217c4.193,0,8.677-2.748,8.677-10.461C57.202,39.538,54.063,35.602,48.807,35.602L48.807,35.602z M47.541,40.771h1.16
c0.748,0,2.734,0,2.734,5.396c0,5.256-2.189,5.256-2.91,5.256h-0.984V40.771L47.541,40.771z"/>
</g>
</g>
</g>
<polygon points="22.406,36.813 23.031,35.656 19.063,35.344 19.938,33.594 16.083,32.906 17.313,30.844 11.625,27.781
13.958,26.531 11.5,23.406 20.125,23.865 25.5,21.365 32.25,23.344 29.917,28.365 24.031,36.469 "/>
<g>
<g>
<polygon fill="#EBEBEB" points="34.059,13.917 42.991,1.3 44.986,3.601 36.111,14.875 "/>
<g opacity="0.35">
<path d="M42.991,1.3l1.995,2.3l-8.875,11.274l-2.053-0.957L42.991,1.3 M42.9-0.542l-0.838,1.185l-8.934,12.617l-0.787,1.113
l1.236,0.576l2.054,0.957l0.818,0.381l0.558-0.709l8.875-11.274l0.584-0.739l-0.618-0.711l-1.996-2.3L42.9-0.542L42.9-0.542z"/>
</g>
</g>
<g>
<polygon fill="#EBEBEB" points="31.104,13.639 37.289,17.026 34.803,18.709 30.726,16.322 "/>
<g opacity="0.35">
<path d="M31.104,13.639l6.188,3.388l-2.488,1.684l-4.077-2.388L31.104,13.639 M30.204,11.85l-0.229,1.631L29.6,16.164
l-0.108,0.756l0.658,0.384l4.077,2.388l0.617,0.363l0.595-0.403l2.486-1.684l1.544-1.044l-1.635-0.896l-6.188-3.388L30.204,11.85
L30.204,11.85z"/>
</g>
</g>
<g>
<polygon fill="#EBEBEB" points="30.624,17.489 29.201,18.674 32.736,20.73 33.714,19.263 "/>
<g opacity="0.35">
<path d="M30.624,17.489l3.092,1.773l-0.977,1.468l-3.536-2.056L30.624,17.489 M30.503,16.108l-0.607,0.507L28.472,17.8
l-1.251,1.041l1.405,0.818l3.537,2.057l0.925,0.539l0.594-0.892l0.976-1.468l0.676-1.012l-1.056-0.606l-3.092-1.773
L30.503,16.108L30.503,16.108z"/>
</g>
</g>
<g>
<path fill="#EBEBEB" d="M28.954,22.551c0,0-4.399,3.818-5.264,4.452c-0.868,0.639-5.392,3.055-6.209,3.167
c-1.04,0.141-3.126,0.304-4.411-0.662c-1.526-1.146-2.39-2.858-2.39-2.858c1.484,0.48,5.009,0.942,8.747-0.177
c3.74-1.121,7.703-4.421,7.703-4.421s-7.401,4.332-11.064,4.015c-4.831-0.415-6.563-4.722-6.563-4.722s7.217,2.213,10.647,1.822
c3.433-0.394,4.019-2.158,5.771-3.318c1.305-0.866,1.916-0.52,1.916-0.52l5.175,2.455c0.614,0.982,0.815,2.737,0.815,2.737
c0.259,3.197-5.085,9.414-5.085,9.414c-0.671,0.943-1.349,1.45-2.417,2.121c-1.336,1.247-3.963,1.165-4.692,0.925
c0.334-0.16,3.632-2.116,5.199-4.316c0.734-1.033,1.656-2.385,2.341-3.711c0.913-1.766,2.045-4.606,2.045-4.606
c-0.283,0.111-1.727,2.982-2.501,4.126c-0.606,0.898-2.138,2.911-2.471,3.402c-0.605,0.9-1.949,2.23-2.301,2.505
c-3.27,2.58-6.015,1.069-6.015,1.069c1.009-0.289,4.569-2.568,7.424-5.449c2.808-2.836,5.084-6.895,5.084-6.895
s-5.506,7.041-8.6,8.917c-3.91,2.377-6.384,1.24-7.33,0.746c1.18-0.222,6.504-2.905,9.776-5.394
C25.346,26.58,28.954,22.551,28.954,22.551z"/>
<g opacity="0.4">
<path d="M27.465,19.262c0.249,0,0.369,0.068,0.369,0.068l5.175,2.455c0.613,0.982,0.813,2.737,0.813,2.737
c0.258,3.197-5.083,9.414-5.083,9.414c-0.671,0.943-1.351,1.45-2.419,2.121c-0.881,0.827-2.332,1.069-3.423,1.069
c-0.558,0-1.02-0.066-1.267-0.146c0.333-0.16,3.632-2.119,5.197-4.316c0.735-1.033,1.656-2.386,2.343-3.711
c0.911-1.766,2.044-4.606,2.044-4.606c-0.283,0.11-1.726,2.982-2.502,4.125c-0.604,0.898-2.137,2.912-2.471,3.403
c-0.605,0.899-1.949,2.229-2.3,2.505c-1.507,1.188-2.901,1.509-3.967,1.509c-1.25,0-2.049-0.44-2.049-0.44
c1.008-0.289,4.568-2.567,7.424-5.449c2.807-2.836,5.083-6.895,5.083-6.895s-5.505,7.04-8.599,8.917
c-1.828,1.11-3.343,1.455-4.533,1.455c-1.356,0-2.293-0.446-2.797-0.709c1.18-0.222,6.504-2.905,9.776-5.395
c1.066-0.795,4.671-4.825,4.671-4.825s-4.398,3.818-5.264,4.453c-0.868,0.639-5.391,3.055-6.209,3.166
c-0.384,0.053-0.912,0.107-1.489,0.107c-0.983,0-2.112-0.161-2.922-0.768c-1.526-1.146-2.39-2.858-2.39-2.858
c0.806,0.261,2.211,0.517,3.927,0.517c1.445,0,3.11-0.183,4.82-0.694c3.74-1.12,7.704-4.421,7.704-4.421
s-6.89,4.032-10.667,4.032c-0.137,0-0.271-0.005-0.4-0.017c-4.831-0.415-6.563-4.722-6.563-4.722s6.093,1.868,9.744,1.868
c0.322,0,0.625-0.015,0.903-0.047c3.433-0.394,4.019-2.158,5.771-3.318C26.645,19.368,27.155,19.262,27.465,19.262
M27.465,18.124c-0.667,0-1.399,0.26-2.175,0.777c-0.601,0.398-1.062,0.837-1.507,1.261c-0.926,0.88-1.727,1.64-3.764,1.875
c-0.225,0.026-0.486,0.039-0.773,0.039c-3.439,0-9.352-1.799-9.411-1.817l-2.278-0.699l0.889,2.211
c0.056,0.139,1.003,2.424,3.356,3.996c-0.306-0.063-0.567-0.131-0.772-0.197l-2.595-0.841l1.229,2.436
c0.041,0.08,1.003,1.966,2.724,3.255c0.698,0.524,1.605,0.843,2.706,0.952c-0.369,0.154-0.646,0.251-0.799,0.28l-3.229,0.606
l2.913,1.521c0.605,0.314,1.525,0.724,2.787,0.817l-1.807,0.515l2.419,1.334c0.086,0.047,0.728,0.385,1.737,0.522l-0.431,0.218
l2.587,0.874c0.389,0.129,0.982,0.204,1.627,0.204c0.805,0,2.785-0.127,4.114-1.296c1.127-0.716,1.89-1.312,2.624-2.329
c0.714-0.836,5.604-6.702,5.322-10.209c-0.025-0.242-0.253-2.081-0.981-3.248L33.8,20.896l-0.302-0.142l-5.16-2.448
C28.176,18.229,27.885,18.124,27.465,18.124L27.465,18.124z"/>
</g>
</g>
<g>
<path fill="#EBEBEB" d="M28.267,37.468c0,0,7.661,1.668,10.493,1.299c0,0,2.188-0.111,2.968-0.42c0,0,1.516-0.372,2-0.609
c0.487-0.24,0.268-0.153,0.268-0.153s-0.624,0.007-1.685-0.098c-1.062-0.109-1.22-0.476-1.22-0.476
c2.239,0.286,5.465-0.676,6.621-1.299c1.153-0.622,3.2-1.662,3.485-4.08c0.28-2.399,0.041-3.644-0.594-4.445
c-0.259-0.329-0.829-0.499-0.829-0.499s-0.058-1.017-0.87-2.775c0,0-0.297-0.461-0.826-1.039c-0.541-0.587-1.331-1.214-2.78-1.45
c0,0-3.297-0.703-4.721,0.28c-1.044,0.723-1.546,1.545-1.984,2.979c-0.634,2.067,1.096,4.791,1.712,5.326
c0.575,0.498,2.396,0.994,3.177,0.066c0,0,1.18-1.276-0.218-2.247c1.281-0.082,1.825,1.352,1.507,2.191
c-0.638,1.525-2.992,1.923-3.924,1.468c-1.442-0.541-2.403-2.019-3.182-3.953c-1.441-0.283-2.522,0.754-2.906,1.399
c-0.834,1.1-0.89,1.771-0.826,2.416c0.067,0.644,0.437,1.321,1.114,1.921c0.681,0.599,1.552,0.23,1.752-0.086
c0.261-0.42,0.222-1.064-0.114-1.421c-0.072-0.075-0.995,0.371-0.995,0.371s0.338-0.83,0.707-1.041
c0.37-0.209,1.123,0.087,1.514,0.569c0.212,0.486-0.075,2.08-0.517,2.412c-0.414,0.313-1.73,0.612-2.085,0.477
c-0.63-0.24-2.097-1.759-2.483-2.402c0,0-2.206,3.042-2.866,3.745C29.286,36.612,28.267,37.468,28.267,37.468z"/>
<g opacity="0.4">
<path d="M42.928,21.178c1.229,0,2.372,0.244,2.372,0.244c1.449,0.235,2.241,0.864,2.78,1.45c0.529,0.578,0.826,1.04,0.826,1.04
c0.813,1.758,0.87,2.775,0.87,2.775s0.571,0.17,0.829,0.498c0.636,0.801,0.875,2.046,0.594,4.446
c-0.284,2.418-2.332,3.458-3.485,4.08c-1.012,0.545-3.61,1.35-5.744,1.35c-0.306,0-0.598-0.016-0.878-0.052
c0,0,0.16,0.367,1.22,0.476c0.94,0.092,1.536,0.099,1.66,0.099c0.016,0,0.023,0,0.023,0s0.038-0.016,0.049-0.016
s-0.031,0.028-0.313,0.166c-0.486,0.24-2.002,0.609-2.002,0.609c-0.782,0.309-2.968,0.42-2.968,0.42
c-0.282,0.036-0.611,0.054-0.976,0.054c-3.304,0-9.514-1.352-9.514-1.352s1.018-0.855,1.698-1.581
c0.658-0.697,2.864-3.742,2.864-3.742c0.387,0.644,1.854,2.163,2.484,2.402c0.061,0.022,0.146,0.034,0.254,0.034
c0.52,0,1.487-0.252,1.831-0.511c0.44-0.332,0.728-1.924,0.516-2.412c-0.304-0.375-0.826-0.639-1.218-0.639
c-0.112,0-0.213,0.022-0.296,0.068c-0.369,0.211-0.707,1.041-0.707,1.041s0.785-0.38,0.965-0.38c0.016,0,0.024,0.002,0.031,0.009
c0.336,0.355,0.372,1.002,0.111,1.421c-0.119,0.192-0.493,0.406-0.92,0.406c-0.271,0-0.565-0.087-0.829-0.32
c-0.681-0.598-1.05-1.277-1.116-1.921c-0.065-0.645-0.01-1.316,0.824-2.416c0.344-0.57,1.226-1.447,2.422-1.447
c0.157,0,0.317,0.015,0.486,0.048c0.78,1.934,1.74,3.412,3.182,3.953c0.239,0.117,0.571,0.178,0.945,0.178
c1.082,0,2.506-0.511,2.979-1.646c0.31-0.815-0.197-2.195-1.403-2.195c-0.032,0-0.069,0.001-0.104,0.003
c1.399,0.972,0.219,2.247,0.219,2.247c-0.319,0.38-0.816,0.521-1.327,0.521c-0.734,0-1.509-0.293-1.85-0.587
c-0.618-0.535-2.347-3.258-1.712-5.325c0.439-1.435,0.94-2.256,1.983-2.979C41.165,21.297,42.067,21.178,42.928,21.178
M42.928,20.04v1.138V20.04c-1.31,0-2.29,0.237-2.996,0.727c-1.401,0.971-1.982,2.134-2.426,3.582
c-0.198,0.646-0.224,1.33-0.138,2.002c-0.065-0.003-0.126-0.004-0.189-0.004c-1.59,0-2.794,1.034-3.36,1.943
c-0.54,0.718-0.816,1.324-0.944,1.855l-0.966,1.333c-0.871,1.199-2.325,3.157-2.774,3.633c-0.627,0.665-1.589,1.479-1.601,1.487
l-1.771,1.492l2.261,0.493c0.26,0.058,6.371,1.376,9.756,1.376c0.41,0,0.765-0.018,1.077-0.056
c0.468-0.024,2.291-0.143,3.202-0.467c0.448-0.109,1.641-0.416,2.165-0.676c0.296-0.146,0.84-0.416,0.941-0.972
c1.309-0.309,2.455-0.735,3.08-1.071l0.09-0.049c1.271-0.685,3.638-1.956,3.987-4.9c0.304-2.586,0.053-4.167-0.829-5.285
c-0.199-0.253-0.455-0.444-0.698-0.583c-0.119-0.549-0.362-1.388-0.86-2.464l-0.032-0.072l-0.044-0.067
c-0.035-0.056-0.364-0.56-0.942-1.19c-0.579-0.631-1.563-1.501-3.438-1.807C45.484,20.298,44.263,20.041,42.928,20.04
L42.928,20.04z"/>
</g>
</g>
</g>
<g>
<g>
<path fill="#EBEBEB" d="M22.585,42.177h-5.61v4.599h4.3v1.587h-4.3v5.175h5.84v1.586h-7.68V40.637h7.45V42.177z"/>
<g opacity="0.35">
<path d="M22.585,40.637v1.54h-5.61v4.599h4.3v1.587h-4.3v5.175h5.84v1.586h-7.68V40.637H22.585 M23.585,39.637h-1h-7.45h-1v1
v14.486v1h1h7.68h1v-1v-1.586v-1h-1h-4.84v-3.175h3.3h1v-1v-1.587v-1h-1h-3.3v-2.599h4.61h1v-1v-1.54V39.637L23.585,39.637z"/>
</g>
</g>
<g>
<path fill="#EBEBEB" d="M27.616,46.293c0.022,0.598,0.046,0.736,0.046,0.851v7.979h-1.817V43.281h2.254l3.771,8.209
c-0.023-0.598-0.023-0.736-0.023-0.828v-7.381h1.816v11.842H31.87L27.616,46.293z"/>
<g opacity="0.35">
<path d="M33.663,43.281v11.842H31.87l-4.254-8.83c0.022,0.598,0.046,0.736,0.046,0.851v7.979h-1.817V43.281h2.254l3.771,8.209
c-0.023-0.598-0.023-0.736-0.023-0.828v-7.381H33.663 M34.663,42.281h-1h-1.816h-1v1v3.586l-1.839-4.003l-0.268-0.583h-0.641
h-2.254h-1v1v11.842v1h1h1.817h1v-1v-4.354l2.307,4.788l0.272,0.566h0.629h1.793h1v-1V43.281V42.281L34.663,42.281z"/>
</g>
</g>
<g>
<path fill="#EBEBEB" d="M36.724,55.123V43.304h3.611c2.943,0,4.529,2.161,4.529,5.933c0,4.047-2.092,5.887-4.713,5.887H36.724z
M38.519,44.729v8.968h1.633c2,0,2.896-1.701,2.896-4.438c0-2.828-0.828-4.53-2.783-4.53H38.519z"/>
<g opacity="0.35">
<path d="M40.335,43.304c2.943,0,4.529,2.161,4.529,5.933c0,4.047-2.092,5.887-4.713,5.887h-3.428V43.304H40.335 M38.519,53.697
h1.633c2,0,2.896-1.701,2.896-4.438c0-2.828-0.828-4.53-2.783-4.53h-1.746V53.697 M40.335,42.304h-3.611h-1v1v11.819v1h1h3.428
c2.762,0,5.713-1.81,5.713-6.887C45.864,44.896,43.796,42.304,40.335,42.304L40.335,42.304z M39.519,45.729h0.746
c0.486,0,1.783,0,1.783,3.53c0,3.438-1.428,3.438-1.896,3.438h-0.633V45.729L39.519,45.729z"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -1,162 +1,103 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2508"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_phase_attacker.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs2510">
<linearGradient
id="linearGradient5717">
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="0"
id="stop5719" />
<stop
id="stop5727"
offset="0.25297618"
style="stop-color:#055897;stop-opacity:1;" />
<stop
id="stop5725"
offset="0.5"
style="stop-color:#00a4ff;stop-opacity:1;" />
<stop
id="stop5733"
offset="0.75"
style="stop-color:#055897;stop-opacity:1;" />
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="1"
id="stop5721" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient5723"
x1="339.93985"
y1="482.58844"
x2="459.27341"
y2="355.50766"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.1263349,-0.1263349,0,74.367722,-7.5042832)" />
<linearGradient
id="linearGradient3234">
<stop
style="stop-color:#6f6f6f;stop-opacity:1;"
offset="0"
id="stop3236" />
<stop
id="stop3242"
offset="0.47999999"
style="stop-color:#e6e6e6;stop-opacity:1;" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0.5"
id="stop3244" />
<stop
id="stop3286"
offset="0.75"
style="stop-color:#bebebe;stop-opacity:1;" />
<stop
style="stop-color:#494949;stop-opacity:1;"
offset="1"
id="stop3238" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient5120"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(8.9332267e-2,8.9332267e-2,8.9332267e-2,-8.9332267e-2,-16.525693,40.126552)"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2516" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient2540"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(8.9332267e-2,8.9332267e-2,8.9332267e-2,-8.9332267e-2,-16.525693,40.126552)"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient2542"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.1263349,-0.1263349,0,74.367722,-7.5042832)"
x1="339.93985"
y1="482.58844"
x2="459.27341"
y2="355.50766" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.5"
inkscape:cx="-40.818182"
inkscape:cy="32"
inkscape:current-layer="g2536"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata2513">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g2536"
transform="translate(-0.1818183,-3.0952293e-8)">
<path
id="path5116"
d="M 19.171407,40.786299 C 30.234301,31.241571 40.052824,21.097727 49.109567,10.848139 L 56.860088,7.3217298 L 53.333679,15.072251 C 41.728583,25.484502 32.940246,34.272839 23.395519,45.010411 L 19.171407,40.786299 z M 24.645705,39.536112 L 27.026109,38.450092 L 33.586428,30.59539 L 25.731726,37.155709 L 24.645705,39.536112 z"
style="fill:url(#linearGradient2540);fill-opacity:1;stroke:#000000;stroke-width:0.12633491;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccsccccccss"
id="path5118"
d="M 7.8194102,52.395498 C 12.873471,51.041266 17.927915,42.286993 17.927915,42.286993 C 17.927915,42.286993 16.799748,40.510421 15.777733,39.790457 C 14.755718,39.070494 11.11448,37.487234 11.11448,37.487234 L 15.622027,32.979687 C 19.276736,39.30983 24.814608,44.871954 31.202132,48.559792 L 26.694585,53.067339 C 26.694585,53.067339 25.207982,49.329444 24.488018,48.307428 C 23.768054,47.285413 21.894826,46.253904 21.894826,46.253904 C 21.894826,46.253904 13.138788,51.314932 11.786321,56.362409 C 11.350723,57.988079 6.1937392,52.831094 7.8194102,52.395498 z"
style="opacity:1;fill:url(#linearGradient2542);fill-opacity:1;stroke:#000000;stroke-width:0.12633491;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1" />
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
<radialGradient id="SVGID_1_" cx="286" cy="-315" r="30" gradientTransform="matrix(1 0 0 -1 -256 -285)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#D20000"/>
<stop offset="1" style="stop-color:#3C0000"/>
</radialGradient>
<path fill="url(#SVGID_1_)" d="M60,51.818C60,56.337,56.337,60,51.818,60H8.182C3.663,60,0,56.337,0,51.818V8.182
C0,3.663,3.663,0,8.182,0h43.636C56.337,0,60,3.663,60,8.182V51.818z"/>
<g>
<g>
<path fill="#DCDCDC" d="M13.013,55.917l-1.273-3.856H8.169l-1.273,3.856H5.338l3.799-11.968h1.634l3.799,11.968H13.013z
M8.53,50.807h2.85l-1.425-5.281L8.53,50.807z"/>
<g opacity="0.35">
<path d="M10.771,43.949l3.799,11.968h-1.558l-1.273-3.856h-3.57l-1.273,3.856H5.338l3.799-11.968H10.771 M8.53,50.807h2.85
l-1.425-5.281L8.53,50.807 M11.503,42.949h-0.732H9.138H8.406l-0.221,0.697l-3.8,11.968l-0.414,1.303h1.367h1.558h0.723
l0.227-0.687l1.046-3.17h2.125l1.046,3.17l0.227,0.687h0.723h1.558h1.367l-0.414-1.304l-3.799-11.967L11.503,42.949
L11.503,42.949z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M19.208,55.917h-1.463v-8.491h-2.413v-1.273h6.307v1.273h-2.432L19.208,55.917L19.208,55.917z"/>
<g opacity="0.35">
<path d="M21.639,46.152v1.272h-2.432v8.491h-1.463v-8.491h-2.413v-1.272H21.639 M22.639,45.152h-1h-6.307h-1v1v1.272v1h1h1.413
v7.491v1h1h1.463h1v-1v-7.491h1.432h1v-1v-1.272L22.639,45.152L22.639,45.152z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M26.579,55.917h-1.463v-8.491h-2.413v-1.273h6.307v1.273h-2.432L26.579,55.917L26.579,55.917z"/>
<g opacity="0.35">
<path d="M29.011,46.152v1.272h-2.432v8.491h-1.463v-8.491h-2.413v-1.272H29.011 M30.011,45.152h-1h-6.307h-1v1v1.272v1h1h1.413
v7.491v1h1h1.463h1v-1v-7.491h1.432h1v-1v-1.272L30.011,45.152L30.011,45.152z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M34.577,52.84h-2.792l-1.008,3.077h-1.576l3.21-9.765h1.539l3.229,9.765h-1.578L34.577,52.84z
M32.07,51.623h2.223l-1.104-3.666L32.07,51.623z"/>
<g opacity="0.35">
<path d="M33.951,46.152l3.229,9.765h-1.576l-1.026-3.077h-2.792l-1.008,3.077h-1.576l3.21-9.765H33.951 M32.07,51.623h2.223
l-1.104-3.666L32.07,51.623 M34.674,45.152h-0.723h-1.539h-0.725l-0.227,0.688l-3.21,9.766l-0.431,1.313h1.381h1.576h0.726
l0.226-0.689l0.781-2.388h1.348l0.799,2.394l0.228,0.685h0.722h1.576h1.385l-0.436-1.313l-3.23-9.768L34.674,45.152
L34.674,45.152z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M38.854,51.035c0-1.368,0.36-2.66,1.008-3.572c0.684-1.006,1.729-1.613,2.981-1.613
c1.235,0,2.185,0.398,2.697,0.721l-0.552,0.988c-0.739-0.381-1.348-0.551-2.146-0.551c-0.684,0-1.52,0.569-1.956,1.463
c-0.343,0.684-0.531,1.652-0.531,2.621c0,0.893,0.112,1.824,0.455,2.488c0.438,0.874,1.082,1.443,2.053,1.443
c1.025,0,1.918-0.551,2.164-0.722l0.666,0.97c-0.285,0.209-1.35,0.949-2.889,0.949C39.859,56.221,38.854,53.428,38.854,51.035z"/>
<g opacity="0.35">
<path d="M42.843,45.85c1.235,0,2.185,0.398,2.697,0.721l-0.552,0.988c-0.739-0.381-1.348-0.551-2.146-0.551
c-0.684,0-1.52,0.569-1.956,1.463c-0.343,0.684-0.531,1.652-0.531,2.621c0,0.893,0.112,1.824,0.455,2.488
c0.438,0.874,1.082,1.443,2.053,1.443c1.025,0,1.918-0.551,2.164-0.722l0.666,0.97c-0.285,0.209-1.35,0.949-2.889,0.949
c-2.943,0-3.951-2.794-3.951-5.187c0-1.368,0.36-2.66,1.008-3.572C40.544,46.457,41.589,45.85,42.843,45.85 M42.843,44.85
c-1.558,0-2.909,0.729-3.81,2.051c-0.758,1.067-1.18,2.543-1.18,4.136c0,2.854,1.297,6.187,4.951,6.187
c1.67,0,2.896-0.717,3.479-1.144l0.781-0.573l-0.549-0.8l-0.664-0.97l-0.566-0.823l-0.824,0.565
c-0.081,0.057-0.814,0.545-1.6,0.545c-0.353,0-0.766-0.104-1.156-0.891c-0.229-0.441-0.352-1.162-0.352-2.041
c0-0.828,0.16-1.641,0.426-2.174c0.293-0.598,0.805-0.91,1.063-0.91c0.607,0,1.065,0.119,1.689,0.44l0.858,0.442l0.471-0.847
l0.552-0.987l0.462-0.828l-0.803-0.506C45.652,45.461,44.501,44.85,42.843,44.85L42.843,44.85z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M49.665,52.1v3.817h-1.501v-9.765h1.501v4.142l3.286-4.142h1.634l-3.896,5.016l3.972,4.16v0.589h-1.425
L49.665,52.1z"/>
<g opacity="0.35">
<path d="M54.585,46.152l-3.896,5.016l3.972,4.16v0.589h-1.425L49.665,52.1v3.817h-1.501v-9.765h1.501v4.142l3.286-4.142H54.585
M56.628,45.152h-2.043h-1.634h-0.483l-0.3,0.379l-1.503,1.894v-1.272v-1h-1h-1.501h-1v1v9.766v1h1h1.501h1v-1v-1.285
l1.841,1.969l0.297,0.316h0.434h1.426h1v-1v-0.589V54.93l-0.275-0.291l-3.377-3.537l3.366-4.334L56.628,45.152L56.628,45.152z"/>
</g>
</g>
</g>
<path opacity="0.52" fill="none" stroke="#000000" stroke-width="1.5" stroke-miterlimit="10" d="M13.514,41.477l-0.892-2.5
l5.899-5.408l-1.333-5.443l0.28-2.118l1.47,1.743l0.825,3.064l2.172-0.075l3.287-3.102l4.891-1.708l-1.844,4.936l-3.287,3.102
l-0.316,2.042l1.71,0.679l1.158-0.016l1.684,1.783c0,0-2.263,0.975-7.49-1.49l-5.658,5.658L13.514,41.477z"/>
<polygon opacity="0.44" fill="none" stroke="#000000" stroke-width="1.5" stroke-miterlimit="10" points="21.714,30.163
20.221,30.09 45.4,6.502 53.719,3.672 50.75,11.875 25.443,35.623 25.188,34.25 28.5,31.313 30.887,26.302 45.938,11.125
29.841,25.196 25.157,27.089 "/>
<g>
<g>
<g>
<path fill="#E1E1E1" d="M13.542,41.506l-0.92-2.529l5.899-5.408c0,0-2.058-5.334-1.053-7.562l1.682,1.782
c0,0-0.424,1.563,0.612,3.025l2.172-0.075l3.287-3.102l4.891-1.709L13.542,41.506z"/>
</g>
<g>
<path fill="#E1E1E1" d="M13.514,41.477l2.473,1.064l5.74-5.576c0,0,5.208,2.364,7.49,1.49l-1.684-1.783
c0,0-1.468,0.457-2.868-0.663l0.316-2.042l3.287-3.102l1.845-4.937L13.514,41.477z"/>
</g>
<polygon fill="#E1E1E1" points="14.417,41.813 13.514,41.477 13.333,40.896 28.604,26.438 30.112,25.929 29.688,26.958 "/>
</g>
<g>
<g>
<polygon fill="#E1E1E1" points="20.221,30.09 21.714,30.163 25.157,27.089 29.841,25.196 53.416,3.818 45.4,6.502 "/>
</g>
<g>
<polygon fill="#E1E1E1" points="25.443,35.623 25.457,34.128 28.724,30.87 30.887,26.302 53.591,4.002 50.448,11.85 "/>
</g>
<polygon fill="#E1E1E1" points="52.719,6.172 53.719,3.672 50.875,4.672 48.938,6.672 44.891,9.656 46.75,11.922 50.953,7.563
"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 145 KiB

View file

@ -1,169 +1,108 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg5128"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_phase_combat.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs5130">
<linearGradient
id="linearGradient5717">
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="0"
id="stop5719" />
<stop
id="stop5727"
offset="0.25297618"
style="stop-color:#055897;stop-opacity:1;" />
<stop
id="stop5725"
offset="0.5"
style="stop-color:#00a4ff;stop-opacity:1;" />
<stop
id="stop5733"
offset="0.75"
style="stop-color:#055897;stop-opacity:1;" />
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="1"
id="stop5721" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient5120"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7071068,-0.7071068,-0.7071068,-0.7071068,377.0204,719.46402)"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221" />
<linearGradient
id="linearGradient3234">
<stop
style="stop-color:#6f6f6f;stop-opacity:1;"
offset="0"
id="stop3236" />
<stop
id="stop3242"
offset="0.47999999"
style="stop-color:#e6e6e6;stop-opacity:1;" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0.5"
id="stop3244" />
<stop
id="stop3286"
offset="0.75"
style="stop-color:#bebebe;stop-opacity:1;" />
<stop
style="stop-color:#494949;stop-opacity:1;"
offset="1"
id="stop3238" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient5114"
gradientUnits="userSpaceOnUse"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221"
gradientTransform="matrix(-0.7071068,-0.7071068,0.7071068,-0.7071068,156.76864,718.23161)" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective5136" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient5723"
x1="339.93985"
y1="482.58844"
x2="459.27341"
y2="355.50766"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient5741"
x1="70.945976"
y1="357.84494"
x2="196.70493"
y2="480.64206"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="11.087072"
inkscape:cx="12.956872"
inkscape:cy="29.617085"
inkscape:current-layer="g5122"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata5133">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g5122"
transform="matrix(0.1263349,0,0,0.1263349,-1.139644,-10.328942)">
<path
style="fill:url(#linearGradient5114);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1"
d="M 151.54643,435.67232 C 227.09743,348.10432 307.39071,270.38611 388.52101,198.69774 L 416.43419,137.34873 L 355.08518,165.26191 C 272.66733,257.12169 203.10352,326.6855 118.1106,402.23649 L 151.54643,435.67232 z M 161.44224,392.34068 L 170.0386,373.49867 L 232.21225,321.57067 L 180.28425,383.74432 L 161.44224,392.34068 z"
id="rect2383" />
<path
style="opacity:1;fill:url(#linearGradient5741);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653384999999474;stroke-opacity:1"
d="M 59.65417,525.5287 C 70.373545,485.52344 139.66773,445.51514 139.66773,445.51514 C 139.66773,445.51514 153.73013,454.44511 159.42898,462.53484 C 165.12783,470.62457 177.66007,499.44668 177.66007,499.44668 L 213.33942,463.76733 C 163.23337,434.83859 119.20655,391.00374 90.015578,340.44349 L 54.336228,376.12284 C 54.336228,376.12284 83.923422,387.89 92.013155,393.58885 C 100.10289,399.2877 108.26777,414.11518 108.26777,414.11518 C 108.26777,414.11518 68.207351,483.42333 28.254209,494.12874 C 15.386263,497.5767 56.206215,538.39665 59.65417,525.5287 z"
id="rect2407"
sodipodi:nodetypes="ccsccccccss" />
<path
style="fill:url(#linearGradient5120);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1"
d="M 382.24261,436.90473 C 306.69161,349.33673 226.39833,271.61852 145.26803,199.93015 L 117.35485,138.58114 L 178.70386,166.49432 C 261.12171,258.3541 330.68552,327.91791 415.67844,403.4689 L 382.24261,436.90473 z M 372.3468,393.57309 L 363.75044,374.73108 L 301.57679,322.80308 L 353.50479,384.97673 L 372.3468,393.57309 z"
id="path5116" />
<path
style="opacity:1;fill:url(#linearGradient5723);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653384999999474;stroke-opacity:1"
d="M 474.13487,526.76111 C 463.41549,486.75585 394.12131,446.74755 394.12131,446.74755 C 394.12131,446.74755 380.05891,455.67752 374.36006,463.76725 C 368.66121,471.85698 356.12897,500.67909 356.12897,500.67909 L 320.44962,464.99974 C 370.55567,436.071 414.58249,392.23615 443.77346,341.6759 L 479.45281,377.35525 C 479.45281,377.35525 449.86561,389.12241 441.77588,394.82126 C 433.68615,400.52011 425.52127,415.34759 425.52127,415.34759 C 425.52127,415.34759 465.58168,484.65574 505.53483,495.36115 C 518.40277,498.80911 477.58282,539.62906 474.13487,526.76111 z"
id="path5118"
sodipodi:nodetypes="ccsccccccss" />
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
<radialGradient id="SVGID_1_" cx="30" cy="30" r="30" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#D20000"/>
<stop offset="1" style="stop-color:#3C0000"/>
</radialGradient>
<path fill="url(#SVGID_1_)" d="M60,51.818C60,56.337,56.337,60,51.818,60H8.182C3.663,60,0,56.337,0,51.818V8.182
C0,3.663,3.663,0,8.182,0h43.637C56.337,0,60,3.663,60,8.182V51.818z"/>
<g>
<g>
<path fill="#FFFFFF" d="M11.725,50.506c0,2.618-1.054,5.338-4.08,5.338H4.721V45.135h3.094
C10.875,45.135,11.725,47.922,11.725,50.506z M6.065,46.223v8.533h1.58c2.278,0,2.703-2.414,2.703-4.216
c0-1.751-0.323-4.317-2.601-4.317H6.065z"/>
<g opacity="0.35">
<path d="M7.815,45.135c3.061,0,3.91,2.787,3.91,5.371c0,2.618-1.054,5.338-4.08,5.338H4.721V45.135H7.815 M6.065,54.756h1.58
c2.278,0,2.703-2.414,2.703-4.216c0-1.751-0.323-4.317-2.601-4.317H6.065V54.756 M7.815,44.135H4.721h-1v1v10.709v1h1h2.924
c3.133,0,5.08-2.429,5.08-6.338C12.725,46.517,10.89,44.135,7.815,44.135L7.815,44.135z M7.065,47.223h0.683
c0.396,0,1.601,0,1.601,3.317c0,2.134-0.573,3.216-1.703,3.216h-0.58V47.223L7.065,47.223z"/>
</g>
</g>
<g>
<path fill="#FFFFFF" d="M17.845,53.09h-2.499l-0.9,2.754h-1.411l2.873-8.737h1.376l2.891,8.737h-1.411L17.845,53.09z
M15.601,52.002h1.989l-0.986-3.28L15.601,52.002z"/>
<g opacity="0.35">
<path d="M17.284,47.106l2.891,8.737h-1.411l-0.918-2.754h-2.499l-0.9,2.754h-1.411l2.873-8.737H17.284 M15.601,52.002h1.989
l-0.986-3.28L15.601,52.002 M18.006,46.106h-0.723h-1.376h-0.724l-0.227,0.688l-2.873,8.737l-0.431,1.313h1.381h1.411h0.725
l0.226-0.689l0.675-2.064h1.053l0.69,2.07l0.228,0.684h0.721h1.411h1.384l-0.435-1.314l-2.891-8.737L18.006,46.106L18.006,46.106
z"/>
</g>
</g>
<g>
<path fill="#FFFFFF" d="M29.15,49.571l-2.158,6.272H25.87l-2.448-6.375v0.442v5.933h-1.325v-8.737h1.665l2.278,5.882
c0.017,0.051,0.152,0.357,0.356,1.037c0.204-0.715,0.307-1.021,0.307-1.021l2.107-5.898h1.666v8.737H29.15V49.571z"/>
<g opacity="0.35">
<path d="M30.476,47.106v8.737H29.15v-6.272l-2.158,6.272H25.87l-2.448-6.375v0.442v5.933h-1.325v-8.737h1.665l2.278,5.882
c0.017,0.051,0.152,0.357,0.356,1.037c0.204-0.715,0.307-1.021,0.307-1.021l2.107-5.898H30.476 M31.476,46.106h-1H28.81h-0.705
l-0.237,0.663l-1.519,4.251l-1.656-4.275l-0.248-0.639h-0.685h-1.665h-1v1v8.737v1h1h1.325h1v-1v-0.981l0.515,1.34l0.247,0.642
h0.687h1.122h0.713l0.232-0.675l0.212-0.618v0.293v1h1h1.326h1v-1v-8.737V46.106L31.476,46.106z"/>
</g>
</g>
<g>
<path fill="#FFFFFF" d="M37.191,53.09h-2.5l-0.9,2.754h-1.41l2.873-8.737h1.375l2.891,8.737h-1.41L37.191,53.09z M34.947,52.002
h1.988l-0.986-3.28L34.947,52.002z"/>
<g opacity="0.35">
<path d="M36.629,47.106l2.891,8.737h-1.41l-0.918-2.754h-2.5l-0.9,2.754h-1.41l2.873-8.737H36.629 M34.947,52.002h1.988
l-0.986-3.28L34.947,52.002 M37.352,46.106h-0.723h-1.375H34.53l-0.227,0.688l-2.873,8.737L31,56.844h1.381h1.41h0.726
l0.225-0.689l0.676-2.064h1.054l0.69,2.07l0.228,0.684h0.721h1.41h1.384l-0.435-1.314l-2.891-8.737L37.352,46.106L37.352,46.106z
"/>
</g>
</g>
<g>
<path fill="#FFFFFF" d="M44.586,47.871c-0.611,0-1.342,0.51-1.75,1.31c-0.307,0.612-0.477,1.479-0.477,2.346
c0,0.799,0.102,1.632,0.408,2.227c0.391,0.782,0.969,1.292,1.836,1.292c0.527,0,0.918-0.102,1.139-0.17v-2.873H47v3.706
c-0.221,0.085-1.088,0.391-2.414,0.391c-2.668,0-3.57-2.465-3.57-4.624c0-1.223,0.324-2.379,0.902-3.195
c0.611-0.884,1.547-1.445,2.668-1.445c1.02,0,1.564,0.222,2.432,0.646l-0.545,0.884C46.473,48.364,45.691,47.871,44.586,47.871z"
/>
<g opacity="0.35">
<path d="M44.586,46.834c1.02,0,1.564,0.222,2.432,0.646l-0.545,0.884c0,0-0.781-0.493-1.887-0.493c-0.611,0-1.342,0.51-1.75,1.31
c-0.307,0.612-0.477,1.479-0.477,2.346c0,0.799,0.102,1.632,0.408,2.227c0.391,0.782,0.969,1.292,1.836,1.292
c0.527,0,0.918-0.102,1.139-0.17v-2.873H47v3.706c-0.221,0.085-1.088,0.391-2.414,0.391c-2.668,0-3.57-2.465-3.57-4.624
c0-1.223,0.324-2.379,0.902-3.195C42.529,47.396,43.465,46.834,44.586,46.834 M44.586,45.834c-1.394,0-2.665,0.684-3.49,1.876
c-0.694,0.98-1.08,2.32-1.08,3.765c0,3.416,1.794,5.624,4.57,5.624c1.431,0,2.416-0.32,2.773-0.457L48,56.395v-0.687v-3.706v-1
h-1h-1.258h-1v1v2.04c-0.046,0.002-0.092,0.003-0.139,0.003c-0.186,0-0.572,0-0.941-0.738c-0.197-0.384-0.303-1.012-0.303-1.78
c0-0.725,0.139-1.435,0.371-1.897c0.269-0.527,0.697-0.758,0.855-0.758c0.781,0,1.348,0.335,1.353,0.339l0.854,0.539l0.531-0.86
l0.545-0.884l0.578-0.938l-0.99-0.485C46.534,46.13,45.836,45.834,44.586,45.834L44.586,45.834z"/>
</g>
</g>
<g>
<path fill="#FFFFFF" d="M49.908,47.106h4.793v1.088H51.25v2.532h2.652v1.123H51.25v2.872h3.604v1.122h-4.945V47.106z"/>
<g opacity="0.35">
<path d="M54.701,47.106v1.088H51.25v2.532h2.652v1.123H51.25v2.872h3.604v1.122h-4.945v-8.737H54.701 M55.701,46.106h-1h-4.793
h-1v1v8.737v1h1h4.945h1v-1v-1.122v-1h-1H52.25V52.85h1.652h1v-1v-1.123v-1h-1H52.25v-0.532h2.451h1v-1v-1.088V46.106
L55.701,46.106z"/>
</g>
</g>
</g>
<rect x="22" y="16" width="16" height="15"/>
<polygon points="40.095,38.651 40.453,39.292 41.292,39.292 41.709,11.083 34.25,7.25 28.958,7.75 30.511,13.657 "/>
<g>
<path fill-opacity="0.4" d="M30.781,6.75c0,0,5.708-0.25,6.703-0.031s1.808,0.698,1.808,0.698l1.735,1.419l1.049,1.051L43,11.333
l0.896,1.542l1.021,1.917l-0.063,23.146l-3.417,2.313l-0.146-24.719l-1.063-3.927l-4.104-3.729l-0.75-0.396L30.781,6.75z"/>
<g>
<path fill="#E1E1E1" d="M29.843,7.706c1.172-0.013,2.508,0.197,3.067,0.316s1.996,0.665,2.48,0.947s1.355,1.026,1.803,1.443
s1.265,1.26,1.572,1.792c0.636,0.97,1.677,2.318,1.677,4.928c0,1.587,0,22.15,0,22.15H20.509v-4.844c0,0,0-14.53,0-16.179
s0.188-2.294,0.316-2.886s0.605-1.737,0.992-2.391s1.026-1.52,1.355-1.888s1.477-1.379,1.813-1.594s1.698-1.007,2.172-1.172
S28.625,7.719,29.843,7.706z M27.25,26.42l-0.021,1.31h6.208v-1.31H27.25z M24.297,17.357v1.353h1.58h11.137l0.09-1.398
l-1.668,0.046H24.297z M27.229,22.136v1.444h6.176v-1.444H27.229z"/>
<g opacity="0.4">
<path d="M29.946,7.705c1.146,0,2.422,0.201,2.964,0.316c0.559,0.119,1.996,0.665,2.48,0.947s1.355,1.026,1.803,1.443
s1.265,1.26,1.572,1.792c0.636,0.97,1.677,2.318,1.677,4.928c0,1.587,0,22.15,0,22.15H20.509v-4.844c0,0,0-14.53,0-16.179
s0.188-2.294,0.316-2.886s0.605-1.737,0.992-2.391s1.026-1.52,1.355-1.888s1.477-1.379,1.813-1.594s1.698-1.007,2.172-1.172
s1.469-0.609,2.687-0.623C29.877,7.705,29.912,7.705,29.946,7.705 M37.104,17.311l-1.668,0.046H24.297v1.353h1.58h11.137
L37.104,17.311 M27.229,23.58h6.176v-1.444h-6.176V23.58 M27.229,27.729h6.208v-1.31H27.25L27.229,27.729 M29.946,6.705l-0.114,0
c-1.221,0.013-2.244,0.396-2.794,0.601c-0.08,0.03-0.15,0.056-0.211,0.078c-0.623,0.217-2.123,1.108-2.382,1.274
c-0.444,0.284-1.652,1.357-2.021,1.771c-0.374,0.42-1.054,1.342-1.469,2.045c-0.451,0.763-0.958,1.994-1.108,2.688l-0.04,0.18
c-0.133,0.592-0.299,1.33-0.299,2.917v16.179v4.844v1h1h19.934h1v-1v-22.15c0-2.718-1.021-4.247-1.695-5.258l-0.133-0.2
c-0.489-0.824-1.688-1.946-1.739-1.994c-0.335-0.313-1.346-1.206-1.981-1.576c-0.57-0.332-2.101-0.917-2.774-1.061
C32.57,6.926,31.2,6.705,29.946,6.705L29.946,6.705z"/>
</g>
</g>
</g>
<path fill="#E1E1E1" d="M41.292,15.531c-0.186-0.5-0.591-1.607-1.245-2.815c-0.465-0.857-1.734-2.669-2.609-3.372
c-1.999-1.606-3.563-2.078-3.563-2.078s2.423-0.097,3.844,0.359c1.594,0.594,2.673,1.254,3.823,2.792C42.656,11.906,44,15,44,15
v22.417l-2.719,1.864L41.292,15.531z"/>
</svg>

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

View file

@ -1,253 +1,319 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2564"
sodipodi:version="0.32"
inkscape:version="0.47 r22583"
sodipodi:docname="icon_phase_combat_end.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
enable-background="new"
version="1.1">
<defs
id="defs2566">
<linearGradient
id="linearGradient3629">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop3631" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop3633" />
</linearGradient>
<linearGradient
id="linearGradient5717">
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="0"
id="stop5719" />
<stop
id="stop5217"
offset="0.25"
style="stop-color:#055897;stop-opacity:1;" />
<stop
id="stop5725"
offset="0.5"
style="stop-color:#00a4ff;stop-opacity:1;" />
<stop
style="stop-color:#055897;stop-opacity:1;"
offset="0.75"
id="stop5215" />
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="1"
id="stop5721" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient2542"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.1263349,-0.1263349,0,74.367722,-7.5042832)"
x1="339.93985"
y1="482.58844"
x2="459.27341"
y2="355.50766" />
<linearGradient
id="linearGradient3234">
<stop
style="stop-color:#6f6f6f;stop-opacity:1;"
offset="0"
id="stop3236" />
<stop
id="stop3242"
offset="0.47999999"
style="stop-color:#e6e6e6;stop-opacity:1;" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0.5"
id="stop3244" />
<stop
id="stop3286"
offset="0.75"
style="stop-color:#bebebe;stop-opacity:1;" />
<stop
style="stop-color:#494949;stop-opacity:1;"
offset="1"
id="stop3238" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient2540"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(8.9332267e-2,8.9332267e-2,8.9332267e-2,-8.9332267e-2,-16.525693,40.126552)"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221" />
<linearGradient
id="linearGradient4965">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop4967" />
<stop
style="stop-color:#a55d00;stop-opacity:1;"
offset="1"
id="stop4969" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4947">
<stop
style="stop-color:#aa4400;stop-opacity:1;"
offset="0"
id="stop4949" />
<stop
style="stop-color:#aa4400;stop-opacity:0;"
offset="1"
id="stop4951" />
</linearGradient>
<linearGradient
id="linearGradient4939">
<stop
style="stop-color:#c3c3c3;stop-opacity:1;"
offset="0"
id="stop4941" />
<stop
style="stop-color:#ffff00;stop-opacity:0;"
offset="1"
id="stop4943" />
</linearGradient>
<linearGradient
id="linearGradient4891">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop4893" />
<stop
style="stop-color:#7f7f7f;stop-opacity:1;"
offset="1"
id="stop4895" />
</linearGradient>
<linearGradient
id="linearGradient4879">
<stop
style="stop-color:#d2d2d2;stop-opacity:1;"
offset="0"
id="stop4881" />
<stop
style="stop-color:#d0d0d0;stop-opacity:1;"
offset="1"
id="stop4883" />
</linearGradient>
<linearGradient
id="linearGradient3370">
<stop
style="stop-color:#f2f500;stop-opacity:1;"
offset="0"
id="stop3372" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop3374" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2572" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4947"
id="linearGradient4953"
x1="31.990065"
y1="7.0514474"
x2="35.589882"
y2="26.218145"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3629"
id="linearGradient3635"
x1="19.253855"
y1="10.606701"
x2="60.756615"
y2="56.979095"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="7.2452592"
inkscape:cx="27.17545"
inkscape:cy="31.677957"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1223"
inkscape:window-height="725"
inkscape:window-x="51"
inkscape:window-y="25"
inkscape:window-maximized="0" />
<metadata
id="metadata2569">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
style="display:inline;">
<path
style="fill:#c6c6c6;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.88227361px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 17.971875,9.0497399 c 13.803078,-4.3242635 28.271111,-5.4386365 44.096655,0 0,0 0.772923,25.3873211 -3.533878,34.6679241 -3.125168,6.734334 -18.591272,14.905532 -18.591272,14.905532 0,0 -15.466106,-8.171198 -18.591274,-14.905532 -4.3068,-9.280603 -3.380231,-34.6679241 -3.380231,-34.6679241 z"
id="rect2577"
sodipodi:nodetypes="ccscsc" />
<path
style="fill:url(#linearGradient3635);fill-opacity:1.0;fill-rule:evenodd;stroke:none"
d="m 19.332534,10.467021 c 12.950675,-4.0572226 26.525242,-5.1027782 41.373489,0 0,0 0.725191,23.819541 -3.315646,32.527026 -2.932174,6.318459 -17.443178,13.985049 -17.443178,13.985049 0,0 -14.511004,-7.66659 -17.443179,-13.985049 -4.040836,-8.707485 -3.171486,-32.527026 -3.171486,-32.527026 z"
id="path4899"
sodipodi:nodetypes="ccscsc" />
<g
id="g2536"
transform="matrix(-0.6586645,0.6586645,-0.6586645,-0.6586645,53.040738,30.874896)">
<path
id="path5116"
d="M 19.171407,40.786299 C 30.234301,31.241571 40.052824,21.097727 49.109567,10.848139 L 56.860088,7.3217298 L 53.333679,15.072251 C 41.728583,25.484502 32.940246,34.272839 23.395519,45.010411 L 19.171407,40.786299 z M 24.645705,39.536112 L 27.026109,38.450092 L 33.586428,30.59539 L 25.731726,37.155709 L 24.645705,39.536112 z"
style="fill:url(#linearGradient2540);fill-opacity:1;stroke:#000000;stroke-width:0.12633491;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccsccccccss"
id="path5118"
d="M 7.8194102,52.395498 C 12.873471,51.041266 17.927915,42.286993 17.927915,42.286993 C 17.927915,42.286993 16.799748,40.510421 15.777733,39.790457 C 14.755718,39.070494 11.11448,37.487234 11.11448,37.487234 L 15.622027,32.979687 C 19.276736,39.30983 24.814608,44.871954 31.202132,48.559792 L 26.694585,53.067339 C 26.694585,53.067339 25.207982,49.329444 24.488018,48.307428 C 23.768054,47.285413 21.894826,46.253904 21.894826,46.253904 C 21.894826,46.253904 13.138788,51.314932 11.786321,56.362409 C 11.350723,57.988079 6.1937392,52.831094 7.8194102,52.395498 z"
style="opacity:1;fill:url(#linearGradient2542);fill-opacity:1;stroke:#000000;stroke-width:0.12667845;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653384999999474;stroke-opacity:1" />
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
<radialGradient id="SVGID_1_" cx="30" cy="30" r="30" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#D20000"/>
<stop offset="1" style="stop-color:#3C0000"/>
</radialGradient>
<path fill="url(#SVGID_1_)" d="M60,51.818C60,56.337,56.337,60,51.818,60H8.182C3.663,60,0,56.337,0,51.818V8.182
C0,3.663,3.663,0,8.182,0h43.637C56.337,0,60,3.663,60,8.182V51.818z"/>
<g display="none">
<g display="inline">
<path fill="#FFFFFF" d="M21.941,45.399c0-4.271,1.96-9.451,6.581-9.451c4.691,0,6.581,5.25,6.581,9.556s-1.89,9.556-6.581,9.556
C23.796,55.06,21.941,49.704,21.941,45.399z M24.671,45.679c0,3.15,0.77,7.141,3.851,7.141c3.116,0,3.815-4.13,3.815-7.315
c0-3.22-0.805-7.315-3.815-7.315C25.441,38.188,24.671,42.389,24.671,45.679z"/>
<g opacity="0.35">
<path d="M28.522,35.948c4.691,0,6.581,5.25,6.581,9.556s-1.89,9.556-6.581,9.556c-4.726,0-6.581-5.355-6.581-9.66
C21.941,41.129,23.901,35.948,28.522,35.948 M28.522,52.819c3.116,0,3.815-4.13,3.815-7.315c0-3.22-0.805-7.315-3.815-7.315
c-3.081,0-3.851,4.2-3.851,7.49C24.671,48.829,25.441,52.819,28.522,52.819 M28.522,34.448c-5.305,0-8.081,5.509-8.081,10.951
c0,5.375,2.529,11.16,8.081,11.16c5.552,0,8.081-5.73,8.081-11.056S34.074,34.448,28.522,34.448L28.522,34.448z M28.522,51.319
c-2.237,0-2.351-4.698-2.351-5.641c0-2.764,0.616-5.99,2.351-5.99c1.827,0,2.315,3.655,2.315,5.815
C30.837,46.475,30.725,51.319,28.522,51.319L28.522,51.319z"/>
</g>
</g>
<g display="inline">
<path fill="#FFFFFF" d="M53.268,41.584L48.822,54.5h-2.311l-5.04-13.126v0.91V54.5h-2.73V36.508h3.431l4.69,12.111
c0.035,0.105,0.314,0.735,0.734,2.136c0.421-1.471,0.631-2.101,0.631-2.101l4.34-12.146h3.431V54.5h-2.73V41.584z"/>
<g opacity="0.35">
<path d="M55.998,36.508V54.5h-2.73V41.584L48.822,54.5h-2.311l-5.04-13.126v0.91V54.5h-2.73V36.508h3.431l4.69,12.111
c0.035,0.105,0.314,0.735,0.734,2.136c0.421-1.471,0.631-2.101,0.631-2.101l4.34-12.146H55.998 M57.498,35.008h-1.5h-3.431
h-1.057l-0.355,0.995l-3.633,10.168L43.57,35.966l-0.371-0.958h-1.027h-3.431h-1.5v1.5V54.5V56h1.5h2.73h1.5v-1.5v-5.035
l2.14,5.573L45.48,56h1.031h2.311h1.07l0.348-1.012l1.527-4.437V54.5V56h1.5h2.73h1.5v-1.5V36.508V35.008L57.498,35.008z"/>
</g>
</g>
</g>
<g display="none">
<g display="inline">
<path fill="#FFFFFF" d="M20.003,50.288c-0.78,1.56-2.601,4.836-6.917,4.836c-7.072,0-9.568-8.372-9.568-19.657
c0-8.84,2.392-18.408,9.776-18.408c1.508,0,1.768-0.104,1.768-0.78l1.508-0.572l2.185,5.2l-1.664,0.676
c-1.092-1.248-2.288-2.028-3.796-2.028c-3.848,0-7.02,5.72-7.02,16.328c0,9.568,1.976,16.745,6.812,16.745
c2.6,0,4.368-2.185,5.096-3.849L20.003,50.288z"/>
<g opacity="0.35">
<path d="M16.57,15.707l2.185,5.2l-1.664,0.676c-1.092-1.248-2.288-2.028-3.796-2.028c-3.848,0-7.02,5.72-7.02,16.328
c0,9.568,1.976,16.745,6.812,16.745c2.6,0,4.368-2.185,5.096-3.849l1.82,1.509c-0.78,1.56-2.601,4.836-6.917,4.836
c-7.072,0-9.568-8.372-9.568-19.657c0-8.84,2.392-18.408,9.776-18.408c1.508,0,1.768-0.104,1.768-0.78L16.57,15.707
M17.393,13.791l-1.354,0.514l-1.508,0.572l-0.968,0.367v0.314c-0.08,0.001-0.169,0.001-0.268,0.001
c-7.061,0-11.276,7.442-11.276,19.908c0,17.486,6.019,21.157,11.068,21.157c3.599,0,6.377-1.906,8.258-5.665l0.533-1.065
l-0.917-0.761l-1.82-1.509l-1.533-1.271l-0.798,1.824c-0.132,0.303-1.359,2.95-3.722,2.95c-3.326,0-5.312-5.699-5.312-15.245
c0-9.735,2.777-14.828,5.52-14.828c0.927,0,1.75,0.468,2.667,1.516l0.704,0.804l0.99-0.402l1.664-0.676l1.406-0.571l-0.588-1.399
l-2.185-5.2L17.393,13.791L17.393,13.791z"/>
</g>
</g>
</g>
<g display="none">
<g display="inline">
<path fill="#FFFFFF" d="M45.334,32.189c-1.919,0-3.208-1.03-3.853-3.069c-0.73,2.039-1.99,3.069-3.765,3.069
c-1.402,0-2.463-0.64-3.153-1.9l-0.295-0.551c-0.337-0.618-0.879-1.018-1.657-1.217l-0.621-0.156
c-2.588-0.624-3.133-2.275-3.133-3.551c0-1.357,0.685-2.537,2.041-3.523c-1.209,0-2.237-0.349-3.054-1.035
c-0.844-0.708-1.272-1.605-1.272-2.668c0-0.854,0.352-1.676,1.047-2.445l0.466-0.524c0.462-0.506,0.694-0.964,0.694-1.367
c0-0.111-0.02-0.376-0.057-0.796l-0.057-0.495l-0.003-0.428c0-2.436,1.267-3.723,3.664-3.723c0.887,0,1.807,0.337,2.749,1.006
c-0.187-0.616-0.28-1.202-0.28-1.756c0-1.001,0.332-1.856,0.988-2.542c0.662-0.692,1.49-1.043,2.461-1.043
c0.535,0,1.05,0.106,1.528,0.315l0.505,0.242c0.784,0.347,1.156,0.4,1.307,0.4c0.118,0,0.409-0.036,1.029-0.278l0.557-0.23
c0.708-0.289,1.287-0.429,1.773-0.429c1,0,1.866,0.389,2.574,1.157c0.697,0.756,1.051,1.671,1.051,2.722
c0,0.426-0.067,0.872-0.202,1.335c0.885-0.602,1.744-0.898,2.593-0.898c1.013,0,1.858,0.355,2.514,1.057
c0.646,0.692,0.975,1.589,0.975,2.666c0,0.226-0.016,0.43-0.046,0.61l-0.078,0.468c-0.021,0.159-0.032,0.338-0.032,0.523
c0,0.555,0.239,1.091,0.731,1.638l0.377,0.438c0.728,0.814,1.099,1.655,1.099,2.495c0,1.091-0.398,2.015-1.185,2.749
c-0.775,0.724-1.748,1.091-2.89,1.091c-0.037,0-0.074,0-0.112-0.001c1.264,0.961,1.901,2.095,1.901,3.388
c0,1.752-0.97,2.913-2.805,3.357l-0.551,0.152c-0.981,0.234-1.632,0.656-2.006,1.294l-0.25,0.443
C47.798,31.517,46.701,32.189,45.334,32.189z M38.897,21.964l0.77-0.884c-0.074-0.049-0.147-0.102-0.218-0.158l-0.576,1.024
L38.897,21.964z M44.252,21.896l0.053-0.039l-0.632-0.971c-0.063,0.051-0.127,0.1-0.192,0.146L44.252,21.896z M41.506,17.541
c-0.173,0-0.404,0.025-0.525,0.146s-0.146,0.363-0.146,0.545c0,0.184,0.026,0.431,0.152,0.561c0.097,0.1,0.271,0.15,0.52,0.15
s0.423-0.05,0.52-0.15c0.126-0.13,0.152-0.376,0.152-0.561c0-0.182-0.025-0.424-0.146-0.545S41.679,17.541,41.506,17.541z
M38.266,17.332c0.02-0.075,0.042-0.148,0.066-0.221l-1.131-0.262l-0.011,0.031L38.266,17.332z M44.806,17.264l1.043-0.465
l-0.006-0.021l-1.108,0.264C44.761,17.115,44.784,17.189,44.806,17.264z M41.374,14.845c0.057-0.002,0.222-0.003,0.248-0.003
l-0.09-1.13h-0.058L41.374,14.845z"/>
<g>
<path fill="#FF0000" d="M38.244,3.974c0.469,0,0.911,0.091,1.328,0.273l0.488,0.234c0.677,0.3,1.185,0.449,1.523,0.449
c0.273,0,0.677-0.104,1.211-0.313l0.566-0.234c0.638-0.26,1.165-0.391,1.582-0.391c0.859,0,1.595,0.332,2.207,0.996
s0.918,1.458,0.918,2.383c0,1.042-0.449,2.214-1.348,3.516c1.511-1.719,2.923-2.578,4.238-2.578c0.872,0,1.589,0.3,2.148,0.898
c0.56,0.599,0.84,1.374,0.84,2.324c0,0.195-0.013,0.371-0.039,0.527l-0.078,0.469c-0.026,0.195-0.039,0.397-0.039,0.605
c0,0.677,0.286,1.335,0.859,1.973l0.371,0.43c0.651,0.729,0.977,1.452,0.977,2.168c0,0.951-0.342,1.745-1.025,2.383
c-0.684,0.638-1.533,0.957-2.549,0.957c-0.651,0-1.511-0.104-2.578-0.313c2.578,1.094,3.867,2.494,3.867,4.199
c0,1.523-0.808,2.48-2.422,2.871l-0.566,0.156c-1.094,0.261-1.862,0.769-2.305,1.524l-0.254,0.449
c-0.703,1.172-1.647,1.758-2.832,1.758c-2.278,0-3.542-1.687-3.789-5.059c-0.456,3.373-1.731,5.059-3.828,5.059
c-1.211,0-2.116-0.547-2.715-1.641l-0.293-0.547c-0.404-0.743-1.062-1.231-1.973-1.465l-0.625-0.156
c-1.836-0.442-2.754-1.465-2.754-3.066c0-1.745,1.309-3.164,3.926-4.258c-0.99,0.156-1.784,0.234-2.383,0.234
c-1.094,0-2.006-0.306-2.734-0.918c-0.729-0.612-1.094-1.374-1.094-2.285c0-0.729,0.306-1.432,0.918-2.109l0.469-0.527
c0.547-0.599,0.82-1.165,0.82-1.699c0-0.117-0.02-0.397-0.059-0.84l-0.059-0.508v-0.371c0-2.148,1.055-3.223,3.164-3.223
c1.314,0,2.721,0.847,4.219,2.539c-0.834-1.406-1.25-2.669-1.25-3.789c0-0.872,0.283-1.604,0.85-2.197
C36.711,4.271,37.41,3.974,38.244,3.974 M40.842,15.185l-0.547-0.918l-0.879,0.41l0.273,1.035l-0.879-0.605l-0.645,0.664
l0.645,0.938l-1.934-0.449l-0.313,0.898l1.855,0.781l-1.055,0.293l0.098,0.898l1.074,0.039l-0.84,0.703l0.449,0.84l1.055-0.371
l-0.977,1.738l0.742,0.566l1.309-1.504l-0.039,1.094l0.879,0.195l0.43-1.035l0.41,1.016l0.898-0.176l0.02-1.133l1.309,1.465
l0.801-0.586l-1.094-1.68l1.035,0.391l0.449-0.84l-0.84-0.664l1.055-0.039l0.117-0.957L44.65,17.88l1.797-0.801l-0.254-0.898
l-1.973,0.469l0.684-0.859l-0.625-0.664L43.4,15.732l0.293-1.055l-0.879-0.41l-0.664,0.918l-0.156-1.973h-0.977L40.842,15.185
M41.545,15.341c0.808,0,1.491,0.28,2.051,0.84c0.56,0.56,0.84,1.244,0.84,2.051c0,0.808-0.28,1.491-0.84,2.051
c-0.56,0.56-1.243,0.84-2.051,0.84c-0.82,0-1.507-0.28-2.061-0.84c-0.554-0.56-0.83-1.243-0.83-2.051
c0-0.807,0.28-1.491,0.84-2.051C40.054,15.622,40.737,15.341,41.545,15.341 M41.506,19.443c0.391,0,0.684-0.101,0.879-0.303
c0.195-0.202,0.293-0.504,0.293-0.908c0-0.403-0.098-0.703-0.293-0.898s-0.488-0.293-0.879-0.293s-0.684,0.098-0.879,0.293
s-0.293,0.495-0.293,0.898c0,0.404,0.098,0.707,0.293,0.908C40.822,19.342,41.115,19.443,41.506,19.443 M38.244,2.974
c-1.113,0-2.063,0.403-2.822,1.198c-0.748,0.782-1.127,1.754-1.127,2.888c0,0.239,0.016,0.483,0.048,0.732
c-0.676-0.323-1.346-0.482-2.017-0.482c-2.646,0-4.164,1.539-4.164,4.223v0.371v0.058l0.006,0.057l0.059,0.508
c0.049,0.563,0.052,0.703,0.052,0.725c0,0.267-0.198,0.63-0.559,1.025l-0.478,0.537c-0.775,0.857-1.17,1.792-1.17,2.774
c0,1.2,0.502,2.255,1.451,3.051c0.619,0.521,1.344,0.867,2.164,1.034c-0.884,0.915-1.33,1.964-1.33,3.141
c0,2.058,1.25,3.492,3.52,4.039l0.617,0.154c0.638,0.164,1.064,0.474,1.337,0.973l0.289,0.541
c0.778,1.421,2.021,2.168,3.597,2.168c1.247,0,2.722-0.476,3.745-2.322c0.975,1.846,2.528,2.322,3.872,2.322
c1.069,0,2.577-0.39,3.689-2.243l0.267-0.472c0.294-0.501,0.842-0.847,1.666-1.043l0.601-0.165
c2.024-0.489,3.156-1.854,3.156-3.835c0-1.112-0.408-2.112-1.218-2.993c0.82-0.17,1.544-0.545,2.16-1.12
c0.891-0.831,1.343-1.879,1.343-3.114c0-0.966-0.414-1.919-1.23-2.834l-0.36-0.417c-0.419-0.466-0.616-0.893-0.616-1.319
c0-0.165,0.01-0.324,0.03-0.472l0.073-0.438c0.035-0.209,0.053-0.437,0.053-0.692c0-1.207-0.373-2.219-1.109-3.007
c-0.754-0.807-1.723-1.216-2.879-1.216c-0.634,0-1.267,0.144-1.905,0.435c0.01-0.125,0.015-0.25,0.015-0.372
c0-1.18-0.398-2.209-1.183-3.061c-0.807-0.875-1.797-1.318-2.942-1.318c-0.553,0-1.193,0.152-1.96,0.465l-0.571,0.236
c-0.589,0.229-0.806,0.236-0.828,0.236c-0.05,0-0.337-0.018-1.118-0.363l-0.461-0.222C39.43,3.094,38.849,2.974,38.244,2.974
L38.244,2.974z M41.563,18.351l0.027-0.307c0.03,0.002,0.055,0.006,0.072,0.009c0.008,0.036,0.015,0.093,0.015,0.179
c0,0.003,0,0.006,0,0.009l-0.041,0.051l0.04-0.009c-0.002,0.047-0.006,0.084-0.011,0.113l-0.282-0.107l0.101,0.155
c-0.048-0.001-0.085-0.005-0.111-0.009l0.003-0.08l-0.031,0.036c-0.006-0.037-0.011-0.089-0.011-0.158
c0-0.024,0.001-0.045,0.002-0.065l0.102-0.028L41.563,18.351L41.563,18.351z"/>
</g>
</g>
</g>
<g display="none">
<g display="inline">
<path fill="#DCDCDC" d="M34.455,54.5H31.76V38.854h-4.445v-2.346h11.621v2.346h-4.48V54.5z"/>
<g opacity="0.35">
<path d="M38.936,36.508v2.346h-4.48V54.5H31.76V38.854h-4.445v-2.346H38.936 M40.436,35.008h-1.5H27.314h-1.5v1.5v2.346v1.5h1.5
h2.945V54.5V56h1.5h2.695h1.5v-1.5V40.354h2.98h1.5v-1.5v-2.346V35.008L40.436,35.008z"/>
</g>
</g>
<g display="inline">
<path fill="#DCDCDC" d="M49.785,54.5H47.09V38.854h-4.445v-2.346h11.621v2.346h-4.48V54.5z"/>
<g opacity="0.35">
<path d="M54.266,36.508v2.346h-4.48V54.5H47.09V38.854h-4.445v-2.346H54.266 M55.766,35.008h-1.5H42.645h-1.5v1.5v2.346v1.5h1.5
h2.945V54.5V56h1.5h2.695h1.5v-1.5V40.354h2.98h1.5v-1.5v-2.346V35.008L55.766,35.008z"/>
</g>
</g>
</g>
<g display="none">
<g display="inline">
<path fill="#DCDCDC" d="M13.013,55.917l-1.273-3.856H8.169l-1.273,3.856H5.338l3.799-11.968h1.634l3.799,11.968H13.013z
M8.53,50.807h2.85l-1.425-5.281L8.53,50.807z"/>
<g opacity="0.35">
<path d="M10.771,43.949l3.799,11.968h-1.558l-1.273-3.856H8.169l-1.273,3.856H5.338l3.799-11.968H10.771 M8.53,50.807h2.85
l-1.425-5.281L8.53,50.807 M11.503,42.949h-0.732H9.138H8.406l-0.221,0.697L4.385,55.614l-0.414,1.303h1.367h1.558h0.723
l0.227-0.687l1.046-3.17h2.125l1.046,3.17l0.227,0.687h0.723h1.558h1.367l-0.414-1.303l-3.799-11.968L11.503,42.949
L11.503,42.949z"/>
</g>
</g>
<g display="inline">
<path fill="#DCDCDC" d="M19.208,55.917h-1.463v-8.491h-2.413v-1.273h6.307v1.273h-2.432V55.917z"/>
<g opacity="0.35">
<path d="M21.639,46.152v1.273h-2.432v8.491h-1.463v-8.491h-2.413v-1.273H21.639 M22.639,45.152h-1h-6.307h-1v1v1.273v1h1h1.413
v7.491v1h1h1.463h1v-1v-7.491h1.432h1v-1v-1.273V45.152L22.639,45.152z"/>
</g>
</g>
<g display="inline">
<path fill="#DCDCDC" d="M26.579,55.917h-1.463v-8.491h-2.413v-1.273h6.307v1.273h-2.432V55.917z"/>
<g opacity="0.35">
<path d="M29.011,46.152v1.273h-2.432v8.491h-1.463v-8.491h-2.413v-1.273H29.011 M30.011,45.152h-1h-6.307h-1v1v1.273v1h1h1.413
v7.491v1h1h1.463h1v-1v-7.491h1.432h1v-1v-1.273V45.152L30.011,45.152z"/>
</g>
</g>
<g display="inline">
<path fill="#DCDCDC" d="M34.577,52.84h-2.792l-1.007,3.077h-1.577l3.21-9.765h1.539l3.229,9.765h-1.577L34.577,52.84z
M32.07,51.623h2.223l-1.103-3.666L32.07,51.623z"/>
<g opacity="0.35">
<path d="M33.951,46.152l3.229,9.765h-1.577l-1.026-3.077h-2.792l-1.007,3.077h-1.577l3.21-9.765H33.951 M32.07,51.623h2.223
l-1.103-3.666L32.07,51.623 M34.674,45.152h-0.723h-1.539h-0.724l-0.227,0.688l-3.21,9.765l-0.431,1.313h1.381h1.577h0.725
l0.226-0.689l0.781-2.388h1.347l0.799,2.394l0.228,0.684h0.721h1.577h1.384l-0.435-1.314L34.9,45.838L34.674,45.152
L34.674,45.152z"/>
</g>
</g>
<g display="inline">
<path fill="#DCDCDC" d="M38.854,51.035c0-1.368,0.36-2.66,1.007-3.572c0.684-1.006,1.729-1.614,2.982-1.614
c1.235,0,2.185,0.399,2.697,0.722l-0.551,0.988c-0.74-0.381-1.349-0.551-2.146-0.551c-0.684,0-1.52,0.569-1.957,1.463
c-0.342,0.684-0.531,1.652-0.531,2.621c0,0.893,0.113,1.824,0.456,2.488c0.437,0.874,1.082,1.443,2.052,1.443
c1.025,0,1.918-0.551,2.165-0.721l0.665,0.969c-0.285,0.209-1.349,0.949-2.888,0.949C39.86,56.221,38.854,53.428,38.854,51.035z"
/>
<g opacity="0.35">
<path d="M42.843,45.849c1.235,0,2.185,0.399,2.697,0.722l-0.551,0.988c-0.74-0.381-1.349-0.551-2.146-0.551
c-0.684,0-1.52,0.569-1.957,1.463c-0.342,0.684-0.531,1.652-0.531,2.621c0,0.893,0.113,1.824,0.456,2.488
c0.437,0.874,1.082,1.443,2.052,1.443c1.025,0,1.918-0.551,2.165-0.721l0.665,0.969c-0.285,0.209-1.349,0.949-2.888,0.949
c-2.944,0-3.951-2.793-3.951-5.186c0-1.368,0.36-2.66,1.007-3.572C40.544,46.457,41.589,45.849,42.843,45.849 M42.843,44.849
c-1.558,0-2.91,0.729-3.81,2.052c-0.757,1.067-1.18,2.542-1.18,4.135c0,2.854,1.297,6.186,4.951,6.186
c1.67,0,2.896-0.716,3.479-1.143l0.782-0.573l-0.549-0.8l-0.665-0.969l-0.566-0.824l-0.824,0.566
c-0.081,0.056-0.814,0.545-1.599,0.545c-0.353,0-0.766-0.105-1.157-0.891c-0.229-0.442-0.351-1.163-0.351-2.041
c0-0.828,0.159-1.641,0.426-2.174c0.292-0.597,0.804-0.91,1.063-0.91c0.607,0,1.065,0.119,1.689,0.44l0.859,0.442l0.471-0.846
l0.551-0.988l0.462-0.828l-0.803-0.505C45.653,45.461,44.501,44.849,42.843,44.849L42.843,44.849z"/>
</g>
</g>
<g display="inline">
<path fill="#DCDCDC" d="M49.665,52.099v3.818h-1.501v-9.765h1.501v4.142l3.286-4.142h1.634l-3.895,5.016l3.971,4.16v0.589h-1.425
L49.665,52.099z"/>
<g opacity="0.35">
<path d="M54.585,46.152l-3.895,5.016l3.971,4.16v0.589h-1.425l-3.571-3.818v3.818h-1.501v-9.765h1.501v4.142l3.286-4.142H54.585
M56.628,45.152h-2.043h-1.634h-0.483l-0.3,0.379l-1.503,1.894v-1.272v-1h-1h-1.501h-1v1v9.765v1h1h1.501h1v-1v-1.285
l1.841,1.968l0.297,0.317h0.434h1.425h1v-1v-0.589v-0.4l-0.276-0.29l-3.376-3.537l3.366-4.335L56.628,45.152L56.628,45.152z"/>
</g>
</g>
</g>
<g>
<g>
<path fill="#DCDCDC" d="M7.22,56.184c-3.477,0-4.616-3.344-4.616-6.27c0-2.793,1.368-6.27,4.654-6.27
c1.007,0,2.223,0.266,3.077,0.816l-0.551,0.988c-0.798-0.437-1.614-0.607-2.526-0.607c-2.261,0-3.135,3.362-3.135,5.148
c0,2.014,0.646,4.958,3.173,4.958c0.854,0,1.899-0.267,2.583-0.778l0.646,0.949C9.67,55.803,8.303,56.184,7.22,56.184z"/>
<g opacity="0.35">
<path d="M7.258,43.645c1.007,0,2.223,0.266,3.077,0.816l-0.551,0.988c-0.798-0.437-1.614-0.607-2.526-0.607
c-2.261,0-3.135,3.362-3.135,5.148c0,2.014,0.646,4.958,3.173,4.958c0.854,0,1.899-0.267,2.583-0.778l0.646,0.949
c-0.855,0.684-2.223,1.064-3.306,1.064c-3.477,0-4.616-3.344-4.616-6.27C2.604,47.121,3.972,43.645,7.258,43.645 M7.258,42.645
c-3.712,0-5.654,3.657-5.654,7.27c0,4.416,2.205,7.27,5.616,7.27c1.412,0,2.955-0.504,3.93-1.283l0.724-0.578l-0.521-0.766
l-0.646-0.949l-0.589-0.864L9.28,53.369c-0.456,0.341-1.271,0.579-1.984,0.579c-2.068,0-2.173-3.297-2.173-3.958
c0-1.447,0.733-4.148,2.135-4.148c0.803,0,1.434,0.149,2.046,0.484l0.871,0.477l0.483-0.867l0.551-0.988l0.457-0.818
l-0.788-0.509C9.929,43.01,8.576,42.645,7.258,42.645L7.258,42.645z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M12.236,50.959c0-2.318,1.064-5.129,3.572-5.129c2.545,0,3.571,2.85,3.571,5.186
c0,2.337-1.026,5.187-3.571,5.187C13.243,56.202,12.236,53.295,12.236,50.959z M13.719,51.111c0,1.709,0.418,3.875,2.09,3.875
c1.69,0,2.07-2.242,2.07-3.971c0-1.748-0.437-3.971-2.07-3.971C14.137,47.045,13.719,49.324,13.719,51.111z"/>
<g opacity="0.35">
<path d="M15.809,45.83c2.545,0,3.571,2.85,3.571,5.186c0,2.337-1.026,5.187-3.571,5.187c-2.565,0-3.572-2.907-3.572-5.243
C12.236,48.641,13.301,45.83,15.809,45.83 M15.809,54.986c1.69,0,2.07-2.242,2.07-3.971c0-1.748-0.437-3.971-2.07-3.971
c-1.672,0-2.09,2.279-2.09,4.066C13.719,52.82,14.137,54.986,15.809,54.986 M15.809,44.83c-3.002,0-4.572,3.083-4.572,6.129
c0,3.007,1.431,6.243,4.572,6.243c3.141,0,4.571-3.207,4.571-6.187S18.949,44.83,15.809,44.83L15.809,44.83z M15.809,53.986
c-0.86,0-1.09-1.808-1.09-2.875c0-1.477,0.341-3.066,1.09-3.066c0.735,0,1.07,1.54,1.07,2.971
C16.879,52.386,16.599,53.986,15.809,53.986L15.809,53.986z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M30.19,48.889l-2.413,7.01h-1.254l-2.735-7.125v0.494v6.631h-1.481v-9.766h1.861l2.546,6.574
c0.019,0.057,0.171,0.398,0.398,1.158c0.229-0.798,0.343-1.14,0.343-1.14l2.355-6.593h1.861v9.766H30.19V48.889z"/>
<g opacity="0.35">
<path d="M31.672,46.133v9.766H30.19v-7.01l-2.413,7.01h-1.254l-2.735-7.125v0.494v6.631h-1.481v-9.766h1.861l2.546,6.574
c0.019,0.057,0.171,0.398,0.398,1.158c0.229-0.798,0.343-1.14,0.343-1.14l2.355-6.593H31.672 M32.672,45.133h-1h-1.861h-0.705
l-0.237,0.663l-1.804,5.049l-1.964-5.073l-0.248-0.639h-0.685h-1.861h-1v1v9.766v1h1h1.481h1v-1v-1.73l0.802,2.089l0.247,0.642
h0.687h1.254h0.713l0.232-0.675l0.468-1.357v1.032v1h1h1.481h1v-1v-9.766V45.133L32.672,45.133z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M35.093,55.784v-9.651h2.564c0.607,0,1.159,0.058,1.614,0.229c0.988,0.38,1.539,1.216,1.539,2.279
c0,0.381-0.209,1.045-0.494,1.387c-0.209,0.229-0.418,0.399-0.74,0.608c1.292,0.36,1.785,1.292,1.785,2.413
c0,1.956-1.538,3.153-3.666,3.153C36.821,56.202,35.396,55.859,35.093,55.784z M37.639,47.273h-1.045v2.887l1.025,0.02
c0.931,0.02,1.71-0.513,1.71-1.558c0-0.569-0.267-0.969-0.589-1.121C38.455,47.35,38.075,47.273,37.639,47.273z M37.581,51.357
h-0.987v3.42c0.284,0.076,0.74,0.171,1.063,0.171c1.292,0,2.204-0.627,2.204-1.899c0-0.57-0.152-1.064-0.627-1.387
C38.911,51.434,38.417,51.357,37.581,51.357z"/>
<g opacity="0.35">
<path d="M37.657,46.133c0.607,0,1.159,0.058,1.614,0.229c0.988,0.38,1.539,1.216,1.539,2.279c0,0.381-0.209,1.045-0.494,1.387
c-0.209,0.229-0.418,0.399-0.74,0.608c1.292,0.36,1.785,1.292,1.785,2.413c0,1.956-1.538,3.153-3.666,3.153
c-0.874,0-2.299-0.343-2.603-0.418v-9.651H37.657 M37.668,50.181c0.909,0,1.661-0.532,1.661-1.559
c0-0.569-0.267-0.969-0.589-1.121c-0.285-0.151-0.665-0.228-1.102-0.228h-1.045v2.887l1.025,0.02
C37.636,50.18,37.652,50.181,37.668,50.181 M37.657,54.948c1.292,0,2.204-0.627,2.204-1.899c0-0.57-0.152-1.064-0.627-1.387
c-0.323-0.229-0.817-0.305-1.653-0.305h-0.987v3.42C36.878,54.854,37.334,54.948,37.657,54.948 M37.657,45.133h-2.564h-1v1v9.651
v0.782l0.76,0.188c0.543,0.135,1.907,0.447,2.843,0.447c2.747,0,4.666-1.708,4.666-4.153c0-1.105-0.388-2.012-1.099-2.634
c0.363-0.574,0.548-1.298,0.548-1.774c0-1.487-0.815-2.688-2.181-3.213C39.092,45.226,38.467,45.133,37.657,45.133L37.657,45.133
z M37.594,53.946v-1.589c0.806,0.001,1.012,0.085,1.063,0.121c0.081,0.056,0.204,0.139,0.204,0.57c0,0.27,0,0.899-1.204,0.899
C37.638,53.948,37.617,53.947,37.594,53.946L37.594,53.946z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M48.277,52.82h-2.792l-1.007,3.078h-1.577l3.211-9.766h1.538l3.229,9.766h-1.576L48.277,52.82z
M45.77,51.604h2.223l-1.102-3.667L45.77,51.604z"/>
<g opacity="0.35">
<path d="M47.65,46.133l3.229,9.766h-1.576l-1.026-3.078h-2.792l-1.007,3.078h-1.577l3.211-9.766H47.65 M45.77,51.604h2.223
l-1.102-3.667L45.77,51.604 M48.373,45.133H47.65h-1.538h-0.724l-0.227,0.688l-3.211,9.766l-0.432,1.313h1.382h1.577h0.725
l0.226-0.689l0.781-2.389h1.347l0.799,2.395l0.228,0.684h0.721h1.576h1.384l-0.435-1.314L48.6,45.818L48.373,45.133
L48.373,45.133z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M54.966,55.898h-1.463v-8.492h-2.412v-1.273h6.307v1.273h-2.432V55.898z"/>
<g opacity="0.35">
<path d="M57.397,46.133v1.273h-2.432v8.492h-1.463v-8.492h-2.412v-1.273H57.397 M58.397,45.133h-1h-6.307h-1v1v1.273v1h1h1.412
v7.492v1h1h1.463h1v-1v-7.492h1.432h1v-1v-1.273V45.133L58.397,45.133z"/>
</g>
</g>
</g>
<g>
<g>
<path fill="#DCDCDC" d="M42.441,23.068l5.909,3.965v3.009c0,0.856-0.294,1.638-0.881,2.349c-0.588,0.709-1.285,1.174-2.092,1.395
L30,37.932l-15.377-4.146c-0.808-0.221-1.504-0.699-2.092-1.432c-0.587-0.734-0.881-1.505-0.881-2.312v-2.937l5.909-3.965v5.506
L30,31.986l12.442-3.34V23.068z"/>
<g opacity="0.35">
<path d="M42.441,23.068l5.909,3.965v3.009c0,0.856-0.294,1.638-0.881,2.349c-0.588,0.709-1.285,1.174-2.092,1.395L30,37.932
l-15.377-4.146c-0.808-0.221-1.504-0.699-2.092-1.432c-0.587-0.734-0.881-1.505-0.881-2.312v-2.937l5.909-3.965v5.506L30,31.986
l12.442-3.34V23.068 M40.941,20.255v2.813v4.428L30,30.434l-10.941-2.938v-4.355v-2.813l-2.336,1.567l-5.909,3.965l-0.664,0.446
v0.8v2.937c0,1.152,0.407,2.245,1.209,3.248c0.79,0.985,1.754,1.638,2.868,1.942l15.382,4.147L30,39.485l0.391-0.105
l15.378-4.146c1.111-0.304,2.07-0.938,2.855-1.886c0.814-0.986,1.227-2.098,1.227-3.306v-3.009v-0.8l-0.664-0.446l-5.909-3.965
L40.941,20.255L40.941,20.255z"/>
</g>
</g>
</g>
<g>
<g>
<path fill="#DCDCDC" d="M23.378,5.273h-4.635v3.799h3.552v1.311h-3.552v4.274h4.825v1.311h-6.345V4h6.155V5.273z"/>
<g opacity="0.35">
<path d="M23.378,4v1.273h-4.635v3.799h3.552v1.311h-3.552v4.274h4.825v1.311h-6.345V4H23.378 M24.378,3h-1h-6.155h-1v1v11.968v1
h1h6.345h1v-1v-1.311v-1h-1h-3.825v-2.274h2.552h1v-1V9.072v-1h-1h-2.552V6.273h3.635h1v-1V4V3L24.378,3z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M27.578,8.673c0.019,0.494,0.038,0.608,0.038,0.703v6.592h-1.501V6.185h1.862l3.116,6.782
c-0.019-0.494-0.019-0.608-0.019-0.684V6.185h1.5v9.784h-1.481L27.578,8.673z"/>
<g opacity="0.35">
<path d="M32.574,6.185v9.784h-1.481l-3.515-7.295c0.019,0.494,0.038,0.608,0.038,0.703v6.592h-1.501V6.185h1.862l3.116,6.782
c-0.019-0.494-0.019-0.608-0.019-0.684V6.185H32.574 M33.574,5.185h-1h-1.5h-1v1v2.168l-1.188-2.586l-0.268-0.583h-0.641h-1.862
h-1v1v9.784v1h1h1.501h1v-1v-2.836l1.576,3.271l0.272,0.566h0.628h1.481h1v-1V6.185V5.185L33.574,5.185z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M36.053,15.968V6.204h2.982c2.432,0,3.742,1.786,3.742,4.901c0,3.344-1.729,4.863-3.895,4.863H36.053z
M37.533,7.381v7.409h1.35c1.652,0,2.393-1.406,2.393-3.667c0-2.337-0.684-3.743-2.297-3.743H37.533z"/>
<g opacity="0.35">
<path d="M39.035,6.204c2.432,0,3.742,1.786,3.742,4.901c0,3.344-1.729,4.863-3.895,4.863h-2.83V6.204H39.035 M37.533,14.791h1.35
c1.652,0,2.393-1.406,2.393-3.667c0-2.337-0.684-3.743-2.297-3.743h-1.445V14.791 M39.035,5.204h-2.982h-1v1v9.765v1h1h2.83
c2.258,0,4.895-1.536,4.895-5.863C43.777,7.41,42.005,5.204,39.035,5.204L39.035,5.204z M38.533,8.381h0.445
c0.354,0,1.297,0,1.297,2.743c0,2.667-1.048,2.667-1.393,2.667h-0.35V8.381L38.533,8.381z"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View file

@ -1,253 +1,348 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2564"
sodipodi:version="0.32"
inkscape:version="0.47 r22583"
sodipodi:docname="icon_phase_combat_start.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
enable-background="new"
version="1.1">
<defs
id="defs2566">
<linearGradient
id="linearGradient3625">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop3627" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop3629" />
</linearGradient>
<linearGradient
id="linearGradient5717">
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="0"
id="stop5719" />
<stop
id="stop3194"
offset="0.25"
style="stop-color:#055897;stop-opacity:1;" />
<stop
id="stop5725"
offset="0.5"
style="stop-color:#00a4ff;stop-opacity:1;" />
<stop
style="stop-color:#055897;stop-opacity:1;"
offset="0.75"
id="stop3192" />
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="1"
id="stop5721" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient2542"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.1263349,-0.1263349,0,74.367722,-7.5042832)"
x1="339.93985"
y1="482.58844"
x2="459.27341"
y2="355.50766" />
<linearGradient
id="linearGradient3234">
<stop
style="stop-color:#6f6f6f;stop-opacity:1;"
offset="0"
id="stop3236" />
<stop
id="stop3242"
offset="0.47999999"
style="stop-color:#e6e6e6;stop-opacity:1;" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0.5"
id="stop3244" />
<stop
id="stop3286"
offset="0.75"
style="stop-color:#bebebe;stop-opacity:1;" />
<stop
style="stop-color:#494949;stop-opacity:1;"
offset="1"
id="stop3238" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient2540"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(8.9332267e-2,8.9332267e-2,8.9332267e-2,-8.9332267e-2,-16.525693,40.126552)"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221" />
<linearGradient
id="linearGradient4965">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop4967" />
<stop
style="stop-color:#a55d00;stop-opacity:1;"
offset="1"
id="stop4969" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4947">
<stop
style="stop-color:#aa4400;stop-opacity:1;"
offset="0"
id="stop4949" />
<stop
style="stop-color:#aa4400;stop-opacity:0;"
offset="1"
id="stop4951" />
</linearGradient>
<linearGradient
id="linearGradient4939">
<stop
style="stop-color:#c3c3c3;stop-opacity:1;"
offset="0"
id="stop4941" />
<stop
style="stop-color:#ffff00;stop-opacity:0;"
offset="1"
id="stop4943" />
</linearGradient>
<linearGradient
id="linearGradient4891">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop4893" />
<stop
style="stop-color:#7f7f7f;stop-opacity:1;"
offset="1"
id="stop4895" />
</linearGradient>
<linearGradient
id="linearGradient4879">
<stop
style="stop-color:#d2d2d2;stop-opacity:1;"
offset="0"
id="stop4881" />
<stop
style="stop-color:#d0d0d0;stop-opacity:1;"
offset="1"
id="stop4883" />
</linearGradient>
<linearGradient
id="linearGradient3370">
<stop
style="stop-color:#f2f500;stop-opacity:1;"
offset="0"
id="stop3372" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop3374" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2572" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4947"
id="linearGradient4953"
x1="31.990065"
y1="7.0514474"
x2="35.589882"
y2="26.218145"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3625"
id="linearGradient3631"
x1="11.24862"
y1="10.529667"
x2="52.751381"
y2="56.979095"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="7.7781746"
inkscape:cx="23.751652"
inkscape:cy="31.764768"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1223"
inkscape:window-height="725"
inkscape:window-x="51"
inkscape:window-y="25"
inkscape:window-maximized="0" />
<metadata
id="metadata2569">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
style="display:inline;">
<path
style="fill:#c6c6c6;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.88227361px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 9.9666405,9.04974 C 23.769718,4.7254765 38.237751,3.6111035 54.063295,9.04974 C 54.063295,9.04974 54.836218,34.437061 50.529417,43.717664 C 47.404249,50.451998 31.938145,58.623196 31.938145,58.623196 C 31.938145,58.623196 16.472039,50.451998 13.346871,43.717664 C 9.0400714,34.437061 9.9666405,9.04974 9.9666405,9.04974 z"
id="rect2577"
sodipodi:nodetypes="ccscsc" />
<path
style="fill:url(#linearGradient3631);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.87598264000000003px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 11.327299,10.467021 C 24.277974,6.4097985 37.852541,5.3642429 52.700788,10.467021 C 52.700788,10.467021 53.425979,34.286562 49.385142,42.994047 C 46.452968,49.312506 31.941964,56.979096 31.941964,56.979096 C 31.941964,56.979096 17.43096,49.312506 14.498785,42.994047 C 10.457949,34.286562 11.327299,10.467021 11.327299,10.467021 z"
id="path4899"
sodipodi:nodetypes="ccscsc" />
<g
id="g2536"
transform="translate(-0.1818183,-3.0952293e-8)">
<path
id="path5116"
d="M 19.171407,40.786299 C 30.234301,31.241571 40.052824,21.097727 49.109567,10.848139 L 56.860088,7.3217298 L 53.333679,15.072251 C 41.728583,25.484502 32.940246,34.272839 23.395519,45.010411 L 19.171407,40.786299 z M 24.645705,39.536112 L 27.026109,38.450092 L 33.586428,30.59539 L 25.731726,37.155709 L 24.645705,39.536112 z"
style="fill:url(#linearGradient2540);fill-opacity:1;stroke:#000000;stroke-width:0.12633491;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccsccccccss"
id="path5118"
d="M 7.8194102,52.395498 C 12.873471,51.041266 17.927915,42.286993 17.927915,42.286993 C 17.927915,42.286993 16.799748,40.510421 15.777733,39.790457 C 14.755718,39.070494 11.11448,37.487234 11.11448,37.487234 L 15.622027,32.979687 C 19.276736,39.30983 24.814608,44.871954 31.202132,48.559792 L 26.694585,53.067339 C 26.694585,53.067339 25.207982,49.329444 24.488018,48.307428 C 23.768054,47.285413 21.894826,46.253904 21.894826,46.253904 C 21.894826,46.253904 13.138788,51.314932 11.786321,56.362409 C 11.350723,57.988079 6.1937392,52.831094 7.8194102,52.395498 z"
style="opacity:1;fill:url(#linearGradient2542);fill-opacity:1;stroke:#000000;stroke-width:0.12633491;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1" />
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
<radialGradient id="SVGID_1_" cx="30" cy="30" r="30" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#D20000"/>
<stop offset="1" style="stop-color:#3C0000"/>
</radialGradient>
<path fill="url(#SVGID_1_)" d="M60,51.818C60,56.337,56.337,60,51.818,60H8.182C3.663,60,0,56.337,0,51.818V8.182
C0,3.663,3.663,0,8.182,0h43.637C56.337,0,60,3.663,60,8.182V51.818z"/>
<g display="none">
<g display="inline">
<path fill="#FFFFFF" d="M21.941,45.399c0-4.271,1.96-9.451,6.581-9.451c4.691,0,6.581,5.25,6.581,9.556s-1.89,9.556-6.581,9.556
C23.796,55.06,21.941,49.704,21.941,45.399z M24.671,45.679c0,3.15,0.77,7.141,3.851,7.141c3.116,0,3.815-4.13,3.815-7.315
c0-3.22-0.805-7.315-3.815-7.315C25.441,38.188,24.671,42.389,24.671,45.679z"/>
<g opacity="0.35">
<path d="M28.522,35.948c4.691,0,6.581,5.25,6.581,9.556s-1.89,9.556-6.581,9.556c-4.726,0-6.581-5.355-6.581-9.66
C21.941,41.129,23.901,35.948,28.522,35.948 M28.522,52.819c3.116,0,3.815-4.13,3.815-7.315c0-3.22-0.805-7.315-3.815-7.315
c-3.081,0-3.851,4.2-3.851,7.49C24.671,48.829,25.441,52.819,28.522,52.819 M28.522,34.448c-5.305,0-8.081,5.509-8.081,10.951
c0,5.375,2.529,11.16,8.081,11.16c5.552,0,8.081-5.73,8.081-11.056S34.074,34.448,28.522,34.448L28.522,34.448z M28.522,51.319
c-2.237,0-2.351-4.698-2.351-5.641c0-2.764,0.616-5.99,2.351-5.99c1.827,0,2.315,3.655,2.315,5.815
C30.837,46.475,30.725,51.319,28.522,51.319L28.522,51.319z"/>
</g>
</g>
<g display="inline">
<path fill="#FFFFFF" d="M53.268,41.584L48.822,54.5h-2.311l-5.04-13.126v0.91V54.5h-2.73V36.508h3.431l4.69,12.111
c0.035,0.105,0.314,0.735,0.734,2.136c0.421-1.471,0.631-2.101,0.631-2.101l4.34-12.146h3.431V54.5h-2.73V41.584z"/>
<g opacity="0.35">
<path d="M55.998,36.508V54.5h-2.73V41.584L48.822,54.5h-2.311l-5.04-13.126v0.91V54.5h-2.73V36.508h3.431l4.69,12.111
c0.035,0.105,0.314,0.735,0.734,2.136c0.421-1.471,0.631-2.101,0.631-2.101l4.34-12.146H55.998 M57.498,35.008h-1.5h-3.431
h-1.057l-0.355,0.995l-3.633,10.168L43.57,35.966l-0.371-0.958h-1.027h-3.431h-1.5v1.5V54.5V56h1.5h2.73h1.5v-1.5v-5.035
l2.14,5.573L45.48,56h1.031h2.311h1.07l0.348-1.012l1.527-4.437V54.5V56h1.5h2.73h1.5v-1.5V36.508V35.008L57.498,35.008z"/>
</g>
</g>
</g>
<g display="none">
<g display="inline">
<path fill="#FFFFFF" d="M20.003,50.288c-0.78,1.56-2.601,4.836-6.917,4.836c-7.072,0-9.568-8.372-9.568-19.657
c0-8.84,2.392-18.408,9.776-18.408c1.508,0,1.768-0.104,1.768-0.78l1.508-0.572l2.185,5.2l-1.664,0.676
c-1.092-1.248-2.288-2.028-3.796-2.028c-3.848,0-7.02,5.72-7.02,16.328c0,9.568,1.976,16.745,6.812,16.745
c2.6,0,4.368-2.185,5.096-3.849L20.003,50.288z"/>
<g opacity="0.35">
<path d="M16.57,15.707l2.185,5.2l-1.664,0.676c-1.092-1.248-2.288-2.028-3.796-2.028c-3.848,0-7.02,5.72-7.02,16.328
c0,9.568,1.976,16.745,6.812,16.745c2.6,0,4.368-2.185,5.096-3.849l1.82,1.509c-0.78,1.56-2.601,4.836-6.917,4.836
c-7.072,0-9.568-8.372-9.568-19.657c0-8.84,2.392-18.408,9.776-18.408c1.508,0,1.768-0.104,1.768-0.78L16.57,15.707
M17.393,13.791l-1.354,0.514l-1.508,0.572l-0.968,0.367v0.314c-0.08,0.001-0.169,0.001-0.268,0.001
c-7.061,0-11.276,7.442-11.276,19.908c0,17.486,6.019,21.157,11.068,21.157c3.599,0,6.377-1.906,8.258-5.665l0.533-1.065
l-0.917-0.761l-1.82-1.509l-1.533-1.271l-0.798,1.824c-0.132,0.303-1.359,2.95-3.722,2.95c-3.326,0-5.312-5.699-5.312-15.245
c0-9.735,2.777-14.828,5.52-14.828c0.927,0,1.75,0.468,2.667,1.516l0.704,0.804l0.99-0.402l1.664-0.676l1.406-0.571l-0.588-1.399
l-2.185-5.2L17.393,13.791L17.393,13.791z"/>
</g>
</g>
</g>
<g display="none">
<g display="inline">
<path fill="#FFFFFF" d="M45.334,32.189c-1.919,0-3.208-1.03-3.853-3.069c-0.73,2.039-1.99,3.069-3.765,3.069
c-1.402,0-2.463-0.64-3.153-1.9l-0.295-0.551c-0.337-0.618-0.879-1.018-1.657-1.217l-0.621-0.156
c-2.588-0.624-3.133-2.275-3.133-3.551c0-1.357,0.685-2.537,2.041-3.523c-1.209,0-2.237-0.349-3.054-1.035
c-0.844-0.708-1.272-1.605-1.272-2.668c0-0.854,0.352-1.676,1.047-2.445l0.466-0.524c0.462-0.506,0.694-0.964,0.694-1.367
c0-0.111-0.02-0.376-0.057-0.796l-0.057-0.495l-0.003-0.428c0-2.436,1.267-3.723,3.664-3.723c0.887,0,1.807,0.337,2.749,1.006
c-0.187-0.616-0.28-1.202-0.28-1.756c0-1.001,0.332-1.856,0.988-2.542c0.662-0.692,1.49-1.043,2.461-1.043
c0.535,0,1.05,0.106,1.528,0.315l0.505,0.242c0.784,0.347,1.156,0.4,1.307,0.4c0.118,0,0.409-0.036,1.029-0.278l0.557-0.23
c0.708-0.289,1.287-0.429,1.773-0.429c1,0,1.866,0.389,2.574,1.157c0.697,0.756,1.051,1.671,1.051,2.722
c0,0.426-0.067,0.872-0.202,1.335c0.885-0.602,1.744-0.898,2.593-0.898c1.013,0,1.858,0.355,2.514,1.057
c0.646,0.692,0.975,1.589,0.975,2.666c0,0.226-0.016,0.43-0.046,0.61l-0.078,0.468c-0.021,0.159-0.032,0.338-0.032,0.523
c0,0.555,0.239,1.091,0.731,1.638l0.377,0.438c0.728,0.814,1.099,1.655,1.099,2.495c0,1.091-0.398,2.015-1.185,2.749
c-0.775,0.724-1.748,1.091-2.89,1.091c-0.037,0-0.074,0-0.112-0.001c1.264,0.961,1.901,2.095,1.901,3.388
c0,1.752-0.97,2.913-2.805,3.357l-0.551,0.152c-0.981,0.234-1.632,0.656-2.006,1.294l-0.25,0.443
C47.798,31.517,46.701,32.189,45.334,32.189z M38.897,21.964l0.77-0.884c-0.074-0.049-0.147-0.102-0.218-0.158l-0.576,1.024
L38.897,21.964z M44.252,21.896l0.053-0.039l-0.632-0.971c-0.063,0.051-0.127,0.1-0.192,0.146L44.252,21.896z M41.506,17.541
c-0.173,0-0.404,0.025-0.525,0.146s-0.146,0.363-0.146,0.545c0,0.184,0.026,0.431,0.152,0.561c0.097,0.1,0.271,0.15,0.52,0.15
s0.423-0.05,0.52-0.15c0.126-0.13,0.152-0.376,0.152-0.561c0-0.182-0.025-0.424-0.146-0.545S41.679,17.541,41.506,17.541z
M38.266,17.332c0.02-0.075,0.042-0.148,0.066-0.221l-1.131-0.262l-0.011,0.031L38.266,17.332z M44.806,17.264l1.043-0.465
l-0.006-0.021l-1.108,0.264C44.761,17.115,44.784,17.189,44.806,17.264z M41.374,14.845c0.057-0.002,0.222-0.003,0.248-0.003
l-0.09-1.13h-0.058L41.374,14.845z"/>
<g>
<path fill="#FF0000" d="M38.244,3.974c0.469,0,0.911,0.091,1.328,0.273l0.488,0.234c0.677,0.3,1.185,0.449,1.523,0.449
c0.273,0,0.677-0.104,1.211-0.313l0.566-0.234c0.638-0.26,1.165-0.391,1.582-0.391c0.859,0,1.595,0.332,2.207,0.996
s0.918,1.458,0.918,2.383c0,1.042-0.449,2.214-1.348,3.516c1.511-1.719,2.923-2.578,4.238-2.578c0.872,0,1.589,0.3,2.148,0.898
c0.56,0.599,0.84,1.374,0.84,2.324c0,0.195-0.013,0.371-0.039,0.527l-0.078,0.469c-0.026,0.195-0.039,0.397-0.039,0.605
c0,0.677,0.286,1.335,0.859,1.973l0.371,0.43c0.651,0.729,0.977,1.452,0.977,2.168c0,0.951-0.342,1.745-1.025,2.383
c-0.684,0.638-1.533,0.957-2.549,0.957c-0.651,0-1.511-0.104-2.578-0.313c2.578,1.094,3.867,2.494,3.867,4.199
c0,1.523-0.808,2.48-2.422,2.871l-0.566,0.156c-1.094,0.261-1.862,0.769-2.305,1.524l-0.254,0.449
c-0.703,1.172-1.647,1.758-2.832,1.758c-2.278,0-3.542-1.687-3.789-5.059c-0.456,3.373-1.731,5.059-3.828,5.059
c-1.211,0-2.116-0.547-2.715-1.641l-0.293-0.547c-0.404-0.743-1.062-1.231-1.973-1.465l-0.625-0.156
c-1.836-0.442-2.754-1.465-2.754-3.066c0-1.745,1.309-3.164,3.926-4.258c-0.99,0.156-1.784,0.234-2.383,0.234
c-1.094,0-2.006-0.306-2.734-0.918c-0.729-0.612-1.094-1.374-1.094-2.285c0-0.729,0.306-1.432,0.918-2.109l0.469-0.527
c0.547-0.599,0.82-1.165,0.82-1.699c0-0.117-0.02-0.397-0.059-0.84l-0.059-0.508v-0.371c0-2.148,1.055-3.223,3.164-3.223
c1.314,0,2.721,0.847,4.219,2.539c-0.834-1.406-1.25-2.669-1.25-3.789c0-0.872,0.283-1.604,0.85-2.197
C36.711,4.271,37.41,3.974,38.244,3.974 M40.842,15.185l-0.547-0.918l-0.879,0.41l0.273,1.035l-0.879-0.605l-0.645,0.664
l0.645,0.938l-1.934-0.449l-0.313,0.898l1.855,0.781l-1.055,0.293l0.098,0.898l1.074,0.039l-0.84,0.703l0.449,0.84l1.055-0.371
l-0.977,1.738l0.742,0.566l1.309-1.504l-0.039,1.094l0.879,0.195l0.43-1.035l0.41,1.016l0.898-0.176l0.02-1.133l1.309,1.465
l0.801-0.586l-1.094-1.68l1.035,0.391l0.449-0.84l-0.84-0.664l1.055-0.039l0.117-0.957L44.65,17.88l1.797-0.801l-0.254-0.898
l-1.973,0.469l0.684-0.859l-0.625-0.664L43.4,15.732l0.293-1.055l-0.879-0.41l-0.664,0.918l-0.156-1.973h-0.977L40.842,15.185
M41.545,15.341c0.808,0,1.491,0.28,2.051,0.84c0.56,0.56,0.84,1.244,0.84,2.051c0,0.808-0.28,1.491-0.84,2.051
c-0.56,0.56-1.243,0.84-2.051,0.84c-0.82,0-1.507-0.28-2.061-0.84c-0.554-0.56-0.83-1.243-0.83-2.051
c0-0.807,0.28-1.491,0.84-2.051C40.054,15.622,40.737,15.341,41.545,15.341 M41.506,19.443c0.391,0,0.684-0.101,0.879-0.303
c0.195-0.202,0.293-0.504,0.293-0.908c0-0.403-0.098-0.703-0.293-0.898s-0.488-0.293-0.879-0.293s-0.684,0.098-0.879,0.293
s-0.293,0.495-0.293,0.898c0,0.404,0.098,0.707,0.293,0.908C40.822,19.342,41.115,19.443,41.506,19.443 M38.244,2.974
c-1.113,0-2.063,0.403-2.822,1.198c-0.748,0.782-1.127,1.754-1.127,2.888c0,0.239,0.016,0.483,0.048,0.732
c-0.676-0.323-1.346-0.482-2.017-0.482c-2.646,0-4.164,1.539-4.164,4.223v0.371v0.058l0.006,0.057l0.059,0.508
c0.049,0.563,0.052,0.703,0.052,0.725c0,0.267-0.198,0.63-0.559,1.025l-0.478,0.537c-0.775,0.857-1.17,1.792-1.17,2.774
c0,1.2,0.502,2.255,1.451,3.051c0.619,0.521,1.344,0.867,2.164,1.034c-0.884,0.915-1.33,1.964-1.33,3.141
c0,2.058,1.25,3.492,3.52,4.039l0.617,0.154c0.638,0.164,1.064,0.474,1.337,0.973l0.289,0.541
c0.778,1.421,2.021,2.168,3.597,2.168c1.247,0,2.722-0.476,3.745-2.322c0.975,1.846,2.528,2.322,3.872,2.322
c1.069,0,2.577-0.39,3.689-2.243l0.267-0.472c0.294-0.501,0.842-0.847,1.666-1.043l0.601-0.165
c2.024-0.489,3.156-1.854,3.156-3.835c0-1.112-0.408-2.112-1.218-2.993c0.82-0.17,1.544-0.545,2.16-1.12
c0.891-0.831,1.343-1.879,1.343-3.114c0-0.966-0.414-1.919-1.23-2.834l-0.36-0.417c-0.419-0.466-0.616-0.893-0.616-1.319
c0-0.165,0.01-0.324,0.03-0.472l0.073-0.438c0.035-0.209,0.053-0.437,0.053-0.692c0-1.207-0.373-2.219-1.109-3.007
c-0.754-0.807-1.723-1.216-2.879-1.216c-0.634,0-1.267,0.144-1.905,0.435c0.01-0.125,0.015-0.25,0.015-0.372
c0-1.18-0.398-2.209-1.183-3.061c-0.807-0.875-1.797-1.318-2.942-1.318c-0.553,0-1.193,0.152-1.96,0.465l-0.571,0.236
c-0.589,0.229-0.806,0.236-0.828,0.236c-0.05,0-0.337-0.018-1.118-0.363l-0.461-0.222C39.43,3.094,38.849,2.974,38.244,2.974
L38.244,2.974z M41.563,18.351l0.027-0.307c0.03,0.002,0.055,0.006,0.072,0.009c0.008,0.036,0.015,0.093,0.015,0.179
c0,0.003,0,0.006,0,0.009l-0.041,0.051l0.04-0.009c-0.002,0.047-0.006,0.084-0.011,0.113l-0.282-0.107l0.101,0.155
c-0.048-0.001-0.085-0.005-0.111-0.009l0.003-0.08l-0.031,0.036c-0.006-0.037-0.011-0.089-0.011-0.158
c0-0.024,0.001-0.045,0.002-0.065l0.102-0.028L41.563,18.351L41.563,18.351z"/>
</g>
</g>
</g>
<g display="none">
<g display="inline">
<path fill="#DCDCDC" d="M34.455,54.5H31.76V38.854h-4.445v-2.346h11.621v2.346h-4.48V54.5z"/>
<g opacity="0.35">
<path d="M38.936,36.508v2.346h-4.48V54.5H31.76V38.854h-4.445v-2.346H38.936 M40.436,35.008h-1.5H27.314h-1.5v1.5v2.346v1.5h1.5
h2.945V54.5V56h1.5h2.695h1.5v-1.5V40.354h2.98h1.5v-1.5v-2.346V35.008L40.436,35.008z"/>
</g>
</g>
<g display="inline">
<path fill="#DCDCDC" d="M49.785,54.5H47.09V38.854h-4.445v-2.346h11.621v2.346h-4.48V54.5z"/>
<g opacity="0.35">
<path d="M54.266,36.508v2.346h-4.48V54.5H47.09V38.854h-4.445v-2.346H54.266 M55.766,35.008h-1.5H42.645h-1.5v1.5v2.346v1.5h1.5
h2.945V54.5V56h1.5h2.695h1.5v-1.5V40.354h2.98h1.5v-1.5v-2.346V35.008L55.766,35.008z"/>
</g>
</g>
</g>
<g display="none">
<g display="inline">
<path fill="#DCDCDC" d="M13.013,55.917l-1.273-3.856H8.169l-1.273,3.856H5.338l3.799-11.968h1.634l3.799,11.968H13.013z
M8.53,50.807h2.85l-1.425-5.281L8.53,50.807z"/>
<g opacity="0.35">
<path d="M10.771,43.949l3.799,11.968h-1.558l-1.273-3.856H8.169l-1.273,3.856H5.338l3.799-11.968H10.771 M8.53,50.807h2.85
l-1.425-5.281L8.53,50.807 M11.503,42.949h-0.732H9.138H8.406l-0.221,0.697L4.385,55.614l-0.414,1.303h1.367h1.558h0.723
l0.227-0.687l1.046-3.17h2.125l1.046,3.17l0.227,0.687h0.723h1.558h1.367l-0.414-1.303l-3.799-11.968L11.503,42.949
L11.503,42.949z"/>
</g>
</g>
<g display="inline">
<path fill="#DCDCDC" d="M19.208,55.917h-1.463v-8.491h-2.413v-1.273h6.307v1.273h-2.432V55.917z"/>
<g opacity="0.35">
<path d="M21.639,46.152v1.273h-2.432v8.491h-1.463v-8.491h-2.413v-1.273H21.639 M22.639,45.152h-1h-6.307h-1v1v1.273v1h1h1.413
v7.491v1h1h1.463h1v-1v-7.491h1.432h1v-1v-1.273V45.152L22.639,45.152z"/>
</g>
</g>
<g display="inline">
<path fill="#DCDCDC" d="M26.579,55.917h-1.463v-8.491h-2.413v-1.273h6.307v1.273h-2.432V55.917z"/>
<g opacity="0.35">
<path d="M29.011,46.152v1.273h-2.432v8.491h-1.463v-8.491h-2.413v-1.273H29.011 M30.011,45.152h-1h-6.307h-1v1v1.273v1h1h1.413
v7.491v1h1h1.463h1v-1v-7.491h1.432h1v-1v-1.273V45.152L30.011,45.152z"/>
</g>
</g>
<g display="inline">
<path fill="#DCDCDC" d="M34.577,52.84h-2.792l-1.007,3.077h-1.577l3.21-9.765h1.539l3.229,9.765h-1.577L34.577,52.84z
M32.07,51.623h2.223l-1.103-3.666L32.07,51.623z"/>
<g opacity="0.35">
<path d="M33.951,46.152l3.229,9.765h-1.577l-1.026-3.077h-2.792l-1.007,3.077h-1.577l3.21-9.765H33.951 M32.07,51.623h2.223
l-1.103-3.666L32.07,51.623 M34.674,45.152h-0.723h-1.539h-0.724l-0.227,0.688l-3.21,9.765l-0.431,1.313h1.381h1.577h0.725
l0.226-0.689l0.781-2.388h1.347l0.799,2.394l0.228,0.684h0.721h1.577h1.384l-0.435-1.314L34.9,45.838L34.674,45.152
L34.674,45.152z"/>
</g>
</g>
<g display="inline">
<path fill="#DCDCDC" d="M38.854,51.035c0-1.368,0.36-2.66,1.007-3.572c0.684-1.006,1.729-1.614,2.982-1.614
c1.235,0,2.185,0.399,2.697,0.722l-0.551,0.988c-0.74-0.381-1.349-0.551-2.146-0.551c-0.684,0-1.52,0.569-1.957,1.463
c-0.342,0.684-0.531,1.652-0.531,2.621c0,0.893,0.113,1.824,0.456,2.488c0.437,0.874,1.082,1.443,2.052,1.443
c1.025,0,1.918-0.551,2.165-0.721l0.665,0.969c-0.285,0.209-1.349,0.949-2.888,0.949C39.86,56.221,38.854,53.428,38.854,51.035z"
/>
<g opacity="0.35">
<path d="M42.843,45.849c1.235,0,2.185,0.399,2.697,0.722l-0.551,0.988c-0.74-0.381-1.349-0.551-2.146-0.551
c-0.684,0-1.52,0.569-1.957,1.463c-0.342,0.684-0.531,1.652-0.531,2.621c0,0.893,0.113,1.824,0.456,2.488
c0.437,0.874,1.082,1.443,2.052,1.443c1.025,0,1.918-0.551,2.165-0.721l0.665,0.969c-0.285,0.209-1.349,0.949-2.888,0.949
c-2.944,0-3.951-2.793-3.951-5.186c0-1.368,0.36-2.66,1.007-3.572C40.544,46.457,41.589,45.849,42.843,45.849 M42.843,44.849
c-1.558,0-2.91,0.729-3.81,2.052c-0.757,1.067-1.18,2.542-1.18,4.135c0,2.854,1.297,6.186,4.951,6.186
c1.67,0,2.896-0.716,3.479-1.143l0.782-0.573l-0.549-0.8l-0.665-0.969l-0.566-0.824l-0.824,0.566
c-0.081,0.056-0.814,0.545-1.599,0.545c-0.353,0-0.766-0.105-1.157-0.891c-0.229-0.442-0.351-1.163-0.351-2.041
c0-0.828,0.159-1.641,0.426-2.174c0.292-0.597,0.804-0.91,1.063-0.91c0.607,0,1.065,0.119,1.689,0.44l0.859,0.442l0.471-0.846
l0.551-0.988l0.462-0.828l-0.803-0.505C45.653,45.461,44.501,44.849,42.843,44.849L42.843,44.849z"/>
</g>
</g>
<g display="inline">
<path fill="#DCDCDC" d="M49.665,52.099v3.818h-1.501v-9.765h1.501v4.142l3.286-4.142h1.634l-3.895,5.016l3.971,4.16v0.589h-1.425
L49.665,52.099z"/>
<g opacity="0.35">
<path d="M54.585,46.152l-3.895,5.016l3.971,4.16v0.589h-1.425l-3.571-3.818v3.818h-1.501v-9.765h1.501v4.142l3.286-4.142H54.585
M56.628,45.152h-2.043h-1.634h-0.483l-0.3,0.379l-1.503,1.894v-1.272v-1h-1h-1.501h-1v1v9.765v1h1h1.501h1v-1v-1.285
l1.841,1.968l0.297,0.317h0.434h1.425h1v-1v-0.589v-0.4l-0.276-0.29l-3.376-3.537l3.366-4.335L56.628,45.152L56.628,45.152z"/>
</g>
</g>
</g>
<g>
<g>
<path fill="#DCDCDC" d="M16.662,5.406l-0.855,0.722c-0.456-0.57-1.234-0.912-1.956-0.912c-1.026,0-1.843,0.608-1.843,1.691
c0,2.812,5.129,2.546,5.129,6.383c0,2.014-1.614,3.249-3.533,3.249c-0.969,0-2.109-0.494-2.85-1.121l0.646-1.083
c0.551,0.456,1.501,0.988,2.223,0.988c1.197,0,2.052-0.855,2.052-2.052c0-2.47-5.148-2.584-5.148-6.136
c0-2.033,1.35-3.135,3.325-3.135C14.896,4,16.092,4.513,16.662,5.406z"/>
<g opacity="0.35">
<path d="M13.851,4c1.045,0,2.241,0.513,2.812,1.406l-0.855,0.722c-0.456-0.57-1.234-0.912-1.956-0.912
c-1.026,0-1.843,0.608-1.843,1.691c0,2.812,5.129,2.546,5.129,6.383c0,2.014-1.614,3.249-3.533,3.249
c-0.969,0-2.109-0.494-2.85-1.121l0.646-1.083c0.551,0.456,1.501,0.988,2.223,0.988c1.197,0,2.052-0.855,2.052-2.052
c0-2.47-5.148-2.584-5.148-6.136C10.525,5.102,11.875,4,13.851,4 M13.851,3c-2.627,0-4.325,1.623-4.325,4.135
c0,2.504,1.971,3.682,3.41,4.542c1.082,0.646,1.738,1.076,1.738,1.594c0,0.649-0.403,1.052-1.052,1.052
c-0.362,0-1.088-0.347-1.585-0.758l-0.899-0.745l-0.598,1.002l-0.646,1.083l-0.434,0.728l0.646,0.547
c0.974,0.825,2.346,1.358,3.496,1.358c2.627,0,4.533-1.787,4.533-4.249c0-2.639-1.939-3.781-3.355-4.614
c-1.233-0.726-1.774-1.113-1.774-1.769c0-0.571,0.458-0.691,0.843-0.691c0.439,0,0.922,0.221,1.175,0.537l0.641,0.801
l0.785-0.662l0.855-0.722l0.669-0.564l-0.471-0.738C16.792,3.75,15.323,3,13.851,3L13.851,3z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M22.324,16.253h-1.463V7.762h-2.412V6.489h6.307v1.273h-2.432V16.253z"/>
<g opacity="0.35">
<path d="M24.756,6.489v1.273h-2.432v8.492h-1.463V7.762h-2.412V6.489H24.756 M25.756,5.489h-1h-6.307h-1v1v1.273v1h1h1.412v7.492
v1h1h1.463h1v-1V8.762h1.432h1v-1V6.489V5.489L25.756,5.489z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M30.321,13.176h-2.791l-1.008,3.078h-1.577l3.211-9.765h1.537l3.23,9.765h-1.576L30.321,13.176z
M27.814,11.96h2.222l-1.101-3.667L27.814,11.96z"/>
<g opacity="0.35">
<path d="M29.695,6.489l3.23,9.765h-1.576l-1.027-3.078h-2.791l-1.008,3.078h-1.577l3.211-9.765H29.695 M27.814,11.96h2.222
l-1.101-3.667L27.814,11.96 M30.417,5.489h-0.723h-1.537h-0.724l-0.226,0.688l-3.211,9.765l-0.432,1.313h1.381h1.577h0.725
l0.226-0.689l0.782-2.389h1.346L30.4,16.57l0.229,0.684h0.72h1.576h1.384l-0.435-1.314l-3.23-9.765L30.417,5.489L30.417,5.489z"
/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M36.935,12.758c-0.096-0.038-0.361-0.171-0.361-0.171v3.667h-1.5V6.489h2.26
c2.793,0,3.818,1.482,3.818,3.04c0,1.463-0.779,2.736-2.375,3.191l2.85,3.021v0.513h-1.404L36.935,12.758z M36.573,7.667v3.686
c0.02,0.019,0.531,0.285,1.045,0.285c1.291,0,2.033-0.931,2.033-2.128c0-1.063-0.742-1.843-2.318-1.843H36.573z"/>
<g opacity="0.35">
<path d="M37.333,6.489c2.793,0,3.818,1.482,3.818,3.04c0,1.463-0.779,2.736-2.375,3.191l2.85,3.021v0.513h-1.404l-3.287-3.496
c-0.096-0.038-0.361-0.171-0.361-0.171v3.667h-1.5V6.489H37.333 M37.618,11.637c1.291,0,2.033-0.931,2.033-2.128
c0-1.063-0.742-1.843-2.318-1.843h-0.76v3.686C36.593,11.371,37.104,11.637,37.618,11.637 M37.333,5.489h-2.26h-1v1v9.765v1h1
h1.5h1v-1v-1.356l1.92,2.042l0.296,0.315h0.433h1.404h1v-1v-0.513v-0.397l-0.272-0.289l-1.919-2.034
c1.085-0.778,1.717-2.022,1.717-3.493C42.151,7.665,40.89,5.489,37.333,5.489L37.333,5.489z M37.573,10.635V8.674
c1.078,0.07,1.078,0.62,1.078,0.835c0,0.421-0.134,1.128-1.033,1.128C37.604,10.637,37.589,10.637,37.573,10.635L37.573,10.635z"
/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M46.909,16.253h-1.463V7.762h-2.412V6.489h6.307v1.273h-2.432V16.253z"/>
<g opacity="0.35">
<path d="M49.341,6.489v1.273h-2.432v8.492h-1.463V7.762h-2.412V6.489H49.341 M50.341,5.489h-1h-6.307h-1v1v1.273v1h1h1.412v7.492
v1h1h1.463h1v-1V8.762h1.432h1v-1V6.489V5.489L50.341,5.489z"/>
</g>
</g>
</g>
<g>
<g>
<path fill="#DCDCDC" d="M7.22,56.184c-3.477,0-4.616-3.344-4.616-6.27c0-2.793,1.368-6.27,4.654-6.27
c1.007,0,2.223,0.266,3.077,0.816l-0.551,0.988c-0.798-0.437-1.614-0.607-2.526-0.607c-2.261,0-3.135,3.362-3.135,5.148
c0,2.014,0.646,4.958,3.173,4.958c0.854,0,1.899-0.267,2.583-0.778l0.646,0.949C9.67,55.803,8.303,56.184,7.22,56.184z"/>
<g opacity="0.35">
<path d="M7.258,43.645c1.007,0,2.223,0.266,3.077,0.816l-0.551,0.988c-0.798-0.437-1.614-0.607-2.526-0.607
c-2.261,0-3.135,3.362-3.135,5.148c0,2.014,0.646,4.958,3.173,4.958c0.854,0,1.899-0.267,2.583-0.778l0.646,0.949
c-0.855,0.684-2.223,1.064-3.306,1.064c-3.477,0-4.616-3.344-4.616-6.27C2.604,47.121,3.972,43.645,7.258,43.645 M7.258,42.645
c-3.712,0-5.654,3.657-5.654,7.27c0,4.416,2.205,7.27,5.616,7.27c1.412,0,2.955-0.504,3.93-1.283l0.724-0.578l-0.521-0.766
l-0.646-0.949l-0.589-0.864L9.28,53.369c-0.456,0.341-1.271,0.579-1.984,0.579c-2.068,0-2.173-3.297-2.173-3.958
c0-1.447,0.733-4.148,2.135-4.148c0.803,0,1.434,0.149,2.046,0.484l0.871,0.477l0.483-0.867l0.551-0.988l0.457-0.818
l-0.788-0.509C9.929,43.01,8.576,42.645,7.258,42.645L7.258,42.645z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M12.236,50.959c0-2.318,1.064-5.129,3.572-5.129c2.545,0,3.571,2.85,3.571,5.186
c0,2.337-1.026,5.187-3.571,5.187C13.243,56.202,12.236,53.295,12.236,50.959z M13.719,51.111c0,1.709,0.418,3.875,2.09,3.875
c1.69,0,2.07-2.242,2.07-3.971c0-1.748-0.437-3.971-2.07-3.971C14.137,47.045,13.719,49.324,13.719,51.111z"/>
<g opacity="0.35">
<path d="M15.809,45.83c2.545,0,3.571,2.85,3.571,5.186c0,2.337-1.026,5.187-3.571,5.187c-2.565,0-3.572-2.907-3.572-5.243
C12.236,48.641,13.301,45.83,15.809,45.83 M15.809,54.986c1.69,0,2.07-2.242,2.07-3.971c0-1.748-0.437-3.971-2.07-3.971
c-1.672,0-2.09,2.279-2.09,4.066C13.719,52.82,14.137,54.986,15.809,54.986 M15.809,44.83c-3.002,0-4.572,3.083-4.572,6.129
c0,3.007,1.431,6.243,4.572,6.243c3.141,0,4.571-3.207,4.571-6.187S18.949,44.83,15.809,44.83L15.809,44.83z M15.809,53.986
c-0.86,0-1.09-1.808-1.09-2.875c0-1.477,0.341-3.066,1.09-3.066c0.735,0,1.07,1.54,1.07,2.971
C16.879,52.386,16.599,53.986,15.809,53.986L15.809,53.986z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M30.19,48.889l-2.413,7.01h-1.254l-2.735-7.125v0.494v6.631h-1.481v-9.766h1.861l2.546,6.574
c0.019,0.057,0.171,0.398,0.398,1.158c0.229-0.798,0.343-1.14,0.343-1.14l2.355-6.593h1.861v9.766H30.19V48.889z"/>
<g opacity="0.35">
<path d="M31.672,46.133v9.766H30.19v-7.01l-2.413,7.01h-1.254l-2.735-7.125v0.494v6.631h-1.481v-9.766h1.861l2.546,6.574
c0.019,0.057,0.171,0.398,0.398,1.158c0.229-0.798,0.343-1.14,0.343-1.14l2.355-6.593H31.672 M32.672,45.133h-1h-1.861h-0.705
l-0.237,0.663l-1.804,5.049l-1.964-5.073l-0.248-0.639h-0.685h-1.861h-1v1v9.766v1h1h1.481h1v-1v-1.73l0.802,2.089l0.247,0.642
h0.687h1.254h0.713l0.232-0.675l0.468-1.357v1.032v1h1h1.481h1v-1v-9.766V45.133L32.672,45.133z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M35.093,55.784v-9.651h2.564c0.607,0,1.159,0.058,1.614,0.229c0.988,0.38,1.539,1.216,1.539,2.279
c0,0.381-0.209,1.045-0.494,1.387c-0.209,0.229-0.418,0.399-0.74,0.608c1.292,0.36,1.785,1.292,1.785,2.413
c0,1.956-1.538,3.153-3.666,3.153C36.821,56.202,35.396,55.859,35.093,55.784z M37.639,47.273h-1.045v2.887l1.025,0.02
c0.931,0.02,1.71-0.513,1.71-1.558c0-0.569-0.267-0.969-0.589-1.121C38.455,47.35,38.075,47.273,37.639,47.273z M37.581,51.357
h-0.987v3.42c0.284,0.076,0.74,0.171,1.063,0.171c1.292,0,2.204-0.627,2.204-1.899c0-0.57-0.152-1.064-0.627-1.387
C38.911,51.434,38.417,51.357,37.581,51.357z"/>
<g opacity="0.35">
<path d="M37.657,46.133c0.607,0,1.159,0.058,1.614,0.229c0.988,0.38,1.539,1.216,1.539,2.279c0,0.381-0.209,1.045-0.494,1.387
c-0.209,0.229-0.418,0.399-0.74,0.608c1.292,0.36,1.785,1.292,1.785,2.413c0,1.956-1.538,3.153-3.666,3.153
c-0.874,0-2.299-0.343-2.603-0.418v-9.651H37.657 M37.668,50.181c0.909,0,1.661-0.532,1.661-1.559
c0-0.569-0.267-0.969-0.589-1.121c-0.285-0.151-0.665-0.228-1.102-0.228h-1.045v2.887l1.025,0.02
C37.636,50.18,37.652,50.181,37.668,50.181 M37.657,54.948c1.292,0,2.204-0.627,2.204-1.899c0-0.57-0.152-1.064-0.627-1.387
c-0.323-0.229-0.817-0.305-1.653-0.305h-0.987v3.42C36.878,54.854,37.334,54.948,37.657,54.948 M37.657,45.133h-2.564h-1v1v9.651
v0.782l0.76,0.188c0.543,0.135,1.907,0.447,2.843,0.447c2.747,0,4.666-1.708,4.666-4.153c0-1.105-0.388-2.012-1.099-2.634
c0.363-0.574,0.548-1.298,0.548-1.774c0-1.487-0.815-2.688-2.181-3.213C39.092,45.226,38.467,45.133,37.657,45.133L37.657,45.133
z M37.594,53.946v-1.589c0.806,0.001,1.012,0.085,1.063,0.121c0.081,0.056,0.204,0.139,0.204,0.57c0,0.27,0,0.899-1.204,0.899
C37.638,53.948,37.617,53.947,37.594,53.946L37.594,53.946z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M48.277,52.82h-2.792l-1.007,3.078h-1.577l3.211-9.766h1.538l3.229,9.766h-1.576L48.277,52.82z
M45.77,51.604h2.223l-1.102-3.667L45.77,51.604z"/>
<g opacity="0.35">
<path d="M47.65,46.133l3.229,9.766h-1.576l-1.026-3.078h-2.792l-1.007,3.078h-1.577l3.211-9.766H47.65 M45.77,51.604h2.223
l-1.102-3.667L45.77,51.604 M48.373,45.133H47.65h-1.538h-0.724l-0.227,0.688l-3.211,9.766l-0.432,1.313h1.382h1.577h0.725
l0.226-0.689l0.781-2.389h1.347l0.799,2.395l0.228,0.684h0.721h1.576h1.384l-0.435-1.314L48.6,45.818L48.373,45.133
L48.373,45.133z"/>
</g>
</g>
<g>
<path fill="#DCDCDC" d="M54.966,55.898h-1.463v-8.492h-2.412v-1.273h6.307v1.273h-2.432V55.898z"/>
<g opacity="0.35">
<path d="M57.397,46.133v1.273h-2.432v8.492h-1.463v-8.492h-2.412v-1.273H57.397 M58.397,45.133h-1h-6.307h-1v1v1.273v1h1h1.412
v7.492v1h1h1.463h1v-1v-7.492h1.432h1v-1v-1.273V45.133L58.397,45.133z"/>
</g>
</g>
</g>
<g>
<g>
<path fill="#DCDCDC" d="M42.441,32.354L30,29.014l-12.441,3.339v5.506l-5.909-3.965v-2.937c0-0.807,0.293-1.577,0.881-2.311
c0.587-0.733,1.284-1.211,2.092-1.432L30,23.068l15.378,4.147c0.807,0.221,1.504,0.685,2.092,1.395
c0.587,0.71,0.881,1.492,0.881,2.348v3.009l-5.909,3.965V32.354z"/>
<g opacity="0.35">
<path d="M30,23.068l15.378,4.147c0.807,0.221,1.504,0.685,2.092,1.395c0.587,0.71,0.881,1.492,0.881,2.348v3.009l-5.909,3.965
v-5.578L30,29.014l-12.441,3.339v5.506l-5.909-3.965v-2.937c0-0.807,0.293-1.577,0.881-2.311
c0.587-0.733,1.284-1.211,2.092-1.432L30,23.068 M30,21.515l-0.391,0.105l-15.377,4.147c-1.12,0.306-2.084,0.959-2.872,1.942
c-0.803,1.003-1.21,2.096-1.21,3.249v2.937v0.8l0.664,0.445l5.909,3.965l2.336,1.567v-2.813v-4.355L30,30.567l10.942,2.937v4.428
v2.813l2.336-1.567l5.909-3.965l0.664-0.445v-0.8v-3.009c0-1.208-0.412-2.32-1.225-3.304c-0.785-0.949-1.745-1.583-2.853-1.886
L30.39,21.62L30,21.515L30,21.515z"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -1,135 +1,79 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2385"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_mainphase1.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs2387">
<linearGradient
id="linearGradient3177">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3179" />
<stop
style="stop-color:#0044aa;stop-opacity:0;"
offset="1"
id="stop3181" />
</linearGradient>
<linearGradient
id="linearGradient3167">
<stop
style="stop-color:#0044aa;stop-opacity:1;"
offset="0"
id="stop3169" />
<stop
style="stop-color:#00122f;stop-opacity:1;"
offset="1"
id="stop3171" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2393" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3167"
id="linearGradient3173"
x1="31.09091"
y1="5.2455459"
x2="31.09091"
y2="62.754456"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3177"
id="linearGradient3183"
x1="38.090908"
y1="12.35777"
x2="38.090908"
y2="33.096775"
gradientUnits="userSpaceOnUse" />
<filter
inkscape:collect="always"
id="filter3193">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.15669667"
id="feGaussianBlur3195" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.5"
inkscape:cx="12.016282"
inkscape:cy="30.70745"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata2390">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
sodipodi:type="arc"
style="fill:url(#linearGradient3173);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.41800001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path2395"
sodipodi:cx="31.09091"
sodipodi:cy="34"
sodipodi:rx="28.545454"
sodipodi:ry="28.545454"
d="M 59.636364,34 A 28.545454,28.545454 0 1 1 2.5454559,34 A 28.545454,28.545454 0 1 1 59.636364,34 z"
transform="translate(0.90909,-2)" />
<path
sodipodi:type="arc"
style="fill:url(#linearGradient3183);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.41800001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3193)"
id="path3175"
sodipodi:cx="38.090908"
sodipodi:cy="22.727272"
sodipodi:rx="22.272728"
sodipodi:ry="10.181818"
d="M 60.363636,22.727272 A 22.272728,10.181818 0 1 1 15.81818,22.727272 A 22.272728,10.181818 0 1 1 60.363636,22.727272 z"
transform="matrix(0.8292896,0,0,1.0283566,0.4116061,-8.3717394)" />
<path
style="font-size:72px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:URW Chancery L;-inkscape-font-specification:URW Chancery L Bold Italic"
d="M 17.407273,50.18182 L 21.943273,50.18182 C 21.943273,50.18182 29.791273,50.10982 29.791273,50.10982 C 29.791273,50.10982 38.071273,50.18182 38.071273,50.18182 L 41.023273,50.18182 L 42.751273,48.23782 C 40.591275,48.16582 36.703272,47.73382 35.335273,47.44582 C 34.183274,47.15782 33.463273,46.365819 33.463273,45.28582 C 33.463273,44.493821 33.607273,43.413819 33.967273,42.26182 C 34.183273,41.397821 34.903274,38.085815 35.983273,33.04582 C 39.07927,19.437834 40.735274,12.597816 41.887273,8.2778199 L 39.439273,9.5738199 C 34.471278,12.237817 34.327271,12.309821 32.023273,13.38982 C 30.655274,14.037819 28.27927,15.045821 24.967273,16.55782 L 27.127273,17.63782 C 28.855271,17.06182 29.719274,16.701819 31.015273,16.19782 L 33.175273,15.33382 C 33.463273,15.18982 34.111274,14.97382 35.191273,14.61382 L 28.351273,44.06182 C 27.631274,47.085817 27.559271,47.22982 25.255273,47.51782 C 22.231276,47.87782 20.287272,48.09382 19.495273,48.23782 L 17.407273,50.18182"
id="text3217" />
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
<radialGradient id="SVGID_1_" cx="30" cy="30" r="30" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#0087FF"/>
<stop offset="1" style="stop-color:#191919"/>
</radialGradient>
<path fill="url(#SVGID_1_)" d="M60,51.818C60,56.337,56.337,60,51.818,60H8.182C3.663,60,0,56.337,0,51.818V8.182
C0,3.663,3.663,0,8.182,0h43.637C56.337,0,60,3.663,60,8.182V51.818z"/>
<g>
<g>
<path fill="#FFFFFF" d="M36.672,50.172h-3.938l-1.42,4.341h-2.225l4.528-13.772h2.171l4.555,13.772h-2.224L36.672,50.172z
M33.135,48.457h3.135l-1.554-5.171L33.135,48.457z"/>
<g opacity="0.35">
<path d="M35.788,40.74l4.555,13.772h-2.224l-1.447-4.341h-3.938l-1.42,4.341h-2.225l4.528-13.772H35.788 M33.135,48.457h3.135
l-1.554-5.171L33.135,48.457 M36.872,39.24h-1.084h-2.171h-1.086l-0.339,1.031l-4.528,13.772l-0.647,1.969h2.072h2.225h1.088
l0.338-1.033l1.082-3.308h1.77l1.105,3.315l0.342,1.025h1.081h2.224h2.076l-0.652-1.971L37.212,40.27L36.872,39.24L36.872,39.24z
"/>
</g>
</g>
<g>
<path fill="#FFFFFF" d="M42.445,40.74h2.197v13.772h-2.197V40.74z"/>
<g opacity="0.35">
<path d="M44.643,40.74v13.772h-2.197V40.74H44.643 M46.143,39.24h-1.5h-2.197h-1.5v1.5v13.772v1.5h1.5h2.197h1.5v-1.5V40.74
V39.24L46.143,39.24z"/>
</g>
</g>
<g>
<path fill="#FFFFFF" d="M50.27,44.224c0.026,0.696,0.054,0.857,0.054,0.991v9.298h-2.117V40.714h2.626l4.395,9.565
c-0.027-0.697-0.027-0.857-0.027-0.965v-8.601h2.117v13.799h-2.09L50.27,44.224z"/>
<g opacity="0.35">
<path d="M57.316,40.714v13.799h-2.09L50.27,44.224c0.026,0.696,0.054,0.857,0.054,0.991v9.298h-2.117V40.714h2.626l4.395,9.565
c-0.027-0.697-0.027-0.857-0.027-0.965v-8.601H57.316 M58.816,39.214h-1.5h-2.117h-1.5v1.5v2.647l-1.504-3.273l-0.401-0.874
h-0.962h-2.626h-1.5v1.5v13.799v1.5h1.5h2.117h1.5v-1.5v-3.608l2.052,4.26l0.409,0.849h0.942h2.09h1.5v-1.5V40.714V39.214
L58.816,39.214z"/>
</g>
</g>
</g>
<g>
<g>
<path fill="#FFFFFF" d="M3.311,54.5v-1.977c2.288-0.26,2.288-0.52,2.288-2.027V21.687c0-1.508,0-1.82-2.288-2.028v-1.976h5.096
l6.344,5.46l6.344-5.46h5.096v1.976c-2.288,0.208-2.288,0.52-2.288,2.028v28.809c0,1.508,0,1.768,2.288,2.027V54.5h-7.02v-1.977
c2.132-0.26,2.132-0.623,2.132-2.027V20.439l-6.552,5.824l-6.552-5.824v30.057c0,1.404,0,1.768,2.132,2.027V54.5H3.311z"/>
<g opacity="0.35">
<path d="M26.191,17.683v1.976c-2.288,0.208-2.288,0.52-2.288,2.028v28.809c0,1.508,0,1.768,2.288,2.027V54.5h-7.02v-1.977
c2.132-0.26,2.132-0.623,2.132-2.027V20.439l-6.552,5.824l-6.552-5.824v30.057c0,1.404,0,1.768,2.132,2.027V54.5h-7.02v-1.977
c2.288-0.26,2.288-0.52,2.288-2.027V21.687c0-1.508,0-1.82-2.288-2.028v-1.976h5.096l6.344,5.46l6.344-5.46H26.191
M27.691,16.183h-1.5h-5.096h-0.557l-0.422,0.363l-5.366,4.618l-5.366-4.618l-0.422-0.363H8.407H3.311h-1.5v1.5v1.976v1.37
l1.364,0.124c0.453,0.042,0.74,0.082,0.921,0.115c0.003,0.132,0.003,0.284,0.003,0.419v28.809c0,0.129,0,0.272-0.002,0.399
c-0.188,0.037-0.485,0.084-0.955,0.138l-1.331,0.151v1.339V54.5V56h1.5h7.02h1.5v-1.5v-1.977v-1.328l-1.318-0.161
c-0.398-0.048-0.651-0.094-0.811-0.13c-0.003-0.127-0.003-0.276-0.003-0.408V23.779l4.056,3.605l0.997,0.886l0.997-0.886
l4.056-3.605v26.717c0,0.132,0,0.281-0.003,0.408c-0.16,0.036-0.413,0.082-0.811,0.13l-1.318,0.161v1.328V54.5V56h1.5h7.02h1.5
v-1.5v-1.977v-1.339l-1.331-0.151c-0.47-0.054-0.768-0.101-0.955-0.138c-0.002-0.127-0.002-0.271-0.002-0.399V21.687
c0-0.136,0-0.288,0.003-0.419c0.181-0.034,0.468-0.074,0.921-0.115l1.364-0.124v-1.37v-1.976V16.183L27.691,16.183z"/>
</g>
</g>
</g>
<g>
<g>
<path fill="#FFFFFF" d="M37.323,7.689l6.981-3.386h0.683v24.202c0,1.592,0.07,2.585,0.21,2.979s0.42,0.7,0.84,0.919
s1.277,0.337,2.572,0.354v0.787H37.848v-0.787c1.348-0.018,2.218-0.132,2.612-0.342c0.394-0.21,0.669-0.485,0.826-0.826
c0.158-0.342,0.236-1.37,0.236-3.084V13.018c0-2.083-0.07-3.421-0.21-4.016c-0.104-0.438-0.289-0.765-0.551-0.984
c-0.263-0.219-0.578-0.328-0.945-0.328c-0.525,0-1.251,0.219-2.179,0.656L37.323,7.689z"/>
<g opacity="0.35">
<path d="M44.987,4.303v24.202c0,1.592,0.07,2.585,0.21,2.979s0.42,0.7,0.84,0.919s1.277,0.337,2.572,0.354v0.787H37.848v-0.787
c1.348-0.018,2.218-0.132,2.612-0.342c0.394-0.21,0.669-0.485,0.826-0.826c0.158-0.342,0.236-1.37,0.236-3.084V13.018
c0-2.083-0.07-3.421-0.21-4.016c-0.104-0.438-0.289-0.765-0.551-0.984c-0.263-0.219-0.578-0.328-0.945-0.328
c-0.525,0-1.251,0.219-2.179,0.656l-0.314-0.656l6.981-3.386H44.987 M45.987,3.303h-1h-0.683h-0.229l-0.207,0.1l-6.981,3.386
l-0.896,0.435l0.431,0.897l0.314,0.656l0.429,0.896l0.898-0.423c1.036-0.488,1.543-0.561,1.753-0.561
c0.167,0,0.248,0.049,0.306,0.097c0.09,0.075,0.166,0.231,0.218,0.448c0.067,0.288,0.183,1.168,0.183,3.784v15.487
c0,2.142-0.127,2.612-0.152,2.685c-0.016,0.031-0.087,0.187-0.381,0.344c-0.038,0.02-0.435,0.201-2.154,0.224l-0.987,0.013v0.987
v0.787v1h1h10.762h1v-1v-0.787v-0.986l-0.986-0.014c-1.623-0.021-2.054-0.205-2.124-0.241c-0.249-0.13-0.323-0.265-0.359-0.366
c-0.025-0.072-0.152-0.54-0.152-2.645V4.303V3.303L45.987,3.303z"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View file

@ -1,135 +1,235 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2385"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_mainphase2.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs2387">
<linearGradient
id="linearGradient3177">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3179" />
<stop
style="stop-color:#0044aa;stop-opacity:0;"
offset="1"
id="stop3181" />
</linearGradient>
<linearGradient
id="linearGradient3167">
<stop
style="stop-color:#0044aa;stop-opacity:1;"
offset="0"
id="stop3169" />
<stop
style="stop-color:#00122f;stop-opacity:1;"
offset="1"
id="stop3171" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2393" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3167"
id="linearGradient3173"
x1="31.09091"
y1="5.2455459"
x2="31.09091"
y2="62.754456"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3177"
id="linearGradient3183"
x1="38.090908"
y1="12.35777"
x2="38.090908"
y2="33.096775"
gradientUnits="userSpaceOnUse" />
<filter
inkscape:collect="always"
id="filter3193">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.15669667"
id="feGaussianBlur3195" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.5"
inkscape:cx="12.016282"
inkscape:cy="30.70745"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata2390">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
sodipodi:type="arc"
style="fill:url(#linearGradient3173);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.41800001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path2395"
sodipodi:cx="31.09091"
sodipodi:cy="34"
sodipodi:rx="28.545454"
sodipodi:ry="28.545454"
d="M 59.636364,34 A 28.545454,28.545454 0 1 1 2.5454559,34 A 28.545454,28.545454 0 1 1 59.636364,34 z"
transform="translate(0.90909,-2)" />
<path
sodipodi:type="arc"
style="fill:url(#linearGradient3183);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.41800001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3193)"
id="path3175"
sodipodi:cx="38.090908"
sodipodi:cy="22.727272"
sodipodi:rx="22.272728"
sodipodi:ry="10.181818"
d="M 60.363636,22.727272 A 22.272728,10.181818 0 1 1 15.81818,22.727272 A 22.272728,10.181818 0 1 1 60.363636,22.727272 z"
transform="matrix(0.8292896,0,0,1.0283566,0.4116061,-8.3717394)" />
<path
style="font-size:72px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:URW Chancery L;-inkscape-font-specification:URW Chancery L Bold Italic"
d="M 15.175273,51.40582 C 18.27127,48.021823 19.135275,47.44582 20.935273,47.44582 C 21.655272,47.44582 22.591274,47.58982 23.743273,47.87782 C 29.071268,49.101819 36.127274,50.39782 37.279273,50.39782 C 37.855272,50.39782 38.215274,50.32582 38.935273,50.03782 L 45.271273,40.53382 L 44.695273,38.87782 C 40.087278,44.709814 39.583271,45.21382 37.639273,45.21382 C 37.279273,45.21382 36.775272,45.14182 36.127273,44.99782 C 31.159278,44.133821 26.839269,43.485819 23.239273,42.90982 L 32.095273,34.70182 L 38.503273,28.72582 L 42.103273,25.34182 C 44.191271,22.173823 45.055273,19.725817 45.055273,16.55782 C 45.055273,11.949825 42.103269,8.9978199 37.639273,8.9978199 C 33.967277,8.9978199 30.15127,10.365822 27.199273,12.81382 C 24.607276,14.829818 23.239273,17.421823 23.239273,20.37382 C 23.239273,20.949819 23.311273,21.309821 23.455273,22.10182 L 28.567273,22.67782 C 27.919274,20.733822 27.703273,19.725819 27.703273,18.42982 C 27.703273,14.469824 30.079277,11.87782 33.679273,11.87782 C 37.06327,11.87782 39.511273,14.829824 39.511273,18.93382 C 39.511273,21.165818 38.791272,23.685822 37.639273,25.48582 C 36.127275,27.933817 34.327267,29.877825 28.783273,35.06182 C 19.495282,43.773811 18.415269,44.853824 14.887273,49.31782 L 15.175273,51.40582"
id="text3217" />
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
<radialGradient id="SVGID_1_" cx="30" cy="30" r="30" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#0087FF"/>
<stop offset="1" style="stop-color:#191919"/>
</radialGradient>
<path fill="url(#SVGID_1_)" d="M60,51.818C60,56.337,56.337,60,51.818,60H8.182C3.663,60,0,56.337,0,51.818V8.182
C0,3.663,3.663,0,8.182,0h43.637C56.337,0,60,3.663,60,8.182V51.818z"/>
<g>
<g>
<path fill="#FFFFFF" d="M36.672,50.172h-3.938l-1.42,4.341h-2.225l4.528-13.772h2.171l4.555,13.772h-2.224L36.672,50.172z
M33.135,48.457h3.135l-1.554-5.171L33.135,48.457z"/>
<g opacity="0.35">
<path d="M35.788,40.74l4.555,13.772h-2.224l-1.447-4.341h-3.938l-1.42,4.341h-2.225l4.528-13.772H35.788 M33.135,48.457h3.135
l-1.554-5.171L33.135,48.457 M36.872,39.24h-1.084h-2.171h-1.086l-0.339,1.031l-4.528,13.772l-0.647,1.969h2.072h2.225h1.088
l0.338-1.033l1.082-3.308h1.77l1.105,3.315l0.342,1.025h1.081h2.224h2.076l-0.652-1.971L37.212,40.27L36.872,39.24L36.872,39.24z
"/>
</g>
</g>
<g>
<path fill="#FFFFFF" d="M42.445,40.74h2.197v13.772h-2.197V40.74z"/>
<g opacity="0.35">
<path d="M44.643,40.74v13.772h-2.197V40.74H44.643 M46.143,39.24h-1.5h-2.197h-1.5v1.5v13.772v1.5h1.5h2.197h1.5v-1.5V40.74
V39.24L46.143,39.24z"/>
</g>
</g>
<g>
<path fill="#FFFFFF" d="M50.27,44.224c0.026,0.696,0.054,0.857,0.054,0.991v9.298h-2.117V40.714h2.626l4.395,9.565
c-0.027-0.697-0.027-0.857-0.027-0.965v-8.601h2.117v13.799h-2.09L50.27,44.224z"/>
<g opacity="0.35">
<path d="M57.316,40.714v13.799h-2.09L50.27,44.224c0.026,0.696,0.054,0.857,0.054,0.991v9.298h-2.117V40.714h2.626l4.395,9.565
c-0.027-0.697-0.027-0.857-0.027-0.965v-8.601H57.316 M58.816,39.214h-1.5h-2.117h-1.5v1.5v2.647l-1.504-3.273l-0.401-0.874
h-0.962h-2.626h-1.5v1.5v13.799v1.5h1.5h2.117h1.5v-1.5v-3.608l2.052,4.26l0.409,0.849h0.942h2.09h1.5v-1.5V40.714V39.214
L58.816,39.214z"/>
</g>
</g>
</g>
<g display="none">
<g display="inline">
<path fill="#FFFFFF" d="M29.857,48.793c-1.015,0-2.135-0.525-2.275-0.595v6.896h-2.765V37.102h4.166
c5.18,0,7.036,2.73,7.036,5.601c0,1.855-0.665,3.536-1.96,4.656C33.007,48.268,31.572,48.793,29.857,48.793z M27.582,39.272v6.79
c0,0,1.085,0.525,1.925,0.525c2.38,0,3.745-1.715,3.745-3.921c0-1.96-1.365-3.395-4.27-3.395H27.582z"/>
<g opacity="0.35">
<path d="M28.982,37.102c5.18,0,7.036,2.73,7.036,5.601c0,1.855-0.665,3.536-1.96,4.656c-1.051,0.909-2.485,1.435-4.201,1.435
c-1.015,0-2.135-0.525-2.275-0.595v6.896h-2.765V37.102H28.982 M29.507,46.588c2.38,0,3.745-1.715,3.745-3.921
c0-1.96-1.365-3.395-4.27-3.395h-1.4v6.79C27.582,46.063,28.667,46.588,29.507,46.588 M28.982,35.602h-4.166h-1.5v1.5v17.992v1.5
h1.5h2.765h1.5v-1.5v-4.862c0.252,0.038,0.514,0.062,0.775,0.062c2.029,0,3.821-0.622,5.182-1.8
c1.599-1.383,2.479-3.439,2.479-5.791C37.518,39.27,35.275,35.602,28.982,35.602L28.982,35.602z M29.082,45.019v-4.245
c1.772,0.022,2.67,0.659,2.67,1.894c0,0.568-0.162,2.421-2.245,2.421C29.395,45.088,29.244,45.061,29.082,45.019L29.082,45.019z"
/>
</g>
</g>
</g>
<g display="none">
<g display="inline">
<path fill="#FFFFFF" d="M19.689,45.317c0,6.136-1.352,9.776-7.488,9.776c-5.876,0-7.176-3.641-7.176-9.776V21.656
c0-1.508,0-1.82-1.977-2.028v-1.976h6.604v1.976c-2.028,0.208-2.028,0.52-2.028,2.028v23.869c0,4.68,0.937,7.072,4.681,7.072
c3.848,0,4.784-2.393,4.784-7.072V21.656c0-1.508,0-1.82-2.028-2.028v-1.976h6.604v1.976c-1.977,0.208-1.977,0.52-1.977,2.028
V45.317z"/>
<g opacity="0.35">
<path d="M21.666,17.652v1.976c-1.977,0.208-1.977,0.52-1.977,2.028v23.661c0,6.136-1.352,9.776-7.488,9.776
c-5.876,0-7.176-3.641-7.176-9.776V21.656c0-1.508,0-1.82-1.977-2.028v-1.976h6.604v1.976c-2.028,0.208-2.028,0.52-2.028,2.028
v23.869c0,4.68,0.937,7.072,4.681,7.072c3.848,0,4.784-2.393,4.784-7.072V21.656c0-1.508,0-1.82-2.028-2.028v-1.976H21.666
M23.166,16.152h-1.5h-6.604h-1.5v1.5v1.976v1.354l1.347,0.138c0.314,0.032,0.531,0.063,0.678,0.09
c0.003,0.14,0.003,0.301,0.003,0.446v23.869c0,5.197-1.241,5.572-3.284,5.572c-1.921,0-3.181-0.388-3.181-5.572V21.656
c0-0.145,0-0.306,0.003-0.446c0.147-0.026,0.364-0.058,0.678-0.09l1.347-0.138v-1.354v-1.976v-1.5h-1.5H3.049h-1.5v1.5v1.976
v1.351l1.343,0.141c0.289,0.03,0.491,0.06,0.631,0.084c0.003,0.142,0.003,0.306,0.003,0.452v23.661
c0,5.576,1.031,11.276,8.676,11.276c7.92,0,8.988-5.7,8.988-11.276V21.656c0-0.146,0-0.31,0.003-0.452
c0.14-0.025,0.342-0.054,0.631-0.084l1.343-0.141v-1.351v-1.976V16.152L23.166,16.152z"/>
</g>
</g>
</g>
<g display="none">
<g display="inline">
<path d="M24.317,48.141c0.015,0.403,0.03,0.496,0.03,0.574v5.379h-1.225v-7.984h1.52l2.543,5.535
c-0.016-0.403-0.016-0.496-0.016-0.559v-4.977h1.225v7.984h-1.209L24.317,48.141z"/>
<g opacity="0.35">
<path fill="#FFFFFF" d="M28.395,46.109v7.984h-1.209l-2.868-5.953c0.015,0.403,0.03,0.496,0.03,0.574v5.379h-1.225v-7.984h1.52
l2.543,5.535c-0.016-0.403-0.016-0.496-0.016-0.559v-4.977H28.395 M29.395,45.109h-1H27.17h-1v1v0.929l-0.619-1.346l-0.268-0.583
h-0.641h-1.52h-1v1v7.984v1h1h1.225h1v-1v-1.511l0.937,1.944l0.272,0.566h0.628h1.209h1v-1v-7.984V45.109L29.395,45.109z"/>
</g>
</g>
<g display="inline">
<path d="M33.431,54.094h-1.193v-6.93h-1.97v-1.039h5.147v1.039h-1.984V54.094z"/>
<g opacity="0.35">
<path fill="#FFFFFF" d="M35.415,46.125v1.039h-1.984v6.93h-1.193v-6.93h-1.97v-1.039H35.415 M36.415,45.125h-1h-5.147h-1v1v1.039
v1h1h0.97v5.93v1h1h1.193h1v-1v-5.93h0.984h1v-1v-1.039V45.125L36.415,45.125z"/>
</g>
</g>
<g display="inline">
<path d="M40.332,51.582h-2.279l-0.821,2.512h-1.287l2.62-7.969h1.256l2.636,7.969h-1.287L40.332,51.582z M38.285,50.59H40.1
L39.2,47.598L38.285,50.59z"/>
<g opacity="0.35">
<path fill="#FFFFFF" d="M39.82,46.125l2.636,7.969h-1.287l-0.837-2.512h-2.279l-0.821,2.512h-1.287l2.62-7.969H39.82
M38.285,50.59H40.1L39.2,47.598L38.285,50.59 M40.543,45.125H39.82h-1.256h-0.724l-0.227,0.688l-2.62,7.969l-0.432,1.313h1.382
h1.287h0.726l0.225-0.689l0.597-1.822h0.833l0.609,1.828l0.228,0.684h0.721h1.287h1.384l-0.435-1.314l-2.636-7.969L40.543,45.125
L40.543,45.125z"/>
</g>
</g>
<g display="inline">
<path d="M46.438,51.303c-0.45,0-0.946-0.232-1.008-0.264v3.055h-1.225v-7.969h1.845c2.294,0,3.116,1.209,3.116,2.48
c0,0.822-0.295,1.566-0.868,2.063C47.834,51.07,47.198,51.303,46.438,51.303z M45.431,47.086v3.008c0,0,0.48,0.232,0.853,0.232
c1.055,0,1.659-0.76,1.659-1.736c0-0.867-0.604-1.504-1.892-1.504H45.431z"/>
<g opacity="0.35">
<path fill="#FFFFFF" d="M46.051,46.125c2.294,0,3.116,1.209,3.116,2.48c0,0.822-0.295,1.566-0.868,2.063
c-0.465,0.402-1.101,0.635-1.86,0.635c-0.45,0-0.946-0.232-1.008-0.264v3.055h-1.225v-7.969H46.051 M46.283,50.326
c1.055,0,1.659-0.76,1.659-1.736c0-0.867-0.604-1.504-1.892-1.504h-0.62v3.008C45.431,50.094,45.911,50.326,46.283,50.326
M46.051,45.125h-1.845h-1v1v7.969v1h1h1.225h1v-1v-1.791c0.003,0,0.005,0,0.008,0c0.981,0,1.851-0.304,2.515-0.879
c0.783-0.677,1.214-1.678,1.214-2.818C50.167,47,49.089,45.125,46.051,45.125L46.051,45.125z M46.431,49.315v-1.202
c0.512,0.086,0.512,0.352,0.512,0.477C46.942,49.021,46.771,49.264,46.431,49.315L46.431,49.315z"/>
</g>
</g>
</g>
<g display="none">
<path display="inline" d="M31.88,13.991l-5.19,5.191c0,0,0.6,3.174,1.794,5.382c0.378,0.618,1.558,2.401,2.274,3.162
c0.779,0.83,1.675,1.615,2.481,2.247c1.7,1.333,4.077,2.482,6.011,3.109c3.442,1.118,7.89,0.522,9.301,0
c1.411-0.521,2.979-1.984,3.763-3.5c0.783-1.516,1.203-2.561,1.203-5.591c0-3.031-0.549-4.727-1.151-6.428
c-0.627-1.774-1.986-4.023-1.986-4.023l3.424-3.423L38.778,4.603l2.299,16.67l4.547-3.344c0,0,1.062,1.533,1.62,3.693
c0.273,1.061,0.288,1.652,0.295,2.211c0.009,0.587-0.036,1.064-0.243,1.83c-0.144,0.535-1.071,1.45-1.686,1.685
c-0.695,0.266-2.469,0.378-4.377,0.091c-2.493-0.375-4.29-1.652-5.033-2.299c-1.358-1.184-1.881-1.637-3.432-4.65
C31.207,17.451,31.88,13.991,31.88,13.991z"/>
<g display="inline" opacity="0.25">
<path fill="#FFFFFF" d="M38.778,4.603l15.023,5.513l-3.424,3.423c0,0,1.359,2.249,1.986,4.023
c0.603,1.702,1.151,3.397,1.151,6.428c0,3.03-0.42,4.075-1.203,5.591c-0.784,1.516-2.352,2.979-3.763,3.5
c-0.823,0.305-2.679,0.635-4.766,0.635c-1.491,0-3.101-0.169-4.535-0.635c-1.934-0.627-4.311-1.776-6.011-3.109
c-0.806-0.632-1.702-1.417-2.481-2.247c-0.716-0.761-1.896-2.543-2.274-3.162c-1.194-2.208-1.794-5.382-1.794-5.382l5.19-5.191
c0,0-0.673,3.46,0.889,6.498c1.551,3.013,2.073,3.466,3.432,4.65c0.743,0.647,2.54,1.924,5.033,2.299
c0.785,0.118,1.548,0.169,2.222,0.169c0.964,0,1.746-0.104,2.155-0.26c0.614-0.235,1.542-1.15,1.686-1.685
c0.207-0.766,0.252-1.243,0.243-1.83c-0.007-0.56-0.021-1.15-0.295-2.211c-0.559-2.16-1.62-3.693-1.62-3.693l-4.547,3.344
L38.778,4.603 M37.561,3.09l0.228,1.649l2.299,16.67l0.229,1.665l1.354-0.996l3.649-2.685c0.312,0.602,0.695,1.469,0.957,2.478
c0.251,0.974,0.257,1.482,0.263,1.973c0.007,0.484-0.023,0.874-0.209,1.557c-0.096,0.246-0.737,0.882-1.077,1.012
c-0.188,0.072-0.779,0.194-1.798,0.194c-0.672,0-1.388-0.055-2.072-0.158c-2.418-0.364-4.075-1.672-4.525-2.064
c-1.302-1.134-1.738-1.515-3.2-4.354c-1.387-2.698-0.802-5.818-0.796-5.85l0.625-3.211l-2.313,2.313l-5.19,5.191l-0.374,0.374
l0.098,0.519c0.025,0.136,0.643,3.354,1.896,5.672l0.013,0.023l0.014,0.023c0.27,0.441,1.545,2.418,2.399,3.325
c0.929,0.989,1.922,1.823,2.592,2.349c1.965,1.54,4.553,2.7,6.319,3.273c1.396,0.453,3.025,0.684,4.844,0.684
c2.232,0,4.177-0.351,5.113-0.697c1.634-0.604,3.404-2.24,4.304-3.979c0.817-1.584,1.314-2.781,1.314-6.051
c0-3.097-0.548-4.895-1.209-6.762c-0.442-1.253-1.211-2.696-1.678-3.526l2.88-2.879l1.107-1.106l-1.47-0.54L39.123,3.664
L37.561,3.09L37.561,3.09z"/>
</g>
</g>
<g display="none">
<g display="inline">
<path fill="#FFFFFF" d="M52.748,26.513l-0.918,7.07H32.553v-1.074c0.625-0.469,1.263-0.94,1.914-1.416
c0.651-0.475,1.302-0.97,1.953-1.484c0.651-0.514,1.445-1.194,2.383-2.041c0.938-0.846,1.731-1.602,2.383-2.266
c1.94-1.914,3.486-3.802,4.639-5.664c1.152-1.862,1.729-3.626,1.729-5.293c0-1.237-0.303-2.36-0.908-3.369
c-0.605-1.009-1.394-1.807-2.363-2.393s-1.937-0.879-2.9-0.879c-1.706,0-3.093,0.541-4.16,1.621
c-1.067,1.081-1.667,2.324-1.797,3.73h-0.352c0-0.039-0.01-0.241-0.029-0.605c-0.02-0.364-0.036-0.625-0.049-0.781
c0-1.497,0.332-2.78,0.996-3.848c0.664-1.067,1.56-1.862,2.686-2.383c1.126-0.521,2.393-0.781,3.799-0.781
c1.224,0,2.383,0.212,3.477,0.635c1.094,0.423,2.044,1.009,2.852,1.758c0.808,0.749,1.438,1.615,1.895,2.598
c0.456,0.983,0.684,2.041,0.684,3.174c0,1.25-0.247,2.503-0.742,3.76c-0.495,1.257-1.162,2.461-2.002,3.613
s-1.826,2.295-2.959,3.428c-1.094,1.094-2.497,2.321-4.209,3.682c-1.712,1.361-3.577,2.777-5.596,4.248
c0.352,0.078,0.769,0.169,1.25,0.273s1.077,0.202,1.787,0.293s1.526,0.166,2.451,0.225s1.999,0.088,3.223,0.088
c2.578,0,4.538-0.176,5.879-0.527l2.051-5.391H52.748z M38.861,28.017l0.176,0.293c1.94-1.575,3.545-2.981,4.814-4.219
c1.27-1.237,2.321-2.425,3.154-3.564c0.833-1.139,1.458-2.266,1.875-3.379s0.625-2.197,0.625-3.252c0-1.588-0.4-2.969-1.201-4.141
s-1.794-2.061-2.979-2.666s-2.312-0.908-3.379-0.908c-2.734,0-4.785,1.322-6.152,3.965h0.195c0.56-0.911,1.279-1.641,2.158-2.188
s1.943-0.82,3.193-0.82s2.396,0.322,3.438,0.967s1.865,1.521,2.471,2.627c0.605,1.107,0.908,2.312,0.908,3.613
c0,1.341-0.352,2.738-1.055,4.189c-0.703,1.452-1.738,2.966-3.105,4.541C42.631,24.651,40.919,26.298,38.861,28.017z"/>
<g opacity="0.35">
<path d="M42.475,4.657c1.224,0,2.383,0.212,3.477,0.635c1.094,0.423,2.044,1.009,2.852,1.758
c0.808,0.749,1.438,1.615,1.895,2.598c0.456,0.983,0.684,2.041,0.684,3.174c0,1.25-0.247,2.503-0.742,3.76
c-0.495,1.257-1.162,2.461-2.002,3.613s-1.826,2.295-2.959,3.428c-1.094,1.094-2.497,2.321-4.209,3.682
c-1.712,1.361-3.577,2.777-5.596,4.248c0.352,0.078,0.769,0.169,1.25,0.273s1.077,0.202,1.787,0.293s1.526,0.166,2.451,0.225
s1.999,0.088,3.223,0.088c2.578,0,4.538-0.176,5.879-0.527l2.051-5.391h0.234l-0.918,7.07H32.553v-1.074
c0.625-0.469,1.263-0.94,1.914-1.416c0.651-0.475,1.302-0.97,1.953-1.484c0.651-0.514,1.445-1.194,2.383-2.041
c0.938-0.846,1.731-1.602,2.383-2.266c1.94-1.914,3.486-3.802,4.639-5.664c1.152-1.862,1.729-3.626,1.729-5.293
c0-1.237-0.303-2.36-0.908-3.369c-0.605-1.009-1.394-1.807-2.363-2.393s-1.937-0.879-2.9-0.879c-1.706,0-3.093,0.541-4.16,1.621
c-1.067,1.081-1.667,2.324-1.797,3.73h-0.352c0-0.039-0.01-0.241-0.029-0.605c-0.02-0.364-0.036-0.625-0.049-0.781
c0-1.497,0.332-2.78,0.996-3.848c0.664-1.067,1.56-1.862,2.686-2.383C39.802,4.918,41.068,4.657,42.475,4.657 M35.795,10.146
h0.195c0.56-0.911,1.279-1.641,2.158-2.188s1.943-0.82,3.193-0.82s2.396,0.322,3.438,0.967s1.865,1.521,2.471,2.627
c0.605,1.107,0.908,2.312,0.908,3.613c0,1.341-0.352,2.738-1.055,4.189c-0.703,1.452-1.738,2.966-3.105,4.541
c-1.367,1.576-3.079,3.223-5.137,4.941l0.176,0.293c1.94-1.575,3.545-2.981,4.814-4.219c1.27-1.237,2.321-2.425,3.154-3.564
c0.833-1.139,1.458-2.266,1.875-3.379s0.625-2.197,0.625-3.252c0-1.588-0.4-2.969-1.201-4.141s-1.794-2.061-2.979-2.666
s-2.312-0.908-3.379-0.908C39.213,6.181,37.162,7.502,35.795,10.146 M42.475,3.657c-1.545,0-2.965,0.294-4.219,0.874
c-1.301,0.602-2.349,1.531-3.114,2.762c-0.762,1.224-1.147,2.696-1.147,4.376v0.041l0.003,0.041
c0.013,0.151,0.028,0.402,0.047,0.754c0.018,0.32,0.027,0.508,0.028,0.563l0.022,0.977l0.978,0.011h0.352h0.912l0.084-0.908
c0.108-1.179,0.604-2.199,1.513-3.12c0.88-0.891,2.008-1.324,3.448-1.324c0.774,0,1.576,0.247,2.383,0.735
c0.825,0.498,1.506,1.188,2.023,2.051c0.516,0.859,0.766,1.792,0.766,2.854c0,1.47-0.531,3.074-1.579,4.767
c-1.105,1.786-2.616,3.629-4.49,5.479c-0.649,0.662-1.437,1.41-2.351,2.235c-0.918,0.829-1.702,1.501-2.332,1.998
c-0.645,0.509-1.291,1-1.923,1.461c-0.655,0.479-1.297,0.953-1.925,1.424l-0.4,0.3v0.5v1.074v1h1H51.83h0.879l0.112-0.871
l0.918-7.07l0.147-1.129h-1.139h-0.234h-0.689l-0.245,0.645l-1.861,4.893c-1.235,0.253-2.958,0.381-5.134,0.381
c-1.197,0-2.26-0.029-3.159-0.086c-0.894-0.057-1.696-0.13-2.388-0.219c-0.27-0.034-0.522-0.07-0.758-0.106
c1.345-1.005,2.621-1.987,3.812-2.933c1.733-1.377,3.179-2.642,4.294-3.757c1.164-1.164,2.193-2.357,3.061-3.546
c0.885-1.215,1.6-2.505,2.124-3.835c0.538-1.367,0.812-2.755,0.812-4.126c0-1.274-0.261-2.483-0.776-3.595
c-0.51-1.098-1.224-2.077-2.122-2.91c-0.897-0.832-1.964-1.49-3.17-1.957C45.106,3.894,43.815,3.657,42.475,3.657L42.475,3.657z"
/>
</g>
</g>
</g>
<g>
<g>
<path fill="#FFFFFF" d="M3.311,54.5v-1.977c2.288-0.26,2.288-0.52,2.288-2.027V21.687c0-1.508,0-1.82-2.288-2.028v-1.976h5.096
l6.344,5.46l6.344-5.46h5.096v1.976c-2.288,0.208-2.288,0.52-2.288,2.028v28.809c0,1.508,0,1.768,2.288,2.027V54.5h-7.02v-1.977
c2.132-0.26,2.132-0.623,2.132-2.027V20.439l-6.552,5.824l-6.552-5.824v30.057c0,1.404,0,1.768,2.132,2.027V54.5H3.311z"/>
<g opacity="0.35">
<path d="M26.191,17.683v1.976c-2.288,0.208-2.288,0.52-2.288,2.028v28.809c0,1.508,0,1.768,2.288,2.027V54.5h-7.02v-1.977
c2.132-0.26,2.132-0.623,2.132-2.027V20.439l-6.552,5.824l-6.552-5.824v30.057c0,1.404,0,1.768,2.132,2.027V54.5h-7.02v-1.977
c2.288-0.26,2.288-0.52,2.288-2.027V21.687c0-1.508,0-1.82-2.288-2.028v-1.976h5.096l6.344,5.46l6.344-5.46H26.191
M27.691,16.183h-1.5h-5.096h-0.557l-0.422,0.363l-5.366,4.618l-5.366-4.618l-0.422-0.363H8.407H3.311h-1.5v1.5v1.976v1.37
l1.364,0.124c0.453,0.042,0.74,0.082,0.921,0.115c0.003,0.132,0.003,0.284,0.003,0.419v28.809c0,0.129,0,0.272-0.002,0.399
c-0.188,0.037-0.485,0.084-0.955,0.138l-1.331,0.151v1.339V54.5V56h1.5h7.02h1.5v-1.5v-1.977v-1.328l-1.318-0.161
c-0.398-0.048-0.651-0.094-0.811-0.13c-0.003-0.127-0.003-0.276-0.003-0.408V23.779l4.056,3.605l0.997,0.886l0.997-0.886
l4.056-3.605v26.717c0,0.132,0,0.281-0.003,0.408c-0.16,0.036-0.413,0.082-0.811,0.13l-1.318,0.161v1.328V54.5V56h1.5h7.02h1.5
v-1.5v-1.977v-1.339l-1.331-0.151c-0.47-0.054-0.768-0.101-0.955-0.138c-0.002-0.127-0.002-0.271-0.002-0.399V21.687
c0-0.136,0-0.288,0.003-0.419c0.181-0.034,0.468-0.074,0.921-0.115l1.364-0.124v-1.37v-1.976V16.183L27.691,16.183z"/>
</g>
</g>
</g>
<g>
<g>
<path fill="#FFFFFF" d="M53.012,28.07l-2.021,5.513H34.086v-0.788c4.987-4.532,8.491-8.233,10.513-11.103s3.032-5.495,3.032-7.875
c0-1.82-0.556-3.316-1.667-4.489s-2.438-1.759-3.977-1.759c-1.418,0-2.687,0.411-3.807,1.234s-1.942,2.03-2.468,3.622h-0.787
c0.35-2.607,1.256-4.606,2.717-5.998c1.461-1.391,3.276-2.087,5.447-2.087c2.327,0,4.27,0.749,5.827,2.245
s2.336,3.251,2.336,5.263c0,1.453-0.341,2.905-1.023,4.357c-1.033,2.292-2.722,4.708-5.066,7.245
c-3.5,3.833-5.688,6.142-6.563,6.93h7.481c1.522,0,2.59-0.052,3.202-0.157s1.164-0.333,1.654-0.683
c0.489-0.35,0.919-0.84,1.286-1.47H53.012z"/>
<g opacity="0.35">
<path d="M43.09,4.34c2.327,0,4.27,0.749,5.827,2.245s2.336,3.251,2.336,5.263c0,1.453-0.341,2.905-1.023,4.357
c-1.033,2.292-2.722,4.708-5.066,7.245c-3.5,3.833-5.688,6.142-6.563,6.93h7.481c1.522,0,2.59-0.052,3.202-0.157
s1.164-0.333,1.654-0.683c0.489-0.35,0.919-0.84,1.286-1.47h0.787l-2.021,5.513H34.086v-0.788
c4.987-4.532,8.491-8.233,10.513-11.103s3.032-5.495,3.032-7.875c0-1.82-0.556-3.316-1.667-4.489s-2.438-1.759-3.977-1.759
c-1.418,0-2.687,0.411-3.807,1.234s-1.942,2.03-2.468,3.622h-0.787c0.35-2.607,1.256-4.606,2.717-5.998
C39.104,5.036,40.919,4.34,43.09,4.34 M43.09,3.34c-2.426,0-4.49,0.795-6.137,2.363c-1.624,1.547-2.64,3.764-3.019,6.589
l-0.151,1.133h1.143h0.787h0.723l0.227-0.687c0.457-1.384,1.167-2.437,2.11-3.129c0.953-0.7,2.004-1.04,3.215-1.04
c1.265,0,2.328,0.473,3.251,1.447c0.937,0.989,1.393,2.232,1.393,3.801c0,2.159-0.959,4.614-2.85,7.299
c-1.971,2.798-5.459,6.479-10.368,10.938l-0.327,0.298v0.442v0.788v1h1h16.905h0.698l0.24-0.656l2.021-5.512l0.493-1.344h-1.432
h-0.787h-0.575l-0.289,0.497c-0.293,0.503-0.631,0.893-1.004,1.16c-0.368,0.263-0.774,0.431-1.241,0.51
c-0.38,0.065-1.215,0.143-3.033,0.143h-5.063c1.159-1.208,2.778-2.951,4.883-5.255c2.402-2.6,4.167-5.128,5.24-7.508
c0.735-1.565,1.111-3.174,1.111-4.769c0-2.286-0.89-4.3-2.644-5.984C47.866,4.189,45.673,3.34,43.09,3.34L43.09,3.34z"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -1,89 +1,102 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg3167"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_nextTurn.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs3169">
<linearGradient
id="linearGradient3159">
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="0"
id="stop3161" />
<stop
style="stop-color:#870000;stop-opacity:1;"
offset="1"
id="stop3163" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3159"
id="linearGradient3165"
x1="460.92261"
y1="383.05679"
x2="144.23897"
y2="474.24744"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.2002403,0,0,0.2002403,-29.54275,-55.059863)" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective3175" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="6.4785302"
inkscape:cx="71.431122"
inkscape:cy="35.114322"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata3172">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
style="fill:url(#linearGradient3165);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30036047;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 29.130932,18.753217 C 20.744599,18.686709 11.651606,23.163902 1.3976484,34.253068 L 3.7535432,38.873766 C 29.306087,10.191947 44.263934,30.067613 51.933109,37.746086 C 50.522291,38.573832 48.464685,38.467536 46.274272,38.998726 C 51.42154,40.570478 56.687692,42.488294 61.676216,44.630089 C 60.792534,39.544838 59.481746,34.617053 58.935262,29.103904 C 58.378905,31.662724 57.62115,32.32038 56.582628,34.559687 C 47.924709,25.228354 39.020111,18.831643 29.130932,18.753217 z"
id="path2383"
sodipodi:nodetypes="ccccccccc" />
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
<radialGradient id="SVGID_1_" cx="30" cy="30" r="30" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#E6E6E6"/>
<stop offset="1" style="stop-color:#191919"/>
</radialGradient>
<path fill="url(#SVGID_1_)" d="M60,51.818C60,56.337,56.337,60,51.818,60H8.182C3.663,60,0,56.337,0,51.818V8.182
C0,3.663,3.663,0,8.182,0h43.637C56.337,0,60,3.663,60,8.182V51.818z"/>
<g>
<path fill="#FFFFFF" d="M36.803,32.291l-6.082,6.082c0,0-3.719-0.705-6.307-2.103c-0.725-0.444-2.813-1.825-3.705-2.665
c-0.972-0.912-1.893-1.963-2.632-2.906c-1.562-1.992-2.909-4.777-3.644-7.043c-1.31-4.034-0.612-9.245,0-10.898
c0.611-1.653,2.325-3.49,4.101-4.409c1.777-0.918,3.001-1.41,6.552-1.41c3.552,0,5.539,0.643,7.532,1.349
c2.08,0.734,4.714,2.327,4.714,2.327l4.012-4.012l6.46,17.604l-19.533-2.693l3.919-5.328c0,0-1.797-1.244-4.328-1.898
c-1.243-0.32-1.936-0.337-2.591-0.345c-0.688-0.01-1.247,0.042-2.144,0.285c-0.627,0.168-1.701,1.255-1.975,1.975
c-0.312,0.815-0.444,2.893-0.106,5.129c0.439,2.921,1.935,5.026,2.695,5.897c1.387,1.592,1.917,2.204,5.448,4.021
C32.748,33.079,36.803,32.291,36.803,32.291z"/>
<g opacity="0.25">
<path d="M41.344,6.604l6.46,17.604l-19.533-2.693l3.919-5.328c0,0-1.797-1.215-4.328-1.87C26.62,13.996,25.926,14,25.271,14
c-0.052,0-0.104,0-0.155,0c-0.62,0-1.16,0.032-1.989,0.256c-0.627,0.168-1.701,1.241-1.975,1.96
c-0.312,0.815-0.444,2.885-0.106,5.122c0.439,2.921,1.935,5.023,2.695,5.894c1.387,1.592,1.917,2.202,5.448,4.02
c1.912,0.982,3.967,1.209,5.459,1.209c1.287,0,2.155-0.17,2.155-0.17l-6.082,6.082c0,0-3.719-0.705-6.307-2.103
c-0.725-0.444-2.813-1.825-3.705-2.665c-0.972-0.912-1.893-1.963-2.632-2.906c-1.562-1.992-2.909-4.777-3.644-7.043
c-1.31-4.034-0.612-9.245,0-10.898c0.611-1.653,2.325-3.49,4.101-4.409c1.777-0.918,3.001-1.41,6.552-1.41
c3.552,0,5.539,0.643,7.532,1.349c2.08,0.734,4.714,2.327,4.714,2.327L41.344,6.604 M41.743,4.79l-1.106,1.107L37.17,9.364
c-0.944-0.536-2.701-1.483-4.219-2.019c-2.171-0.769-4.263-1.406-7.865-1.406c-3.793,0-5.179,0.575-7.011,1.521
c-2.003,1.037-3.886,3.072-4.58,4.951c-0.677,1.83-1.404,7.271-0.013,11.554c0.667,2.056,2.017,5.066,3.808,7.351
c0.609,0.777,1.578,1.933,2.734,3.019c1.045,0.983,3.352,2.473,3.867,2.788l0.023,0.015l0.024,0.013
c2.694,1.454,6.438,2.175,6.596,2.205l0.52,0.099l0.374-0.374l6.082-6.082l2.313-2.313l-3.21,0.625
c-0.007,0.001-0.804,0.15-1.965,0.15c-1.306,0-3.233-0.19-5.002-1.1c-3.355-1.728-3.807-2.246-5.146-3.783
c-0.473-0.542-2.031-2.514-2.465-5.395c-0.331-2.195-0.165-4.056,0.052-4.623c0.183-0.48,1.009-1.239,1.306-1.338
C24.165,15.012,24.61,15,25.116,15h0.141c0.588,0,1.194-0.015,2.356,0.285c1.3,0.336,2.4,0.831,3.117,1.213l-3.265,4.431
l-0.996,1.35l1.665,0.228l19.533,2.692l1.648,0.227l-0.573-1.563l-6.46-17.604L41.743,4.79L41.743,4.79z"/>
</g>
</g>
<g>
<g>
<path fill="#FFFFFF" d="M20.223,45.629c0,2.805-1.816,4.852-4.691,4.852c-0.621,0-1.426-0.161-1.978-0.46v5.634h-1.839V41.168
h3.127C17.739,41.168,20.223,42.432,20.223,45.629z M13.554,42.639v5.864c0.529,0.229,1.311,0.483,1.863,0.483
c1.885,0,2.966-1.633,2.966-3.381c0-2.093-1.633-2.967-3.542-2.967H13.554z"/>
<g opacity="0.35">
<path d="M14.842,41.168c2.897,0,5.381,1.264,5.381,4.461c0,2.805-1.816,4.852-4.691,4.852c-0.621,0-1.426-0.161-1.978-0.46v5.634
h-1.839V41.168H14.842 M15.417,48.986c1.885,0,2.966-1.633,2.966-3.381c0-2.093-1.633-2.967-3.542-2.967h-1.288v5.864
C14.083,48.732,14.865,48.986,15.417,48.986 M14.842,40.168h-3.127h-1v1v14.486v1h1h1.839h1v-1v-4.264
c0.357,0.063,0.696,0.09,0.978,0.09c3.351,0,5.691-2.406,5.691-5.852C21.223,42.261,18.778,40.168,14.842,40.168L14.842,40.168z
M14.554,43.639h0.288c1.159,0,2.542,0.341,2.542,1.967c0,1.146-0.615,2.381-1.966,2.381c-0.203,0-0.519-0.066-0.863-0.176
V43.639L14.554,43.639z"/>
</g>
</g>
<g>
<path fill="#FFFFFF" d="M27.676,51.93h-3.38l-1.219,3.725h-1.909l3.886-11.819h1.863l3.909,11.819h-1.908L27.676,51.93z
M24.64,50.457h2.69l-1.333-4.438L24.64,50.457z"/>
<g opacity="0.35">
<path d="M26.917,43.835l3.909,11.819h-1.908l-1.242-3.725h-3.38l-1.219,3.725h-1.909l3.886-11.819H26.917 M24.64,50.457h2.69
l-1.333-4.438L24.64,50.457 M27.64,42.835h-0.723h-1.863h-0.724l-0.227,0.688l-3.886,11.819l-0.431,1.313h1.381h1.909h0.725
l0.225-0.689l0.994-3.035h1.935l1.014,3.041l0.228,0.684h0.721h1.908h1.384l-0.435-1.314l-3.909-11.819L27.64,42.835
L27.64,42.835z"/>
</g>
</g>
<g>
<path fill="#FFFFFF" d="M32.806,54.826l0.805-1.265c0.161,0.115,0.46,0.322,0.851,0.552c0.438,0.23,0.943,0.461,1.426,0.461
c1.081,0,1.932-0.713,1.932-1.863c0-0.645-0.506-1.311-1.195-1.748l-2.185-1.311c-0.966-0.598-1.817-1.609-1.817-3.035
c0-2.023,1.403-3.15,3.496-3.15c1.771,0,2.782,1.195,3.012,1.518l-1.08,0.874c-0.207-0.229-0.92-0.966-1.932-0.966
c-0.967,0-1.725,0.529-1.725,1.518c0,0.874,0.574,1.518,1.287,1.932l1.979,1.219c1.241,0.736,1.908,1.771,1.908,3.174
c0,2-1.656,3.288-3.703,3.288C34.484,56.022,33.127,55.057,32.806,54.826z"/>
<g opacity="0.35">
<path d="M36.117,43.467c1.771,0,2.782,1.195,3.012,1.518l-1.08,0.874c-0.207-0.229-0.92-0.966-1.932-0.966
c-0.967,0-1.725,0.529-1.725,1.518c0,0.874,0.574,1.518,1.287,1.932l1.979,1.219c1.241,0.736,1.908,1.771,1.908,3.174
c0,2-1.656,3.288-3.703,3.288c-1.379,0-2.736-0.966-3.058-1.196l0.805-1.265c0.161,0.115,0.46,0.322,0.851,0.552
c0.438,0.23,0.943,0.461,1.426,0.461c1.081,0,1.932-0.713,1.932-1.863c0-0.645-0.506-1.311-1.195-1.748l-2.185-1.311
c-0.966-0.598-1.817-1.609-1.817-3.035C32.621,44.594,34.024,43.467,36.117,43.467 M36.117,42.467
c-2.731,0-4.496,1.629-4.496,4.15c0,1.568,0.835,2.984,2.291,3.886l2.196,1.317c0.454,0.288,0.71,0.678,0.71,0.891
c0,0.801-0.713,0.863-0.932,0.863c-0.304,0-0.78-0.251-0.96-0.346c-0.228-0.135-0.488-0.305-0.734-0.48l-0.859-0.614
l-0.566,0.891l-0.805,1.265l-0.508,0.798l0.769,0.552c1.262,0.905,2.521,1.384,3.641,1.384c2.726,0,4.703-1.804,4.703-4.288
c0-1.708-0.829-3.104-2.398-4.034l-1.964-1.21c-0.382-0.223-0.812-0.577-0.812-1.08c0-0.128,0-0.518,0.725-0.518
c0.556,0,1.017,0.444,1.189,0.636l0.635,0.704l0.736-0.597l1.08-0.874l0.731-0.592l-0.546-0.766
C39.713,44.081,38.445,42.467,36.117,42.467L36.117,42.467z"/>
</g>
</g>
<g>
<path fill="#FFFFFF" d="M42.189,54.826l0.805-1.265c0.161,0.115,0.46,0.322,0.852,0.552c0.436,0.23,0.942,0.461,1.425,0.461
c1.081,0,1.932-0.713,1.932-1.863c0-0.645-0.506-1.311-1.196-1.748l-2.184-1.311c-0.966-0.598-1.816-1.609-1.816-3.035
c0-2.023,1.402-3.15,3.494-3.15c1.771,0,2.783,1.195,3.014,1.518l-1.082,0.874c-0.207-0.229-0.919-0.966-1.932-0.966
c-0.965,0-1.725,0.529-1.725,1.518c0,0.874,0.576,1.518,1.289,1.932l1.977,1.219c1.242,0.736,1.908,1.771,1.908,3.174
c0,2-1.654,3.288-3.701,3.288C43.868,56.022,42.512,55.057,42.189,54.826z"/>
<g opacity="0.35">
<path d="M45.5,43.467c1.771,0,2.783,1.195,3.014,1.518l-1.082,0.874c-0.207-0.229-0.919-0.966-1.932-0.966
c-0.965,0-1.725,0.529-1.725,1.518c0,0.874,0.576,1.518,1.289,1.932l1.977,1.219c1.242,0.736,1.908,1.771,1.908,3.174
c0,2-1.654,3.288-3.701,3.288c-1.38,0-2.736-0.966-3.059-1.196l0.805-1.265c0.161,0.115,0.46,0.322,0.852,0.552
c0.436,0.23,0.942,0.461,1.425,0.461c1.081,0,1.932-0.713,1.932-1.863c0-0.645-0.506-1.311-1.196-1.748l-2.184-1.311
c-0.966-0.598-1.816-1.609-1.816-3.035C42.006,44.594,43.408,43.467,45.5,43.467 M45.5,42.467c-2.73,0-4.494,1.629-4.494,4.15
c0,1.568,0.835,2.985,2.29,3.886l2.195,1.317c0.454,0.288,0.711,0.678,0.711,0.891c0,0.801-0.713,0.863-0.932,0.863
c-0.306,0-0.779-0.251-0.957-0.345c-0.23-0.136-0.491-0.306-0.737-0.481l-0.859-0.614l-0.566,0.891l-0.805,1.265l-0.509,0.8
l0.771,0.551c1.266,0.904,2.524,1.383,3.641,1.383c2.724,0,4.701-1.804,4.701-4.288c0-1.733-0.807-3.091-2.398-4.034l-1.962-1.21
c-0.383-0.223-0.813-0.578-0.813-1.08c0-0.128,0-0.518,0.725-0.518c0.556,0,1.017,0.444,1.189,0.636l0.634,0.703l0.736-0.595
l1.082-0.874l0.734-0.593l-0.549-0.768C49.096,44.079,47.825,42.467,45.5,42.467L45.5,42.467z"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View file

@ -1,159 +1,162 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg3319"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_upkeep.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs3321">
<linearGradient
inkscape:collect="always"
id="linearGradient3307">
<stop
style="stop-color:#808080;stop-opacity:1;"
offset="0"
id="stop3309" />
<stop
style="stop-color:#808080;stop-opacity:0;"
offset="1"
id="stop3311" />
</linearGradient>
<linearGradient
id="linearGradient3297">
<stop
style="stop-color:#808080;stop-opacity:1;"
offset="0"
id="stop3299" />
<stop
style="stop-color:#e8e8e8;stop-opacity:1;"
offset="1"
id="stop3301" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective3327" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3297"
id="linearGradient3344"
gradientUnits="userSpaceOnUse"
x1="274.50203"
y1="427.10938"
x2="481.21672"
y2="427.10938" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3307"
id="linearGradient3346"
gradientUnits="userSpaceOnUse"
x1="395.91437"
y1="519.13428"
x2="360.02484"
y2="519.13428" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3297"
id="linearGradient3926"
gradientUnits="userSpaceOnUse"
x1="274.50203"
y1="427.10938"
x2="481.21672"
y2="427.10938" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3307"
id="linearGradient3928"
gradientUnits="userSpaceOnUse"
x1="395.91437"
y1="519.13428"
x2="360.02484"
y2="519.13428" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3307"
id="linearGradient3931"
gradientUnits="userSpaceOnUse"
x1="395.91437"
y1="519.13428"
x2="360.02484"
y2="519.13428"
gradientTransform="matrix(0.1340241,0,0,0.1340241,-5.388189,-54.63095)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3297"
id="linearGradient3934"
gradientUnits="userSpaceOnUse"
x1="274.50204"
y1="427.10938"
x2="481.21671"
y2="427.10938"
gradientTransform="matrix(9.476938e-2,9.476938e-2,-9.476938e-2,9.476938e-2,34.81989,-42.43994)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="10.614848"
inkscape:cx="40.777992"
inkscape:cy="30.845103"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="949"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata3324">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
style="fill:url(#linearGradient3934);fill-opacity:1.0;stroke:#000000;stroke-width:0.16698611999999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385000000185;stroke-opacity:1"
d="M 52.772764,3.4047476 C 47.84595,1.474827 42.046422,2.4803794 38.086472,6.4403293 C 33.902475,10.624326 33.011815,16.866643 35.403314,21.958815 C 35.37805,21.983383 35.351338,22.004868 35.326314,22.029892 L 4.4611114,52.895095 C 2.1557088,55.200497 1.7831477,58.539073 3.6229947,60.378914 C 5.462838,62.218757 8.798451,61.843238 11.103853,59.537836 L 41.969055,28.672634 C 41.994066,28.647623 42.018538,28.623844 42.043094,28.598595 C 47.134477,30.989307 53.374621,30.096472 57.558618,25.912475 C 61.518861,21.952234 62.524694,16.153234 60.5942,11.226183 L 51.875417,19.944966 C 51.22515,20.595238 50.308186,20.723277 49.820106,20.235197 L 43.76375,14.178841 C 43.27567,13.690763 43.403714,12.773798 44.053981,12.123531 L 52.772764,3.4047476 z"
id="path2383" />
<rect
style="fill:url(#linearGradient3931);fill-opacity:1;stroke:#000000;stroke-width:0.13748859;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1"
id="rect3305"
width="4.6725717"
height="43.171928"
x="42.932579"
y="-6.640388"
ry="2.4622774"
transform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,0,0)" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Schattierung" />
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
<radialGradient id="SVGID_1_" cx="542" cy="761" r="30" gradientTransform="matrix(1 0 0 1 -512 -731)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#00DC00"/>
<stop offset="1" style="stop-color:#191919"/>
</radialGradient>
<path fill="url(#SVGID_1_)" d="M60,51.818C60,56.337,56.337,60,51.818,60H8.182C3.663,60,0,56.337,0,51.818V8.182
C0,3.663,3.663,0,8.182,0h43.636C56.337,0,60,3.663,60,8.182V51.818z"/>
<g display="none">
<g display="inline">
<path fill="#EBEBEB" d="M29.857,48.793c-1.015,0-2.135-0.525-2.275-0.595v6.896h-2.765V37.102h4.166
c5.18,0,7.037,2.73,7.037,5.603c0,1.854-0.666,3.536-1.961,4.655C33.007,48.268,31.572,48.793,29.857,48.793z M27.582,39.271
v6.791c0,0,1.085,0.523,1.925,0.523c2.38,0,3.745-1.715,3.745-3.921c0-1.96-1.365-3.396-4.27-3.396h-1.4V39.271z"/>
<g opacity="0.35">
<path d="M28.982,37.102c5.18,0,7.036,2.73,7.036,5.603c0,1.854-0.664,3.536-1.959,4.655c-1.052,0.908-2.484,1.436-4.202,1.436
c-1.015,0-2.135-0.523-2.275-0.595v6.896h-2.765V37.102H28.982 M29.507,46.588c2.38,0,3.745-1.715,3.745-3.921
c0-1.96-1.365-3.396-4.27-3.396h-1.4v6.791C27.582,46.063,28.667,46.588,29.507,46.588 M28.982,35.602h-4.166h-1.5v1.5v17.992
v1.5h1.5h2.765h1.5v-1.5v-4.861c0.252,0.037,0.514,0.063,0.775,0.063c2.029,0,3.821-0.622,5.182-1.8
c1.599-1.384,2.479-3.438,2.479-5.791C37.518,39.27,35.275,35.602,28.982,35.602L28.982,35.602z M29.082,45.02v-4.246
c1.771,0.022,2.67,0.66,2.67,1.896c0,0.567-0.162,2.421-2.245,2.421C29.395,45.088,29.244,45.061,29.082,45.02L29.082,45.02z"/>
</g>
</g>
</g>
<g display="none">
<g display="inline">
<path fill="#EBEBEB" d="M19.689,45.316c0,6.137-1.352,9.775-7.488,9.775c-5.876,0-7.176-3.641-7.176-9.775v-23.66
c0-1.508,0-1.82-1.977-2.028v-1.976h6.604v1.976c-2.028,0.208-2.028,0.52-2.028,2.028v23.869c0,4.68,0.937,7.072,4.681,7.072
c3.848,0,4.784-2.395,4.784-7.072V21.656c0-1.508,0-1.82-2.028-2.028v-1.976h6.604v1.976c-1.977,0.208-1.977,0.52-1.977,2.028
L19.689,45.316L19.689,45.316z"/>
<g opacity="0.35">
<path d="M21.666,17.652v1.976c-1.977,0.208-1.977,0.52-1.977,2.028v23.66c0,6.137-1.352,9.775-7.488,9.775
c-5.876,0-7.176-3.641-7.176-9.775v-23.66c0-1.508,0-1.82-1.977-2.028v-1.976h6.604v1.976c-2.028,0.208-2.028,0.52-2.028,2.028
v23.869c0,4.68,0.937,7.072,4.681,7.072c3.848,0,4.784-2.395,4.784-7.072V21.656c0-1.508,0-1.82-2.028-2.028v-1.976H21.666
M23.166,16.152h-1.5h-6.604h-1.5v1.5v1.976v1.354l1.347,0.138c0.314,0.032,0.531,0.063,0.678,0.09
c0.003,0.14,0.003,0.301,0.003,0.446v23.869c0,5.197-1.241,5.572-3.284,5.572c-1.921,0-3.181-0.39-3.181-5.572V21.656
c0-0.146,0-0.306,0.003-0.446c0.147-0.026,0.364-0.058,0.678-0.09l1.347-0.138v-1.354v-1.976v-1.5h-1.5H3.049h-1.5v1.5v1.976
v1.351l1.343,0.141c0.289,0.03,0.491,0.06,0.631,0.084c0.003,0.142,0.003,0.306,0.003,0.452v23.66
c0,5.576,1.031,11.275,8.676,11.275c7.92,0,8.988-5.699,8.988-11.275v-23.66c0-0.146,0-0.31,0.003-0.452
c0.14-0.025,0.342-0.054,0.631-0.084l1.343-0.141v-1.351v-1.976L23.166,16.152L23.166,16.152z"/>
</g>
</g>
</g>
<g>
<g>
<path fill="#EBEBEB" d="M26.306,4.625c0.692,1.026,1.137,2.3,1.6,3.555c0.849-0.32,2.879-0.179,3.744,0.066
c0.565-0.948,1.329-3.181,1.941-3.62c2.123,0.543,4.129,1.28,5.577,2.497c-0.175,1.365-0.975,2.508-1.377,3.645
c0.948,0.637,1.856,1.56,2.568,2.626c1.178-0.335,3.447-1.214,3.749-1.26c0.347,0,1.843,3.461,2.359,5.611
c-1.018,0.708-2.347,1.205-3.637,1.632c0.121,2.126,0.11,1.991,0,3.908c1.065,0.593,2.367,0.949,3.375,1.599
c-0.34,2.033-1.218,4.186-2.31,5.686c-0.702-0.076-2.286-0.793-3.376-1.242c-0.357,0.483-1.85,1.938-3.021,2.666
c0.663,1.22,1.471,3.739,1.471,3.739s-3.789,1.961-5.689,2.385c-0.574-0.989-1.33-2.695-1.644-3.637
c-0.865,0.062-2.938,0.154-3.76,0.004c-0.653,0.97-1.458,2.673-1.927,3.371c-2.259-0.346-4.094-1.164-5.57-2.296
c0.092-0.649,0.873-2.456,1.306-3.568c-0.854-0.839-1.87-1.804-2.667-2.843c-1.162,0.408-2.225,0.87-3.377,1.245
c-1.517-1.195-2.492-3.723-2.488-5.864c1.326-0.637,2.205-0.885,3.376-1.422c-0.166-1.406-0.224-2.124,0-3.73
c-0.95-0.708-2.335-0.981-3.376-1.599c0.072-2.272,0.983-4.255,2.488-5.864c1.298,0.301,2.284,1.031,3.519,1.335
c0.8-0.942,1.604-1.914,2.7-2.58c-0.431-1.228-1.181-2.135-1.245-3.731C22.085,5.734,23.95,4.936,26.306,4.625z M21.687,23.281
c1.895,8.187,14.204,7.626,15.99,0c1.388-5.915-3.487-10.71-9.062-9.951C23.943,13.967,20.494,18.146,21.687,23.281z"/>
<g opacity="0.35">
<path d="M33.591,4.625c2.123,0.543,4.129,1.28,5.577,2.497c-0.175,1.365-0.975,2.508-1.377,3.645
c0.948,0.637,1.856,1.56,2.568,2.626c1.178-0.335,3.447-1.214,3.749-1.26c0.347,0,1.843,3.461,2.359,5.61
c-1.018,0.708-2.347,1.206-3.637,1.632c0.121,2.126,0.11,1.992,0,3.909c1.065,0.593,2.367,0.949,3.375,1.599
c-0.34,2.033-1.218,4.186-2.31,5.686c-0.702-0.076-2.286-0.793-3.376-1.242c-0.357,0.483-1.85,1.938-3.021,2.665
c0.663,1.22,1.471,3.741,1.471,3.741s-3.789,1.959-5.689,2.385c-0.574-0.989-1.33-2.695-1.644-3.637
c-0.521,0.037-1.476,0.085-2.331,0.085c-0.57,0-1.099-0.023-1.429-0.081c-0.653,0.97-1.458,2.672-1.927,3.371
c-2.259-0.346-4.094-1.166-5.57-2.296c0.092-0.649,0.873-2.456,1.306-3.568c-0.854-0.839-1.87-1.804-2.667-2.843
c-1.162,0.408-2.225,0.87-3.377,1.245c-1.517-1.195-2.492-3.723-2.488-5.864c1.326-0.637,2.205-0.885,3.376-1.422
c-0.166-1.406-0.224-2.124,0-3.73c-0.95-0.708-2.335-0.981-3.376-1.599c0.072-2.272,0.983-4.255,2.488-5.864
c1.298,0.301,2.284,1.031,3.519,1.335c0.8-0.942,1.604-1.914,2.7-2.58c-0.431-1.228-1.181-2.135-1.245-3.731
c1.466-1.2,3.331-1.999,5.687-2.311c0.693,1.026,1.137,2.3,1.6,3.555c0.351-0.133,0.903-0.185,1.492-0.185
c0.836,0,1.745,0.107,2.252,0.251C32.215,7.296,32.979,5.063,33.591,4.625 M29.535,29.214c3.601,0,7.232-2.051,8.142-5.932
c1.292-5.499-2.832-10.03-7.896-10.03c-0.385,0-0.773,0.025-1.165,0.079c-4.675,0.637-8.122,4.814-6.928,9.951
C22.618,27.302,26.062,29.214,29.535,29.214 M33.368,3.437l-0.415,0.297c-0.586,0.42-1.003,1.282-1.621,2.653
c-0.096,0.21-0.191,0.426-0.284,0.624c-0.515-0.072-1.098-0.114-1.652-0.114c-0.285,0-0.545,0.011-0.788,0.033
c-0.379-1.015-0.799-2.032-1.396-2.919l-0.381-0.562l-0.669,0.088c-2.473,0.326-4.57,1.184-6.237,2.549l-0.422,0.345l0.021,0.546
c0.053,1.313,0.488,2.238,0.875,3.054c0.038,0.082,0.076,0.164,0.115,0.244c-0.653,0.518-1.198,1.109-1.713,1.706
c-0.287-0.111-0.574-0.242-0.872-0.379c-0.621-0.285-1.263-0.58-2.038-0.76L15.274,10.7l-0.432,0.462
c-1.744,1.866-2.705,4.14-2.783,6.577l-0.021,0.647l0.556,0.331c0.537,0.319,1.117,0.544,1.676,0.763
c0.387,0.151,0.76,0.297,1.085,0.46c-0.102,0.988-0.083,1.675-0.004,2.479c-0.23,0.094-0.457,0.183-0.691,0.274
c-0.597,0.233-1.214,0.476-1.981,0.844l-0.619,0.297l-0.001,0.687c-0.007,2.608,1.188,5.374,2.905,6.728l0.46,0.363l0.558-0.182
c0.68-0.222,1.331-0.473,1.962-0.715c0.239-0.091,0.477-0.184,0.72-0.275c0.559,0.651,1.166,1.259,1.735,1.818
c-0.023,0.059-0.047,0.117-0.071,0.177c-0.569,1.411-0.948,2.379-1.032,2.966l-0.088,0.633l0.507,0.389
c1.703,1.31,3.746,2.153,6.072,2.51l0.689,0.106l0.389-0.579c0.244-0.364,0.528-0.893,0.858-1.509
c0.233-0.434,0.486-0.906,0.726-1.314c0.25,0.015,0.534,0.021,0.857,0.021c0.527,0,1.095-0.02,1.583-0.04
c0.387,0.971,0.955,2.21,1.441,3.046l0.404,0.692l0.782-0.174c2.018-0.448,5.797-2.398,5.956-2.479l0.824-0.427l-0.282-0.884
c-0.027-0.086-0.558-1.726-1.128-3.039c0.717-0.549,1.431-1.202,1.932-1.718c1.309,0.553,2.294,0.946,2.959,1.02l0.632,0.069
l0.375-0.515c1.199-1.649,2.134-3.949,2.502-6.148l0.119-0.711l-0.606-0.39c-0.64-0.413-1.345-0.707-2.028-0.99
c-0.278-0.116-0.548-0.228-0.805-0.345c0.061-1.045,0.064-1.365,0.006-2.483c1.073-0.382,2.199-0.859,3.122-1.5l0.615-0.428
l-0.175-0.728c-0.25-1.043-0.736-2.458-1.301-3.785c-0.891-2.093-1.347-2.667-2.124-2.667h-0.085l-0.082,0.013
c-0.216,0.034-0.507,0.132-1.562,0.507c-0.502,0.179-1.082,0.386-1.594,0.556c-0.497-0.638-1.061-1.218-1.653-1.709
c0.057-0.122,0.114-0.245,0.174-0.371c0.384-0.801,0.812-1.71,0.946-2.77l0.077-0.595l-0.458-0.384
c-1.382-1.161-3.291-2.025-6.011-2.72L33.368,3.437L33.368,3.437z M29.535,28.118c-2.71,0-5.913-1.335-6.78-5.083
c-0.474-2.029-0.131-4.019,0.963-5.604c1.123-1.632,2.962-2.73,5.044-3.014c0.339-0.046,0.68-0.069,1.018-0.069
c2.2,0,4.23,0.97,5.571,2.66c1.33,1.677,1.775,3.815,1.257,6.022C35.786,26.545,32.463,28.118,29.535,28.118L29.535,28.118z"/>
</g>
</g>
</g>
<g>
<g>
<path fill="#EBEBEB" d="M6.816,54.741c-3.426,0-4.599-2.897-4.599-5.979v-8.854h1.84v8.877c0,1.862,0.368,4.438,2.759,4.438
c2.438,0,2.759-2.575,2.759-4.461v-8.854h1.84v8.945C11.415,51.867,10.265,54.741,6.816,54.741z"/>
<g opacity="0.35">
<path d="M11.415,39.909v8.945c0,3.013-1.15,5.887-4.599,5.887c-3.426,0-4.599-2.897-4.599-5.979v-8.854h1.84v8.877
c0,1.862,0.368,4.438,2.759,4.438c2.438,0,2.759-2.575,2.759-4.461v-8.854H11.415 M12.415,38.909h-1h-1.84h-1v1v8.854
c0,3.461-1.233,3.461-1.759,3.461c-0.435,0-1.759,0-1.759-3.438v-8.877v-1h-1h-1.84h-1v1v8.854c0,4.37,2.093,6.979,5.599,6.979
s5.599-2.574,5.599-6.887v-8.945V38.909L12.415,38.909z"/>
</g>
</g>
<g>
<path fill="#EBEBEB" d="M17.465,50.258c-0.667,0-1.403-0.346-1.495-0.392v4.53h-1.817V42.577h2.737
c3.403,0,4.622,1.794,4.622,3.679c0,1.219-0.437,2.323-1.288,3.059C19.535,49.912,18.592,50.258,17.465,50.258z M15.971,44.003
v4.461c0,0,0.713,0.345,1.265,0.345c1.563,0,2.46-1.127,2.46-2.575c0-1.288-0.897-2.23-2.805-2.23H15.971z"/>
<g opacity="0.35">
<path d="M16.891,42.577c3.403,0,4.622,1.794,4.622,3.679c0,1.219-0.437,2.323-1.288,3.059c-0.69,0.598-1.632,0.943-2.759,0.943
c-0.667,0-1.403-0.346-1.495-0.392v4.53h-1.817V42.577H16.891 M17.235,48.809c1.563,0,2.46-1.127,2.46-2.575
c0-1.288-0.897-2.23-2.805-2.23h-0.92v4.461C15.971,48.464,16.684,48.809,17.235,48.809 M16.891,41.577h-2.737h-1v1v11.819v1h1
h1.817h1v-1v-3.178c0.162,0.024,0.328,0.039,0.495,0.039c1.336,0,2.517-0.41,3.414-1.188c1.053-0.909,1.633-2.265,1.633-3.814
C22.512,43.994,21.036,41.577,16.891,41.577L16.891,41.577z M16.971,47.767v-2.763c1.145,0.018,1.725,0.432,1.725,1.229
c0,0.369-0.105,1.575-1.46,1.575C17.166,47.809,17.072,47.792,16.971,47.767L16.971,47.767z"/>
</g>
</g>
<g>
<path fill="#EBEBEB" d="M25.285,49.774v4.622h-1.817V42.577h1.817v5.013l3.978-5.013h1.977l-4.713,6.07l4.805,5.036v0.713h-1.725
L25.285,49.774z"/>
<g opacity="0.35">
<path d="M31.24,42.577l-4.713,6.07l4.805,5.036v0.713h-1.725l-4.322-4.622v4.622h-1.817V42.577h1.817v5.013l3.978-5.013H31.24
M33.283,41.577H31.24h-1.977H28.78l-0.3,0.378l-2.195,2.766v-2.144v-1h-1h-1.817h-1v1v11.819v1h1h1.817h1v-1v-2.089l2.592,2.771
l0.296,0.317h0.434h1.725h1v-1v-0.713v-0.4l-0.276-0.29l-4.21-4.413l4.185-5.39L33.283,41.577L33.283,41.577z"/>
</g>
</g>
<g>
<path fill="#EBEBEB" d="M32.83,42.577h6.484v1.472h-4.668v3.426h3.586v1.518h-3.586v3.887h4.875v1.518H32.83V42.577z"/>
<g opacity="0.35">
<path d="M39.314,42.577v1.472h-4.668v3.426h3.586v1.518h-3.586v3.887h4.875v1.518H32.83V42.577H39.314 M40.314,41.577h-1H32.83
h-1v1v11.819v1h1h6.691h1v-1v-1.518v-1h-1h-3.875v-1.887h2.586h1v-1v-1.518v-1h-1h-2.586v-1.426h3.668h1v-1v-1.472V41.577
L40.314,41.577z"/>
</g>
</g>
<g>
<path fill="#EBEBEB" d="M41.73,42.577h6.484v1.472h-4.668v3.426h3.588v1.518h-3.588v3.887h4.875v1.518H41.73V42.577z"/>
<g opacity="0.35">
<path d="M48.215,42.577v1.472h-4.668v3.426h3.588v1.518h-3.588v3.887h4.875v1.518H41.73V42.577H48.215 M49.215,41.577h-1H41.73
h-1v1v11.819v1h1h6.691h1v-1v-1.518v-1h-1h-3.875v-1.887h2.588h1v-1v-1.518v-1h-1h-2.588v-1.426h3.668h1v-1v-1.472V41.577
L49.215,41.577z"/>
</g>
</g>
<g>
<path fill="#EBEBEB" d="M53.943,50.258c-0.668,0-1.404-0.346-1.496-0.392v4.53h-1.816V42.577h2.736
c3.404,0,4.623,1.794,4.623,3.679c0,1.219-0.438,2.323-1.289,3.059C56.012,49.912,55.07,50.258,53.943,50.258z M52.447,44.003
v4.461c0,0,0.713,0.345,1.266,0.345c1.563,0,2.461-1.127,2.461-2.575c0-1.288-0.898-2.23-2.807-2.23H52.447z"/>
<g opacity="0.35">
<path d="M53.367,42.577c3.404,0,4.623,1.794,4.623,3.679c0,1.219-0.438,2.323-1.289,3.059c-0.689,0.598-1.631,0.943-2.758,0.943
c-0.668,0-1.404-0.346-1.496-0.392v4.53h-1.816V42.577H53.367 M53.713,48.809c1.563,0,2.461-1.127,2.461-2.575
c0-1.288-0.898-2.23-2.807-2.23h-0.92v4.461C52.447,48.464,53.16,48.809,53.713,48.809 M53.367,41.577h-2.736h-1v1v11.819v1h1
h1.816h1v-1v-3.178c0.162,0.024,0.329,0.039,0.496,0.039c1.336,0,2.517-0.411,3.413-1.188c1.053-0.91,1.634-2.265,1.634-3.814
C58.99,43.994,57.513,41.577,53.367,41.577L53.367,41.577z M53.447,47.767v-2.763c1.146,0.018,1.727,0.432,1.727,1.229
c0,0.369-0.105,1.575-1.461,1.575C53.643,47.809,53.549,47.792,53.447,47.767L53.447,47.767z"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -0,0 +1,749 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg5603"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_cleanup.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs5605">
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5601"
gradientUnits="userSpaceOnUse"
x1="395.53043"
y1="611.20276"
x2="395.53043"
y2="682.70667" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5599"
gradientUnits="userSpaceOnUse"
x1="406.30539"
y1="611.20276"
x2="406.30539"
y2="682.70667" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5597"
gradientUnits="userSpaceOnUse"
x1="438.18127"
y1="610.75385"
x2="438.18127"
y2="682.25769" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5595"
gradientUnits="userSpaceOnUse"
x1="427.40634"
y1="610.75385"
x2="424.43286"
y2="682.25769" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5593"
gradientUnits="userSpaceOnUse"
x1="416.63138"
y1="610.75385"
x2="416.63138"
y2="682.25769" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5591"
gradientUnits="userSpaceOnUse"
x1="385.20444"
y1="611.65173"
x2="385.20444"
y2="683.15558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5589"
gradientUnits="userSpaceOnUse"
x1="374.4295"
y1="611.65173"
x2="374.4295"
y2="683.15558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5587"
gradientUnits="userSpaceOnUse"
x1="361.40976"
y1="611.20276"
x2="361.40976"
y2="682.70667" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5585"
gradientUnits="userSpaceOnUse"
x1="349.73691"
y1="611.20276"
x2="349.73691"
y2="682.70667" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5583"
gradientUnits="userSpaceOnUse"
x1="332.0408"
y1="611.71985"
x2="332.0408"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5581"
gradientUnits="userSpaceOnUse"
x1="322.83875"
y1="611.71985"
x2="322.83875"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5579"
gradientUnits="userSpaceOnUse"
x1="300.60043"
y1="611.71985"
x2="300.60043"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5577"
gradientUnits="userSpaceOnUse"
x1="289.86472"
y1="611.71985"
x2="289.86472"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5575"
gradientUnits="userSpaceOnUse"
x1="269.1601"
y1="610.953"
x2="269.1601"
y2="682.45685" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5573"
gradientUnits="userSpaceOnUse"
x1="259.95804"
y1="610.953"
x2="259.95804"
y2="682.45685" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5571"
gradientUnits="userSpaceOnUse"
x1="339.70917"
y1="611.71985"
x2="339.70917"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5569"
gradientUnits="userSpaceOnUse"
x1="311.33618"
y1="611.71985"
x2="311.33618"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5567"
gradientUnits="userSpaceOnUse"
x1="277.59531"
y1="610.953"
x2="277.59531"
y2="682.45685" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5565"
gradientUnits="userSpaceOnUse"
x1="251.52283"
y1="611.71985"
x2="251.52283"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5563"
gradientUnits="userSpaceOnUse"
x1="240.02026"
y1="611.71985"
x2="240.02026"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5561"
gradientUnits="userSpaceOnUse"
x1="229.28452"
y1="611.71985"
x2="229.28452"
y2="683.22369" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5559"
gradientUnits="userSpaceOnUse"
x1="220.08247"
y1="610.953"
x2="220.08247"
y2="682.45691" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5557"
gradientUnits="userSpaceOnUse"
x1="208.5799"
y1="610.953"
x2="208.5799"
y2="682.45691" />
<linearGradient
id="linearGradient5329">
<stop
style="stop-color:#ffe680;stop-opacity:1;"
offset="0"
id="stop5331" />
<stop
style="stop-color:#ffc341;stop-opacity:1;"
offset="1"
id="stop5333" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5555"
gradientUnits="userSpaceOnUse"
x1="196.17035"
y1="611.30573"
x2="196.17035"
y2="679.24634" />
<linearGradient
id="linearGradient3197">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop3199" />
<stop
id="stop3205"
offset="0.39693579"
style="stop-color:#bf7d51;stop-opacity:1;" />
<stop
style="stop-color:#dfa27a;stop-opacity:1;"
offset="0.63405275"
id="stop3207" />
<stop
style="stop-color:#973c00;stop-opacity:1;"
offset="1"
id="stop3201" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3197"
id="linearGradient5553"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.6458849,0,0,0.9865768,-211.71948,8.0732737)"
x1="321.41293"
y1="612.16199"
x2="321.41293"
y2="590.72852" />
<linearGradient
id="linearGradient5272">
<stop
style="stop-color:#c87137;stop-opacity:1;"
offset="0"
id="stop5274" />
<stop
style="stop-color:#faf1eb;stop-opacity:1;"
offset="1"
id="stop5276" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5272"
id="linearGradient5551"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9977113,0,0,1.1799457,0.7341533,-111.29357)"
x1="339.84283"
y1="423.96219"
x2="266.61029"
y2="423.96219" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective5611" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5840"
gradientUnits="userSpaceOnUse"
x1="395.53043"
y1="611.20276"
x2="395.53043"
y2="682.70667"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5843"
gradientUnits="userSpaceOnUse"
x1="406.30539"
y1="611.20276"
x2="406.30539"
y2="682.70667"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5846"
gradientUnits="userSpaceOnUse"
x1="438.18127"
y1="610.75385"
x2="438.18127"
y2="682.25769"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5849"
gradientUnits="userSpaceOnUse"
x1="427.40634"
y1="610.75385"
x2="424.43286"
y2="682.25769"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5852"
gradientUnits="userSpaceOnUse"
x1="416.63138"
y1="610.75385"
x2="416.63138"
y2="682.25769"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5855"
gradientUnits="userSpaceOnUse"
x1="385.20444"
y1="611.65173"
x2="385.20444"
y2="683.15558"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5858"
gradientUnits="userSpaceOnUse"
x1="374.4295"
y1="611.65173"
x2="374.4295"
y2="683.15558"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5861"
gradientUnits="userSpaceOnUse"
x1="361.40976"
y1="611.20276"
x2="361.40976"
y2="682.70667"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5864"
gradientUnits="userSpaceOnUse"
x1="349.73691"
y1="611.20276"
x2="349.73691"
y2="682.70667"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5867"
gradientUnits="userSpaceOnUse"
x1="332.0408"
y1="611.71985"
x2="332.0408"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5870"
gradientUnits="userSpaceOnUse"
x1="322.83875"
y1="611.71985"
x2="322.83875"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5873"
gradientUnits="userSpaceOnUse"
x1="300.60043"
y1="611.71985"
x2="300.60043"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5876"
gradientUnits="userSpaceOnUse"
x1="289.86472"
y1="611.71985"
x2="289.86472"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5879"
gradientUnits="userSpaceOnUse"
x1="269.1601"
y1="610.953"
x2="269.1601"
y2="682.45685"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5882"
gradientUnits="userSpaceOnUse"
x1="259.95804"
y1="610.953"
x2="259.95804"
y2="682.45685"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5885"
gradientUnits="userSpaceOnUse"
x1="339.70917"
y1="611.71985"
x2="339.70917"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5888"
gradientUnits="userSpaceOnUse"
x1="311.33618"
y1="611.71985"
x2="311.33618"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5891"
gradientUnits="userSpaceOnUse"
x1="277.59531"
y1="610.953"
x2="277.59531"
y2="682.45685"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5894"
gradientUnits="userSpaceOnUse"
x1="251.52283"
y1="611.71985"
x2="251.52283"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5897"
gradientUnits="userSpaceOnUse"
x1="240.02026"
y1="611.71985"
x2="240.02026"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5900"
gradientUnits="userSpaceOnUse"
x1="229.28452"
y1="611.71985"
x2="229.28452"
y2="683.22369"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5903"
gradientUnits="userSpaceOnUse"
x1="220.08247"
y1="610.953"
x2="220.08247"
y2="682.45691"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5906"
gradientUnits="userSpaceOnUse"
x1="208.5799"
y1="610.953"
x2="208.5799"
y2="682.45691"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5329"
id="linearGradient5909"
gradientUnits="userSpaceOnUse"
x1="196.17035"
y1="611.30573"
x2="196.17035"
y2="679.24634"
gradientTransform="matrix(9.507719e-2,-9.507719e-2,9.507719e-2,9.507719e-2,-44.329294,16.35555)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3197"
id="linearGradient5912"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.2213048,0,0,0.1326546,-71.37835,-18.694896)"
x1="321.41293"
y1="612.16199"
x2="321.41293"
y2="590.72852" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5272"
id="linearGradient5917"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.1341517,0,0,0.1586549,-42.811951,-34.744896)"
x1="339.84283"
y1="423.96219"
x2="266.61029"
y2="423.96219" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.1172201"
inkscape:cx="-22.786837"
inkscape:cy="27.255752"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata5608">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<rect
style="fill:url(#linearGradient5917);fill-opacity:1.0;fill-rule:nonzero;stroke:#000000;stroke-width:0.14588976000000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2383"
width="4.9827776"
height="61.648746"
x="-2.2713048"
y="1.6943892"
ry="2.9464471"
transform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,0,0)" />
<path
style="fill:#ebcab5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 44.904132,41.323651 L 4.8565979,1.129034 C 4.8565979,1.129034 3.2946309,0.33074409 2.991018,0.73427166 C 2.4571168,1.4438736 45.452675,43.122386 45.452675,43.122386 C 45.452675,43.122386 45.67752,42.53682 44.904132,41.323651 z"
id="path3157"
sodipodi:nodetypes="ccscc" />
<path
style="fill:#ffe680;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 32.990203,51.516739 L 51.190377,33.316565 C 52.794548,31.712394 54.360316,30.695278 54.701069,31.036031 L 57.18543,33.520392 L 59.669792,36.004754 C 60.010545,36.345507 58.993429,37.911276 57.389258,39.515446 L 39.189084,57.71562 C 37.584914,59.319791 36.019144,60.336908 35.678391,59.996155 L 33.194029,57.511793 L 30.709668,55.027432 C 30.368915,54.686679 31.386032,53.12091 32.990203,51.516739 z"
id="rect3159"
sodipodi:nodetypes="ccccccccccc" />
<rect
style="fill:url(#linearGradient5912);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.17133911;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect3175"
width="34.587376"
height="2.7105932"
x="-17.541821"
y="59.73428"
ry="1.3552966"
rx="0.3055422"
transform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,0,0)" />
<path
style="fill:url(#linearGradient5909);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 31.986721,56.353875 L 33.04455,55.296047 C 33.04455,55.296047 37.94372,59.481767 39.509347,61.724389 C 39.768454,62.095537 39.363163,62.10712 39.24489,61.988847 L 39.016887,62.289758 L 38.916474,62.681805 C 39.094748,62.97744 38.34756,63.177813 38.378609,63.21967 C 38.378609,63.21967 37.318113,61.756505 36.807978,61.175132 C 36.358275,60.662631 35.683018,60.050172 35.200893,59.568047 C 34.718767,59.085921 34.075933,58.443087 33.593807,57.960961 C 33.111681,57.478835 31.986721,56.353875 31.986721,56.353875 z"
id="rect5280"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5906);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 33.133051,55.140476 L 34.19088,54.082647 C 34.19088,54.082647 39.09005,58.268367 40.655678,60.51099 C 40.914785,60.882138 40.509494,60.89372 40.39122,60.775447 L 40.163218,61.076358 L 40.062805,61.468405 C 40.241078,61.76404 39.49389,61.964413 39.52494,62.00627 C 39.52494,62.00627 38.464443,60.543105 37.954308,59.961732 C 37.504606,59.449231 36.829348,58.836772 36.347223,58.354647 C 35.865097,57.872521 35.222263,57.229687 34.740137,56.747562 C 34.258011,56.265436 33.133051,55.140476 33.133051,55.140476 z"
id="path5283"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5903);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 34.226684,54.046844 L 35.284512,52.989015 C 35.284512,52.989015 40.183682,57.174735 41.74931,59.417358 C 42.008417,59.788506 41.603126,59.800088 41.484852,59.681815 L 41.25685,59.982726 L 41.156437,60.374773 C 41.33471,60.670408 40.587522,60.870781 40.618572,60.912638 C 40.618572,60.912638 39.558075,59.449473 39.04794,58.8681 C 38.598238,58.355599 37.92298,57.74314 37.440855,57.261015 C 36.958729,56.778889 36.315895,56.136055 35.833769,55.653929 C 35.351643,55.171804 34.226684,54.046844 34.226684,54.046844 z"
id="path5285"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5900);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 35.174496,53.244846 L 36.232324,52.187017 C 36.232324,52.187017 41.131494,56.372737 42.697122,58.61536 C 42.956229,58.986508 42.550938,58.99809 42.432665,58.879817 L 42.204662,59.180728 L 42.104249,59.572775 C 42.282522,59.86841 41.535335,60.068783 41.566384,60.11064 C 41.566384,60.11064 40.505887,58.647475 39.995753,58.066102 C 39.54605,57.553601 38.870793,56.941142 38.388668,56.459017 C 37.906542,55.976891 37.263708,55.334058 36.781582,54.851932 C 36.299456,54.369806 35.174496,53.244846 35.174496,53.244846 z"
id="path5287"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5897);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 36.195221,52.224123 L 37.253049,51.166294 C 37.253049,51.166294 42.152219,55.352014 43.717847,57.594637 C 43.976954,57.965785 43.571663,57.977367 43.45339,57.859094 L 43.225387,58.160005 L 43.124974,58.552052 C 43.303247,58.847687 42.55606,59.04806 42.587109,59.089917 C 42.587109,59.089917 41.526612,57.626752 41.016477,57.045379 C 40.566775,56.532878 39.891518,55.920419 39.409392,55.438294 C 38.927267,54.956168 38.284433,54.313334 37.802307,53.831208 C 37.320181,53.349083 36.195221,52.224123 36.195221,52.224123 z"
id="path5289"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5894);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 37.288853,51.130491 L 38.346681,50.072662 C 38.346681,50.072662 43.245851,54.258382 44.811479,56.501005 C 45.070586,56.872153 44.665295,56.883735 44.547022,56.765462 L 44.319019,57.066373 L 44.218606,57.45842 C 44.396879,57.754055 43.649692,57.954428 43.680741,57.996285 C 43.680741,57.996285 42.620244,56.53312 42.11011,55.951747 C 41.660407,55.439246 40.98515,54.826787 40.503025,54.344662 C 40.020899,53.862536 39.378065,53.219702 38.895939,52.737576 C 38.413813,52.25545 37.288853,51.130491 37.288853,51.130491 z"
id="path5291"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5891);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 39.694842,48.578683 L 40.752671,47.520855 C 40.752671,47.520855 45.65184,51.706575 47.217468,53.949197 C 47.476575,54.320345 47.071284,54.331928 46.953011,54.213655 L 46.725008,54.514566 L 46.624595,54.906613 C 46.802869,55.202248 46.055681,55.402621 46.08673,55.444478 C 46.08673,55.444478 45.026233,53.981313 44.516099,53.39994 C 44.066396,52.887439 43.391139,52.27498 42.909014,51.792855 C 42.426888,51.310729 41.784054,50.667895 41.301928,50.185769 C 40.819802,49.703643 39.694842,48.578683 39.694842,48.578683 z"
id="path5293"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5888);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 42.975738,45.443605 L 44.033567,44.385776 C 44.033567,44.385776 48.932736,48.571497 50.498364,50.814119 C 50.757471,51.185267 50.35218,51.19685 50.233907,51.078576 L 50.005904,51.379488 L 49.905491,51.771535 C 50.083765,52.06717 49.336577,52.267542 49.367626,52.3094 C 49.367626,52.3094 48.30713,50.846234 47.796995,50.264862 C 47.347292,49.752361 46.672035,49.139902 46.18991,48.657777 C 45.707784,48.175651 45.06495,47.532817 44.582824,47.050691 C 44.100698,46.568565 42.975738,45.443605 42.975738,45.443605 z"
id="path5295"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5885);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 45.673363,42.74598 L 46.731192,41.688151 C 46.731192,41.688151 51.630362,45.873871 53.195989,48.116494 C 53.455096,48.487642 53.049805,48.499225 52.931532,48.380951 L 52.703529,48.681863 L 52.603116,49.07391 C 52.78139,49.369545 52.034202,49.569917 52.065251,49.611775 C 52.065251,49.611775 51.004755,48.148609 50.49462,47.567237 C 50.044917,47.054736 49.36966,46.442277 48.887535,45.960152 C 48.405409,45.478026 47.762575,44.835192 47.280449,44.353066 C 46.798323,43.87094 45.673363,42.74598 45.673363,42.74598 z"
id="path5297"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5882);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 38.01794,50.255585 L 39.075769,49.197757 C 39.075769,49.197757 43.974938,53.383477 45.540566,55.626099 C 45.799673,55.997248 45.394382,56.00883 45.276109,55.890557 L 45.048106,56.191468 L 44.947693,56.583515 C 45.125967,56.87915 44.378779,57.079523 44.409828,57.12138 C 44.409828,57.12138 43.349331,55.658215 42.839197,55.076842 C 42.389494,54.564341 41.714237,53.951882 41.232112,53.469757 C 40.749986,52.987631 40.107152,52.344797 39.625026,51.862671 C 39.1429,51.380545 38.01794,50.255585 38.01794,50.255585 z"
id="path5299"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5879);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 38.892845,49.38068 L 39.950674,48.322852 C 39.950674,48.322852 44.849843,52.508572 46.415471,54.751194 C 46.674578,55.122342 46.269287,55.133925 46.151014,55.015652 L 45.923011,55.316563 L 45.822598,55.70861 C 46.000872,56.004245 45.253684,56.204618 45.284733,56.246475 C 45.284733,56.246475 44.224236,54.78331 43.714102,54.201937 C 43.264399,53.689436 42.589142,53.076977 42.107017,52.594852 C 41.624891,52.112726 40.982057,51.469892 40.499931,50.987766 C 40.017805,50.50564 38.892845,49.38068 38.892845,49.38068 z"
id="path5301"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5876);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 40.934292,47.485051 L 41.992121,46.427223 C 41.992121,46.427223 46.89129,50.612943 48.456918,52.855565 C 48.716025,53.226713 48.310734,53.238296 48.192461,53.120023 L 47.964458,53.420934 L 47.864045,53.812981 C 48.042319,54.108616 47.295131,54.308988 47.32618,54.350846 C 47.32618,54.350846 46.265683,52.887681 45.755549,52.306308 C 45.305846,51.793807 44.630589,51.181348 44.148464,50.699223 C 43.666338,50.217097 43.023504,49.574263 42.541378,49.092137 C 42.059252,48.610011 40.934292,47.485051 40.934292,47.485051 z"
id="path5303"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5873);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 41.955014,46.464329 L 43.012843,45.4065 C 43.012843,45.4065 47.912012,49.59222 49.47764,51.834843 C 49.736747,52.205991 49.331456,52.217574 49.213183,52.0993 L 48.98518,52.400212 L 48.884767,52.792259 C 49.063041,53.087894 48.315853,53.288266 48.346902,53.330124 C 48.346902,53.330124 47.286406,51.866958 46.776271,51.285586 C 46.326568,50.773085 45.651311,50.160626 45.169186,49.678501 C 44.68706,49.196375 44.044226,48.553541 43.5621,48.071415 C 43.079974,47.589289 41.955014,46.464329 41.955014,46.464329 z"
id="path5305"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5870);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 44.069369,44.349974 L 45.127198,43.292145 C 45.127198,43.292145 50.026368,47.477865 51.591995,49.720488 C 51.851102,50.091636 51.445811,50.103219 51.327538,49.984945 L 51.099535,50.285857 L 50.999122,50.677904 C 51.177396,50.973539 50.430208,51.173911 50.461257,51.215769 C 50.461257,51.215769 49.400761,49.752603 48.890626,49.171231 C 48.440923,48.65873 47.765666,48.046271 47.283541,47.564146 C 46.801415,47.08202 46.158581,46.439186 45.676455,45.95706 C 45.194329,45.474934 44.069369,44.349974 44.069369,44.349974 z"
id="path5307"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5867);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 44.944275,43.475068 L 46.002104,42.417239 C 46.002104,42.417239 50.901274,46.602959 52.466901,48.845582 C 52.726008,49.21673 52.320717,49.228313 52.202444,49.110039 L 51.974441,49.410951 L 51.874028,49.802998 C 52.052302,50.098633 51.305114,50.299005 51.336163,50.340863 C 51.336163,50.340863 50.275667,48.877697 49.765532,48.296325 C 49.315829,47.783824 48.640572,47.171365 48.158447,46.68924 C 47.676321,46.207114 47.033487,45.56428 46.551361,45.082154 C 46.069235,44.600028 44.944275,43.475068 44.944275,43.475068 z"
id="path5309"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5864);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 46.577609,41.743411 L 47.635438,40.685582 C 47.635438,40.685582 52.534607,44.871302 54.100235,47.113925 C 54.359342,47.485073 53.954051,47.496656 53.835778,47.378382 L 53.607775,47.679294 L 53.507362,48.071341 C 53.685636,48.366976 52.938448,48.567348 52.969497,48.609206 C 52.969497,48.609206 51.909001,47.14604 51.398866,46.564668 C 50.949163,46.052167 50.273906,45.439708 49.791781,44.957583 C 49.309655,44.475457 48.666821,43.832623 48.184695,43.350497 C 47.702569,42.868371 46.577609,41.743411 46.577609,41.743411 z"
id="path5311"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5861);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 47.687432,40.633588 L 48.74526,39.57576 C 48.74526,39.57576 53.64443,43.76148 55.210058,46.004102 C 55.469165,46.37525 55.063874,46.386833 54.945601,46.26856 L 54.717598,46.569471 L 54.617185,46.961518 C 54.795458,47.257153 54.048271,47.457526 54.07932,47.499383 C 54.07932,47.499383 53.018823,46.036218 52.508688,45.454845 C 52.058986,44.942344 51.383729,44.329885 50.901603,43.84776 C 50.419478,43.365634 49.776644,42.7228 49.294518,42.240674 C 48.812392,41.758548 47.687432,40.633588 47.687432,40.633588 z"
id="path5313"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5858);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 48.967997,39.438395 L 50.025826,38.380566 C 50.025826,38.380566 54.924995,42.566286 56.490623,44.808909 C 56.74973,45.180057 56.344439,45.191639 56.226166,45.073366 L 55.998163,45.374278 L 55.89775,45.766325 C 56.076024,46.06196 55.328836,46.262332 55.359885,46.30419 C 55.359885,46.30419 54.299388,44.841024 53.789254,44.259652 C 53.339551,43.747151 52.664294,43.134692 52.182169,42.652567 C 51.700043,42.170441 51.057209,41.527607 50.575083,41.045481 C 50.092957,40.563355 48.967997,39.438395 48.967997,39.438395 z"
id="path5315"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5855);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 49.992449,38.413941 L 51.050278,37.356112 C 51.050278,37.356112 55.949447,41.541832 57.515075,43.784455 C 57.774182,44.155603 57.368891,44.167185 57.250618,44.048912 L 57.022615,44.349824 L 56.922202,44.741871 C 57.100476,45.037506 56.353288,45.237878 56.384337,45.279736 C 56.384337,45.279736 55.32384,43.81657 54.813706,43.235198 C 54.364003,42.722697 53.688746,42.110238 53.206621,41.628113 C 52.724495,41.145987 52.081661,40.503153 51.599535,40.021027 C 51.117409,39.538901 49.992449,38.413941 49.992449,38.413941 z"
id="path5317"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5852);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 52.895063,35.340587 L 53.952892,34.282758 C 53.952892,34.282758 58.852062,38.468478 60.417689,40.711101 C 60.676796,41.082249 60.271505,41.093831 60.153232,40.975558 L 59.925229,41.27647 L 59.824816,41.668517 C 60.00309,41.964152 59.255902,42.164524 59.286951,42.206382 C 59.286951,42.206382 58.226455,40.743216 57.71632,40.161844 C 57.266617,39.649343 56.59136,39.036884 56.109235,38.554759 C 55.627109,38.072633 54.984275,37.429799 54.502149,36.947673 C 54.020023,36.465547 52.895063,35.340587 52.895063,35.340587 z"
id="path5319"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5849);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 53.919514,34.316134 L 54.977343,33.258305 C 54.977343,33.258305 59.876513,37.444025 61.44214,39.686648 C 61.701248,40.057796 61.295956,40.069379 61.177683,39.951105 L 60.94968,40.252017 L 60.849267,40.644064 C 61.027541,40.939699 60.280353,41.140071 60.311402,41.181929 C 60.311402,41.181929 59.250906,39.718763 58.740771,39.137391 C 58.291068,38.62489 57.615811,38.012431 57.133686,37.530306 C 56.65156,37.04818 56.008726,36.405346 55.5266,35.92322 C 55.044474,35.441094 53.919514,34.316134 53.919514,34.316134 z"
id="path5321"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5846);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 54.943965,33.291683 L 56.001794,32.233854 C 56.001794,32.233854 60.900964,36.419574 62.466591,38.662197 C 62.725699,39.033345 62.320407,39.044927 62.202134,38.926654 L 61.974131,39.227566 L 61.873718,39.619613 C 62.051992,39.915248 61.304804,40.11562 61.335854,40.157478 C 61.335854,40.157478 60.275357,38.694312 59.765222,38.11294 C 59.315519,37.600439 58.640262,36.98798 58.158137,36.505855 C 57.676011,36.023729 57.033177,35.380895 56.551051,34.898769 C 56.068925,34.416643 54.943965,33.291683 54.943965,33.291683 z"
id="path5323"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5843);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 51.955981,36.365039 L 53.01381,35.30721 C 53.01381,35.30721 57.91298,39.49293 59.478607,41.735553 C 59.737714,42.106701 59.332423,42.118283 59.21415,42.00001 L 58.986147,42.300922 L 58.885734,42.692969 C 59.064008,42.988604 58.31682,43.188976 58.347869,43.230834 C 58.347869,43.230834 57.287373,41.767668 56.777238,41.186296 C 56.327535,40.673795 55.652278,40.061336 55.170153,39.579211 C 54.688027,39.097085 54.045193,38.454251 53.563067,37.972125 C 53.080941,37.489999 51.955981,36.365039 51.955981,36.365039 z"
id="path5325"
sodipodi:nodetypes="ccsccccsssc" />
<path
style="fill:url(#linearGradient5840);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.10165134;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 50.931529,37.389491 L 51.989358,36.331662 C 51.989358,36.331662 56.888528,40.517382 58.454155,42.760005 C 58.713262,43.131153 58.307971,43.142735 58.189698,43.024462 L 57.961695,43.325374 L 57.861282,43.717421 C 58.039556,44.013056 57.292368,44.213428 57.323417,44.255286 C 57.323417,44.255286 56.262921,42.79212 55.752786,42.210748 C 55.303083,41.698247 54.627826,41.085788 54.145701,40.603663 C 53.663575,40.121537 53.020741,39.478703 52.538615,38.996577 C 52.056489,38.514451 50.931529,37.389491 50.931529,37.389491 z"
id="path5327"
sodipodi:nodetypes="ccsccccsssc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 39 KiB

View file

@ -0,0 +1,162 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2508"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_phase_attacker.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs2510">
<linearGradient
id="linearGradient5717">
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="0"
id="stop5719" />
<stop
id="stop5727"
offset="0.25297618"
style="stop-color:#055897;stop-opacity:1;" />
<stop
id="stop5725"
offset="0.5"
style="stop-color:#00a4ff;stop-opacity:1;" />
<stop
id="stop5733"
offset="0.75"
style="stop-color:#055897;stop-opacity:1;" />
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="1"
id="stop5721" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient5723"
x1="339.93985"
y1="482.58844"
x2="459.27341"
y2="355.50766"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.1263349,-0.1263349,0,74.367722,-7.5042832)" />
<linearGradient
id="linearGradient3234">
<stop
style="stop-color:#6f6f6f;stop-opacity:1;"
offset="0"
id="stop3236" />
<stop
id="stop3242"
offset="0.47999999"
style="stop-color:#e6e6e6;stop-opacity:1;" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0.5"
id="stop3244" />
<stop
id="stop3286"
offset="0.75"
style="stop-color:#bebebe;stop-opacity:1;" />
<stop
style="stop-color:#494949;stop-opacity:1;"
offset="1"
id="stop3238" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient5120"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(8.9332267e-2,8.9332267e-2,8.9332267e-2,-8.9332267e-2,-16.525693,40.126552)"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2516" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient2540"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(8.9332267e-2,8.9332267e-2,8.9332267e-2,-8.9332267e-2,-16.525693,40.126552)"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient2542"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.1263349,-0.1263349,0,74.367722,-7.5042832)"
x1="339.93985"
y1="482.58844"
x2="459.27341"
y2="355.50766" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.5"
inkscape:cx="-40.818182"
inkscape:cy="32"
inkscape:current-layer="g2536"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata2513">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g2536"
transform="translate(-0.1818183,-3.0952293e-8)">
<path
id="path5116"
d="M 19.171407,40.786299 C 30.234301,31.241571 40.052824,21.097727 49.109567,10.848139 L 56.860088,7.3217298 L 53.333679,15.072251 C 41.728583,25.484502 32.940246,34.272839 23.395519,45.010411 L 19.171407,40.786299 z M 24.645705,39.536112 L 27.026109,38.450092 L 33.586428,30.59539 L 25.731726,37.155709 L 24.645705,39.536112 z"
style="fill:url(#linearGradient2540);fill-opacity:1;stroke:#000000;stroke-width:0.12633491;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccsccccccss"
id="path5118"
d="M 7.8194102,52.395498 C 12.873471,51.041266 17.927915,42.286993 17.927915,42.286993 C 17.927915,42.286993 16.799748,40.510421 15.777733,39.790457 C 14.755718,39.070494 11.11448,37.487234 11.11448,37.487234 L 15.622027,32.979687 C 19.276736,39.30983 24.814608,44.871954 31.202132,48.559792 L 26.694585,53.067339 C 26.694585,53.067339 25.207982,49.329444 24.488018,48.307428 C 23.768054,47.285413 21.894826,46.253904 21.894826,46.253904 C 21.894826,46.253904 13.138788,51.314932 11.786321,56.362409 C 11.350723,57.988079 6.1937392,52.831094 7.8194102,52.395498 z"
style="opacity:1;fill:url(#linearGradient2542);fill-opacity:1;stroke:#000000;stroke-width:0.12633491;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6 KiB

View file

@ -0,0 +1,181 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2564"
sodipodi:version="0.32"
inkscape:version="0.47 r22583"
sodipodi:docname="icon_phase_combat_blockers.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
enable-background="new"
version="1.1">
<defs
id="defs2566">
<linearGradient
id="linearGradient3630">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop3632" />
<stop
style="stop-color:#030000;stop-opacity:1;"
offset="1"
id="stop3634" />
</linearGradient>
<linearGradient
id="linearGradient4965">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop4967" />
<stop
style="stop-color:#a55d00;stop-opacity:1;"
offset="1"
id="stop4969" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4947">
<stop
style="stop-color:#aa4400;stop-opacity:1;"
offset="0"
id="stop4949" />
<stop
style="stop-color:#aa4400;stop-opacity:0;"
offset="1"
id="stop4951" />
</linearGradient>
<linearGradient
id="linearGradient4939">
<stop
style="stop-color:#c3c3c3;stop-opacity:1;"
offset="0"
id="stop4941" />
<stop
style="stop-color:#ffff00;stop-opacity:0;"
offset="1"
id="stop4943" />
</linearGradient>
<linearGradient
id="linearGradient4891">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop4893" />
<stop
style="stop-color:#7f7f7f;stop-opacity:1;"
offset="1"
id="stop4895" />
</linearGradient>
<linearGradient
id="linearGradient4879">
<stop
style="stop-color:#d2d2d2;stop-opacity:1;"
offset="0"
id="stop4881" />
<stop
style="stop-color:#d0d0d0;stop-opacity:1;"
offset="1"
id="stop4883" />
</linearGradient>
<linearGradient
id="linearGradient3370">
<stop
style="stop-color:#f2f500;stop-opacity:1;"
offset="0"
id="stop3372" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop3374" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2572" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4947"
id="linearGradient4953"
x1="31.990065"
y1="7.0514474"
x2="35.589882"
y2="26.218145"
gradientUnits="userSpaceOnUse" />
<inkscape:perspective
id="perspective2844"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3630"
id="linearGradient3636"
x1="21.405245"
y1="20.300596"
x2="45.166054"
y2="48.10812"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="7.7781746"
inkscape:cx="28.10927"
inkscape:cy="28.829322"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1223"
inkscape:window-height="725"
inkscape:window-x="51"
inkscape:window-y="25"
inkscape:window-maximized="0" />
<metadata
id="metadata2569">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
style="display:inline;">
<path
style="fill:#c6c6c6;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.88227361px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 9.9666404,9.0497401 C 23.769718,4.7254766 38.237751,3.6111036 54.063295,9.0497401 C 54.063295,9.0497401 54.836218,34.437061 50.529417,43.717664 C 47.404249,50.451998 31.938145,58.623196 31.938145,58.623196 C 31.938145,58.623196 16.472039,50.451998 13.346871,43.717664 C 9.0400713,34.437061 9.9666404,9.0497401 9.9666404,9.0497401 z"
id="rect2577"
sodipodi:nodetypes="ccscsc" />
<path
style="fill:url(#linearGradient3636);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.87598264000000003px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 11.327299,10.467021 C 24.277974,6.4097986 37.852541,5.364243 52.700788,10.467021 C 52.700788,10.467021 53.425979,34.286562 49.385142,42.994047 C 46.452968,49.312506 31.941964,56.979096 31.941964,56.979096 C 31.941964,56.979096 17.43096,49.312506 14.498785,42.994047 C 10.457949,34.286562 11.327299,10.467021 11.327299,10.467021 z"
id="path4899"
sodipodi:nodetypes="ccscsc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.9 KiB

View file

@ -0,0 +1,169 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg5128"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_phase_combat.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs5130">
<linearGradient
id="linearGradient5717">
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="0"
id="stop5719" />
<stop
id="stop5727"
offset="0.25297618"
style="stop-color:#055897;stop-opacity:1;" />
<stop
id="stop5725"
offset="0.5"
style="stop-color:#00a4ff;stop-opacity:1;" />
<stop
id="stop5733"
offset="0.75"
style="stop-color:#055897;stop-opacity:1;" />
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="1"
id="stop5721" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient5120"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7071068,-0.7071068,-0.7071068,-0.7071068,377.0204,719.46402)"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221" />
<linearGradient
id="linearGradient3234">
<stop
style="stop-color:#6f6f6f;stop-opacity:1;"
offset="0"
id="stop3236" />
<stop
id="stop3242"
offset="0.47999999"
style="stop-color:#e6e6e6;stop-opacity:1;" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0.5"
id="stop3244" />
<stop
id="stop3286"
offset="0.75"
style="stop-color:#bebebe;stop-opacity:1;" />
<stop
style="stop-color:#494949;stop-opacity:1;"
offset="1"
id="stop3238" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient5114"
gradientUnits="userSpaceOnUse"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221"
gradientTransform="matrix(-0.7071068,-0.7071068,0.7071068,-0.7071068,156.76864,718.23161)" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective5136" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient5723"
x1="339.93985"
y1="482.58844"
x2="459.27341"
y2="355.50766"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient5741"
x1="70.945976"
y1="357.84494"
x2="196.70493"
y2="480.64206"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="11.087072"
inkscape:cx="12.956872"
inkscape:cy="29.617085"
inkscape:current-layer="g5122"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata5133">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g5122"
transform="matrix(0.1263349,0,0,0.1263349,-1.139644,-10.328942)">
<path
style="fill:url(#linearGradient5114);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1"
d="M 151.54643,435.67232 C 227.09743,348.10432 307.39071,270.38611 388.52101,198.69774 L 416.43419,137.34873 L 355.08518,165.26191 C 272.66733,257.12169 203.10352,326.6855 118.1106,402.23649 L 151.54643,435.67232 z M 161.44224,392.34068 L 170.0386,373.49867 L 232.21225,321.57067 L 180.28425,383.74432 L 161.44224,392.34068 z"
id="rect2383" />
<path
style="opacity:1;fill:url(#linearGradient5741);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653384999999474;stroke-opacity:1"
d="M 59.65417,525.5287 C 70.373545,485.52344 139.66773,445.51514 139.66773,445.51514 C 139.66773,445.51514 153.73013,454.44511 159.42898,462.53484 C 165.12783,470.62457 177.66007,499.44668 177.66007,499.44668 L 213.33942,463.76733 C 163.23337,434.83859 119.20655,391.00374 90.015578,340.44349 L 54.336228,376.12284 C 54.336228,376.12284 83.923422,387.89 92.013155,393.58885 C 100.10289,399.2877 108.26777,414.11518 108.26777,414.11518 C 108.26777,414.11518 68.207351,483.42333 28.254209,494.12874 C 15.386263,497.5767 56.206215,538.39665 59.65417,525.5287 z"
id="rect2407"
sodipodi:nodetypes="ccsccccccss" />
<path
style="fill:url(#linearGradient5120);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1"
d="M 382.24261,436.90473 C 306.69161,349.33673 226.39833,271.61852 145.26803,199.93015 L 117.35485,138.58114 L 178.70386,166.49432 C 261.12171,258.3541 330.68552,327.91791 415.67844,403.4689 L 382.24261,436.90473 z M 372.3468,393.57309 L 363.75044,374.73108 L 301.57679,322.80308 L 353.50479,384.97673 L 372.3468,393.57309 z"
id="path5116" />
<path
style="opacity:1;fill:url(#linearGradient5723);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653384999999474;stroke-opacity:1"
d="M 474.13487,526.76111 C 463.41549,486.75585 394.12131,446.74755 394.12131,446.74755 C 394.12131,446.74755 380.05891,455.67752 374.36006,463.76725 C 368.66121,471.85698 356.12897,500.67909 356.12897,500.67909 L 320.44962,464.99974 C 370.55567,436.071 414.58249,392.23615 443.77346,341.6759 L 479.45281,377.35525 C 479.45281,377.35525 449.86561,389.12241 441.77588,394.82126 C 433.68615,400.52011 425.52127,415.34759 425.52127,415.34759 C 425.52127,415.34759 465.58168,484.65574 505.53483,495.36115 C 518.40277,498.80911 477.58282,539.62906 474.13487,526.76111 z"
id="path5118"
sodipodi:nodetypes="ccsccccccss" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.3 KiB

View file

@ -0,0 +1,253 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2564"
sodipodi:version="0.32"
inkscape:version="0.47 r22583"
sodipodi:docname="icon_phase_combat_end.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
enable-background="new"
version="1.1">
<defs
id="defs2566">
<linearGradient
id="linearGradient3629">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop3631" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop3633" />
</linearGradient>
<linearGradient
id="linearGradient5717">
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="0"
id="stop5719" />
<stop
id="stop5217"
offset="0.25"
style="stop-color:#055897;stop-opacity:1;" />
<stop
id="stop5725"
offset="0.5"
style="stop-color:#00a4ff;stop-opacity:1;" />
<stop
style="stop-color:#055897;stop-opacity:1;"
offset="0.75"
id="stop5215" />
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="1"
id="stop5721" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient2542"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.1263349,-0.1263349,0,74.367722,-7.5042832)"
x1="339.93985"
y1="482.58844"
x2="459.27341"
y2="355.50766" />
<linearGradient
id="linearGradient3234">
<stop
style="stop-color:#6f6f6f;stop-opacity:1;"
offset="0"
id="stop3236" />
<stop
id="stop3242"
offset="0.47999999"
style="stop-color:#e6e6e6;stop-opacity:1;" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0.5"
id="stop3244" />
<stop
id="stop3286"
offset="0.75"
style="stop-color:#bebebe;stop-opacity:1;" />
<stop
style="stop-color:#494949;stop-opacity:1;"
offset="1"
id="stop3238" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient2540"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(8.9332267e-2,8.9332267e-2,8.9332267e-2,-8.9332267e-2,-16.525693,40.126552)"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221" />
<linearGradient
id="linearGradient4965">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop4967" />
<stop
style="stop-color:#a55d00;stop-opacity:1;"
offset="1"
id="stop4969" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4947">
<stop
style="stop-color:#aa4400;stop-opacity:1;"
offset="0"
id="stop4949" />
<stop
style="stop-color:#aa4400;stop-opacity:0;"
offset="1"
id="stop4951" />
</linearGradient>
<linearGradient
id="linearGradient4939">
<stop
style="stop-color:#c3c3c3;stop-opacity:1;"
offset="0"
id="stop4941" />
<stop
style="stop-color:#ffff00;stop-opacity:0;"
offset="1"
id="stop4943" />
</linearGradient>
<linearGradient
id="linearGradient4891">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop4893" />
<stop
style="stop-color:#7f7f7f;stop-opacity:1;"
offset="1"
id="stop4895" />
</linearGradient>
<linearGradient
id="linearGradient4879">
<stop
style="stop-color:#d2d2d2;stop-opacity:1;"
offset="0"
id="stop4881" />
<stop
style="stop-color:#d0d0d0;stop-opacity:1;"
offset="1"
id="stop4883" />
</linearGradient>
<linearGradient
id="linearGradient3370">
<stop
style="stop-color:#f2f500;stop-opacity:1;"
offset="0"
id="stop3372" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop3374" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2572" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4947"
id="linearGradient4953"
x1="31.990065"
y1="7.0514474"
x2="35.589882"
y2="26.218145"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3629"
id="linearGradient3635"
x1="19.253855"
y1="10.606701"
x2="60.756615"
y2="56.979095"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="7.2452592"
inkscape:cx="27.17545"
inkscape:cy="31.677957"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1223"
inkscape:window-height="725"
inkscape:window-x="51"
inkscape:window-y="25"
inkscape:window-maximized="0" />
<metadata
id="metadata2569">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
style="display:inline;">
<path
style="fill:#c6c6c6;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.88227361px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 17.971875,9.0497399 c 13.803078,-4.3242635 28.271111,-5.4386365 44.096655,0 0,0 0.772923,25.3873211 -3.533878,34.6679241 -3.125168,6.734334 -18.591272,14.905532 -18.591272,14.905532 0,0 -15.466106,-8.171198 -18.591274,-14.905532 -4.3068,-9.280603 -3.380231,-34.6679241 -3.380231,-34.6679241 z"
id="rect2577"
sodipodi:nodetypes="ccscsc" />
<path
style="fill:url(#linearGradient3635);fill-opacity:1.0;fill-rule:evenodd;stroke:none"
d="m 19.332534,10.467021 c 12.950675,-4.0572226 26.525242,-5.1027782 41.373489,0 0,0 0.725191,23.819541 -3.315646,32.527026 -2.932174,6.318459 -17.443178,13.985049 -17.443178,13.985049 0,0 -14.511004,-7.66659 -17.443179,-13.985049 -4.040836,-8.707485 -3.171486,-32.527026 -3.171486,-32.527026 z"
id="path4899"
sodipodi:nodetypes="ccscsc" />
<g
id="g2536"
transform="matrix(-0.6586645,0.6586645,-0.6586645,-0.6586645,53.040738,30.874896)">
<path
id="path5116"
d="M 19.171407,40.786299 C 30.234301,31.241571 40.052824,21.097727 49.109567,10.848139 L 56.860088,7.3217298 L 53.333679,15.072251 C 41.728583,25.484502 32.940246,34.272839 23.395519,45.010411 L 19.171407,40.786299 z M 24.645705,39.536112 L 27.026109,38.450092 L 33.586428,30.59539 L 25.731726,37.155709 L 24.645705,39.536112 z"
style="fill:url(#linearGradient2540);fill-opacity:1;stroke:#000000;stroke-width:0.12633491;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccsccccccss"
id="path5118"
d="M 7.8194102,52.395498 C 12.873471,51.041266 17.927915,42.286993 17.927915,42.286993 C 17.927915,42.286993 16.799748,40.510421 15.777733,39.790457 C 14.755718,39.070494 11.11448,37.487234 11.11448,37.487234 L 15.622027,32.979687 C 19.276736,39.30983 24.814608,44.871954 31.202132,48.559792 L 26.694585,53.067339 C 26.694585,53.067339 25.207982,49.329444 24.488018,48.307428 C 23.768054,47.285413 21.894826,46.253904 21.894826,46.253904 C 21.894826,46.253904 13.138788,51.314932 11.786321,56.362409 C 11.350723,57.988079 6.1937392,52.831094 7.8194102,52.395498 z"
style="opacity:1;fill:url(#linearGradient2542);fill-opacity:1;stroke:#000000;stroke-width:0.12667845;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653384999999474;stroke-opacity:1" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9 KiB

View file

@ -0,0 +1,253 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2564"
sodipodi:version="0.32"
inkscape:version="0.47 r22583"
sodipodi:docname="icon_phase_combat_start.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
enable-background="new"
version="1.1">
<defs
id="defs2566">
<linearGradient
id="linearGradient3625">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop3627" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop3629" />
</linearGradient>
<linearGradient
id="linearGradient5717">
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="0"
id="stop5719" />
<stop
id="stop3194"
offset="0.25"
style="stop-color:#055897;stop-opacity:1;" />
<stop
id="stop5725"
offset="0.5"
style="stop-color:#00a4ff;stop-opacity:1;" />
<stop
style="stop-color:#055897;stop-opacity:1;"
offset="0.75"
id="stop3192" />
<stop
style="stop-color:#003580;stop-opacity:1;"
offset="1"
id="stop5721" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5717"
id="linearGradient2542"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.1263349,-0.1263349,0,74.367722,-7.5042832)"
x1="339.93985"
y1="482.58844"
x2="459.27341"
y2="355.50766" />
<linearGradient
id="linearGradient3234">
<stop
style="stop-color:#6f6f6f;stop-opacity:1;"
offset="0"
id="stop3236" />
<stop
id="stop3242"
offset="0.47999999"
style="stop-color:#e6e6e6;stop-opacity:1;" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0.5"
id="stop3244" />
<stop
id="stop3286"
offset="0.75"
style="stop-color:#bebebe;stop-opacity:1;" />
<stop
style="stop-color:#494949;stop-opacity:1;"
offset="1"
id="stop3238" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3234"
id="linearGradient2540"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(8.9332267e-2,8.9332267e-2,8.9332267e-2,-8.9332267e-2,-16.525693,40.126552)"
x1="202.99225"
y1="395.23221"
x2="251.27765"
y2="395.23221" />
<linearGradient
id="linearGradient4965">
<stop
style="stop-color:#803300;stop-opacity:1;"
offset="0"
id="stop4967" />
<stop
style="stop-color:#a55d00;stop-opacity:1;"
offset="1"
id="stop4969" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4947">
<stop
style="stop-color:#aa4400;stop-opacity:1;"
offset="0"
id="stop4949" />
<stop
style="stop-color:#aa4400;stop-opacity:0;"
offset="1"
id="stop4951" />
</linearGradient>
<linearGradient
id="linearGradient4939">
<stop
style="stop-color:#c3c3c3;stop-opacity:1;"
offset="0"
id="stop4941" />
<stop
style="stop-color:#ffff00;stop-opacity:0;"
offset="1"
id="stop4943" />
</linearGradient>
<linearGradient
id="linearGradient4891">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop4893" />
<stop
style="stop-color:#7f7f7f;stop-opacity:1;"
offset="1"
id="stop4895" />
</linearGradient>
<linearGradient
id="linearGradient4879">
<stop
style="stop-color:#d2d2d2;stop-opacity:1;"
offset="0"
id="stop4881" />
<stop
style="stop-color:#d0d0d0;stop-opacity:1;"
offset="1"
id="stop4883" />
</linearGradient>
<linearGradient
id="linearGradient3370">
<stop
style="stop-color:#f2f500;stop-opacity:1;"
offset="0"
id="stop3372" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop3374" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2572" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4947"
id="linearGradient4953"
x1="31.990065"
y1="7.0514474"
x2="35.589882"
y2="26.218145"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3625"
id="linearGradient3631"
x1="11.24862"
y1="10.529667"
x2="52.751381"
y2="56.979095"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="7.7781746"
inkscape:cx="23.751652"
inkscape:cy="31.764768"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1223"
inkscape:window-height="725"
inkscape:window-x="51"
inkscape:window-y="25"
inkscape:window-maximized="0" />
<metadata
id="metadata2569">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
style="display:inline;">
<path
style="fill:#c6c6c6;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.88227361px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 9.9666405,9.04974 C 23.769718,4.7254765 38.237751,3.6111035 54.063295,9.04974 C 54.063295,9.04974 54.836218,34.437061 50.529417,43.717664 C 47.404249,50.451998 31.938145,58.623196 31.938145,58.623196 C 31.938145,58.623196 16.472039,50.451998 13.346871,43.717664 C 9.0400714,34.437061 9.9666405,9.04974 9.9666405,9.04974 z"
id="rect2577"
sodipodi:nodetypes="ccscsc" />
<path
style="fill:url(#linearGradient3631);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.87598264000000003px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 11.327299,10.467021 C 24.277974,6.4097985 37.852541,5.3642429 52.700788,10.467021 C 52.700788,10.467021 53.425979,34.286562 49.385142,42.994047 C 46.452968,49.312506 31.941964,56.979096 31.941964,56.979096 C 31.941964,56.979096 17.43096,49.312506 14.498785,42.994047 C 10.457949,34.286562 11.327299,10.467021 11.327299,10.467021 z"
id="path4899"
sodipodi:nodetypes="ccscsc" />
<g
id="g2536"
transform="translate(-0.1818183,-3.0952293e-8)">
<path
id="path5116"
d="M 19.171407,40.786299 C 30.234301,31.241571 40.052824,21.097727 49.109567,10.848139 L 56.860088,7.3217298 L 53.333679,15.072251 C 41.728583,25.484502 32.940246,34.272839 23.395519,45.010411 L 19.171407,40.786299 z M 24.645705,39.536112 L 27.026109,38.450092 L 33.586428,30.59539 L 25.731726,37.155709 L 24.645705,39.536112 z"
style="fill:url(#linearGradient2540);fill-opacity:1;stroke:#000000;stroke-width:0.12633491;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccsccccccss"
id="path5118"
d="M 7.8194102,52.395498 C 12.873471,51.041266 17.927915,42.286993 17.927915,42.286993 C 17.927915,42.286993 16.799748,40.510421 15.777733,39.790457 C 14.755718,39.070494 11.11448,37.487234 11.11448,37.487234 L 15.622027,32.979687 C 19.276736,39.30983 24.814608,44.871954 31.202132,48.559792 L 26.694585,53.067339 C 26.694585,53.067339 25.207982,49.329444 24.488018,48.307428 C 23.768054,47.285413 21.894826,46.253904 21.894826,46.253904 C 21.894826,46.253904 13.138788,51.314932 11.786321,56.362409 C 11.350723,57.988079 6.1937392,52.831094 7.8194102,52.395498 z"
style="opacity:1;fill:url(#linearGradient2542);fill-opacity:1;stroke:#000000;stroke-width:0.12633491;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 29 KiB

View file

@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2385"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_mainphase1.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs2387">
<linearGradient
id="linearGradient3177">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3179" />
<stop
style="stop-color:#0044aa;stop-opacity:0;"
offset="1"
id="stop3181" />
</linearGradient>
<linearGradient
id="linearGradient3167">
<stop
style="stop-color:#0044aa;stop-opacity:1;"
offset="0"
id="stop3169" />
<stop
style="stop-color:#00122f;stop-opacity:1;"
offset="1"
id="stop3171" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2393" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3167"
id="linearGradient3173"
x1="31.09091"
y1="5.2455459"
x2="31.09091"
y2="62.754456"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3177"
id="linearGradient3183"
x1="38.090908"
y1="12.35777"
x2="38.090908"
y2="33.096775"
gradientUnits="userSpaceOnUse" />
<filter
inkscape:collect="always"
id="filter3193">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.15669667"
id="feGaussianBlur3195" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.5"
inkscape:cx="12.016282"
inkscape:cy="30.70745"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata2390">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
sodipodi:type="arc"
style="fill:url(#linearGradient3173);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.41800001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path2395"
sodipodi:cx="31.09091"
sodipodi:cy="34"
sodipodi:rx="28.545454"
sodipodi:ry="28.545454"
d="M 59.636364,34 A 28.545454,28.545454 0 1 1 2.5454559,34 A 28.545454,28.545454 0 1 1 59.636364,34 z"
transform="translate(0.90909,-2)" />
<path
sodipodi:type="arc"
style="fill:url(#linearGradient3183);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.41800001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3193)"
id="path3175"
sodipodi:cx="38.090908"
sodipodi:cy="22.727272"
sodipodi:rx="22.272728"
sodipodi:ry="10.181818"
d="M 60.363636,22.727272 A 22.272728,10.181818 0 1 1 15.81818,22.727272 A 22.272728,10.181818 0 1 1 60.363636,22.727272 z"
transform="matrix(0.8292896,0,0,1.0283566,0.4116061,-8.3717394)" />
<path
style="font-size:72px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:URW Chancery L;-inkscape-font-specification:URW Chancery L Bold Italic"
d="M 17.407273,50.18182 L 21.943273,50.18182 C 21.943273,50.18182 29.791273,50.10982 29.791273,50.10982 C 29.791273,50.10982 38.071273,50.18182 38.071273,50.18182 L 41.023273,50.18182 L 42.751273,48.23782 C 40.591275,48.16582 36.703272,47.73382 35.335273,47.44582 C 34.183274,47.15782 33.463273,46.365819 33.463273,45.28582 C 33.463273,44.493821 33.607273,43.413819 33.967273,42.26182 C 34.183273,41.397821 34.903274,38.085815 35.983273,33.04582 C 39.07927,19.437834 40.735274,12.597816 41.887273,8.2778199 L 39.439273,9.5738199 C 34.471278,12.237817 34.327271,12.309821 32.023273,13.38982 C 30.655274,14.037819 28.27927,15.045821 24.967273,16.55782 L 27.127273,17.63782 C 28.855271,17.06182 29.719274,16.701819 31.015273,16.19782 L 33.175273,15.33382 C 33.463273,15.18982 34.111274,14.97382 35.191273,14.61382 L 28.351273,44.06182 C 27.631274,47.085817 27.559271,47.22982 25.255273,47.51782 C 22.231276,47.87782 20.287272,48.09382 19.495273,48.23782 L 17.407273,50.18182"
id="text3217" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

View file

@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2385"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_mainphase2.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs2387">
<linearGradient
id="linearGradient3177">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3179" />
<stop
style="stop-color:#0044aa;stop-opacity:0;"
offset="1"
id="stop3181" />
</linearGradient>
<linearGradient
id="linearGradient3167">
<stop
style="stop-color:#0044aa;stop-opacity:1;"
offset="0"
id="stop3169" />
<stop
style="stop-color:#00122f;stop-opacity:1;"
offset="1"
id="stop3171" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2393" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3167"
id="linearGradient3173"
x1="31.09091"
y1="5.2455459"
x2="31.09091"
y2="62.754456"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3177"
id="linearGradient3183"
x1="38.090908"
y1="12.35777"
x2="38.090908"
y2="33.096775"
gradientUnits="userSpaceOnUse" />
<filter
inkscape:collect="always"
id="filter3193">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.15669667"
id="feGaussianBlur3195" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.5"
inkscape:cx="12.016282"
inkscape:cy="30.70745"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata2390">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
sodipodi:type="arc"
style="fill:url(#linearGradient3173);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.41800001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path2395"
sodipodi:cx="31.09091"
sodipodi:cy="34"
sodipodi:rx="28.545454"
sodipodi:ry="28.545454"
d="M 59.636364,34 A 28.545454,28.545454 0 1 1 2.5454559,34 A 28.545454,28.545454 0 1 1 59.636364,34 z"
transform="translate(0.90909,-2)" />
<path
sodipodi:type="arc"
style="fill:url(#linearGradient3183);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.41800001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3193)"
id="path3175"
sodipodi:cx="38.090908"
sodipodi:cy="22.727272"
sodipodi:rx="22.272728"
sodipodi:ry="10.181818"
d="M 60.363636,22.727272 A 22.272728,10.181818 0 1 1 15.81818,22.727272 A 22.272728,10.181818 0 1 1 60.363636,22.727272 z"
transform="matrix(0.8292896,0,0,1.0283566,0.4116061,-8.3717394)" />
<path
style="font-size:72px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:URW Chancery L;-inkscape-font-specification:URW Chancery L Bold Italic"
d="M 15.175273,51.40582 C 18.27127,48.021823 19.135275,47.44582 20.935273,47.44582 C 21.655272,47.44582 22.591274,47.58982 23.743273,47.87782 C 29.071268,49.101819 36.127274,50.39782 37.279273,50.39782 C 37.855272,50.39782 38.215274,50.32582 38.935273,50.03782 L 45.271273,40.53382 L 44.695273,38.87782 C 40.087278,44.709814 39.583271,45.21382 37.639273,45.21382 C 37.279273,45.21382 36.775272,45.14182 36.127273,44.99782 C 31.159278,44.133821 26.839269,43.485819 23.239273,42.90982 L 32.095273,34.70182 L 38.503273,28.72582 L 42.103273,25.34182 C 44.191271,22.173823 45.055273,19.725817 45.055273,16.55782 C 45.055273,11.949825 42.103269,8.9978199 37.639273,8.9978199 C 33.967277,8.9978199 30.15127,10.365822 27.199273,12.81382 C 24.607276,14.829818 23.239273,17.421823 23.239273,20.37382 C 23.239273,20.949819 23.311273,21.309821 23.455273,22.10182 L 28.567273,22.67782 C 27.919274,20.733822 27.703273,19.725819 27.703273,18.42982 C 27.703273,14.469824 30.079277,11.87782 33.679273,11.87782 C 37.06327,11.87782 39.511273,14.829824 39.511273,18.93382 C 39.511273,21.165818 38.791272,23.685822 37.639273,25.48582 C 36.127275,27.933817 34.327267,29.877825 28.783273,35.06182 C 19.495282,43.773811 18.415269,44.853824 14.887273,49.31782 L 15.175273,51.40582"
id="text3217" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

View file

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg3167"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_nextTurn.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs3169">
<linearGradient
id="linearGradient3159">
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="0"
id="stop3161" />
<stop
style="stop-color:#870000;stop-opacity:1;"
offset="1"
id="stop3163" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3159"
id="linearGradient3165"
x1="460.92261"
y1="383.05679"
x2="144.23897"
y2="474.24744"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.2002403,0,0,0.2002403,-29.54275,-55.059863)" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective3175" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="6.4785302"
inkscape:cx="71.431122"
inkscape:cy="35.114322"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata3172">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
style="fill:url(#linearGradient3165);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30036047;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 29.130932,18.753217 C 20.744599,18.686709 11.651606,23.163902 1.3976484,34.253068 L 3.7535432,38.873766 C 29.306087,10.191947 44.263934,30.067613 51.933109,37.746086 C 50.522291,38.573832 48.464685,38.467536 46.274272,38.998726 C 51.42154,40.570478 56.687692,42.488294 61.676216,44.630089 C 60.792534,39.544838 59.481746,34.617053 58.935262,29.103904 C 58.378905,31.662724 57.62115,32.32038 56.582628,34.559687 C 47.924709,25.228354 39.020111,18.831643 29.130932,18.753217 z"
id="path2383"
sodipodi:nodetypes="ccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 28 KiB

View file

@ -0,0 +1,159 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg3319"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="icon_upkeep.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs3321">
<linearGradient
inkscape:collect="always"
id="linearGradient3307">
<stop
style="stop-color:#808080;stop-opacity:1;"
offset="0"
id="stop3309" />
<stop
style="stop-color:#808080;stop-opacity:0;"
offset="1"
id="stop3311" />
</linearGradient>
<linearGradient
id="linearGradient3297">
<stop
style="stop-color:#808080;stop-opacity:1;"
offset="0"
id="stop3299" />
<stop
style="stop-color:#e8e8e8;stop-opacity:1;"
offset="1"
id="stop3301" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective3327" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3297"
id="linearGradient3344"
gradientUnits="userSpaceOnUse"
x1="274.50203"
y1="427.10938"
x2="481.21672"
y2="427.10938" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3307"
id="linearGradient3346"
gradientUnits="userSpaceOnUse"
x1="395.91437"
y1="519.13428"
x2="360.02484"
y2="519.13428" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3297"
id="linearGradient3926"
gradientUnits="userSpaceOnUse"
x1="274.50203"
y1="427.10938"
x2="481.21672"
y2="427.10938" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3307"
id="linearGradient3928"
gradientUnits="userSpaceOnUse"
x1="395.91437"
y1="519.13428"
x2="360.02484"
y2="519.13428" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3307"
id="linearGradient3931"
gradientUnits="userSpaceOnUse"
x1="395.91437"
y1="519.13428"
x2="360.02484"
y2="519.13428"
gradientTransform="matrix(0.1340241,0,0,0.1340241,-5.388189,-54.63095)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3297"
id="linearGradient3934"
gradientUnits="userSpaceOnUse"
x1="274.50204"
y1="427.10938"
x2="481.21671"
y2="427.10938"
gradientTransform="matrix(9.476938e-2,9.476938e-2,-9.476938e-2,9.476938e-2,34.81989,-42.43994)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="10.614848"
inkscape:cx="40.777992"
inkscape:cy="30.845103"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="949"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata3324">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
style="fill:url(#linearGradient3934);fill-opacity:1.0;stroke:#000000;stroke-width:0.16698611999999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385000000185;stroke-opacity:1"
d="M 52.772764,3.4047476 C 47.84595,1.474827 42.046422,2.4803794 38.086472,6.4403293 C 33.902475,10.624326 33.011815,16.866643 35.403314,21.958815 C 35.37805,21.983383 35.351338,22.004868 35.326314,22.029892 L 4.4611114,52.895095 C 2.1557088,55.200497 1.7831477,58.539073 3.6229947,60.378914 C 5.462838,62.218757 8.798451,61.843238 11.103853,59.537836 L 41.969055,28.672634 C 41.994066,28.647623 42.018538,28.623844 42.043094,28.598595 C 47.134477,30.989307 53.374621,30.096472 57.558618,25.912475 C 61.518861,21.952234 62.524694,16.153234 60.5942,11.226183 L 51.875417,19.944966 C 51.22515,20.595238 50.308186,20.723277 49.820106,20.235197 L 43.76375,14.178841 C 43.27567,13.690763 43.403714,12.773798 44.053981,12.123531 L 52.772764,3.4047476 z"
id="path2383" />
<rect
style="fill:url(#linearGradient3931);fill-opacity:1;stroke:#000000;stroke-width:0.13748859;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:60.01653385;stroke-opacity:1"
id="rect3305"
width="4.6725717"
height="43.171928"
x="42.932579"
y="-6.640388"
ry="2.4622774"
transform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,0,0)" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Schattierung" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.7 KiB

View file

@ -26,6 +26,7 @@ AbstractCardItem::AbstractCardItem(const QString &_name, Player *_owner, QGraphi
AbstractCardItem::~AbstractCardItem()
{
qDebug() << "AbstractCardItem destructor:" << name;
emit deleteCardInfoPopup(name);
}
QRectF AbstractCardItem::boundingRect() const
@ -157,6 +158,10 @@ void AbstractCardItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *
void AbstractCardItem::setName(const QString &_name)
{
if (name == _name)
return;
emit deleteCardInfoPopup(name);
disconnect(info, 0, this, 0);
name = _name;
info = db->getCard(name);
@ -213,7 +218,7 @@ void AbstractCardItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
void AbstractCardItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
if (event->button() == Qt::MidButton)
emit deleteCardInfoPopup();
emit deleteCardInfoPopup(name);
// This function ensures the parent function doesn't mess around with our selection.
event->accept();

View file

@ -30,7 +30,7 @@ private slots:
signals:
void hovered(AbstractCardItem *card);
void showCardInfoPopup(QPoint pos, QString cardName);
void deleteCardInfoPopup();
void deleteCardInfoPopup(QString cardName);
public:
enum { Type = typeCard };
int type() const { return Type; }
@ -50,6 +50,7 @@ public:
bool getTapped() const { return tapped; }
void setTapped(bool _tapped, bool canAnimate = false);
void processHoverEvent();
void deleteCardInfoPopup() { emit deleteCardInfoPopup(name); }
protected:
QSizeF getTranslatedSize(QPainter *painter) const;
void transformPainter(QPainter *painter, const QSizeF &translatedSize, int angle);

View file

@ -32,15 +32,16 @@ void AbstractClient::processProtocolItem(ProtocolItem *item)
GenericEvent *genericEvent = qobject_cast<GenericEvent *>(item);
if (genericEvent) {
switch (genericEvent->getItemId()) {
case ItemId_Event_ConnectionClosed: emit connectionClosedEventReceived(qobject_cast<Event_ConnectionClosed *>(item)); break;
case ItemId_Event_AddToList: emit addToListEventReceived(qobject_cast<Event_AddToList *>(item)); break;
case ItemId_Event_RemoveFromList: emit removeFromListEventReceived(qobject_cast<Event_RemoveFromList *>(item)); break;
case ItemId_Event_UserJoined: emit userJoinedEventReceived(qobject_cast<Event_UserJoined *>(item)); break;
case ItemId_Event_UserLeft: emit userLeftEventReceived(qobject_cast<Event_UserLeft *>(item)); break;
case ItemId_Event_ServerMessage: emit serverMessageEventReceived(qobject_cast<Event_ServerMessage *>(item)); break;
case ItemId_Event_ListRooms: emit listRoomsEventReceived(qobject_cast<Event_ListRooms *>(item)); break;
case ItemId_Event_GameJoined: emit gameJoinedEventReceived(qobject_cast<Event_GameJoined *>(item)); break;
case ItemId_Event_Message: emit messageEventReceived(qobject_cast<Event_Message *>(item)); break;
case ItemId_Event_ConnectionClosed: emit connectionClosedEventReceived(static_cast<Event_ConnectionClosed *>(item)); break;
case ItemId_Event_ServerShutdown: emit serverShutdownEventReceived(static_cast<Event_ServerShutdown *>(item)); break;
case ItemId_Event_AddToList: emit addToListEventReceived(static_cast<Event_AddToList *>(item)); break;
case ItemId_Event_RemoveFromList: emit removeFromListEventReceived(static_cast<Event_RemoveFromList *>(item)); break;
case ItemId_Event_UserJoined: emit userJoinedEventReceived(static_cast<Event_UserJoined *>(item)); break;
case ItemId_Event_UserLeft: emit userLeftEventReceived(static_cast<Event_UserLeft *>(item)); break;
case ItemId_Event_ServerMessage: emit serverMessageEventReceived(static_cast<Event_ServerMessage *>(item)); break;
case ItemId_Event_ListRooms: emit listRoomsEventReceived(static_cast<Event_ListRooms *>(item)); break;
case ItemId_Event_GameJoined: emit gameJoinedEventReceived(static_cast<Event_GameJoined *>(item)); break;
case ItemId_Event_Message: emit messageEventReceived(static_cast<Event_Message *>(item)); break;
}
if (genericEvent->getReceiverMayDelete())
delete genericEvent;

View file

@ -21,6 +21,7 @@ class Event_ListRooms;
class Event_GameJoined;
class Event_Message;
class Event_ConnectionClosed;
class Event_ServerShutdown;
enum ClientStatus {
StatusDisconnected,
@ -43,6 +44,7 @@ signals:
void gameEventContainerReceived(GameEventContainer *event);
// Generic events
void connectionClosedEventReceived(Event_ConnectionClosed *event);
void serverShutdownEventReceived(Event_ServerShutdown *event);
void addToListEventReceived(Event_AddToList *event);
void removeFromListEventReceived(Event_RemoveFromList *event);
void userJoinedEventReceived(Event_UserJoined *event);

View file

@ -172,8 +172,7 @@ void CardInfoWidget::resizeEvent(QResizeEvent * /*event*/)
}
}
void CardInfoWidget::mouseReleaseEvent(QMouseEvent *event)
QString CardInfoWidget::getCardName() const
{
if ((event->button() == Qt::MidButton) && (mode == ModePopUp))
emit mouseReleased();
}
return nameLabel2->text();
}

View file

@ -39,6 +39,7 @@ private:
public:
CardInfoWidget(ResizeMode _mode, QWidget *parent = 0, Qt::WindowFlags f = 0);
void retranslateUi();
QString getCardName() const;
public slots:
void setCard(CardInfo *card);
@ -50,12 +51,8 @@ private slots:
void updatePixmap();
void minimizeClicked(int newMinimized);
signals:
void mouseReleased();
protected:
void resizeEvent(QResizeEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
};
#endif

View file

@ -34,6 +34,8 @@ CardItem::CardItem(Player *_owner, const QString &_name, int _cardid, bool _reve
connect(aAttach, SIGNAL(triggered()), this, SLOT(actAttach()));
aUnattach = new QAction(this);
connect(aUnattach, SIGNAL(triggered()), this, SLOT(actUnattach()));
aDrawArrow = new QAction(this);
connect(aDrawArrow, SIGNAL(triggered()), this, SLOT(actDrawArrow()));
aIncP = new QAction(this);
connect(aIncP, SIGNAL(triggered()), this, SLOT(actIncP()));
aDecP = new QAction(this);
@ -172,6 +174,7 @@ void CardItem::updateCardMenu()
cardMenu->addAction(aAttach);
if (attachedTo)
cardMenu->addAction(aUnattach);
cardMenu->addAction(aDrawArrow);
cardMenu->addSeparator();
cardMenu->addMenu(ptMenu);
cardMenu->addAction(aSetAnnotation);
@ -186,6 +189,9 @@ void CardItem::updateCardMenu()
cardMenu->addAction(aSetCounter[i]);
}
cardMenu->addSeparator();
} else if (zone->getName() == "stack") {
cardMenu->addAction(aDrawArrow);
cardMenu->addMenu(moveMenu);
} else {
cardMenu->addAction(aPlay);
cardMenu->addMenu(moveMenu);
@ -209,6 +215,7 @@ void CardItem::retranslateUi()
aAttach->setText(tr("&Attach to card..."));
aAttach->setShortcut(tr("Ctrl+A"));
aUnattach->setText(tr("Unattac&h"));
aDrawArrow->setText(tr("&Draw arrow..."));
ptMenu->setTitle(tr("&Power / toughness"));
aIncP->setText(tr("&Increase power"));
aIncP->setShortcut(tr("Ctrl++"));
@ -399,13 +406,35 @@ void CardItem::deleteDragItem()
dragItem = NULL;
}
void CardItem::drawArrow(const QColor &arrowColor)
{
if (static_cast<TabGame *>(owner->parent())->getSpectator())
return;
Player *arrowOwner = static_cast<TabGame *>(owner->parent())->getActiveLocalPlayer();
ArrowDragItem *arrow = new ArrowDragItem(arrowOwner, this, arrowColor);
scene()->addItem(arrow);
arrow->grabMouse();
QListIterator<QGraphicsItem *> itemIterator(scene()->selectedItems());
while (itemIterator.hasNext()) {
CardItem *c = qgraphicsitem_cast<CardItem *>(itemIterator.next());
if (!c || (c == this))
continue;
if (c->getZone() != zone)
continue;
ArrowDragItem *childArrow = new ArrowDragItem(arrowOwner, c, arrowColor);
scene()->addItem(childArrow);
arrow->addChildArrow(childArrow);
}
}
void CardItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
if (event->buttons().testFlag(Qt::RightButton)) {
if ((event->screenPos() - event->buttonDownScreenPos(Qt::RightButton)).manhattanLength() < 2 * QApplication::startDragDistance())
return;
if (static_cast<TabGame *>(owner->parent())->getSpectator())
return;
QColor arrowColor = Qt::red;
if (event->modifiers().testFlag(Qt::ControlModifier))
@ -415,23 +444,7 @@ void CardItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
else if (event->modifiers().testFlag(Qt::ShiftModifier))
arrowColor = Qt::green;
Player *arrowOwner = static_cast<TabGame *>(owner->parent())->getActiveLocalPlayer();
ArrowDragItem *arrow = new ArrowDragItem(arrowOwner, this, arrowColor);
scene()->addItem(arrow);
arrow->grabMouse();
QListIterator<QGraphicsItem *> itemIterator(scene()->selectedItems());
while (itemIterator.hasNext()) {
CardItem *c = qgraphicsitem_cast<CardItem *>(itemIterator.next());
if (!c || (c == this))
continue;
if (c->getZone() != zone)
continue;
ArrowDragItem *childArrow = new ArrowDragItem(arrowOwner, c, arrowColor);
scene()->addItem(childArrow);
arrow->addChildArrow(childArrow);
}
drawArrow(arrowColor);
} else if (event->buttons().testFlag(Qt::LeftButton)) {
if ((event->screenPos() - event->buttonDownScreenPos(Qt::LeftButton)).manhattanLength() < 2 * QApplication::startDragDistance())
return;
@ -547,6 +560,11 @@ void CardItem::actUnattach()
owner->actUnattach(static_cast<QAction *>(sender()));
}
void CardItem::actDrawArrow()
{
drawArrow(Qt::red);
}
void CardItem::actIncP()
{
owner->actIncPT(1, 0);

View file

@ -9,6 +9,7 @@ class CardZone;
class ServerInfo_Card;
class Player;
class QAction;
class QColor;
const int MAX_COUNTERS_ON_CARD = 999;
@ -33,17 +34,19 @@ private:
QList<QAction *> aAddCounter, aSetCounter, aRemoveCounter;
QAction *aPlay,
*aHide,
*aTap, *aUntap, *aDoesntUntap, *aAttach, *aUnattach, *aSetPT, *aIncP, *aDecP, *aIncT, *aDecT, *aIncPT, *aDecPT, *aSetAnnotation, *aFlip, *aClone,
*aTap, *aUntap, *aDoesntUntap, *aAttach, *aUnattach, *aDrawArrow, *aSetPT, *aIncP, *aDecP, *aIncT, *aDecT, *aIncPT, *aDecPT, *aSetAnnotation, *aFlip, *aClone,
*aMoveToTopLibrary, *aMoveToBottomLibrary, *aMoveToGraveyard, *aMoveToExile;
QMenu *cardMenu, *ptMenu, *moveMenu;
void playCard(bool faceDown);
void drawArrow(const QColor &arrowColor);
void prepareDelete();
private slots:
void cardMenuAction();
void actCardCounterTrigger();
void actAttach();
void actUnattach();
void actDrawArrow();
void actSetPT();
void actIncP();
void actDecP();

View file

@ -1,35 +1,73 @@
#include <QTextEdit>
#include <QDateTime>
#include <QTextTable>
#include <QScrollBar>
#include <QMouseEvent>
#include <QDesktopServices>
#include "chatview.h"
ChatView::ChatView(const QString &_ownName, QWidget *parent)
: QTextEdit(parent), ownName(_ownName)
ChatView::ChatView(const QString &_ownName, bool _showTimestamps, QWidget *parent)
: QTextBrowser(parent), evenNumber(true), ownName(_ownName), showTimestamps(_showTimestamps)
{
setTextInteractionFlags(Qt::TextSelectableByMouse);
setReadOnly(true);
setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::LinksAccessibleByMouse);
setOpenLinks(false);
connect(this, SIGNAL(anchorClicked(const QUrl &)), this, SLOT(openLink(const QUrl &)));
}
void ChatView::appendMessage(QString sender, const QString &message)
QTextCursor ChatView::prepareBlock(bool same)
{
lastSender.clear();
QTextCursor cursor(document()->lastBlock());
cursor.movePosition(QTextCursor::End);
if (!same) {
QTextBlockFormat blockFormat;
if ((evenNumber = !evenNumber))
blockFormat.setBackground(palette().alternateBase());
blockFormat.setBottomMargin(2);
cursor.insertBlock(blockFormat);
} else
cursor.insertHtml("<br>");
QTextBlockFormat blockFormat;
blockFormat.setBottomMargin(3);
cursor.insertBlock(blockFormat);
return cursor;
}
void ChatView::appendHtml(const QString &html)
{
prepareBlock().insertHtml(html);
verticalScrollBar()->setValue(verticalScrollBar()->maximum());
}
void ChatView::appendMessage(QString sender, QString message, QColor playerColor, bool playerBold)
{
bool sameSender = (sender == lastSender) && !lastSender.isEmpty();
QTextCursor cursor = prepareBlock(sameSender);
lastSender = sender;
QTextCharFormat timeFormat;
timeFormat.setForeground(Qt::black);
cursor.setCharFormat(timeFormat);
cursor.insertText(QDateTime::currentDateTime().toString("[hh:mm] "));
if (showTimestamps) {
QTextCharFormat timeFormat;
if (sameSender)
timeFormat.setForeground(Qt::transparent);
else
timeFormat.setForeground(Qt::black);
cursor.setCharFormat(timeFormat);
cursor.insertText(QDateTime::currentDateTime().toString("[hh:mm] "));
}
QTextCharFormat senderFormat;
if (sender == ownName) {
senderFormat.setFontWeight(QFont::Bold);
senderFormat.setForeground(Qt::red);
} else
senderFormat.setForeground(Qt::blue);
} else {
if (playerColor == QColor())
senderFormat.setForeground(QColor(0, 0, 254));
else
senderFormat.setForeground(playerColor);
if (playerBold)
senderFormat.setFontWeight(QFont::Bold);
}
if (sameSender)
senderFormat.setForeground(Qt::transparent);
cursor.setCharFormat(senderFormat);
if (!sender.isEmpty())
sender.append(": ");
@ -39,7 +77,122 @@ void ChatView::appendMessage(QString sender, const QString &message)
if (sender.isEmpty())
messageFormat.setForeground(Qt::darkGreen);
cursor.setCharFormat(messageFormat);
cursor.insertText(message);
int from = 0, index = 0;
while ((index = message.indexOf('[', from)) != -1) {
cursor.insertText(message.left(index));
message = message.mid(index);
if (message.isEmpty())
break;
if (message.startsWith("[card]")) {
message = message.mid(6);
QTextCharFormat tempFormat = messageFormat;
tempFormat.setForeground(Qt::blue);
cursor.setCharFormat(tempFormat);
int closeTagIndex = message.indexOf("[/card]");
cursor.insertText(message.left(closeTagIndex));
cursor.setCharFormat(messageFormat);
if (closeTagIndex == -1)
message.clear();
else
message = message.mid(closeTagIndex + 7);
} else if (message.startsWith("[url]")) {
message = message.mid(5);
int closeTagIndex = message.indexOf("[/url]");
QString url = message.left(closeTagIndex);
if (!url.startsWith("http://"))
url.prepend("http://");
QTextCharFormat tempFormat = messageFormat;
tempFormat.setForeground(QColor(0, 0, 254));
tempFormat.setAnchor(true);
tempFormat.setAnchorHref(url);
cursor.setCharFormat(tempFormat);
cursor.insertText(url);
cursor.setCharFormat(messageFormat);
if (closeTagIndex == -1)
message.clear();
else
message = message.mid(closeTagIndex + 6);
} else
from = 1;
}
if (!message.isEmpty())
cursor.insertText(message);
verticalScrollBar()->setValue(verticalScrollBar()->maximum());
}
void ChatView::enterEvent(QEvent * /*event*/)
{
setMouseTracking(true);
}
void ChatView::leaveEvent(QEvent * /*event*/)
{
setMouseTracking(false);
}
QTextFragment ChatView::getFragmentUnderMouse(const QPoint &pos) const
{
QTextCursor cursor(cursorForPosition(pos));
QTextBlock block(cursor.block());
QTextBlock::iterator it;
for (it = block.begin(); !(it.atEnd()); ++it) {
QTextFragment frag = it.fragment();
if (frag.contains(cursor.position()))
return frag;
}
return QTextFragment();
}
QString ChatView::getCardNameUnderMouse(QTextFragment frag) const
{
if (frag.charFormat().foreground().color() == Qt::blue)
return frag.text();
return QString();
}
QString ChatView::getCardNameUnderMouse(const QPoint &pos) const
{
return getCardNameUnderMouse(getFragmentUnderMouse(pos));
}
void ChatView::mouseMoveEvent(QMouseEvent *event)
{
QTextFragment frag = getFragmentUnderMouse(event->pos());
QString cardName = getCardNameUnderMouse(frag);
if (!cardName.isEmpty()) {
viewport()->setCursor(Qt::PointingHandCursor);
emit cardNameHovered(cardName);
} else if (frag.charFormat().isAnchor())
viewport()->setCursor(Qt::PointingHandCursor);
else
viewport()->setCursor(Qt::IBeamCursor);
QTextBrowser::mouseMoveEvent(event);
}
void ChatView::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::MidButton) {
QString cardName = getCardNameUnderMouse(event->pos());
if (!cardName.isEmpty())
emit showCardInfoPopup(event->globalPos(), cardName);
}
QTextBrowser::mousePressEvent(event);
}
void ChatView::mouseReleaseEvent(QMouseEvent *event)
{
if (event->button() == Qt::MidButton)
emit deleteCardInfoPopup(QString("_"));
QTextBrowser::mouseReleaseEvent(event);
}
void ChatView::openLink(const QUrl &link)
{
QDesktopServices::openUrl(link);
}

View file

@ -1,18 +1,41 @@
#ifndef CHATVIEW_H
#define CHATVIEW_H
#include <QTextEdit>
#include <QTextBrowser>
#include <QTextFragment>
#include <QTextCursor>
#include <QColor>
class QTextTable;
class QMouseEvent;
class ChatView : public QTextEdit {
class ChatView : public QTextBrowser {
Q_OBJECT;
private:
QTextTable *table;
QString lastSender;
bool evenNumber;
QString ownName;
bool showTimestamps;
QTextFragment getFragmentUnderMouse(const QPoint &pos) const;
QString getCardNameUnderMouse(QTextFragment frag) const;
QString getCardNameUnderMouse(const QPoint &pos) const;
QTextCursor prepareBlock(bool same = false);
private slots:
void openLink(const QUrl &link);
public:
ChatView(const QString &_ownName, QWidget *parent = 0);
void appendMessage(QString sender, const QString &message);
ChatView(const QString &_ownName, bool _showTimestamps, QWidget *parent = 0);
void appendHtml(const QString &html);
void appendMessage(QString sender, QString message, QColor playerColor = QColor(), bool playerBold = false);
protected:
void enterEvent(QEvent *event);
void leaveEvent(QEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
signals:
void cardNameHovered(QString cardName);
void showCardInfoPopup(QPoint pos, QString cardName);
void deleteCardInfoPopup(QString cardName);
};
#endif

View file

@ -17,6 +17,7 @@ DlgCreateGame::DlgCreateGame(AbstractClient *_client, int _roomId, const QMap<in
descriptionLabel = new QLabel(tr("&Description:"));
descriptionEdit = new QLineEdit;
descriptionLabel->setBuddy(descriptionEdit);
descriptionEdit->setMaxLength(60);
maxPlayersLabel = new QLabel(tr("P&layers:"));
maxPlayersEdit = new QSpinBox();

View file

@ -16,6 +16,7 @@
#include <QSettings>
#include <QApplication>
#include <QInputDialog>
#include <QSpinBox>
#include "carddatabase.h"
#include "dlg_settings.h"
#include "main.h"
@ -242,8 +243,17 @@ AppearanceSettingsPage::AppearanceSettingsPage()
invertVerticalCoordinateCheckBox->setChecked(settingsCache->getInvertVerticalCoordinate());
connect(invertVerticalCoordinateCheckBox, SIGNAL(stateChanged(int)), settingsCache, SLOT(setInvertVerticalCoordinate(int)));
minPlayersForMultiColumnLayoutLabel = new QLabel;
minPlayersForMultiColumnLayoutEdit = new QSpinBox;
minPlayersForMultiColumnLayoutEdit->setMinimum(2);
minPlayersForMultiColumnLayoutEdit->setValue(settingsCache->getMinPlayersForMultiColumnLayout());
connect(minPlayersForMultiColumnLayoutEdit, SIGNAL(valueChanged(int)), settingsCache, SLOT(setMinPlayersForMultiColumnLayout(int)));
minPlayersForMultiColumnLayoutLabel->setBuddy(minPlayersForMultiColumnLayoutEdit);
QGridLayout *tableGrid = new QGridLayout;
tableGrid->addWidget(invertVerticalCoordinateCheckBox, 0, 0, 1, 2);
tableGrid->addWidget(minPlayersForMultiColumnLayoutLabel, 1, 0, 1, 1);
tableGrid->addWidget(minPlayersForMultiColumnLayoutEdit, 1, 1, 1, 1);
tableGroupBox = new QGroupBox;
tableGroupBox->setLayout(tableGrid);
@ -289,6 +299,7 @@ void AppearanceSettingsPage::retranslateUi()
tableGroupBox->setTitle(tr("Table grid layout"));
invertVerticalCoordinateCheckBox->setText(tr("Invert vertical coordinate"));
minPlayersForMultiColumnLayoutLabel->setText(tr("Minimum player count for multi-column layout:"));
zoneViewGroupBox->setTitle(tr("Zone view layout"));
zoneViewSortByNameCheckBox->setText(tr("Sort by name"));

View file

@ -14,6 +14,7 @@ class QGroupBox;
class QCheckBox;
class QLabel;
class QCloseEvent;
class QSpinBox;
class AbstractSettingsPage : public QWidget {
public:
@ -65,10 +66,11 @@ signals:
void playerAreaBgChanged(const QString &path);
void cardBackPicturePathChanged(const QString &path);
private:
QLabel *handBgLabel, *stackBgLabel, *tableBgLabel, *playerAreaBgLabel, *cardBackPicturePathLabel;
QLabel *handBgLabel, *stackBgLabel, *tableBgLabel, *playerAreaBgLabel, *cardBackPicturePathLabel, *minPlayersForMultiColumnLayoutLabel;
QLineEdit *handBgEdit, *stackBgEdit, *tableBgEdit, *playerAreaBgEdit, *cardBackPicturePathEdit;
QCheckBox *displayCardNamesCheckBox, *horizontalHandCheckBox, *invertVerticalCoordinateCheckBox, *zoneViewSortByNameCheckBox, *zoneViewSortByTypeCheckBox;
QGroupBox *zoneBgGroupBox, *cardsGroupBox, *handGroupBox, *tableGroupBox, *zoneViewGroupBox;
QSpinBox *minPlayersForMultiColumnLayoutEdit;
public:
AppearanceSettingsPage();
void retranslateUi();

View file

@ -3,6 +3,7 @@
#include "zoneviewwidget.h"
#include "zoneviewzone.h"
#include "phasestoolbar.h"
#include "settingscache.h"
#include <math.h>
#include <QAction>
#include <QGraphicsSceneMouseEvent>
@ -14,6 +15,7 @@ GameScene::GameScene(PhasesToolbar *_phasesToolbar, QObject *parent)
{
animationTimer = new QBasicTimer;
addItem(phasesToolbar);
connect(settingsCache, SIGNAL(minPlayersForMultiColumnLayoutChanged()), this, SLOT(rearrange()));
}
GameScene::~GameScene()
@ -59,7 +61,7 @@ void GameScene::rearrange()
if (firstPlayer == -1)
firstPlayer = 0;
const int playersCount = playersPlaying.size();
const int columns = playersCount < 4 ? 1 : 2;
const int columns = playersCount < settingsCache->getMinPlayersForMultiColumnLayout() ? 1 : 2;
const int rows = ceil((qreal) playersCount / columns);
qreal sceneHeight = 0, sceneWidth = -playerAreaSpacing;

View file

@ -0,0 +1,150 @@
#include <QTreeView>
#include <QCheckBox>
#include <QPushButton>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QMessageBox>
#include <QHeaderView>
#include <QInputDialog>
#include "dlg_creategame.h"
#include "abstractclient.h"
#include "protocol_items.h"
#include "gameselector.h"
#include "gamesmodel.h"
GameSelector::GameSelector(AbstractClient *_client, TabRoom *_room, const QMap<int, QString> &_rooms, const QMap<int, GameTypeMap> &_gameTypes, QWidget *parent)
: QGroupBox(parent), client(_client), room(_room)
{
gameListView = new QTreeView;
gameListModel = new GamesModel(_rooms, _gameTypes, this);
gameListProxyModel = new GamesProxyModel(this);
gameListProxyModel->setSourceModel(gameListModel);
gameListProxyModel->setSortCaseSensitivity(Qt::CaseInsensitive);
gameListView->setModel(gameListProxyModel);
gameListView->setSortingEnabled(true);
gameListView->setAlternatingRowColors(true);
if (_room)
gameListView->header()->hideSection(0);
gameListView->header()->setResizeMode(1, QHeaderView::ResizeToContents);
showFullGamesCheckBox = new QCheckBox;
showRunningGamesCheckBox = new QCheckBox;
QVBoxLayout *filterLayout = new QVBoxLayout;
filterLayout->addWidget(showFullGamesCheckBox);
filterLayout->addWidget(showRunningGamesCheckBox);
if (room)
createButton = new QPushButton;
else
createButton = 0;
joinButton = new QPushButton;
spectateButton = new QPushButton;
QHBoxLayout *buttonLayout = new QHBoxLayout;
if (room)
buttonLayout->addWidget(createButton);
buttonLayout->addWidget(joinButton);
buttonLayout->addWidget(spectateButton);
buttonLayout->setAlignment(Qt::AlignTop);
QHBoxLayout *hbox = new QHBoxLayout;
hbox->addLayout(filterLayout);
hbox->addStretch();
hbox->addLayout(buttonLayout);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(gameListView);
mainLayout->addLayout(hbox);
retranslateUi();
setLayout(mainLayout);
setMinimumWidth((qreal) (gameListView->columnWidth(0) * gameListModel->columnCount()) / 1.5);
setMinimumHeight(200);
connect(showFullGamesCheckBox, SIGNAL(stateChanged(int)), this, SLOT(showFullGamesChanged(int)));
connect(showRunningGamesCheckBox, SIGNAL(stateChanged(int)), this, SLOT(showRunningGamesChanged(int)));
connect(createButton, SIGNAL(clicked()), this, SLOT(actCreate()));
connect(joinButton, SIGNAL(clicked()), this, SLOT(actJoin()));
connect(spectateButton, SIGNAL(clicked()), this, SLOT(actJoin()));
}
void GameSelector::showFullGamesChanged(int state)
{
gameListProxyModel->setFullGamesVisible(state);
}
void GameSelector::showRunningGamesChanged(int state)
{
gameListProxyModel->setRunningGamesVisible(state);
}
void GameSelector::actCreate()
{
DlgCreateGame dlg(client, room->getRoomId(), room->getGameTypes(), this);
dlg.exec();
}
void GameSelector::checkResponse(ResponseCode response)
{
if (createButton)
createButton->setEnabled(true);
joinButton->setEnabled(true);
spectateButton->setEnabled(true);
switch (response) {
case RespNotInRoom: QMessageBox::critical(this, tr("Error"), tr("Please join the appropriate room first.")); break;
case RespWrongPassword: QMessageBox::critical(this, tr("Error"), tr("Wrong password.")); break;
case RespSpectatorsNotAllowed: QMessageBox::critical(this, tr("Error"), tr("Spectators are not allowed in this game.")); break;
case RespGameFull: QMessageBox::critical(this, tr("Error"), tr("The game is already full.")); break;
case RespNameNotFound: QMessageBox::critical(this, tr("Error"), tr("The game does not exist any more.")); break;
case RespUserLevelTooLow: QMessageBox::critical(this, tr("Error"), tr("This game is only open to registered users.")); break;
case RespOnlyBuddies: QMessageBox::critical(this, tr("Error"), tr("This game is only open to its creator's buddies.")); break;
case RespInIgnoreList: QMessageBox::critical(this, tr("Error"), tr("You are being ignored by the creator of this game.")); break;
default: ;
}
}
void GameSelector::actJoin()
{
bool spectator = sender() == spectateButton;
QModelIndex ind = gameListView->currentIndex();
if (!ind.isValid())
return;
ServerInfo_Game *game = gameListModel->getGame(ind.data(Qt::UserRole).toInt());
QString password;
if (game->getHasPassword() && !(spectator && !game->getSpectatorsNeedPassword())) {
bool ok;
password = QInputDialog::getText(this, tr("Join game"), tr("Password:"), QLineEdit::Password, QString(), &ok);
if (!ok)
return;
}
Command_JoinGame *commandJoinGame = new Command_JoinGame(game->getRoomId(), game->getGameId(), password, spectator);
connect(commandJoinGame, SIGNAL(finished(ResponseCode)), this, SLOT(checkResponse(ResponseCode)));
client->sendCommand(commandJoinGame);
if (createButton)
createButton->setEnabled(false);
joinButton->setEnabled(false);
spectateButton->setEnabled(false);
}
void GameSelector::retranslateUi()
{
setTitle(tr("Games"));
showFullGamesCheckBox->setText(tr("Show &full games"));
showRunningGamesCheckBox->setText(tr("Show &running games"));
if (createButton)
createButton->setText(tr("C&reate"));
joinButton->setText(tr("&Join"));
spectateButton->setText(tr("J&oin as spectator"));
}
void GameSelector::processGameInfo(ServerInfo_Game *info)
{
gameListModel->updateGameList(info);
}

View file

@ -0,0 +1,42 @@
#ifndef GAMESELECTOR_H
#define GAMESELECTOR_H
#include <QGroupBox>
#include "protocol_datastructures.h"
#include "tab_room.h"
#include "gametypemap.h"
class QTreeView;
class GamesModel;
class GamesProxyModel;
class QPushButton;
class QCheckBox;
class AbstractClient;
class TabRoom;
class GameSelector : public QGroupBox {
Q_OBJECT
private slots:
void showFullGamesChanged(int state);
void showRunningGamesChanged(int state);
void actCreate();
void actJoin();
void checkResponse(ResponseCode response);
signals:
void gameJoined(int gameId);
private:
AbstractClient *client;
TabRoom *room;
QTreeView *gameListView;
GamesModel *gameListModel;
GamesProxyModel *gameListProxyModel;
QPushButton *createButton, *joinButton, *spectateButton;
QCheckBox *showFullGamesCheckBox, *showRunningGamesCheckBox;
public:
GameSelector(AbstractClient *_client, TabRoom *_room, const QMap<int, QString> &_rooms, const QMap<int, GameTypeMap> &_gameTypes, QWidget *parent = 0);
void retranslateUi();
void processGameInfo(ServerInfo_Game *info);
};
#endif

View file

@ -1,8 +1,8 @@
#include "gamesmodel.h"
#include "protocol_datastructures.h"
GamesModel::GamesModel(const QMap<int, QString> &_gameTypes, QObject *parent)
: QAbstractTableModel(parent), gameTypes(_gameTypes)
GamesModel::GamesModel(const QMap<int, QString> &_rooms, const QMap<int, GameTypeMap> &_gameTypes, QObject *parent)
: QAbstractTableModel(parent), rooms(_rooms), gameTypes(_gameTypes)
{
}
@ -30,17 +30,19 @@ QVariant GamesModel::data(const QModelIndex &index, int role) const
ServerInfo_Game *g = gameList[index.row()];
switch (index.column()) {
case 0: return g->getDescription();
case 1: return g->getCreatorInfo()->getName();
case 2: {
case 0: return rooms.value(g->getRoomId());
case 1: return g->getDescription();
case 2: return g->getCreatorInfo()->getName();
case 3: {
QStringList result;
QList<GameTypeId *> gameTypeList = g->getGameTypes();
GameTypeMap gameTypeMap = gameTypes.value(g->getRoomId());
for (int i = 0; i < gameTypeList.size(); ++i)
result.append(gameTypes.value(gameTypeList[i]->getData()));
result.append(gameTypeMap.value(gameTypeList[i]->getData()));
return result.join(", ");
}
case 3: return g->getHasPassword() ? (g->getSpectatorsNeedPassword() ? tr("yes") : tr("yes, free for spectators")) : tr("no");
case 4: {
case 4: return g->getHasPassword() ? (g->getSpectatorsNeedPassword() ? tr("yes") : tr("yes, free for spectators")) : tr("no");
case 5: {
QStringList result;
if (g->getOnlyBuddies())
result.append(tr("buddies only"));
@ -48,8 +50,8 @@ QVariant GamesModel::data(const QModelIndex &index, int role) const
result.append(tr("reg. users only"));
return result.join(", ");
}
case 5: return QString("%1/%2").arg(g->getPlayerCount()).arg(g->getMaxPlayers());
case 6: return g->getSpectatorsAllowed() ? QVariant(g->getSpectatorCount()) : QVariant(tr("not allowed"));
case 6: return QString("%1/%2").arg(g->getPlayerCount()).arg(g->getMaxPlayers());
case 7: return g->getSpectatorsAllowed() ? QVariant(g->getSpectatorCount()) : QVariant(tr("not allowed"));
default: return QVariant();
}
}
@ -59,13 +61,14 @@ QVariant GamesModel::headerData(int section, Qt::Orientation orientation, int ro
if ((role != Qt::DisplayRole) || (orientation != Qt::Horizontal))
return QVariant();
switch (section) {
case 0: return tr("Description");
case 1: return tr("Creator");
case 2: return tr("Game type");
case 3: return tr("Password");
case 4: return tr("Restrictions");
case 5: return tr("Players");
case 6: return tr("Spectators");
case 0: return tr("Room");
case 1: return tr("Description");
case 2: return tr("Creator");
case 3: return tr("Game type");
case 4: return tr("Password");
case 5: return tr("Restrictions");
case 6: return tr("Players");
case 7: return tr("Spectators");
default: return QVariant();
}
}
@ -82,7 +85,7 @@ void GamesModel::updateGameList(ServerInfo_Game *_game)
for (int i = 0; i < oldGameTypeList.size(); ++i)
gameTypeList.append(new GameTypeId(oldGameTypeList[i]->getData()));
ServerInfo_Game *game = new ServerInfo_Game(_game->getGameId(), _game->getDescription(), _game->getHasPassword(), _game->getPlayerCount(), _game->getMaxPlayers(), gameTypeList, new ServerInfo_User(_game->getCreatorInfo()), _game->getOnlyBuddies(), _game->getOnlyRegistered(), _game->getSpectatorsAllowed(), _game->getSpectatorsNeedPassword(), _game->getSpectatorCount());
ServerInfo_Game *game = new ServerInfo_Game(_game->getRoomId(), _game->getGameId(), _game->getDescription(), _game->getHasPassword(), _game->getPlayerCount(), _game->getMaxPlayers(), _game->getStarted(), gameTypeList, new ServerInfo_User(_game->getCreatorInfo()), _game->getOnlyBuddies(), _game->getOnlyRegistered(), _game->getSpectatorsAllowed(), _game->getSpectatorsNeedPassword(), _game->getSpectatorCount());
for (int i = 0; i < gameList.size(); i++)
if (gameList[i]->getGameId() == game->getGameId()) {
if (game->getPlayerCount() == 0) {
@ -92,7 +95,7 @@ void GamesModel::updateGameList(ServerInfo_Game *_game)
} else {
delete gameList[i];
gameList[i] = game;
emit dataChanged(index(i, 0), index(i, 4));
emit dataChanged(index(i, 0), index(i, 7));
}
return;
}
@ -115,17 +118,22 @@ void GamesProxyModel::setFullGamesVisible(bool _fullGamesVisible)
invalidateFilter();
}
void GamesProxyModel::setRunningGamesVisible(bool _runningGamesVisible)
{
runningGamesVisible = _runningGamesVisible;
invalidateFilter();
}
bool GamesProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &/*sourceParent*/) const
{
if (fullGamesVisible)
return true;
GamesModel *model = qobject_cast<GamesModel *>(sourceModel());
if (!model)
return false;
ServerInfo_Game *game = model->getGame(sourceRow);
if (game->getPlayerCount() == game->getMaxPlayers())
if ((game->getPlayerCount() == game->getMaxPlayers()) && !fullGamesVisible)
return false;
if (game->getStarted() && !runningGamesVisible)
return false;
return true;

View file

@ -4,6 +4,7 @@
#include <QAbstractTableModel>
#include <QSortFilterProxyModel>
#include <QList>
#include "gametypemap.h"
class ServerInfo_Game;
@ -11,12 +12,13 @@ class GamesModel : public QAbstractTableModel {
Q_OBJECT
private:
QList<ServerInfo_Game *> gameList;
QMap<int, QString> gameTypes;
QMap<int, QString> rooms;
QMap<int, GameTypeMap> gameTypes;
public:
GamesModel(const QMap<int, QString> &_gameTypes, QObject *parent = 0);
GamesModel(const QMap<int, QString> &_rooms, const QMap<int, GameTypeMap> &_gameTypes, QObject *parent = 0);
~GamesModel();
int rowCount(const QModelIndex &parent = QModelIndex()) const { return parent.isValid() ? 0 : gameList.size(); }
int columnCount(const QModelIndex &/*parent*/ = QModelIndex()) const { return 7; }
int columnCount(const QModelIndex &/*parent*/ = QModelIndex()) const { return 8; }
QVariant data(const QModelIndex &index, int role) const;
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
@ -28,9 +30,11 @@ class GamesProxyModel : public QSortFilterProxyModel {
Q_OBJECT
private:
bool fullGamesVisible;
bool runningGamesVisible;
public:
GamesProxyModel(QObject *parent = 0);
void setFullGamesVisible(bool _fullGamesVisible);
void setRunningGamesVisible(bool _runningGamesVisible);
protected:
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
};

View file

@ -0,0 +1,8 @@
#ifndef GAMETYPEMAP_H
#define GAMETYPEMAP_H
#include <QMap>
typedef QMap<int, QString> GameTypeMap;
#endif

View file

@ -11,11 +11,12 @@ class LocalServer : public Server
public:
LocalServer(QObject *parent = 0);
~LocalServer();
AuthenticationResult checkUserPassword(const QString & /*user*/, const QString & /*password*/) { return UnknownUser; }
AuthenticationResult checkUserPassword(Server_ProtocolHandler * /*handler*/, const QString & /*user*/, const QString & /*password*/) { return UnknownUser; }
QString getLoginMessage() const { return QString(); }
bool getGameShouldPing() const { return false; }
int getMaxGameInactivityTime() const { return 9999999; }
int getMaxPlayerInactivityTime() const { return 9999999; }
bool getThreaded() const { return false; }
LocalServerInterface *newConnection();
protected:

View file

@ -18,14 +18,16 @@ private:
ResponseCode cmdDeckDel(Command_DeckDel * /*cmd*/, CommandContainer * /*cont*/) { return RespFunctionNotAllowed; }
ResponseCode cmdDeckUpload(Command_DeckUpload * /*cmd*/, CommandContainer * /*cont*/) { return RespFunctionNotAllowed; }
ResponseCode cmdDeckDownload(Command_DeckDownload * /*cmd*/, CommandContainer * /*cont*/) { return RespFunctionNotAllowed; }
ResponseCode cmdUpdateServerMessage(Command_UpdateServerMessage * /*cmd*/, CommandContainer * /*cont*/) { return RespFunctionNotAllowed; }
ResponseCode cmdBanFromServer(Command_BanFromServer * /*cmd*/, CommandContainer * /*cont*/) { return RespFunctionNotAllowed; }
ResponseCode cmdShutdownServer(Command_ShutdownServer * /*cmd*/, CommandContainer * /*cont*/) { return RespFunctionNotAllowed; }
ResponseCode cmdUpdateServerMessage(Command_UpdateServerMessage * /*cmd*/, CommandContainer * /*cont*/) { return RespFunctionNotAllowed; }
protected:
bool getCompressionSupport() const { return false; }
public:
LocalServerInterface(LocalServer *_server);
~LocalServerInterface();
void sendProtocolItem(ProtocolItem *item, bool deleteItem = true);
signals:
void itemToClient(ProtocolItem *item);
public slots:

View file

@ -9,7 +9,7 @@ extern CardDatabase *db;
extern QTranslator *translator;
const QString translationPrefix = "cockatrice";
const QString versionString = "0.20110303";
const QString versionString = "0.20110625";
void installNewTranslator();

View file

@ -1,11 +1,9 @@
#include "messagelogwidget.h"
#include "player.h"
#include "cardzone.h"
#include "cardinfowidget.h"
#include "protocol_items.h"
#include "soundengine.h"
#include <QMouseEvent>
#include <QTextBlock>
#include <QScrollBar>
QString MessageLogWidget::sanitizeHtml(QString dirty) const
{
@ -20,123 +18,132 @@ bool MessageLogWidget::isFemale(Player *player) const
return player->getUserInfo()->getGender() == ServerInfo_User::Female;
}
void MessageLogWidget::logConnecting(QString hostname)
{
append(tr("Connecting to %1...").arg(sanitizeHtml(hostname)));
}
void MessageLogWidget::logConnected()
{
append(tr("Connected."));
}
void MessageLogWidget::logDisconnected()
{
append(tr("Disconnected from server."));
}
void MessageLogWidget::logSocketError(const QString &errorString)
{
append(sanitizeHtml(errorString));
}
void MessageLogWidget::logServerError(ResponseCode response)
{
switch (response) {
case RespWrongPassword: append(tr("Invalid password.")); break;
default: ;
}
}
void MessageLogWidget::logProtocolVersionMismatch(int clientVersion, int serverVersion)
{
append(tr("Protocol version mismatch. Client: %1, Server: %2").arg(clientVersion).arg(serverVersion));
}
void MessageLogWidget::logProtocolError()
{
append(tr("Protocol error."));
}
void MessageLogWidget::logGameJoined(int gameId)
{
append(tr("You have joined game #%1.").arg(gameId));
if (female)
appendHtml(tr("You have joined game #%1.", "female").arg(gameId));
else
appendHtml(tr("You have joined game #%1.", "male").arg(gameId));
}
void MessageLogWidget::logJoin(Player *player)
{
soundEngine->notification();
append(tr("%1 has joined the game.").arg(sanitizeHtml(player->getName())));
soundEngine->cuckoo();
if (isFemale(player))
appendHtml(tr("%1 has joined the game.", "female").arg(sanitizeHtml(player->getName())));
else
appendHtml(tr("%1 has joined the game.", "male").arg(sanitizeHtml(player->getName())));
}
void MessageLogWidget::logLeave(Player *player)
{
append(tr("%1 has left the game.").arg(sanitizeHtml(player->getName())));
if (isFemale(player))
appendHtml(tr("%1 has left the game.", "female").arg(sanitizeHtml(player->getName())));
else
appendHtml(tr("%1 has left the game.", "male").arg(sanitizeHtml(player->getName())));
}
void MessageLogWidget::logGameClosed()
{
append(tr("The game has been closed."));
appendHtml(tr("The game has been closed."));
}
void MessageLogWidget::logJoinSpectator(QString name)
{
append(tr("%1 is now watching the game.").arg(sanitizeHtml(name)));
appendHtml(tr("%1 is now watching the game.").arg(sanitizeHtml(name)));
}
void MessageLogWidget::logLeaveSpectator(QString name)
{
append(tr("%1 is not watching the game any more.").arg(sanitizeHtml(name)));
appendHtml(tr("%1 is not watching the game any more.").arg(sanitizeHtml(name)));
}
void MessageLogWidget::logDeckSelect(Player *player, int deckId)
{
if (deckId == -1)
append(tr("%1 has loaded a local deck.").arg(sanitizeHtml(player->getName())));
else
append(tr("%1 has loaded deck #%2.").arg(sanitizeHtml(player->getName())).arg(deckId));
if (deckId == -1) {
if (isFemale(player))
appendHtml(tr("%1 has loaded a local deck.", "female").arg(sanitizeHtml(player->getName())));
else
appendHtml(tr("%1 has loaded a local deck.", "male").arg(sanitizeHtml(player->getName())));
} else {
if (isFemale(player))
appendHtml(tr("%1 has loaded deck #%2.", "female").arg(sanitizeHtml(player->getName())).arg(deckId));
else
appendHtml(tr("%1 has loaded deck #%2.", "male").arg(sanitizeHtml(player->getName())).arg(deckId));
}
}
void MessageLogWidget::logReadyStart(Player *player)
{
append(tr("%1 is ready to start the game.").arg(sanitizeHtml(player->getName())));
if (isFemale(player))
appendHtml(tr("%1 is ready to start the game.", "female").arg(sanitizeHtml(player->getName())));
else
appendHtml(tr("%1 is ready to start the game.", "male").arg(sanitizeHtml(player->getName())));
}
void MessageLogWidget::logNotReadyStart(Player *player)
{
append(tr("%1 is not ready to start the game any more.").arg(sanitizeHtml(player->getName())));
if (isFemale(player))
appendHtml(tr("%1 is not ready to start the game any more.", "female").arg(sanitizeHtml(player->getName())));
else
appendHtml(tr("%1 is not ready to start the game any more.", "male").arg(sanitizeHtml(player->getName())));
}
void MessageLogWidget::logConcede(Player *player)
{
append(tr("%1 has conceded the game.").arg(sanitizeHtml(player->getName())));
if (isFemale(player))
appendHtml(tr("%1 has conceded the game.", "female").arg(sanitizeHtml(player->getName())));
else
appendHtml(tr("%1 has conceded the game.", "male").arg(sanitizeHtml(player->getName())));
}
void MessageLogWidget::logGameStart()
{
append(tr("The game has started."));
appendHtml(tr("The game has started."));
}
void MessageLogWidget::logConnectionStateChanged(Player *player, bool connectionState)
{
if (connectionState) {
if (isFemale(player))
appendHtml(tr("%1 has restored connection to the game.", "female").arg(sanitizeHtml(player->getName())));
else
appendHtml(tr("%1 has restored connection to the game.", "male").arg(sanitizeHtml(player->getName())));
} else {
if (isFemale(player))
appendHtml(tr("%1 has lost connection to the game.", "female").arg(sanitizeHtml(player->getName())));
else
appendHtml(tr("%1 has lost connection to the game.", "male").arg(sanitizeHtml(player->getName())));
}
}
void MessageLogWidget::logSay(Player *player, QString message)
{
append(QString("<b><font color=\"") + (player->getLocal() ? "red" : "#0000fe") + QString("\">%1:</font></b> %2").arg(sanitizeHtml(player->getName())).arg(sanitizeHtml(message)));
appendMessage(player->getName(), message, QColor(), true);
}
void MessageLogWidget::logSpectatorSay(QString spectatorName, QString message)
{
append(QString("<font color=\"red\">%1:</font> %2").arg(sanitizeHtml(spectatorName)).arg(sanitizeHtml(message)));
appendMessage(spectatorName, message, QColor(), false);
}
void MessageLogWidget::logShuffle(Player *player, CardZone *zone)
{
soundEngine->shuffle();
if (currentContext != MessageContext_Mulligan)
append(tr("%1 shuffles %2.").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseAccusative)));
if (currentContext != MessageContext_Mulligan) {
if (isFemale(player))
appendHtml(tr("%1 shuffles %2.", "female").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseAccusative)));
else
appendHtml(tr("%1 shuffles %2.", "male").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseAccusative)));
}
}
void MessageLogWidget::logRollDie(Player *player, int sides, int roll)
{
append(tr("%1 rolls a %2 with a %3-sided die.").arg(sanitizeHtml(player->getName())).arg(roll).arg(sides));
if (isFemale(player))
appendHtml(tr("%1 rolls a %2 with a %3-sided die.", "female").arg(sanitizeHtml(player->getName())).arg(roll).arg(sides));
else
appendHtml(tr("%1 rolls a %2 with a %3-sided die.", "male").arg(sanitizeHtml(player->getName())).arg(roll).arg(sides));
}
void MessageLogWidget::logDrawCards(Player *player, int number)
@ -145,16 +152,19 @@ void MessageLogWidget::logDrawCards(Player *player, int number)
mulliganPlayer = player;
else {
soundEngine->draw();
append(tr("%1 draws %n card(s).", "", number).arg(sanitizeHtml(player->getName())));
if (isFemale(player))
appendHtml(tr("%1 draws %n card(s).", "female", number).arg(sanitizeHtml(player->getName())));
else
appendHtml(tr("%1 draws %n card(s).", "male", number).arg(sanitizeHtml(player->getName())));
}
}
void MessageLogWidget::logUndoDraw(Player *player, QString cardName)
{
if (cardName.isEmpty())
append((isFemale(player) ? tr("%1 undoes her last draw.") : tr("%1 undoes his last draw.")).arg(sanitizeHtml(player->getName())));
appendHtml((isFemale(player) ? tr("%1 undoes her last draw.") : tr("%1 undoes his last draw.")).arg(sanitizeHtml(player->getName())));
else
append((isFemale(player) ? tr("%1 undoes her last draw (%2).") : tr("%1 undoes his last draw (%2).")).arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(cardName))));
appendHtml((isFemale(player) ? tr("%1 undoes her last draw (%2).") : tr("%1 undoes his last draw (%2).")).arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(cardName))));
}
QPair<QString, QString> MessageLogWidget::getFromStr(CardZone *zone, QString cardName, int position) const
@ -219,7 +229,7 @@ void MessageLogWidget::doMoveCard(LogMoveCard &attributes)
cardStr = QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(cardName));
if (attributes.startZone->getPlayer() != attributes.targetZone->getPlayer()) {
append(tr("%1 gives %2 control over %3.").arg(sanitizeHtml(attributes.player->getName())).arg(sanitizeHtml(attributes.targetZone->getPlayer()->getName())).arg(cardStr));
appendHtml(tr("%1 gives %2 control over %3.").arg(sanitizeHtml(attributes.player->getName())).arg(sanitizeHtml(attributes.targetZone->getPlayer()->getName())).arg(cardStr));
return;
}
@ -252,7 +262,7 @@ void MessageLogWidget::doMoveCard(LogMoveCard &attributes)
finalStr = tr("%1 plays %2%3.");
}
append(finalStr.arg(sanitizeHtml(attributes.player->getName())).arg(cardStr).arg(fromStr).arg(attributes.newX));
appendHtml(finalStr.arg(sanitizeHtml(attributes.player->getName())).arg(cardStr).arg(fromStr).arg(attributes.newX));
}
void MessageLogWidget::logMoveCard(Player *player, CardItem *card, CardZone *startZone, int oldX, CardZone *targetZone, int newX)
@ -271,57 +281,200 @@ void MessageLogWidget::logMulligan(Player *player, int number)
if (!player)
return;
if (number > -1)
append(tr("%1 takes a mulligan to %n.", "", number).arg(sanitizeHtml(player->getName())));
else
append((isFemale(player) ? tr("%1 draws her initial hand.") : tr("%1 draws his initial hand.")).arg(sanitizeHtml(player->getName())));
if (number > -1) {
if (isFemale(player))
appendHtml(tr("%1 takes a mulligan to %n.", "female", number).arg(sanitizeHtml(player->getName())));
else
appendHtml(tr("%1 takes a mulligan to %n.", "male", number).arg(sanitizeHtml(player->getName())));
} else
appendHtml((isFemale(player) ? tr("%1 draws her initial hand.") : tr("%1 draws his initial hand.")).arg(sanitizeHtml(player->getName())));
}
void MessageLogWidget::logFlipCard(Player *player, QString cardName, bool faceDown)
{
if (faceDown)
append(tr("%1 flips %2 face-down.").arg(sanitizeHtml(player->getName())).arg(cardName));
else
append(tr("%1 flips %2 face-up.").arg(sanitizeHtml(player->getName())).arg(cardName));
if (faceDown) {
if (isFemale(player))
appendHtml(tr("%1 flips %2 face-down.", "female").arg(sanitizeHtml(player->getName())).arg(cardName));
else
appendHtml(tr("%1 flips %2 face-down.", "male").arg(sanitizeHtml(player->getName())).arg(cardName));
} else {
if (isFemale(player))
appendHtml(tr("%1 flips %2 face-up.", "female").arg(sanitizeHtml(player->getName())).arg(cardName));
else
appendHtml(tr("%1 flips %2 face-up.", "male").arg(sanitizeHtml(player->getName())).arg(cardName));
}
}
void MessageLogWidget::logDestroyCard(Player *player, QString cardName)
{
append(tr("%1 destroys %2.").arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(cardName))));
if (isFemale(player))
appendHtml(tr("%1 destroys %2.", "female").arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(cardName))));
else
appendHtml(tr("%1 destroys %2.", "male").arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(cardName))));
}
void MessageLogWidget::logAttachCard(Player *player, QString cardName, Player *targetPlayer, QString targetCardName)
{
append(tr("%1 attaches %2 to %3's %4.").arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(cardName))).arg(sanitizeHtml(targetPlayer->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(targetCardName))));
QString str;
if (isFemale(player)) {
if (isFemale(targetPlayer))
str = tr("%1 attaches %2 to %3's %4.", "p1 female, p2 female");
else
str = tr("%1 attaches %2 to %3's %4.", "p1 female, p2 male");
} else {
if (isFemale(targetPlayer))
str = tr("%1 attaches %2 to %3's %4.", "p1 male, p2 female");
else
str = tr("%1 attaches %2 to %3's %4.", "p1 male, p2 male");
}
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(cardName))).arg(sanitizeHtml(targetPlayer->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(targetCardName))));
}
void MessageLogWidget::logUnattachCard(Player *player, QString cardName)
{
append(tr("%1 unattaches %2.").arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(cardName))));
if (isFemale(player))
appendHtml(tr("%1 unattaches %2.", "female").arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(cardName))));
else
appendHtml(tr("%1 unattaches %2.", "male").arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(cardName))));
}
void MessageLogWidget::logCreateToken(Player *player, QString cardName, QString pt)
{
append(tr("%1 creates token: %2%3.").arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\"><a name=\"foo\">%1</a></font>").arg(sanitizeHtml(cardName))).arg(pt.isEmpty() ? QString() : QString(" (%1)").arg(sanitizeHtml(pt))));
if (isFemale(player))
appendHtml(tr("%1 creates token: %2%3.", "female").arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(cardName))).arg(pt.isEmpty() ? QString() : QString(" (%1)").arg(sanitizeHtml(pt))));
else
appendHtml(tr("%1 creates token: %2%3.", "male").arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(cardName))).arg(pt.isEmpty() ? QString() : QString(" (%1)").arg(sanitizeHtml(pt))));
}
void MessageLogWidget::logCreateArrow(Player *player, Player *startPlayer, QString startCard, Player *targetPlayer, QString targetCard, bool playerTarget)
{
if (playerTarget)
append(tr("%1 points from %2's %3 to %4.")
.arg(sanitizeHtml(player->getName()))
.arg(sanitizeHtml(startPlayer->getName()))
.arg(sanitizeHtml(startCard))
.arg(sanitizeHtml(targetPlayer->getName()))
);
else
append(tr("%1 points from %2's %3 to %4's %5.")
.arg(sanitizeHtml(player->getName()))
.arg(sanitizeHtml(startPlayer->getName()))
.arg(sanitizeHtml(startCard))
.arg(sanitizeHtml(targetPlayer->getName()))
.arg(sanitizeHtml(targetCard))
);
startCard = QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(startCard));
targetCard = QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(targetCard));
QString str;
if (playerTarget) {
if ((player == startPlayer) && (player == targetPlayer)) {
if (isFemale(player))
str = tr("%1 points from her %2 to herself.", "female");
else
str = tr("%1 points from his %2 to himself.", "male");
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(startCard));
} else if (player == startPlayer) {
if (isFemale(player)) {
if (isFemale(targetPlayer))
str = tr("%1 points from her %2 to %3.", "p1 female, p2 female");
else
str = tr("%1 points from her %2 to %3.", "p1 female, p2 male");
} else {
if (isFemale(targetPlayer))
str = tr("%1 points from his %2 to %3.", "p1 male, p2 female");
else
str = tr("%1 points from his %2 to %3.", "p1 male, p2 male");
}
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(startCard).arg(sanitizeHtml(targetPlayer->getName())));
} else if (player == targetPlayer) {
if (isFemale(player)) {
if (isFemale(startPlayer))
str = tr("%1 points from %2's %3 to herself.", "card owner female, target female");
else
str = tr("%1 points from %2's %3 to herself.", "card owner male, target female");
} else {
if (isFemale(startPlayer))
str = tr("%1 points from %2's %3 to himself.", "card owner female, target male");
else
str = tr("%1 points from %2's %3 to himself.", "card owner male, target male");
}
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(sanitizeHtml(startPlayer->getName())).arg(startCard));
} else {
if (isFemale(player)) {
if (isFemale(startPlayer)) {
if (isFemale(targetPlayer))
str = tr("%1 points from %2's %3 to %4.", "p1 female, p2 female, p3 female");
else
str = tr("%1 points from %2's %3 to %4.", "p1 female, p2 female, p3 male");
} else {
if (isFemale(targetPlayer))
str = tr("%1 points from %2's %3 to %4.", "p1 female, p2 male, p3 female");
else
str = tr("%1 points from %2's %3 to %4.", "p1 female, p2 male, p3 male");
}
} else {
if (isFemale(startPlayer)) {
if (isFemale(targetPlayer))
str = tr("%1 points from %2's %3 to %4.", "p1 male, p2 female, p3 female");
else
str = tr("%1 points from %2's %3 to %4.", "p1 male, p2 female, p3 male");
} else {
if (isFemale(targetPlayer))
str = tr("%1 points from %2's %3 to %4.", "p1 male, p2 male, p3 female");
else
str = tr("%1 points from %2's %3 to %4.", "p1 male, p2 male, p3 male");
}
}
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(sanitizeHtml(startPlayer->getName())).arg(startCard).arg(sanitizeHtml(targetPlayer->getName())));
}
} else {
if ((player == startPlayer) && (player == targetPlayer)) {
if (isFemale(player))
str = tr("%1 points from her %2 to her %3.", "female");
else
str = tr("%1 points from his %2 to his %3.", "male");
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(startCard).arg(targetCard));
} else if (player == startPlayer) {
if (isFemale(player)) {
if (isFemale(targetPlayer))
str = tr("%1 points from her %2 to %3's %4.", "p1 female, p2 female");
else
str = tr("%1 points from her %2 to %3's %4.", "p1 female, p2 male");
} else {
if (isFemale(targetPlayer))
str = tr("%1 points from his %2 to %3's %4.", "p1 male, p2 female");
else
str = tr("%1 points from his %2 to %3's %4.", "p1 male, p2 male");
}
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(startCard).arg(sanitizeHtml(targetPlayer->getName())).arg(targetCard));
} else if (player == targetPlayer) {
if (isFemale(player)) {
if (isFemale(startPlayer))
str = tr("%1 points from %2's %3 to her own %4.", "card owner female, target female");
else
str = tr("%1 points from %2's %3 to her own %4.", "card owner male, target female");
} else {
if (isFemale(startPlayer))
str = tr("%1 points from %2's %3 to his own %4.", "card owner female, target male");
else
str = tr("%1 points from %2's %3 to his own %4.", "card owner male, target male");
}
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(sanitizeHtml(startPlayer->getName())).arg(startCard).arg(targetCard));
} else {
if (isFemale(player)) {
if (isFemale(startPlayer)) {
if (isFemale(targetPlayer))
str = tr("%1 points from %2's %3 to %4's %5.", "p1 female, p2 female, p3 female");
else
str = tr("%1 points from %2's %3 to %4's %5.", "p1 female, p2 female, p3 male");
} else {
if (isFemale(targetPlayer))
str = tr("%1 points from %2's %3 to %4's %5.", "p1 female, p2 male, p3 female");
else
str = tr("%1 points from %2's %3 to %4's %5.", "p1 female, p2 male, p3 male");
}
} else {
if (isFemale(startPlayer)) {
if (isFemale(targetPlayer))
str = tr("%1 points from %2's %3 to %4's %5.", "p1 male, p2 female, p3 female");
else
str = tr("%1 points from %2's %3 to %4's %5.", "p1 male, p2 female, p3 male");
} else {
if (isFemale(targetPlayer))
str = tr("%1 points from %2's %3 to %4's %5.", "p1 male, p2 male, p3 female");
else
str = tr("%1 points from %2's %3 to %4's %5.", "p1 male, p2 male, p3 male");
}
}
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(sanitizeHtml(startPlayer->getName())).arg(startCard).arg(sanitizeHtml(targetPlayer->getName())).arg(targetCard));
}
}
}
void MessageLogWidget::logSetCardCounter(Player *player, QString cardName, int counterId, int value, int oldValue)
@ -329,10 +482,17 @@ void MessageLogWidget::logSetCardCounter(Player *player, QString cardName, int c
QString finalStr, colorStr;
int delta = abs(oldValue - value);
if (value > oldValue)
finalStr = tr("%1 places %n %2 counter(s) on %3 (now %4).", "", delta);
else
finalStr = tr("%1 removes %n %2 counter(s) from %3 (now %4).", "", delta);
if (value > oldValue) {
if (isFemale(player))
finalStr = tr("%1 places %n %2 counter(s) on %3 (now %4).", "female", delta);
else
finalStr = tr("%1 places %n %2 counter(s) on %3 (now %4).", "male", delta);
} else {
if (isFemale(player))
finalStr = tr("%1 removes %n %2 counter(s) from %3 (now %4).", "female", delta);
else
finalStr = tr("%1 removes %n %2 counter(s) from %3 (now %4).", "male", delta);
}
switch (counterId) {
case 0: colorStr = tr("red", "", delta); break;
@ -341,7 +501,7 @@ void MessageLogWidget::logSetCardCounter(Player *player, QString cardName, int c
default: ;
}
append(finalStr.arg(sanitizeHtml(player->getName())).arg(colorStr).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(cardName))).arg(value));
appendHtml(finalStr.arg(sanitizeHtml(player->getName())).arg(colorStr).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(cardName))).arg(value));
}
void MessageLogWidget::logSetTapped(Player *player, CardItem *card, bool tapped)
@ -354,55 +514,111 @@ void MessageLogWidget::logSetTapped(Player *player, CardItem *card, bool tapped)
if (currentContext == MessageContext_MoveCard)
moveCardTapped.insert(card, tapped);
else {
QString cardStr;
if (!card)
cardStr = isFemale(player) ? tr("her permanents") : tr("his permanents");
else
cardStr = QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(card->getName()));
append(tr("%1 %2 %3.").arg(sanitizeHtml(player->getName())).arg(tapped ? tr("taps") : tr("untaps")).arg(cardStr));
QString str;
if (!card) {
if (isFemale(player)) {
if (tapped)
str = tr("%1 taps her permanents.", "female");
else
str = tr("%1 untaps her permanents.", "female");
} else {
if (tapped)
str = tr("%1 taps his permanents.", "male");
else
str = tr("%1 untaps his permanents.", "male");
}
appendHtml(str.arg(sanitizeHtml(player->getName())));
} else {
if (isFemale(player)) {
if (tapped)
str = tr("%1 taps %2.", "female");
else
str = tr("%1 untaps %2.", "female");
} else {
if (tapped)
str = tr("%1 taps %2.", "male");
else
str = tr("%1 untaps %2.", "male");
}
QString cardStr = QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(card->getName()));
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(cardStr));
}
}
}
void MessageLogWidget::logSetCounter(Player *player, QString counterName, int value, int oldValue)
{
append(tr("%1 sets counter %2 to %3 (%4%5).").arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(counterName))).arg(QString("<font color=\"blue\">%1</font>").arg(value)).arg(value > oldValue ? "+" : "").arg(value - oldValue));
QString str;
if (isFemale(player))
str = tr("%1 sets counter %2 to %3 (%4%5).", "female");
else
str = tr("%1 sets counter %2 to %3 (%4%5).", "male");
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(counterName))).arg(QString("<font color=\"blue\">%1</font>").arg(value)).arg(value > oldValue ? "+" : "").arg(value - oldValue));
}
void MessageLogWidget::logSetDoesntUntap(Player *player, CardItem *card, bool doesntUntap)
{
QString finalStr;
if (doesntUntap)
finalStr = tr("%1 sets %2 to not untap normally.");
else
finalStr = tr("%1 sets %2 to untap normally.");
append(finalStr.arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(card->getName()))));
QString str;
if (doesntUntap) {
if (isFemale(player))
str = tr("%1 sets %2 to not untap normally.", "female");
else
str = tr("%1 sets %2 to not untap normally.", "male");
} else {
if (isFemale(player))
str = tr("%1 sets %2 to untap normally.", "female");
else
str = tr("%1 sets %2 to untap normally.", "male");
}
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(card->getName()))));
}
void MessageLogWidget::logSetPT(Player *player, CardItem *card, QString newPT)
{
if (currentContext == MessageContext_MoveCard)
moveCardPT.insert(card, newPT);
else
append(tr("%1 sets PT of %2 to %3.").arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(card->getName()))).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(newPT))));
else {
QString str;
if (isFemale(player))
str = tr("%1 sets PT of %2 to %3.", "female");
else
str = tr("%1 sets PT of %2 to %3.", "male");
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(card->getName()))).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(newPT))));
}
}
void MessageLogWidget::logSetAnnotation(Player *player, CardItem *card, QString newAnnotation)
{
append(tr("%1 sets annotation of %2 to %3.").arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(card->getName()))).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(newAnnotation))));
QString str;
if (isFemale(player))
str = tr("%1 sets annotation of %2 to %3.", "female");
else
str = tr("%1 sets annotation of %2 to %3.", "male");
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(card->getName()))).arg(QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(newAnnotation))));
}
void MessageLogWidget::logDumpZone(Player *player, CardZone *zone, int numberCards)
{
if (numberCards != -1)
append(tr("%1 is looking at the top %2 cards %3.").arg(sanitizeHtml(player->getName())).arg(numberCards).arg(zone->getTranslatedName(zone->getPlayer() == player, CaseGenitive)));
else
append(tr("%1 is looking at %2.").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(zone->getPlayer() == player, CaseAccusative)));
if (numberCards != -1) {
if (isFemale(player))
appendHtml(tr("%1 is looking at the top %2 cards %3.", "female").arg(sanitizeHtml(player->getName())).arg(numberCards).arg(zone->getTranslatedName(zone->getPlayer() == player, CaseGenitive)));
else
appendHtml(tr("%1 is looking at the top %2 cards %3.", "male").arg(sanitizeHtml(player->getName())).arg(numberCards).arg(zone->getTranslatedName(zone->getPlayer() == player, CaseGenitive)));
} else {
if (isFemale(player))
appendHtml(tr("%1 is looking at %2.", "female").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(zone->getPlayer() == player, CaseAccusative)));
else
appendHtml(tr("%1 is looking at %2.", "male").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(zone->getPlayer() == player, CaseAccusative)));
}
}
void MessageLogWidget::logStopDumpZone(Player *player, CardZone *zone)
{
QString zoneName = zone->getTranslatedName(zone->getPlayer() == player, CaseAccusative);
append(tr("%1 stops looking at %2.").arg(sanitizeHtml(player->getName())).arg(zoneName));
if (isFemale(player))
appendHtml(tr("%1 stops looking at %2.", "female").arg(sanitizeHtml(player->getName())).arg(zoneName));
else
appendHtml(tr("%1 stops looking at %2.", "male").arg(sanitizeHtml(player->getName())).arg(zoneName));
}
void MessageLogWidget::logRevealCards(Player *player, CardZone *zone, int cardId, QString cardName, Player *otherPlayer)
@ -423,30 +639,80 @@ void MessageLogWidget::logRevealCards(Player *player, CardZone *zone, int cardId
else
cardStr = QString("<font color=\"blue\">%1</font>").arg(sanitizeHtml(cardName));
QString str;
if (cardId == -1) {
if (otherPlayer)
append(tr("%1 reveals %2 to %3.").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseAccusative)).arg(sanitizeHtml(otherPlayer->getName())));
else
append(tr("%1 reveals %2.").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseAccusative)));
if (otherPlayer) {
if (isFemale(player)) {
if (isFemale(otherPlayer))
str = tr("%1 reveals %2 to %3.", "p1 female, p2 female");
else
str = tr("%1 reveals %2 to %3.", "p1 female, p2 male");
} else {
if (isFemale(otherPlayer))
str = tr("%1 reveals %2 to %3.", "p1 male, p2 female");
else
str = tr("%1 reveals %2 to %3.", "p1 male, p2 male");
}
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseAccusative)).arg(sanitizeHtml(otherPlayer->getName())));
} else {
if (isFemale(player))
appendHtml(tr("%1 reveals %2.", "female").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseAccusative)));
else
appendHtml(tr("%1 reveals %2.", "male").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseAccusative)));
}
} else if (cardId == -2) {
if (otherPlayer)
append(tr("%1 randomly reveals %2%3 to %4.").arg(sanitizeHtml(player->getName())).arg(cardStr).arg(fromStr).arg(sanitizeHtml(otherPlayer->getName())));
else
append(tr("%1 randomly reveals %2%3.").arg(sanitizeHtml(player->getName())).arg(cardStr).arg(fromStr));
if (otherPlayer) {
if (isFemale(player)) {
if (isFemale(otherPlayer))
str = tr("%1 randomly reveals %2%3 to %4.", "p1 female, p2 female");
else
str = tr("%1 randomly reveals %2%3 to %4.", "p1 female, p2 male");
} else {
if (isFemale(otherPlayer))
str = tr("%1 randomly reveals %2%3 to %4.", "p1 male, p2 female");
else
str = tr("%1 randomly reveals %2%3 to %4.", "p1 male, p2 male");
}
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(cardStr).arg(fromStr).arg(sanitizeHtml(otherPlayer->getName())));
} else {
if (isFemale(player))
appendHtml(tr("%1 randomly reveals %2%3.", "female").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseAccusative)));
else
appendHtml(tr("%1 randomly reveals %2%3.", "male").arg(sanitizeHtml(player->getName())).arg(cardStr).arg(fromStr));
}
} else {
if (otherPlayer)
append(tr("%1 reveals %2%3 to %4.").arg(sanitizeHtml(player->getName())).arg(cardStr).arg(fromStr).arg(sanitizeHtml(otherPlayer->getName())));
else
append(tr("%1 reveals %2%3.").arg(sanitizeHtml(player->getName())).arg(cardStr).arg(fromStr));
if (otherPlayer) {
if (isFemale(player)) {
if (isFemale(otherPlayer))
str = tr("%1 reveals %2%3 to %4.", "p1 female, p2 female");
else
str = tr("%1 reveals %2%3 to %4.", "p1 female, p2 male");
} else {
if (isFemale(otherPlayer))
str = tr("%1 reveals %2%3 to %4.", "p1 male, p2 female");
else
str = tr("%1 reveals %2%3 to %4.", "p1 male, p2 male");
}
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(cardStr).arg(fromStr).arg(sanitizeHtml(otherPlayer->getName())));
} else {
if (isFemale(player))
appendHtml(tr("%1 reveals %2%3.", "female").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseAccusative)));
else
appendHtml(tr("%1 reveals %2%3.", "male").arg(sanitizeHtml(player->getName())).arg(cardStr).arg(fromStr));
}
}
}
void MessageLogWidget::logSetActivePlayer(Player *player)
{
soundEngine->notification();
append(QString());
append("<font color=\"green\"><b>" + tr("It is now %1's turn.").arg(player->getName()) + "</b></font>");
append(QString());
QString str;
if (isFemale(player))
str = tr("It is now %1's turn.", "female");
else
str = tr("It is now %1's turn.", "male");
appendHtml("<br><font color=\"green\"><b>" + str.arg(player->getName()) + "</b></font><br>");
}
void MessageLogWidget::logSetActivePhase(int phase)
@ -466,7 +732,7 @@ void MessageLogWidget::logSetActivePhase(int phase)
case 9: phaseName = tr("second main phase"); break;
case 10: phaseName = tr("ending phase"); break;
}
append("<font color=\"green\"><b>" + tr("It is now the %1.").arg(phaseName) + "</b></font>");
appendHtml("<font color=\"green\"><b>" + tr("It is now the %1.").arg(phaseName) + "</b></font>");
}
void MessageLogWidget::containerProcessingStarted(GameEventContext *_context)
@ -499,6 +765,7 @@ void MessageLogWidget::containerProcessingDone()
void MessageLogWidget::connectToPlayer(Player *player)
{
connect(player, SIGNAL(logConnectionStateChanged(Player *, bool)), this, SLOT(logConnectionStateChanged(Player *, bool)));
connect(player, SIGNAL(logSay(Player *, QString)), this, SLOT(logSay(Player *, QString)));
connect(player, SIGNAL(logShuffle(Player *, CardZone *)), this, SLOT(logShuffle(Player *, CardZone *)));
connect(player, SIGNAL(logRollDie(Player *, int, int)), this, SLOT(logRollDie(Player *, int, int)));
@ -522,67 +789,7 @@ void MessageLogWidget::connectToPlayer(Player *player)
connect(player, SIGNAL(logRevealCards(Player *, CardZone *, int, QString, Player *)), this, SLOT(logRevealCards(Player *, CardZone *, int, QString, Player *)));
}
MessageLogWidget::MessageLogWidget(QWidget *parent)
: QTextEdit(parent)
MessageLogWidget::MessageLogWidget(const QString &_ownName, bool _female, QWidget *parent)
: ChatView(_ownName, false, parent), female(_female)
{
setReadOnly(true);
}
void MessageLogWidget::enterEvent(QEvent * /*event*/)
{
setMouseTracking(true);
}
void MessageLogWidget::leaveEvent(QEvent * /*event*/)
{
setMouseTracking(false);
}
QString MessageLogWidget::getCardNameUnderMouse(const QPoint &pos) const
{
QTextCursor cursor(cursorForPosition(pos));
QTextBlock block(cursor.block());
QTextBlock::iterator it;
for (it = block.begin(); !(it.atEnd()); ++it) {
QTextFragment frag = it.fragment();
if (!frag.contains(cursor.position()))
continue;
if (frag.charFormat().foreground().color() == Qt::blue)
return frag.text();
break;
}
return QString();
}
void MessageLogWidget::mouseMoveEvent(QMouseEvent *event)
{
QString cardName = getCardNameUnderMouse(event->pos());
if (!cardName.isEmpty()) {
viewport()->setCursor(Qt::PointingHandCursor);
emit cardNameHovered(cardName);
} else
viewport()->setCursor(Qt::IBeamCursor);
QTextEdit::mouseMoveEvent(event);
}
void MessageLogWidget::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::MidButton) {
QString cardName = getCardNameUnderMouse(event->pos());
if (!cardName.isEmpty())
emit showCardInfoPopup(event->globalPos(), cardName);
}
QTextEdit::mousePressEvent(event);
}
void MessageLogWidget::mouseReleaseEvent(QMouseEvent *event)
{
if (event->button() == Qt::MidButton)
emit deleteCardInfoPopup();
QTextEdit::mouseReleaseEvent(event);
}

View file

@ -1,15 +1,13 @@
#ifndef MESSAGELOGWIDGET_H
#define MESSAGELOGWIDGET_H
#include <QTextEdit>
#include "chatview.h"
#include <QAbstractSocket>
#include "translation.h"
#include "protocol_datastructures.h"
class Player;
class CardZone;
class QMouseEvent;
class QEvent;
class CardInfoWidget;
class GameEventContext;
class CardItem;
@ -24,17 +22,16 @@ struct LogMoveCard {
int newX;
};
class MessageLogWidget : public QTextEdit {
class MessageLogWidget : public ChatView {
Q_OBJECT
private:
enum MessageContext { MessageContext_None, MessageContext_MoveCard, MessageContext_Mulligan };
CardInfoWidget *infoWidget;
QString sanitizeHtml(QString dirty) const;
bool isFemale(Player *player) const;
QPair<QString, QString> getFromStr(CardZone *zone, QString cardName, int position) const;
QString getCardNameUnderMouse(const QPoint &pos) const;
MessageContext currentContext;
bool female;
QList<LogMoveCard> moveCardQueue;
QMap<CardItem *, QString> moveCardPT;
@ -42,18 +39,7 @@ private:
Player *mulliganPlayer;
int mulliganNumber;
signals:
void cardNameHovered(QString cardName);
void showCardInfoPopup(QPoint pos, QString cardName);
void deleteCardInfoPopup();
public slots:
void logConnecting(QString hostname);
void logConnected();
void logDisconnected();
void logSocketError(const QString &errorString);
void logServerError(ResponseCode response);
void logProtocolVersionMismatch(int clientVersion, int serverVersion);
void logProtocolError();
void logGameJoined(int gameId);
void logJoin(Player *player);
void logLeave(Player *player);
@ -65,6 +51,7 @@ public slots:
void logNotReadyStart(Player *player);
void logConcede(Player *player);
void logGameStart();
void logConnectionStateChanged(Player *player, bool connectionState);
void logSay(Player *player, QString message);
void logSpectatorSay(QString spectatorName, QString message);
void logShuffle(Player *player, CardZone *zone);
@ -95,13 +82,7 @@ public slots:
void containerProcessingDone();
public:
void connectToPlayer(Player *player);
MessageLogWidget(QWidget *parent = 0);
protected:
void enterEvent(QEvent *event);
void leaveEvent(QEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
MessageLogWidget(const QString &_ownName, bool _female, QWidget *parent = 0);
};
#endif

View file

@ -706,6 +706,11 @@ void Player::setCardAttrHelper(GameEventContext *context, CardItem *card, const
}
}
void Player::eventConnectionStateChanged(Event_ConnectionStateChanged *event)
{
emit logConnectionStateChanged(this, event->getConnected());
}
void Player::eventSay(Event_Say *event)
{
emit logSay(this, event->getMessage());
@ -862,6 +867,8 @@ void Player::eventMoveCard(Event_MoveCard *event, GameEventContext *context)
CardItem *card = startZone->takeCard(position, event->getCardId(), startZone != targetZone);
if (!card)
return;
if (startZone != targetZone)
card->deleteCardInfoPopup();
card->setName(event->getCardName());
if (card->getAttachedTo() && (startZone != targetZone)) {
@ -1036,6 +1043,7 @@ void Player::processGameEvent(GameEvent *event, GameEventContext *context)
{
qDebug() << "player event: id=" << event->getItemId();
switch (event->getItemId()) {
case ItemId_Event_ConnectionStateChanged: eventConnectionStateChanged(static_cast<Event_ConnectionStateChanged *>(event)); break;
case ItemId_Event_Say: eventSay(static_cast<Event_Say *>(event)); break;
case ItemId_Event_Shuffle: eventShuffle(static_cast<Event_Shuffle *>(event)); break;
case ItemId_Event_RollDie: eventRollDie(static_cast<Event_RollDie *>(event)); break;

View file

@ -26,6 +26,7 @@ class CommandContainer;
class GameCommand;
class GameEvent;
class GameEventContext;
class Event_ConnectionStateChanged;
class Event_Say;
class Event_Shuffle;
class Event_RollDie;
@ -69,6 +70,7 @@ class Player : public QObject, public QGraphicsItem {
signals:
void newCardAdded(AbstractCardItem *card);
// Log events
void logConnectionStateChanged(Player *player, bool connectionState);
void logSay(Player *player, QString message);
void logShuffle(Player *player, CardZone *zone);
void logRollDie(Player *player, int sides, int roll);
@ -176,6 +178,7 @@ private:
void initSayMenu();
void eventConnectionStateChanged(Event_ConnectionStateChanged *event);
void eventSay(Event_Say *event);
void eventShuffle(Event_Shuffle *event);
void eventRollDie(Event_RollDie *event);

View file

@ -83,6 +83,7 @@ void RemoteClient::readData()
xmlWriter->writeStartDocument();
xmlWriter->writeStartElement("cockatrice_client_stream");
xmlWriter->writeAttribute("version", QString::number(ProtocolItem::protocolVersion));
xmlWriter->writeAttribute("comp", "1");
topLevelItem = new TopLevelProtocolItem;
connect(topLevelItem, SIGNAL(protocolItemReceived(ProtocolItem *)), this, SLOT(processProtocolItem(ProtocolItem *)));

View file

@ -24,6 +24,7 @@ SettingsCache::SettingsCache()
displayCardNames = settings->value("cards/displaycardnames", true).toBool();
horizontalHand = settings->value("hand/horizontal", true).toBool();
invertVerticalCoordinate = settings->value("table/invert_vertical", false).toBool();
minPlayersForMultiColumnLayout = settings->value("interface/min_players_multicolumn", 5).toInt();
tapAnimation = settings->value("cards/tapanimation", true).toBool();
zoneViewSortByName = settings->value("zoneview/sortbyname", true).toBool();
@ -143,6 +144,13 @@ void SettingsCache::setInvertVerticalCoordinate(int _invertVerticalCoordinate)
emit invertVerticalCoordinateChanged();
}
void SettingsCache::setMinPlayersForMultiColumnLayout(int _minPlayersForMultiColumnLayout)
{
minPlayersForMultiColumnLayout = _minPlayersForMultiColumnLayout;
settings->setValue("interface/min_players_multicolumn", minPlayersForMultiColumnLayout);
emit minPlayersForMultiColumnLayoutChanged();
}
void SettingsCache::setTapAnimation(int _tapAnimation)
{
tapAnimation = _tapAnimation;

View file

@ -20,6 +20,7 @@ signals:
void displayCardNamesChanged();
void horizontalHandChanged();
void invertVerticalCoordinateChanged();
void minPlayersForMultiColumnLayoutChanged();
void soundPathChanged();
private:
QSettings *settings;
@ -34,6 +35,7 @@ private:
bool displayCardNames;
bool horizontalHand;
bool invertVerticalCoordinate;
int minPlayersForMultiColumnLayout;
bool tapAnimation;
bool zoneViewSortByName, zoneViewSortByType;
bool soundEnabled;
@ -57,6 +59,7 @@ public:
bool getDisplayCardNames() const { return displayCardNames; }
bool getHorizontalHand() const { return horizontalHand; }
bool getInvertVerticalCoordinate() const { return invertVerticalCoordinate; }
int getMinPlayersForMultiColumnLayout() const { return minPlayersForMultiColumnLayout; }
bool getTapAnimation() const { return tapAnimation; }
bool getZoneViewSortByName() const { return zoneViewSortByName; }
bool getZoneViewSortByType() const { return zoneViewSortByType; }
@ -80,6 +83,7 @@ public slots:
void setDisplayCardNames(int _displayCardNames);
void setHorizontalHand(int _horizontalHand);
void setInvertVerticalCoordinate(int _invertVerticalCoordinate);
void setMinPlayersForMultiColumnLayout(int _minPlayersForMultiColumnLayout);
void setTapAnimation(int _tapAnimation);
void setZoneViewSortByName(int _zoneViewSortByName);
void setZoneViewSortByType(int _zoneViewSortByType);

View file

@ -25,7 +25,7 @@ SoundEngine::SoundEngine(QObject *parent)
void SoundEngine::cacheData()
{
static const QStringList fileNames = QStringList()
<< "notification" << "draw" << "playcard" << "shuffle" << "tap" << "untap";
<< "notification" << "draw" << "playcard" << "shuffle" << "tap" << "untap" << "cuckoo";
for (int i = 0; i < fileNames.size(); ++i) {
QFile file(settingsCache->getSoundPath() + "/" + fileNames[i] + ".raw");
file.open(QIODevice::ReadOnly);
@ -75,3 +75,8 @@ void SoundEngine::untap()
{
playSound("untap");
}
void SoundEngine::cuckoo()
{
playSound("cuckoo");
}

View file

@ -25,6 +25,7 @@ public slots:
void shuffle();
void tap();
void untap();
void cuckoo();
};
extern SoundEngine *soundEngine;

32
cockatrice/src/tab.cpp Normal file
View file

@ -0,0 +1,32 @@
#include "tab.h"
#include "cardinfowidget.h"
#include <QDesktopWidget>
#include <QApplication>
Tab::Tab(TabSupervisor *_tabSupervisor, QWidget *parent)
: QWidget(parent), tabMenu(0), tabSupervisor(_tabSupervisor), contentsChanged(false), infoPopup(0)
{
}
void Tab::showCardInfoPopup(const QPoint &pos, const QString &cardName)
{
infoPopup = new CardInfoWidget(CardInfoWidget::ModePopUp, 0, Qt::Widget | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint | Qt::WindowStaysOnTopHint);
infoPopup->setAttribute(Qt::WA_TransparentForMouseEvents);
infoPopup->setCard(cardName);
QRect screenRect = qApp->desktop()->screenGeometry(this);
infoPopup->move(
qMax(screenRect.left(), qMin(pos.x() - infoPopup->width() / 2, screenRect.left() + screenRect.width() - infoPopup->width())),
qMax(screenRect.top(), qMin(pos.y() - infoPopup->height() / 2, screenRect.top() + screenRect.height() - infoPopup->height()))
);
infoPopup->show();
}
void Tab::deleteCardInfoPopup(const QString &cardName)
{
if (infoPopup) {
if ((infoPopup->getCardName() == cardName) || (cardName == "_")) {
infoPopup->deleteLater();
infoPopup = 0;
}
}
}

View file

@ -5,19 +5,23 @@
class QMenu;
class TabSupervisor;
class CardInfoWidget;
class Tab : public QWidget {
Q_OBJECT
signals:
void userEvent();
void userEvent(bool globalEvent = true);
protected:
QMenu *tabMenu;
TabSupervisor *tabSupervisor;
protected slots:
void showCardInfoPopup(const QPoint &pos, const QString &cardName);
void deleteCardInfoPopup(const QString &cardName);
private:
bool contentsChanged;
CardInfoWidget *infoPopup;
public:
Tab(TabSupervisor *_tabSupervisor, QWidget *parent = 0)
: QWidget(parent), tabMenu(0), tabSupervisor(_tabSupervisor), contentsChanged(false) { }
Tab(TabSupervisor *_tabSupervisor, QWidget *parent = 0);
QMenu *getTabMenu() const { return tabMenu; }
bool getContentsChanged() const { return contentsChanged; }
void setContentsChanged(bool _contentsChanged) { contentsChanged = _contentsChanged; }

View file

@ -1,19 +1,72 @@
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QGridLayout>
#include <QPushButton>
#include <QGroupBox>
#include <QMessageBox>
#include <QSpinBox>
#include <QLabel>
#include <QLineEdit>
#include "tab_admin.h"
#include "abstractclient.h"
#include "protocol_items.h"
TabAdmin::TabAdmin(TabSupervisor *_tabSupervisor, AbstractClient *_client, QWidget *parent)
: Tab(_tabSupervisor, parent), locked(true), client(_client)
ShutdownDialog::ShutdownDialog(QWidget *parent)
: QDialog(parent)
{
QLabel *reasonLabel = new QLabel(tr("&Reason for shutdown:"));
reasonEdit = new QLineEdit;
reasonLabel->setBuddy(reasonEdit);
QLabel *minutesLabel = new QLabel(tr("&Time until shutdown (minutes):"));
minutesEdit = new QSpinBox;
minutesLabel->setBuddy(minutesEdit);
minutesEdit->setMinimum(0);
minutesEdit->setValue(5);
QPushButton *okButton = new QPushButton(tr("&OK"));
okButton->setAutoDefault(true);
okButton->setDefault(true);
connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
QPushButton *cancelButton = new QPushButton(tr("&Cancel"));
connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
QHBoxLayout *buttonLayout = new QHBoxLayout;
buttonLayout->addStretch();
buttonLayout->addWidget(okButton);
buttonLayout->addWidget(cancelButton);
QGridLayout *mainLayout = new QGridLayout;
mainLayout->addWidget(reasonLabel, 0, 0);
mainLayout->addWidget(reasonEdit, 0, 1);
mainLayout->addWidget(minutesLabel, 1, 0);
mainLayout->addWidget(minutesEdit, 1, 1);
mainLayout->addLayout(buttonLayout, 2, 0, 1, 2);
setLayout(mainLayout);
setWindowTitle(tr("Shut down server"));
}
QString ShutdownDialog::getReason() const
{
return reasonEdit->text();
}
int ShutdownDialog::getMinutes() const
{
return minutesEdit->value();
}
TabAdmin::TabAdmin(TabSupervisor *_tabSupervisor, AbstractClient *_client, bool _fullAdmin, QWidget *parent)
: Tab(_tabSupervisor, parent), locked(true), client(_client), fullAdmin(_fullAdmin)
{
updateServerMessageButton = new QPushButton;
connect(updateServerMessageButton, SIGNAL(clicked()), this, SLOT(actUpdateServerMessage()));
shutdownServerButton = new QPushButton;
connect(shutdownServerButton, SIGNAL(clicked()), this, SLOT(actShutdownServer()));
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(updateServerMessageButton);
vbox->addWidget(shutdownServerButton);
vbox->addStretch();
adminGroupBox = new QGroupBox;
@ -38,6 +91,7 @@ TabAdmin::TabAdmin(TabSupervisor *_tabSupervisor, AbstractClient *_client, QWidg
void TabAdmin::retranslateUi()
{
updateServerMessageButton->setText(tr("Update server &message"));
shutdownServerButton->setText(tr("&Shut down server"));
adminGroupBox->setTitle(tr("Server administration functions"));
unlockButton->setText(tr("&Unlock functions"));
@ -49,10 +103,18 @@ void TabAdmin::actUpdateServerMessage()
client->sendCommand(new Command_UpdateServerMessage());
}
void TabAdmin::actShutdownServer()
{
ShutdownDialog dlg;
if (dlg.exec())
client->sendCommand(new Command_ShutdownServer(dlg.getReason(), dlg.getMinutes()));
}
void TabAdmin::actUnlock()
{
if (QMessageBox::question(this, tr("Unlock administration functions"), tr("Do you really want to unlock the administration functions?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) {
adminGroupBox->setEnabled(true);
if (fullAdmin)
adminGroupBox->setEnabled(true);
lockButton->setEnabled(true);
unlockButton->setEnabled(false);
locked = false;
@ -61,7 +123,8 @@ void TabAdmin::actUnlock()
void TabAdmin::actLock()
{
adminGroupBox->setEnabled(false);
if (fullAdmin)
adminGroupBox->setEnabled(false);
lockButton->setEnabled(false);
unlockButton->setEnabled(true);
locked = true;

View file

@ -2,27 +2,43 @@
#define TAB_ADMIN_H
#include "tab.h"
#include <QDialog>
class AbstractClient;
class QGroupBox;
class QPushButton;
class QSpinBox;
class QLineEdit;
class ShutdownDialog : public QDialog {
Q_OBJECT
private:
QLineEdit *reasonEdit;
QSpinBox *minutesEdit;
public:
ShutdownDialog(QWidget *parent = 0);
QString getReason() const;
int getMinutes() const;
};
class TabAdmin : public Tab {
Q_OBJECT
private:
bool locked;
AbstractClient *client;
QPushButton *updateServerMessageButton;
bool fullAdmin;
QPushButton *updateServerMessageButton, *shutdownServerButton;
QGroupBox *adminGroupBox;
QPushButton *unlockButton, *lockButton;
private slots:
void actUpdateServerMessage();
void actShutdownServer();
void actUnlock();
void actLock();
public:
TabAdmin(TabSupervisor *_tabSupervisor, AbstractClient *_client, QWidget *parent = 0);
TabAdmin(TabSupervisor *_tabSupervisor, AbstractClient *_client, bool _fullAdmin, QWidget *parent = 0);
void retranslateUi();
QString getTabText() const { return tr("Administration"); }
bool getLocked() const { return locked; }

View file

@ -5,8 +5,6 @@
#include <QAction>
#include <QMessageBox>
#include <QFileDialog>
#include <QApplication>
#include <QDesktopWidget>
#include "tab_game.h"
#include "cardinfowidget.h"
#include "playerlistwidget.h"
@ -160,8 +158,8 @@ void DeckViewContainer::setDeck(DeckList *deck)
readyStartButton->setEnabled(true);
}
TabGame::TabGame(TabSupervisor *_tabSupervisor, QList<AbstractClient *> &_clients, int _gameId, const QString &_gameDescription, int _localPlayerId, bool _spectator, bool _spectatorsCanTalk, bool _spectatorsSeeEverything, bool _resuming)
: Tab(_tabSupervisor), clients(_clients), gameId(_gameId), gameDescription(_gameDescription), localPlayerId(_localPlayerId), spectator(_spectator), spectatorsCanTalk(_spectatorsCanTalk), spectatorsSeeEverything(_spectatorsSeeEverything), started(false), resuming(_resuming), currentPhase(-1), infoPopup(0)
TabGame::TabGame(TabSupervisor *_tabSupervisor, QList<AbstractClient *> &_clients, int _gameId, const QString &_gameDescription, int _localPlayerId, ServerInfo_User *_userInfo, bool _spectator, bool _spectatorsCanTalk, bool _spectatorsSeeEverything, bool _resuming)
: Tab(_tabSupervisor), clients(_clients), gameId(_gameId), gameDescription(_gameDescription), localPlayerId(_localPlayerId), spectator(_spectator), spectatorsCanTalk(_spectatorsCanTalk), spectatorsSeeEverything(_spectatorsSeeEverything), started(false), resuming(_resuming), currentPhase(-1)
{
phasesToolbar = new PhasesToolbar;
phasesToolbar->hide();
@ -178,10 +176,10 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, QList<AbstractClient *> &_client
timeElapsedLabel = new QLabel;
timeElapsedLabel->setAlignment(Qt::AlignCenter);
messageLog = new MessageLogWidget;
messageLog = new MessageLogWidget(_userInfo->getName(), _userInfo->getGender() == ServerInfo_User::Female);
connect(messageLog, SIGNAL(cardNameHovered(QString)), cardInfo, SLOT(setCard(QString)));
connect(messageLog, SIGNAL(showCardInfoPopup(QPoint, QString)), this, SLOT(showCardInfoPopup(QPoint, QString)));
connect(messageLog, SIGNAL(deleteCardInfoPopup()), this, SLOT(deleteCardInfoPopup()));
connect(messageLog, SIGNAL(deleteCardInfoPopup(QString)), this, SLOT(deleteCardInfoPopup(QString)));
sayLabel = new QLabel;
sayEdit = new QLineEdit;
sayLabel->setBuddy(sayEdit);
@ -747,7 +745,7 @@ void TabGame::newCardAdded(AbstractCardItem *card)
{
connect(card, SIGNAL(hovered(AbstractCardItem *)), cardInfo, SLOT(setCard(AbstractCardItem *)));
connect(card, SIGNAL(showCardInfoPopup(QPoint, QString)), this, SLOT(showCardInfoPopup(QPoint, QString)));
connect(card, SIGNAL(deleteCardInfoPopup()), this, SLOT(deleteCardInfoPopup()));
connect(card, SIGNAL(deleteCardInfoPopup(QString)), this, SLOT(deleteCardInfoPopup(QString)));
}
CardItem *TabGame::getCard(int playerId, const QString &zoneName, int cardId) const
@ -779,24 +777,3 @@ Player *TabGame::getActiveLocalPlayer() const
return 0;
}
void TabGame::showCardInfoPopup(const QPoint &pos, const QString &cardName)
{
infoPopup = new CardInfoWidget(CardInfoWidget::ModePopUp, 0, Qt::Widget | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint | Qt::WindowStaysOnTopHint);
infoPopup->setAttribute(Qt::WA_TransparentForMouseEvents);
infoPopup->setCard(cardName);
QRect screenRect = qApp->desktop()->screenGeometry(this);
infoPopup->move(
qMax(screenRect.left(), qMin(pos.x() - infoPopup->width() / 2, screenRect.left() + screenRect.width() - infoPopup->width())),
qMax(screenRect.top(), qMin(pos.y() - infoPopup->height() / 2, screenRect.top() + screenRect.height() - infoPopup->height()))
);
infoPopup->show();
}
void TabGame::deleteCardInfoPopup()
{
if (infoPopup) {
infoPopup->deleteLater();
infoPopup = 0;
}
}

View file

@ -100,7 +100,6 @@ private:
int activePlayer;
QSplitter *splitter;
CardInfoWidget *infoPopup;
CardInfoWidget *cardInfo;
PlayerListWidget *playerListWidget;
QLabel *timeElapsedLabel;
@ -147,8 +146,6 @@ signals:
void openMessageDialog(const QString &userName, bool focus);
private slots:
void newCardAdded(AbstractCardItem *card);
void showCardInfoPopup(const QPoint &pos, const QString &cardName);
void deleteCardInfoPopup();
void actConcede();
void actLeaveGame();
@ -158,7 +155,7 @@ private slots:
void actNextPhase();
void actNextTurn();
public:
TabGame(TabSupervisor *_tabSupervisor, QList<AbstractClient *> &_clients, int _gameId, const QString &_gameDescription, int _localPlayerId, bool _spectator, bool _spectatorsCanTalk, bool _spectatorsSeeEverything, bool _resuming);
TabGame(TabSupervisor *_tabSupervisor, QList<AbstractClient *> &_clients, int _gameId, const QString &_gameDescription, int _localPlayerId, ServerInfo_User *_userInfo, bool _spectator, bool _spectatorsCanTalk, bool _spectatorsSeeEverything, bool _resuming);
~TabGame();
void retranslateUi();
void closeRequest();

View file

@ -11,7 +11,9 @@
TabMessage::TabMessage(TabSupervisor *_tabSupervisor, AbstractClient *_client, const QString &_ownName, const QString &_userName)
: Tab(_tabSupervisor), client(_client), userName(_userName), userOnline(true)
{
chatView = new ChatView(_ownName);
chatView = new ChatView(_ownName, true);
connect(chatView, SIGNAL(showCardInfoPopup(QPoint, QString)), this, SLOT(showCardInfoPopup(QPoint, QString)));
connect(chatView, SIGNAL(deleteCardInfoPopup(QString)), this, SLOT(deleteCardInfoPopup(QString)));
sayEdit = new QLineEdit;
connect(sayEdit, SIGNAL(returnPressed()), this, SLOT(sendMessage()));

View file

@ -4,127 +4,17 @@
#include <QMenu>
#include <QAction>
#include <QPushButton>
#include <QHeaderView>
#include <QMessageBox>
#include <QCheckBox>
#include <QInputDialog>
#include <QLabel>
#include <QSplitter>
#include "dlg_creategame.h"
#include "tab_supervisor.h"
#include "tab_room.h"
#include "userlist.h"
#include "abstractclient.h"
#include "protocol_items.h"
#include "gamesmodel.h"
#include "chatview.h"
GameSelector::GameSelector(AbstractClient *_client, TabRoom *_room, QWidget *parent)
: QGroupBox(parent), client(_client), room(_room)
{
gameListView = new QTreeView;
gameListModel = new GamesModel(room->getGameTypes(), this);
gameListProxyModel = new GamesProxyModel(this);
gameListProxyModel->setSourceModel(gameListModel);
gameListProxyModel->setSortCaseSensitivity(Qt::CaseInsensitive);
gameListView->setModel(gameListProxyModel);
gameListView->header()->setResizeMode(0, QHeaderView::ResizeToContents);
gameListView->setSortingEnabled(true);
showFullGamesCheckBox = new QCheckBox;
createButton = new QPushButton;
joinButton = new QPushButton;
spectateButton = new QPushButton;
QHBoxLayout *buttonLayout = new QHBoxLayout;
buttonLayout->addWidget(showFullGamesCheckBox);
buttonLayout->addStretch();
buttonLayout->addWidget(createButton);
buttonLayout->addWidget(joinButton);
buttonLayout->addWidget(spectateButton);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(gameListView);
mainLayout->addLayout(buttonLayout);
retranslateUi();
setLayout(mainLayout);
setMinimumWidth((qreal) (gameListView->columnWidth(0) * gameListModel->columnCount()) / 1.5);
setMinimumHeight(200);
connect(showFullGamesCheckBox, SIGNAL(stateChanged(int)), this, SLOT(showFullGamesChanged(int)));
connect(createButton, SIGNAL(clicked()), this, SLOT(actCreate()));
connect(joinButton, SIGNAL(clicked()), this, SLOT(actJoin()));
connect(spectateButton, SIGNAL(clicked()), this, SLOT(actJoin()));
}
void GameSelector::showFullGamesChanged(int state)
{
gameListProxyModel->setFullGamesVisible(state);
}
void GameSelector::actCreate()
{
DlgCreateGame dlg(client, room->getRoomId(), room->getGameTypes(), this);
dlg.exec();
}
void GameSelector::checkResponse(ResponseCode response)
{
createButton->setEnabled(true);
joinButton->setEnabled(true);
spectateButton->setEnabled(true);
switch (response) {
case RespWrongPassword: QMessageBox::critical(this, tr("Error"), tr("Wrong password.")); break;
case RespSpectatorsNotAllowed: QMessageBox::critical(this, tr("Error"), tr("Spectators are not allowed in this game.")); break;
case RespGameFull: QMessageBox::critical(this, tr("Error"), tr("The game is already full.")); break;
case RespNameNotFound: QMessageBox::critical(this, tr("Error"), tr("The game does not exist any more.")); break;
case RespUserLevelTooLow: QMessageBox::critical(this, tr("Error"), tr("This game is only open to registered users.")); break;
case RespOnlyBuddies: QMessageBox::critical(this, tr("Error"), tr("This game is only open to its creator's buddies.")); break;
case RespInIgnoreList: QMessageBox::critical(this, tr("Error"), tr("You are being ignored by the creator of this game.")); break;
default: ;
}
}
void GameSelector::actJoin()
{
bool spectator = sender() == spectateButton;
QModelIndex ind = gameListView->currentIndex();
if (!ind.isValid())
return;
ServerInfo_Game *game = gameListModel->getGame(ind.data(Qt::UserRole).toInt());
QString password;
if (game->getHasPassword() && !(spectator && !game->getSpectatorsNeedPassword())) {
bool ok;
password = QInputDialog::getText(this, tr("Join game"), tr("Password:"), QLineEdit::Password, QString(), &ok);
if (!ok)
return;
}
Command_JoinGame *commandJoinGame = new Command_JoinGame(room->getRoomId(), game->getGameId(), password, spectator);
connect(commandJoinGame, SIGNAL(finished(ResponseCode)), this, SLOT(checkResponse(ResponseCode)));
client->sendCommand(commandJoinGame);
createButton->setEnabled(false);
joinButton->setEnabled(false);
spectateButton->setEnabled(false);
}
void GameSelector::retranslateUi()
{
setTitle(tr("Games"));
showFullGamesCheckBox->setText(tr("Show &full games"));
createButton->setText(tr("C&reate"));
joinButton->setText(tr("&Join"));
spectateButton->setText(tr("J&oin as spectator"));
}
void GameSelector::processGameInfo(ServerInfo_Game *info)
{
gameListModel->updateGameList(info);
}
#include "gameselector.h"
TabRoom::TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, const QString &_ownName, ServerInfo_Room *info)
: Tab(_tabSupervisor), client(_client), roomId(info->getRoomId()), roomName(info->getName()), ownName(_ownName)
@ -133,11 +23,15 @@ TabRoom::TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, const Q
for (int i = 0; i < gameTypeList.size(); ++i)
gameTypes.insert(gameTypeList[i]->getGameTypeId(), gameTypeList[i]->getDescription());
gameSelector = new GameSelector(client, this);
QMap<int, GameTypeMap> tempMap;
tempMap.insert(info->getRoomId(), gameTypes);
gameSelector = new GameSelector(client, this, QMap<int, QString>(), tempMap);
userList = new UserList(tabSupervisor, client, UserList::RoomList);
connect(userList, SIGNAL(openMessageDialog(const QString &, bool)), this, SIGNAL(openMessageDialog(const QString &, bool)));
chatView = new ChatView(ownName);
chatView = new ChatView(ownName, true);
connect(chatView, SIGNAL(showCardInfoPopup(QPoint, QString)), this, SLOT(showCardInfoPopup(QPoint, QString)));
connect(chatView, SIGNAL(deleteCardInfoPopup(QString)), this, SLOT(deleteCardInfoPopup(QString)));
sayLabel = new QLabel;
sayEdit = new QLineEdit;
sayLabel->setBuddy(sayEdit);
@ -262,5 +156,5 @@ void TabRoom::processLeaveRoomEvent(Event_LeaveRoom *event)
void TabRoom::processSayEvent(Event_RoomSay *event)
{
chatView->appendMessage(event->getPlayerName(), event->getMessage());
emit userEvent();
emit userEvent(false);
}

View file

@ -2,20 +2,16 @@
#define TAB_ROOM_H
#include "tab.h"
#include "protocol_datastructures.h"
#include <QGroupBox>
#include <QMap>
class AbstractClient;
class UserList;
class QLabel;
class ChatView;
class QLineEdit;
class QTreeView;
class QPushButton;
class QTextTable;
class QCheckBox;
class GamesModel;
class GamesProxyModel;
class RoomEvent;
class ServerInfo_Room;
class ServerInfo_Game;
@ -24,31 +20,7 @@ class Event_JoinRoom;
class Event_LeaveRoom;
class Event_RoomSay;
class ProtocolResponse;
class TabRoom;
class GameSelector : public QGroupBox {
Q_OBJECT
private slots:
void showFullGamesChanged(int state);
void actCreate();
void actJoin();
void checkResponse(ResponseCode response);
signals:
void gameJoined(int gameId);
private:
AbstractClient *client;
TabRoom *room;
QTreeView *gameListView;
GamesModel *gameListModel;
GamesProxyModel *gameListProxyModel;
QPushButton *createButton, *joinButton, *spectateButton;
QCheckBox *showFullGamesCheckBox;
public:
GameSelector(AbstractClient *_client, TabRoom *_room, QWidget *parent = 0);
void retranslateUi();
void processGameInfo(ServerInfo_Game *info);
};
class GameSelector;
class TabRoom : public Tab {
Q_OBJECT

View file

@ -101,15 +101,14 @@ void TabSupervisor::retranslateUi()
int TabSupervisor::myAddTab(Tab *tab)
{
connect(tab, SIGNAL(userEvent()), this, SLOT(tabUserEvent()));
connect(tab, SIGNAL(userEvent(bool)), this, SLOT(tabUserEvent(bool)));
return addTab(tab, tab->getTabText());
}
void TabSupervisor::start(AbstractClient *_client, ServerInfo_User *userInfo)
void TabSupervisor::start(AbstractClient *_client, ServerInfo_User *_userInfo)
{
client = _client;
userName = userInfo->getName();
userLevel = userInfo->getUserLevel();
userInfo = new ServerInfo_User(_userInfo);
connect(client, SIGNAL(roomEventReceived(RoomEvent *)), this, SLOT(processRoomEvent(RoomEvent *)));
connect(client, SIGNAL(gameEventContainerReceived(GameEventContainer *)), this, SLOT(processGameEventContainer(GameEventContainer *)));
@ -135,8 +134,8 @@ void TabSupervisor::start(AbstractClient *_client, ServerInfo_User *userInfo)
} else
tabDeckStorage = 0;
if (userInfo->getUserLevel() & ServerInfo_User::IsAdmin) {
tabAdmin = new TabAdmin(this, client);
if (userInfo->getUserLevel() & ServerInfo_User::IsModerator) {
tabAdmin = new TabAdmin(this, client, (userInfo->getUserLevel() & ServerInfo_User::IsAdmin));
myAddTab(tabAdmin);
} else
tabAdmin = 0;
@ -146,6 +145,7 @@ void TabSupervisor::start(AbstractClient *_client, ServerInfo_User *userInfo)
void TabSupervisor::startLocal(const QList<AbstractClient *> &_clients)
{
userInfo = new ServerInfo_User;
localClients = _clients;
for (int i = 0; i < localClients.size(); ++i)
connect(localClients[i], SIGNAL(gameEventContainerReceived(GameEventContainer *)), this, SLOT(processGameEventContainer(GameEventContainer *)));
@ -192,6 +192,9 @@ void TabSupervisor::stop()
while (messageIterator.hasNext())
messageIterator.next().value()->deleteLater();
messageTabs.clear();
delete userInfo;
userInfo = 0;
}
void TabSupervisor::updatePingTime(int value, int max)
@ -221,7 +224,7 @@ void TabSupervisor::addCloseButtonToTab(Tab *tab, int tabIndex)
void TabSupervisor::gameJoined(Event_GameJoined *event)
{
TabGame *tab = new TabGame(this, QList<AbstractClient *>() << client, event->getGameId(), event->getGameDescription(), event->getPlayerId(), event->getSpectator(), event->getSpectatorsCanTalk(), event->getSpectatorsSeeEverything(), event->getResuming());
TabGame *tab = new TabGame(this, QList<AbstractClient *>() << client, event->getGameId(), event->getGameDescription(), event->getPlayerId(), userInfo, event->getSpectator(), event->getSpectatorsCanTalk(), event->getSpectatorsSeeEverything(), event->getResuming());
connect(tab, SIGNAL(gameClosing(TabGame *)), this, SLOT(gameLeft(TabGame *)));
connect(tab, SIGNAL(openMessageDialog(const QString &, bool)), this, SLOT(addMessageTab(const QString &, bool)));
int tabIndex = myAddTab(tab);
@ -232,7 +235,7 @@ void TabSupervisor::gameJoined(Event_GameJoined *event)
void TabSupervisor::localGameJoined(Event_GameJoined *event)
{
TabGame *tab = new TabGame(this, localClients, event->getGameId(), event->getGameDescription(), event->getPlayerId(), event->getSpectator(), event->getSpectatorsCanTalk(), event->getSpectatorsSeeEverything(), event->getResuming());
TabGame *tab = new TabGame(this, localClients, event->getGameId(), event->getGameDescription(), event->getPlayerId(), userInfo, event->getSpectator(), event->getSpectatorsCanTalk(), event->getSpectatorsSeeEverything(), event->getResuming());
connect(tab, SIGNAL(gameClosing(TabGame *)), this, SLOT(gameLeft(TabGame *)));
int tabIndex = myAddTab(tab);
addCloseButtonToTab(tab, tabIndex);
@ -258,7 +261,7 @@ void TabSupervisor::gameLeft(TabGame *tab)
void TabSupervisor::addRoomTab(ServerInfo_Room *info, bool setCurrent)
{
TabRoom *tab = new TabRoom(this, client, userName, info);
TabRoom *tab = new TabRoom(this, client, userInfo->getName(), info);
connect(tab, SIGNAL(roomClosing(TabRoom *)), this, SLOT(roomLeft(TabRoom *)));
connect(tab, SIGNAL(openMessageDialog(const QString &, bool)), this, SLOT(addMessageTab(const QString &, bool)));
int tabIndex = myAddTab(tab);
@ -278,10 +281,10 @@ void TabSupervisor::roomLeft(TabRoom *tab)
TabMessage *TabSupervisor::addMessageTab(const QString &receiverName, bool focus)
{
if (receiverName == userName)
if (receiverName == userInfo->getName())
return 0;
TabMessage *tab = new TabMessage(this, client, userName, receiverName);
TabMessage *tab = new TabMessage(this, client, userInfo->getName(), receiverName);
connect(tab, SIGNAL(talkClosing(TabMessage *)), this, SLOT(talkLeft(TabMessage *)));
int tabIndex = myAddTab(tab);
addCloseButtonToTab(tab, tabIndex);
@ -299,14 +302,15 @@ void TabSupervisor::talkLeft(TabMessage *tab)
removeTab(indexOf(tab));
}
void TabSupervisor::tabUserEvent()
void TabSupervisor::tabUserEvent(bool globalEvent)
{
Tab *tab = static_cast<Tab *>(sender());
if (tab != currentWidget()) {
tab->setContentsChanged(true);
setTabIcon(indexOf(tab), *tabChangedIcon);
}
QApplication::alert(this);
if (globalEvent)
QApplication::alert(this);
}
void TabSupervisor::processRoomEvent(RoomEvent *event)
@ -371,3 +375,8 @@ bool TabSupervisor::getAdminLocked() const
return true;
return tabAdmin->getLocked();
}
int TabSupervisor::getUserLevel() const
{
return userInfo->getUserLevel();
}

View file

@ -37,8 +37,7 @@ protected:
class TabSupervisor : public QTabWidget {
Q_OBJECT
private:
QString userName;
int userLevel;
ServerInfo_User *userInfo;
QIcon *tabChangedIcon;
AbstractClient *client;
QList<AbstractClient *> localClients;
@ -61,7 +60,7 @@ public:
int getGameCount() const { return gameTabs.size(); }
TabUserLists *getUserListsTab() const { return tabUserLists; }
bool getAdminLocked() const;
int getUserLevel() const { return userLevel; }
int getUserLevel() const;
signals:
void setMenu(QMenu *menu);
void localGameEnded();
@ -78,7 +77,7 @@ private slots:
void processUserLeft(const QString &userName);
void processUserJoined(const QString &userName);
void talkLeft(TabMessage *tab);
void tabUserEvent();
void tabUserEvent(bool globalEvent);
void processRoomEvent(RoomEvent *event);
void processGameEventContainer(GameEventContainer *cont);
void processMessageEvent(Event_Message *event);

View file

@ -5,11 +5,59 @@
#include "pixmapgenerator.h"
#include "userinfobox.h"
#include "protocol_items.h"
#include "gameselector.h"
#include <QHeaderView>
#include <QVBoxLayout>
#include <QMouseEvent>
#include <QMenu>
#include <QInputDialog>
#include <QLabel>
#include <QSpinBox>
#include <QPlainTextEdit>
#include <QPushButton>
#include <QHBoxLayout>
BanDialog::BanDialog(QWidget *parent)
: QDialog(parent)
{
QLabel *durationLabel = new QLabel(tr("Please enter the duration of the ban (in minutes).\nEnter 0 for an indefinite ban."));
durationEdit = new QSpinBox;
durationEdit->setMinimum(0);
durationEdit->setValue(5);
QLabel *reasonLabel = new QLabel(tr("Please enter the reason for the ban.\nThis is only saved for moderators and cannot be seen by the banned person."));
reasonEdit = new QPlainTextEdit;
QPushButton *okButton = new QPushButton(tr("&OK"));
okButton->setAutoDefault(true);
connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
QPushButton *cancelButton = new QPushButton(tr("&Cancel"));
connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
QHBoxLayout *buttonLayout = new QHBoxLayout;
buttonLayout->addStretch();
buttonLayout->addWidget(okButton);
buttonLayout->addWidget(cancelButton);
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(durationLabel);
vbox->addWidget(durationEdit);
vbox->addWidget(reasonLabel);
vbox->addWidget(reasonEdit);
vbox->addLayout(buttonLayout);
setLayout(vbox);
setWindowTitle(tr("Ban user from server"));
}
int BanDialog::getMinutes() const
{
return durationEdit->value();
}
QString BanDialog::getReason() const
{
return reasonEdit->toPlainText();
}
UserListItemDelegate::UserListItemDelegate(QObject *const parent)
: QStyledItemDelegate(parent)
@ -59,6 +107,7 @@ UserList::UserList(TabSupervisor *_tabSupervisor, AbstractClient *_client, UserL
userTree->setRootIsDecorated(false);
userTree->setIconSize(QSize(20, 12));
userTree->setItemDelegate(itemDelegate);
userTree->setAlternatingRowColors(true);
connect(userTree, SIGNAL(itemActivated(QTreeWidgetItem *, int)), this, SLOT(userClicked(QTreeWidgetItem *, int)));
QVBoxLayout *vbox = new QVBoxLayout;
@ -163,6 +212,35 @@ void UserList::userClicked(QTreeWidgetItem *item, int /*column*/)
emit openMessageDialog(item->data(2, Qt::UserRole).toString(), true);
}
void UserList::gamesOfUserReceived(ProtocolResponse *resp)
{
Command_GetGamesOfUser *command = static_cast<Command_GetGamesOfUser *>(sender());
Response_GetGamesOfUser *response = qobject_cast<Response_GetGamesOfUser *>(resp);
if (!response)
return;
QMap<int, GameTypeMap> gameTypeMap;
QMap<int, QString> roomMap;
const QList<ServerInfo_Room *> roomList = response->getRoomList();
for (int i = 0; i < roomList.size(); ++i) {
roomMap.insert(roomList[i]->getRoomId(), roomList[i]->getName());
const QList<ServerInfo_GameType *> gameTypeList = roomList[i]->getGameTypeList();
GameTypeMap tempMap;
for (int j = 0; j < gameTypeList.size(); ++j)
tempMap.insert(gameTypeList[j]->getGameTypeId(), gameTypeList[j]->getDescription());
gameTypeMap.insert(roomList[i]->getRoomId(), tempMap);
}
GameSelector *selector = new GameSelector(client, 0, roomMap, gameTypeMap);
const QList<ServerInfo_Game *> gameList = response->getGameList();
for (int i = 0; i < gameList.size(); ++i)
selector->processGameInfo(gameList[i]);
selector->setWindowTitle(tr("%1's games").arg(command->getUserName()));
selector->setAttribute(Qt::WA_DeleteOnClose);
selector->show();
}
void UserList::showContextMenu(const QPoint &pos, const QModelIndex &index)
{
const QString &userName = index.sibling(index.row(), 2).data(Qt::UserRole).toString();
@ -172,6 +250,7 @@ void UserList::showContextMenu(const QPoint &pos, const QModelIndex &index)
aUserName->setEnabled(false);
QAction *aDetails = new QAction(tr("User &details"), this);
QAction *aChat = new QAction(tr("Direct &chat"), this);
QAction *aShowGames = new QAction(tr("Show this user's &games"), this);
QAction *aAddToBuddyList = new QAction(tr("Add to &buddy list"), this);
QAction *aRemoveFromBuddyList = new QAction(tr("Remove from &buddy list"), this);
QAction *aAddToIgnoreList = new QAction(tr("Add to &ignore list"), this);
@ -182,6 +261,7 @@ void UserList::showContextMenu(const QPoint &pos, const QModelIndex &index)
menu->addAction(aUserName);
menu->addSeparator();
menu->addAction(aDetails);
menu->addAction(aShowGames);
menu->addAction(aChat);
if ((userLevel & ServerInfo_User::IsRegistered) && (tabSupervisor->getUserLevel() & ServerInfo_User::IsRegistered)) {
menu->addSeparator();
@ -210,15 +290,18 @@ void UserList::showContextMenu(const QPoint &pos, const QModelIndex &index)
client->sendCommand(new Command_AddToList("buddy", userName));
else if (actionClicked == aRemoveFromBuddyList)
client->sendCommand(new Command_RemoveFromList("buddy", userName));
else if (actionClicked == aAddToIgnoreList)
else if (actionClicked == aShowGames) {
Command *cmd = new Command_GetGamesOfUser(userName);
connect(cmd, SIGNAL(finished(ProtocolResponse *)), this, SLOT(gamesOfUserReceived(ProtocolResponse *)));
client->sendCommand(cmd);
} else if (actionClicked == aAddToIgnoreList)
client->sendCommand(new Command_AddToList("ignore", userName));
else if (actionClicked == aRemoveFromIgnoreList)
client->sendCommand(new Command_RemoveFromList("ignore", userName));
else if (actionClicked == aBan) {
bool ok;
int minutes = QInputDialog::getInt(this, tr("Duration"), tr("Please enter the duration of the ban (in minutes).\nEnter 0 for an indefinite ban."), 0, 0, 2147483647, 10, &ok);
if (ok)
client->sendCommand(new Command_BanFromServer(userName, minutes));
BanDialog dlg(this);
if (dlg.exec())
client->sendCommand(new Command_BanFromServer(userName, dlg.getMinutes(), dlg.getReason()));
}
delete menu;

View file

@ -1,6 +1,7 @@
#ifndef USERLIST_H
#define USERLIST_H
#include <QDialog>
#include <QGroupBox>
#include <QTreeWidgetItem>
#include <QStyledItemDelegate>
@ -9,6 +10,20 @@ class QTreeWidget;
class ServerInfo_User;
class AbstractClient;
class TabSupervisor;
class QSpinBox;
class QPlainTextEdit;
class ProtocolResponse;
class BanDialog : public QDialog {
Q_OBJECT
private:
QSpinBox *durationEdit;
QPlainTextEdit *reasonEdit;
public:
BanDialog(QWidget *parent = 0);
int getMinutes() const;
QString getReason() const;
};
class UserListItemDelegate : public QStyledItemDelegate {
public:
@ -38,6 +53,7 @@ private:
void setUserOnline(QTreeWidgetItem *user, bool online);
private slots:
void userClicked(QTreeWidgetItem *item, int column);
void gamesOfUserReceived(ProtocolResponse *resp);
signals:
void openMessageDialog(const QString &userName, bool focus);
void addBuddy(const QString &userName);

View file

@ -56,11 +56,18 @@ void MainWindow::processConnectionClosedEvent(Event_ConnectionClosed *event)
reasonStr = tr("There are too many concurrent connections from your address.");
else if (reason == "banned")
reasonStr = tr("Banned by moderator.");
else if (reason == "server_shutdown")
reasonStr = tr("Scheduled server shutdown.");
else
reasonStr = tr("Unknown reason.");
QMessageBox::critical(this, tr("Connection closed"), tr("The server has terminated your connection.\nReason: %1").arg(reasonStr));
}
void MainWindow::processServerShutdownEvent(Event_ServerShutdown *event)
{
QMessageBox::information(this, tr("Scheduled server shutdown"), tr("The server is going to be restarted in %n minute(s).\nAll running games will be lost.\nReason for shutdown: %1", "", event->getMinutes()).arg(event->getReason()));
}
void MainWindow::statusChanged(ClientStatus _status)
{
setClientStatusTitle();
@ -290,6 +297,7 @@ MainWindow::MainWindow(QWidget *parent)
client = new RemoteClient(this);
connect(client, SIGNAL(connectionClosedEventReceived(Event_ConnectionClosed *)), this, SLOT(processConnectionClosedEvent(Event_ConnectionClosed *)));
connect(client, SIGNAL(serverShutdownEventReceived(Event_ServerShutdown *)), this, SLOT(processServerShutdownEvent(Event_ServerShutdown *)));
connect(client, SIGNAL(serverError(ResponseCode)), this, SLOT(serverError(ResponseCode)));
connect(client, SIGNAL(socketError(const QString &)), this, SLOT(socketError(const QString &)));
connect(client, SIGNAL(serverTimeout()), this, SLOT(serverTimeout()));

View file

@ -36,6 +36,7 @@ private slots:
void updateTabMenu(QMenu *menu);
void statusChanged(ClientStatus _status);
void processConnectionClosedEvent(Event_ConnectionClosed *event);
void processServerShutdownEvent(Event_ServerShutdown *event);
void serverTimeout();
void serverError(ResponseCode r);
void socketError(const QString &errorStr);

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -44,6 +44,7 @@ void ProtocolItem::initializeHash()
ProtocolResponse::initializeHash();
registerSerializableItem("respjoin_room", Response_JoinRoom::newItem);
registerSerializableItem("resplist_users", Response_ListUsers::newItem);
registerSerializableItem("respget_games_of_user", Response_GetGamesOfUser::newItem);
registerSerializableItem("respget_user_info", Response_GetUserInfo::newItem);
registerSerializableItem("respdeck_list", Response_DeckList::newItem);
registerSerializableItem("respdeck_download", Response_DeckDownload::newItem);
@ -74,7 +75,7 @@ TopLevelProtocolItem::TopLevelProtocolItem()
bool TopLevelProtocolItem::readCurrentItem(QXmlStreamReader *xml)
{
if (currentItem) {
if (currentItem->readElement(xml)) {
if (currentItem->read(xml)) {
emit protocolItemReceived(currentItem);
currentItem = 0;
}
@ -92,6 +93,8 @@ bool TopLevelProtocolItem::readElement(QXmlStreamReader *xml)
currentItem = dynamic_cast<ProtocolItem *>(getNewItem(childName + childSubType));
if (!currentItem)
currentItem = new ProtocolItem_Invalid;
if (xml->attributes().value("comp").toString().toInt() == 1)
currentItem->setCompressed(true);
readCurrentItem(xml);
}
@ -254,6 +257,7 @@ void ProtocolResponse::initializeHash()
{
responseHash.insert(QString(), RespNothing);
responseHash.insert("ok", RespOk);
responseHash.insert("not_in_room", RespNotInRoom);
responseHash.insert("internal_error", RespInternalError);
responseHash.insert("invalid_command", RespInvalidCommand);
responseHash.insert("name_not_found", RespNameNotFound);
@ -294,6 +298,34 @@ Response_DeckList::Response_DeckList(int _cmdId, ResponseCode _responseCode, Dec
insertItem(_root);
}
Response_GetGamesOfUser::Response_GetGamesOfUser(int _cmdId, ResponseCode _responseCode, const QList<ServerInfo_Room *> &_roomList, const QList<ServerInfo_Game *> &_gameList)
: ProtocolResponse(_cmdId, _responseCode, "get_games_of_user")
{
roomList = _roomList;
for (int i = 0; i < _roomList.size(); ++i)
itemList.append(_roomList[i]);
gameList = _gameList;
for (int i = 0; i < _gameList.size(); ++i)
itemList.append(_gameList[i]);
}
void Response_GetGamesOfUser::extractData()
{
for (int i = 0; i < itemList.size(); ++i) {
ServerInfo_Room *room = dynamic_cast<ServerInfo_Room *>(itemList[i]);
if (room) {
roomList.append(room);
continue;
}
ServerInfo_Game *game = dynamic_cast<ServerInfo_Game *>(itemList[i]);
if (game) {
gameList.append(game);
continue;
}
}
}
Response_GetUserInfo::Response_GetUserInfo(int _cmdId, ResponseCode _responseCode, ServerInfo_User *_user)
: ProtocolResponse(_cmdId, _responseCode, "get_user_info")
{

View file

@ -42,13 +42,14 @@ enum ItemId {
ItemId_Event_Ping = ItemId_Other + 212,
ItemId_Event_AddToList = ItemId_Other + 213,
ItemId_Response_ListUsers = ItemId_Other + 300,
ItemId_Response_GetUserInfo = ItemId_Other + 301,
ItemId_Response_DeckList = ItemId_Other + 302,
ItemId_Response_DeckDownload = ItemId_Other + 303,
ItemId_Response_DeckUpload = ItemId_Other + 304,
ItemId_Response_DumpZone = ItemId_Other + 305,
ItemId_Response_JoinRoom = ItemId_Other + 306,
ItemId_Response_Login = ItemId_Other + 307,
ItemId_Response_GetGamesOfUser = ItemId_Other + 301,
ItemId_Response_GetUserInfo = ItemId_Other + 302,
ItemId_Response_DeckList = ItemId_Other + 303,
ItemId_Response_DeckDownload = ItemId_Other + 304,
ItemId_Response_DeckUpload = ItemId_Other + 305,
ItemId_Response_DumpZone = ItemId_Other + 306,
ItemId_Response_JoinRoom = ItemId_Other + 307,
ItemId_Response_Login = ItemId_Other + 308,
ItemId_Invalid = ItemId_Other + 1000
};
@ -167,6 +168,15 @@ public:
void setGameId(int _gameId) { static_cast<SerializableItem_Int *>(itemMap.value("game_id"))->setData(_gameId); }
};
class ModeratorCommand : public Command {
Q_OBJECT
public:
ModeratorCommand(const QString &_cmdName)
: Command(_cmdName)
{
}
};
class AdminCommand : public Command {
Q_OBJECT
public:
@ -273,6 +283,21 @@ public:
QList<ServerInfo_User *> getUserList() const { return typecastItemList<ServerInfo_User *>(); }
};
class Response_GetGamesOfUser : public ProtocolResponse {
Q_OBJECT
private:
QList<ServerInfo_Game *> gameList;
QList<ServerInfo_Room *> roomList;
protected:
void extractData();
public:
Response_GetGamesOfUser(int _cmdId = -1, ResponseCode _responseCode = RespOk, const QList<ServerInfo_Room *> &_roomList = QList<ServerInfo_Room *>(), const QList<ServerInfo_Game *> &_gameList = QList<ServerInfo_Game *>());
int getItemId() const { return ItemId_Response_GetGamesOfUser; }
static SerializableItem *newItem() { return new Response_GetGamesOfUser; }
QList<ServerInfo_Room *> getRoomList() const { return roomList; }
QList<ServerInfo_Game *> getGameList() const { return gameList; }
};
class Response_GetUserInfo : public ProtocolResponse {
Q_OBJECT
public:

View file

@ -40,14 +40,16 @@ ServerInfo_UserList::ServerInfo_UserList(const QString &_itemType, const QList<S
itemList.append(_userList[i]);
}
ServerInfo_Game::ServerInfo_Game(int _gameId, const QString &_description, bool _hasPassword, int _playerCount, int _maxPlayers, const QList<GameTypeId *> &_gameTypes, ServerInfo_User *_creatorInfo, bool _onlyBuddies, bool _onlyRegistered, bool _spectatorsAllowed, bool _spectatorsNeedPassword, int _spectatorCount)
ServerInfo_Game::ServerInfo_Game(int _roomId, int _gameId, const QString &_description, bool _hasPassword, int _playerCount, int _maxPlayers, bool _started, const QList<GameTypeId *> &_gameTypes, ServerInfo_User *_creatorInfo, bool _onlyBuddies, bool _onlyRegistered, bool _spectatorsAllowed, bool _spectatorsNeedPassword, int _spectatorCount)
: SerializableItem_Map("game")
{
insertItem(new SerializableItem_Int("room_id", _roomId));
insertItem(new SerializableItem_Int("game_id", _gameId));
insertItem(new SerializableItem_String("description", _description));
insertItem(new SerializableItem_Bool("has_password", _hasPassword));
insertItem(new SerializableItem_Int("player_count", _playerCount));
insertItem(new SerializableItem_Int("max_players", _maxPlayers));
insertItem(new SerializableItem_Bool("started", _started));
if (!_creatorInfo)
_creatorInfo = new ServerInfo_User;
insertItem(_creatorInfo);

View file

@ -8,7 +8,7 @@
class DeckList;
enum ResponseCode { RespNothing, RespOk, RespInternalError, RespInvalidCommand, RespInvalidData, RespNameNotFound, RespLoginNeeded, RespFunctionNotAllowed, RespGameNotStarted, RespGameFull, RespContextError, RespWrongPassword, RespSpectatorsNotAllowed, RespOnlyBuddies, RespUserLevelTooLow, RespInIgnoreList, RespWouldOverwriteOldSession, RespChatFlood };
enum ResponseCode { RespNothing, RespOk, RespNotInRoom, RespInternalError, RespInvalidCommand, RespInvalidData, RespNameNotFound, RespLoginNeeded, RespFunctionNotAllowed, RespGameNotStarted, RespGameFull, RespContextError, RespWrongPassword, RespSpectatorsNotAllowed, RespOnlyBuddies, RespUserLevelTooLow, RespInIgnoreList, RespWouldOverwriteOldSession, RespChatFlood };
// PrivateZone: Contents of the zone are always visible to the owner,
// but not to anyone else.
@ -69,13 +69,15 @@ public:
class ServerInfo_Game : public SerializableItem_Map {
public:
ServerInfo_Game(int _gameId = -1, const QString &_description = QString(), bool _hasPassword = false, int _playerCount = -1, int _maxPlayers = -1, const QList<GameTypeId *> &_gameTypes = QList<GameTypeId *>(), ServerInfo_User *creatorInfo = 0, bool _onlyBuddies = false, bool _onlyRegistered = false, bool _spectatorsAllowed = false, bool _spectatorsNeedPassword = false, int _spectatorCount = -1);
ServerInfo_Game(int _roomId = -1, int _gameId = -1, const QString &_description = QString(), bool _hasPassword = false, int _playerCount = -1, int _maxPlayers = -1, bool _started = false, const QList<GameTypeId *> &_gameTypes = QList<GameTypeId *>(), ServerInfo_User *creatorInfo = 0, bool _onlyBuddies = false, bool _onlyRegistered = false, bool _spectatorsAllowed = false, bool _spectatorsNeedPassword = false, int _spectatorCount = -1);
static SerializableItem *newItem() { return new ServerInfo_Game; }
int getRoomId() const { return static_cast<SerializableItem_Int *>(itemMap.value("room_id"))->getData(); }
int getGameId() const { return static_cast<SerializableItem_Int *>(itemMap.value("game_id"))->getData(); }
QString getDescription() const { return static_cast<SerializableItem_String *>(itemMap.value("description"))->getData(); }
bool getHasPassword() const { return static_cast<SerializableItem_Bool *>(itemMap.value("has_password"))->getData(); }
int getPlayerCount() const { return static_cast<SerializableItem_Int *>(itemMap.value("player_count"))->getData(); }
int getMaxPlayers() const { return static_cast<SerializableItem_Int *>(itemMap.value("max_players"))->getData(); }
bool getStarted() const { return static_cast<SerializableItem_Bool *>(itemMap.value("started"))->getData(); }
QList<GameTypeId *> getGameTypes() const { return typecastItemList<GameTypeId *>(); }
ServerInfo_User *getCreatorInfo() const { return static_cast<ServerInfo_User *>(itemMap.value("user")); }
bool getOnlyBuddies() const { return static_cast<SerializableItem_Bool *>(itemMap.value("only_buddies"))->getData(); }

View file

@ -3,81 +3,85 @@ ItemId_Command_Ping = 1001,
ItemId_Command_Login = 1002,
ItemId_Command_Message = 1003,
ItemId_Command_ListUsers = 1004,
ItemId_Command_GetUserInfo = 1005,
ItemId_Command_AddToList = 1006,
ItemId_Command_RemoveFromList = 1007,
ItemId_Command_DeckList = 1008,
ItemId_Command_DeckNewDir = 1009,
ItemId_Command_DeckDelDir = 1010,
ItemId_Command_DeckDel = 1011,
ItemId_Command_DeckDownload = 1012,
ItemId_Command_ListRooms = 1013,
ItemId_Command_JoinRoom = 1014,
ItemId_Command_LeaveRoom = 1015,
ItemId_Command_RoomSay = 1016,
ItemId_Command_JoinGame = 1017,
ItemId_Command_KickFromGame = 1018,
ItemId_Command_LeaveGame = 1019,
ItemId_Command_Say = 1020,
ItemId_Command_Shuffle = 1021,
ItemId_Command_Mulligan = 1022,
ItemId_Command_RollDie = 1023,
ItemId_Command_DrawCards = 1024,
ItemId_Command_UndoDraw = 1025,
ItemId_Command_FlipCard = 1026,
ItemId_Command_AttachCard = 1027,
ItemId_Command_CreateToken = 1028,
ItemId_Command_CreateArrow = 1029,
ItemId_Command_DeleteArrow = 1030,
ItemId_Command_SetCardAttr = 1031,
ItemId_Command_SetCardCounter = 1032,
ItemId_Command_IncCardCounter = 1033,
ItemId_Command_ReadyStart = 1034,
ItemId_Command_Concede = 1035,
ItemId_Command_IncCounter = 1036,
ItemId_Command_CreateCounter = 1037,
ItemId_Command_SetCounter = 1038,
ItemId_Command_DelCounter = 1039,
ItemId_Command_NextTurn = 1040,
ItemId_Command_SetActivePhase = 1041,
ItemId_Command_DumpZone = 1042,
ItemId_Command_StopDumpZone = 1043,
ItemId_Command_RevealCards = 1044,
ItemId_Event_Say = 1045,
ItemId_Event_Leave = 1046,
ItemId_Event_GameClosed = 1047,
ItemId_Event_Kicked = 1048,
ItemId_Event_Shuffle = 1049,
ItemId_Event_RollDie = 1050,
ItemId_Event_MoveCard = 1051,
ItemId_Event_FlipCard = 1052,
ItemId_Event_DestroyCard = 1053,
ItemId_Event_AttachCard = 1054,
ItemId_Event_CreateToken = 1055,
ItemId_Event_DeleteArrow = 1056,
ItemId_Event_SetCardAttr = 1057,
ItemId_Event_SetCardCounter = 1058,
ItemId_Event_SetCounter = 1059,
ItemId_Event_DelCounter = 1060,
ItemId_Event_SetActivePlayer = 1061,
ItemId_Event_SetActivePhase = 1062,
ItemId_Event_DumpZone = 1063,
ItemId_Event_StopDumpZone = 1064,
ItemId_Event_RemoveFromList = 1065,
ItemId_Event_ServerMessage = 1066,
ItemId_Event_ConnectionClosed = 1067,
ItemId_Event_Message = 1068,
ItemId_Event_GameJoined = 1069,
ItemId_Event_UserLeft = 1070,
ItemId_Event_LeaveRoom = 1071,
ItemId_Event_RoomSay = 1072,
ItemId_Context_ReadyStart = 1073,
ItemId_Context_Concede = 1074,
ItemId_Context_DeckSelect = 1075,
ItemId_Context_UndoDraw = 1076,
ItemId_Context_MoveCard = 1077,
ItemId_Context_Mulligan = 1078,
ItemId_Command_UpdateServerMessage = 1079,
ItemId_Command_BanFromServer = 1080,
ItemId_Other = 1081
ItemId_Command_GetGamesOfUser = 1005,
ItemId_Command_GetUserInfo = 1006,
ItemId_Command_AddToList = 1007,
ItemId_Command_RemoveFromList = 1008,
ItemId_Command_DeckList = 1009,
ItemId_Command_DeckNewDir = 1010,
ItemId_Command_DeckDelDir = 1011,
ItemId_Command_DeckDel = 1012,
ItemId_Command_DeckDownload = 1013,
ItemId_Command_ListRooms = 1014,
ItemId_Command_JoinRoom = 1015,
ItemId_Command_LeaveRoom = 1016,
ItemId_Command_RoomSay = 1017,
ItemId_Command_JoinGame = 1018,
ItemId_Command_KickFromGame = 1019,
ItemId_Command_LeaveGame = 1020,
ItemId_Command_Say = 1021,
ItemId_Command_Shuffle = 1022,
ItemId_Command_Mulligan = 1023,
ItemId_Command_RollDie = 1024,
ItemId_Command_DrawCards = 1025,
ItemId_Command_UndoDraw = 1026,
ItemId_Command_FlipCard = 1027,
ItemId_Command_AttachCard = 1028,
ItemId_Command_CreateToken = 1029,
ItemId_Command_CreateArrow = 1030,
ItemId_Command_DeleteArrow = 1031,
ItemId_Command_SetCardAttr = 1032,
ItemId_Command_SetCardCounter = 1033,
ItemId_Command_IncCardCounter = 1034,
ItemId_Command_ReadyStart = 1035,
ItemId_Command_Concede = 1036,
ItemId_Command_IncCounter = 1037,
ItemId_Command_CreateCounter = 1038,
ItemId_Command_SetCounter = 1039,
ItemId_Command_DelCounter = 1040,
ItemId_Command_NextTurn = 1041,
ItemId_Command_SetActivePhase = 1042,
ItemId_Command_DumpZone = 1043,
ItemId_Command_StopDumpZone = 1044,
ItemId_Command_RevealCards = 1045,
ItemId_Event_ConnectionStateChanged = 1046,
ItemId_Event_Say = 1047,
ItemId_Event_Leave = 1048,
ItemId_Event_GameClosed = 1049,
ItemId_Event_Kicked = 1050,
ItemId_Event_Shuffle = 1051,
ItemId_Event_RollDie = 1052,
ItemId_Event_MoveCard = 1053,
ItemId_Event_FlipCard = 1054,
ItemId_Event_DestroyCard = 1055,
ItemId_Event_AttachCard = 1056,
ItemId_Event_CreateToken = 1057,
ItemId_Event_DeleteArrow = 1058,
ItemId_Event_SetCardAttr = 1059,
ItemId_Event_SetCardCounter = 1060,
ItemId_Event_SetCounter = 1061,
ItemId_Event_DelCounter = 1062,
ItemId_Event_SetActivePlayer = 1063,
ItemId_Event_SetActivePhase = 1064,
ItemId_Event_DumpZone = 1065,
ItemId_Event_StopDumpZone = 1066,
ItemId_Event_RemoveFromList = 1067,
ItemId_Event_ServerMessage = 1068,
ItemId_Event_ServerShutdown = 1069,
ItemId_Event_ConnectionClosed = 1070,
ItemId_Event_Message = 1071,
ItemId_Event_GameJoined = 1072,
ItemId_Event_UserLeft = 1073,
ItemId_Event_LeaveRoom = 1074,
ItemId_Event_RoomSay = 1075,
ItemId_Context_ReadyStart = 1076,
ItemId_Context_Concede = 1077,
ItemId_Context_DeckSelect = 1078,
ItemId_Context_UndoDraw = 1079,
ItemId_Context_MoveCard = 1080,
ItemId_Context_Mulligan = 1081,
ItemId_Command_UpdateServerMessage = 1082,
ItemId_Command_ShutdownServer = 1083,
ItemId_Command_BanFromServer = 1084,
ItemId_Other = 1085
};

View file

@ -21,6 +21,11 @@ Command_ListUsers::Command_ListUsers()
: Command("list_users")
{
}
Command_GetGamesOfUser::Command_GetGamesOfUser(const QString &_userName)
: Command("get_games_of_user")
{
insertItem(new SerializableItem_String("user_name", _userName));
}
Command_GetUserInfo::Command_GetUserInfo(const QString &_userName)
: Command("get_user_info")
{
@ -255,6 +260,11 @@ Command_RevealCards::Command_RevealCards(int _gameId, const QString &_zoneName,
insertItem(new SerializableItem_Int("card_id", _cardId));
insertItem(new SerializableItem_Int("player_id", _playerId));
}
Event_ConnectionStateChanged::Event_ConnectionStateChanged(int _playerId, bool _connected)
: GameEvent("connection_state_changed", _playerId)
{
insertItem(new SerializableItem_Bool("connected", _connected));
}
Event_Say::Event_Say(int _playerId, const QString &_message)
: GameEvent("say", _playerId)
{
@ -398,6 +408,12 @@ Event_ServerMessage::Event_ServerMessage(const QString &_message)
{
insertItem(new SerializableItem_String("message", _message));
}
Event_ServerShutdown::Event_ServerShutdown(const QString &_reason, int _minutes)
: GenericEvent("server_shutdown")
{
insertItem(new SerializableItem_String("reason", _reason));
insertItem(new SerializableItem_Int("minutes", _minutes));
}
Event_ConnectionClosed::Event_ConnectionClosed(const QString &_reason)
: GenericEvent("connection_closed")
{
@ -467,11 +483,18 @@ Command_UpdateServerMessage::Command_UpdateServerMessage()
: AdminCommand("update_server_message")
{
}
Command_BanFromServer::Command_BanFromServer(const QString &_userName, int _minutes)
: AdminCommand("ban_from_server")
Command_ShutdownServer::Command_ShutdownServer(const QString &_reason, int _minutes)
: AdminCommand("shutdown_server")
{
insertItem(new SerializableItem_String("reason", _reason));
insertItem(new SerializableItem_Int("minutes", _minutes));
}
Command_BanFromServer::Command_BanFromServer(const QString &_userName, int _minutes, const QString &_reason)
: ModeratorCommand("ban_from_server")
{
insertItem(new SerializableItem_String("user_name", _userName));
insertItem(new SerializableItem_Int("minutes", _minutes));
insertItem(new SerializableItem_String("reason", _reason));
}
void ProtocolItem::initializeHashAuto()
{
@ -479,6 +502,7 @@ void ProtocolItem::initializeHashAuto()
itemNameHash.insert("cmdlogin", Command_Login::newItem);
itemNameHash.insert("cmdmessage", Command_Message::newItem);
itemNameHash.insert("cmdlist_users", Command_ListUsers::newItem);
itemNameHash.insert("cmdget_games_of_user", Command_GetGamesOfUser::newItem);
itemNameHash.insert("cmdget_user_info", Command_GetUserInfo::newItem);
itemNameHash.insert("cmdadd_to_list", Command_AddToList::newItem);
itemNameHash.insert("cmdremove_from_list", Command_RemoveFromList::newItem);
@ -519,6 +543,7 @@ void ProtocolItem::initializeHashAuto()
itemNameHash.insert("cmddump_zone", Command_DumpZone::newItem);
itemNameHash.insert("cmdstop_dump_zone", Command_StopDumpZone::newItem);
itemNameHash.insert("cmdreveal_cards", Command_RevealCards::newItem);
itemNameHash.insert("game_eventconnection_state_changed", Event_ConnectionStateChanged::newItem);
itemNameHash.insert("game_eventsay", Event_Say::newItem);
itemNameHash.insert("game_eventleave", Event_Leave::newItem);
itemNameHash.insert("game_eventgame_closed", Event_GameClosed::newItem);
@ -541,6 +566,7 @@ void ProtocolItem::initializeHashAuto()
itemNameHash.insert("game_eventstop_dump_zone", Event_StopDumpZone::newItem);
itemNameHash.insert("generic_eventremove_from_list", Event_RemoveFromList::newItem);
itemNameHash.insert("generic_eventserver_message", Event_ServerMessage::newItem);
itemNameHash.insert("generic_eventserver_shutdown", Event_ServerShutdown::newItem);
itemNameHash.insert("generic_eventconnection_closed", Event_ConnectionClosed::newItem);
itemNameHash.insert("generic_eventmessage", Event_Message::newItem);
itemNameHash.insert("generic_eventgame_joined", Event_GameJoined::newItem);
@ -554,5 +580,6 @@ void ProtocolItem::initializeHashAuto()
itemNameHash.insert("game_event_contextmove_card", Context_MoveCard::newItem);
itemNameHash.insert("game_event_contextmulligan", Context_Mulligan::newItem);
itemNameHash.insert("cmdupdate_server_message", Command_UpdateServerMessage::newItem);
itemNameHash.insert("cmdshutdown_server", Command_ShutdownServer::newItem);
itemNameHash.insert("cmdban_from_server", Command_BanFromServer::newItem);
}

View file

@ -2,6 +2,7 @@
0:login:s,username:s,password
0:message:s,user_name:s,text
0:list_users
0:get_games_of_user:s,user_name
0:get_user_info:s,user_name
0:add_to_list:s,list:s,user_name
0:remove_from_list:s,list:s,user_name
@ -42,6 +43,7 @@
2:dump_zone:i,player_id:s,zone_name:i,number_cards
2:stop_dump_zone:i,player_id:s,zone_name
2:reveal_cards:s,zone_name:i,card_id:i,player_id
3:connection_state_changed:b,connected
3:say:s,message
3:leave
3:game_closed
@ -64,6 +66,7 @@
3:stop_dump_zone:i,zone_owner_id:s,zone
4:remove_from_list:s,list:s,user_name
4:server_message:s,message
4:server_shutdown:s,reason:i,minutes
4:connection_closed:s,reason
4:message:s,sender_name:s,receiver_name:s,text
4:game_joined:i,game_id:s,game_description:i,player_id:b,spectator:b,spectators_can_talk:b,spectators_see_everything:b,resuming
@ -77,4 +80,5 @@
6:move_card
6:mulligan:i,number
7:update_server_message
7:ban_from_server:s,user_name:i,minutes
7:shutdown_server:s,reason:i,minutes
8:ban_from_server:s,user_name:i,minutes:s,reason

View file

@ -35,6 +35,14 @@ public:
static SerializableItem *newItem() { return new Command_ListUsers; }
int getItemId() const { return ItemId_Command_ListUsers; }
};
class Command_GetGamesOfUser : public Command {
Q_OBJECT
public:
Command_GetGamesOfUser(const QString &_userName = QString());
QString getUserName() const { return static_cast<SerializableItem_String *>(itemMap.value("user_name"))->getData(); };
static SerializableItem *newItem() { return new Command_GetGamesOfUser; }
int getItemId() const { return ItemId_Command_GetGamesOfUser; }
};
class Command_GetUserInfo : public Command {
Q_OBJECT
public:
@ -389,6 +397,14 @@ public:
static SerializableItem *newItem() { return new Command_RevealCards; }
int getItemId() const { return ItemId_Command_RevealCards; }
};
class Event_ConnectionStateChanged : public GameEvent {
Q_OBJECT
public:
Event_ConnectionStateChanged(int _playerId = -1, bool _connected = false);
bool getConnected() const { return static_cast<SerializableItem_Bool *>(itemMap.value("connected"))->getData(); };
static SerializableItem *newItem() { return new Event_ConnectionStateChanged; }
int getItemId() const { return ItemId_Event_ConnectionStateChanged; }
};
class Event_Say : public GameEvent {
Q_OBJECT
public:
@ -598,6 +614,15 @@ public:
static SerializableItem *newItem() { return new Event_ServerMessage; }
int getItemId() const { return ItemId_Event_ServerMessage; }
};
class Event_ServerShutdown : public GenericEvent {
Q_OBJECT
public:
Event_ServerShutdown(const QString &_reason = QString(), int _minutes = -1);
QString getReason() const { return static_cast<SerializableItem_String *>(itemMap.value("reason"))->getData(); };
int getMinutes() const { return static_cast<SerializableItem_Int *>(itemMap.value("minutes"))->getData(); };
static SerializableItem *newItem() { return new Event_ServerShutdown; }
int getItemId() const { return ItemId_Event_ServerShutdown; }
};
class Event_ConnectionClosed : public GenericEvent {
Q_OBJECT
public:
@ -706,12 +731,22 @@ public:
static SerializableItem *newItem() { return new Command_UpdateServerMessage; }
int getItemId() const { return ItemId_Command_UpdateServerMessage; }
};
class Command_BanFromServer : public AdminCommand {
class Command_ShutdownServer : public AdminCommand {
Q_OBJECT
public:
Command_BanFromServer(const QString &_userName = QString(), int _minutes = -1);
Command_ShutdownServer(const QString &_reason = QString(), int _minutes = -1);
QString getReason() const { return static_cast<SerializableItem_String *>(itemMap.value("reason"))->getData(); };
int getMinutes() const { return static_cast<SerializableItem_Int *>(itemMap.value("minutes"))->getData(); };
static SerializableItem *newItem() { return new Command_ShutdownServer; }
int getItemId() const { return ItemId_Command_ShutdownServer; }
};
class Command_BanFromServer : public ModeratorCommand {
Q_OBJECT
public:
Command_BanFromServer(const QString &_userName = QString(), int _minutes = -1, const QString &_reason = QString());
QString getUserName() const { return static_cast<SerializableItem_String *>(itemMap.value("user_name"))->getData(); };
int getMinutes() const { return static_cast<SerializableItem_Int *>(itemMap.value("minutes"))->getData(); };
QString getReason() const { return static_cast<SerializableItem_String *>(itemMap.value("reason"))->getData(); };
static SerializableItem *newItem() { return new Command_BanFromServer; }
int getItemId() const { return ItemId_Command_BanFromServer; }
};

View file

@ -80,6 +80,13 @@ while (<file>) {
$parentConstructorCall = "$baseClass(\"$name1\")";
$constructorParamsH = "";
$constructorParamsCpp = "";
} elsif ($type == 8) {
$type = 'cmd';
$namePrefix = 'Command';
$baseClass = 'ModeratorCommand';
$parentConstructorCall = "$baseClass(\"$name1\")";
$constructorParamsH = "";
$constructorParamsCpp = "";
}
$className = $namePrefix . '_' . $name2;
$itemEnum .= "ItemId_$className = " . ++$itemId . ",\n";

View file

@ -1,7 +1,8 @@
#include "serializable_item.h"
#include <QXmlStreamReader>
#include <QXmlStreamWriter>
#include <QDebug>
#include <QBuffer>
QHash<QString, SerializableItem::NewItemFunction> SerializableItem::itemNameHash;
SerializableItem *SerializableItem::getNewItem(const QString &name)
@ -16,6 +17,32 @@ void SerializableItem::registerSerializableItem(const QString &name, NewItemFunc
itemNameHash.insert(name, func);
}
bool SerializableItem::read(QXmlStreamReader *xml)
{
if (!compressed)
return readElement(xml);
if (xml->isEndElement() && (xml->name() == itemType)) {
QByteArray uncompressedData = "<d>" + qUncompress(QByteArray::fromBase64(compressedData)) + "</d>";
compressedData.clear();
QBuffer compressedBuffer(&uncompressedData);
compressedBuffer.open(QIODevice::ReadOnly);
QXmlStreamReader *xml2 = new QXmlStreamReader(&compressedBuffer);
while (!xml2->atEnd()) {
xml2->readNext();
if (xml2->name() == "d")
continue;
readElement(xml2);
}
delete xml2;
compressedBuffer.close();
return readElement(xml);
} else {
compressedData.append(xml->text().toString());
return false;
}
}
bool SerializableItem::readElement(QXmlStreamReader *xml)
{
if (xml->isEndElement() && (xml->name() == itemType))
@ -31,7 +58,19 @@ void SerializableItem::write(QXmlStreamWriter *xml)
xml->writeStartElement(itemType);
if (!itemSubType.isEmpty())
xml->writeAttribute("type", itemSubType);
writeElement(xml);
if (compressed) {
xml->writeAttribute("comp", "1");
QBuffer compressBuffer;
compressBuffer.open(QIODevice::WriteOnly);
QXmlStreamWriter *xml2 = new QXmlStreamWriter(&compressBuffer);
writeElement(xml2);
delete xml2;
compressBuffer.close();
xml->writeCharacters(qCompress(compressBuffer.data()).toBase64());
} else
writeElement(xml);
xml->writeEndElement();
}
@ -47,7 +86,7 @@ SerializableItem_Map::~SerializableItem_Map()
bool SerializableItem_Map::readElement(QXmlStreamReader *xml)
{
if (currentItem) {
if (currentItem->readElement(xml))
if (currentItem->read(xml))
currentItem = 0;
return false;
} else if (firstItem)
@ -57,6 +96,7 @@ bool SerializableItem_Map::readElement(QXmlStreamReader *xml)
else if (xml->isStartElement()) {
QString childName = xml->name().toString();
QString childSubType = xml->attributes().value("type").toString();
bool childCompressed = xml->attributes().value("comp").toString().toInt() == 1;
currentItem = itemMap.value(childName);
if (!currentItem) {
currentItem = getNewItem(childName + childSubType);
@ -64,7 +104,8 @@ bool SerializableItem_Map::readElement(QXmlStreamReader *xml)
if (!currentItem)
currentItem = new SerializableItem_Invalid(childName);
}
if (currentItem->readElement(xml))
currentItem->setCompressed(childCompressed);
if (currentItem->read(xml))
currentItem = 0;
}
return SerializableItem::readElement(xml);

View file

@ -15,6 +15,10 @@ class QXmlStreamWriter;
class SerializableItem : public QObject {
Q_OBJECT
private:
bool compressed;
QByteArray compressedData;
QXmlStreamReader *compressedReader;
protected:
typedef SerializableItem *(*NewItemFunction)();
static QHash<QString, NewItemFunction> itemNameHash;
@ -23,7 +27,7 @@ protected:
bool firstItem;
public:
SerializableItem(const QString &_itemType, const QString &_itemSubType = QString())
: QObject(), itemType(_itemType), itemSubType(_itemSubType), firstItem(true) { }
: QObject(), compressed(false), itemType(_itemType), itemSubType(_itemSubType), firstItem(true) { }
static void registerSerializableItem(const QString &name, NewItemFunction func);
static SerializableItem *getNewItem(const QString &name);
const QString &getItemType() const { return itemType; }
@ -31,6 +35,8 @@ public:
virtual bool readElement(QXmlStreamReader *xml);
virtual void writeElement(QXmlStreamWriter *xml) = 0;
virtual bool isEmpty() const = 0;
void setCompressed(bool _compressed) { compressed = _compressed; }
bool read(QXmlStreamReader *xml);
void write(QXmlStreamWriter *xml);
};

View file

@ -23,6 +23,7 @@
#include "server_room.h"
#include "server_protocolhandler.h"
#include "protocol_datastructures.h"
#include <QCoreApplication>
#include <QDebug>
Server::Server(QObject *parent)
@ -51,7 +52,7 @@ AuthenticationResult Server::loginUser(Server_ProtocolHandler *session, QString
QMutexLocker locker(&serverMutex);
if (name.size() > 35)
name = name.left(35);
AuthenticationResult authState = checkUserPassword(name, password);
AuthenticationResult authState = checkUserPassword(session, name, password);
if (authState == PasswordWrong)
return authState;
@ -73,6 +74,7 @@ AuthenticationResult Server::loginUser(Server_ProtocolHandler *session, QString
session->setUserInfo(data);
users.insert(name, session);
qDebug() << "Server::loginUser: name=" << name;
Event_UserJoined *event = new Event_UserJoined(new ServerInfo_User(data, false));
for (int i = 0; i < clients.size(); ++i)
@ -102,8 +104,9 @@ void Server::removeClient(Server_ProtocolHandler *client)
delete event;
users.remove(data->getName());
qDebug() << "Server::removeClient: name=" << data->getName();
}
qDebug() << "Server::removeClient: " << clients.size() << "clients; " << users.size() << "users left";
qDebug() << "Server::removeClient:" << clients.size() << "clients; " << users.size() << "users left";
}
void Server::broadcastRoomUpdate()

View file

@ -40,10 +40,10 @@ public:
virtual int getMaxMessageCountPerInterval() const { return 0; }
virtual int getMaxMessageSizePerInterval() const { return 0; }
virtual int getMaxGamesPerUser() const { return 0; }
virtual bool getThreaded() const = 0;
virtual QMap<QString, ServerInfo_User *> getBuddyList(const QString &name) = 0;
virtual QMap<QString, ServerInfo_User *> getIgnoreList(const QString &name) = 0;
virtual bool getUserBanned(Server_ProtocolHandler * /*client*/, const QString & /*userName*/) const { return false; }
protected:
void prepareDestroy();
QList<Server_ProtocolHandler *> clients;
@ -51,7 +51,7 @@ protected:
QMap<int, Server_Room *> rooms;
virtual bool userExists(const QString &user) = 0;
virtual AuthenticationResult checkUserPassword(const QString &user, const QString &password) = 0;
virtual AuthenticationResult checkUserPassword(Server_ProtocolHandler *handler, const QString &user, const QString &password) = 0;
virtual ServerInfo_User *getUserData(const QString &name) = 0;
int getUsersCount() const;
int getGamesCount() const;

View file

@ -19,8 +19,8 @@
***************************************************************************/
#include "server_card.h"
Server_Card::Server_Card(QString _name, int _id, int _coord_x, int _coord_y)
: id(_id), coord_x(_coord_x), coord_y(_coord_y), name(_name), tapped(false), attacking(false), facedown(false), color(QString()), power(-1), toughness(-1), annotation(QString()), destroyOnZoneChange(false), doesntUntap(false), parentCard(0)
Server_Card::Server_Card(QString _name, int _id, int _coord_x, int _coord_y, Server_CardZone *_zone)
: zone(_zone), id(_id), coord_x(_coord_x), coord_y(_coord_y), name(_name), tapped(false), attacking(false), facedown(false), color(QString()), power(-1), toughness(-1), annotation(QString()), destroyOnZoneChange(false), doesntUntap(false), parentCard(0)
{
}
@ -39,8 +39,8 @@ void Server_Card::resetState()
counters.clear();
setTapped(false);
setAttacking(false);
power = 0;
toughness = 0;
power = -1;
toughness = -1;
setAnnotation(QString());
setDoesntUntap(false);
}

View file

@ -46,7 +46,7 @@ private:
Server_Card *parentCard;
QList<Server_Card *> attachedCards;
public:
Server_Card(QString _name, int _id, int _coord_x, int _coord_y);
Server_Card(QString _name, int _id, int _coord_x, int _coord_y, Server_CardZone *_zone = 0);
~Server_Card();
Server_CardZone *getZone() const { return zone; }

View file

@ -52,10 +52,12 @@ int Server_CardZone::removeCard(Server_Card *card)
int index = cards.indexOf(card);
cards.removeAt(index);
card->setZone(0);
return index;
}
Server_Card *Server_CardZone::getCard(int id, bool remove, int *position)
Server_Card *Server_CardZone::getCard(int id, int *position)
{
QMutexLocker locker(&player->getGame()->gameMutex);
@ -65,10 +67,6 @@ Server_Card *Server_CardZone::getCard(int id, bool remove, int *position)
while (CardIterator.hasNext()) {
Server_Card *tmp = CardIterator.next();
if (tmp->getId() == id) {
if (remove) {
cards.removeAt(i);
tmp->setZone(0);
}
if (position)
*position = i;
return tmp;
@ -80,10 +78,6 @@ Server_Card *Server_CardZone::getCard(int id, bool remove, int *position)
if ((id >= cards.size()) || (id < 0))
return NULL;
Server_Card *tmp = cards[id];
if (remove) {
cards.removeAt(id);
tmp->setZone(0);
}
if (position)
*position = id;
return tmp;

Some files were not shown because too many files have changed in this diff Show more