{-# LANGUAGE TemplateHaskell #-}

module Rattletrap.Type.ExtendedExplosionAttribute
  ( ExtendedExplosionAttribute(..)
  )
where

import Rattletrap.Type.Common
import Rattletrap.Type.ExplosionAttribute
import Rattletrap.Type.FlaggedIntAttribute

data ExtendedExplosionAttribute = ExtendedExplosionAttribute
  { ExtendedExplosionAttribute -> ExplosionAttribute
extendedExplosionAttributeExplosion :: ExplosionAttribute
  , ExtendedExplosionAttribute -> FlaggedIntAttribute
extendedExplosionAttributeUnknown :: FlaggedIntAttribute
  } deriving (ExtendedExplosionAttribute -> ExtendedExplosionAttribute -> Bool
(ExtendedExplosionAttribute -> ExtendedExplosionAttribute -> Bool)
-> (ExtendedExplosionAttribute
    -> ExtendedExplosionAttribute -> Bool)
-> Eq ExtendedExplosionAttribute
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtendedExplosionAttribute -> ExtendedExplosionAttribute -> Bool
$c/= :: ExtendedExplosionAttribute -> ExtendedExplosionAttribute -> Bool
== :: ExtendedExplosionAttribute -> ExtendedExplosionAttribute -> Bool
$c== :: ExtendedExplosionAttribute -> ExtendedExplosionAttribute -> Bool
Eq, Eq ExtendedExplosionAttribute
Eq ExtendedExplosionAttribute
-> (ExtendedExplosionAttribute
    -> ExtendedExplosionAttribute -> Ordering)
-> (ExtendedExplosionAttribute
    -> ExtendedExplosionAttribute -> Bool)
-> (ExtendedExplosionAttribute
    -> ExtendedExplosionAttribute -> Bool)
-> (ExtendedExplosionAttribute
    -> ExtendedExplosionAttribute -> Bool)
-> (ExtendedExplosionAttribute
    -> ExtendedExplosionAttribute -> Bool)
-> (ExtendedExplosionAttribute
    -> ExtendedExplosionAttribute -> ExtendedExplosionAttribute)
-> (ExtendedExplosionAttribute
    -> ExtendedExplosionAttribute -> ExtendedExplosionAttribute)
-> Ord ExtendedExplosionAttribute
ExtendedExplosionAttribute -> ExtendedExplosionAttribute -> Bool
ExtendedExplosionAttribute
-> ExtendedExplosionAttribute -> Ordering
ExtendedExplosionAttribute
-> ExtendedExplosionAttribute -> ExtendedExplosionAttribute
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: ExtendedExplosionAttribute
-> ExtendedExplosionAttribute -> ExtendedExplosionAttribute
$cmin :: ExtendedExplosionAttribute
-> ExtendedExplosionAttribute -> ExtendedExplosionAttribute
max :: ExtendedExplosionAttribute
-> ExtendedExplosionAttribute -> ExtendedExplosionAttribute
$cmax :: ExtendedExplosionAttribute
-> ExtendedExplosionAttribute -> ExtendedExplosionAttribute
>= :: ExtendedExplosionAttribute -> ExtendedExplosionAttribute -> Bool
$c>= :: ExtendedExplosionAttribute -> ExtendedExplosionAttribute -> Bool
> :: ExtendedExplosionAttribute -> ExtendedExplosionAttribute -> Bool
$c> :: ExtendedExplosionAttribute -> ExtendedExplosionAttribute -> Bool
<= :: ExtendedExplosionAttribute -> ExtendedExplosionAttribute -> Bool
$c<= :: ExtendedExplosionAttribute -> ExtendedExplosionAttribute -> Bool
< :: ExtendedExplosionAttribute -> ExtendedExplosionAttribute -> Bool
$c< :: ExtendedExplosionAttribute -> ExtendedExplosionAttribute -> Bool
compare :: ExtendedExplosionAttribute
-> ExtendedExplosionAttribute -> Ordering
$ccompare :: ExtendedExplosionAttribute
-> ExtendedExplosionAttribute -> Ordering
$cp1Ord :: Eq ExtendedExplosionAttribute
Ord, Int -> ExtendedExplosionAttribute -> ShowS
[ExtendedExplosionAttribute] -> ShowS
ExtendedExplosionAttribute -> String
(Int -> ExtendedExplosionAttribute -> ShowS)
-> (ExtendedExplosionAttribute -> String)
-> ([ExtendedExplosionAttribute] -> ShowS)
-> Show ExtendedExplosionAttribute
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtendedExplosionAttribute] -> ShowS
$cshowList :: [ExtendedExplosionAttribute] -> ShowS
show :: ExtendedExplosionAttribute -> String
$cshow :: ExtendedExplosionAttribute -> String
showsPrec :: Int -> ExtendedExplosionAttribute -> ShowS
$cshowsPrec :: Int -> ExtendedExplosionAttribute -> ShowS
Show)

$(deriveJson ''ExtendedExplosionAttribute)