mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-08-04 09:39:23 +00:00
Merge branch 'develop' of https://github.com/lefnire/habitrpg into develop
This commit is contained in:
commit
5f48658eff
6 changed files with 107 additions and 85 deletions
|
|
@ -75,7 +75,7 @@
|
|||
"AdvancedOptions": "Разширени опции",
|
||||
"Difficulty": "Трудност",
|
||||
"DifficultyHelpTitle": "Колко труден е тази задача?",
|
||||
"DifficultyHelpContent": "Това умножава стойността на задачата. Използвай пестеливо, разчитай повече на нашия алгоритъм за корекция на стойностите. Но някои задачи са много по-трудни ("Да си напишеш дисертацията" срещу "Да си почистиш зъбите с конец"). Кликни за повече информация.",
|
||||
"DifficultyHelpContent": "Това умножава стойността на задачата. Използвай пестеливо, разчитай повече на нашия алгоритъм за корекция на стойностите. Но някои задачи са много по-трудни (\"Да си напишеш дисертацията\" срещу \"Да си почистиш зъбите с конец\"). Кликни за повече информация.",
|
||||
"Easy": "Лесно",
|
||||
"Medium": "Средно",
|
||||
"Hard": "Трудно",
|
||||
|
|
|
|||
|
|
@ -250,12 +250,12 @@
|
|||
"NPCAugustinText" : "Welcome to the Market! I'm the merchant, Alexander. Dying to get that particular pet you're after, but don't want to wait for it to drop? Buy it here!",
|
||||
"NPCJohanssonName" : "Daniel Johansson",
|
||||
"NPCJohanssonText" : "Welcome to the Tavern! I'm Daniel, the bar keep. If you want to rest a while (going on vacation?), I'll set you up at the inn - dailies won't hurt you while you're resting. The minimum stay is 24h, but you can check out any time. Stay a while & meet the clientele.",
|
||||
"NPCMelchiorName" : "Ian Melchior "
|
||||
"NPCMelchiorText" : ""
|
||||
"NPCBowenName" : "Justin Bowen"
|
||||
"NPCBowenText" : ""
|
||||
"NPCBochName" : "Matt Boch"
|
||||
"NPCBochText" : ""
|
||||
"NPCMelchiorName" : "Ian Melchior ",
|
||||
"NPCMelchiorText" : "",
|
||||
"NPCBowenName" : "Justin Bowen",
|
||||
"NPCBowenText" : "",
|
||||
"NPCBochName" : "Matt Boch",
|
||||
"NPCBochText" : "",
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -5,76 +5,94 @@
|
|||
// mongo habitrpg ./node_modules/underscore/underscore.js migrations/20130327_apply_tokens.js
|
||||
|
||||
var mapping = [
|
||||
{ // $1
|
||||
{
|
||||
tier: 1,
|
||||
tokens: 0,
|
||||
users: []
|
||||
},
|
||||
{ // $5
|
||||
{
|
||||
tier: 5,
|
||||
tokens: 20,
|
||||
users: ['9']
|
||||
users: []
|
||||
},
|
||||
{ // $10
|
||||
{
|
||||
tier: 10,
|
||||
tokens: 50,
|
||||
users: []
|
||||
},
|
||||
{ // $15
|
||||
{
|
||||
tier: 15,
|
||||
tokens: 100,
|
||||
users: []
|
||||
},
|
||||
{ // $30
|
||||
{
|
||||
tier: 30,
|
||||
tokens: 150,
|
||||
users: []
|
||||
},
|
||||
{ // $45
|
||||
{
|
||||
tier: 45,
|
||||
tokens: 170,
|
||||
users: []
|
||||
},
|
||||
{ // $60
|
||||
{
|
||||
tier: 60,
|
||||
tokens: 200,
|
||||
users: []
|
||||
},
|
||||
{ // $70
|
||||
{
|
||||
tier: 70,
|
||||
tokens: 240,
|
||||
users: []
|
||||
},
|
||||
{ // $80
|
||||
{
|
||||
tier: 80,
|
||||
tokens: 240,
|
||||
users: []
|
||||
},
|
||||
{ // $90
|
||||
{
|
||||
tier: 90,
|
||||
tokens: 280,
|
||||
users: []
|
||||
},
|
||||
{ // $300
|
||||
{
|
||||
tier: 300,
|
||||
tokens: 500,
|
||||
users: []
|
||||
},
|
||||
{ // $800
|
||||
{
|
||||
tier: 800,
|
||||
tokens: 500,
|
||||
users: []
|
||||
}
|
||||
];
|
||||
|
||||
db.users.find().forEach(function(user){
|
||||
if (!user._id) return;
|
||||
|
||||
var possibleUserIds = [user._id];
|
||||
if (!!user.local) {
|
||||
if (!!user.local.username) possibleUserIds.push(user.local.username);
|
||||
if (!!user.local.email) possibleUserIds.push(user.local.email);
|
||||
}
|
||||
|
||||
_.each(mapping, function(tier){
|
||||
if(
|
||||
(!user.backer || !user.backer.tokensApplied) &&
|
||||
var userInTier = !_.isEmpty(_.intersection(tier.users, possibleUserIds));
|
||||
if (userInTier) {
|
||||
var tokenInc = 0,
|
||||
backer = user.backer || {};
|
||||
if (!backer.tokensApplied) {
|
||||
tokenInc = tier.tokens;
|
||||
backer.tokensApplied = true;
|
||||
}
|
||||
backer.tier = tier.tier;
|
||||
|
||||
(
|
||||
_.contains(tier.users, user._id) ||
|
||||
!!user.local && (
|
||||
_.contains(tier.users, user.local.username) ||
|
||||
_.contains(tier.users, user.local.email)
|
||||
)
|
||||
)
|
||||
) {
|
||||
try {
|
||||
db.users.update(
|
||||
{_id:user._id},
|
||||
{
|
||||
$set: { 'backer.tokensApplied': true, 'flags.ads': 'hide' },
|
||||
$inc: { balance: (tier.tokens/4) }
|
||||
$set: { backer: backer, 'flags.ads': 'hide' },
|
||||
$inc: { balance: (tokenInc/4) }
|
||||
}
|
||||
);
|
||||
} catch(e) {
|
||||
|
|
@ -83,27 +101,4 @@ db.users.find().forEach(function(user){
|
|||
}
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
// This doesn't work, but shows the idea we're after better than the above
|
||||
/*
|
||||
_.each(mapping, function(tier){
|
||||
db.users.update(
|
||||
{
|
||||
$or: [
|
||||
{ _id: { $in: tier.users } },
|
||||
{ 'auth.local.username': { $in: tier.users } },
|
||||
{ 'auth.local.email': { $in: tier.users } }
|
||||
],
|
||||
'backer.tokensApplied': { $exists: false }
|
||||
},
|
||||
|
||||
{
|
||||
$set: { 'backer.tokensApplied': true, 'flags.ads': 'hide' },
|
||||
$inc: { balance: (tier.tokens/4) }
|
||||
},
|
||||
|
||||
{ multi: true}
|
||||
)
|
||||
})
|
||||
*/
|
||||
})
|
||||
|
|
@ -178,37 +178,64 @@
|
|||
<!--<div class='achievement achievement-bow'></div>-->
|
||||
<!--<div class='achievement achievement-shield'></div>-->
|
||||
<!--<div class='achievement achievement-karaoke'></div>-->
|
||||
{{#if @profile.backer.npc}}
|
||||
<div class='achievement achievement-helm'></div><span class='label label-success'>{{@profile.backer.npc}} NPC</span>
|
||||
<hr/>
|
||||
{{/}}
|
||||
{{#if @profile.backer.contributor}}
|
||||
<div class='achievement achievement-firefox'></div><span class='label label-inverse'>{{@profile.backer.contributor}}</span>
|
||||
<hr/>
|
||||
{{/}}
|
||||
{{#if @profile.backer.tier}}
|
||||
<div class='achievement achievement-heart'></div>Kickstarter Backer - ${{@profile.backer.tier}} Tier
|
||||
<hr/>
|
||||
{{/}}
|
||||
{#if @profile.achievements.streak}
|
||||
<div class='achievement achievement-thermometer'></div> {@profile.achievements.streak} Streak Achievement(s)
|
||||
<hr/>
|
||||
{/}
|
||||
{#if @profile.achievements.originalUser}
|
||||
<div class='achievement achievement-cake'></div>Original User
|
||||
<hr/>
|
||||
{/}
|
||||
{#if @profile.achievements.beastMaster}
|
||||
<div class='achievement achievement-rat'></div>Beast Master
|
||||
<hr/>
|
||||
{/}
|
||||
{#if @profile.achievements.ultimateGear}
|
||||
<div class='achievement achievement-armor'></div>Ultimate Gear
|
||||
<hr/>
|
||||
{/}
|
||||
|
||||
<app:avatar:achievement unlocked={{@profile.backer.npc}} classes='achievement-helm' unlockable=false profile={{@profile}}>
|
||||
<p><span class='label label-success'>{{@profile.backer.npc}} NPC</span></p>
|
||||
<small>Backed the Kickstarter project at the maximum level!</small>
|
||||
</app:avatar:achievement>
|
||||
|
||||
<app:avatar:achievement unlocked={{@profile.backer.contributor}} classes='achievement-firefox' unlockable=true profile={{@profile}}>
|
||||
<p>
|
||||
{{#if @profile.backer.contributor}}
|
||||
<span class='label label-inverse'>{{@profile.backer.contributor}}</span>
|
||||
{{else}}
|
||||
<span class='label'>Contributor</span>
|
||||
{{/}}
|
||||
</p>
|
||||
<small>Has contributed to HabitRPG (code, design, pixel art, legal advice, etc)</small>
|
||||
</app:avatar:achievement>
|
||||
|
||||
<app:avatar:achievement unlocked={{@profile.backer.tier}} classes='achievement-heart' unlockable=false profile={{@profile}}>
|
||||
<p>Kickstarter Backer - ${{@profile.backer.tier}} Tier</p>
|
||||
<small>Backed the Kickstarter Project</small>
|
||||
</app:avatar:achievement>
|
||||
|
||||
<app:avatar:achievement unlocked={@profile.achievements.streak} classes='achievement-thermometer' unlockable=true profile={@profile}>
|
||||
<p>{#if @profile.achievements.streak}{@profile.achievements.streak}{else}0{/} Streak Achievement(s)</p>
|
||||
<small>Has performed {#if @profile.achievements.streak}{@profile.achievements.streak}{else}0{/} 21-day streaks on Dailies</small>
|
||||
</app:avatar:achievement>
|
||||
|
||||
<app:avatar:achievement unlocked={@profile.achievements.originalUser} classes='achievement-cake' unlockable=false profile={@profile}>
|
||||
<p>Original User</p>
|
||||
<small>Goes way back to the Habit's days of yore (bless them for soldiering through bugs!)</small>
|
||||
</app:avatar:achievement>
|
||||
|
||||
<app:avatar:achievement unlocked={@profile.achievements.ultimateGear} classes='achievement-armor' unlockable=true profile={@profile}>
|
||||
<p>Ultimate Gear</p>
|
||||
<small>Has upgraded to the maximum weapon and armor set</small>
|
||||
</app:avatar:achievement>
|
||||
|
||||
<app:avatar:achievement unlocked={@profile.achievements.beastMaster} classes='achievement-rat' unlockable=true profile={@profile}>
|
||||
<p>Beast Master</p>
|
||||
<small>Has found all 90 pets (insanely difficult, give this user props!)</small>
|
||||
</app:avatar:achievement>
|
||||
|
||||
</div>
|
||||
|
||||
<achievement: nonvoid>
|
||||
{#if @unlocked}
|
||||
<div class='achievement {{@classes}}'></div>{@content}
|
||||
<hr/>
|
||||
{else if @unlockable} <!-- only show silhouettes on own tab -->
|
||||
{{#if equal(_user.id,@profile.id)}}
|
||||
<span class='muted'>
|
||||
{@content}
|
||||
</span>
|
||||
<hr/>
|
||||
{{/}}
|
||||
{/}
|
||||
|
||||
|
||||
<inventory:>
|
||||
<!-- we'll have other inventory here later too, like enchantments, quest scrolls, etc -->
|
||||
<app:pets:inventory/>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<li><a data-toggle='tab' data-target="#profileStable"><i class='icon-leaf'></i> Stable</a></li>
|
||||
{/if}
|
||||
<li><a data-toggle='tab' data-target="#profileTavern"><i class='icon-glass'></i> Tavern</a></li>
|
||||
{#if _user.achievements}<li><a data-toggle='tab' data-target="#profileAchievements"><i class='icon-certificate'></i> Achievements</a></li>{/}
|
||||
<li><a data-toggle='tab' data-target="#profileAchievements"><i class='icon-certificate'></i> Achievements</a></li>
|
||||
{{#if _loggedIn}}
|
||||
<li><a data-toggle='tab' data-target="#profileSettings"><i class='icon-wrench'></i> Settings</a></li>
|
||||
{{/}}
|
||||
|
|
|
|||
Loading…
Reference in a new issue