public void SW_Choke(Cell C)
        {
            TextConsole  textConsole = Look._TextConsole;
            ScreenBuffer scrapBuffer = TextConsole.ScrapBuffer;

            XRLCore.Core.RenderMapToBuffer(scrapBuffer);
            bool bDraw = C.IsVisible();

            int nBonus = Math.Max(ParentObject.Statistics["Ego"].Modifier, Level);

            if (C != null)
            {
                foreach (GameObject GO in C.GetObjectsInCell())
                {
                    if (GO.HasPart("Brain"))
                    {
                        //if(GO.HasTag("HeroNamePrefixes"))
                        if (GO.HasTag("CanBeChoked"))
                        {
                            ChokedObject = GO;
                            EquipForceGesture();
                            //Apply force choking effect to victim
                            GO.ApplyEffect((Effect) new XRL.World.Parts.Effects.ZD_Choking(Level, GetBaseDamage(Level), GetBonusDamage(Level), ParentObject, GetSaveBonus(Level), GetRange(Level), ForceGestureObject));
                        }
                        else
                        {
                            Popup.Show("The target does not have a throat for you to choke!", true);
                        }
                    }
                }
            }
            scrapBuffer.Goto(C.X, C.Y);
            scrapBuffer.Write("&Y#");
            if (bDraw)
            {
                textConsole.DrawBuffer(scrapBuffer, (IScreenBufferExtra)null, false);
            }
            if (!bDraw)
            {
                return;
            }
            Thread.Sleep(50);
        }