gbrainy r503 - in trunk: data data/game-graphics po src src/Dialogs src/PuzzleGames



Author: jmas
Date: Sun Jan 18 10:38:17 2009
New Revision: 503
URL: http://svn.gnome.org/viewvc/gbrainy?rev=503&view=rev

Log:
New logic game, load imgs from assemblies, some new graphics

Added:
   trunk/data/game-graphics/handshake.svg
   trunk/data/game-graphics/present.svg
   trunk/src/PuzzleGames/PuzzleCounting.cs
Modified:
   trunk/data/ChangeLog
   trunk/data/Makefile.am
   trunk/po/POTFILES.in
   trunk/src/CairoContextEx.cs
   trunk/src/ChangeLog
   trunk/src/Dialogs/AboutDialog.cs
   trunk/src/GameDrawingArea.cs
   trunk/src/GameManager.cs
   trunk/src/Makefile.am
   trunk/src/PuzzleGames/PuzzleHandshakes.cs
   trunk/src/SVGImage.cs

Modified: trunk/data/Makefile.am
==============================================================================
--- trunk/data/Makefile.am	(original)
+++ trunk/data/Makefile.am	Sun Jan 18 10:38:17 2009
@@ -24,6 +24,9 @@
 	app-graphics/allgames-32.png		\
 	app-graphics/pause-32.png
 
+game_graphics = \
+	game-graphics/present.svg	\
+	game-graphics/handshake.svg
 
 install-data-local:
 	@-$(mkinstalldirs) $(DESTDIR)$(hicolordir)/scalable/apps
@@ -63,4 +66,4 @@
 
 noinst_DATA = 	
 
-EXTRA_DIST = $(pixmap_DATA) $(tango_icons) $(man_MANS) gbrainy.exe.config
+EXTRA_DIST = $(pixmap_DATA) $(tango_icons) $(game_graphics) $(man_MANS) gbrainy.exe.config

Added: trunk/data/game-graphics/handshake.svg
==============================================================================
--- (empty file)
+++ trunk/data/game-graphics/handshake.svg	Sun Jan 18 10:38:17 2009
@@ -0,0 +1,197 @@
+<?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";
+   height="600.00000pt"
+   id="svg1"
+   inkscape:version="0.46"
+   sodipodi:docbase="/"
+   sodipodi:docname="handshake.svg"
+   sodipodi:version="0.32"
+   width="800.00000pt"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3842">
+      <stop
+         style="stop-color:#666666;stop-opacity:1;"
+         offset="0"
+         id="stop3844" />
+      <stop
+         style="stop-color:#666666;stop-opacity:0;"
+         offset="1"
+         id="stop3846" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3824">
+      <stop
+         style="stop-color:#999999;stop-opacity:1;"
+         offset="0"
+         id="stop3826" />
+      <stop
+         style="stop-color:#999999;stop-opacity:0;"
+         offset="1"
+         id="stop3828" />
+    </linearGradient>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 375 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1000 : 375 : 1"
+       inkscape:persp3d-origin="500 : 250 : 1"
+       id="perspective24" />
+    <linearGradient
+       id="linearGradient1549">
+      <stop
+         id="stop1550"
+         offset="0.0000000"
+         style="stop-color:#e1a547;stop-opacity:1.0000000;" />
+      <stop
+         id="stop1552"
+         offset="0.50000000"
+         style="stop-color:#cdb250;stop-opacity:1.0000000;" />
+      <stop
+         id="stop1551"
+         offset="1.0000000"
+         style="stop-color:#ffaaaa;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1546">
+      <stop
+         id="stop1547"
+         offset="0"
+         style="stop-color:#000;stop-opacity:1;" />
+      <stop
+         id="stop1548"
+         offset="1"
+         style="stop-color:#fff;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1541">
+      <stop
+         id="stop1542"
+         offset="0"
+         style="stop-color:#000;stop-opacity:1;" />
+      <stop
+         id="stop1543"
+         offset="1"
+         style="stop-color:#fff;stop-opacity:1;" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3808"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3824"
+       id="linearGradient3830"
+       x1="632.32044"
+       y1="237.27246"
+       x2="971.38795"
+       y2="237.27246"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.9754418,-0.225446,-0.197365,0.8929551,979.12722,-661.25153)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3842"
+       id="linearGradient3848"
+       x1="38.95991"
+       y1="420.62709"
+       x2="292.7163"
+       y2="420.62709"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.976765,-0.2165547,-0.1537121,0.6933152,1052.9657,-691.28459)" />
+  </defs>
+  <sodipodi:namedview
+     bordercolor="#666666"
+     borderopacity="1.0"
+     id="base"
+     inkscape:cx="827.26197"
+     inkscape:cy="1124.3561"
+     inkscape:pageopacity="0.0000000"
+     inkscape:pageshadow="2"
+     inkscape:window-height="778"
+     inkscape:window-width="1280"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:zoom="0.43415836"
+     pagecolor="#ffffff"
+     showgrid="false"
+     inkscape:current-layer="svg1" />
+  <path
+     style="fill:#f2f2f2;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     sodipodi:nodetypes="ccccscccscccscsccc"
+     id="path3183"
+     d="M 889.7179,-566.92345 C 837.42173,-578.1933 785.12555,-589.46314 732.82936,-600.73299 C 725.2964,-606.24144 717.76344,-611.74987 710.23048,-617.2583 C 692.51267,-626.15017 675.01537,-636.8513 657.29756,-645.74318 C 641.89481,-656.80109 629.97566,-669.04581 613.56962,-674.02427 C 594.75778,-679.73277 566.669,-681.88233 545.09264,-675.94317 C 494.80451,-625.1512 444.51637,-574.35923 394.22823,-523.56725 C 354.29064,-495.99586 314.35304,-468.42446 274.41544,-440.85307 C 243.18498,-425.96802 244.9355,-377.46705 281.30276,-359.10045 C 293.86801,-352.75461 294.39118,-363.36438 314.43643,-367.96 C 297.39497,-325.10565 317.32167,-327.29106 324.86681,-316.27269 C 335.81103,-307.90031 367.47677,-303.93079 382.66531,-305.13997 C 377.04296,-292.66611 374.6531,-273.77671 383.14093,-264.76264 C 391.90534,-255.45482 400.15941,-244.05541 422.90549,-245.56766 C 423.44436,-238.76944 422.30087,-230.26342 426.74369,-225.55139 C 435.01498,-216.77894 448.87258,-211.80047 461.04782,-205.11
 422 C 653.34276,-268.28396 719.17394,-261.4851 812.03228,-266.08157 C 836.08389,-354.03984 865.6663,-478.96518 889.7179,-566.92345 z"
