File size: 4,286 Bytes
b3ea2a5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18f4e71
b3ea2a5
18f4e71
b3ea2a5
 
 
18f4e71
 
b3ea2a5
 
18f4e71
 
b3ea2a5
 
18f4e71
 
b3ea2a5
 
18f4e71
b3ea2a5
 
 
 
 
 
 
 
 
 
 
18f4e71
b3ea2a5
 
18f4e71
b3ea2a5
 
 
 
 
 
 
 
18f4e71
 
b3ea2a5
 
18f4e71
b3ea2a5
18f4e71
b3ea2a5
 
18f4e71
 
b3ea2a5
 
18f4e71
b3ea2a5
 
 
 
 
 
 
 
 
18f4e71
b3ea2a5
 
18f4e71
b3ea2a5
18f4e71
b3ea2a5
 
18f4e71
 
 
b3ea2a5
18f4e71
b3ea2a5
 
18f4e71
 
b3ea2a5
 
18f4e71
 
b3ea2a5
 
18f4e71
b3ea2a5
18f4e71
b3ea2a5
 
18f4e71
 
b3ea2a5
 
 
 
18f4e71
b3ea2a5
 
 
 
 
 
 
 
 
 
 
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
from tools.obr import (
    create_shape,
    create_token,
    game_state,
    move_item,
    delete_item,
    fill_fog,
    clear_fog,
    add_token_light,
    animate_token_viewport,
    insert_map,
    clean_map
)
import time

# === TEST FUNCTION ===
def test_function(tab_id):
    """Test function that demonstrates all OBR functionalities"""
    results = []
    
    try:
        # 1. Clean the map
        results.append({"step": "1. Cleaning map", "result": clean_map(tab_id)})
        time.sleep(1)
        
        # 2. Clear fog
        results.append({"step": "2. Clearing fog", "result": clear_fog(tab_id)})
        time.sleep(1)

        # 3. Insert map
        results.append({"step": "3. Inserting map", "result": insert_map(tab_id, "FOREST")})
        time.sleep(1)

        # 4. Create geometric shapes (red circles in diagonal)
        for i in range(0, 30, 6):
            shape_result = create_shape(
                width=2, 
                height=2, 
                x=i, 
                y=i, 
                shape_type="CIRCLE", 
                fill_color="#FF0000", 
                stroke_color="#FF0000", 
                tab_id=tab_id
            )
            results.append({"step": f"4. Creating circle at ({i},{i})", "result": shape_result})
            time.sleep(0.5)

        # 5. Create main token (Knight)
        knight_result = create_token(
            name="Knight",
            type="KNIGHT",
            x=0,
            y=0,
            size=1,
            tab_id=tab_id
        )
        knight_id = [i for i in knight_result['result']["gameState"]['images'] if i["name"] == "Knight"][0]["id"]        
        results.append({"step": "5. Creating Knight", "result": knight_result, "token_id": knight_id})
        time.sleep(1)

        # 6. Move the knight to intermediate position
        if knight_id:
            results.append({"step": "6. Moving Knight to (14,14)", "result": move_item(tab_id, knight_id, 14, 14)})
            time.sleep(1)

            # 7. Move the knight to final position
            results.append({"step": "7. Moving Knight to (29,29)", "result": move_item(tab_id, knight_id, 29, 29)})
            time.sleep(1)

        # 8. Create dragon token
        dragon_result = create_token(
            name="Red Dragon",
            type="DRAGON",
            x=14,
            y=14,
            size=3,
            tab_id=tab_id
        )
        dragon_id = [i for i in dragon_result['result']["gameState"]['images'] if i["name"] == "Red Dragon"][0]["id"]   
        results.append({"step": "8. Creating Red Dragon", "result": dragon_result, "token_id": dragon_id})
        time.sleep(1)

        # 9. Animate viewport to dragon
        if dragon_id:
            results.append({"step": "9. Animating viewport to dragon", "result": animate_token_viewport(tab_id, dragon_id)})
            time.sleep(1)

        # 10. Fill with fog
        results.append({"step": "10. Filling with fog", "result": fill_fog(tab_id)})
        time.sleep(1)        # 11. Add light to knight
        if knight_id:
            results.append({"step": "11. Adding light to Knight", "result": add_token_light(tab_id, knight_id, 5)})
            time.sleep(1)

            # 12. Move knight back to center
            results.append({"step": "12. Moving Knight back to (14,14)", "result": move_item(tab_id, knight_id, 14, 14)})
            time.sleep(1)

            # 13. Animate viewport to knight
            results.append({"step": "13. Animating viewport to Knight", "result": animate_token_viewport(tab_id, knight_id)})
            time.sleep(1)

        # 14. Get final game state
        final_state = game_state(tab_id)
        results.append({"step": "14. Final game state", "result": final_state})
        time.sleep(5)

        #15. Clean map at the end
        results.append({"step": "15. Cleaning map", "result": clean_map(tab_id)})

        
        return {
            "success": True,
            "message": "Test completed successfully",
            "total_steps": len(results),
            "results": results
        }
        
    except Exception as e:
        return {
            "success": False,
            "error": str(e),
            "completed_steps": len(results),
            "results": results
        }