From 19d149e2acbe08f411c9686eb645e249d324b24c Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Wed, 6 Jul 2016 19:36:55 +0200 Subject: additional archetypes --- src/Sequence/Contact/Archetypes.hs | 69 +++++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/Sequence/Contact/Archetypes.hs b/src/Sequence/Contact/Archetypes.hs index 3340102..6c13738 100644 --- a/src/Sequence/Contact/Archetypes.hs +++ b/src/Sequence/Contact/Archetypes.hs @@ -39,14 +39,19 @@ instance Argument Entity GameState where arg = return . fmap (flip (set eStats) def) . flip Map.lookup archetypes . CI.mk archetypes :: Map (CI String) Stats -archetypes = [ ("Mensch", human) +archetypes = [ ("Requisite", prop) + , ("Spieler", player) + + , ("Mensch", human) , ("Hund", dog) , ("Delfin", dolphin) , ("Kind von Mu", childOfMu) , ("Milizenschläger", milizenschlaeger) + , ("Warlord", warlord) , ("Kindersoldat", kindersoldat) , ("Passant", passant) + , ("Großer Hund", grosserHund) ] cTable :: Ord v => [(Integer, Integer, v)] -> Table v @@ -93,6 +98,27 @@ damageMods = [ Modifier "Schmerz" $ damageMod sTotalDamage sPainTolerance vitBar :: Ratio Int -> Traversal' Stats (Formula Stats) vitBar prop = sMaxVitality . mapping (scaled prop) +prop = Prop + { _sSeqEpsilon = False + + , _sHitzones = [] + , _sArmor = const def + , _sCripple = const def + + , _sDamage = const 0 + , _sFatigue = 0 + + , _sPainShock = def + , _sFatigueShock = def + + , _sSequence = Nothing + + , _sExtraSkills = [] + , _sModifiers = [] + } + +player = prop { _sSeqEpsilon = True } + human = Humanoid { _sAStrength = vStrength , _sAEndurance = vEndurance @@ -417,6 +443,20 @@ childOfMu = human & sSeqVal +~ d 10 & sPainTolerance -~ vMass `quot'` 2 +grosserHund = dog + & sAStrength .~ 5 + & sAEndurance .~ 8 + & sAMass .~ 4 + & sAReflexes .~ 9 + & sAMobility .~ 12 + & sADexterity .~ 1 + & sAIntelligence .~ 1 + & sACharisma .~ 1 + & sAPerception .~ 6 + & sAWillpower .~ 3 + & sSBiting +~ 6 + & sSSearching +~ 15 + milizenschlaeger = human & sAStrength .~ 7 & sAEndurance .~ 6 @@ -447,6 +487,33 @@ milizenschlaeger = human armor "Torso" Explosive = 7 armor _ _ = 0 +warlord = human + & sAStrength .~ 8 + & sAEndurance .~ 8 + & sAMass .~ 10 + & sAReflexes .~ 6 + & sAMobility .~ 7 + & sADexterity .~ 5 + & sAIntelligence .~ 5 + & sACharisma .~ 7 + & sAPerception .~ 5 + & sAWillpower .~ 9 + & sSFirearms +~ 87 + & sSUnarmedMelee +~ 36 + & sSArmedMelee +~ 30 + & sSThrownWeapons +~ 10 + & sSStealth +~ 33 + & sSLeadership +~ 50 + & sSWheeled +~ 36 + & sSHovercraft +~ 28 + & sArmor .~ armor + where + armor "Torso" Ballistic = 14 + armor "Torso" Piercing = 4 + armor "Torso" Blunt = 6 + armor "Torso" Explosive = 2 + armor _ _ = 0 + kindersoldat = human & sAStrength .~ 4 & sAEndurance .~ 4 -- cgit v1.2.3