{-# LANGUAGE TemplateHaskell #-}

module Rattletrap.Type.AppliedDamageAttribute
  ( AppliedDamageAttribute(..)
  )
where

import Rattletrap.Type.Common
import Rattletrap.Type.Int32le
import Rattletrap.Type.Vector
import Rattletrap.Type.Word8le

data AppliedDamageAttribute = AppliedDamageAttribute
  { AppliedDamageAttribute -> Word8le
appliedDamageAttributeUnknown1 :: Word8le
  , AppliedDamageAttribute -> Vector
appliedDamageAttributeLocation :: Vector
  , AppliedDamageAttribute -> Int32le
appliedDamageAttributeUnknown3 :: Int32le
  , AppliedDamageAttribute -> Int32le
appliedDamageAttributeUnknown4 :: Int32le
  } deriving (AppliedDamageAttribute -> AppliedDamageAttribute -> Bool
(AppliedDamageAttribute -> AppliedDamageAttribute -> Bool)
-> (AppliedDamageAttribute -> AppliedDamageAttribute -> Bool)
-> Eq AppliedDamageAttribute
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AppliedDamageAttribute -> AppliedDamageAttribute -> Bool
$c/= :: AppliedDamageAttribute -> AppliedDamageAttribute -> Bool
== :: AppliedDamageAttribute -> AppliedDamageAttribute -> Bool
$c== :: AppliedDamageAttribute -> AppliedDamageAttribute -> Bool
Eq, Eq AppliedDamageAttribute
Eq AppliedDamageAttribute
-> (AppliedDamageAttribute -> AppliedDamageAttribute -> Ordering)
-> (AppliedDamageAttribute -> AppliedDamageAttribute -> Bool)
-> (AppliedDamageAttribute -> AppliedDamageAttribute -> Bool)
-> (AppliedDamageAttribute -> AppliedDamageAttribute -> Bool)
-> (AppliedDamageAttribute -> AppliedDamageAttribute -> Bool)
-> (AppliedDamageAttribute
    -> AppliedDamageAttribute -> AppliedDamageAttribute)
-> (AppliedDamageAttribute
    -> AppliedDamageAttribute -> AppliedDamageAttribute)
-> Ord AppliedDamageAttribute
AppliedDamageAttribute -> AppliedDamageAttribute -> Bool
AppliedDamageAttribute -> AppliedDamageAttribute -> Ordering
AppliedDamageAttribute
-> AppliedDamageAttribute -> AppliedDamageAttribute
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 :: AppliedDamageAttribute
-> AppliedDamageAttribute -> AppliedDamageAttribute
$cmin :: AppliedDamageAttribute
-> AppliedDamageAttribute -> AppliedDamageAttribute
max :: AppliedDamageAttribute
-> AppliedDamageAttribute -> AppliedDamageAttribute
$cmax :: AppliedDamageAttribute
-> AppliedDamageAttribute -> AppliedDamageAttribute
>= :: AppliedDamageAttribute -> AppliedDamageAttribute -> Bool
$c>= :: AppliedDamageAttribute -> AppliedDamageAttribute -> Bool
> :: AppliedDamageAttribute -> AppliedDamageAttribute -> Bool
$c> :: AppliedDamageAttribute -> AppliedDamageAttribute -> Bool
<= :: AppliedDamageAttribute -> AppliedDamageAttribute -> Bool
$c<= :: AppliedDamageAttribute -> AppliedDamageAttribute -> Bool
< :: AppliedDamageAttribute -> AppliedDamageAttribute -> Bool
$c< :: AppliedDamageAttribute -> AppliedDamageAttribute -> Bool
compare :: AppliedDamageAttribute -> AppliedDamageAttribute -> Ordering
$ccompare :: AppliedDamageAttribute -> AppliedDamageAttribute -> Ordering
$cp1Ord :: Eq AppliedDamageAttribute
Ord, Int -> AppliedDamageAttribute -> ShowS
[AppliedDamageAttribute] -> ShowS
AppliedDamageAttribute -> String
(Int -> AppliedDamageAttribute -> ShowS)
-> (AppliedDamageAttribute -> String)
-> ([AppliedDamageAttribute] -> ShowS)
-> Show AppliedDamageAttribute
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AppliedDamageAttribute] -> ShowS
$cshowList :: [AppliedDamageAttribute] -> ShowS
show :: AppliedDamageAttribute -> String
$cshow :: AppliedDamageAttribute -> String
showsPrec :: Int -> AppliedDamageAttribute -> ShowS
$cshowsPrec :: Int -> AppliedDamageAttribute -> ShowS
Show)

$(deriveJson ''AppliedDamageAttribute)