Exemple #1
0
    override public bool Init(ObjectInitParam param)
    {
        GhostInitParam ghostParam = (GhostInitParam)param;

        mGhostData = ghostParam.ghost_data;

        if (!DataManager.PlayerTable.ContainsKey(mGhostData.resId))
        {
            return(false);
        }

        mRes = DataManager.PlayerTable[mGhostData.resId] as PlayerTableItem;

        mModelResID   = mRes.model;
        mMainWeaponID = mGhostData.main_weaponId;
        mMainPlayer   = ghostParam.main_player;

        if (!base.Init(param))
        {
            return(false);
        }

        InitProperty(mGhostData);

        SetLeague(ghostParam.league);

        return(true);
    }
Exemple #2
0
    override protected void OnGameStart()
    {
        base.OnGameStart();

        if (mModule.GetGhostGuid() == null || mModule.GetGhostData() == null)
        {
            SceneManager.Instance.RequestEnterLastCity();
            return;
        }

        GhostInitParam initParam = new GhostInitParam();

        initParam.init_pos    = GetInitPosByName("ghost");
        initParam.init_pos.y  = GetHeight(initParam.init_pos.x, initParam.init_pos.z);
        initParam.init_dir    = GetInitDirByName("ghost");
        initParam.ghost_data  = mModule.GetGhostData();
        initParam.league      = LeagueDef.Blue;
        initParam.main_player = false;
        CreateSprite(initParam);

        if (Vector3.zero != GetInitPosByName("ghostcrops1") && null != mModule.MainCropsInfo && -1 != mModule.MainCropsInfo.mCropsId)
        {
            //创建玩家拥有的佣兵
            CropsInitParam cropsParam = new CropsInitParam();
            cropsParam.crops_res_id = mModule.MainCropsInfo.mCropsId;
            cropsParam.init_pos     = GetInitPosByName("ghostcrops1");
            cropsParam.init_pos.y   = GetHeight(cropsParam.init_pos.x, cropsParam.init_pos.z);
            cropsParam.init_dir     = GetInitDirByName("ghostcrops1");
            cropsParam.league       = LeagueDef.Blue;
            cropsParam.cropsinfo    = mModule.MainCropsInfo;

            CreateSprite(cropsParam);

            if (Vector3.zero != GetInitPosByName("ghostcrops2") && null != mModule.SubCropsInfo && -1 != mModule.SubCropsInfo.mCropsId)
            {
                cropsParam.crops_res_id = mModule.SubCropsInfo.mCropsId;
                cropsParam.init_pos     = GetInitPosByName("ghostcrops2");
                cropsParam.init_pos.y   = GetHeight(cropsParam.init_pos.x, cropsParam.init_pos.z);
                cropsParam.init_dir     = GetInitDirByName("ghostcrops2");
                cropsParam.league       = LeagueDef.Blue;
                cropsParam.cropsinfo    = mModule.SubCropsInfo;

                CreateSprite(cropsParam);
            }
        }

        WindowManager.Instance.OpenUI("fight321");
    }
Exemple #3
0
    override public ObjectBase CreateMainPlayer()
    {
        GhostInitParam initParam = new GhostInitParam();

        initParam.init_pos   = GetInitPos();
        initParam.init_pos.y = GetHeight(initParam.init_pos.x, initParam.init_pos.z);
        initParam.init_dir   = GetInitDir();
        initParam.ghost_data.SyncProperty(PlayerDataPool.Instance.MainData);
        initParam.league      = LeagueDef.Red;
        initParam.main_player = true;

        ObjectBase playerGhost = CreateSprite(initParam);

        if (playerGhost == null)
        {
            return(null);
        }

        SetOwner(playerGhost);

        PlayerController.Instance.SetControl(playerGhost.InstanceID);        //uint.MaxValue);

        return(playerGhost);
    }
Exemple #4
0
    override public bool LogicUpdate(uint elapsed)
    {
        if (!base.LogicUpdate(elapsed))
        {
            return(false);
        }

        if (mUpdateInterval > 0)
        {
            if (!mCompleted)
            {
                mUpdateInterval -= (int)elapsed;
                if (mUpdateInterval <= 0)
                {
                    UpdateDamage();
                    mUpdateInterval = 500;
                }
            }
        }

        if (mRequestTimer > 0)
        {
            mRequestTimer -= (int)elapsed;
            if (mRequestTimer <= 0)
            {
                RequestPartner();
            }
        }

        if (mAwardTimer > 0)
        {
            mAwardTimer -= (int)elapsed;
            if (mAwardTimer <= 0)
            {
                RequestRankingAward();
            }
        }

        int partnerCount = ActivityManager.Instance.PartnerList.Count;

        if (partnerCount > 0)
        {
            if (mCreateTimer > 0)
            {
                mCreateTimer -= (int)elapsed;
                if (mCreateTimer <= 0)
                {
                    GhostInitParam initParam = new GhostInitParam();
                    initParam.init_pos = GetInitPosByName("player");
                    initParam.init_dir = GetInitDirByName("player");
                    initParam.ghost_data.SyncProperty(ActivityManager.Instance.PartnerList[partnerCount - 1]);
                    initParam.league      = LeagueDef.Red;
                    initParam.main_player = false;
                    CreateSprite(initParam);
//					mGhostList.Add(CreateSprite(initParam) as Ghost);
                    ActivityManager.Instance.PartnerList.RemoveAt(partnerCount - 1);

                    mCreateTimer = 2000;
                }
            }
        }

        UpdateBoss(elapsed);

        return(true);
    }