Merge branch 'master' into production

This commit is contained in:
Nick Winter 2015-01-13 13:10:47 -08:00
commit 181842e97b
75 changed files with 1003 additions and 927 deletions

View file

@ -1,344 +1,533 @@
module.exports.thangNames = thangNames = module.exports.thangNames = thangNames =
'Soldier M': [ 'Soldier M': [
'Duke' 'Aaron'
'William' 'Adam'
'Lucas' 'Alan'
'Marcus' 'Albert'
'Robert'
'Gordon'
'Kirin'
'Theo'
'Roger'
'Roderick'
'Samson'
'Silas'
'Richard'
'Max'
'Jax'
'Dax'
'Mischa'
'Ronald'
'Tyrone'
'Thelonious'
'Miles'
'Bill'
'Kumar'
'Ricardo'
'Maxwell'
'Jonah'
'Leopold'
'Phineas'
'Ferb'
'Felix'
'Ezra'
'Lucian'
'Augustus'
'Ronan'
'Pierce'
'Harry'
'Hirium'
'Hugo'
'Cecil'
'Barron'
'Huburt'
'Sterling'
'Alistair' 'Alistair'
'Cid' 'Andrew'
'Remy' 'Anthony'
'Stormy' 'Antonio'
'Halle' 'Arthur'
'Sage' 'Augustus'
'Ryan' 'Barron'
'Benjamin'
'Bill'
'Billy'
'Bobby'
'Bond' 'Bond'
'Philippian' 'Brandon'
'Malcolm' 'Brian'
'Orion' 'Bruce'
'Carl'
'Carlos'
'Cecil'
'Charles'
'Chris'
'Christopher'
'Cid'
'Clarence'
'Craig'
'Daniel'
'David'
'Dax'
'Dennis'
'Donald'
'Douglas'
'Duke'
'Earl'
'Edward'
'Eric'
'Ernest'
'Eugene'
'Ezra'
'Felix'
'Ferb'
'Frank'
'Fred'
'Gary'
'Gatsby' 'Gatsby'
'George'
'Gerald'
'Gordon'
'Gregory'
'Halle'
'Harold'
'Harry'
'Henry'
'Hirium'
'Howard'
'Huburt'
'Hugo'
'Jack'
'James'
'Jason'
'Jax'
'Jeffrey'
'Jeremy'
'Jerry'
'Jesse'
'Jimmy'
'Joe'
'John'
'Johnny'
'Jonah'
'Jonathan'
'Jose'
'Joseph'
'Joshua'
'Juan'
'Justin'
'Keith'
'Kenneth'
'Kevin'
'Kirin'
'Kumar'
'Larry'
'Lawrence'
'Leopold'
'Louis'
'Lucas'
'Lucian'
'Malcolm'
'Marcus'
'Mark'
'Martin'
'Matthew'
'Max'
'Maxwell'
'Michael'
'Miles'
'Mischa'
'Nicholas'
'Orion'
'Patrick'
'Paul'
'Peter'
'Philip'
'Philippian'
'Phillip'
'Phineas'
'Pierce'
'Ralph'
'Randy'
'Raymond'
'Remy'
'Ricardo'
'Richard'
'Robert'
'Roderick'
'Roger'
'Ronald'
'Ronan'
'Roy'
'Russell'
'Ryan'
'Sage'
'Samson'
'Samuel'
'Scott'
'Sean'
'Shawn'
'Silas'
'Stephen'
'Sterling'
'Steve'
'Steven'
'Stormy'
'Terry'
'Thelonious'
'Theo'
'Thomas'
'Timothy'
'Todd'
'Tyrone'
'Victor'
'Walter'
'Wayne'
'William'
'Willie'
] ]
'Soldier F': [ 'Soldier F': [
'Sarah'
'Alexandra'
'Holly'
'Trinity'
'Nikita'
'Alana' 'Alana'
'Lana' 'Alexandra'
'Joan' 'Alice'
'Helga'
'Annie'
'Lukaz'
'Gorgin'
'Coco'
'Buffy'
'Allankrita' 'Allankrita'
'Kay' 'Amanda'
'Shannon' 'Amy'
'Scarlett' 'Andrea'
'Natasha' 'Angela'
'Ann'
'Anna'
'Anne'
'Annie'
'Aphrodite' 'Aphrodite'
'Ashley'
'Barbara'
'Betty'
'Beverly'
'Bonnie'
'Brenda'
'Buffy'
'Carol'
'Carolyn'
'Catherine'
'Cheryl'
'Christina'
'Christine'
'Coco'
'Cynthia'
'Deborah'
'Debra'
'Denise'
'Diana'
'Diane'
'Donna'
'Doris'
'Dorothy'
'Elizabeth'
'Emily'
'Evelyn'
'Frances'
'Gabrielle' 'Gabrielle'
'Gloria'
'Gorgin'
'Heather'
'Helen'
'Helga'
'Holly'
'Imani' 'Imani'
'Irene'
'Jacqueline'
'Jane'
'Janet'
'Janice'
'Jean'
'Jennifer'
'Jessica'
'Joan'
'Joyce'
'Judith'
'Judy'
'Julia'
'Julie'
'Karen'
'Katherine'
'Kathleen'
'Kathryn'
'Kathy'
'Kay'
'Kelly'
'Kimberly'
'Lana'
'Laura'
'Lillian'
'Linda'
'Lisa'
'Lois'
'Lori'
'Louise'
'Lukaz'
'Margaret'
'Maria'
'Marie'
'Marilyn'
'Martha'
'Mary'
'Melissa'
'Michelle'
'Mildred'
'Nancy'
'Natasha'
'Nicole'
'Nikita'
'Norma'
'Pamela'
'Patricia'
'Paula'
'Phyllis'
'Rachel'
'Rebecca'
'Robin'
'Rose'
'Ruby'
'Ruth'
'Sandra'
'Sara'
'Sarah'
'Scarlett'
'Shannon'
'Sharon'
'Shirley'
'Stephanie'
'Susan'
'Tammy'
'Teresa'
'Theresa'
'Tina'
'Trinity'
'Virginia'
'Wanda'
] ]
'Peasant M': [ 'Peasant M': [
'Yorik'
'Hector'
'Thad'
'Victor'
'Lyle'
'Charles'
'Yusef'
'Hingle'
'Azgot' 'Azgot'
'Piers' 'Brom'
'Carlton' 'Carlton'
'Hershell' 'Charles'
'Gawain'
'Durfkor' 'Durfkor'
'Paps' 'Fendrel'
'Gawain'
'Hector'
'Hershell'
'Hingle'
'Hodor' 'Hodor'
'James' 'James'
'Lyle'
'Merek' 'Merek'
'Brom' 'Paps'
'Piers'
'Thad'
'Tybalt' 'Tybalt'
'Fendrel' 'Victor'
'Yorik'
'Yusef'
] ]
'Peasant F': [ 'Peasant F': [
'Hilda' 'Alexia'
'Icey'
'Matilda'
'Mertia'
'Mary'
'Brandy'
'Gwendolin'
'Tabitha'
'Regan'
'Giselle'
'Bernadette'
'Millicent'
'Anastas'
'Thea'
'Ellyn'
'Alianor' 'Alianor'
'Anastas' 'Anastas'
'Anastas'
'Bernadette'
'Brandy'
'Cristiana' 'Cristiana'
'Ellyn'
'Giselle'
'Gwendolin'
'Helena' 'Helena'
'Alexia' 'Hilda'
'Icey'
'Katelyn' 'Katelyn'
'Mary'
'Matilda'
'Mertia'
'Millicent'
'Regan'
'Rose' 'Rose'
'Tabitha'
'Thea'
] ]
'Archer F': [ 'Archer F': [
'Phoebe'
'Mira'
'Agapi' 'Agapi'
'Cecily'
'Tansy'
'Ivy'
'Gemma'
'Keturah'
'Korra'
'Kim'
'Odette'
'Orly'
'Mercedes'
'Rosaline'
'Vesper'
'Beverly'
'Natalie'
'Clare'
'Rowan'
'Omar'
'Alden' 'Alden'
'Alleria'
'Beatrice'
'Beverly'
'Cairn' 'Cairn'
'Cecily'
'Clare'
'Gemma'
'Ivy'
'Jensen' 'Jensen'
'Yilitha' 'Keturah'
'Mirana' 'Kim'
'Korra'
'Lina' 'Lina'
'Luna' 'Luna'
'Alleria' 'Mercedes'
'Mira'
'Mirana'
'Natalie'
'Odette'
'Omar'
'Orly'
'Phoebe'
'Rosaline'
'Rowan'
'Tansy'
'Vereesa' 'Vereesa'
'Beatrice' 'Vesper'
'Yilitha'
] ]
'Archer M': [ 'Archer M': [
'Arty'
'Brian' 'Brian'
'Cole' 'Cole'
'Roman'
'Hunter'
'Simon'
'Robin'
'Quinn'
'Arty'
'Gimsley'
'Fidsdale'
'Slyvos'
'Logos'
'Denin' 'Denin'
'Lycan'
'Loco'
'Vican'
'Mars'
'Dev' 'Dev'
'Fidsdale'
'Gimsley'
'Hunter'
'Loco'
'Logos'
'Lycan'
'Mars'
'Oliver' 'Oliver'
'Quinn'
'Robin'
'Roman'
'Simon'
'Slyvos'
'Vican'
] ]
'Ogre Munchkin M': [ 'Ogre Munchkin M': [
'Blob'
'Brack' 'Brack'
'Gort'
'Weeb'
'Nerph'
'Kratt'
'Smerk'
'Raack'
'Dobo' 'Dobo'
'Draff' 'Draff'
'Zozo'
'Kogpole'
'Leerer'
'Skoggen'
'Treg'
'Goreball'
'Gert' 'Gert'
'Thabt' 'Goreball'
'Snortt' 'Gort'
'Kog' 'Kog'
'Ursa' 'Kogpole'
'Kratt'
'Leerer'
'Nerph'
'Raack'
'Ragtime' 'Ragtime'
'Blob' 'Skoggen'
'Smerk'
'Snortt'
'Thabt'
'Treg'
'Ursa'
'Weeb'
'Zozo'
] ]
'Ogre Munchkin F': [ 'Ogre Munchkin F': [
'Dosha'
'Gurzunn'
'Hoot'
'Inski'
'Iyert' 'Iyert'
'Lacos'
'Palt' 'Palt'
'Shmeal' 'Shmeal'
'Gurzunn'
'Yugark'
'Dosha'
'Inski'
'Lacos'
'Upfish' 'Upfish'
'Hoot' 'Yugark'
] ]
'Ogre Peon M': [ 'Ogre Peon M': [
'Ba Bo'
'Durbo' 'Durbo'
'Kurger' 'Kurger'
'Mudwich' 'Mudwich'
'Ba Bo'
'Zugger'
'Toe Pod' 'Toe Pod'
'Zugger'
] ]
'Ogre Peon F': [ 'Ogre Peon F': [
'Greeke'
'Iblet' 'Iblet'
'Lorba' 'Lorba'
'Zzoya'
'Yamra'
'Greeke'
'Vapa' 'Vapa'
'Yamra'
'Zzoya'
] ]
'Ogre M': [ 'Ogre M': [
'Krogg'
'Dronck'
'Trogdor'
'Kulgor'
'Skrungt'
'Mak Fod'
'Trung'
'Axe Ox' 'Axe Ox'
'Vargutt' 'Dronck'
'Grumus' 'Grumus'
'Gug' 'Gug'
'Tarlok'
'Gurulax' 'Gurulax'
'Krogg'
'Kulgor'
'Mak Fod'
'Mokrul' 'Mokrul'
'Polifemo'
'Muthyala' 'Muthyala'
'Polifemo'
'Saltporker' 'Saltporker'
'Skrungt'
'Tarlok'
'Trogdor'
'Trung'
'Vargutt'
] ]
'Ogre F': [ 'Ogre F': [
'Nareng'
'Morthrug'
'Glonc'
'Marghurk'
'Martha'
'Holkam'
'Alkaz' 'Alkaz'
'Gar\'ah' 'Gar\'ah'
'Glonc'
'Holkam'
'Mak\'rah' 'Mak\'rah'
'Marghurk'
'Marnag' 'Marnag'
'Martha'
'Morthrug'
'Nareng'
] ]
'Ogre Brawler': [ 'Ogre Brawler': [
'Grul\'thock'
'Boz'
'Trod'
'Muul'
'Grumoll'
'Burobb'
'Arelt' 'Arelt'
'Zagurk'
'Zeredd'
'Borgag' 'Borgag'
'Boz'
'Burobb'
'Grognar' 'Grognar'
'Grul\'thock'
'Grumoll'
'Haggar'
'Ironjaw' 'Ironjaw'
'Tuguro' 'Muul'
'York'
'Ork\'han' 'Ork\'han'
'Roast Beefy' 'Roast Beefy'
'Haggar' 'Trod'
'Tuguro'
'York'
'Zagurk'
'Zeredd'
] ]
'Ogre Fangrider': [ 'Ogre Fangrider': [
'Arizard'
'Bortrok'
'Doralt'
'Dreek' 'Dreek'
'Flarsho' 'Flarsho'
'Mizzy'
'Secka'
'Arizard'
'Morzgret'
'Doralt'
'Geggret' 'Geggret'
'Gurzthrot' 'Gurzthrot'
'Mizzy'
'Morzgret'
'Murgark' 'Murgark'
'Muttin' 'Muttin'
'Bortrok' 'Secka'
] ]
'Ogre Shaman': [ 'Ogre Shaman': [
'Sham\'uk'
'Il\'Du\'duka'
'Ahst\'durante' 'Ahst\'durante'
'Poult'
'Aolian\'Tak' 'Aolian\'Tak'
'Tuzell' 'Drun'
'Yamizeb' 'Ghuk'
'Yerong' 'Gogg'
'Tuzang' 'Gom'
'Varreth' 'Grek'
'Yugargen' 'Gror'
'Turann' 'Il\'Du\'duka'
'Ugoki' 'Makas'
'Zulabar'
'Zo\'Goroth'
'Mogadishu' 'Mogadishu'
'Nazgareth' 'Nazgareth'
'Gror' 'Poult'
'Grek' 'Sham\'uk'
'Gom' 'Turann'
'Gogg' 'Tuzang'
'Ghuk' 'Tuzell'
'Makas' 'Ugoki'
'Drun' 'Varreth'
'Yamizeb'
'Yerong'
'Yugargen'
'Zo\'Goroth'
'Zulabar'
] ]
'Ogre Thrower': [ 'Ogre Thrower': [
'Kyrgg' 'Drumbaa'
'Durnath' 'Durnath'
'Kraggan'
'Gragthar'
'Rasha'
'Moza'
'Vujii'
'Esha' 'Esha'
'Zara' 'Gragthar'
'Hamedi' 'Hamedi'
'Jinjin' 'Jinjin'
'Yetu' 'Kraggan'
'Kyrgg'
'Makas' 'Makas'
'Rakash' 'Moza'
'Drumbaa'
'Pinakin' 'Pinakin'
'Rakash'
'Rasha'
'Vujii'
'Yetu'
'Zara'
] ]
'Burl': [ 'Burl': [
'Borlit' 'Borlit'
@ -351,87 +540,86 @@ module.exports.thangNames = thangNames =
'Letholdus' 'Letholdus'
] ]
'Potion Master': [ 'Potion Master': [
'Omar'
'Snake'
'Amaranth' 'Amaranth'
'Zander'
'Arora' 'Arora'
'Curie'
'Clause'
'Vanders'
'Kanada'
'Artephius' 'Artephius'
'Clause'
'Curie'
'Kanada'
'Omar'
'Paracelsus' 'Paracelsus'
'Snake'
'Vanders'
'Zander'
] ]
'Librarian': [ 'Librarian': [
'Hushbaum'
'Matilda'
'Agnes'
'Agathe' 'Agathe'
'Satish' 'Agnes'
'Hushbaum'
'Mariam' 'Mariam'
'Matilda'
'Satish'
] ]
'Equestrian': [ 'Equestrian': [
'Mirial'
'Neely'
'Reynaldo' 'Reynaldo'
'Ryder' 'Ryder'
'Thoron' 'Thoron'
'Mirial'
'Neely'
] ]
'Knight': [ 'Knight': [
'Tharin' 'Almeric'
'Alphonse'
'Arthur' 'Arthur'
'Galahad'
'Mace'
'Drake' 'Drake'
'Duran' 'Duran'
'Almeric'
'Hunfray'
'Hank'
'Jeph'
'Neville'
'Alphonse'
'Edward' 'Edward'
'Galahad'
'Hank'
'Hunfray'
'Jeph'
'Mace'
'Neville'
'Shug' 'Shug'
'Tharin'
] ]
'Captain': [ 'Captain': [
'Anya' 'Anya'
'Brigette' 'Brigette'
'Sarre'
'Katana'
'Lily'
'Isa'
'Dimia' 'Dimia'
'Jane'
'Lia'
'Hardcastle' 'Hardcastle'
'Leona'
'Jarin'
'Helena' 'Helena'
'Isa'
'Jane'
'Jarin'
'Katana'
'Leona'
'Lia'
'Lily'
'Philips' 'Philips'
'Sarre'
] ]
'Ninja': [ 'Ninja': [
'Amara' 'Amara'
'Naruto'
'Sasuke'
'Minato' 'Minato'
'Naruto'
'Sakura' 'Sakura'
'Sasuke'
] ]
'Sorcerer': [ 'Sorcerer': [
'Pender'
'Gandalf'
'Beazer' 'Beazer'
'Gandalf'
'Pender'
] ]
'Samurai': [ 'Samurai': [
'Hattori' 'Hattori'
] ]
'Sand Yak': [ 'Sand Yak': [
'Ofgar'
'Randall'
'Arngotho' 'Arngotho'
'Falthror' 'Falthror'
'Langthok' 'Langthok'
'Ofgar'
'Randall'
] ]
'Ogre Scout M': [ 'Ogre Scout M': [
'Frandar' 'Frandar'

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "ثانيّة" second: "ثانيّة"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "български език", englishDescri
date: "Дата" date: "Дата"
# body: "Body" # body: "Body"
version: "Версия" version: "Версия"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "български език", englishDescri
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "секунда" second: "секунда"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
date: "Data" date: "Data"
body: "Cos" body: "Cos"
version: "Versió" version: "Versió"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
hard: "Difícil" hard: "Difícil"
player: "Jugador" player: "Jugador"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "segon" second: "segon"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
date: "Datum" date: "Datum"
body: "Tělo" body: "Tělo"
version: "Verze" version: "Verze"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
submitter: "Odesílatel" submitter: "Odesílatel"
submitted: "Odesláno" submitted: "Odesláno"
commit_msg: "Popisek ukládání" commit_msg: "Popisek ukládání"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
hard: "Těžké" hard: "Těžké"
player: "Hráč" player: "Hráč"
player_level: "Úroveň" # Like player level 5, not like level: Dungeons of Kithgard player_level: "Úroveň" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "sekunda" second: "sekunda"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
# date: "Date" # date: "Date"
body: "krop" body: "krop"
version: "version" version: "version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
commit_msg: "ændringsnotat" commit_msg: "ændringsnotat"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
hard: "Svær" hard: "Svær"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
date: "Datum" date: "Datum"
body: "Inhalt" body: "Inhalt"
version: "Version" version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
submitter: "Veröffentlicher" submitter: "Veröffentlicher"
submitted: "Veröffentlicht" submitted: "Veröffentlicht"
commit_msg: "Nachricht absenden" commit_msg: "Nachricht absenden"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
hard: "Schwer" hard: "Schwer"
player: "Spieler" player: "Spieler"
player_level: "Spielerlevel" # Like player level 5, not like level: Dungeons of Kithgard player_level: "Spielerlevel" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "Sekunde" second: "Sekunde"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
date: "Datum" date: "Datum"
# body: "Body" # body: "Body"
version: "Version" version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
hard: "Schwer" hard: "Schwer"
player: "Spieler" player: "Spieler"
player_level: "Stufe" # Like player level 5, not like level: Dungeons of Kithgard player_level: "Stufe" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "Sekunde" second: "Sekunde"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
date: "Datum" date: "Datum"
body: "Inhalt" body: "Inhalt"
version: "Version" version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
submitter: "Übermittler" submitter: "Übermittler"
submitted: "Übermittelt" submitted: "Übermittelt"
commit_msg: "Übertrage Nachricht" commit_msg: "Übertrage Nachricht"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
hard: "Schwer" hard: "Schwer"
player: "Spieler" player: "Spieler"
player_level: "Stufe" # Like player level 5, not like level: Dungeons of Kithgard player_level: "Stufe" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "Sekunde" second: "Sekunde"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
version: "Έκδοση" version: "Έκδοση"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre
hard: "Δύσκολο" hard: "Δύσκολο"
player: "Παίκτης" player: "Παίκτης"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "δευτερόλεπτο" second: "δευτερόλεπτο"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -197,6 +197,9 @@
hard: "Hard" hard: "Hard"
player: "Player" player: "Player"
player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
warrior: "Warrior"
ranger: "Ranger"
wizard: "Wizard"
units: units:
second: "second" second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
date: "Fecha" date: "Fecha"
body: "Cuerpo" body: "Cuerpo"
version: "Versión" version: "Versión"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
submitter: "Emisor" submitter: "Emisor"
submitted: "Enviado" submitted: "Enviado"
commit_msg: "Enviar mensaje" commit_msg: "Enviar mensaje"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
hard: "Difícil" hard: "Difícil"
player: "Jugador" player: "Jugador"
player_level: "Nivel" # Like player level 5, not like level: Dungeons of Kithgard player_level: "Nivel" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "segundo" second: "segundo"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
date: "Fecha" date: "Fecha"
body: "Cuerpo" body: "Cuerpo"
version: "Versión" version: "Versión"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
commit_msg: "Mensaje de Asignación o Commit" commit_msg: "Mensaje de Asignación o Commit"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
hard: "Difícil" hard: "Difícil"
player: "Jugador" player: "Jugador"
player_level: "Nivel" # Like player level 5, not like level: Dungeons of Kithgard player_level: "Nivel" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "segundo" second: "segundo"
@ -483,8 +490,8 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
forum_prefix: "Para asuntos públicos, por favor usa " forum_prefix: "Para asuntos públicos, por favor usa "
forum_page: "nuestro foro" forum_page: "nuestro foro"
forum_suffix: " en su lugar." forum_suffix: " en su lugar."
# faq_prefix: "There's also a" faq_prefix: "Tambien existe un"
# faq: "FAQ" faq: "FAQ"
subscribe_prefix: "Si necesitas ayuda para resolver el nivel, por favor" subscribe_prefix: "Si necesitas ayuda para resolver el nivel, por favor"
subscribe: "compra una subscripción de CodeCombat" subscribe: "compra una subscripción de CodeCombat"
subscribe_suffix: "y estaremos encantados de ayudarte con tu código." subscribe_suffix: "y estaremos encantados de ayudarte con tu código."
@ -574,22 +581,22 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
classes: classes:
archmage_title: "Archimago" archmage_title: "Archimago"
archmage_title_description: "(Programador)" archmage_title_description: "(Programador)"
# archmage_summary: "If you are a developer interested in coding educational games, become an archmage to help us build CodeCombat!" archmage_summary: "¡Si eres un desarrollador interesado en crear juegos educacionales, conviértete en un Archimago y ayuda a la construcción de CodeCombat!"
artisan_title: "Artesano" artisan_title: "Artesano"
artisan_title_description: "(Diseñador de Niveles)" artisan_title_description: "(Diseñador de Niveles)"
# artisan_summary: "Build and share levels for you and your friends to play. Become an Artisan to learn the art of teaching others to program." artisan_summary: "Construye y comparte niveles para que puedas jugar tu y tus amigos. Conviértete en un Artesano para aprender el arte de enseñar a otros a programar."
adventurer_title: "Aventurero" adventurer_title: "Aventurero"
adventurer_title_description: "(Tester de Niveles)" adventurer_title_description: "(Tester de Niveles)"
# adventurer_summary: "Get our new levels (even our subscriber content) for free one week early and help us work out bugs before our public release." adventurer_summary: "Consigue una semana antes y gratis, los nuevos niveles (incluso aquellos que requieren subscripción) y ayúdanos a solucionar bugs (fallos) antes de que se publiquen los niveles."
scribe_title: "Escriba" scribe_title: "Escriba"
scribe_title_description: "(Editor de Artículos)" scribe_title_description: "(Editor de Artículos)"
# scribe_summary: "Good code needs good documentation. Write, edit, and improve the docs read by millions of players across the globe." scribe_summary: "El buen código requiere de buena documentación. Escribe, edita, y mejora la documentación leída por millones de jugadores a lo largo del globo."
diplomat_title: "Diplomático" diplomat_title: "Diplomático"
diplomat_title_description: "(Traductor)" diplomat_title_description: "(Traductor)"
# diplomat_summary: "CodeCombat is localized in 45+ languages by our Diplomats. Help us out and contribute translations." diplomat_summary: "CodeCombat está traducido a más de 45 idiomas por nuestros Diplomáticos. Ayúdanos realizando traducciones."
ambassador_title: "Embajador" ambassador_title: "Embajador"
ambassador_title_description: "(Soporte)" ambassador_title_description: "(Soporte)"
# ambassador_summary: "Tame our forum users and provide direction for those with questions. Our ambassadors represent CodeCombat to the world." ambassador_summary: "Amansa a los usuarios de nuestro foro y guía a aquellos que tengan preguntas. Nuestros Embajadores representan a CodeCombat frente al mundo."
editor: editor:
main_title: "Editores de CodeCombat" main_title: "Editores de CodeCombat"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
date: "Date" date: "Date"
body: "Corps" body: "Corps"
version: "Version" version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
submitter: "Soumissionnaire" submitter: "Soumissionnaire"
submitted: "Soumis" submitted: "Soumis"
commit_msg: "Message de mise à jour" commit_msg: "Message de mise à jour"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
hard: "Difficile" hard: "Difficile"
player: "Joueur" player: "Joueur"
player_level: "Niveau" # Like player level 5, not like level: Dungeons of Kithgard player_level: "Niveau" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "seconde" second: "seconde"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr
date: "Data" date: "Data"
body: "Corpo" body: "Corpo"
version: "Versión" version: "Versión"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
commit_msg: "Mensaxe de Asignación ou Commit" commit_msg: "Mensaxe de Asignación ou Commit"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr
hard: "Difícil" hard: "Difícil"
player: "Xogador" player: "Xogador"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "segundo" second: "segundo"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
date: "Dátum" date: "Dátum"
body: "Test" body: "Test"
version: "Verzió" version: "Verzió"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
commit_msg: "Üzenet feladása" commit_msg: "Üzenet feladása"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
hard: "Nehéz" hard: "Nehéz"
player: "Játékos" player: "Játékos"
player_level: "Szint" # Like player level 5, not like level: Dungeons of Kithgard player_level: "Szint" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "másodperc" second: "másodperc"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
date: "Data" date: "Data"
body: "Testo" body: "Testo"
version: "Versione" version: "Versione"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
commit_msg: "Messaggio di commit" commit_msg: "Messaggio di commit"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
hard: "Difficile" hard: "Difficile"
player: "Giocatore" player: "Giocatore"
player_level: "Livello" # Like player level 5, not like level: Dungeons of Kithgard player_level: "Livello" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "secondo" second: "secondo"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
# date: "Date" # date: "Date"
body: "구성" body: "구성"
version: "버전" version: "버전"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
commit_msg: "커밋 메세지" commit_msg: "커밋 메세지"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
hard: "상급" hard: "상급"
player: "플레이어" player: "플레이어"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Македонски", englishDescription:
date: "Датум" date: "Датум"
body: "Тело" body: "Тело"
version: "Верзија" version: "Верзија"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
submitter: "Подносител" submitter: "Подносител"
submitted: "Поднесено" submitted: "Поднесено"
commit_msg: "Порака за поднесокот" commit_msg: "Порака за поднесокот"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Македонски", englishDescription:
hard: "Тешко" hard: "Тешко"
player: "Играч" player: "Играч"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "секунда" second: "секунда"
@ -474,7 +481,7 @@ module.exports = nativeDescription: "Македонски", englishDescription:
new_major_version: "Нова поголема(major) верзија" new_major_version: "Нова поголема(major) верзија"
cla_prefix: "За да ги зачуваш промените, мораш да го прифатиш нашиот" cla_prefix: "За да ги зачуваш промените, мораш да го прифатиш нашиот"
cla_url: "CLA" cla_url: "CLA"
cla_suffix: "(договор за тие што допринесуваат)." # Short explanation for CLA in macedonian cla_suffix: "(договор за тие што допринесуваат)."
cla_agree: "ПРИФАЌАМ" cla_agree: "ПРИФАЌАМ"
# contact: # contact:

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
version: "Versi" version: "Versi"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
commit_msg: "Mesej Commit" commit_msg: "Mesej Commit"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
date: "Dato" date: "Dato"
body: "Kropp" body: "Kropp"
version: "Versjon" version: "Versjon"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
commit_msg: "Commit-melding" commit_msg: "Commit-melding"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
hard: "Vanskelig" hard: "Vanskelig"
player: "Spiller" player: "Spiller"
player_level: "Nivå" # Like player level 5, not like level: Dungeons of Kithgard player_level: "Nivå" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "sekund" second: "sekund"

View file

@ -4,7 +4,6 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
no_ie: "CodeCombat werkt niet in IE8 of ouder. Sorry!" # Warning that only shows up in IE8 and older no_ie: "CodeCombat werkt niet in IE8 of ouder. Sorry!" # Warning that only shows up in IE8 and older
no_mobile: "CodeCombat is niet gemaakt voor mobiele apparaten en werkt misschien niet!" # Warning that shows up on mobile devices no_mobile: "CodeCombat is niet gemaakt voor mobiele apparaten en werkt misschien niet!" # Warning that shows up on mobile devices
play: "Speel" # The big play button that opens up the campaign view. play: "Speel" # The big play button that opens up the campaign view.
try_it: "Probeer het" # Alternate wording for Play button
old_browser: "Uh oh, jouw browser is te oud om CodeCombat te kunnen spelen, Sorry!" # Warning that shows up on really old Firefox/Chrome/Safari old_browser: "Uh oh, jouw browser is te oud om CodeCombat te kunnen spelen, Sorry!" # Warning that shows up on really old Firefox/Chrome/Safari
old_browser_suffix: "Je kan toch proberen, maar het zal waarschijnlijk niet werken!" old_browser_suffix: "Je kan toch proberen, maar het zal waarschijnlijk niet werken!"
ipad_browser: "Slecht nieuws: CodeCombat werkt niet op een iPad in de browser. Goed nieuws: onze eigen iPad-app wacht op goedkeuring van Apple." ipad_browser: "Slecht nieuws: CodeCombat werkt niet op een iPad in de browser. Goed nieuws: onze eigen iPad-app wacht op goedkeuring van Apple."
@ -160,6 +159,10 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
# date: "Date" # date: "Date"
body: "Inhoud" body: "Inhoud"
version: "Versie" version: "Versie"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
commit_msg: "Commit Bericht" commit_msg: "Commit Bericht"
@ -194,6 +197,9 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
hard: "Moeilijk" hard: "Moeilijk"
player: "Speler" player: "Speler"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "seconde" second: "seconde"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
date: "Datum" date: "Datum"
body: "Inhoud" body: "Inhoud"
version: "Versie" version: "Versie"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
commit_msg: "Commit Bericht" commit_msg: "Commit Bericht"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
hard: "Moeilijk" hard: "Moeilijk"
player: "Speler" player: "Speler"
player_level: "Niveau" # Like player level 5, not like level: Dungeons of Kithgard player_level: "Niveau" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "seconde" second: "seconde"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
# date: "Date" # date: "Date"
body: "Zawartość" body: "Zawartość"
version: "Wersja" version: "Wersja"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
commit_msg: "Wiadomość do commitu" commit_msg: "Wiadomość do commitu"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
hard: "Trudny" hard: "Trudny"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
date: "Data" date: "Data"
body: "Principal" body: "Principal"
version: "Versão" version: "Versão"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
submitted: "Enviado" submitted: "Enviado"
commit_msg: "Mensagem de Submissão" commit_msg: "Mensagem de Submissão"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
hard: "Difícil" hard: "Difícil"
player: "Jogador" player: "Jogador"
player_level: "Nível" # Like player level 5, not like level: Dungeons of Kithgard player_level: "Nível" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "segundo" second: "segundo"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
date: "Data" date: "Data"
body: "Corpo" body: "Corpo"
version: "Versão" version: "Versão"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
submitter: "Submissor" submitter: "Submissor"
submitted: "Submeteu" submitted: "Submeteu"
commit_msg: "Mensagem da Submissão" commit_msg: "Mensagem da Submissão"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
hard: "Difícil" hard: "Difícil"
player: "Jogador" player: "Jogador"
player_level: "Nível" # Like player level 5, not like level: Dungeons of Kithgard player_level: "Nível" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "segundo" second: "segundo"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
# date: "Date" # date: "Date"
body: "Corp" body: "Corp"
version: "Versiune" version: "Versiune"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
commit_msg: "Înregistrează Mesajul" commit_msg: "Înregistrează Mesajul"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
hard: "Greu" hard: "Greu"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "secundă" second: "secundă"

View file

@ -197,6 +197,9 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
hard: "Сложно" hard: "Сложно"
player: "Игрок" player: "Игрок"
player_level: "Уровень" # Like player level 5, not like level: Dungeons of Kithgard player_level: "Уровень" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "секунда" second: "секунда"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
date: "Datum" date: "Datum"
body: "Kropp" body: "Kropp"
version: "Version" version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
commit_msg: "Förbindelsemeddelande" commit_msg: "Förbindelsemeddelande"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
hard: "Svår" hard: "Svår"
player: "Spelare" player: "Spelare"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "sekund" second: "sekund"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "วินาที" second: "วินาที"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
date: "Tarih" date: "Tarih"
body: "Gövde" body: "Gövde"
version: "Sürüm" version: "Sürüm"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
commit_msg: "Gönderme İletisi" commit_msg: "Gönderme İletisi"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
hard: "Zor" hard: "Zor"
player: "Oyuncu" player: "Oyuncu"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "saniye" second: "saniye"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Українська", englishDescription:
date: "Дата" date: "Дата"
body: "Тіло" body: "Тіло"
version: "Версія" version: "Версія"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
commit_msg: "Доручити повідомлення" commit_msg: "Доручити повідомлення"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Українська", englishDescription:
hard: "Важкий" hard: "Важкий"
player: "Гравець" player: "Гравець"
player_level: "Рівень" # Like player level 5, not like level: Dungeons of Kithgard player_level: "Рівень" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "Секунда" second: "Секунда"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
date: "Ngày" date: "Ngày"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
hard: "Khó" hard: "Khó"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "giây" second: "giây"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
date: "日期" date: "日期"
body: "正文" body: "正文"
version: "版本" version: "版本"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
submitter: "提交者" submitter: "提交者"
submitted: "已提交" submitted: "已提交"
commit_msg: "提交信息" commit_msg: "提交信息"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
hard: "困难" hard: "困难"
player: "玩家" player: "玩家"
player_level: "等级" # Like player level 5, not like level: Dungeons of Kithgard player_level: "等级" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "" second: ""

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
date: "日期" date: "日期"
# body: "Body" # body: "Body"
version: "版本" version: "版本"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
commit_msg: "送出訊息" commit_msg: "送出訊息"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
hard: "困難" hard: "困難"
player: "玩家" player: "玩家"
player_level: "等級" # Like player level 5, not like level: Dungeons of Kithgard player_level: "等級" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "" second: ""

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
# date: "Date" # date: "Date"
# body: "Body" # body: "Body"
# version: "Version" # version: "Version"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
# commit_msg: "Commit Message" # commit_msg: "Commit Message"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
# hard: "Hard" # hard: "Hard"
# player: "Player" # player: "Player"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
# units: # units:
# second: "second" # second: "second"

View file

@ -159,6 +159,10 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
# date: "Date" # date: "Date"
body: "正文" body: "正文"
version: "版本" version: "版本"
# pending: "Pending"
# accepted: "Accepted"
# rejected: "Rejected"
# withdrawn: "Withdrawn"
# submitter: "Submitter" # submitter: "Submitter"
# submitted: "Submitted" # submitted: "Submitted"
commit_msg: "提交訊息" commit_msg: "提交訊息"
@ -193,6 +197,9 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
hard: "煩難" hard: "煩難"
player: "來個人" player: "來個人"
# player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard # player_level: "Level" # Like player level 5, not like level: Dungeons of Kithgard
# warrior: "Warrior"
# ranger: "Ranger"
# wizard: "Wizard"
units: units:
second: "" second: ""

View file

@ -22,7 +22,8 @@ class CocoModel extends Backbone.Model
@usesVersions = @schema()?.properties?.version? @usesVersions = @schema()?.properties?.version?
backupKey: -> backupKey: ->
if @usesVersions then @id else @id + ':' + @attributes.__v # TODO: doesn't work because __v doesn't actually increment. #2061 if @usesVersions then @id else @id # + ':' + @attributes.__v # TODO: doesn't work because __v doesn't actually increment. #2061
# if fixed, RevertModal will also need the fix
setProjection: (project) -> setProjection: (project) ->
return if project is @project return if project is @project

View file

@ -126,6 +126,7 @@ module.exports = class Level extends CocoModel
else if placeholderConfig.voiceRange # Pull in voiceRange else if placeholderConfig.voiceRange # Pull in voiceRange
levelThangComponent.config ?= {} levelThangComponent.config ?= {}
levelThangComponent.config.voiceRange = placeholderConfig.voiceRange levelThangComponent.config.voiceRange = placeholderConfig.voiceRange
levelThangComponent.config.cooldown = placeholderConfig.cooldown
if isHero if isHero
if equips = _.find levelThang.components, {original: LevelComponent.EquipsID} if equips = _.find levelThang.components, {original: LevelComponent.EquipsID}

View file

@ -417,8 +417,10 @@ module.exports = class ThangType extends CocoModel
if i18nKey if i18nKey
name = $.i18n.t 'choose_hero.' + i18nKey name = $.i18n.t 'choose_hero.' + i18nKey
matchedShortName = true
else else
name = _.string.humanize name name = _.string.humanize name
matchedShortName = false
format = '' format = ''
format = 'm' if /(range|radius|distance|vision)$/i.test name format = 'm' if /(range|radius|distance|vision)$/i.test name
@ -437,7 +439,7 @@ module.exports = class ThangType extends CocoModel
display.push "x#{modifiers.factor}" if modifiers.factor? and modifiers.factor isnt 1 display.push "x#{modifiers.factor}" if modifiers.factor? and modifiers.factor isnt 1
display = display.join ', ' display = display.join ', '
display = display.replace /9001m?/, 'Infinity' display = display.replace /9001m?/, 'Infinity'
name: name, display: display name: name, display: display, matchedShortName: matchedShortName
isSilhouettedItem: -> isSilhouettedItem: ->
return console.error "Trying to determine whether #{@get('name')} should be a silhouetted item, but it has no gem cost." unless @get('gems') or @get('tier') return console.error "Trying to determine whether #{@get('name')} should be a silhouetted item, but it has no gem cost." unless @get('gems') or @get('tier')

View file

@ -237,6 +237,28 @@ $gameControlMargin: 30px
&:hover &:hover
text-decoration: none text-decoration: none
.next-level-line
transform-origin: 0 100%
height: 8px
position: absolute
.line
width: calc(100% - 12px - 10px)
float: left
margin-top: 2px
margin-bottom: 2px
height: 4px
background: repeating-linear-gradient(-45deg, #AF9F7D, #DFC89C 5px, #F1EAC0 5px, #AF9F7D 10px)
box-shadow: 0px 0px 4px black
.point
width: 12px
float: left
margin-top: -4px
border-top: 8px solid transparent
border-bottom: 8px solid transparent
border-left: 12px solid lighten(#F1EAC0, 10%)
.game-controls .game-controls
position: absolute position: absolute
right: 1% right: 1%

View file

@ -50,6 +50,7 @@ body:not(.dialogue-view-active)
.spell-palette-popover.popover .spell-palette-popover.popover
right: 45% right: 45%
min-width: 500px min-width: 500px
margin-top: -17%
.spell-palette-popover.popover .spell-palette-popover.popover
// Only those popovers which are our direct children (spell documentation) // Only those popovers which are our direct children (spell documentation)

View file

@ -71,7 +71,7 @@
position: relative position: relative
font-size: 20px font-size: 20px
font-weight: bold font-weight: bold
.stat-label .stat-label
position: absolute position: absolute
left: 54px left: 54px
@ -82,6 +82,16 @@
left: 150px left: 150px
color: rgb(42,38,28) color: rgb(42,38,28)
&:not(.short-name)
text-align: center
.stat-label, .stat
position: initial
display: inline-block
.stat-label
margin-right: 8px
.item-description .item-description
margin: 15px 15px 0 25px margin: 15px 15px 0 25px
@ -106,17 +116,3 @@
.unequippable .unequippable
position: absolute position: absolute
body:not([lang^='en'])
#item-details-view
#item-details-body
.stat-row
text-align: center
.stat-label, .stat
position: initial
display: inline-block
.stat-label
margin-right: 8px

View file

@ -111,6 +111,29 @@
color: white color: white
//- Hero Type Select
#hero-type-select
position: absolute
top: 102px
left: 177px
background: rgb(26,21,17)
padding: 2px 0
z-index: 3
border-radius: 2px
label
background: rgb(58,47,38)
color: rgb(195,153,124)
border: 2px solid rgb(85,70,57)
margin: 0 2px
&.active
background: rgb(33,28,21)
border: 2px solid rgb(64,53,41)
color: white
//- Item List //- Item List
.tab-content .tab-content
@ -120,7 +143,19 @@
width: 669px width: 669px
height: 507px height: 507px
overflow: hidden overflow: hidden
&.filter-warrior
.item.Ranger, .item.Wizard
display: none
&.filter-ranger
.item.Warrior, .item.Wizard
display: none
&.filter-wizard
.item.Ranger, .item.Warrior
display: none
.tab-pane .tab-pane
height: 100% height: 100%

View file

@ -1,495 +0,0 @@
@import "app/styles/mixins"
@import "app/styles/bootstrap/variables"
$mapHeight: 1536
$forestMapWidth: 2500
$dungeonMapWidth: 2350
$desertMapWidth: 2350
$desertMapSeaBackground: rgba(113, 186, 208, 1)
$desertMapSeaBackgroundTransparent: rgba(113, 186, 208, 0)
$forestMapSeaBackground: rgba(113, 186, 208, 1)
$forestMapSeaBackgroundTransparent: rgba(113, 186, 208, 0)
$dungeonMapCaveBackground: rgba(68, 54, 45, 1)
$dungeonMapCaveBackgroundTransparent: rgba(68, 54, 45, 0)
$levelDotWidth: 2%
$levelDotHeight: $levelDotWidth * $forestMapWidth / $mapHeight
$levelDotZ: $levelDotHeight * 0.25
$levelDotHoverZ: $levelDotZ * 2
$levelDotShadowWidth: 0.8 * $levelDotWidth
$levelDotShadowHeight: 0.8 * $levelDotHeight
$levelClickRadius: 40px
$gameControlSize: 80px
$gameControlMargin: 30px
+keyframes(levelStartedPulse)
from
@include box-shadow(0px 0px 4px #333)
margin-bottom: -$levelDotHeight / 3 + $levelDotZ
50%
@include box-shadow(0px 0px 22px skyblue)
margin-bottom: -$levelDotHeight / 3 + ($levelDotHoverZ + $levelDotZ) / 2
to
@include box-shadow(0px 0px 4px #333)
margin-bottom: -$levelDotHeight / 3 + $levelDotZ
#world-map-view
width: 100%
height: 100%
position: absolute
.gradient
position: absolute
z-index: 0
&.horizontal-gradient
left: 0
right: 0
height: 3%
&.vertical-gradient
top: 0
bottom: 0
width: 3%
&.top-gradient
top: 0
&.right-gradient
right: 0
&.bottom-gradient
bottom: 0
&.left-gradient
left: 0
&.desert
background-color: $desertMapSeaBackground
.top-gradient
background: linear-gradient(to bottom, $desertMapSeaBackground 0%, $desertMapSeaBackgroundTransparent 100%)
.right-gradient
background: linear-gradient(to left, $desertMapSeaBackground 0%, $desertMapSeaBackgroundTransparent 100%)
.bottom-gradient
background: linear-gradient(to top, $desertMapSeaBackground 0%, $desertMapSeaBackgroundTransparent 100%)
.left-gradient
background: linear-gradient(to right, $desertMapSeaBackground 0%, $desertMapSeaBackgroundTransparent 100%)
&.forest
background-color: $forestMapSeaBackground
.top-gradient
background: linear-gradient(to bottom, $forestMapSeaBackground 0%, $forestMapSeaBackgroundTransparent 100%)
.right-gradient
background: linear-gradient(to left, $forestMapSeaBackground 0%, $forestMapSeaBackgroundTransparent 100%)
.bottom-gradient
background: linear-gradient(to top, $forestMapSeaBackground 0%, $forestMapSeaBackgroundTransparent 100%)
.left-gradient
background: linear-gradient(to right, $forestMapSeaBackground 0%, $forestMapSeaBackgroundTransparent 100%)
&.dungeon
background-color: $dungeonMapCaveBackground
.top-gradient
background: linear-gradient(to bottom, $dungeonMapCaveBackground 0%, $dungeonMapCaveBackgroundTransparent 100%)
.right-gradient
background: linear-gradient(to left, $dungeonMapCaveBackground 0%, $dungeonMapCaveBackgroundTransparent 100%)
.bottom-gradient
background: linear-gradient(to top, $dungeonMapCaveBackground 0%, $dungeonMapCaveBackgroundTransparent 100%)
.left-gradient
background: linear-gradient(to right, $dungeonMapCaveBackground 0%, $dungeonMapCaveBackgroundTransparent 100%)
.map
position: relative
.map-background
width: 100%
height: 100%
background-size: 100%
@include user-select(none)
&.map-dungeon
background-image: url('/images/pages/play/map_dungeon_1920.jpg')
@media screen and ( max-width: 1366px )
background-image: url('/images/pages/play/map_dungeon_1366.jpg')
&.map-forest
background-image: url('/images/pages/play/map_forest_1920.jpg')
@media screen and ( max-width: 1366px )
background-image: url('/images/pages/play/map_forest_1366.jpg')
&.map-desert
background-image: url('/images/pages/play/map_desert_1920.jpg')
@media screen and ( max-width: 1366px )
background-image: url('/images/pages/play/map_desert_1366.jpg')
.level, .level-shadow
position: absolute
border-radius: 100%
-webkit-transform: scaleY(0.75)
transform: scaleY(0.75)
.level
z-index: 2
width: $levelDotWidth
height: $levelDotHeight
margin-left: -0.5 * $levelDotWidth
margin-bottom: -$levelDotHeight / 3 + $levelDotZ
border: 2px groove white
@include transition(margin-bottom 0.5s ease)
&.disabled, &.locked
background-image: url(/images/pages/game-menu/lock.png)
background-size: 75%
background-repeat: no-repeat
background-position: 50% 50%
opacity: 0.7
a
cursor: default
&.next
width: 2 * $levelDotWidth
height: 2 * $levelDotHeight
margin-left: -0.5 * 2 * $levelDotWidth
margin-bottom: -2 * $levelDotHeight / 3 + 2 * $levelDotZ
&.started, &.next
border: 3px solid lightgreen
@include box-shadow(0px 0px 35px skyblue)
// Would be cool, but kills performance, since we have to re-render all the time.
//&:not(:hover)
// -webkit-animation-name: levelStartedPulse
// -webkit-animation-duration: 3s
// -webkit-animation-iteration-count: infinite
&.complete
border: 3px solid gold
@include box-shadow(0px 0px 35px skyblue)
img.banner
position: absolute
bottom: 38%
left: -50%
width: 200%
pointer-events: none
img.star
width: 100%
bottom: 7%
position: absolute
pointer-events: none
.glyphicon-star
position: absolute
color: lightblue
font-size: 21px
left: 1.5px
&.started .glyphicon-star
left: 0.5px
img.hero-portrait
width: 120%
position: absolute
bottom: 75%
left: 75%
border: 1px solid black
border-radius: 100%
background: white
.level-shadow
z-index: 1
width: $levelDotShadowWidth
height: $levelDotShadowHeight
margin-left: -0.5 * $levelDotShadowWidth
margin-bottom: -$levelDotShadowHeight / 3
background-color: black
@include box-shadow(0px 0px 10px black)
@include opacity(0.75)
&.next
width: 2 * $levelDotShadowWidth
height: 2 * $levelDotShadowHeight
margin-left: -0.5 * 2 * $levelDotShadowWidth
margin-bottom: -2 * $levelDotShadowHeight / 3
.level:hover
// TODO: This rotate stops Firefox from flickering, but also disables the scaleY(0.75)
// TODO: The dot looks like it's jumping.
// TODO: -moz-transform: scaleY(0.75) didn't do anything
// TODO: Does not break Chrome's oval.
-moz-transform: rotate(0)
margin-bottom: -$levelDotHeight / 3 + $levelDotHoverZ
@include box-shadow(0px 0px 35px skyblue)
&.next
margin-bottom: -2 * $levelDotHeight / 3 + 2 * $levelDotHoverZ
.level
a
display: block
padding: $levelClickRadius
margin-left: -0.5 * $levelClickRadius
margin-top: -0.5 * $levelClickRadius
border-radius: $levelClickRadius
&.next a
padding: 2 * $levelClickRadius
margin-left: 2 * -0.5 * $levelClickRadius
margin-top: 2 * -0.5 * $levelClickRadius
border-radius: 2 * $levelClickRadius
.tooltip
z-index: 2
.level-info-container
display: none
position: absolute
z-index: 3
padding: 10px
border-width: 16px 12px
// Using modernizr-mixin for compat detection
@include yep(borderimage)
border-style: solid
border-image: url(/images/level/popover_border_background.png) 16 12 fill round
@include nope(borderimage)
background-color: rgb(247, 242, 218)
.level-info.complete h3:after
content: " - Complete!"
color: green
.level-info.started h3:after
content: " - Started"
color: desaturate(green, 50%)
.level-info
h3
margin-top: 0
margin-bottom: 0px
.level-description
color: black
text-shadow: 0 1px 0 white
.campaign-label
text-shadow: 0 1px 0 white
.start-level
display: block
margin: 10px auto 0 auto
width: 200px
.campaign-switch
color: purple
position: absolute
z-index: 1
font-size: 2vw
text-shadow: 0 0 0.3vw white, 0 0 0.3vw white
&:hover
text-decoration: none
&#desert-link
left: 90%
top: 18.5%
transform: scaleY(-1.5) scaleX(1.5)
&#forest-back-link
left: 2%
top: 70.5%
transform: rotate(216deg)
&#forest-link
left: 94.5%
top: 7%
transform: rotate(-35deg)
&#dungeon-link
left: 9%
top: 54.5%
transform: rotate(180deg)
color: fuchsia
.game-controls
position: absolute
right: 1%
bottom: 1%
z-index: 3
.btn
&:not(:first-child)
margin-left: $gameControlMargin
width: $gameControlSize
height: $gameControlSize
background: url(/images/pages/play/menu_icons.png) no-repeat
position: relative
img
position: absolute
left: 0
top: 0
width: 100%
height: 100%
background-size: cover
@include transition(0.5s ease)
@include box-shadow(2px 2px 4px black)
border: 0
border-radius: 12px
// IE9 shows a blank white button with this MS gradient filter in place
filter: none
&:hover
@include box-shadow(0 0 12px #bbf)
&:active
@include box-shadow(0 0 20px white)
&.heroes
background-position: (-1 * $gameControlSize) 0px
&.achievements
background-position: (-2 * $gameControlSize) 0px
&.account
background-position: (-3 * $gameControlSize) 0px
&.settings
background-position: (-4 * $gameControlSize) 0px
&.gems
background-position: (-5 * $gameControlSize) 0px
.tooltip
font-size: 24px
.tooltip-arrow
display: none
.user-status
position: absolute
bottom: 16px
left: 8px
text-align: center
font-size: 24px
color: white
text-shadow: 0px 2px 1px black, 0px -2px 1px black, -2px 0px 1px black, 2px 0px 1px black
height: 32px
line-height: 32px
.user-status-line
position: relative
button.btn.btn-illustrated
margin-left: 10px
min-width: 90px
height: 32px
color: white
.gem, .player-level-icon, .player-hero-icon
position: absolute
top: 1px
#gems-count
margin-left: 40px
.player-level
margin-left: 34px
.player-name
margin-left: 45px
$spriteSheetSize: 30px
.player-level-icon, .player-hero-icon
background: transparent url(/images/pages/play/play-spritesheet.png)
background-size: cover
background-position: (-2 * $spriteSheetSize) 0
display: inline-block
width: 30px
height: 30px
margin: 0px 2px
.player-hero-icon
margin-left: 10px
background-position: (-4 * $spriteSheetSize) 0
&.knight
background-position: (-5 * $spriteSheetSize) 0
&.librarian
background-position: (-6 * $spriteSheetSize) 0
&.ninja
background-position: (-7 * $spriteSheetSize) 0
&.potion-master
background-position: (-8 * $spriteSheetSize) 0
&.samurai
background-position: (-9 * $spriteSheetSize) 0
&.trapper
background-position: (-10 * $spriteSheetSize) 0
&.forest-archer
background-position: (-11 * $spriteSheetSize) 0
&.sorcerer
background-position: (-12 * $spriteSheetSize) 0
#volume-button
position: absolute
left: 1%
top: 1%
padding: 3px 8px
@include opacity(0.75)
&:hover
@include opacity(1.0)
.glyphicon
display: none
font-size: 32px
&.vol-up .glyphicon.glyphicon-volume-up
display: inline-block
&.vol-off .glyphicon.glyphicon-volume-off
display: inline-block
@include opacity(0.50)
&:hover
@include opacity(0.75)
&.vol-down .glyphicon.glyphicon-volume-down
display: inline-block
#campaign-status
position: absolute
left: 0
top: 15px
width: 100%
margin: 0
text-align: center
color: rgb(254,188,68)
font-size: 30px
text-shadow: black 2px 2px 0, black -2px -2px 0, black 2px -2px 0, black -2px 2px 0, black 2px 0px 0, black 0px -2px 0, black -2px 0px 0, black 0px 2px 0
body:not(.ipad) #world-map-view
.level-info-container
pointer-events: none
body.ipad #world-map-view
// iPad only supports up to Kithgard Gates for now.
.campaign-switch
display: none
.old-levels
display: none

View file

@ -24,13 +24,13 @@ block header
a(data-toggle='dropdown') a(data-toggle='dropdown')
span.glyphicon-chevron-down.glyphicon span.glyphicon-chevron-down.glyphicon
ul.dropdown-menu ul.dropdown-menu
li.dropdown-header Actions li.dropdown-header(data-i18n="common.actions") Actions
li(class=anonymous ? "disabled": "") li(class=anonymous ? "disabled": "")
a(data-toggle="coco-modal", data-target="modal/RevertModal", data-i18n="editor.revert")#revert-button Revert a(data-toggle="coco-modal", data-target="modal/RevertModal", data-i18n="editor.revert")#revert-button Revert
li(class=anonymous ? "disabled": "") li(class=anonymous ? "disabled": "")
a(data-i18n="editor.pop_i18n")#pop-level-i18n-button Populate i18n a(data-i18n="editor.pop_i18n")#pop-level-i18n-button Populate i18n
li.divider li.divider
li.dropdown-header Info li.dropdown-header(data-i18n="common.info") Info
block outer_content block outer_content
.outer-content .outer-content

View file

@ -5,7 +5,7 @@ block modal-header-content
block modal-body-content block modal-body-content
if !modelsToSave.models.length if !modelsToSave.models.length
.alert.alert-info No changes .alert.alert-info(data-i18n="delta.no_changes") No changes
for model in modelsToSave.models for model in modelsToSave.models
.panel.panel-default .panel.panel-default
@ -18,4 +18,4 @@ block modal-body-content
block modal-footer block modal-footer
.modal-footer .modal-footer
button(data-dismiss="modal", data-i18n="common.cancel").btn Cancel button(data-dismiss="modal", data-i18n="common.cancel").btn Cancel
button.btn.btn-primary#save-button Save button.btn.btn-primary(data-i18n="common.save")#save-button Save

View file

@ -44,7 +44,7 @@ div#columns.row
a(href="/play/level/#{level.get('slug') || level.id}?team=#{team.otherTeam}&opponent=#{session.id}") a(href="/play/level/#{level.get('slug') || level.id}?team=#{team.otherTeam}&opponent=#{session.id}")
span(data-i18n="ladder.fight") Fight! span(data-i18n="ladder.fight") Fight!
if teamIndex == 1 if teamIndex == 1
.btn.btn-sm.load-more-ladder-entries More .btn.btn-sm.load-more-ladder-entries(data-i18n="editor.more") More
div.column.col-md-4 div.column.col-md-4
h4.friends-header(data-i18n="ladder.friends_playing") Friends Playing h4.friends-header(data-i18n="ladder.friends_playing") Friends Playing

View file

@ -13,7 +13,7 @@
img.hr(src="/images/pages/play/modal/hr.png", draggable="false") img.hr(src="/images/pages/play/modal/hr.png", draggable="false")
for stat in stats for stat in stats
div.stat-row.big-font div(class="stat-row big-font" + (/^en/.test(me.get('preferredLanguage')) && stat.matchedShortName ? " short-name" : ""))
div.stat-label= stat.name div.stat-label= stat.name
div.stat= stat.display div.stat= stat.display
img.hr(src="/images/pages/play/modal/hr.png", class=stat.isLast ? "" : "faded", draggable="false") img.hr(src="/images/pages/play/modal/hr.png", class=stat.isLast ? "" : "faded", draggable="false")

View file

@ -17,8 +17,21 @@
a.one-line(href="#item-category-" + category, data-toggle="tab") a.one-line(href="#item-category-" + category, data-toggle="tab")
img.tab-icon(src="/images/pages/play/modal/item-icon-"+category+".png", draggable="false") img.tab-icon(src="/images/pages/play/modal/item-icon-"+category+".png", draggable="false")
span.big-font= itemCategoryNames[index] span.big-font= itemCategoryNames[index]
#hero-type-select.btn-group(data-toggle="buttons")
label.btn.active#all
input(type="radio", name="hero-class-select", autocomplete="off")
span(data-i18n="editor.level_tab_thangs_all")
label.btn#warrior
input(type="radio", name="hero-class-select", autocomplete="off")
span(data-i18n="general.warrior")
label.btn#ranger
input(type="radio", name="hero-class-select", autocomplete="off")
span(data-i18n="general.ranger")
label.btn#wizard
input(type="radio", name="hero-class-select", autocomplete="off")
span(data-i18n="general.wizard")
.tab-content .tab-content
for category, index in itemCategories for category, index in itemCategories
.tab-pane(id="item-category-" + category, class=index ? "" : "active") .tab-pane(id="item-category-" + category, class=index ? "" : "active")
@ -27,7 +40,7 @@
for item in itemCategoryCollections[category].models for item in itemCategoryCollections[category].models
- var hidden = item.comingSoon && !me.isAdmin() - var hidden = item.comingSoon && !me.isAdmin()
- hidden = hidden || (!item.get('gems') && !item.owned) - hidden = hidden || (!item.get('gems') && !item.owned)
div(class="item" + (hidden ? " hide" : "") + (item.silhouetted && !item.owned ? " silhouetted" : ""), data-item-id=item.id) div(class="item " + item.get('heroClass') + (hidden ? " hide" : "") + (item.silhouetted && !item.owned ? " silhouetted" : ""), data-item-id=item.id)
if item.silhouetted && !item.owned if item.silhouetted && !item.owned
span.glyphicon.glyphicon-lock.bolder span.glyphicon.glyphicon-lock.bolder
span.glyphicon.glyphicon-lock span.glyphicon.glyphicon-lock

View file

@ -1,106 +0,0 @@
.map
.gradient.horizontal-gradient.top-gradient
.gradient.vertical-gradient.right-gradient
.gradient.horizontal-gradient.bottom-gradient
.gradient.vertical-gradient.left-gradient
.map-background(class="map-"+mapType alt="", draggable="false")
- var seenNext = nextLevel;
each level in campaign.levels
if !level.hidden
- var next = level.id == nextLevel || (!seenNext && levelStatusMap[level.id] != "complete" && !level.locked && !level.disabled && !editorMode);
- seenNext = seenNext || next;
div(style="left: #{level.x}%; bottom: #{level.y}%; background-color: #{level.color}", class="level" + (next ? " next" : "") + (level.disabled ? " disabled" : "") + (level.locked ? " locked" : "") + " " + levelStatusMap[level.id] || "", data-level-id=level.id, title=level.name + (level.disabled ? ' (Coming Soon to Adventurers)' : ''))
if level.unlocksHero && !level.unlockedHero
img.hero-portrait(src=level.unlocksHero.img)
a(href=level.type == 'hero' ? '#' : level.disabled ? "/play" : "/play/#{level.levelPath || 'level'}/#{level.id}", disabled=level.disabled, data-level-id=level.id, data-level-path=level.levelPath || 'level', data-level-name=level.name)
if level.requiresSubscription
img.star(src="/images/pages/play/star.png")
if levelStatusMap[level.id] === 'complete'
img.banner(src="/images/pages/play/level-banner-complete.png")
if levelStatusMap[level.id] === 'started'
img.banner(src="/images/pages/play/level-banner-started.png")
div(style="left: #{level.x}%; bottom: #{level.y}%", class="level-shadow" + (next ? " next" : "") + " " + levelStatusMap[level.id] || "")
.level-info-container(data-level-id=level.id, data-level-path=level.levelPath || 'level', data-level-name=level.name)
div(class="level-info " + (levelStatusMap[level.id] || ""))
h3= level.name + (level.disabled ? " (Coming soon!)" : (level.locked ? " (Locked)" : ""))
.level-description= level.description
if level.disabled
p
span.spr(data-i18n="play.awaiting_levels_adventurer_prefix") We release five levels per week.
a.spr(href="/contribute/adventurer")
strong(data-i18n="play.awaiting_levels_adventurer") Sign up as an Adventurer
span.spl(data-i18n="play.awaiting_levels_adventurer_suffix") to be the first to play new levels.
- var playCount = levelPlayCountMap[level.id]
if playCount && playCount.sessions > 20
div
span.spr #{playCount.sessions}
span(data-i18n="play.players") players
span.spr , #{Math.round(playCount.playtime / 3600)}
span(data-i18n="play.hours_played") hours played
.campaign-label(style="color: #{campaign.color}")= campaign.name
if isIPadApp && !level.disabled && !level.locked
button.btn.btn-success.btn-lg.start-level(data-i18n="common.play") Play
if mapType === 'dungeon' && forestIsAvailable
a#forest-link.glyphicon.glyphicon-share-alt.campaign-switch(href="/play/forest", data-i18n="[title]play.campaign_forest")
if mapType === 'forest'
a#dungeon-link.glyphicon.glyphicon-share-alt.campaign-switch(href="/play/dungeon", data-i18n="[title]play.campaign_dungeon")
if desertIsAvailable
a#desert-link.glyphicon.glyphicon-share-alt.campaign-switch(href="/play/desert", data-i18n="[title]play.campaign_desert")
if mapType === 'desert'
a#forest-back-link.glyphicon.glyphicon-share-alt.campaign-switch(href="/play/forest", data-i18n="[title]play.campaign_forest")
.game-controls.header-font
button.btn.items(data-toggle='coco-modal', data-target='play/modal/PlayItemsModal', data-i18n="[title]play.items")
button.btn.heroes(data-toggle='coco-modal', data-target='play/modal/PlayHeroesModal', data-i18n="[title]play.heroes")
button.btn.achievements(data-toggle='coco-modal', data-target='play/modal/PlayAchievementsModal', data-i18n="[title]play.achievements")
if me.get('anonymous') === false || me.get('iosIdentifierForVendor') || isIPadApp
button.btn.gems(data-toggle='coco-modal', data-target='play/modal/BuyGemsModal', data-i18n="[title]play.buy_gems")
if me.isAdmin()
button.btn.account(data-toggle='coco-modal', data-target='play/modal/PlayAccountModal', data-i18n="[title]play.account")
button.btn.settings(data-toggle='coco-modal', data-target='play/modal/PlaySettingsModal', data-i18n="[title]play.settings")
else if me.get('anonymous', true)
button.btn.settings(data-toggle='coco-modal', data-target='core/AuthModal', data-i18n="[title]play.settings")
// Don't show these things, they are bad and take us out of the game. Just wait until the new ones work.
//else
// a.btn.achievements(href="/user/#{me.getSlugOrID()}/stats", data-i18n="[title]play.achievements")
// a.btn.account(href="/user/#{me.getSlugOrID()}", data-i18n="[title]play.account")
// a.btn.settings(href='/account', data-i18n="[title]play.settings")
.user-status.header-font
.user-status-line
span.gem.gem-30
span#gems-count.spr= me.gems()
span.player-level-icon
span.player-level.spr= me.level()
span.player-hero-icon
if me.get('anonymous')
span.player-name.spr(data-i18n="play.anonymous") Anonymous Player
button.btn.btn-illustrated.login-button.btn-warning(data-i18n="login.log_in")
button.btn.btn-illustrated.signup-button.btn-danger(data-i18n="signup.sign_up")
else
span.player-name.spr= me.get('name')
button#logout-button.btn.btn-illustrated.btn-warning(data-i18n="login.log_out") Log Out
if me.isPremium()
button.btn.btn-illustrated.btn-primary(data-i18n="nav.contact", data-toggle="coco-modal", data-target="core/ContactModal") Contact
button.btn.btn-lg.btn-inverse#volume-button(title="Adjust volume")
.glyphicon.glyphicon-volume-off
.glyphicon.glyphicon-volume-down
.glyphicon.glyphicon-volume-up
//h1#campaign-status
// if mapType == 'dungeon'
// span.spr(data-i18n="play.campaign_dungeon")
// else if mapType == 'forest'
// span.spr(data-i18n="play.campaign_forest")
// | -
// if requiresSubscription
// span.spl(data-i18n="play.subscription_required")
// else if mapType == 'dungeon'
// span.spl(data-i18n="play.free")
// else
// span.spl(data-i18n="play.subscribed")

View file

@ -47,7 +47,7 @@ module.exports = class CampaignEditorView extends RootView
@listenToOnce @levels, 'sync', @onFundamentalLoaded @listenToOnce @levels, 'sync', @onFundamentalLoaded
@listenToOnce @achievements, 'sync', @onFundamentalLoaded @listenToOnce @achievements, 'sync', @onFundamentalLoaded
_.delay @getCampaignCompletions, 1000 #_.delay @getCampaignCompletions, 1000 # Roughly never finishes loading, nearly kills server.
loadThangTypeNames: -> loadThangTypeNames: ->
# Load the names of the ThangTypes that this level's Treema nodes might want to display. # Load the names of the ThangTypes that this level's Treema nodes might want to display.

View file

@ -159,7 +159,7 @@ module.exports = class LevelEditView extends RootView
Backbone.Mediator.publish 'editor:view-switched', {} Backbone.Mediator.publish 'editor:view-switched', {}
startCommittingLevel: (e) -> startCommittingLevel: (e) ->
@openModalView new SaveLevelModal level: @level, supermodel: @supermodel @openModalView new SaveLevelModal level: @level, supermodel: @supermodel, buildTime: @levelBuildTime
Backbone.Mediator.publish 'editor:view-switched', {} Backbone.Mediator.publish 'editor:view-switched', {}
startForking: (e) -> startForking: (e) ->
@ -200,4 +200,5 @@ module.exports = class LevelEditView extends RootView
incrementBuildTime: => incrementBuildTime: =>
return if application.userIsIdle return if application.userIsIdle
@level.set('buildTime', (@level.get('buildTime') ? 0) + 1) @levelBuildTime ?= @level.get('buildTime')
++@levelBuildTime

View file

@ -20,6 +20,7 @@ module.exports = class SaveLevelModal extends SaveVersionModal
constructor: (options) -> constructor: (options) ->
super options super options
@level = options.level @level = options.level
@buildTime = options.buildTime
getRenderData: (context={}) -> getRenderData: (context={}) ->
context = super(context) context = super(context)
@ -60,6 +61,7 @@ module.exports = class SaveLevelModal extends SaveVersionModal
commitLevel: (e) -> commitLevel: (e) ->
e.preventDefault() e.preventDefault()
@level.set 'buildTime', @buildTime
modelsToSave = [] modelsToSave = []
formsToSave = [] formsToSave = []
for form in @$el.find('form') for form in @$el.find('form')

View file

@ -146,8 +146,10 @@ module.exports = class CampaignView extends RootView
level.unlockedHero = level.unlocksHero.originalID in (me.get('earned')?.heroes or []) level.unlockedHero = level.unlocksHero.originalID in (me.get('earned')?.heroes or [])
level.hidden = level.locked level.hidden = level.locked
@determineNextLevel context.levels if @sessions.loaded
# put lower levels in last, so in the world map they layer over one another properly. # put lower levels in last, so in the world map they layer over one another properly.
context.campaign.levels = (_.sortBy context.campaign.levels, (l) -> l.position.y).reverse() context.levels = (_.sortBy context.levels, (l) -> l.position.y).reverse()
@campaign.renderedLevels = context.levels
context.levelStatusMap = @levelStatusMap context.levelStatusMap = @levelStatusMap
context.levelPlayCountMap = @levelPlayCountMap context.levelPlayCountMap = @levelPlayCountMap
@ -155,8 +157,8 @@ module.exports = class CampaignView extends RootView
context.mapType = _.string.slugify @terrain context.mapType = _.string.slugify @terrain
context.requiresSubscription = @requiresSubscription context.requiresSubscription = @requiresSubscription
context.editorMode = @editorMode context.editorMode = @editorMode
context.adjacentCampaigns = _.filter _.values(_.cloneDeep(@campaign.get('adjacentCampaigns') or {})), (ac) -> context.adjacentCampaigns = _.filter _.values(_.cloneDeep(@campaign.get('adjacentCampaigns') or {})), (ac) =>
return false if ac.showIfUnlocked and ac.showIfUnlocked not in me.levels() return false if ac.showIfUnlocked and (ac.showIfUnlocked not in me.levels()) and not @editorMode
ac.name = utils.i18n ac, 'name' ac.name = utils.i18n ac, 'name'
ac.description = utils.i18n ac, 'description' ac.description = utils.i18n ac, 'description'
styles = [] styles = []
@ -188,6 +190,11 @@ module.exports = class CampaignView extends RootView
@updateHero() @updateHero()
unless window.currentModal or not @fullyRendered unless window.currentModal or not @fullyRendered
@highlightElement '.level.next', delay: 500, duration: 60000, rotation: 0, sides: ['top'] @highlightElement '.level.next', delay: 500, duration: 60000, rotation: 0, sides: ['top']
if @editorMode
for level in @campaign.renderedLevels
for nextLevelOriginal in level.nextLevels
if nextLevel = _.find(@campaign.renderedLevels, original: nextLevelOriginal)
@createLine level.position, nextLevel.position
@applyCampaignStyles() @applyCampaignStyles()
afterInsert: -> afterInsert: ->
@ -199,6 +206,29 @@ module.exports = class CampaignView extends RootView
authModal.mode = 'signup' authModal.mode = 'signup'
@openModalView authModal @openModalView authModal
determineNextLevel: (levels) ->
foundNext = false
for level in levels
level.nextLevels = (reward.level for reward in level.rewards when reward.level)
unless foundNext
for nextLevelOriginal in level.nextLevels
nextLevel = _.find levels, original: nextLevelOriginal
if nextLevel and not nextLevel.locked and @levelStatusMap[nextLevel.slug] isnt 'complete' and (me.isPremium() or not nextLevel.requiresSubscription)
nextLevel.next = true
foundNext = true
break
if not foundNext and levels[0] and not levels[0].locked and @levelStatusMap[levels[0].slug] isnt 'complete'
levels[0].next = true
createLine: (o1, o2) ->
p1 = x: o1.x, y: 0.66 * o1.y + 0.5
p2 = x: o2.x, y: 0.66 * o2.y + 0.5
length = Math.sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y))
angle = Math.atan2(p1.y - p2.y, p2.x - p1.x) * 180 / Math.PI
transform = "rotate(#{angle}deg)"
line = $('<div>').appendTo('.map').addClass('next-level-line').css(transform: transform, width: length + '%', left: o1.x + '%', bottom: (o1.y + 0.5) + '%')
line.append($('<div class="line">')).append($('<div class="point">'))
applyCampaignStyles: -> applyCampaignStyles: ->
return unless @campaign.loaded return unless @campaign.loaded
if (backgrounds = @campaign.get 'backgroundImage') and backgrounds.length if (backgrounds = @campaign.get 'backgroundImage') and backgrounds.length
@ -221,7 +251,6 @@ module.exports = class CampaignView extends RootView
return if @editorMode return if @editorMode
for session in @sessions.models for session in @sessions.models
@levelStatusMap[session.get('levelID')] = if session.get('state')?.complete then 'complete' else 'started' @levelStatusMap[session.get('levelID')] = if session.get('state')?.complete then 'complete' else 'started'
# TODO: add level.next = true for the next level they should do
@render() @render()
onClickMap: (e) -> onClickMap: (e) ->

View file

@ -81,21 +81,25 @@ module.exports = class HeroVictoryModal extends ModalView
@newEarnedAchievements.push ea @newEarnedAchievements.push ea
@listenToOnce ea, 'sync', -> @listenToOnce ea, 'sync', ->
if _.all((ea.id for ea in @newEarnedAchievements)) if _.all((ea.id for ea in @newEarnedAchievements))
@newEarnedAchievementsResource.markLoaded()
@listenToOnce me, 'sync', -> @listenToOnce me, 'sync', ->
@readyToContinue = true @readyToContinue = true
@updateSavingProgressStatus() @updateSavingProgressStatus()
me.fetch cache: false unless me.loading me.fetch cache: false unless me.loading
@readyToContinue = true if not @achievements.models.length @readyToContinue = true if not @achievements.models.length
# have to use a something resource because addModelResource doesn't handle models being upserted/fetched via POST like we're doing here
@newEarnedAchievementsResource = @supermodel.addSomethingResource('earned achievements') if @newEarnedAchievements.length
getRenderData: -> getRenderData: ->
c = super() c = super()
c.levelName = utils.i18n @level.attributes, 'name' c.levelName = utils.i18n @level.attributes, 'name'
earnedAchievementMap = _.indexBy(@earnedAchievements?.models or [], (ea) -> ea.get('achievement')) earnedAchievementMap = _.indexBy(@newEarnedAchievements or [], (ea) -> ea.get('achievement'))
for achievement in @achievements.models for achievement in @achievements.models
earnedAchievement = earnedAchievementMap[achievement.id] earnedAchievement = earnedAchievementMap[achievement.id]
if earnedAchievement if earnedAchievement
achievement.completedAWhileAgo = new Date() - Date.parse(earnedAchievement.get('created')) > 30 * 1000 achievement.completedAWhileAgo = new Date().getTime() - Date.parse(earnedAchievement.get('created')) > 30 * 1000
achievement.worth = achievement.get 'worth', true achievement.worth = achievement.get 'worth', true
achievement.gems = achievement.get('rewards')?.gems achievement.gems = achievement.get('rewards')?.gems
c.achievements = @achievements.models.slice() c.achievements = @achievements.models.slice()

View file

@ -52,6 +52,7 @@ module.exports = class PlayItemsModal extends ModalView
'click #close-modal': 'hide' 'click #close-modal': 'hide'
'click': 'onClickedSomewhere' 'click': 'onClickedSomewhere'
'update .tab-pane .nano': 'onScrollItemPane' 'update .tab-pane .nano': 'onScrollItemPane'
'click #hero-type-select label': 'onClickHeroTypeSelect'
constructor: (options) -> constructor: (options) ->
@onScrollItemPane = _.throttle(_.bind(@onScrollItemPane, @), 200) @onScrollItemPane = _.throttle(_.bind(@onScrollItemPane, @), 200)
@ -162,6 +163,12 @@ module.exports = class PlayItemsModal extends ModalView
item = @idToItem[itemEl.data('item-id')] item = @idToItem[itemEl.data('item-id')]
itemEl.find('.item-silhouette, .item-img').attr('src', item.getPortraitURL()) itemEl.find('.item-silhouette, .item-img').attr('src', item.getPortraitURL())
onClickHeroTypeSelect: (e) ->
value = $(e.target).closest('label').attr('id')
tabContent = @$el.find('.tab-content')
tabContent.removeClass('filter-wizard filter-ranger filter-warrior')
tabContent.addClass("filter-#{value}") if value isnt 'all'
onUnlockButtonClicked: (e) -> onUnlockButtonClicked: (e) ->
e.stopPropagation() e.stopPropagation()
button = $(e.target).closest('button') button = $(e.target).closest('button')

View file

@ -9,24 +9,24 @@ module.exports.setup = (app) ->
app.all '/file*', (req, res) -> app.all '/file*', (req, res) ->
return fileGet(req, res) if req.route.method is 'get' return fileGet(req, res) if req.route.method is 'get'
return filePost(req, res) if req.route.method is 'post' return filePost(req, res) if req.route.method is 'post'
return errors.badMethod(res, ['GET', 'POST']) return fileDelete(req, res) if req.route.method is 'delete'
return errors.badMethod(res, ['GET', 'POST', 'DELETE'])
fileDelete = (req, res) ->
return errors.forbidden(res) unless req.user
query = parsePathIntoQuery(req.path)
return errors.badInput(res) if not query.filename
Grid.gfs.collection('media').findOne query, (err, filedata) =>
return errors.notFound(res) if not filedata
return errors.forbidden(res) unless userCanEditFile(req.user, filedata)
Grid.gfs.remove {_id: filedata._id, root: 'media'}, (err) ->
return errors.serverError(res) if err
return res.end()
fileGet = (req, res) -> fileGet = (req, res) ->
path = req.path[6..] query = parsePathIntoQuery(req.path)
path = decodeURI path
isFolder = false
try
objectId = mongoose.Types.ObjectId(path)
query = objectId
catch e
path = path.split('/')
filename = path[path.length-1]
path = path[...path.length-1].join('/')
query =
'metadata.path': path
if filename then query.filename = filename else isFolder = true
if isFolder if not query.filename # it's a folder, return folder contents
Grid.gfs.collection('media').find query, (err, cursor) -> Grid.gfs.collection('media').find query, (err, cursor) ->
return errors.serverError(res) if err return errors.serverError(res) if err
results = cursor.toArray (err, results) -> results = cursor.toArray (err, results) ->
@ -35,7 +35,7 @@ fileGet = (req, res) ->
res.send(results) res.send(results)
res.end() res.end()
else else # it's a single file
Grid.gfs.collection('media').findOne query, (err, filedata) => Grid.gfs.collection('media').findOne query, (err, filedata) =>
return errors.notFound(res) if not filedata return errors.notFound(res) if not filedata
readstream = Grid.gfs.createReadStream({_id: filedata._id, root: 'media'}) readstream = Grid.gfs.createReadStream({_id: filedata._id, root: 'media'})
@ -48,6 +48,22 @@ fileGet = (req, res) ->
res.setHeader('Cache-Control', 'public') res.setHeader('Cache-Control', 'public')
readstream.pipe(res) readstream.pipe(res)
handleStreamEnd(res, res) handleStreamEnd(res, res)
parsePathIntoQuery = (path) ->
path = path[6..]
path = decodeURI path
try
objectId = mongoose.Types.ObjectId(path)
query = objectId
catch e
path = path.split('/')
filename = path[path.length-1]
path = path[...path.length-1].join('/')
query =
'metadata.path': path
query.filename = filename if filename
query
postFileSchema = postFileSchema =
type: 'object' type: 'object'

View file

@ -224,8 +224,10 @@ UserSchema.methods.saveActiveUser = (event, done=null) ->
done?() done?()
UserSchema.pre('save', (next) -> UserSchema.pre('save', (next) ->
@set('emailLower', @get('email')?.toLowerCase()) if email = @get('email')
@set('nameLower', @get('name')?.toLowerCase()) @set('emailLower', email.toLowerCase())
if name = @get('name')
@set('nameLower', name.toLowerCase())
pwd = @get('password') pwd = @get('password')
if @get('password') if @get('password')
@set('passwordHash', User.hashPassword(pwd)) @set('passwordHash', User.hashPassword(pwd))
@ -265,6 +267,8 @@ UserSchema.statics.editableProperties = [
UserSchema.plugin plugins.NamedPlugin UserSchema.plugin plugins.NamedPlugin
UserSchema.index({'stripe.subscriptionID':1}, {unique: true, sparse: true}) UserSchema.index({'stripe.subscriptionID':1}, {unique: true, sparse: true})
UserSchema.index({'emailLower':1}, {unique: true, sparse: true, name: 'emailLower_1'})
UserSchema.index({'nameLower':1}, {unique: true, sparse: true, name: 'nameLower_1'})
module.exports = User = mongoose.model('User', UserSchema) module.exports = User = mongoose.model('User', UserSchema)