+     inkscape:export-filename="handshake.png"
+     inkscape:export-xdpi="3.4325387"
+     inkscape:export-ydpi="3.4325387" />
+  <path
+     style="fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.94622874;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     sodipodi:nodetypes="cscsssccsssscsscssscsc"
+     id="path3686"
+     d="M 749.74834,-292.6923 C 754.96473,-283.57747 757.32949,-262.1932 757.24238,-250.39491 C 757.22917,-248.60525 752.35969,-253.09743 750.31537,-252.35276 C 742.34466,-246.77613 738.4172,-243.5424 727.22236,-239.45979 C 721.66931,-237.43466 715.83883,-235.82661 710.04662,-234.26953 C 702.07654,-232.12696 694.13024,-229.76743 685.93549,-228.36084 C 674.47581,-226.39382 663.33859,-221.25282 651.08335,-224.14869 C 628.97905,-215.16773 616.84041,-212.49495 594.19818,-213.44052 C 586.94561,-204.64949 577.4006,-195.85853 565.37153,-196.1412 C 554.41207,-196.39872 538.24096,-204.72153 527.63196,-210.82583 C 517.96631,-216.38729 507.6516,-230.63531 503.62136,-237.03216 C 498.94059,-244.46158 503.93734,-253.54174 510.2816,-260.59658 C 514.55886,-265.35291 526.6024,-266.08995 535.26068,-266.92959 C 532.3064,-272.96032 527.37852,-278.07654 528.55084,-282.88879 C 531.19409,-293.73906 536.76527,-301.3071 548.21387,-307.46568 C 560.55696,-314.10548 580.37868,-312.91337 590.14318,-302.
 31136 C 591.52031,-309.98752 593.0093,-321.16332 603.04608,-326.78997 C 618.29889,-335.34071 633.21081,-336.33384 650.55048,-330.77435 C 678.75045,-321.7328 681.35332,-307.63544 693.24723,-293.92936 C 701.6065,-284.29647 717.04326,-271.98922 724.89425,-270.92191 C 728.43532,-275.24269 729.74187,-282.679 736.21137,-287.14322 C 740.23991,-289.92308 743.78145,-291.64911 749.74834,-292.6923 z"
+     inkscape:export-filename="handshake.png"
+     inkscape:export-xdpi="3.4325387"
+     inkscape:export-ydpi="3.4325387" />
+  <path
+     style="fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.84290755;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     sodipodi:nodetypes="csssscc"
+     id="path8038"
+     d="M 989.26632,-590.93272 C 914.92742,-602.1348 840.65379,-614.96867 766.24958,-624.53892 C 731.58125,-628.99818 710.35503,-510.58863 706.56066,-450.34645 C 703.53728,-402.34465 726.51034,-348.59698 745.79643,-299.80702 C 752.52371,-282.78833 769.85044,-255.38206 784.44748,-252.21411 C 799.37614,-248.97419 871.01262,-247.72827 914.29519,-245.48538 L 989.26632,-590.93272 z"
+     inkscape:export-filename="handshake.png"
+     inkscape:export-xdpi="3.4325387"
+     inkscape:export-ydpi="3.4325387" />
+  <path
+     style="fill:#404f60;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.94622869pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0"
+     id="path13008"
+     d="M 317.1119,-689.50066 L 328.27301,-683.34035 L 330.53274,-669.79099 L 200.43954,-440.69189 L 186.95233,-436.16645 L 179.60162,-435.90122 L 172.41936,-441.19539 L 173.0163,-477.43978 L 200.99077,-558.08897 L 248.39529,-646.63332 L 296.44237,-690.26938 L 317.1119,-689.50066 z"
+     inkscape:export-filename="handshake.png"
+     inkscape:export-xdpi="3.4325387"
+     inkscape:export-ydpi="3.4325387" />
+  <path
+     style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.96806914;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     sodipodi:nodetypes="cszscscsscccccccscccc"
+     id="path919"
+     d="M 304.73418,-679.45003 C 316.36402,-675.61475 337.94251,-663.71612 349.89266,-664.38059 C 362.95357,-665.10684 387.89561,-670.54348 417.75147,-673.27942 C 448.16533,-676.06649 464.33402,-685.37696 491.56972,-684.43602 C 523.11136,-683.34633 530.77794,-662.61721 545.57146,-645.715 C 573.55568,-623.54437 616.07202,-600.69692 623.97637,-585.5414 C 632.54566,-569.1108 645.07986,-531.32246 644.53642,-516.88965 C 651.7859,-500.55488 663.42826,-484.97753 663.45955,-467.40007 C 663.50519,-441.70711 630.6611,-441.04325 616.64239,-447.93507 C 606.37787,-452.9813 600.33889,-461.66138 592.18709,-468.52451 C 568.51765,-479.49483 553.6783,-509.33945 537.93307,-535.76321 C 520.33147,-542.88846 510.42562,-550.13266 498.03075,-562.44873 C 490.49412,-555.70863 480.02467,-558.26056 470.41908,-563.53874 C 470.73733,-546.64898 386.4254,-517.2841 366.24779,-508.21616 C 329.74597,-474.73759 294.23405,-446.06915 255.68686,-413.44218 C 254.13719,-409.61136 249.59428,-402.51668 248.04462,-398
 .68587 C 242.9748,-402.02771 234.45431,-404.33151 230.7478,-408.86847 C 225.86438,-414.84604 223.70754,-423.2138 220.18741,-430.38647 C 200.82412,-437.10607 181.46083,-443.82564 162.09754,-450.54524 C 193.6454,-536.33025 225.19324,-622.11526 256.74111,-707.90026 C 272.91472,-697.4732 288.56057,-689.87708 304.73418,-679.45003 z"
+     inkscape:export-filename="handshake.png"
+     inkscape:export-xdpi="3.4325387"
+     inkscape:export-ydpi="3.4325387" />
+  <path
+     style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95685291;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     sodipodi:nodetypes="ccccccssssscc"
+     id="path9902"
+     d="M 332.56739,-673.63273 C 334.74508,-678.79225 330.99264,-690.67498 320.94075,-697.22136 C 224.45754,-758.85476 132.00575,-798.00022 37.538274,-848.38967 L -43.554385,-532.63909 C 63.148374,-490.92155 107.17684,-467.94737 174.65355,-432.30717 C 178.81964,-431.46166 191.3259,-435.15866 198.06896,-439.47044 C 191.38121,-439.05866 180.56344,-436.75744 178.00574,-438.23507 C 172.50697,-441.41182 175.42805,-459.74558 178.46598,-469.6134 C 191.36471,-511.511 204.32448,-555.18106 225.81576,-593.53136 C 245.33687,-628.36597 267.08161,-676.9212 301.50316,-689.16818 C 306.4845,-690.9405 314.44468,-691.34633 319.15452,-688.87147 C 322.87542,-686.9163 326.02206,-681.61121 326.79542,-675.87801 L 332.56739,-673.63273 z"
+     inkscape:export-filename="handshake.png"
+     inkscape:export-xdpi="3.4325387"
+     inkscape:export-ydpi="3.4325387" />
+  <path
+     style="fill:url(#linearGradient3830);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95682842;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     sodipodi:nodetypes="ccccccssssscc"
+     id="path3814"
+     d="M 332.58531,-672.05951 C 334.79781,-677.20326 331.12574,-689.11159 321.11831,-695.7285 C 225.05381,-758.03901 132.86877,-797.83474 38.743942,-848.88789 L -44.480312,-533.73403 C 61.938114,-491.26569 105.81028,-467.98214 173.04456,-431.86786 C 177.20489,-430.99296 189.73584,-434.60132 196.50783,-438.86514 C 189.81744,-438.50064 178.98446,-436.27602 176.43679,-437.77161 C 170.95964,-440.98697 174.00449,-459.29872 177.10898,-469.14434 C 190.29051,-510.94766 203.5451,-554.52285 225.29497,-592.71842 C 245.05097,-627.4125 267.12327,-675.81044 301.62679,-687.81328 C 306.61997,-689.55027 314.58269,-689.89982 319.27571,-687.39188 C 322.98331,-685.41055 326.09405,-680.08364 326.82864,-674.34541 L 332.58531,-672.05951 z"
+     inkscape:export-filename="handshake.png"
+     inkscape:export-xdpi="3.4325387"
+     inkscape:export-ydpi="3.4325387" />
+  <path
+     style="fill:url(#linearGradient3848);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.84290761;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     sodipodi:nodetypes="csssscc"
+     id="path3832"
+     d="M 990.29242,-590.9905 C 916.00431,-602.52438 841.78866,-615.68977 767.42801,-625.59216 C 732.77991,-630.20617 711.02518,-511.89255 706.96188,-451.66793 C 703.72419,-403.6801 726.45705,-349.83039 745.52509,-300.9548 C 752.17633,-283.90625 769.38049,-256.42289 783.96328,-253.18979 C 798.87738,-249.88327 870.50753,-248.3175 913.77957,-245.88134 L 990.29242,-590.9905 z"
+     inkscape:export-filename="handshake.png"
+     inkscape:export-xdpi="3.4325387"
+     inkscape:export-ydpi="3.4325387" />
+</svg>

