Merge branch 'develop' into TheHollidayInn-menu-hide-when-navigate-away

This commit is contained in:
Blade Barringer 2015-08-22 17:03:26 -05:00
commit 9643b6e650
80 changed files with 9530 additions and 9122 deletions

File diff suppressed because one or more lines are too long

View file

@ -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;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

After

Width:  |  Height:  |  Size: 241 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 110 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 89 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 543 KiB

After

Width:  |  Height:  |  Size: 575 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 235 KiB

After

Width:  |  Height:  |  Size: 243 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 KiB

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View file

@ -56,5 +56,8 @@
"backToChallenges": "Back to all challenges",
"prizeValue": "<%= gemcount %>&nbsp;<%= 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"
}

View file

@ -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",

View file

@ -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"
}

View file

@ -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,
@ -2037,6 +2038,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}

View file

@ -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",

View file

@ -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'),

View file

@ -10,7 +10,7 @@ describe "Challenges", ->
updateTodo = undefined
group = undefined
before (done) ->
beforeEach (done) ->
async.waterfall [
(cb) ->
registerNewUser(cb, true)
@ -23,68 +23,123 @@ 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()
]
it "Creates a challenge", (done) ->
request.post(baseURL + "/challenges").send(
group: group._id
dailys: [
type: "daily"
text: "Challenge Daily"
]
todos: [{
type: "todo"
text: "Challenge Todo 1"
notes: "Challenge Notes"
}, {
type: "todo"
text: "Challenge Todo 2"
notes: "Challenge Notes"
}]
rewards: []
habits: []
official: true
).end (res) ->
expectCode res, 200
async.parallel [
(cb) ->
User.findById user._id, cb
(cb) ->
Challenge.findById res.body._id, cb
], (err, results) ->
_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(challenge.official).to.equal false
user = _user
done()
it "User updates challenge notes", (done) ->
updateTodo.notes = "User overriden notes"
request.put(baseURL + "/user/tasks/" + updateTodo.id).send(updateTodo).end (res) ->
done() # we'll do the check down below
it "Change challenge daily", (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 (->
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
describe 'POST /challenge', ->
it "Creates a challenge", (done) ->
request.post(baseURL + "/challenges").send(
group: group._id
dailys: [
type: "daily"
text: "Challenge Daily"
]
todos: [{
type: "todo"
text: "Challenge Todo 1"
notes: "Challenge Notes"
}, {
type: "todo"
text: "Challenge Todo 2"
notes: "Challenge Notes"
}]
rewards: []
habits: []
official: true
).end (res) ->
expectCode res, 200
async.parallel [
(cb) ->
User.findById user._id, cb
(cb) ->
Challenge.findById res.body._id, cb
], (err, results) ->
user = results[0]
challenge = results[1]
expect(user.dailys[user.dailys.length - 1].text).to.equal "Challenge Daily"
expect(challenge.official).to.equal false
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) ->
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()
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) ->
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 "changes user's copy of challenge tasks when the challenge is updated", (done) ->
challenge.dailys[0].text = "Updated Daily"
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"
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()

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -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){

View file

@ -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',

View file

@ -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

View file

@ -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

View file

@ -3,7 +3,7 @@
.panel-heading
h3.panel-title=env.t('challenges')
|&nbsp;
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')

View file

@ -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')

View file

@ -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

View file

@ -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

View file

@ -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')

View file

@ -1,19 +1,48 @@
h5 8/13/2015 - GOLD-PURCHASABLE CARDS
h5 8/19/2015 - CHEETAH PET QUEST, iPAD APP, and GRYPHON CONTEST WINNER!
hr
tr
td
.inventory_special_greeting.pull-right
.inventory_special_thankyou.pull-right
h5 Gold-Purchasable Cards
p There are two new types of Card available in the <a href='/#/options/inventory/drops'>Market</a> that you can send to the people in your Party: Greeting Cards and Thank-You Cards! Both cost 10 Gold, and will be available year-round. Sending or receiving these cards will give you some fun achievements!
.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, youll 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 Theres 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 Enjoy!
p.small.muted by PainterProphet, Teto Is Great, Lemoness, and SabreCat
p If you like the direction that weve 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 werent 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, wed 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
.inventory_special_thankyou.pull-right
h5 Gold-Purchasable Cards
p There are two new types of Card available in the <a href='/#/options/inventory/drops'>Market</a> that you can send to the people in your Party: Greeting Cards and Thank-You Cards! Both cost 10 Gold, and will be available year-round. Sending or receiving these cards will give you some fun achievements!
br
p Enjoy!
p.small.muted by PainterProphet, Teto Is Great, Lemoness, and SabreCat
h5 8/4/2015 - NEW ITEMS IN THE ENCHANTED ARMOIRE AND AUGUST BACKGROUNDS
tr
td

View file

@ -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}',

