File size: 1,175 Bytes
0f3ad1b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from player import Player
from utils import *

class Node:
    def __init__(self, title: str, description: str, filelist: list[str], effect: dict = None, route = None, default: int = -1):
        self.title = title
        self.description = description
        self.filelist = filelist
        self.effect = effect
        self.route = route
        self.default = default

    def _next(self, result: str, player: Player) -> int:
        result = result.upper()

        paired = self.effect.get(result, None) if self.effect is not None else None
        if paired is not None:
            for (change, attr, amount) in paired:
                change(player, attr, amount)

        if self.route is None:
            return -1
        if isinstance(self.route, dict):
            next_node = self.route.get(result, self.default)
        else:
            print('Here')
            next_node = self.route(player)
        return next_node - 1 if next_node >= 0 else -1
    
    def get_title(self) -> str:
        return self.title
    
    def get_description(self) -> str:
        return self.description

    def get_images(self) -> list[str]:
        return self.filelist