Added: trunk/data/game-graphics/present.svg
==============================================================================
--- (empty file)
+++ trunk/data/game-graphics/present.svg	Sun Jan 18 10:38:17 2009
@@ -0,0 +1,1003 @@
+<?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: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";
+   version="1.0"
+   width="358.73154"
+   height="171.59201"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="counting_present.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <sodipodi:namedview
+     inkscape:window-height="725"
+     inkscape:window-width="1280"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1"
+     inkscape:cx="84.63037"
+     inkscape:cy="125.06073"
+     inkscape:window-x="0"
+     inkscape:window-y="52"
+     inkscape:current-layer="g2802"
+     showgrid="false" />
+  <defs
+     id="defs4">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4178">
+      <stop
+         style="stop-color:#808080;stop-opacity:1;"
+         offset="0"
+         id="stop4180" />
+      <stop
+         style="stop-color:#808080;stop-opacity:0;"
+         offset="1"
+         id="stop4182" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4164">
+      <stop
+         style="stop-color:#808080;stop-opacity:1;"
+         offset="0"
+         id="stop4166" />
+      <stop
+         style="stop-color:#808080;stop-opacity:0;"
+         offset="1"
+         id="stop4168" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4137">
+      <stop
+         style="stop-color:#808080;stop-opacity:1;"
+         offset="0"
+         id="stop4139" />
+      <stop
+         style="stop-color:#808080;stop-opacity:0;"
+         offset="1"
+         id="stop4141" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4127">
+      <stop
+         style="stop-color:#808080;stop-opacity:1;"
+         offset="0"
+         id="stop4129" />
+      <stop
+         style="stop-color:#808080;stop-opacity:0;"
+         offset="1"
+         id="stop4131" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4119">
+      <stop
+         style="stop-color:#808080;stop-opacity:1;"
+         offset="0"
+         id="stop4121" />
+      <stop
+         style="stop-color:#808080;stop-opacity:0;"
+         offset="1"
+         id="stop4123" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3553">
+      <stop
+         style="stop-color:#cccccc;stop-opacity:1;"
+         offset="0"
+         id="stop3555" />
+      <stop
+         style="stop-color:#cccccc;stop-opacity:0;"
+         offset="1"
+         id="stop3557" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3553"
+       id="linearGradient3559"
+       x1="-4175.603"
+       y1="4641.6763"
+       x2="-4175.603"
+       y2="3485.729"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7627249,0,0,0.7832842,-2238.9982,-4846.7933)" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3622">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop3624" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop3626" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3614">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop3616" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop3618" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3739">
+      <stop
+         style="stop-color:#cccccc;stop-opacity:1;"
+         offset="0"
+         id="stop3741" />
+      <stop
+         style="stop-color:#cccccc;stop-opacity:0;"
+         offset="1"
+         id="stop3743" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3699">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1;"
+         offset="0"
+         id="stop3701" />
+      <stop
+         style="stop-color:#cccccc;stop-opacity:1"
+         offset="1"
+         id="stop3703" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3681">
+      <stop
+         style="stop-color:#cccccc;stop-opacity:1;"
+         offset="0"
+         id="stop3683" />
+      <stop
+         style="stop-color:#cccccc;stop-opacity:0;"
+         offset="1"
+         id="stop3685" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3585">
+      <stop
+         style="stop-color:#ececec;stop-opacity:1;"
+         offset="0"
+         id="stop3587" />
+      <stop
+         style="stop-color:#ececec;stop-opacity:0;"
+         offset="1"
+         id="stop3589" />
+    </linearGradient>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 85.796005 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="358.73154 : 85.796005 : 1"
+       inkscape:persp3d-origin="179.36577 : 57.197337 : 1"
+       id="perspective2599" />
+    <linearGradient
+       id="linearGradient2526">
+      <stop
+         style="stop-color:#242019;stop-opacity:1;"
+         offset="0"
+         id="stop2528" />
+      <stop
+         style="stop-color:#ff0000;stop-opacity:1"
+         offset="1"
+         id="stop2530" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2518">
+      <stop
+         style="stop-color:#e4e12c;stop-opacity:1"
+         offset="0"
+         id="stop2520" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="1"
+         id="stop2522" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2508">
+      <stop
+         style="stop-color:#c332c8;stop-opacity:1"
+         offset="0"
+         id="stop2510" />
+      <stop
+         style="stop-color:#c33266;stop-opacity:0"
+         offset="1"
+         id="stop2512" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2498">
+      <stop
+         style="stop-color:#990066;stop-opacity:1"
+         offset="0"
+         id="stop2500" />
+      <stop
+         style="stop-color:#c80069;stop-opacity:0"
+         offset="1"
+         id="stop2502" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2488">
+      <stop
+         style="stop-color:#a71555;stop-opacity:1"
+         offset="0"
+         id="stop2490" />
+      <stop
+         style="stop-color:#a715e8;stop-opacity:0"
+         offset="1"
+         id="stop2492" />
+    </linearGradient>
+    <linearGradient
+       x1="-4381.7905"
+       y1="3178.5208"
+       x2="-3274.6128"
+       y2="1099.1547"
+       id="linearGradient2494"
+       xlink:href="#linearGradient2488"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="-5756.252"
+       y1="2898.4656"
+       x2="-4917.3394"
+       y2="1573.7158"
+       id="linearGradient2504"
+       xlink:href="#linearGradient2498"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="-9397.7773"
+       y1="4781.8364"
+       x2="-6172.5566"
+       y2="2257.2063"
+       id="linearGradient2514"
+       xlink:href="#linearGradient2508"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="-4043.6208"
+       y1="4122.3892"
+       x2="-7964.7153"
+       y2="1219.4541"
+       id="linearGradient2524"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.441176,0,0,0.59241,-339.5724,1167.273)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-4369.4712"
+       y1="2101.3281"
+       x2="-4369.4712"
+       y2="3642.2869"
+       id="linearGradient2532"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.971819,-66,56.55292)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-4043.6208"
+       y1="4122.3892"
+       x2="-7964.7153"
+       y2="1219.4541"
+       id="linearGradient2542"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.441176,0,-1.285096e-7,0.349668,-3659.063,2523.334)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-4369.4712"
+       y1="2101.3281"
+       x2="-4369.4712"
+       y2="3642.2869"
+       id="linearGradient2544"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,-2.108144e-7,0.573612,-3385.491,1867.732)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-4043.6208"
+       y1="4122.3892"
+       x2="-7964.7153"
+       y2="1219.4541"
+       id="linearGradient2553"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.277057,0.159521,0,0.574532,-3204.879,2386.729)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-4369.4712"
+       y1="2101.3281"
+       x2="-4369.4712"
+       y2="3642.2869"
+       id="linearGradient2555"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.627997,0.361582,0,0.942491,-3033.076,1408.45)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-4043.6208"
+       y1="4122.3892"
+       x2="-7964.7153"
+       y2="1219.4541"
+       id="linearGradient2559"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.337306,4.513729e-7,0,0.662711,6164.443,6713.003)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-4369.4712"
+       y1="2101.3281"
+       x2="-4369.4712"
+       y2="3642.2869"
+       id="linearGradient2561"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.764561,1.023111e-6,0,1.087145,6373.606,5470.475)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-7805.0151"
+       y1="2660.5471"
+       x2="-7650.3984"
+       y2="1478.9016"
+       id="linearGradient2717"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.819135,-0.329753,0.34696,0.601249,107.2305,-3173.737)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-6250.3867"
+       y1="2801.1426"
+       x2="-6731.1572"
+       y2="2060.0479"
+       id="linearGradient2719"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.819135,-0.329753,0.34696,0.601249,-38.93501,-2858.126)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-7805.0151"
+       y1="2660.5471"
+       x2="-7650.3984"
+       y2="1478.9016"
+       id="linearGradient2729"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.819135,-0.329753,-0.34696,0.601249,-9494.737,-3173.737)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-6250.3867"
+       y1="2801.1426"
+       x2="-6731.1572"
+       y2="2060.0479"
+       id="linearGradient2731"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.819135,-0.329753,-0.34696,0.601249,-9348.567,-2858.126)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-7805.0151"
+       y1="2660.5471"
+       x2="-7650.3984"
+       y2="1478.9016"
+       id="linearGradient2735"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.616392,-0.407792,0.261084,0.743539,-1074.375,-4180.369)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-6250.3867"
+       y1="2801.1426"
+       x2="-6731.1572"
+       y2="2060.0479"
+       id="linearGradient2737"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.616392,-0.407792,0.261084,0.743539,-1184.363,-3790.066)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-6024.2803"
+       y1="2613.2395"
+       x2="-5880.459"
+       y2="2281.8108"
+       id="linearGradient2772"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.006196,0,0,1.037156,48.48071,-109.1863)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-5978.5664"
+       y1="2692.8901"
+       x2="-5869.0308"
+       y2="2316.0967"
+       id="linearGradient2788"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.006196,0,0,1.037156,48.48071,-109.1863)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-5978.5664"
+       y1="2692.8901"
+       x2="-5869.0308"
+       y2="2316.0967"
+       id="linearGradient2792"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1.006196,0,0,1.037156,-9739.081,-44.54321)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-6024.2803"
+       y1="2613.2395"
+       x2="-5880.459"
+       y2="2281.8108"
+       id="linearGradient2794"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1.006196,0,0,1.037156,-9739.081,-44.54321)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-5978.5664"
+       y1="2692.8901"
+       x2="-5869.0308"
+       y2="2316.0967"
+       id="linearGradient2798"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.747837,0.334098,0.703958,0.476119,-8944.456,2291.842)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-6024.2803"
+       y1="2613.2395"
+       x2="-5880.459"
+       y2="2281.8108"
+       id="linearGradient2800"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.747837,0.334098,0.703958,0.476119,-8944.456,2291.842)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-5978.5664"
+       y1="2692.8901"
+       x2="-5869.0308"
+       y2="2316.0967"
+       id="linearGradient2822"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1.006196,0,0,1.037156,-9739.081,-44.54321)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-6024.2803"
+       y1="2613.2395"
+       x2="-5880.459"
+       y2="2281.8108"
+       id="linearGradient2824"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1.006196,0,0,1.037156,-9739.081,-44.54321)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-4381.7905"
+       y1="3178.5208"
+       x2="-3274.6128"
+       y2="1099.1547"
+       id="linearGradient2826"
+       xlink:href="#linearGradient2488"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(2035.1061,-1262.564)" />
+    <linearGradient
+       x1="-5756.252"
+       y1="2898.4656"
+       x2="-4917.3394"
+       y2="1573.7158"
+       id="linearGradient2828"
+       xlink:href="#linearGradient2498"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="-9397.7773"
+       y1="4781.8364"
+       x2="-6172.5566"
+       y2="2257.2063"
+       id="linearGradient2830"
+       xlink:href="#linearGradient2508"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.9063027,0,0,1.8332869,17180.117,-25183.05)" />
+    <linearGradient
+       x1="-4043.6208"
+       y1="4122.3892"
+       x2="-7964.7153"
+       y2="1219.4541"
+       id="linearGradient2832"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.3364959,0,0,0.4640254,-4613.1709,2064.0825)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-4369.4712"
+       y1="2101.3281"
+       x2="-4369.4712"
+       y2="3642.2869"
+       id="linearGradient2834"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7627249,0,0,0.7612105,-5449.1966,1172.0964)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-4043.6208"
+       y1="4122.3892"
+       x2="-7964.7153"
+       y2="1219.4541"
+       id="linearGradient2836"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.3364959,0,-9.8017472e-8,0.2676237,-4189.0842,-254.02052)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-4369.4712"
+       y1="2101.3281"
+       x2="-4369.4712"
+       y2="3642.2869"
+       id="linearGradient2838"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7627249,0,-1.6079339e-7,0.4390226,-1511.8143,-3552.2916)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-4043.6208"
+       y1="4122.3892"
+       x2="-7964.7153"
+       y2="1219.4541"
+       id="linearGradient2840"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.277057,0.159521,0,0.574532,-4408.1979,4081.3705)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-4369.4712"
+       y1="2101.3281"
+       x2="-4369.4712"
+       y2="3642.2869"
+       id="linearGradient2842"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.627997,0.361582,0,0.942491,-3953.5873,1284.9993)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-4043.6208"
+       y1="4122.3892"
+       x2="-7964.7153"
+       y2="1219.4541"
+       id="linearGradient2844"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6010381,1.0256622e-6,0,1.2293905,36296.516,43072.831)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-4369.4712"
+       y1="2101.3281"
+       x2="-4369.4712"
+       y2="3642.2869"
+       id="linearGradient2846"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3623537,2.324833e-6,0,2.0167545,36669.219,40767.828)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-5978.5664"
+       y1="2692.8901"
+       x2="-5869.0308"
+       y2="2316.0967"
+       id="linearGradient2848"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.006196,0,0,1.037156,48.48071,-109.1863)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-6024.2803"
+       y1="2613.2395"
+       x2="-5880.459"
+       y2="2281.8108"
+       id="linearGradient2850"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.006196,0,0,1.037156,48.48071,-109.1863)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-7805.0151"
+       y1="2660.5471"
+       x2="-7650.3984"
+       y2="1478.9016"
+       id="linearGradient2852"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.819135,-0.329753,0.34696,0.601249,107.2305,-3173.737)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-6250.3867"
+       y1="2801.1426"
+       x2="-6731.1572"
+       y2="2060.0479"
+       id="linearGradient2854"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.819135,-0.329753,0.34696,0.601249,-38.93501,-2858.126)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-7805.0151"
+       y1="2660.5471"
+       x2="-7650.3984"
+       y2="1478.9016"
+       id="linearGradient2856"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.819135,-0.329753,0.34696,0.601249,3251.3863,-3011.0065)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-6250.3867"
+       y1="2801.1426"
+       x2="-6731.1572"
+       y2="2060.0479"
+       id="linearGradient2858"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.819135,-0.329753,0.34696,0.601249,3105.2208,-2695.3955)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-5978.5664"
+       y1="2692.8901"
+       x2="-5869.0308"
+       y2="2316.0967"
+       id="linearGradient2860"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.747837,0.334098,0.703958,0.476119,-8944.456,2291.842)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-6024.2803"
+       y1="2613.2395"
+       x2="-5880.459"
+       y2="2281.8108"
+       id="linearGradient2862"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.747837,0.334098,0.703958,0.476119,-8944.456,2291.842)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-7805.0151"
+       y1="2660.5471"
+       x2="-7650.3984"
+       y2="1478.9016"
+       id="linearGradient2864"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.819135,-0.329753,-0.34696,0.601249,-40540.545,-5656.1812)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-6250.3867"
+       y1="2801.1426"
+       x2="-6731.1572"
+       y2="2060.0479"
+       id="linearGradient2866"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.819135,-0.329753,-0.34696,0.601249,-40394.375,-5340.5702)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-7805.0151"
+       y1="2660.5471"
+       x2="-7650.3984"
+       y2="1478.9016"
+       id="linearGradient2868"
+       xlink:href="#linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.616392,-0.407792,0.261084,0.743539,-1074.375,-4180.369)"
+       spreadMethod="reflect" />
+    <linearGradient
+       x1="-6250.3867"
+       y1="2801.1426"
+       x2="-6731.1572"
+       y2="2060.0479"
+       id="linearGradient2870"
+       xlink:href="#linearGradient2526"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.616392,-0.407792,0.261084,0.743539,-1184.363,-3790.066)"
+       spreadMethod="reflect" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2526"
+       id="linearGradient2603"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.819135,-0.329753,0.34696,0.601249,-460.37388,-3088.1932)"
+       spreadMethod="reflect"
+       x1="-6250.3867"
+       y1="2801.1426"
+       x2="-6731.1572"
+       y2="2060.0479" />
+    <filter
+       id="filter3403"
+       inkscape:label="filter1">
+      <feBlend
+         blend="normal"
+         id="feBlend3405" />
+    </filter>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3585"
+       id="linearGradient3591"
+       x1="-8305.4941"
+       y1="2946.1307"
+       x2="-6507.0131"
+       y2="2946.1307"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3681"
+       id="linearGradient3693"
+       gradientUnits="userSpaceOnUse"
+       x1="-5327.0752"
+       y1="1076.8569"
+       x2="-4927.8169"
+       y2="249.31535"
+       gradientTransform="matrix(1,-0.3683104,0.3596782,1,-177.52973,-1848.0546)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3699"
+       id="linearGradient3705"
+       x1="-4045.5593"
+       y1="541.33801"
+       x2="-4552.4062"
+       y2="933.9021"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.317721,0,0.4739555,0.8764502,1187.6136,100.05555)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3739"
+       id="linearGradient3745"
+       x1="252.74129"
+       y1="30.500748"
+       x2="190.95067"
+       y2="23.554213"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3739"
+       id="linearGradient3762"
+       gradientUnits="userSpaceOnUse"
+       x1="252.74129"
+       y1="30.500748"
+       x2="190.95067"
+       y2="23.554213" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3739"
+       id="linearGradient3768"
+       gradientUnits="userSpaceOnUse"
+       x1="252.74129"
+       y1="30.500748"
+       x2="190.95067"
+       y2="23.554213" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3739"
+       id="linearGradient3778"
+       gradientUnits="userSpaceOnUse"
+       x1="252.74129"
+       y1="30.500748"
+       x2="190.95067"
+       y2="23.554213" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3614"
+       id="linearGradient3620"
+       x1="-6071.5518"
+       y1="1869.647"
+       x2="-4781.9521"
+       y2="577.52411"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7840162,0,0,1,-3267.4347,-2759.8675)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3622"
+       id="linearGradient3628"
+       x1="-8403.7891"
+       y1="3396.4368"
+       x2="-7233.3047"
+       y2="4712.3428"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-10642.431,11468.02)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4119"
+       id="linearGradient4125"
+       x1="-4462.7236"
+       y1="3335.5835"
+       x2="-2473.0984"
+       y2="1097.8531"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(430.66186,2996.0724)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4127"
+       id="linearGradient4133"
+       x1="-7381.2749"
+       y1="2869.3899"
+       x2="-5903.9912"
+       y2="979.75085"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(430.66186,2983.6405)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4137"
+       id="linearGradient4143"
+       x1="-11024.03"
+       y1="5868.5713"
+       x2="-5373.9644"
+       y2="1728.2107"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.001692,-11025.12,11856.553)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4164"
+       id="linearGradient4170"
+       x1="-4436.3481"
+       y1="1172.4443"
+       x2="-3695.7583"
+       y2="302.21579"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2786695,0,0,1.1161864,1484.6387,2746.7171)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4178"
+       id="linearGradient4184"
+       x1="-4701.0757"
+       y1="1147.5806"
+       x2="-5428.8232"
+       y2="-207.48947"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3859587,0,0,1.1758329,2136.4867,2743.095)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3614"
+       id="linearGradient4196"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7840162,0,0,1,-2590.8833,-3270.5927)"
+       x1="-6071.5518"
+       y1="1869.647"
+       x2="-4781.9521"
+       y2="577.52411" />
+  </defs>
+  <g
+     id="layer1"
+     transform="translate(-55.88857,-60.589718)"
+     style="fill:#cccccc">
+    <g
+       transform="matrix(7.8938723e-2,0,0,7.5960663e-2,603.02478,-214.77917)"
+       id="g2802"
+       style="fill:#cccccc">
+      <rect
+         width="2550.3953"
+         height="1352.0909"
+         x="-20569.512"
+         y="15020.854"
+         transform="matrix(1,0,0.9663162,0.2573578,0,0)"
+         style="opacity:1;fill:#ececec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:17.74209595;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect2506" />
+      <rect
+         width="2480.2051"
+         height="1315.9058"
+         x="-20355.939"
+         y="14864.457"
+         transform="matrix(1,0,0.9655627,0.2601705,0,0)"
+         style="opacity:1;fill:url(#linearGradient3628);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:17.74209595;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect3595" />
+      <rect
+         width="671.99896"
+         height="1124.0043"
+         x="-16621.365"
+         y="12428.686"
+         transform="matrix(1,0,0.95062,0.3103572,0,0)"
+         style="opacity:1;fill:#ffffff;fill-opacity:0.96928328;fill-rule:nonzero;stroke:none;stroke-width:8.41451454;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect3605" />
+      <rect
+         width="595.5332"
+         height="2548.5835"
+         x="13553.781"
+         y="16101.349"
+         transform="matrix(0.9566011,0.2914005,-1,0,0,0)"
+         style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:8.68619728;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect3615" />
+      <path
+         d="M -7216.1555,3784.5928 L -5455.5144,4223.6978 L -2018.6729,4223.6978 L -3779.3735,3784.5928 L -7216.1555,3784.5928 z M -7205.3474,3793.7689 L -7210.7821,5701.942 L -5465.7263,6238.0131 L -5471.2208,4227.5918 L -7205.3474,3793.7689 z M -5459.9343,4227.3991 L -5459.9343,6236.7795 L -2031.4532,6236.7795 L -2031.4532,4227.3991 L -5459.9343,4227.3991 z"
+         style="opacity:1;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:#796d78;stroke-width:12.91399384;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9848485;visibility:visible;display:inline;overflow:visible"
+         id="rect1591" />
+      <rect
+         width="3425.1648"
+         height="2001.6049"
+         x="-5467.6016"
+         y="4236.8521"
+         style="opacity:1;fill:url(#linearGradient4125);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15.06845188;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect3779"
+         ry="0" />
+      <path
+         d="M -7196.4241,3799.5426 L -5478.737,4232.8119 L -5473.3292,6240.6522 L -7201.8323,5705.2878 L -7196.4241,3799.5426 z"
+         style="fill:url(#linearGradient4133);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15.60182858;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="path3791" />
+      <rect
+         width="3428.4495"
+         height="1813.8013"
+         x="-21846.797"
+         y="15087.284"
+         transform="matrix(1,0,0.9683352,0.2496536,0,0)"
+         style="opacity:1;fill:url(#linearGradient4143);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:17.74209595;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect4135" />
+      <path
+         d="M -6659.4581,3930.5352 L -5946.0674,4111.7849 L -5981.5776,6066.5011 L -6659.4581,5862.1544 L -6659.4581,3930.5352 z"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.01231289;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="path4147" />
+      <rect
+         width="951.1817"
+         height="1991.2665"
+         x="-4182.3706"
+         y="4235.8057"
+         style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:38.22217178;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect2516" />
+      <rect
+         width="774.04968"
+         height="3351.9399"
+         x="15574.422"
+         y="18389.631"
+         transform="matrix(0.9679777,0.2510363,-1,0,0,0)"
+         style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:83.14770508;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect2557" />
+      <rect
+         width="992.92847"
+         height="1635.2887"
+         x="-19782.082"
+         y="14487.389"
+         transform="matrix(1,0,0.965451,0.2605845,0,0)"
+         style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:53.22921371;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect2540" />
+      <path
+         d="M -2803.5409,2669.6053 C -2683.5878,2709.536 -2590.5655,2981.1177 -2671.2992,3146.5722 C -2779.4393,3393.2869 -2982.5919,3595.4114 -3245.8197,3733.9434 C -3507.6993,3863.9502 -3673.1904,3904.6343 -3853.3762,3938.9067 C -4026.2498,3966.3662 -4190.7325,3965.5974 -4331.919,3928.2624 C -4375.055,3889.8261 -4323.6399,3754.6853 -4304.0546,3685.2618 C -4208.5883,3406.46 -4254.58,2994.2039 -3982.6247,2803.2847 C -3721.3102,2617.1804 -3189.9782,2670.8809 -2949.7568,2650.1785 C -2896.6655,2648.211 -2846.5689,2653.5804 -2803.5409,2669.6053 z M -2980.4932,2769.121 C -3215.1877,2721.3502 -3672.2639,2768.9671 -3879.6525,2897.1414 C -4102.9683,3041.7996 -4019.1708,3380.3319 -4124.4197,3613.3339 C -4155.7324,3680.0782 -4165.2177,3760.5246 -4185.2769,3826.0434 C -3992.7002,3827.0574 -3639.3205,3779.5988 -3389.8572,3644.3422 C -3036.5485,3406.9572 -2917.5335,3263.5699 -2817.567,3067.5663 C -2781.2286,2972.6249 -2805.0327,2943.8059 -2809.9785,2869.2748 L -2862.0129,2803.6654 L -298
 0.4932,2769.121 z"
