diff --git a/graph/src/main/scala/tf/bug/fancadegraph/Argument.scala b/graph/src/main/scala/tf/bug/fancadegraph/Argument.scala index 438ddb2..fff9cb5 100644 --- a/graph/src/main/scala/tf/bug/fancadegraph/Argument.scala +++ b/graph/src/main/scala/tf/bug/fancadegraph/Argument.scala @@ -20,6 +20,11 @@ object Argument { fansc.Metadata.Number(pos, value) ) } + implicit val booleanArg: Argument[Boolean] = new Argument[Boolean] { + override def encode(value: Boolean)(pos: fansc.Position): Vector[fansc.Metadata] = Vector( + fansc.Metadata.Bool(pos, value) + ) + } implicit val soundOptionsArg: Argument[SoundOptions] = new Argument[SoundOptions] { override def encode(value: SoundOptions)(pos: fansc.Position): Vector[fansc.Metadata] = Vector( fansc.Metadata.Bool(pos, value.loop), diff --git a/graph/src/main/scala/tf/bug/fancadegraph/BlockDefinition.scala b/graph/src/main/scala/tf/bug/fancadegraph/BlockDefinition.scala index 78f8853..381f4c8 100644 --- a/graph/src/main/scala/tf/bug/fancadegraph/BlockDefinition.scala +++ b/graph/src/main/scala/tf/bug/fancadegraph/BlockDefinition.scala @@ -389,7 +389,7 @@ object BlockDefinition { override val ids: Vector[Obj] = Vector(Obj.archLower, Obj.archHigher) } - case object Win extends BuiltIn[Unit] { + case object Win extends BuiltIn[Boolean] { override val width: Int = 2 override val height: Int = 1 override val depth: Int = 2 @@ -415,7 +415,7 @@ object BlockDefinition { ) } - case object Lose extends BuiltIn[Unit] { + case object Lose extends BuiltIn[Boolean] { override val width: Int = 2 override val height: Int = 1 override val depth: Int = 2 diff --git a/graph/src/main/scala/tf/bug/fancadegraph/Main.scala b/graph/src/main/scala/tf/bug/fancadegraph/Main.scala index 8cb52cf..93c4d25 100644 --- a/graph/src/main/scala/tf/bug/fancadegraph/Main.scala +++ b/graph/src/main/scala/tf/bug/fancadegraph/Main.scala @@ -11,8 +11,8 @@ import tf.bug.fancadescodec.{Cartridge, Codecs, Position} object Main extends IOApp { override def run(args: List[String]): IO[ExitCode] = { - val winBlock = Block(Position(0, 0, 0), BlockDefinition.Win) - val loseBlock = Block(Position(0, 0, 3), BlockDefinition.Lose) + val winBlock = Block(Position(0, 0, 0), BlockDefinition.Win, true) + val loseBlock = Block(Position(0, 0, 3), BlockDefinition.Lose, true) val loseAfter = Pin(loseBlock, BlockDefinition.Lose.after) val winBefore = Pin(winBlock, BlockDefinition.Win.before) val level = Level(