刚才那个不能跑。

This commit is contained in:
wasneet 2025-04-26 17:46:15 +08:00
parent 099c9ff025
commit c952588b01
9 changed files with 171 additions and 9068 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,283 +0,0 @@
{
"ChujinDW1.txt__3": "ware5 anywh3re ELSE!",
"ChujinDW1.txt__7": "ELSE, d3ar customer?",
"ChujinDW1.txt__12": "about?",
"ChujinDW1.txt__16": "ELSE?",
"ChujinDW1.txt__20": "someth1ng!",
"ChujinDW1.txt__27": "spa4ce!!",
"ChujinDW1.txt__31": "c4$h...",
"ChujinDW1.txt__35": "y0u f4ncy?",
"ChujinDW1.txt__39": "l00k 4round!",
"ChujinDW1.txt__43": "you off3r?",
"ChujinDW1.txt__50": "do y0u w4nt",
"ChujinDW1.txt__51": "to UNLOAD?",
"ChujinDW1.txt__55": "t0 f1nd a",
"ChujinDW1.txt__56": "new buyer!",
"ChujinDW1.txt__62": "-",
"ChujinDW1.txt__65": "Robotopia",
"ChujinDW1.txt__68": "Chujin",
"ChujinDW1.txt__71": "The Spire",
"ChujinDW1.txt__74": "Any secrets?",
"ChujinDW1.txt__77": "[color=yellow]Chujin (NEW)[/color]",
"ChujinDW1.txt__79": "-",
"ChujinDW1.txt__84": "BREAK",
"ChujinDW1.txt__87": "trash1ng the pl4ce!",
"ChujinDW1.txt__88": "BREAK",
"ChujinDW1.txt__90": "freaks think they are?!",
"ChujinDW1.txt__92": "here!",
"ChujinDW1.txt__93": "BREAK",
"ChujinDW1.txt__95": "above the clouds! Hmph!",
"ChujinDW1.txt__97": "-",
"ChujinDW1.txt__101": "of Robotopia!",
"ChujinDW1.txt__103": "BREAK",
"ChujinDW1.txt__105": "settlement, I heard he still",
"ChujinDW1.txt__106": "personally helped many of the",
"ChujinDW1.txt__107": "good people here!",
"ChujinDW1.txt__108": "BREAK",
"ChujinDW1.txt__110": "those that were once thought",
"ChujinDW1.txt__111": "long gone...",
"ChujinDW1.txt__113": "BREAK",
"ChujinDW1.txt__115": "away lands to be fixed up by him!",
"ChujinDW1.txt__116": "BREAK",
"ChujinDW1.txt__118": "looks a bit with him!",
"ChujinDW1.txt__121": "-",
"ChujinDW1.txt__125": "Robotopia?",
"ChujinDW1.txt__127": "can get there by using the factory's",
"ChujinDW1.txt__128": "tram.",
"ChujinDW1.txt__129": "BREAK",
"ChujinDW1.txt__131": "folk.",
"ChujinDW1.txt__133": "from the edges.",
"ChujinDW1.txt__134": "BREAK",
"ChujinDW1.txt__136": "beyond the clouds!",
"ChujinDW1.txt__138": "thinking that it belongs to them!",
"ChujinDW1.txt__139": "BREAK",
"ChujinDW1.txt__141": "swear...",
"ChujinDW1.txt__143": "-",
"ChujinDW1.txt__147": "BREAK",
"ChujinDW1.txt__149": "alley somewhere in town.",
"ChujinDW1.txt__150": "BREAK",
"ChujinDW1.txt__153": "-",
"ChujinDW1.txt__157": "BREAK",
"ChujinDW1.txt__159": "encounter once, many, many years",
"ChujinDW1.txt__160": "ago.",
"ChujinDW1.txt__161": "BREAK",
"ChujinDW1.txt__163": "\"hoo-mans\" or something.",
"ChujinDW1.txt__165": "away from him after betraying",
"ChujinDW1.txt__166": "him over something.",
"ChujinDW1.txt__167": "BREAK",
"ChujinDW1.txt__169": "has been distrustful of these",
"ChujinDW1.txt__170": "hoo-mans, or so I heard.",
"ChujinDW1.txt__171": "BREAK",
"ChujinDW1.txt__173": "step a foot in my store!",
"PenGuy.txt__2": "you two again!",
"PenGuy.txt__7": "my chums?",
"PenGuy.txt__14": "interests",
"PenGuy.txt__15": "you?",
"PenGuy.txt__19": "your mind?",
"PenGuy.txt__23": "bunch!",
"PenGuy.txt__27": "carry it,",
"PenGuy.txt__28": "bud.",
"PenGuy.txt__32": "afford",
"PenGuy.txt__33": "it, bud.",
"PenGuy.txt__37": "at my",
"PenGuy.txt__38": "wares!",
"PenGuy.txt__42": "else?",
"PenGuy.txt__46": "you sell-",
"PenGuy.txt__47": "ing?",
"PenGuy.txt__51": "have any-",
"PenGuy.txt__52": "thing!",
"PenGuy.txt__56": "it?",
"PenGuy.txt__60": "bunch!",
"PenGuy.txt__67": "Dark Prison",
"PenGuy.txt__70": "Yourself",
"PenGuy.txt__73": "Where wares come from?",
"PenGuy.txt__76": "The Warden",
"PenGuy.txt__78": "-",
"PenGuy.txt__82": "before really.",
"PenGuy.txt__83": "BREAK",
"PenGuy.txt__85": "once?",
"PenGuy.txt__87": "he never mentioned here before.",
"PenGuy.txt__88": "BREAK",
"PenGuy.txt__91": "known as an outlaw.",
"PenGuy.txt__92": "BREAK",
"PenGuy.txt__94": "this place is a bit small for being",
"PenGuy.txt__95": "an entire Dark World of its own?",
"PenGuy.txt__96": "BREAK",
"PenGuy.txt__98": "the Warden isn't onto me.",
"PenGuy.txt__100": "-",
"PenGuy.txt__105": "now I'm stuck here.",
"PenGuy.txt__106": "BREAK",
"PenGuy.txt__108": "Bearing's Domain no matter how hard",
"PenGuy.txt__109": "I try.",
"PenGuy.txt__111": "BREAK",
"PenGuy.txt__113": "be or something.",
"PenGuy.txt__115": "-",
"PenGuy.txt__120": "suppliers now, can I?",
"PenGuy.txt__121": "BREAK",
"PenGuy.txt__123": "heads!",
"PenGuy.txt__125": "interest you!",
"PenGuy.txt__126": "BREAK",
"PenGuy.txt__128": "stuff you lost once.",
"PenGuy.txt__129": "BREAK",
"PenGuy.txt__131": "on it.",
"PenGuy.txt__133": "-",
"PenGuy.txt__138": "BREAK",
"PenGuy.txt__140": "seen.",
"PenGuy.txt__141": "BREAK",
"PenGuy.txt__144": "BREAK",
"PenGuy.txt__146": "moving in, was just annoyed but it's",
"PenGuy.txt__147": "not like I can return now.",
"PenGuy.txt__148": "BREAK",
"PenGuy.txt__150": "that big locked room down the middle",
"PenGuy.txt__151": "a few times.",
"PenGuy.txt__153": "BREAK",
"PenGuy2.txt__2": "out what I got!",
"PenGuy2.txt__6": "my chums?",
"PenGuy2.txt__13": "interests",
"PenGuy2.txt__14": "you?",
"PenGuy2.txt__18": "your mind?",
"PenGuy2.txt__22": "bunch!",
"PenGuy2.txt__26": "carry it,",
"PenGuy2.txt__27": "bud.",
"PenGuy2.txt__31": "afford",
"PenGuy2.txt__32": "it, bud.",
"PenGuy2.txt__36": "at my",
"PenGuy2.txt__37": "wares!",
"PenGuy2.txt__41": "else?",
"PenGuy2.txt__45": "you sell-",
"PenGuy2.txt__46": "ing?",
"PenGuy2.txt__50": "have any-",
"PenGuy2.txt__51": "thing!",
"PenGuy2.txt__55": "it?",
"PenGuy2.txt__59": "bunch!",
"PenGuy2.txt__64": "lake, so I'll check it out.",
"PenGuy2.txt__68": "Bearing",
"PenGuy2.txt__71": "Yourself",
"PenGuy2.txt__74": "The Fortress",
"PenGuy2.txt__77": "Criminals",
"PenGuy2.txt__80": "-----",
"PenGuy2.txt__84": "while talking about the big man",
"PenGuy2.txt__85": "inside his own fortress...?",
"PenGuy2.txt__86": "BREAK",
"PenGuy2.txt__89": "he says anymore.",
"PenGuy2.txt__90": "BREAK",
"PenGuy2.txt__92": "because he thinks the lightners have",
"PenGuy2.txt__93": "abandoned us here.",
"PenGuy2.txt__95": "BREAK",
"PenGuy2.txt__97": "or something, have you seen his",
"PenGuy2.txt__98": "scars?",
"PenGuy2.txt__100": "BREAK",
"PenGuy2.txt__102": "lightner out there did that,",
"PenGuy2.txt__103": "and then tossed him in here.",
"PenGuy2.txt__110": "livin'",
"PenGuy2.txt__111": "BREAK",
"PenGuy2.txt__113": "did some art commissions, even tried",
"PenGuy2.txt__114": "some painting, but I was never really",
"PenGuy2.txt__115": "successful.",
"PenGuy2.txt__116": "BREAK",
"PenGuy2.txt__118": "could really do is try to earn an",
"PenGuy2.txt__119": "honest living, but even that has been",
"PenGuy2.txt__120": "hard lately.",
"PenGuy2.txt__121": "BREAK",
"PenGuy2.txt__124": "game earlier.",
"PenGuy2.txt__128": "Bearing took over it.",
"PenGuy2.txt__130": "but many think it was the lightners",
"PenGuy2.txt__131": "that built it.",
"PenGuy2.txt__132": "BREAK",
"PenGuy2.txt__135": "traps and stuff all around.",
"PenGuy2.txt__136": "BREAK",
"PenGuy2.txt__138": "room somewhere, but I think it",
"PenGuy2.txt__139": "requires two people to make through",
"PenGuy2.txt__140": "it.",
"PenGuy2.txt__141": "BREAK",
"PenGuy2.txt__143": "go on ahead. Might even be a little",
"PenGuy2.txt__144": "fun for you!",
"PenGuy2.txt__148": "BREAK",
"PenGuy2.txt__150": "darkners are up to some shady",
"PenGuy2.txt__151": "business.",
"PenGuy2.txt__153": "BREAK",
"PenGuy2.txt__155": "what was my involvement with him?",
"PenGuy2.txt__156": "BREAK",
"PenGuy2.txt__158": "goods, I didn't ask where he got",
"PenGuy2.txt__159": "those.",
"PenGuy2.txt__161": "quickly not to ask many questions.",
"PenGuy2.txt__162": "BREAK",
"PenGuy2.txt__164": "called criminals ain't my business,",
"PenGuy2.txt__165": "so I won't pry.",
"PenGuy2.txt__166": "BREAK",
"PenGuy2.txt__168": "are looking for are right here",
"PenGuy2.txt__169": "in the fortress, good coincidence,",
"PenGuy2.txt__170": "right?",
"SchoolDW.txt__2": "around!",
"SchoolDW.txt__4": "I'm happy to have you!",
"SchoolDW.txt__8": "anything else?",
"SchoolDW.txt__13": "about?",
"SchoolDW.txt__17": "talk about",
"SchoolDW.txt__18": "something",
"SchoolDW.txt__19": "else?",
"SchoolDW.txt__23": "your mind?",
"SchoolDW.txt__30": "you can't",
"SchoolDW.txt__31": "carry more.",
"SchoolDW.txt__35": "afford",
"SchoolDW.txt__36": "it...",
"SchoolDW.txt__40": "what I",
"SchoolDW.txt__41": "have!",
"SchoolDW.txt__45": "else?",
"SchoolDW.txt__49": "you sell-",
"SchoolDW.txt__50": "ing?",
"SchoolDW.txt__54": "have any-",
"SchoolDW.txt__55": "thing!",
"SchoolDW.txt__59": "should I",
"SchoolDW.txt__60": "look at?",
"SchoolDW.txt__64": "go!",
"SchoolDW.txt__70": "Dark World",
"SchoolDW.txt__73": "Yourself",
"SchoolDW.txt__76": "Dark Jail",
"SchoolDW.txt__79": "Necklace",
"SchoolDW.txt__82": "[color=yellow]Necklace (NEW)[/color]",
"SchoolDW.txt__88": "Bearing's domain.",
"SchoolDW.txt__89": "BREAK",
"SchoolDW.txt__91": "abandoned us-",
"SchoolDW.txt__93": "that he knew how to get back at them.",
"SchoolDW.txt__94": "BREAK",
"SchoolDW.txt__96": "then nothing happened for a long",
"SchoolDW.txt__97": "time...",
"SchoolDW.txt__98": "BREAK",
"SchoolDW.txt__99": "anim:Sad:",
"SchoolDW.txt__101": "harsh.",
"SchoolDW.txt__103": "BREAK",
"SchoolDW.txt__105": "we can...",
"SchoolDW.txt__112": "BREAK",
"SchoolDW.txt__114": "ones?",
"SchoolDW.txt__115": "BREAK",
"SchoolDW.txt__116": "anim:Happy:",
"SchoolDW.txt__119": "in the end.",
"SchoolDW.txt__120": "BREAK",
"SchoolDW.txt__121": "anim:Sad:",
"SchoolDW.txt__123": "are following Lord Bearing now.",
"SchoolDW.txt__125": "back and visit now and then.",
"SchoolDW.txt__132": "BREAK",
"SchoolDW.txt__133": "anim:Sad:",
"SchoolDW.txt__135": "such a place.",
"SchoolDW.txt__136": "BREAK",
"SchoolDW.txt__138": "criminals are sent\"...?",
"SchoolDW.txt__139": "BREAK",
"SchoolDW.txt__142": "BREAK",
"SchoolDW.txt__143": "anim:Default:",
"SchoolDW.txt__145": "and that's saying something.",
"SchoolDW.txt__152": "and came here looking for it?",
"SchoolDW.txt__153": "BREAK",
"SchoolDW.txt__156": "around a while ago.",
"SchoolDW.txt__157": "BREAK",
"SchoolDW.txt__158": "anim:Sad:",
"SchoolDW.txt__160": "get involved...",
"SchoolDW.txt__161": "BREAK",
"SchoolDW.txt__163": "BREAK",
"SchoolDW.txt__165": "BREAK",
"SchoolDW.txt__173": "necklace?",
"SchoolDW.txt__174": "BREAK",
"SchoolDW.txt__176": "still freaked me out...",
"SchoolDW.txt__177": "BREAK",
"SchoolDW.txt__179": "any risk of the lil' ones",
"SchoolDW.txt__180": "getting involved with it."
}