+         style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.83451462;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path4158"
+         sodipodi:nodetypes="cccccccccccccccccc" />
+      <path
+         d="M -2805.9417,2676.7411 C -2686.7758,2717.2306 -2594.3639,2992.6122 -2674.5678,3160.3818 C -2781.9983,3410.5484 -2983.8177,3615.501 -3245.3178,3755.9716 C -3505.4788,3887.7973 -3669.8838,3929.0506 -3848.8872,3963.8026 C -4020.6261,3991.6463 -4184.0294,3990.8667 -4324.2892,3953.0093 C -4367.1421,3914.0352 -4316.0646,3777.0036 -4296.6079,3706.6088 C -4201.7681,3423.9058 -4247.458,3005.8816 -3977.2873,2812.291 C -3717.6878,2623.5827 -3189.8429,2678.0346 -2951.1981,2657.0425 C -2898.455,2655.0474 -2848.6874,2660.4921 -2805.9417,2676.7411 z M -2981.7327,2777.6492 C -3214.8868,2729.21 -3668.9633,2777.4931 -3874.991,2907.4609 C -4096.8413,3054.1431 -4013.5936,3397.4121 -4118.1517,3633.6744 C -4149.259,3701.3527 -4158.6819,3782.9246 -4178.6098,3849.3601 C -3987.2967,3850.3883 -3636.2361,3802.2656 -3388.41,3665.1167 C -3037.4201,3424.41 -2919.1862,3279.0165 -2819.8755,3080.2705 C -2783.7756,2984.0006 -2807.4237,2954.7784 -2812.337,2879.2044 L -2864.0299,2812.6771 L -2981.7
 327,2777.6492 z"
