public override void OnShow(object msg)
    {
        base.OnShow(msg);
        MSAIBossProxy msab = GameFacade.Instance.RetrieveProxy(ProxyName.MSAIBossProxy) as MSAIBossProxy;

        m_AIUid = msab.GetCurrentAIUId();
        StartUpdate();
        UIManager.Instance.StartCoroutine(DelayToClose());
    }
    private void OnBuffAdd(KProtoBuf buf)
    {
        var msg = buf as S2C_ADD_BUFF_NOTIFY;

        SpacecraftEntity entity = m_GameplayProxy.GetEntityById <SpacecraftEntity>(msg.herID);

        if (entity != null)
        {
            AddBuffEvent buffEvent = new AddBuffEvent();
            buffEvent.buff = new BuffVO(msg.wBuffID, msg.byOverLap, Time.time, msg.nTime / 1000.0f, msg.link_id, msg.is_master != 0);
            m_EntityManager.SendEventToEntity(msg.herID, ComponentEventName.BuffAdd, buffEvent);

            MSAIBossProxy mSAI = GameFacade.Instance.RetrieveProxy(ProxyName.MSAIBossProxy) as MSAIBossProxy;
            mSAI.CheckBuffPlaySound(msg.wBuffID, true);
        }
    }
    private void OnBuffRemove(KProtoBuf buf)
    {
        var msg = buf as S2C_DEL_BUFF_NOTIFY;

        SpacecraftEntity entity = m_GameplayProxy.GetEntityById <SpacecraftEntity>(msg.herID);

        if (entity != null)
        {
            RemoveBuffEvent buffEvent = new RemoveBuffEvent();
            buffEvent.buffID = msg.wBuffID;
            m_EntityManager.SendEventToEntity(msg.herID, ComponentEventName.BuffRemove, buffEvent);
        }

        MSAIBossProxy mSAI = GameFacade.Instance.RetrieveProxy(ProxyName.MSAIBossProxy) as MSAIBossProxy;

        mSAI.CheckBuffPlaySound(msg.wBuffID, false);
    }