View File

@ -1,189 +0,0 @@
{
"ChujinDW1.txt__1": "* Welc0me, w3lcome!",
"ChujinDW1.txt__2": "* Y0u won't f1nd better",
"ChujinDW1.txt__6": "* Lo0k1ng for anything",
"ChujinDW1.txt__10": "* Sur3!",
"ChujinDW1.txt__11": "* Wh4t",
"ChujinDW1.txt__15": "* Someth1n'",
"ChujinDW1.txt__19": "* Pl3ase buy",
"ChujinDW1.txt__23": "* Th4nk y0u!",
"ChujinDW1.txt__26": "* Not en0ugh",
"ChujinDW1.txt__30": "* Not enough",
"ChujinDW1.txt__34": "* Wh4t do",
"ChujinDW1.txt__38": "* L0ok around,",
"ChujinDW1.txt__42": "* Wh4t d0",
"ChujinDW1.txt__46": "* It's 3mpty!",
"ChujinDW1.txt__49": "* Wh4tev3r",
"ChujinDW1.txt__54": "* I'll try",
"ChujinDW1.txt__59": "* C0m3 b4ck anyt1me!",
"ChujinDW1.txt__60": "* I'll be w41ting!!",
"ChujinDW1.txt__82": "* Ah, y3s! Glori0us Robot0pia!",
"ChujinDW1.txt__83": "* A b3auty, isn't 1t?",
"ChujinDW1.txt__85": "* IF 0nly not for th0se INTELOPERS!",
"ChujinDW1.txt__86": "* They k3ep com1ng down her3 and",
"ChujinDW1.txt__89": "* What do those plastic and plush",
"ChujinDW1.txt__91": "* People are trying to LIVE down",
"ChujinDW1.txt__94": "* Must be all that hot air way",
"ChujinDW1.txt__100": "* Master Chujin? He created all",
"ChujinDW1.txt__102": "* Great guy!",
"ChujinDW1.txt__104": "* Altough he never visited this",
"ChujinDW1.txt__109": "* Fixing broken limbs, repairing",
"ChujinDW1.txt__112": "* A true gentleman!",
"ChujinDW1.txt__114": "* Some folks even come from far",
"ChujinDW1.txt__117": "* Say, your pink friend kinda",
"ChujinDW1.txt__119": "* She must be a big fan!",
"ChujinDW1.txt__124": "* The building at the center of",
"ChujinDW1.txt__126": "* If you're looking to visit it, you",
"ChujinDW1.txt__130": "* The ELITE lives there. Hate those",
"ChujinDW1.txt__132": "* Always looking down on us people",
"ChujinDW1.txt__135": "* Also the Spire extends all the way",
"ChujinDW1.txt__137": "* So interlopers keep attacking us",
"ChujinDW1.txt__140": "* We robots can't catch a break, I",
"ChujinDW1.txt__146": "* Secrets? Not really.",
"ChujinDW1.txt__148": "* Though I heard there is a back",
"ChujinDW1.txt__151": "* Never really saw it, though.",
"ChujinDW1.txt__156": "* More info on Master Chujin?",
"ChujinDW1.txt__158": "* Well I heard he had a bad",
"ChujinDW1.txt__162": "* With some creatures named",
"ChujinDW1.txt__164": "* Seems they stole something",
"ChujinDW1.txt__168": "* Ever since that day, Master Chujin",
"ChujinDW1.txt__172": "* Whatever they are, they better not",
"ChujinDW1.txt__174": "* [shake]NO HOO-MANS ALLOWED!",
"PenGuy.txt__1": "* Hey, hey! Good to see",
"PenGuy.txt__3": "* What can I getcha?",
"PenGuy.txt__6": "* Anything else,",
"PenGuy.txt__10": "* What's up?",
"PenGuy.txt__13": "* What else",
"PenGuy.txt__18": "* Changed",
"PenGuy.txt__22": "* Thanks a",
"PenGuy.txt__26": "* You can't",
"PenGuy.txt__31": "* You can't",
"PenGuy.txt__36": "* Gander",
"PenGuy.txt__41": "* Anything",
"PenGuy.txt__45": "* What are",
"PenGuy.txt__50": "* You don't",
"PenGuy.txt__55": "* What is",
"PenGuy.txt__59": "* Thanks a",
"PenGuy.txt__63": "* Come back soon, you lot!",
"PenGuy.txt__64": "* Thanks for the patronage!",
"PenGuy.txt__81": "* Ah yes, never heard of this place",
"PenGuy.txt__84": "* But apperently Pennilton was here",
"PenGuy.txt__86": "* Known him for quite a bit but",
"PenGuy.txt__89": "* I mean, I wouldn't either.",
"PenGuy.txt__90": "* Not much glamours in being publicly",
"PenGuy.txt__93": "* But don't you find it weird that",
"PenGuy.txt__97": "* Might investigate it later, when",
"PenGuy.txt__103": "* Me? You already know.",
"PenGuy.txt__104": "* Used to run a nice game at Bearing's,",
"PenGuy.txt__107": "* The door doesn't take me back to",
"PenGuy.txt__110": "* Spooky!",
"PenGuy.txt__112": "* It's like the entire place ceased to",
"PenGuy.txt__118": "* That, my friends, is a trade secret!",
"PenGuy.txt__119": "* Can't just go on revealing my",
"PenGuy.txt__122": "* But don't you worry your little",
"PenGuy.txt__124": "* I have plenty of stuff that could",
"PenGuy.txt__127": "* And who knows, maybe I even have",
"PenGuy.txt__130": "* Just don't ask me how I got my hands",
"PenGuy.txt__136": "* The guy with the hat down there?",
"PenGuy.txt__137": "* Total weirdo.",
"PenGuy.txt__139": "* Isn't like any other Darkner I've",
"PenGuy.txt__142": "* Always \"Justice this, justice that\".",
"PenGuy.txt__143": "* Won't shut up about it.",
"PenGuy.txt__145": "* He didn't have any problems with me",
"PenGuy.txt__149": "* Though I've seen him sneaking down",
"PenGuy.txt__152": "* Dunno what's behind that, though.",
"PenGuy.txt__154": "* ...Kinda don't want to find out.",
"PenGuy2.txt__1": "* Hey, hey! Check",
"PenGuy2.txt__5": "* Anything else,",
"PenGuy2.txt__9": "* What's up?",
"PenGuy2.txt__12": "* What else",
"PenGuy2.txt__17": "* Changed",
"PenGuy2.txt__21": "* Thanks a",
"PenGuy2.txt__25": "* You can't",
"PenGuy2.txt__30": "* You can't",
"PenGuy2.txt__35": "* Gander",
"PenGuy2.txt__40": "* Anything",
"PenGuy2.txt__44": "* What are",
"PenGuy2.txt__49": "* You don't",
"PenGuy2.txt__54": "* What is",
"PenGuy2.txt__58": "* Thanks a",
"PenGuy2.txt__62": "* I'm thinkin' of moving shop soon.",
"PenGuy2.txt__63": "* They say there is a weird door by the",
"PenGuy2.txt__65": "* Anyway, thanks for the patronage!",
"PenGuy2.txt__83": "* Hey, think you can keep quiet",
"PenGuy2.txt__87": "* Nah, I jest.",
"PenGuy2.txt__88": "* Really, I don't care about what",
"PenGuy2.txt__91": "* Personally, I think he is just upset",
"PenGuy2.txt__94": "* I mean, I don't blame him.",
"PenGuy2.txt__96": "* I think maybe he just has some trauma",
"PenGuy2.txt__99": "* Err, stitches?",
"PenGuy2.txt__101": "* Wouldn't surprise me if some",
"PenGuy2.txt__104": "* Maybe I'd be very upset too.",
"PenGuy2.txt__105": "* Maybe.",
"PenGuy2.txt__108": "* Me? There isn't much to be known.",
"PenGuy2.txt__109": "* I'm just some guy tryin' to make a",
"PenGuy2.txt__112": "* I've done it all, some party tricks,",
"PenGuy2.txt__117": "* When I got in this Dark World, all I",
"PenGuy2.txt__122": "* Thanks, by the way.",
"PenGuy2.txt__123": "* I'm glad you had fun with my little",
"PenGuy2.txt__127": "* The fortress has existed before",
"PenGuy2.txt__129": "* No one knows where it came from,",
"PenGuy2.txt__133": "* Now why, no one knows either.",
"PenGuy2.txt__134": "* Even more when there are so many",
"PenGuy2.txt__137": "* By the way, there is a treasure",
"PenGuy2.txt__142": "* If you two want to give it a try,",
"PenGuy2.txt__147": "* Criminals, eh?",
"PenGuy2.txt__149": "* Honestly, everyone knows some",
"PenGuy2.txt__152": "* Not me, I swear!",
"PenGuy2.txt__154": "* Hm? Pennilton? You wanna know",
"PenGuy2.txt__157": "* He just supplied me with some",
"PenGuy2.txt__160": "* In my line of business, you learn",
"PenGuy2.txt__163": "* Whatever is you want with those so",
"PenGuy2.txt__167": "* But seems the rest of the ones you",
"SchoolDW.txt__1": "* Welcome! Take a look",
"SchoolDW.txt__3": "* I don't have much, but",
"SchoolDW.txt__7": "* Can I help you with",
"SchoolDW.txt__11": "* Oh?",
"SchoolDW.txt__12": "* What",
"SchoolDW.txt__16": "* Want to",
"SchoolDW.txt__22": "* Changed",
"SchoolDW.txt__26": "* Thanks!",
"SchoolDW.txt__29": "* Sorry,",
"SchoolDW.txt__34": "* You can't",
"SchoolDW.txt__39": "* Here is",
"SchoolDW.txt__44": "* Anything",
"SchoolDW.txt__48": "* What are",
"SchoolDW.txt__53": "* You don't",
"SchoolDW.txt__58": "* What",
"SchoolDW.txt__63": "* Here you",
"SchoolDW.txt__67": "* Hope to see you again soon!",
"SchoolDW.txt__87": "* This Dark World? This is Lord",
"SchoolDW.txt__90": "* Eons ago, after the lightners",
"SchoolDW.txt__92": "* Lord Bearing then appeared, and said",
"SchoolDW.txt__95": "* At the time, most were ecstactic, but",
"SchoolDW.txt__100": "* Eventually, Bearing became very",
"SchoolDW.txt__102": "* No one knows why.",
"SchoolDW.txt__104": "* Now we all just hide from him when",
"SchoolDW.txt__111": "* Me? I'm just an old shopkeeper.",
"SchoolDW.txt__113": "* Oh, but have you seem my little",
"SchoolDW.txt__117": "* They're some feisty rascals!",
"SchoolDW.txt__118": "* But they don't mean any harm",
"SchoolDW.txt__122": "* Unfortunately, most of them",
"SchoolDW.txt__124": "* Wish they would at least come",
"SchoolDW.txt__131": "* ...Dark Jail?",
"SchoolDW.txt__134": "* Sorry... I've never heard of",
"SchoolDW.txt__137": "* ... \"Where all the Dark World",
"SchoolDW.txt__140": "* Yeah... Not ringing any bells.",
"SchoolDW.txt__141": "* You sure that such a place exists?",
"SchoolDW.txt__144": "* Sounds like made up stuff,",
"SchoolDW.txt__151": "* You say you lost a necklace",
"SchoolDW.txt__154": "* Now that you mention it...",
"SchoolDW.txt__155": "* I think I have seen a necklace",
"SchoolDW.txt__159": "* But if I were you, I wouldn't",
"SchoolDW.txt__162": "* I've heard this necklace is...",
"SchoolDW.txt__164": "* . . .",
"SchoolDW.txt__166": "* ...Just forget it, alright?",
"SchoolDW.txt__172": "* What's that? You found the",
"SchoolDW.txt__175": "* That's great! Though it",
"SchoolDW.txt__178": "* At least there won't be"
}

