Exemplo n.º 1
1
	public void Setup(Worm inWorm)
	{
		worm = inWorm;
		triggerCol.radius = worm.carrying ? fleeRadius : seekRadius;
	}
Exemplo n.º 2
0
        public void TestBackgroundPixelsAreOverwrittenByBodyPixels()
        {
            var worm = Worm.FromFrames(new[]
            {
                new Frame(new uint[] { 0x00000001 }),
                new Frame(new uint[] { 0x00000000 })
            });

            Assert.That(worm.Pixels, Is.EqualTo(new uint[] { 0x00000001 }));
        }
Exemplo n.º 3
0
    public void createWorm(float x, float y)
    {
        GameObject wormObject = new GameObject();

        wormObject.name = "Worm";

        Worm newWorm = wormObject.AddComponent <Worm>();

        newWorm.init(x, y, this);
    }
Exemplo n.º 4
0
    static void Main()
    {
        var teams = new Dictionary <string, List <Worm> >();

        string input = Console.ReadLine();

        while (input != "quit")
        {
            string[] tokens = input
                              .Split(new[] { " -> " }, StringSplitOptions.None);

            string wormName  = tokens[0];
            string team      = tokens[1];
            long   wormScore = long.Parse(tokens[2]);

            if (!teams.ContainsKey(team)) //not registered team
            {
                teams[team] = new List <Worm>();

                Worm wormToRegiser = new Worm
                {
                    name  = wormName,
                    score = wormScore
                };

                teams[team].Add(wormToRegiser);
            }

            else //team registered
            {
                bool wormIsAlreadyInTeam = CheckIsTheNameRegistered(teams, wormName);

                if (wormIsAlreadyInTeam) //already registered, ignored
                {
                    break;
                }

                else //not registered teammate
                {
                    Worm wormToRegiser = new Worm
                    {
                        name  = wormName,
                        score = wormScore
                    };

                    teams[team].Add(wormToRegiser);
                }
            }

            input = Console.ReadLine();
        }

        OrderAndPrintResult(teams);
    }
Exemplo n.º 5
0
        public UserControlWorms(Worm worm)
        {
            InitializeComponent();

            this.worm       = worm;
            name.Content    = worm.name;
            name.Foreground = (worm.equip == Team.teams.red) ? new SolidColorBrush(Colors.Red) : new SolidColorBrush(Colors.Blue);
            name.FontSize   = 14;
            HP.Content      = worm.hp;
            HP.Foreground   = (worm.equip == Team.teams.red) ? new SolidColorBrush(Colors.Red) : new SolidColorBrush(Colors.Blue);
            HP.FontSize     = 14;
        }
Exemplo n.º 6
0
    static void Main(string[] args)
    {
        Dictionary <string, List <Worm> > WormsWorldParty = new Dictionary <string, List <Worm> >();
        var input = Console.ReadLine();

        while (input != "quit")
        {
            var tokens    = input.Split(new string[] { " -> " }, StringSplitOptions.RemoveEmptyEntries).ToList();
            var wormName  = tokens[0];
            var teamName  = tokens[1];
            var wormScore = int.Parse(tokens[2]);

            if (!WormsWorldParty.ContainsKey(teamName))
            {
                WormsWorldParty[teamName] = new List <Worm>();
                Worm currentWorm = new Worm
                {
                    Name  = wormName,
                    Score = wormScore
                };
            }
            if (WormsWorldParty[teamName].Any(x => x.Name == wormName))
            {
                input = Console.ReadLine();
                continue;
            }
            if (!WormsWorldParty[teamName].Any(x => x.Name == wormName))
            {
                WormsWorldParty[teamName].Add(new Worm {
                    Name = wormName, Score = wormScore
                });
            }

            input = Console.ReadLine();
        }
        Console.WriteLine();

        WormsWorldParty = WormsWorldParty.OrderByDescending(x => x.Value.Sum(s => s.Score))
                          .ThenByDescending(x => x.Value.Sum(y => y.Score) / x.Value.Count())
                          .ToDictionary(x => x.Key, x => x.Value);

        var counter = 1;

        foreach (var entry in WormsWorldParty)
        {
            Console.WriteLine($"{counter}. {entry.Key} - {entry.Value.Sum(x => x.Score)}");
            foreach (var score in entry.Value)
            {
                Console.WriteLine($"###{score.Name} : {score.Score}");
            }
            counter++;
        }
    }
