checkpoints are stage elements

This commit is contained in:
Quaternions 2023-11-03 16:16:28 -07:00
parent af7fcdd5cb
commit 7311b1ae88

View File

@ -107,16 +107,6 @@ pub struct GameMechanicAccelerator{
pub acceleration:Planar64Vec3 pub acceleration:Planar64Vec3
} }
#[derive(Clone,Hash,Eq,PartialEq)] #[derive(Clone,Hash,Eq,PartialEq)]
pub enum GameMechanicCheckpoint{
Ordered{
mode_id:u32,
checkpoint_id:u32,
},
Unordered{
mode_id:u32,
},
}
#[derive(Clone,Hash,Eq,PartialEq)]
pub enum GameMechanicBooster{ pub enum GameMechanicBooster{
Affine(Planar64Affine3),//capable of SetVelocity,DotVelocity,normal booster,bouncy part,redirect velocity, and much more Affine(Planar64Affine3),//capable of SetVelocity,DotVelocity,normal booster,bouncy part,redirect velocity, and much more
Velocity(Planar64Vec3),//straight up boost velocity adds to your current velocity Velocity(Planar64Vec3),//straight up boost velocity adds to your current velocity
@ -182,13 +172,14 @@ pub enum StageElementBehaviour{
Trigger, Trigger,
Teleport, Teleport,
Platform, Platform,
//Acts like a trigger if you haven't hit all the checkpoints. //Checkpoint acts like a trigger if you haven't hit all the checkpoints yet.
Checkpoint{ //Note that all stage elements act like this for the next stage.
//if this is 2 you must have hit OrderedCheckpoint(0) OrderedCheckpoint(1) OrderedCheckpoint(2) to pass Checkpoint,
ordered_checkpoint_id:Option<u32>, //OrderedCheckpoint. You must pass through all of these in ascending order.
//if this is 2 you must have hit at least 2 UnorderedCheckpoints to pass Ordered(u32),
unordered_checkpoint_count:u32, //UnorderedCheckpoint. You must pass through all of these in any order.
}, Unordered,
//If you get reset by a jump limit
JumpLimit(u32), JumpLimit(u32),
//Speedtrap(TrapCondition),//Acts as a trigger with a speed condition //Speedtrap(TrapCondition),//Acts as a trigger with a speed condition
} }