Merge branch 'develop' into TheHollidayInn-menu-hide-when-navigate-away
2
common/dist/sprites/habitrpg-shared.css
vendored
294
common/dist/sprites/spritesmith0.css
vendored
|
|
@ -1,240 +1,240 @@
|
|||
.achievement-alien {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1860px -1756px;
|
||||
background-position: -1405px -1301px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-alpha {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1976px -1547px;
|
||||
background-position: -1976px -1820px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-armor {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1910px -1729px;
|
||||
background-position: -1455px -1274px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-boot {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1885px -1729px;
|
||||
background-position: -1430px -1274px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-bow {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1860px -1729px;
|
||||
background-position: -1405px -1274px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-cactus {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -2001px -1844px;
|
||||
background-position: -1546px -1392px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-cake {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1976px -1844px;
|
||||
background-position: -1521px -1392px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-cave {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1951px -1844px;
|
||||
background-position: -1496px -1392px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-coffin {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -2001px -1817px;
|
||||
background-position: -1546px -1365px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-comment {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1976px -1817px;
|
||||
background-position: -1521px -1365px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-costumeContest {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1951px -1817px;
|
||||
background-position: -1496px -1365px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-dilatory {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -2001px -1790px;
|
||||
background-position: -1637px -1483px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-firefox {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1976px -1790px;
|
||||
background-position: -1612px -1483px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-greeting {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1951px -1790px;
|
||||
background-position: -1587px -1483px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-habitBirthday {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -2001px -1763px;
|
||||
background-position: -1637px -1456px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-habiticaDay {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1976px -1763px;
|
||||
background-position: -1612px -1456px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-heart {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1951px -1763px;
|
||||
background-position: -1587px -1456px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-karaoke {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -2001px -1736px;
|
||||
background-position: -1728px -1574px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-ninja {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1976px -1736px;
|
||||
background-position: -1703px -1574px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-nye {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1951px -1736px;
|
||||
background-position: -1678px -1574px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-perfect {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1951px -1547px;
|
||||
background-position: -1951px -1820px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-rat {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1976px -1709px;
|
||||
background-position: -1703px -1547px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-seafoam {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1951px -1709px;
|
||||
background-position: -1678px -1547px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-shield {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -2001px -1682px;
|
||||
background-position: -1819px -1665px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-shinySeed {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1976px -1682px;
|
||||
background-position: -1794px -1665px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-snowball {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1951px -1682px;
|
||||
background-position: -1769px -1665px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-spookDust {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -2001px -1655px;
|
||||
background-position: -1819px -1638px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-stoikalm {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1976px -1655px;
|
||||
background-position: -1794px -1638px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-sun {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1951px -1655px;
|
||||
background-position: -1769px -1638px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-sword {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -2001px -1628px;
|
||||
background-position: -1910px -1756px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-thankyou {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1976px -1628px;
|
||||
background-position: -1885px -1756px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-thermometer {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1951px -1628px;
|
||||
background-position: -1860px -1756px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-tree {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -2001px -1601px;
|
||||
background-position: -1910px -1729px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-triadbingo {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1976px -1601px;
|
||||
background-position: -1885px -1729px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-ultimate-healer {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1951px -1601px;
|
||||
background-position: -1860px -1729px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-ultimate-mage {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -2001px -1574px;
|
||||
background-position: -2001px -1847px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-ultimate-rogue {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1976px -1574px;
|
||||
background-position: -1976px -1847px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-ultimate-warrior {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1951px -1574px;
|
||||
background-position: -1951px -1847px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-valentine {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -2001px -1547px;
|
||||
background-position: -2001px -1820px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
.achievement-wolf {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -2001px -1709px;
|
||||
background-position: -1728px -1547px;
|
||||
width: 24px;
|
||||
height: 26px;
|
||||
}
|
||||
|
|
@ -1998,13 +1998,13 @@
|
|||
}
|
||||
.hair_mustache_1_rainbow {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -990px -444px;
|
||||
background-position: -1183px -1434px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_mustache_1_rainbow {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1015px -459px;
|
||||
background-position: -1208px -1449px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
|
|
@ -2022,13 +2022,13 @@
|
|||
}
|
||||
.hair_mustache_1_snowy {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1365px -1434px;
|
||||
background-position: -990px -444px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_mustache_1_snowy {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1390px -1449px;
|
||||
background-position: -1015px -459px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
|
|
@ -4026,479 +4026,527 @@
|
|||
}
|
||||
.hair_base_10_brown {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1183px -1434px;
|
||||
background-position: -1951px -1547px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_brown {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1208px -1449px;
|
||||
background-position: -1976px -1562px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_candycane {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1132px -455px;
|
||||
background-position: -1951px -1638px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_candycane {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1157px -470px;
|
||||
background-position: -1976px -1653px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_candycorn {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1132px -364px;
|
||||
background-position: -1951px -1729px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_candycorn {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1157px -379px;
|
||||
background-position: -1976px -1744px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_festive {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1132px -273px;
|
||||
background-position: 0px -1889px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_festive {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1157px -288px;
|
||||
background-position: -25px -1904px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_frost {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1132px -182px;
|
||||
background-position: -1365px -1434px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_frost {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1157px -197px;
|
||||
background-position: -1390px -1449px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_ghostwhite {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1132px -91px;
|
||||
background-position: -1132px -455px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_ghostwhite {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1157px -106px;
|
||||
background-position: -1157px -470px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_green {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1132px 0px;
|
||||
background-position: -1132px -364px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_green {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1157px -15px;
|
||||
background-position: -1157px -379px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_halloween {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1001px -979px;
|
||||
background-position: -1132px -273px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_halloween {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1026px -994px;
|
||||
background-position: -1157px -288px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_holly {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -910px -979px;
|
||||
background-position: -1132px -182px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_holly {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -935px -994px;
|
||||
background-position: -1157px -197px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_hollygreen {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -819px -979px;
|
||||
background-position: -1132px -91px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_hollygreen {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -844px -994px;
|
||||
background-position: -1157px -106px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_midnight {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -728px -979px;
|
||||
background-position: -1132px 0px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_midnight {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -753px -994px;
|
||||
background-position: -1157px -15px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_pblue {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -637px -979px;
|
||||
background-position: -1001px -979px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_pblue {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -662px -994px;
|
||||
background-position: -1026px -994px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_pblue2 {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -546px -979px;
|
||||
background-position: -910px -979px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_pblue2 {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -571px -994px;
|
||||
background-position: -935px -994px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_peppermint {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -455px -979px;
|
||||
background-position: -819px -979px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_peppermint {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -480px -994px;
|
||||
background-position: -844px -994px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_pgreen {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -364px -979px;
|
||||
background-position: -728px -979px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_pgreen {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -389px -994px;
|
||||
background-position: -753px -994px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_pgreen2 {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -273px -979px;
|
||||
background-position: -637px -979px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_pgreen2 {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -298px -994px;
|
||||
background-position: -662px -994px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_porange {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -182px -979px;
|
||||
background-position: -546px -979px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_porange {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -207px -994px;
|
||||
background-position: -571px -994px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_porange2 {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -91px -979px;
|
||||
background-position: -455px -979px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_porange2 {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -116px -994px;
|
||||
background-position: -480px -994px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_ppink {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: 0px -979px;
|
||||
background-position: -364px -979px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_ppink {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -25px -994px;
|
||||
background-position: -389px -994px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_ppink2 {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1001px -888px;
|
||||
background-position: -273px -979px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_ppink2 {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1026px -903px;
|
||||
background-position: -298px -994px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_ppurple {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -910px -888px;
|
||||
background-position: -182px -979px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_ppurple {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -935px -903px;
|
||||
background-position: -207px -994px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_ppurple2 {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -819px -888px;
|
||||
background-position: -91px -979px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_ppurple2 {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -844px -903px;
|
||||
background-position: -116px -994px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_pumpkin {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -728px -888px;
|
||||
background-position: 0px -979px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_pumpkin {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -753px -903px;
|
||||
background-position: -25px -994px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_purple {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -637px -888px;
|
||||
background-position: -1001px -888px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_purple {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -662px -903px;
|
||||
background-position: -1026px -903px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_pyellow {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -546px -888px;
|
||||
background-position: -910px -888px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_pyellow {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -571px -903px;
|
||||
background-position: -935px -903px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_pyellow2 {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -455px -888px;
|
||||
background-position: -819px -888px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_pyellow2 {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -480px -903px;
|
||||
background-position: -844px -903px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_rainbow {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -364px -888px;
|
||||
background-position: -728px -888px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_rainbow {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -389px -903px;
|
||||
background-position: -753px -903px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_red {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -273px -888px;
|
||||
background-position: -637px -888px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_red {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -298px -903px;
|
||||
background-position: -662px -903px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_snowy {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -182px -888px;
|
||||
background-position: -546px -888px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_snowy {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -207px -903px;
|
||||
background-position: -571px -903px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_white {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -91px -888px;
|
||||
background-position: -455px -888px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_white {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -116px -903px;
|
||||
background-position: -480px -903px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_winternight {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: 0px -888px;
|
||||
background-position: -364px -888px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_winternight {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -25px -903px;
|
||||
background-position: -389px -903px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_winterstar {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -990px -717px;
|
||||
background-position: -273px -888px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_winterstar {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1015px -732px;
|
||||
background-position: -298px -903px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_yellow {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -990px -626px;
|
||||
background-position: -182px -888px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_yellow {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1015px -641px;
|
||||
background-position: -207px -903px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_10_zombie {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -990px -535px;
|
||||
background-position: -91px -888px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_10_zombie {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1015px -550px;
|
||||
background-position: -116px -903px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_11_TRUred {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: 0px -1070px;
|
||||
background-position: 0px -888px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_11_TRUred {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -25px -1085px;
|
||||
background-position: -25px -903px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_11_aurora {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1132px -910px;
|
||||
background-position: -990px -717px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_11_aurora {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1157px -925px;
|
||||
background-position: -1015px -732px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_11_black {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1132px -819px;
|
||||
background-position: -990px -626px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_11_black {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1157px -834px;
|
||||
background-position: -1015px -641px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_11_blond {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1132px -728px;
|
||||
background-position: -990px -535px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_11_blond {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1157px -743px;
|
||||
background-position: -1015px -550px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_11_blue {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1132px -637px;
|
||||
background-position: 0px -1070px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_11_blue {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1157px -652px;
|
||||
background-position: -25px -1085px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_11_brown {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1132px -546px;
|
||||
background-position: -1132px -910px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_11_brown {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1157px -925px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_11_candycane {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1132px -819px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_11_candycane {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1157px -834px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_11_candycorn {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1132px -728px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_11_candycorn {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1157px -743px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_11_festive {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1132px -637px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_11_festive {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1157px -652px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.hair_base_11_frost {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1132px -546px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.hair_base_11_frost {
|
||||
background-image: url(spritesmith0.png);
|
||||
background-position: -1157px -561px;
|
||||
width: 60px;
|
||||
|
|
|
|||
BIN
common/dist/sprites/spritesmith0.png
vendored
|
Before Width: | Height: | Size: 238 KiB After Width: | Height: | Size: 241 KiB |
5928
common/dist/sprites/spritesmith1.css
vendored
BIN
common/dist/sprites/spritesmith1.png
vendored
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
5514
common/dist/sprites/spritesmith2.css
vendored
BIN
common/dist/sprites/spritesmith2.png
vendored
|
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 110 KiB |
1010
common/dist/sprites/spritesmith3.css
vendored
BIN
common/dist/sprites/spritesmith3.png
vendored
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 89 KiB |
1046
common/dist/sprites/spritesmith4.css
vendored
BIN
common/dist/sprites/spritesmith4.png
vendored
|
Before Width: | Height: | Size: 543 KiB After Width: | Height: | Size: 575 KiB |
2864
common/dist/sprites/spritesmith5.css
vendored
BIN
common/dist/sprites/spritesmith5.png
vendored
|
Before Width: | Height: | Size: 235 KiB After Width: | Height: | Size: 243 KiB |
1544
common/dist/sprites/spritesmith6.css
vendored
BIN
common/dist/sprites/spritesmith6.png
vendored
|
Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 204 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
BIN
common/img/sprites/spritesmith/quests/quest_cheetah.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
common/img/sprites/spritesmith/stable/eggs/Pet_Egg_Cheetah.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 873 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 797 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
BIN
common/img/sprites/spritesmith/stable/pets/Pet-Cheetah-Base.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
BIN
common/img/sprites/spritesmith/stable/pets/Pet-Cheetah-Red.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
common/img/sprites/spritesmith/stable/pets/Pet-Cheetah-Shade.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
BIN
common/img/sprites/spritesmith/stable/pets/Pet-Cheetah-White.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
|
@ -56,5 +56,8 @@
|
|||
"backToChallenges": "Back to all challenges",
|
||||
"prizeValue": "<%= gemcount %> <%= gemicon %> Prize",
|
||||
"clone": "Clone",
|
||||
"challengeNotEnoughGems": "You do not have enough gems to post this challenge."
|
||||
"challengeNotEnoughGems": "You do not have enough gems to post this challenge.",
|
||||
"noPermissionEditChallenge": "You don't have permissions to edit this challenge",
|
||||
"noPermissionDeleteChallenge": "You don't have permissions to delete this challenge",
|
||||
"noPermissionCloseChallenge": "You don't have permissions to close this challenge"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,6 +96,9 @@
|
|||
"questEggWhaleText": "Whale",
|
||||
"questEggWhaleAdjective": "splashy",
|
||||
|
||||
"questEggCheetahText": "Cheetah",
|
||||
"questEggCheetahAdjective": "honest",
|
||||
|
||||
"eggNotes": "Find a hatching potion to pour on this egg, and it will hatch into a <%= eggAdjective(locale) %> <%= eggText(locale) %>.",
|
||||
|
||||
"hatchingPotionBase": "Base",
|
||||
|
|
|
|||
|
|
@ -277,5 +277,12 @@
|
|||
"questDilatoryDistress3Boss": "Adva, the Usurping Mermaid",
|
||||
"questDilatoryDistress3DropFish": "Fish (Food)",
|
||||
"questDilatoryDistress3DropWeapon": "Trident of Crashing Tides (Weapon)",
|
||||
"questDilatoryDistress3DropShield": "Moonpearl Shield (Shield-Hand Item)"
|
||||
"questDilatoryDistress3DropShield": "Moonpearl Shield (Shield-Hand Item)",
|
||||
|
||||
"questCheetahText": "Such a Cheetah",
|
||||
"questCheetahNotes": "As you hike across the Sloensteadi Savannah with your friends @PainterProphet, @tivaquinn, @Unruly Hyena, and @Crawford, you're startled to see a Cheetah screeching past with a new Habitican clamped in its jaws. Under the Cheetah's scorching paws, tasks burn away as though complete -- before anyone has the chance to actually finish them! The Habitican sees you and yells, \"Please help me! This Cheetah is making me level too quickly, but I'm not getting anything done. I want to slow down and enjoy the game. Make it stop!\" You fondly remember your own fledgling days, and know that you have to help the newbie by stopping the Cheetah!",
|
||||
"questCheetahCompletion": "The new Habitican is breathing heavily after the wild ride, but thanks you and your friends for your help. \"I'm glad that Cheetah won't be able to grab anyone else. It did leave some Cheetah eggs for us, so maybe we can raise them into more trustworthy pets!\"",
|
||||
"questCheetahBoss": "Cheetah",
|
||||
"questCheetahDropCheetahEgg": "Cheetah (Egg)",
|
||||
"questCheetahUnlockText": "Unlocks purchasable Cheetah eggs in the Market"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1095,6 +1095,7 @@ api.questEggs =
|
|||
Sheep: text: t('questEggSheepText'), adjective: t('questEggSheepAdjective'), canBuy: false
|
||||
Cuttlefish: text: t('questEggCuttlefishText'), adjective: t('questEggCuttlefishAdjective'), canBuy: false
|
||||
Whale: text: t('questEggWhaleText'), adjective: t('questEggWhaleAdjective'), canBuy: false
|
||||
Cheetah: text: t('questEggCheetahText'), adjective: t('questEggCheetahAdjective'), canBuy: false
|
||||
|
||||
_.each api.questEggs, (egg,key) ->
|
||||
_.defaults egg,
|
||||
|
|
@ -2038,6 +2039,26 @@ api.quests =
|
|||
gp: 0
|
||||
exp: 650
|
||||
|
||||
cheetah:
|
||||
text: t('questCheetahText')
|
||||
notes: t('questCheetahNotes')
|
||||
completion: t('questCheetahCompletion')
|
||||
value: 4
|
||||
category: 'pet'
|
||||
boss:
|
||||
name: t('questCheetahBoss')
|
||||
hp: 600
|
||||
str: 1.5
|
||||
drop:
|
||||
items: [
|
||||
{type: 'eggs', key: 'Cheetah', text: t('questCheetahDropCheetahEgg')}
|
||||
{type: 'eggs', key: 'Cheetah', text: t('questCheetahDropCheetahEgg')}
|
||||
{type: 'eggs', key: 'Cheetah', text: t('questCheetahDropCheetahEgg')}
|
||||
]
|
||||
gp: 43
|
||||
exp: 350
|
||||
unlock: t('questCheetahUnlockText')
|
||||
|
||||
_.each api.quests, (v,key) ->
|
||||
_.defaults v, {key,canBuy:true}
|
||||
b = v.boss
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@
|
|||
"rewire": "^2.3.3",
|
||||
"rimraf": "^2.2.8",
|
||||
"shelljs": "^0.4.0",
|
||||
"sinon": "^1.12.2",
|
||||
"sinon": "1.15.4",
|
||||
"sinon-chai": "^2.7.0",
|
||||
"superagent": "~0.15.7",
|
||||
"superagent-defaults": "~0.1.5",
|
||||
|
|
|
|||
|
|
@ -141,6 +141,16 @@ gulp.task('test:api:watch', [
|
|||
gulp.watch(['website/src/**', 'test/api/**'], ['test:api:clean']);
|
||||
});
|
||||
|
||||
gulp.task('test:karma:watch', ['test:prepare:build'], (cb) => {
|
||||
let runner = exec(
|
||||
testBin('karma start'),
|
||||
(err, stdout) => {
|
||||
cb(err);
|
||||
}
|
||||
);
|
||||
pipe(runner);
|
||||
});
|
||||
|
||||
gulp.task('test:karma', ['test:prepare:build'], (cb) => {
|
||||
let runner = exec(
|
||||
testBin('karma start --single-run'),
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ describe "Challenges", ->
|
|||
updateTodo = undefined
|
||||
group = undefined
|
||||
|
||||
before (done) ->
|
||||
beforeEach (done) ->
|
||||
async.waterfall [
|
||||
(cb) ->
|
||||
registerNewUser(cb, true)
|
||||
|
|
@ -23,9 +23,28 @@ describe "Challenges", ->
|
|||
group = res.body
|
||||
expect(group.members.length).to.equal 1
|
||||
expect(group.leader).to.equal user._id
|
||||
cb()
|
||||
, (cb) ->
|
||||
request.post(baseURL + "/challenges").send(
|
||||
group: group._id
|
||||
dailys: [
|
||||
type: "daily"
|
||||
text: "Challenge Daily"
|
||||
]
|
||||
todos: [{
|
||||
type: "todo"
|
||||
text: "Challenge Todo 1"
|
||||
notes: "Challenge Notes"
|
||||
}]
|
||||
rewards: []
|
||||
habits: []
|
||||
).end (res) ->
|
||||
challenge = res.body
|
||||
done()
|
||||
]
|
||||
|
||||
describe 'POST /challenge', ->
|
||||
|
||||
it "Creates a challenge", (done) ->
|
||||
request.post(baseURL + "/challenges").send(
|
||||
group: group._id
|
||||
|
|
@ -53,38 +72,74 @@ describe "Challenges", ->
|
|||
(cb) ->
|
||||
Challenge.findById res.body._id, cb
|
||||
], (err, results) ->
|
||||
_user = results[0]
|
||||
user = results[0]
|
||||
challenge = results[1]
|
||||
expect(_user.dailys[_user.dailys.length - 1].text).to.equal "Challenge Daily"
|
||||
updateTodo = _user.todos[_user.todos.length - 1]
|
||||
expect(updateTodo.text).to.equal "Challenge Todo 2"
|
||||
expect(user.dailys[user.dailys.length - 1].text).to.equal "Challenge Daily"
|
||||
expect(challenge.official).to.equal false
|
||||
user = _user
|
||||
done()
|
||||
|
||||
it "User updates challenge notes", (done) ->
|
||||
describe 'POST /challenge/:cid', ->
|
||||
it "updates the notes on user's version of a challenge task's note without updating the challenge", (done) ->
|
||||
updateTodo = challenge.todos[0]
|
||||
updateTodo.notes = "User overriden notes"
|
||||
async.waterfall [
|
||||
(cb) ->
|
||||
request.put(baseURL + "/user/tasks/" + updateTodo.id).send(updateTodo).end (res) ->
|
||||
done() # we'll do the check down below
|
||||
cb()
|
||||
, (cb) ->
|
||||
Challenge.findById challenge._id, cb
|
||||
, (chal, cb) ->
|
||||
expect(chal.todos[0].notes).to.eql("Challenge Notes")
|
||||
cb()
|
||||
, (cb) ->
|
||||
request.get(baseURL + "/user/tasks/" + updateTodo.id)
|
||||
.end (res) ->
|
||||
expect(res.body.notes).to.eql("User overriden notes")
|
||||
done()
|
||||
]
|
||||
|
||||
it "Change challenge daily", (done) ->
|
||||
it "changes user's copy of challenge tasks when the challenge is updated", (done) ->
|
||||
challenge.dailys[0].text = "Updated Daily"
|
||||
challenge.todos[0].notes = "Challenge Updated Todo Notes"
|
||||
request.post(baseURL + "/challenges/" + challenge._id).send(challenge).end (res) ->
|
||||
setTimeout (->
|
||||
request.post(baseURL + "/challenges/" + challenge._id)
|
||||
.send(challenge)
|
||||
.end (res) ->
|
||||
challenge = res.body
|
||||
expect(challenge.dailys[0].text).to.equal "Updated Daily"
|
||||
User.findById user._id, (err, _user) ->
|
||||
expectCode res, 200
|
||||
expect(_user.dailys[_user.dailys.length - 1].text).to.equal "Updated Daily"
|
||||
expect(res.body.todos[0].notes).to.equal "Challenge Updated Todo Notes"
|
||||
expect(_user.todos[_user.todos.length - 1].notes).to.equal "User overriden notes"
|
||||
user = _user
|
||||
done()
|
||||
), 500 # we have to wait a while for users' tasks to be updated, called async on server
|
||||
|
||||
it "Shows user notes on challenge page", (done) ->
|
||||
it "does not changes user's notes on tasks when challenge task notes are updated", (done) ->
|
||||
challenge.todos[0].notes = "Challenge Updated Todo Notes"
|
||||
request.post(baseURL + "/challenges/" + challenge._id)
|
||||
.send(challenge)
|
||||
.end (res) ->
|
||||
challenge = res.body
|
||||
expect(challenge.todos[0].notes).to.equal "Challenge Updated Todo Notes"
|
||||
User.findById user._id, (err, _user) ->
|
||||
expectCode res, 200
|
||||
expect(_user.todos[_user.todos.length - 1].notes).to.equal "Challenge Notes"
|
||||
done()
|
||||
|
||||
|
||||
it "shows user notes on challenge page", (done) ->
|
||||
updateTodo = challenge.todos[0]
|
||||
updateTodo.notes = "User overriden notes"
|
||||
async.waterfall [
|
||||
(cb) ->
|
||||
request.put(baseURL + "/user/tasks/" + updateTodo.id).send(updateTodo).end (res) ->
|
||||
cb()
|
||||
, (cb) ->
|
||||
Challenge.findById challenge._id, cb
|
||||
, (chal, cb) ->
|
||||
expect(chal.todos[0].notes).to.eql("Challenge Notes")
|
||||
cb()
|
||||
, (cb) ->
|
||||
request.get(baseURL + "/challenges/" + challenge._id + "/member/" + user._id).end (res) ->
|
||||
expect(res.body.todos[res.body.todos.length - 1].notes).to.equal "User overriden notes"
|
||||
done()
|
||||
]
|
||||
|
||||
it "Complete To-Dos", (done) ->
|
||||
User.findById user._id, (err, _user) ->
|
||||
|
|
@ -116,7 +171,7 @@ describe "Challenges", ->
|
|||
done()
|
||||
), 100 # we need to wait for challenge to update user, it's a background job for perf reasons
|
||||
|
||||
it "Admin creates a challenge", (done) ->
|
||||
it "admin creates a challenge", (done) ->
|
||||
User.findByIdAndUpdate user._id,
|
||||
$set:
|
||||
"contributor.admin": true
|
||||
|
|
@ -204,3 +259,85 @@ describe "Challenges", ->
|
|||
User.findById user._id, (err, _user) ->
|
||||
expect(_user.balance).to.equal 5.5
|
||||
done()
|
||||
|
||||
describe "non-owner permissions", () ->
|
||||
challenge = undefined
|
||||
|
||||
beforeEach (done) ->
|
||||
async.waterfall [
|
||||
(cb) ->
|
||||
request.post(baseURL + "/challenges").send(
|
||||
group: group._id
|
||||
name: 'challenge name'
|
||||
dailys: [
|
||||
type: "daily"
|
||||
text: "Challenge Daily"
|
||||
]
|
||||
).end (res) ->
|
||||
challenge = res.body
|
||||
cb()
|
||||
|
||||
(cb) ->
|
||||
registerNewUser(done, true)
|
||||
]
|
||||
|
||||
context "non-owner", () ->
|
||||
|
||||
it 'can not edit challenge', (done) ->
|
||||
challenge.name = 'foobar'
|
||||
request.post(baseURL + "/challenges/" + challenge._id)
|
||||
.send(challenge)
|
||||
.end (res) ->
|
||||
error = res.body.err
|
||||
|
||||
expect(error).to.eql("You don't have permissions to edit this challenge")
|
||||
done()
|
||||
|
||||
it 'can not close challenge', (done) ->
|
||||
request.post(baseURL + "/challenges/" + challenge._id + "/close?uid=" + user._id)
|
||||
.end (res) ->
|
||||
error = res.body.err
|
||||
|
||||
expect(error).to.eql("You don't have permissions to close this challenge")
|
||||
done()
|
||||
|
||||
it 'can not delete challenge', (done) ->
|
||||
request.del(baseURL + "/challenges/" + challenge._id)
|
||||
.end (res) ->
|
||||
error = res.body.err
|
||||
|
||||
expect(error).to.eql("You don't have permissions to delete this challenge")
|
||||
done()
|
||||
|
||||
context "non-owner that is an admin", () ->
|
||||
|
||||
beforeEach (done) ->
|
||||
User.findByIdAndUpdate(user._id, { 'contributor.admin': true }, done)
|
||||
|
||||
it 'can edit challenge', (done) ->
|
||||
challenge.name = 'foobar'
|
||||
request.post(baseURL + "/challenges/" + challenge._id)
|
||||
.send(challenge)
|
||||
.end (res) ->
|
||||
expect(res.body.err).to.not.exist
|
||||
Challenge.findById challenge._id, (err, chal) ->
|
||||
expect(chal.name).to.eql('foobar')
|
||||
done()
|
||||
|
||||
it 'can close challenge', (done) ->
|
||||
request.post(baseURL + "/challenges/" + challenge._id + "/close?uid=" + user._id)
|
||||
.end (res) ->
|
||||
expect(res.body.err).to.not.exist
|
||||
User.findById user._id, (err, usr) ->
|
||||
expect(usr.achievements.challenges[0]).to.eql(challenge.name)
|
||||
done()
|
||||
|
||||
it 'can delete challenge', (done) ->
|
||||
request.del(baseURL + "/challenges/" + challenge._id)
|
||||
.end (res) ->
|
||||
expect(res.body.err).to.not.exist
|
||||
request.get(baseURL + "/challenges/" + challenge._id)
|
||||
.end (res) ->
|
||||
error = res.body.err
|
||||
expect(error).to.eql("Challenge #{challenge._id} not found")
|
||||
done()
|
||||
|
|
|
|||
BIN
website/public/front/.DS_Store
vendored
BIN
website/public/front/css/.DS_Store
vendored
BIN
website/public/front/images/.DS_Store
vendored
BIN
website/public/front/images/avatar/.DS_Store
vendored
BIN
website/public/front/images/party/.DS_Store
vendored
BIN
website/public/front/images/presslogos/.DS_Store
vendored
BIN
website/public/front/images/testimonials/.DS_Store
vendored
BIN
website/public/front/images/uses/.DS_Store
vendored
BIN
website/public/front/js/.DS_Store
vendored
|
|
@ -225,7 +225,7 @@ api.update = function(req, res, next){
|
|||
},
|
||||
function(_before, cb) {
|
||||
if (!_before) return cb('Challenge ' + cid + ' not found');
|
||||
if (_before.leader != user._id) return cb("You don't have permissions to edit this challenge");
|
||||
if (_before.leader != user._id && !user.contributor.admin) return cb(shared.i18n.t('noPermissionEditChallenge', req.language));
|
||||
// Update the challenge, since syncing will need the updated challenge. But store `before` we're going to do some
|
||||
// before-save / after-save comparison to determine if we need to sync to users
|
||||
before = _before;
|
||||
|
|
@ -307,7 +307,7 @@ api['delete'] = function(req, res, next){
|
|||
},
|
||||
function(chal, cb){
|
||||
if (!chal) return cb('Challenge ' + cid + ' not found');
|
||||
if (chal.leader != user._id) return cb("You don't have permissions to edit this challenge");
|
||||
if (chal.leader != user._id && !user.contributor.admin) return cb(shared.i18n.t('noPermissionDeleteChallenge', req.language));
|
||||
if (chal.group != 'habitrpg') user.balance += chal.prize/4; // Refund gems to user if a non-tavern challenge
|
||||
user.save(cb);
|
||||
},
|
||||
|
|
@ -336,7 +336,7 @@ api.selectWinner = function(req, res, next) {
|
|||
function(_chal, cb){
|
||||
chal = _chal;
|
||||
if (!chal) return cb('Challenge ' + cid + ' not found');
|
||||
if (chal.leader != user._id) return cb("You don't have permissions to edit this challenge");
|
||||
if (chal.leader != user._id && !user.contributor.admin) return cb(shared.i18n.t('noPermissionCloseChallenge', req.language));
|
||||
User.findById(req.query.uid, cb)
|
||||
},
|
||||
function(winner, cb){
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@
|
|||
span.Pet_Currency_Gem1x.inline-gems
|
||||
//- buyable quest eggs. TODO: Get this from a collection so we don't have to maintain this ridiculous comma-delimited list
|
||||
//- The hard part will be the trex stuff, since it is allowed to exist with two quests
|
||||
each egg,quest in {gryphon:'Gryphon',hedgehog:'Hedgehog',ghost_stag:'Deer',rat:'Rat',octopus:'Octopus',dilatory_derby:'Seahorse',harpy:'Parrot',rooster:'Rooster',spider:'Spider',owl:'Owl',penguin:'Penguin',rock:'Rock',bunny:'Bunny',slime:'Slime',sheep:'Sheep',kraken:'Cuttlefish',whale:'Whale'}
|
||||
each egg,quest in {gryphon:'Gryphon',hedgehog:'Hedgehog',ghost_stag:'Deer',rat:'Rat',octopus:'Octopus',dilatory_derby:'Seahorse',harpy:'Parrot',rooster:'Rooster',spider:'Spider',owl:'Owl',penguin:'Penguin',rock:'Rock',bunny:'Bunny',slime:'Slime',sheep:'Sheep',kraken:'Cuttlefish',whale:'Whale',cheetah:'Cheetah'}
|
||||
div(ng-show='user.achievements.quests.#{quest} > 0')
|
||||
button.customize-option(class='Pet_Egg_#{egg}',
|
||||
popover='{{::Content.eggs.#{egg}.notes()}}', popover-append-to-body='true',
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ mixin petList(source)
|
|||
each t,k in env.Content.specialPets
|
||||
- var egg = k.split('-')[0], pot = k.split('-')[1]
|
||||
button(ng-if='user.items.pets["#{egg}-#{pot}"]', class="pet-button Pet-#{egg}-#{pot}", ng-class='{active: user.items.currentPet == "#{egg}-#{pot}"}', ng-click='choosePet("#{egg}", "#{pot}")', popover=env.t(t), popover-trigger='mouseenter', popover-placement='bottom')
|
||||
a(target='_blank', href='http://habitrpg.wikia.com/wiki/Contributing_to_HabitRPG')
|
||||
a(target='_blank', href='http://habitica.wikia.com/wiki/Contributing_to_Habitica')
|
||||
button(ng-if='!user.items.pets["Dragon-Hydra"]', class="pet-button pet-not-owned", popover-trigger='mouseenter', popover-placement='right', popover=env.t('rarePetPop1'), popover-title=env.t('rarePetPop2'))
|
||||
.PixelPaw-Gold
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
.pull-right
|
||||
span.inventory_special_trinket.inline-gems
|
||||
b x{{user.purchased.plan.consecutive.trinkets}}
|
||||
p!=env.t('timeTravelersPopover', {linkStart: "<a href='http://habitrpg.wikia.com/wiki/Mystery_Item' target='_blank'>", linkEnd: "</a>"})
|
||||
p!=env.t('timeTravelersPopover', {linkStart: "<a href='http://habitica.wikia.com/wiki/Mystery_Item' target='_blank'>", linkEnd: "</a>"})
|
||||
|
||||
.row: .col-md-12
|
||||
li.customize-menu.inventory-gear
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
.panel-heading
|
||||
h3.panel-title=env.t('challenges')
|
||||
|
|
||||
a.pull-right(target='_blank', href='http://habitrpg.wikia.com/wiki/Challenges')
|
||||
a.pull-right(target='_blank', href='http://habitica.wikia.com/wiki/Challenges')
|
||||
small=env.t('moreInfo')
|
||||
.panel-body.modal-fixed-height(bindonce='group.challenges')
|
||||
div(ng-if='group.challenges.length > 0')
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ script(type='text/ng-template', id='partials/options.social.challenges.detail.me
|
|||
|
||||
script(type='text/ng-template', id='partials/options.social.challenges.detail.html')
|
||||
// Edit button
|
||||
div(bindonce='challenge', ng-if='challenge.leader._id==user._id')
|
||||
div(bindonce='challenge', ng-if='challenge.leader._id==user._id || user.contributor.admin')
|
||||
div(ng-hide='challenge._locked==false')
|
||||
button.btn.btn-sm.btn-default(ng-click='edit(challenge)')=env.t('edit')
|
||||
button.btn.btn-sm.btn-success(ng-click='clone(challenge)')=env.t('clone')
|
||||
|
|
|
|||
|
|
@ -37,13 +37,13 @@
|
|||
a(target='_blank', href='https://vimeo.com/57654086')=env.t('tutorial')
|
||||
tr
|
||||
td
|
||||
a(target='_blank', href='http://habitrpg.wikia.com/wiki/FAQ')=env.t('FAQ')
|
||||
a(target='_blank', href='http://habitica.wikia.com/wiki/FAQ')=env.t('FAQ')
|
||||
tr
|
||||
td
|
||||
a(target='_blank', href='http://habitrpg.wikia.com/wiki/Glossary')=env.t('glossary')
|
||||
a(target='_blank', href='http://habitica.wikia.com/wiki/Glossary')=env.t('glossary')
|
||||
tr
|
||||
td
|
||||
a(target='_blank', href='http://habitrpg.wikia.com/')=env.t('wiki')
|
||||
a(target='_blank', href='http://habitica.wikia.com/')=env.t('wiki')
|
||||
tr
|
||||
td
|
||||
a(target='_blank', href='https://oldgods.net/habitrpg/habitrpg_user_data_display.html')=env.t('dataTool')
|
||||
|
|
@ -55,7 +55,7 @@
|
|||
a(target='_blank', href='https://trello.com/c/odmhIqyW/440-read-first-table-of-contents')= ' ' + env.t('requestAF')
|
||||
tr
|
||||
td
|
||||
a(target='_blank', href='http://habitrpg.wikia.com/wiki/Special:Forum')=env.t('community')
|
||||
a(target='_blank', href='http://habitica.wikia.com/wiki/Special:Forum')=env.t('community')
|
||||
|
||||
// Player Tiers
|
||||
.panel.panel-default(popover=env.t('tierPop'), popover-trigger="mouseenter", popover-placement="right")
|
||||
|
|
@ -66,10 +66,10 @@
|
|||
|<a href='/#/options/groups/hall'>
|
||||
=env.t('visitHeroes')
|
||||
|</a> <br />
|
||||
|<a href='http://habitrpg.wikia.com/wiki/Contributor_Rewards' target='_blank'>
|
||||
|<a href='http://habitica.wikia.com/wiki/Contributor_Rewards' target='_blank'>
|
||||
=env.t('conLearn')
|
||||
|</a> <br />
|
||||
|<a href='http://habitrpg.wikia.com/wiki/Contributing_to_HabitRPG' target='_blank'>
|
||||
|<a href='http://habitica.wikia.com/wiki/Contributing_to_Habitica' target='_blank'>
|
||||
=env.t('conLearnHow')
|
||||
|</a>
|
||||
table.table.table-striped.panel-tiers
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ nav.toolbar(ng-controller='MenuCtrl')
|
|||
a(ui-sref='options.settings.export')=env.t('exportData')
|
||||
ul.toolbar-submenu
|
||||
li
|
||||
a(target="_blank" href='http://habitrpg.wikia.com/wiki/')=env.t('overview')
|
||||
a(target="_blank" href='http://habitica.wikia.com/wiki/')=env.t('overview')
|
||||
li
|
||||
a(target="_blank" href='https://github.com/HabitRPG/habitrpg/issues/2760')=env.t('reportBug')
|
||||
li
|
||||
|
|
@ -64,9 +64,9 @@ nav.toolbar(ng-controller='MenuCtrl')
|
|||
li
|
||||
a(target="_blank" href='https://trello.com/c/odmhIqyW/440-read-first-table-of-contents')=env.t('requestAF')
|
||||
li
|
||||
a(target="_blank" href='http://habitrpg.wikia.com/wiki/Contributing_to_HabitRPG')=env.t('contributeToHRPG')
|
||||
a(target="_blank" href='http://habitica.wikia.com/wiki/Contributing_to_Habitica')=env.t('contributeToHRPG')
|
||||
li
|
||||
a(target="_blank" href='http://habitrpg.wikia.com/wiki/FAQ')=env.t('FAQ')
|
||||
a(target="_blank" href='http://habitica.wikia.com/wiki/FAQ')=env.t('FAQ')
|
||||
ul.toolbar-controls
|
||||
li.toolbar-subscribe-button
|
||||
button(ng-if='!user.purchased.plan.customerId',ui-sref='options.settings.subscription',popover-trigger='mouseenter',popover-placement='bottom',popover-title=env.t('subscriptions'),popover=env.t('subDescription'),popover-append-to-body='true')=env.t('subscribe')
|
||||
|
|
@ -147,7 +147,7 @@ nav.toolbar(ng-controller='MenuCtrl')
|
|||
li
|
||||
a(ui-sref='options.settings.export')=env.t('exportData')
|
||||
li.toolbar-button-dropdown.highlight
|
||||
a(target="_blank" href='http://habitrpg.wikia.com/wiki/')
|
||||
a(target="_blank" href='http://habitica.wikia.com/wiki/')
|
||||
span.glyphicon.glyphicon-question-sign
|
||||
span=env.t('help')
|
||||
a(ng-class='{active: _expandedMenu == "help"}', data-expand-menu, menu='help')
|
||||
|
|
@ -155,7 +155,7 @@ nav.toolbar(ng-controller='MenuCtrl')
|
|||
div(ng-show='_expandedMenu == "help"', data-close-menu)
|
||||
ul.toolbar-submenu
|
||||
li
|
||||
a(target="_blank" href='http://habitrpg.wikia.com/wiki/')=env.t('overview')
|
||||
a(target="_blank" href='http://habitica.wikia.com/wiki/')=env.t('overview')
|
||||
li
|
||||
a(target="_blank" href='https://github.com/HabitRPG/habitrpg/issues/2760')=env.t('reportBug')
|
||||
li
|
||||
|
|
@ -163,9 +163,9 @@ nav.toolbar(ng-controller='MenuCtrl')
|
|||
li
|
||||
a(target="_blank" href='https://trello.com/c/odmhIqyW/440-read-first-table-of-contents')=env.t('requestAF')
|
||||
li
|
||||
a(target="_blank" href='http://habitrpg.wikia.com/wiki/Contributing_to_HabitRPG')=env.t('contributeToHRPG')
|
||||
a(target="_blank" href='http://habitica.wikia.com/wiki/Contributing_to_Habitica')=env.t('contributeToHRPG')
|
||||
li
|
||||
a(target="_blank" href='http://habitrpg.wikia.com/wiki/FAQ')=env.t('FAQ')
|
||||
a(target="_blank" href='http://habitica.wikia.com/wiki/FAQ')=env.t('FAQ')
|
||||
ul.toolbar-subscribe(ng-if='!user.purchased.plan.customerId')
|
||||
li.toolbar-subscribe-button
|
||||
button.highlight(ui-sref='options.settings.subscription',popover-trigger='mouseenter',popover-placement='bottom',popover-title=env.t('subscriptions'),popover=env.t('subDescription'),popover-append-to-body='true')=env.t('subscribe')
|
||||
|
|
@ -252,7 +252,7 @@ nav.toolbar(ng-controller='MenuCtrl')
|
|||
a(ui-sref='options.settings.notifications')=env.t('notifications')
|
||||
ul.toolbar-submenu
|
||||
li
|
||||
a(href="http://habitrpg.wikia.com/wiki/FAQ", target='_blank')=env.t('FAQ')
|
||||
a(href="http://habitica.wikia.com/wiki/FAQ", target='_blank')=env.t('FAQ')
|
||||
li
|
||||
a(href="https://vimeo.com/57654086", target='_blank')=env.t('tutorials')
|
||||
ul.toolbar-controls
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ script(id='modals/achievements/contributor.html', type='text/ng-template')
|
|||
div(class="#{env.worldDmg.guide ? 'npc_justin_broken.float-left' : 'npc_justin.float-left'}")
|
||||
p
|
||||
!=env.t('contribModal', {name: "{{user.profile.name}}", level: "{{user.contributor.level}}"}) + ' '
|
||||
a(href='http://habitrpg.wikia.com/wiki/Contributor_Rewards' target='_blank')=env.t('contribLink')
|
||||
a(href='http://habitica.wikia.com/wiki/Contributor_Rewards' target='_blank')=env.t('contribLink')
|
||||
.modal-footer
|
||||
button.btn.btn-default(ng-click='set({"flags.contributor":false}); $close()')=env.t('ok')
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,38 @@
|
|||
h5 8/13/2015 - GOLD-PURCHASABLE CARDS
|
||||
h5 8/19/2015 - CHEETAH PET QUEST, iPAD APP, and GRYPHON CONTEST WINNER!
|
||||
hr
|
||||
tr
|
||||
td
|
||||
.Pet-Cheetah-Base.pull-right
|
||||
h5 Cheetah Pet Quest
|
||||
p A new pet quest is available in the <a href='/#/options/inventory/quests'>Quests Page</a>: Such a Cheetah! A Cheetah is speeding past incomplete tasks and burning them up before people can complete them. Can you put on the brakes? If so, you’ll be awarded with some cheetah eggs!
|
||||
p.small.muted by PainterProphet, tivaquinn, Unruly Hyena, Crawford, janetmango, Lemoness, and SabreCat
|
||||
tr
|
||||
td
|
||||
h5 iOS Update and iPad App
|
||||
p There’s a new iOS update! One of our awesome open-source contributors, Shadallark, has made our Habitica iOS app Universal so that it natively supports iPads. Enjoy all the new space for your tasks! We've also fixed several bugs, and excellent contributor kylefox has added a search bar.
|
||||
br
|
||||
p If you like the direction that we’ve been taking the app, please consider leaving us a review. It means a lot to us :) Questions? Concerns? Don't hesitate to email <a href='mailto:mobile@habitica.com' target='_blank'>mobile@habitica.com</a> and we will happily help you!
|
||||
br
|
||||
p This is an example of our fantastic open-source community at work - since our developers are spending all their time on the Android app, it would have been a long while before we could develop an iPad version if it weren’t for our excellent volunteers!
|
||||
br
|
||||
p Speaking of which, we are now accepting translations for the iOS app on Transifex <a href='https://www.transifex.com/habitrpg/habitica-ios/' target='_blank'>here</a>. If you speak another language, we’d love your help!
|
||||
p.small.muted by Shalladark, kylefox, and viirus
|
||||
tr
|
||||
td
|
||||
span.Mount_Body_Gryphon-RoyalPurple.pull-right
|
||||
span.Mount_Head_Gryphon-RoyalPurple.pull-right(style='margin:0')
|
||||
h5 Gryphon Contest Winner
|
||||
p After sorting through over 1600 entries, we finally have a name for our Royal Purple Gryphon: MELIOR! "Melior" is Latin for "better," because Habitica is a place where everyone is striving to become better at their goals in their quest to improve their lives.
|
||||
br
|
||||
p The name "Melior" was submitted by awesome user NobleTheSecond, who has received their prize. Congratulations! A secondary prize has also been awarded to TangyDragonBBQ, who independently submitted a slightly different variant of that name.
|
||||
br
|
||||
p Thank you so much to everyone who submitted names! They were very well-thought-out and very entertaining, and it was extremely difficult for the staff to make a decision. We hope you will join with us in welcoming Melior into the Habitica family!
|
||||
|
||||
hr
|
||||
a(href='/static/old-news', target='_blank') Read older news
|
||||
|
||||
mixin oldNews
|
||||
h5 8/13/2015 - GOLD-PURCHASABLE CARDS
|
||||
tr
|
||||
td
|
||||
.inventory_special_greeting.pull-right
|
||||
|
|
@ -10,10 +43,6 @@ h5 8/13/2015 - GOLD-PURCHASABLE CARDS
|
|||
p Enjoy!
|
||||
p.small.muted by PainterProphet, Teto Is Great, Lemoness, and SabreCat
|
||||
|
||||
hr
|
||||
a(href='/static/old-news', target='_blank') Read older news
|
||||
|
||||
mixin oldNews
|
||||
h5 8/4/2015 - NEW ITEMS IN THE ENCHANTED ARMOIRE AND AUGUST BACKGROUNDS
|
||||
tr
|
||||
td
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ div(ng-if='::task.type!="reward"')
|
|||
fieldset.option-group.advanced-option(ng-show="task._advanced")
|
||||
|
||||
legend.option-title
|
||||
a.hint.priority-multiplier-help(href='http://habitrpg.wikia.com/wiki/Difficulty', target='_blank', popover-title=env.t('difficultyHelpTitle'), popover-trigger='mouseenter', popover=env.t('difficultyHelpContent'))=env.t('difficulty')
|
||||
a.hint.priority-multiplier-help(href='http://habitica.wikia.com/wiki/Difficulty', target='_blank', popover-title=env.t('difficultyHelpTitle'), popover-trigger='mouseenter', popover=env.t('difficultyHelpContent'))=env.t('difficulty')
|
||||
ul.priority-multiplier
|
||||
li
|
||||
button(type='button', ng-class='{active: task.priority==0.1}',
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ block vars
|
|||
- var layoutEnv = env
|
||||
|
||||
block title
|
||||
title HabitRPG |
|
||||
title Habitica |
|
||||
=env.t('communityGuidelines')
|
||||
|
||||
block content
|
||||
|
|
@ -334,7 +334,7 @@ block content
|
|||
|:
|
||||
=env.t('commGuideLink02description')
|
||||
li
|
||||
a(href='http://habitrpg.wikia.com/wiki/HabitRPG_Wiki' target='_blank')=env.t('commGuideLink03')
|
||||
a(href='http://habitica.wikia.com/wiki/Habitica_Wiki' target='_blank')=env.t('commGuideLink03')
|
||||
|:
|
||||
=env.t('commGuideLink03description')
|
||||
li
|
||||
|
|
@ -342,19 +342,19 @@ block content
|
|||
|:
|
||||
=env.t('commGuideLink04description')
|
||||
li
|
||||
a(href='https://trello.com/b/EpoYEYod/habitrpg' target='_blank')=env.t('commGuideLink05')
|
||||
a(href='https://trello.com/b/EpoYEYod/' target='_blank')=env.t('commGuideLink05')
|
||||
|:
|
||||
=env.t('commGuideLink05description')
|
||||
li
|
||||
a(href='https://trello.com/b/mXK3Eavg/habitrpg-mobile' target='_blank')=env.t('commGuideLink06')
|
||||
a(href='https://trello.com/b/mXK3Eavg/' target='_blank')=env.t('commGuideLink06')
|
||||
|:
|
||||
=env.t('commGuideLink06description')
|
||||
li
|
||||
a(href='https://trello.com/b/vwuE9fbO/habitrpg-pixel-art' target='_blank')=env.t('commGuideLink07')
|
||||
a(href='https://trello.com/b/vwuE9fbO/' target='_blank')=env.t('commGuideLink07')
|
||||
|:
|
||||
=env.t('commGuideLink07description')
|
||||
li
|
||||
a(href='https://trello.com/b/nnv4QIRX/habitrpg-quests' target='_blank')=env.t('commGuideLink08')
|
||||
a(href='https://trello.com/b/nnv4QIRX/' target='_blank')=env.t('commGuideLink08')
|
||||
|:
|
||||
=env.t('commGuideLink08description')
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ block content
|
|||
p
|
||||
=env.t('reportAccountProblems')
|
||||
| :
|
||||
a(href='mailto:admin@habitica.com') admin@habitrpg.com
|
||||
a(href='mailto:admin@habitica.com') admin@habitica.com
|
||||
br
|
||||
=env.t('reportBug')
|
||||
| :
|
||||
|
|
@ -23,20 +23,20 @@ block content
|
|||
br
|
||||
=env.t('reportCommunityIssues')
|
||||
| :
|
||||
a(href='mailto:leslie@habitica.com') leslie@habitrpg.com
|
||||
a(href='mailto:leslie@habitica.com') leslie@habitica.com
|
||||
br
|
||||
=env.t('generalQuestionsSite')
|
||||
| :
|
||||
a(target='_blank', href='http://habitrpg.wikia.com/wiki/The_Keep:The_Newbies_Guild') Newbies Guild
|
||||
a(target='_blank', href='http://habitica.wikia.com/wiki/The_Keep:The_Newbies_Guild') Newbies Guild
|
||||
br
|
||||
=env.t('businessInquiries')
|
||||
| :
|
||||
a(href='mailto:vicky@habitica.com') vicky@habitrpg.com
|
||||
a(href='mailto:vicky@habitica.com') vicky@habitica.com
|
||||
br
|
||||
=env.t('merchandiseInquiries')
|
||||
| :
|
||||
a(href='mailto:store@habitica.com') store@habitrpg.com
|
||||
a(href='mailto:store@habitica.com') store@habitica.com
|
||||
br
|
||||
=env.t('marketingInquiries')
|
||||
| :
|
||||
a(href='mailto:leslie@habitica.com') leslie@habitrpg.com
|
||||
a(href='mailto:leslie@habitica.com') leslie@habitica.com
|
||||
|
|
|
|||
|
|
@ -15,15 +15,15 @@ block content
|
|||
p
|
||||
=env.t('indivPlan1')
|
||||
|
|
||||
a(href='http://habitrpg.wikia.com/wiki/Guilds' target='_blank')=env.t('guilds')
|
||||
a(href='http://habitica.wikia.com/wiki/Guilds' target='_blank')=env.t('guilds')
|
||||
= ' ' + env.t('and') + ' '
|
||||
a(href='http://habitrpg.wikia.com/wiki/Challenges' target='_blank')=env.t('challenges')
|
||||
a(href='http://habitica.wikia.com/wiki/Challenges' target='_blank')=env.t('challenges')
|
||||
|
|
||||
=env.t('indivPlan2')
|
||||
p
|
||||
=env.t('groupText1')
|
||||
|
|
||||
a(href='http://habitrpg.wikia.com/wiki/Habitica' target='_blank')=env.t('habitica')
|
||||
a(href='http://habitica.wikia.com/wiki/Habitica' target='_blank')=env.t('habitica')
|
||||
|.
|
||||
=env.t('groupText2')
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ block vars
|
|||
- var layoutEnv = env
|
||||
|
||||
block title
|
||||
title HabitRPG | Privacy
|
||||
title Habitica | Privacy
|
||||
|
||||
block content
|
||||
.row
|
||||
|
|
@ -20,8 +20,8 @@ block content
|
|||
p
|
||||
strong PLEASE READ THIS PRIVACY POLICY CAREFULLY.
|
||||
br
|
||||
| By accessing or otherwise using habitrpg.com or any sub domains thereto ("the Sites"),
|
||||
| or using a habitrpg.com or HabitRPG application on a mobile device ("the Applications"),
|
||||
| By accessing or otherwise using habitica.com or any sub domains thereto ("the Sites"),
|
||||
| or using a habitica.com or Habitica application on a mobile device ("the Applications"),
|
||||
| you agree to be bound contractually by this Privacy Policy. Individually
|
||||
| or collectively, the Applications and the Sites may be referred to as
|
||||
| the "Services."
|
||||
|
|
@ -274,7 +274,7 @@ block content
|
|||
| personally identifiable information without your permission or consent,
|
||||
| we will remove the information from our active list, at your request. To
|
||||
| request the removal of your child's information, please email us at
|
||||
| <a href='mailto:admin@habitrpg.com' target='_blank'>admin@habitrpg.com</a> and be sure to include in
|
||||
| <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> and be sure to include in
|
||||
| your message the same login information that your child submitted.
|
||||
p
|
||||
strong
|
||||
|
|
@ -305,4 +305,4 @@ block content
|
|||
| Los Angeles, CA 90025
|
||||
br
|
||||
| Email:
|
||||
a(href='mailto:admin@habitrpg.com') admin@habitrpg.com
|
||||
a(href='mailto:admin@habitica.com') admin@habitica.com
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@ block content
|
|||
br
|
||||
| Los Angeles, CA 90025
|
||||
br
|
||||
| E-Mail: <a href='mailto:admin@habitrpg.com'>admin@habitrpg.com</a>
|
||||
| E-Mail: <a href='mailto:admin@habitica.com'>admin@habitica.com</a>
|
||||
p
|
||||
| Again, we cannot take action unless you give us all the required
|
||||
| information.
|
||||
|
|
@ -574,4 +574,4 @@ block content
|
|||
strong Contacting Us
|
||||
br
|
||||
| If you have any questions about these Terms of Service, please contact
|
||||
| us at <a href='mailto:admin@habitrpg.com'>admin@habitrpg.com</a>
|
||||
| us at <a href='mailto:admin@habitica.com'>admin@habitica.com</a>
|
||||
|
|
|
|||