aboutsummaryrefslogtreecommitdiff
path: root/kennel/engine/entities/cat.py
blob: b5a8c6c7672afa68bdb293ca0c34662ffbd347da (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
from kennel.engine.components.position import Position
from kennel.engine.components.sprite_sheet import SpriteSheet, SpriteSpec
from enum import Enum
from .entity import Entity, EntityType


class CatState(Enum):
    IDLE = "IDLE"
    FROLICKING = "FROLICKING"
    EEPY = "EEPY"
    ALERT = "ALERT"
    CHASING_CURSOR = "CHASING_CURSOR"
    CHASING_CAT = "CHASING_CAT"
    SCRATCHING = "SCRATCHING"
    ITCHY = "ITCHY"


class Cat(Entity):
    def __init__(self, id: str, spritesheet_source: str):
        state_to_spritespec = self.get_state_to_spritespec()
        components = [
            Position(0, 0),
            SpriteSheet(spritesheet_source, state_to_spritespec, CatState.ALERT),
        ]

        super().__init__(EntityType.CAT, id, components)

    def get_state_to_spritespec(self):
        return {CatState.ALERT: SpriteSpec(100, 0, 0, 200, 40, 5)}


#
# # IDLE, FROLICKING, EEPY, ALERT, CHASING_CURSOR, CHASING_CAT, SCRATCHING, ITCHY
# state_stochastic_matrix = [ [1, 0]
#     # IDLE
#     [0.5, 0.1, 0.1, 0.1, 0.1, 0.05, 0.05, 0],
#     # FROLICKING
#     [0.1, 0.5, 0.1, 0.1, 0.1, 0.05, 0.05, 0],
#     # EEPY
#     [0.1, 0.1, 0.5, 0.1, 0.1, 0.05, 0.05, 0],
#     # ALERT
#     [0.1, 0.1, 0.1, 0.5, 0.1, 0.05, 0.05, 0],
#     # CHASING_CURSOR
#     [0.1, 0.1, 0.1, 0.1, 0.5, 0.05, 0.05, 0],
#     # CHASING_CAT
#     [0.1, 0.1, 0.1, 0.1, 0.1, 0.5, 0.05, 0],
#     # SCRATCHING
#     [0.1, 0.1, 0.1, 0.1, 0.1, 0.05, 0.5, 0],
#     # ITCHY
#     [0, 0, 0, 0, 0, 0, 0, 1],
# ]
#
#

#
#