public void SetUp(WeaponChance weapon) { gameObject.AddComponent <WeaponBase> ().type = (WeaponType)weapon.weaponType; WeaponBase wb = GetComponent <WeaponBase> (); blade = transform.GetChild(0).gameObject; handle = transform.GetChild(1).gameObject; if (handle == null || blade == null) { Debug.LogError("BLADE OR HANDLE IS MISSING!"); return; } handle.AddComponent <WeaponHandle> (); WeaponHandle wh = handle.GetComponent <WeaponHandle> (); wb.grabbable = wh; wb.canParry = weapon.canPary; wb.canBeParried = weapon.canBeParried; wb.addForceToRigidbodyFactor = weapon.addForceToRigidbodyFactor; wh.grabRigidbody = wh.GetComponent <Rigidbody> (); wh.hideHandModelOnGrab = weapon.hideHandOnGrab; wh.isCurrentlyGrabbale = weapon.isCurrentlyGrabbable; wh.setPositionOnGrab = weapon.setPositionOnGrab; wh.setRotationOnGrab = weapon.setRotationOnGrab; DamagerRigidbody drb = blade.AddComponent <DamagerRigidbody> (); drb.scaleDamage = weapon.scaleDamage; drb.canAlsoCut = weapon.canAlsoCut; drb.bonusVelocity = weapon.bonusVelocity; drb.isDamaging = weapon.isDamaging; drb.impaleDepth = weapon.impaleDepth; drb.damageType = (DamageType)weapon.damageType; handle.AddComponent <FootStepSound> ().soundEffectName = "WeaponDrop"; handle.GetComponent <FootStepSound> ().minVolumeToTrigger = 0.05f; try { if (transform.GetChild(2) != null) { drb.heartStabPoint = transform.GetChild(2); drb.impaledBreakForce = weapon.impaleBreakForce; drb.impaledZDamper = weapon.impaleZDamper; drb.impaledConnectedBodyMassScale = weapon.connectedBMass; } } catch { return; } /* * BezierConnector bc = blade.AddComponent<BezierConnector> (); * * bc.midPoints = new Transform[4] { blade.transform.GetChild(2), blade.transform.GetChild ( 2 ).GetChild(0), blade.transform.GetChild ( 2 ).GetChild(0).GetChild(0), blade.transform.GetChild ( 2 ).GetChild ( 0 ).GetChild ( 0 ).GetChild(0) }; * * bc.orientTransforms = true; * * bc.end = blade.transform.GetChild(1); * bc.origin = blade.transform.GetChild(0); * bc.clampAngleTo = 30; */ return; }
public void SetUp(bool canRecall) { gameObject.AddComponent <WeaponBase>().type = WeaponType.ArmorBreaker; WeaponBase wb = GetComponent <WeaponBase>(); //wb.type = WeaponType.ArmorBreaker; blade = transform.GetChild(0).gameObject; handle = transform.GetChild(1).gameObject; if (handle == null || blade == null) { Debug.LogError("BLADE OR HANDLE IS MISSING!"); return; } WeaponHandle wh; if (canRecall) { handle.AddComponent <MjolnirHandle>(); wh = handle.GetComponent <MjolnirHandle>(); } else { handle.AddComponent <WeaponHandle>(); wh = handle.GetComponent <WeaponHandle>(); } wb.grabbable = wh; wb.canParry = true; wb.canBeParried = true; wb.addForceToRigidbodyFactor = 0.6f; wh.grabRigidbody = wh.GetComponent <Rigidbody>(); wh.hideHandModelOnGrab = true; wh.isCurrentlyGrabbale = true; wh.setPositionOnGrab = true; wh.setRotationOnGrab = true; DamagerRigidbody drb = blade.AddComponent <DamagerRigidbody>(); drb.scaleDamage = 1.2f; drb.canAlsoCut = false; drb.bonusVelocity = 0.7f; drb.isDamaging = true; drb.impaleDepth = 1f; drb.damageType = DamageType.Blunt; handle.AddComponent <FootStepSound>().soundEffectName = "WeaponDrop"; handle.GetComponent <FootStepSound>().minVolumeToTrigger = 0.05f; /* * try * { * if (transform.GetChild(2) != null) * { * drb.heartStabPoint = transform.GetChild(2); * * drb.impaledBreakForce = weapon.impaleBreakForce; * drb.impaledZDamper = weapon.impaleZDamper; * drb.impaledConnectedBodyMassScale = weapon.connectedBMass; * } * } * catch * { * return; * } */ return; }