View file

@ -17,7 +17,7 @@ block vars
- var layoutEnv = env
block title
title HabitRPG &VerticalLine;&nbsp;
title Habitica &VerticalLine;&nbsp;
=env.t('communityGuidelines')
block content
@ -334,7 +334,7 @@ block content
|:&nbsp;
=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')
|:&nbsp;
=env.t('commGuideLink03description')
li
@ -342,19 +342,19 @@ block content
|:&nbsp;
=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')
|:&nbsp;
=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')
|:&nbsp;
=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')
|:&nbsp;
=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')
|:&nbsp;
=env.t('commGuideLink08description')

View file

@ -15,28 +15,28 @@ block content
p
=env.t('reportAccountProblems')
| &colon;&nbsp;
a(href='mailto:admin@habitica.com') admin&commat;habitrpg&period;com
a(href='mailto:admin@habitica.com') admin&commat;habitica&period;com
br
=env.t('reportBug')
| &colon;&nbsp;
a(target='_blank', href='https://github.com/HabitRPG/habitrpg/issues?q=is%3Aopen') Github
br
=env.t('reportCommunityIssues')
=env.t('reportCommunityIssues')
| &colon;&nbsp;
a(href='mailto:leslie@habitica.com') leslie&commat;habitrpg&period;com
a(href='mailto:leslie@habitica.com') leslie&commat;habitica&period;com
br
=env.t('generalQuestionsSite')
=env.t('generalQuestionsSite')
| &colon;&nbsp;
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')
=env.t('businessInquiries')
| &colon;&nbsp;
a(href='mailto:vicky@habitica.com') vicky&commat;habitrpg&period;com
a(href='mailto:vicky@habitica.com') vicky&commat;habitica&period;com
br
=env.t('merchandiseInquiries')
=env.t('merchandiseInquiries')
| &colon;&nbsp;
a(href='mailto:store@habitica.com') store&commat;habitrpg&period;com
a(href='mailto:store@habitica.com') store&commat;habitica&period;com
br
=env.t('marketingInquiries')
=env.t('marketingInquiries')
| &colon;&nbsp;
a(href='mailto:leslie@habitica.com') leslie&commat;habitrpg&period;com
a(href='mailto:leslie@habitica.com') leslie&commat;habitica&period;com

View file

@ -15,15 +15,15 @@ block content
p
=env.t('indivPlan1')
|&nbsp;
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')
|&nbsp;
=env.t('indivPlan2')
p
=env.t('groupText1')
|&nbsp;
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')
|.&nbsp;
=env.t('groupText2')

View file

@ -4,7 +4,7 @@ block vars
- var layoutEnv = env
block title
title HabitRPG &VerticalLine; Privacy
title Habitica &VerticalLine; Privacy
block content
.row
@ -20,8 +20,8 @@ block content
p
strong PLEASE READ THIS PRIVACY POLICY CAREFULLY&period;
br
| By accessing or otherwise using habitrpg&period;com or any sub domains thereto &lpar;&quot;the Sites&quot;&rpar;&comma;
| or using a habitrpg&period;com or HabitRPG application on a mobile device &lpar;&quot;the Applications&quot;&rpar;&comma;
| By accessing or otherwise using habitica&period;com or any sub domains thereto &lpar;&quot;the Sites&quot;&rpar;&comma;
| or using a habitica&period;com or Habitica application on a mobile device &lpar;&quot;the Applications&quot;&rpar;&comma;
| you agree to be bound contractually by this Privacy Policy&period; Individually
| or collectively&comma; the Applications and the Sites may be referred to as
| the &quot;Services&period;&quot;
@ -274,7 +274,7 @@ block content
| personally identifiable information without your permission or consent&comma;
| we will remove the information from our active list&comma; at your request&period; To
| request the removal of your child&apos;s information&comma; 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&period;
p
strong
@ -305,4 +305,4 @@ block content
| Los Angeles, CA 90025
br
| Email&colon;&nbsp;
a(href='mailto:admin@habitrpg.com') admin@habitrpg.com
a(href='mailto:admin@habitica.com') admin@habitica.com

View file

@ -220,7 +220,7 @@ block content
br
| Los Angeles, CA 90025
br
| E-Mail&colon; <a href='mailto:admin@habitrpg.com'>admin@habitrpg.com</a>
| E-Mail&colon; <a href='mailto:admin@habitica.com'>admin@habitica.com</a>
p
| Again&comma; we cannot take action unless you give us all the required
| information&period;
@ -574,4 +574,4 @@ block content
strong Contacting Us
br
| If you have any questions about these Terms of Service&comma; 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>