You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
727 B
GDScript
29 lines
727 B
GDScript
extends ActionBlackboard
|
|
class_name ActionBlackboardCheck
|
|
|
|
enum Operators {
|
|
EQUAL,
|
|
NOT_EQUAL,
|
|
GREATER,
|
|
LESS,
|
|
GREATER_EQUAL,
|
|
LESS_EQUAL,
|
|
}
|
|
@export var key: String
|
|
|
|
@export_enum("==", "!=", ">", "<", ">=", "<=") var operator: int = 0
|
|
@export var value: int
|
|
|
|
|
|
func run(character: Character, blackboard: Blackboard) -> int:
|
|
var left: Variant = blackboard.get_value(key, 0)
|
|
var result: bool = false
|
|
match operator:
|
|
Operators.EQUAL: result = left == value
|
|
Operators.NOT_EQUAL: result = left != value
|
|
Operators.GREATER: result = left > value
|
|
Operators.LESS: result = left < value
|
|
Operators.GREATER_EQUAL: result = left >= value
|
|
Operators.LESS_EQUAL: result = left <= value
|
|
return SUCCESS if result else FAILURE
|