fixes even more crap (replay stuff mostly)
This commit is contained in:
parent
98e96e4348
commit
40601171ab
39
source/OFLSprite.hx
Normal file
39
source/OFLSprite.hx
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import flixel.util.FlxColor;
|
||||||
|
import openfl.display.Sprite;
|
||||||
|
import flixel.FlxSprite;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* designed to draw a Open FL Sprite as a FlxSprite (to allow layering and auto sizing for haxe flixel cameras)
|
||||||
|
* Custom made for Kade Engine
|
||||||
|
*/
|
||||||
|
class OFLSprite extends FlxSprite
|
||||||
|
{
|
||||||
|
public var flSprite:Sprite;
|
||||||
|
|
||||||
|
public function new(x,y,width,height,Sprite:Sprite)
|
||||||
|
{
|
||||||
|
super(x,y);
|
||||||
|
|
||||||
|
makeGraphic(width,height,FlxColor.TRANSPARENT);
|
||||||
|
|
||||||
|
flSprite = Sprite;
|
||||||
|
|
||||||
|
pixels.draw(flSprite);
|
||||||
|
}
|
||||||
|
|
||||||
|
private var _frameCount:Int = 0;
|
||||||
|
|
||||||
|
override function update(elapsed:Float)
|
||||||
|
{
|
||||||
|
if (_frameCount != 2)
|
||||||
|
{
|
||||||
|
pixels.draw(flSprite);
|
||||||
|
_frameCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateDisplay()
|
||||||
|
{
|
||||||
|
pixels.draw(flSprite);
|
||||||
|
}
|
||||||
|
}
|
@ -212,6 +212,7 @@ class PlayState extends MusicBeatState
|
|||||||
private var botPlayState:FlxText;
|
private var botPlayState:FlxText;
|
||||||
// Replay shit
|
// Replay shit
|
||||||
private var saveNotes:Array<Dynamic> = [];
|
private var saveNotes:Array<Dynamic> = [];
|
||||||
|
private var saveJudge:Array<String> = [];
|
||||||
|
|
||||||
public static var highestCombo:Int = 0;
|
public static var highestCombo:Int = 0;
|
||||||
|
|
||||||
@ -2563,7 +2564,7 @@ class PlayState extends MusicBeatState
|
|||||||
campaignMisses = misses;
|
campaignMisses = misses;
|
||||||
|
|
||||||
if (!loadRep)
|
if (!loadRep)
|
||||||
rep.SaveReplay(saveNotes);
|
rep.SaveReplay(saveNotes, saveJudge);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
PlayStateChangeables.botPlay = false;
|
PlayStateChangeables.botPlay = false;
|
||||||
@ -3223,6 +3224,17 @@ class PlayState extends MusicBeatState
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function findByTimeIndex(time:Float):Int
|
||||||
|
{
|
||||||
|
for (i in 0...rep.replay.songNotes.length)
|
||||||
|
{
|
||||||
|
//trace('checking ' + Math.round(i[0]) + ' against ' + Math.round(time));
|
||||||
|
if (rep.replay.songNotes[i][0] == time)
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
public var fuckingVolume:Float = 1;
|
public var fuckingVolume:Float = 1;
|
||||||
public var useVideo = false;
|
public var useVideo = false;
|
||||||
|
|
||||||
@ -3322,11 +3334,17 @@ class PlayState extends MusicBeatState
|
|||||||
if (daNote != null)
|
if (daNote != null)
|
||||||
{
|
{
|
||||||
if (!loadRep)
|
if (!loadRep)
|
||||||
|
{
|
||||||
saveNotes.push([daNote.strumTime,0,direction,166 * Math.floor((PlayState.rep.replay.sf / 60) * 1000) / 166]);
|
saveNotes.push([daNote.strumTime,0,direction,166 * Math.floor((PlayState.rep.replay.sf / 60) * 1000) / 166]);
|
||||||
|
saveJudge.push("miss");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (!loadRep)
|
if (!loadRep)
|
||||||
|
{
|
||||||
saveNotes.push([Conductor.songPosition,0,direction,166 * Math.floor((PlayState.rep.replay.sf / 60) * 1000) / 166]);
|
saveNotes.push([Conductor.songPosition,0,direction,166 * Math.floor((PlayState.rep.replay.sf / 60) * 1000) / 166]);
|
||||||
|
saveJudge.push("miss");
|
||||||
|
}
|
||||||
|
|
||||||
//var noteDiff:Float = Math.abs(daNote.strumTime - Conductor.songPosition);
|
//var noteDiff:Float = Math.abs(daNote.strumTime - Conductor.songPosition);
|
||||||
//var wife:Float = EtternaFunctions.wife3(noteDiff, FlxG.save.data.etternaMode ? 1 : 1.7);
|
//var wife:Float = EtternaFunctions.wife3(noteDiff, FlxG.save.data.etternaMode ? 1 : 1.7);
|
||||||
@ -3468,9 +3486,12 @@ class PlayState extends MusicBeatState
|
|||||||
var noteDiff:Float = -(note.strumTime - Conductor.songPosition);
|
var noteDiff:Float = -(note.strumTime - Conductor.songPosition);
|
||||||
|
|
||||||
if(loadRep)
|
if(loadRep)
|
||||||
|
{
|
||||||
noteDiff = findByTime(note.strumTime)[3];
|
noteDiff = findByTime(note.strumTime)[3];
|
||||||
|
note.rating = rep.replay.songJudgements[findByTimeIndex(note.strumTime)];
|
||||||
note.rating = Ratings.CalculateRating(noteDiff);
|
}
|
||||||
|
else
|
||||||
|
note.rating = Ratings.CalculateRating(noteDiff);
|
||||||
|
|
||||||
if (note.rating == "miss")
|
if (note.rating == "miss")
|
||||||
return;
|
return;
|
||||||
@ -3522,6 +3543,7 @@ class PlayState extends MusicBeatState
|
|||||||
array[1] = -1;
|
array[1] = -1;
|
||||||
trace('pushing ' + array[0]);
|
trace('pushing ' + array[0]);
|
||||||
saveNotes.push(array);
|
saveNotes.push(array);
|
||||||
|
saveJudge.push(note.rating);
|
||||||
}
|
}
|
||||||
|
|
||||||
playerStrums.forEach(function(spr:FlxSprite)
|
playerStrums.forEach(function(spr:FlxSprite)
|
||||||
|
@ -120,19 +120,19 @@ class Ratings
|
|||||||
public static function checkRating(ms:Float, ts:Float)
|
public static function checkRating(ms:Float, ts:Float)
|
||||||
{
|
{
|
||||||
var rating = "miss";
|
var rating = "miss";
|
||||||
if (ms < 166 * ts && ms > 135 * ts)
|
if (ms <= 166 * ts && ms >= 135 * ts)
|
||||||
rating = "shit";
|
rating = "shit";
|
||||||
if (ms > -166 * ts && ms < -135 * ts)
|
if (ms >= -166 * ts && ms <= -135 * ts)
|
||||||
rating = "shit";
|
rating = "shit";
|
||||||
if (ms < 135 * ts && ms > 90 * ts)
|
if (ms <= 135 * ts && ms >= 90 * ts)
|
||||||
rating = "bad";
|
rating = "bad";
|
||||||
if (ms > -135 * ts && ms < -90 * ts)
|
if (ms >= -135 * ts && ms <= -90 * ts)
|
||||||
rating = "bad";
|
rating = "bad";
|
||||||
if (ms < 90 * ts && ms > 45 * ts)
|
if (ms <= 90 * ts && ms >= 45 * ts)
|
||||||
rating = "good";
|
rating = "good";
|
||||||
if (ms > -90 * ts && ms < -45 * ts)
|
if (ms >= -90 * ts && ms <= -45 * ts)
|
||||||
rating = "good";
|
rating = "good";
|
||||||
if (ms < 45 * ts && ms > -45 * ts)
|
if (ms <= 45 * ts && ms >= -45 * ts)
|
||||||
rating = "sick";
|
rating = "sick";
|
||||||
return rating;
|
return rating;
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ class ResultsScreen extends FlxSubState
|
|||||||
|
|
||||||
public var anotherBackground:FlxSprite;
|
public var anotherBackground:FlxSprite;
|
||||||
public var graph:HitGraph;
|
public var graph:HitGraph;
|
||||||
public var graphSprite:FlxSprite;
|
public var graphSprite:OFLSprite;
|
||||||
|
|
||||||
public var comboText:FlxText;
|
public var comboText:FlxText;
|
||||||
public var contText:FlxText;
|
public var contText:FlxText;
|
||||||
@ -97,7 +97,7 @@ class ResultsScreen extends FlxSubState
|
|||||||
graph = new HitGraph(FlxG.width - 500,45,495,240);
|
graph = new HitGraph(FlxG.width - 500,45,495,240);
|
||||||
graph.alpha = 0;
|
graph.alpha = 0;
|
||||||
|
|
||||||
graphSprite = new FlxSprite(FlxG.width - 510,45);
|
graphSprite = new OFLSprite(FlxG.width - 510,45,460,240,graph);
|
||||||
|
|
||||||
graphSprite.scrollFactor.set();
|
graphSprite.scrollFactor.set();
|
||||||
graphSprite.alpha = 0;
|
graphSprite.alpha = 0;
|
||||||
@ -116,25 +116,25 @@ class ResultsScreen extends FlxSubState
|
|||||||
var mean:Float = 0;
|
var mean:Float = 0;
|
||||||
|
|
||||||
|
|
||||||
for (i in PlayState.rep.replay.songNotes)
|
for (i in 0...PlayState.rep.replay.songNotes.length)
|
||||||
{
|
{
|
||||||
// 0 = time
|
// 0 = time
|
||||||
// 1 = length
|
// 1 = length
|
||||||
// 2 = type
|
// 2 = type
|
||||||
// 3 = diff
|
// 3 = diff
|
||||||
var diff = i[3];
|
var obj = PlayState.rep.replay.songNotes[i];
|
||||||
var judge = Ratings.CalculateRating(diff, Math.floor((PlayState.rep.replay.sf / 60) * 1000));
|
// judgement
|
||||||
|
var obj2 = PlayState.rep.replay.songJudgements[i];
|
||||||
|
|
||||||
|
var diff = obj[3];
|
||||||
|
var judge = obj2;
|
||||||
mean += diff;
|
mean += diff;
|
||||||
if (i[1] != -1)
|
if (obj[1] != -1)
|
||||||
graph.addToHistory(diff, judge);
|
graph.addToHistory(diff, judge);
|
||||||
}
|
}
|
||||||
|
|
||||||
graph.update();
|
graph.update();
|
||||||
|
|
||||||
graphSprite.makeGraphic(460,240,FlxColor.TRANSPARENT);
|
|
||||||
|
|
||||||
graphSprite.pixels.draw(graph);
|
|
||||||
|
|
||||||
mean = HelperFunctions.truncateFloat(mean / PlayState.rep.replay.songNotes.length,2);
|
mean = HelperFunctions.truncateFloat(mean / PlayState.rep.replay.songNotes.length,2);
|
||||||
|
|
||||||
settingsText = new FlxText(20,FlxG.height + 50,0,'SF: ${PlayState.rep.replay.sf} | Ratio (SA/GA): ${Math.round(sicks)}:1 ${Math.round(goods)}:1 | Mean: ${mean}ms | Played on ${PlayState.SONG.song} ${CoolUtil.difficultyString()}');
|
settingsText = new FlxText(20,FlxG.height + 50,0,'SF: ${PlayState.rep.replay.sf} | Ratio (SA/GA): ${Math.round(sicks)}:1 ${Math.round(goods)}:1 | Mean: ${mean}ms | Played on ${PlayState.SONG.song} ${CoolUtil.difficultyString()}');
|
||||||
@ -168,12 +168,6 @@ class ResultsScreen extends FlxSubState
|
|||||||
if (music.volume < 0.5)
|
if (music.volume < 0.5)
|
||||||
music.volume += 0.01 * elapsed;
|
music.volume += 0.01 * elapsed;
|
||||||
|
|
||||||
// render
|
|
||||||
if (frames != 2)
|
|
||||||
{
|
|
||||||
graphSprite.pixels.draw(graph);
|
|
||||||
frames++;
|
|
||||||
}
|
|
||||||
// keybinds
|
// keybinds
|
||||||
|
|
||||||
if (FlxG.keys.justPressed.ENTER)
|
if (FlxG.keys.justPressed.ENTER)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user