/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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)); }
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"; } }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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; }
/// <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); }
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>(); } }
// 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); }