static bool ModExt_DropPropsConverter2(ref object __result, string[] from) { // 改成Ext版 var result = new BattleDropProp_Ext(); try { result.Id = from[0].Trim(); if (from.Length > 1) { result.Amount = int.Parse(from[1].Trim()); } if (from.Length > 2) { result.Rate = float.Parse(from[2].Trim()); } __result = result as object; } catch (Exception) { __result = null; } return(false); }
static bool ModExt_DropProps_UI(WGRewardList __instance, List <BattleDropProp> list) { int uid = 0; var newlist = new List <BattleDropProp>(); if (list != null) { newlist.AddRange(list); } for (int i = 0; i < newlist.Count; i++) { BattleDropProp_Ext battleDropProp = newlist[i] as BattleDropProp_Ext; // 改成Ext版 if (battleDropProp.Id == "Money") { Sprite icon = Game.Resource.Load <Sprite>(string.Format(GameConfig.PropsCategoryPath, 0)); // 这里稍微加强下打工天赋,战斗的金钱也增加 int value = (int)(battleDropProp.Amount * Game.GameData.Character[GameConfig.Player].Trait.GetTraitEffect(TraitEffectType.WorkMoney)); WGProps wgprops = __instance.PropsList[uid++]; wgprops.SetProps(icon, value.ToString(), Game.Data.Get <StringTable>("NurturanceProperty_Money").Text); Game.GameData.Money += value; if (uid > 9) { break; // 只有10个格子 } } else if (battleDropProp.Id.StartsWith("re")) { Reward r = Game.Data.Get <Reward>(battleDropProp.Id) ?? Randomizer.GetOneFromData <Reward>(battleDropProp.Id); if (r != null) { r.GetValue(); } } else if (battleDropProp.Id == "ExtDrop") { newlist.AddRange(ExtDrops); // 将战场掉落物也加进去 } else { Props props = Game.Data.Get <Props>(battleDropProp.Id) ?? Randomizer.GetOneFromData <Props>(battleDropProp.Id); if (props != null) { int dropCount = 0; for (int k = 0; k < battleDropProp.Amount; ++k) { if (UnityEngine.Random.value <= battleDropProp.Rate) { ++dropCount; } } if (dropCount > 0) { Sprite icon = Game.Resource.Load <Sprite>(string.Format(GameConfig.PropsCategoryPath, (int)props.PropsCategory)); WGProps wgprops = __instance.PropsList[uid++]; wgprops.SetProps(icon, dropCount.ToString(), props.Name); Game.GameData.Inventory.Add(props.Id, dropCount, true); if (uid > 9) { break; // 只有10个格子 } } } } } for (; uid < 10; ++uid) { WGProps wgprops = __instance.PropsList[uid]; wgprops.gameObject.SetActive(false); } return(false); }