Esempio n. 1
0
 public void SyncPosition(long ownerId, UnitRenderType type, Vector3 position, float deltaDistance)
 {
     if (pathDic.ContainsKey(ownerId))
     {
         CheckPathPointCurrentStatus(ownerId, position, deltaDistance);
     }
     else
     {
         // current owner doesn't have path!
     }
 }
Esempio n. 2
0
    private void HandleRenderMessage(RenderMessage rm)
    {
        //DebugUtils.Log( DebugUtils.Type.Battle, string.Format( "HandleRenderMessage: type = {0}, ownerId = {1}!", rm.type, rm.ownerId ) );

        if (rm.type == RenderMessage.Type.TimeChanged)
        {
            float leftTime = Convert.ToSingle(rm.arguments["value"]);
            MessageDispatcher.PostMessage(MessageType.BattleTimeChanged, leftTime);
        }
        else if (rm.type == RenderMessage.Type.SpawnTown)
        {
            ForceMark mark    = (ForceMark)rm.arguments["mark"];
            int       modelId = Convert.ToInt32(rm.arguments["model"]);
            int       hp      = Convert.ToInt32(rm.arguments["hp"]);
            renderWorld.SetupTown(modelId, mark, rm.ownerId, hp, rm.position);

            if (battleType == BattleType.Survival && mark == ForceMark.TopRedForce)
            {
                DebugUtils.Log(DebugUtils.Type.Battle, "Survival Mode not need AI Base Render");
            }
            else
            {
                MessageDispatcher.PostMessage(MessageType.BuildTown, mark, rm.position);
            }
        }
        else if (rm.type == RenderMessage.Type.SpawnTower)
        {
            ForceMark mark      = (ForceMark)rm.arguments["mark"];
            int       modelID   = ( int )rm.arguments["model"];
            int       hp        = Convert.ToInt32(rm.arguments["hp"]);
            float     buildTime = Convert.ToSingle(rm.arguments["buildTime"]);
            renderWorld.SetupTower(modelID, mark, buildTime, rm.ownerId, hp, rm.position);

            MessageDispatcher.PostMessage(MessageType.BuildTower, mark, rm.ownerId, rm.position);
        }
        else if (rm.type == RenderMessage.Type.SpawnInstitute)
        {
            ForceMark mark            = ( ForceMark )rm.arguments["mark"];
            int       modeID          = ( int )rm.arguments["modelId"];
            object    instituteSkills = rm.arguments["instituteSkillsData"];
            int       hp        = Convert.ToInt32(rm.arguments["hp"]);
            float     buildTime = Convert.ToSingle(rm.arguments["buildTime"]);

            renderWorld.SetupInstitute(modeID, mark, buildTime, rm.ownerId, hp, rm.position);

            MessageDispatcher.PostMessage(MessageType.BuildInstitute, mark, rm.ownerId, rm.position, instituteSkills);
        }
        else if (rm.type == RenderMessage.Type.SpawnSoldier)
        {
            ForceMark mark   = (ForceMark)rm.arguments["mark"];
            UnitType  type   = (UnitType)rm.arguments["type"];
            int       metaId = (int)rm.arguments["metaId"];
            int       hp     = Convert.ToInt32(rm.arguments["hp"]);

            renderWorld.GenerateSoldier(metaId, mark, type, rm.ownerId, hp, rm.position);

            if (mark == DataManager.GetInstance().GetForceMark())
            {
                SoundManager.Instance.PlaySound(GameConstants.SOUND_SPAWNUNIT_ID);
            }

            MessageDispatcher.PostMessage(MessageType.GenerateSoldier, mark, rm.ownerId, rm.position);
        }
        else if (rm.type == RenderMessage.Type.SpawnProjectile)
        {
            ForceMark      mark           = (ForceMark)Convert.ToInt32(rm.arguments["mark"]);
            int            metaId         = Convert.ToInt32(rm.arguments["metaId"]);
            UnitRenderType unitRenderType = (UnitRenderType)rm.arguments["holderType"];
            long           holderId       = Convert.ToInt64(rm.arguments["holderId"]);
            renderWorld.GenerateProjectile(mark, rm.ownerId, metaId, rm.position, rm.direction, unitRenderType, holderId);
        }
        else if (rm.type == RenderMessage.Type.SpawnCrystal)
        {
            int  modelId = Convert.ToInt32(rm.arguments["modelId"]);
            bool plus    = Convert.ToBoolean(rm.arguments["plus"]);
            int  hp      = Convert.ToInt32(rm.arguments["hp"]);
            renderWorld.SetupCrystal(modelId, rm.ownerId, plus, hp, rm.position, rm.direction);
        }
        else if (rm.type == RenderMessage.Type.SpawnCrystalCar)
        {
            ForceMark mark    = (ForceMark)rm.arguments["mark"];
            int       modelId = Convert.ToInt32(rm.arguments["modelId"]);
            int       hp      = Convert.ToInt32(rm.arguments["hp"]);
            renderWorld.SetupCrystalCar(modelId, mark, rm.ownerId, hp, rm.position);

            MessageDispatcher.PostMessage(MessageType.BuildTramCar, mark, rm.ownerId, rm.position);
        }
        else if (rm.type == RenderMessage.Type.SpawnDemolisher)
        {
            ForceMark mark    = (ForceMark)rm.arguments["mark"];
            int       modelId = Convert.ToInt32(rm.arguments["modelId"]);
            int       hp      = Convert.ToInt32(rm.arguments["hp"]);
            renderWorld.SetupDemolisher(modelId, mark, rm.ownerId, hp, rm.position);

            MessageDispatcher.PostMessage(MessageType.BuildDemolisher, mark, rm.ownerId, rm.position);
        }
        else if (rm.type == RenderMessage.Type.CoinChanged)
        {
            //TODO:add coin changed
            if (rm.ownerId == Data.DataManager.GetInstance().GetPlayerId())
            {
                int money = (int)rm.arguments["value"];
                MessageDispatcher.PostMessage(MessageType.CoinChanged, money);
            }
        }
        //else if ( rm.type == RenderMessage.Type.SpawnPowerUp )
        //{
        //    int modelId = (int)rm.arguments["modelId"];
        //    PowerUpType powerUpType = (PowerUpType)rm.arguments["powerUpType"];
        //    ForceMark mark = (ForceMark)rm.arguments["mark"];
        //    float x = (float)rm.arguments["x"];
        //    float y = (float)rm.arguments["y"];
        //    float z = (float)rm.arguments["z"];

        //    renderWorld.SetUpPowerUp( modelId, powerUpType, mark, rm.ownerId, x, y, z );
        //    MessageDispatcher.PostMessage( MessageType.SpawnPowerUp, rm.ownerId, (int)powerUpType, new Vector3( x, y, z ) );
        //}
        else
        {
            renderWorld.HandleRenderMessage(rm);
        }
    }