swarm-0.5.0.0: 2D resource gathering game with programmable robots
LicenseBSD-3-Clause
Safe HaskellSafe-Inferred
LanguageHaskell2010

Swarm.Game.Scenario.Status

Description

High-level status of scenario play. Representation of progress, logic for updating.

Synopsis

Documentation

data ParameterizableLaunchParams code f Source #

These launch parameters are used in a number of ways:

  • Serializing the seed/script path for saves
  • Holding parse status from form fields, including error info
  • Carrying fully-validated launch parameters.

Type parameters are utilized to support all of these use cases.

Constructors

LaunchParams 

Fields

Instances

Instances details
FromJSON SerializableLaunchParams Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

ToJSON SerializableLaunchParams Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

Generic SerializableLaunchParams Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

Associated Types

type Rep SerializableLaunchParams :: Type -> Type #

Read SerializableLaunchParams Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

Show SerializableLaunchParams Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

Eq SerializableLaunchParams Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

Ord SerializableLaunchParams Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

type Rep SerializableLaunchParams Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

type Rep SerializableLaunchParams = D1 ('MetaData "ParameterizableLaunchParams" "Swarm.Game.Scenario.Status" "swarm-0.5.0.0-6qXEbhCmuXA4wRndqqhBu" 'False) (C1 ('MetaCons "LaunchParams" 'PrefixI 'True) (S1 ('MetaSel ('Just "seedVal") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Identity (Maybe Seed))) :*: S1 ('MetaSel ('Just "initialCode") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Identity (Maybe FilePath)))))

data ScenarioStatus Source #

A ScenarioStatus stores the status of a scenario along with appropriate metadata: NotStarted, or Played. The Played status has two sub-states: Attempted or Completed.

Instances

Instances details
FromJSON ScenarioStatus Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

ToJSON ScenarioStatus Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

Generic ScenarioStatus Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

Associated Types

type Rep ScenarioStatus :: Type -> Type #

Read ScenarioStatus Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

Show ScenarioStatus Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

Eq ScenarioStatus Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

Ord ScenarioStatus Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

type Rep ScenarioStatus Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

data ScenarioInfo Source #

A ScenarioInfo record stores metadata about a scenario: its canonical path and status. By way of the ScenarioStatus record, it stores the most recent status and best-ever status.

Instances

Instances details
FromJSON ScenarioInfo Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

ToJSON ScenarioInfo Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

Generic ScenarioInfo Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

Associated Types

type Rep ScenarioInfo :: Type -> Type #

Read ScenarioInfo Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

Show ScenarioInfo Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

Eq ScenarioInfo Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

Ord ScenarioInfo Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

type Rep ScenarioInfo Source # 
Instance details

Defined in Swarm.Game.Scenario.Status

type Rep ScenarioInfo = D1 ('MetaData "ScenarioInfo" "Swarm.Game.Scenario.Status" "swarm-0.5.0.0-6qXEbhCmuXA4wRndqqhBu" 'False) (C1 ('MetaCons "ScenarioInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "_scenarioPath") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 FilePath) :*: S1 ('MetaSel ('Just "_scenarioStatus") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ScenarioStatus)))

scenarioPath :: Lens' ScenarioInfo FilePath Source #

The path of the scenario, relative to data/scenarios.

scenarioStatus :: Lens' ScenarioInfo ScenarioStatus Source #

The status of the scenario.

updateScenarioInfoOnFinish :: CodeSizeDeterminators -> ZonedTime -> TickNumber -> Bool -> ScenarioInfo -> ScenarioInfo Source #

Update the current ScenarioInfo record when quitting a game.

Note that when comparing "best" times, shorter is not always better! As long as the scenario is not completed (e.g. some do not have win condition) we consider having fun longer to be better.