diff --git a/locales/en/content.json b/locales/en/content.json index 7b8ce9ce79..ca5cdcd639 100644 --- a/locales/en/content.json +++ b/locales/en/content.json @@ -5,82 +5,82 @@ "weaponWarrior0Text": "Training Sword", "weaponWarrior0Notes": "Practice weapon. Confers no benefit.", "weaponWarrior1Text": "Sword", - "weaponWarrior1Notes": "Common soldier's blade. Increases STR by 3.", + "weaponWarrior1Notes": "Common soldier's blade. Increases STR by <%= str %>.", "weaponWarrior2Text": "Axe", - "weaponWarrior2Notes": "Double-bitted battle-axe. Increases STR by 6", + "weaponWarrior2Notes": "Double-bitted battle-axe. Increases STR by <%= str %>", "weaponWarrior3Text": "Morning Star", - "weaponWarrior3Notes": "Heavy club with brutal spikes. Increases STR by 9.", + "weaponWarrior3Notes": "Heavy club with brutal spikes. Increases STR by <%= str %>.", "weaponWarrior4Text": "Sapphire Blade", - "weaponWarrior4Notes": "Sword whose edge bites like the north wind. Increases STR by 12.", + "weaponWarrior4Notes": "Sword whose edge bites like the north wind. Increases STR by <%= str %>.", "weaponWarrior5Text": "Ruby Sword", - "weaponWarrior5Notes": "Weapon whose forge-glow never fades. Increases STR by 15.", + "weaponWarrior5Notes": "Weapon whose forge-glow never fades. Increases STR by <%= str %>.", "weaponWarrior6Text": "Golden Sword", - "weaponWarrior6Notes": "Bane of creatures of darkness. Increases STR by 18.", + "weaponWarrior6Notes": "Bane of creatures of darkness. Increases STR by <%= str %>.", "weaponRogue0Text": "Dagger", "weaponRogue0Notes": "A rogue's most basic weapon. Confers no benefit.", "weaponRogue1Text": "Short Sword", - "weaponRogue1Notes": "Light, concealable blade. Increases STR by 2.", + "weaponRogue1Notes": "Light, concealable blade. Increases STR by <%= str %>.", "weaponRogue2Text": "Scimitar", - "weaponRogue2Notes": "Slashing sword, swift to deliver a killing blow. Increases STR by 3.", + "weaponRogue2Notes": "Slashing sword, swift to deliver a killing blow. Increases STR by <%= str %>.", "weaponRogue3Text": "Kukri", - "weaponRogue3Notes": "Distinctive bush knife, both survival tool and weapon. Increases STR by 4.", + "weaponRogue3Notes": "Distinctive bush knife, both survival tool and weapon. Increases STR by <%= str %>.", "weaponRogue4Text": "Nunchaku", - "weaponRogue4Notes": "Heavy batons whirled about on a length of chain. Increases STR by 6.", + "weaponRogue4Notes": "Heavy batons whirled about on a length of chain. Increases STR by <%= str %>.", "weaponRogue5Text": "Ninja-to", - "weaponRogue5Notes": "Sleek and deadly as the ninja themselves. Increases STR by 8.", + "weaponRogue5Notes": "Sleek and deadly as the ninja themselves. Increases STR by <%= str %>.", "weaponRogue6Text": "Hook Sword", - "weaponRogue6Notes": "Complex weapon adept at ensnaring and disarming opponents. Increases STR by 10.", + "weaponRogue6Notes": "Complex weapon adept at ensnaring and disarming opponents. Increases STR by <%= str %>.", "weaponWizard0Text": "Apprentice Staff", "weaponWizard0Notes": "Practice staff. Confers no benefit.", "weaponWizard1Text": "Wooden Staff", - "weaponWizard1Notes": "Basic implement of carven wood. Increases INT by 3 and PER by 1.", + "weaponWizard1Notes": "Basic implement of carven wood. Increases INT by <%= int %> and PER by <%= per %>.", "weaponWizard2Text": "Jeweled Staff", - "weaponWizard2Notes": "Focuses power through a precious stone. Increases INT by 6 and PER by 2.", + "weaponWizard2Notes": "Focuses power through a precious stone. Increases INT by <%= int %> and PER by <%= per %>.", "weaponWizard3Text": "Iron Staff", - "weaponWizard3Notes": "Plated in metal to channel heat, cold, and lightning. Increases INT by 9 and PER by 3.", + "weaponWizard3Notes": "Plated in metal to channel heat, cold, and lightning. Increases INT by <%= int %> and PER by <%= per %>.", "weaponWizard4Text": "Brass Staff", - "weaponWizard4Notes": "As powerful as it is heavy. Increases INT by 12 and PER by 5.", + "weaponWizard4Notes": "As powerful as it is heavy. Increases INT by <%= int %> and PER by <%= per %>.", "weaponWizard5Text": "Archmage Staff", - "weaponWizard5Notes": "Assists in weaving the most complex of spells. Increases INT by 15 and PER by 7.", + "weaponWizard5Notes": "Assists in weaving the most complex of spells. Increases INT by <%= int %> and PER by <%= per %>.", "weaponWizard6Text": "Golden Staff", - "weaponWizard6Notes": "Fashioned of orichalcum, the alchemic gold, mighty and rare. Increases INT by 18 and PER by 10.", + "weaponWizard6Notes": "Fashioned of orichalcum, the alchemic gold, mighty and rare. Increases INT by <%= int %> and PER by <%= per %>.", "weaponHealer0Text": "Novice Rod", "weaponHealer0Notes": "For healers in training. Confers no benefit.", "weaponHealer1Text": "Acolyte Rod", - "weaponHealer1Notes": "Crafted during a healer's initiation. Increases INT by 2.", + "weaponHealer1Notes": "Crafted during a healer's initiation. Increases INT by <%= int %>.", "weaponHealer2Text": "Quartz Rod", - "weaponHealer2Notes": "Topped with a gem bearing curative properties. Increases INT by 3.", + "weaponHealer2Notes": "Topped with a gem bearing curative properties. Increases INT by <%= int %>.", "weaponHealer3Text": "Amethyst Rod", - "weaponHealer3Notes": "Purifies poison at a touch. Increases INT by 5.", + "weaponHealer3Notes": "Purifies poison at a touch. Increases INT by <%= int %>.", "weaponHealer4Text": "Physician Rod", - "weaponHealer4Notes": "As much a badge of office as a healing tool. Increases INT by 7.", + "weaponHealer4Notes": "As much a badge of office as a healing tool. Increases INT by <%= int %>.", "weaponHealer5Text": "Royal Scepter", - "weaponHealer5Notes": "Fit to grace the hand of a monarch, or of one who stands at a monarch's right hand. Increases INT by 9.", + "weaponHealer5Notes": "Fit to grace the hand of a monarch, or of one who stands at a monarch's right hand. Increases INT by <%= int %>.", "weaponHealer6Text": "Golden Scepter", - "weaponHealer6Notes": "Soothes the pain of all who look upon it. Increases INT by 11.", + "weaponHealer6Notes": "Soothes the pain of all who look upon it. Increases INT by <%= int %>.", "weaponSpecial0Text": "Dark Souls Blade", - "weaponSpecial0Notes": "Feasts upon foes' life essence to power its wicked strokes. Increases STR by 20.", + "weaponSpecial0Notes": "Feasts upon foes' life essence to power its wicked strokes. Increases STR by <%= str %>.", "weaponSpecial1Text": "Crystal Blade", - "weaponSpecial1Notes": "Its glittering facets tell the tale of a hero. Increases all attributes by 6.", + "weaponSpecial1Notes": "Its glittering facets tell the tale of a hero. Increases all attributes by <%= attrs %>.", "weaponSpecial2Text": "Stephen Weber's Shaft of the Dragon", - "weaponSpecial2Notes": "Feel the potency of the dragon surge from within! Increases STR and PER by 25 each.", + "weaponSpecial2Notes": "Feel the potency of the dragon surge from within! Increases STR and PER by <%= attrs %> each.", "weaponSpecial3Text": "Mustaine's Milestone Mashing Morning Star", - "weaponSpecial3Notes": "Meetings, monsters, malaise: managed! Mash! Increases STR, INT, and CON by 17 each.", - + "weaponSpecial3Notes": "Meetings, monsters, malaise: managed! Mash! Increases STR, INT, and CON by <%= attrs %> each.", "weaponSpecialCriticalText": "Critical Hammer of Bug-Crushing", - "weaponSpecialCriticalNotes": "This champion slew a critical Github foe where many warriors fell. Fashioned from the bones of Bug, this hammer deals a mighty critical hit. Increases STR and PER by 40 each.", + "weaponSpecialCriticalNotes": "This champion slew a critical Github foe where many warriors fell. Fashioned from the bones of Bug, this hammer deals a mighty critical hit. Increases STR and PER by <%= attrs %> each.", + "weaponSpecialYetiText": "Yeti-Tamer Spear", - "weaponSpecialYetiNotes": "Limited Edition 2013 Winter Gear! This spear allows its user to command any yeti. Increases STR by 15.", + "weaponSpecialYetiNotes": "Limited Edition 2013 Winter Gear! This spear allows its user to command any yeti. Increases STR by <%= str %>.", "weaponSpecialSkiText": "Ski-sassin Pole", - "weaponSpecialSkiNotes": "Limited Edition 2013 Winter Gear! A weapon capable of destroying hordes of enemies! It also helps the user make very nice parallel turns. Increases STR by 8.", + "weaponSpecialSkiNotes": "Limited Edition 2013 Winter Gear! A weapon capable of destroying hordes of enemies! It also helps the user make very nice parallel turns. Increases STR by <%= str %>.", "weaponSpecialCandycaneText": "Candy Cane Staff", - "weaponSpecialCandycaneNotes": "Limited Edition 2013 Winter Gear! A powerful mage's staff. Powerfully DELICIOUS, we mean! Two-handed weapon. Increases INT by 15 and PER by 7.", + "weaponSpecialCandycaneNotes": "Limited Edition 2013 Winter Gear! A powerful mage's staff. Powerfully DELICIOUS, we mean! Two-handed weapon. Increases INT by <%= int %> and PER by <%= per %>.", "weaponSpecialSnowflakeText": "Snowflake Wand", - "weaponSpecialSnowflakeNotes": "Limited Edition 2013 Winter Gear! This wand sparkles with unlimited healing power. Increases INT by 9.", + "weaponSpecialSnowflakeNotes": "Limited Edition 2013 Winter Gear! This wand sparkles with unlimited healing power. Increases INT by <%= int %>.", "armorBase0Text": "Plain Clothing", "armorBase0Notes": "Ordinary clothing. Confers no benefit.", diff --git a/script/content.coffee b/script/content.coffee index a02045cd4c..04c5cfcfd2 100644 --- a/script/content.coffee +++ b/script/content.coffee @@ -30,12 +30,12 @@ gear = text: (-> i18n.t('weaponBase0Text')), notes: (-> i18n.t('weaponBase0Notes')), value:0 warrior: 0: text: (-> i18n.t('weaponWarrior0Text')), notes: (-> i18n.t('weaponWarrior0Notes')), value:0 - 1: text: (-> i18n.t('weaponWarrior1Text')), notes: (-> i18n.t('weaponWarrior1Notes')), str: 3, value:20 - 2: text: (-> i18n.t('weaponWarrior2Text')), notes: (-> i18n.t('weaponWarrior2Notes')), str: 6, value:30 - 3: text: (-> i18n.t('weaponWarrior3Text')), notes: (-> i18n.t('weaponWarrior3Notes')), str: 9, value:45 - 4: text: (-> i18n.t('weaponWarrior4Text')), notes: (-> i18n.t('weaponWarrior4Notes')), str: 12, value:65 - 5: text: (-> i18n.t('weaponWarrior5Text')), notes: (-> i18n.t('weaponWarrior5Notes')), str: 15, value:90 - 6: text: (-> i18n.t('weaponWarrior6Text')), notes: (-> i18n.t('weaponWarrior6Notes')), str: 18, value:120, last: true + 1: text: (-> i18n.t('weaponWarrior1Text')), notes: (-> i18n.t('weaponWarrior1Notes', {str: 3})), str: 3, value:20 + 2: text: (-> i18n.t('weaponWarrior2Text')), notes: (-> i18n.t('weaponWarrior2Notes', {str: 6})), str: 6, value:30 + 3: text: (-> i18n.t('weaponWarrior3Text')), notes: (-> i18n.t('weaponWarrior3Notes', {str: 9})), str: 9, value:45 + 4: text: (-> i18n.t('weaponWarrior4Text')), notes: (-> i18n.t('weaponWarrior4Notes', {str: 12})), str: 12, value:65 + 5: text: (-> i18n.t('weaponWarrior5Text')), notes: (-> i18n.t('weaponWarrior5Notes', {str: 15})), str: 15, value:90 + 6: text: (-> i18n.t('weaponWarrior6Text')), notes: (-> i18n.t('weaponWarrior6Notes', {str: 18})), str: 18, value:120, last: true rogue: #Not using bows at the moment, but they would be easy to add back in to an advanced Armory feature, as Quest drops, etc. #0: twoHanded: true, text: "Practice Bow", notes:'Training weapon. Confers no benefit.', value:0 @@ -46,39 +46,47 @@ gear = #5: twoHanded: true, text: "Meteor Bow", notes:'Rains flame upon your foes. Increases STR by 16.', str: 16, value:160 #6: twoHanded: true, text: "Golden Bow", notes:'As swift as sunlight and as sharp as lightning. Increases STR by 20.', str: 20, value:200, last: true 0: text: (-> i18n.t('weaponRogue0Text')), notes: (-> i18n.t('weaponRogue0Notes')), str: 0, value: 0 - 1: text: (-> i18n.t('weaponRogue1Text')), notes: (-> i18n.t('weaponRogue1Notes')), str: 2, value: 20 - 2: text: (-> i18n.t('weaponRogue2Text')), notes: (-> i18n.t('weaponRogue2Notes')), str: 3, value: 35 - 3: text: (-> i18n.t('weaponRogue3Text')), notes: (-> i18n.t('weaponRogue3Notes')), str: 4, value: 50 - 4: text: (-> i18n.t('weaponRogue4Text')), notes: (-> i18n.t('weaponRogue4Notes')), str: 6, value: 70 - 5: text: (-> i18n.t('weaponRogue5Text')), notes: (-> i18n.t('weaponRogue5Notes')), str: 8, value: 90 - 6: text: (-> i18n.t('weaponRogue6Text')), notes: (-> i18n.t('weaponRogue6Notes')), str: 10, value: 120, last: true + 1: text: (-> i18n.t('weaponRogue1Text')), notes: (-> i18n.t('weaponRogue1Notes', {str: 2})), str: 2, value: 20 + 2: text: (-> i18n.t('weaponRogue2Text')), notes: (-> i18n.t('weaponRogue2Notes', {str: 3})), str: 3, value: 35 + 3: text: (-> i18n.t('weaponRogue3Text')), notes: (-> i18n.t('weaponRogue3Notes', {str: 4})), str: 4, value: 50 + 4: text: (-> i18n.t('weaponRogue4Text')), notes: (-> i18n.t('weaponRogue4Notes', {str: 6})), str: 6, value: 70 + 5: text: (-> i18n.t('weaponRogue5Text')), notes: (-> i18n.t('weaponRogue5Notes', {str: 8})), str: 8, value: 90 + 6: text: (-> i18n.t('weaponRogue6Text')), notes: (-> i18n.t('weaponRogue6Notes', {str: 10})), str: 10, value: 120, last: true wizard: 0: twoHanded: true, text: (-> i18n.t('weaponWizard0Text')), notes: (-> i18n.t('weaponWizard0Notes')), value:0 - 1: twoHanded: true, text: (-> i18n.t('weaponWizard1Text')), notes: (-> i18n.t('weaponWizard1Notes')), int: 3, per: 1, value:30 - 2: twoHanded: true, text: (-> i18n.t('weaponWizard2Text')), notes: (-> i18n.t('weaponWizard2Notes')), int: 6, per: 2, value:50 - 3: twoHanded: true, text: (-> i18n.t('weaponWizard3Text')), notes: (-> i18n.t('weaponWizard3Notes')), int: 9, per: 3, value:80 - 4: twoHanded: true, text: (-> i18n.t('weaponWizard4Text')), notes: (-> i18n.t('weaponWizard4Notes')), int:12, per: 5, value:120 - 5: twoHanded: true, text: (-> i18n.t('weaponWizard5Text')), notes: (-> i18n.t('weaponWizard5Notes')), int: 15, per: 7, value:160 - 6: twoHanded: true, text: (-> i18n.t('weaponWizard6Text')), notes: (-> i18n.t('weaponWizard6Notes')), int: 18, per: 10, value:200, last: true + 1: twoHanded: true, text: (-> i18n.t('weaponWizard1Text')), notes: (-> i18n.t('weaponWizard1Notes', {int: 3, per: 1})), int: 3, per: 1, value:30 + 2: twoHanded: true, text: (-> i18n.t('weaponWizard2Text')), notes: (-> i18n.t('weaponWizard2Notes', {int: 6, per: 2})), int: 6, per: 2, value:50 + 3: twoHanded: true, text: (-> i18n.t('weaponWizard3Text')), notes: (-> i18n.t('weaponWizard3Notes', {int: 9, per: 3})), int: 9, per: 3, value:80 + 4: twoHanded: true, text: (-> i18n.t('weaponWizard4Text')), notes: (-> i18n.t('weaponWizard4Notes', {int: 12, per: 5})), int:12, per: 5, value:120 + 5: twoHanded: true, text: (-> i18n.t('weaponWizard5Text')), notes: (-> i18n.t('weaponWizard5Notes', {int: 15, per: 7})), int: 15, per: 7, value:160 + 6: twoHanded: true, text: (-> i18n.t('weaponWizard6Text')), notes: (-> i18n.t('weaponWizard6Notes', {int: 18, per: 10})), int: 18, per: 10, value:200, last: true healer: 0: text: (-> i18n.t('weaponHealer0Text')), notes: (-> i18n.t('weaponHealer0Notes')), value:0 - 1: text: (-> i18n.t('weaponHealer1Text')), notes: (-> i18n.t('weaponHealer1Notes')), int: 2, value:20 - 2: text: (-> i18n.t('weaponHealer2Text')), notes: (-> i18n.t('weaponHealer2Notes')), int: 3, value:30 - 3: text: (-> i18n.t('weaponHealer3Text')), notes: (-> i18n.t('weaponHealer3Notes')), int: 5, value:45 - 4: text: (-> i18n.t('weaponHealer4Text')), notes: (-> i18n.t('weaponHealer4Notes')), int:7, value:65 - 5: text: (-> i18n.t('weaponHealer5Text')), notes: (-> i18n.t('weaponHealer5Notes')), int: 9, value:90 - 6: text: (-> i18n.t('weaponHealer6Text')), notes: (-> i18n.t('weaponHealer6Notes')), int: 11, value:120, last: true + 1: text: (-> i18n.t('weaponHealer1Text')), notes: (-> i18n.t('weaponHealer1Notes', {int: 2})), int: 2, value:20 + 2: text: (-> i18n.t('weaponHealer2Text')), notes: (-> i18n.t('weaponHealer2Notes', {int: 3})), int: 3, value:30 + 3: text: (-> i18n.t('weaponHealer3Text')), notes: (-> i18n.t('weaponHealer3Notes', {int: 5})), int: 5, value:45 + 4: text: (-> i18n.t('weaponHealer4Text')), notes: (-> i18n.t('weaponHealer4Notes', {int: 7})), int:7, value:65 + 5: text: (-> i18n.t('weaponHealer5Text')), notes: (-> i18n.t('weaponHealer5Notes', {int: 9})), int: 9, value:90 + 6: text: (-> i18n.t('weaponHealer6Text')), notes: (-> i18n.t('weaponHealer6Notes', {int: 11})), int: 11, value:120, last: true special: +<<<<<<< HEAD 0: text: (-> i18n.t('weaponSpecial0Text')), notes: (-> i18n.t('weaponSpecial0Notes')), str: 20, value:150, canOwn: ((u)-> +u.backer?.tier >= 70) 1: text: (-> i18n.t('weaponSpecial1Text')), notes: (-> i18n.t('weaponSpecial1Notes')), str: 6, per: 6, con: 6, int: 6, value:170, canOwn: ((u)-> +u.contributor?.level >= 4) 2: text: (-> i18n.t('weaponSpecial2Text')), notes: (-> i18n.t('weaponSpecial2Notes')), str: 25, per: 25, value:200, canOwn: ((u)-> (+u.backer?.tier >= 300) or u.items.gear.owned.weapon_special_2?) 3: text: (-> i18n.t('weaponSpecial3Text')), notes: (-> i18n.t('weaponSpecial3Notes')), str: 17, int: 17, con: 17, value:200, canOwn: ((u)-> +u.backer?.tier >= 300) critical: text: (-> i18n.t('weaponSpecialCriticalText')), notes: (-> i18n.t('weaponSpecialCriticalNotes')), str: 40, per: 40, value:200, canOwn: ((u)-> !!u.contributor?.critical) +======= + 0: text: (-> i18n.t('weaponSpecial0Text')), notes: (-> i18n.t('weaponSpecial0Notes', {str: 20})), str: 20, value:150, canOwn: ((u)-> +u.backer?.tier >= 70) + 1: text: (-> i18n.t('weaponSpecial1Text')), notes: (-> i18n.t('weaponSpecial1Notes', {attrs: 6})), str: 6, per: 6, con: 6, int: 6, value:170, canOwn: ((u)-> +u.contributor?.level >= 4) + 2: text: (-> i18n.t('weaponSpecial2Text')), notes: (-> i18n.t('weaponSpecial2Notes', {attrs: 25})), str: 25, per: 25, value:200, canOwn: ((u)-> +u.backer?.tier >= 300) + 3: text: (-> i18n.t('weaponSpecial3Text')), notes: (-> i18n.t('weaponSpecial3Notes', {attrs: 17})), str: 17, int: 17, con: 17, value:200, canOwn: ((u)-> +u.backer?.tier >= 300) + critical: text: (-> i18n.t('weaponSpecialCriticalText')), notes: (-> i18n.t('weaponSpecialCriticalNotes', {attrs: 40})), str: 40, per: 40, value:200, canOwn: ((u)-> !!u.contributor?.critical) +>>>>>>> chore(i18n): start moving attributes values to interpolation # Winter event gear - yeti: event: events.winter, canOwn: ((u)->u.stats.class is 'warrior' ), text: (-> i18n.t('weaponSpecialYetiText')), notes: (-> i18n.t('weaponSpecialYetiNotes')), str: 15, value:90 - ski: event: events.winter, canOwn: ((u)->u.stats.class is 'rogue' ), text: (-> i18n.t('weaponSpecialSkiText')), notes: (-> i18n.t('weaponSpecialSkiNotes')), str: 8, value: 90 - candycane: event: events.winter, canOwn: ((u)->u.stats.class is 'wizard' ), twoHanded: true, text: (-> i18n.t('weaponSpecialCandycaneText')), notes: (-> i18n.t('weaponSpecialCandycaneNotes')), int: 15, per: 7, value:160 - snowflake: event: events.winter, canOwn: ((u)->u.stats.class is 'healer' ), text: (-> i18n.t('weaponSpecialSnowflakeText')), notes: (-> i18n.t('weaponSpecialSnowflakeNotes')), int: 9, value:90 + yeti: event: events.winter, canOwn: ((u)->u.stats.class is 'warrior' ), text: (-> i18n.t('weaponSpecialYetiText')), notes: (-> i18n.t('weaponSpecialYetiNotes', {str: 15})), str: 15, value:90 + ski: event: events.winter, canOwn: ((u)->u.stats.class is 'rogue' ), text: (-> i18n.t('weaponSpecialSkiText')), notes: (-> i18n.t('weaponSpecialSkiNotes', {str: 8})), str: 8, value: 90 + candycane: event: events.winter, canOwn: ((u)->u.stats.class is 'wizard' ), twoHanded: true, text: (-> i18n.t('weaponSpecialCandycaneText')), notes: (-> i18n.t('weaponSpecialCandycaneNotes', {int: 15, per: 7})), int: 15, per: 7, value:160 + snowflake: event: events.winter, canOwn: ((u)->u.stats.class is 'healer' ), text: (-> i18n.t('weaponSpecialSnowflakeText')), notes: (-> i18n.t('weaponSpecialSnowflakeNotes', {int: 9})), int: 9, value:90 #Spring Fling springRogue: event: events.spring, specialClass: 'rogue', text: 'Hook Claws', notes: 'Great for scaling tall buildings, and also for shredding carpets. Adds 8 points to STR. Limited Edition 2014 Spring Gear.', value: 80, str: 8 springWarrior: event: events.spring, specialClass: 'warrior', text: 'Carrot Sword', notes: 'This mighty sword can slice foes with ease! It also makes a delicious mid-battle snack. Adds 15 points to STR. Limited Edition 2014 Spring Gear.', value: 90, str: 15