Exemplo n.º 7
0
    // Use this for initialization
    public void init(Worm owner)
    {
        this.owner              = owner;
        transform.parent        = owner.transform;
        transform.localPosition = new Vector3(0, 0, 0);

        mat             = GetComponent <Renderer>().material;
        mat.shader      = Shader.Find("Sprites/Default");
        mat.mainTexture = Resources.Load <Texture2D>("Textures/Worm");

        mat.color       = new Color(1, 1, 1);
        mat.renderQueue = RenderCoordinator.ANIMAL_RQ;
    }
Exemplo n.º 8
0
        public void MeasurementReceived(BotEngine.Interface.FromProcessMeasurement <IMemoryMeasurement> measurement)
        {
            InputSimulator sim      = new InputSimulator();
            var            overview = measurement?.Value.WindowOverview.FirstOrDefault();
            var            entry    = overview.ListView.Entry.First(x =>
                                                                    Regex.IsMatch(x.LabelText.ElementAt(2).Text, @"Wormhole [A-Z]"));
            string toSearch    = entry.LabelText.ElementAt(2).Text.Split(' ')[1];
            string Hole        = (toSearch.Contains("K162")) ? "UNK" : Worm.GetHole(toSearch);
            var    scanResults = measurement?.Value.WindowProbeScanner.First().ScanResultView.Entry.FirstOrDefault();
            string scanID      = scanResults?.LabelText.ElementAt(1).Text.Substring(0, 3);

            if (Regex.IsMatch(Hole, @"Barbican|Conflux|Redoubt|Sentinel|Vidette"))
            {
                scanID = "Drifter";
            }
            ClipString = string.Format(ClipString, scanID, Hole);
            bool isEol = false;

            if (Hole.Contains("UNK"))
            {
                var motor = new WindowMotor(EveMainWindow.Value);
                ShowInfo(overview.ListView.Entry.First(x => Regex.IsMatch(x.LabelText.ElementAt(2).Text, @"Wormhole [A-Z]")), measurement);
                //ShowInfo(overview.ListView.Entry.FirstOrDefault(x => x.LabelText.ElementAt(2).Text.Contains("Wormhole")),measurement);
                Sanderling.Interface.FromInterfaceResponse response = null;
                do
                {
                    response = sensor?.MeasurementTakeNewRequest(EveClientId.Value);
                } while (null == response);

                var InfoWindow =
                    response.MemoryMeasurement?.Value.WindowOther.First(x => x.Caption.Contains("formation"));
                SelectAndCopy(sim, InfoWindow);

                ClipString = string.Format(ClipString, scanID, Hole);//, Extensions.Julian4());
                bool isEOL = false;

                var results = Classify(ClipString, out isEOL);

                string Name = (string.IsNullOrEmpty(results)) ? ClipString : results;
                Name += ((isEOL) ? " eol" + Extensions.Julian4() : Extensions.Julian4());
                BookmarkByOverview(Name);
                ///// Use this as a way of saying my program is done reset the
                ///// ScanHelper program foreground

                //Thread.Sleep(50);
                //SetForegroundWindow(new System.Windows.Interop.WindowInteropHelper(App.Current.MainWindow).Handle);
                //   App.Current.MainWindow.Close();
            }
            BookmarkByOverview(ClipString + Extensions.Julian4());
        }
Exemplo n.º 9
0
        public void HatchEgg_Ok(double[] wormWeights, ChickenType chieckenType, int epxectedEggCount)
        {
            var chic  = _hatchery.Create(chieckenType);
            var worms = new List <Worm>();

            foreach (var weight in wormWeights)
            {
                var worm = new Worm(weight);
                worms.Add(worm);
            }

            var eggs = chic.LayEggs(worms);

            eggs.Should().NotContainNulls()
            .And.HaveCount(epxectedEggCount);
        }
