Exemple #1
0
        private void EndRoleAndReplaceWithNew(Role value)
        {
            if (value != null)
            {
                try
                {
                    SimDescription currentActor = value.mSim;

                    value.RemoveSimFromRole();
                    Drunkard aRole = Drunkard.clone(value, currentActor);

                    this.mCurrentRole = aRole;
                    RoleManager.sRoleManager.AddRole(aRole);
                    if (Message.Sender.IsDebugging())
                    {
                        Message.Sender.Debug(this, "Role cloning succeeded: " + currentActor.FullName);
                    }
                }
                catch (Exception ex)
                {
                    Message.Sender.ShowError(this, "Cannot create custom role", true, ex);
                    this.mCurrentRole = value;
                }
            }
        }
Exemple #2
0
        public override void Tick()
        {
            base.Tick();

            if (Local.Pawn is not Player player)
            {
                return;
            }

            this.Enabled(!player.IsSpectator && !player.IsSpectatingPlayer && Gamemode.Game.Instance.Round is Rounds.InProgressRound);

            if (this.IsEnabled())
            {
                if (player.Role.Name != _role?.Name)
                {
                    _role = player.Role;

                    Style.BackgroundColor = _role.Color;

                    RoleLabel.UpdateTranslation(new TranslationData(_role.GetTranslationKey("NAME")));
                }
            }
        }
        private void EndRoleAndReplaceWithNew(Role value)
        {
            if (value != null)
            {
                try
                {
                    SimDescription currentActor = value.mSim;

                    value.RemoveSimFromRole();
                    Drunkard aRole = Drunkard.clone(value, currentActor);

                    this.mCurrentRole = aRole;
                    RoleManager.sRoleManager.AddRole(aRole);
                    if (Message.Sender.IsDebugging())
                    {
                        Message.Sender.Debug(this, "Role cloning succeeded: " + currentActor.FullName);
                    }
                }
                catch (Exception ex)
                {
                    Message.Sender.ShowError(this, "Cannot create custom role", true, ex);
                    this.mCurrentRole = value;
                }
            }
        }