diff --git a/assets/preload/data/botplayText.txt b/assets/preload/data/botplayText.txt index e72dd5f51ad..3128edee134 100644 --- a/assets/preload/data/botplayText.txt +++ b/assets/preload/data/botplayText.txt @@ -1,3 +1,4 @@ +Hey don't blame him, beating it was probably outside his skill level that's some nice botplay you got there! can i have it? skill issue congrats, you turned on botplay diff --git a/assets/preload/images/credits/stef.png b/assets/preload/images/credits/stef.png new file mode 100644 index 00000000000..230f0847704 Binary files /dev/null and b/assets/preload/images/credits/stef.png differ diff --git a/source/ClientPrefs.hx b/source/ClientPrefs.hx index 0e04960a85b..17ac7b0bcde 100644 --- a/source/ClientPrefs.hx +++ b/source/ClientPrefs.hx @@ -61,6 +61,7 @@ class ClientPrefs { //default settings if it can't find a save file containing y public static var opponentLightStrum:Bool = true; public static var complexAccuracy:Bool = false; public static var resyncType:String = 'Psych'; + public static var scoreTxtSize:Int = 0; public static var botLightStrum:Bool = true; public static var violence:Bool = true; public static var camZooms:Bool = true; @@ -224,6 +225,7 @@ class ClientPrefs { //default settings if it can't find a save file containing y FlxG.save.data.oppNoteSplashes = oppNoteSplashes; FlxG.save.data.songLoading = songLoading; FlxG.save.data.debugInfo = debugInfo; + FlxG.save.data.scoreTxtSize = scoreTxtSize; FlxG.save.data.lowQuality = lowQuality; FlxG.save.data.shaders = shaders; FlxG.save.data.ezSpam = ezSpam; @@ -389,6 +391,9 @@ class ClientPrefs { //default settings if it can't find a save file containing y if(FlxG.save.data.debugInfo != null) { debugInfo = FlxG.save.data.debugInfo; } + if(FlxG.save.data.scoreTxtSize != null) { + scoreTxtSize = FlxG.save.data.scoreTxtSize; + } if(FlxG.save.data.ezSpam != null) { ezSpam = FlxG.save.data.ezSpam; } diff --git a/source/CreditsState.hx b/source/CreditsState.hx index 271f1f4966b..6c675fc44a2 100644 --- a/source/CreditsState.hx +++ b/source/CreditsState.hx @@ -84,8 +84,9 @@ class CreditsState extends MusicBeatState #end var pisspoop:Array> = [ //Name - Icon name - Description - Link - BG Color - ['No Botplay Lag Person'], - ['Jordan Santiago', 'jor', 'Coded everything into Psych Engine: No Botplay Lag Edition', 'https://twitter.com/JordansTweetsYT', 'FF9300'], + ['JS Engine People'], + ['Jordan Santiago', 'jor', 'Coded everything into JS Engine', 'https://twitter.com/JordansTweetsYT', 'FF9300'], + ['Stefan2008', 'stef', "Granted permission to use the Results Screen code, and helped\nwith the Android version's development", 'https://www.youtube.com/channel/UC9Nwf21GbaEm_h0Ka9gxZjQ', '800080'], [''], ['Psych Engine Team'], ['Shadow Mario', 'shadowmario', 'Main Programmer of Psych Engine', 'https://twitter.com/Shadow_Mario_', '444444'], diff --git a/source/PlayState.hx b/source/PlayState.hx index 9aa3c5cbe01..6cb1a4d21eb 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -1756,8 +1756,7 @@ class PlayState extends MusicBeatState // startCountdown(); trace ('Loading chart...'); - if (!ClientPrefs.fasterChartLoad) generateSong(SONG.song); - if (ClientPrefs.fasterChartLoad) generateSongOptim(SONG.song); + generateSong(SONG.song); if (curSong.toLowerCase() == "guns") // added this to bring back the old 2021 fnf vibes, i wish the fnf fandom revives one day :( { @@ -2187,6 +2186,7 @@ class PlayState extends MusicBeatState dadGroup.destroy(); boyfriendGroup.destroy(); } + if (ClientPrefs.scoreTxtSize > 0 && scoreTxt != null) scoreTxt.size = ClientPrefs.scoreTxtSize; if (!ClientPrefs.hideScore) updateScore(); judgementCounter = new FlxText(0, FlxG.height / 2 - (ClientPrefs.hudType != 'Box Funkin' || ClientPrefs.hudType != "Mic'd Up" ? 80 : 350), 0, "", 20); @@ -2197,19 +2197,22 @@ class PlayState extends MusicBeatState judgementCounter.visible = ClientPrefs.ratingCounter && !ClientPrefs.showcaseMode; if (!ClientPrefs.noMarvJudge) { - judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' (' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nMarvelous!!!: ' + marvs + '\nSicks!!: ' + sicks + '\nGoods!: ' + goods + '\nBads: ' + bads + '\nShits: ' + shits + '\nMisses: ' + songMisses + (ClientPrefs.comboScoreEffect ? 'Score Multiplier: ' + comboMultiplier + 'x' : ''); - if (ClientPrefs.hudType == 'Doki Doki+') judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' ( ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nVery Doki: ' + marvs + '\nDoki: ' + sicks + '\nGood: ' + goods + '\nOK: ' + bads + '\nNO: ' + shits + '\nMiss: ' + songMisses + (ClientPrefs.comboScoreEffect ? 'Score Multiplier: ' + comboMultiplier + 'x' : ''); - if (ClientPrefs.hudType == 'VS Impostor') judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' ( ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nSO SUSSY: ' + marvs + '\nSussy: ' + sicks + '\nSus: ' + goods + '\nSad: ' + bads + '\nAss: ' + shits + '\nMiss: ' + songMisses + (ClientPrefs.comboScoreEffect ? 'Score Multiplier: ' + comboMultiplier + 'x' : ''); + judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' (' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nMarvelous!!!: ' + marvs + '\nSicks!!: ' + sicks + '\nGoods!: ' + goods + '\nBads: ' + bads + '\nShits: ' + shits + '\nMisses: ' + songMisses + (ClientPrefs.comboScoreEffect ? '\nScore Multiplier: ' + comboMultiplier + 'x' : ''); + + if (ClientPrefs.hudType == 'Doki Doki+') judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' (' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nVery Doki: ' + marvs + '\nDoki: ' + sicks + '\nGood: ' + goods + '\nOK: ' + bads + '\nNO: ' + shits + '\nMiss: ' + songMisses + (ClientPrefs.comboScoreEffect ? '\nScore Multiplier: ' + comboMultiplier + 'x' : ''); + + if (ClientPrefs.hudType == 'VS Impostor') judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' (' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nSO SUSSY: ' + marvs + '\nSussy: ' + sicks + '\nSus: ' + goods + '\nSad: ' + bads + '\nAss: ' + shits + '\nMiss: ' + songMisses + (ClientPrefs.comboScoreEffect ? '\nScore Multiplier: ' + comboMultiplier + 'x' : ''); } if (ClientPrefs.noMarvJudge) { - judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' ( ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nSicks!!: ' + sicks + '\nGoods!: ' + goods + '\nBads: ' + bads + '\nShits: ' + shits + '\nMisses: ' + songMisses + (ClientPrefs.comboScoreEffect ? 'Score Multiplier: ' + comboMultiplier + 'x' : ''); - if (ClientPrefs.hudType == 'Doki Doki+') judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' ( ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nDoki: ' + sicks + '\nGood: ' + goods + '\nOK: ' + bads + '\nNO: ' + shits + '\nMiss: ' + songMisses + (ClientPrefs.comboScoreEffect ? 'Score Multiplier: ' + comboMultiplier + 'x' : ''); - if (ClientPrefs.hudType == 'VS Impostor') judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' ( ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nSussy: ' + sicks + '\nSus: ' + goods + '\nSad: ' + bads + '\nAss: ' + shits + '\nMiss: ' + songMisses + (ClientPrefs.comboScoreEffect ? 'Score Multiplier: ' + comboMultiplier + 'x' : ''); + judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' (' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nSicks!!: ' + sicks + '\nGoods!: ' + goods + '\nBads: ' + bads + '\nShits: ' + shits + '\nMisses: ' + songMisses + (ClientPrefs.comboScoreEffect ? '\nScore Multiplier: ' + comboMultiplier + 'x' : ''); + + if (ClientPrefs.hudType == 'Doki Doki+') judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' (' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nDoki: ' + sicks + '\nGood: ' + goods + '\nOK: ' + bads + '\nNO: ' + shits + '\nMiss: ' + songMisses + (ClientPrefs.comboScoreEffect ? '\nScore Multiplier: ' + comboMultiplier + 'x' : ''); + + if (ClientPrefs.hudType == 'VS Impostor') judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' (' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nSussy: ' + sicks + '\nSus: ' + goods + '\nSad: ' + bads + '\nAss: ' + shits + '\nMiss: ' + songMisses + (ClientPrefs.comboScoreEffect ? '\nScore Multiplier: ' + comboMultiplier + 'x' : ''); } - judgementCounter.text += '\nNPS (Max): ' + FlxStringUtil.formatMoney(nps, false) + ' (' + FlxStringUtil.formatMoney(maxNPS, false) + ')'; - if (ClientPrefs.opponentRateCount) judgementCounter.text += '\n\nOpponent Hits: ' + FlxStringUtil.formatMoney(enemyHits, false) + ' / ' + FlxStringUtil.formatMoney(opponentNoteTotal, false) + ' (' + FlxMath.roundDecimal((enemyHits / opponentNoteTotal) * 100, 2) + '%)\nOpponent NPS (Max): ' + FlxStringUtil.formatMoney(oppNPS, false) + ' (' + FlxStringUtil.formatMoney(maxOppNPS, false) + ')'; - add(judgementCounter); + judgementCounter.text += (ClientPrefs.showNPS ? '\nNPS (Max): ' + FlxStringUtil.formatMoney(nps, false) + ' (' + FlxStringUtil.formatMoney(maxNPS, false) + ')' : ''); + if (ClientPrefs.opponentRateCount) judgementCounter.text += '\n\nOpponent Hits: ' + FlxStringUtil.formatMoney(enemyHits, false) + ' / ' + FlxStringUtil.formatMoney(opponentNoteTotal, false) + ' (' + FlxMath.roundDecimal((enemyHits / opponentNoteTotal) * 100, 2) + '%)' + (ClientPrefs.showNPS ? '\nOpponent NPS (Max): ' + FlxStringUtil.formatMoney(oppNPS, false) + ' (' + FlxStringUtil.formatMoney(maxOppNPS, false) + ')' : ''); pauseWarnText = new FlxText(400, FlxG.height / 2 - 20, 0, "Pausing is disabled! Turn it back on in Settings -> Gameplay -> 'Force Disable Pausing'", 16); pauseWarnText.cameras = [camHUD]; @@ -3594,7 +3597,7 @@ class PlayState extends MusicBeatState if (skipCountdown || startOnTime > 0) skipArrowStartTween = true; #if android - androidControls.visible = true; + androidControls.visible = !cpuControlled; //no need to have them visible if Botplay is on #end generateStaticArrows(0); generateStaticArrows(1); @@ -4381,168 +4384,6 @@ class PlayState extends MusicBeatState var elapsedTime = endTime - startTime; trace("Loaded chart in " + elapsedTime + " seconds"); } - private function generateSongOptim(dataPath:String):Void { - var startTime = Sys.time(); - songSpeedType = ClientPrefs.getGameplaySetting('scrolltype', 'multiplicative'); - - if (songSpeedType == "multiplicative") { - songSpeed = SONG.speed * ClientPrefs.getGameplaySetting('scrollspeed', 1); - } else if (songSpeedType == "constant") { - songSpeed = ClientPrefs.getGameplaySetting('scrollspeed', 1); - } - - Conductor.changeBPM(SONG.bpm); - curSong = SONG.song; - if (ClientPrefs.songLoading) - { - vocals = (SONG.needsVoices ? new FlxSound().loadEmbedded(Paths.voices(PlayState.SONG.song)) : new FlxSound()); - vocals.pitch = playbackRate; - FlxG.sound.list.add(vocals); - FlxG.sound.list.add(new FlxSound().loadEmbedded(Paths.inst(PlayState.SONG.song))); - } - - notes = new FlxTypedGroup(); - add(notes); - notes.visible = ClientPrefs.showNotes; - - var noteData:Array = SONG.notes; - - loadEventNotes(); - - for (section in noteData) { - for (songNotes in section.sectionNotes) { - var daStrumTime:Float = songNotes[0]; - var daNoteData:Int = Std.int(songNotes[1] % 4); - var sustainLength = songNotes[2]; - - var gottaHitNote:Bool = determineGottaHitNote(songNotes[1], section); - - var oldNote:Note = unspawnNotes.length > 0 ? unspawnNotes[unspawnNotes.length - 1] : null; - var swagNote:Note = createSwagNote(daStrumTime, daNoteData, sustainLength, gottaHitNote, section); - processSustainNotes(swagNote, section); - if (ClientPrefs.ratingCounter && !gottaHitNote) opponentNoteTotal += 1; - if (ClientPrefs.ratingCounter && gottaHitNote) totalNotes += 1; - } - sectionsLoaded += 1; - trace('loaded section ' + sectionsLoaded); - } - - loadOtherEventNotes(); - - unspawnNotes.sort(sortByTime); - unspawnNotesCopy = unspawnNotes.copy(); - generatedMusic = true; - sectionsLoaded = 0; - notesLoadedRN = 0; - maxScore = totalNotes * (ClientPrefs.noMarvJudge ? 350 : 500); - generatedMusic = true; - var endTime = Sys.time(); - - var elapsedTime = endTime - startTime; - trace('song loaded! notes loaded: ' + FlxStringUtil.formatMoney(unspawnNotes.length, false) + ', ' + FlxStringUtil.formatMoney(opponentNoteTotal, false) + ' being sung by the opponent and ' + FlxStringUtil.formatMoney(totalNotes, false) + ' being sung by the player! (Loaded in ' + elapsedTime + ' seconds)'); - } - - private function loadEventNotes():Void { - var songName:String = Paths.formatToSongPath(SONG.song); - var file:String = Paths.json(songName + '/events'); - #if MODS_ALLOWED - if (FileSystem.exists(Paths.modsJson(songName + '/events')) || FileSystem.exists(SUtil.getPath() + file)) { - #else - if (OpenFlAssets.exists(file)) { - #end - var eventsData:Array = Song.loadFromJson('events', songName).events; - for (event in eventsData) { - for (i in 0...event[1].length) { - var newEventNote:Array = [event[0], event[1][i][0], event[1][i][1], event[1][i][2]]; - var subEvent:EventNote = { - strumTime: newEventNote[0] + ClientPrefs.noteOffset, - event: newEventNote[1], - value1: newEventNote[2], - value2: newEventNote[3] - }; - eventNotes.push(subEvent); - eventPushed(subEvent); - } - } - } - } - - private function determineGottaHitNote(noteValue:Int, section:SwagSection):Bool { - var gottaHitNote:Bool = section.mustHitSection; - - if (noteValue > 3 && !opponentChart && !bothsides) { - gottaHitNote = !section.mustHitSection; - } - if (noteValue <= 3 && opponentChart && !bothsides) { - gottaHitNote = !section.mustHitSection; - } else if (bothsides) { - gottaHitNote = true; - } - - if (!gottaHitNote && ClientPrefs.mobileMidScroll) { - section.sectionNotes[3] = 'Behind Note'; - } - return gottaHitNote; - } - - private function createSwagNote(strumTime:Float, noteData:Int, sustainLength:Float, gottaHitNote:Bool, section:SwagSection):Note { - var swagNote:Note = new Note(strumTime, noteData, unspawnNotes.length > 0 ? unspawnNotes[unspawnNotes.length - 1] : null); - if (ClientPrefs.doubleGhost) { - swagNote.row = Conductor.secsToRow(strumTime); - if (noteRows[gottaHitNote ? 0 : 1][swagNote.row] == null) { - noteRows[gottaHitNote ? 0 : 1][swagNote.row] = []; - } - noteRows[gottaHitNote ? 0 : 1][swagNote.row].push(swagNote); - } - swagNote.mustPress = gottaHitNote; - swagNote.sustainLength = sustainLength; - swagNote.gfNote = (section.gfSection && (noteData < 4)); - swagNote.noteType = section.sectionNotes[3]; - if (!Std.isOfType(section.sectionNotes[3], String)) { - swagNote.noteType = editors.ChartingState.noteTypeList[section.sectionNotes[3]]; - } - swagNote.scrollFactor.set(); - unspawnNotes.push(swagNote); - return swagNote; - } - - private function processSustainNotes(swagNote:Note, section:SwagSection):Void { - var floorSus:Int = Math.floor(swagNote.sustainLength / Conductor.stepCrochet); - if (floorSus > 0) { - for (susNote in 0...floorSus + 1) { - var oldNote = unspawnNotes[unspawnNotes.length - 1]; - var sustainNote:Note = new Note( - swagNote.strumTime + (Conductor.stepCrochet * susNote) + (Conductor.stepCrochet / FlxMath.roundDecimal(songSpeed, 2)), - swagNote.noteData, - oldNote, - true - ); - sustainNote.mustPress = swagNote.mustPress; - sustainNote.gfNote = (section.gfSection && (swagNote.noteData < 4)); - sustainNote.scrollFactor.set(); - swagNote.tail.push(sustainNote); - sustainNote.parent = swagNote; - unspawnNotes.push(sustainNote); - } - } - - } - - private function loadOtherEventNotes():Void { - for (event in SONG.events) { - for (i in 0...event[1].length) { - var newEventNote:Array = [event[0], event[1][i][0], event[1][i][1], event[1][i][2]]; - var subEvent:EventNote = { - strumTime: newEventNote[0] + ClientPrefs.noteOffset, - event: newEventNote[1], - value1: newEventNote[2], - value2: newEventNote[3] - }; - eventNotes.push(subEvent); - eventPushed(subEvent); - } - } - } function eventPushed(event:EventNote) { switch(event.event) { case 'Change Character': @@ -5156,6 +4997,11 @@ if (ClientPrefs.showNPS) { + '\nTotal Note Hits: ' + FlxStringUtil.formatMoney(Math.abs(totalNotesPlayed + enemyHits), false) + '\nVideo Speedup: ' + Math.abs(playbackRate / playbackRate / playbackRate) + 'x'; } + if (notesHitArray.length == 1 || oppNotesHitArray.length == 1) { + if (ClientPrefs.ratingCounter && judgeCountUpdateFrame == 0 && judgementCounter != null) updateRatingCounter(); + if (!ClientPrefs.hideScore && scoreTxtUpdateFrame == 0 && scoreTxt != null) updateScore(); + if (ClientPrefs.compactNumbers && compactUpdateFrame == 0) updateCompactNumbers(); + } if (combo > maxCombo) maxCombo = combo; @@ -9710,14 +9556,18 @@ if (!allSicks && ClientPrefs.colorRatingFC && songMisses > 0 && ClientPrefs.hudT if (!ClientPrefs.noMarvJudge) { judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' (' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nMarvelous!!!: ' + marvs + '\nSicks!!: ' + sicks + '\nGoods!: ' + goods + '\nBads: ' + bads + '\nShits: ' + shits + '\nMisses: ' + songMisses + (ClientPrefs.comboScoreEffect ? '\nScore Multiplier: ' + comboMultiplier + 'x' : ''); - if (ClientPrefs.hudType == 'Doki Doki+') judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' ( ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nVery Doki: ' + marvs + '\nDoki: ' + sicks + '\nGood: ' + goods + '\nOK: ' + bads + '\nNO: ' + shits + '\nMiss: ' + songMisses + (ClientPrefs.comboScoreEffect ? '\nScore Multiplier: ' + comboMultiplier + 'x' : ''); - if (ClientPrefs.hudType == 'VS Impostor') judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' ( ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nSO SUSSY: ' + marvs + '\nSussy: ' + sicks + '\nSus: ' + goods + '\nSad: ' + bads + '\nAss: ' + shits + '\nMiss: ' + songMisses + (ClientPrefs.comboScoreEffect ? '\nScore Multiplier: ' + comboMultiplier + 'x' : ''); + + if (ClientPrefs.hudType == 'Doki Doki+') judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' (' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nVery Doki: ' + marvs + '\nDoki: ' + sicks + '\nGood: ' + goods + '\nOK: ' + bads + '\nNO: ' + shits + '\nMiss: ' + songMisses + (ClientPrefs.comboScoreEffect ? '\nScore Multiplier: ' + comboMultiplier + 'x' : ''); + + if (ClientPrefs.hudType == 'VS Impostor') judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' (' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nSO SUSSY: ' + marvs + '\nSussy: ' + sicks + '\nSus: ' + goods + '\nSad: ' + bads + '\nAss: ' + shits + '\nMiss: ' + songMisses + (ClientPrefs.comboScoreEffect ? '\nScore Multiplier: ' + comboMultiplier + 'x' : ''); } if (ClientPrefs.noMarvJudge) { - judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' ( ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nSicks!!: ' + sicks + '\nGoods!: ' + goods + '\nBads: ' + bads + '\nShits: ' + shits + '\nMisses: ' + songMisses + (ClientPrefs.comboScoreEffect ? '\nScore Multiplier: ' + comboMultiplier + 'x' : ''); - if (ClientPrefs.hudType == 'Doki Doki+') judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' ( ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nDoki: ' + sicks + '\nGood: ' + goods + '\nOK: ' + bads + '\nNO: ' + shits + '\nMiss: ' + songMisses + (ClientPrefs.comboScoreEffect ? '\nScore Multiplier: ' + comboMultiplier + 'x' : ''); - if (ClientPrefs.hudType == 'VS Impostor') judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' ( ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nSussy: ' + sicks + '\nSus: ' + goods + '\nSad: ' + bads + '\nAss: ' + shits + '\nMiss: ' + songMisses + (ClientPrefs.comboScoreEffect ? '\nScore Multiplier: ' + comboMultiplier + 'x' : ''); + judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' (' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nSicks!!: ' + sicks + '\nGoods!: ' + goods + '\nBads: ' + bads + '\nShits: ' + shits + '\nMisses: ' + songMisses + (ClientPrefs.comboScoreEffect ? '\nScore Multiplier: ' + comboMultiplier + 'x' : ''); + + if (ClientPrefs.hudType == 'Doki Doki+') judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' (' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nDoki: ' + sicks + '\nGood: ' + goods + '\nOK: ' + bads + '\nNO: ' + shits + '\nMiss: ' + songMisses + (ClientPrefs.comboScoreEffect ? '\nScore Multiplier: ' + comboMultiplier + 'x' : ''); + + if (ClientPrefs.hudType == 'VS Impostor') judgementCounter.text = 'Combo (Max): ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(combo, false) : compactCombo) + ' (' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(maxCombo, false) : compactMaxCombo) + ')\nHits: ' + (!ClientPrefs.compactNumbers ? FlxStringUtil.formatMoney(totalNotesPlayed, false) : compactTotalPlays) + ' / ' + FlxStringUtil.formatMoney(totalNotes, false) + ' (' + FlxMath.roundDecimal((totalNotesPlayed/totalNotes) * 100, 2) + '%)\nSussy: ' + sicks + '\nSus: ' + goods + '\nSad: ' + bads + '\nAss: ' + shits + '\nMiss: ' + songMisses + (ClientPrefs.comboScoreEffect ? '\nScore Multiplier: ' + comboMultiplier + 'x' : ''); } judgementCounter.text += (ClientPrefs.showNPS ? '\nNPS (Max): ' + FlxStringUtil.formatMoney(nps, false) + ' (' + FlxStringUtil.formatMoney(maxNPS, false) + ')' : ''); if (ClientPrefs.opponentRateCount) judgementCounter.text += '\n\nOpponent Hits: ' + FlxStringUtil.formatMoney(enemyHits, false) + ' / ' + FlxStringUtil.formatMoney(opponentNoteTotal, false) + ' (' + FlxMath.roundDecimal((enemyHits / opponentNoteTotal) * 100, 2) + '%)' + (ClientPrefs.showNPS ? '\nOpponent NPS (Max): ' + FlxStringUtil.formatMoney(oppNPS, false) + ' (' + FlxStringUtil.formatMoney(maxOppNPS, false) + ')' : ''); @@ -9998,4 +9848,6 @@ if (!allSicks && ClientPrefs.colorRatingFC && songMisses > 0 && ClientPrefs.hudT var curLight:Int = -1; var curLightEvent:Int = -1; -} \ No newline at end of file +} +//WEVE DONE IT, WE'VE HIT 10,000 LINES +//10-24-2023: nvm were back down to 9800 lines \ No newline at end of file diff --git a/source/editors/CharacterEditorState.hx b/source/editors/CharacterEditorState.hx index b87e5524404..cbcf1fd9b90 100644 --- a/source/editors/CharacterEditorState.hx +++ b/source/editors/CharacterEditorState.hx @@ -523,6 +523,7 @@ class CharacterEditorState extends MusicBeatState tab_group.name = "Character"; imageInputText = new FlxUIInputText(15, 30, 200, 'characters/BOYFRIEND', 8); + imageInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; var reloadImage:FlxButton = new FlxButton(imageInputText.x + 210, imageInputText.y - 3, "Reload Image", function() { char.imageFile = imageInputText.text; @@ -550,6 +551,7 @@ class CharacterEditorState extends MusicBeatState */ healthIconInputText = new FlxUIInputText(15, imageInputText.y + 35, 75, leHealthIcon.getCharacter(), 8); + healthIconInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; singDurationStepper = new FlxUINumericStepper(15, healthIconInputText.y + 45, 0.1, 4, 0, 999, 1); @@ -629,8 +631,11 @@ class CharacterEditorState extends MusicBeatState tab_group.name = "Animations"; animationInputText = new FlxUIInputText(15, 85, 80, '', 8); + animationInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; animationNameInputText = new FlxUIInputText(animationInputText.x, animationInputText.y + 35, 150, '', 8); + animationNameInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; animationIndicesInputText = new FlxUIInputText(animationNameInputText.x, animationNameInputText.y + 40, 250, '', 8); + animationIndicesInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; animationNameFramerate = new FlxUINumericStepper(animationInputText.x + 170, animationInputText.y, 1, 24, 0, 240, 0); animationLoopCheckBox = new FlxUICheckBox(animationNameInputText.x + 170, animationNameInputText.y - 1, null, null, "Should it Loop?", 100); diff --git a/source/editors/ChartingState.hx b/source/editors/ChartingState.hx index 95a297f3b8f..a3cef7f4aec 100644 --- a/source/editors/ChartingState.hx +++ b/source/editors/ChartingState.hx @@ -533,6 +533,7 @@ class ChartingState extends MusicBeatState function addSongUI():Void { UI_songTitle = new FlxUIInputText(10, 10, 70, _song.song, 8); + UI_songTitle.focusGained = () -> FlxG.stage.window.textInputEnabled = true; blockPressWhileTypingOn.push(UI_songTitle); @@ -728,9 +729,11 @@ class ChartingState extends MusicBeatState if(skin == null) skin = ''; noteSkinInputText = new FlxUIInputText(player2DropDown.x, player2DropDown.y + 50, 150, skin, 8); blockPressWhileTypingOn.push(noteSkinInputText); + noteSkinInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; noteSplashesInputText = new FlxUIInputText(noteSkinInputText.x, noteSkinInputText.y + 35, 150, _song.splashSkin, 8); blockPressWhileTypingOn.push(noteSplashesInputText); + noteSplashesInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; var reloadNotesButton:FlxButton = new FlxButton(noteSplashesInputText.x + 5, noteSplashesInputText.y + 20, 'Change Notes', function() { _song.arrowSkin = noteSkinInputText.text; @@ -783,6 +786,7 @@ class ChartingState extends MusicBeatState creditInputText = new FlxUIInputText(10, 30, 100, _song.songCredit, 8); blockPressWhileTypingOn.push(creditInputText); + creditInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; tab_group_songdata.add(creditInputText); tab_group_songdata.add(new FlxText(creditInputText.x, creditInputText.y - 15, 0, 'Song Credit:')); @@ -1359,11 +1363,13 @@ class ChartingState extends MusicBeatState tab_group_event.add(text); value1InputText = new FlxUIInputText(20, 110, 100, ""); blockPressWhileTypingOn.push(value1InputText); + value1InputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; var text:FlxText = new FlxText(20, 130, 0, "Value 2:"); tab_group_event.add(text); value2InputText = new FlxUIInputText(20, 150, 100, ""); blockPressWhileTypingOn.push(value2InputText); + value2InputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; // New event buttons var removeButton:FlxButton = new FlxButton(eventDropDown.x + eventDropDown.width + 10, eventDropDown.y, '-', function() diff --git a/source/editors/DialogueCharacterEditorState.hx b/source/editors/DialogueCharacterEditorState.hx index 4f501da368c..22f66e1cbef 100644 --- a/source/editors/DialogueCharacterEditorState.hx +++ b/source/editors/DialogueCharacterEditorState.hx @@ -278,10 +278,13 @@ class DialogueCharacterEditorState extends MusicBeatState animationInputText = new FlxUIInputText(15, 85, 80, '', 8); blockPressWhileTypingOn.push(animationInputText); + animationInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; loopInputText = new FlxUIInputText(animationInputText.x, animationInputText.y + 35, 150, '', 8); blockPressWhileTypingOn.push(loopInputText); + loopInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; idleInputText = new FlxUIInputText(loopInputText.x, loopInputText.y + 40, 150, '', 8); blockPressWhileTypingOn.push(idleInputText); + idleInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; var addUpdateButton:FlxButton = new FlxButton(10, idleInputText.y + 30, "Add/Update", function() { var theAnim:String = animationInputText.text.trim(); @@ -383,6 +386,7 @@ class DialogueCharacterEditorState extends MusicBeatState imageInputText = new FlxUIInputText(10, 30, 80, character.jsonFile.image, 8); blockPressWhileTypingOn.push(imageInputText); + imageInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; xStepper = new FlxUINumericStepper(imageInputText.x, imageInputText.y + 50, 10, character.jsonFile.position[0], -2000, 2000, 0); yStepper = new FlxUINumericStepper(imageInputText.x + 80, xStepper.y, 10, character.jsonFile.position[1], -2000, 2000, 0); scaleStepper = new FlxUINumericStepper(imageInputText.x, xStepper.y + 50, 0.05, character.jsonFile.scale, 0.1, 10, 2); diff --git a/source/editors/DialogueEditorState.hx b/source/editors/DialogueEditorState.hx index 8921726ceb7..0fd46e6fcea 100644 --- a/source/editors/DialogueEditorState.hx +++ b/source/editors/DialogueEditorState.hx @@ -153,6 +153,7 @@ class DialogueEditorState extends MusicBeatState characterInputText = new FlxUIInputText(10, 20, 80, DialogueCharacter.DEFAULT_CHARACTER, 8); blockPressWhileTypingOn.push(characterInputText); + characterInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; speedStepper = new FlxUINumericStepper(10, characterInputText.y + 40, 0.005, 0.05, 0, 0.5, 3); @@ -165,9 +166,11 @@ class DialogueEditorState extends MusicBeatState soundInputText = new FlxUIInputText(10, speedStepper.y + 40, 150, '', 8); blockPressWhileTypingOn.push(soundInputText); + soundInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; lineInputText = new FlxUIInputText(10, soundInputText.y + 35, 200, DEFAULT_TEXT, 8); blockPressWhileTypingOn.push(lineInputText); + lineInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; #if !android var loadButton:FlxButton = new FlxButton(20, lineInputText.y + 25, "Load Dialogue", function() { diff --git a/source/editors/MenuCharacterEditorState.hx b/source/editors/MenuCharacterEditorState.hx index 8761ec88853..f8485e6f5cd 100644 --- a/source/editors/MenuCharacterEditorState.hx +++ b/source/editors/MenuCharacterEditorState.hx @@ -188,10 +188,13 @@ class MenuCharacterEditorState extends MusicBeatState imageInputText = new FlxUIInputText(10, 20, 80, characterFile.image, 8); blockPressWhileTypingOn.push(imageInputText); + imageInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; idleInputText = new FlxUIInputText(10, imageInputText.y + 35, 100, characterFile.idle_anim, 8); blockPressWhileTypingOn.push(idleInputText); + idleInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; confirmInputText = new FlxUIInputText(10, idleInputText.y + 35, 100, characterFile.confirm_anim, 8); blockPressWhileTypingOn.push(confirmInputText); + confirmInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; flipXCheckbox = new FlxUICheckBox(10, confirmInputText.y + 30, null, null, "Flip X", 100); flipXCheckbox.callback = function() diff --git a/source/editors/WeekEditorState.hx b/source/editors/WeekEditorState.hx index 0748603b22c..eb22db57060 100644 --- a/source/editors/WeekEditorState.hx +++ b/source/editors/WeekEditorState.hx @@ -178,26 +178,33 @@ class WeekEditorState extends MusicBeatState songsInputText = new FlxUIInputText(10, 30, 200, '', 8); blockPressWhileTypingOn.push(songsInputText); + songsInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; opponentInputText = new FlxUIInputText(10, songsInputText.y + 40, 70, '', 8); blockPressWhileTypingOn.push(opponentInputText); + opponentInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; boyfriendInputText = new FlxUIInputText(opponentInputText.x + 75, opponentInputText.y, 70, '', 8); blockPressWhileTypingOn.push(boyfriendInputText); + boyfriendInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; girlfriendInputText = new FlxUIInputText(boyfriendInputText.x + 75, opponentInputText.y, 70, '', 8); blockPressWhileTypingOn.push(girlfriendInputText); + girlfriendInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; backgroundInputText = new FlxUIInputText(10, opponentInputText.y + 40, 120, '', 8); blockPressWhileTypingOn.push(backgroundInputText); - + backgroundInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; displayNameInputText = new FlxUIInputText(10, backgroundInputText.y + 60, 200, '', 8); blockPressWhileTypingOn.push(backgroundInputText); + displayNameInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; weekNameInputText = new FlxUIInputText(10, displayNameInputText.y + 60, 150, '', 8); blockPressWhileTypingOn.push(weekNameInputText); + weekNameInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; weekFileInputText = new FlxUIInputText(10, weekNameInputText.y + 40, 100, '', 8); blockPressWhileTypingOn.push(weekFileInputText); + weekFileInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; reloadWeekThing(); hideCheckbox = new FlxUICheckBox(10, weekFileInputText.y + 40, null, null, "Hide Week from Story Mode?", 100); @@ -252,9 +259,11 @@ class WeekEditorState extends MusicBeatState weekBeforeInputText = new FlxUIInputText(10, hiddenUntilUnlockCheckbox.y + 55, 100, '', 8); blockPressWhileTypingOn.push(weekBeforeInputText); + weekBeforeInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; difficultiesInputText = new FlxUIInputText(10, weekBeforeInputText.y + 60, 200, '', 8); blockPressWhileTypingOn.push(difficultiesInputText); + difficultiesInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; tab_group.add(new FlxText(weekBeforeInputText.x, weekBeforeInputText.y - 28, 0, 'Week File name of the Week you have\nto finish for Unlocking:')); tab_group.add(new FlxText(difficultiesInputText.x, difficultiesInputText.y - 20, 0, 'Difficulties:')); @@ -729,6 +738,7 @@ class WeekEditorFreeplayState extends MusicBeatState }); iconInputText = new FlxUIInputText(10, bgColorStepperR.y + 70, 100, '', 8); + iconInputText.focusGained = () -> FlxG.stage.window.textInputEnabled = true; var hideFreeplayCheckbox:FlxUICheckBox = new FlxUICheckBox(10, iconInputText.y + 30, null, null, "Hide Week from Freeplay?", 100); hideFreeplayCheckbox.checked = weekFile.hideFreeplay; diff --git a/source/options/OptimizationSubState.hx b/source/options/OptimizationSubState.hx index 2e69c1a8d7f..54bbbc8779c 100644 --- a/source/options/OptimizationSubState.hx +++ b/source/options/OptimizationSubState.hx @@ -100,13 +100,15 @@ class OptimizationSubState extends BaseOptionsMenu true); addOption(option); + /* //ok i was GOING to keep this but note types break if you turn it on var option:Option = new Option('Optimized Chart Loading', //Name 'If checked, hopefully tries to get charts to load faster.', //Description 'fasterChartLoad', //Save data variable name 'bool', //Variable type false); //Default value addOption(option); - + */ + super(); } } \ No newline at end of file diff --git a/source/options/Option.hx b/source/options/Option.hx index b54eb713460..aa7ce9dfa72 100644 --- a/source/options/Option.hx +++ b/source/options/Option.hx @@ -49,7 +49,7 @@ class Option public var displayFormat:String = '%v'; //How String/Float/Percent/Int values are shown, %v = Current value, %d = Default value public var description:String = ''; public var name:String = 'Unknown'; - public var isNote:Bool = false; + public var specialOption:Bool = false; public function new(name:String, description:String = '', variable:String, type:String = 'bool', defaultValue:Dynamic = 'null variable value', ?options:Array = null) { diff --git a/source/options/VisualsUISubState.hx b/source/options/VisualsUISubState.hx index 900142dc8c7..fe71ecb3a96 100644 --- a/source/options/VisualsUISubState.hx +++ b/source/options/VisualsUISubState.hx @@ -156,6 +156,16 @@ class VisualsUISubState extends BaseOptionsMenu 'bool', false); addOption(option); + + var option:Option = new Option('ScoreTxt Size: ', + "Sets the size of scoreTxt. Logically, higher values mean\nthe scoreTxt is bigger. If set to 0, then it will\nuse the default size for each HUD type.", + 'scoreTxtSize', + 'int', + '0'); + addOption(option); + + option.minValue = 0; + option.maxValue = 100; /* ignore this i was just making a joke about fnf's naughtiness option var option:Option = new Option('Family Friendly Mode',