public override void Use(Character owner) { base.Use(owner); GameObject prefab = Resources.Load <GameObject>("Prefabs/Item/Weapons/" + WeaponId); if (prefab == null) { throw new UnityException(WeaponId + " Weapon prefab not found!"); } WeaponBase weapon = Instantiate(prefab).GetComponent <WeaponBase>(); Sdb.WeaponInfo weaponInfo = SdbInstance <Sdb.WeaponInfo> .Get(WeaponId); if (WeaponId != "Basic_Weapon") { switch (weaponInfo.Grade) { case Constants.WeaponGrade.Low: EffectManager.Instance.Show(EffectType.Item_Low, this.gameObject.transform.position); break; case Constants.WeaponGrade.Normal: EffectManager.Instance.Show(EffectType.Item_Normal, this.gameObject.transform.position); break; case Constants.WeaponGrade.High: EffectManager.Instance.Show(EffectType.Item_High, this.gameObject.transform.position); break; } } weapon.Init(weaponInfo); weapon.SetOwner(owner); ActorContainer.Instance.LocalCharacter.EquipWeapon(weapon); }
public virtual void Init(Sdb.WeaponInfo weaponInfo) { this.WeaponInfo = weaponInfo; this.Durability = weaponInfo.DurabilityCount; }