module Rattletrap.Type.Attribute.AppliedDamage where import qualified Rattletrap.BitGet as BitGet import qualified Rattletrap.BitPut as BitPut import qualified Rattletrap.Schema as Schema import qualified Rattletrap.Type.I32 as I32 import qualified Rattletrap.Type.U8 as U8 import qualified Rattletrap.Type.Vector as Vector import qualified Rattletrap.Type.Version as Version import qualified Rattletrap.Utility.Json as Json data AppliedDamage = AppliedDamage { AppliedDamage -> U8 unknown1 :: U8.U8, AppliedDamage -> Vector location :: Vector.Vector, AppliedDamage -> I32 unknown3 :: I32.I32, AppliedDamage -> I32 unknown4 :: I32.I32 } deriving (AppliedDamage -> AppliedDamage -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: AppliedDamage -> AppliedDamage -> Bool $c/= :: AppliedDamage -> AppliedDamage -> Bool == :: AppliedDamage -> AppliedDamage -> Bool $c== :: AppliedDamage -> AppliedDamage -> Bool Eq, Int -> AppliedDamage -> ShowS [AppliedDamage] -> ShowS AppliedDamage -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [AppliedDamage] -> ShowS $cshowList :: [AppliedDamage] -> ShowS show :: AppliedDamage -> String $cshow :: AppliedDamage -> String showsPrec :: Int -> AppliedDamage -> ShowS $cshowsPrec :: Int -> AppliedDamage -> ShowS Show) instance Json.FromJSON AppliedDamage where parseJSON :: Value -> Parser AppliedDamage parseJSON = forall a. String -> (Object -> Parser a) -> Value -> Parser a Json.withObject String "AppliedDamage" forall a b. (a -> b) -> a -> b $ \Object object -> do U8 unknown1 <- forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown1" Vector location <- forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "location" I32 unknown3 <- forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown3" I32 unknown4 <- forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown4" forall (f :: * -> *) a. Applicative f => a -> f a pure AppliedDamage {U8 unknown1 :: U8 unknown1 :: U8 unknown1, Vector location :: Vector location :: Vector location, I32 unknown3 :: I32 unknown3 :: I32 unknown3, I32 unknown4 :: I32 unknown4 :: I32 unknown4} instance Json.ToJSON AppliedDamage where toJSON :: AppliedDamage -> Value toJSON AppliedDamage x = [(Key, Value)] -> Value Json.object [ forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown1" forall a b. (a -> b) -> a -> b $ AppliedDamage -> U8 unknown1 AppliedDamage x, forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "location" forall a b. (a -> b) -> a -> b $ AppliedDamage -> Vector location AppliedDamage x, forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown3" forall a b. (a -> b) -> a -> b $ AppliedDamage -> I32 unknown3 AppliedDamage x, forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown4" forall a b. (a -> b) -> a -> b $ AppliedDamage -> I32 unknown4 AppliedDamage x ] schema :: Schema.Schema schema :: Schema schema = String -> Value -> Schema Schema.named String "attribute-applied-damage" forall a b. (a -> b) -> a -> b $ [((Key, Value), Bool)] -> Value Schema.object [ (forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown1" forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema U8.schema, Bool True), (forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "location" forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema Vector.schema, Bool True), (forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown3" forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema I32.schema, Bool True), (forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown4" forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema I32.schema, Bool True) ] bitPut :: AppliedDamage -> BitPut.BitPut bitPut :: AppliedDamage -> BitPut bitPut AppliedDamage appliedDamageAttribute = U8 -> BitPut U8.bitPut (AppliedDamage -> U8 unknown1 AppliedDamage appliedDamageAttribute) forall a. Semigroup a => a -> a -> a <> Vector -> BitPut Vector.bitPut (AppliedDamage -> Vector location AppliedDamage appliedDamageAttribute) forall a. Semigroup a => a -> a -> a <> I32 -> BitPut I32.bitPut (AppliedDamage -> I32 unknown3 AppliedDamage appliedDamageAttribute) forall a. Semigroup a => a -> a -> a <> I32 -> BitPut I32.bitPut (AppliedDamage -> I32 unknown4 AppliedDamage appliedDamageAttribute) bitGet :: Version.Version -> BitGet.BitGet AppliedDamage bitGet :: Version -> BitGet AppliedDamage bitGet Version version = forall a. String -> BitGet a -> BitGet a BitGet.label String "AppliedDamage" forall a b. (a -> b) -> a -> b $ do U8 unknown1 <- forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown1" BitGet U8 U8.bitGet Vector location <- forall a. String -> BitGet a -> BitGet a BitGet.label String "location" forall a b. (a -> b) -> a -> b $ Version -> BitGet Vector Vector.bitGet Version version I32 unknown3 <- forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown3" BitGet I32 I32.bitGet I32 unknown4 <- forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown4" BitGet I32 I32.bitGet forall (f :: * -> *) a. Applicative f => a -> f a pure AppliedDamage {U8 unknown1 :: U8 unknown1 :: U8 unknown1, Vector location :: Vector location :: Vector location, I32 unknown3 :: I32 unknown3 :: I32 unknown3, I32 unknown4 :: I32 unknown4 :: I32 unknown4}