MapServer.PlayerObject.ProcessAction_Move C# (CSharp) Method

ProcessAction_Move() protected method

protected ProcessAction_Move ( GameStruct act ) : void
act GameStruct
return void
        protected override void ProcessAction_Move(GameStruct.Action act)
        {
            byte runvalue = 1;
            if (act.GetObjectCount() > 0)
            {
                runvalue = (byte)act.GetObject(0);
            }

            RefreshVisibleObject();
            if (mVisibleList.Count > 0)
            {
                foreach (RefreshObject obj in mVisibleList.Values)
                {
                    BaseObject o = obj.obj;
                    switch (o.type)
                    {
                        case OBJECTTYPE.NPC:
                            {
                                if (obj.bRefreshTag) break;
                                this.SendNpcInfo(o);
                                obj.bRefreshTag = true;
                                break;
                            }
                        case OBJECTTYPE.MONSTER:
                        case OBJECTTYPE.CALLOBJECT:
                            {
                                if (obj.bRefreshTag) break;
                                this.SendMonsterInfo(o);
                                obj.bRefreshTag = true;
                                break;
                            }
                        case OBJECTTYPE.PLAYER:
                            {

                                this.SendRoleMoveInfo(o, runvalue, obj);
                                break;
                            }
                        case OBJECTTYPE.DROPITEM:
                            {
                                if (obj.bRefreshTag) break;
                                this.SendDropItemInfo(o);
                                obj.bRefreshTag = true;
                                break;
                            }
                        case OBJECTTYPE.EUDEMON:
                            {
                                if (obj.bRefreshTag) break;

                                (o as EudemonObject).SendEudemonInfo(this);
                                obj.bRefreshTag = true;
                                break;
                            }
                        case OBJECTTYPE.ROBOT:
                            {
                                if (obj.bRefreshTag) break;
                                (o as RobotObject).SendRobotInfo(this);
                                obj.bRefreshTag = true;
                                break;
                            }
                        case OBJECTTYPE.GUARDKNIGHT:
                            {
                                if (obj.bRefreshTag) break;
                                (o as GuardKnightObject).SendInfo(this);
                                obj.bRefreshTag = true;
                                break;
                            }
                        case OBJECTTYPE.EFFECT:
                            {
                                if (obj.bRefreshTag) break;
                                (o as EffectObject).SendInfo(this);
                                obj.bRefreshTag = true;
                                break;
                            }
                        case OBJECTTYPE.PTICH:  //摊位
                            {
                                if (obj.bRefreshTag) break;
                                (o as PtichObject).SendInfo(this);
                                obj.bRefreshTag = true;
                                break;
                            }
                    }
                    //加入到对方视野中-
                    o.AddVisibleObject(this);

                }
                //   mRefreshList.Clear();
            }
        }