Esempio n. 1
0
    /// <summary>
    /// 计算强度
    /// </summary>
    private static float CalcIntensity(s_building_typeInfo TypeInfo, s_buildstarInfo StarInfo, s_buildstarInfo original, s_buildqualityInfo QualityInfo, int level)
    {
        if (TypeInfo == null)
        {
            return(0);
        }
        float value = TypeInfo.intensity * 0.01f;

        if (StarInfo != null)
        {
            value += StarInfo.intensitygrow * (level - 1) * 0.01f;
        }

        if (original != null)
        {
            value += (StarInfo.intensitygrow - original.intensitygrow) * 0.01f;
        }


        if (QualityInfo != null)
        {
            value += QualityInfo.addintensity * 0.01f;
        }
        return(value);
    }
Esempio n. 2
0
    /// <summary>
    /// 填充基础建筑信息
    /// </summary>
    private static void CalcBuildInfo(s_building_typeInfo I, ref BuildInfo Info)
    {
        if (I == null || Info == null)
        {
            return;
        }
        //获取技能
        Info.m_Skill = GetSkill(Info.BuildType, Info.Quality);
        s_buildstarInfo    StarInfo    = GetBuildStar(Info.BuildType, Info.StarLevel);
        s_buildqualityInfo QualityInfo = GetBuildQuality(Info.BuildType, Info.Quality);

        int             originalStar = buildingM.GetMinBuildStar(Info.BuildType);
        s_buildstarInfo oriInfo      = buildingM.GetBuildStar(Info.BuildType, originalStar);

        //建筑物三围
        Info.m_Solidity     = CalcSolidity(I, StarInfo, oriInfo, QualityInfo, Info.Level);
        Info.m_Intensity    = CalcIntensity(I, StarInfo, oriInfo, QualityInfo, Info.Level);
        Info.m_Tenacity     = CalcTenacity(I, StarInfo, oriInfo, QualityInfo, Info.Level);
        Info.m_hp           = CalcHp(I, QualityInfo, Info.m_Solidity);
        Info.m_phyattack    = CalcPhyAttack(I, QualityInfo, Info.m_Intensity);
        Info.m_magicattack  = CalcMagAttack(I, QualityInfo, Info.m_Intensity);
        Info.m_phydefend    = CalcPhyDefend(I, QualityInfo, Info.m_Tenacity);
        Info.m_magicdefend  = CalcMagDefend(I, QualityInfo, Info.m_Tenacity);
        Info.m_DefensePower = CalcDefendPower(Info.Quality, Info.StarLevel, Info.Level);
        Info.m_bear         = CalcBear(I, StarInfo, QualityInfo);
    }
Esempio n. 3
0
    /// <summary>
    /// 获取建筑数据
    /// </summary>
    /// <param name="Type">建筑类型</param>
    /// <param name="Level">建筑等级</param>
    /// <param name="Quality">建筑品质</param>
    /// <param name="Star">建筑星级</param>
    /// <returns>建筑数据,null 获取失败</returns>
    private static BuildInfo GetBuildInfo(int Type, int Level, int Quality, int Star)
    {
        //获取基础建筑信息
        s_building_typeInfo BaseInfo = GetBuildType(Type);

        if (BaseInfo == null)
        {
            NGUIUtil.DebugLog("获取不到该类型的建筑数据:" + Type);
            return(null);
        }
        BuildInfo Info = new BuildInfo();

        Info.BuildType = Type;
        Info.Level     = Level;
        Info.Quality   = Quality;
        Info.StarLevel = Star;
        FillBaseBuildInfo(BaseInfo, ref Info);
        //获取建筑掉落资源
        s_buildresourceInfo sreinfo = GetBuildSource(Type, Level);

        if (sreinfo != null)
        {
            FillSourceDrop(sreinfo, ref Info);
        }
        //计算升级,升星,升阶 数据。
        CalcBuildInfo(BaseInfo, ref Info);
        //返回结果
        return(Info);
    }
