From 917f9c29063961c6825c4253422db946e1f2350f Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Fri, 2 Dec 2016 12:04:49 +0100 Subject: =?UTF-8?q?Doppelg=C3=A4nger?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Sequence/Contact/Archetypes.hs | 45 ++++++++++++++++++++++++++++++++++ src/Sequence/Contact/Tests.hs | 2 ++ src/Sequence/Contact/Types/Internal.hs | 42 +++++++++++++++++++++++++++++++ src/Sequence/Utils.hs | 2 ++ 4 files changed, 91 insertions(+) (limited to 'src/Sequence') diff --git a/src/Sequence/Contact/Archetypes.hs b/src/Sequence/Contact/Archetypes.hs index e54c50f..4e372ee 100644 --- a/src/Sequence/Contact/Archetypes.hs +++ b/src/Sequence/Contact/Archetypes.hs @@ -65,6 +65,8 @@ archetypes = [ ("Requisite", prop) , ("Silkoid", rSilicoid) , ("Mega-Silikoid", megaSilicoid) + , ("Doppelgänger", doppelgänger) + , ("ATV", atv) , ("FAV", fav) , ("AUV", auv) @@ -841,3 +843,46 @@ megaSilicoid = silicoid armor' Cold = return 14 armor' Toxic = return 20 armor' Explosive = return 12 + +doppelgänger = Doppelgänger + { _sAStrength = 18 + , _sAEndurance = 25 + , _sAMass = 5 + , _sAReflexes = 10 + , _sAMobility = 12 + , _sADexterity = 4 + , _sAIntelligence = 5 + , _sACharisma = 0 + , _sAPerception = 10 + , _sAWillpower = 10 + + , _sSGrotesqueAssault = 85 + , _sSStealth = 77 + , _sSInterface = 20 + , _sSSpacecraft = 75 + + , _sMaxVitality = 125 + , _sSeqVal = 42 + d 10 + , _sPainTolerance = 45 + , _sFatigueTolerance = 50 + + , _sSeqEpsilon = False + + , _sHitzones = [] + , _sArmor = const def + , _sCripple = const def + + , _sDamage = const 0 + , _sFatigue = 0 + + , _sSequence = Nothing + , _sTimer = Nothing + + , _sPainShock = def + , _sFatigueShock = def + + , _sExtraSkills = [] + , _sModifiers = damageMods + + , _sEquipment = [] + } diff --git a/src/Sequence/Contact/Tests.hs b/src/Sequence/Contact/Tests.hs index 561f5ad..d10819e 100644 --- a/src/Sequence/Contact/Tests.hs +++ b/src/Sequence/Contact/Tests.hs @@ -81,6 +81,8 @@ tests = do , test "Zielerfassung" $ sSTargeting . skillTest , test "Verständnis" $ sSComprehension . skillTest + , test "Grotesker Angriff" $ sSGrotesqueAssault . skillTest + , test "Zerfleischen" $ sSMauling . skillTest , test "Ätzende Ausscheidung" $ sSExcreting . skillTest ] diff --git a/src/Sequence/Contact/Types/Internal.hs b/src/Sequence/Contact/Types/Internal.hs index 40bb65f..eaa1e19 100644 --- a/src/Sequence/Contact/Types/Internal.hs +++ b/src/Sequence/Contact/Types/Internal.hs @@ -311,5 +311,47 @@ data Stats = Prop , _sExtraSkills :: Map (CI String) (FormulaM Stats Test) , _sModifiers :: Set Modifier + , _sEquipment :: Map (CI String) Dynamic + } + | Doppelgänger + { _sAStrength + , _sAEndurance + , _sAMass + , _sAReflexes + , _sAMobility + , _sADexterity + , _sAIntelligence + , _sACharisma + , _sAPerception + , _sAWillpower + + , _sSGrotesqueAssault + , _sSStealth + , _sSInterface + , _sSSpacecraft + + , _sMaxVitality + , _sSeqVal + , _sPainTolerance + , _sFatigueTolerance :: Formula Stats + + , _sSeqEpsilon :: Bool + + , _sHitzones :: Table Hitzone + , _sArmor :: Hitzone -> Armor + , _sCripple :: Hitzone -> ShockEffect + + , _sDamage :: Hitzone -> Int + , _sFatigue :: Int + + , _sSequence :: Maybe SeqVal + , _sTimer :: Maybe Timer + + , _sPainShock :: ShockEffect + , _sFatigueShock :: ShockEffect + + , _sExtraSkills :: Map (CI String) (FormulaM Stats Test) + , _sModifiers :: Set Modifier + , _sEquipment :: Map (CI String) Dynamic } diff --git a/src/Sequence/Utils.hs b/src/Sequence/Utils.hs index eac71e9..f51bcd8 100644 --- a/src/Sequence/Utils.hs +++ b/src/Sequence/Utils.hs @@ -234,6 +234,8 @@ statAccessors = [ ("Stärke", preview sAStrength) , ("Zerfleischen", preview sSMauling) , ("Ätzende Ausscheidung", preview sSExcreting) + + , ("Grotesker Angriff", preview sSGrotesqueAssault) , ("Maximale Vitalität", preview sMaxVitality) , ("Sequenzwert", preview sSeqVal) -- cgit v1.2.3