Esempio n. 1
0
    /// <summary>
    /// 同步探测器距离宝藏的位置
    /// </summary>
    /// <param name="buf"></param>
    private void OnSyncDeteCtorDistance(KProtoBuf buf)
    {
        S2C_SYNC_DETECTOR_DISTANCE msg = buf as S2C_SYNC_DETECTOR_DISTANCE;
        TreasureHuntProxy          treasureHuntProxy = GameFacade.Instance.RetrieveProxy(ProxyName.TreasureHuntProxy) as TreasureHuntProxy;

        treasureHuntProxy.SyncDeteCtorDistance(msg);
    }
Esempio n. 2
0
    /// <summary>
    /// 同步玩家进入宝藏区域
    /// </summary>
    /// <param name="buf"></param>
    private void OnSyncDiscoverPrecious(KProtoBuf buf)
    {
        S2C_SYNC_PLAYER_DISCOVER_PRECIOUS msg = buf as S2C_SYNC_PLAYER_DISCOVER_PRECIOUS;
        TreasureHuntProxy treasureHuntProxy   = GameFacade.Instance.RetrieveProxy(ProxyName.TreasureHuntProxy) as TreasureHuntProxy;

        treasureHuntProxy.SyncDiscoverPrecious(msg);
    }
Esempio n. 3
0
    public override void OnInitialize(IChangeMaterialProperty property)
    {
        m_Property = property;
        Npc npcVO = m_Property.GetNPCTemplateVO();

        /// npcVO.TriggerRange
        m_CfgEternityProxy  = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
        m_TreasureHuntProxy = GameFacade.Instance.RetrieveProxy(ProxyName.TreasureHuntProxy) as TreasureHuntProxy;
        m_GameplayProxy     = GameFacade.Instance.RetrieveProxy(ProxyName.GameplayProxy) as GameplayProxy;
        m_MainEntity        = m_GameplayProxy.GetMainPlayer();

        GamingConfigTreasure      gamingConfigTreasure = m_CfgEternityProxy.GetGamingConfig(1).Value.Treasure.Value;
        GamingConfigTreasureColor colour = gamingConfigTreasure.Colour.Value;

        m_Colors[DistanceType.discovery] = colour.DiscoveryDistance;
        m_Colors[DistanceType.strong]    = colour.StrongSignalDistance;
        m_Colors[DistanceType.medium]    = colour.MediumSignalDistance;
        m_Colors[DistanceType.weak]      = colour.WeakSignalDistance;

        GamingConfigTreasureFrequency frequency = gamingConfigTreasure.Frequency.Value;

        m_Frequencys[DistanceType.discovery] = frequency.DiscoveryDistance;
        m_Frequencys[DistanceType.strong]    = frequency.StrongSignalDistance;
        m_Frequencys[DistanceType.medium]    = frequency.MediumSignalDistance;
        m_Frequencys[DistanceType.weak]      = frequency.WeakSignalDistance;

        GamingConfigTreasureSound sound = gamingConfigTreasure.Sound.Value;

        m_Sounds[DistanceType.none]   = (int)sound.NoSignalDetector;
        m_Sounds[DistanceType.strong] = (int)sound.StrongSignalDetector;
        m_Sounds[DistanceType.medium] = (int)sound.MediumSignalDetector;
        m_Sounds[DistanceType.weak]   = (int)sound.WeakSignalDetector;
    }
    /// <summary>
    /// 被连接者添加连线效果特效
    /// </summary>
    private void AddEnergyEffect()
    {
        /// TODO.读表
        if (m_EnergyBodyFxInstance == null)
        {
            m_EnergyBodyFxInstance = EffectManager.GetInstance().CreateEffect(m_EternityProxy.GetGamingConfig(1).Value.Treasure.Value.Effect.Value.SurroundEffect, EffectManager.GetEffectGroupNameInSpace(m_Property.IsMain()));
            m_EnergyBodyFxInstance.transform.SetParent(m_Property.GetSkinRootTransform(), false);
            m_EnergyBodyFxInstance.SetCreateForMainPlayer(m_Property.IsMain());

            /// 音效
            TreasureHuntProxy treasure = GameFacade.Instance.RetrieveProxy(ProxyName.TreasureHuntProxy) as TreasureHuntProxy;
            treasure.DisturborSoundEffect(m_Property.UId());
        }
        else
        {
            m_EnergyBodyFxInstance.PlayFX();
        }
    }