Esempio n. 4
0
    /// <summary>
    /// 获取建筑数据
    /// </summary>
    /// <param name="Type">建筑类型</param>
    /// <param name="Level">建筑等级</param>
    /// <param name="Quality">建筑品质</param>
    /// <param name="Star">建筑星级</param>
    /// <returns>建筑数据,null 获取失败</returns>
    public static void UpdateBuildInfo(ref BuildInfo Info)
    {
        if (Info == null)
        {
            return;
        }
        //获取基础建筑信息
        s_building_typeInfo BaseInfo = GetBuildType(Info.BuildType);

        if (BaseInfo == null)
        {
            NGUIUtil.DebugLog("获取不到该类型的建筑数据:" + Info.BuildType);
            return;
        }
        FillBaseBuildInfo(BaseInfo, ref Info);
        //获取建筑掉落资源
        s_buildresourceInfo sreinfo = GetBuildSource(Info.BuildType, Info.Level);

        if (sreinfo != null)
        {
            FillSourceDrop(sreinfo, ref Info);
        }
        //计算升级,升星,升阶 数据。
        CalcBuildInfo(BaseInfo, ref Info);
    }
Esempio n. 5
0
    /// <summary>
    /// 获取初级建筑数据
    /// </summary>
    /// <param name="Type">建筑类型</param>
    /// <param name="Level">建筑等级</param>
    /// <param name="Quality">建筑品质</param>
    /// <param name="Star">建筑星级</param>
    /// <returns>建筑数据,null 获取失败</returns>
    public static BuildInfo GetStartBuildInfo(int Type)
    {
        //获取基础建筑信息
        s_building_typeInfo BaseInfo = GetBuildType(Type);

        if (BaseInfo == null)
        {
            NGUIUtil.DebugLog("获取不到该类型的建筑数据:" + Type);
            return(null);
        }

        return(GetBuildInfo(Type, 1, 10, BaseInfo.starlevel));
    }
Esempio n. 6
0
 public void SetRewardItem(int itemType, int id, int num)
 {
     if (itemType == 1)        //英雄整卡
     {
         s_soldier_typeInfo info = SoldierM.GetSoldierType(id);
         if (info == null)
         {
             NGUIUtil.DebugLog("s_soldiertype id = " + id + " 静态表数据未配置!");
             return;
         }
         else
         {
             SetHead(itemType, 0, info.modeltype);
             MyHead.SprQuality.spriteName = "1";
             MyHead.SprQuality.gameObject.SetActive(true);
         }
     }
     else if (itemType == 2)        //道具/碎片
     {
         s_itemtypeInfo info = ItemM.GetItemInfo(id);
         if (info == null)
         {
             NGUIUtil.DebugLog("s_itemtype id = " + id + " 静态表数据未配置!");
             return;
         }
         else
         {
             SetHead(info.gtype, info.icon, info.gid);
             int quality = ConfigM.GetBigQuality(info.quality);
             MyHead.SprQuality.spriteName = quality.ToString();
         }
     }
     else if (itemType == 3)        //陷阱
     {
         s_building_typeInfo buildinfo = buildingM.GetBuildType(id);
         MyHead.Roomhead.gameObject.SetActive(true);
         NGUIUtil.Set2DSprite(MyHead.Roomhead, "Textures/room/", buildinfo.modeltype.ToString());
         MyHead.SprQuality.spriteName = "1";
     }
     else if (itemType == 4)        //黑科技
     {
         string icon = "Textures/role/" + id;
         MyHead.SprQuality.gameObject.SetActive(true);
         MyHead.CaptainHead.gameObject.SetActive(true);
         NGUIUtil.Set2DSprite(MyHead.CaptainHead, icon);
         MyHead.SprQuality.spriteName = "1";
     }
 }
Esempio n. 7
0
    /// <summary>
    /// 计算魔法防御
    /// </summary>
    private static int CalcMagDefend(s_building_typeInfo TypeInfo, s_buildqualityInfo QualityInfo, float Tenacity)
    {
        if (TypeInfo == null)
        {
            return(0);
        }
        float k5    = ConfigM.GetBuildUpParam(5);
        float add   = (Tenacity - TypeInfo.tenacity * 0.01f) * k5;
        int   value = TypeInfo.magicdefend + (int)add;

        if (QualityInfo != null)
        {
            value += QualityInfo.addmagicdefend;
        }
        return(value);
    }
