// Token: 0x06002C27 RID: 11303 RVA: 0x000BA670 File Offset: 0x000B8870
        protected void EnablePickup()
        {
            ChildLocator component = this.podInfo.podAnimator.GetComponent <ChildLocator>();

            if (!component)
            {
                Debug.Log("Could not find pod child locator.");
                return;
            }
            Transform transform = component.FindChild("BatteryAttachmentPoint");

            if (!transform)
            {
                Debug.Log("Could not find battery attachment point.");
                return;
            }
            Transform transform2 = transform.Find("QuestVolatileBatteryWorldPickup(Clone)");

            if (!transform2)
            {
                Debug.Log("Could not find battery transform");
                return;
            }
            GenericPickupController component2 = transform2.GetComponent <GenericPickupController>();

            if (component2)
            {
                component2.enabled = true;
                return;
            }
            Debug.Log("Could not find pickup controller.");
        }
Beispiel #2
0
 // Token: 0x060007A7 RID: 1959 RVA: 0x00025DFC File Offset: 0x00023FFC
 public override void OnEnter()
 {
     base.OnEnter();
     if (base.isAuthority)
     {
         this.currentPlacementInfo = this.GetPlacementInfo();
         this.blueprints           = UnityEngine.Object.Instantiate <GameObject>(Resources.Load <GameObject>("Prefabs/EngiTurretBlueprints"), 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>(PlaceTurret.wristDisplayPrefab, transform);
             }
         }
     }
 }
Beispiel #3
0
        public override void OnEnter()
        {
            base.OnEnter();
            this.duration      = RevengeEnd.baseDuration / this.attackSpeedStat;
            this.shockwaveTime = 0.3f * this.duration;
            this.hasFired      = false;
            this.modelAnimator = base.GetModelAnimator();

            float healthPercentage = this.storedDamage / base.healthComponent.fullCombinedHealth;

            this.shockwaveRadius = Util.Remap(healthPercentage, 0f, 1f, RevengeEnd.minRadius, RevengeEnd.maxRadius);

            base.PlayAnimation("FullBody, Override", "RevengeEnd", "Revenge.playbackRate", this.duration);
            this.soundID = Util.PlayAttackSpeedSound(ChargeMegaNova.chargingSoundString, base.gameObject, this.attackSpeedStat);

            ChildLocator childLocator = base.GetModelChildLocator();

            if (childLocator)
            {
                Transform pivot = childLocator.FindChild("Chest");

                if (pivot && ChargeMegaNova.chargingEffectPrefab)
                {
                    this.chargeEffectInstance = UnityEngine.Object.Instantiate <GameObject>(ChargeMegaNova.chargingEffectPrefab, pivot.position, pivot.rotation);
                    this.chargeEffectInstance.transform.localScale = new Vector3(this.shockwaveRadius, this.shockwaveRadius, this.shockwaveRadius);
                    this.chargeEffectInstance.transform.parent     = pivot;
                    this.chargeEffectInstance.GetComponent <ScaleParticleSystemDuration>().newDuration = 0.3f * this.duration;
                }
            }

            base.flashController.Flash();
        }
 private void GenericGameEvents_OnInteractionBegin(Interactor interactor, IInteractable interactable, GameObject interactableObject, bool canProc)
 {
     if (NetworkServer.active && canProc)
     {
         CharacterBody characterBody = interactor.GetComponent <CharacterBody>();
         if (characterBody)
         {
             Inventory inventory = characterBody.inventory;
             if (inventory)
             {
                 int itemCount = inventory.GetItemCount(MysticsItemsContent.Items.MysticsItems_HealOrbOnBarrel);
                 if (itemCount > 0)
                 {
                     GameObject spawner = Object.Instantiate(delayedHealOrbSpawner, interactableObject.transform.position, interactableObject.transform.rotation);
                     MysticsItemsHealOrbOnBarrelSpawner component = spawner.GetComponent <MysticsItemsHealOrbOnBarrelSpawner>();
                     spawner.transform.position = interactableObject.transform.position + Vector3.up * 2f;
                     ChildLocator childLocator = interactableObject.GetComponent <ChildLocator>();
                     if (childLocator)
                     {
                         Transform fireworkOrigin = childLocator.FindChild("FireworkOrigin");
                         if (fireworkOrigin)
                         {
                             spawner.transform.position = fireworkOrigin.position;
                         }
                     }
                     component.interactor = interactor;
                     component.itemCount  = itemCount;
                 }
             }
         }
     }
 }
        // Token: 0x060006F8 RID: 1784 RVA: 0x00021494 File Offset: 0x0001F694
        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);
            }
        }
