app

Safe Haskell Safe
Language Haskell2010

Skill

Description

A spinoff of Card |

Synopsis

Documentation

data T bleed block blow drawCard fame fear green growth regen slow source stupid terror #

The type of skills. Highly polymorphic, because we use two different instances. Callers should only use the concrete instances Skill and State.

Constructors

Ace  
Assassin

At turn start, moves against ponent ennemy

Bleed bleed

Lose hitpoints at turn start

Block block

Ignores first attack. Boolean indidcates whether skill is available.

Blow blow  
Brainless

Moves to random empty spot at turn start

BreathIce  
Charge  
Discipline  
DrawCard drawCard  
Falconer

Creates falcons upon arrival. No state, because it only triggers when put on board.

Fame fame

Contributes to score at turn beginning

Fear fear

Creature causes fear

FearTmp

Creatures causes fear until next turn

Flying

Creatures moves to random free spot upon being attacked

Frenzy

+1/+1 upon a kill

GreenAffinity green

Creates a forest at turn beginning

Growth growth

+1 hp at turn beginning

Imprecise

Creature attacks a random spot

King  
Knight

Identifier of knight

Leader Nat

Contributes to score when arriving

LongReach

Can attack 2 cells away

Powerful

Undealt damage contributes to score

Rampage  
Ranged  
Regeneration regen

Regenerates the number of hitpoints at beginning of turn

Sadism

Upon a kill, killed neighbors get -1 attack

Slow slow
  • 1 attack the first turn. Active if Boolean is True
StrengthPot

Strength potion in action

Source source

Creature creates mana at beginning of turn

Squire

Knight in front (if any) gains +1 hp and +1 attack upon arrival

Stupid4 stupid  
Support  
Sylvan

+1 hp/+1 attack when in a forest

Terror terror

Creature causes terror

Veteran

Immune to fear and terror

Zealot

Immune to fear

Instances
FromJSON Skill #  
Instance details

Defined in Json

Startable State #  
Instance details

Defined in CardInstances

Methods

start :: State -> State #

Stupid State #  
Instance details

Defined in BoardInstances

Methods

isStupid :: State -> Player -> Card -> Bool #

Startable [State] #  
Instance details

Defined in CardInstances

Methods

start :: [State] -> [State] #

Has (Creature Core) State #  
Instance details

Defined in Card

Methods

has :: Creature Core -> State -> Bool #

doesNotHave :: Creature Core -> State -> Bool #

To (Creature Core) [State] #  
Instance details

Defined in Card

Methods

to :: Creature Core -> [State] #

(Eq bleed, Eq block, Eq blow, Eq drawCard, Eq fame, Eq fear, Eq green, Eq growth, Eq regen, Eq slow, Eq source, Eq stupid, Eq terror) => Eq (T bleed block blow drawCard fame fear green growth regen slow source stupid terror) #  
Instance details

Defined in Skill

Methods

(==) :: T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> Bool #

(/=) :: T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> Bool #

(Ord bleed, Ord block, Ord blow, Ord drawCard, Ord fame, Ord fear, Ord green, Ord growth, Ord regen, Ord slow, Ord source, Ord stupid, Ord terror) => Ord (T bleed block blow drawCard fame fear green growth regen slow source stupid terror) #  
Instance details

Defined in Skill

Methods

compare :: T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> Ordering #

(<) :: T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> Bool #

(<=) :: T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> Bool #

(>) :: T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> Bool #

(>=) :: T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> Bool #

max :: T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> T bleed block blow drawCard fame fear green growth regen slow source stupid terror #

min :: T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> T bleed block blow drawCard fame fear green growth regen slow source stupid terror #

(Show bleed, Show block, Show blow, Show drawCard, Show fame, Show fear, Show green, Show growth, Show regen, Show slow, Show source, Show stupid, Show terror) => Show (T bleed block blow drawCard fame fear green growth regen slow source stupid terror) #  
Instance details

Defined in Skill

Methods

showsPrec :: Int -> T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> ShowS #

show :: T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> String #

showList :: [T bleed block blow drawCard fame fear green growth regen slow source stupid terror] -> ShowS #

Generic (T bleed block blow drawCard fame fear green growth regen slow source stupid terror) #  
Instance details

Defined in Skill

Associated Types

type Rep (T bleed block blow drawCard fame fear green growth regen slow source stupid terror) :: Type -> Type #

Methods

from :: T bleed block blow drawCard fame fear green growth regen slow source stupid terror -> Rep (T bleed block blow drawCard fame fear green growth regen slow source stupid terror) x #

to :: Rep (T bleed block blow drawCard fame fear green growth regen slow source stupid terror) x -> T bleed block blow drawCard fame fear green growth regen slow source stupid terror #

type Rep (T bleed block blow drawCard fame fear green growth regen slow source stupid terror) #  
Instance details

Defined in Skill

type Rep (T bleed block blow drawCard fame fear green growth regen slow source stupid terror) = D1 (MetaData "T" "Skill" "main" False) (((((C1 (MetaCons "Ace" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Assassin" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Bleed" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 bleed)) :+: C1 (MetaCons "Block" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 block)))) :+: ((C1 (MetaCons "Blow" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 blow)) :+: C1 (MetaCons "Brainless" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "BreathIce" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Charge" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Discipline" PrefixI False) (U1 :: Type -> Type))))) :+: (((C1 (MetaCons "DrawCard" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 drawCard)) :+: C1 (MetaCons "Falconer" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Fame" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 fame)) :+: (C1 (MetaCons "Fear" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 fear)) :+: C1 (MetaCons "FearTmp" PrefixI False) (U1 :: Type -> Type)))) :+: ((C1 (MetaCons "Flying" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Frenzy" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "GreenAffinity" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 green)) :+: (C1 (MetaCons "Growth" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 growth)) :+: C1 (MetaCons "Imprecise" PrefixI False) (U1 :: Type -> Type)))))) :+: ((((C1 (MetaCons "King" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Knight" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Leader" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Nat)) :+: C1 (MetaCons "LongReach" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "Powerful" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Rampage" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Ranged" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Regeneration" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 regen)) :+: C1 (MetaCons "Sadism" PrefixI False) (U1 :: Type -> Type))))) :+: (((C1 (MetaCons "Slow" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 slow)) :+: C1 (MetaCons "StrengthPot" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Source" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 source)) :+: (C1 (MetaCons "Squire" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Stupid4" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 stupid))))) :+: ((C1 (MetaCons "Support" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Sylvan" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Terror" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 terror)) :+: (C1 (MetaCons "Veteran" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Zealot" PrefixI False) (U1 :: Type -> Type)))))))

type Skill = T () () () () Nat () () () Nat () Nat () () #

data Pack #

Constructors

Pack  

Fields

Instances
Eq Pack #  
Instance details

Defined in Skill

Methods

(==) :: Pack -> Pack -> Bool #

(/=) :: Pack -> Pack -> Bool #

Show Pack #  
Instance details

Defined in Skill

Methods

showsPrec :: Int -> Pack -> ShowS #

show :: Pack -> String #

showList :: [Pack] -> ShowS #

Generic Pack #  
Instance details

Defined in Skill

Associated Types

type Rep Pack :: Type -> Type #

Methods

from :: Pack -> Rep Pack x #

to :: Rep Pack x -> Pack #

FromJSON Pack #  
Instance details

Defined in Json

type Rep Pack #  
Instance details

Defined in Skill

unlift :: Skill -> State #

Because this function uses default values, it is NOT harmless! Use only when initializing data.