View File

@ -16,148 +16,161 @@ def load_json(path):
print(f"❌ 載入 {path} 時發生錯誤:{str(e)}") print(f"❌ 載入 {path} 時發生錯誤:{str(e)}")
return {} return {}
def apply_translation(dirpath): def parse_key(full_key):
"""把翻譯內容實際套用到檔案裡""" """解析包含路徑的鍵值,返回相對路徑、檔案名和行號"""
print(f"\n🔍 正在處理目錄:{dirpath}") try:
# 範例鍵值:"Room1/dialogue.txt__3"
path_part, line_part = full_key.rsplit("__", 1)
line_no = int(line_part)
*folders, filename = path_part.split("/")
return os.path.join(*folders), filename, line_no
except Exception as e:
print(f"❌ 解析鍵值 '{full_key}' 失敗:{str(e)}")
return None, None, None
# 準備三個翻譯檔案的路徑 def apply_translation(root_path):
trans_paths = { """從根目錄套用集中式翻譯"""
"normal": os.path.join(dirpath, "translate", "translation.json"), print(f"\n🔍 正在處理根目錄:{root_path}")
"special": os.path.join(dirpath, "translate", "translation_special.json"),
"namedesc": os.path.join(dirpath, "translate", "translation_namedesc.json") # 集中式翻譯文件路徑
translate_dir = os.path.join(root_path, "translate")
trans_files = {
"normal": os.path.join(translate_dir, "translation_normal.json"),
"special": os.path.join(translate_dir, "translation_special.json"),
"namedesc": os.path.join(translate_dir, "translation_namedesc.json")
} }
# 把三個翻譯檔案的內容都讀進來 # 載入所有翻譯數據
translations = { translations = {
"normal": load_json(trans_paths["normal"]), "normal": load_json(trans_files["normal"]),
"special": load_json(trans_paths["special"]), "special": load_json(trans_files["special"]),
"namedesc": load_json(trans_paths["namedesc"]) "namedesc": load_json(trans_files["namedesc"])
} }
# 先把普通和特殊翻譯混在一起 # 合併普通和特殊翻譯
combined = {} combined = {}
combined.update(translations["normal"]) combined.update(translations["normal"])
combined.update(translations["special"]) combined.update(translations["special"])
print(f"📦 合併普通+特殊翻譯共 {len(combined)}") print(f"📦 合併普通+特殊翻譯共 {len(combined)}")
# 處理那些有前綴的翻譯內容像是name:、desc:這種的) # 處理名稱描述類翻譯
namedesc_count = 0 namedesc_count = 0
for key, value in translations["namedesc"].items(): for full_key, value in translations["namedesc"].items():
# 解析鍵值中的路徑信息
rel_path, filename, line_no = parse_key(full_key)
if not filename:
continue
# 構建完整文件路徑
src_path = os.path.join(root_path, rel_path, filename)
if not os.path.exists(src_path):
print(f"⚠ 找不到來源檔案:{src_path}")
continue
try: try:
# 把key拆成檔案名稱和行號
filename, line_no = key.split("__")
line_no = int(line_no)
src_path = os.path.join(dirpath, filename)
# 檢查原始檔案是否存在
if not os.path.exists(src_path):
print(f"⚠ 注意!找不到來源檔案:{src_path}")
continue
# 把原始檔案內容全部讀出來
with open(src_path, "r", encoding="utf-8") as f: with open(src_path, "r", encoding="utf-8") as f:
lines = f.readlines() lines = f.readlines()
# 檢查行號是不是在合理範圍
if line_no >= len(lines): if line_no >= len(lines):
print(f"⚠ 行號 {line_no}{filename} 超出範圍(最大 {len(lines)-1}") print(f"⚠ 行號 {line_no}{filename} 超出範圍(最大 {len(lines)-1}")
continue continue
# 找出原本的前綴是name:、desc:還是menuDesc: # 提取前綴並組合
original = lines[line_no].strip() original = lines[line_no].strip()
prefix = "" prefix = next((f for f in ["name:", "desc:", "menuDesc:"] if original.startswith(f)), "")
for field in ["name:", "desc:", "menuDesc:"]:
if original.startswith(field):
prefix = field
break
if prefix: if prefix:
# 把前綴和翻譯值組合起來 combined[full_key] = prefix + value
combined[key] = prefix + value
namedesc_count += 1 namedesc_count += 1
else: else:
print(f"⚠ 在 {filename}{line_no} 行找不到前綴:{original}") print(f"⚠ 在 {src_path}{line_no} 行找不到前綴:{original[:50]}...")
except Exception as e: except Exception as e:
print(f"❌ 處理 namedesc 鍵值 '{key}' 時出錯{str(e)}") print(f"❌ 處理 {src_path} 時發生錯誤{str(e)}")
print(f"📦 新增 {namedesc_count} 條名稱描述翻譯") print(f"📦 新增 {namedesc_count} 條名稱描述翻譯")
# 建立檔案修改對照表 # 建立檔案修改對照表
file_map = {} file_map = {}
total_updates = 0 total_updates = 0
for key, value in combined.items():
try:
# 再次拆分鍵值取得檔案資訊
filename, line_no = key.split("__")
line_no = int(line_no)
# 如果還沒讀過這個檔案,就先讀取內容 for full_key, value in combined.items():
if filename not in file_map: rel_path, filename, line_no = parse_key(full_key)
src_path = os.path.join(dirpath, filename) if not filename:
if not os.path.exists(src_path): continue
print(f"⚠ 注意!找不到目標檔案:{src_path}")
continue # 構建完整目標路徑
with open(src_path, "r", encoding="utf-8") as f: target_path = os.path.join(root_path, rel_path, filename)
file_map[filename] = { if not os.path.exists(target_path):
"path": src_path, print(f"⚠ 找不到目標檔案:{target_path}")
continue
# 初始化文件緩存
if target_path not in file_map:
try:
with open(target_path, "r", encoding="utf-8") as f:
file_map[target_path] = {
"lines": f.readlines(), "lines": f.readlines(),
"modified": False # 用來記錄是否有修改 "modified": False
} }
except Exception as e:
# 再次檢查行號是否有效 print(f"❌ 讀取 {target_path} 失敗:{str(e)}")
if line_no >= len(file_map[filename]["lines"]):
print(f"⚠ 行號 {line_no}{filename} 超出範圍(最大 {len(file_map[filename]['lines'])-1}")
continue continue
# 準備要替換的新內容 # 檢查行號有效性
original = file_map[filename]["lines"][line_no].strip() if line_no >= len(file_map[target_path]["lines"]):
new_line = f"{value}\n" print(f"⚠ 行號 {line_no}{target_path} 超出範圍")
continue
# 只有當內容確實不同時才修改 # 準備替換內容
if file_map[filename]["lines"][line_no] != new_line: original = file_map[target_path]["lines"][line_no].strip()
file_map[filename]["lines"][line_no] = new_line new_line = f"{value}\n"
file_map[filename]["modified"] = True
total_updates += 1
print(f"✏ 已更新 {filename}{line_no} 行:")
print(f" 原始內容:{original[:50]}...")
print(f" 新內容:{new_line.strip()[:50]}...")
except Exception as e:
print(f"❌ 套用翻譯 '{key}' 時發生錯誤:{str(e)}")
# 開始正式寫入修改 if file_map[target_path]["lines"][line_no] != new_line:
file_map[target_path]["lines"][line_no] = new_line
file_map[target_path]["modified"] = True
total_updates += 1
print(f"✏ 更新 {os.path.join(rel_path, filename)}{line_no} 行:")
print(f" 原始內容:{original[:50]}...")
print(f" 新內容:{new_line.strip()[:50]}...")
# 寫入修改
success_count = 0 success_count = 0
for filename, data in file_map.items(): for file_path, data in file_map.items():
if data["modified"]: if data["modified"]:
try: try:
# 先建立備份檔案(安全起見) # 建立備份(禁用)
backup_path = data["path"] + ".bak" # backup_path = file_path + ".bak"
os.replace(data["path"], backup_path) # os.replace(file_path, backup_path)
# 寫入新內容 with open(file_path, "w", encoding="utf-8") as f:
with open(data["path"], "w", encoding="utf-8") as f:
f.writelines(data["lines"]) f.writelines(data["lines"])
print(f"✔ 成功更新檔案:{filename}(已建立備份)") print(f"✔ 成功更新{os.path.relpath(file_path, root_path)}(備份已建立)")
success_count += 1 success_count += 1
except Exception as e: except Exception as e:
print(f"❌ 寫入 {filename} 失敗:{str(e)}") print(f"❌ 寫入 {file_path} 失敗:{str(e)}")
traceback.print_exc() traceback.print_exc()
print(f"\n🎯 總共套用 {total_updates} 處更新") print(f"\n🎯 總共套用 {total_updates} 處更新")
print(f"✅ 成功修改 {success_count}/{len(file_map)} 個檔案") print(f"✅ 成功修改 {success_count}/{len(file_map)} 個檔案")
def walk_and_apply(root="."): def walk_and_apply(root="."):
"""自動掃描資料夾找需要處理的目錄""" """主處理流程"""
print(f"🔎 開始從以下路徑進行翻譯作業:{os.path.abspath(root)}") root = os.path.abspath(root)
for dirpath, dirnames, filenames in os.walk(root): print(f"🔎 開始從以下路徑進行翻譯作業:{root}")
if "translate" in dirnames:
print(f"\n{'='*50}") # 檢查翻譯目錄是否存在
try: translate_dir = os.path.join(root, "translate")
apply_translation(dirpath) if not os.path.exists(translate_dir):
except Exception as e: print(f"❌ 找不到集中式翻譯目錄:{translate_dir}")
print(f"❌ 在 {dirpath} 發生嚴重錯誤:{str(e)}") return
traceback.print_exc()
print(f"{'='*50}") print(f"\n{'='*50}")
try:
apply_translation(root)
except Exception as e:
print(f"❌ 發生嚴重錯誤:{str(e)}")
traceback.print_exc()
print(f"{'='*50}")
if __name__ == "__main__": if __name__ == "__main__":
walk_and_apply() walk_and_apply()