Exemplo n.º 10
0
    public void SpawnWorms()
    {
        MainWorm = FindMainWorm();
        GameObject mainWorm;

        mainWorm = Instantiate(Resources.Load("Worm") as GameObject, nodePositions[MainWorm.HeadIndex], new Quaternion());
        mainWorm.GetComponent <WormController>()._mapCreator = this.gameObject.GetComponent <MapCreator>();

        mainWorm.GetComponent <WormController>().BodyInit(MainWorm.Nodes.Length - 2,
                                                          GetWormBodyPositions(MainWorm.Nodes));

        //GameObject wormBody = Instantiate(Resources.Load("WormBody") as GameObject,
        //    new Vector3(mainWorm.transform.position.x, mainWorm.transform.position.y,
        //    mainWorm.transform.position.z), new Quaternion());
        //wormBody.transform.parent = mainWorm.transform;
    }
Exemplo n.º 11
0
        private IEnumerable <Worm> GetOpponentWormsWithoutObstacles(IEnumerable <Worm> opponentWorms,
                                                                    Worm activeWorm)
        {
            var map = gameState.Map;
            var wormsWithoutObstaclesInRange = new List <Worm>();

            foreach (var worm in opponentWorms)
            {
                var x = worm.Position.X;
                var y = worm.Position.Y;

                while (x != activeWorm.Position.X || y != activeWorm.Position.Y)
                {
                    if (x > activeWorm.Position.X)
                    {
                        x -= 1;
                    }
                    else if (x < activeWorm.Position.X)
                    {
                        x += 1;
                    }

                    if (y > activeWorm.Position.Y)
                    {
                        y -= 1;
                    }
                    else if (y < activeWorm.Position.Y)
                    {
                        y += 1;
                    }

                    var cellType = map[y][x].Type;

                    if (cellType == CellType.DIRT || cellType == CellType.DEEP_SPACE)
                    {
                        break;
                    }
                }

                if (x == activeWorm.Position.X && y == activeWorm.Position.Y)
                {
                    wormsWithoutObstaclesInRange.Add(worm);
                }
            }

            return(wormsWithoutObstaclesInRange);
        }
Exemplo n.º 12
0
    public Worm CreateWorm(Vector3 pos, bool lookUp, int playerNum, int teamNum, Color color, Texture2D tex)
    {
        Quaternion spawnRot = lookUp ? Quaternion.identity : Quaternion.Euler(0.0f, 0.0f, 180.0f);
        GameObject wormObj  = WadeUtils.Instantiate(wormPrefab, pos, spawnRot);

        worms.Add(wormObj);

        Worm worm = wormObj.GetComponentInChildren <Worm>();

        worm.playerNum = playerNum;
        worm.teamNum   = teamNum;

        worm.GetComponent <Renderer>().material.SetTexture("_MainTex", tex);
        worm.GetComponent <Renderer>().material.SetColor("_MainTint", color);

        return(worm);
    }
Exemplo n.º 13
0
        public static void Main(string[] args)
        {
            Worm First = new Worm(numberOfParts: 30, pos: Coordinates(_max(Console.WindowWidth / 2, 30), Console.WindowHeight / 2), direction: Dir);

            Console.CursorVisible = false;
            Thread inputThread = new Thread(new ThreadStart(Input));

            inputThread.Start();

            First.Show();

            while (true)
            {
                First.Move(direction: Dir);
                Thread.Sleep(100);
            }
        }
Exemplo n.º 14
0
    void Update()
    {
        for (int i = 0; i < NumWorms; i++)
        {
            Worm w = worms[i];
            w.TubeRenderer.material.color = new Color(currentFade * 0.6f, currentFade * 0.6f, currentFade * 0.6f, currentFade);
            updateWorm(w);
        }
        float beat = 1f;

        if (beatsFFT)
        {
            beat = 20f * beatsFFT.scaledAvgFreq;
        }
        fadeInOut();
        CentreObj.transform.localScale = Vector3.ClampMagnitude(
            new Vector3(2f + beat, 2f + beat, 2f + beat) * currentFade, 6f);
        CentreObj.GetComponentInChildren <Light>().intensity = beat;
    }
Exemplo n.º 15
0
        static void Main(string[] args)
        {
            Prototype prototype = null;
            Prototype bud       = null;

            prototype = new Worm("Worm");
            bud       = prototype.Clone();
            Console.WriteLine(bud.Name);

            prototype = new CaseWorm("CaseWorm");
            bud       = prototype.Clone();
            Console.WriteLine(bud.Name);

            prototype = new Butterfly("Butterfly");
            bud       = prototype.Clone();
            Console.WriteLine(bud.Name);

            Console.ReadKey();
        }
