mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-07-16 08:33:09 +00:00
Contributes towards the ongoing task of adding achievements: #2706 ## Description: Introduces a concept design and API implementation for singleplayer win achievements. New row of ~5~ 4 medals is added to the map select screen in the Singleplayer modal, one for each difficulty: <img width="3132" height="779" alt="image" src="https://github.com/user-attachments/assets/da8f0314-ccad-4f45-a03f-1beb46981301" /> In order to achieve a medal in a particular map, you must win the singleplayer game (multiplayer and private match games don't count) in the selected difficulty **without tampering with the options or settings**. If any setting is changed from the default, regardless of the difficulty, you will ~receive a fifth "Custom" medal~ not receive the medal for that difficulty. Team games **do not** count towards the medal achievement. Completion of a medal will fill in the full correct color, as defined in our `variables.css`: <img width="694" height="778" alt="image" src="https://github.com/user-attachments/assets/1b2d8370-aa86-4329-9402-adf43f3ef799" /> Completion medals can be toggled on or off (hidden by default) with the toggle button at the top of the section: https://github.com/user-attachments/assets/d08a58e0-b534-430e-9e8f-559134ad8852 [API implementation PR](https://github.com/openfrontio/infra/pull/234) ## Please complete the following: - [x] I have added screenshots for all UI updates - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory - [x] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced ## Please put your Discord username so you can be contacted if a bug or regression is found: bijx --------- Co-authored-by: iamlewis <lewismmmm@gmail.com> Co-authored-by: Evan <evanpelle@gmail.com>
88 lines
3.2 KiB
XML
88 lines
3.2 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
<svg
|
|
viewBox="0 0 100 100"
|
|
fill="none"
|
|
x="0px"
|
|
y="0px"
|
|
version="1.1"
|
|
id="svg67"
|
|
sodipodi:docname="noun-medal-4567887.svg"
|
|
width="100"
|
|
height="100"
|
|
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
xmlns:svg="http://www.w3.org/2000/svg">
|
|
<defs
|
|
id="defs71">
|
|
<filter
|
|
style="color-interpolation-filters:sRGB;"
|
|
inkscape:label="Invert"
|
|
id="filter203"
|
|
x="0"
|
|
y="0"
|
|
width="1"
|
|
height="1">
|
|
<feColorMatrix
|
|
type="hueRotate"
|
|
values="180"
|
|
result="color1"
|
|
id="feColorMatrix199" />
|
|
<feColorMatrix
|
|
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 -0.21 -0.72 -0.07 2 0 "
|
|
result="color2"
|
|
id="feColorMatrix201" />
|
|
</filter>
|
|
<filter
|
|
style="color-interpolation-filters:sRGB;"
|
|
inkscape:label="Invert"
|
|
id="filter209"
|
|
x="0"
|
|
y="0"
|
|
width="1"
|
|
height="1">
|
|
<feColorMatrix
|
|
type="hueRotate"
|
|
values="180"
|
|
result="color1"
|
|
id="feColorMatrix205" />
|
|
<feColorMatrix
|
|
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 -0.21 -0.72 -0.07 2 0 "
|
|
result="color2"
|
|
id="feColorMatrix207" />
|
|
</filter>
|
|
</defs>
|
|
<sodipodi:namedview
|
|
id="namedview69"
|
|
pagecolor="#505050"
|
|
bordercolor="#eeeeee"
|
|
borderopacity="1"
|
|
inkscape:showpageshadow="0"
|
|
inkscape:pageopacity="0"
|
|
inkscape:pagecheckerboard="0"
|
|
inkscape:deskcolor="#505050"
|
|
showgrid="false"
|
|
inkscape:zoom="6.456"
|
|
inkscape:cx="49.953532"
|
|
inkscape:cy="37.716853"
|
|
inkscape:window-width="1920"
|
|
inkscape:window-height="1010"
|
|
inkscape:window-x="1913"
|
|
inkscape:window-y="-6"
|
|
inkscape:window-maximized="1"
|
|
inkscape:current-layer="svg67" />
|
|
<path
|
|
d="m 59.903346,13.687732 v 6.602231 h 6.60223 v 19.806691 h -6.60223 v 6.602231 H 40.096654 v -6.602231 h -6.60223 V 20.289963 h 6.60223 v -6.602231 z"
|
|
fill="#000000"
|
|
id="path59"
|
|
style="stroke-width:1.65056;filter:url(#filter209)" />
|
|
<path
|
|
fill-rule="evenodd"
|
|
clip-rule="evenodd"
|
|
d="M 33.494424,0.48327138 V 7.0855019 h -6.602231 v 6.6022301 h -6.60223 v 33.011153 h 6.60223 v 6.60223 h 6.602231 v 6.602231 h -6.602231 v 39.613383 h 6.602231 v -6.602231 h 6.60223 v -6.60223 h 4.951673 v -6.602231 h 6.602231 v 6.602231 h 6.60223 v 6.60223 h 6.602231 v 6.602231 h 6.60223 V 59.903346 h -4.951673 v -6.602231 h 6.602231 v -6.60223 h 6.60223 V 13.687732 h -6.60223 V 7.0855019 H 66.505576 V 0.48327138 Z M 58.252788,86.312268 v -6.602231 h -6.60223 v -6.60223 h -6.602231 v 6.60223 h -6.60223 v 6.602231 H 33.494424 V 59.903346 H 64.855019 V 86.312268 Z M 59.903346,7.0855019 H 40.096654 v 6.6022301 h -6.60223 v 6.602231 h -6.602231 v 19.806691 h 6.602231 v 6.602231 h 6.60223 v 6.60223 h 19.806692 v -6.60223 h 6.60223 v -6.602231 h 6.602231 V 20.289963 h -6.602231 v -6.602231 h -6.60223 z"
|
|
fill="#000000"
|
|
id="path61"
|
|
style="stroke-width:1.65056;filter:url(#filter203)" />
|
|
</svg>
|