コード例 #1
0
        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;
        }
コード例 #2
0
ファイル: Entry.cs プロジェクト: ImranBepari97/gorn-mjolnir
        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;
        }