+         style="fill:url(#linearGradient4170);fill-opacity:1;fill-rule:evenodd;stroke:#796d78;stroke-width:15.42794514;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.9848485"
+         id="path4160"
+         sodipodi:nodetypes="cccccccccccccccccc" />
+      <path
+         d="M -5816.3949,2650.6853 C -5943.7772,2693.2354 -6042.561,2982.6313 -5956.8271,3158.9387 C -5841.9894,3421.8364 -5626.2543,3637.219 -5346.7235,3784.8381 C -5068.6243,3923.3724 -4892.8835,3966.7251 -4701.5376,4003.2455 C -4517.9572,4032.5062 -4343.2871,4031.687 -4193.3564,3991.9031 C -4147.5488,3950.9455 -4202.1481,3806.9405 -4222.9463,3732.9633 C -4324.3255,3435.8736 -4275.4851,2996.5759 -4564.2843,2793.1334 C -4841.7832,2594.8217 -5406.0234,2652.0448 -5661.123,2629.9844 C -5717.5026,2627.8878 -5770.7018,2633.6095 -5816.3949,2650.6853 z M -5628.4829,2756.7288 C -5379.2527,2705.8244 -4893.8674,2756.5646 -4673.634,2893.1467 C -4436.487,3047.2935 -4525.4746,3408.0316 -4413.7072,3656.3173 C -4380.4551,3727.4395 -4370.3824,3813.1627 -4349.0806,3882.9792 C -4553.5848,3884.0596 -4928.8511,3833.488 -5193.7649,3689.3595 C -5568.9558,3436.4033 -5695.3421,3283.6107 -5801.5003,3074.7505 C -5840.0893,2973.5814 -5814.8107,2942.872 -5809.5586,2863.452 L -5754.3015,2793.5392 L -56
 28.4829,2756.7288 z"
