@spec.get_opts.each do |name, opt| options[name] = opt.value counts[name] = opt.count end @spec.get_args.each do |name, arg| args << arg.value named[name] = arg.value end args.flatten! args += trailing @report = Report.new(args, named, trailing, options, counts) if @report.opt(:help) self.print_usage() end unless @spec.get_args.values.all? {|arg| arg.fulfilled? } raise InterfaceError, "Required argument '#{name.upcase}' was not given." end if @spec.trailing_error && !@report.trailing.empty? raise InterfaceError, "Error: got trailing argument(s): #{trailing.join

Software

I've decided to build Majesty's user interface using Svelte components, and spent some time integrating Phaser and Svelte and building a small example project.

The example project can be seen here.

Phaser Svelte UI Example screenshot

Until now I've been using Phaser's limited UI facilities to create buttons and the like, so this will open up a lot of possibilities going forward, although I still need to integrate this work with the actual game. I don't have many screenshots this time because this isn't too interesting, but the UI can be seen in the example.

Directory