Exemplo n.º 16
0
    public void Shoot(Worm worm, Vector2 target, Transform indicator)
    {
        this.target    = target;
        this.worm      = worm;
        this.indicator = indicator;

        rb               = GetComponent <Rigidbody2D>();
        collider         = GetComponent <CircleCollider2D>();
        collider.enabled = false;

        rb.AddForce(GetInitVelocity(), ForceMode2D.Impulse);

        if (target.x - transform.position.x < 0)
        {
            GetComponent <SpriteRenderer>().flipX = true;
        }

        indicator.localScale = new Vector2(0.1f, 0.1f);
    }
Exemplo n.º 17
0
        private ICommand GetRandomCommand(Worm currentActiveWorm)
        {
            ICommand command;
            var      random = new Random();

            var validCells = GetValidAdjacentCells(currentActiveWorm);

            if (!validCells.Any())
            {
                return(new DoNothingCommand());
            }

            var randomCell         = validCells[random.Next(0, validCells.Length)];
            var randomCellPosition = new MapPosition()
            {
                X = randomCell.X, Y = randomCell.Y
            };

            switch (randomCell.Type)
            {
            case CellType.AIR:
                command = new MoveCommand()
                {
                    MapPosition = randomCellPosition
                };
                break;

            case CellType.DIRT:
                command = new DigCommand()
                {
                    MapPosition = randomCellPosition
                };
                break;

            default:
                command = new DoNothingCommand();
                break;
            }

            return(command);
        }
Exemplo n.º 18
0
        static void GameStart()
        {
            AutoSetting();
            Direction      dir  = Direction.Right;
            ConsoleKeyInfo cki  = new ConsoleKeyInfo();
            Worm           worm = new Worm(WormLen, (byte)((Conf.FieldWidth - WormLen) / 2), (byte)(Conf.FieldHeight / 2));
            Food           food = new Food(Conf.FieldHeight, Conf.FieldWidth);

            food.GenerateNewPos(ref worm);
            PrintWorm(worm);
            PrintFood(food.Element);
            while (true)
            {
                if (Console.KeyAvailable == true)
                {
                    cki = Console.ReadKey(true);
                    KeyToDir(cki.Key, ref dir);
                }
                if (!worm.Go(dir, ref food))
                {
                    Console.Clear();
                    Console.WriteLine("The end");
                    Console.ReadLine();
                    return;
                }
                if ((worm[0].X == food.Element.X) && (worm[0].Y == food.Element.Y))
                {
                    if (!food.GenerateNewPos(ref worm))
                    {
                        Console.Clear();
                        Console.WriteLine("You win");
                        Console.ReadLine();
                        return;
                    }
                    PrintFood(food.Element);
                }
                PrintAction(worm[0], worm.DeletedElement);
                Thread.Sleep(200);
            }
        }
Exemplo n.º 19
0
    /// <summary>
    /// Call this to release a worm
    /// </summary>
    public void SpawnWorm()
    {
        GameObject objCloned = AcquireClone();
        Worm       objWorm   = objCloned.GetComponent <Worm>();

        //removes the object clone from the parent area

        objCloned.transform.position = new Vector3
                                       (
            GetWormPositionBaseOnCamera().x,
            GetWormPositionBaseOnCamera().y,
            0f
                                       );

        objCloned.transform.rotation = Quaternion.identity;
        //initialize worm from the script
        objWorm.InitializeWorm();
        //add this worm to this pooler
        if (!listOfReleasedWorms.Contains(objWorm))
        {
            listOfReleasedWorms.Add(objWorm);
        }
    }
Exemplo n.º 20
0
        private string GetShootDirection(Worm targetWorm, Worm currentActiveWorm)
        {
            var directionString = "";

            if (targetWorm.Position.Y > currentActiveWorm.Position.Y)
            {
                directionString += "S";
            }
            else if (targetWorm.Position.Y < currentActiveWorm.Position.Y)
            {
                directionString += "N";
            }

            if (targetWorm.Position.X > currentActiveWorm.Position.X)
            {
                directionString += "E";
            }
            else if (targetWorm.Position.X < currentActiveWorm.Position.X)
            {
                directionString += "W";
            }

            return(directionString);
        }
