예제 #1
0
        private void ProcessSpecialAction(SpecialActionEnum action, int objectId)
        {
            //Debug.Log("Received special action " + action);
            ObjectController objectCtrlr = _objects.Find(ply => ply.ObjectId.Equals(objectId));

            if (objectCtrlr != null)
            {
                switch (action)
                {
                case SpecialActionEnum.FiringStart:
                    if (objectCtrlr.ObjectType.Equals(ObjectEnum.Player))
                    {
                        ((PlayerController)objectCtrlr).SetFiring(true);
                    }
                    break;

                case SpecialActionEnum.FiringStop:
                    if (objectCtrlr.ObjectType.Equals(ObjectEnum.Player))
                    {
                        ((PlayerController)objectCtrlr).SetFiring(false);
                    }
                    break;

                case SpecialActionEnum.Destroy:
                    if (objectCtrlr.ObjectType.Equals(ObjectEnum.Projectile))
                    {
                        ((ProjectileController)objectCtrlr).Explode();
                        _objects = _objects.Where(obj => !obj.ObjectId.Equals(objectCtrlr.ObjectId)).ToList();
                    }
                    break;
                }
            }
        }
예제 #2
0
 public SpecialAction(BitBuffer payload)
 {
     _action   = (SpecialActionEnum)payload.readInt(0, Enum.GetValues(typeof(SpecialActionEnum)).Length);
     _objectId = payload.readInt(0, Int32.MaxValue);
 }
예제 #3
0
 public SpecialAction(SpecialActionEnum action, int objetcId)
 {
     _action   = action;
     _objectId = objetcId;
 }