From 509b2e4522d0d7d80a1a0a9b73a8a3b7f7d46337 Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Wed, 25 Sep 2019 11:32:06 -0500 Subject: [PATCH 1/6] WIP(kickstarter): test setup for 2019 KS backer gear --- website/client/assets/css/sprites.css | 48 ++++++++++++++++++ .../BackerOnly-Equip-MythicGryphonArmor.gif | Bin 0 -> 9838 bytes .../BackerOnly-Equip-MythicGryphonGlaive.gif | Bin 0 -> 9276 bytes .../BackerOnly-Equip-MythicGryphonHelm.gif | Bin 0 -> 5690 bytes .../BackerOnly-Equip-MythicGryphonShield.gif | Bin 0 -> 2861 bytes .../BackerOnly-Equip-MythicGryphonVisor.gif | Bin 0 -> 992 bytes .../BackerOnly-Mount-Body-Gryphatrice.gif | Bin 0 -> 22991 bytes .../BackerOnly-Mount-Head-Gryphatrice.gif | Bin 0 -> 29923 bytes .../images/BackerOnly-Pet-Gryphatrice.gif | Bin 0 -> 17780 bytes website/common/locales/en/pets.json | 1 + .../script/content/gear/sets/special/index.js | 25 +++++++++ website/common/script/content/stable.js | 2 + 12 files changed, 76 insertions(+) create mode 100644 website/client/assets/images/BackerOnly-Equip-MythicGryphonArmor.gif create mode 100644 website/client/assets/images/BackerOnly-Equip-MythicGryphonGlaive.gif create mode 100644 website/client/assets/images/BackerOnly-Equip-MythicGryphonHelm.gif create mode 100644 website/client/assets/images/BackerOnly-Equip-MythicGryphonShield.gif create mode 100644 website/client/assets/images/BackerOnly-Equip-MythicGryphonVisor.gif create mode 100644 website/client/assets/images/BackerOnly-Mount-Body-Gryphatrice.gif create mode 100644 website/client/assets/images/BackerOnly-Mount-Head-Gryphatrice.gif create mode 100644 website/client/assets/images/BackerOnly-Pet-Gryphatrice.gif diff --git a/website/client/assets/css/sprites.css b/website/client/assets/css/sprites.css index 53fe4464fc..7f6fd49ac3 100755 --- a/website/client/assets/css/sprites.css +++ b/website/client/assets/css/sprites.css @@ -96,6 +96,54 @@ background: url("~assets/images/BackerOnly-Pet-CerberusPup.gif") no-repeat; } +.broad_armor_special_ks2019, .slim_armor_special_ks2019 { + background: url("~assets/images/BackerOnly-Equip-MythicGryphonArmor.gif") no-repeat; + width: 117px; + height: 120px; +} + +.eyewear_special_ks2019 { + background: url("~assets/images/BackerOnly-Equip-ShadeArmor.gif") no-repeat; + width: 117px; + height: 120px; +} + +.head_special_ks2019 { + background: url("~assets/images/BackerOnly-Equip-MythicGryphonHelm.gif") no-repeat; + width: 117px; + height: 120px; +} + +.shield_special_ks2019 { + background: url("~assets/images/BackerOnly-Equip-MythicGryphonShield.gif") no-repeat; + width: 117px; + height: 120px; +} + +.weapon_special_ks2019 { + background: url("~assets/images/BackerOnly-Equip-MythicGryphonGlaive.gif") no-repeat; + width: 120px; + height: 120px; +} + +.Pet-Gryphon-Gryphatrice { + background: url("~assets/images/BackerOnly-Pet-Gryphatrice.gif") no-repeat; + width: 81px; + height: 99px; +} + +.Mount_Head_Gryphon-Gryphatrice { + background: url("~assets/images/BackerOnly-Mount-Head-Gryphatrice.gif") no-repeat; + width: 135px; + height: 135px; +} + +.Mount_Body_Gryphon-Gryphatrice { + background: url("~assets/images/BackerOnly-Mount-Body-Gryphatrice.gif") no-repeat; + width: 135px; + height: 135px; +} + /* FIXME figure out how to handle customize menu!! .customize-menu .f_head_0 { width: 60px; diff --git a/website/client/assets/images/BackerOnly-Equip-MythicGryphonArmor.gif b/website/client/assets/images/BackerOnly-Equip-MythicGryphonArmor.gif new file mode 100644 index 0000000000000000000000000000000000000000..4b647759cf543ef7801297812309c72e3ab65958 GIT binary patch literal 9838 zcmeI2c{J4j{>P1F%-BuSphXB7BoPtSAVNY@vXwpA!q>NCXBPXu4`Ue&4avSn8EYa- zsO$!Vv4l!BskrmKo%=oC<=%U`_xC%$bAR_V=ggVUnfaXg>+yKMUeDL-b6!tJ<)rN$ zCLgA|OiZG?oQB$0E^BERYb(gfvjCVFUwvW)Z!s=p8P`m|+=gX*o;h!GO(ik)H8GXd9(<~nup2~B!s z;q}}m_4#L*`+@s+mdv*7pY&Wuc-VQvaS;j6(b21dPR(~N9LC%c5Ky-`c?qDX0D%_6DqnlN#u02h*M@o~rA@-{A^7bxS@Ff1Hkt)3>%vO%4VeVz`JYu1cvg~33bbZn7PriH3?4rc%K@-oH zt)R!eWo2U%rXAJ*R4cb!0IuBb(KO%ZP)^@`8~h%4G$J4)wmE?hS-yIu%HiIfVo|K@ z>&30k(ffdU$x^WQ%9zpos8vYQfz_$<-cF#qU|ch3(B7YGtoX8Se5F0-?R9QH*5!T0 zrUIVV?LUl6%&5ob_-%K-p&qk4n>*bn2d1ZoH~YL_*_kMwJ)(iUHJLu+vHSkx2qn0K zE#eT$O;8FI^chZL!c>AmvjTi8SCa0M3Sk#ypi z=w=(#eDq+b)O?JRrl)RiizTaN5)6TUkqXL?Kvt0HD3d1R{k>9os~`H+D?5dK->=r6q;j_zraQB*4)3dVi1>8M;C(Pef`IaRdn8=OG>@@UtZ0?+PHx4IyW)uKXgFpDbyp)-D#9U%?((d4Q|9B5e0FgpoH)AgQjVLB@h6*e1|UupIR%a` zV#-!IzD!+KbR0}i4C)v6-C87ODQ85{Kh@|KyFl9fyz+l`h8WpOTv_d*-mj{$cTJn} zgXsGDH9TnspI2y0yEz9Jk_|z7D zL8DYf*8WD8noKm8#fd#9p>{J5iri*3$35D+iUvKvZe!S=CWIrJ%GXC9MSm%h$A8#l z?;Kt?>=$cna!YRwlh7*i9d}z5cIG!~+lFm+RV}5FPse<$pw%WGvfb&U1KzyYe{*K% z5tjbG(6}|^Ro+Q+ahUk1l`{ZrVcc`~&711Zki8WMTNLG>69U7jOcx2@?>Wg73WNAq zMeOq$%?VFL2e|Q1Kcf}Is;@YSv#DFiQ_mtEi%=8v zgc}dXUpO^Lv@&xnUP!x^&&T{%x`qE`y001O#u~{n=w{RoM&U5lQeQ?JG0I2adFc|{ z)Bl|G|312TnUhcmd9;R8p12g&QJz@?w+V;E4X?5F+cHo&$;R7#ZG7mHmC%-yGAP@g410jSB@&gcVAD)1k@Kz+GOas6Tso7{3a zEk(479!~y(`6Z*a&#0l6z;x8R%W)}#{#}T63 zYiOF`(D(HCP#Dhj5jXa-t7N$x~7K9c9l6S>FwIvzogC!ERk;@^erdaqQ z&LM4C6ZCI_o`F2>V{M#$UF93=CVCp~COY3(PcTtpu+E@gQ|Z_@;+?OXU~Dh`+C2S7 zgUK%x{D5f~h%j^i6|3mX*H$x;~<(?PMe@16@FRY2OoJp6H7 zTF zxLj;WCZ&4ma_~FcmN34MWm^>wbP0VQq zEbP#ID6mlbZEHAx5M2Y#s^CO{3HgyVqxQQG=K;jR=%SI(Oqx!Vj7tL{lA~GBK16H? z2Z)~};AT1D7DNYxSk&lbva#}~*(CirL9L`K3UG;(Yu+LY?B+lR2`)3oPdCyp=?g8g z*sm-s;yt_IH#tPVH88(B;zJqd{Xa?t47QDRH5tKxLB5UIm2^uNN-$PfRB z|9=`B{zpFocM&0fNEa(yX2qigO5{n$7Of2=SASA0`nK0-S?FG63n9Qj74>S7ZJ4fR*gk zpxP*K1INRA`q+mY4dAF+P&Ioc(4f1kqrR~TW$^f6YkO^1cTZJKU2tnlv)(Yd;bmv_ zm|+~}8rQld_nTIpE#40ww|H9La9gf(t-%7Ks>-I+WWFrEXu5f9=CRMtB-;T{Aq5@0 zNuBL^QX%>%{A=kKJUxm7o6L`dB$2()z5Y-;VAGNp^93*#siOi0a2f4p%UC|H5lC(` z@K^F!Gy z+#0sV@p;m9nY`Dg4T97zul-kPQ&kQ9R=T~fHYOTe6K>#2^WL^(Itw*@sn2^yKbIY=2?B*+*Nj!H zZwdgDY+Vmj9iEF8iEB6?&50w;0^zWVxv-;cv{`-;Rz0!szD`J6qN=bEvx4jpZBAGN zO+J^R1-wE8=u7&FC##=Y)=jz0p<0m4c`f5cl)hIZAcI*$h`Q&}Tk$15eQEQVY@e6D z)GRNwkakwUQ1Ou*Y!Kll2$e%U0u2HBIpz7TWJs|_M>#GR;v7qyAsXMDllpC2^*iU> zm4v<}aq3+ydYY*}LX@GM%_SWdyKCms(0q%N9@Zw`%qy`~cTzs^+v4+g{bR`bhZ4jv z_&X!~cbfQr?HstCqmi?T>yg1Dt|rb#j=yQw`}9dYxTB5S@~Ew&tM+McAH%zbhs}>K zkVhNGyQ`-RK^;PoG#KhVg15k693kHwOr>qS7vGzjNj*Hl6utDz7?xDDUP+*+8|Ej;g(yQY}ZX zVBhf%7N`k`Zhd&|-E9x&ZB<{~q77x6*7Go{;i?{B2Tz=4-5j_9l zu9i>Ufsmt>8o7a_H}?)%eYr!i4g~bqKMDRgdsl=VEC&+NF+KqbIV^FTRx;~dJjHO3 ze|j-5d|y$-EZ>0~GvvK*2TNB9ekTFX8b1D2)MMgCG)(|pAZ;YPsS0NcPf2VT4z3t!A&xj_l14OZ7 zg4saf$Z$|7h8+bA4P<2$zLccU_}I{>$nY3Ud}3fqT0l?;8XKH_DT)w>DoFO%`ou{(D#U|r@O1Oy}RdG)4=oLUkoI-bzJD0ZlUxy&Ksui zec-2uLO%EG*?}^#Y~u-TxmeA;5DPOiY5hn3pLPV-J{}Vxqu4%*Ug@q#Yd`%#gc41N zpD9Pdj&1k)Y#Oz3a2`F8<&`HHhL2L9jgS>7VY|6K%x^~sikN)7poCf5V?1>(wgkb8ZLM=e=A~G>y6i^6b>oXWa_Z3GN5|{h*U$^})xEga+?rQWltSO3+ZIIJE#s z=wSF@7Xi)8V@9!N4@(dU;W|aP4yib((j*GnYt=vqMmm_WVq}P<{D8`@MG<2BJ4N|X zl8{UDd?z_jb1^a%5fs;B!jO4a^|FM+Oy?z+trO2!fE*IEl8lK-++wY5scNuBO&_;f z%8dk&&luW9!Nr*vY+6M=muU`rD#31thD&Cg%Y15+>1x+V%<$+EqGq|J7B6I*o=Gg? zjF8ME;q0Vow1ODFVj9s$=O-F5T4$S9Bzwe#{$x x%p3n3=8YV`4PW0y{*RT?Zx^ONR!aX*R!aXm=#06*k0%3uJQ?sG|73vLUjP?dzCQo} literal 0 HcmV?d00001 diff --git a/website/client/assets/images/BackerOnly-Equip-MythicGryphonGlaive.gif b/website/client/assets/images/BackerOnly-Equip-MythicGryphonGlaive.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cd89ebcf4c63c365a9f5a68c9dada55ba1b6fda GIT binary patch literal 9276 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 literal 0 HcmV?d00001 diff --git a/website/client/assets/images/BackerOnly-Equip-MythicGryphonHelm.gif b/website/client/assets/images/BackerOnly-Equip-MythicGryphonHelm.gif new file mode 100644 index 0000000000000000000000000000000000000000..d1dbc4d362c45ac0a84ae8c9591a089cd9830c52 GIT binary patch literal 5690 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 LbohU!!!!Q^iK|>v literal 0 HcmV?d00001 diff --git a/website/client/assets/images/BackerOnly-Equip-MythicGryphonShield.gif b/website/client/assets/images/BackerOnly-Equip-MythicGryphonShield.gif new file mode 100644 index 0000000000000000000000000000000000000000..781e8a09c1eec857748b66543ac094dcc1f2c39f GIT binary patch literal 2861 zcma*pc~nzZ9tZH4h3qLrb|VKA5rJZq0%{cji&CIS#SRLHaKHc-5DUnT*$A>rNCIUI zn^u;Pgs=%n*d!1l;DYR%Py)zmwbXIO30Oxvb!Pg`dFS2p&i(82``z#Fp8ERaAybbK zKo}qt0ML4iw6{9zc*4TL>YyPWv<)Ep^&1#&AX^y7)_~1z6xml_&*1x8qFq|MZGw~R zt_JDbe&gcea@fex%*;$%(>OC>+}n-5xqs^czm*q#UDkAHQPS|%T{p$cH_xY(eAC24!gjjL(Y#IztrTuLAXmOz?l6!1nYx|}9kfttigT$*>ZV);= zGAP$Wzx;G)WO!_X`Texq%n-4 zL3thN%2MZJUE}NVi%`JW-LMx6W8&J%iDn`QsbN>gooc(WUEi&zj`ytd=5E_OyYQ>v ztx9UhDq?UP@Hs$3_HI_PNihG{iwS=7?@HEMY+Uug2h8p*AJEGoj__~04&^4EK2q_r z(j^s?Gk=gnq6-Chc&yZ(?rNgn>*JyBvJZNCucJ6b?ZNQei%1iO(~=-dXx0o_ljd;z zCPttn7==oL#+V%q^rlf`NjEGM2}$G>7%lB&G6kNOp9&4lf#tI)v?5l?EqH5fPaXG`od)Cm_8*^ykB-87!0-}m8IV(Ue_CgB;B%3Q z+x*dF!%!qPg#3&fclI?^G_yaeAI+hb@3GYl%TUz+o6A%Laxy+lI7aC8jelT%JgENZ zwlR5V&!SuC`S8f->vGq~)L@!vB=jbXo_-S=d-`%pFf*NTGvka$mRwFQjLAM#0)tm@ z@}SAUGEOC($rn_^xzVl&A+ivLkQ6m z;ZwEgnem?|r4NQ@CcrpXW_LGpPW9!@UxmLdy}HDk`)u;)XK(a&_C3`quu#Hi9Vq^F zdAuDxJ!4V+(;5U|0mU4%0qpw$*hSZMENztE_Gwa?*e6xpFM2yzhscuVq}4a(N8EyZ zie0-xcnx$_P?!|KVxZ*Q&u~Ql58gUZ2FU--(PNKm2RbgCu*Y{D-h~wm#>kv{D6+|Q4 zh`&fqBEwkl%pX~>^s}d9qq2X@V&$H=kX(>a1kb+ZT$qWd5+G}`lX!4JbuFvDtf3K6 zgRINLdZEN<$u3Nv1T9AShk87I*xN68JfPU!^FXx^^Kkr{`V{KnoOlAaxHPshzcx6% zB!y^uWj}sw(lRpHixpl1E-9d1thigo=pX_t@my+qoSva`>EQkzN~-40!(>g+!D7oq z4O=t$`1MqTso_QP3GJ#|l5E{w@ACUoO)EqGbKm|C;asf=32)h*2`MmUN#kh?3kWW< zl|0(N$aZ<{9+RPQWiJpDt>lr$c&@N-_odF?egPNb^sreiCQxdiho71X%4a`YMJH42 zDX@?zr|T0AUkH_oB?SLyXe5Yood_XE$Hw`@CwNejqu&dEhdoBw5_Z|nW^M_edM_ON zAHo2_rtlZ5S}uf0jDiOSVtTVC=)q(EBbakNGke>cd5^*QG3nP~FDz>)Y7j<_G`Kga0#e;3b zxY@a>`Dcs$V{_ABZD)o=!dTd`k@}jpMwwf&xkm&o-Pt%bZ{CbWZNHZ(zt-Ot>7?N^ z8m2&HCF4}!mOZd_i_WxbI?8r;=qND@@7bNB_AVcOpILZW+l*p{y zJa$asbz*T&KB9mIutip(s?oKW`f5}a()Fx$Q$sDf9@Eg&tjHJC)ZMM_a#Zg@Hi)Xa zaZjH14?P-bkvx3}*0!ZIHBp9lNMjbNo=+}Y&#%4s8NWh-F6qBnZ#hS(%s(ChNIQB? zv^sG(7Nv3o%+oIXiVB*N?yyENq#vMzm>w6e+f;R5g_ zh7FO^Fi!B;m#Z|AybQiQY*%CCT@+}75R&?K;p9_zN-$krZ0spZ>?#tY-ysb?D?OQL zMX2RMlA9+qTagF~BU_bIAT!@N@42?0>AweiqXjI(MBq)r*gl9zg z)0wQy(5$fV97YEG$Lm-tL>aOIRf*MPRaZwnRGkc+E}I$r*>Y-raa?0AN^W-NFKc>tmS4VlzCk^t kYP~vcN&-XGM;){aEQx!jpL?ulEc+YR4O->o_L@XU?qwh4^S%N}gdTYop*!s_h4 z=P!R%%;1k`7x(yK7QxZ6UHyQ^35^HGzkYpjV}<&2SIHHbGp-%8%(PtgLsN=N^F<}w ztjwyP?I+x&yv@CDr&U{5t=PT#mUO4*>J|k$O2wx$=$(RRF-!5&slMC79^c5H zQscM&_VdNNpUg}8;8$T7@>bpS(?+e_TdOQ< zjnJa#v~u>nk2WR8?3}QhwKRW<{|&WcZx3HT>B@EESG`K3XtSY)L2aj$U{^1rP+yny VLscL;tXAa7+qh|uL1^^S?s&fDU literal 0 HcmV?d00001 diff --git a/website/client/assets/images/BackerOnly-Mount-Body-Gryphatrice.gif b/website/client/assets/images/BackerOnly-Mount-Body-Gryphatrice.gif new file mode 100644 index 0000000000000000000000000000000000000000..f913c2695a34802294fa585d2bf007aedb23553d GIT binary patch literal 22991 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 AjsO4v literal 0 HcmV?d00001 diff --git a/website/client/assets/images/BackerOnly-Mount-Head-Gryphatrice.gif b/website/client/assets/images/BackerOnly-Mount-Head-Gryphatrice.gif new file mode 100644 index 0000000000000000000000000000000000000000..94d363e2cc6c84a4cbbf4cb06f4d14c8101838b0 GIT binary patch literal 29923 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 literal 0 HcmV?d00001 diff --git a/website/common/locales/en/pets.json b/website/common/locales/en/pets.json index c629c7bd53..40dbe23b58 100644 --- a/website/common/locales/en/pets.json +++ b/website/common/locales/en/pets.json @@ -33,6 +33,7 @@ "hopefulHippogriffMount": "Hopeful Hippogriff", "royalPurpleJackalope": "Royal Purple Jackalope", "invisibleAether": "Invisible Aether", + "gryphatrice": "Gryphatrice", "rarePetPop1": "Click the gold paw to learn more about how you can obtain this rare pet through contributing to Habitica!", "rarePetPop2": "How to Get this Pet!", "potion": "<%= potionType %> Potion", diff --git a/website/common/script/content/gear/sets/special/index.js b/website/common/script/content/gear/sets/special/index.js index a53d822fb0..a65055e208 100644 --- a/website/common/script/content/gear/sets/special/index.js +++ b/website/common/script/content/gear/sets/special/index.js @@ -1257,6 +1257,11 @@ let armor = { value: 90, con: 15, }, + ks2019: { + text: t('armorSpecialKS2019Text'), + notes: t('armorSpecialKS2019Notes'), + value: 200, + }, }; let back = { @@ -1602,6 +1607,11 @@ let eyewear = { notes: t('eyewearSpecialFall2019HealerNotes'), value: 20, }, + ks2019: { + text: t('eyewearSpecialKS2019Text'), + notes: t('eyewearSpecialKS2019Notes'), + value: 200, + }, }; let head = { @@ -2865,6 +2875,11 @@ let head = { value: 60, int: 7, }, + ks2019: { + text: t('headSpecialKS2019Text'), + notes: t('headSpecialKS2019Notes'), + value: 200, + }, }; let headAccessory = { @@ -4079,6 +4094,11 @@ let shield = { value: 70, con: 9, }, + ks2019: { + text: t('shieldSpecialKS2019Text'), + notes: t('shieldSpecialKS2019Notes'), + value: 200, + }, }; let weapon = { @@ -5332,6 +5352,11 @@ let weapon = { value: 90, int: 9, }, + ks2019: { + text: t('weaponSpecialKS2019Text'), + notes: t('weaponSpecialKS2019Notes'), + value: 200, + }, }; let specialSet = { diff --git a/website/common/script/content/stable.js b/website/common/script/content/stable.js index bee75eea94..4ee406ca80 100644 --- a/website/common/script/content/stable.js +++ b/website/common/script/content/stable.js @@ -103,6 +103,7 @@ let specialPets = { 'Hippogriff-Hopeful': 'hopefulHippogriffPet', 'Fox-Veteran': 'veteranFox', 'JackOLantern-Glow': 'glowJackolantern', + 'Gryphon-Gryphatrice': 'gryphatrice', }; let specialMounts = { @@ -121,6 +122,7 @@ let specialMounts = { 'Aether-Invisible': 'invisibleAether', 'JackOLantern-Ghost': 'ghostJackolantern', 'Hippogriff-Hopeful': 'hopefulHippogriffMount', + 'Gryphon-Gryphatrice': 'gryphatrice', }; each(specialPets, (translationString, key) => { From 0e8ad2dc428aeea2e66bec71dcd268892bbba337 Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Wed, 25 Sep 2019 18:34:24 +0000 Subject: [PATCH 2/6] fix(css): copypasta --- website/client/assets/css/sprites.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/client/assets/css/sprites.css b/website/client/assets/css/sprites.css index 7f6fd49ac3..95b38366f4 100755 --- a/website/client/assets/css/sprites.css +++ b/website/client/assets/css/sprites.css @@ -103,7 +103,7 @@ } .eyewear_special_ks2019 { - background: url("~assets/images/BackerOnly-Equip-ShadeArmor.gif") no-repeat; + background: url("~assets/images/BackerOnly-Equip-MythicGryphonVisor.gif") no-repeat; width: 117px; height: 120px; } From 77e5ae584c6d078d65c794c5a334c4877a053909 Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Wed, 25 Sep 2019 16:23:29 -0500 Subject: [PATCH 3/6] fix(kickstarter): add missing inventory icons, DRY some CSS --- website/client/assets/css/sprites.css | 22 ++++++++---------- .../kickstarter/shop_armor_special_ks2019.png | Bin 0 -> 824 bytes .../shop_eyewear_special_ks2019.png | Bin 0 -> 263 bytes .../kickstarter/shop_head_special_ks2019.png | Bin 0 -> 878 bytes .../shop_shield_special_ks2019.png | Bin 0 -> 458 bytes .../shop_weapon_special_ks2019.png | Bin 0 -> 680 bytes .../icon/Mount_Icon_Gryphon-Gryphatrice.png | Bin 0 -> 3482 bytes 7 files changed, 10 insertions(+), 12 deletions(-) create mode 100644 website/raw_sprites/spritesmith/gear/events/kickstarter/shop_armor_special_ks2019.png create mode 100644 website/raw_sprites/spritesmith/gear/events/kickstarter/shop_eyewear_special_ks2019.png create mode 100644 website/raw_sprites/spritesmith/gear/events/kickstarter/shop_head_special_ks2019.png create mode 100644 website/raw_sprites/spritesmith/gear/events/kickstarter/shop_shield_special_ks2019.png create mode 100644 website/raw_sprites/spritesmith/gear/events/kickstarter/shop_weapon_special_ks2019.png create mode 100644 website/raw_sprites/spritesmith/stable/mounts/icon/Mount_Icon_Gryphon-Gryphatrice.png diff --git a/website/client/assets/css/sprites.css b/website/client/assets/css/sprites.css index 95b38366f4..ded80afcc7 100755 --- a/website/client/assets/css/sprites.css +++ b/website/client/assets/css/sprites.css @@ -96,28 +96,25 @@ background: url("~assets/images/BackerOnly-Pet-CerberusPup.gif") no-repeat; } -.broad_armor_special_ks2019, .slim_armor_special_ks2019 { - background: url("~assets/images/BackerOnly-Equip-MythicGryphonArmor.gif") no-repeat; +.broad_armor_special_ks2019, .slim_armor_special_ks2019, .eyewear_special_ks2019, .head_special_ks2019, .shield_special_ks2019 { width: 117px; height: 120px; } +.broad_armor_special_ks2019, .slim_armor_special_ks2019 { + background: url("~assets/images/BackerOnly-Equip-MythicGryphonArmor.gif") no-repeat; +} + .eyewear_special_ks2019 { background: url("~assets/images/BackerOnly-Equip-MythicGryphonVisor.gif") no-repeat; - width: 117px; - height: 120px; } .head_special_ks2019 { background: url("~assets/images/BackerOnly-Equip-MythicGryphonHelm.gif") no-repeat; - width: 117px; - height: 120px; } .shield_special_ks2019 { background: url("~assets/images/BackerOnly-Equip-MythicGryphonShield.gif") no-repeat; - width: 117px; - height: 120px; } .weapon_special_ks2019 { @@ -132,16 +129,17 @@ height: 99px; } -.Mount_Head_Gryphon-Gryphatrice { - background: url("~assets/images/BackerOnly-Mount-Head-Gryphatrice.gif") no-repeat; +.Mount_Head_Gryphon-Gryphatrice, .Mount_Body_Gryphon-Gryphatrice { width: 135px; height: 135px; } +.Mount_Head_Gryphon-Gryphatrice { + background: url("~assets/images/BackerOnly-Mount-Head-Gryphatrice.gif") no-repeat; +} + .Mount_Body_Gryphon-Gryphatrice { background: url("~assets/images/BackerOnly-Mount-Body-Gryphatrice.gif") no-repeat; - width: 135px; - height: 135px; } /* FIXME figure out how to handle customize menu!! diff --git a/website/raw_sprites/spritesmith/gear/events/kickstarter/shop_armor_special_ks2019.png b/website/raw_sprites/spritesmith/gear/events/kickstarter/shop_armor_special_ks2019.png new file mode 100644 index 0000000000000000000000000000000000000000..35edc824b3fa8259911fb4cb8d4de12771fa6011 GIT binary patch literal 824 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1|%(nCvO5$Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP-r=*aj+J3!b8yOgwj(WN{hE&{oJHy*Q*iocmf0Wnl zgss!k6&iw6ni_&)Ld1C2Io#cyxc;O259^+Hg%9HrmutT{BvBc`6ConCKq1aR_u<7! zual}gpDj~m%;%i&Id|5~dDZVsK0iG(vq^yi4IR3vBGx@~W5k&~8n1V#M86W4xUbIm z()IkfEv21`W?Fu~9!$MD^RO)A4w)59501UpWcW1kIKz@4O@>*sXERF3%9hGLw^deF zPTOcB8h?-R!{%+`4LNDi(bFX!39S3?Td;feZ59dXb!-dXRdF<=>)SJ2xEaBI;CIa7 zjXoP^e>^dnEukz`wjunyJi~^6rx_kR{2|Yd&^JJMw3Ku; zh97%2zJHM~;5_G*v)9Jp>x>Rtudkk~b}=L5wcPbhmS=m+C$GL`V`sa5YI;V-36>kV z{VVj%9(5=_U)gr!_vG2KZy9`i{g^*&Im>$>T6w{*X}#}n6~8v!&QKwAis3`mLxzTX z*0u~wF29=6dHiu|^EqE#~x!^9TC8c`U`-BFe>o%O0v* z{!x_WMAe;JpTm52*b7{JX777sYw*(x7Wp6{f8->8Doiov@9y xDf?KXYj(K&DLc65=6?21^&P0m>X7DVe!~TC<-9!>J_M$522WQ%mvv4FO#rW@Xk!2X literal 0 HcmV?d00001 diff --git a/website/raw_sprites/spritesmith/gear/events/kickstarter/shop_eyewear_special_ks2019.png b/website/raw_sprites/spritesmith/gear/events/kickstarter/shop_eyewear_special_ks2019.png new file mode 100644 index 0000000000000000000000000000000000000000..c30d7de3ae15ac919e569e2700204c2cbf411c8b GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1|%(nCvO5$Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP-r=*ZI|M^um@j#&|o-U3d6}R5rILO&zAmDH@!!W9` zHNs`prViaBTw5eKF5>d|5<; zyfj#^q+WSdy7p9{M~UM7pcBz;S@W(>dH!`{Dc8^Il0oJ%|7R0{cls zK~#9!?U+GGR8bT_&sd2QxJb=371YScq=AZPQDU3QT8JPmq?S>umhEbhJ2yg`f|fyx z5Tr$BZ3=4q>Wn=lo+i^kbYuztjO4Nyv4Uv<&dHNs#)r}PZlwBN( z<%++1>4b0G%C&9>psRl*=gCXl;>;2N=k7cY#S}HfVq;i|#EfHu833A_b~pgZ)O5_x z3^`dFS(mu3{t=_5NM70JVNWFhnUx=C4T+*5ax&+yKXMng?#&q|2HYN>_l=YFUh929 z{N6Vt)R3?Z8B4Fm0G7%d9DsUny}qGNLL7je<_(4cx8_TI^Zi+ORglXKwZ#e)~#S zQ$wOsL&O9*p(ADPe2}6pulENT5!lr{qhz0sA@g%2Q`1^QqBVzDH6Z29AwjjH>Ei?d zySG;ZF#Ns7c>Uz21pr>ZUo`Sb9?6@Myk0G_KZhC;nHuuN{msg4w{s+8eA9ArQY+-d z`x0(57#=hJ)}S|03&0u69LZznl`bQ<-6=IBVsnUapsLiJNE405#96ZN27sS6EoupHB zrmUA4YDiQJ2{Iw5OBEY6L{St)Q4~c{6h%=KMN$6d7dPrk$DSO%tN;K207*qoM6N<$ Ef~vfU@c;k- literal 0 HcmV?d00001 diff --git a/website/raw_sprites/spritesmith/gear/events/kickstarter/shop_shield_special_ks2019.png b/website/raw_sprites/spritesmith/gear/events/kickstarter/shop_shield_special_ks2019.png new file mode 100644 index 0000000000000000000000000000000000000000..15070e03c40ba2fe27918392485985edbdcdd4f9 GIT binary patch literal 458 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1|%(nCvO5$Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP-r=*aTF7rj7UknV4;hrvzAr-gYUSIFcoG5er=E`NgrOQgU?PBq8eqzfB-1xtPicRTWIKKtPAgJVri zZ`!`s9ere7mb^FP}qQrs|xWauZE8m6v=w?eBN1C)68X)9gMPlrwj?&n=-# zKBum7G8BK_yzyt@N)89J>BfpHeLUViV{16{L4l$C`uvTrTmO9jV-%C_bZOFr7c~=q zRJ&hjXqF(L2ugcBYWdYv|^ vf9%wjL|ZM{>aFBi+Rix<>hG89YZ)EZMx8Z2x9=7()EPWo{an^LB{Ts5AH>8j literal 0 HcmV?d00001 diff --git a/website/raw_sprites/spritesmith/gear/events/kickstarter/shop_weapon_special_ks2019.png b/website/raw_sprites/spritesmith/gear/events/kickstarter/shop_weapon_special_ks2019.png new file mode 100644 index 0000000000000000000000000000000000000000..d33b4730e06d6c3aa7b20bccd704870340d734fb GIT binary patch literal 680 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 IM6N<$f++5>SpWb4 literal 0 HcmV?d00001 From b4035b5116e1c26a9895be5da18ff6c0e64d8c05 Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Fri, 27 Sep 2019 10:15:26 -0500 Subject: [PATCH 4/6] feat(kickstarter): stats, descriptions, migration --- .../archive/2019/20190927_kickstarter.js | 55 +++++++++++++++++++ website/common/locales/en/gear.json | 10 ++++ .../script/content/gear/sets/special/index.js | 27 ++++++--- 3 files changed, 83 insertions(+), 9 deletions(-) create mode 100644 migrations/archive/2019/20190927_kickstarter.js diff --git a/migrations/archive/2019/20190927_kickstarter.js b/migrations/archive/2019/20190927_kickstarter.js new file mode 100644 index 0000000000..47c8906618 --- /dev/null +++ b/migrations/archive/2019/20190927_kickstarter.js @@ -0,0 +1,55 @@ +/* eslint-disable no-console */ +const MIGRATION_NAME = '20190927_kickstarter'; +import { v4 as uuid } from 'uuid'; + +import { model as User } from '../../website/server/models/user'; + +const progressCount = 1000; +let count = 0; + +async function updateUser (user) { + count++; + + const set = {}; + + set.migration = MIGRATION_NAME; + + set['items.gear.owned.armor_special_ks2019'] = false; + const push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_ks2019', _id: uuid()}}; + + return await User.update({_id: user._id}, {$set: set, $push: push}).exec(); +} + +module.exports = async function processUsers () { + let query = { + migration: {$ne: MIGRATION_NAME}, + 'auth.local.lowerCaseUsername': {$in: []}, + }; + + const fields = { + _id: 1, + items: 1, + }; + + while (true) { // eslint-disable-line no-constant-condition + const users = await User // eslint-disable-line no-await-in-loop + .find(query) + .limit(250) + .sort({_id: 1}) + .select(fields) + .lean() + .exec(); + + if (users.length === 0) { + console.warn('All appropriate users found and modified.'); + console.warn(`\n${count} users processed\n`); + break; + } else { + query._id = { + $gt: users[users.length - 1], + }; + } + + await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop + } +}; diff --git a/website/common/locales/en/gear.json b/website/common/locales/en/gear.json index fde6b2cded..f1487ae0a5 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -122,6 +122,8 @@ "weaponSpecialTachiNotes": "This light and curved sword will shred your tasks to ribbons! Increases Strength by <%= str %>.", "weaponSpecialAetherCrystalsText": "Aether Crystals", "weaponSpecialAetherCrystalsNotes": "These bracers and crystals once belonged to the Lost Masterclasser herself. Increases all Stats by <%= attrs %>.", + "weaponSpecialKS2019Text": "Mythic Gryphon Glaive", + "weaponSpecialKS2019Notes": "Curved as a gryphon's beak and talons, this ornate polearm reminds you to power through when the task ahead feels daunting. Increases Strength by <%= str %>.", "weaponSpecialYetiText": "Yeti-Tamer Spear", "weaponSpecialYetiNotes": "This spear allows its user to command any yeti. Increases Strength by <%= str %>. Limited Edition 2013-2014 Winter Gear.", @@ -539,6 +541,8 @@ "armorSpecialTurkeyArmorBaseNotes": "Keep your drumsticks warm and cozy in this feathery armor! Confers no benefit.", "armorSpecialTurkeyArmorGildedText": "Gilded Turkey Armor", "armorSpecialTurkeyArmorGildedNotes": "Strut your stuff in this seasonally shiny armor! Confers no benefit.", + "armorSpecialKS2019Text": "Mythic Gryphon Armor", + "armorSpecialKS2019Notes": "Glowing from within like a gryphon's noble heart, this resplendent armor encourages you to take pride in your accomplishments. Increases Constitution by <%= con %>.", "armorSpecialYetiText": "Yeti-Tamer Robe", "armorSpecialYetiNotes": "Fuzzy and fierce. Increases Constitution by <%= con %>. Limited Edition 2013-2014 Winter Gear.", @@ -1067,6 +1071,8 @@ "headSpecialTurkeyHelmGildedNotes": "Gobble gobble! Bling bling! Confers no benefit.", "headSpecialPiDayText": "Pi Hat", "headSpecialPiDayNotes": "Try to balance this slice of delicious pie on your head while walking in a circle. Or throw it at a red Daily! Or you could just eat it. Your choice! Confers no benefit.", + "headSpecialKS2019Text": "Mythic Gryphon Helm", + "headSpecialKS2019Notes": "Adorned with a gryphon's likeness and plumage, this glorious helmet symbolizes the way your skills and bearing stand as an example to others. Increases Intelligence by <%= int %>.", "headSpecialNyeText": "Absurd Party Hat", "headSpecialNyeNotes": "You've received an Absurd Party Hat! Wear it with pride while ringing in the New Year! Confers no benefit.", @@ -1563,6 +1569,8 @@ "shieldSpecialWakizashiNotes": "This short sword is perfect for close-quarters battles with your Dailies! Increases Constitution by <%= con %>.", "shieldSpecialPiDayText": "Pi Shield", "shieldSpecialPiDayNotes": "We dare you to calculate the ratio of this shield's circumference to its deliciousness! Confers no benefit.", + "shieldSpecialKS2019Text": "Mythic Gryphon Shield", + "shieldSpecialKS2019Notes": "Sparkling like the shell of a gryphon egg, this magnificent shield shows you how to stand ready to help when your own burdens are light. Increases Perception by <%= per %>.", "shieldSpecialYetiText": "Yeti-Tamer Shield", "shieldSpecialYetiNotes": "This shield reflects light from the snow. Increases Constitution by <%= con %>. Limited Edition 2013-2014 Winter Gear.", @@ -2063,6 +2071,8 @@ "eyewearSpecialAetherMaskText": "Aether Mask", "eyewearSpecialAetherMaskNotes": "This mask has a mysterious history. Increases Intelligence by <%= int %>.", + "eyewearSpecialKS2019Text": "Mythic Gryphon Visor", + "eyewearSpecialKS2019Notes": "Bold as a gryphon's... hmm, gryphons don't have visors. It reminds you to... oh, who are we kidding, it just looks cool! Confers no benefit.", "eyewearSpecialSummerRogueText": "Roguish Eyepatch", "eyewearSpecialSummerRogueNotes": "It doesn't take a scallywag to see how stylish this is! Confers no benefit. Limited Edition 2014 Summer Gear.", diff --git a/website/common/script/content/gear/sets/special/index.js b/website/common/script/content/gear/sets/special/index.js index a65055e208..36917da31a 100644 --- a/website/common/script/content/gear/sets/special/index.js +++ b/website/common/script/content/gear/sets/special/index.js @@ -1259,8 +1259,10 @@ let armor = { }, ks2019: { text: t('armorSpecialKS2019Text'), - notes: t('armorSpecialKS2019Notes'), - value: 200, + notes: t('armorSpecialKS2019Notes', { con: 20 }), + value: 0, + con: 20, + canOwn: ownsItem('armor_special_ks2019'), }, }; @@ -1610,7 +1612,8 @@ let eyewear = { ks2019: { text: t('eyewearSpecialKS2019Text'), notes: t('eyewearSpecialKS2019Notes'), - value: 200, + value: 0, + canOwn: ownsItem('eyewear_special_ks2019'), }, }; @@ -2877,8 +2880,10 @@ let head = { }, ks2019: { text: t('headSpecialKS2019Text'), - notes: t('headSpecialKS2019Notes'), - value: 200, + notes: t('headSpecialKS2019Notes', { int: 20 }), + value: 0, + int: 20, + canOwn: ownsItem('head_special_ks2019'), }, }; @@ -4096,8 +4101,10 @@ let shield = { }, ks2019: { text: t('shieldSpecialKS2019Text'), - notes: t('shieldSpecialKS2019Notes'), - value: 200, + notes: t('shieldSpecialKS2019Notes', { per: 20 }), + value: 0, + per: 20, + canOwn: ownsItem('shield_special_ks2019'), }, }; @@ -5354,8 +5361,10 @@ let weapon = { }, ks2019: { text: t('weaponSpecialKS2019Text'), - notes: t('weaponSpecialKS2019Notes'), - value: 200, + notes: t('weaponSpecialKS2019Notes', { str: 20 }), + value: 0, + str: 20, + canOwn: ownsItem('weapon_special_ks2019'), }, }; From 5a633e7b64a9a54e24579be8b34d7190a575ece7 Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Fri, 27 Sep 2019 15:49:36 +0000 Subject: [PATCH 5/6] fix(kickstarter): better migration logic --- migrations/archive/2019/20190927_kickstarter.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/migrations/archive/2019/20190927_kickstarter.js b/migrations/archive/2019/20190927_kickstarter.js index 47c8906618..7973a7d3a4 100644 --- a/migrations/archive/2019/20190927_kickstarter.js +++ b/migrations/archive/2019/20190927_kickstarter.js @@ -2,7 +2,7 @@ const MIGRATION_NAME = '20190927_kickstarter'; import { v4 as uuid } from 'uuid'; -import { model as User } from '../../website/server/models/user'; +import { model as User } from '../../../website/server/models/user'; const progressCount = 1000; let count = 0; @@ -11,11 +11,22 @@ async function updateUser (user) { count++; const set = {}; + let push = {pinnedItems: {$each: []}}; set.migration = MIGRATION_NAME; - set['items.gear.owned.armor_special_ks2019'] = false; - const push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_ks2019', _id: uuid()}}; + // set['items.gear.owned.armor_special_ks2019'] = false; + // push.pinnedItems.$each.push({type: 'marketGear', path: 'gear.flat.armor_special_ks2019', _id: uuid()}); + set['items.gear.owned.head_special_ks2019'] = false; + push.pinnedItems.$each.push({type: 'marketGear', path: 'gear.flat.head_special_ks2019', _id: uuid()}); + // set['items.gear.owned.shield_special_ks2019'] = false; + // push.pinnedItems.$each.push({type: 'marketGear', path: 'gear.flat.shield_special_ks2019', _id: uuid()}); + // set['items.gear.owned.weapon_special_ks2019'] = false; + // push.pinnedItems.$each.push({type: 'marketGear', path: 'gear.flat.weapon_special_ks2019', _id: uuid()}); + set['items.gear.owned.eyewear_special_ks2019'] = false; + push.pinnedItems.$each.push({type: 'marketGear', path: 'gear.flat.eyewear_special_ks2019', _id: uuid()}); + // set['items.pets.Gryphon-Gryphatrice'] = 5; + // set['items.mounts.Gryphon-Gryphatrice'] = true; return await User.update({_id: user._id}, {$set: set, $push: push}).exec(); } From ef1e7ba336a43e8764cd55f679d0d61869f91d5b Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Fri, 27 Sep 2019 11:45:24 -0500 Subject: [PATCH 6/6] feat(kickstarter): add achievement --- migrations/archive/2019/20190927_kickstarter.js | 1 + website/common/locales/en/achievements.json | 4 +++- website/common/script/content/achievements.js | 5 +++++ website/common/script/libs/achievements.js | 4 ++++ .../achievement-kickstarter20192x.png | Bin 0 -> 6735 bytes website/server/models/user/schema.js | 1 + 6 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 website/raw_sprites/spritesmith/achievements/achievement-kickstarter20192x.png diff --git a/migrations/archive/2019/20190927_kickstarter.js b/migrations/archive/2019/20190927_kickstarter.js index 7973a7d3a4..a62ed15350 100644 --- a/migrations/archive/2019/20190927_kickstarter.js +++ b/migrations/archive/2019/20190927_kickstarter.js @@ -14,6 +14,7 @@ async function updateUser (user) { let push = {pinnedItems: {$each: []}}; set.migration = MIGRATION_NAME; + set['achievements.ks2019'] = true; // set['items.gear.owned.armor_special_ks2019'] = false; // push.pinnedItems.$each.push({type: 'marketGear', path: 'gear.flat.armor_special_ks2019', _id: uuid()}); diff --git a/website/common/locales/en/achievements.json b/website/common/locales/en/achievements.json index db8b78ea2b..7de4a1baf9 100644 --- a/website/common/locales/en/achievements.json +++ b/website/common/locales/en/achievements.json @@ -24,5 +24,7 @@ "achievementDustDevilModalText": "You collected all the Desert Pets!", "achievementAridAuthority": "Arid Authority", "achievementAridAuthorityText": "Has tamed all Desert Mounts.", - "achievementAridAuthorityModalText": "You tamed all the Desert Mounts!" + "achievementAridAuthorityModalText": "You tamed all the Desert Mounts!", + "achievementKickstarter2019": "Pin Kickstarter Backer", + "achievementKickstarter2019Text": "Backed the 2019 Pin Kickstarter Project" } diff --git a/website/common/script/content/achievements.js b/website/common/script/content/achievements.js index 154bf78011..c39939383d 100644 --- a/website/common/script/content/achievements.js +++ b/website/common/script/content/achievements.js @@ -193,6 +193,11 @@ let specialAchievs = { pluralTitleKey: 'helped', pluralTextKey: 'surveysMultiple', }, + kickstarter2019: { + icon: 'achievement-kickstarter2019', + titleKey: 'achievementKickstarter2019', + textKey: 'achievementKickstarter2019Text', + }, }; Object.assign(achievementsData, specialAchievs); diff --git a/website/common/script/libs/achievements.js b/website/common/script/libs/achievements.js index fe386361e6..64ac15b06c 100644 --- a/website/common/script/libs/achievements.js +++ b/website/common/script/libs/achievements.js @@ -300,6 +300,10 @@ function _getSpecialAchievements (user, language) { _addSimple(result, user, {path: 'originalUser', language}); } + if (user.achievements.kickstarter2019) { + _addSimple(result, user, {path: 'kickstarter2019', language}); + } + return result; } diff --git a/website/raw_sprites/spritesmith/achievements/achievement-kickstarter20192x.png b/website/raw_sprites/spritesmith/achievements/achievement-kickstarter20192x.png new file mode 100644 index 0000000000000000000000000000000000000000..2e4af4aca691d4f4c3bf781e84a82cc559275cf8 GIT binary patch literal 6735 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 z