Beispiel #1
0
        public void Run(ChatCallback Callback, List <string> Args)
        {
            if (Args.Count == 0)
            {
                this.UsageError(Callback, "Укажите название команды, которую хотите выбрать");
                return;
            }

            var TeamName = Args[0];
            var Team     = TeamsController.GetByName(TeamName);

            if (Team == null)
            {
                this.UsageError(Callback, $"Команда {TeamName} не найдена!");
                return;
            }

            var Whom = LanguageManager.Get($"m.team.{TeamName}.whom");

            if (!Team.Enable)
            {
                Callback.Send($"К сожалению, команда {Whom} выключена");
                return;
            }

            Callback.Send($"Вы успешно привязаны к команде {Whom}!");

            TeamAffinityController.PreSetAffinity(Team);
        }
Beispiel #2
0
        public static void Postfix(PlayerTab __instance)
        {
            TeamAffinityTabController.Chips.Clear();
            var Teams = TeamsController.GetTeams();

            for (var Index = 0; Index < Teams.Count; Index++)
            {
                var XPos      = __instance.XRange.Lerp(Index % 3 / 2f);
                var YPos      = -3.25f - (Index / 3) * 0.75f;
                var colorChip = Object.Instantiate(__instance.ColorTabPrefab,
                                                   __instance.transform, true);
                colorChip.transform.localPosition = new Vector3(XPos, YPos, -1f);
                var Team = Teams[Index];
                colorChip.Button.OnClick.AddListener(new Action(() => {
                    if (!Team.Enable)
                    {
                        return;
                    }
                    TeamAffinityController.PreSetAffinity(Team);
                }));
                colorChip.Inner.FrontLayer.sprite = ExtraResources.TEAM_ICON;
                colorChip.Inner.color             = Team.Color;
                TeamAffinityTabController.Chips.Add(Team, colorChip);
            }
        }
Beispiel #3
0
        public override void Load()
        {
            Harmony.PatchAll();

            Dummy.Group                   = ER_GROUP;
            Vents.Group                   = ER_GROUP;
            TeamAffinity.Group            = ER_GROUP;
            GameMode.Group                = ER_GROUP;
            RespawnTime.Group             = ER_GROUP;
            MaxPoints.Group               = ER_GROUP;
            GameModeInterval.Group        = ER_GROUP;
            ControlPointUseInterval.Group = ER_GROUP;
            FlagCapturerVents.Group       = ER_GROUP;

            IndependendColorsFix.Enable();
            TasksOverlay.Enable();

            LanguageManager.Load(Assembly.GetExecutingAssembly(), "Military.Lang.");
            Role.Init();

            TeamsController.Init();
            TeamAffinityController.Init();
            ModActions.Init();

            RegisterNetworkMessages();
            RegisterComponents();
            RegisterListeners();
            RegisterCustomMaps();

            CommandsController.Register(new TeamAffinityCommand());
        }
Beispiel #4
0
        private static void RegisterNetworkMessages()
        {
            Mod.RegisterMessage(AssignTeamsAndRolesMessage.INSTANCE);
            Mod.RegisterMessage(ShootMessage.INSTANCE);
            Mod.RegisterMessage(TeamAffinityMessage.INSTANCE);

            FlagsController.RegisterMessages(Mod);
            PointsController.RegisterMessages(Mod);
            ScoreController.RegisterMessages(Mod);
            TeamsController.RegisterMessages(Mod);
            SoundsController.RegisterMessages(Mod);
            HealthController.RegisterMessages(Mod);
            TeamAffinityController.RegisterMessages(Mod);
        }
Beispiel #5
0
 protected override void Handle()
 {
     TeamAffinityController.SetAffinity(ReadPlayer(), Reader.ReadTeam());
 }
Beispiel #6
0
        public static void Postfix(HudManager __instance)
        {
            if (AmongUsClient.Instance.GameState != InnerNetClient.GameStates.Started)
            {
                foreach (var Control in PlayerControl.AllPlayerControls)
                {
                    Control.nameText.Color = Color.white;
                }

                if (!Military.TeamAffinity.GetValue())
                {
                    return;
                }

                foreach (var(Team, Players) in TeamAffinityController.GetAffinities())
                {
                    foreach (var Player in Players.Select(PlayerTools.GetPlayerById))
                    {
                        Player.nameText.Color = Team.Color;
                    }
                }

                return;
            }

            if (!__instance.Chat.isActiveAndEnabled)
            {
                __instance.Chat.SetVisible(true);
            }

            var Scroll = Input.GetAxis("Mouse ScrollWheel");

            if (Scroll < 0)
            {
                GunController.PreviousGun();
            }
            else if (Scroll > 0)
            {
                GunController.NextGun();
            }

            var LocalPlayer = PlayerControl.LocalPlayer;
            var Dead        = LocalPlayer.Data.IsDead;

            KeyboardController.Update();

            var UseButtonActiveEnabled = __instance.UseButton != null &&
                                         __instance.UseButton.isActiveAndEnabled;

            PlayerTools.CalculateClosest(PlayerControl.LocalPlayer);

            foreach (var Role in Role.ROLES)
            {
                Role.PreUpdate(__instance, UseButtonActiveEnabled, Dead);
            }

            foreach (var Role in Role.ROLES)
            {
                Role.PostUpdate(__instance, UseButtonActiveEnabled, Dead);
            }

            __instance.ReportButton.gameObject.SetActive(false);
            GameMode.Current?.Update(Time.deltaTime);

            ModActions.Update();

            foreach (var Control in PlayerControl.AllPlayerControls)
            {
                var Extra = Control.Extra();
                if (Extra.Team == null)
                {
                    continue;
                }

                var Protection = !Extra.IsReady();
                var Color      = Protection ? PROTECTION : NO_PROTECTION;

                Control.nameText.Color = Protection
                                        ? Extra.Team.ProtectionColor
                                        : Extra.Team.Color;

                Extra.SetHealthBarActive(!Protection);
                Control.myRend.color      = Color;
                Control.HatRenderer.color = Color;

                Control.CurrentPet.rend.color = Color;
                if (Control.CurrentPet.shadowRend != null)
                {
                    Control.CurrentPet.shadowRend.color = Color;
                }

                Control.MyPhysics.Skin.layer.color = Color;

                Extra.Update();
            }
        }