Compare commits
2 commits
6e535b06c7
...
2913d5d51c
Author | SHA1 | Date | |
---|---|---|---|
2913d5d51c | |||
22c355801b |
5 changed files with 874 additions and 42552 deletions
869
www.rus/js/plugins/RUS_patches.js
Normal file
869
www.rus/js/plugins/RUS_patches.js
Normal file
|
@ -0,0 +1,869 @@
|
|||
// OMORI patch mod for more russian language support such as changing UI
|
||||
// positions and sizes, translating hardcorded texts, and russian layout of
|
||||
// virtual keyboard (OMORI 1.0.8).
|
||||
// Patched & bundled by hat_kid. For OMORI RUS mod. https://vk.com/omori_ru
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// Patches for plugin: Omori Title Screen
|
||||
// ============================================================================
|
||||
|
||||
Scene_OmoriTitleScreen.prototype.createTitleCommands = function() {
|
||||
// Initialize Title Comands
|
||||
this._titleCommands = [];
|
||||
// Text Array
|
||||
var textList = LanguageManager.getMessageData("XX_BLUE.Omori_Title_Screen").commands
|
||||
// Get Center X Position
|
||||
var centerX = 20;
|
||||
// Go Through Text Array
|
||||
var previous_width = 0;
|
||||
for (var i = 0; i < textList.length; i++) {
|
||||
// Get Text
|
||||
var text = textList[i];
|
||||
// Create Window
|
||||
var win = new Window_OmoTitleScreenBox(text);
|
||||
// Set Wnidow Position
|
||||
win.x = centerX + previous_width;
|
||||
previous_width += win.width + 15;
|
||||
win.y = Graphics.height //(Graphics.height - win.height) - 22
|
||||
// Select Window
|
||||
if (i === this._commandIndex) { win.select(0)}
|
||||
// Add window to title Commands
|
||||
this._titleCommands[i] = win;
|
||||
this.addChild(win)
|
||||
};
|
||||
// Set Continue text
|
||||
this._titleCommands[1].setText(textList[1], this._canContinue);
|
||||
|
||||
};
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// Patches for plugin: Omori Main Menu
|
||||
// ============================================================================
|
||||
// Line: 261, Original item spacing: 12
|
||||
Window_MenuCommand.prototype.spacing = function () { return -4; };
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// Patches for plugin: Omori Main Menu - Scene Skill
|
||||
// ============================================================================
|
||||
// Line: 773, Original window width: 115
|
||||
Window_OmoMenuSkillEquipControl.prototype.windowWidth = function () { return 190; };
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// Patches for plugin: Omori Main Menu - Scene Item
|
||||
// ============================================================================
|
||||
// Line: 829, Original window width: 115
|
||||
Window_OmoMenuItemConfirmation.prototype.windowWidth = function() { return 170; };
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// Patches for plugin: Omori Save & Load
|
||||
// ============================================================================
|
||||
|
||||
Window_OmoriFileInformation.prototype.refresh = function() {
|
||||
// Clear Contents
|
||||
this.contents.clear();
|
||||
// Get Color
|
||||
var color = 'rgba(255, 255, 255, 1)';
|
||||
// Get ID
|
||||
var id = this._index + 1;
|
||||
var valid = DataManager.isThisGameFile(id);
|
||||
var info = DataManager.loadSavefileInfo(id);
|
||||
|
||||
// Draw Lines
|
||||
this.contents.fillRect(0, 29, this.contents.width, 3, color);
|
||||
for (var i = 0; i < 3; i++) {
|
||||
var y = 55 + (i * 25)
|
||||
this.contents.fillRect(113, y, this.contents.width - 117, 1, color);
|
||||
};
|
||||
|
||||
// Draw File
|
||||
this.contents.fontSize = LanguageManager.getMessageData("XX_BLUE.Window_OmoriFileInformation").refresh_contents_fontsize;
|
||||
let loc_position = LanguageManager.getMessageData("XX_BLUE.Window_OmoriFileInformation").file_position
|
||||
this.contents.drawText(LanguageManager.getMessageData("XX_BLUE.Omori_Save_Load").file.format(id), loc_position[0], loc_position[1], 100, this.contents.fontSize);
|
||||
// If Valid
|
||||
if (valid) {
|
||||
loc_position = LanguageManager.getMessageData("XX_BLUE.Window_OmoriFileInformation").refresh_drawText_position;
|
||||
let chap = LanguageManager.getMessageData("XX_BLUE.Chapter_Names")[info.chapter]
|
||||
if(!chap) {
|
||||
chap = info.chapter
|
||||
}
|
||||
this.contents.drawText(chap, loc_position[0] + 14, loc_position[1], this.contents.width, this.contents.fontSize);
|
||||
this.contents.fontSize = 28;
|
||||
|
||||
let backBitmap = ImageManager.loadSystem('faceset_states');
|
||||
let width = backBitmap.width / 4;
|
||||
let height = backBitmap.height / 5;
|
||||
// this.contents.blt(backBitmap, 0, 0, width, height, 0, 34, width + 10, height);
|
||||
this.contents.blt(backBitmap, 0, 0, width, height, 1, 33);
|
||||
// Get Actor
|
||||
var actor = info.actorData
|
||||
// Draw Actor Face
|
||||
let bit = ImageManager.loadFace(actor.faceName);
|
||||
bit.addLoadListener(() => this.drawFace(actor.faceName, actor.faceIndex, -2, this.contents.height - Window_Base._faceHeight + 7, Window_Base._faceWidth, height - 2));
|
||||
// Draw Actor Name
|
||||
this.contents.fontSize = 24;
|
||||
this.contents.drawText(actor.name, 118, 30, 100, 24);
|
||||
// Draw Level
|
||||
loc_position = LanguageManager.getMessageData("XX_BLUE.Window_OmoriFileInformation").level_position;
|
||||
this.contents.drawText(LanguageManager.getMessageData("XX_BLUE.Omori_Save_Load").level, loc_position[0] - 25, loc_position[1], 100, 24);
|
||||
this.contents.drawText(actor.level, loc_position[0], loc_position[1], 70, 24, 'right');
|
||||
// Draw Total PlayTime
|
||||
loc_position = LanguageManager.getMessageData("XX_BLUE.Window_OmoriFileInformation").playtime_position;
|
||||
this.contents.drawText(LanguageManager.getMessageData("XX_BLUE.Omori_Save_Load").playtime, 118, 55, 200, 24);
|
||||
this.contents.drawText(info.playtime, loc_position[0], loc_position[1], 100, 24);
|
||||
// Draw Location
|
||||
this.contents.drawText(LanguageManager.getMessageData("XX_BLUE.Omori_Save_Load").location, 118, 80, 200, 24);
|
||||
this.contents.drawText(info.location, 205, 80, 210, 24, 'right');
|
||||
};
|
||||
|
||||
// Draw Border
|
||||
this.contents.fillRect(102, 32, 3, 102, 'rgba(255, 255, 255, 1)')
|
||||
this.contents.fillRect(0, 29, 108, 3, 'rgba(255, 255, 255, 1)')
|
||||
};
|
||||
|
||||
// For compatibility with 1.0.7 and lower versions.
|
||||
Scene_OmoriFile.prototype.onSelectInputOk = function() {
|
||||
// Get Index
|
||||
var index = this._commandWindow.index();
|
||||
// Get Save File ID
|
||||
var saveFileid = this.savefileId();
|
||||
// If Save
|
||||
if (index === 0) {
|
||||
// If File Exists
|
||||
if (StorageManager.exists(saveFileid)) {
|
||||
// Show Prompt Window
|
||||
this.showPromptWindow('Переписать этот файл?');
|
||||
// Set Can select Flag to false
|
||||
this._canSelect = false;
|
||||
} else {
|
||||
// Save The Game
|
||||
this.saveGame();
|
||||
};
|
||||
} else {
|
||||
// If File Exists
|
||||
if (StorageManager.exists(saveFileid)) {
|
||||
// Show Prompt Window
|
||||
this.showPromptWindow('Загрузить файл?');
|
||||
// Set Can select Flag to false
|
||||
this._canSelect = false;
|
||||
} else {
|
||||
// Play Buzzer Sound
|
||||
SoundManager.playBuzzer();
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Window_OmoriFileCommand.prototype.makeCommandList = function () {
|
||||
this.addCommand("СОХРАНИТЬ", 'save', this._canSave);
|
||||
this.addCommand("ЗАГРУЗИТЬ", 'load', this._canLoad);
|
||||
};
|
||||
|
||||
Window_OmoriFilePrompt.prototype.makeCommandList = function () {
|
||||
this.addCommand("ДА", 'ok');
|
||||
this.addCommand("НЕТ", 'cancel');
|
||||
};
|
||||
|
||||
Window_OmoriFileCommand.prototype.initialize = function() {
|
||||
// Original window X position: 42
|
||||
Window_Command.prototype.initialize.call(this, 20, 28);
|
||||
this.setupFile(true, true);
|
||||
};
|
||||
|
||||
// Line: 677, Original window width: 119
|
||||
Window_OmoriFileCommand.prototype.windowWidth = function () { return 160; };
|
||||
|
||||
// Line: 683, Original cursor rect X-offset: 40
|
||||
Window_OmoriFileCommand.prototype.customCursorRectTextXOffset = function() { return 35; };
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// Patches for plugin: Omori BlackLetterMap
|
||||
// ============================================================================
|
||||
|
||||
Sprite_OmoBlackLetterMap.prototype.createOverlaySprites = function() {
|
||||
// Create Overlay Bitmap
|
||||
var bitmap = new Bitmap(Graphics.width, Graphics.height);
|
||||
// Get Background Bitmap
|
||||
var bgBitmap = ImageManager.loadAtlas('blackLetter_map_atlas');
|
||||
var bgBitmap50 = ImageManager.loadAtlas('blackLetter_map_50_atlas');
|
||||
// Get Map Data
|
||||
bgBitmap.addLoadListener(() => {
|
||||
bgBitmap50.addLoadListener(() => {
|
||||
var mapData = [
|
||||
{name: 'ЛЕС СВЕТЛЯЧКОВ', namePos: new Point(80, 195), rect: new Rectangle(0, 0, 193, 139), pos: new Point(111, 103), blackSwitchId: 23, nameSwitchId: 30, blackSwitch50Id: 900 },
|
||||
// {name: 'Forgotten Pier', namePos: new Point(200, 27), rect: new Rectangle(194, 0, 155, 120), pos: new Point(225, 52), blackSwitchId: 21, nameSwitchId: 29 },
|
||||
{name: 'ЛЕС ВЕРТУШЕК', namePos: new Point(440, 240), rect: new Rectangle(350, 0, 99, 107), pos: new Point(471, 128), blackSwitchId: 24, nameSwitchId: 31, blackSwitch50Id: 901 },
|
||||
{name: 'ДЕРЕВНЯ РОСТОКРОТОВ', namePos: new Point(25, 340), rect: new Rectangle(450, 0, 94, 80), pos: new Point(54, 267), blackSwitchId: 25, nameSwitchId: 32, blackSwitch50Id: 902 },
|
||||
{name: 'БЕСКРАЙНИЙ ЛЕС', namePos: new Point(250, 300), rect: new Rectangle(0, 124, 640, 201), pos: new Point(-2, 143), blackSwitchId: 26, nameSwitchId: 33, blackSwitch50Id: 903 },
|
||||
{name: 'ГЛУБОКИЙ КОЛОДЕЦ', namePos: new Point(450, 355), rect: new Rectangle(0, 326, 418, 113), pos: new Point(119, 366), blackSwitchId: 27, nameSwitchId: 34, blackSwitch50Id: 904 },
|
||||
{name: 'АПЕЛЬСИНОВЫЙ ОАЗИС', namePos: new Point(20, 55), rect: new Rectangle(545, 0, 122, 102), pos: new Point(31, 85), blackSwitchId: 28, nameSwitchId: 35, blackSwitch50Id: 905 },
|
||||
{name: 'ВНЕЗЕМЕЛЬЕ', namePos: new Point(450, 75), rect: new Rectangle(419, 326, 140, 209), pos: new Point(390, 21), blackSwitchId: 29, nameSwitchId: 36, blackSwitch50Id: 906 },
|
||||
]
|
||||
// Initialize Name Windows Array
|
||||
this._nameWindows = [];
|
||||
// Create Container for Name Windows
|
||||
this._nameWindowsContainer = new Sprite();
|
||||
// Go Through Map Data
|
||||
for (var i = 0; i < mapData.length; i++) {
|
||||
// Get Data
|
||||
var data = mapData[i];
|
||||
// Get Rect & Position
|
||||
var rect = data.rect, pos = data.pos;
|
||||
var test = Math.randomInt(100) > 50;
|
||||
// If Black switch ID is not on
|
||||
/*if (!$gameSwitches.value(data.blackSwitchId)) {
|
||||
if (!$gameSwitches.value(data.blackSwitch50Id)) {
|
||||
// Draw Black onto Bitmap
|
||||
bitmap.blt(bgBitmap50, rect.x, rect.y, rect.width, rect.height, pos.x, pos.y);
|
||||
} else {
|
||||
|
||||
}
|
||||
};*/
|
||||
//if(!!$gameSwitches.value(data.blackSwitchId)) {bitmap.blt(bgBitmap, rect.x, rect.y, rect.width, rect.height, pos.x, pos.y);}
|
||||
//else if(!!$gameSwitches.value(data.blackSwitch50Id)) {bitmap.blt(bgBitmap50, rect.x, rect.y, rect.width, rect.height, pos.x, pos.y);}
|
||||
if(!!$gameSwitches.value(data.blackSwitch50Id)) {bitmap.blt(bgBitmap, rect.x, rect.y, rect.width, rect.height, pos.x, pos.y);}
|
||||
else {
|
||||
if(!$gameSwitches.value(data.blackSwitchId)) {
|
||||
bitmap.blt(bgBitmap50, rect.x, rect.y, rect.width, rect.height, pos.x, pos.y);
|
||||
}
|
||||
}
|
||||
// Get Name Position
|
||||
var namePos = data.namePos;
|
||||
var name = $gameSwitches.value(data.nameSwitchId) ? data.name : "???"
|
||||
// Create Window
|
||||
var win = new Window_OmoBlackLetterMapName(name);
|
||||
// Set Window Position
|
||||
win.x = namePos.x; win.y = namePos.y;
|
||||
this._nameWindows.push(win);
|
||||
this._nameWindowsContainer.addChild(win);
|
||||
};
|
||||
// Create Black Overlay Sprite
|
||||
this._blackOverlay = new Sprite(bitmap);
|
||||
this.addChild(this._blackOverlay)
|
||||
|
||||
// Add Name Window container as a child
|
||||
this.addChild(this._nameWindowsContainer);
|
||||
this.createTextCounterSprite();
|
||||
})
|
||||
})
|
||||
};
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// Patches for plugin: YIN_OmoriFixes
|
||||
// ============================================================================
|
||||
|
||||
Game_System = class extends Game_System {
|
||||
initialize() {
|
||||
super.initialize();
|
||||
this._badWords = [ // Bad words should be all lowercase!
|
||||
// Bad Words
|
||||
"спид","анал","анус","зад","жопа","попа","яйца","шары","чурка","козёл","сюка","сучка","сука",
|
||||
"минет","грудь","стояк","сиська","бум","груди","головка","рак","сиси","клит","клитор","кокаин","член",
|
||||
"коитус","комми","презик","презерватив","кам","кумер","хуила","дерьмо","промежность","конча","пизда","чёрт","ебырь",
|
||||
"ёбырь","пенис","дилдо","дилф","дилфа","нарк","тупой","сучий","enema","стояк","эскимо","блядун","бля","блять",
|
||||
"гей","гомик","голубой","гук","гипси","сиськи","долбоёб","героин","герпес","вич","шлюха","дыра","гомо","honk",
|
||||
"ссань","хорни","херня","идиот","инцест","хер","яп","выдроч","еврей","киска","конча","хуец","качок",
|
||||
"клоун","тварь","шмара","киллер","убийца","кинк","ккк","алкаш","koon","жигало","нахуй","нахер","kunt",
|
||||
"лесбиянка","лесбо","лоли","лсд","смазка","линч","мамка","мет","милфа","милф","molest","мама","mong","придурок",
|
||||
"muff","дегенерат","ебанат","нацист","маньяк","муслим","наци","негра","негро","н1г","черножопый","нег","сосок",
|
||||
"ниггер","чёрный","черный","говнюк","гнида","орал","чернокожий","оргии","оргия","узкоглазый","казах","узбек","паки",
|
||||
"трусы","трусики","п3нис","п3н1с","чл3н","извр","извра","ебан","ёбаный","моча","прыщ","м0ча","плейбой","pocha",
|
||||
"пидрила","пидор","поляк","порн","кака","порно","пи3да","пи3д4","дрочила","пися","писька","пидарас","педераст","квир",
|
||||
"quim","расист","ебанько","пендос","изнасилование","насильник","ректум","простата","краснокожий","даун","патау","reject",
|
||||
"отсталый","ссака","пиздец","корень","срака","русский","срань","шизик","писос","шиз","сволочь","screw","scrotum",
|
||||
"scrub","семя","секс","похуй","срал","срёт","кусок","пердёж","пердак","раб","славянин","потаскуха","пердун","содомит","сопля",
|
||||
"содом","пика","хуйня","сперма","яйцо","трах","стриптиз","стрип","яичко","суицид","сифилис","тампон","недоумок",
|
||||
"сись","террорист","хуй","дурак","целка","титя","туалет","tramp","транс","транни","троян","паскуда","высер","twink",
|
||||
"урина","матка","вагина","вагинальный","вибратор","девственник","рвота","вульва","wank","weenie","пипи","влажный",
|
||||
"whigger","виски","белый","урод","стукач","друг","willy","мудак","шзнх","втф","чмо","xtc","ххх","янки",
|
||||
"yid","zigabo","фембой","фэмбой","хуе","ебло","ебли","еблан","еба","е6ло","е6ли","е6лан","е6а","нефор","фашист",
|
||||
"залуп","уёб","уё6","уеб","уе6","струя","взъебщик","взъебка","взъеб","взьеб","какиш","кукиш","сасун","сосун",
|
||||
"сосня","сося","соснут","посос","подсос","мудень","автограф","ебл","ёбл","е6л","ё6л","ёбар","ебар","ё6ар","е6ар",
|
||||
"агрегат","акробат","кринж","хуель","хуёль","ёбаной","ебаной","армячок","афедрон","пассив","актив","девка",
|
||||
"дефка","деффка","дефффка","деввка","девввка","беспиздая","бздение","бзднул","бздёж","бзданул","бздеть","бздея",
|
||||
"бздун","бздык","бздюх","биатлон","бикса","шмара","блуд","блядво","блядство","блядеха","блядина","блядище",
|
||||
"блядки","блядо","блядов","говно","гавно","залупа","давалка","петух","мудила","рукоблуд","ссанина","очко",
|
||||
"ебланище","влагалище","пёрдун","туз","малафья","пилотка","манда","путана","педрила","шалава","мошонка","елда",
|
||||
"раунд","бляди","пизд","блядьмо","блядюга","блядюра","блядюш","блядюшка","бляха","бордель","сперм","буденовка",
|
||||
"будёновка","буден","будён","хуеверт","хуёверт","хуевёрт","хуёвёрт","коксак","глори","холл","хол","буль",
|
||||
"бульда","бульза","буфер","капот","вакхан","бункер","вафлист","вдуть","хуеглот","хуёглот","хуйка","вендетта",
|
||||
"вендета","версаль","вжоп","вздроч","вагин","защеку","за щеку","педек","вислозад","вислозадый","висюлька","всос",
|
||||
"сасный","вманде","манде","манду","вмандить","мудозвон","мандошка","вмандошить","мандош","выебат","мандоха",
|
||||
"мандюрить","мандюря","мандяка","мандя","мандяха","мудоха","пиздит","пиздошка","пиздушка","пиздошки","ляха",
|
||||
"гурукакашек","аппендикс","апендикс","апндкс","пиздюк","пиздрон","впиздувсё","пиздярить","пиздяр","пиздяка",
|
||||
"уретра","ректал","суходроч","эрот","этти","бака","косоёб","косоеб","сосоеб","сосоёб","унитаз","пасс","акт",
|
||||
"конеёб","коноеб","коноёб","котоёб","котоеб","неегр","нееегр","неееегр","неегры","нееегры","охуярок","укурок",
|
||||
"хуяка","хуякать","хуякивание","обхуярный","хуярить","бамбамбам","бамбам","бамбамба","детей","дитей","дура",
|
||||
"вебкам","выебон","глист","кишка","пиздякаться","гончар","кончар","минетчик","минетить","кунилингусить",
|
||||
"ссаный","санный","ссанный","саньё","ссаньё","ссанье","санье","обсер","обсёр","срундель","сруль","хуёво","хуево",
|
||||
"трахарь","голый","одетый","харя","хач","говёный","говённый","говеный","говенный","говнец","гавёный","гавённый",
|
||||
"гавеный","гавенный","гавнец","генерал","глиномес","глотать","говниться","гавниться","говняц","гавняц","писичк",
|
||||
"сисичк","попочк","говнодав","говножуй","говноёб","говномер","говномес","говносерка","говнякаться","голожоп",
|
||||
"страпон","дилдос","анальныйвыдроч","девство","додик","додек","додроч","джигит","дешовка","дешевка","дилда",
|
||||
"доебон","дойка","дойки","долданьё","долданье","долдарь","долдать","писюн","писюнчик","усрал","усрался","охуеть",
|
||||
"ахуеть","нихуя","ебанатик","ебатория","ебариш","ебаришко","смекта","виагра","ебена","еби","какаха","ебёнтъ",
|
||||
"ебентъ","ебистос","ёбкая","еблематика","еблематик","еблом","ёбнутый","ебота","ебня","еботина","еботня","ёбс",
|
||||
"ебс","ебун","ебти","ебукентий","ебур","жирнозадый","жопища","жопенция","жопень","жопоёб","жопник","жопочка",
|
||||
"журло","журня","заглот","заглотик","бомж","заеб","заёба","заеба","заёб","заебать","пердеж","запор","засеря",
|
||||
"засос","засирать","затруха","херотень","хуетень","захуень","злоебучий","уёбище","уебище","факю","фак ю","фак-ю",
|
||||
"фак_ю","импотент","инвалид","хуесос","лох",
|
||||
|
||||
// Names
|
||||
"обри","бэзил","банди","ленин","гектор","хиро","гитлер","крутозуб","цзинь","кел","ким чен","маленький","мари",
|
||||
"базиль","осама","плутон","полли","путин","потрошитель","рококо","сталин","трамп","зодиак","тесак","мюнхен",
|
||||
"сваста","свастик","свастон","зиг","хаиль","поттхаст","гимлер","геббельс","геринг","гиммлер","гебельс",
|
||||
"геббльс","гебльс","гибельс","гиббльс","гибльс","герринг","чубайс","чвк","редан","рёдан","вангер","раден",
|
||||
"солдат","воен","войн","хохлы","хохол","русня","свин","рейх","скотина","монашка","манашка","крым","украина",
|
||||
"либераха","либераст","либираст","америка","россия","цыган","цацка","циган","монеточка","фем-бой","фем_бой",
|
||||
"фем бой","фэм-бой","фэм_бой","фэм бой","суси","сусси","трансфем","трансфэм","траснмаск","лгбт","квиры","квирка",
|
||||
"транси","дуров","рунет","копро","стрелок","зоофил","некро","педо","борат","барат","брат","сестра","мскр","пупс",
|
||||
"пушкин","лермонтов","багиль","багель","бэгель","бабиль","бэбиль","бобиль","фуфел","мамонт","попк","иисус",
|
||||
"христос","господ","свят","библия","мать","отец","отчим","баба","дед","дядя","тётя","тетя","папа","дочка","сын",
|
||||
"кун","калл","кал","трансформ","негодяй","простофиля","срунгель","голубок","гонорея","сосок","сосочек","гузно",
|
||||
"гузноеб","грызло","гузноёб","гузнотёр","гузнотер","спиногрыз","даваха","дама","колхоз","сексист","феминист",
|
||||
"анархист","пацифист","нудист","тупой","военком","тусы","панцу","бомб","ирак","убил","ядерка","меф","мефедрон",
|
||||
"мефедр","батюшк","батя","дохлый","дристун","конопля","поллюция","полюция","полиция","фурри","фури","эбало",
|
||||
"ебало","заэбало","муж","жена","дети","мандавошка","миллиция","милиция","какать","какаш","дрыщ",
|
||||
// Foreign Language Bad Words
|
||||
"курва","puta","куколд","mierda","pendejo","нигга","нибба","трап","perra","faggot","dilldoe","blacky","pniss",
|
||||
"байден","омори",
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Window_OmoriInputLetters.prototype.onNameOk = function() {
|
||||
// Get Text
|
||||
var text = this._nameWindow.name();
|
||||
// If Text Length is more than 0
|
||||
if (text.length > 0) {
|
||||
if(text.toLowerCase() === "омокэт") {
|
||||
$gameSystem.unlockAchievement("YOU_THINK_YOU_RE_CLEVER_HUH")
|
||||
}
|
||||
if (new RegExp($gameSystem._badWords.join("|")).test(text.toLowerCase())) { // YIN - Bad words check
|
||||
this.playBuzzerSound();
|
||||
return;
|
||||
}
|
||||
this.deactivate();
|
||||
this.close();
|
||||
this._nameWindow.close();
|
||||
if (_TDS_.NameInput.params.nameVariableID > 0) {
|
||||
$gameVariables.setValue(_TDS_.NameInput.params.nameVariableID, text);
|
||||
};
|
||||
} else {
|
||||
this.playBuzzerSound();
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// OMORI RUS mod specific: Bad ending movie cover switcher.
|
||||
// Switches between Russian cover and original cover of My Time by Bo En.
|
||||
// ============================================================================
|
||||
|
||||
(function() {
|
||||
var _ConfigManager_makeData = ConfigManager.makeData;
|
||||
ConfigManager.makeData = function() {
|
||||
var config = _ConfigManager_makeData.apply(this, arguments);
|
||||
config.rusCoverInBadEnding = this.rusCoverInBadEnding;
|
||||
return config;
|
||||
};
|
||||
|
||||
var _ConfigManager_applyData = ConfigManager.applyData;
|
||||
ConfigManager.applyData = function(config) {
|
||||
_ConfigManager_applyData.apply(this, arguments);
|
||||
if (config['rusCoverInBadEnding'] === undefined)
|
||||
this.rusCoverInBadEnding = true;
|
||||
else
|
||||
this.rusCoverInBadEnding = this.readFlag(config, 'rusCoverInBadEnding');
|
||||
};
|
||||
|
||||
Window_OmoMenuOptionsGeneral.prototype.processOptionCommand = function() {
|
||||
// Get Index
|
||||
var index = this.index();
|
||||
// Get Data
|
||||
var data = this._optionsList[index];
|
||||
// Switch Case Index
|
||||
switch (index) {
|
||||
case 0: // Screen Resolution
|
||||
// Set Width & Height
|
||||
Yanfly.Param.ScreenWidth = 640 * (data.index + 1);
|
||||
Yanfly.Param.ScreenHeight = 480 * (data.index + 1) ;
|
||||
SceneManager._screenWidth = Yanfly.Param.ScreenWidth;
|
||||
SceneManager._screenHeight = Yanfly.Param.ScreenHeight;
|
||||
// SceneManager._boxWidth = Yanfly.Param.ScreenWidth;
|
||||
// SceneManager._boxHeight = Yanfly.Param.ScreenHeight
|
||||
Yanfly.updateResolution();
|
||||
Yanfly.moveToCenter();
|
||||
//window.moveTo(x, y);
|
||||
// Set Config Manager Screen Resolution
|
||||
ConfigManager.screenResolution = data.index;
|
||||
break;
|
||||
case 1: // Fullscreen
|
||||
// Set data Index
|
||||
//data.index === 0 ? Graphics._requestFullScreen() : Graphics._cancelFullScreen();
|
||||
// Set config manager Full screen state
|
||||
ConfigManager.fullScreen = data.index === 0 ? true : false;
|
||||
this._processDelay = 20;
|
||||
//Input.update();
|
||||
break;
|
||||
case 2:
|
||||
ConfigManager.gamepadTips = data.index === 0 ? false : true;
|
||||
if(SceneManager._scene instanceof Scene_OmoriTitleScreen) {
|
||||
SceneManager._scene.refreshCommandHints(); // Refresh command title hints;
|
||||
}
|
||||
break;
|
||||
case 3: ConfigManager.textSkip = data.index === 0 ? true : false; break;
|
||||
//case 3: ConfigManager.battleAnimations = data.index === 0 ? true : false ;break;
|
||||
//case 4: ConfigManager.battleAnimationSpeed = data.index ;break;
|
||||
case 4: ConfigManager.battleLogSpeed = data.index; ;break;
|
||||
case 5: ConfigManager.alwaysDash = data.index === 0 ? true : false ;break;
|
||||
|
||||
// OMORI RUS mod specific:
|
||||
case 6: ConfigManager.rusCoverInBadEnding = data.index === 0 ? true : false; break;
|
||||
};
|
||||
};
|
||||
})();
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// Patches for plugin: GTP_OmoriFixes
|
||||
// ============================================================================
|
||||
|
||||
Gamefall.OmoriFixes = Gamefall.OmoriFixes || {};
|
||||
|
||||
(function($) {
|
||||
|
||||
Yanfly.BEC.BattleManager_processTurn = function() {
|
||||
var subject = this._subject;
|
||||
var action = subject.currentAction();
|
||||
if (action) {
|
||||
action.prepare();
|
||||
if (action.isValid()) {
|
||||
this.startAction();
|
||||
}
|
||||
else {
|
||||
//===================================
|
||||
// Addon for checking JUICE
|
||||
if(DataManager.isSkill(action.item())) {
|
||||
if(subject.mp < action.item().mpCost) {
|
||||
this._logWindow.push("addText", subject.name().toUpperCase() + " не хватает СОКА!");
|
||||
this._logWindow.push("wait");
|
||||
}
|
||||
}
|
||||
//===================================
|
||||
}
|
||||
subject.removeCurrentAction();
|
||||
} else {
|
||||
subject.onAllActionsEnd();
|
||||
this.refreshStatus();
|
||||
this._logWindow.displayAutoAffectedStatus(subject);
|
||||
this._logWindow.displayCurrentState(subject);
|
||||
this._logWindow.displayRegeneration(subject);
|
||||
this._subject = this.getNextSubject();
|
||||
}
|
||||
}
|
||||
|
||||
$.Print_Something_Txt = function() {
|
||||
const path = require("path");
|
||||
const fs = require("fs")
|
||||
const os = require("os");
|
||||
var base = path.dirname(process.mainModule.filename);
|
||||
var deskDir = `${base}/`;
|
||||
NativeFunctions.writeExternalFileUTF8(deskDir + `___для_${$gameActors.actor(8).name()}___.txt`, `............. ... ............................... ..... ............. ..... ..
|
||||
........... . .. . . .. ... . .. .. ... . ..
|
||||
........... .. . . . OOZZZZZO . .. ... ... . .. ...
|
||||
........... .. .OZZZZZZZZZZZZZO, . . .. .. . .
|
||||
............. .. . . . ZZZZZZZZZZZZZZZZZZZZO.... ... ... ... ... ... ... ..
|
||||
............. ... ... ?ZZZZZZZZZZZZZZZZZZZZZZZMMZO...... ........ .........
|
||||
.................... MZZZZZZZZZZZZZZZZZZZZZZZZZZZMZZZ .........................
|
||||
..... . .........MMMZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ........................
|
||||
. . ....... OZZMMZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$......................
|
||||
. . .......ZZZOMMMMMMMMMZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ ....................
|
||||
. . . ......NZZMNMMMMMMMMMMNNZZMMMNMOMMOM8ZZZZZZZZZZZZZZI...................
|
||||
. . . ......OMZZZMMMMMMMMMMMMMZZZMMMMMMZZMZZZZZZZZZZZZZZZZ...................
|
||||
.. ... .. ....MZZZOMMMMMMMMMMMMMMZNMMMMMMMZMMZZZZZZZZZZZZZZZZZ, ................
|
||||
.............MMZMZZZZMMMMZMMMMMMMMMMZZMMMMMZZZZZZZZMZZMOZZZMMZZ~................
|
||||
.. . ..=MMZMMMZMZZMZOMMMMMMMMMMMMMMMMZZZZZZZZZZZZMOZMMMMZZZ................
|
||||
............MOMZNOOOMMMMZZDONMMMMMMMMMMMOOZZMDZOZOMOZZNNNMMMMMMOZ~..............
|
||||
. . . .ZMMMZZZZMZZZMMMDMMMMMMMMMMMMMMZZZZZMDOZMZOMMMZMOMZMZZZZ .............
|
||||
. .. . MZMMZZZMZZZOZOZZZMOMMMMMMMMMZZZMMMMZZ8MMMMMMZZMZZMZMMZZZZ.............
|
||||
..........ZMZZOZOZZZMZZMZZDONMMMMMMMMM.,OMMMZZMMMMMMMMMMMMMMMMMMMZZ ............
|
||||
. . ZMOMZOMOMMMMZZMMZDOMOOMMMOMM=.. ,MMMMMMMMMMMZMMMZMMMMMMMMZI............
|
||||
.. ... ZOMMMMMMMMMMMMZOZMDO8ZMMOMMMZ.....MMMMMMMMMMMMMMMMMMMMMMMMOZ............
|
||||
........ZZMMZMMMMMMZZMMZZMMMMZMMMMMM,. ...IMMMMMMMMMMMMMMMMMMMMMMMMZ$...........
|
||||
.......8ZZMMMMMMMOMMZZMMZZZZZMMMMMM7.......IMMMMMMMMMMMMMMMMMMMMMMMOZ...........
|
||||
. .... O8DMMDDDZZMMOODOZZZDZDDDZMD~.........MMMMMMMMMMMMMMMMMMMMMMMMD...........
|
||||
. ..MMZOMMMOMZZMMZZMMZZOZZMMMZMZ:.........,MMMMMMMMMMMMMMMMMMMMMMMMO .........
|
||||
..... MNZZZZZMMZZMOZZZZZZZDZZZZMZM. .........OMMMMMMMMMMMMMMMMMMMMMMOM .........
|
||||
......MNZZZZZZZZZ8NZZZZNZZ8ZZZNM8~. .........~MMMMMMMM8M8ZMMMMMMMMMMM8 .........
|
||||
.....MMNZZZZZZZZMZMOMMONOMMZOMZZ..............~MMMMMMZMOMMZMMZMZOMMMMMZ.........
|
||||
....IMMMDDZZZZDZDDMZDMMMMMNDDMOZ...............=MMDDZMDZ8DOZZZZZZZDMDMM ........
|
||||
....MMMZZMZZZZMMMMMMMMMOMZMMMZM:.............. =ZMMMZMZZZZZZZZZZZZZMZZM:........
|
||||
....MMMMOZMMZMMZZMMMMMMMMMMMMOZ.................IMMMMMOZZZZZZZZZZZZZZZZM........
|
||||
...MMMNOON8MMNMMMMMMMMMMMMMMMM...................ZMZO88ZNZZZZZZZZZZZZNMN8.......
|
||||
...MMZMNZZMMMMMMMMMMMMMMMMMMMM. ................,+MZZMMMZMOZZMOZZZZOZZZZO.......
|
||||
...MMZMNOMMMMMMMMMMMMMMMMMMMMZ. ..................MMZMZMZZMMMZMOZZDZZZZZM.......
|
||||
.. MMMMMMMMMMMMMMMMMMMMMMMMMM. ...................MMMMMMMMMMMMMMMZDZZZZZZ+......
|
||||
..MMMMMMMMMMMMMMMMMMMMMMMMMMM................... .=MMMMMMMMMMMMMMODMMMZZZO .....
|
||||
..MMMMMMMMMMMMMMMMMMMMMMMMMMN. ...... ~+..........,MMOZMMZMMMMMMMMMMNMOZZZ,.....
|
||||
. MMMMMMMMMMMMMMMMMMMMMMMMMMN. ...,ZNУ.ТЕБЯM,...... MMMMMMOZMMMMMMMMMMMMZMO.....
|
||||
. MMMMMMMMMMMMMMMMMMMMMMMMMMD, ...NMЧТО-ТОNNM.......MZMMMMZMMMMMMMMMMMMMMMM.....
|
||||
.MMMMMMMMMMMMMMMMMMMMMMMMMMMD ....MMMMЗАMMMMM,......M8MDMMNMMMMMMMMMMMMMMMM.....
|
||||
. MMMMMMMMMMMMMMMMMMMMMMMMMMD.....MMMТВОЕЙMMM .... .ZZMZOMMMMMMMMMMMMMMMMMM.....
|
||||
. MMMMMMMMMMMMMMMMMMMMMMMMMMM.....:MMСПИНОЙM.......MZOMOMZMOMMMMMMMMMMMMMMM.....
|
||||
. MMMMMMMMMMMMMMMMMMMMMMMMMMMI......=?MMMM.........MMMZMMMOZMZMMMMMMMMMMZZZ.....
|
||||
.,MMMMMMMMMMMMMMMMMMMMMMMMMMMM.....................MMMMMMMMMZZMOMMMMMMMMMMO.....
|
||||
.MMMMMMMMMMMMMMMMMMMMMMMMMMMMM....................+MMMMMMMMMDZMD8MDDMMMMMMD.....
|
||||
.MMMMMMMMMMMMMMMMMMMMMMMMMMMMM.................. .MMMMMMMMMMZMMMMMDMNMMMMZZ.....
|
||||
.MMMMMMMMMMMMMMMMMMMMMMMMMMMMM.................. .MMMMMMMMMMMMMMMMMMOMMMZZZM....
|
||||
.MMMMMMMMMMMMMMMMMMMMMMMMMMMMM, .... ............ZMMMMMMMMMMMMMMMMMMMMMMMZMM....
|
||||
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMZ,.................MMMMMMMMMMMMMMMMMDMMMMMZOMM....
|
||||
.MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM.................ZMMMMMMMMMMMMMMMMMMMMMMMMMOM....
|
||||
. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM...............:MMMMMMMMMMMMMMMMMMMMMMMMMZZZ....
|
||||
..MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM...............+MMMMMMMMMMMMMMMMMMMMMMMMZZZZ....
|
||||
..MMMMMMMMMMMMMOMMZMMMMMMMMMMMMM .............=MMMMMMMMMMMMMMMMMMMMMMMMMZZZZ....
|
||||
..MMMMMMMMMMMMMMZZMMMMMMMMMMMMMMZ,.......... OMMMMMMMMMMMMMMMMMMMMMMZMMZZZZZ....
|
||||
.. MMMMMMMMMMMMOOZMMMMMMMMMMMMMMMZ: .........MMMMMMMMMMMMMMMMMMMMMMMOMMMZZZZI...
|
||||
.. MMNMM8MMNODZZO8MMMMMMMMMMMMMMMMZ:........MMMMMMMMMM8MMMMMMMMMNMM88ZM8ZZZZ+...
|
||||
.. MMMZ8MZZZMZZZZMMMMMMMMMMMMMMMMMMZ.......IMMMMMMMMMMMMMMMMMMMOMMDMZZZZZZZZZ...
|
||||
..MMMMMMM$OOZZZZOMMMMMMMMMMMMMMMMMMM.... .OMMMMMMMMMMMMMMMMMMMMMMZZOZZZZZZZZZ...
|
||||
..MMMMZNOZZZZZZZZMZZMMMMMMMMMMMMMMMM=. ..=MMMMMMMMMMMMMMMMMMNMZZZMZZZZZMMZZZZ...
|
||||
..MMMMM8ZZZZZZZZMMMMMMMMMMMMMMMMMMMMMM .IMMMMMMMMMMMMMMMZMMMMMMZZMDMZOZMZZZZZ...
|
||||
..MMMMMNNNZZZZZN8ZDMMMMMMMMMMMMMMMMMMM..MMMMMMMMMMMMMMMM8MMDMNZMMNMM88ZZZZZZZ...
|
||||
..MMMMMMMMZZZZZZMZMMMMMMMMMMMMMMMMMMMMZZMMMMMMMMMMMMMMMMMZZMMMOMMMMMZMMZZZZZZ ..
|
||||
..MMMMMMMZZMZZZMZMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMOMMMMMMMMMMZMZZZZ ..
|
||||
...MMMMMMMZMOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZMMMMMMMDMMOOMMMMZZ ..
|
||||
...MMMMMZMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZMMZMZZ ..
|
||||
...MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZMMMMMMMMMMMMMMMMMMMMMMMMZZ ..
|
||||
...MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM...
|
||||
...MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZMMMMMMMMMMMMMMMMMMMMMMM...
|
||||
...MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ..
|
||||
....MMMMMMMMMMMMMMMOZOMMMMMMOMZZMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM...
|
||||
....MMMMMMMMMMMZMMMMMMMMMMMMMMZMMMMMMMMMMMMMMMMMMMMMMMMMMZMMMMMMMMMMMMMMMMMMM...
|
||||
....MMMMMMMMMMMMMMMMMMMZZZDZOMZZMZZZZZMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM...
|
||||
....MMMMMMMMMMMMMMMMMMMMMMMMNOZZZZZZZZZMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM...
|
||||
....MMMMMMMMMMMMMMMMMMMMMMMZMOZZZZZZZZZZMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM7...
|
||||
....MMMMMMMMMMMMMMMMMMMMMMMMMMMMZZZZZZZZZOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM7...
|
||||
....DMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZZZZZZZMMMMMNZZZMMMMMMMMMMMMMMMMMMMMMMMMZ....
|
||||
....DMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZZZZZZZZZMMM8MZZZZZZMMMMMMMMMMMMMMMMMMMMZ....
|
||||
.... MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZZZZZZZZDMMMZZZZZZMMMMMMMMMMZMOMMMMMMMM....
|
||||
.....MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZZZZZZZMMMMMZZZZZMMMMMMMMMMMMMOMMMMMMM....
|
||||
.... MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZZZZZMZ8ONOZZZZMMMMMMMMMMMMMMOMMMMMM....
|
||||
.....MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZZMZZOZZZZZZM=...,MMMMMMMMMMMMMMM....
|
||||
..... MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZ8ZOZZZZZZ. .....MMMMMMMOMMMMMMM....
|
||||
......MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZMMOZZZZZZZM .......MZOMMMMMMMMMMM....
|
||||
......MMMMMMMMMMM. ..... MMMMMMMMMMMMMMMMMMMMZZZZZZZZ..........MMMMMMMMMMMMM....
|
||||
......MMMZMMMMMM..........MMMMMMMMMMMMMMMMMMMMZZZZZZM..........NMMMMMMMMMMMM....
|
||||
......MMZMZMMMM=...... . ..MMMMMMMMMMMMMMMMMMDODZMMM.. .. ......MMMMMMMMMMMM. ..
|
||||
......MMZ$ZMMMM............MMMMMMMMMMMMMMMMMMNMMONM,............NMMMMMMMMMMO....
|
||||
.......MMOMZZOM,...... ....+MMMMMMMMMMMMMMMMMMMNMNM ............ MMMMMMMMM8Z....
|
||||
.......MZZZOZMO....... .....MMMMMMMMMMMMZMMMMMMMMMM..............MMMMMMMMMMM....
|
||||
.......MZOZZZZ .............MMMMMMMMMMMMMMZZMMMMMM.... ...........MMMMMMMMNO....
|
||||
.......NZMZZOM .............MMMMMMMMMMMMMMMMMMMMMM................MMMMMMMZO+....
|
||||
.......ZZZMZZZ ... . .... MMMMMMMMMMMMMMMMMMMMM .... ......... .7MMMMMMOM+....
|
||||
.......MMZMZZN..............:MMMMMMMMMMMMMMMMMMMM,................ MMMMMOMN?....
|
||||
.......MMOOMM................MMMMMMMMMMMMMMMMMMMM .................MMMMMMZM+....
|
||||
........OMZMM ........ ..... MMMMMMMMMMMMMMMMMMMM ..................MMMMMZN+....
|
||||
........MMMMM...............:MMMMMMMMMMMMMMMMMMM. ..................MMMMMMM+....
|
||||
........MMMMM............... MMMMMMMMMMMMMMMMMMM. .... .............:MMMMMM+....
|
||||
........MMMMM... ..... . ....MMMMMMMMMMMMMMMMMMM. .... ......... ... MMMMMM ....
|
||||
........NMMM ................MMMMMMMMMMMMMMMMMM....... ..............MMMMMO.....
|
||||
.........MZO ......... . ....MMMMMMMMMMMMMMMMMM . ............. . .. MMMMMO.....
|
||||
........,O8M.......... ......MMMMMMMMMMMMMMMMMM ..................... MMMM:.....
|
||||
.........ZMM................ MMMMMMMMMMMMMMZM8M.......................$MMM .....
|
||||
........ MM... ............. MMMMMMMMMMMMMMMZNM.. ................... MMZ......
|
||||
........ MM..... ..... .... .MMMMMMMMMMMMMMMMMM.. .... ......... .. . .MMM .....
|
||||
........ MM .......... ......MMMMMMMMMMMMMMMMM?.. .... .............. . MM .....
|
||||
........ 8M........... . .. .MMMMMMMMMMMMMMMMM. . .... .. ......... . ..M. .. ..
|
||||
........ ZM... ..............MMMMMMMMMMMMMMMMM .. ................... ..M ......
|
||||
.........Z ........... .... .NMMMMMMMMMMMMMMMM... ... ..... ..... ... .........
|
||||
.......... ........... ...... MMMMMMMMMMMMMMMM... ................... ..........
|
||||
............................. MMMMMMMMMMMMMMMM... ................... ..........
|
||||
............................. MMMMMMMMMMMMMMM+... ................... ..........
|
||||
............................. MMMMMMMMMMMMMMM...................................
|
||||
...................... .. ... MMMMMMMMMMMMMMM.... .... ......... .... .... .....
|
||||
............................. MMMMMMMMMMMMMMM.... .... ......... .... .... .....
|
||||
............................. MMMMMMMMMMMMMM:.... ................... ..........
|
||||
............................. MMMMMMMMMMMMMM..... ................... ..........
|
||||
............................. MMMMMMMMMMMMMM..... ................... ..........
|
||||
...................... ...... MMMMMMMMMMMMMM .... .............. .... ..........
|
||||
..................... ....... MMMMMMMMMMMMZ .... .... ......... .... .... .....
|
||||
............................. MMMMOMMMMMMOM ..... ................... ..........
|
||||
..............................MMMMOMMMMMZMM. .... .... ......... .... .... .....
|
||||
..............................MMMMD8DD8OZZZ ..... .... .............. .... .....
|
||||
...............................MMMOZMMZZZZZ...... .... .............. .... .....
|
||||
...............................MMMMMZMZZZZZ ....................................
|
||||
..... ... ............ ....... MMZZMZZZZZZZ .... .... ......... .... .... .....
|
||||
..............................$MZZZOOZZZZZZ...... ................... ..........
|
||||
...................... ....... ZZZOZZZZZZZ....... .... .............. .... .....
|
||||
........ .....................MZZOZZZZZZZ....... ................... ..........
|
||||
...................... ........MZOOZZZZZZZ....... ................... ..........
|
||||
..................... ........MM88ZOZNZZZ ...... .... .............. .... .....
|
||||
.. . ... .....................MMMZMMMMZZZO...... ................... ..........
|
||||
...............................MMMMOMMZ$ZM.. .... .... ......... .... .... .....
|
||||
...............................MMM8ZNMDMMD......................................
|
||||
.. ... . ............ .........MMMMMMMMMO . .... .... ......... .... .... .....
|
||||
................................MMMMMMMZ8M......................................
|
||||
..................... ........ MMNMMMMZM. ...... .... .............. .... .....
|
||||
...................... .. ......MMMMMMMMZ. . .... .... ......... .... .... .....
|
||||
................................MMMDMMMMD ......................................
|
||||
................................MMMZMMOMM........ ............ ...... ..........
|
||||
...................... .. ...... MOOMZMM . . .... .... ......... .... .... .....
|
||||
...................... .... .....MMMMMMM.. ...... ................... ..........
|
||||
.................................MMMMZMM......... ................... ..........
|
||||
.................................MMMMZM ......... ................... ..........
|
||||
.................................MMMZOM ......... ................... ..........
|
||||
.................................MMMOMM ... .... .... ......... .... .... .....
|
||||
...................... .. . .....MNZZZ$... ...... ............ ...... ..........
|
||||
................................ MMMMZ:.........................................
|
||||
..................... ..... ... MMMZM... ... ... ............... ... ..........
|
||||
...................... ..........,MMMM.... ...... ................... ..........
|
||||
...................... .......... MMZM.... ...... ................... ..........
|
||||
..................... ..... ... ..MMM ... .. .... .............. .... ..........
|
||||
..................................MMM ........... ................... ..........
|
||||
........................... ......MMM....... .... .... ......... .... .... .....
|
||||
..................................MMM............ ................... ..........
|
||||
...................... .. ... ... MM ..... . .... .... ......... .... .... .....
|
||||
..................... .... ... ..MM .... ...... .... .............. .... .....
|
||||
..................................DM............. ................... ..........
|
||||
....... . .........................=............. ................... ..........
|
||||
...................................+............. ................... ..........
|
||||
......... ........... ........ .... .... . .... .... ......... .... .... .....
|
||||
................................................................................
|
||||
.. .. . . ............ ........ .... ..... ...... .... .............. .... .....
|
||||
`)
|
||||
}
|
||||
|
||||
$.parseNoEffectEmotion = function(tname, em) {
|
||||
if(em.toLowerCase().contains("afraid")) {
|
||||
return target.name() + " не может ИСПУГАТЬСЯ сильнее!\r\n";
|
||||
}
|
||||
let finalString = `${tname} не может стать ${em}`;
|
||||
if(finalString.length >= 40) {
|
||||
let voinIndex = 0;
|
||||
for(let i = 40; i >= 0; i--) {
|
||||
if(finalString[i] === " ") {
|
||||
voinIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
finalString = [finalString.slice(0, voinIndex).trim(), "\r\n", finalString.slice(voinIndex).trimLeft()].join('')
|
||||
}
|
||||
return finalString;
|
||||
}
|
||||
|
||||
$.parseNoStateChange = function(tname,stat,hl) {
|
||||
let noStateChangeText = `${stat} ${tname} не может`
|
||||
let second = `стать ${hl}`; // TARGET NAME - STAT - HIGHER/LOWER
|
||||
let complete = `${noStateChangeText} ${second}`;
|
||||
if(complete.length < 40) {
|
||||
BattleManager.addText(complete, 16)
|
||||
}
|
||||
else {
|
||||
BattleManager.addText(noStateChangeText, 1)
|
||||
BattleManager.addText(second, 16)
|
||||
}
|
||||
}
|
||||
|
||||
Yanfly.BEC.Window_BattleLog_displayAddedStates = function(target) {
|
||||
target.result().addedStateObjects().forEach(function(state) {
|
||||
var stateMsg = target.isActor() ? state.message1 : state.message2;
|
||||
if (state.id === target.deathStateId()) {
|
||||
this.push('performCollapse', target);
|
||||
}
|
||||
if(state.id === target.deathStateId() && target.isActor()) {
|
||||
if([1,8,9,10,11].contains(target.actorId())) {
|
||||
stateMsg = " теряет сознание!";
|
||||
}
|
||||
}
|
||||
if (stateMsg) {
|
||||
this.push('popBaseLine');
|
||||
this.push('pushBaseLine');
|
||||
this.push('addText', target.name() + stateMsg);
|
||||
this.push('waitForEffect');
|
||||
}
|
||||
}, this);
|
||||
}
|
||||
|
||||
})(Gamefall.OmoriFixes);
|
||||
|
||||
Gamefall.JPWordWrap = Gamefall.JPWordWrap || {};
|
||||
|
||||
(function($) {
|
||||
|
||||
function isTextInCurrentLanguage (text) {
|
||||
const lang = LanguageManager.defaultLanguage()
|
||||
switch(lang) {
|
||||
default:
|
||||
//let englishOnly = /^[a-zA-Z0-9!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?☆ ]*$/;
|
||||
//if(!englishOnly.test(text)) {return false}
|
||||
let russianOnly = /^[а-яА-Я0-9!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?☆ ]*$/;
|
||||
if(!russianOnly.test(text)) {return false}
|
||||
break;
|
||||
case "jp":
|
||||
let japaneseOnly = /^[\u3000-\u303F|\u3040-\u309F|\u30A0-\u30FF|\uFF00-\uFFEF|\u4E00-\u9FAF|\u2605-\u2606|\u2190-\u2195|\u203B|0-9!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?☆ ]*$/g;
|
||||
if(!japaneseOnly.test(text)) {return false}
|
||||
break
|
||||
case "kr":
|
||||
let koreanOnly = /(^[\u3131-\u314e|\u314f-\u3163|\uac00-\ud7a3|0-9!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?☆ ]*$)/g
|
||||
if(!koreanOnly.test(text)) {return false}
|
||||
case "sc":
|
||||
let scOnly = /^([\u4e00-\u9eff|\u3000-\u303F|0-9!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?☆ ])*$/
|
||||
if(!scOnly.test(text)) {return false}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
DataManager.actorNamesPerLanguage = [
|
||||
["ОМОРИ", "OMORI", "オモリ", "오모리", "OMORI"],
|
||||
["ОБРИ", "AUBREY", "オーブリー", "오브리", "奥布里"],
|
||||
["КЕЛ", "KEL", "ケル", "켈", "凯"],
|
||||
["ХИРО", "HERO", "ヒロ", "히로", "英雄"]
|
||||
];
|
||||
|
||||
DataManager.chapterNamesPerLanguage = [
|
||||
["???", "???", "???", "???", "???"],
|
||||
["ДЕНЬ ПЕРЕЕЗДА", "MOVING DAY", "引越しの日", "이삿날", "搬家当天"],
|
||||
["ОСТАЛОСЬ ОДИН ДЕНЬ...", "ONE DAY LEFT...", "あと1日……", "이삿날까지 하루 남음...", "还有一天……"],
|
||||
["ОСТАЛОСЬ ДВА ДНЯ...", "TWO DAYS LEFT...", "あと2日……", "이삿날까지 이틀 남음...", "还有两天……"],
|
||||
["ОСТАЛОСЬ ТРИ ДНЯ...", "THREE DAYS LEFT...", "あと3日……", "이삿날까지 사흘 남음...", "还有三天……"],
|
||||
["ПРОЛОГ", "PROLOGUE", "プロローグ", "서장", "序章"]
|
||||
];
|
||||
|
||||
DataManager.locationNamesPerLanguage = [
|
||||
["УЛИЦА","OUTSIDE","家の外","바깥","外面"],
|
||||
["МАМИНА КОМНАТА","MOM'S ROOM","お母さんの部屋","엄마의 방","妈妈的房间"],
|
||||
["ДОМ БЭЗИЛА","BASIL'S HOUSE","バジルの家","바질의 집","贝瑟尔家"],
|
||||
["ПАРК ГОРИЗОНТА","FARAWAY PARK","ハルバル公園","패러웨이 공원","遥远公园"],
|
||||
["ТАЙНОЕ ОЗЕРО","SECRET LAKE","秘密の湖","비밀 호수","秘密湖泊"],
|
||||
["ЛЕСНАЯ ПЛОЩАДКА","FOREST PLAYGROUND","森の遊び場","숲 놀이터","森林游乐场"],
|
||||
["БЕСКРАЙНИЙ ЛЕС","VAST FOREST","ヒロビロ森","광대한 숲","辽阔森林"],
|
||||
["ЛЕС ВЕРТУШЕК","PINWHEEL FOREST","カザグルマ森","바람개비 숲","风车森林"],
|
||||
["АПЕЛЬСИНОВЫЙ ОАЗИС","ORANGE OASIS","オレンジオアシス","오렌지 오아시스","橙子绿"],
|
||||
["ГОРОДОК ДОЖДЯ","RAIN TOWN","アメフリの町","비의 마을","落雨镇"],
|
||||
["ВНЕЗЕМЕЛЬЕ","OTHERWORLD","イセカイ","별세계","异世界"],
|
||||
["ЗАМЁРЗШЕЕ ОЗЕРО","FROZEN LAKE","ヒエビエ湖","얼어붙은 호수","结冰湖"],
|
||||
["ГОРА СНЕЖНЫЙ ШАР","SNOWGLOBE MOUNTAIN","スノードームマウンテン","스노우블로브 산","雪花球山"],
|
||||
["СВАЛКА","JUNKYARD","廃品投棄場","쓰레기장","垃圾场"],
|
||||
["ЛЕС СВЕТЛЯЧКОВ","PYREFLY FOREST","ヒバナ森","반딧불더미 숲","焚火虫森林"],
|
||||
["ПОТЕРЯННЫЙ ЛЕС","LOST FOREST","サイゴノ楽園","잃어버린 숲","迷失森林"],
|
||||
["ДЕРЕВНЯ РОСТОКРОТОВ","SPROUT MOLE VILLAGE","ナエモグ村","두더지 새싹 마을","树苗鼹鼠村"],
|
||||
["ЗАМОК ДУШЕЧКИ","SWEETHEART'S CASTLE","スイートハート城","스위트하트의 성","甜心城堡"],
|
||||
["ПОСЛЕДНИЙ ШАНС","LAST RESORT","サイゴノ楽園","최후의 도피처","最后度假村"],
|
||||
["ПОДВОДНОЕ ШОССЕ","UNDERWATER HIGHWAY","水中高速道路","수중 고속도로","水下高架"],
|
||||
["ГЛУБОЧАЙШИЙ КОЛОДЕЦ","DEEPER WELL","シンエン井戸","더 깊은 우물","深井深处"],
|
||||
["ХАМФРИ","HUMPHREY","ハンフリー","험프리","汉弗莱"],
|
||||
["КАСКАД БОССОВ","BOSS RUSH","ボスラッシュ","보스 러시","头目反击战"],
|
||||
["БЕЗДНА","THE ABYSS","ナラク","심연","深渊"],
|
||||
["ЧЁРНОЕ ПРОСТРАНСТВО","BLACK SPACE","ブラックスペース","검은 공간","黑色空间"],
|
||||
["ПОЛЯНКА БЭЗИЛА","BASIL'S MEADOW","バジルの草原","바질의 꽃밭","贝瑟尔的草地"],
|
||||
["ПОТЕРЯННАЯ БИБЛИОТЕКА","LOST LIBRARY","失われし図書館","잃어버린 도서관","失落图书馆"],
|
||||
["ШТАБ ЭКОКУЛЬТИСТОВ","RECYCULTIST'S HQ","リサイカルト本部","재활용교도의 본부","回收教徒总部"],
|
||||
["ХЛЕБЕСА","BREAVEN","パンクチュアリ","빵천국","面包天堂"],
|
||||
["ЗА КУЛИСАМИ","BACKSTAGE","バックステージ","무대 뒤편","后台"],
|
||||
["ДОРОГА ВОСПОМИНАНИЙ","MEMORY LANE","思い出の道","추억의 뒤안길","回忆小道"],
|
||||
["СПАЛЬНЯ СОСЕДЕЙ","NEIGHBOR'S BEDROOM","オトナリベッドルーム","이웃의 침실","邻居的卧室"]
|
||||
];
|
||||
|
||||
// For compatibility with 1.0.7 and lower versions.
|
||||
if (typeof DataManager.convertNameToLanguage == 'undefined') {
|
||||
DataManager.convertNameToLanguage = function(type, name) {
|
||||
let myLanguageIndex = ['en', 'jp', 'kr', 'sc'].indexOf(LanguageManager.defaultLanguage());
|
||||
if (myLanguageIndex != -1) {
|
||||
let namesPerLanguage = type === 'actor'? this.actorNamesPerLanguage : type === "chapter" ? this.chapterNamesPerLanguage : this.locationNamesPerLanguage;
|
||||
for (let entryNum = 0; entryNum < namesPerLanguage.length; entryNum++) {
|
||||
for (let languageID = 0; languageID < namesPerLanguage[entryNum].length; languageID++) {
|
||||
if (languageID == myLanguageIndex) continue;
|
||||
if (name == namesPerLanguage[entryNum][languageID]) { // Name from other language detected
|
||||
return namesPerLanguage[entryNum][myLanguageIndex];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
DataManager = class extends DataManager {
|
||||
static loadSavefileInfo(savefileId) {
|
||||
var globalInfo = this.loadGlobalInfo();
|
||||
if (globalInfo && globalInfo[savefileId]) {
|
||||
globalInfo[savefileId].actorData.name = this.convertNameToLanguage('actor', globalInfo[savefileId].actorData.name);
|
||||
if(!isTextInCurrentLanguage(globalInfo[savefileId].actorData.name)) {
|
||||
const lang = LanguageManager.defaultLanguage();
|
||||
globalInfo[savefileId].actorData.name = LanguageManager._data[lang]["text"]["XX_BLUE"]["Omori_Name_Input"]["defaultname"] // Assuming this is Sunny as all the other characters that could save
|
||||
// are defined inside actorNamesPerLanguage array.
|
||||
}
|
||||
globalInfo[savefileId].chapter = this.convertNameToLanguage('chapter', globalInfo[savefileId].chapter);
|
||||
globalInfo[savefileId].location = this.convertNameToLanguage('location', globalInfo[savefileId].location)
|
||||
};
|
||||
return (globalInfo && globalInfo[savefileId]) ? globalInfo[savefileId] : null;
|
||||
}
|
||||
}
|
||||
|
||||
Game_Actor = class extends Game_Actor {
|
||||
name() {
|
||||
if (this._actorId !== 8) { return super.name() } // NOT SUNNY
|
||||
const lang = LanguageManager.defaultLanguage();
|
||||
const defaultName = LanguageManager._data[lang]["text"]["XX_BLUE"]["Omori_Name_Input"]["defaultname"];
|
||||
let name = this._name;
|
||||
if (!isTextInCurrentLanguage(name)) { name = defaultName }
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
})(Gamefall.JPWordWrap)
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// Patches for plugin: Omori Name Input
|
||||
// ============================================================================
|
||||
|
||||
// VirtualKeyboard not exists in 1.0.7 and lower versions.
|
||||
if (typeof VirtualKeyboard !== 'undefined') {
|
||||
VirtualKeyboard.EN = {
|
||||
default: [
|
||||
"` 1 2 3 4 5 6 7 8 9 0 - = {bksp}",
|
||||
"й ц у к е н г ш щ з х ъ \\",
|
||||
"{lock} ф ы в а п р о л д ж э",
|
||||
"я ч с м и т ь б ю . {confirm} {space}"
|
||||
],
|
||||
shift: [
|
||||
"~ ! @ # $ % ^ & * ( ) _ + {bksp}",
|
||||
"Й Ц У К Е Н Г Ш Щ З Х Ъ |",
|
||||
"{lock} Ф Ы В А П Р О Л Д Ж Э",
|
||||
"Я Ч С М И Т Ь Б Ю ? {confirm} {space}"
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// Patches for plugin: YIN - Minigame - PizzaDelivery
|
||||
// ============================================================================
|
||||
|
||||
Game_Interpreter.prototype.initPizzaDelivery = function () {
|
||||
ImageManager.loadPicture("PIZZA-Background");
|
||||
//ImageManager.loadAtlas("MN_PizzaItems"); // obsolete
|
||||
// Because we have multiple atlases instead of one,
|
||||
// we should preload all of those:
|
||||
ImageManager.loadAtlas("MN_PizzaItems_1");
|
||||
ImageManager.loadAtlas("MN_PizzaItems_2");
|
||||
ImageManager.loadAtlas("MN_PizzaItems_3");
|
||||
|
||||
$gameSystem._chosenHouses = [];
|
||||
$gameSystem._checkedHouses = [];
|
||||
|
||||
var _pizzaHouse1 = this.generateHouse(1);
|
||||
var _pizzaHouse2 = this.generateHouse(2);
|
||||
var _pizzaHouse3 = this.generateHouse(3);
|
||||
|
||||
this._pizzaHouse1 = _pizzaHouse1;
|
||||
this._pizzaHouse2 = _pizzaHouse2;
|
||||
this._pizzaHouse3 = _pizzaHouse3;
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -1,952 +0,0 @@
|
|||
var pixi_tilemap;
|
||||
(function (pixi_tilemap) {
|
||||
var CanvasTileRenderer = (function () {
|
||||
function CanvasTileRenderer(renderer) {
|
||||
this.tileAnim = [0, 0];
|
||||
this.dontUseTransform = false;
|
||||
this.renderer = renderer;
|
||||
this.tileAnim = [0, 0];
|
||||
}
|
||||
return CanvasTileRenderer;
|
||||
}());
|
||||
pixi_tilemap.CanvasTileRenderer = CanvasTileRenderer;
|
||||
PIXI.CanvasRenderer.registerPlugin('tilemap', CanvasTileRenderer);
|
||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
||||
var __extends = (this && this.__extends) || (function () {
|
||||
var extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
||||
return function (d, b) {
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
};
|
||||
})();
|
||||
var pixi_tilemap;
|
||||
(function (pixi_tilemap) {
|
||||
var CompositeRectTileLayer = (function (_super) {
|
||||
__extends(CompositeRectTileLayer, _super);
|
||||
function CompositeRectTileLayer(zIndex, bitmaps, texPerChild) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this.modificationMarker = 0;
|
||||
_this.shadowColor = new Float32Array([0.0, 0.0, 0.0, 0.5]);
|
||||
_this._globalMat = null;
|
||||
_this.initialize.apply(_this, arguments);
|
||||
return _this;
|
||||
}
|
||||
CompositeRectTileLayer.prototype.updateTransform = function () {
|
||||
_super.prototype.displayObjectUpdateTransform.call(this);
|
||||
};
|
||||
CompositeRectTileLayer.prototype.initialize = function (zIndex, bitmaps, texPerChild) {
|
||||
if (texPerChild === true) {
|
||||
texPerChild = 0;
|
||||
}
|
||||
this.z = this.zIndex = zIndex;
|
||||
this.texPerChild = texPerChild || pixi_tilemap.Constant.boundCountPerBuffer * pixi_tilemap.Constant.maxTextures;
|
||||
if (bitmaps) {
|
||||
this.setBitmaps(bitmaps);
|
||||
}
|
||||
};
|
||||
CompositeRectTileLayer.prototype.setBitmaps = function (bitmaps) {
|
||||
var texPerChild = this.texPerChild;
|
||||
var len1 = this.children.length;
|
||||
var len2 = Math.ceil(bitmaps.length / texPerChild);
|
||||
var i;
|
||||
for (i = 0; i < len1; i++) {
|
||||
this.children[i].textures = bitmaps.slice(i * texPerChild, (i + 1) * texPerChild);
|
||||
}
|
||||
for (i = len1; i < len2; i++) {
|
||||
var layer = new pixi_tilemap.RectTileLayer(this.zIndex, bitmaps.slice(i * texPerChild, (i + 1) * texPerChild));
|
||||
layer.compositeParent = true;
|
||||
layer.offsetX = pixi_tilemap.Constant.boundSize;
|
||||
layer.offsetY = pixi_tilemap.Constant.boundSize;
|
||||
this.addChild(layer);
|
||||
}
|
||||
};
|
||||
CompositeRectTileLayer.prototype.clear = function () {
|
||||
for (var i = 0; i < this.children.length; i++) {
|
||||
this.children[i].clear();
|
||||
}
|
||||
this.modificationMarker = 0;
|
||||
};
|
||||
CompositeRectTileLayer.prototype.addRect = function (textureIndex, u, v, x, y, tileWidth, tileHeight) {
|
||||
var childIndex = textureIndex / this.texPerChild >> 0;
|
||||
var textureId = textureIndex % this.texPerChild;
|
||||
if (this.children[childIndex] && this.children[childIndex].textures) {
|
||||
this.children[childIndex].addRect(textureId, u, v, x, y, tileWidth, tileHeight);
|
||||
}
|
||||
};
|
||||
CompositeRectTileLayer.prototype.addFrame = function (texture_, x, y, animX, animY) {
|
||||
var texture;
|
||||
var layer = null;
|
||||
var ind = 0;
|
||||
var children = this.children;
|
||||
if (typeof texture_ === "number") {
|
||||
var childIndex = texture_ / this.texPerChild >> 0;
|
||||
layer = children[childIndex];
|
||||
if (!layer) {
|
||||
layer = children[0];
|
||||
if (!layer) {
|
||||
return false;
|
||||
}
|
||||
ind = 0;
|
||||
}
|
||||
else {
|
||||
ind = texture_ % this.texPerChild;
|
||||
}
|
||||
texture = layer.textures[ind];
|
||||
}
|
||||
else {
|
||||
if (typeof texture_ === "string") {
|
||||
texture = PIXI.Texture.fromImage(texture_);
|
||||
}
|
||||
else {
|
||||
texture = texture_;
|
||||
}
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
var child = children[i];
|
||||
var tex = child.textures;
|
||||
for (var j = 0; j < tex.length; j++) {
|
||||
if (tex[j].baseTexture === texture.baseTexture) {
|
||||
layer = child;
|
||||
ind = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (layer) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!layer) {
|
||||
for (i = 0; i < children.length; i++) {
|
||||
var child = children[i];
|
||||
if (child.textures.length < this.texPerChild) {
|
||||
layer = child;
|
||||
ind = child.textures.length;
|
||||
child.textures.push(texture);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!layer) {
|
||||
layer = new pixi_tilemap.RectTileLayer(this.zIndex, texture);
|
||||
layer.compositeParent = true;
|
||||
layer.offsetX = pixi_tilemap.Constant.boundSize;
|
||||
layer.offsetY = pixi_tilemap.Constant.boundSize;
|
||||
children.push(layer);
|
||||
ind = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
layer.addRect(ind, texture.frame.x, texture.frame.y, x, y, texture.frame.width, texture.frame.height, animX, animY);
|
||||
return true;
|
||||
};
|
||||
CompositeRectTileLayer.prototype.renderCanvas = function (renderer) {
|
||||
if (!this.visible || this.worldAlpha <= 0 || !this.renderable) {
|
||||
return;
|
||||
}
|
||||
var plugin = renderer.plugins.tilemap;
|
||||
if (!plugin.dontUseTransform) {
|
||||
var wt = this.worldTransform;
|
||||
renderer.context.setTransform(wt.a, wt.b, wt.c, wt.d, wt.tx * renderer.resolution, wt.ty * renderer.resolution);
|
||||
}
|
||||
var layers = this.children;
|
||||
for (var i = 0; i < layers.length; i++) {
|
||||
layers[i].renderCanvasCore(renderer);
|
||||
}
|
||||
};
|
||||
CompositeRectTileLayer.prototype.renderWebGL = function (renderer) {
|
||||
if (!this.visible || this.worldAlpha <= 0 || !this.renderable) {
|
||||
return;
|
||||
}
|
||||
var gl = renderer.gl;
|
||||
var plugin = renderer.plugins.tilemap;
|
||||
renderer.setObjectRenderer(plugin);
|
||||
var shader = plugin.getShader();
|
||||
renderer.bindShader(shader);
|
||||
this._globalMat = this._globalMat || new PIXI.Matrix();
|
||||
renderer._activeRenderTarget.projectionMatrix.copy(this._globalMat).append(this.worldTransform);
|
||||
shader.uniforms.projectionMatrix = this._globalMat.toArray(true);
|
||||
shader.uniforms.shadowColor = this.shadowColor;
|
||||
var af = shader.uniforms.animationFrame = plugin.tileAnim;
|
||||
var layers = this.children;
|
||||
for (var i = 0; i < layers.length; i++) {
|
||||
layers[i].renderWebGLCore(renderer, plugin);
|
||||
}
|
||||
};
|
||||
CompositeRectTileLayer.prototype.isModified = function (anim) {
|
||||
var layers = this.children;
|
||||
if (this.modificationMarker !== layers.length) {
|
||||
return true;
|
||||
}
|
||||
for (var i = 0; i < layers.length; i++) {
|
||||
if (layers[i].isModified(anim)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
CompositeRectTileLayer.prototype.clearModify = function () {
|
||||
var layers = this.children;
|
||||
this.modificationMarker = layers.length;
|
||||
for (var i = 0; i < layers.length; i++) {
|
||||
layers[i].clearModify();
|
||||
}
|
||||
};
|
||||
return CompositeRectTileLayer;
|
||||
}(PIXI.Container));
|
||||
pixi_tilemap.CompositeRectTileLayer = CompositeRectTileLayer;
|
||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
||||
var pixi_tilemap;
|
||||
(function (pixi_tilemap) {
|
||||
pixi_tilemap.Constant = {
|
||||
maxTextures: 4,
|
||||
bufferSize: 2048,
|
||||
boundSize: 1024,
|
||||
boundCountPerBuffer: 4,
|
||||
};
|
||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
||||
var pixi_tilemap;
|
||||
(function (pixi_tilemap) {
|
||||
var GraphicsLayer = (function (_super) {
|
||||
__extends(GraphicsLayer, _super);
|
||||
function GraphicsLayer(zIndex) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this.z = _this.zIndex = zIndex;
|
||||
return _this;
|
||||
}
|
||||
GraphicsLayer.prototype.renderCanvas = function (renderer) {
|
||||
var wt = null;
|
||||
if (renderer.plugins.tilemap.dontUseTransform) {
|
||||
wt = this.transform.worldTransform;
|
||||
this.transform.worldTransform = PIXI.Matrix.IDENTITY;
|
||||
}
|
||||
renderer.plugins.graphics.render(this);
|
||||
if (renderer.plugins.tilemap.dontUseTransform) {
|
||||
this.transform.worldTransform = wt;
|
||||
}
|
||||
renderer.context.globalAlpha = 1.0;
|
||||
};
|
||||
GraphicsLayer.prototype.renderWebGL = function (renderer) {
|
||||
if (!this._webGL[renderer.CONTEXT_UID])
|
||||
this.dirty++;
|
||||
_super.prototype.renderWebGL.call(this, renderer);
|
||||
};
|
||||
GraphicsLayer.prototype.isModified = function (anim) {
|
||||
return false;
|
||||
};
|
||||
GraphicsLayer.prototype.clearModify = function () {
|
||||
};
|
||||
return GraphicsLayer;
|
||||
}(PIXI.Graphics));
|
||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
||||
var pixi_tilemap;
|
||||
(function (pixi_tilemap) {
|
||||
var RectTileLayer = (function (_super) {
|
||||
__extends(RectTileLayer, _super);
|
||||
function RectTileLayer(zIndex, texture) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this.z = 0;
|
||||
_this.zIndex = 0;
|
||||
_this.modificationMarker = 0;
|
||||
_this.shadowColor = new Float32Array([0.0, 0.0, 0.0, 0.5]);
|
||||
_this._globalMat = null;
|
||||
_this.pointsBuf = [];
|
||||
_this.hasAnim = false;
|
||||
_this.offsetX = 0;
|
||||
_this.offsetY = 0;
|
||||
_this.compositeParent = false;
|
||||
_this.vbId = 0;
|
||||
_this.vb = null;
|
||||
_this.vbBuffer = null;
|
||||
_this.vbArray = null;
|
||||
_this.vbInts = null;
|
||||
_this.initialize(zIndex, texture);
|
||||
return _this;
|
||||
}
|
||||
RectTileLayer.prototype.updateTransform = function () {
|
||||
_super.prototype.displayObjectUpdateTransform.call(this);
|
||||
};
|
||||
RectTileLayer.prototype.initialize = function (zIndex, textures) {
|
||||
if (!textures) {
|
||||
textures = [];
|
||||
}
|
||||
else if (!(textures instanceof Array) && textures.baseTexture) {
|
||||
textures = [textures];
|
||||
}
|
||||
this.textures = textures;
|
||||
this.z = this.zIndex = zIndex;
|
||||
};
|
||||
RectTileLayer.prototype.clear = function () {
|
||||
this.pointsBuf.length = 0;
|
||||
this.modificationMarker = 0;
|
||||
this.hasAnim = false;
|
||||
};
|
||||
RectTileLayer.prototype.addFrame = function (texture_, x, y, animX, animY) {
|
||||
var texture;
|
||||
var textureIndex = 0;
|
||||
if (typeof texture_ === "number") {
|
||||
textureIndex = texture_;
|
||||
texture = this.textures[textureIndex];
|
||||
}
|
||||
else {
|
||||
if (typeof texture_ === "string") {
|
||||
texture = PIXI.Texture.fromImage(texture_);
|
||||
}
|
||||
else {
|
||||
texture = texture_;
|
||||
}
|
||||
var found = false;
|
||||
var textureList = this.textures;
|
||||
for (var i = 0; i < textureList.length; i++) {
|
||||
if (textureList[i].baseTexture === texture.baseTexture) {
|
||||
textureIndex = i;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
this.addRect(textureIndex, texture.frame.x, texture.frame.y, x, y, texture.frame.width, texture.frame.height, animX, animY);
|
||||
return true;
|
||||
};
|
||||
RectTileLayer.prototype.addRect = function (textureIndex, u, v, x, y, tileWidth, tileHeight, animX, animY) {
|
||||
if (animX === void 0) { animX = 0; }
|
||||
if (animY === void 0) { animY = 0; }
|
||||
var pb = this.pointsBuf;
|
||||
this.hasAnim = this.hasAnim || animX > 0 || animY > 0;
|
||||
if (tileWidth === tileHeight) {
|
||||
pb.push(u);
|
||||
pb.push(v);
|
||||
pb.push(x);
|
||||
pb.push(y);
|
||||
pb.push(tileWidth);
|
||||
pb.push(tileHeight);
|
||||
pb.push(animX | 0);
|
||||
pb.push(animY | 0);
|
||||
pb.push(textureIndex);
|
||||
}
|
||||
else {
|
||||
var i;
|
||||
if (tileWidth % tileHeight === 0) {
|
||||
for (i = 0; i < tileWidth / tileHeight; i++) {
|
||||
pb.push(u + i * tileHeight);
|
||||
pb.push(v);
|
||||
pb.push(x + i * tileHeight);
|
||||
pb.push(y);
|
||||
pb.push(tileHeight);
|
||||
pb.push(tileHeight);
|
||||
pb.push(animX | 0);
|
||||
pb.push(animY | 0);
|
||||
pb.push(textureIndex);
|
||||
}
|
||||
}
|
||||
else if (tileHeight % tileWidth === 0) {
|
||||
for (i = 0; i < tileHeight / tileWidth; i++) {
|
||||
pb.push(u);
|
||||
pb.push(v + i * tileWidth);
|
||||
pb.push(x);
|
||||
pb.push(y + i * tileWidth);
|
||||
pb.push(tileWidth);
|
||||
pb.push(tileWidth);
|
||||
pb.push(animX | 0);
|
||||
pb.push(animY | 0);
|
||||
pb.push(textureIndex);
|
||||
}
|
||||
}
|
||||
else {
|
||||
pb.push(u);
|
||||
pb.push(v);
|
||||
pb.push(x);
|
||||
pb.push(y);
|
||||
pb.push(tileWidth);
|
||||
pb.push(tileHeight);
|
||||
pb.push(animX | 0);
|
||||
pb.push(animY | 0);
|
||||
pb.push(textureIndex);
|
||||
}
|
||||
}
|
||||
};
|
||||
RectTileLayer.prototype.renderCanvas = function (renderer) {
|
||||
var plugin = renderer.plugins.tilemap;
|
||||
if (!plugin.dontUseTransform) {
|
||||
var wt = this.worldTransform;
|
||||
renderer.context.setTransform(wt.a, wt.b, wt.c, wt.d, wt.tx * renderer.resolution, wt.ty * renderer.resolution);
|
||||
}
|
||||
this.renderCanvasCore(renderer);
|
||||
};
|
||||
RectTileLayer.prototype.renderCanvasCore = function (renderer) {
|
||||
if (this.textures.length === 0)
|
||||
return;
|
||||
var points = this.pointsBuf;
|
||||
renderer.context.fillStyle = '#000000';
|
||||
for (var i = 0, n = points.length; i < n; i += 9) {
|
||||
var x1 = points[i], y1 = points[i + 1];
|
||||
var x2 = points[i + 2], y2 = points[i + 3];
|
||||
var w = points[i + 4];
|
||||
var h = points[i + 5];
|
||||
x1 += points[i + 6] * renderer.plugins.tilemap.tileAnim[0];
|
||||
y1 += points[i + 7] * renderer.plugins.tilemap.tileAnim[1];
|
||||
var textureIndex = points[i + 8];
|
||||
if (textureIndex >= 0) {
|
||||
renderer.context.drawImage(this.textures[textureIndex].baseTexture.source, x1, y1, w, h, x2, y2, w, h);
|
||||
}
|
||||
else {
|
||||
renderer.context.globalAlpha = 0.5;
|
||||
renderer.context.fillRect(x2, y2, w, h);
|
||||
renderer.context.globalAlpha = 1;
|
||||
}
|
||||
}
|
||||
};
|
||||
RectTileLayer.prototype.getVb = function (renderer) {
|
||||
var _vb = this.vb;
|
||||
if (_vb) {
|
||||
if (_vb.rendererSN === renderer.sn) {
|
||||
return _vb;
|
||||
}
|
||||
this.destroyVb();
|
||||
}
|
||||
return null;
|
||||
};
|
||||
RectTileLayer.prototype.destroyVb = function () {
|
||||
if (this.vb) {
|
||||
this.vb.vb.destroy();
|
||||
this.vb.vao.destroy();
|
||||
this.vb = null;
|
||||
}
|
||||
};
|
||||
RectTileLayer.prototype.renderWebGL = function (renderer) {
|
||||
var gl = renderer.gl;
|
||||
var plugin = renderer.plugins.simpleTilemap;
|
||||
var shader = plugin.getShader();
|
||||
renderer.setObjectRenderer(plugin);
|
||||
renderer.bindShader(shader);
|
||||
this._globalMat = this._globalMat || new PIXI.Matrix();
|
||||
renderer._activeRenderTarget.projectionMatrix.copy(this._globalMat).append(this.worldTransform);
|
||||
shader.uniforms.projectionMatrix = this._globalMat.toArray(true);
|
||||
shader.uniforms.shadowColor = this.shadowColor;
|
||||
var af = shader.uniforms.animationFrame = plugin.tileAnim;
|
||||
this.renderWebGLCore(renderer, plugin);
|
||||
};
|
||||
RectTileLayer.prototype.renderWebGLCore = function (renderer, plugin) {
|
||||
var points = this.pointsBuf;
|
||||
if (points.length === 0)
|
||||
return;
|
||||
var rectsCount = points.length / 9;
|
||||
var tile = plugin || renderer.plugins.simpleTilemap;
|
||||
var gl = renderer.gl;
|
||||
var shader = tile.getShader();
|
||||
var textures = this.textures;
|
||||
if (textures.length === 0)
|
||||
return;
|
||||
tile.bindTextures(renderer, shader, textures);
|
||||
var vb = this.getVb(tile);
|
||||
if (!vb) {
|
||||
vb = tile.createVb();
|
||||
this.vb = vb;
|
||||
this.vbId = vb.id;
|
||||
this.vbBuffer = null;
|
||||
this.modificationMarker = 0;
|
||||
}
|
||||
var vao = vb.vao;
|
||||
renderer.bindVao(vao);
|
||||
tile.checkIndexBuffer(rectsCount);
|
||||
var boundCountPerBuffer = pixi_tilemap.Constant.boundCountPerBuffer;
|
||||
var vertexBuf = vb.vb;
|
||||
vertexBuf.bind();
|
||||
var vertices = rectsCount * shader.vertPerQuad;
|
||||
if (vertices === 0)
|
||||
return;
|
||||
if (this.modificationMarker !== vertices) {
|
||||
this.modificationMarker = vertices;
|
||||
var vs = shader.stride * vertices;
|
||||
if (!this.vbBuffer || this.vbBuffer.byteLength < vs) {
|
||||
var bk = shader.stride;
|
||||
while (bk < vs) {
|
||||
bk *= 2;
|
||||
}
|
||||
this.vbBuffer = new ArrayBuffer(bk);
|
||||
this.vbArray = new Float32Array(this.vbBuffer);
|
||||
this.vbInts = new Uint32Array(this.vbBuffer);
|
||||
vertexBuf.upload(this.vbBuffer, 0, true);
|
||||
}
|
||||
var arr = this.vbArray, ints = this.vbInts;
|
||||
var sz = 0;
|
||||
var textureId = 0;
|
||||
var shiftU = this.offsetX;
|
||||
var shiftV = this.offsetY;
|
||||
var tint = -1;
|
||||
for (var i = 0; i < points.length; i += 9) {
|
||||
var eps = 0.5;
|
||||
if (this.compositeParent) {
|
||||
if (boundCountPerBuffer > 1) {
|
||||
textureId = (points[i + 8] >> 2);
|
||||
shiftU = this.offsetX * (points[i + 8] & 1);
|
||||
shiftV = this.offsetY * ((points[i + 8] >> 1) & 1);
|
||||
}
|
||||
else {
|
||||
textureId = points[i + 8];
|
||||
shiftU = 0;
|
||||
shiftV = 0;
|
||||
}
|
||||
}
|
||||
var x = points[i + 2], y = points[i + 3];
|
||||
var w = points[i + 4], h = points[i + 5];
|
||||
var u = points[i] + shiftU, v = points[i + 1] + shiftV;
|
||||
var animX = points[i + 6], animY = points[i + 7];
|
||||
arr[sz++] = x;
|
||||
arr[sz++] = y;
|
||||
arr[sz++] = u;
|
||||
arr[sz++] = v;
|
||||
arr[sz++] = u + eps;
|
||||
arr[sz++] = v + eps;
|
||||
arr[sz++] = u + w - eps;
|
||||
arr[sz++] = v + h - eps;
|
||||
arr[sz++] = animX;
|
||||
arr[sz++] = animY;
|
||||
arr[sz++] = textureId;
|
||||
arr[sz++] = x + w;
|
||||
arr[sz++] = y;
|
||||
arr[sz++] = u + w;
|
||||
arr[sz++] = v;
|
||||
arr[sz++] = u + eps;
|
||||
arr[sz++] = v + eps;
|
||||
arr[sz++] = u + w - eps;
|
||||
arr[sz++] = v + h - eps;
|
||||
arr[sz++] = animX;
|
||||
arr[sz++] = animY;
|
||||
arr[sz++] = textureId;
|
||||
arr[sz++] = x + w;
|
||||
arr[sz++] = y + h;
|
||||
arr[sz++] = u + w;
|
||||
arr[sz++] = v + h;
|
||||
arr[sz++] = u + eps;
|
||||
arr[sz++] = v + eps;
|
||||
arr[sz++] = u + w - eps;
|
||||
arr[sz++] = v + h - eps;
|
||||
arr[sz++] = animX;
|
||||
arr[sz++] = animY;
|
||||
arr[sz++] = textureId;
|
||||
arr[sz++] = x;
|
||||
arr[sz++] = y + h;
|
||||
arr[sz++] = u;
|
||||
arr[sz++] = v + h;
|
||||
arr[sz++] = u + eps;
|
||||
arr[sz++] = v + eps;
|
||||
arr[sz++] = u + w - eps;
|
||||
arr[sz++] = v + h - eps;
|
||||
arr[sz++] = animX;
|
||||
arr[sz++] = animY;
|
||||
arr[sz++] = textureId;
|
||||
}
|
||||
vertexBuf.upload(arr, 0, true);
|
||||
}
|
||||
gl.drawElements(gl.TRIANGLES, rectsCount * 6, gl.UNSIGNED_SHORT, 0);
|
||||
};
|
||||
RectTileLayer.prototype.isModified = function (anim) {
|
||||
if (this.modificationMarker !== this.pointsBuf.length ||
|
||||
anim && this.hasAnim) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
RectTileLayer.prototype.clearModify = function () {
|
||||
this.modificationMarker = this.pointsBuf.length;
|
||||
};
|
||||
RectTileLayer.prototype.destroy = function (options) {
|
||||
_super.prototype.destroy.call(this, options);
|
||||
this.destroyVb();
|
||||
};
|
||||
return RectTileLayer;
|
||||
}(PIXI.Container));
|
||||
pixi_tilemap.RectTileLayer = RectTileLayer;
|
||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
||||
var pixi_tilemap;
|
||||
(function (pixi_tilemap) {
|
||||
var rectShaderFrag = "\nvarying vec2 vTextureCoord;\nvarying vec4 vFrame;\nvarying float vTextureId;\nuniform vec4 shadowColor;\nuniform sampler2D uSamplers[%count%];\nuniform vec2 uSamplerSize[%count%];\n\nvoid main(void){\n vec2 textureCoord = clamp(vTextureCoord, vFrame.xy, vFrame.zw);\n float textureId = floor(vTextureId + 0.5);\n\n vec4 color;\n %forloop%\n gl_FragColor = color;\n}\n";
|
||||
var rectShaderVert = "\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aFrame;\nattribute vec2 aAnim;\nattribute float aTextureId;\n\nuniform mat3 projectionMatrix;\nuniform vec2 animationFrame;\n\nvarying vec2 vTextureCoord;\nvarying float vTextureId;\nvarying vec4 vFrame;\n\nvoid main(void){\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vec2 anim = aAnim * animationFrame;\n vTextureCoord = aTextureCoord + anim;\n vFrame = aFrame + vec4(anim, anim);\n vTextureId = aTextureId;\n}\n";
|
||||
var TilemapShader = (function (_super) {
|
||||
__extends(TilemapShader, _super);
|
||||
function TilemapShader(gl, maxTextures, shaderVert, shaderFrag) {
|
||||
var _this = _super.call(this, gl, shaderVert, shaderFrag) || this;
|
||||
_this.maxTextures = 0;
|
||||
_this.maxTextures = maxTextures;
|
||||
pixi_tilemap.shaderGenerator.fillSamplers(_this, _this.maxTextures);
|
||||
return _this;
|
||||
}
|
||||
return TilemapShader;
|
||||
}(PIXI.Shader));
|
||||
pixi_tilemap.TilemapShader = TilemapShader;
|
||||
var RectTileShader = (function (_super) {
|
||||
__extends(RectTileShader, _super);
|
||||
function RectTileShader(gl, maxTextures) {
|
||||
var _this = _super.call(this, gl, maxTextures, rectShaderVert, pixi_tilemap.shaderGenerator.generateFragmentSrc(maxTextures, rectShaderFrag)) || this;
|
||||
_this.vertSize = 11;
|
||||
_this.vertPerQuad = 4;
|
||||
_this.stride = _this.vertSize * 4;
|
||||
pixi_tilemap.shaderGenerator.fillSamplers(_this, _this.maxTextures);
|
||||
return _this;
|
||||
}
|
||||
RectTileShader.prototype.createVao = function (renderer, vb) {
|
||||
var gl = renderer.gl;
|
||||
return renderer.createVao()
|
||||
.addIndex(this.indexBuffer)
|
||||
.addAttribute(vb, this.attributes.aVertexPosition, gl.FLOAT, false, this.stride, 0)
|
||||
.addAttribute(vb, this.attributes.aTextureCoord, gl.FLOAT, false, this.stride, 2 * 4)
|
||||
.addAttribute(vb, this.attributes.aFrame, gl.FLOAT, false, this.stride, 4 * 4)
|
||||
.addAttribute(vb, this.attributes.aAnim, gl.FLOAT, false, this.stride, 8 * 4)
|
||||
.addAttribute(vb, this.attributes.aTextureId, gl.FLOAT, false, this.stride, 10 * 4);
|
||||
};
|
||||
return RectTileShader;
|
||||
}(TilemapShader));
|
||||
pixi_tilemap.RectTileShader = RectTileShader;
|
||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
||||
var pixi_tilemap;
|
||||
(function (pixi_tilemap) {
|
||||
var glCore = PIXI.glCore;
|
||||
function _hackSubImage(tex, sprite, clearBuffer, clearWidth, clearHeight) {
|
||||
var gl = tex.gl;
|
||||
var baseTex = sprite.texture.baseTexture;
|
||||
if (clearBuffer && clearWidth > 0 && clearHeight > 0) {
|
||||
gl.texSubImage2D(gl.TEXTURE_2D, 0, sprite.position.x, sprite.position.y, clearWidth, clearHeight, tex.format, tex.type, clearBuffer);
|
||||
}
|
||||
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1);
|
||||
gl.texSubImage2D(gl.TEXTURE_2D, 0, sprite.position.x, sprite.position.y, tex.format, tex.type, baseTex.source);
|
||||
}
|
||||
var TileRenderer = (function (_super) {
|
||||
__extends(TileRenderer, _super);
|
||||
function TileRenderer(renderer) {
|
||||
var _this = _super.call(this, renderer) || this;
|
||||
_this.sn = -1;
|
||||
_this.indices = new Uint16Array(0);
|
||||
_this.lastTimeCheck = 0;
|
||||
_this.tileAnim = [0, 0];
|
||||
_this.texLoc = [];
|
||||
return _this;
|
||||
}
|
||||
TileRenderer.prototype.onContextChange = function () {
|
||||
var gl = this.renderer.gl;
|
||||
var maxTextures = pixi_tilemap.Constant.maxTextures;
|
||||
this.sn = TileRenderer.snAutoincrement++;
|
||||
this.rectShader = new pixi_tilemap.RectTileShader(gl, maxTextures);
|
||||
this.checkIndexBuffer(2000);
|
||||
this.rectShader.indexBuffer = this.indexBuffer;
|
||||
this.glTextures = [];
|
||||
this.boundSprites = [];
|
||||
this.initBounds();
|
||||
};
|
||||
TileRenderer.prototype.initBounds = function () {
|
||||
if (pixi_tilemap.Constant.boundCountPerBuffer <= 1) {
|
||||
return;
|
||||
}
|
||||
var gl = this.renderer.gl;
|
||||
var maxTextures = pixi_tilemap.Constant.maxTextures;
|
||||
for (var i = 0; i < maxTextures; i++) {
|
||||
var rt = PIXI.RenderTexture.create(pixi_tilemap.Constant.bufferSize, pixi_tilemap.Constant.bufferSize);
|
||||
rt.baseTexture.premultipliedAlpha = true;
|
||||
rt.baseTexture.scaleMode = TileRenderer.SCALE_MODE;
|
||||
rt.baseTexture.wrapMode = PIXI.WRAP_MODES.CLAMP;
|
||||
this.renderer.textureManager.updateTexture(rt);
|
||||
this.glTextures.push(rt);
|
||||
var bounds = this.boundSprites;
|
||||
for (var j = 0; j < pixi_tilemap.Constant.boundCountPerBuffer; j++) {
|
||||
var spr = new PIXI.Sprite();
|
||||
spr.position.x = pixi_tilemap.Constant.boundSize * (j & 1);
|
||||
spr.position.y = pixi_tilemap.Constant.boundSize * (j >> 1);
|
||||
bounds.push(spr);
|
||||
}
|
||||
}
|
||||
};
|
||||
TileRenderer.prototype.bindTexturesWithoutRT = function (renderer, shader, textures) {
|
||||
var len = textures.length;
|
||||
var maxTextures = pixi_tilemap.Constant.maxTextures;
|
||||
var samplerSize = shader.uniforms.uSamplerSize;
|
||||
this.texLoc.length = 0;
|
||||
for (var i = 0; i < textures.length; i++) {
|
||||
var texture = textures[i];
|
||||
if (!texture || !texture.valid) {
|
||||
return;
|
||||
}
|
||||
this.texLoc.push(renderer.bindTexture(textures[i], i, true));
|
||||
samplerSize[i * 2] = 1.0 / textures[i].baseTexture.width;
|
||||
samplerSize[i * 2 + 1] = 1.0 / textures[i].baseTexture.height;
|
||||
}
|
||||
shader.uniforms.uSamplerSize = samplerSize;
|
||||
shader.uniforms.uSamplers = this.texLoc;
|
||||
};
|
||||
TileRenderer.prototype.bindTextures = function (renderer, shader, textures) {
|
||||
var len = textures.length;
|
||||
var maxTextures = pixi_tilemap.Constant.maxTextures;
|
||||
if (len > pixi_tilemap.Constant.boundCountPerBuffer * maxTextures) {
|
||||
return;
|
||||
}
|
||||
if (pixi_tilemap.Constant.boundCountPerBuffer <= 1) {
|
||||
this.bindTexturesWithoutRT(renderer, shader, textures);
|
||||
return;
|
||||
}
|
||||
var doClear = TileRenderer.DO_CLEAR;
|
||||
if (doClear && !this._clearBuffer) {
|
||||
this._clearBuffer = new Uint8Array(pixi_tilemap.Constant.boundSize * pixi_tilemap.Constant.boundSize * 4);
|
||||
}
|
||||
var glts = this.glTextures;
|
||||
var bounds = this.boundSprites;
|
||||
var oldActiveRenderTarget = this.renderer._activeRenderTarget;
|
||||
var i;
|
||||
for (i = 0; i < len; i++) {
|
||||
var texture = textures[i];
|
||||
if (!texture || !texture.valid)
|
||||
continue;
|
||||
var bs = bounds[i];
|
||||
if (!bs.texture ||
|
||||
bs.texture.baseTexture !== texture.baseTexture) {
|
||||
bs.texture = texture;
|
||||
var glt = glts[i >> 2];
|
||||
renderer.bindTexture(glt, 0, true);
|
||||
if (doClear) {
|
||||
_hackSubImage(glt.baseTexture._glTextures[renderer.CONTEXT_UID], bs, this._clearBuffer, pixi_tilemap.Constant.boundSize, pixi_tilemap.Constant.boundSize);
|
||||
}
|
||||
else {
|
||||
_hackSubImage(glt.baseTexture._glTextures[renderer.CONTEXT_UID], bs);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!oldActiveRenderTarget.root) {
|
||||
this.renderer._activeRenderTarget.frameBuffer.bind();
|
||||
}
|
||||
this.texLoc.length = 0;
|
||||
var gltsUsed = (i + 3) >> 2;
|
||||
for (i = 0; i < gltsUsed; i++) {
|
||||
this.texLoc.push(renderer.bindTexture(glts[i], i, true));
|
||||
}
|
||||
shader.uniforms.uSamplers = this.texLoc;
|
||||
};
|
||||
TileRenderer.prototype.start = function () {
|
||||
this.renderer.state.setBlendMode(PIXI.BLEND_MODES.NORMAL);
|
||||
};
|
||||
TileRenderer.prototype.createVb = function () {
|
||||
var id = ++TileRenderer.vbAutoincrement;
|
||||
var shader = this.getShader();
|
||||
var gl = this.renderer.gl;
|
||||
this.renderer.bindVao(null);
|
||||
var vb = PIXI.glCore.GLBuffer.createVertexBuffer(gl, null, gl.STREAM_DRAW);
|
||||
var stuff = {
|
||||
id: id,
|
||||
vb: vb,
|
||||
vao: shader.createVao(this.renderer, vb),
|
||||
lastTimeAccess: Date.now(),
|
||||
shader: shader,
|
||||
rendererSN: this.sn
|
||||
};
|
||||
return stuff;
|
||||
};
|
||||
TileRenderer.prototype.checkIndexBuffer = function (size) {
|
||||
var totalIndices = size * 6;
|
||||
var indices = this.indices;
|
||||
if (totalIndices <= indices.length) {
|
||||
return;
|
||||
}
|
||||
var len = indices.length || totalIndices;
|
||||
while (len < totalIndices) {
|
||||
len <<= 1;
|
||||
}
|
||||
indices = new Uint16Array(len);
|
||||
this.indices = indices;
|
||||
for (var i = 0, j = 0; i + 5 < indices.length; i += 6, j += 4) {
|
||||
indices[i + 0] = j + 0;
|
||||
indices[i + 1] = j + 1;
|
||||
indices[i + 2] = j + 2;
|
||||
indices[i + 3] = j + 0;
|
||||
indices[i + 4] = j + 2;
|
||||
indices[i + 5] = j + 3;
|
||||
}
|
||||
if (this.indexBuffer) {
|
||||
this.indexBuffer.upload(indices);
|
||||
}
|
||||
else {
|
||||
var gl = this.renderer.gl;
|
||||
this.indexBuffer = glCore.GLBuffer.createIndexBuffer(gl, this.indices, gl.STATIC_DRAW);
|
||||
}
|
||||
};
|
||||
TileRenderer.prototype.getShader = function () {
|
||||
return this.rectShader;
|
||||
};
|
||||
TileRenderer.prototype.destroy = function () {
|
||||
_super.prototype.destroy.call(this);
|
||||
this.rectShader.destroy();
|
||||
this.rectShader = null;
|
||||
};
|
||||
TileRenderer.vbAutoincrement = 0;
|
||||
TileRenderer.snAutoincrement = 0;
|
||||
TileRenderer.SCALE_MODE = PIXI.SCALE_MODES.LINEAR;
|
||||
TileRenderer.DO_CLEAR = false;
|
||||
return TileRenderer;
|
||||
}(PIXI.ObjectRenderer));
|
||||
pixi_tilemap.TileRenderer = TileRenderer;
|
||||
PIXI.WebGLRenderer.registerPlugin('tilemap', TileRenderer);
|
||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
||||
var pixi_tilemap;
|
||||
(function (pixi_tilemap) {
|
||||
var SimpleTileRenderer = (function (_super) {
|
||||
__extends(SimpleTileRenderer, _super);
|
||||
function SimpleTileRenderer(renderer) {
|
||||
var _this = _super.call(this, renderer) || this;
|
||||
_this.samplerSize = [];
|
||||
return _this;
|
||||
}
|
||||
SimpleTileRenderer.prototype.onContextChange = function () {
|
||||
var gl = this.renderer.gl;
|
||||
this.sn = pixi_tilemap.TileRenderer.snAutoincrement++;
|
||||
this.rectShader = new pixi_tilemap.RectTileShader(gl, 1);
|
||||
this.checkIndexBuffer(2000);
|
||||
this.rectShader.indexBuffer = this.indexBuffer;
|
||||
};
|
||||
SimpleTileRenderer.prototype.bindTextures = function (renderer, shader, textures) {
|
||||
var len = textures.length;
|
||||
var i;
|
||||
for (i = 0; i < len; i++) {
|
||||
var texture = textures[i];
|
||||
if (!texture || !texture.valid) {
|
||||
continue;
|
||||
}
|
||||
this.texLoc[0] = renderer.bindTexture(texture, 0, true);
|
||||
shader.uniforms.uSamplers = this.texLoc;
|
||||
this.samplerSize[0] = 1.0 / texture.baseTexture.width;
|
||||
this.samplerSize[1] = 1.0 / texture.baseTexture.height;
|
||||
shader.uniforms.uSamplerSize = this.samplerSize;
|
||||
break;
|
||||
}
|
||||
};
|
||||
SimpleTileRenderer.prototype.destroy = function () {
|
||||
_super.prototype.destroy.call(this);
|
||||
};
|
||||
return SimpleTileRenderer;
|
||||
}(pixi_tilemap.TileRenderer));
|
||||
pixi_tilemap.SimpleTileRenderer = SimpleTileRenderer;
|
||||
PIXI.WebGLRenderer.registerPlugin('simpleTilemap', SimpleTileRenderer);
|
||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
||||
var pixi_tilemap;
|
||||
(function (pixi_tilemap) {
|
||||
var ZLayer = (function (_super) {
|
||||
__extends(ZLayer, _super);
|
||||
function ZLayer(tilemap, zIndex) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this._lastAnimationFrame = -1;
|
||||
_this.tilemap = tilemap;
|
||||
_this.z = zIndex;
|
||||
return _this;
|
||||
}
|
||||
ZLayer.prototype.clear = function () {
|
||||
var layers = this.children;
|
||||
for (var i = 0; i < layers.length; i++)
|
||||
layers[i].clear();
|
||||
this._previousLayers = 0;
|
||||
};
|
||||
ZLayer.prototype.cacheIfDirty = function () {
|
||||
var tilemap = this.tilemap;
|
||||
var layers = this.children;
|
||||
var modified = this._previousLayers !== layers.length;
|
||||
this._previousLayers = layers.length;
|
||||
var buf = this.canvasBuffer;
|
||||
var tempRender = this._tempRender;
|
||||
if (!buf) {
|
||||
buf = this.canvasBuffer = document.createElement('canvas');
|
||||
tempRender = this._tempRender = new PIXI.CanvasRenderer(100, 100, { view: buf });
|
||||
tempRender.context = tempRender.rootContext;
|
||||
tempRender.plugins.tilemap.dontUseTransform = true;
|
||||
}
|
||||
if (buf.width !== tilemap._layerWidth ||
|
||||
buf.height !== tilemap._layerHeight) {
|
||||
buf.width = tilemap._layerWidth;
|
||||
buf.height = tilemap._layerHeight;
|
||||
modified = true;
|
||||
}
|
||||
var i;
|
||||
if (!modified) {
|
||||
for (i = 0; i < layers.length; i++) {
|
||||
if (layers[i].isModified(this._lastAnimationFrame !== tilemap.animationFrame)) {
|
||||
modified = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
this._lastAnimationFrame = tilemap.animationFrame;
|
||||
if (modified) {
|
||||
if (tilemap._hackRenderer) {
|
||||
tilemap._hackRenderer(tempRender);
|
||||
}
|
||||
tempRender.context.clearRect(0, 0, buf.width, buf.height);
|
||||
for (i = 0; i < layers.length; i++) {
|
||||
layers[i].clearModify();
|
||||
layers[i].renderCanvas(tempRender);
|
||||
}
|
||||
}
|
||||
this.layerTransform = this.worldTransform;
|
||||
for (i = 0; i < layers.length; i++) {
|
||||
this.layerTransform = layers[i].worldTransform;
|
||||
break;
|
||||
}
|
||||
};
|
||||
ZLayer.prototype.renderCanvas = function (renderer) {
|
||||
this.cacheIfDirty();
|
||||
var wt = this.layerTransform;
|
||||
renderer.context.setTransform(wt.a, wt.b, wt.c, wt.d, wt.tx * renderer.resolution, wt.ty * renderer.resolution);
|
||||
var tilemap = this.tilemap;
|
||||
renderer.context.drawImage(this.canvasBuffer, 0, 0);
|
||||
};
|
||||
return ZLayer;
|
||||
}(PIXI.Container));
|
||||
pixi_tilemap.ZLayer = ZLayer;
|
||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
||||
var pixi_tilemap;
|
||||
(function (pixi_tilemap) {
|
||||
PIXI.tilemap = pixi_tilemap;
|
||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
||||
var pixi_tilemap;
|
||||
(function (pixi_tilemap) {
|
||||
var shaderGenerator;
|
||||
(function (shaderGenerator) {
|
||||
function fillSamplers(shader, maxTextures) {
|
||||
var sampleValues = [];
|
||||
for (var i = 0; i < maxTextures; i++) {
|
||||
sampleValues[i] = i;
|
||||
}
|
||||
shader.bind();
|
||||
shader.uniforms.uSamplers = sampleValues;
|
||||
var samplerSize = [];
|
||||
for (i = 0; i < maxTextures; i++) {
|
||||
samplerSize.push(1.0 / pixi_tilemap.Constant.bufferSize);
|
||||
samplerSize.push(1.0 / pixi_tilemap.Constant.bufferSize);
|
||||
}
|
||||
shader.uniforms.uSamplerSize = samplerSize;
|
||||
}
|
||||
shaderGenerator.fillSamplers = fillSamplers;
|
||||
function generateFragmentSrc(maxTextures, fragmentSrc) {
|
||||
return fragmentSrc.replace(/%count%/gi, maxTextures + "")
|
||||
.replace(/%forloop%/gi, this.generateSampleSrc(maxTextures));
|
||||
}
|
||||
shaderGenerator.generateFragmentSrc = generateFragmentSrc;
|
||||
function generateSampleSrc(maxTextures) {
|
||||
var src = '';
|
||||
src += '\n';
|
||||
src += '\n';
|
||||
src += 'if(vTextureId <= -1.0) {';
|
||||
src += '\n\tcolor = shadowColor;';
|
||||
src += '\n}';
|
||||
for (var i = 0; i < maxTextures; i++) {
|
||||
src += '\nelse ';
|
||||
if (i < maxTextures - 1) {
|
||||
src += 'if(textureId == ' + i + '.0)';
|
||||
}
|
||||
src += '\n{';
|
||||
src += '\n\tcolor = texture2D(uSamplers[' + i + '], textureCoord * uSamplerSize[' + i + ']);';
|
||||
src += '\n}';
|
||||
}
|
||||
src += '\n';
|
||||
src += '\n';
|
||||
return src;
|
||||
}
|
||||
shaderGenerator.generateSampleSrc = generateSampleSrc;
|
||||
})(shaderGenerator = pixi_tilemap.shaderGenerator || (pixi_tilemap.shaderGenerator = {}));
|
||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
||||
//# sourceMappingURL=pixi-tilemap.js.map
|
|
@ -1070,7 +1070,7 @@ Gamefall.OmoriFixes = Gamefall.OmoriFixes || {};
|
|||
this._errorPrinter.style.textAlign = 'left';
|
||||
//this._errorPrinter.style.textShadow = '1px 1px 3px #000';
|
||||
this._errorPrinter.style.fontFamily = "GameFont"
|
||||
this._errorPrinter.style.fontSize = '28px';
|
||||
this._errorPrinter.style.fontSize = '14px';
|
||||
this._errorPrinter.style.zIndex = 99;
|
||||
this._errorPrinter.style.padding = "4px"
|
||||
this._centerElement(this._errorPrinter);
|
||||
|
@ -1765,7 +1765,7 @@ Gamefall.OmoriFixes = Gamefall.OmoriFixes || {};
|
|||
var fs = require('fs');
|
||||
var yaml = require('./js/libs/js-yaml-master')
|
||||
var base = path.dirname(process.mainModule.filename);
|
||||
var folder = '/Languages/' + language + '/';
|
||||
var folder = '/Languages/' + language;
|
||||
var filePath = base + folder;
|
||||
var dirList = fs.readdirSync(filePath);
|
||||
|
||||
|
@ -1817,7 +1817,7 @@ Gamefall.OmoriFixes = Gamefall.OmoriFixes || {};
|
|||
var fs = require('fs');
|
||||
var yaml = require('./js/libs/js-yaml-master')
|
||||
var base = path.dirname(process.mainModule.filename);
|
||||
var folder = '/Languages/' + language + '/';
|
||||
var folder = '/Languages/' + language;
|
||||
var filePath = base + folder;
|
||||
var data = yaml.safeLoad(fs.readFileSync(filePath + '/' + filename + '.yaml', 'utf8'));
|
||||
this._data[language].text[filename] = data;
|
||||
|
@ -3592,7 +3592,7 @@ Gamefall.Encryption = Gamefall.Encryption || {};
|
|||
const fs = require('fs');
|
||||
var base = path.dirname(process.mainModule.filename);
|
||||
|
||||
let folder = "/Languages/" + language + "/";
|
||||
let folder = "/Languages/" + language;
|
||||
let filePath = base + folder;
|
||||
let dirList = fs.readdirSync(filePath);
|
||||
this._data[language] = {text: {}};
|
||||
|
|
|
@ -177,7 +177,7 @@ LanguageManager.loadLanguageFiles = function(language) {
|
|||
var fs = require('fs');
|
||||
var base = path.dirname(process.mainModule.filename);
|
||||
// Get Folder
|
||||
var folder = '/Languages/' + language + '/';
|
||||
var folder = '/Languages/' + language;
|
||||
// Get FilePath
|
||||
var filePath = base + folder;
|
||||
// Get Directory List
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue