A team game with an emphasis on movement (with no shooting), inspired by Overwatch and Zineth
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

56 lines
2.1 KiB

extends Node
# Semantic versioning, more or less
# Major: Server cannot accept requests (i.e. new hero, or network protocol change)
# Minor: Gameplay was significantly changed, but these can still technically play together (i.e. master-only scope added)
# These are things a server admin might choose to reject if it was decided to be significant
# Patch: Anything else: Bugfixes, UI changes, etc
# Currently 0.0.0 which means API, gameplay, etc can change suddenly and frequently
# Don't rely on it for anything
# 1.0.0 will be the reddit release
var version = "0.0.0"
var args
onready var Options = preload("res://scripts/args.gd").new().Options
func _ready():
args = _get_args()
func get_master_player():
return get_player(get_tree().get_network_unique_id())
func get_player(netid):
# We not %d? Because sometimes we need to do get_player(thing.get_name())
var path = "/root/Level/Players/%s" % str(netid)
if has_node(path):
return get_node(path)
else:
return null
func is_friendly(player):
var mp = get_master_player()
if mp:
return player.player_info.is_right_team == mp.player_info.is_right_team
else:
return true # Doesn't matter, we're headless
func _get_args():
var opts = Options.new()
opts.set_banner(('A non-violent MOBA inspired by Overwatch and Zineth'))
opts.add('-singleplayer', false, 'Whether to run singeplayer, starting immediately')
opts.add('-server', false, 'Whether to run as server')
opts.add('-matchmaker', false, 'Whether to be the sole matchmaker')
opts.add('-client', false, 'Immediately connect as client')
opts.add('-silent', false, 'If the server is not playing, merely serving')
opts.add('-ip', '127.0.0.1', 'The ip to connect to (client only!)')
opts.add('-port', 54673, 'The port to run a server on or connect to')
opts.add('-hero', 'r', 'Your choice of hero (index)')
opts.add('-level', 'r', 'Your choice of level (index) - server only!')
opts.add('-start-game', false, 'Join as a client and immediately start the game')
opts.add('-ai', true, 'Run this client as AI')
opts.add('-no-record', true, "Don't record this play for AI later")
opts.add('-h', false, "Print help")
opts.parse()
return opts