Example #1
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;
    }
Example #2
0
    /// <summary>
    /// 监视网格布局
    /// </summary>
    private void ListenerGridLayoutToggle()
    {
        State.GetAction(UIAction.Common_Grid_List).State     = 0;
        State.GetAction(UIAction.Common_Grid_List).Callback -= OnToggleGridLayout;

        if (Config.HasValue)
        {
            int pageIndex = State.GetPageIndex();
            if (pageIndex < Config.Value.LabelIdLength)
            {
                uint pageCfgID = (uint)Config.Value.LabelId(pageIndex);

                CfgEternityProxy cfg        = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
                UiLabelConfig?   pageConfig = cfg.GetUIPage(pageCfgID);
                if (pageConfig.HasValue)
                {
                    if (State.GetPageLayoutStyle(State.GetPageIndex()) == UIViewListLayout.Row)
                    {
                        State.GetAction(UIAction.Common_Grid_List).State = 0;
                    }
                    else
                    {
                        State.GetAction(UIAction.Common_Grid_List).State = 1;
                    }


                    if (pageConfig.Value.ListExchange != 0)
                    {
                        State.GetAction(UIAction.Common_Grid_List).Callback += OnToggleGridLayout;
                    }
                }
            }
        }
    }
    /// <summary>
    /// 更新奖励列表
    /// </summary>
    /// <param name="mission">任务数据</param>
    /// <param name="rewardBox">奖励容器</param>
    private void UpdateRewardList(MissionVO mission, Transform rewardBox)
    {
        CfgEternityProxy configs = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;

        m_RewardIDs.Clear();
        m_RewardCounts.Clear();

        MissionMain cfg = mission.MissionMainConfig.Value;

        if (cfg.ItemId1 > 0)
        {
            m_RewardIDs.Add(cfg.ItemId1);
            m_RewardCounts.Add(cfg.ItemNum1);
        }
        if (cfg.ItemId2 > 0)
        {
            m_RewardIDs.Add(cfg.ItemId2);
            m_RewardCounts.Add(cfg.ItemNum2);
        }
        if (cfg.ItemId3 > 0)
        {
            m_RewardIDs.Add(cfg.ItemId3);
            m_RewardCounts.Add(cfg.ItemNum3);
        }
        if (cfg.ItemId4 > 0)
        {
            m_RewardIDs.Add(cfg.ItemId4);
            m_RewardCounts.Add(cfg.ItemNum4);
        }
        if (cfg.ItemId5 > 0)
        {
            m_RewardIDs.Add(cfg.ItemId5);
            m_RewardCounts.Add(cfg.ItemNum5);
        }

        int index = 0;

        for (; index < m_RewardIDs.Count; index++)
        {
            int  itemID    = m_RewardIDs[index];
            int  itemCount = m_RewardCounts[index];
            Item item      = configs.GetItemByKey((uint)m_RewardIDs[index]);

            Transform node    = index < rewardBox.childCount ? rewardBox.GetChild(index) : Object.Instantiate(rewardBox.GetChild(0), rewardBox);
            Image     icon    = FindComponent <Image>(node, "Icon/Icon");
            Image     quality = FindComponent <Image>(node, "Icon/Quality");
            TMP_Text  name    = FindComponent <TMP_Text>(node, "Label_Name");
            TMP_Text  count   = FindComponent <TMP_Text>(node, "Label_Num");

            node.gameObject.SetActive(true);
            UIUtil.SetIconImageSquare(icon, item.Icon);
            quality.color = ColorUtil.GetColorByItemQuality(item.Quality);
            name.text     = TableUtil.GetItemName(itemID);
            count.text    = itemCount.ToString();
        }
        for (; index < rewardBox.childCount; index++)
        {
            rewardBox.GetChild(index).gameObject.SetActive(false);
        }
    }
