Exemplo n.º 1
0
        private static void TeraSniffer_OnEndConnection()
        {
            ChatWindowManager.Instance.AddTccMessage("Disconnected from the server.");
            WindowManager.FloatingButton.NotifyExtended($"TCC", "Disconnected");

            GroupWindowViewModel.Instance.ClearAllAbnormalities();
            BuffBarWindowViewModel.Instance.Player.ClearAbnormalities();
            EntitiesManager.ClearNPC();
            SkillManager.Clear();
            WindowManager.TrayIcon.Icon = WindowManager.DefaultIcon;
            Proxy.CloseConnection();
        }
Exemplo n.º 2
0
 public static void EndAbnormality(ulong target, uint id)
 {
     if (AbnormalityDatabase.Abnormalities.TryGetValue(id, out Abnormality ab))
     {
         App.Current.Dispatcher.Invoke(() =>
         {
             if (target == SessionManager.CurrentPlayer.EntityId)
             {
                 SessionManager.EndPlayerAbnormality(ab);
             }
             else if (EntitiesManager.TryGetBossById(target, out Boss b) && b.HasBuff(ab))
             {
                 b.EndBuff(ab);
             }
         });
     }
 }
Exemplo n.º 3
0
 static void BeginNPCAbnormality(Abnormality ab, int stacks, int duration, ulong target)
 {
     if (EntitiesManager.TryGetBossById(target, out Boss b))
     {
         App.Current.Dispatcher.Invoke(() =>
         {
             if (b.HasBuff(ab))
             {
                 NPCAbnormalityUpdated?.Invoke(b.EntityId, ab, duration, stacks);
             }
             else
             {
                 if (!ab.Infinity)
                 {
                     EntitiesManager.CurrentBosses.Where(x => x.EntityId == target).First().Buffs.Add(new AbnormalityDuration(ab, duration, stacks, target));
                 }
                 else
                 {
                     EntitiesManager.CurrentBosses.Where(x => x.EntityId == target).First().Buffs.Insert(0, new AbnormalityDuration(ab, -1, stacks, target));
                 }
             }
         });
     }
 }