View File

@ -1,83 +1,88 @@
import os import os
import json import json
from collections import defaultdict
def should_ignore(line): def should_ignore(line):
"""檢查這行是不是要跳過不處理的(比如註解或特殊標記)""" """檢查這行是不是要跳過不處理的(比如註解或特殊標記)"""
line = line.strip() line = line.strip()
return line.startswith(("@", ">", ".", "END")) or line == "" return line.startswith(("@", ">", ".", "END")) or line == ""
def collect_texts_from_txt(path): def collect_all_texts(root_path):
"""從目錄下的所有txt檔案裡收集需要翻譯的文字""" """從所有子目錄收集需要翻譯的文本"""
normal_texts = {} # 存普通對話文本 # 使用defaultdict自動初始化三種文本類別
special_texts = {} # 存星號開頭的特殊文本 all_data = {
namedesc_texts = {} # 存名稱和描述類的文本 'normal': defaultdict(dict),
'special': defaultdict(dict),
'namedesc': defaultdict(dict)
}
# 遍歷所有目錄和文件
for dirpath, _, filenames in os.walk(root_path):
# 跳過translate目錄本身
if "translate" in dirpath.split(os.sep):
continue
for filename in filenames:
if not filename.endswith(".txt"):
continue
file_path = os.path.join(dirpath, filename)
# 計算相對路徑作為分類依據
relative_path = os.path.relpath(dirpath, root_path)
# 掃描目錄裡所有txt檔案
for filename in os.listdir(path):
if filename.endswith(".txt"):
file_path = os.path.join(path, filename)
# 讀取檔案全部內容
with open(file_path, "r", encoding="utf-8") as f: with open(file_path, "r", encoding="utf-8") as f:
lines = f.readlines() lines = f.readlines()
# 逐行分析內容 for line_num, line in enumerate(lines):
for i, line in enumerate(lines):
stripped = line.strip() stripped = line.strip()
if should_ignore(stripped): if should_ignore(stripped):
continue # 跳過不需要處理的行 continue
# 生成唯一鍵值(檔案名+行號) # 生成包含路徑的唯一鍵值
key = f"{filename}__{i}" full_key = f"{relative_path}/{filename}__{line_num}"
# 遇到名稱或描述類的文本name:/desc:/menuDesc: # 分類處理不同類型文本
if stripped.startswith(("name:", "desc:", "menuDesc:")): if stripped.startswith(("name:", "desc:", "menuDesc:")):
# 把開頭的標記切掉,只留內容文字
idx = stripped.find(":") idx = stripped.find(":")
namedesc_texts[key] = stripped[idx + 1:].strip() all_data['namedesc'][relative_path][full_key] = stripped[idx+1:].strip()
# 遇到星號開頭的就是特殊文本
elif stripped.startswith("*"): elif stripped.startswith("*"):
special_texts[key] = stripped all_data['special'][relative_path][full_key] = stripped
# 剩下的都當普通文本處理
else: else:
normal_texts[key] = stripped all_data['normal'][relative_path][full_key] = stripped
return normal_texts, special_texts, namedesc_texts return all_data
def save_json(data, path, name): def save_centralized_json(data, root_path):
"""把整理好的資料存成JSON檔案""" """將合併後的翻譯文件保存到根目錄的translate資料夾"""
# 先建立放翻譯檔的目錄(如果不存在就自動創建) translate_dir = os.path.join(root_path, "translate")
translate_dir = os.path.join(path, "translate")
os.makedirs(translate_dir, exist_ok=True) os.makedirs(translate_dir, exist_ok=True)
# 組合完整檔案路徑 # 合併並保存三種類型文件
json_path = os.path.join(translate_dir, name) for file_type in ['normal', 'special', 'namedesc']:
# 寫入JSON格式保持非ASCII字原樣顯示 merged = {}
with open(json_path, "w", encoding="utf-8") as f: # 將不同目錄的內容合併到單一字典
json.dump(data, f, ensure_ascii=False, indent=2) for dir_path, content in data[file_type].items():
merged.update(content)
if merged:
file_name = f"translation_{file_type}.json"
file_path = os.path.join(translate_dir, file_name)
with open(file_path, "w", encoding="utf-8") as f:
json.dump(merged, f, ensure_ascii=False, indent=2)
print(f"✔ 已生成合併翻譯文件:{file_name}")
def walk_and_process(root="."): def walk_and_process(root="."):
"""開始掃描整個資料夾結構,找出需要處理的目錄""" """主處理流程"""
# 走訪所有子目錄 print(f"🔍 開始掃描根目錄:{os.path.abspath(root)}")
for dirpath, dirnames, filenames in os.walk(root):
# 檢查目錄裡是否有txt檔案
txts_in_dir = [f for f in filenames if f.endswith(".txt")]
if not txts_in_dir:
continue # 跳過沒有txt檔的目錄
# 收集三類文本資料 # 收集所有文本資料
normal, special, namedesc = collect_texts_from_txt(dirpath) all_texts = collect_all_texts(root)
# 分別儲存不同類型的翻譯文件 # 保存合併後的翻譯文件
if normal: save_centralized_json(all_texts, root)
save_json(normal, dirpath, "translation.json")
print(f"✔ 已生成 translation.json 於 {dirpath}") # 提示 print("\n🏁 已完成所有文本收集!")
if special: print(f"📁 翻譯文件統一存放於:{os.path.join(root, 'translate')}")
save_json(special, dirpath, "translation_special.json")
print(f"✔ 已生成 translation_special.json 於 {dirpath}")
if namedesc:
save_json(namedesc, dirpath, "translation_namedesc.json")
print(f"✔ 已生成 translation_namedesc.json 於 {dirpath}")
if __name__ == "__main__": if __name__ == "__main__":
walk_and_process() walk_and_process()
print("\n🏁 文本收集作業完成!") # 結尾提示