Example #4
0
    /// <summary>
    ///是否属于某个阵营关系
    /// </summary>
    /// <param name="factiontype">想去判断的阵营关系</param>
    /// <param name="selfCampType">阵营类型1(读表定义的阵营)</param>
    /// <param name="targetCampType">阵营类型2(读表定义的阵营)</param>
    /// <returns></returns>
    public bool IsBelongToThisFactionType(FactionType factiontype, BaseEntity entity1, BaseEntity entity2)
    {
        //左边:FactionType,右边 :CampRelation
        //自己= 自己,友方(包含自己) = 友方+中立,敌方 = 敌方,All = 友方+中立+敌方

        //自己
        if (factiontype == FactionType.Self)
        {
            return(entity1.UId() == entity2.UId());
        }

        CfgEternityProxy cfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
        CampRelation     campRelation     = cfgEternityProxy.GetRelation(entity1.GetCampID(), entity2.GetCampID());

        //友方
        if (factiontype == FactionType.Friendly)
        {
            return(campRelation == CampRelation.Friend || campRelation == CampRelation.Neutrality);
        }

        //敌方
        if (factiontype == FactionType.Enemy)
        {
            return(campRelation == CampRelation.Enemy);
        }

        //所有
        if (factiontype == FactionType.All)
        {
            return(campRelation != CampRelation.Undefined);
        }

        return(false);
    }
Example #5
0
    /// <summary>
    /// FIXME: 临时函数, 现在直接使用camp_list表里的声望默认值来初始化对不同阵营的声望
    /// </summary>
    private void InitPrestige()
    {
        // camplist表中, 阵营ID从1开始
        uint camp = m_Property.GetCampID();

        if (camp < 1)
        {
            Debug.LogErrorFormat("templateID为{0}的怪阵营错误", m_Property.GetTemplateID());
        }

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

        int count = cfgEternityProxy.GetCampCount();

        for (int campIndex = 0; campIndex < count; campIndex++)
        {
            CampList campVO   = cfgEternityProxy.GetCampVOByIndex(campIndex);
            CampNode?campnode = campVO.NodeCampList(campIndex);
            if (!campnode.HasValue)
            {
                Debug.LogError("CampList表错误. 不该出现的错误");
                continue;
            }

            m_Property.SetPrestige(campnode.Value.CampOther, cfgEternityProxy.GetCampRelationVO(camp, campnode.Value.CampOther).Value.PrestigeInit);
        }
    }
Example #6
0
    /// <summary>
    /// 获取态皮肤节点通过模板ID
    /// </summary>
    /// <param name="templateID">模板ID</param>
    /// <param name="heroType">类型</param>
    /// <returns></returns>
    public Transform GetSkinTransformByTemplateID(int templateID, KHeroType heroType)
    {
        CfgEternityProxy cfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;

        if (cfgEternityProxy.IsSpace())
        {
            Dictionary <ulong, BaseEntity> entitys = m_EntityManager.GetEntities <SpacecraftEntity>();
            if (entitys != null)
            {
                foreach (SpacecraftEntity spacecraftEntity in entitys.Values)
                {
                    if (spacecraftEntity.GetTemplateID() == templateID && spacecraftEntity.GetHeroType() == heroType)
                    {
                        return(spacecraftEntity.GetSkinTransform());
                    }
                }
            }
        }
        else
        {
            Dictionary <ulong, BaseEntity> entitys = m_EntityManager.GetEntities <HumanEntity>();
            if (entitys != null)
            {
                foreach (HumanEntity humanEntity in entitys.Values)
                {
                    if (humanEntity.GetTemplateID() == templateID && humanEntity.GetHeroType() == heroType)
                    {
                        return(humanEntity.GetSkinTransform());
                    }
                }
            }
        }

        return(null);
    }
Example #7
0
    /// <summary>
    /// 获取物品Icon Tid
    /// </summary>
    /// <param name="itemID">配置表ID</param>
    /// <returns></returns>
    public static uint GetItemIconTid(uint itemID)
    {
        CfgEternityProxy cfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
        uint             iconId           = cfgEternityProxy.GetItemByKey(itemID).Icon;

        return(iconId);
    }
Example #8
0
    /// <summary>
    /// 获取物品Bundle
    /// </summary>
    /// <param name="itemType">物品类型</param>
    /// <param name="itemID">配置表ID</param>
    /// <returns></returns>
    public static string GetItemIconBundle(uint itemID)
    {
        CfgEternityProxy cfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
        uint             iconId           = cfgEternityProxy.GetItemByKey(itemID).Icon;

        return(cfgEternityProxy.GetIconName(iconId).Atlas);
    }