+         style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.83451462;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path4172"
+         sodipodi:nodetypes="cccccccccccccccccc" />
+      <path
+         d="M -5814.9765,2645.472 C -5942.1127,2687.7899 -6040.7056,2975.6061 -5955.1374,3150.9513 C -5840.5215,3412.414 -5625.2033,3626.6211 -5346.2127,3773.4344 C -5068.6506,3911.2129 -4893.2495,3954.3289 -4702.2732,3990.65 C -4519.0475,4019.751 -4344.7148,4018.9363 -4195.0739,3979.3696 C -4149.3547,3938.6355 -4203.8485,3795.4161 -4224.6066,3721.8427 C -4325.7898,3426.3746 -4277.0439,2989.4746 -4565.2851,2787.1426 C -4842.2478,2589.9133 -5405.3978,2646.824 -5660.0046,2624.884 C -5716.2754,2622.7989 -5769.3717,2628.4894 -5814.9765,2645.472 z M -5627.4276,2750.9366 C -5378.679,2700.3102 -4894.2314,2750.7734 -4674.4235,2886.6099 C -4437.7346,3039.9154 -4526.5504,3398.6846 -4414.9989,3645.6151 C -4381.811,3716.3493 -4371.7579,3801.6045 -4350.4972,3871.04 C -4554.6063,3872.1147 -4929.1476,3821.8189 -5193.5496,3678.4772 C -5568.0155,3426.9015 -5694.1577,3274.9428 -5800.1107,3067.2225 C -5838.6251,2966.6056 -5813.3955,2936.0639 -5808.1535,2857.0773 L -5753.0032,2787.546 L -5627.4
 276,2750.9366 z"
