add CLI flags for ruleset settings and update hazardDamagePerTurn (#53)

This commit is contained in:
Rob O'Dwyer 2021-09-02 15:32:46 -07:00 committed by GitHub
parent e9f408cdbb
commit 2d57653d46
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -102,6 +102,11 @@ var ViewMap bool
var Seed int64 var Seed int64
var TurnDelay int32 var TurnDelay int32
var FoodSpawnChance int32
var MinimumFood int32
var HazardDamagePerTurn int32
var ShrinkEveryNTurns int32
var playCmd = &cobra.Command{ var playCmd = &cobra.Command{
Use: "play", Use: "play",
Short: "Play a game of Battlesnake locally.", Short: "Play a game of Battlesnake locally.",
@ -123,6 +128,13 @@ func init() {
playCmd.Flags().BoolVarP(&ViewMap, "viewmap", "v", false, "View the Map Each Turn") playCmd.Flags().BoolVarP(&ViewMap, "viewmap", "v", false, "View the Map Each Turn")
playCmd.Flags().Int64VarP(&Seed, "seed", "r", time.Now().UTC().UnixNano(), "Random Seed") playCmd.Flags().Int64VarP(&Seed, "seed", "r", time.Now().UTC().UnixNano(), "Random Seed")
playCmd.Flags().Int32VarP(&TurnDelay, "delay", "d", 0, "Turn Delay in Milliseconds") playCmd.Flags().Int32VarP(&TurnDelay, "delay", "d", 0, "Turn Delay in Milliseconds")
playCmd.Flags().Int32Var(&FoodSpawnChance, "foodSpawnChance", 15, "Percentage chance of spawning a new food every round")
playCmd.Flags().Int32Var(&MinimumFood, "minimumFood", 1, "Minimum food to keep on the board every turn")
playCmd.Flags().Int32Var(&HazardDamagePerTurn, "hazardDamagePerTurn", 14, "Health damage a snake will take when ending its turn in a hazard")
playCmd.Flags().Int32Var(&ShrinkEveryNTurns, "shrinkEveryNTurns", 25, "In Royale mode, the number of turns between generating new hazards")
playCmd.Flags().SortFlags = false
} }
var run = func(cmd *cobra.Command, args []string) { var run = func(cmd *cobra.Command, args []string) {
@ -181,17 +193,18 @@ func getRuleset(seed int64, snakes []Battlesnake) rules.Ruleset {
var royale rules.RoyaleRuleset var royale rules.RoyaleRuleset
standard := rules.StandardRuleset{ standard := rules.StandardRuleset{
FoodSpawnChance: 15, FoodSpawnChance: FoodSpawnChance,
MinimumFood: 1, MinimumFood: MinimumFood,
HazardDamagePerTurn: 0,
} }
switch GameType { switch GameType {
case "royale": case "royale":
standard.HazardDamagePerTurn = 15 standard.HazardDamagePerTurn = HazardDamagePerTurn
royale = rules.RoyaleRuleset{ royale = rules.RoyaleRuleset{
StandardRuleset: standard, StandardRuleset: standard,
Seed: seed, Seed: seed,
ShrinkEveryNTurns: 10, ShrinkEveryNTurns: ShrinkEveryNTurns,
} }
ruleset = &royale ruleset = &royale
case "squad": case "squad":