Example #1
0
        public static bool Prefix(WeaponPool __instance, int id)
        {
            var cfg = ConfigWeapon.get(id);

            if (!__instance.PrefabDict.ContainsKey(cfg.Prefab))
            {
                AssetBundle asset = null;
                try
                {
                    //var name = cfg.Prefab.Substring(cfg.Prefab.LastIndexOf('\\') + 1);
                    //name = name.Substring(name.LastIndexOf('/') + 1);
                    asset = AssetBundle.LoadFromFile(cfg.Prefab);
                    var prefabGo = asset.LoadAsset <GameObject>("武器");
                    __instance.PrefabDict.Add(cfg.Prefab, new WeaponCaches(prefabGo));
                    Debug.Log("Load Prefab:" + cfg.Prefab);
                }
                catch (Exception e)
                {
                    Debug.LogError(string.Format("Load Prefab {0} faild:{1}", cfg.Prefab, e));
                }
                finally
                {
                    if (asset != null)
                    {
                        asset.Unload(false);
                    }
                }
            }
            return(true);
        }
Example #2
0
        static bool Prefix(WeaponPool __instance, int id, ConfigWeapon w, Weapon weapon)
        {
            weapon.TypeId = id;
            weapon.Type   = w.Type;
            weapon.Proto  = __instance.GetProto(w, id);
            if (weapon.Animator == null)
            {
                weapon.Animator = __instance.GetComponent <Animator>();
            }

            var ctrl = WeaponPool_Build_Patch_1.LoadAnimator(w.Animation);

            if (ctrl != null)
            {
                weapon.Animator.runtimeAnimatorController = ctrl;
            }

            if (id != 0)
            {
                ConfigItem configItem = ConfigItem.get(id);
                weapon.name = configItem.Name;
            }
            weapon.SetWeaponImage("Weapon");
            if (ConfigWeapon.getAttackSound(id) != "0")
            {
                weapon.AttackSound.clip = (AudioClip)Resources.Load(ConfigWeapon.getAttackSound(id), typeof(AudioClip));
            }
            return(false);
        }
Example #3
0
        static bool Prefix(WeaponPool __instance, ItemData item, ConfigWeapon w, Weapon weapon)
        {
            weapon.TypeId = item.id;
            weapon.Type   = w.Type;

            var par     = new object[] { w, item };
            var oMethod = typeof(WeaponPool).GetMethod("GetProto", BindingFlags.Instance | BindingFlags.NonPublic);
            var ret     = oMethod.Invoke(__instance, par);

            weapon.Proto = (IWeaponProto)ret;

            var ctrl = WeaponPool_Build_Patch_1.LoadAnimator(w.Animation);

            if (ctrl != null)
            {
                weapon.Animator.runtimeAnimatorController = ctrl;
            }

            weapon.name = ConfigItem.getName(item.id);
            weapon.SetWeaponImage("Weapon");
            if (ConfigWeapon.getAttackSound(item.id) != "0")
            {
                weapon.AttackSound.clip = (AudioClip)Resources.Load(ConfigWeapon.getAttackSound(item.id), typeof(AudioClip));
            }
            return(false);
        }
Example #4
0
 static bool Prefix(WeaponPool __instance, ItemData weapon)
 {
     return(WeaponPool_Create_Patch1.Prefix(__instance, weapon.id));
 }