private void ReadBombState(NetIncomingMessage msg, Player p, Bomb b)
        {
            bool active = msg.ReadBoolean();

            if (active)
            {
                float     remains = (float)(msg.ReadTime(false) - NetTime.Now);
                float     px      = msg.ReadFloat();
                float     py      = msg.ReadFloat();
                Direction dir     = (Direction)msg.ReadByte();
                float     speed   = msg.ReadFloat();
                bool      jelly   = msg.ReadBoolean();
                bool      trigger = msg.ReadBoolean();

                if (!b.isActive)
                {
                    b.player = p;
                    b.Activate();
                    game.Field.SetBomb(b);
                }

                b.timeRemains = remains;
                b.SetPos(px, py);
                b.SetSpeed(speed);
                b.SetJelly(jelly);
                b.SetTrigger(trigger);
                // TODO: jelly & trigger
            }
            else if (b.isActive)
            {
                b.Deactivate();
                b.RemoveFromField();
            }
        }
Beispiel #2
0
        public Bomb GetNextBomb()
        {
            Bomb nextBomb = null;

            int activeCount = 0;

            for (int i = 0; i < array.Length; ++i)
            {
                Bomb bomb = array[i];
                if (bomb.isActive)
                {
                    if (++activeCount == maxActiveCount)
                    {
                        return(null);
                    }
                }
                else
                {
                    nextBomb = bomb;
                }
            }

            if (nextBomb != null)
            {
                nextBomb.Activate();
                return(nextBomb);
            }

            return(null);
        }
Beispiel #3
0
 public void CallBomb()
 {
     if (bombs > 0 && !bombing && Time.timeScale > 0)
     {
         bomb.Activate(true);
         bombDuration = 0;
         bombing      = true;
         EventManager.TriggerEvent("Bomb");
         bombs--;
     }
 }