public void Initialize(PropAward item, AwardDisplayCtrl ctrl) { PropSample sample = PropSampleManager.Instance.getPropSampleBySid(item.sid); Prop tmp = PropManagerment.Instance.createProp(sample.sid); if (tmp.isMagicScrap()) { Utils.RemoveAllChild(itemImage.transform); MagicWeapon magic = MagicWeaponScrapManagerment.Instance.getMagicWeaponByScrapSid(tmp.sid); GameObject obj = NGUITools.AddChild(itemImage.gameObject, starPerfab); ShowStars show = obj.GetComponent <ShowStars>(); show.init(magic, MagicWeaponManagerment.USEDBUMAGIC_AWARD); } itemName.text = LanguageConfigManager.Instance.getLanguage("s0058") + sample.name; string count; if (item.num == 0) { count = "x1"; } else { count = "x" + item.num; } itemName.text += count; itemImage.width = 256; itemImage.height = 256; if (item.sid == 71181) { itemImage.width = 180; itemImage.height = 180; } qualityBg.spriteName = QualityManagerment.qualityIDToIconSpriteName(sample.qualityId); ResourcesManager.Instance.LoadAssetBundleTexture(ResourcesManager.ICONIMAGEPATH + sample.iconId, itemImage); Initialize(ctrl); }
public void parse(ErlArray array, Award award) { ErlArray arr; for (int i = 0; i < array.Value.Length; i++) { arr = array.Value [i] as ErlArray; string type = (arr.Value [0]).getValueString(); if (type == TYPE_RMB) { int rmb = StringKit.toInt(arr.Value [1].getValueString()); award.awardRmb = rmb; } else if (type == TYPE_CARD) { Card c = CardManagerment.Instance.createCard(); c.bytesRead(0, arr.Value [1] as ErlArray); StorageManagerment.Instance.addCardProp(c); CardAward card = new CardAward(); card.id = c.uid; card.sid = c.sid; award.cards.Add(card); } else if (type == TYPE_BEAST) { Card c = CardManagerment.Instance.createCard(); c.bytesRead(0, arr.Value [1] as ErlArray); StorageManagerment.Instance.addBeastProp(c); CardAward card = new CardAward(); card.id = c.uid; card.sid = c.sid; award.cards.Add(card); } else if (type == TYPE_PROP) { Prop p = PropManagerment.Instance.createProp(); p.bytesRead(1, arr); StorageManagerment.Instance.addGoodsProp(p); PropAward prop = new PropAward(); prop.sid = p.sid; prop.num = p.getNum(); award.props.Add(prop); } else if (type == TYPE_EQUIP) { Equip eq = EquipManagerment.Instance.createEquip(); eq.bytesRead(0, arr.Value [1] as ErlArray); // if(!ChooseTypeSampleManager.Instance.isToEat (eq, ChooseTypeSampleManager.TYPE_EQUIP_EXP)) eq.isNew = true; StorageManagerment.Instance.addEquipProp(eq); EquipAward equip = new EquipAward(); equip.id = eq.uid; equip.sid = eq.sid; award.equips.Add(equip); } else if (type == KEY_MAGICWEAPON) { MagicWeapon mc = MagicWeaponManagerment.Instance.createMagicWeapon(); mc.bytesRead(0, arr.Value[1] as ErlArray); StorageManagerment.Instance.addMagicWeaponProp(mc); MagicwWeaponAward mcAward = new MagicwWeaponAward(); mcAward.id = mc.uid; mcAward.sid = mc.sid; award.magicWeapons.Add(mcAward); } else if (type == TempPropType.STARSOUL) { StarSoul starSoul = StarSoulManager.Instance.createStarSoul(); starSoul.bytesRead(0, arr.Value [1] as ErlArray); StorageManagerment.Instance.addStarSoulStorage(starSoul, true); StarSoulAward starSoulAward = new StarSoulAward(); starSoulAward.uid = starSoul.uid; starSoulAward.sid = starSoul.sid; award.starsouls.Add(starSoulAward); } else if (type == TYPE_EXP) { long exp = StringKit.toLong(arr.Value [1].getValueString()); award.awardExp = exp; } else if (type == TYPE_MONEY) { int money = StringKit.toInt(arr.Value [1].getValueString()); award.awardMoney = money; } else if (type == TYPE_CARD_EXP) { EXPAward exp = new EXPAward(); exp.id = arr.Value [1].getValueString(); exp.awardExp = StringKit.toLong(arr.Value [2].getValueString()); award.exps.Add(exp); } else if (type == TYPE_HONOR) { int honor = StringKit.toInt(arr.Value [1].getValueString()); award.awardHonor = honor; } else if (type == TYPE_INTEGRAL) { int integral = StringKit.toInt(arr.Value [1].getValueString()); award.awardIntegral = integral; } else if (type == TYPE_MERIT) { int merit = StringKit.toInt(arr.Value [1].getValueString()); award.awardMerit = merit; } else if (type == TYPE_STAR) { int starNum = StringKit.toInt(arr.Value [1].getValueString()); award.awardStar = starNum; } else if (type == TYPE_CONTRIBUTION) { int contribution = StringKit.toInt(arr.Value [1].getValueString()); award.awardCon = contribution; } else if (type == TYPE_PK) { int pkNum = StringKit.toInt(arr.Value [1].getValueString()); SweepManagement.Instance.initPvpNum(pkNum); } else if (type == TYPE_LUCKSTAR) { int luckStarNum = StringKit.toInt(arr.Value [1].getValueString()); award.awardLuckyStar = luckStarNum; } else if (type == TYPE_PRESTIGE) { int prestige = StringKit.toInt(arr.Value[1].getValueString()); award.awardPrestige = prestige; } else if (type == TempPropType.STARSOUL_DEBRIS) { int debris = StringKit.toInt(arr.Value[1].getValueString()); award.awardStarsoulDebris = debris; } else if (type == TYPE_GODSWAR_INTEGRAL) { int debris = StringKit.toInt(arr.Value[1].getValueString()); award.godsWar_awardIntegral = debris; } else if (type == TYPE_LASTBATTLE_SCORE) { LastBattleManagement.Instance.battleScore = StringKit.toInt(arr.Value[1].getValueString()); } } }
/// <summary> /// 根据指定的总价格及产出规则,计算获得的金币数及道具数量 /// </summary> /// <param name="totalCost">产出物总价格</param> /// <param name="awardID"></param> /// <returns>返回计算得出的奖品列表,或返回null</returns> public AwardDatas GetAwards(int totalCost, int awardID) { AwardInfo awardInfo = this.AwardConfig.GetAward(awardID); if (awardInfo != null) { Debug.LogFormat("<><AwardDataHelper.GetAwards>AwardInfo: {0}", awardInfo); AwardDatas awardDatas = new AwardDatas(); try { foreach (var awardConfig in awardInfo.Awards) { if (awardConfig is CoinAward) { awardDatas.Datas.Add(new AwardData() { ID = this.FundDataManager.GetCoinId(), Count = (int)(totalCost * awardConfig.Percent), Icon = "coin", AwardType = AwardTypes.COIN }); } else if (awardConfig is PropAward) { PropAward propAward = awardConfig as PropAward; //转成道具奖品产出规则 int cost = (int)(totalCost * propAward.Percent); //计算道具奖品的总价格 List <AwardData> sourceData = new List <AwardData>(); if (propAward.FoodAward) {//将食物表中的所有数据转成统一格式 List <PropertyItem> foods = this.PropertyConfig.GetPropertyList(); sourceData.AddRange(this.PropertyItemList2AwardDataList(foods)); } if (propAward.MaterialAward) {//将配饰表中所有的材料数据转成统一格式 } List <AwardData> propAwards = this.GetPropAwards(cost, sourceData);//根据金币数,从源数据中随机取出1~2个奖品 if (propAwards != null && propAwards.Count > 0) { awardDatas.Datas.AddRange(propAwards); } } } if (awardDatas.Datas.Count == 0) { Debug.LogErrorFormat("<><AwardDataHelper.GetAwards>Award config dosen't work, you should get a few coins as least. (totalCost: {0}, awardID: {1})", totalCost, awardID); } this.PrintAwardDatas(awardDatas); return(awardDatas); } catch (System.Exception ex) { Debug.LogErrorFormat("<><AwardDataHelper.GetAwards>Unknown error: {0}", ex.Message); return(null); } } else { Debug.LogErrorFormat("<><AwardDataHelper.GetAwards>Can't find the award config: {0}", awardID); return(null); } }
public void Initialize(PropAward item, AwardDisplayCtrl ctrl) { label.text = LanguageConfigManager.Instance.getLanguage("s0065") + item.sid; awardCtrl = ctrl; }
public int num = 0; //数量 public void bytesWrite(PropAward aw) { this.sid = aw.sid; this.num = aw.num; }