Exemplo n.º 21
0
    void OnCollisionEnter2D(Collision2D col)
    {
        if (clashTimer > clashTime)
        {
            Worm worm = col.collider.GetComponent <Worm>();
            if (worm && col.collider is PolygonCollider2D)
            {
                GameObject clashEffectObj = EffectsManager.instance.PlayEffect(EffectType.Clash,
                                                                               transform.position + transform.up,
                                                                               transform.rotation,
                                                                               2f);

                float emissionRate = (GetComponent <Rigidbody2D>().velocity.sqrMagnitude + worm.GetComponent <Rigidbody2D>().velocity.sqrMagnitude) / 2f;
                clashEffectObj.GetComponent <ParticleSystem>().emissionRate = clashMinParticle + emissionRate * clashParticleStrength;

                AudioSource clashAudio = SoundManager.instance.Play2DSong("Clash", 1f);
                clashAudio.pitch  = Random.Range(0.9f, 1.1f);
                clashAudio.volume = Random.Range(0.9f, 1f);

                worm.clashTimer = 0f;
                clashTimer      = 0f;
            }
        }
    }
Exemplo n.º 22
0
    public void Hit(Worm w)
    {
        if (ragdoll)
        {
            return;
        }

        var _blood = Instantiate <GameObject>(bloodPrefab);

        _blood.transform.localScale *= (Random.value - 0.5f) + 1;
        _blood.transform.position    = transform.position;

        var wp = w.transform.position;

        rb.velocity = (3 * w.rb.velocity.magnitude) * Vector3.Lerp((transform.position - wp).normalized, or.normal.Value, 0.5f);
        ySpeed      = 0;
        ragdoll     = true;

        rb_e = transform.FindChild("EnemyHead").GetComponent <Rigidbody>();
        transform.FindChild("EnemyHead").GetComponent <SphereCollider>().enabled = true;
        transform.FindChild("EnemyHead").SetParent(null);
        rb_e.isKinematic = false;
        rb_e.velocity    = (3 * w.rb.velocity.magnitude) * Vector3.Lerp((rb_e.transform.position - wp).normalized, or.normal.Value, 0.5f);
    }
Exemplo n.º 23
0
 void Start()
 {
     _mainWorm = _mapCreator.MainWorm;
 }
Exemplo n.º 24
0
 private void Start()
 {
     _worm      = FindObjectOfType <Worm>();
     _slider    = FindObjectOfType <Slider>();
     _gameState = FindObjectOfType <GameState>();
 }
Exemplo n.º 25
0
 private void Start()
 {
     CurrentWorm = Instantiate(WormPrefab, SpawnPoint);
 }
Exemplo n.º 26
0
 private void Start()
 {
     _potato     = FindObjectOfType <Potato>();
     _worm       = FindObjectOfType <Worm>();
     _dropParent = new GameObject("Drops").transform;
 }
Exemplo n.º 27
0
    public void WormDead()
    {
        CurrentWorm.Dead();

        CurrentWorm = Instantiate(WormPrefab, SpawnPoint);
    }
Exemplo n.º 28
0
        private static async Task GiveHairyAndCurlyFriendsAndWeapons(Guid appleId)
        {
            using var localScope = ServiceProvider.CreateScope();

            var context = localScope.ServiceProvider.GetService <ApplicationDbContext>();

            var worms = await context.Apples
                        .Where(a => a.Id == appleId)
                        .SelectMany(a => a.Worms)
                        .Include(worm => worm.Weapons)
                        .Include(worm => worm.FriendshipsA)
                        .ThenInclude(friendship => friendship.WormB)
                        .ToListAsync();

            var curly = worms.Single(worm => worm.Name == "Curly");

            var hairy = worms.Single(worm => worm.Name == "Hairy");

            hairy.Weapons.Add(new WormWeapon {
                Name = "Super Banana Bomb"
            });
            hairy.Weapons.Add(new WormWeapon {
                Name = "Holy Hand Grenade"
            });

            var joan = new Worm {
                Name = "Joan", Apple = new Apple {
                    FruitStatus = FruitStatus.Unripe
                }
            };

            joan.Weapons.Add(new WormWeapon {
                Name = "Dodgy Phone Battery"
            });
            joan.Weapons.Add(new WormWeapon {
                Name = "Angry Concrete Donkey"
            });

            hairy.FriendshipsA.AddRange(new[]
            {
                new WormFriendship {
                    WormA = hairy, WormB = curly
                }, new WormFriendship {
                    WormA = hairy, WormB = joan
                },
                new WormFriendship
                {
                    WormA = hairy,
                    WormB = new Worm {
                        Name = "Starr", Apple = new Apple {
                            FruitStatus = FruitStatus.Fuzzy
                        }
                    }
                }
            });

            var moe = worms.Single(worm => worm.Name == "Moe");

            moe.Weapons.First().Name = "Bazooka Pie";
            moe.FriendshipsA.RemoveAll(friendship => friendship.WormB.Name == "Ringo");

            await context.SaveChangesAsync();
        }
