private StateBase join() { State state = TaskState.Create(delegate { this.stateName = "join"; Task task = new GDGeek.TaskWait(0.3f); TaskManager.PushBack(task, delegate { NetworkSystem.SessionInfo session = NetworkSystem.Instance.sessions; if (session != null && NetworkSystem.Instance.running) { NetworkSystem.Instance.join(session); } }); return(task); }, this.fsm_, "scanning"); return(state); }
private NetworkSystem.SessionInfo getSessionInfo() { var sessionList = networkSystem_.remoteSessions; NetworkSystem.SessionInfo ret = null; if (sessionList != null && sessionList.Count > 0) { foreach (var session in sessionList) { if (session.Value != null) { if (ret == null) { ret = session.Value; } } } return(ret); } return(null); }
private StateBase IAmClient() { State state = TaskState.Create(delegate { Task task = new GDGeek.TaskWait(0.3f); TaskManager.PushBack(task, delegate { NetworkSystem.SessionInfo sessionInfo = this.getSessionInfo(); if (sessionInfo != null && networkSystem_.running) { networkSystem_.join(sessionInfo); } }); return(task); }, this.fsm_, delegate { if (Root.Instance.model.hasGod) { return("running"); } return("whoIsGod"); }); return(state); }