/* --- Instance Methods (Auxiliary) --- */ private void OnMsgOptions(Message msg) { var options = (MsgOptions)msg; MsgChooseOption response; if (options.Options.Count == 1) { response = new MsgChooseOption(0, 0, 0, -1); } else { var r = new Random(); int i = 1 + (r.Next() % (options.Options.Count - 1)); var o = options.Options[i]; response = new MsgChooseOption(); response.Main = i; response.Position = 0; response.Target = o.Main.Targets == null ? 0 : o.Main.Targets[r.Next() % o.Main.Targets.Count]; response.Sub = -1; if (o.Subs != null && o.Subs.Count > 0) { response.Sub = r.Next() % o.Subs.Count; if (o.Subs[response.Sub].Targets != null && o.Subs[response.Sub].Targets.Count > 0) { response.Target = o.Subs[response.Sub].Targets[r.Next() % o.Subs[response.Sub].Targets.Count]; } } } HSMPServer.Get().Send(response); }
private void SendOption(MsgChooseOption o) { var gs = GameState.Get(); gs.SetSelectedOption(o.Main); gs.SetSelectedOptionPosition(o.Position); gs.SetSelectedOptionTarget(o.Target); gs.SetSelectedSubOption(o.Sub); gs.SendOption(); }
private void SetNextOption(MsgChooseOption o) { m_nextChooseOption = o; }