コード例 #1
0
 private void Start()
 {
     if (!NetworkServer.active)
     {
         enabled = false;
         return;
     }
     targetComponent = GetComponent <ProjectileTargetComponent>();
     rb = GetComponent <Rigidbody>();
 }
コード例 #2
0
 private void Start()
 {
     if (!NetworkServer.active)
     {
         enabled = false;
         return;
     }
     transform        = gameObject.transform;
     targetComponent  = GetComponent <ProjectileTargetComponent>();
     projectileSimple = GetComponent <ProjectileSimple>();
     model            = gameObject.transform.Find("Model");
     velocity         = maxVelocity;
     velocityAsVector = Vector3.zero;
 }
コード例 #3
0
        // Token: 0x06003097 RID: 12439 RVA: 0x000D176C File Offset: 0x000CF96C
        public override void OnEnter()
        {
            base.OnEnter();
            this.projectileStickOnImpact   = base.GetComponent <ProjectileStickOnImpact>();
            this.projectileTargetComponent = base.GetComponent <ProjectileTargetComponent>();
            if (this.projectileStickOnImpact.enabled != this.shouldStick)
            {
                this.projectileStickOnImpact.enabled = this.shouldStick;
            }
            Transform transform = base.FindModelChild(this.childLocatorStringToEnable);

            if (transform)
            {
                transform.gameObject.SetActive(true);
            }
            Util.PlaySound(this.enterSoundString, base.gameObject);
        }
コード例 #4
0
        public override void OnEnter()
        {
            base.OnEnter();
            //Get target component
            projectileTargetComponent = base.GetComponent <ProjectileTargetComponent>();
            //Get target finder
            targetFinder = base.GetComponent <ProjectileSphereTargetFinder>();

            //Network check
            if (NetworkServer.active)
            {
                //Enable the target finder
                targetFinder.enabled = true;
                //Set the arming state to the last state
                armingStateMachine.SetNextState(new TeslaArmingWeakState());
            }
        }
コード例 #5
0
        public virtual void Start()
        {
            if (!NetworkServer.active)
            {
                base.enabled = false;
                return;
            }
            targetComponent = GetComponent <ProjectileTargetComponent>();
            itemMult        = gameObject.GetComponent <ProjectileController>().Networkowner.GetComponent <SeekingStoneComponent>().cachedIcnt;
            target          = gameObject.GetComponent <ProjectileController>().Networkowner.GetComponent <SeekingStoneComponent>().target;

            //base.transform = gameObject.transform;
            transform        = base.transform;
            hasTarget        = true;
            targetLost       = false;
            allowTargetLoss  = true;
            rotationSpeed    = 70f - 70f / (1f + .15f * itemMult);
            lastFoundHurtBox = target;
        }
コード例 #6
0
        // Token: 0x06002DA8 RID: 11688 RVA: 0x000C1E10 File Offset: 0x000C0010
        private void FireGauntlet()
        {
            if (hasFiredGauntlet)
            {
                return;
            }
            base.characterBody.AddSpreadBloom(EntityStates.Mage.Weapon.FireFireBolt.bloom);
            hasFiredGauntlet = true;
            Ray aimRay = base.GetAimRay();

            if (childLocator)
            {
                muzzleTransform = childLocator.FindChild(muzzleString);
            }

            if (base.isAuthority)
            {
                if (!projectilePrefab)
                {
                    projectilePrefab = Resources.Load <GameObject>("prefabs/projectiles/magefireboltbasic").InstantiateClone("magefireboltcopy");
                }

                if (!filter)
                {
                    filter = projectilePrefab.AddComponent <TeamFilter>();
                }

                if (!targeter)
                {
                    targeter = projectilePrefab.AddComponent <ProjectileTargetComponent>();
                }

                if (!targetfinder)
                {
                    targetfinder                      = projectilePrefab.AddComponent <ProjectileSphereTargetFinder>();
                    targetfinder.lookRange            = 12;
                    targetfinder.allowTargetLoss      = true;
                    targetfinder.onlySearchIfNoTarget = true;
                    targetfinder.testLoS              = true;
                    targetfinder.targetSearchInterval = 0.15f;
                }

                if (!steertoward)
                {
                    steertoward = projectilePrefab.AddComponent <ProjectileSteerTowardTarget>();
                    steertoward.rotationSpeed = 360f;
                }

                if (!projectile)
                {
                    projectile                   = projectilePrefab.AddComponent <ProjectileSimple>();
                    projectile.velocity          = 50f;
                    projectile.updateAfterFiring = true;
                }

                for (int i = 0; i < 2; i++)
                {
                    ProjectileManager.instance.FireProjectile(projectilePrefab, aimRay.origin, Util.QuaternionSafeLookRotation(aimRay.direction + (new Vector3(Random.Range(-36f, 36f), Random.Range(-36f, 36f), Random.Range(-36f, 36f)) / 360f)), base.gameObject, 1f * damageStat, 0f, base.characterBody.RollCrit());
                }
            }
        }