Exemplo n.º 4
0
        private static void DebugStuff()
        {
            GroupWindowViewModel.Instance.AddOrUpdateMember(new User(BaseDispatcher)
            {
                Alive     = true,
                Awakened  = true,
                CurrentHp = 1000,
                MaxHp     = 1000,
                EntityId  = 1,
                ServerId  = 1,
                PlayerId  = 1,
                UserClass = Class.Archer,
                Online    = true
            });
            EntitiesManager.SpawnNPC(920, 3000, 11, Visibility.Visible);
            EntitiesManager.SpawnNPC(15, 1, 12, Visibility.Visible);
            EntitiesManager.UpdateNPC(12, 1000, 1000);
            AbnormalityManager.BeginOrRefreshPartyMemberAbnormality(1, 1, 1495, 200000, 1);
            AbnormalityManager.BeginAbnormality(1495, 10, 200000, 1);
            AbnormalityManager.BeginAbnormality(1495, 11, 200000, 1);
            AbnormalityManager.BeginAbnormality(1495, 12, 200000, 1);

            //for (int i = 0; i < 2000; i++)
            //{
            //    ChatWindowManager.Instance.AddTccMessage($"Test {i}");
            //}

            /*
             *          EntitiesManager.SpawnNPC(210, 1108, 11, Visibility.Visible);
             *          var c = 0;
             *          while (c < 1000)
             *          {
             *              AbnormalityManager.BeginAbnormality(2, 10, 500, 1);
             *              AbnormalityManager.BeginAbnormality(2, 11, 500, 1);
             *              Console.WriteLine("Added " + c);
             *              Thread.Sleep(100);
             *              AbnormalityManager.EndAbnormality(2, 10);
             *              AbnormalityManager.EndAbnormality(2, 11);
             *              Console.WriteLine("Removed " + c);
             *              c++;
             *          }
             */
            //AbnormalityManager.BeginAbnormality(1495, 10, 10000, 5);
            //AbnormalityManager.BeginAbnormality(2066, 10, 100000, 10);
            //AbnormalityManager.BeginAbnormality(2074, 10, 10000000, 20);
            //var r = new Random();
            //for (int i = 0; i < 30; i++)
            //{
            //    WindowManager.CivilUnrestWindow.VM.AddGuild(new CityWarGuildInfo(1, (uint)i, 0, 0, (float)r.Next(0, 100) / 100));
            //    WindowManager.CivilUnrestWindow.VM.SetGuildName((uint)i, "Guild " + i);
            //    WindowManager.CivilUnrestWindow.VM.AddDestroyedGuildTower((uint)r.Next(0, 29));

            //}

            //ClassWindowViewModel.Instance.CurrentClass = Class.Priest;
            //EntitiesManager.SpawnNPC(920, 3000, 10, Visibility.Visible);
            //Task.Delay(2000).ContinueWith(t => BossGageWindowViewModel.Instance.AddOrUpdateBoss(10,5250000000,3240000000,true, HpChangeSource.BossGage));
            //Task.Delay(4000).ContinueWith(t => BossGageWindowViewModel.Instance.AddOrUpdateBoss(10,5250000000,2240000000,true, HpChangeSource.BossGage));
            //EntitiesManager.SpawnNPC(950,3000,10,Visibility.Visible);
            //EntitiesManager.SpawnNPC(970,1000,11,Visibility.Visible);
            //EntitiesManager.SpawnNPC(970,2000,12,Visibility.Visible);
            //EntitiesManager.SpawnNPC(970,3000,13,Visibility.Visible);
            //EntitiesManager.SetNPCStatus(10, true);

            //Task.Delay(1000).ContinueWith(t => (ClassWindowViewModel.Instance.CurrentManager as WarriorBarManager).DeadlyGamble.Buff.Start(10000));
            //WindowManager.LfgListWindow.ShowWindow();
            // var l = new Listing();
            // l.LeaderId = 10;
            // l.Message = "SJG exp only";
            // l.LeaderName = "Foglio";
            // l.Players.Add(new User(WindowManager.LfgListWindow.Dispatcher){PlayerId = 10, IsLeader = true, Online = true});
            // l.Applicants.Add(new User(WindowManager.LfgListWindow.Dispatcher){PlayerId = 1, Name = "Applicant", Online = true, UserClass = Class.Priest});
            // WindowManager.LfgListWindow.VM.Listings.Add(l);

            //var l = new List<User>();
            //var r = new Random();
            //for (uint i = 0; i < 10; i++)
            //{
            //    var u = new User(GroupWindowViewModel.Instance.GetDispatcher())
            //    {
            //        Name = i.ToString(),
            //        PlayerId = i,
            //        ServerId = i,
            //        EntityId = i,
            //        Online = true,
            //        Laurel = (Laurel)(r.Next(0, 5)),
            //        HasAggro = i == 1,
            //        Alive = i != 0,
            //        UserClass = (Class)r.Next(0, 12),
            //        Awakened = i < 5,
            //    };
            //    GroupWindowViewModel.Instance.AddOrUpdateMember(u);
            //}

            ////GroupWindowViewModel.Instance.SetRaid(true);
            //GroupWindowViewModel.Instance.SetNewLeader(1, "1");
        }
        private void OnStartup(object sender, StartupEventArgs ev)
        {
            var cd = AppDomain.CurrentDomain;

            cd.UnhandledException += GlobalUnhandledExceptionHandler;
            Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.Normal;
            if (File.Exists(Environment.CurrentDirectory + "/TCCupdater.exe"))
            {
                File.Delete(Environment.CurrentDirectory + "/TCCupdater.exe");
            }
            UpdateManager.CheckAppVersion();
            UpdateManager.CheckDatabaseVersion();

            SkillsDatabase.Load();
            //ItemSkillsDatabase.SetBroochesIcons();
            SettingsManager.LoadWindowSettings();
            SettingsManager.LoadSettings();
            WindowManager.Init();
            WindowManager.Settings = new SettingsWindow()
            {
                Name = "Settings"
            };
            FocusManager.FocusTimer.Start();
            TwitchConnector.Instance.Init();
            PacketProcessor.Init();

            TeraSniffer.Instance.NewConnection += (srv) =>
            {
                SkillManager.Clear();
                WindowManager.TrayIcon.Icon = WindowManager.ConnectedIcon;
                ChatWindowViewModel.Instance.AddTccMessage($"Connected to {srv.Name}.");
            };
            TeraSniffer.Instance.EndConnection += () =>
            {
                ChatWindowViewModel.Instance.AddTccMessage("Disconnected from the server.");
                GroupWindowViewModel.Instance.ClearAllAbnormalities();
                BuffBarWindowViewModel.Instance.Player.ClearAbnormalities();
                EntitiesManager.ClearNPC();

                SkillManager.Clear();
                WindowManager.TrayIcon.Icon = WindowManager.DefaultIcon;
                Proxy.CloseConnection();
            };

            SessionManager.CurrentPlayer.Class = Class.None;
            SessionManager.CurrentPlayer.Name  = "player";

            TeraSniffer.Instance.Enabled = true;
            TimeManager.Instance.SetServerTimeZone(SettingsManager.LastRegion);

            var v   = Assembly.GetExecutingAssembly().GetName().Version;
            var ver = $"TCC v{v.Major}.{v.Minor}.{v.Build}";

            ChatWindowViewModel.Instance.AddTccMessage(ver);

            if (!Debug)
            {
                return;
            }
            SessionManager.CurrentPlayer = new Player(1, "Foglio");
            CooldownWindowViewModel.Instance.LoadSkills(Utils.ClassEnumToString(Class.Warrior).ToLower() + "-skills.xml", Class.Warrior);

            for (uint i = 0; i < 1; i++)
            {
                var u = new User(GroupWindowViewModel.Instance.GetDispatcher());
                u.Name      = "Test_Dps" + i;
                u.PlayerId  = i;
                u.Online    = true;
                u.UserClass = Class.Warrior;


                GroupWindowViewModel.Instance.AddOrUpdateMember(u);
            }
            for (uint i = 0; i < 2; i++)
            {
                var u = new User(GroupWindowViewModel.Instance.GetDispatcher());
                u.Name      = "Test_Healer" + i;
                u.PlayerId  = i + 10;
                u.Online    = true;
                u.UserClass = Class.Elementalist;
                if (i == 1)
                {
                    u.Alive = false;
                }
                if (i == 0)
                {
                    u.Name = "Foglio";
                }

                GroupWindowViewModel.Instance.AddOrUpdateMember(u);
            }
            for (uint i = 0; i < 4; i++)
            {
                var u = new User(GroupWindowViewModel.Instance.GetDispatcher());
                u.Name      = "Test_Tank" + i;
                u.PlayerId  = i + 100;
                u.Online    = true;
                u.UserClass = Class.Lancer;
                GroupWindowViewModel.Instance.AddOrUpdateMember(u);
            }
            //foreach (var user in GroupWindowViewModel.Instance.Members)
            //{
            //    user.AddOrRefreshBuff(new Abnormality(4611, true, true, false, AbnormalityType.Buff),60*100*60,1);
            //    user.AddOrRefreshBuff(new Abnormality(46126, true, true, false, AbnormalityType.Buff),60*100*60,1);
            //    user.AddOrRefreshDebuff(new Abnormality(89308100, true, false, false, AbnormalityType.DOT),60*100*60,5);
            //    user.AddOrRefreshDebuff(new Abnormality(89308101, true, false, false, AbnormalityType.DOT),60*100*60,5);

            //}
            //GroupWindowViewModel.Instance.StartRoll();
            //GroupWindowViewModel.Instance.SetReadyStatus(new ReadyPartyMember());
        }