54 lines
1.2 KiB
GDScript
54 lines
1.2 KiB
GDScript
extends "res://addons/gut/test.gd"
|
|
|
|
const GameState = preload("res://scripts/state/game_state.gd")
|
|
|
|
|
|
func test_add_item_accumulates():
|
|
var s = GameState.new()
|
|
s.add_item("coin", 3)
|
|
s.add_item("coin", 2)
|
|
assert_eq(s.inventory["coin"], 5)
|
|
|
|
|
|
func test_npc_disposition_clamps():
|
|
var s = GameState.new()
|
|
s.set_npc_disposition("oda_fenn", 250)
|
|
assert_eq(s.npc_dispositions["oda_fenn"], 100)
|
|
|
|
|
|
func test_drift_luck_respects_base():
|
|
var s = GameState.new()
|
|
s.luck_base = 10
|
|
s.luck = 10
|
|
s.drift_luck(100)
|
|
assert_eq(s.luck, 13)
|
|
|
|
|
|
func test_luck_descriptor_delegates():
|
|
var s = GameState.new()
|
|
s.luck = 4
|
|
assert_eq(s.luck_descriptor(), "Fortune spits on you")
|
|
|
|
|
|
func test_remove_item_decrements_and_floors_at_zero():
|
|
var gs = GameState.new()
|
|
gs.add_item("coin", 3)
|
|
gs.remove_item("coin", 2)
|
|
assert_eq(gs.inventory.get("coin", 0), 1)
|
|
gs.remove_item("coin", 5)
|
|
assert_eq(gs.inventory.get("coin", 0), 0)
|
|
|
|
|
|
func test_revealed_topics_tracked():
|
|
var gs = GameState.new()
|
|
assert_false(gs.is_revealed("varrell_twins"))
|
|
gs.mark_revealed("varrell_twins")
|
|
assert_true(gs.is_revealed("varrell_twins"))
|
|
|
|
|
|
func test_gifts_given_tracked():
|
|
var gs = GameState.new()
|
|
assert_false(gs.is_gift_given("amulet"))
|
|
gs.mark_gift_given("amulet")
|
|
assert_true(gs.is_gift_given("amulet"))
|