toconnell / kdm-manager

An interactive campaign manager for the game "Monster", by Kingdom Death. Development blog and release notes at https://blog.kdm-manager.com This project has no affiliation with Kingdom Death and is a totally independent, fan-maintained project.
http://kdm-manager.com
Other
26 stars 11 forks source link

AI Cards #528

Closed superpowered closed 5 years ago

superpowered commented 5 years ago

Trying to draft up a template for the AI cards. Starting with White Lion, but fully expect that there will be tons of use cases to account for in the other decks.

'revenge': {
        'name': 'Revenge',
        'copies': 1,
        'deck': 'white_lion' #TODO: 
        'class': 'B' #TODO: class?
        'actions': [
            {
                'type': 'pick_target',
                'name': 'Pick <span class="target">Target</span>'
                'pick_target': [
                    'last survivor to wound, in range',
                    'closest threat, in field of view',
                    'no target: <b class="instinct">sniff</b>'
                ],
            },
            {
                'type': 'flow'
            },
            {
                'type': 'attack_profile',
                'name': 'Move & Attack <span class="target">Target</span>',
                'speed': 2,
                'accuracy': '2+', #todo: should this just be a number?
                'damage': 2,
                'triggers': [
                    {
                        'type': 'after_damage',
                        'name': 'After Damage',
                        'effect': 'the White Lion isolates its prey. Full move the White Lion away from all threats. Target suffers <b class="special-rule">grab</b>' #TODO: is grab a special-rule?
                    }
                ]
            },
        ],
        #TODO: not sold on this name
        'boxed_text': '<b class="special-rules">Grab:</b> Place target knocked down in front of the monster. Target suffers 1 damage per monster level.'
    },
    'combo_claw': {
        'name': 'Combo Claw',
        'copies': 1,
        'deck': 'white_lion',
        'class': 'B',
        'actions': [
            {
                'type': 'pick_target',
                'name': 'Pick <span class="target">Target</span>',
                'pick_target': [
                    'closest threat, facing, in range',
                    'closest threat, in field of view',
                    'no target: <b class="instinct">sniff</b>'
                ],
            },
            {
                'type': 'flow'
            },
             {
                'type': 'attack_profile',
                'name': 'Move & Attack <span class="target">Target</span>',
                'speed': 2,
                'accuracy': '4+', #todo: should this just be a number?
                'damage': 1,
            },
            {
                'type': 'flow'
            },
            {
                'type': 'effect', #TODO: naming. rule? check? conditional?
                'effect': 'If this attack deals damage more than once, draw <span class="icon ai-icon">AI</span>.'
            }
        ],
        'persistent_injury': '<span class="skull-icon"></span> <b class="persistent-injury">Lost Hand:</b> The White Lion stares sadly at its bloody stump. Any adjacent survivors gain +1 understanding, once per lifetime.' 
    },
    'alert': {
        'name': 'Alert',
        'copies': 1,
        'deck': 'white_lion',
        'class': 'A',
        'type': 'mood',
        'actions': [
            {
                'type': 'effect',
                'effect': 'When a survivor moves into a space within the <b class="special-rule">Zone of Death</b>, stop their movement, they gain the <b class="special-rule">Priority Target</b> token.<br/ > Discard Alert and perform <b class="special-rule">Basic Action.</b>',
            },
            {
                'type': 'zone_of_death',
                'zone_of_death': {
                    'grid_size': {
                        'height': 12,
                        'width': 22
                    }
                    #top left of grid is 0,0
                    'monster_position': {
                        'x': 11,
                        'y': 6,
                        'height': 2,
                        'width': 2,
                        'facing': 'up' #down, left, right..
                    },
                    'areas': [
                        {
                            'color': 'blue',
                            'x': 7,
                            'y': 2,
                            'height': 10,
                            'width': 10
                        }
                    ]
                }
            },
            {
                'type': 'alert-flow',
            },
            {
                'type': 'effect',
                'effect': 'When the monster is knocked down, discard Alert.'
            }
        ]
    }
superpowered commented 5 years ago

King's man has an area of effect with a different name. zone_of_death should be changed to area_of_effect and then given a name key.

superpowered commented 5 years ago

add an art_box type to actions.

{
    'type': 'art_box',
    'key': 'cuddly_lion_eating_dismembered_person'
}
superpowered commented 5 years ago

Butcher has "The Butcher is invincible." trait in huge text. Could either list this as an effect and wrap the text in like an <h1> or make it a separate action block type.

superpowered commented 5 years ago

Butcher: Dreaded Trophies has an ordered list that uses the zebra styling.

{
    'type': 'ordered_list',
    'items': [
        'All attack profiles gain....',
        '+1 movement token and..'
    ]
}

EDIT: per watcher, items should be objects with a key and text (to handle lvl.1, lvl.2 etc)

superpowered commented 5 years ago

Some moods and survivor status` have token counts.

{
    'type': 'token_holder',
    'count:' 3
}

'infinite' as an option for count 'survivor' as an option?? (Slender man)

superpowered commented 5 years ago

Some Effect blocks have Titles. (Butcher's Gaze of Truth) effect actions should have an optional name key

superpowered commented 5 years ago

King's Man area of effect's can have a direction associated with them. direction key of 'left', 'right', 'up', or 'down' will be needed.

will also need to place singular arrows on grid. Probably need to give colored grid items a type

{
    'type': 'affected_area',
    'color': 'blue',
    'x': 7,
    'y': 2,
    'height': 10,
    'width': 10
},
{
    'type': 'arrow',
    'direction': 'down',
    'color': 'white',
    'x': 4,
    'y': 4,
    'height': 1,
    'width': 1,
}
superpowered commented 5 years ago

Will need a roll_table action type. Feeling less and less confident about the name action for this key.

Can likely use the same table format from https://github.com/toconnell/kdm-manager/issues/526

superpowered commented 5 years ago

optional background key needed for gold smoke knight. (color string)

superpowered commented 5 years ago

triggers will need an icon key for King's Man

superpowered commented 5 years ago

Smash Zone and Ash Zone use cases are technically covered on GSK, but would be kind of a pain to key in, (drawing out like 7 rectangles). Maybe there's a better solution here.

Will need a CSS class for labeling colored items in text

superpowered commented 5 years ago

Will need a flavor text action for Manhunter

toconnell commented 5 years ago

Hey @superpowered sorry I've been out of the loop for a while: I've had to deal with some personal stuff.

I wish I could have gotten back to this sooner, but AI, Hit Location and Hunt Event cards (the monster decks basically) are some the game assets that I agreed not to reproduce or replicate in my applications and services (I'll spare you the details, but I've had some off-the-record talks with some KD people who I can't name here, and we have a sort of...standing agreement about a few things).

At a high level, I basically have been asked (and I agreed) to avoid reproducing rules in such a way that would allow people to simulate the game or recreate it digitally and to limit my scope to survivor management.

It's a pretty blurry line, but I was given some specifics. For example, the actual art assets developed by KD are 100% off limits. There are also some other areas of the rulebook that I have also not agreed to reproduce as well, including anything on the Hunt Event table, some of the other specific rules tables, etc.

Finally, the game assets that are currently reproduced/represented in the API basically form the limit: anything that's not in there now probably cannot be in there.

Sorry again for not making this clearer before!

superpowered commented 5 years ago

Ah, that makes sense. All good. I didn't spend too much time on it.