Example #9
0
 public void Init()
 {
     if (m_CharacterModel == null)
     {
         m_CharacterModel = transform.Find("Content/NPC").GetComponent <RawImage>();
     }
     if (m_ServerListProxy == null)
     {
         m_ServerListProxy = (ServerListProxy)GameFacade.Instance.RetrieveProxy(ProxyName.ServerListProxy);
     }
     if (m_CfgEternityProxy == null)
     {
         m_CfgEternityProxy = (CfgEternityProxy)GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy);
     }
     if (m_UpaTips == null)
     {
         m_UpaTips = transform.Find("Content/Content/Message");
     }
     if (m_Label == null)
     {
         m_Label = transform.Find("Content/Content/Label_Name").GetComponent <TMP_Text>();
     }
     m_CharacterModel.gameObject.SetActive(true);
     m_Label.text = TableUtil.GetLanguageString("esc_title_1002");
     ShowUpaTips();
     ShowCharacter();
 }
Example #10
0
    public override void OnShow(object msg)
    {
        base.OnShow(msg);
        OwnerView.State.SetActionCompareEnabled(false);
        if (m_MailProxy == null)
        {
            m_MailProxy = GameFacade.Instance.RetrieveProxy(ProxyName.MailProxy) as MailProxy;
        }
        if (m_CfgEternityProxy == null)
        {
            m_CfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
        }
        if (m_LogProxy == null)
        {
            m_LogProxy = GameFacade.Instance.RetrieveProxy(ProxyName.LogProxy) as LogProxy;
        }

        OwnerView.State.GetAction(UIAction.Mail_Retrieve).Callback -= GetAccessory;
        OwnerView.State.GetAction(UIAction.Mail_Retrieve).Callback += GetAccessory;
        OwnerView.State.GetAction(UIAction.Mail_Empty).Callback    -= DeleteAll;
        OwnerView.State.GetAction(UIAction.Mail_Empty).Callback    += DeleteAll;
        OwnerView.State.GetAction(UIAction.Mail_Delete).Callback   -= DeleteMail;
        OwnerView.State.GetAction(UIAction.Mail_Delete).Callback   += DeleteMail;
        OwnerView.State.GetAction(UIAction.Mail_Mark).Callback     -= SetMarkMail;
        OwnerView.State.GetAction(UIAction.Mail_Mark).Callback     += SetMarkMail;
        State.OnSelectionChanged += OnSelectionChanged;
    }
Example #11
0
    /// <summary>
    /// 初始化
    /// </summary>
    public override void Initialize()
    {
        UICompositeViewMounts mounts = GetTransform().GetComponent <UICompositeViewMounts>();

        if (mounts)
        {
            BackBox   = mounts.BackBox;
            TitleBox  = mounts.TitleBox;
            ListBox   = mounts.ListBox;
            TipBox    = mounts.TipBox;
            PageBox   = mounts.PageBox;
            SortBox   = mounts.SortBox;
            OtherBox  = mounts.OtherBox;
            ModelBox  = mounts.ModelBox;
            HotkeyBox = mounts.HotkeyBox;
        }

        Root = FindComponent <Transform>("Content");
        AnimatorController = GetTransform().GetComponent <UIAnimationEvent>();

        //初始化页面状态
        CfgEternityProxy cfg      = Facade.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
        UiConfig?        uiConfig = cfg.GetUIConfig((uint)Name);

        if (uiConfig.HasValue && !m_ViewStates.ContainsKey(Name))
        {
            UIViewState state = new UIViewState();
            state.UIConfig = uiConfig;
            state.Initialize();

            m_ViewStates.Add(Name, state);
        }
    }