Exemple #4
0
    public override void OnShow(object msg)
    {
        base.OnShow(msg);
        m_AnimatorController.OnAnimationEvent += OnAnimationEvent;
        ServerTimeUtil.Instance.OnTick        += OnUpdate;
        MSAIBossProxy msab = GameFacade.Instance.RetrieveProxy(ProxyName.MSAIBossProxy) as MSAIBossProxy;

        if (msab != null && msab.GetPlayerIsInBattle())
        {
            WwiseUtil.PlaySound((int)SoundID.LoadDown, false, null);
            // TODO
            msab.SetPlayerIsInBattle(false);
        }
        else
        {
            WwiseUtil.PlaySound((int)SoundID.LoadUp, false, null);
        }
    }
    /// <summary>
    /// 英雄死亡
    /// </summary>
    /// <param name="buf"></param>
    private void OnHeroDeath(KProtoBuf buf)
    {
        S2C_HERO_DEATH respond = buf as S2C_HERO_DEATH;
        //NetworkManager.Instance.GetDropItemController().GetDropItemManager().SetDropItemInfoByDeath(m_GameplayProxy, respond.heroID, respond.drop_list);
        //Debug.Log("OnHeroDeath heroID:" + respond.heroID);

        //ShipItemsProxy shipItemsProxy = GameFacade.Instance.RetrieveProxy(ProxyName.ShipItemsProxy) as ShipItemsProxy;
        //shipItemsProxy.RemoveShipItems(respond.heroID);
        MSAIBossProxy msab = GameFacade.Instance.RetrieveProxy(ProxyName.MSAIBossProxy) as MSAIBossProxy;

        //李贺新的战场AI召唤出来的小怪在某种状态下不播死亡爆炸特效
        if (!msab.IsChangeDeadEff(respond.heroID))
        {
            // TODO.
            List <DropInfo> myDropList = new List <DropInfo>();
            foreach (var item in respond.drop_list)
            {
                var dInfo = new DropInfo();
                dInfo.player_uid = item.player_uid;
                dInfo.chest_tid  = item.chest_tid;
                dInfo.ship_tlv   = item.ship_tlv;
                dInfo.quality    = item.ship_tlv;
                myDropList.Add(dInfo);
            }
            m_EntityManager.SendEventToEntity(respond.heroID, ComponentEventName.Dead, new DeadEvent()
            {
                Uid      = respond.heroID,
                DropList = myDropList
            });
        }
        else
        {
            //m_EntityManager.SendEventToEntity(respond.heroID, ComponentEventName.SpacecraftStop, null);
            //msab.AddMonsterEffect(respond.heroID);
        }

        GameFacade.Instance.SendNotification(NotificationName.EntityDeath, new EntityDeathInfo()
        {
            heroID = respond.heroID, killerID = respond.KillerID
        });
    }
        /// <summary>
        /// 删除buf
        /// </summary>
        private static void DisposeDeleteBuf(DeleteBuf result)
        {
            BaseEntity entity = GameplayManager.Instance.GetEntityManager().GetEntityById <BaseEntity>(result.HeroId);

            if (entity == null)
            {
                return;
            }

            Leyoutech.Utility.DebugUtility.LogWarning("广播", string.Format("删除buf  EntitId = {0}, BuffId = {1}", result.HeroId, result.BufId));


            RemoveBuffEvent buffEvent = new RemoveBuffEvent();

            buffEvent.buffID = result.BufId;
            entity.SendEvent(ComponentEventName.BuffRemove, buffEvent);

            MSAIBossProxy mSAI = GameFacade.Instance.RetrieveProxy(ProxyName.MSAIBossProxy) as MSAIBossProxy;

            mSAI.CheckBuffPlaySound(result.BufId, false);
        }
        /// <summary>
        /// 添加buf
        /// </summary>
        private static void DisposeAddBuf(AddBuf result)
        {
            BaseEntity entity = GameplayManager.Instance.GetEntityManager().GetEntityById <BaseEntity>(result.HeroId);

            if (entity == null)
            {
                return;
            }

            Leyoutech.Utility.DebugUtility.LogWarning("广播", string.Format("添加buf  EntitId = {0} , BuffId = {1}", result.HeroId, result.BufId));


            AddBuffEvent buffEvent = new AddBuffEvent();

            buffEvent.buff = new BuffVO(result.BufId, (int)result.Overlap, Time.time, result.Time / 1000.0f, result.LinkId, result.IsMaster);
            entity.SendEvent(ComponentEventName.BuffAdd, buffEvent);

            MSAIBossProxy mSAI = GameFacade.Instance.RetrieveProxy(ProxyName.MSAIBossProxy) as MSAIBossProxy;

            mSAI.CheckBuffPlaySound(result.BufId, true);
        }
Exemple #8
0
    /// <summary>
    /// 切换地图
    /// </summary>
    /// <param name="buf">协议内容</param>
    private void OnSwitchMap(KProtoBuf buf)
    {
        S2C_SWITCH_MAP respond = buf as S2C_SWITCH_MAP;

        CfgEternityProxy cfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;

        if (cfgEternityProxy.GetCurrentMapData().ByteBuffer == null || cfgEternityProxy.GetCurrentMapId() != respond.mapID)
        {
            uint gamingMapId = respond.mapID;
            GameFacade.Instance.SendNotification(NotificationName.MSG_SWITCH_SCENE_START);

            cfgEternityProxy.SetCurrentMapData(gamingMapId);

            Vector3          worldPos         = new Vector3(respond.posX, respond.posY, respond.posZ);
            ulong            areaId           = respond.area_id;
            GameMainMediator gameMainMediator = GameFacade.Instance.RetrieveMediator(UIPanel.GameMainMediator) as GameMainMediator;
            if (gameMainMediator == null)
            {
                gameMainMediator = new GameMainMediator();
                GameFacade.Instance.RegisterMediator(gameMainMediator);
                gameMainMediator.SwtichMap(areaId, worldPos);
            }
            else
            {
                gameMainMediator.SwtichMap(areaId, worldPos);
            }

            // TODO.
            //切图直接清缓存
            MSAIBossProxy aiproxy = GameFacade.Instance.RetrieveProxy(ProxyName.MSAIBossProxy) as MSAIBossProxy;
            aiproxy.CleanAllMonster();

            MineDropItemManager.Instance.ClearAllInfo();
            DropItemManager.Instance.ClearInfo();
        }
    }
Exemple #9
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);
            }
        }
    }