Beispiel #6
0
        // Token: 0x06002F91 RID: 12177 RVA: 0x000CBAD8 File Offset: 0x000C9CD8
        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.isAuthority)
            {
                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);
            }
        }
Beispiel #7
0
        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>();
        }
        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);
            }
        }
        public override void OnEnter()
        {
            chargeEffectPrefab = ChargeMegaFireball.chargeEffectPrefab;
            attackString       = ChargeMegaFireball.attackString;
            base.OnEnter();
            duration = baseDuration / attackSpeedStat;
            Animator  modelAnimator  = GetModelAnimator();
            Transform modelTransform = GetModelTransform();

            Util.PlayAttackSpeedSound(attackString, base.gameObject, attackSpeedStat);
            if ((bool)modelTransform)
            {
                ChildLocator component = modelTransform.GetComponent <ChildLocator>();
                if ((bool)component)
                {
                    Transform transform = component.FindChild("MuzzleMouth");
                    if ((bool)transform && (bool)chargeEffectPrefab)
                    {
                        chargeInstance = Object.Instantiate(chargeEffectPrefab, transform.position, transform.rotation);
                        chargeInstance.transform.parent = transform;
                        ScaleParticleSystemDuration component2 = chargeInstance.GetComponent <ScaleParticleSystemDuration>();
                        if ((bool)component2)
                        {
                            component2.newDuration = duration;
                        }
                    }
                }
            }
            if ((bool)modelAnimator)
            {
                PlayCrossfade("Gesture, Additive", "ChargeMegaFireball", "ChargeMegaFireball.playbackRate", duration, 0.1f);
            }
        }
        // Token: 0x0600072B RID: 1835 RVA: 0x00022E9C File Offset: 0x0002109C
        public override void OnEnter()
        {
            base.OnEnter();
            this.stopwatch = 0f;
            this.duration  = RechargeRocks.baseDuration / this.attackSpeedStat;
            Transform modelTransform = base.GetModelTransform();

            Util.PlaySound(RechargeRocks.attackSoundString, base.gameObject);
            base.PlayCrossfade("Body", "RechargeRocks", "RechargeRocks.playbackRate", this.duration, 0.2f);
            if (modelTransform)
            {
                ChildLocator component = modelTransform.GetComponent <ChildLocator>();
                if (component)
                {
                    Transform transform = component.FindChild("LeftFist");
                    if (transform && RechargeRocks.effectPrefab)
                    {
                        this.chargeEffect = UnityEngine.Object.Instantiate <GameObject>(RechargeRocks.effectPrefab, transform.position, transform.rotation);
                        this.chargeEffect.transform.parent = transform;
                        ScaleParticleSystemDuration component2 = this.chargeEffect.GetComponent <ScaleParticleSystemDuration>();
                        if (component2)
                        {
                            component2.newDuration = this.duration;
                        }
                    }
                }
            }
            if (NetworkServer.active)
            {
                GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(RechargeRocks.rockControllerPrefab);
                gameObject.GetComponent <TitanRockController>().SetOwner(base.gameObject);
                NetworkServer.Spawn(gameObject);
            }
        }
