예제 #1
0
    //-------------------------------------------------------------------------
    public FishParticleMgr(CRenderScene render_scene, CRenderFish fish, int fish_vib_id, ISpriteFish sprite_fish)
    {
        mScene           = render_scene;
        mCRenderFish     = fish;
        mParticlemanager = mScene.getParticlemanager();
        mISpriteFish     = sprite_fish;

        mFishData = EbDataMgr.Instance.getData <TbDataFish>(fish_vib_id);

        //解析鱼带的特效数据并保存下来,等待鱼指定播放特效
        foreach (var it in mFishData.ParticleArray)
        {
            if (null == it.TbDataParticle || it.TbDataParticle.Id <= 0)
            {
                continue;
            }

            TbDataFish.ParticleProduceTimeEnum time_enum = (TbDataFish.ParticleProduceTimeEnum)it.ParticleProduceTime;
            if (!mDicParticleData.ContainsKey(time_enum))
            {
                mDicParticleData[time_enum] = new List <TbDataFish.ParticleDataStruct>();
            }
            mDicParticleData[time_enum].Add(it);
        }
    }
예제 #2
0
    //-------------------------------------------------------------------------
    void _hitFish(CRenderFish render_fish)
    {
        if (mRenderFishID.Contains(render_fish.FishObjId))
        {
            return;
        }

        mMaxHitFish--;

        addFishList(render_fish);

        if (!render_fish.canHitByFishNet())
        {
            return;
        }

        if (mScene.getMyPlayerId() == mPlayerId)
        {
            List <string> vec_param = new List <string>();
            vec_param.Add("playerFishNetHit");
            vec_param.Add(mPlayerId.ToString());
            vec_param.Add(render_fish.FishObjId.ToString());
            mScene.getListener().onSceneRender2Logic(vec_param);
        }
    }
예제 #3
0
 //-------------------------------------------------------------------------
 public void setAim(CRenderFish lock_fish)
 {
     if (mScene.isBot())
     {
         return;
     }
     mCSpriteTurretScoreShow.setAim(lock_fish);
 }
예제 #4
0
 //-------------------------------------------------------------------------
 public void displayLinkFish(CRenderFish fish)
 {
     if (mScene.isBot())
     {
         return;
     }
     mSpriteTurret.displayLinkFish(fish);
 }
예제 #5
0
    //-------------------------------------------------------------------------
    public void setAim(CRenderFish lock_fish)
    {
        if (mCRenderTurret.getVibTurret().AimParticle.Id <= 0)
        {
            return;
        }

        StillParticle still_particle = mScene.getParticlemanager().newParticle(mCRenderTurret.getVibTurret().AimParticle.ParticlePrefabName);

        mAimParticle = new AimParticle(lock_fish, still_particle);
    }
예제 #6
0
    //-------------------------------------------------------------------------
    public void create(Color color, uint et_player_rpcid, CRenderFish hit_by_bullet_fish, CRenderScene scene, string animation_name)
    {
        mScene    = scene;
        mPlayerId = et_player_rpcid;

        mCSpriteFishNetGroup = new CSpriteFishNetGroup();
        mCSpriteFishNetGroup.create(mScene, color, mPlayerId, animation_name);
        mCSpriteFishNetGroup.setTrigger(true);
        mCSpriteFishNetGroup.setColor(color);
        mCSpriteFishNetGroup.onTriggerEnter += OnTriggerEnter;

        addFishList(hit_by_bullet_fish);
    }
예제 #7
0
    //-------------------------------------------------------------------------
    void _hitFish(CRenderFish render_fish)
    {
        if (render_fish == null || render_fish.IsDie)
        {
            return;
        }

        uint et_player_rpcid = mBullet.getPlayerId();

        if (mBullet.getScene().getMyPlayerId() == et_player_rpcid)
        {
            mBullet.getScene().getProtocol().c2sFishHit(et_player_rpcid, mBullet.getBulletObjId(), render_fish.FishObjId);
        }

        mBullet.signDestroy();
        mIsSignDestroy = true;

        CRenderTurret turret = mBullet.getScene().getTurret(et_player_rpcid);

        if (turret == null)
        {
            return;
        }
        TbDataTurret vib_turret = turret.getVibTurret();

        Dictionary <string, object> map_param = new Dictionary <string, object>();

        map_param.Add("SourcePosition", getHitPosition(render_fish.Position, mBullet.getPosition()));
        map_param["NetColor"]      = mBullet.getScene().getTurret(et_player_rpcid).getTurretColor();
        map_param["PlayerId"]      = et_player_rpcid;
        map_param["BulletHitFish"] = render_fish;
        TbDataBullet buttlt_data = mBullet.getBulletData();

        mBullet.getScene().addEffect(buttlt_data.EffectCompose.Id, map_param, EffectTypeEnum.Client);

        if (!string.IsNullOrEmpty(mHitParticle.ParticlePrefabName))
        {
            StillParticle particle = mScene.getParticlemanager().newParticle(mHitParticle.ParticlePrefabName);
            particle.setPosition(getHitPosition(render_fish.Position, mBullet.getPosition()));
            particle.setLayer(mScene.getLayerAlloter().getLayer(_eLevelLayer.FishHitParticle));
        }
    }
예제 #8
0
    //-------------------------------------------------------------------------
    void OnTriggerEnter(Collider other)
    {
        if (mMaxHitFish <= 0)
        {
            mCSpriteFishNetGroup.setTrigger(false);
            return;
        }
        if ("CSpriteFish" != other.gameObject.tag)
        {
            return;
        }

        FishStillSprite sprite_fish = other.gameObject.GetComponent <FishStillSprite>();
        CRenderFish     render_fish = sprite_fish.getSpriteFish().getRenderFish();

        if (render_fish != null)
        {
            _hitFish(render_fish);
        }
    }
예제 #9
0
 //-------------------------------------------------------------------------
 void addFishList(CRenderFish fish)
 {
     mRenderFishID.Add(fish.FishObjId);
 }
예제 #10
0
 //-------------------------------------------------------------------------
 public void displayLinkFish(CRenderFish fish)
 {
     mLinkLockedFishFeature.display(fish);
 }
예제 #11
0
 //-------------------------------------------------------------------------
 public AimParticle(CRenderFish lock_fish, StillParticle still_particle)
 {
     mLockFish      = lock_fish;
     mStillParticle = still_particle;
     mStillParticle.setLooping(false);
 }