Example #12
0
    /// <summary>
    /// 初始化
    /// </summary>
    public void Initialize()
    {
        cfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;

        m_triggerMgr = new WwiseTimeTriggerManager();
        m_triggerMgr.Init();

        //wwise Root 挂点
        GameObject WwiseSoundRoot = new GameObject("WwiseSoundRoot");

        //root 挂点不销毁
        GameObject.DontDestroyOnLoad(WwiseSoundRoot);

        //设置主(全局)音效库
        SoundBankObjRoot = new GameObject("SoundBankRoot");
        SoundBankObjRoot.transform.SetParent(WwiseSoundRoot.transform, false);

        //设置音源总挂点
        SoundSourceObjRoot = new GameObject("SoundSourceRoot");
        SoundSourceObjRoot.transform.SetParent(WwiseSoundRoot.transform, false);

        //设置2D音源挂点
        SoundSource2DObj = new GameObject("SoundSource2DObj");
        SoundSource2DObj.transform.SetParent(SoundSourceObjRoot.transform, false);

        //设置3D音源模板挂点
        SoundSource3DObj_TemplateRoot = new GameObject("SoundSource3DObj_TemplateRoot");
        SoundSource3DObj_TemplateRoot.transform.SetParent(SoundSourceObjRoot.transform, false);

        // 加载最先的bank
        LoadFirstBank();


    }
 public override void OnShow(object msg)
 {
     base.OnShow(msg);
     LoadViewPart(ASSET_ADDRESS, OwnerView.ListBox);
     m_Msg = msg;
     m_CfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
 }
Example #14
0
    /// <summary>
    /// 根据死亡延时创建宝箱
    /// </summary>
    public void CreateDropItemByDeath(ulong key, SpacecraftEntity spe)
    {
        Debug.Log("CreateDropItemByDeath key:" + key + " SpacecraftEntity:" + spe);
        m_SpacecraftEntityDic.Add(key, spe);

        Npc npcVO = spe.GetNPCTemplateVO();
        CfgEternityProxy cfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
        Model            model            = cfgEternityProxy.GetModel(npcVO.Model);
        int ruinTime = model.RuinTime;

        if (ruinTime > 0)
        {
            UIManager.Instance.StartCoroutine(DelayToCreateDropItemByDeath(key, spe, ruinTime / 1000.0f));
        }
        else
        {
            CreateDropItem((uint)key, spe, 2);
        }
        /// TODO.宝藏特殊处理
        /// 服务器创建后立马死亡,没有死亡特效
        ///if (spe.GetHeroType() == KHeroType.htPreicous)
        ///{
        ///	CreateDropItem((uint)key, spe, 2);
        ///}
        ///else
        ///{
        ///	UIManager.Instance.StartCoroutine(DelayToCreateDropItemByDeath(key, spe));
        ///}
        ///CreateDropItem((uint)key, spe, 2);
    }
Example #15
0
    /// <summary>
    ///  卸载 音效组合
    /// </summary>
    /// <param name="ComboId">组合 ID</param>
    /// <param name="todoPrepareEvent">是否是需要执行 PrepareEvent</param>
    public static void UnLoadMusicCombo(int ComboId)
    {
        CfgEternityProxy cfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
        SoundComboData?[] soundCombos = cfgEternityProxy.GetSoundComboDataByKey(ComboId);

        List<int> bankList = new List<int>();
        List<string> EventList = new List<string>();

        for (int i = 0; i < soundCombos.Length; i++)
        {
            int musicId = soundCombos[i].Value.MusicId;
            if (musicId <= 0)
                continue;

            Sound? sound = cfgEternityProxy.GetSoundByKey((uint)musicId);
            SoundEvent? soundevent = cfgEternityProxy.GetSoundEventDataByKey((uint)sound.Value.EventId);
            if (!bankList.Contains(soundevent.Value.BankID))
                bankList.Add(soundevent.Value.BankID);
            if (!EventList.Contains(soundevent.Value.EventName) && !soundevent.Value.HaveMedia)
                EventList.Add(soundevent.Value.EventName);
        }

        //执行卸载,   注意 卸载只是当音效停止状态才能真正执行
        for (int i = 0; i < EventList.Count; i++)
        {
            WwiseManager.Instance.LoadorUnLoadPrepareEvent(EventList[i], false);
        }
        for (int t = 0; t < bankList.Count; t++)
        {
            SoundBank? bank = cfgEternityProxy.GetSoundBankByKey((uint)bankList[t]);
            WwiseManager.Instance.UnLoadSoundBank(bank.Value.BankName);
        }
    }