Beispiel #11
0
        // Token: 0x06002CA3 RID: 11427 RVA: 0x000BC598 File Offset: 0x000BA798
        public override void OnEnter()
        {
            base.OnEnter();
            this.duration = ChargeEyeblast.baseDuration / this.attackSpeedStat;
            UnityEngine.Object modelAnimator  = base.GetModelAnimator();
            Transform          modelTransform = base.GetModelTransform();

            Util.PlayScaledSound(ChargeEyeblast.attackString, base.gameObject, this.attackSpeedStat);
            if (modelTransform)
            {
                ChildLocator component = modelTransform.GetComponent <ChildLocator>();
                if (component)
                {
                    Transform transform = component.FindChild(ChargeEyeblast.muzzleString);
                    if (transform && ChargeEyeblast.chargeEffectPrefab)
                    {
                        this.chargeInstance = UnityEngine.Object.Instantiate <GameObject>(ChargeEyeblast.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", "ChargeEyeBlast", "ChargeEyeBlast.playbackRate", this.duration, 0.1f);
            }
        }
 // Token: 0x060014B9 RID: 5305 RVA: 0x00058768 File Offset: 0x00056968
 private void Update()
 {
     if (this.animateShaderAlpha)
     {
         this.stopwatch += Time.deltaTime;
         float value = this.alphaCurve.Evaluate(this.stopwatch / this.duration);
         this.materialInstance.SetFloat("_ExternalAlpha", value);
         if (this.stopwatch >= this.duration && (this.destroyComponentOnEnd || this.destroyObjectOnEnd))
         {
             if (this.destroyEffectPrefab)
             {
                 ChildLocator component = base.GetComponent <ChildLocator>();
                 if (component)
                 {
                     Transform transform = component.FindChild(this.destroyEffectChildString);
                     if (transform)
                     {
                         EffectManager.SpawnEffect(this.destroyEffectPrefab, new EffectData
                         {
                             origin   = transform.position,
                             rotation = transform.rotation
                         }, true);
                     }
                 }
             }
             if (this.destroyObjectOnEnd)
             {
                 UnityEngine.Object.Destroy(base.gameObject);
                 return;
             }
             UnityEngine.Object.Destroy(this);
         }
     }
 }
        // Token: 0x06000490 RID: 1168 RVA: 0x000130D4 File Offset: 0x000112D4
        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;
                    }
                }
            }
        }
 // Token: 0x0600329B RID: 12955 RVA: 0x000DAE44 File Offset: 0x000D9044
 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.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: 0x06000437 RID: 1079 RVA: 0x00011674 File Offset: 0x0000F874
        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.instance.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);
                    }
                }
            }
        }
        public override void OnEnter()
        {
            if (this.goodState == null)
            {
                this.goodState = new FireCannons();
            }
            this.effectPrefab = this.goodState.effectPrefab;

            base.OnEnter();
            Ray aimRay = base.GetAimRay();

            this.duration = FireWispCannon.baseDuration / this.attackSpeedStat;

            base.PlayAnimation("Body", "FireAttack1", "FireAttack1.playbackRate", this.duration);

            //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/WispCannon"), transform.position, Util.QuaternionSafeLookRotation(aimRay.direction), base.gameObject, this.damageStat * FireWispCannon.damageCoefficient, 80f, Util.CheckRoll(this.critStat, base.characterBody.master), DamageColorIndex.Default, null, -1f);
                    }
                }
            }
        }
        // Token: 0x06000606 RID: 1542 RVA: 0x0001BC5C File Offset: 0x00019E5C
        protected void SetReady(bool ready)
        {
            Transform modelTransform = base.GetModelTransform();

            if (modelTransform)
            {
                PrintController component = modelTransform.GetComponent <PrintController>();
                component.paused = !ready;
                if (!ready)
                {
                    component.age = 0f;
                }
                ChildLocator component2 = modelTransform.GetComponent <ChildLocator>();
                if (component2)
                {
                    component2.FindChild("Purchased").gameObject.SetActive(ready);
                }
            }
            PurchaseInteraction component3 = base.GetComponent <PurchaseInteraction>();

            if (component3)
            {
                component3.SetAvailable(!ready);
            }
            HologramProjector component4 = base.GetComponent <HologramProjector>();

            if (component4)
            {
                component4.hologramPivot.gameObject.SetActive(!ready);
            }
        }
Beispiel #18
0
 // Token: 0x0600305A RID: 12378 RVA: 0x000D031C File Offset: 0x000CE51C
 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;
     }
 }