Exemplo n.º 29
0
 public void Setup(Worm inWorm)
 {
     worm = inWorm;
     triggerCol.radius = worm.carrying ? fleeRadius : seekRadius;
 }
Exemplo n.º 30
0
 private void Start()
 {
     parent = transform.parent.GetComponent <Worm>();
 }
Exemplo n.º 31
0
        private void InitializeEvents()
        {
            Events.ServerPlayerHello +=
                e =>
            {
                MyIdentity = e;

                ShowMessage("Howdy, " + e.name);
            };


            Action <int, string> CreateRemoteEgo =
                (user, name) =>
            {
                // could use event instead
                // dictonary.valueset +=
                CoPlayerNames[user] = name;

                // create remote ego
                RemoteEgos[user] = new Worm
                {
                    Color    = 0xff,
                    Canvas   = Map.Canvas,
                    Wrapper  = Map.Wrapper,
                    Location = new Point(),
                    ThisNetworkInstanceCannotEat = true
                }.AddTo(Map.Worms).Grow();

                //ShowMessage("remote worm created - " + Map.Worms.Count);
            };

            Events.ServerPlayerJoined +=
                e =>
            {
                CreateRemoteEgo(e.user, e.name);


                ShowMessage("Player joined - " + e.name);

                Messages.PlayerAdvertise(MyIdentity.name);
                Messages.TeleportTo((int)Map.Ego.Location.x, (int)Map.Ego.Location.y);

                for (int i = 1; i < Map.Ego.Parts.Count; i++)
                {
                    // there is no apple, but we just need to gain in size

                    Messages.EatApple((int)Map.Ego.Location.x, (int)Map.Ego.Location.y);
                }
            };



            #region ServerPlayerLeft
            Events.ServerPlayerLeft +=
                e =>
            {
                if (CoPlayerNames.ContainsKey(e.user))
                {
                    CoPlayerNames.Remove(e.user);
                }

                if (Cursors.ContainsKey(e.user))
                {
                    Cursors[e.user].Orphanize();
                    Cursors.Remove(e.user);
                }

                if (RemoteEgos.ContainsKey(e.user))
                {
                    var w = RemoteEgos[e.user];

                    while (w.Parts.Count > 0)
                    {
                        w.Shrink();
                    }

                    Map.Worms.Remove(w);
                    RemoteEgos.Remove(e.user);
                }

                ShowMessage("Player left - " + e.name);
            };
            #endregion

            Events.UserPlayerAdvertise +=
                e =>
            {
                if (CoPlayerNames.ContainsKey(e.user))
                {
                    return;
                }

                CreateRemoteEgo(e.user, e.name);

                // ShowMessage("Player already here - " + e.name);
            };


            #region MouseMove
            Events.UserMouseMove +=
                e =>
            {
                var s = default(ShapeWithMovement);

                if (Cursors.ContainsKey(e.user))
                {
                    s = Cursors[e.user];
                }
                else
                {
                    s = new ShapeWithMovement
                    {
                        filters = new[] { new DropShadowFilter() },
                        alpha   = 0.5
                    };


                    var g = s.graphics;

                    g.beginFill((uint)e.color);
                    g.moveTo(0, 0);
                    g.lineTo(14, 14);
                    g.lineTo(0, 20);
                    g.lineTo(0, 0);
                    g.endFill();

                    Cursors[e.user] = s;
                };

                s.AttachTo(this).MoveTo(e.x, e.y);
            };


            Events.UserMouseOut +=
                e =>
            {
                if (Cursors.ContainsKey(e.color))
                {
                    Cursors[e.color].Orphanize();
                }
            };
            #endregion

            Events.UserVectorChanged +=
                e =>
            {
                if (RemoteEgos.ContainsKey(e.user))
                {
                    RemoteEgos[e.user].Vector = new Point(e.x, e.y);
                }
            };

            Events.ServerSendMap +=
                e =>
            {
                OnServerSendMap();
            };

            Events.UserLevelHasEnded +=
                e =>
            {
                // update rankings

                OnLevelHasEnded();
            };

            Events.UserSendMap +=
                e =>
            {
                // we got a new map, do we need it?

                foreach (var v in Map.Apples)
                {
                    v.Control.Orphanize();
                }

                Map.Apples.Clear();

                // now add apples as the new map says
                var integers_as_bytes = e.buttons.Select(i => (byte)i).ToArray();

                var m = new MemoryStream(integers_as_bytes);

                var AppleCount = m.ReadByte();

                for (int i = 0; i < AppleCount; i++)
                {
                    new Apple
                    {
                        Wrapper  = Map.Wrapper,
                        Location = new Point(m.ReadByte(), m.ReadByte())
                    }.AddTo(Map.Apples).AttachTo(Map.Canvas);
                }

                //ShowMessage("got map: " + integers_as_bytes.Length);
            };

            Events.UserTeleportTo +=
                e =>
            {
                //ShowMessage(new { teleport = e.user, e.x, e.y }.ToString());

                if (RemoteEgos.ContainsKey(e.user))
                {
                    var w = RemoteEgos[e.user];

                    w.Color    = 0xff;
                    w.IsAlive  = true;
                    w.Location = new Point(e.x, e.y);
                    w.Grow();
                    w.Shrink();
                }
            };

            Events.UserEatApple +=
                e =>
            {
                if (RemoteEgos.ContainsKey(e.user))
                {
                    var w = RemoteEgos[e.user];

                    w.Grow();


                    foreach (var v in from i in Map.Apples
                             where i.Location.IsEqual(new Point(e.x, e.y))
                             select i)
                    {
                        v.Control.Orphanize();
                        Map.Apples.Remove(v);

                        Sounds.sound20.ToSoundAsset().play();
                    }
                }
            };

            #region EatThisWorm
            Events.UserEatThisWormBegin +=
                e =>
            {
                if (!RemoteEgos.ContainsKey(e.user))
                {
                    return;
                }

                var user = RemoteEgos[e.user];

                if (!AllEgos.Any(i => i.Key == e.food))
                {
                    return;
                }

                var food = AllEgos.Single(i => i.Key == e.food).Value;


                food.WormWhoIsGoingToEatMe = user;
                food.Color = 0x8f8f8f;

                // whatif async end never comes?
            };

            Events.UserEatThisWormEnd +=
                e =>
            {
                if (!RemoteEgos.ContainsKey(e.user))
                {
                    return;
                }

                var user = RemoteEgos[e.user];

                if (!AllEgos.Any(i => i.Key == e.food))
                {
                    return;
                }

                var food = AllEgos.Single(i => i.Key == e.food).Value;

                food.IsAlive = false;

                // do the eating
                while (food.Parts.Count > 1)
                {
                    food.Shrink();
                    user.Grow();
                }

                food.WormWhoIsGoingToEatMe = null;

                if (food == Map.Ego)
                {
                    // we now decide how long must we be dead

                    DeathDelay.AtDelayDo(
                        delegate
                    {
                        food.IsAlive = true;
                        food.Color   = 0x00ff00;

                        Messages.TeleportTo((int)Map.Ego.Location.x, (int)Map.Ego.Location.y);
                    }
                        );
                }
            };
            #endregion
        }
Exemplo n.º 32
-1
    private void button2_Click(object sender, EventArgs e)
    {
        Worm worm = new Worm();
        TorjanHorse Th = new TorjanHorse();
        Spyware spy = new Spyware();
        worm.NextEngine(Th);
        Th.NextEngine(spy);
        string[] files = Directory.GetFiles(tSRC.Text, "*.txt");
        foreach (string file in files)
        {
            using (StreamReader sr = new StreamReader(file))
            {
                Input p = new Input(file, sr.ReadLine());
                if (p != null)
                    worm.Process(p);
            }

        }
        listBox1.DataSource = null;
        listBox1.DataSource = Chain.lst;
        //Chain.lst.Clear();
    }