Example #16
0
    /// <summary>
    /// 播放特殊枚举类型音效
    /// 注:必须属于组合表内表明定义的
    /// </summary>
    /// <param name="ComboId">组合Id</param>
    /// <param name="type">类型枚举</param>
    /// <param name="place">主角or其他 --玩家跟主角音效不同,目前只有船有需求</param>
    ///<param name="alreadyPrepare">是否已经执行了预先加载事件 Prepare</param>
    /// <param name="point">播放位置</param>
    public static void PlaySpecialTypeMusicOrSound(int ComboId, WwiseMusicSpecialType type, WwiseMusicPalce place, bool alreadyPrepare, Vector3 point, Action<object> endAction = null, SystemObject userEndData = null)
    {
        if (ComboId <= 0)
            return;

        CfgEternityProxy cfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
        SoundComboData?[] soundCombos = cfgEternityProxy.GetSoundComboDataByKey(ComboId);

        int musicId = -1;
        for (int i = 0; i < soundCombos.Length; i++)
        {
            if (soundCombos[i].Value.Type == (int)type && soundCombos[i].Value.Place == (int)place)
            {
                musicId = soundCombos[i].Value.MusicId;
                break;
            }
        }

        if (musicId <= 0)
        {
            Debug.LogWarning(string.Format("检查表SoundCombo 表,数据不对 ComboId = {0}, type = {1}", ComboId, (int)type));
            return;
        }
        PlayMusicOrSound(musicId, alreadyPrepare, point, endAction);
    }
Example #17
0
    /// <summary>
    /// 布局蓝图的MOD部分
    /// </summary>
    /// <param name="tid">蓝图的TID</param>
    /// <param name="materialNode">MOD节点</param>
    private void LayoutBlueprintModList(uint tid, Transform modNode)
    {
        CfgEternityProxy cfg = GetConfig();

        Produce produce = cfg.GetProduceByKey(tid);

        Item     item     = cfg.GetItemByKey((uint)produce.ProductId);
        Category itemType = ItemTypeUtil.GetItemType(item.Type).MainType;

        int modCount = 0;

        if (itemType == Category.Warship)
        {
            Warship     ship      = cfg.GetWarshipByKey(item.Id);
            ModPosition modPosCfg = cfg.GetModPosition((uint)ship.ModPosition);
            modCount = modPosCfg.PositionsLength;
        }
        else if (itemType == Category.Weapon)
        {
            Weapon      weapon    = cfg.GetWeapon(item.Id);
            ModPosition modPosCfg = cfg.GetModPosition((uint)weapon.ModPosition);
            modCount = modPosCfg.PositionsLength;
        }

        LayoutModList(new int[modCount], modNode);
    }
Example #18
0
    private void OnSyncNewHero(KProtoBuf buffer)
    {
        S2C_SYNC_NEW_HERO respond = buffer as S2C_SYNC_NEW_HERO;

        if (m_EntityManager.GetEntityById <BaseEntity>(respond.id) != null)
        {
            Debug.LogErrorFormat("已经创建UId为{0}的实体", respond.id);
            return;
        }

        //Debug.LogErrorFormat("====《创建UId为{0}的实体", respond.id);

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

        if (cfgEternityProxy.IsSpace())
        {
            m_EntityManager.CreateEntityByRespond <SpacecraftEntity, S2C_SYNC_NEW_HERO>(respond.id, respond.templateID, respond.item_tid, respond.ownerPlayerID, respond);
        }
        else
        {
            m_EntityManager.CreateEntityByRespond <HumanEntity, S2C_SYNC_NEW_HERO>(respond.id, respond.templateID, respond.item_tid, respond.ownerPlayerID, respond);
        }

        Debug.Log("OnSyncNewHero\n" + JsonUtility.ToJson(respond));
    }
Example #19
0
    /// <summary>
    /// 设置Icon image方图
    /// </summary>
    /// <param name="image">image</param>
    /// <param name="IconId">Icon表Tid</param>
    public static void SetIconImageSquare(Image image, uint IconId, bool autoSetNativeSize = false)
    {
        CfgEternityProxy cfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
        Icon             icon             = cfgEternityProxy.GetIconName(IconId);

        SetIconImage(image, icon.Atlas, icon.SquareName, autoSetNativeSize);
    }