Beispiel #19
0
        // Token: 0x060032B7 RID: 12983 RVA: 0x000DB824 File Offset: 0x000D9A24
        public override void OnEnter()
        {
            base.OnEnter();
            this.totalDuration = ChargeBombardment.baseTotalDuration / this.attackSpeedStat;
            this.maxChargeTime = ChargeBombardment.baseMaxChargeTime / this.attackSpeedStat;
            Transform modelTransform = base.GetModelTransform();

            base.PlayAnimation("Gesture, Additive", "ChargeBombardment");
            Util.PlaySound(ChargeBombardment.chargeLoopStartSoundString, base.gameObject);
            if (modelTransform)
            {
                ChildLocator component = modelTransform.GetComponent <ChildLocator>();
                if (component)
                {
                    Transform transform = component.FindChild("Muzzle");
                    if (transform && ChargeBombardment.chargeEffectPrefab)
                    {
                        this.chargeInstance = UnityEngine.Object.Instantiate <GameObject>(ChargeBombardment.chargeEffectPrefab, transform.position, transform.rotation);
                        this.chargeInstance.transform.parent = transform;
                        ScaleParticleSystemDuration component2 = this.chargeInstance.GetComponent <ScaleParticleSystemDuration>();
                        if (component2)
                        {
                            component2.newDuration = this.totalDuration;
                        }
                    }
                }
            }
            if (base.characterBody)
            {
                base.characterBody.SetAimTimer(this.totalDuration);
            }
        }
        public override void OnEnter()
        {
            base.OnEnter();
            this.duration = this.baseDuration / this.attackSpeedStat;

            base.PlayAnimation("Gesture, Override", "CastSpell", "Spell.playbackRate", this.duration);

            if (this.muzzleflashEffectPrefab)
            {
                EffectManager.SimpleMuzzleFlash(this.muzzleflashEffectPrefab, base.gameObject, "SpellCastEffect", false);
            }

            if (NetworkServer.active)
            {
                base.characterBody.AddBuff(BuffIndex.Slow50);
            }

            if (base.cameraTargetParams)
            {
                base.cameraTargetParams.aimMode = CameraTargetParams.AimType.Aura;
            }

            ChildLocator childLocator = base.GetModelChildLocator();

            if (childLocator)
            {
                GameObject castEffect = childLocator.FindChild("SpellCastEffect").gameObject;
                castEffect.SetActive(false);
                castEffect.SetActive(true);
            }

            Util.PlaySound(this.castSoundString, base.gameObject);

            this.Fire();
        }
Beispiel #21
0
        public override void OnEnter()
        {
            chargeEffectPrefab = ChargeEyeblast.chargeEffectPrefab;
            attackString       = ChargeEyeblast.attackString;
            muzzleString       = "Muzzle";
            base.OnEnter();
            duration = baseDuration / attackSpeedStat;
            Transform modelTransform = GetModelTransform();

            Util.PlayAttackSpeedSound(attackString, base.gameObject, attackSpeedStat);
            if ((bool)modelTransform)
            {
                ChildLocator component = modelTransform.GetComponent <ChildLocator>();
                if ((bool)component)
                {
                    Transform transform = component.FindChild(muzzleString);
                    if ((bool)transform && (bool)chargeEffectPrefab)
                    {
                        chargeInstance = Object.Instantiate(chargeEffectPrefab, transform.position, transform.rotation);
                        chargeInstance.transform.parent = transform;
                        ScaleParticleSystemDuration component2 = chargeInstance.GetComponent <ScaleParticleSystemDuration>();
                        if ((bool)component2)
                        {
                            component2.newDuration = duration;
                        }
                    }
                }
            }
        }
Beispiel #22
0
            public void Start()
            {
                inputBank = GetComponent <InputBankTest>();
                baseAI    = inputBank.characterBody.master.GetComponent <BaseAI>();
                forceOn   = !baseAI;

                Transform modelTransform = inputBank.characterBody.modelLocator.modelTransform;

                if (modelTransform)
                {
                    ChildLocator component = modelTransform.GetComponent <ChildLocator>();
                    if (component)
                    {
                        Transform transform = component.FindChild("Muzzle");
                        if (transform)
                        {
                            if (laserPrefab)
                            {
                                laserEffect = UnityEngine.Object.Instantiate <GameObject>(laserPrefab, transform.position, transform.rotation);
                                laserEffect.transform.parent = transform;
                                laserLineComponent           = laserEffect.GetComponent <LineRenderer>();
                            }
                        }
                    }
                }
            }
