{-# LANGUAGE TemplateHaskell #-}

module Rattletrap.Type.DemolishAttribute
  ( DemolishAttribute(..)
  )
where

import Rattletrap.Type.Common
import Rattletrap.Type.Vector
import Rattletrap.Type.Word32le

data DemolishAttribute = DemolishAttribute
  { DemolishAttribute -> Bool
demolishAttributeAttackerFlag :: Bool
  , DemolishAttribute -> Word32le
demolishAttributeAttackerActorId :: Word32le
  , DemolishAttribute -> Bool
demolishAttributeVictimFlag :: Bool
  , DemolishAttribute -> Word32le
demolishAttributeVictimActorId :: Word32le
  , DemolishAttribute -> Vector
demolishAttributeAttackerVelocity :: Vector
  , DemolishAttribute -> Vector
demolishAttributeVictimVelocity :: Vector
  } deriving (DemolishAttribute -> DemolishAttribute -> Bool
(DemolishAttribute -> DemolishAttribute -> Bool)
-> (DemolishAttribute -> DemolishAttribute -> Bool)
-> Eq DemolishAttribute
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DemolishAttribute -> DemolishAttribute -> Bool
$c/= :: DemolishAttribute -> DemolishAttribute -> Bool
== :: DemolishAttribute -> DemolishAttribute -> Bool
$c== :: DemolishAttribute -> DemolishAttribute -> Bool
Eq, Eq DemolishAttribute
Eq DemolishAttribute
-> (DemolishAttribute -> DemolishAttribute -> Ordering)
-> (DemolishAttribute -> DemolishAttribute -> Bool)
-> (DemolishAttribute -> DemolishAttribute -> Bool)
-> (DemolishAttribute -> DemolishAttribute -> Bool)
-> (DemolishAttribute -> DemolishAttribute -> Bool)
-> (DemolishAttribute -> DemolishAttribute -> DemolishAttribute)
-> (DemolishAttribute -> DemolishAttribute -> DemolishAttribute)
-> Ord DemolishAttribute
DemolishAttribute -> DemolishAttribute -> Bool
DemolishAttribute -> DemolishAttribute -> Ordering
DemolishAttribute -> DemolishAttribute -> DemolishAttribute
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 :: DemolishAttribute -> DemolishAttribute -> DemolishAttribute
$cmin :: DemolishAttribute -> DemolishAttribute -> DemolishAttribute
max :: DemolishAttribute -> DemolishAttribute -> DemolishAttribute
$cmax :: DemolishAttribute -> DemolishAttribute -> DemolishAttribute
>= :: DemolishAttribute -> DemolishAttribute -> Bool
$c>= :: DemolishAttribute -> DemolishAttribute -> Bool
> :: DemolishAttribute -> DemolishAttribute -> Bool
$c> :: DemolishAttribute -> DemolishAttribute -> Bool
<= :: DemolishAttribute -> DemolishAttribute -> Bool
$c<= :: DemolishAttribute -> DemolishAttribute -> Bool
< :: DemolishAttribute -> DemolishAttribute -> Bool
$c< :: DemolishAttribute -> DemolishAttribute -> Bool
compare :: DemolishAttribute -> DemolishAttribute -> Ordering
$ccompare :: DemolishAttribute -> DemolishAttribute -> Ordering
$cp1Ord :: Eq DemolishAttribute
Ord, Int -> DemolishAttribute -> ShowS
[DemolishAttribute] -> ShowS
DemolishAttribute -> String
(Int -> DemolishAttribute -> ShowS)
-> (DemolishAttribute -> String)
-> ([DemolishAttribute] -> ShowS)
-> Show DemolishAttribute
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DemolishAttribute] -> ShowS
$cshowList :: [DemolishAttribute] -> ShowS
show :: DemolishAttribute -> String
$cshow :: DemolishAttribute -> String
showsPrec :: Int -> DemolishAttribute -> ShowS
$cshowsPrec :: Int -> DemolishAttribute -> ShowS
Show)

$(deriveJson ''DemolishAttribute)