limo stage done

This commit is contained in:
Yoshman29
2022-10-08 16:34:22 +02:00
parent ec12222b07
commit 681d8e8ac0
12 changed files with 73 additions and 72 deletions
+2 -1
View File
@@ -126,7 +126,8 @@ class ChartingState extends MusicBeatState
player2: 'dad',
speed: 1,
validScore: false,
stage: 'stage'
stage: 'stage',
gf: 'gf'
};
}
+3 -3
View File
@@ -184,9 +184,9 @@ class PlayState extends MusicBeatState
DiscordClient.changePresence(detailsText, SONG.song + " (" + storyDifficultyText + ")", iconRPC);
#end
// TODO: Chart GF version
gf = new Character(400, 130, "gf");
var gfVersion = SONG.gf;
if (gfVersion == null) gfVersion = "gf";
gf = new Character(400, 130, gfVersion);
gf.scrollFactor.set(0.95, 0.95);
dad = new Character(100, 100, SONG.player2);
+33 -24
View File
@@ -50,11 +50,14 @@ class Stage extends FlxBasic implements IBeatReceiver {
case "sprite" | "spr" | "sparrow":
var spr = new StageSprite();
spr.antialiasing = true;
var addDefAnim = true;
if (!node.has.sprite || !node.has.name || !node.has.x || !node.has.y) continue;
if (Assets.exists(Paths.file('images/$spritesParentFolder${node.att.sprite}.xml', TEXT))) {
spr.frames = Paths.getSparrowAtlas('$spritesParentFolder${node.att.sprite}');
} else {
addDefAnim = false;
spr.loadGraphic(Paths.image('$spritesParentFolder${node.att.sprite}'));
}
var x:Null<Float> = Std.parseFloat(node.att.x);
@@ -72,46 +75,32 @@ class Stage extends FlxBasic implements IBeatReceiver {
if (node.has.updateHitbox && node.att.updateHitbox == "true") spr.updateHitbox();
for(anim in node.nodes.anim) {
addDefAnim = false;
if (anim.has.name) spr.beatAnims.push(anim.att.name);
XMLUtil.addXMLAnimation(spr, anim);
}
if (node.has.beatAnim && node.att.beatAnim.trim() != "") spr.beatAnims = [for(e in node.att.beatAnim.split(",")) e.trim()];
if (node.has.anim) {
spr.animation.play(node.att.anim);
} else if (addDefAnim) {
spr.animation.addByPrefix("anim", "", 24, true);
spr.animation.play("anim");
}
stageSprites.set(node.att.name, spr);
PlayState.instance.add(spr);
spr;
case "boyfriend" | "bf":
if (node.has.x) {
var x:Null<Float> = Std.parseFloat(node.att.x);
if (x != null) PlayState.instance.boyfriend.x = x;
}
if (node.has.y) {
var y:Null<Float> = Std.parseFloat(node.att.y);
if (y != null) PlayState.instance.boyfriend.y = y;
}
doCharNodeShit(PlayState.instance.boyfriend, node);
PlayState.instance.add(PlayState.instance.boyfriend);
PlayState.instance.boyfriend;
case "girlfriend" | "gf":
if (node.has.x) {
var x:Null<Float> = Std.parseFloat(node.att.x);
if (x != null) PlayState.instance.gf.x = x;
}
if (node.has.y) {
var y:Null<Float> = Std.parseFloat(node.att.y);
if (y != null) PlayState.instance.gf.y = y;
}
doCharNodeShit(PlayState.instance.gf, node);
PlayState.instance.add(PlayState.instance.gf);
PlayState.instance.gf;
case "dad" | "opponent":
if (node.has.x) {
var x:Null<Float> = Std.parseFloat(node.att.x);
if (x != null) PlayState.instance.dad.x = x;
}
if (node.has.y) {
var y:Null<Float> = Std.parseFloat(node.att.y);
if (y != null) PlayState.instance.dad.y = y;
}
doCharNodeShit(PlayState.instance.dad, node);
PlayState.instance.add(PlayState.instance.dad);
PlayState.instance.dad;
default: null;
@@ -129,6 +118,26 @@ class Stage extends FlxBasic implements IBeatReceiver {
}
PlayState.instance.scripts.add(stageScript);
}
private static function doCharNodeShit(char:Character, node:Access) {
if (node.has.x) {
var x:Null<Float> = Std.parseFloat(node.att.x);
if (x != null) char.x = x;
}
if (node.has.y) {
var y:Null<Float> = Std.parseFloat(node.att.y);
if (y != null) char.y = y;
}
if (node.has.camxoffset) {
var x:Null<Float> = Std.parseFloat(node.att.camxoffset);
if (x != null) char.cameraOffset.x += x;
}
if (node.has.camyoffset) {
var y:Null<Float> = Std.parseFloat(node.att.camyoffset);
if (y != null) char.cameraOffset.y += y;
}
}
public function beatHit(curBeat:Int) {}
+1
View File
@@ -18,6 +18,7 @@ typedef SwagSong =
var player1:String;
var player2:String;
var gf:String;
var validScore:Bool;
}
+1 -1
View File
@@ -23,7 +23,7 @@ class XMLUtil {
var value:Dynamic = switch(property.att.type.toLowerCase()) {
case "float" | "number": Std.parseFloat(property.att.value);
case "int" | "integer": Std.parseInt(property.att.value);
case "int" | "integer" | "color": Std.parseInt(property.att.value);
case "string" | "str" | "text": property.att.value;
case "bool" | "boolean": property.att.value.toLowerCase() == "true";
default: return TYPE_INCORRECT;