Beispiel #23
0
 // Token: 0x06002F03 RID: 12035 RVA: 0x000C872C File Offset: 0x000C692C
 public override void OnEnter()
 {
     base.OnEnter();
     this.animator = base.GetModelAnimator();
     if (base.characterMotor)
     {
         base.characterMotor.enabled = false;
     }
     if (base.modelLocator)
     {
         Transform      modelTransform = base.modelLocator.modelTransform;
         ChildLocator   component      = modelTransform.GetComponent <ChildLocator>();
         CharacterModel component2     = modelTransform.GetComponent <CharacterModel>();
         if (component)
         {
             component.FindChild("DustCenter").gameObject.SetActive(false);
             if (DeathState.initialEffect)
             {
                 EffectManager.SimpleMuzzleFlash(DeathState.initialEffect, base.gameObject, "DeathCenter", false);
             }
         }
         if (component2)
         {
             for (int i = 0; i < component2.baseRendererInfos.Length; i++)
             {
                 component2.baseRendererInfos[i].ignoreOverlays = true;
             }
         }
     }
     base.PlayAnimation("Fullbody Override", "Death");
 }
        // Token: 0x06002AC7 RID: 10951 RVA: 0x000B4260 File Offset: 0x000B2460
        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: 0x060004C1 RID: 1217 RVA: 0x00013E24 File Offset: 0x00012024
 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.instance.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);
     }
 }
Beispiel #26
0
        // Token: 0x06000562 RID: 1378 RVA: 0x00015E18 File Offset: 0x00014018
        public static 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.SpawnEffect(effectPrefab, effectData, transmit);
                    }
                }
            }
        }
Beispiel #27
0
        // 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);
            }
        }
Beispiel #28
0
        public override void OnEnter()
        {
            //this.baseDuration = base.baseDuration;


            this.crosshairOverridePrefab = LegacyResourcesAPI.Load <GameObject>("Prefabs/Crosshair/ToolbotGrenadeLauncherCrosshair");
            this.maxBloomRadius          = .1f;
            this.minBloomRadius          = 1f;
            this.originalScale           = this.chargeEffectPrefab.transform.localScale;
            base.OnEnter();
            ChildLocator childLocator = base.GetModelChildLocator();

            //if (VRAPI.Utils.IsUsingMotionControls(this.characterBody) == true)
            //{
            //    Transform temp = MotionControls.dominantHand.transform.Find("Muzzle");
            //    chargeEffect = temp.GetChild(0).gameObject;


            //}
            if (childLocator)
            {
                chargeEffect = childLocator.FindChild("chargeEffect").gameObject;
                chargeEffect.SetActive(false);//temp
            }
        }
        // Token: 0x0600090D RID: 2317 RVA: 0x0002D7FC File Offset: 0x0002B9FC
        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;
                        }
                    }
                }
            }
        }
Beispiel #30
0
        private static void CreatePaladin()
        {
            paladinPrefab = CreatePrefab("RobPaladinBody", "mdlPaladin", new BodyInfo
            {
                armor             = 10f,
                armorGrowth       = StaticValues.armorPerLevel,
                bodyName          = "RobPaladinBody",
                bodyNameToken     = "PALADIN_NAME",
                characterPortrait = Assets.charPortrait,
                crosshair         = Resources.Load <GameObject>("Prefabs/Crosshair/SimpleDotCrosshair"),
                damage            = StaticValues.baseDamage,
                healthGrowth      = 64,
                healthRegen       = 1.5f,
                jumpCount         = 1,
                maxHealth         = 160f,
                subtitleNameToken = "PALADIN_SUBTITLE"
            });

            SetupCharacterModel(paladinPrefab, new CustomRendererInfo[]
            {
                new CustomRendererInfo
                {
                    childName = "SwordModel",
                    material  = Modules.Skins.CreateMaterial("matPaladin", StaticValues.maxSwordGlow, Color.white)
                },
                new CustomRendererInfo
                {
                    childName = "Model",
                    material  = Modules.Skins.CreateMaterial("matPaladin", 10, Color.white)
                }
            }, 1);

            paladinPrefab.AddComponent <Misc.PaladinSwordController>();

            paladinDisplayPrefab = CreateDisplayPrefab("PaladinDisplay", paladinPrefab);
            paladinDisplayPrefab.AddComponent <Misc.MenuSound>();

            // create hitboxes

            GameObject   model        = paladinPrefab.GetComponent <ModelLocator>().modelTransform.gameObject;
            ChildLocator childLocator = model.GetComponent <ChildLocator>();

            Modules.Helpers.CreateHitbox(model, childLocator.FindChild("SwordHitbox"), "Sword");
            Modules.Helpers.CreateHitbox(model, childLocator.FindChild("LeapHitbox"), "LeapStrike");
            Modules.Helpers.CreateHitbox(model, childLocator.FindChild("SpinSlashHitbox"), "SpinSlash");
            Modules.Helpers.CreateHitbox(model, childLocator.FindChild("SpinSlashLargeHitbox"), "SpinSlashLarge");
        }