Esempio n. 8
0
    /// <summary>
    /// 计算物理防御
    /// </summary>
    private static int CalcPhyDefend(s_building_typeInfo TypeInfo, s_buildqualityInfo QualityInfo, float Tenacity)
    {
        if (TypeInfo == null)
        {
            return(0);
        }
        float k4    = ConfigM.GetBuildUpParam(4);
        float add   = (Tenacity - TypeInfo.tenacity * 0.01f) * k4;
        int   value = TypeInfo.physicaldefend + (int)add;

        if (QualityInfo != null)
        {
            value += QualityInfo.addphydefend;
        }
        return(value);
    }
Esempio n. 9
0
    /// <summary>
    /// 计算魔法攻击
    /// </summary>
    private static int CalcMagAttack(s_building_typeInfo TypeInfo, s_buildqualityInfo QualityInfo, float Intensity)
    {
        if (TypeInfo == null)
        {
            return(0);
        }
        float k3    = ConfigM.GetBuildUpParam(3);
        float add   = (Intensity - TypeInfo.intensity * 0.01f) * k3;
        int   value = TypeInfo.magic_attack + (int)add;

        if (QualityInfo != null)
        {
            value += QualityInfo.addmagicattack;
        }
        return(value);
    }
Esempio n. 10
0
    /// <summary>
    /// 计算物理攻击
    /// </summary>
    private static int CalcPhyAttack(s_building_typeInfo TypeInfo, s_buildqualityInfo QualityInfo, float Intensity)
    {
        if (TypeInfo == null)
        {
            return(0);
        }
        float k2    = ConfigM.GetBuildUpParam(2);
        float add   = (Intensity - TypeInfo.intensity * 0.01f) * k2;
        int   value = TypeInfo.phy_attack + (int)add;

        if (QualityInfo != null)
        {
            value += QualityInfo.addphyattack;
        }
        return(value);
    }
Esempio n. 11
0
    /// <summary>
    /// 计算血量上限
    /// </summary>
    private static int CalcHp(s_building_typeInfo TypeInfo, s_buildqualityInfo QualityInfo, float Solidity)
    {
        if (TypeInfo == null)
        {
            return(0);
        }
        float k1    = ConfigM.GetBuildUpParam(1);
        float add   = (Solidity - TypeInfo.solidity * 0.01f) * k1;
        int   value = TypeInfo.hp + (int)add;

        if (QualityInfo != null)
        {
            value += QualityInfo.addhp;
        }
        return(value);
    }
Esempio n. 12
0
 /// <summary>
 /// 填充基础建筑信息
 /// </summary>
 private static void FillBaseBuildInfo(s_building_typeInfo I, ref BuildInfo Info)
 {
     if (I == null || Info == null)
     {
         return;
     }
     Info.m_name         = I.name;
     Info.m_modeltype    = I.modeltype;
     Info.m_damage       = I.damage;
     Info.m_RoomType     = (RoomType)I.resource;
     Info.m_RoomKind     = I.kindtype;
     Info.m_Desc         = I.description;
     Info.m_data0        = I.data0;
     Info.m_data1        = I.data1;
     Info.m_Shape        = GetShapeType(I.shapeid);
     Info.m_bear         = I.bear;
     Info.fragmentTypeID = I.fragment;
 }
Esempio n. 13
0
    /// <summary>
    /// 计算承受力
    /// </summary>
    private static int CalcBear(s_building_typeInfo TypeInfo, s_buildstarInfo StarInfo, s_buildqualityInfo QualityInfo)
    {
        if (TypeInfo == null)
        {
            return(0);
        }

        int value = TypeInfo.bear;

        if (StarInfo != null)
        {
            value += StarInfo.bear;
        }

        if (QualityInfo != null)
        {
            value += QualityInfo.bear;
        }
        return(value);
    }
