Ejemplo n.º 1
0
	public void SwapLetters()
	{
		Model model = new Model();
		model.Start();
		Assert.AreEqual(false,
			model.SwapLetters(new int[]{-1, -1}));
		Assert.AreEqual(false,
			model.SwapLetters(new int[]{-1, 0}));
		Assert.AreEqual(false,
			model.SwapLetters(new int[]{3, 1}));
		model.tileSelecteds[1] = true;
		model.tileSelecteds[3] = true;
		Assert.AreEqual(false,
			model.SwapLetters(new int[]{0, 0}));
		Assert.AreEqual(true,
			model.SwapLetters(new int[]{3, 1}));
		Assert.AreEqual(false,
			model.SwapLetters(new int[]{1, 2}));
		Assert.AreEqual(true,
			model.SwapLetters(new int[]{1, 3}));
		Assert.AreEqual(true,
			model.SwapLetters(new int[]{1, 3}));
	}
Ejemplo n.º 2
0
 private void Start()
 {
     model.Start();
     UpdateButtons();
 }
Ejemplo n.º 3
0
        public void SurfaceCreated(ISurfaceHolder holder)
        {
            Console.WriteLine("SurfaceCreated");

            Model.Start(this.Holder);
        }
 public void Init( Microsoft.Xna.Framework.Game game )
 {
     _model = new Model( (Game1) game );
     _model.Load( GameStatePlayMenu.MapToPlay );
     _model.Start();
 }
Ejemplo n.º 5
0
 private void ProcessMessage(String message, Connection clientConnection)
 {
     try
     {
         if (message == "startorsplit")
         {
             if (State.CurrentPhase == TimerPhase.Running)
             {
                 Model.Split();
             }
             else
             {
                 Model.Start();
             }
         }
         else if (message == "split")
         {
             Model.Split();
         }
         else if (message == "undosplit" || message == "unsplit")
         {
             Model.UndoSplit();
         }
         else if (message == "skipsplit")
         {
             Model.SkipSplit();
         }
         else if (message == "pause" && State.CurrentPhase != TimerPhase.Paused)
         {
             Model.Pause();
         }
         else if (message == "resume" && State.CurrentPhase == TimerPhase.Paused)
         {
             Model.Pause();
         }
         else if (message == "reset")
         {
             Model.Reset();
         }
         else if (message == "start" || message == "starttimer")
         {
             Model.Start();
         }
         else if (message.StartsWith("setgametime "))
         {
             var value = message.Split(' ')[1];
             var time  = parseTime(value);
             State.SetGameTime(time);
         }
         else if (message.StartsWith("setloadingtimes "))
         {
             var value = message.Split(' ')[1];
             var time  = parseTime(value);
             State.LoadingTimes = time ?? TimeSpan.Zero;
         }
         else if (message == "pausegametime")
         {
             State.IsGameTimePaused = true;
         }
         else if (message == "unpausegametime")
         {
             AlwaysPauseGameTime    = false;
             State.IsGameTimePaused = false;
         }
         else if (message == "alwayspausegametime")
         {
             AlwaysPauseGameTime    = true;
             State.IsGameTimePaused = true;
         }
         else if (message == "getdelta" || message.StartsWith("getdelta "))
         {
             var comparison = State.CurrentComparison;
             if (message.Contains(" "))
             {
                 comparison = message.Split(new char[] { ' ' }, 2)[1];
             }
             var delta    = LiveSplitStateHelper.GetLastDelta(State, State.CurrentSplitIndex, comparison, State.CurrentTimingMethod);
             var response = DeltaFormatter.Format(delta);
             clientConnection.SendMessage(response);
         }
         else if (message == "getsplitindex")
         {
             var splitindex = State.CurrentSplitIndex;
             var response   = splitindex.ToString();
             clientConnection.SendMessage(response);
         }
         else if (message == "getcurrentsplitname")
         {
             var splitindex       = State.CurrentSplitIndex;
             var currentsplitname = State.CurrentSplit.Name;
             var response         = currentsplitname;
             clientConnection.SendMessage(response);
         }
         else if (message == "getprevioussplitname")
         {
             var previoussplitindex = State.CurrentSplitIndex - 1;
             var previoussplitname  = State.Run[previoussplitindex].Name;
             var response           = previoussplitname;
             clientConnection.SendMessage(response);
         }
         else if (message == "getlastsplittime" && State.CurrentSplitIndex > 0)
         {
             var splittime = State.Run[State.CurrentSplitIndex - 1].SplitTime[State.CurrentTimingMethod];
             var response  = SplitTimeFormatter.Format(splittime);
             clientConnection.SendMessage(response);
         }
         else if (message == "getcomparisonsplittime")
         {
             var splittime = State.CurrentSplit.Comparisons[State.CurrentComparison][State.CurrentTimingMethod];
             var response  = SplitTimeFormatter.Format(splittime);
             clientConnection.SendMessage(response);
         }
         else if (message == "getcurrenttime")
         {
             var timingMethod = State.CurrentTimingMethod;
             if (timingMethod == TimingMethod.GameTime && !State.IsGameTimeInitialized)
             {
                 timingMethod = TimingMethod.RealTime;
             }
             var time     = State.CurrentTime[timingMethod];
             var response = SplitTimeFormatter.Format(time);
             clientConnection.SendMessage(response);
         }
         else if (message == "getfinaltime" || message.StartsWith("getfinaltime "))
         {
             var comparison = State.CurrentComparison;
             if (message.Contains(" "))
             {
                 comparison = message.Split(new char[] { ' ' }, 2)[1];
             }
             var time = (State.CurrentPhase == TimerPhase.Ended)
                 ? State.CurrentTime[State.CurrentTimingMethod]
                 : State.Run.Last().Comparisons[comparison][State.CurrentTimingMethod];
             var response = SplitTimeFormatter.Format(time);
             clientConnection.SendMessage(response);
         }
         else if (message.StartsWith("getpredictedtime "))
         {
             var comparison = message.Split(new char[] { ' ' }, 2)[1];
             var prediction = PredictTime(State, comparison);
             var response   = SplitTimeFormatter.Format(prediction);
             clientConnection.SendMessage(response);
         }
         else if (message == "getbestpossibletime")
         {
             var comparison = LiveSplit.Model.Comparisons.BestSegmentsComparisonGenerator.ComparisonName;
             var prediction = PredictTime(State, comparison);
             var response   = SplitTimeFormatter.Format(prediction);
             clientConnection.SendMessage(response);
         }
         else if (message == "getcurrenttimerphase")
         {
             var response = State.CurrentPhase.ToString();
             clientConnection.SendMessage(response);
         }
         else if (message.StartsWith("setcomparison "))
         {
             var comparison = message.Split(new char[] { ' ' }, 2)[1];
             State.CurrentComparison = comparison;
         }
         else if (message == "switchto realtime")
         {
             State.CurrentTimingMethod = TimingMethod.RealTime;
         }
         else if (message == "switchto gametime")
         {
             State.CurrentTimingMethod = TimingMethod.GameTime;
         }
         else if (message.StartsWith("setsplitname "))
         {
             int    index = Convert.ToInt32(message.Split(new char[] { ' ' }, 3)[1]);
             string title = message.Split(new char[] { ' ' }, 3)[2];
             State.Run[index].Name = title;
             State.Run.HasChanged  = true;
         }
         else if (message.StartsWith("setcurrentsplitname "))
         {
             string title = message.Split(new char[] { ' ' }, 2)[1];
             State.Run[State.CurrentSplitIndex].Name = title;
             State.Run.HasChanged = true;
         }
     }
     catch (Exception ex)
     {
         Log.Error(ex);
     }
 }