コード例 #7
0
        // Token: 0x06002DA8 RID: 11688 RVA: 0x000C1E10 File Offset: 0x000C0010
        private void FireGauntlet()
        {
            if (hasFiredGauntlet)
            {
                return;
            }
            base.characterBody.AddSpreadBloom(EntityStates.Mage.Weapon.FireFireBolt.bloom);
            hasFiredGauntlet = true;
            Ray aimRay = base.GetAimRay();

            if (childLocator)
            {
                muzzleTransform = childLocator.FindChild(muzzleString);
            }

            if (NetworkServer.active)
            {
                if (!projectilePrefab)
                {
                    projectilePrefab = Resources.Load <GameObject>("prefabs/projectiles/magefireboltbasic").InstantiateClone("magefireboltcopy");
                }

                if (!filter)
                {
                    filter = projectilePrefab.AddComponent <TeamFilter>();
                }

                if (!targeter)
                {
                    targeter = projectilePrefab.AddComponent <ProjectileTargetComponent>();
                }



                if (!steertoward)
                {
                    steertoward = projectilePrefab.AddComponent <ProjectileSteerTowardTarget>();
                    steertoward.rotationSpeed = 360f;
                }

                if (!targetfinder)
                {
                    targetfinder                      = projectilePrefab.AddComponent <ProjectileSphereTargetFinder>();
                    targetfinder.lookRange            = 16;
                    targetfinder.allowTargetLoss      = false;
                    targetfinder.onlySearchIfNoTarget = true;
                    targetfinder.testLoS              = true;
                    targetfinder.targetSearchInterval = 0.15f;
                }

                if (!projectile)
                {
                    projectile                   = projectilePrefab.AddComponent <ProjectileSimple>();
                    projectile.velocity          = 50f;
                    projectile.updateAfterFiring = true;
                }

                BullseyeSearch bullseyeSearch = new BullseyeSearch();
                bullseyeSearch.searchOrigin      = aimRay.origin;
                bullseyeSearch.searchDirection   = aimRay.direction;
                bullseyeSearch.maxDistanceFilter = 100f;
                bullseyeSearch.maxAngleFilter    = 60f;
                bullseyeSearch.teamMaskFilter    = TeamMask.allButNeutral;
                bullseyeSearch.teamMaskFilter.RemoveTeam(base.teamComponent.teamIndex);
                bullseyeSearch.sortMode = BullseyeSearch.SortMode.Angle;
                bullseyeSearch.RefreshCandidates();
                List <HurtBox> list    = bullseyeSearch.GetResults().ToList <HurtBox>();
                HurtBox        hurtBox = (list.Count > 0) ? list[0] : null;
                if (hurtBox)
                {
                    targeter.target = hurtBox.transform;
                }
                for (int i = 0; i < 2; i++)
                {
                    Quaternion direction = Util.QuaternionSafeLookRotation(aimRay.direction + (new Vector3(Random.Range(-36f, 36f), Random.Range(-36f, 36f), Random.Range(-36f, 36f)) / 360f));

                    ProjectileManager.instance.FireProjectile(projectilePrefab, aimRay.origin, direction, base.gameObject, 0.8f * damageStat, 0f, base.characterBody.RollCrit(), DamageColorIndex.Default, hurtBox ? hurtBox.gameObject : null);
                }
            }
        }
コード例 #8
0
        public override void OnEnter()
        {
            base.OnEnter();

            ProjectileTargetComponent projTarget = projPrefab.GetComponent <ProjectileTargetComponent>();

            if (!projTarget)
            {
                projTarget = projPrefab.AddComponent <ProjectileTargetComponent>();
            }
            ProjectileDirectionalTargetFinder projFinder = projPrefab.GetComponent <ProjectileDirectionalTargetFinder>();

            if (!projFinder)
            {
                projFinder = projPrefab.AddComponent <ProjectileDirectionalTargetFinder>();
            }
            projFinder.lookCone             = 6.5f;
            projFinder.lookRange            = 60.0f;
            projFinder.targetSearchInterval = 0.15f;
            projFinder.onlySearchIfNoTarget = false;
            projFinder.allowTargetLoss      = true;
            projFinder.testLoS   = true;
            projFinder.ignoreAir = false;
            ProjectileSteerTowardTarget projSteer = projPrefab.GetComponent <ProjectileSteerTowardTarget>();

            if (!projSteer)
            {
                projSteer = projPrefab.AddComponent <ProjectileSteerTowardTarget>();
            }
            projSteer.rotationSpeed = 45.0f;
            ProjectileSimple projSimp = projPrefab.GetComponent <ProjectileSimple>();

            if (!projSimp)
            {
                Debug.Log("Dafuq you done?");
            }
            projSimp.updateAfterFiring = true;

            duration     = baseDuration;
            arrowFireEnd = duration * spacingFrac;
            arrowTime    = (duration - arrowFireEnd) / baseArrowsToFire / attackSpeedStat;

            this.projPrefab.GetComponent <ProjectileController>().procCoefficient = 0.4f;

            Transform modelTrans = base.GetModelTransform();

            PlayCrossfade("Gesture, Override", "FireSeekingShot", "FireSeekingShot.playbackRate", arrowTime, arrowTime * 0.2f / attackSpeedStat);
            PlayCrossfade("Gesture, Additive", "FireSeekingShot", "FireSeekingShot.playbackRate", arrowTime, arrowTime * 0.2f / attackSpeedStat);

            if (modelTrans)
            {
                childLoc = modelTrans.GetComponent <ChildLocator>();
                anim     = modelTrans.GetComponent <Animator>();
            }
            if (characterBody)
            {
                characterBody.SetAimTimer(duration + 1.0f);
            }
            timer        = 0.0f;
            arrowTimer   = 0.0f;
            arrowCounter = 0;
            fireArrow();
        }