// Token: 0x06002AE6 RID: 10982 RVA: 0x000B48DC File Offset: 0x000B2ADC public override void OnEnter() { base.OnEnter(); this.duration = Throw.baseDuration / this.attackSpeedStat; this.modelAnimator = base.GetModelAnimator(); Transform modelTransform = base.GetModelTransform(); if (modelTransform) { ChildLocator component = modelTransform.GetComponent <ChildLocator>(); if (component) { this.rightMuzzleTransform = component.FindChild("MuzzleRight"); } } if (this.modelAnimator) { int layerIndex = this.modelAnimator.GetLayerIndex("Gesture"); if (this.modelAnimator.GetCurrentAnimatorStateInfo(layerIndex).IsName("Throw1")) { base.PlayCrossfade("Gesture", "Throw2", "Throw.playbackRate", this.duration / (1f - Throw.returnToIdlePercentage), 0.2f); } else { base.PlayCrossfade("Gesture", "Throw1", "Throw.playbackRate", this.duration / (1f - Throw.returnToIdlePercentage), 0.2f); } } if (base.characterBody) { base.characterBody.SetAimTimer(2f); } }
// Token: 0x0600089C RID: 2204 RVA: 0x0002B228 File Offset: 0x00029428 private void FireSingleTarball(string targetMuzzle) { base.PlayCrossfade("Body", "FireTarBall", 0.1f); Util.PlaySound(FireTarball.attackSoundString, base.gameObject); this.aimRay = base.GetAimRay(); if (this.modelTransform) { ChildLocator component = this.modelTransform.GetComponent <ChildLocator>(); if (component) { Transform transform = component.FindChild(targetMuzzle); if (transform) { this.aimRay.origin = transform.position; } } } base.AddRecoil(-1f * FireTarball.recoilAmplitude, -2f * FireTarball.recoilAmplitude, -1f * FireTarball.recoilAmplitude, 1f * FireTarball.recoilAmplitude); if (FireTarball.effectPrefab) { EffectManager.instance.SimpleMuzzleFlash(FireTarball.effectPrefab, base.gameObject, targetMuzzle, false); } if (base.isAuthority) { Vector3 forward = Vector3.ProjectOnPlane(this.aimRay.direction, Vector3.up); ProjectileManager.instance.FireProjectile(FireTarball.projectilePrefab, this.aimRay.origin, Util.QuaternionSafeLookRotation(forward), base.gameObject, this.damageStat * FireTarball.damageCoefficient, 0f, Util.CheckRoll(this.critStat, base.characterBody.master), DamageColorIndex.Default, null, -1f); } base.characterBody.AddSpreadBloom(FireTarball.spreadBloomValue); }
// Token: 0x06002CD5 RID: 11477 RVA: 0x000BD06C File Offset: 0x000BB26C private void FireBullet(string targetMuzzle) { this.aimRay = base.GetAimRay(); if (this.modelTransform) { ChildLocator component = this.modelTransform.GetComponent <ChildLocator>(); if (component) { Transform transform = component.FindChild(targetMuzzle); if (transform) { base.rigidbody.AddForceAtPosition(transform.forward * FireCannon.selfForce, transform.position, ForceMode.Impulse); } } } if (FireCannon.effectPrefab) { EffectManager.SimpleMuzzleFlash(FireCannon.effectPrefab, base.gameObject, targetMuzzle, false); } if (base.isAuthority) { float x = UnityEngine.Random.Range(FireCannon.minSpread, FireCannon.maxSpread); float z = UnityEngine.Random.Range(0f, 360f); Vector3 up = Vector3.up; Vector3 axis = Vector3.Cross(up, this.aimRay.direction); Vector3 vector = Quaternion.Euler(0f, 0f, z) * (Quaternion.Euler(x, 0f, 0f) * Vector3.forward); float y = vector.y; vector.y = 0f; float angle = Mathf.Atan2(vector.z, vector.x) * 57.29578f - 90f; float angle2 = Mathf.Atan2(y, vector.magnitude) * 57.29578f + FireCannon.arcAngle; Vector3 forward = Quaternion.AngleAxis(angle, up) * (Quaternion.AngleAxis(angle2, axis) * this.aimRay.direction); ProjectileManager.instance.FireProjectile(FireCannon.projectilePrefab, this.aimRay.origin, Util.QuaternionSafeLookRotation(forward), base.gameObject, this.damageStat * FireCannon.damageCoefficient, 0f, Util.CheckRoll(this.critStat, base.characterBody.master), DamageColorIndex.Default, null, -1f); } }
// Token: 0x060003FF RID: 1023 RVA: 0x00010694 File Offset: 0x0000E894 public override void OnEnter() { base.OnEnter(); Ray aimRay = base.GetAimRay(); string text = "MuzzleLeft"; string text2 = "MuzzleRight"; this.duration = FireCannons.baseDuration / this.attackSpeedStat; if (FireCannons.effectPrefab) { EffectManager.instance.SimpleMuzzleFlash(FireCannons.effectPrefab, base.gameObject, text, false); EffectManager.instance.SimpleMuzzleFlash(FireCannons.effectPrefab, base.gameObject, text2, false); } base.PlayAnimation("Gesture", "FireCannons", "FireCannons.playbackRate", this.duration); if (base.isAuthority && base.modelLocator && base.modelLocator.modelTransform) { ChildLocator component = base.modelLocator.modelTransform.GetComponent <ChildLocator>(); if (component) { int childIndex = component.FindChildIndex(text); int childIndex2 = component.FindChildIndex(text2); Transform transform = component.FindChild(childIndex); Transform transform2 = component.FindChild(childIndex2); if (transform) { ProjectileManager.instance.FireProjectile(FireCannons.projectilePrefab, transform.position, Util.QuaternionSafeLookRotation(aimRay.direction), base.gameObject, this.damageStat * FireCannons.damageCoefficient, FireCannons.force, Util.CheckRoll(this.critStat, base.characterBody.master), DamageColorIndex.Default, null, -1f); } if (transform) { ProjectileManager.instance.FireProjectile(FireCannons.projectilePrefab, transform2.position, Util.QuaternionSafeLookRotation(aimRay.direction), base.gameObject, this.damageStat * FireCannons.damageCoefficient, FireCannons.force, Util.CheckRoll(this.critStat, base.characterBody.master), DamageColorIndex.Default, null, -1f); } } } }
public override void OnEnter() { base.OnEnter(); duration = baseDuration / characterBody.attackSpeed; if (modelLocator && characterBody && rigidbody) { childLocator = modelLocator.modelTransform.GetComponent <ChildLocator>(); if (childLocator) { voidLanceCenter = childLocator.FindChild("VoidLanceCenter"); } var aimRay = GetAimRay(); bullseyeSearch = new BullseyeSearch(); bullseyeSearch.viewer = characterBody; bullseyeSearch.sortMode = BullseyeSearch.SortMode.DistanceAndAngle; bullseyeSearch.filterByDistinctEntity = true; bullseyeSearch.filterByLoS = true; bullseyeSearch.teamMaskFilter = TeamMask.allButNeutral; bullseyeSearch.teamMaskFilter.RemoveTeam(TeamComponent.GetObjectTeam(gameObject)); bullseyeSearch.minDistanceFilter = 3f; bullseyeSearch.maxDistanceFilter = 50f; bullseyeSearch.searchOrigin = aimRay.origin; bullseyeSearch.searchDirection = aimRay.direction; bullseyeSearch.maxAngleFilter = 30f; if (dragPenalty != 0f) { rigidbody.drag += dragPenalty; } } }
// Token: 0x0600041E RID: 1054 RVA: 0x00011214 File Offset: 0x0000F414 public override void OnEnter() { base.OnEnter(); this.duration = ChargeRHCannon.baseDuration / this.attackSpeedStat; Transform modelTransform = base.GetModelTransform(); base.PlayAnimation("Gesture", "ChargeRHCannon", "ChargeRHCannon.playbackRate", this.duration); if (modelTransform) { ChildLocator component = modelTransform.GetComponent <ChildLocator>(); if (component && ChargeRHCannon.effectPrefab) { Transform transform = component.FindChild("MuzzleRight"); if (transform) { this.chargeEffectRight = UnityEngine.Object.Instantiate <GameObject>(ChargeRHCannon.effectPrefab, transform.position, transform.rotation); this.chargeEffectRight.transform.parent = transform; } } } if (base.characterBody) { base.characterBody.SetAimTimer(this.duration); } }
// Token: 0x0600073D RID: 1853 RVA: 0x0002342C File Offset: 0x0002162C public override void OnEnter() { base.OnEnter(); this.modelAnimator = base.GetModelAnimator(); this.modelTransform = base.GetModelTransform(); Util.PlayScaledSound(ClapState.attackSoundString, base.gameObject, this.attackSpeedStat); base.PlayCrossfade("Body", "Clap", "Clap.playbackRate", ClapState.duration, 0.1f); if (this.modelTransform) { ChildLocator component = this.modelTransform.GetComponent <ChildLocator>(); if (component) { GameObject original = Resources.Load <GameObject>("Prefabs/GolemClapCharge"); Transform transform = component.FindChild("HandL"); Transform transform2 = component.FindChild("HandR"); if (transform) { this.leftHandChargeEffect = UnityEngine.Object.Instantiate <GameObject>(original, transform); } if (transform2) { this.rightHandChargeEffect = UnityEngine.Object.Instantiate <GameObject>(original, transform2); } } } }
// Token: 0x06002C09 RID: 11273 RVA: 0x000BA124 File Offset: 0x000B8324 public override void OnEnter() { base.OnEnter(); base.PlayAnimation("Base", "InitialSpawn"); Transform modelTransform = base.GetModelTransform(); if (modelTransform) { ChildLocator component = modelTransform.GetComponent <ChildLocator>(); if (component) { Transform transform = component.FindChild("Travel"); if (transform) { this.shakeEmitter = transform.gameObject.AddComponent <ShakeEmitter>(); this.shakeEmitter.wave = new Wave { amplitude = 1f, frequency = 180f, cycleOffset = 0f }; this.shakeEmitter.duration = 10000f; this.shakeEmitter.radius = 400f; this.shakeEmitter.amplitudeTimeDecay = false; } } } }
internal static void SetupCharacterModel(GameObject prefab, CustomRendererInfo[] rendererInfo, int mainRendererIndex) { CharacterModel characterModel = prefab.GetComponent <ModelLocator>().modelTransform.gameObject.AddComponent <CharacterModel>(); ChildLocator childLocator = characterModel.GetComponent <ChildLocator>(); characterModel.body = prefab.GetComponent <CharacterBody>(); List <CharacterModel.RendererInfo> rendererInfos = new List <CharacterModel.RendererInfo>(); for (int i = 0; i < rendererInfo.Length; i++) { rendererInfos.Add(new CharacterModel.RendererInfo { renderer = childLocator.FindChild(rendererInfo[i].childName).GetComponent <Renderer>(), defaultMaterial = rendererInfo[i].material, ignoreOverlays = rendererInfo[i].ignoreOverlays, defaultShadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.On }); } characterModel.baseRendererInfos = rendererInfos.ToArray(); characterModel.autoPopulateLightInfos = true; characterModel.invisibilityCount = 0; characterModel.temporaryOverlays = new List <TemporaryOverlay>(); characterModel.mainSkinnedMeshRenderer = characterModel.baseRendererInfos[mainRendererIndex].renderer.GetComponent <SkinnedMeshRenderer>(); }
// Token: 0x0600330D RID: 13069 RVA: 0x000DD464 File Offset: 0x000DB664 public override void OnEnter() { base.OnEnter(); this.duration = ChargeSpit.baseDuration / this.attackSpeedStat; Transform modelTransform = base.GetModelTransform(); base.PlayCrossfade("Gesture", "ChargeSpit", "ChargeSpit.playbackRate", this.duration, 0.2f); Util.PlaySound(ChargeSpit.attackSoundString, base.gameObject); if (modelTransform) { ChildLocator component = modelTransform.GetComponent <ChildLocator>(); if (component && ChargeSpit.effectPrefab) { Transform transform = component.FindChild("Mouth"); if (transform) { this.chargeEffect = UnityEngine.Object.Instantiate <GameObject>(ChargeSpit.effectPrefab, transform.position, transform.rotation); this.chargeEffect.transform.parent = transform; ScaleParticleSystemDuration component2 = this.chargeEffect.GetComponent <ScaleParticleSystemDuration>(); if (component2) { component2.newDuration = this.duration; } } } } }
public override void OnEnter() { base.OnEnter(); this.duration = ChargeBeam.baseDuration / this.attackSpeedStat; Animator modelAnimator = base.GetModelAnimator(); Transform modelTransform = base.GetModelTransform(); if (modelTransform) { ChildLocator component = modelTransform.GetComponent <ChildLocator>(); if (component) { Transform transform = component.FindChild("Head"); if (transform && ChargeMegaFireball.chargeEffectPrefab) { this.chargeInstance = UnityEngine.Object.Instantiate <GameObject>(ChargeMegaFireball.chargeEffectPrefab, transform.position, transform.rotation); this.chargeInstance.transform.parent = transform; ScaleParticleSystemDuration component2 = this.chargeInstance.GetComponent <ScaleParticleSystemDuration>(); if (component2) { component2.newDuration = this.duration; } } } } if (modelAnimator) { base.PlayCrossfade("Gesture, Additive", "ChargeMegaFireball", "ChargeMegaFireball.playbackRate", this.duration, 0.1f); } }
public override void OnEnter() { if (goodState == null) { goodState = new FireCannons(); } effectPrefab = goodState.effectPrefab; base.OnEnter(); Ray aimRay = base.GetAimRay(); duration = baseDuration / attackSpeedStat; PlayAnimation("Body", "FireAttack1", "FireAttack1.playbackRate", duration); if ((bool)effectPrefab) { EffectManager.SimpleMuzzleFlash(this.effectPrefab, base.gameObject, "Muzzle", false); } if (base.isAuthority && base.modelLocator && base.modelLocator.modelTransform) { ChildLocator childLocator = base.modelLocator.modelTransform.GetComponent <ChildLocator>(); if (childLocator) { Transform muzzleTransform = childLocator.FindChild("Muzzle"); if (muzzleTransform) { ProjectileManager.instance.FireProjectile(Resources.Load <GameObject>("Prefabs/Projectiles/ArchWispCannon"), transform.position, Util.QuaternionSafeLookRotation(aimRay.direction), gameObject, damageStat * damageCoefficient, 80f, Util.CheckRoll(critStat, characterBody.master), DamageColorIndex.Default, null, -1f); } } } }
// Token: 0x0600049B RID: 1179 RVA: 0x00013388 File Offset: 0x00011588 public override void OnEnter() { base.OnEnter(); base.PlayAnimation("Base", "Release"); Transform modelTransform = base.GetModelTransform(); if (modelTransform) { ChildLocator component = modelTransform.GetComponent <ChildLocator>(); component.FindChild("Door").gameObject.SetActive(false); component.FindChild("ReleaseExhaustFX").gameObject.SetActive(true); } if (!base.survivorPodController) { return; } if (Util.HasEffectiveAuthority(base.survivorPodController.characterBodyObject)) { base.survivorPodController.characterStateMachine.SetNextStateToMain(); TeleportHelper.TeleportGameObject(base.survivorPodController.characterBodyObject, base.survivorPodController.exitPosition.position); CharacterMotor component2 = base.survivorPodController.characterBodyObject.GetComponent <CharacterMotor>(); if (component2) { component2.velocity = base.survivorPodController.exitPosition.forward * Release.ejectionSpeed; } } }
public override void OnEnter() { base.OnEnter(); this.duration = ChargeUltraFireball.baseDuration / this.attackSpeedStat; UnityEngine.Object modelAnimator = base.GetModelAnimator(); Transform modelTransform = base.GetModelTransform(); Util.PlayAttackSpeedSound(EntityStates.LemurianBruiserMonster.ChargeMegaFireball.attackString, base.gameObject, this.attackSpeedStat); if (modelTransform) { ChildLocator component = modelTransform.GetComponent <ChildLocator>(); if (component) { Transform transform = component.FindChild("MuzzleMouth"); if (transform && EntityStates.LemurianBruiserMonster.ChargeMegaFireball.chargeEffectPrefab) { this.chargeInstance = UnityEngine.Object.Instantiate <GameObject>(EntityStates.LemurianBruiserMonster.ChargeMegaFireball.chargeEffectPrefab, transform.position, transform.rotation); this.chargeInstance.transform.parent = transform; ScaleParticleSystemDuration component2 = this.chargeInstance.GetComponent <ScaleParticleSystemDuration>(); if (component2) { component2.newDuration = this.duration; } } } } if (modelAnimator) { base.PlayCrossfade("Gesture, Additive", "ChargeMegaFireball", "ChargeMegaFireball.playbackRate", this.duration, 0.1f); } }
private static void InitializeNemSkins() { if (Prefabs.nemPaladinPrefab == null) { return; } GameObject bodyPrefab = Prefabs.nemPaladinPrefab; GameObject model = bodyPrefab.GetComponentInChildren <ModelLocator>().modelTransform.gameObject; CharacterModel characterModel = model.GetComponent <CharacterModel>(); ModelSkinController skinController = model.AddComponent <ModelSkinController>(); ChildLocator childLocator = model.GetComponent <ChildLocator>(); SkinnedMeshRenderer mainRenderer = characterModel.mainSkinnedMeshRenderer; List <SkinDef> skinDefs = new List <SkinDef>(); #region DefaultSkin CharacterModel.RendererInfo[] defaultRenderers = characterModel.baseRendererInfos; SkinDef defaultSkin = CreateSkinDef("PALADINBODY_DEFAULT_SKIN_NAME", Assets.mainAssetBundle.LoadAsset <Sprite>("texMainSkin"), defaultRenderers, mainRenderer, model); defaultSkin.meshReplacements = new SkinDef.MeshReplacement[0]; skinDefs.Add(defaultSkin); #endregion skinController.skins = skinDefs.ToArray(); }
// Token: 0x06003131 RID: 12593 RVA: 0x000D3C24 File Offset: 0x000D1E24 public override void OnEnter() { base.OnEnter(); if (base.isAuthority) { this.currentPlacementInfo = this.GetPlacementInfo(); this.blueprints = UnityEngine.Object.Instantiate <GameObject>(this.blueprintPrefab, this.currentPlacementInfo.position, this.currentPlacementInfo.rotation).GetComponent <BlueprintController>(); } base.PlayAnimation("Gesture", "PrepTurret"); this.entryCountdown = 0.1f; this.exitCountdown = 0.25f; this.exitPending = false; if (base.modelLocator) { ChildLocator component = base.modelLocator.modelTransform.GetComponent <ChildLocator>(); if (component) { Transform transform = component.FindChild("WristDisplay"); if (transform) { this.wristDisplayObject = UnityEngine.Object.Instantiate <GameObject>(this.wristDisplayPrefab, transform); } } } }
// Token: 0x060015D7 RID: 5591 RVA: 0x0005D1FC File Offset: 0x0005B3FC private Transform FindAttachmentTransform() { this.projectileGhostController = base.GetComponent <ProjectileGhostController>(); if (this.projectileGhostController) { Transform authorityTransform = this.projectileGhostController.authorityTransform; if (authorityTransform) { ProjectileController component = authorityTransform.GetComponent <ProjectileController>(); if (component) { GameObject owner = component.owner; if (owner) { ModelLocator component2 = owner.GetComponent <ModelLocator>(); if (component2) { Transform modelTransform = component2.modelTransform; if (modelTransform) { ChildLocator component3 = modelTransform.GetComponent <ChildLocator>(); if (component3) { return(component3.FindChild(this.attachmentString)); } } } } } } } return(null); }
public override void OnEnter() { base.OnEnter(); this.childLocator = base.GetModelChildLocator(); this.animator = base.GetModelAnimator(); if (base.healthComponent.combinedHealth >= (0.9f * base.healthComponent.fullCombinedHealth) || base.healthComponent.barrier > 0) { this.swordActive = true; this.swordTransition = StaticValues.maxSwordGlow; } else { this.swordActive = false; this.swordTransition = 0; } this.swordController = base.characterBody.GetComponent <PaladinSwordController>(); if (base.characterBody) { Transform modelTransform = base.GetModelTransform(); if (modelTransform) { this.swordMat = modelTransform.GetComponent <CharacterModel>().baseRendererInfos[0].defaultMaterial; } } if (this.childLocator) { string effectString = Modules.Effects.GetSkinInfo(this.swordController.skinName).passiveEffectName; if (effectString != "") { this.swordActiveEffect = this.childLocator.FindChild(effectString).gameObject; } } }
// Token: 0x06000690 RID: 1680 RVA: 0x0001F41C File Offset: 0x0001D61C public override void OnEnter() { base.OnEnter(); Ray aimRay = base.GetAimRay(); base.StartAimMode(aimRay, 2f, false); Transform modelTransform = base.GetModelTransform(); this.duration = FireGlaive.baseDuration / this.attackSpeedStat; base.PlayAnimation("Gesture", "FireGlaive", "FireGlaive.playbackRate", this.duration); Vector3 position = aimRay.origin; Quaternion rotation = Util.QuaternionSafeLookRotation(aimRay.direction); if (modelTransform) { ChildLocator component = modelTransform.GetComponent <ChildLocator>(); if (component) { Transform transform = component.FindChild("RightHand"); if (transform) { position = transform.position; } } } if (base.hasAuthority) { ProjectileManager.instance.FireProjectile(FireGlaive.projectilePrefab, position, rotation, base.gameObject, this.damageStat * FireGlaive.damageCoefficient, FireGlaive.force, Util.CheckRoll(this.critStat, base.characterBody.master), DamageColorIndex.Default, null, -1f); } }
public void Awake() { this.body = base.GetComponent <CharacterBody>(); var model = base.GetComponent <ModelLocator>(); var modelTransform = model.modelTransform; this.childLocator = modelTransform.GetComponent <ChildLocator>(); this.rightDrillBone = childLocator.FindChild("RightHandDrill"); this.leftDrillBone = childLocator.FindChild("LeftHandDrill"); this.drillRushHitboxPivot = childLocator.FindChild("DrillRushHitboxPivot"); this.animator = modelTransform.GetComponent <Animator>(); this.setStateOnHurt = base.GetComponent <SetStateOnHurt>(); this.skillLocator = base.GetComponent <SkillLocator>(); if (this.setStateOnHurt) { this.defaultCanBeFrozen = setStateOnHurt.canBeFrozen; this.defaultCanBeStunned = setStateOnHurt.canBeStunned; this.defaultCanBeHitStunned = setStateOnHurt.canBeHitStunned; } if (this.skillLocator) { this.yokoSkill = this.skillLocator.secondary; } On.RoR2.CharacterBody.RecalculateStats += CharacterBody_RecalculateStats; On.RoR2.CharacterBody.AddBuff_BuffDef += CharacterBody_AddBuff_BuffDef; On.RoR2.CharacterBody.AddTimedBuff_BuffDef_float += CharacterBody_AddTimedBuff_BuffDef_float; On.RoR2.CharacterBody.AddTimedBuff_BuffDef_float_int += CharacterBody_AddTimedBuff_BuffDef_float_int; }
// Token: 0x0600073F RID: 1855 RVA: 0x0002351C File Offset: 0x0002171C public override void FixedUpdate() { base.FixedUpdate(); if (this.modelAnimator && this.modelAnimator.GetFloat("Clap.hitBoxActive") > 0.5f && !this.hasAttacked) { if (base.isAuthority && this.modelTransform) { ChildLocator component = this.modelTransform.GetComponent <ChildLocator>(); if (component) { Transform transform = component.FindChild("ClapZone"); if (transform) { this.attack = new BlastAttack(); this.attack.attacker = base.gameObject; this.attack.inflictor = base.gameObject; this.attack.teamIndex = TeamComponent.GetObjectTeam(base.gameObject); this.attack.baseDamage = this.damageStat * ClapState.damageCoefficient; this.attack.baseForce = ClapState.forceMagnitude; this.attack.position = transform.position; this.attack.radius = ClapState.radius; this.attack.Fire(); } } } this.hasAttacked = true; EntityState.Destroy(this.leftHandChargeEffect); EntityState.Destroy(this.rightHandChargeEffect); } if (base.fixedAge >= ClapState.duration && base.isAuthority) { this.outer.SetNextStateToMain(); return; } }
public override void FixedUpdate() { if (canJet) { if (this.characterBody.characterMotor.isGrounded) { canJet = false; return; } if (this.characterBody.inputBank.skill3.down && !this.characterBody.inputBank.skill3.wasDown) { canJet = false; this.characterBody.characterMotor.velocity.y = jetAmount; if (DodgeState.jetEffect) { Util.PlaySound(DodgeState.dodgeSoundString, base.gameObject); ChildLocator component = this.GetModelAnimator().GetComponent <ChildLocator>(); if (component) { Transform transform = component.FindChild("LeftJet"); Transform transform2 = component.FindChild("RightJet"); if (transform) { UnityEngine.Object.Instantiate <GameObject>(DodgeState.jetEffect, transform); } if (transform2) { UnityEngine.Object.Instantiate <GameObject>(DodgeState.jetEffect, transform2); } } } } } }
public static void RegisterSkins() { GameObject bodyPrefab = Prefabs.scoutPrefab; GameObject model = bodyPrefab.GetComponentInChildren <ModelLocator>().modelTransform.gameObject; CharacterModel characterModel = model.GetComponent <CharacterModel>(); ModelSkinController skinController = model.AddComponent <ModelSkinController>(); ChildLocator childLocator = model.GetComponent <ChildLocator>(); SkinnedMeshRenderer mainRenderer = characterModel.mainSkinnedMeshRenderer; List <SkinDef> skinDefs = new List <SkinDef>(); #region DefaultSkin //CharacterModel.RendererInfo[] defaultRenderers = characterModel.baseRendererInfos; //SkinDef defaultSkin = CreateSkinDef("SAXTONHALEBODY_DEFAULT_SKIN_NAME", Assets.mainAssetBundle.LoadAsset<Sprite>("texMainSkin"), defaultRenderers, mainRenderer, model, ""); //defaultSkin.meshReplacements = new SkinDef.MeshReplacement[] //{ // new SkinDef.MeshReplacement // { // mesh = Assets.defaultMesh, // renderer = defaultRenderers[1].renderer // }, // new SkinDef.MeshReplacement // { // mesh = Assets.defaultSwordMesh, // renderer = defaultRenderers[0].renderer // } //}; //skinDefs.Add(defaultSkin); #endregion }
// Token: 0x0600300A RID: 12298 RVA: 0x000CE150 File Offset: 0x000CC350 public override void OnEnter() { base.OnEnter(); base.fixedAge = 0f; this.duration = FireHook.baseDuration / this.attackSpeedStat; this.modelAnimator = base.GetModelAnimator(); if (this.modelAnimator) { base.PlayCrossfade("Body", "FireHook", "FireHook.playbackRate", this.duration, 0.03f); } ChildLocator component = this.modelAnimator.GetComponent <ChildLocator>(); if (component) { component.FindChild(FireHook.muzzleString); } Util.PlayScaledSound(FireHook.soundString, base.gameObject, this.attackSpeedStat); EffectManager.SimpleMuzzleFlash(FireHook.muzzleflashEffectPrefab, base.gameObject, FireHook.muzzleString, false); Ray aimRay = base.GetAimRay(); if (NetworkServer.active) { this.FireSingleHook(aimRay, 0f, 0f); for (int i = 0; i < FireHook.projectileCount; i++) { float bonusPitch = UnityEngine.Random.Range(-FireHook.spread, FireHook.spread) / 2f; float bonusYaw = UnityEngine.Random.Range(-FireHook.spread, FireHook.spread) / 2f; this.FireSingleHook(aimRay, bonusPitch, bonusYaw); } } }
private static void setStoredChildLocator(GameObject selected) { ChildLocator locator = selected.GetComponent <ChildLocator>(); if (locator == null) { locator = selected.AddComponent <ChildLocator>(); } List <Transform> children = selected.GetComponentsInChildren <Transform>().ToList(); locator.TransformPairs = new ChildLocator.NameTransformPair[storedChildLocator.TransformPairs.Length]; for (int i = 0; i < locator.TransformPairs.Length; i++) { ChildLocator.NameTransformPair pair = locator.TransformPairs[i]; ChildLocator.NameTransformPair storedPair = storedChildLocator.TransformPairs[i]; pair.name = storedPair.name; if (storedPair.transform == null) { continue; } ; pair.transform = children.Find(tran => { return(tran.name == storedPair.transform.name); }); locator.TransformPairs[i] = pair; } }
// Token: 0x06002FFD RID: 12285 RVA: 0x000CDB9C File Offset: 0x000CBD9C public override void OnEnter() { base.OnEnter(); this.duration = Slam.baseDuration / this.attackSpeedStat; this.modelAnimator = base.GetModelAnimator(); Transform modelTransform = base.GetModelTransform(); this.attack = new OverlapAttack(); this.attack.attacker = base.gameObject; this.attack.inflictor = base.gameObject; this.attack.teamIndex = TeamComponent.GetObjectTeam(this.attack.attacker); this.attack.damage = Slam.impactDamageCoefficient * this.damageStat; this.attack.hitEffectPrefab = Slam.hitEffectPrefab; this.attack.isCrit = Util.CheckRoll(this.critStat, base.characterBody.master); if (modelTransform) { this.attack.hitBoxGroup = Array.Find <HitBoxGroup>(modelTransform.GetComponents <HitBoxGroup>(), (HitBoxGroup element) => element.groupName == "Hammer"); ChildLocator component = modelTransform.GetComponent <ChildLocator>(); if (component) { this.hammerChildTransform = component.FindChild("SwingCenter"); } } if (this.modelAnimator) { base.PlayAnimation("Gesture", "Slam", "Slam.playbackRate", this.duration); } if (base.characterBody) { base.characterBody.SetAimTimer(2f); } }
private static void SetupMainHurtbox(GameObject prefab, GameObject model) { ChildLocator childLocator = model.GetComponent <ChildLocator>(); if (!childLocator.FindChild("MainHurtbox")) { Debug.LogError("Could not set up main hurtbox: make sure you have a transform pair in your prefab's ChildLocator component called 'MainHurtbox'"); return; } HurtBoxGroup hurtBoxGroup = model.AddComponent <HurtBoxGroup>(); HurtBox mainHurtbox = childLocator.FindChild("MainHurtbox").gameObject.AddComponent <HurtBox>(); mainHurtbox.gameObject.layer = LayerIndex.entityPrecise.intVal; mainHurtbox.healthComponent = prefab.GetComponent <HealthComponent>(); mainHurtbox.isBullseye = true; mainHurtbox.damageModifier = HurtBox.DamageModifier.Normal; mainHurtbox.hurtBoxGroup = hurtBoxGroup; mainHurtbox.indexInGroup = 0; hurtBoxGroup.hurtBoxes = new HurtBox[] { mainHurtbox }; hurtBoxGroup.mainHurtBox = mainHurtbox; hurtBoxGroup.bullseyeCount = 1; }
// Token: 0x06002AE0 RID: 10976 RVA: 0x000B46BC File Offset: 0x000B28BC public override void OnEnter() { base.OnEnter(); Ray aimRay = base.GetAimRay(); string text = "MuzzleRight"; this.duration = FireRHCannon.baseDuration / this.attackSpeedStat; this.durationBetweenShots = FireRHCannon.baseDurationBetweenShots / this.attackSpeedStat; if (FireRHCannon.effectPrefab) { EffectManager.SimpleMuzzleFlash(FireRHCannon.effectPrefab, base.gameObject, text, false); } base.PlayAnimation("Gesture", "FireRHCannon", "FireRHCannon.playbackRate", this.duration); if (base.isAuthority && base.modelLocator && base.modelLocator.modelTransform) { ChildLocator component = base.modelLocator.modelTransform.GetComponent <ChildLocator>(); if (component) { Transform transform = component.FindChild(text); if (transform) { Vector3 forward = aimRay.direction; RaycastHit raycastHit; if (Physics.Raycast(aimRay, out raycastHit, (float)LayerIndex.world.mask)) { forward = raycastHit.point - transform.position; } ProjectileManager.instance.FireProjectile(FireRHCannon.projectilePrefab, transform.position, Util.QuaternionSafeLookRotation(forward), base.gameObject, this.damageStat * FireRHCannon.damageCoefficient, FireRHCannon.force, Util.CheckRoll(this.critStat, base.characterBody.master), DamageColorIndex.Default, null, -1f); } } } }
// Token: 0x06000EBE RID: 3774 RVA: 0x000489C0 File Offset: 0x00046BC0 public void SimpleMuzzleFlash(GameObject effectPrefab, GameObject obj, string muzzleName, bool transmit) { if (!obj) { return; } ModelLocator component = obj.GetComponent <ModelLocator>(); if (component && component.modelTransform) { ChildLocator component2 = component.modelTransform.GetComponent <ChildLocator>(); if (component2) { int childIndex = component2.FindChildIndex(muzzleName); Transform transform = component2.FindChild(childIndex); if (transform) { EffectData effectData = new EffectData { origin = transform.position }; effectData.SetChildLocatorTransformReference(obj, childIndex); EffectManager.instance.SpawnEffect(effectPrefab, effectData, transmit); } } } }
public override void OnEnter() { base.OnEnter(); this.model = base.GetModelTransform(); this.childLocator = base.GetModelChildLocator(); this.overpowerParticleSystemEmission = this.childLocator.FindChild("OverpowerParticles").GetComponent <ParticleSystem>().emission; }