🔀 Merge: dev_views

pull/14/head
Nathan VERDIER 11 months ago
commit c00184c8d2

@ -1,5 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
<dict>
<key>UIAppFonts</key>
<array>
<string>samurai.ttf</string>
</array>
</dict>
</plist>

@ -18,6 +18,13 @@
645834892BF5FEA000E18321 /* DSQ.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 645834872BF5FEA000E18321 /* DSQ.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
649ABF5B2BF60D78002E8894 /* GameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649ABF5A2BF60D78002E8894 /* GameView.swift */; };
649B59A42BF64574002BAE38 /* TopGameBoard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59A32BF64574002BAE38 /* TopGameBoard.swift */; };
645B4C202BFCCA0500FD658A /* PlayerResumeFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645B4C1F2BFCCA0500FD658A /* PlayerResumeFrame.swift */; };
645B4C252BFCD3C600FD658A /* ScoreBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645B4C242BFCD3C600FD658A /* ScoreBoardView.swift */; };
6493C1C02C046BF900B5121D /* samurai.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6493C1BF2C046BF900B5121D /* samurai.ttf */; };
6493C1C22C046E5E00B5121D /* Fonts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6493C1C12C046E5E00B5121D /* Fonts.swift */; };
649ABF5B2BF60D78002E8894 /* MainMenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649ABF5A2BF60D78002E8894 /* MainMenuView.swift */; };
649ABF602BF60F2D002E8894 /* MainMenuButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649ABF5F2BF60F2D002E8894 /* MainMenuButton.swift */; };
649B59A42BF64574002BAE38 /* TitlePageFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59A32BF64574002BAE38 /* TitlePageFrame.swift */; };
649B59A72BF64BA9002BAE38 /* Colors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 649B59A62BF64BA9002BAE38 /* Colors.xcassets */; };
649B59A92BF64C6A002BAE38 /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59A82BF64C6A002BAE38 /* Colors.swift */; };
649B59AC2BF64E12002BAE38 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 649B59AB2BF64E12002BAE38 /* Images.xcassets */; };
@ -28,6 +35,17 @@
ECB6364E2C04628E007CD5E2 /* SpriteMeeple.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECB6364D2C04628E007CD5E2 /* SpriteMeeple.swift */; };
ECB636512C046379007CD5E2 /* MusicPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECB636502C046379007CD5E2 /* MusicPlayer.swift */; };
ECB636532C0463A9007CD5E2 /* SoundPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECB636522C0463A9007CD5E2 /* SoundPlayer.swift */; };
64D992722C06281B002ACBC6 /* SystemIcons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D992712C06281B002ACBC6 /* SystemIcons.swift */; };
EC05BFC42C04C3C4000F7B19 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC05BFC32C04C3C4000F7B19 /* SettingsView.swift */; };
EC05BFC82C04D832000F7B19 /* CustomSwitchButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC05BFC72C04D832000F7B19 /* CustomSwitchButton.swift */; };
EC62C4FB2C038BD20048CD0B /* PlayersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C4FA2C038BD20048CD0B /* PlayersView.swift */; };
EC62C4FD2C0391D30048CD0B /* PlayerRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C4FC2C0391D30048CD0B /* PlayerRow.swift */; };
EC62C4FF2C0457AD0048CD0B /* TitleScreenMusic.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC62C4FE2C0457AD0048CD0B /* TitleScreenMusic.mp3 */; };
EC62C5062C045C1A0048CD0B /* TitleScreenButtonSound.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC62C5052C045C1A0048CD0B /* TitleScreenButtonSound.mp3 */; };
EC62C5092C0467240048CD0B /* SplashScreenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C5082C0467240048CD0B /* SplashScreenView.swift */; };
EC62C50D2C046D9E0048CD0B /* SplashScreenSound.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC62C50C2C046D9E0048CD0B /* SplashScreenSound.mp3 */; };
EC62C50F2C05D06A0048CD0B /* AddPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C50E2C05D06A0048CD0B /* AddPlayerView.swift */; };
EC62C5172C0620C00048CD0B /* rap.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC62C5162C0620C00048CD0B /* rap.mp3 */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@ -76,6 +94,13 @@
645834872BF5FEA000E18321 /* DSQ.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = DSQ.xcframework; sourceTree = "<group>"; };
649ABF5A2BF60D78002E8894 /* GameView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameView.swift; sourceTree = "<group>"; };
649B59A32BF64574002BAE38 /* TopGameBoard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopGameBoard.swift; sourceTree = "<group>"; };
645B4C1F2BFCCA0500FD658A /* PlayerResumeFrame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerResumeFrame.swift; sourceTree = "<group>"; };
645B4C242BFCD3C600FD658A /* ScoreBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScoreBoardView.swift; sourceTree = "<group>"; };
6493C1BF2C046BF900B5121D /* samurai.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = samurai.ttf; sourceTree = "<group>"; };
6493C1C12C046E5E00B5121D /* Fonts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Fonts.swift; sourceTree = "<group>"; };
649ABF5A2BF60D78002E8894 /* MainMenuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenuView.swift; sourceTree = "<group>"; };
649ABF5F2BF60F2D002E8894 /* MainMenuButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenuButton.swift; sourceTree = "<group>"; };
649B59A32BF64574002BAE38 /* TitlePageFrame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TitlePageFrame.swift; sourceTree = "<group>"; };
649B59A62BF64BA9002BAE38 /* Colors.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Colors.xcassets; sourceTree = "<group>"; };
649B59A82BF64C6A002BAE38 /* Colors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Colors.swift; sourceTree = "<group>"; };
649B59AB2BF64E12002BAE38 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
@ -86,6 +111,17 @@
ECB6364D2C04628E007CD5E2 /* SpriteMeeple.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpriteMeeple.swift; sourceTree = "<group>"; };
ECB636502C046379007CD5E2 /* MusicPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicPlayer.swift; sourceTree = "<group>"; };
ECB636522C0463A9007CD5E2 /* SoundPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SoundPlayer.swift; sourceTree = "<group>"; };
64D992712C06281B002ACBC6 /* SystemIcons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemIcons.swift; sourceTree = "<group>"; };
EC05BFC32C04C3C4000F7B19 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = "<group>"; };
EC05BFC72C04D832000F7B19 /* CustomSwitchButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomSwitchButton.swift; sourceTree = "<group>"; };
EC62C4FA2C038BD20048CD0B /* PlayersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayersView.swift; sourceTree = "<group>"; };
EC62C4FC2C0391D30048CD0B /* PlayerRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerRow.swift; sourceTree = "<group>"; };
EC62C4FE2C0457AD0048CD0B /* TitleScreenMusic.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = TitleScreenMusic.mp3; sourceTree = "<group>"; };
EC62C5052C045C1A0048CD0B /* TitleScreenButtonSound.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = TitleScreenButtonSound.mp3; sourceTree = "<group>"; };
EC62C5082C0467240048CD0B /* SplashScreenView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplashScreenView.swift; sourceTree = "<group>"; };
EC62C50C2C046D9E0048CD0B /* SplashScreenSound.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = SplashScreenSound.mp3; sourceTree = "<group>"; };
EC62C50E2C05D06A0048CD0B /* AddPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddPlayerView.swift; sourceTree = "<group>"; };
EC62C5162C0620C00048CD0B /* rap.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = rap.mp3; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -114,6 +150,22 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
643AB6912BFCEFB70018DA73 /* Game */ = {
isa = PBXGroup;
children = (
643AB6922BFCEFD00018DA73 /* GameResumeFrame.swift */,
);
path = Game;
sourceTree = "<group>";
};
643AB6992BFCFB480018DA73 /* Game */ = {
isa = PBXGroup;
children = (
643AB69A2BFCFB5C0018DA73 /* HistoricView.swift */,
);
path = Game;
sourceTree = "<group>";
};
6458344F2BF5F92300E18321 = {
isa = PBXGroup;
children = (
@ -184,9 +236,41 @@
name = Frameworks;
sourceTree = "<group>";
};
645B4C1C2BFCC95000FD658A /* Player */ = {
isa = PBXGroup;
children = (
645B4C1F2BFCCA0500FD658A /* PlayerResumeFrame.swift */,
EC62C4FC2C0391D30048CD0B /* PlayerRow.swift */,
EC62C50E2C05D06A0048CD0B /* AddPlayerView.swift */,
);
path = Player;
sourceTree = "<group>";
};
645B4C232BFCD39A00FD658A /* Player */ = {
isa = PBXGroup;
children = (
645B4C242BFCD3C600FD658A /* ScoreBoardView.swift */,
EC62C4FA2C038BD20048CD0B /* PlayersView.swift */,
);
path = Player;
sourceTree = "<group>";
};
6493C1BE2C04650200B5121D /* Menu */ = {
isa = PBXGroup;
children = (
649ABF5A2BF60D78002E8894 /* MainMenuView.swift */,
EC62C5082C0467240048CD0B /* SplashScreenView.swift */,
EC05BFC32C04C3C4000F7B19 /* SettingsView.swift */,
);
path = Menu;
sourceTree = "<group>";
};
649ABF592BF60D13002E8894 /* Views */ = {
isa = PBXGroup;
children = (
643AB6992BFCFB480018DA73 /* Game */,
645B4C232BFCD39A00FD658A /* Player */,
6493C1BE2C04650200B5121D /* Menu */,
EC05BFC92C05ECC6000F7B19 /* Scene */,
649ABF5A2BF60D78002E8894 /* GameView.swift */,
);
@ -197,6 +281,11 @@
isa = PBXGroup;
children = (
649B59A32BF64574002BAE38 /* TopGameBoard.swift */,
EC05BFC62C04D7C2000F7B19 /* Settings */,
643AB6912BFCEFB70018DA73 /* Game */,
645B4C1C2BFCC95000FD658A /* Player */,
649ABF5F2BF60F2D002E8894 /* MainMenuButton.swift */,
649B59A32BF64574002BAE38 /* TitlePageFrame.swift */,
);
path = Components;
sourceTree = "<group>";
@ -204,6 +293,8 @@
649B59A52BF64B1B002BAE38 /* Assets */ = {
isa = PBXGroup;
children = (
EC62C5042C045BE00048CD0B /* Musics */,
EC62C5032C045BD30048CD0B /* Sounds */,
649B59B02BF65360002BAE38 /* TextStyles */,
649B59AF2BF64F0A002BAE38 /* Colors */,
649B59AA2BF64DF1002BAE38 /* Images */,
@ -216,6 +307,7 @@
children = (
649B59AB2BF64E12002BAE38 /* Images.xcassets */,
649B59AD2BF64EAB002BAE38 /* AppImages.swift */,
64D992712C06281B002ACBC6 /* SystemIcons.swift */,
);
path = Images;
sourceTree = "<group>";
@ -232,12 +324,22 @@
649B59B02BF65360002BAE38 /* TextStyles */ = {
isa = PBXGroup;
children = (
6493C1BF2C046BF900B5121D /* samurai.ttf */,
649B59B12BF65392002BAE38 /* TextStyles.swift */,
649B59B32BF653E1002BAE38 /* ViewTitleTextStyle.swift */,
6493C1C12C046E5E00B5121D /* Fonts.swift */,
);
path = TextStyles;
sourceTree = "<group>";
};
EC05BFC62C04D7C2000F7B19 /* Settings */ = {
isa = PBXGroup;
children = (
EC05BFC72C04D832000F7B19 /* CustomSwitchButton.swift */,
);
path = Settings;
sourceTree = "<group>";
};
EC05BFC92C05ECC6000F7B19 /* Scene */ = {
isa = PBXGroup;
children = (
@ -256,6 +358,24 @@
path = SoundPlayerClass;
sourceTree = "<group>";
};
EC62C5032C045BD30048CD0B /* Sounds */ = {
isa = PBXGroup;
children = (
EC62C50C2C046D9E0048CD0B /* SplashScreenSound.mp3 */,
EC62C5052C045C1A0048CD0B /* TitleScreenButtonSound.mp3 */,
);
path = Sounds;
sourceTree = "<group>";
};
EC62C5042C045BE00048CD0B /* Musics */ = {
isa = PBXGroup;
children = (
EC62C5162C0620C00048CD0B /* rap.mp3 */,
EC62C4FE2C0457AD0048CD0B /* TitleScreenMusic.mp3 */,
);
path = Musics;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@ -362,9 +482,14 @@
buildActionMask = 2147483647;
files = (
649B59A72BF64BA9002BAE38 /* Colors.xcassets in Resources */,
6493C1C02C046BF900B5121D /* samurai.ttf in Resources */,
EC62C5062C045C1A0048CD0B /* TitleScreenButtonSound.mp3 in Resources */,
EC62C5172C0620C00048CD0B /* rap.mp3 in Resources */,
649B59AC2BF64E12002BAE38 /* Images.xcassets in Resources */,
EC62C50D2C046D9E0048CD0B /* SplashScreenSound.mp3 in Resources */,
645834632BF5F92500E18321 /* Preview Assets.xcassets in Resources */,
645834602BF5F92500E18321 /* Assets.xcassets in Resources */,
EC62C4FF2C0457AD0048CD0B /* TitleScreenMusic.mp3 in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -401,6 +526,21 @@
ECB636512C046379007CD5E2 /* MusicPlayer.swift in Sources */,
ECB6364E2C04628E007CD5E2 /* SpriteMeeple.swift in Sources */,
649B59A42BF64574002BAE38 /* TopGameBoard.swift in Sources */,
EC05BFC42C04C3C4000F7B19 /* SettingsView.swift in Sources */,
643AB69B2BFCFB5C0018DA73 /* HistoricView.swift in Sources */,
EC62C50F2C05D06A0048CD0B /* AddPlayerView.swift in Sources */,
EC05BFC82C04D832000F7B19 /* CustomSwitchButton.swift in Sources */,
64D992722C06281B002ACBC6 /* SystemIcons.swift in Sources */,
645B4C252BFCD3C600FD658A /* ScoreBoardView.swift in Sources */,
649ABF602BF60F2D002E8894 /* MainMenuButton.swift in Sources */,
643AB6932BFCEFD00018DA73 /* GameResumeFrame.swift in Sources */,
EC62C5092C0467240048CD0B /* SplashScreenView.swift in Sources */,
EC62C4FD2C0391D30048CD0B /* PlayerRow.swift in Sources */,
EC62C4FB2C038BD20048CD0B /* PlayersView.swift in Sources */,
645B4C202BFCCA0500FD658A /* PlayerResumeFrame.swift in Sources */,
649ABF5B2BF60D78002E8894 /* MainMenuView.swift in Sources */,
6493C1C22C046E5E00B5121D /* Fonts.swift in Sources */,
649B59A42BF64574002BAE38 /* TitlePageFrame.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

@ -12,4 +12,5 @@ public struct Colors {
static let TitleText = Color("TitleTextColor")
static let Button = Color("ButtonColor")
static let MeepleP1 = UIColor(named: "MeepleP1")
static let TextButton = Color("ButtonTextColor")
}

@ -12,4 +12,11 @@ public struct AppImages {
static let TitleImage = "TitlePageImage"
static let SemiLion = "SemiLion"
static let boardGame = "boardGame"
static let Lion = "Lion"
static let Rat = "Rat"
static let Elephant = "Elephant"
static let Cat = "Cat"
static let Dog = "Dog"
static let Leopard = "Leopard"
static let Wolf = "Wolf"
}

@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "doushouqi-cat.svg",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,203 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:ns1="http://sozi.baierouge.fr"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
id="svg8007"
sodipodi:docname="doushouqi-dog.svg"
viewBox="0 0 200 200"
version="1.1"
inkscape:version="0.48.4 r9939"
>
<sodipodi:namedview
id="base"
bordercolor="#666666"
inkscape:pageshadow="2"
inkscape:window-y="27"
pagecolor="#ffffff"
inkscape:window-height="1014"
inkscape:window-maximized="1"
inkscape:zoom="0.7"
inkscape:window-x="0"
showgrid="false"
borderopacity="1.0"
inkscape:current-layer="layer1"
inkscape:cx="806.21949"
inkscape:cy="9.6431667"
inkscape:window-width="1920"
inkscape:pageopacity="0.0"
inkscape:document-units="px"
/>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
transform="translate(0 -852.36)"
>
<g
id="g8837"
transform="translate(-1355.2)"
>
<path
id="path4240"
style="stroke:#b8854d;stroke-width:6.5135;fill:#f9f8e2"
inkscape:connector-curvature="0"
d="m1453.5 909.27c-9.3422 0.26334-18.097 3.1483-25.715 7.7574-0.4694-0.19819-0.9692-0.3745-1.4928-0.5428-0.4109-0.13197-0.8492-0.27044-1.289-0.38447-0.1176-0.0304-0.2425-0.0613-0.362-0.0905-0.086-0.0212-0.1831-0.0245-0.2714-0.0452-2.2246-0.51961-4.7344-0.83515-7.3276-0.94988-1.3456-0.0604-2.7002-0.0849-4.0482-0.0453-0.6009 0.0181-1.195 0.0534-1.7866 0.0905-0.075 0.005-0.1518 0.0177-0.2263 0.0225-0.5966 0.0399-1.2063 0.0771-1.7867 0.1357-0.052 0.006-0.1058 0.0171-0.1582 0.0225-0.6472 0.0676-1.2816 0.13597-1.8999 0.22616-0.1785 0.0259-0.3444 0.0627-0.5202 0.0905-0.4315 0.0685-0.8542 0.14663-1.2664 0.22615-0.086 0.0165-0.1635 0.0281-0.249 0.0453-0.4562 0.0915-0.907 0.18924-1.3342 0.29401-0.023 0.006-0.046 0.0171-0.068 0.0224-0.5272 0.13072-1.0403 0.27931-1.5152 0.42972-0.3059 0.0968-0.5782 0.18927-0.8595 0.29401-0.3093 0.11518-0.605 0.23732-0.882 0.36186-0.2678 0.12004-0.5338 0.23339-0.769 0.36187-0.1878 0.61124-0.3484 1.2353-0.4976 1.8545-0.01 0.0159-0.018 0.0293-0.023 0.0452-0.1444 0.60341-0.2531 1.2006-0.3618 1.8093-0.01 0.0307-0.016 0.0598-0.023 0.0905-0.1044 0.59456-0.1998 1.1891-0.2714 1.7867-0.01 0.0455-0.018 0.0902-0.023 0.1357-0.066 0.58326-0.099 1.1799-0.1357 1.7641-0.03 0.48451-0.036 0.96343-0.045 1.4474-0.01 0.19704-0.022 0.39118-0.023 0.58802-0.0004 0.0983-0.0006 0.19579 0 0.294 0 0.5673 0.017 1.1321 0.045 1.6962 0.029 0.54142 0.061 1.0914 0.1131 1.6284 0.058 0.58146 0.1416 1.167 0.2262 1.7414 0.01 0.0369-0.01 0.0763 0 0.11309 0.051 0.34085 0.1203 0.67991 0.1809 1.0177 0.07 0.38805 0.1448 0.76995 0.2262 1.1534 0.1292 0.60968 0.2706 1.2131 0.4297 1.8093 0.1612 0.6046 0.3296 1.1984 0.5202 1.7867 0.1679 0.51848 0.3528 1.034 0.5428 1.5379 0.058 0.15291 0.1212 0.30087 0.1808 0.45233 0.1835 0.46649 0.3863 0.9277 0.5881 1.3796 0.2449 0.54892 0.4981 1.0806 0.769 1.6058 0.269 0.52158 0.5435 1.0197 0.8367 1.5153 0.1824 0.30824 0.3514 0.62983 0.5428 0.92726-6.2803 17.418-6.872 40.932 2.4878 56.54 8.882-1.3986 16.648-2.2678 27.072 2.1486 1.7984 2.1509 5.3076 4.1406 8.9109 5.1338 0.1366 0.038 0.2702 0.101 0.4071 0.1357 0.4341 0.1285 0.8545 0.2406 1.2664 0.3167 4.2278 0.7808 7.8359 1.1245 11.444 1.1082 0.083 0.0006 0.1661-0.0004 0.2485 0 3.6081 0.016 7.2162-0.3274 11.444-1.1082 0.4085-0.075 0.8357-0.1895 1.2664-0.3167 0.03-0.01 0.06-0.013 0.09-0.023 3.7212-0.9585 7.3726-3.0283 9.2274-5.247 10.423-4.4164 18.19-3.5471 27.072-2.1485 9.36-15.608 8.7681-39.122 2.488-56.541 0.1263-0.19649 0.2393-0.40938 0.3617-0.61064 0.1367-0.22434 0.2756-0.44844 0.4072-0.67847 0.029-0.0528 0.061-0.10527 0.09-0.15833 0.185-0.32807 0.368-0.65627 0.5428-0.99511 0.2702-0.52409 0.5244-1.058 0.7689-1.6058 0.2338-0.52395 0.4467-1.0623 0.656-1.6057 0.012-0.0314 0.033-0.059 0.045-0.0905 0.21-0.54961 0.4041-1.1065 0.588-1.6736 0.1907-0.58827 0.359-1.1821 0.5201-1.7867 0.037-0.1357 0.079-0.27066 0.1133-0.40709 0.044-0.17098 0.071-0.34808 0.113-0.52018 0.1009-0.42166 0.2077-0.8387 0.2941-1.2665 0.1191-0.59056 0.2263-1.1862 0.3166-1.7867 0.01-0.0367-0.01-0.0764 0-0.11308 0.085-0.58181 0.1685-1.1751 0.226-1.7641 0.062-0.62519 0.1075-1.2462 0.1358-1.8772 0.025-0.57977 0.048-1.1587 0.045-1.7414 0-0.61273-0.031-1.218-0.068-1.8319-0.024-0.41246-0.051-0.83169-0.09-1.2439-0.033-0.35276-0.069-0.71082-0.1131-1.063-0.1156-0.91227-0.2818-1.8105-0.475-2.7139-0.1898-0.88788-0.4103-1.7734-0.6784-2.6461-0.7058-0.38559-1.5569-0.73315-2.533-1.0404-0.4727-0.14892-0.9686-0.27759-1.4927-0.40709-0.016-0.004-0.03-0.0188-0.045-0.0225-0.5068-0.12427-1.0587-0.23373-1.6058-0.33925-0.037-0.007-0.076-0.0157-0.1131-0.0225-0.5442-0.10315-1.0972-0.20992-1.6735-0.294-0.043-0.006-0.092-0.0164-0.1357-0.0226-0.5739-0.0818-1.1658-0.14113-1.7641-0.20355-0.052-0.006-0.1056-0.0172-0.1583-0.0226-0.587-0.0593-1.1834-0.0956-1.7867-0.1357-0.066-0.005-0.1362-0.0184-0.2036-0.0225-0.5924-0.0371-1.2075-0.0724-1.8092-0.0905-0.083-0.002-0.1663 0.002-0.2488 0-1.2651-0.0323-2.5383-0.0106-3.7996 0.0453-2.0314 0.0899-3.9981 0.29776-5.8349 0.63326-0.479 0.0875-0.9463 0.18894-1.4023 0.29401-0.1667 0.0384-0.3343 0.0723-0.4974 0.11309-0.072 0.0181-0.1544 0.0268-0.2263 0.0452-0.4398 0.11402-0.8783 0.25251-1.2891 0.38447-0.5177 0.16687-1.0282 0.34664-1.4926 0.5428-7.6181-4.609-16.373-7.494-25.715-7.7574-0.4702-0.0132-0.929 0-1.4022 0-0.091 0-0.1804-0.0005-0.2713 0-0.099-0.00058-0.1954 0-0.294 0-0.4733 0-0.9321-0.0132-1.4023 0z"
/>
<path
id="path4242"
d="m1453.5 912.5c-0.3789 0.0107-0.7541 0.0254-1.1309 0.0452 3.852 7.605 7.5718 18.284 8.7138 43.475 0.6269 13.829 8.5362 20.66 17.799 21.332 11.834 0.85829 22.186 0.53189 29.05-0.73399 0.9514-11.9-1.7402-22.786-4.8884-31.26l0.7104-0.92311c4.184-6.192 6.1959-15.788 4.116-24.358-2.2593-0.88092-6.3711-1.7616-10.901-1.8772-5.1614-0.1317-10.624 0.61099-13.479 1.8998l-1.4193 0.53171c-9.5422-6.2968-19.006-8.0376-27.258-8.1308-0.5341 0-0.9623-0.01-1.3118 0z"
sodipodi:nodetypes="ccssccccsccccc"
style="fill:#f59e40"
inkscape:connector-curvature="0"
/>
<path
id="path4244"
sodipodi:nodetypes="ssss"
style="fill:#b8854d"
inkscape:connector-curvature="0"
d="m1447.2 979.06c0.9837-3.6796 14.647-4.0326 16.052 0 1.2028 3.4537-4.3599 7.9101-8.026 7.9202-3.3401 0.009-9.0149-4.221-8.0258-7.9202z"
/>
<path
id="path4246"
sodipodi:nodetypes="cccc"
style="opacity:.2;fill:#000000"
inkscape:connector-curvature="0"
d="m1405.9 925.71c3.5238-1.1749 10.373-0.0507 14.713 1.0966-5.5963 5.2454-9.2568 9.5953-12.702 16.632-2.9499-5.3787-3.66-12.776-2.0107-17.728z"
/>
<path
id="path4248"
d="m1503.9 925.71c-3.5237-1.1749-10.373-0.0507-14.713 1.0966 5.5963 5.2454 9.2568 9.5953 12.702 16.632 2.9498-5.3787 3.66-12.776 2.0106-17.728z"
sodipodi:nodetypes="cccc"
style="opacity:.2;fill:#000000"
inkscape:connector-curvature="0"
/>
<g
id="g4250"
transform="matrix(.89430 0 0 .89430 444.71 501.31)"
>
<path
id="path4252"
sodipodi:nodetypes="cc"
d="m1077.9 534.3 16.062 0.75336"
style="stroke:#7d4329;stroke-linecap:round;stroke-width:1.6185;fill:none"
inkscape:connector-curvature="0"
/>
<path
id="path4254"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
style="stroke:#7d4329;stroke-linecap:round;stroke-width:1.6185;fill:none"
d="m1182 534.3-16.062 0.75336"
/>
<path
id="path4256"
d="m1097.4 540.36-14.701 5.6848"
sodipodi:nodetypes="cc"
style="stroke:#7d4329;stroke-linecap:round;stroke-width:1.6185;fill:none"
inkscape:connector-curvature="0"
/>
<path
id="path4258"
sodipodi:nodetypes="cc"
style="stroke:#7d4329;stroke-linecap:round;stroke-width:1.6185;fill:none"
inkscape:connector-curvature="0"
d="m1162.5 540.36 14.701 5.6848"
/>
<path
id="path4260"
sodipodi:nodetypes="cc"
d="m1101.7 546.09c-1.6349 1.2262-5.9918 7.2265-5.9918 7.2265"
style="stroke:#7d4329;stroke-linecap:round;stroke-width:1.6185;fill:none"
inkscape:connector-curvature="0"
/>
<path
id="path4262"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
style="stroke:#7d4329;stroke-linecap:round;stroke-width:1.6185;fill:none"
d="m1158.2 546.09c1.6349 1.2262 5.9918 7.2265 5.9918 7.2265"
/>
</g
>
<path
id="path4264"
sodipodi:rx="6.4285712"
sodipodi:ry="6.4285712"
style="fill:#b8854d"
sodipodi:type="arc"
d="m1082.3 522.36c0 3.5504-2.8782 6.4286-6.4286 6.4286s-6.4285-2.8782-6.4285-6.4286 2.8781-6.4286 6.4285-6.4286 6.4286 2.8782 6.4286 6.4286z"
transform="matrix(.78403 0 0 .78403 588.59 558.08)"
sodipodi:cy="522.36218"
sodipodi:cx="1075.8928"
/>
<path
id="path4266"
sodipodi:rx="6.4285712"
sodipodi:ry="6.4285712"
style="fill:#b8854d"
sodipodi:type="arc"
d="m1082.3 522.36c0 3.5504-2.8782 6.4286-6.4286 6.4286s-6.4285-2.8782-6.4285-6.4286 2.8781-6.4286 6.4285-6.4286 6.4286 2.8782 6.4286 6.4286z"
transform="matrix(.78403 0 0 .78403 632.53 558.08)"
sodipodi:cy="522.36218"
sodipodi:cx="1075.8928"
/>
</g
>
</g
>
<metadata
>
<rdf:RDF
>
<cc:Work
>
<dc:format
>image/svg+xml</dc:format
>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage"
/>
<cc:license
rdf:resource="http://creativecommons.org/licenses/publicdomain/"
/>
<dc:publisher
>
<cc:Agent
rdf:about="http://openclipart.org/"
>
<dc:title
>Openclipart</dc:title
>
</cc:Agent
>
</dc:publisher
>
</cc:Work
>
<cc:License
rdf:about="http://creativecommons.org/licenses/publicdomain/"
>
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction"
/>
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution"
/>
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks"
/>
</cc:License
>
</rdf:RDF
>
</metadata
>
</svg
>

After

Width:  |  Height:  |  Size: 11 KiB

@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "doushouqi-dog.svg",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,163 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:ns1="http://sozi.baierouge.fr"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
id="svg8007"
sodipodi:docname="doushouqi-wolf.svg"
viewBox="0 0 200 200"
version="1.1"
inkscape:version="0.48.4 r9939"
>
<sodipodi:namedview
id="base"
bordercolor="#666666"
inkscape:pageshadow="2"
inkscape:window-y="27"
pagecolor="#ffffff"
inkscape:window-height="1014"
inkscape:window-maximized="1"
inkscape:zoom="0.7"
inkscape:window-x="0"
showgrid="false"
borderopacity="1.0"
inkscape:current-layer="layer1"
inkscape:cx="806.21949"
inkscape:cy="9.6431667"
inkscape:window-width="1920"
inkscape:pageopacity="0.0"
inkscape:document-units="px"
/>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
transform="translate(0 -852.36)"
>
<g
id="g8827"
transform="translate(-1186.3)"
>
<path
id="path4048"
d="m1230.4 943.73c-6.0585 13.585-8.0349 33.445-4.9197 47.752 9.6152 7.7602 21.866 12.574 33.076 13.29 2.5673 4.015 8.6462 8.0319 13.217 8.8762 4.9963 0.9229 9.1885 1.2731 13.46 1.1641 4.2715 0.109 8.4636-0.2412 13.46-1.1641 4.571-0.8443 10.65-4.8612 13.217-8.8762 11.21-0.7155 23.208-4.9749 34.764-13.29 1.7297-18.429 0.2095-33.785-6.6069-47.728-6.1-12.478-15.708-21.979-26.047-30.485-8.3328-4.8149-17.883-7.6879-28.035-7.6879-0.5043-0.0143-0.9962 0-1.5037 0-10.151 0-19.679 2.8743-28.011 7.6879-12.802 6.4528-20.3 17.52-26.071 30.46z"
sodipodi:nodetypes="sccscsccsccscs"
style="stroke:#3c291c;stroke-width:6.9846;fill:#f9f6ee"
inkscape:connector-curvature="0"
/>
<path
id="path4050"
d="m1231.6 932.17c14.787-9.6942 28.714-20.593 48.504-23.282l-9.5691 65.917-42.261 15.015c-1.7995-18.635-0.086-37.973 3.3259-57.65z"
sodipodi:nodetypes="ccccc"
style="fill:#ab8b61"
inkscape:connector-curvature="0"
/>
<path
id="path4052"
sodipodi:nodetypes="ccccc"
style="fill:#ab8b61"
inkscape:connector-curvature="0"
d="m1340.1 932.17c-14.787-9.6942-28.714-20.593-48.504-23.282l9.5691 65.917 42.261 15.015c1.7995-18.635 0.086-37.973-3.326-57.65z"
/>
<path
id="path4272"
d="m1234.4 922.88c6.2276-6.3497 23.348-16.255 19.066-2.1304-14.312 47.2-1.6962 76.824-19.449 81.264-16.58 4.1465-25.567-11.077-24.925-20.609 1.1207-16.642 12.642-45.609 25.309-58.525z"
sodipodi:nodetypes="sssss"
style="stroke:#3c291c;stroke-width:6.9846;fill:#9a6e3b"
inkscape:connector-curvature="0"
/>
<path
id="path4274"
sodipodi:nodetypes="sssss"
style="stroke:#3c291c;stroke-width:6.9846;fill:#9a6e3b"
inkscape:connector-curvature="0"
d="m1338.2 922.88c-6.2276-6.3497-23.348-16.255-19.065-2.1304 14.312 47.2 1.6961 76.824 19.449 81.264 16.58 4.1465 25.567-11.077 24.925-20.609-1.1207-16.642-12.642-45.609-25.309-58.525z"
/>
<path
id="path4276"
d="m1276.4 983.77c1.1352-4.2455 16.9-4.6528 18.52 0 1.3877 3.9848-5.0303 9.1265-9.2603 9.1382-3.8537 0.0101-10.401-4.8701-9.2601-9.1382z"
sodipodi:nodetypes="ssss"
style="fill:#3c291c"
inkscape:connector-curvature="0"
/>
<path
id="path4278"
sodipodi:rx="6.4285712"
sodipodi:ry="6.4285712"
style="fill:#3c291c"
sodipodi:type="arc"
d="m1082.3 522.36c0 3.5504-2.8782 6.4286-6.4286 6.4286s-6.4285-2.8782-6.4285-6.4286 2.8781-6.4286 6.4285-6.4286 6.4286 2.8782 6.4286 6.4286z"
transform="matrix(.78403 0 0 .78403 420.18 558.08)"
sodipodi:cy="522.36218"
sodipodi:cx="1075.8928"
/>
<path
id="path4280"
sodipodi:rx="6.4285712"
sodipodi:ry="6.4285712"
style="fill:#3c291c"
sodipodi:type="arc"
d="m1082.3 522.36c0 3.5504-2.8782 6.4286-6.4286 6.4286s-6.4285-2.8782-6.4285-6.4286 2.8781-6.4286 6.4285-6.4286 6.4286 2.8782 6.4286 6.4286z"
transform="matrix(.78403 0 0 .78403 464.12 558.08)"
sodipodi:cy="522.36218"
sodipodi:cx="1075.8928"
/>
</g
>
</g
>
<metadata
>
<rdf:RDF
>
<cc:Work
>
<dc:format
>image/svg+xml</dc:format
>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage"
/>
<cc:license
rdf:resource="http://creativecommons.org/licenses/publicdomain/"
/>
<dc:publisher
>
<cc:Agent
rdf:about="http://openclipart.org/"
>
<dc:title
>Openclipart</dc:title
>
</cc:Agent
>
</dc:publisher
>
</cc:Work
>
<cc:License
rdf:about="http://creativecommons.org/licenses/publicdomain/"
>
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction"
/>
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution"
/>
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks"
/>
</cc:License
>
</rdf:RDF
>
</metadata
>
</svg
>

After

Width:  |  Height:  |  Size: 5.7 KiB

@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "doushouqi-elephant.svg",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,162 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:ns1="http://sozi.baierouge.fr"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
id="svg8007"
sodipodi:docname="doushouqi.svg"
viewBox="0 0 200 200"
version="1.1"
inkscape:version="0.48.4 r9939"
>
<sodipodi:namedview
id="base"
bordercolor="#666666"
inkscape:pageshadow="2"
inkscape:window-y="27"
pagecolor="#ffffff"
inkscape:window-height="1014"
inkscape:window-maximized="1"
inkscape:zoom="0.7"
inkscape:window-x="0"
showgrid="false"
borderopacity="1.0"
inkscape:current-layer="layer1"
inkscape:cx="806.21949"
inkscape:cy="9.6431667"
inkscape:window-width="1920"
inkscape:pageopacity="0.0"
inkscape:document-units="px"
/>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
transform="translate(0 -852.36)"
>
<g
id="g8721"
transform="translate(-216.44)"
>
<g
id="g4010"
transform="matrix(.77606 0 0 -.77606 246.24 1369.9)"
>
<path
id="path4012"
sodipodi:nodetypes="sccssss"
style="stroke-linejoin:round;stroke:#46413d;stroke-linecap:round;stroke-width:9;fill:#a89e9b"
inkscape:connector-curvature="0"
d="m1.6226 461.07c9.7106-2.148 24.24 0.39097 24.24 0.39097 43.71 6.42 15.576 66.058 12.511 107.13 0 0-5.4377 13.315-15.966 12.156-16.376-1.81-21.426-19.08-32.308-31.45-11.822-13.44-17.836-30.17-18.191-43.66-0.60561-22.991 12.589-40.783 29.714-44.571z"
/>
<path
id="path4014"
d="m179.29 461.07c-9.7106-2.148-24.24 0.39097-24.24 0.39097-45.888 10.678-20.086 64.37-12.511 107.13 0 0 5.4377 13.315 15.966 12.156 16.376-1.8027 21.426-19.076 32.308-31.446 11.822-13.437 17.836-30.164 18.191-43.657 0.60561-22.991-12.589-40.783-29.714-44.571z"
sodipodi:nodetypes="sccssss"
style="stroke-linejoin:round;stroke:#46413d;stroke-linecap:round;stroke-width:9;fill:#a89e9b"
inkscape:connector-curvature="0"
/>
</g
>
<path
id="path4040"
d="m314.78 900.41c-10.967 0.30913-21.243 3.6958-30.186 9.1063-13.643 9.1832-24.034 19.993-28.54 33.744-2.5731 6.62-3.9824 13.534-3.9824 20.416 0 22.532 15.068 38.396 36.85 45.452 2.423 13.262-13.479 17.171-22.692 19.768 2.7201 5.5605 9.0435 11.767 13.149 12.151 36.396 2.3882 60.886-14.752 65.562-32.238 21.241-7.2136 35.868-22.948 35.868-45.133 0-6.6709-1.3457-13.371-3.77-19.806-5.2473-12.729-14.121-24.324-28.514-34.195-9.4509-5.7756-20.404-9.2656-32.098-9.2656-0.55544 0-1.094-0.0155-1.646 0z"
sodipodi:nodetypes="sccsccccsccss"
style="stroke-linejoin:round;stroke:#46413d;stroke-width:6.9846;fill:#a89e9b"
inkscape:connector-curvature="0"
/>
<path
id="path4288"
sodipodi:rx="7.6785717"
sodipodi:ry="7.6785717"
style="fill:#46413d"
sodipodi:type="arc"
d="m64.286 549.68c0 4.2408-3.4378 7.6786-7.6786 7.6786s-7.6786-3.4378-7.6786-7.6786 3.4378-7.6786 7.6786-7.6786 7.6786 3.4378 7.6786 7.6786z"
transform="matrix(.81216 0 0 .81216 243.86 542.14)"
sodipodi:cy="549.68359"
sodipodi:cx="56.607143"
/>
<path
id="path4290"
sodipodi:rx="7.6785717"
sodipodi:ry="7.6785717"
style="fill:#46413d"
sodipodi:type="arc"
d="m64.286 549.68c0 4.2408-3.4378 7.6786-7.6786 7.6786s-7.6786-3.4378-7.6786-7.6786 3.4378-7.6786 7.6786-7.6786 7.6786 3.4378 7.6786 7.6786z"
transform="matrix(.81216 0 0 .81216 298.19 542.14)"
sodipodi:cy="549.68359"
sodipodi:cx="56.607143"
/>
<path
id="path4292"
d="m346.64 1010.4 12.284-6.2855c0.78961 3.038 0.0977 7.9666-3.3099 11.838-4.3055 4.8911-9.0158 6.2759-8.974-5.5522z"
sodipodi:nodetypes="ccsc"
style="stroke:#46413d;stroke-width:3.1043;fill:#f6f6f6"
inkscape:connector-curvature="0"
/>
<path
id="path4294"
sodipodi:nodetypes="ccsc"
style="stroke:#46413d;stroke-width:3.1043;fill:#f6f6f6"
inkscape:connector-curvature="0"
d="m286.46 1010.4-12.284-6.2855c-0.7896 3.038-0.0977 7.9666 3.3099 11.838 4.3055 4.8911 9.0158 6.2759 8.974-5.5522z"
/>
</g
>
</g
>
<metadata
>
<rdf:RDF
>
<cc:Work
>
<dc:format
>image/svg+xml</dc:format
>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage"
/>
<cc:license
rdf:resource="http://creativecommons.org/licenses/publicdomain/"
/>
<dc:publisher
>
<cc:Agent
rdf:about="http://openclipart.org/"
>
<dc:title
>Openclipart</dc:title
>
</cc:Agent
>
</dc:publisher
>
</cc:Work
>
<cc:License
rdf:about="http://creativecommons.org/licenses/publicdomain/"
>
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction"
/>
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution"
/>
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks"
/>
</cc:License
>
</rdf:RDF
>
</metadata
>
</svg
>

After

Width:  |  Height:  |  Size: 5.8 KiB

@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "doushouqi-leopard.svg",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,442 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:ns1="http://sozi.baierouge.fr"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
id="svg8007"
sodipodi:docname="doushouqi-tiger.svg"
viewBox="0 0 200 200"
version="1.1"
inkscape:version="0.48.4 r9939"
>
<sodipodi:namedview
id="base"
bordercolor="#666666"
inkscape:pageshadow="2"
inkscape:window-y="27"
pagecolor="#ffffff"
inkscape:window-height="1014"
inkscape:window-maximized="1"
inkscape:zoom="0.7"
inkscape:window-x="0"
showgrid="false"
borderopacity="1.0"
inkscape:current-layer="layer1"
inkscape:cx="806.21949"
inkscape:cy="9.6431667"
inkscape:window-width="1920"
inkscape:pageopacity="0.0"
inkscape:document-units="px"
/>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
transform="translate(0 -852.36)"
>
<g
id="g8776"
transform="translate(-802.06)"
>
<path
id="path4056"
d="m900.26 905.59c-10.018 0.28237-19.405 3.376-27.574 8.3184-8.0716-3.405-24.183-2.6509-30.145 0.60629-3.2225 10.487-1.0707 22.223 4.0743 30.218-2.3505 6.0472-3.6378 12.363-3.6378 18.65 0 20.583 13.764 35.074 33.662 41.519 2.5504 4.1049 8.7528 7.9807 13.287 8.7482 9.0675 1.5346 15.476 1.6747 24.543 0 4.6375-0.8567 10.843-4.9661 13.342-9.0391 19.403-6.5894 32.764-20.962 32.764-41.228 0-6.0937-1.2292-12.214-3.4438-18.092 5.4058-7.9997 7.76-20.044 4.4624-30.776-6.0526-3.3063-22.566-4.0454-30.509-0.46078-8.6332-5.2758-18.639-8.4639-29.321-8.4639-0.50738 0-0.99933-0.0143-1.5036 0z"
sodipodi:nodetypes="scccscsscscccss"
style="stroke:#4e4221;stroke-width:6.9846;fill:#f4cf8f"
inkscape:connector-curvature="0"
/>
<path
id="path4065"
style="fill:#4e4221"
inkscape:connector-curvature="0"
d="m872.62 964.11c-0.74082 0.98722-1.1884 2.2115-1.1884 3.5408 0 3.2635 2.654 5.9175 5.9175 5.9175 2.9741 0 5.4074-2.209 5.8205-5.0686l-10.55-4.3896z"
/>
<path
id="path4073"
d="m929.1 964.11c0.74082 0.98722 1.1884 2.2115 1.1884 3.5408 0 3.2635-2.654 5.9175-5.9175 5.9175-2.9741 0-5.4074-2.209-5.8205-5.0686l10.55-4.3896z"
style="fill:#4e4221"
inkscape:connector-curvature="0"
/>
<path
id="path4083"
d="m889 979.05c1.5958-5.9684 23.758-6.5409 26.036 0 1.9511 5.6019-7.0716 12.83-13.018 12.847-5.4177 0.0147-14.622-6.8464-13.018-12.847z"
sodipodi:nodetypes="ssss"
style="fill:#4e4221"
inkscape:connector-curvature="0"
/>
<path
id="path4106"
sodipodi:nodetypes="cccc"
style="opacity:.2;fill:#000000"
inkscape:connector-curvature="0"
d="m849.22 923.21c3.7785-1.2599 11.123-0.0543 15.777 1.1759-6.0011 5.6248-9.9263 10.289-13.621 17.835-3.1631-5.7678-3.9246-13.7-2.1558-19.011z"
/>
<path
id="path4114"
d="m954.21 923.21c-3.7784-1.2599-11.123-0.0543-15.777 1.1759 6.001 5.6248 9.9263 10.289 13.621 17.835 3.1631-5.7678 3.9246-13.7 2.1558-19.011z"
sodipodi:nodetypes="cccc"
style="opacity:.2;fill:#000000"
inkscape:connector-curvature="0"
/>
<path
id="path4130"
sodipodi:nodetypes="cc"
d="m831.88 978.28 35.081 2.9398"
style="stroke:#000000;stroke-linecap:round;stroke-width:1.5521;fill:none"
inkscape:connector-curvature="0"
/>
<path
id="path4134"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
style="stroke:#000000;stroke-linecap:round;stroke-width:1.5521;fill:none"
d="m972.25 978.28-35.081 2.9398"
/>
<path
id="path4138"
d="m870.29 986.32-34.885 12.935"
sodipodi:nodetypes="cc"
style="stroke:#000000;stroke-linecap:round;stroke-width:1.5521;fill:none"
inkscape:connector-curvature="0"
/>
<path
id="path4142"
sodipodi:nodetypes="cc"
style="stroke:#000000;stroke-linecap:round;stroke-width:1.5521;fill:none"
inkscape:connector-curvature="0"
d="m933.83 986.32 34.885 12.935"
/>
<path
id="path4166"
sodipodi:nodetypes="cc"
d="m874.41 991.81c-1.5679 1.1759-22.93 19.402-22.93 19.402"
style="stroke:#000000;stroke-linecap:round;stroke-width:1.5521;fill:none"
inkscape:connector-curvature="0"
/>
<path
id="path4170"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
style="stroke:#000000;stroke-linecap:round;stroke-width:1.5521;fill:none"
d="m929.72 991.81c1.5679 1.1759 22.93 19.402 22.93 19.402"
/>
<g
id="g4188"
transform="matrix(.77606 0 0 .77606 234.04 593.34)"
>
<path
id="path4190"
sodipodi:rx="17.857143"
sodipodi:ry="17.857143"
style="fill:#0a0502"
sodipodi:type="arc"
d="m1875.4 517.01c0 9.8622-7.9949 17.857-17.857 17.857-9.8622 0-17.857-7.9949-17.857-17.857 0-9.8622 7.9949-17.857 17.857-17.857 9.8622 0 17.857 7.9949 17.857 17.857z"
transform="matrix(0.59 0 0 0.53 -236.46 144.96)"
sodipodi:cy="517.00507"
sodipodi:cx="1857.5"
/>
<path
id="path4192"
sodipodi:rx="6.25"
sodipodi:ry="6.25"
style="fill:#5c503e"
sodipodi:type="arc"
d="m1863.6 522.54c0 3.4518-2.7982 6.25-6.25 6.25s-6.25-2.7982-6.25-6.25 2.7982-6.25 6.25-6.25 6.25 2.7982 6.25 6.25z"
transform="matrix(.85971 0 0 1.3023 -737.41 -261.34)"
sodipodi:cy="522.54077"
sodipodi:cx="1857.3214"
/>
</g
>
<g
id="g4194"
transform="matrix(.50289 -.42384 .42384 .50289 263.62 1081.5)"
>
<path
id="path4196"
sodipodi:rx="17.857143"
sodipodi:ry="17.857143"
style="fill:#0a0502"
sodipodi:type="arc"
d="m1875.4 517.01c0 9.8622-7.9949 17.857-17.857 17.857-9.8622 0-17.857-7.9949-17.857-17.857 0-9.8622 7.9949-17.857 17.857-17.857 9.8622 0 17.857 7.9949 17.857 17.857z"
transform="matrix(0.59 0 0 0.53 -236.46 144.96)"
sodipodi:cy="517.00507"
sodipodi:cx="1857.5"
/>
<path
id="path4198"
sodipodi:rx="6.25"
sodipodi:ry="6.25"
style="fill:#5c503e"
sodipodi:type="arc"
d="m1863.6 522.54c0 3.4518-2.7982 6.25-6.25 6.25s-6.25-2.7982-6.25-6.25 2.7982-6.25 6.25-6.25 6.25 2.7982 6.25 6.25z"
transform="matrix(.85971 0 0 1.3023 -737.41 -261.34)"
sodipodi:cy="522.54077"
sodipodi:cx="1857.3214"
/>
</g
>
<g
id="g4200"
transform="matrix(-.50289 -.42384 -.42384 .50289 1538.7 1081.5)"
>
<path
id="path4202"
sodipodi:rx="17.857143"
sodipodi:ry="17.857143"
style="fill:#0a0502"
sodipodi:type="arc"
d="m1875.4 517.01c0 9.8622-7.9949 17.857-17.857 17.857-9.8622 0-17.857-7.9949-17.857-17.857 0-9.8622 7.9949-17.857 17.857-17.857 9.8622 0 17.857 7.9949 17.857 17.857z"
transform="matrix(0.59 0 0 0.53 -236.46 144.96)"
sodipodi:cy="517.00507"
sodipodi:cx="1857.5"
/>
<path
id="path4204"
sodipodi:rx="6.25"
sodipodi:ry="6.25"
style="fill:#5c503e"
sodipodi:type="arc"
d="m1863.6 522.54c0 3.4518-2.7982 6.25-6.25 6.25s-6.25-2.7982-6.25-6.25 2.7982-6.25 6.25-6.25 6.25 2.7982 6.25 6.25z"
transform="matrix(.85971 0 0 1.3023 -737.41 -261.34)"
sodipodi:cy="522.54077"
sodipodi:cx="1857.3214"
/>
</g
>
<g
id="g4206"
transform="matrix(.23106 -.43788 .43788 .23106 475.68 1227)"
>
<path
id="path4208"
sodipodi:rx="17.857143"
sodipodi:ry="17.857143"
style="fill:#0a0502"
sodipodi:type="arc"
d="m1875.4 517.01c0 9.8622-7.9949 17.857-17.857 17.857-9.8622 0-17.857-7.9949-17.857-17.857 0-9.8622 7.9949-17.857 17.857-17.857 9.8622 0 17.857 7.9949 17.857 17.857z"
transform="matrix(0.59 0 0 0.53 -236.46 144.96)"
sodipodi:cy="517.00507"
sodipodi:cx="1857.5"
/>
<path
id="path4210"
sodipodi:rx="6.25"
sodipodi:ry="6.25"
style="fill:#5c503e"
sodipodi:type="arc"
d="m1863.6 522.54c0 3.4518-2.7982 6.25-6.25 6.25s-6.25-2.7982-6.25-6.25 2.7982-6.25 6.25-6.25 6.25 2.7982 6.25 6.25z"
transform="matrix(.85971 0 0 1.3023 -737.41 -261.34)"
sodipodi:cy="522.54077"
sodipodi:cx="1857.3214"
/>
</g
>
<g
id="g4212"
transform="matrix(-.23106 -.43788 -.43788 .23106 1326.7 1227)"
>
<path
id="path4214"
sodipodi:rx="17.857143"
sodipodi:ry="17.857143"
style="fill:#0a0502"
sodipodi:type="arc"
d="m1875.4 517.01c0 9.8622-7.9949 17.857-17.857 17.857-9.8622 0-17.857-7.9949-17.857-17.857 0-9.8622 7.9949-17.857 17.857-17.857 9.8622 0 17.857 7.9949 17.857 17.857z"
transform="matrix(0.59 0 0 0.53 -236.46 144.96)"
sodipodi:cy="517.00507"
sodipodi:cx="1857.5"
/>
<path
id="path4216"
sodipodi:rx="6.25"
sodipodi:ry="6.25"
style="fill:#5c503e"
sodipodi:type="arc"
d="m1863.6 522.54c0 3.4518-2.7982 6.25-6.25 6.25s-6.25-2.7982-6.25-6.25 2.7982-6.25 6.25-6.25 6.25 2.7982 6.25 6.25z"
transform="matrix(.85971 0 0 1.3023 -737.41 -261.34)"
sodipodi:cy="522.54077"
sodipodi:cx="1857.3214"
/>
</g
>
<path
id="path4218"
sodipodi:rx="3.8392856"
sodipodi:ry="3.8392856"
style="fill:#1f1811"
sodipodi:type="arc"
d="m867.86 486.38c0 2.1204-1.7189 3.8393-3.8393 3.8393s-3.8393-1.7189-3.8393-3.8393 1.7189-3.8393 3.8393-3.8393 3.8393 1.7189 3.8393 3.8393z"
transform="matrix(.92045 0 0 .92045 78.791 501.08)"
sodipodi:cy="486.38004"
sodipodi:cx="864.01788"
/>
<path
id="path4220"
sodipodi:rx="3.8392856"
sodipodi:ry="3.8392856"
style="fill:#1f1811"
sodipodi:type="arc"
d="m867.86 486.38c0 2.1204-1.7189 3.8393-3.8393 3.8393s-3.8393-1.7189-3.8393-3.8393 1.7189-3.8393 3.8393-3.8393 3.8393 1.7189 3.8393 3.8393z"
transform="matrix(.92045 0 0 .92045 58.213 525.97)"
sodipodi:cy="486.38004"
sodipodi:cx="864.01788"
/>
<path
id="path4222"
sodipodi:rx="3.8392856"
sodipodi:ry="3.8392856"
style="fill:#1f1811"
sodipodi:type="arc"
d="m867.86 486.38c0 2.1204-1.7189 3.8393-3.8393 3.8393s-3.8393-1.7189-3.8393-3.8393 1.7189-3.8393 3.8393-3.8393 3.8393 1.7189 3.8393 3.8393z"
transform="matrix(-.92045 0 0 .92045 1745.4 525.97)"
sodipodi:cy="486.38004"
sodipodi:cx="864.01788"
/>
<path
id="path4224"
sodipodi:rx="3.8392856"
sodipodi:ry="3.8392856"
style="fill:#1f1811"
sodipodi:type="arc"
d="m867.86 486.38c0 2.1204-1.7189 3.8393-3.8393 3.8393s-3.8393-1.7189-3.8393-3.8393 1.7189-3.8393 3.8393-3.8393 3.8393 1.7189 3.8393 3.8393z"
transform="matrix(.92045 0 0 .92045 58.017 513.63)"
sodipodi:cy="486.38004"
sodipodi:cx="864.01788"
/>
<path
id="path4226"
sodipodi:rx="3.8392856"
sodipodi:ry="3.8392856"
style="fill:#1f1811"
sodipodi:type="arc"
d="m867.86 486.38c0 2.1204-1.7189 3.8393-3.8393 3.8393s-3.8393-1.7189-3.8393-3.8393 1.7189-3.8393 3.8393-3.8393 3.8393 1.7189 3.8393 3.8393z"
transform="matrix(-.92045 0 0 .92045 1745.6 513.63)"
sodipodi:cy="486.38004"
sodipodi:cx="864.01788"
/>
<path
id="path4228"
sodipodi:rx="3.8392856"
sodipodi:ry="3.8392856"
style="fill:#1f1811"
sodipodi:type="arc"
d="m867.86 486.38c0 2.1204-1.7189 3.8393-3.8393 3.8393s-3.8393-1.7189-3.8393-3.8393 1.7189-3.8393 3.8393-3.8393 3.8393 1.7189 3.8393 3.8393z"
transform="matrix(.92045 0 0 .92045 95.144 490.56)"
sodipodi:cy="486.38004"
sodipodi:cx="864.01788"
/>
<path
id="path4230"
sodipodi:rx="3.8392856"
sodipodi:ry="3.8392856"
style="fill:#1f1811"
sodipodi:type="arc"
d="m867.86 486.38c0 2.1204-1.7189 3.8393-3.8393 3.8393s-3.8393-1.7189-3.8393-3.8393 1.7189-3.8393 3.8393-3.8393 3.8393 1.7189 3.8393 3.8393z"
transform="matrix(.92045 0 0 .92045 115.56 490.53)"
sodipodi:cy="486.38004"
sodipodi:cx="864.01788"
/>
<path
id="path4232"
sodipodi:rx="3.8392856"
sodipodi:ry="3.8392856"
style="fill:#1f1811"
sodipodi:type="arc"
d="m867.86 486.38c0 2.1204-1.7189 3.8393-3.8393 3.8393s-3.8393-1.7189-3.8393-3.8393 1.7189-3.8393 3.8393-3.8393 3.8393 1.7189 3.8393 3.8393z"
transform="matrix(.92045 0 0 .92045 132.69 501.08)"
sodipodi:cy="486.38004"
sodipodi:cx="864.01788"
/>
<path
id="path4234"
sodipodi:rx="3.8392856"
sodipodi:ry="3.8392856"
style="fill:#1f1811"
sodipodi:type="arc"
d="m867.86 486.38c0 2.1204-1.7189 3.8393-3.8393 3.8393s-3.8393-1.7189-3.8393-3.8393 1.7189-3.8393 3.8393-3.8393 3.8393 1.7189 3.8393 3.8393z"
transform="matrix(.92045 0 0 .92045 120.49 504.16)"
sodipodi:cy="486.38004"
sodipodi:cx="864.01788"
/>
<path
id="path4236"
sodipodi:rx="3.8392856"
sodipodi:ry="3.8392856"
style="fill:#1f1811"
sodipodi:type="arc"
d="m867.86 486.38c0 2.1204-1.7189 3.8393-3.8393 3.8393s-3.8393-1.7189-3.8393-3.8393 1.7189-3.8393 3.8393-3.8393 3.8393 1.7189 3.8393 3.8393z"
transform="matrix(.92045 0 0 .92045 104.95 509.79)"
sodipodi:cy="486.38004"
sodipodi:cx="864.01788"
/>
<path
id="path4238"
sodipodi:rx="3.8392856"
sodipodi:ry="3.8392856"
style="fill:#1f1811"
sodipodi:type="arc"
d="m867.86 486.38c0 2.1204-1.7189 3.8393-3.8393 3.8393s-3.8393-1.7189-3.8393-3.8393 1.7189-3.8393 3.8393-3.8393 3.8393 1.7189 3.8393 3.8393z"
transform="matrix(.92045 0 0 .92045 91.842 504.16)"
sodipodi:cy="486.38004"
sodipodi:cx="864.01788"
/>
</g
>
</g
>
<metadata
>
<rdf:RDF
>
<cc:Work
>
<dc:format
>image/svg+xml</dc:format
>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage"
/>
<cc:license
rdf:resource="http://creativecommons.org/licenses/publicdomain/"
/>
<dc:publisher
>
<cc:Agent
rdf:about="http://openclipart.org/"
>
<dc:title
>Openclipart</dc:title
>
</cc:Agent
>
</dc:publisher
>
</cc:Work
>
<cc:License
rdf:about="http://creativecommons.org/licenses/publicdomain/"
>
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction"
/>
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution"
/>
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks"
/>
</cc:License
>
</rdf:RDF
>
</metadata
>
</svg
>

After

Width:  |  Height:  |  Size: 16 KiB

@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "doushouqi-lion.svg",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,245 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:ns1="http://sozi.baierouge.fr"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
id="svg8007"
sodipodi:docname="doushouqi-elephant.svg"
viewBox="0 0 200 200"
version="1.1"
inkscape:version="0.48.4 r9939"
>
<sodipodi:namedview
id="base"
bordercolor="#666666"
inkscape:pageshadow="2"
inkscape:window-y="27"
pagecolor="#ffffff"
inkscape:window-height="1014"
inkscape:window-maximized="1"
inkscape:zoom="0.7"
inkscape:window-x="0"
showgrid="false"
borderopacity="1.0"
inkscape:current-layer="layer1"
inkscape:cx="806.21949"
inkscape:cy="9.6431667"
inkscape:window-width="1920"
inkscape:pageopacity="0.0"
inkscape:document-units="px"
/>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
transform="translate(0 -852.36)"
>
<g
id="g8731"
transform="translate(-446.15)"
>
<path
id="path4016"
d="m630.39 950.79c0 23.252-7.3711 40.05-26.57 53.601-19.199 13.552-50.225 23.857-57.634 29.432-8.2892-5.5746-40.489-15.88-59.468-29.432-18.979-13.551-24.736-30.349-24.736-53.601 0-46.505 37.7-65.906 84.204-65.906 46.505 0 84.204 19.401 84.204 65.906z"
sodipodi:nodetypes="sscssss"
style="stroke:#792f03;stroke-width:6.9846;fill:#ac5e1a"
inkscape:connector-curvature="0"
/>
<path
id="path4018"
d="m545.76 1032.6v-146.6"
sodipodi:nodetypes="cc"
style="stroke:#792f03;stroke-width:7.7606;fill:none"
inkscape:connector-curvature="0"
/>
<g
id="g4020"
transform="matrix(.77606 0 0 .77606 227.09 561.98)"
>
<path
id="path4022"
d="m348.25 429.6c21.694 10.688 45.73 38.497 62.882 79.802-32.285-21.032-83.966-34.648-106.57-20.708"
sodipodi:nodetypes="ccc"
style="stroke:#792f03;stroke-width:10;fill:none"
inkscape:connector-curvature="0"
/>
<path
id="path4024"
d="m309.11 537.18c18.296-26.693 105.28-27.795 100.51-28.789-4.5395-0.94588-65.349 35.627-71.216 65.155"
sodipodi:nodetypes="csc"
style="stroke:#792f03;stroke-width:10;fill:none"
inkscape:connector-curvature="0"
/>
<path
id="path4026"
d="m376.28 591.73c-0.18527-20.138 31.828-85.017 34.85-83.338"
sodipodi:nodetypes="cc"
style="stroke:#792f03;stroke-width:10;fill:none"
inkscape:connector-curvature="0"
/>
</g
>
<g
id="g4028"
transform="matrix(-.77606 0 0 .77606 865.11 561.98)"
>
<path
id="path4030"
sodipodi:nodetypes="ccc"
style="stroke:#792f03;stroke-width:10;fill:none"
inkscape:connector-curvature="0"
d="m348.25 429.6c21.694 10.688 45.73 38.497 62.882 79.802-32.285-21.032-83.966-34.648-106.57-20.708"
/>
<path
id="path4032"
sodipodi:nodetypes="csc"
style="stroke:#792f03;stroke-width:10;fill:none"
inkscape:connector-curvature="0"
d="m309.11 537.18c18.296-26.693 105.28-27.795 100.51-28.789-4.5395-0.94588-65.349 35.627-71.216 65.155"
/>
<path
id="path4034"
sodipodi:nodetypes="cc"
style="stroke:#792f03;stroke-width:10;fill:none"
inkscape:connector-curvature="0"
d="m376.28 591.73c-0.18527-20.138 31.828-85.017 34.85-83.338"
/>
</g
>
<path
id="path4036"
d="m544.38 905.59c-10.018 0.28237-19.405 3.376-27.574 8.3184-8.0716-3.405-24.183-2.6509-30.145 0.60629-3.2226 10.487-1.0707 22.223 4.0743 30.218-2.3505 6.0472-3.6378 12.363-3.6378 18.65 0 20.583 13.764 35.074 33.662 41.519 2.5504 4.1049 8.7528 7.9807 13.287 8.7482 9.0675 1.5346 15.476 1.6747 24.543 0 4.6375-0.8567 10.843-4.9661 13.342-9.0391 19.403-6.5894 32.764-20.962 32.764-41.228 0-6.0937-1.2292-12.214-3.4438-18.092 5.4058-7.9997 7.76-20.044 4.4624-30.776-6.0526-3.3063-22.566-4.0454-30.509-0.46078-8.6332-5.2758-18.639-8.4639-29.321-8.4639-0.50737 0-0.99933-0.0143-1.5036 0z"
sodipodi:nodetypes="scccscsscscccss"
style="stroke:#792f03;stroke-width:6.9846;fill:#dbb27b"
inkscape:connector-curvature="0"
/>
<path
id="path4058"
style="fill:#792f03"
inkscape:connector-curvature="0"
d="m516.74 964.11c-0.74082 0.98722-1.1884 2.2115-1.1884 3.5408 0 3.2635 2.654 5.9175 5.9175 5.9175 2.9741 0 5.4074-2.209 5.8205-5.0686l-10.55-4.3896z"
/>
<path
id="path4067"
d="m573.22 964.11c0.74082 0.98722 1.1883 2.2115 1.1883 3.5408 0 3.2635-2.654 5.9175-5.9175 5.9175-2.9741 0-5.4074-2.209-5.8205-5.0686l10.55-4.3896z"
style="fill:#792f03"
inkscape:connector-curvature="0"
/>
<path
id="path4075"
d="m533.12 979.05c1.5958-5.9684 23.758-6.5409 26.036 0 1.9511 5.6019-7.0716 12.83-13.018 12.847-5.4177 0.0147-14.622-6.8464-13.018-12.847z"
sodipodi:nodetypes="ssss"
style="fill:#792f03"
inkscape:connector-curvature="0"
/>
<path
id="path4085"
sodipodi:nodetypes="cccc"
style="opacity:.2;fill:#000000"
inkscape:connector-curvature="0"
d="m493.34 923.21c3.7784-1.2599 11.123-0.0543 15.777 1.1759-6.001 5.6248-9.9263 10.289-13.621 17.835-3.1631-5.7678-3.9246-13.7-2.1558-19.011z"
/>
<path
id="path4108"
d="m598.33 923.21c-3.7785-1.2599-11.123-0.0543-15.777 1.1759 6.001 5.6248 9.9263 10.289 13.621 17.835 3.1631-5.7678 3.9246-13.7 2.1559-19.011z"
sodipodi:nodetypes="cccc"
style="opacity:.2;fill:#000000"
inkscape:connector-curvature="0"
/>
<path
id="path4117"
style="stroke:#4d2812;stroke-linecap:round;stroke-width:1.5521;fill:none"
inkscape:connector-curvature="0"
d="m454.04 977.3 56.836 3.9197"
/>
<path
id="path4120"
d="m638.27 977.3-56.836 3.9197"
style="stroke:#4d2812;stroke-linecap:round;stroke-width:1.5521;fill:none"
inkscape:connector-curvature="0"
/>
<path
id="path4122"
sodipodi:nodetypes="cc"
style="stroke:#4d2812;stroke-linecap:round;stroke-width:1.5521;fill:none"
inkscape:connector-curvature="0"
d="m514.21 986.32-43.705 16.855"
/>
<path
id="path4124"
d="m578.1 986.32 43.705 16.855"
sodipodi:nodetypes="cc"
style="stroke:#4d2812;stroke-linecap:round;stroke-width:1.5521;fill:none"
inkscape:connector-curvature="0"
/>
<path
id="path4126"
style="stroke:#4d2812;stroke-linecap:round;stroke-width:1.5521;fill:none"
inkscape:connector-curvature="0"
d="m518.32 991.81c-1.5679 1.1759-29.398 23.91-29.398 23.91"
/>
<path
id="path4172"
d="m573.98 991.81c1.5679 1.1759 29.398 23.91 29.398 23.91"
style="stroke:#4d2812;stroke-linecap:round;stroke-width:1.5521;fill:none"
inkscape:connector-curvature="0"
/>
</g
>
</g
>
<metadata
>
<rdf:RDF
>
<cc:Work
>
<dc:format
>image/svg+xml</dc:format
>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage"
/>
<cc:license
rdf:resource="http://creativecommons.org/licenses/publicdomain/"
/>
<dc:publisher
>
<cc:Agent
rdf:about="http://openclipart.org/"
>
<dc:title
>Openclipart</dc:title
>
</cc:Agent
>
</dc:publisher
>
</cc:Work
>
<cc:License
rdf:about="http://creativecommons.org/licenses/publicdomain/"
>
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction"
/>
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution"
/>
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks"
/>
</cc:License
>
</rdf:RDF
>
</metadata
>
</svg
>

After

Width:  |  Height:  |  Size: 8.7 KiB

@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "doushouqi-rat.svg",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,217 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:ns1="http://sozi.baierouge.fr"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
id="svg8007"
sodipodi:docname="doushouqi-cat.svg"
viewBox="0 0 200 200"
version="1.1"
inkscape:version="0.48.4 r9939"
>
<sodipodi:namedview
id="base"
bordercolor="#666666"
inkscape:pageshadow="2"
inkscape:window-y="27"
pagecolor="#ffffff"
inkscape:window-height="1014"
inkscape:window-maximized="1"
inkscape:zoom="0.7"
inkscape:window-x="0"
showgrid="false"
borderopacity="1.0"
inkscape:current-layer="layer1"
inkscape:cx="806.21949"
inkscape:cy="9.6431667"
inkscape:window-width="1920"
inkscape:pageopacity="0.0"
inkscape:document-units="px"
/>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
transform="translate(0 -852.36)"
>
<g
id="g8853"
transform="translate(-1508.5)"
>
<path
id="path4042"
d="m1573.3 911.82c-7.9063-0.0829-15.902 3.1248-20.317 9.3945-7.0129 9.9601-5.202 27.532 11.724 32.518-12.692 29.039 1.9525 46.382 24.709 49.99 1.9591 1.6892 4.7751 3.1226 7.7522 3.8952 0.1031 0.027 0.2022 0.07 0.3056 0.095 0.3804 0.1141 0.7471 0.2199 1.1075 0.2866 3.5695 0.6592 6.6157 0.9493 9.6618 0.9356 0.076 0.0006 0.153-0.0005 0.2291 0 3.0462 0.014 6.0926-0.2764 9.6619-0.9356 0.3604-0.066 0.7271-0.1725 1.1075-0.2866 0.1013-0.029 0.2031-0.062 0.3056-0.095 2.9773-0.7726 5.774-2.206 7.7333-3.8952 22.756-3.6078 37.42-20.951 24.727-49.99 16.926-4.9857 18.737-22.558 11.724-32.518-9.4175-13.376-35.171-12.817-41.473 3.8953-4.6597-1.5283-8.316-2.1884-13.347-2.0813-0.1863 0.004-0.3683 0.0133-0.5537 0.0191-0.1897-0.006-0.3824-0.0151-0.573-0.0191-5.031-0.10706-8.6682 0.55298-13.328 2.0813-3.3479-8.8782-12.196-13.196-21.157-13.29z"
style="stroke:#7e6149;stroke-width:5.4992;fill:#bdac92"
inkscape:connector-curvature="0"
/>
<path
id="path4044"
sodipodi:nodetypes="sccccccccccccs"
style="opacity:.51029;fill:#e6dbcd"
inkscape:connector-curvature="0"
d="m1608.4 973.68c-16.336 0-28.52 8.0138-29.745 24.036 3.6153 1.6717 7.4466 2.8531 11.785 3.5408 1.9591 1.6893 3.8035 2.7399 6.7806 3.5125 0.103 0.027 0.1876 0.072 0.2911 0.097 0.3803 0.114 0.7551 0.2244 1.1155 0.291 3.5694 0.6594 6.6062 0.9355 9.6523 0.9216 0.076 0 0.1665-0.0003 0.2424 0 3.0465 0.014 6.083-0.2622 9.6524-0.9216 0.3604-0.066 0.7352-0.177 1.1156-0.291 0.1013-0.029 0.2128-0.063 0.3153-0.097 2.9773-0.7726 4.5769-2.0193 6.5362-3.7085 4.3458-0.689 8.9956-1.8642 12.617-3.5408-1.2258-16.022-14.021-23.84-30.358-23.84z"
/>
<path
id="path4079"
sodipodi:nodetypes="ssss"
style="fill:#b59a81"
inkscape:connector-curvature="0"
d="m1598.1 980.75c1.2564-4.6992 18.706-5.15 20.499 0 1.5361 4.4106-5.5677 10.102-10.25 10.115-4.2656 0.011-11.513-5.3904-10.25-10.115z"
/>
<path
id="path4089"
sodipodi:nodetypes="sccs"
style="opacity:.2;fill:#000000"
inkscape:connector-curvature="0"
d="m1558 924.57c9.9658-11.027 27.088-3.9709 28.134 6.8179-4.7248 4.4287-15.017 12.902-17.926 18.843-19.076-7.8146-14.511-20.899-10.208-25.661z"
/>
<path
id="path4091"
d="m1658.1 924.57c-9.966-11.027-27.088-3.9709-28.134 6.8179 4.725 4.4287 15.017 12.902 17.926 18.843 19.076-7.8146 14.511-20.899 10.208-25.661z"
sodipodi:nodetypes="sccs"
style="opacity:.2;fill:#000000"
inkscape:connector-curvature="0"
/>
<g
id="g4146"
style="stroke:#64472e"
transform="matrix(.77606 0 0 .77606 223.95 561.98)"
>
<path
id="path4148"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
style="stroke:#64472e;stroke-linecap:round;stroke-width:1.5747;fill:none"
d="m1698 539.33c14.517-5.8624 31.691-3.7533 50.238 2.4774"
/>
<path
id="path4150"
sodipodi:nodetypes="cc"
style="stroke:#64472e;stroke-linecap:round;stroke-width:1.5747;fill:none"
inkscape:connector-curvature="0"
d="m1751.7 546.98c-16.671 0.33795-31.213 3.8694-42.178 12.766"
/>
<path
id="path4152"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
style="stroke:#64472e;stroke-linecap:round;stroke-width:1.5747;fill:none"
d="m1755.8 552.55c-10.409 2.3995-21.129 12.122-23.264 22.185"
/>
</g
>
<g
id="g4154"
style="stroke:#64472e"
transform="matrix(-.77606 0 0 .77606 2993.1 561.98)"
>
<path
id="path4158"
sodipodi:nodetypes="cc"
d="m1698 539.33c14.517-5.8624 31.691-3.7533 50.238 2.4774"
style="stroke:#64472e;stroke-linecap:round;stroke-width:1.5747;fill:none"
inkscape:connector-curvature="0"
/>
<path
id="path4160"
d="m1751.7 546.98c-16.671 0.33795-31.213 3.8694-42.178 12.766"
sodipodi:nodetypes="cc"
style="stroke:#64472e;stroke-linecap:round;stroke-width:1.5747;fill:none"
inkscape:connector-curvature="0"
/>
<path
id="path4162"
sodipodi:nodetypes="cc"
d="m1755.8 552.55c-10.409 2.3995-21.129 12.122-23.264 22.185"
style="stroke:#64472e;stroke-linecap:round;stroke-width:1.5747;fill:none"
inkscape:connector-curvature="0"
/>
</g
>
<g
id="g4282"
transform="matrix(.77606 0 0 .77606 223.56 561.98)"
>
<path
id="path4284"
sodipodi:rx="5.0507627"
sodipodi:ry="5.0507627"
style="fill:#64472e"
sodipodi:type="arc"
d="m1764.9 527.21c0 2.7895-2.2613 5.0508-5.0508 5.0508-2.7894 0-5.0508-2.2613-5.0508-5.0508s2.2614-5.0508 5.0508-5.0508c2.7895 0 5.0508 2.2613 5.0508 5.0508z"
transform="matrix(1.225 0 0 1.225 -400.68 -118.62)"
sodipodi:cy="527.20911"
sodipodi:cx="1759.812"
/>
<path
id="path4286"
sodipodi:rx="5.0507627"
sodipodi:ry="5.0507627"
style="fill:#64472e"
sodipodi:type="arc"
d="m1764.9 527.21c0 2.7895-2.2613 5.0508-5.0508 5.0508-2.7894 0-5.0508-2.2613-5.0508-5.0508s2.2614-5.0508 5.0508-5.0508c2.7895 0 5.0508 2.2613 5.0508 5.0508z"
transform="matrix(1.225 0 0 1.225 -342.09 -118.62)"
sodipodi:cy="527.20911"
sodipodi:cx="1759.812"
/>
</g
>
</g
>
</g
>
<metadata
>
<rdf:RDF
>
<cc:Work
>
<dc:format
>image/svg+xml</dc:format
>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage"
/>
<cc:license
rdf:resource="http://creativecommons.org/licenses/publicdomain/"
/>
<dc:publisher
>
<cc:Agent
rdf:about="http://openclipart.org/"
>
<dc:title
>Openclipart</dc:title
>
</cc:Agent
>
</dc:publisher
>
</cc:Work
>
<cc:License
rdf:about="http://creativecommons.org/licenses/publicdomain/"
>
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction"
/>
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution"
/>
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks"
/>
</cc:License
>
</rdf:RDF
>
</metadata
>
</svg
>

After

Width:  |  Height:  |  Size: 8.2 KiB

@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "doushouqi-wolf.svg",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:ns1="http://sozi.baierouge.fr"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
id="svg8007"
sodipodi:docname="doushouqi-leopard.svg"
viewBox="0 0 200 200"
version="1.1"
inkscape:version="0.48.4 r9939"
>
<sodipodi:namedview
id="base"
bordercolor="#666666"
inkscape:pageshadow="2"
inkscape:window-y="27"
pagecolor="#ffffff"
inkscape:window-height="1014"
inkscape:window-maximized="1"
inkscape:zoom="0.7"
inkscape:window-x="0"
showgrid="false"
borderopacity="1.0"
inkscape:current-layer="layer1"
inkscape:cx="806.21949"
inkscape:cy="9.6431667"
inkscape:window-width="1920"
inkscape:pageopacity="0.0"
inkscape:document-units="px"
/>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
transform="translate(0 -852.36)"
>
<g
id="g8816"
transform="translate(-987.34)"
>
<path
id="path4046"
sodipodi:nodetypes="ccccscsccccccscc"
style="stroke:#231e0e;stroke-width:6.9846;fill:#5b584a"
inkscape:connector-curvature="0"
d="m1030.8 896.22c-4.5026 13.496-4.4004 33.209 1.6977 47.51-7.4198 16.243-11.915 33.445-14.066 47.752 12.387 9.4233 31.012 12.574 42.223 13.29 2.5674 4.015 8.6463 8.0319 13.217 8.8762 4.9962 0.9229 9.1883 1.2731 13.46 1.1641 4.2715 0.109 8.4636-0.2412 13.46-1.1641 4.571-0.8443 10.65-4.8612 13.217-8.8762 11.21-0.7155 29.859-3.8663 42.247-13.29-1.8736-17.32-6.7277-34.909-14.09-47.728 6.1094-14.303 6.203-34.029 1.6977-47.534-11.987 2.2212-22.546 9.9303-27.744 17.049-8.3328-4.8149-17.883-7.6879-28.035-7.6879-0.5043-0.0143-0.9962 0-1.5037 0-10.151 0-19.679 2.8743-28.011 7.6879-5.1965-7.1206-15.778-14.827-27.768-17.049z"
/>
<path
id="path4054"
d="m1038.8 972.13c-6.9566-0.0519-12.747 6.8723-16.54 17.752v0.0239c0.7104 0.44765 1.422 0.87149 2.1342 1.2853 0.6218 0.3613 1.2436 0.70643 1.8673 1.0428 0.153 0.0818 0.3072 0.16194 0.4608 0.24259 0.3244 0.17169 0.6452 0.34402 0.9701 0.50927 0.4422 0.22171 0.8855 0.44352 1.3339 0.65484 0.1135 0.0542 0.2259 0.11587 0.3395 0.16976 9.9607 4.7187 20.297 6.5847 31.988 7.4938 0.4346 0.038 0.8711 0.086 1.3096 0.1214 2.9703 4.7961 6.7897 7.2098 10.962 8.4637 0.049 0.017 0.097 0.032 0.1456 0.049 0.2569 0.075 0.5164 0.1513 0.776 0.2182 4.2821 1.2554 8.7232 1.2797 12.854 1.1884 4.1304 0.091 8.5715 0.066 12.854-1.1884 0.3089-0.08 0.6163-0.1751 0.9216-0.2668 4.1722-1.2539 7.9916-3.6676 10.962-8.4639 0.4095-0.033 0.8063-0.085 1.2125-0.1213 11.731-0.9064 22.097-2.7619 32.085-7.4938 0.185-0.0874 0.3731-0.17712 0.5578-0.26678 0.6135-0.29206 1.2169-0.60968 1.8189-0.92152 0.1364-0.0717 0.2759-0.14566 0.4123-0.21831 0.1056-0.0561 0.2099-0.11329 0.3153-0.16975 0.6237-0.33639 1.2455-0.68151 1.8673-1.0428 0.7123-0.41381 1.4238-0.83765 2.1342-1.2853v-0.0239c-4.6686-13.393-12.358-20.802-21.536-16.564-3.8335 10.062-11.272 16.17-23.233 17.364-3.7539-8.3906-7.4366-15.43-20.372-15.43s-16.618 7.0396-20.372 15.43c-11.961-1.1948-19.4-7.3027-23.233-17.364-1.7218-0.79502-3.3894-1.1764-4.9959-1.1883z"
sodipodi:nodetypes="sccscccccccccccccccsccccsccccsccs"
style="fill:#ece7da"
inkscape:connector-curvature="0"
/>
<path
id="path4063"
style="fill:#231e0e"
inkscape:connector-curvature="0"
d="m1058.9 964.11c-0.7409 0.98722-1.1884 2.2115-1.1884 3.5408 0 3.2635 2.654 5.9175 5.9174 5.9175 2.9742 0 5.4075-2.209 5.8205-5.0686l-10.55-4.3896z"
/>
<path
id="path4071"
style="fill:#231e0e"
inkscape:connector-curvature="0"
d="m1115.4 964.11c0.7408 0.98722 1.1883 2.2115 1.1883 3.5408 0 3.2635-2.654 5.9175-5.9175 5.9175-2.9741 0-5.4073-2.209-5.8204-5.0686l10.55-4.3896z"
/>
<path
id="path4081"
d="m1075.3 979.05c1.5958-5.9684 23.758-6.5409 26.036 0 1.9511 5.6019-7.0715 12.83-13.018 12.847-5.4177 0.0147-14.622-6.8464-13.018-12.847z"
sodipodi:nodetypes="ssss"
style="fill:#231e0e"
inkscape:connector-curvature="0"
/>
<path
id="path4100"
sodipodi:nodetypes="cccc"
style="fill:#949389"
inkscape:connector-curvature="0"
d="m1034.7 908.38c6.4115 4.1448 12.647 8.5377 16.608 16.004-6.001 5.6248-9.9263 10.289-13.621 17.835-5.9348-15.33-5.449-25.48-2.9873-33.839z"
/>
<path
id="path4102"
d="m1139.1 908.38c-6.4114 4.1448-12.647 8.5377-16.608 16.004 6.001 5.6248 9.9263 10.289 13.621 17.835 5.9348-15.33 5.4491-25.48 2.9873-33.839z"
sodipodi:nodetypes="cccc"
style="fill:#949389"
inkscape:connector-curvature="0"
/>
<path
id="path4268"
sodipodi:nodetypes="ccccc"
style="opacity:.46502;fill:#949389"
inkscape:connector-curvature="0"
d="m1103.3 939.1c4.7024-2.3411 15.865 3.2729 20.577 9.1383 2.3796 4.1345 2.5331 8.0217 1.5958 11.788l-28.548 11.641c5.9766-8.5447 7.7865-19.589 6.3748-32.567z"
/>
<path
id="path4270"
d="m1071.7 939.1c-4.7024-2.3411-15.865 3.2729-20.578 9.1383-2.3795 4.1345-2.533 8.0217-1.5957 11.788l28.548 11.641c-5.9765-8.5447-7.7864-19.589-6.3747-32.567z"
sodipodi:nodetypes="ccccc"
style="opacity:.46502;fill:#949389"
inkscape:connector-curvature="0"
/>
</g
>
</g
>
<metadata
>
<rdf:RDF
>
<cc:Work
>
<dc:format
>image/svg+xml</dc:format
>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage"
/>
<cc:license
rdf:resource="http://creativecommons.org/licenses/publicdomain/"
/>
<dc:publisher
>
<cc:Agent
rdf:about="http://openclipart.org/"
>
<dc:title
>Openclipart</dc:title
>
</cc:Agent
>
</dc:publisher
>
</cc:Work
>
<cc:License
rdf:about="http://creativecommons.org/licenses/publicdomain/"
>
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction"
/>
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution"
/>
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks"
/>
</cc:License
>
</rdf:RDF
>
</metadata
>
</svg
>

After

Width:  |  Height:  |  Size: 6.8 KiB

@ -0,0 +1,15 @@
//
// SystemIcons.swift
// DouShouQi_App
//
// Created by Rémi REGNAULT on 28/05/2024.
//
import Foundation
public struct SystemIcons {
static let DarkTheme = "moon"
static let LightTheme = "sun.max"
static let SoundOn = "speaker.2"
static let SoundOff = "speaker.slash"
}

@ -6,3 +6,9 @@
//
import Foundation
import SwiftUI
public struct AppMusic {
static let ScreenTitleMusic = "ScreenTitleMusique"
}

@ -0,0 +1,12 @@
//
// Fonts.swift
// DouShouQi_App
//
// Created by Rémi REGNAULT on 27/05/2024.
//
import Foundation
public struct Fonts {
static let title = "samurai"
}

@ -8,14 +8,14 @@
import Foundation
import SwiftUI
protocol TextStyle: ViewModifier {}
protocol TextStyles: ViewModifier {}
extension Text {
func textStyle(T: any TextStyle) {
modifier(T)
func textStyle<T: TextStyles>(_ style: T) -> some View {
modifier(style)
}
}
struct TextStyles {
static let ViewTitle = ViewTitleTextStyle()
struct CustomTextStyles {
static let Title = ViewTitleTextStyle()
}

@ -8,10 +8,11 @@
import Foundation
import SwiftUI
struct ViewTitleTextStyle: TextStyle {
struct ViewTitleTextStyle: TextStyles {
func body(content: Content) -> some View {
content
.foregroundColor(Colors.TitleText)
.fontWeight(.bold)
.font(.custom(Fonts.title, size: 30))
}
}

@ -7,16 +7,25 @@
import SwiftUI
struct MainMenuButton: View {
struct MainMenuButton<Destination: View>: View {
// Text Params
var text: String
@State private var isHovered: Bool = false
var destination: Destination
var sound: String
// Button Alignment
var horizontalAlignment: Alignment = .center
// Button corner radius
var topLeftCorner: CGFloat = 0
var topRightCorner: CGFloat = 0
var bottomLeftCorner: CGFloat = 0
var bottomRightCorner: CGFloat = 0
var body: some View {
Button(action: {
// Action du bouton
}, label: {
NavigationLink(destination: destination) {
Text(text.uppercased())
.font(.headline)
.fontWeight(.semibold)
@ -24,18 +33,16 @@ struct MainMenuButton: View {
.padding()
.frame(maxWidth: .infinity, maxHeight: 40)
.background(
Colors.Button
Color.red
.clipShape(RoundedRectangle(cornerSize: CGSize(width: 0, height: 0)))
.mask(RoundedCornersShape(cornerRadii: (topLeft: 0, topRight: 10, bottomLeft: 0, bottomRight: 10)))
.mask(RoundedCornersShape(cornerRadii: (topLeft: topLeftCorner, topRight: topRightCorner, bottomLeft: bottomLeftCorner, bottomRight: bottomRightCorner)))
)
}
.simultaneousGesture(TapGesture().onEnded {
playSound(named: sound)
})
.frame(width: UIScreen.main.bounds.width / 1.7)
.frame(maxWidth: .infinity, alignment: .leading)
.scaleEffect(isHovered ? 1.1 : 1.0)
.animation(.easeInOut(duration: 0.2), value: isHovered)
.onHover { hovering in
self.isHovered = hovering
}
.frame(maxWidth: .infinity, alignment: horizontalAlignment)
}
}
@ -85,6 +92,6 @@ struct RoundedCornersShape: Shape {
struct MainMenuButton_Previews: PreviewProvider {
static var previews: some View {
MainMenuButton(text: "test")
MainMenuButton(text: "test", destination: HistoricView(), sound: "TitleScreenButtonSound", horizontalAlignment: .leading, topRightCorner: 10, bottomRightCorner: 10)
}
}

@ -0,0 +1,150 @@
//
// AddPlayerView.swift
// DouShouQi_App
//
// Created by étudiant on 28/05/2024.
//
import SwiftUI
import UIKit
struct AddPlayerView: View {
@Binding var isPresented: Bool
@Binding var players: [Player]
@State private var playerName: String = ""
@State private var showAlert = false
@State private var showImagePicker = false
@State private var profileImage: UIImage? = nil
@State private var profileImagePath: String = ""
@State private var imagePickerSourceType: UIImagePickerController.SourceType = .photoLibrary
@State private var showActionSheet = false
var body: some View {
VStack(spacing: 20) {
Text("Add New Player")
.font(.headline)
TextField("Player Name", text: $playerName)
.padding()
.background(Color(.systemGray6))
.cornerRadius(10)
if let profileImage = profileImage {
Image(uiImage: profileImage)
.resizable()
.frame(width: 100, height: 100)
.clipShape(Circle())
} else {
Button(action: {
showActionSheet = true
}) {
Text("Select Profile Photo")
.foregroundColor(.white)
.padding()
.background(Color.blue)
.cornerRadius(10)
}
}
HStack {
Button(action: {
if players.contains(where: { $0.name.lowercased() == playerName.lowercased() }) {
showAlert = true
} else {
if let image = profileImage, let imageData = image.jpegData(compressionQuality: 0.8) {
let filename = UUID().uuidString + ".jpg"
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
let documentsDirectory = paths[0]
let fileURL = documentsDirectory.appendingPathComponent(filename)
try? imageData.write(to: fileURL)
profileImagePath = fileURL.path
}
let newPlayer = Player(name: playerName, wins: 0, losses: 0, photo: profileImagePath)
players.append(newPlayer)
isPresented = false
}
}) {
Text("Add")
.foregroundColor(.white)
.padding()
.background(Color.blue)
.cornerRadius(10)
}
Button(action: {
isPresented = false
}) {
Text("Cancel")
.foregroundColor(.white)
.padding()
.background(Color.red)
.cornerRadius(10)
}
}
}
.padding()
.frame(maxWidth: 300)
.background(Color.white)
.cornerRadius(20)
.shadow(radius: 10)
.alert(isPresented: $showAlert) {
Alert(title: Text("Error"), message: Text("Player already exists."), dismissButton: .default(Text("OK")))
}
.actionSheet(isPresented: $showActionSheet) {
ActionSheet(title: Text("Select Photo"), message: Text("Choose a photo from the library or take a new one."), buttons: [
.default(Text("Photo Library")) {
imagePickerSourceType = .photoLibrary
showImagePicker = true
},
.default(Text("Camera")) {
imagePickerSourceType = .camera
showImagePicker = true
},
.cancel()
])
}
.sheet(isPresented: $showImagePicker) {
ImagePicker(image: $profileImage, sourceType: imagePickerSourceType)
}
}
}
struct ImagePicker: UIViewControllerRepresentable {
@Binding var image: UIImage?
var sourceType: UIImagePickerController.SourceType
class Coordinator: NSObject, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
var parent: ImagePicker
init(parent: ImagePicker) {
self.parent = parent
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let uiImage = info[.originalImage] as? UIImage {
parent.image = uiImage
}
parent.presentationMode.wrappedValue.dismiss()
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
parent.presentationMode.wrappedValue.dismiss()
}
}
func makeCoordinator() -> Coordinator {
Coordinator(parent: self)
}
@Environment(\.presentationMode) var presentationMode
func makeUIViewController(context: Context) -> UIImagePickerController {
let picker = UIImagePickerController()
picker.delegate = context.coordinator
picker.sourceType = sourceType
return picker
}
func updateUIViewController(_ uiViewController: UIImagePickerController, context: Context) {}
}

@ -0,0 +1,57 @@
//
// PlayerRow.swift
// DouShouQi_App
//
// Created by étudiant on 26/05/2024.
//
import Foundation
import SwiftUI
struct PlayerRow: View {
var player: Player
@Binding var players: [Player]
var body: some View {
HStack {
if let image = UIImage(contentsOfFile: player.photo) {
Image(uiImage: image)
.resizable()
.frame(width: 50, height: 50)
.clipShape(Circle())
} else {
Image(systemName: "person.circle.fill")
.resizable()
.frame(width: 50, height: 50)
.clipShape(Circle())
.foregroundColor(.gray)
}
VStack(alignment: .leading) {
Text(player.name)
.font(.headline)
Text("Victoires : \(player.wins) Défaites : \(player.losses)")
.font(.subheadline)
}
Spacer()
Button(action: {
// Action pour éditer le joueur
}) {
Image(systemName: "pencil")
.foregroundColor(.black)
}
Button(action: {
}) {
Image(systemName: "trash")
.foregroundColor(.red)
}
}
.padding()
.background(Color.white)
.cornerRadius(10)
.shadow(radius: 1)
}
}

@ -0,0 +1,56 @@
//
// CustomSwitchButton.swift
// DouShouQi_App
//
// Created by etudiant on 27/05/2024.
//
import SwiftUI
struct CustomSwitchButton: View {
// Boolean
@Binding var IsOn: Bool
// Image when Off
var imgSystemNameIsOff: String
var imgIsOffWidth: CGFloat = 25
var imgIsOffHeight: CGFloat = 25
// Image when Off
var imgSystemNameIsOn: String
var imgIsOnWidth: CGFloat = 25
var imgIsOnHeight: CGFloat = 25
var body: some View {
HStack {
VStack {
if (!IsOn) {
Image(systemName: imgSystemNameIsOff)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: imgIsOffWidth, height: imgIsOffHeight)
}
}.frame(width: imgIsOffWidth, height: imgIsOffHeight)
Toggle("isOn", isOn: $IsOn)
.labelsHidden()
VStack {
if (IsOn) {
Image(systemName: imgSystemNameIsOn)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: imgIsOnWidth, height: imgIsOnHeight)
}
}.frame(width: imgIsOffWidth, height: imgIsOffHeight)
}
}
}
//struct CustomSwitchButton_Previews: PreviewProvider {
// static var previews: some View {
// @State var isOn: Bool = false
// CustomSwitchButton(IsOn: $isOn, imgNameIsOff: AppImages.TitleImage, imgNameIsOn: AppImages.TitleImage)
// }
//}

@ -0,0 +1,39 @@
//
// TitlePageFrame.swift
// DouShouQi_App
//
// Created by Rémi REGNAULT on 16/05/2024.
//
import SwiftUI
struct TitlePageFrame: View {
// Text Params
var Text: String
// Image Params
var ImageWidth: CGFloat = 200
var ImageHeight: CGFloat = 200
var body: some View {
VStack(alignment: .leading) {
ZStack {
Image(AppImages.TitleImage)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: ImageWidth, height: ImageHeight)
SwiftUI.Text(self.Text)
.textStyle(CustomTextStyles.Title)
}
}
}
}
struct TitlePageFrame_Previews: PreviewProvider {
static var previews: some View {
TitlePageFrame(Text: "DouShouQi")
}
}

@ -7,11 +7,12 @@
import SwiftUI
@main
struct DouShouQi_AppApp: App {
var body: some Scene {
WindowGroup {
ContentView()
MainMenuView()
}
}
}

@ -1,8 +0,0 @@
//
// MusicPlayer.swift
// DouShouQi_App
//
// Created by étudiant on 26/05/2024.
//
import Foundation

@ -1,98 +0,0 @@
//
// SwiftUIView.swift
// DouShouQi_App
//
// Created by étudiant on 22/05/2024.
//
import SwiftUI
struct SwiftUIView: View {
var body: some View {
VStack {
TitlePageFrame(Text: "DOU SHOU QI", ImageWidth: 200, ImageHeight: 200)
Spacer()
VStack {
HStack{
VStack {
Button(action: {
// Action du bouton
}, label: {
Text("Play".uppercased())
.font(.headline)
.fontWeight(.semibold)
.foregroundColor(.white)
.frame(maxWidth: .infinity, maxHeight: 50)
.background(
Color.red
)
.cornerRadius(0)
})
.frame(width: UIScreen.main.bounds.width / 1.7)
.frame(maxWidth: .infinity, alignment: .leading)
Button(action: {
// Action du bouton
}, label: {
Text("Historique".uppercased())
.font(.headline)
.fontWeight(.semibold)
.foregroundColor(.white)
.frame(maxWidth: .infinity, maxHeight: 50)
.background(
Color.red
)
.cornerRadius(0)
})
.frame(width: UIScreen.main.bounds.width / 1.7)
.frame(maxWidth: .infinity, alignment: .leading)
Button(action: {
// Action du bouton
}, label: {
Text("Best scores".uppercased())
.font(.headline)
.fontWeight(.semibold)
.foregroundColor(.white)
.frame(maxWidth: .infinity, maxHeight: 50)
.background(
Color.red
)
.cornerRadius(0)
})
.frame(width: UIScreen.main.bounds.width / 1.7)
.frame(maxWidth: .infinity, alignment: .leading)
Button(action: {
// Action du bouton
}, label: {
Text("Players".uppercased())
.font(.headline)
.fontWeight(.semibold)
.foregroundColor(.white)
.frame(maxWidth: .infinity, maxHeight: 50)
.background(
Color.red
)
.cornerRadius(0)
})
.frame(width: UIScreen.main.bounds.width / 1.7)
.frame(maxWidth: .infinity, alignment: .leading)
}
.padding()
}
}
.padding(.horizontal, 10)
Spacer()
}
}
}
struct SwiftUIView_Previews: PreviewProvider {
static var previews: some View {
SwiftUIView()
}
}

@ -0,0 +1,84 @@
//
// MainMenuView.swift
// DouShouQi_App
//
// Created by Rémi REGNAULT on 16/05/2024.
//
import SwiftUI
struct MainMenuView: View {
@State private var showSplash = true
var body: some View {
NavigationView {
VStack {
if showSplash {
SplashScreenView()
.transition(.opacity)
.animation(.easeOut(duration: 3), value: showSplash)
.onAppear {
DispatchQueue.main.asyncAfter(deadline: .now() + 8) {
withAnimation {
showSplash = false
}
}
}
} else {
TitlePageFrame(Text: "DOU SHOU QI", ImageWidth: 200, ImageHeight: 200)
Spacer()
VStack {
HStack {
VStack(spacing: 25) {
MainMenuButton(text: "Play", destination: ScoreBoardView(), sound: "TitleScreenButtonSound", topRightCorner: 10, bottomRightCorner: 10)
MainMenuButton(text: "Historique", destination: HistoricView(), sound: "TitleScreenButtonSound", topRightCorner: 10, bottomRightCorner: 10)
MainMenuButton(text: "Best Scores", destination: ScoreBoardView(), sound: "TitleScreenButtonSound", topRightCorner: 10, bottomRightCorner: 10)
MainMenuButton(text: "Players", destination: PlayersView(), sound: "TitleScreenButtonSound", topRightCorner: 10, bottomRightCorner: 10)
MainMenuButton(text: "Settings", destination: SettingsView(), sound: "TitleScreenButtonSound", topRightCorner: 10, bottomRightCorner: 10)
}
Image(AppImages.SemiLion)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 200, height: 500)
}
}
Spacer()
HStack {
Text("Copyright @")
.font(.headline)
.frame(alignment: .trailing)
Text("Dou Shou Qi Team")
Spacer()
Text("2024")
.frame(alignment: .trailing)
}
.padding()
.background(Color.white)
.overlay(
Rectangle()
.stroke(Color.black, lineWidth: 1)
)
Spacer()
.onAppear {
MusicPlayer.shared.playBackgroundMusic(music: "TitleScreenMusic")
}
.onDisappear {
MusicPlayer.shared.stopBackgroundMusic()
}
}
}
}
}
}
struct MainMenuView_Previews: PreviewProvider {
static var previews: some View {
MainMenuView()
}
}

@ -0,0 +1,76 @@
//
// SettingsView.swift
// DouShouQi_App
//
// Created by etudiant on 27/05/2024.
//
import SwiftUI
extension String : Identifiable {
public var id: Self { return self }
}
struct SettingsView: View {
@State private var theme = false
@State private var choice = "English"
@State private var sound = true
var body: some View {
VStack {
TitlePageFrame(Text: "Settings")
VStack {
Divider()
HStack {
Text("Theme")
.font(.headline)
Spacer()
CustomSwitchButton(IsOn: $theme, imgSystemNameIsOff: SystemIcons.LightTheme, imgSystemNameIsOn: SystemIcons.DarkTheme)
}
Divider()
HStack {
Text("Language")
.font(.headline)
Spacer()
Picker("Sort", selection: $choice) {
ForEach(["English", "Français", "Español"]) {
Text($0)
}
}
.pickerStyle(.menu)
}
Divider()
HStack {
Text("Theme")
.font(.headline)
Spacer()
CustomSwitchButton(IsOn: $sound, imgSystemNameIsOff: SystemIcons.SoundOff, imgSystemNameIsOn: SystemIcons.SoundOn)
}
Divider()
}
.padding(20)
Spacer()
}
}
}
struct SettingsView_Previews: PreviewProvider {
static var previews: some View {
SettingsView()
}
}

@ -0,0 +1,23 @@
//
// SplashScreenView.swift
// DouShouQi_App
//
// Created by étudiant on 27/05/2024.
//
import SwiftUI
struct SplashScreenView: View {
var body: some View {
TitlePageFrame(Text: "DOU SHOU QI", ImageWidth: 200, ImageHeight: 200)
.onAppear {
playSound(named: "SplashScreenSound")
}
}
}
struct SplashScreenView_Previews: PreviewProvider {
static var previews: some View {
SplashScreenView()
}
}

@ -0,0 +1,124 @@
//
// PlayersView.swift
// DouShouQi_App
//
// Created by étudiant on 26/05/2024.
//
import Foundation
import SwiftUI
// Modèle de données pour un joueur
struct Player: Identifiable {
var id = UUID()
var name: String
var wins: Int
var losses: Int
var photo: String
}
// Exemple de vue pour l'interface utilisateur des joueurs
struct PlayersView: View {
// Liste de joueurs pour l'exemple
@State private var players = [
Player(name: "Rayhan", wins: 7, losses: 6, photo: "shrek"),
Player(name: "Remi", wins: 7, losses: 2, photo: "shrek"),
Player(name: "Nathan", wins: 14, losses: 5, photo: "shrek")
]
@State private var searchText = ""
@State private var showingPopup = false
@State private var newPlayerName = ""
var filteredPlayers: [Player] {
if searchText.isEmpty {
return players
} else {
return players.filter { $0.name.lowercased().contains(searchText.lowercased()) }
}
}
var body: some View {
NavigationView {
VStack {
TitlePageFrame(Text: "PLAYERS", ImageWidth: 200, ImageHeight: 200)
SearchBar(text: $searchText)
.padding(.horizontal)
List {
ForEach(groupedPlayers.keys.sorted(), id: \.self) { key in
Section(header: Text(key)) {
ForEach(groupedPlayers[key]!) { player in
PlayerRow(player: player, players: $players)
}
}
}
}
Button(action: {
showingPopup = true
}) {
Text("Add a player")
.font(.headline)
.foregroundColor(.white)
.padding()
.frame(maxWidth: .infinity)
.background(Color.red)
.cornerRadius(10)
.padding(.horizontal)
}
.padding(.bottom)
.sheet(isPresented: $showingPopup) {
AddPlayerView(isPresented: $showingPopup, players: $players)
}
}
}
}
var groupedPlayers: [String: [Player]] {
Dictionary(grouping: filteredPlayers) { player in
String(player.name.prefix(1)).uppercased()
}
}
}
// Vue pour la barre de recherche
struct SearchBar: UIViewRepresentable {
@Binding var text: String
class Coordinator: NSObject, UISearchBarDelegate {
@Binding var text: String
init(text: Binding<String>) {
_text = text
}
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
text = searchText
}
}
func makeCoordinator() -> Coordinator {
return Coordinator(text: $text)
}
func makeUIView(context: Context) -> UISearchBar {
let searchBar = UISearchBar(frame: .zero)
searchBar.delegate = context.coordinator
return searchBar
}
func updateUIView(_ uiView: UISearchBar, context: Context) {
uiView.text = text
}
}
struct PlayersPageView_Previews: PreviewProvider {
static var previews: some View {
PlayersView()
}
}
Loading…
Cancel
Save