Example #20
0
    public override void OnInitialize(ISkillRefactorProperty property)
    {
        m_Property = property;

        m_State = SkillState.Idle;
        m_Property.SetCurrentSkillState(m_State);

        m_IDToSkill                = new Dictionary <int, SkillBase>();
        m_RemoveSkillList          = new List <int>();
        m_ReleasedSkillDuringPress = new Dictionary <int, bool>();

        m_CfgSkillProxy    = GameFacade.Instance.RetrieveProxy(ProxyName.CfgSkillSystemProxy) as CfgSkillSystemProxy;
        m_SkillProxy       = GameFacade.Instance.RetrieveProxy(ProxyName.PlayerSkillProxy) as PlayerSkillProxy;
        m_CfgLanguageProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgLanguageProxy) as CfgLanguageProxy;
        m_GameplayProxy    = GameFacade.Instance.RetrieveProxy(ProxyName.GameplayProxy) as GameplayProxy;

        m_CfgEternityProxy     = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
        m_WeakSoundCD          = m_CfgEternityProxy.GetGamingConfig(1).Value.Mine.Value.Sound.Value.WeaknessSoundCd;
        m_WeakSoundTmpCD       = m_WeakSoundCD;
        m_WeakSoundProbability = m_CfgEternityProxy.GetGamingConfig(1).Value.Mine.Value.Sound.Value.WeaknessSoundRate;

        SkillBase.s_CfgSkillProxy    = m_CfgSkillProxy;
        SkillBase.s_SkillProxy       = m_SkillProxy;
        SkillBase.s_CfgLanguageProxy = m_CfgLanguageProxy;
        SkillBase.s_GameplayProxy    = m_GameplayProxy;
        SkillBase.s_CfgEternityProxy = m_CfgEternityProxy;
        SetPreditionForAllSkillType();

        // UNDONE, 声音

        PreloadSkill();
    }
Example #21
0
    public bool CanAttackToTarget(SpacecraftEntity attacker, SpacecraftEntity target)
    {
        if (attacker == null || target == null)
        {
            return(false);
        }

        //优先判断是否可被攻击
        if (!target.GetCanBeAttack())
        {
            return(false);
        }

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

        //直接调用获取阵营关系的函数,岂不简单些?
        CampRelation relation = cfgEternityProxy.GetRelation(attacker.GetCampID(), target.GetCampID());

        return(relation == CampRelation.Enemy);

        //int attCamp = attacker.GetCampID();
        //int tarCamp = target.GetCampID();
        //CampVO_MergeObject? campVO = cfgCampProxy.GetCampRelationVO(attCamp, tarCamp);
        //if (campVO == null)
        //{
        //	Debug.LogErrorFormat("阵营信息不存在. Camp1: {0}, Camp2: {1}", attCamp, tarCamp);
        //	return false;
        //}
        //else
        //{
        //	int prestage = attacker.GetPrestige(tarCamp);
        //	// 通过声望值判断是否可攻击
        //	return prestage > campVO.Value.PrestigeEnemyMin && prestage < campVO.Value.PrestigeEnemyMax;
        //}
    }
Example #22
0
    public override void OnShow(object msg)
    {
        base.OnShow(msg);

        RectTransform poolBox = FindComponent <RectTransform>("TemplatePool");

        if (poolBox == null)
        {
            poolBox = new GameObject("TemplatePool", typeof(RectTransform)).GetComponent <RectTransform>();
            poolBox.SetParent(GetTransform());
            poolBox.gameObject.SetActive(false);
            poolBox.SetAsFirstSibling();
        }

        m_TemplateToPool.Clear();

        RectTransform templates = FindComponent <RectTransform>("Templates");

        for (int i = 0; i < templates.childCount; i++)
        {
            Transform template     = templates.GetChild(i);
            Transform templatePool = poolBox.Find(template.name);
            if (!templatePool)
            {
                templatePool = new GameObject(template.name, typeof(RectTransform)).GetComponent <RectTransform>();
                templatePool.SetParent(poolBox);
            }
            m_TemplateToPool.Add(template, templatePool);
        }

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

        StartUpdate();
    }
    /// <summary>
    /// 初始化
    /// </summary>
    protected virtual void Initialize()
    {
        if (m_Inited)
        {
            return;
        }
        m_Inited = true;

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

        m_AutoSizeBox      = TransformUtil.FindUIObject <RectTransform>(transform, "ImagePoint/Box");
        m_IconGo           = TransformUtil.FindUIObject <Transform>(transform, "ImagePoint/Box/Icon").gameObject;
        m_Icon             = TransformUtil.FindUIObject <Image>(transform, "ImagePoint/Box/Icon/Image_Icon");
        m_RawGo            = TransformUtil.FindUIObject <Transform>(transform, "ImagePoint/Box/Raw").gameObject;
        m_RawImage         = TransformUtil.FindUIObject <RawImage>(transform, "ImagePoint/Box/Raw/back");
        m_NameLabel        = TransformUtil.FindUIObject <TMP_Text>(transform, "ImagePoint/Box/Name/TextBox/Name");
        m_LocationPoint    = TransformUtil.FindUIObject <Transform>(transform, "ImagePoint/Box/Location").gameObject;
        m_BottomIconGo     = TransformUtil.FindUIObject <Transform>(transform, "ImagePoint/Box/Image").gameObject;
        m_BottomIconParent = TransformUtil.FindUIObject <RectTransform>(transform, "ImagePoint/Box/Image/Icon/Type1");


        m_BottomIconGo.SetActive(false);
        m_IconGo.SetActive(false);
        m_RawGo.SetActive(false);
        m_LocationPoint.SetActive(false);

        UIEventListener.UIEventListener.AttachListener(gameObject).onSelect = OnToggleChanged;
    }