Esempio n. 5
0
    //private void OnCollisionEnter(Collision obj)
    //{
    //    OnSpacecraftSlidingEnd();
    //}

    //private void OnCollisionStay(Collision obj)
    //{
    //}

    //private void OnCollisionExit(Collision obj)
    //{
    //}

    //private void OnRelive(IComponentEvent obj)
    //{
    //    m_DeadFxState = DeadState.None;

    //    RealTimerUtil.Instance.Unregister(m_ShowDeadFxTimerId);
    //}

    private void OnDead(IComponentEvent obj)
    {
        DeadEvent deadEvent = obj as DeadEvent;

        if (!m_SpacecraftDeadProperty.IsDead())
        {
            return;
        }

        m_DropInfoList = deadEvent.DropList;

        /// TODO.宝藏特殊处理
        /// 服务器创建后立马死亡
        //if (m_SpacecraftDeadProperty.IsNotHaveAva())
        //{
        //	if (m_DropInfoList != null && m_DropInfoList.Count > 0)
        //	{
        //		DropItemManager.Instance.SetDropItemInfoByDeath(m_SpacecraftDeadProperty.UId(), m_DropInfoList);
        //	}
        //	return;
        //}

        /// npc死亡
        if (m_SpacecraftDeadProperty.GetHeroType() != KHeroType.htPlayer)
        {
            Npc npcVO = m_SpacecraftDeadProperty.GetNPCTemplateVO();
            if (npcVO.SoundDead > 0)
            {
                SendEvent(ComponentEventName.PlaySound, new PlaySound()
                {
                    SoundID = (int)npcVO.SoundDead
                });
            }
            /// 导演死检查音乐盒子
            if (m_SpacecraftDeadProperty.GetHeroType() == KHeroType.htPlotMonster)
            {
                MSAIBossProxy msab = GameFacade.Instance.RetrieveProxy(ProxyName.MSAIBossProxy) as MSAIBossProxy;
                msab.DestroySoundBox(m_SpacecraftDeadProperty.UId());
            }
            /// TODO.干扰器死亡
            else if (m_SpacecraftDeadProperty.GetHeroType() == KHeroType.htDisturbor)
            {
                /// 自己的停掉
                SpacecraftEntity ownerEntity = m_SpacecraftDeadProperty.GetOwner();
                ownerEntity.SendEvent(ComponentEventName.PlaySound, new PlaySound()
                {
                    SoundID   = (int)WwiseMusic.Treasure_Disturbor_Sound5,
                    Transform = ownerEntity.GetSkinTransform()
                });

                TreasureHuntProxy treasure = GameFacade.Instance.RetrieveProxy(ProxyName.TreasureHuntProxy) as TreasureHuntProxy;
                treasure.DisturborSoundEffect(m_SpacecraftDeadProperty.GetOwner().m_EntityFatherOwnerID);
            }
        }

        m_SpacecraftDeadProperty.SetTarget(null, null);

        #region 待服务器在new_hero协议中添加复活状态逻辑后删除
        if (m_SpacecraftDeadProperty.IsMain())
        {
            m_GameplayProxy = GameFacade.Instance.RetrieveProxy(ProxyName.GameplayProxy) as GameplayProxy;

            if (m_SpacecraftDeadProperty.IsMain())
            {
                CfgEternityProxy eternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
                m_GameplayProxy.SetDeadMapID(eternityProxy.GetCurrentMapData().GamingmapId);
            }
        }
        #endregion

        ShowRelivePanel(deadEvent);

        SpacecraftPresentation presentation = m_SpacecraftDeadProperty.GetPresentation();
        if (presentation != null)
        {
            if (presentation.SpacecraftDeadType != SpacecraftPresentation.SpacecraftType.Warship)
            {
                OnDeviceDead(deadEvent);
            }
        }
    }