Esempio n. 14
0
    private void BuildSummonResponse(int nErrorCode)
    {
        if (nErrorCode == 0 && m_iWndType == 2)
        {
            GameObjectActionExcute gae       = GameObjectActionExcute.CreateExcute(gameObject);
            s_itemtypeInfo         info      = new s_itemtypeInfo();
            s_building_typeInfo    buildInfo = buildingM.GetBuildType(m_buildInfo.BuildType);
            if (buildInfo != null && buildInfo.name != null)
            {
                info.name = buildInfo.name;
            }
            info.gtype = 3;//item.ErnieRewardType;//如果是碎片该类型也是1.
            info.gid   = m_buildInfo.BuildType;

            if (info == null)
            {
#if UNITY_EDITOR_LOG
                NGUIUtil.DebugLog("SoldierSummonResponse soldTypeId get s_itemtypeInfo is null" + soldTypeId.ToString());
#endif

                return;
            }
            List <s_itemtypeInfo> l = new List <s_itemtypeInfo>();
            l.Add(info);

            TrophiesActionWnd TropWnd = WndManager.GetDialog <TrophiesActionWnd>();
            if (TropWnd)
            {
                TropWnd.ClearTropiesData();
                TropWnd.AddTropiesData(l);
                TropWnd.SetWndType(4);
                TropWnd.MyHead.LblDes.gameObject.SetActive(false);
            }

            WndManager.DestoryDialog <SummonHeroWnd>();
        }
    }
Esempio n. 15
0
    // isSoul是为了兼容闪亮登场界面的信息。
    public static ItemIconInfo GetIconInfo(IconType iconType, int id, bool isSoul, bool isBook)
    {
        ItemIconInfo iconInfo = new ItemIconInfo();

        if (iconType == IconType.IconType_Fragment)
        {
            if (isSoul)
            {
                int soldierTypeId       = SoldierM.GetSoldierStarID(id);
                s_soldier_typeInfo info = SoldierM.GetSoldierType(soldierTypeId);
                if (info == null)
                {
                    NGUIUtil.DebugLog("s_soldiertype id = " + id + " 静态表数据未配置!");
                    return(null);
                }
                else
                {
                    iconType = IconType.IconType_Soldier;
                    id       = info.modeltype;
                }
            }
            else if (isBook)
            {
                iconType = IconType.IconType_Captain;
                int godSkillType = GodSkillM.GetGodSkillType(id);
                id = GodSkillM.GetCaptainID(godSkillType);
            }
        }

        if (iconType == IconType.IconType_Soldier)        //英雄整卡
        {
            s_soldier_typeInfo info = SoldierM.GetSoldierType(id);
            if (info == null)
            {
                NGUIUtil.DebugLog("s_soldiertype id = " + id + " 静态表数据未配置!");
                return(null);
            }
            else
            {
                iconInfo.mType = iconType;
                iconInfo.mName = info.name;
                iconInfo.mID   = info.modeltype;
            }
        }
        else if (iconType == IconType.IconType_Fragment)        //道具/碎片
        {
            s_itemtypeInfo info = ItemM.GetItemInfo(id);
            if (info == null)
            {
                NGUIUtil.DebugLog("s_itemtype id = " + id + " 静态表数据未配置!");
                return(null);
            }
            else
            {
                iconInfo.mType = iconType;
                iconInfo.mName = info.name;
                int soldierTypeId = SoldierM.GetSoldierStarID(id);
                iconInfo.mID = info.gid;
            }
        }
        else if (iconType == IconType.IconType_Bulding)        //陷阱
        {
            s_building_typeInfo buildinfo = buildingM.GetBuildType(id);

            iconInfo.mType = iconType;
            iconInfo.mName = buildinfo.name;
            iconInfo.mID   = buildinfo.modeltype;
        }
        else if (iconType == IconType.IconType_Captain)        //黑科技
        {
            iconInfo.mType = iconType;
            CaptionInfo captionInfo = new CaptionInfo();
            GodSkillM.GetCaption(id, ref captionInfo);
            GodSkillInfo godSkillInfo = new GodSkillInfo();
            GodSkillM.GetGodSkill(captionInfo.m_godskilltype1, 1, ref godSkillInfo);
            iconInfo.mName = godSkillInfo.m_name;
            iconInfo.mID   = id;
        }
        iconInfo.mIsSoul = isSoul;
        iconInfo.mIsBook = isBook;
        return(iconInfo);
    }