Example #24
0
    public void ShowShip()
    {
        ShipProxy shipProxy = GameFacade.Instance.RetrieveProxy(ProxyName.ShipProxy) as ShipProxy;
        IShip     ship      = shipProxy.GetAppointWarShip();

        if (ship != null)
        {
            CfgEternityProxy cfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
            Model            model            = cfgEternityProxy.GetItemModelByKey(ship.GetTID());
            GameObject       container        = GameObject.Find(model.ExhibitionPoint);
            if (container)
            {
                m_Show = true;
                TransformUtil.FindUIObject <Transform>(container.transform, "Ship_Light").gameObject.SetActive(true);
                AssetUtil.InstanceAssetAsync(model.AssetName,
                                             (pathOrAddress, returnObject, userData) =>
                {
                    if (returnObject != null)
                    {
                        GameObject gameobj = (GameObject)returnObject;
                        gameobj.transform.SetParent(container.transform, false);
                        m_ShipGameObject = gameobj;
                        if (!m_Show)
                        {
                            HideShip();
                        }
                    }
                    else
                    {
                        Debug.LogError(string.Format("资源加载成功,但返回null,  pathOrAddress = {0}", pathOrAddress));
                    }
                });
            }
        }
    }
Example #25
0
 private CfgEternityProxy GetCfgMissionProxy()
 {
     if (m_CfgMissionProxy == null)
     {
         m_CfgMissionProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
     }
     return(m_CfgMissionProxy);
 }
    public PlayerShipSkillVO(int skillID)
    {
        m_TemplateID = skillID;

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

        m_SkillData = eternityProxy.GetSkillData(m_TemplateID);
    }
Example #27
0
 /// <summary>
 /// 获取配置文件
 /// </summary>
 /// <returns>配置数据</returns>
 private CfgEternityProxy GetConfig()
 {
     if (m_Config == null)
     {
         m_Config = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
     }
     return(m_Config);
 }
Example #28
0
 /// <summary>
 /// CfgPlayerProxy
 /// </summary>
 /// <returns></returns>
 private CfgEternityProxy GetCfgEternityProxy()
 {
     if (m_CfgEternityProxy == null)
     {
         m_CfgEternityProxy = (CfgEternityProxy)Facade.RetrieveProxy(ProxyName.CfgEternityProxy);
     }
     return(m_CfgEternityProxy);
 }
Example #29
0
    /// <summary>
    /// 是否在太空中
    /// </summary>
    /// <returns>bool</returns>
    protected bool IsInSpace()
    {
        if (m_CfgEternityProxy == null)
        {
            m_CfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
        }

        return(m_CfgEternityProxy.IsSpace());
    }
Example #30
0
 public override void Initialize()
 {
     m_ServerListProxy  = (ServerListProxy)Facade.RetrieveProxy(ProxyName.ServerListProxy);
     m_CfgEternityProxy = (CfgEternityProxy)Facade.RetrieveProxy(ProxyName.CfgEternityProxy);
     m_PanelRoot        = FindComponent <Transform>("Content");
     m_Title            = FindComponent <TMP_Text>("Content/Title/Icon/Label");
     m_CfgEternityProxy.CheckData();
     CanReceiveFocus = false;
 }