diff --git a/contracts/libraries/svgs/Profile/Body.sol b/contracts/libraries/svgs/Profile/Body.sol index 8908b9d..1c93244 100644 --- a/contracts/libraries/svgs/Profile/Body.sol +++ b/contracts/libraries/svgs/Profile/Body.sol @@ -7,6 +7,7 @@ import {BodyJacket} from './Body/BodyJacket.sol'; import {BodyHoodie} from './Body/BodyHoodie.sol'; import {BodyTanktop} from './Body/BodyTanktop.sol'; import {BodyTShirt} from './Body/BodyTShirt.sol'; +import {BodyShibyua} from './Body/BodyShibyua.sol'; import {LensColors} from './LensColors.sol'; @@ -15,7 +16,8 @@ library Body { HOODIE, JACKET, TANKTOP, - TSHIRT + TSHIRT, + SHIBYUA } enum BodyColors { @@ -53,6 +55,8 @@ library Body { return BodyTanktop.getBody(handsVariant); } else if (bodyVariant == BodyVariants.TSHIRT) { return BodyTShirt.getBody(handsVariant); + } else if (bodyVariant == BodyVariants.SHIBYUA) { + return BodyShibyua.getBody(handsVariant); } else { revert(); // Avoid warnings. } @@ -68,7 +72,7 @@ library Body { '' @@ -83,6 +87,8 @@ library Body { } else if (bodyColor == BodyColors.DARK) { if (bodyVariant == BodyVariants.JACKET) { return LensColors.lightGray; + } else if (bodyVariant == BodyVariants.SHIBYUA) { + return LensColors.gray; } else { return LensColors.dark; } @@ -98,11 +104,15 @@ library Body { } // We don't need variant because this is only used in Jacket - function getSecondaryBodyColor(BodyColors bodyColor) public pure returns (string memory) { + function getSecondaryBodyColor(BodyVariants bodyVariant, BodyColors bodyColor) public pure returns (string memory) { if (bodyColor == BodyColors.GREEN) { return LensColors.darkGreen; } else if (bodyColor == BodyColors.LIGHT) { - return LensColors.lightGray; + if (bodyVariant == BodyVariants.SHIBYUA) { + return LensColors.gray; + } else { + return LensColors.lightGray; + } } else if (bodyColor == BodyColors.DARK) { return LensColors.dark; } else if (bodyColor == BodyColors.PINK) { diff --git a/contracts/libraries/svgs/Profile/Body/BodyShibyua.sol b/contracts/libraries/svgs/Profile/Body/BodyShibyua.sol new file mode 100644 index 0000000..cc93745 --- /dev/null +++ b/contracts/libraries/svgs/Profile/Body/BodyShibyua.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {Hands} from '../Hands.sol'; + +library BodyShibyua { + function getBody(Hands.HandsVariants handsVariant) public pure returns (string memory) { + if (handsVariant == Hands.HandsVariants.HANDSDOWN) { + return + ''; + } else if (handsVariant == Hands.HandsVariants.PEACEDOUBLE) { + return + ''; + } else if (handsVariant == Hands.HandsVariants.PEACESINGLE) { + return + ''; + } else { + revert(); // Avoid warnings. + } + } +} diff --git a/contracts/libraries/svgs/Profile/Hands.sol b/contracts/libraries/svgs/Profile/Hands.sol index ee7de90..4e1a776 100644 --- a/contracts/libraries/svgs/Profile/Hands.sol +++ b/contracts/libraries/svgs/Profile/Hands.sol @@ -52,7 +52,7 @@ library Hands { } function _getRightHand(Body.BodyVariants bodyVariant) internal pure returns (string memory) { - if (bodyVariant == Body.BodyVariants.HOODIE) { + if (bodyVariant == Body.BodyVariants.HOODIE || bodyVariant == Body.BodyVariants.SHIBYUA) { return ''; } else if (bodyVariant == Body.BodyVariants.JACKET) { @@ -70,7 +70,7 @@ library Hands { } function _getLeftHand(Body.BodyVariants bodyVariant) internal pure returns (string memory) { - if (bodyVariant == Body.BodyVariants.HOODIE) { + if (bodyVariant == Body.BodyVariants.HOODIE || bodyVariant == Body.BodyVariants.SHIBYUA) { return ''; } else if (bodyVariant == Body.BodyVariants.JACKET) { @@ -102,6 +102,7 @@ library Hands { ); } + // Arm or sleeve color (depends on which clothing on body) function _getArmColor( HandsColors handsColor, Body.BodyVariants bodyVariant, @@ -114,7 +115,9 @@ library Hands { } else if (bodyVariant == Body.BodyVariants.TANKTOP) { return Skin.getSkinColor(Skin.SkinColors(uint8(handsColor))); } else if (bodyVariant == Body.BodyVariants.JACKET) { - return Body.getSecondaryBodyColor(bodyColor); + return Body.getSecondaryBodyColor(bodyVariant, bodyColor); + } else if (bodyVariant == Body.BodyVariants.SHIBYUA) { + return Body.getSecondaryBodyColor(bodyVariant, bodyColor); } else { revert(); // Avoid warnings. } diff --git a/contracts/libraries/svgs/Profile/Logo.sol b/contracts/libraries/svgs/Profile/Logo.sol index f2623db..f3a1f78 100644 --- a/contracts/libraries/svgs/Profile/Logo.sol +++ b/contracts/libraries/svgs/Profile/Logo.sol @@ -45,6 +45,8 @@ library Logo { return getLogoTshirtTanktop(logoVariant, logoColor); } else if (bodyVariant == Body.BodyVariants.JACKET) { return getLogoJacket(logoVariant, logoColor); + } else if (bodyVariant == Body.BodyVariants.SHIBYUA) { + return ''; // No logo for Shibyua } else { revert(); // Avoid warnings. } diff --git a/contracts/libraries/svgs/Profile/ProfileSVG.sol b/contracts/libraries/svgs/Profile/ProfileSVG.sol index 2b3f6a3..f17ebb3 100644 --- a/contracts/libraries/svgs/Profile/ProfileSVG.sol +++ b/contracts/libraries/svgs/Profile/ProfileSVG.sol @@ -81,12 +81,16 @@ library ProfileSVG { string memory stringBackgroundColor; if (backgroundColor == Background.BackgroundColors.GREEN) { stringBackgroundColor = 'Green'; + } else if (backgroundColor == Background.BackgroundColors.PINK) { + stringBackgroundColor = 'Pink'; } else if (backgroundColor == Background.BackgroundColors.PURPLE) { stringBackgroundColor = 'Purple'; } else if (backgroundColor == Background.BackgroundColors.BLUE) { stringBackgroundColor = 'Blue'; } else if (backgroundColor == Background.BackgroundColors.GOLD) { stringBackgroundColor = 'Gold'; + } else { + revert(); } return string.concat('{"trait_type":"Background","value":"', stringBackgroundColor, '"},'); } @@ -95,12 +99,16 @@ library ProfileSVG { string memory stringSkinColor; if (skinColor == Skin.SkinColors.GREEN) { stringSkinColor = 'Green'; + } else if (skinColor == Skin.SkinColors.PINK) { + stringSkinColor = 'Pink'; } else if (skinColor == Skin.SkinColors.PURPLE) { stringSkinColor = 'Purple'; } else if (skinColor == Skin.SkinColors.BLUE) { stringSkinColor = 'Blue'; } else if (skinColor == Skin.SkinColors.GOLD) { stringSkinColor = 'Gold'; + } else { + revert(); } return string.concat('{"trait_type":"Skin","value":"', stringSkinColor, '"},'); } @@ -113,6 +121,14 @@ library ProfileSVG { stringLegColor = 'Dark'; } else if (legColor == Legs.LegColors.LIGHT) { stringLegColor = 'Light'; + } else if (legColor == Legs.LegColors.PURPLE) { + stringLegColor = 'Purple'; + } else if (legColor == Legs.LegColors.BLUE) { + stringLegColor = 'Blue'; + } else if (legColor == Legs.LegColors.PINK) { + stringLegColor = 'Pink'; + } else { + revert(); } return string.concat('{"trait_type":"Legs","value":"', stringLegColor, '"},'); } @@ -125,6 +141,14 @@ library ProfileSVG { stringShoeColor = 'Dark'; } else if (shoeColor == Shoes.ShoeColors.LIGHT) { stringShoeColor = 'Light'; + } else if (shoeColor == Shoes.ShoeColors.PURPLE) { + stringShoeColor = 'Purple'; + } else if (shoeColor == Shoes.ShoeColors.BLUE) { + stringShoeColor = 'Blue'; + } else if (shoeColor == Shoes.ShoeColors.PINK) { + stringShoeColor = 'Pink'; + } else { + revert(); } return string.concat('{"trait_type":"Shoes","value":"', stringShoeColor, '"},'); } @@ -137,6 +161,8 @@ library ProfileSVG { stringHandsVariant = 'Double Peace'; } else if (handsVariant == Hands.HandsVariants.PEACESINGLE) { stringHandsVariant = 'Peace'; + } else { + revert(); } return string.concat('{"trait_type":"Hands","value":"', stringHandsVariant, '"},'); } @@ -151,6 +177,10 @@ library ProfileSVG { stringBodyVariant = 'Tanktop'; } else if (bodyVariant == Body.BodyVariants.TSHIRT) { stringBodyVariant = 'Tshirt'; + } else if (bodyVariant == Body.BodyVariants.SHIBYUA) { + stringBodyVariant = 'Shibyua'; + } else { + revert(); } return string.concat('{"trait_type":"Body","value":"', stringBodyVariant, '"},'); } @@ -167,6 +197,10 @@ library ProfileSVG { stringBodyColor = 'Purple'; } else if (bodyColor == Body.BodyColors.BLUE) { stringBodyColor = 'Blue'; + } else if (bodyColor == Body.BodyColors.PINK) { + stringBodyColor = 'Pink'; + } else { + revert(); } return string.concat('{"trait_type":"Body Color","value":"', stringBodyColor, '"},'); } @@ -181,6 +215,8 @@ library ProfileSVG { stringLogoVariant = 'Lens'; } else if (logoVariant == Logo.LogoVariants.PEACE) { stringLogoVariant = 'Peace'; + } else { + revert(); } return string.concat('{"trait_type":"Logo","value":"', stringLogoVariant, '"},'); } @@ -189,6 +225,8 @@ library ProfileSVG { string memory stringLogoColor; if (logoColor == Logo.LogoColors.GREEN) { stringLogoColor = 'Green'; + } else if (logoColor == Logo.LogoColors.PINK) { + stringLogoColor = 'Pink'; } else if (logoColor == Logo.LogoColors.PURPLE) { stringLogoColor = 'Purple'; } else if (logoColor == Logo.LogoColors.BLUE) { @@ -197,6 +235,8 @@ library ProfileSVG { stringLogoColor = 'Light'; } else if (logoColor == Logo.LogoColors.DARK) { stringLogoColor = 'Dark'; + } else { + revert(); } return string.concat('{"trait_type":"Logo Color","value":"', stringLogoColor, '"},'); } @@ -231,6 +271,8 @@ library ProfileSVG { stringFaceVariant = 'Wow Tongue'; } else if (faceVariant == Face.FaceVariants.WOW) { stringFaceVariant = 'Wow'; + } else { + revert(); } return string.concat('{"trait_type":"Face","value":"', stringFaceVariant, '"}'); } @@ -261,6 +303,8 @@ library ProfileSVG { stringHeadwearVariant = 'Partyhat'; } else if (headwearVariant == Headwear.HeadwearVariants.ICECREAM) { stringHeadwearVariant = 'Icecream'; + } else { + revert(); } return string.concat(',{"trait_type":"Headwear","value":"', stringHeadwearVariant, '"}'); } @@ -279,8 +323,12 @@ library ProfileSVG { stringHeadwearColor = 'Purple'; } else if (headwearColor == Headwear.HeadwearColors.BLUE) { stringHeadwearColor = 'Blue'; + } else if (headwearColor == Headwear.HeadwearColors.PINK) { + stringHeadwearColor = 'Pink'; } else if (headwearColor == Headwear.HeadwearColors.GOLD) { stringHeadwearColor = 'Gold'; + } else { + revert(); } return string.concat(',{"trait_type":"Headwear Color","value":"', stringHeadwearColor, '"}'); }