+         style="fill:url(#linearGradient4184);fill-opacity:1;fill-rule:evenodd;stroke:#796d78;stroke-width:16.48574448;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.9848485"
+         id="path4174"
+         sodipodi:nodetypes="cccccccccccccccccc" />
+    </g>
+  </g>
+</svg>

Modified: trunk/po/POTFILES.in
==============================================================================
--- trunk/po/POTFILES.in	(original)
+++ trunk/po/POTFILES.in	Sun Jan 18 10:38:17 2009
@@ -31,6 +31,7 @@
 src/PuzzleGames/PuzzleCirclesRectangle.cs
 src/PuzzleGames/PuzzleClocks.cs
 src/PuzzleGames/PuzzleCountCircles.cs
+src/PuzzleGames/PuzzleCounting.cs
 src/PuzzleGames/PuzzleCountSeries.cs
 src/PuzzleGames/PuzzleCoverPercentage.cs
 src/PuzzleGames/PuzzleCube.cs

Modified: trunk/src/CairoContextEx.cs
==============================================================================
--- trunk/src/CairoContextEx.cs	(original)
+++ trunk/src/CairoContextEx.cs	Sun Jan 18 10:38:17 2009
@@ -348,5 +348,45 @@
 		}
 	}
 
+	public void DrawImageFromAssembly (string  resource, double x, double y, double width, double height)
+	{
+		SVGImage image;
+
+		try {
+			image = new SVGImage (System.Reflection.Assembly.GetCallingAssembly (), resource);
+		}
+		catch (Exception)
+		{
+			return;
+		}
+
+		DrawImage (image, x, y, width, height);
+		image.Dispose ();
+	}
+
+	public void DrawImageFromFile (string filename, double x, double y, double width, double height)
+	{
+		SVGImage image;
+
+		try {
+			image = new SVGImage (filename);
+		}
+		catch (Exception)
+		{
+			return;
+		}
+
+		DrawImage (image, x, y, width, height);
+		image.Dispose ();
+	}
+
+	void DrawImage (SVGImage image, double x, double y, double width, double height)
+	{		
+		Save ();
+		Translate (x, y);
+		Scale (width / image.Width, height / image.Height);
+		image.RenderToCairo (Handle);
+		Restore ();
+	}
 }
 

Modified: trunk/src/Dialogs/AboutDialog.cs
==============================================================================
--- trunk/src/Dialogs/AboutDialog.cs	(original)
+++ trunk/src/Dialogs/AboutDialog.cs	Sun Jan 18 10:38:17 2009
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 Jordi Mas i HernÃndez <jmas softcatala org>
+ * Copyright (C) 2008-2009 Jordi Mas i HernÃndez <jmas softcatala org>
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -35,6 +35,13 @@
 			"Jordi Mas i Hernandez <jmas softcatala org>",
 		};
 
+		string [] artists = new string [] {
+			"Anna Barberà MarÃ",
+			"Carme Cabal SardÃ",
+			"Jordi Mas i Hernandez",
+			"Openclipart.org"
+		};
+
 		// Name of the people that translated the application
 		string translators = Catalog.GetString ("translator-credits");
 
@@ -58,6 +65,7 @@
 		Website = "http://live.gnome.org/gbrainy";;
 		WebsiteLabel = Catalog.GetString ("gbrainy web site");
 		TranslatorCredits = translators;
+		Artists = artists;
 		IconName = null;
 		License = license.ToString ();
 		WrapLicense = true;

Modified: trunk/src/GameDrawingArea.cs
==============================================================================
--- trunk/src/GameDrawingArea.cs	(original)
+++ trunk/src/GameDrawingArea.cs	Sun Jan 18 10:38:17 2009
@@ -95,26 +95,6 @@
 		countdown = null;
 	}
 
-	private void DrawImage (CairoContextEx gr, double x, double y, string img)
-	{
-		SVGImage image;
-
-		try {
-			image = new SVGImage (img);
-		}
-		catch (Exception)
-		{
-			return;
-		}
-
-		gr.Save ();
-		gr.Translate (x, y);
-		gr.Scale (0.15 / image.Width, 0.15 / image.Height);
-		image.RenderToCairo (gr.Handle);
-		gr.Restore ();
-		image.Dispose ();
-	}
-
 	private void DrawWelcome (CairoContextEx gr, int area_width, int area_height)
 	{
 		double y = 0.05;
@@ -132,20 +112,20 @@
 
 		y = 0.25;
 
-		DrawImage (gr, rtl ? 0.75 : 0.05, y, Defines.DATA_DIR + "logic-games.svg");
+		gr.DrawImageFromFile (Defines.DATA_DIR + "logic-games.svg", rtl ? 0.75 : 0.05, y, 0.15, 0.15);
 		gr.DrawStringWithWrapping (rtl ? 0.05 : 0.23, y + 0.01, 
 			Catalog.GetString ("Logic puzzles. Designed to challenge your reasoning and thinking skills."), 
 			rtl ? 0.65 : -1);
 
 		y += space;
 
-		DrawImage (gr, rtl ? 0.75 : 0.05, y, Defines.DATA_DIR + "math-games.svg");
+		gr.DrawImageFromFile (Defines.DATA_DIR + "math-games.svg", rtl ? 0.75 : 0.05, y, 0.15, 0.15);
 		gr.DrawStringWithWrapping (rtl ? 0.05 : 0.23, y + 0.01, 
 			Catalog.GetString ("Mental calculation. Based on arithmetical operations that test your mental calculation abilities."),
 			rtl ? 0.65 : -1);
 
 		y += space;
-		DrawImage (gr, rtl ? 0.75 : 0.05, y, Defines.DATA_DIR + "memory-games.svg");
+		gr.DrawImageFromFile (Defines.DATA_DIR + "memory-games.svg", rtl ? 0.75 : 0.05, y, 0.15, 0.15);
 		gr.DrawStringWithWrapping (rtl ? 0.05 : 0.23, y + 0.01, 
 			Catalog.GetString ("Memory trainers. To prove and enhance your short term memory."),
 			rtl ? 0.65 : -1);

Modified: trunk/src/GameManager.cs
==============================================================================
--- trunk/src/GameManager.cs	(original)
+++ trunk/src/GameManager.cs	Sun Jan 18 10:38:17 2009
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2008 Jordi Mas i HernÃndez <jmas softcatala org>
+ * Copyright (C) 2007-2009 Jordi Mas i HernÃndez <jmas softcatala org>
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -70,6 +70,7 @@
 		typeof (PuzzleFourSided),
 		typeof (PuzzleLargerShape),
 		typeof (PuzzleHandshakes),
+		typeof (PuzzleCounting),
 	};
 
 	static Type[] CalculationTrainersInternal = new Type[] 