Ejemplo n.º 6
0
        protected void ProcessRaceChannelMessage(string user, string message)
        {
            if (user == "RaceBot")
            {
                if (message.Contains("GO!") && RaceState == RaceState.EnteredRaceAndReady)
                {
                    Model.Start();
                    RaceState = RaceState.RaceStarted;
                }
                else if (message == Client.LocalUser.NickName + " has been removed from the race.")
                {
                    RaceState = RaceState.NotInRace;
                }
                else if (message.Contains(" has been removed from the race."))
                {
                    var userName = message.Substring(0, message.IndexOf(" "));

                    if (Model.CurrentState.CurrentComparison.Equals("[Race] " + userName))
                    {
                        Model.CurrentState.CurrentComparison = Run.PersonalBestComparisonName;
                    }

                    var comparisonGenerator = Model.CurrentState.Run.ComparisonGenerators.FirstOrDefault(x => x.Name == ("[Race] " + userName));
                    if (comparisonGenerator != null)
                    {
                        Model.CurrentState.Run.ComparisonGenerators.Remove(comparisonGenerator);
                    }

                    foreach (var segment in Model.CurrentState.Run)
                    {
                        segment.Comparisons["[Race] " + userName] = default(Time);
                    }
                }
                else if (message.StartsWith(Client.LocalUser.NickName + " enters the race!"))
                {
                    RaceState = RaceState.EnteredRace;
                }
                else if (message.Contains(" enters the race!"))
                {
                    var userName = message.Substring(0, message.IndexOf(" "));
                    if (LiveSplitChannel.Users.Select(x => x.User.NickName).Contains(userName))
                    {
                        AddComparison(userName);
                    }
                }
                else if (message.StartsWith(Client.LocalUser.NickName + " is ready!"))
                {
                    RaceState = RaceState.EnteredRaceAndReady;
                }
                else if (message.StartsWith(Client.LocalUser.NickName + " isn't ready!"))
                {
                    RaceState = RaceState.EnteredRace;
                }
                else if (message.StartsWith(Client.LocalUser.NickName + " has forfeited from the race."))
                {
                    RaceState = RaceState.RaceEnded;
                }
                else if (message.StartsWith(Client.LocalUser.NickName + " has been undone from the race."))
                {
                    RaceState = RaceState.RaceStarted;
                }
                else if (message.StartsWith(Client.LocalUser.NickName + " has finished in"))
                {
                    RaceState = RaceState.RaceEnded;
                }
                else if (message == "Rematch!")
                {
                    RaceState = RaceState.NotInRace;
                    RemoveRaceComparisons();
                }
            }
        }
Ejemplo n.º 7
0
 public void Start()
 {
     _model.Start();
 }
 public void Init(Microsoft.Xna.Framework.Game game)
 {
     _model = new Model((Game1)game);
     _model.Load(GameStatePlayMenu.MapToPlay);
     _model.Start();
 }
Ejemplo n.º 9
0
 public void Start(Action timeoutHandler) => Model.Start(timeoutHandler);