09-30-2020, 12:07 AM
I added in some of the features and fixed the graphics kind of.
We have a kind of swap rule, the neutral 2 stack for any board size, scalable board size, only showing the top of a stack with a number for stack count, and colors.
I put the code below but also attach the .lud
(define "FriendlyInSight"
(count Pieces Mover in:(sites LineOfSight at:(last From)))
)
(define "PlayableSites"
(forEach
(sites Board)
if:(>
(count Pieces Mover in:(sites LineOfSight at:(site)))
(size Stack at:(site))
)
)
)
(game "Tumbleweed"
(players 2)
(equipment
{
(board (hex <Board>))
(piece "Disc" Each)
(piece "Disc" Neutral)
}
)
(rules
(meta (swap))
(start
{
(place Random {"Disc1" "Disc2"})
(place Stack "Disc0" (centrePoint) count:2)
}
)
(play
(move Select (from "PlayableSites")
(then
(add (to (last From)) count:(- "FriendlyInSight" ((size Stack at:(last From)))) stack:true)
)
)
)
(end
(if
(no Moves Next)
(byScore
{
(score P1 (count sites in:(sites Occupied by:P1)))
(score P2 (count sites in:(sites Occupied by:P2)))
}
)
)
)
)
)
//------------------------------------------------------------------------------
(option "Board Size" <Board> args:{ <size> }
{
(item "3" <3> "Played on a size 3 board.")
(item "4" <4> "Played on a size 4 board.")
(item "5" <5> "Played on a size 5 board.")
(item "6" <6> "Played on a size 6 board.")
(item "7" <7> "Played on a size 7 board.")
(item "8" <8> "Played on a size 8 board.")*
(item "9" <9> "Played on a size 9 board.")
(item "10" <10> "Played on a size 10 board.")
(item "11" <11> "Played on a size 11 board.")
(item "12" <12> "Played on a size 12 board.")
(item "13" <13> "Played on a size 13 board.")
(item "14" <14> "Played on a size 14 board.")
(item "15" <15> "Played on a size 15 board.")
(item "16" <16> "Played on a size 16 board.")
(item "17" <17> "Played on a size 17 board.")
(item "18" <18> "Played on a size 18 board.")
(item "19" <19> "Played on a size 19 board.")
}
)
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
(metadata
(info
{
(description "Far-ranging stacks compete for all territory in sight.")
(rules "Tumbleweed rules.")
(version "1.0.7")
(classification "experimental")
(publisher "Michael Zapawa")
(credit "Designer: Mihaw Zapawa. Implemented by Michael Admundsen and Alek Erickson")
(date "2020")
}
)
(graphics {
(player Colour Neutral (colour Blue))
(player Colour P1 (colour Red))
(player Colour P2 (colour Cream))
(stackType Count)
})
)
We have a kind of swap rule, the neutral 2 stack for any board size, scalable board size, only showing the top of a stack with a number for stack count, and colors.
I put the code below but also attach the .lud
(define "FriendlyInSight"
(count Pieces Mover in:(sites LineOfSight at:(last From)))
)
(define "PlayableSites"
(forEach
(sites Board)
if:(>
(count Pieces Mover in:(sites LineOfSight at:(site)))
(size Stack at:(site))
)
)
)
(game "Tumbleweed"
(players 2)
(equipment
{
(board (hex <Board>))
(piece "Disc" Each)
(piece "Disc" Neutral)
}
)
(rules
(meta (swap))
(start
{
(place Random {"Disc1" "Disc2"})
(place Stack "Disc0" (centrePoint) count:2)
}
)
(play
(move Select (from "PlayableSites")
(then
(add (to (last From)) count:(- "FriendlyInSight" ((size Stack at:(last From)))) stack:true)
)
)
)
(end
(if
(no Moves Next)
(byScore
{
(score P1 (count sites in:(sites Occupied by:P1)))
(score P2 (count sites in:(sites Occupied by:P2)))
}
)
)
)
)
)
//------------------------------------------------------------------------------
(option "Board Size" <Board> args:{ <size> }
{
(item "3" <3> "Played on a size 3 board.")
(item "4" <4> "Played on a size 4 board.")
(item "5" <5> "Played on a size 5 board.")
(item "6" <6> "Played on a size 6 board.")
(item "7" <7> "Played on a size 7 board.")
(item "8" <8> "Played on a size 8 board.")*
(item "9" <9> "Played on a size 9 board.")
(item "10" <10> "Played on a size 10 board.")
(item "11" <11> "Played on a size 11 board.")
(item "12" <12> "Played on a size 12 board.")
(item "13" <13> "Played on a size 13 board.")
(item "14" <14> "Played on a size 14 board.")
(item "15" <15> "Played on a size 15 board.")
(item "16" <16> "Played on a size 16 board.")
(item "17" <17> "Played on a size 17 board.")
(item "18" <18> "Played on a size 18 board.")
(item "19" <19> "Played on a size 19 board.")
}
)
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
(metadata
(info
{
(description "Far-ranging stacks compete for all territory in sight.")
(rules "Tumbleweed rules.")
(version "1.0.7")
(classification "experimental")
(publisher "Michael Zapawa")
(credit "Designer: Mihaw Zapawa. Implemented by Michael Admundsen and Alek Erickson")
(date "2020")
}
)
(graphics {
(player Colour Neutral (colour Blue))
(player Colour P1 (colour Red))
(player Colour P2 (colour Cream))
(stackType Count)
})
)