Added new ESC command rand_global.

This commit is contained in:
Julian Murgia
2021-07-05 08:04:36 +02:00
parent bd4c33cf77
commit ccb34e319b

View File

@@ -0,0 +1,48 @@
# `rand_global name max_value`
#
# Fills the "name" global with a random value between 0 and max-value-1.
#
# @ESC
extends ESCBaseCommand
class_name RandGlobalCommand
# Return the descriptor of the arguments of this command
func configure() -> ESCCommandArgumentDescriptor:
return ESCCommandArgumentDescriptor.new(
2,
[TYPE_STRING, TYPE_INT],
[null, 1]
)
# Validate wether the given arguments match the command descriptor
func validate(arguments: Array):
if not escoria.globals_manager.has(arguments[0]):
escoria.logger.report_errors(
"inc_global: invalid global",
[
"Global %s does not exist." % arguments[0]
]
)
return false
if not escoria.globals_manager.get(arguments[0]) is int:
escoria.logger.report_errors(
"inc_global: invalid global",
[
"Global %s didn't have an integer value." % arguments[0]
]
)
return false
return .validate(arguments)
# Run the command
func run(command_params: Array) -> int:
randomize()
var rnd = randi() % command_params[1]
escoria.globals_manager.set_global(
command_params[0],
rnd
)
return ESCExecution.RC_OK