Modified: trunk/src/Makefile.am
==============================================================================
--- trunk/src/Makefile.am	(original)
+++ trunk/src/Makefile.am	Sun Jan 18 10:38:17 2009
@@ -73,6 +73,7 @@
 	$(srcdir)/PuzzleGames/PuzzleHandshakes.cs	\
 	$(srcdir)/CalculationGames/CalculationPrimes.cs	\
 	$(srcdir)/MemoryGames/MemoryFacts.cs		\
+	$(srcdir)/PuzzleGames/PuzzleCounting.cs	\
 	$(srcdir)/gbrainy.cs			
 
 ASSEMBLIES = \
@@ -92,6 +93,8 @@
 -resource:$(top_srcdir)/data/app-graphics/math-games-32.png  \
 -resource:$(top_srcdir)/data/app-graphics/memory-games-32.png  \
 -resource:$(top_srcdir)/data/app-graphics/gbrainy.svg  \
+-resource:$(top_srcdir)/data/game-graphics/present.svg  \
+-resource:$(top_srcdir)/data/game-graphics/handshake.svg  \
 -resource:$(srcdir)/gbrainy.addin.xml
 
 gbrainydir = $(libdir)/gbrainy

Added: trunk/src/PuzzleGames/PuzzleCounting.cs
==============================================================================
--- (empty file)
+++ trunk/src/PuzzleGames/PuzzleCounting.cs	Sun Jan 18 10:38:17 2009
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2009 Jordi Mas i HernÃndez <jmas softcatala org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+using Cairo;
+using Mono.Unix;
+using System;
+
+public class PuzzleCounting : Game
+{
+	enum GameType
+	{
+		Machine,
+		Fence,
+		Present,
+		Total
+	}
+
+	string question, answer;
+	GameType gametype;
+
+	public override string Name {
+		get {return Catalog.GetString ("Counting");}
+	}
+
+	public override string Question {
+		get {return question; }
+	}
+
+	public override string Answer {
+		get { return base.Answer + " " + answer;}
+	}
+
+	public override void Initialize ()
+	{
+		int ans, var, total;
+
+		gametype = (GameType) random.Next ((int) GameType.Total);
+
+		switch ((int) gametype)
+		{
+		case (int) GameType.Machine:
+			var = 2 + random.Next (5);
+			total = 50 + random.Next (100);
+			question = String.Format (
+				Catalog.GetString ("We have a {0} meter piece of fabric. Machine A takes {1} seconds to cut 1 meter of this fabric. How many seconds does Machine A take to cut the entire piece of fabric into 1 meter pieces?"),
+				total, var);
+			answer = String.Format (
+				Catalog.GetString ("With the {0} cut, Machine A creates two 1 meter pieces."), (total - 1));
+	
+			ans = (total - 1) * var;
+			break;
+
+		case (int) GameType.Fence:
+			total = 20 + random.Next (20);
+			ans = total - 4;
+			question = String.Format (
+				Catalog.GetString ("A fence is built to enclose a square shaped region. {0} fence poles are used in each side of the square. How many fence poles are used in total?"),
+				total);
+			answer = String.Format (
+				Catalog.GetString ("There are {0} fence poles since the poles on the corners of the square are shared."), ans);
+			break;
+
+		case (int) GameType.Present:
+			int present = 5 + random.Next (20);
+			total = present + 2;
+			ans = total;
+			question = String.Format (
+				Catalog.GetString ("Wrapping an anniversary present costs one euro. The anniversary present costs {0} euros more than the cost to wrap it. How much does it cost to both purchase and wrap the present?"),
+				present);
+			answer = String.Format (
+				Catalog.GetString ("Individually, the present costs one euro more to purchase than to wrap."), ans);
+			break;
+		default:
+			throw new Exception ("Unexpected value");
+		}
+
+		right_answer = (ans).ToString ();
+	}
+
+	public override void Draw (CairoContextEx gr, int area_width, int area_height)
+	{
+		base.Draw (gr, area_width, area_height);
+
+		if (gametype == GameType.Present) {
+			gr.DrawImageFromAssembly ("present.svg", 0.2, 0.4, 0.6, 0.2);
+		} else {
+			if (gametype == GameType.Fence)
+			{
+				double x105, y105;
+				double x = 0.35, y = 0.2;
+				double figure_size = 0.4;
+
+				x105 = figure_size * Math.Cos (105 * Math.PI / 180);
+				y105 = figure_size * Math.Sin (105 * Math.PI / 180);
+				gr.MoveTo (x, y);
+				gr.LineTo (x + x105, y + y105);
+				gr.LineTo (x + x105 + figure_size, y + y105);
+				gr.Stroke ();
+				gr.MoveTo (x + figure_size, y);
+				gr.LineTo (x + figure_size + x105, y + y105);
+				gr.Stroke ();
+				gr.MoveTo (x, y);
+				gr.LineTo (x + figure_size, y);
+				gr.Stroke ();
+			}
+		}
+	}
+}

Modified: trunk/src/PuzzleGames/PuzzleHandshakes.cs
==============================================================================
--- trunk/src/PuzzleGames/PuzzleHandshakes.cs	(original)
+++ trunk/src/PuzzleGames/PuzzleHandshakes.cs	Sun Jan 18 10:38:17 2009
@@ -65,5 +65,6 @@
 	public override void Draw (CairoContextEx gr, int area_width, int area_height)
 	{
 		base.Draw (gr, area_width, area_height);
+		gr.DrawImageFromAssembly ("handshake.svg", 0.2, 0.6, 0.6, 0.3);
 	}
 }

Modified: trunk/src/SVGImage.cs
==============================================================================
--- trunk/src/SVGImage.cs	(original)
+++ trunk/src/SVGImage.cs	Sun Jan 18 10:38:17 2009
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 Jordi Mas i HernÃndez <jmas softcatala org>
+ * Copyright (C) 2008-2009 Jordi Mas i HernÃndez <jmas softcatala org>
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -40,6 +40,9 @@
 	[DllImport("rsvg-2")]
 	static extern void rsvg_handle_get_dimensions (IntPtr handle, ref RsvgDimensionData dimension);
 
+	[DllImport("rsvg-2")]
+	static extern IntPtr rsvg_handle_new_from_data (byte[] data, int len, out int error);
+
 	[StructLayout(LayoutKind.Sequential)]
 	protected struct RsvgDimensionData
 	{
@@ -51,6 +54,28 @@
 
 	private RsvgDimensionData dimension;
 	private IntPtr handle;
+
+	public SVGImage (System.Reflection.Assembly _assembly, string resource)
+	{
+		try {
+			byte[] array;
+			Stream stream;
+			int error = 0;
+
+			stream =  _assembly.GetManifestResourceStream (resource);
+			array = new byte [stream.Length];
+
+			stream.Read (array, 0, (int) stream.Length);
+			
+			handle = rsvg_handle_new_from_data (array, array.Length, out error);
+			rsvg_handle_get_dimensions (handle, ref dimension);
+		} 
+		finally
+		{
+			if (handle == IntPtr.Zero)
+				throw new System.IO.IOException ("Resource not found: " + resource);
+		}
+	}
 	
 	public SVGImage (string file)
 	{



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]