Exemple #1
0
        public void Update()
        {
            lock (OrbLock) {
                for (int i = tail.Count - 1; i >= 0; i--)
                {
                    All[tail[i]].Move(log_index(i));
                }

                for (int i = white.Count - 1; i >= 0; i--)
                {
                    byte id  = white[i];
                    Orb  orb = All[id];
                    orb.Move(logLast());

                    if (orb.pos * logLast() < speed * 3D && IsNotGrowing())
                    {
                        if (KingOfTheHill && length >= 3)
                        {
                            white.Remove(id);
                            orb.NewOwner();
                            orb.v /= 2d;
                        }
                        else if (YeetMode && length > 0)
                        {
                            white.Remove(id);
                            orb.NewOwner();
                            orb.v /= 2d;
                        }
                        else
                        {
                            white.Remove(id);
                            if (orb.Owner == this.key)
                            {
                                orb.state = (byte)OrbStates.OWNER;
                                if (!tail.Contains(id))
                                {
                                    tail.Add(id);
                                }
                                orb.r = OrbR;
                                new Animation(orb.pos, 5, 0, 0, (float)(OrbR * PHI), OrbR, Color.White, 255);
                            }
                        }
                    }
                }
            }
        }
Exemple #2
0
 public override void UpdateLogic()
 {
     _orb.Move();
 }