File diff suppressed because it is too large Load Diff

View File

@ -1,145 +0,0 @@
{
"Acts.txt__1": "ACT",
"Acts.txt__2": "Not magic. Does many things.",
"Acts.txt__5": "Check",
"Acts.txt__6": "See enemy info.\\nDoes not use a\\nturn.",
"Acts.txt__7": "Allows to see enemy info, does not use a turn in battle.",
"Acts.txt__10": "Apprehend",
"Acts.txt__11": "Attempts to\\ncapture enemy.",
"Acts.txt__12": "Attempts to capture the criminal and bring them back to the Dark Jail.",
"Acts.txt__15": "Non-Lethal Shot",
"Acts.txt__16": "Damage + leaves\\nalive with 1 HP.",
"Acts.txt__17": "Shoots a rubber pellet that does low damage. Cannot kill, leaving the target with 1 HP.",
"Acts.txt__20": "Healing Bell",
"Acts.txt__21": "Restores some\\nHP.",
"Acts.txt__22": "Casts a soothing magic bell, which heals allies. Scales with MAGIC.",
"Acts.txt__25": "Blaring Siren",
"Acts.txt__26": "Enemies focuses\\non Axis.",
"Acts.txt__27": "Sounds off a really annoying alarm that makes all enemies target Axis this turn.",
"Acts.txt__30": "Executioner Hit",
"Acts.txt__31": "Cruel damage.\\n",
"Acts.txt__32": "High damage. Executes enemies.\\nCan only be used on those deserving Justice.",
"Acts.txt__35": "Diamond Barrier",
"Acts.txt__36": "Casts a diamond shaped barrier around the SOUL, preventing one hit of damage.",
"Acts.txt__37": "Negates 1\\nHit.",
"Acts.txt__40": "Foxfire",
"Acts.txt__41": "Casts a flame bomb that deals fire damage to an enemy. Scales with MAGIC.",
"Acts.txt__42": "Damages enemy\\nwith fire.",
"Acts.txt__45": "Homerun",
"Acts.txt__46": "Swing your weapon like a bat, launching enemies away.",
"Acts.txt__47": "Heavy damage.",
"Acts.txt__50": "Healing Sonata",
"Acts.txt__51": "A soothing magic song that heals the entire party. Scales with MAGIC.",
"Acts.txt__52": "Party wide heal.",
"Acts.txt__55": "Strnglng Threads",
"Acts.txt__56": "Conjures multiple etherial threads that will strangle the life out of anything.",
"Acts.txt__57": "High damage to\\none enemy.",
"Acts.txt__60": "Dancing Feet",
"Acts.txt__61": "Melody hits an enemy multiple times with a flurry of kicks.",
"Acts.txt__62": "Multiple damage\\nto one enemy.",
"Acts.txt__65": "Talk",
"Acts.txt__68": "[img=13]res://Sprites/Menus/Menu Sprites/KanakoIcon.tres[/img] Hug",
"Acts.txt__71": "[img=13]res://Sprites/Menus/Menu Sprites/KanakoIcon.tres[/img] [color=#f06982]K-Action[/color]",
"Acts.txt__74": "[img=13]res://Sprites/Menus/Menu Sprites/AxisIcon.tres[/img] [color=#00ab68]A-Action[/color]",
"Acts.txt__77": "Heat Wave",
"Acts.txt__78": "Axis shoots out a strong heat wave off his exaust, burning all enemies in the field.",
"Acts.txt__79": "Damages all\\nenemies.",
"Acts.txt__82": "Boost Spray",
"Acts.txt__83": "Shoots out a spray over the party which temporarly boosts AT.",
"Acts.txt__84": "PARTY AT UP\\nfor 3 turns.",
"Acts.txt__87": "Healing Shower",
"Acts.txt__88": "Shoots out a healing liquid over the party, healing a small amount of HP.",
"Acts.txt__89": "Heals party\\na bit.",
"Acts.txt__92": "Unnerve Gas",
"Acts.txt__93": "Shoots out a grenade full of a strange gas that lowers an enemy's DF temporarly.",
"Acts.txt__94": "ENEMY DF DOWN\\nfor 3 turns.",
"Acts.txt__97": "Avoid",
"Acts.txt__100": "Spare",
"Acts.txt__103": "Shapen",
"Acts.txt__106": "Rub",
"Acts.txt__109": "Berate",
"Acts.txt__112": "Soothe",
"Acts.txt__115": "Befriend",
"Acts.txt__118": "Insult",
"Acts.txt__121": "Taunt",
"Acts.txt__124": "[img=13]res://Sprites/Menus/Menu Sprites/KanakoIcon.tres[/img] Encourage",
"Acts.txt__125": "Attack UP\\nthis turn.",
"Acts.txt__128": "Convince",
"Acts.txt__131": "Cheer Up",
"Acts.txt__134": "Clean Up",
"Acts.txt__137": "Mess Up",
"Acts.txt__140": "[img=13]res://Sprites/Menus/Menu Sprites/KanakoIcon.tres[/img] Brace",
"Acts.txt__141": "PARTY DEF UP\\nfor 3 turns",
"Acts.txt__144": "Talk Down",
"Acts.txt__147": "[img=13]res://Sprites/Menus/Menu Sprites/KanakoIcon.tres[/img] Plead",
"Acts.txt__150": "[img=13]res://Sprites/Menus/Menu Sprites/KanakoIcon.tres[/img] Plead",
"Acts.txt__153": "Ask Forgiveness",
"Acts.txt__156": "Cover Ears",
"Acts.txt__159": "Shush",
"Acts.txt__162": "Ignore",
"Acts.txt__165": "Paradox",
"Acts.txt__168": "Request",
"Acts.txt__171": "Oil Up",
"Acts.txt__174": "Spin Gear",
"Acts.txt__177": "Spin Around",
"Acts.txt__180": "Press Down",
"Acts.txt__183": "Refill",
"Acts.txt__186": "Pet",
"Acts.txt__189": "[img=13]res://Sprites/Menus/Menu Sprites/AxisIcon.tres[/img] Fix",
"Acts.txt__192": "Refuel",
"Acts.txt__195": "Straighten Up",
"Acts.txt__198": "Act Disorderly",
"Enemies.txt__1": "Test Enemy",
"Enemies.txt__5": "Penceller",
"Enemies.txt__9": "Eraserhead",
"Enemies.txt__13": "Warden",
"Enemies.txt__17": "Pennilton",
"Enemies.txt__21": "Mopper",
"Enemies.txt__25": "Bearing",
"Enemies.txt__29": "Ringo",
"Enemies.txt__33": "Foxlace",
"Enemies.txt__37": "Axis",
"Enemies.txt__41": "Gearzerd",
"Enemies.txt__45": "Staplete",
"Enemies.txt__49": "MC Toster",
"Enemies.txt__53": "BunBun",
"Enemies.txt__57": "The Judge",
"Enemies.txt__61": "Wrencher",
"Enemies.txt__65": "Drill-Er 3000",
"Enemies.txt__69": "Straight Edge",
"Items.txt__1": "Cowboy Hat",
"Items.txt__4": "Ball of Junk",
"Items.txt__7": "Kanako's Phone",
"Items.txt__11": "Ketsukane Heirloom",
"Items.txt__14": "Red Letter",
"Items.txt__17": "Revive Mint",
"Items.txt__28": "[img]res://Sprites/Menus/Menu Sprites/StatDef.tres[/img] Golden Bell",
"Items.txt__41": "[img]res://Sprites/Menus/Menu Sprites/StatDef.tres[/img] Safety Vest",
"Items.txt__53": "[img]res://Sprites/Menus/Menu Sprites/StatDef.tres[/img] Safety Goggles",
"Items.txt__65": "[img]res://Sprites/Menus/Menu Sprites/StatDef.tres[/img] Fox Necklace",
"Items.txt__77": "[img]res://Sprites/Menus/Menu Sprites/StatKanabo.tres[/img] Fox Staff",
"Items.txt__88": "[img]res://Sprites/Menus/Menu Sprites/StatKanabo.tres[/img] Big Screwdriver",
"Items.txt__100": "[img]res://Sprites/Menus/Menu Sprites/StatGlove.tres[/img] Steam Glove",
"Items.txt__110": "[img]res://Sprites/Menus/Menu Sprites/StatGlove.tres[/img] Robot Fist",
"Items.txt__121": "[img]res://Sprites/Menus/Menu Sprites/StatGlove.tres[/img] Guardian Mitt",
"Items.txt__131": "[img]res://Sprites/Menus/Menu Sprites/StatDef.tres[/img] Shiny Medal",
"Items.txt__142": "[img]res://Sprites/Menus/Menu Sprites/StatDef.tres[/img] Bear Pin",
"Items.txt__155": "Tension Bit",
"Items.txt__160": "Tension Gem",
"Items.txt__165": "Tension MAX",
"Items.txt__170": "Brick Candy",
"Items.txt__182": "Pop Rock",
"Items.txt__194": "[img]res://Sprites/Menus/Menu Sprites/StatKanabo.tres[/img] Wooden Kanabo",
"Items.txt__206": "[img]res://Sprites/Menus/Menu Sprites/StatGun.tres[/img] Cork Pistol",
"Items.txt__218": "[img]res://Sprites/Menus/Menu Sprites/StatGun.tres[/img] Space Rifle",
"Items.txt__230": "Wanted Posters",
"Items.txt__234": "[img]res://Sprites/Menus/Menu Sprites/StatGun.tres[/img] Peashooter",
"Items.txt__246": "[img]res://Sprites/Menus/Menu Sprites/StatKanabo.tres[/img] Softball Bat",
"Items.txt__257": "Homemade Lunch",
"Items.txt__260": "King's Feast",
"Letters.txt__1": "Come to Mo's!",
"Letters.txt__6": "From Kanako: Cole!",
"Letters.txt__11": "From Virgil: Partner...",
"Letters.txt__15": "Crumpled Note",
"Letters.txt__21": "Noise Complaint"
}

File diff suppressed because it is too large Load Diff