// 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()); } } }
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(); }
// 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); } } }
private void CreateLightningSword(Int32 meshInd) { GameObject ghost = this.CreateLightningSwordGhost(meshInd); GameObject proj = Resources.Load <GameObject>("Prefabs/Projectiles/LunarNeedleProjectile").InstantiateClone("LightningSwordProjectile" + meshInd.ToString()); ProjectileCatalog.getAdditionalEntries += (list) => list.Add(proj); AltArtiPassive.lightningProjectile[meshInd] = proj; ProjectileController projController = proj.GetComponent <ProjectileController>(); projController.ghostPrefab = ghost; projController.procCoefficient = 0.2f; ProjectileSimple projSimple = proj.GetComponent <ProjectileSimple>(); projSimple.enabled = true; projSimple.enableVelocityOverLifetime = false; projSimple.velocity = 60f; ProjectileDirectionalTargetFinder projTargetFind = proj.GetComponent <ProjectileDirectionalTargetFinder>(); projTargetFind.enabled = false; ProjectileSteerTowardTarget projSteering = proj.GetComponent <ProjectileSteerTowardTarget>(); projSteering.enabled = true; projSteering.rotationSpeed = 140f; ProjectileStickOnImpact projStick = proj.GetComponent <ProjectileStickOnImpact>(); //projStick.ignoreCharacters = false; //projStick.ignoreWorld = false; projStick.alignNormals = false; ProjectileImpactExplosion projExpl = proj.GetComponent <ProjectileImpactExplosion>(); projExpl.impactEffect = Resources.Load <GameObject>("Prefabs/Effects/LightningStakeNova"); projExpl.explosionSoundString = "Play_item_lunar_primaryReplace_impact"; projExpl.lifetimeExpiredSoundString = ""; projExpl.offsetForLifetimeExpiredSound = 0f; projExpl.destroyOnEnemy = false; projExpl.destroyOnWorld = false; projExpl.timerAfterImpact = true; projExpl.falloffModel = BlastAttack.FalloffModel.None; projExpl.lifetime = 10f; projExpl.lifetimeAfterImpact = 1f; projExpl.lifetimeRandomOffset = 0f; projExpl.blastRadius = 1f; projExpl.blastDamageCoefficient = 1f; projExpl.blastProcCoefficient = 0.2f; projExpl.bonusBlastForce = Vector3.zero; projExpl.fireChildren = false; projExpl.childrenProjectilePrefab = null; projExpl.childrenCount = 0; projExpl.childrenDamageCoefficient = 0f; projExpl.minAngleOffset = Vector3.zero; projExpl.maxAngleOffset = Vector3.zero; projExpl.transformSpace = ProjectileImpactExplosion.TransformSpace.World; projExpl.projectileHealthComponent = null; ProjectileSingleTargetImpact projStimp = proj.GetComponent <ProjectileSingleTargetImpact>(); projStimp.destroyOnWorld = false; projStimp.hitSoundString = "Play_item_proc_dagger_impact"; projStimp.enemyHitSoundString = "Play_item_proc_dagger_impact"; proj.AddComponent <Components.SoundOnAwake>().sound = "Play_item_proc_dagger_spawn"; //UnityEngine.Object.DestroyImmediate( proj.GetComponent<ProjectileSingleTargetImpact>() ); UnityEngine.Object.Destroy(proj.GetComponent <AwakeEvent>()); UnityEngine.Object.Destroy(proj.GetComponent <DelayedEvent>()); }