Kill Bill vol 1-2

namespace KillBillBothVolumes
{
    public class Enemy
    {
        internal string Name;
        internal string Surname;
        internal string AlternativeName;
        internal Action Kill;

        public Enemy(string name, string surname, string alternativeName, Action kill)
        {
            this.Name = name;
            this.Surname = surname;
            this.AlternativeName = alternativeName;

            this.Kill = kill;
        }
        public void Assassinate()
        {
            this.Kill.Invoke();
            return ;
        }

    }

    public class Helper
    {
        internal string Name;
        internal string Surname;
        internal Action Help;

        public Helper(string name, string surname,  Action help)
        {
            this.Name = name;
            this.Surname = surname;

            this.Help = help;
        }
        public void Assist()
        {
            this.Help.Invoke();
            return;
        }

    }
   

    public class Beatrix
    {
        public List<Enemy> DeadlyViperAssassinationSquad;
        public List<Helper> Helpers;
        public string Car;

        public Beatrix()
        {
            Car = null;
        }

       

        internal void GetOutFromComa()
        {
            Car = "Pussy Wagon";
        }

        internal void Remember()
        {

            #region Enemies

            DeadlyViperAssassinationSquad = new List<Enemy>();
            DeadlyViperAssassinationSquad.Add(
                new Enemy(
                            "O-Ren",
                            "Ishii",
                            "Cottonmouth",
                            delegate
                            {
                                CutHerHead();
                            }
                        ));

            DeadlyViperAssassinationSquad.Add(
                new Enemy(
                            "Vernita",
                            "Green",
                            "Copperhead",
                            delegate
                            {
                                StabHer();
                            }
                        ));
            DeadlyViperAssassinationSquad.Add(
                new Enemy(
                            "Elle",
                            "Driver",
                            "California Mountain Snake",
                            delegate
                            {
                                BlindHer();
                                WaitForTheBlackMambaToBitHer();
                            }
                        ));

            DeadlyViperAssassinationSquad.Add(
                new Enemy(
                            "Bud",
                            String.Empty,
                            "Sidewinder",
                            delegate
                            {
                                return;
                            }
                        ));

            DeadlyViperAssassinationSquad.Add(
                new Enemy(
                            "Bill",
                            String.Empty,
                            "Snake Charmer",
                            delegate
                            {
                                PerformFivePointedPalmExplodingHeartTechnique();
                                for ( int i = 0 ; i < 5 ; i++ )
                                {
                                    Step();
                                }
                            }
                        ));
            #endregion

            #region Helpers
           
            Helpers = new List<Helper>();
            Helpers.Add(
                new Helper(
                            "Hattori",
                            "Hanzo",
                            delegate
                            {
                                CreateASword();
                            }
                        ));

            Helpers = new List<Helper>();
            Helpers.Add(
                new Helper(
                            "Pai",
                            "Mei",
                            delegate
                            {
                                TeachMartialArts();
                            }
                        ));
            #endregion

        }

        internal void GetYourRevenge()
        {
            foreach ( Helper item in Helpers )
            {
                item.Assist();
            }
            foreach ( Enemy item in DeadlyViperAssassinationSquad )
            {
                item.Assassinate();
            }
        }

    }

    public class Program
    {
        static void Main(string[] args)
        {

            Beatrix Starring = new Beatrix();
           
            Starring.GetOutFromComa();
           
            Starring.Remember();

            Starring.GetYourRevenge();


        }
    }
}
Vote up this code3