mirror of
https://gitlab.com/open-fpsz/open-fpsz.git
synced 2026-07-14 16:04:50 +00:00
✨ flag refactoring
This commit is contained in:
parent
69c8b65093
commit
6ba368c76e
21 changed files with 389 additions and 198 deletions
|
|
@ -29,46 +29,46 @@ func _is_mesh_visible() -> bool:
|
|||
return mesh.is_visible()
|
||||
|
||||
func test_that_flag_is_on_stand_by_default() -> void:
|
||||
assert_eq(_subject.flag_state, Flag.FlagState.FLAG_STATE_ON_STAND)
|
||||
assert_eq(_subject.flag_state, Flag.FlagState.ON_STAND)
|
||||
|
||||
func test_that_mesh_is_visible_by_default() -> void:
|
||||
assert_true(_is_mesh_visible())
|
||||
|
||||
func test_that_flag_on_stand_can_be_grabbed() -> void:
|
||||
_subject.flag_state = Flag.FlagState.FLAG_STATE_ON_STAND
|
||||
assert_true(_subject.can_be_grabbed())
|
||||
_subject.flag_state = Flag.FlagState.ON_STAND
|
||||
assert_true(_subject.state != _subject.FlagState.TAKEN)
|
||||
|
||||
func test_that_dropped_flag_can_be_grabbed() -> void:
|
||||
_subject.flag_state = Flag.FlagState.FLAG_STATE_DROPPED
|
||||
assert_true(_subject.can_be_grabbed())
|
||||
_subject.flag_state = Flag.FlagState.DROPPED
|
||||
assert_true(_subject.state != _subject.FlagState.TAKEN)
|
||||
|
||||
func test_that_taken_flag_cannot_be_grabbed() -> void:
|
||||
_subject.flag_state = Flag.FlagState.FLAG_STATE_TAKEN
|
||||
assert_false(_subject.can_be_grabbed())
|
||||
_subject.flag_state = Flag.FlagState.TAKEN
|
||||
assert_false(_subject.state != _subject.FlagState.TAKEN)
|
||||
|
||||
func test_that_on_stand_flag_grab_emits_grab_signal_and_changes_state() -> void:
|
||||
_subject.flag_state = Flag.FlagState.FLAG_STATE_ON_STAND
|
||||
_subject.flag_state = Flag.FlagState.ON_STAND
|
||||
var player : Player = PLAYER.instantiate()
|
||||
_subject.grab(player)
|
||||
assert_signal_emitted_with_parameters(_subject, 'grabbed', [player])
|
||||
assert_eq(_subject.flag_state, Flag.FlagState.FLAG_STATE_TAKEN)
|
||||
assert_eq(_subject.flag_state, Flag.FlagState.TAKEN)
|
||||
assert_eq(_subject.last_carrier, player)
|
||||
player.free()
|
||||
|
||||
func test_that_dropped_flag_grab_emits_grab_signal_and_changes_state() -> void:
|
||||
_subject.flag_state = Flag.FlagState.FLAG_STATE_DROPPED
|
||||
_subject.flag_state = Flag.FlagState.DROPPED
|
||||
var player : Player = PLAYER.instantiate()
|
||||
_subject.grab(player)
|
||||
assert_signal_emitted_with_parameters(_subject, 'grabbed', [player])
|
||||
assert_eq(_subject.flag_state, Flag.FlagState.FLAG_STATE_TAKEN)
|
||||
assert_eq(_subject.flag_state, Flag.FlagState.TAKEN)
|
||||
assert_eq(_subject.last_carrier, player)
|
||||
player.free()
|
||||
|
||||
func test_that_taken_flag_grab_does_not_emit_grab_signal_and_keeps_state() -> void:
|
||||
_subject.flag_state = Flag.FlagState.FLAG_STATE_TAKEN
|
||||
_subject.flag_state = Flag.FlagState.TAKEN
|
||||
_subject.grab(null) # doesn't matter that it's null in this case
|
||||
assert_signal_not_emitted(_subject, 'grabbed')
|
||||
assert_eq(_subject.flag_state, Flag.FlagState.FLAG_STATE_TAKEN)
|
||||
assert_eq(_subject.flag_state, Flag.FlagState.TAKEN)
|
||||
assert_null(_subject.last_carrier)
|
||||
|
||||
func test_that_flag_grab_hides_mesh() -> void:
|
||||
|
|
@ -82,14 +82,14 @@ func test_that_taken_flag_drop_emits_signal_and_changes_state() -> void:
|
|||
_subject.grab(player)
|
||||
_subject.drop(player)
|
||||
assert_signal_emitted_with_parameters(_subject, 'dropped', [player])
|
||||
assert_eq(_subject.flag_state, Flag.FlagState.FLAG_STATE_DROPPED)
|
||||
assert_eq(_subject.flag_state, Flag.FlagState.DROPPED)
|
||||
player.free()
|
||||
|
||||
func test_that_on_stand_flag_drop_does_not_emit_signals_and_keeps_state() -> void:
|
||||
var player : Player = PLAYER.instantiate()
|
||||
_subject.drop(player)
|
||||
assert_signal_not_emitted(_subject, 'dropped')
|
||||
assert_eq(_subject.flag_state, Flag.FlagState.FLAG_STATE_ON_STAND)
|
||||
assert_eq(_subject.flag_state, Flag.FlagState.ON_STAND)
|
||||
player.free()
|
||||
|
||||
func test_that_flag_drop_shows_mesh() -> void:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue