Esempio n. 1
0
 public void CheckUnfrozen()
 {
     if (frozenTime < Time.time)
     {
         rb.velocity = velocityHold;
         isFrozen    = false;
         RotateAroundAxis raa = GetComponentInChildren <RotateAroundAxis>();
         if (raa != null)
         {
             raa.enabled = true;
         }
     }
 }
Esempio n. 2
0
    public void Freeze(float frozenTime)
    {
        this.frozenTime = Time.time + frozenTime;
        velocityHold    = rb.velocity;
        rb.velocity     = Vector2.zero;
        isFrozen        = true;

        RotateAroundAxis raa = GetComponentInChildren <RotateAroundAxis>();

        if (raa != null)
        {
            raa.enabled = false;
        }
    }
Esempio n. 3
0
        public override void OnLoad()
        {
            base.OnLoad();
            itemDef.name = "MysticsItems_RiftLensDebuff";
            SetItemTierWhenAvailable(ItemTier.NoTier);
            itemDef.canRemove        = false;
            itemDef.pickupIconSprite = Main.AssetBundle.LoadAsset <Sprite>("Assets/Items/Rift Lens Debuff/Icon.png");

            GameObject debuffedVFX = Main.AssetBundle.LoadAsset <GameObject>("Assets/Items/Rift Lens Debuff/RiftLensAfflictionVFX.prefab");
            GameObject vfxOrigin   = debuffedVFX.transform.Find("Origin").gameObject;

            CustomTempVFXManagement.MysticsRisky2UtilsTempVFX tempVFX = debuffedVFX.AddComponent <CustomTempVFXManagement.MysticsRisky2UtilsTempVFX>();
            RotateAroundAxis rotateAroundAxis = vfxOrigin.AddComponent <RotateAroundAxis>();

            rotateAroundAxis.relativeTo        = Space.Self;
            rotateAroundAxis.rotateAroundAxis  = RotateAroundAxis.RotationAxis.X;
            rotateAroundAxis.slowRotationSpeed = 30f;
            rotateAroundAxis.speed             = RotateAroundAxis.Speed.Slow;
            ObjectScaleCurve fadeOut = vfxOrigin.AddComponent <ObjectScaleCurve>();

            fadeOut.overallCurve = new AnimationCurve
            {
                keys = new Keyframe[]
                {
                    new Keyframe(0f, 1f, Mathf.Tan(180f * Mathf.Deg2Rad), Mathf.Tan(-20f * Mathf.Deg2Rad)),
                    new Keyframe(1f, 0f, Mathf.Tan(160f * Mathf.Deg2Rad), 0f)
                }
            };
            fadeOut.useOverallCurveOnly = true;
            fadeOut.enabled             = false;
            fadeOut.timeMax             = 0.6f;
            tempVFX.exitBehaviours      = new MonoBehaviour[]
            {
                fadeOut
            };
            CustomTempVFXManagement.allVFX.Add(new CustomTempVFXManagement.VFXInfo
            {
                prefab    = debuffedVFX,
                condition = (x) => {
                    Inventory inventory = x.inventory;
                    if (inventory)
                    {
                        return(inventory.GetItemCount(MysticsItemsContent.Items.MysticsItems_RiftLensDebuff) > 0);
                    }
                    return(false);
                },
                radius = CustomTempVFXManagement.DefaultRadiusCall
            });
        }
Esempio n. 4
0
        public override void OnLoad()
        {
            base.OnLoad();
            itemDef.name = "MysticsItems_DeathCeremony";
            SetItemTierWhenAvailable(ItemTier.Tier2);
            itemDef.tags = new ItemTag[]
            {
                ItemTag.Damage
            };

            itemDef.pickupModelPrefab = PrepareModel(Main.AssetBundle.LoadAsset <GameObject>("Assets/Items/Death Ceremony/Model.prefab"));
            HopooShaderToMaterial.Standard.Apply(itemDef.pickupModelPrefab.GetComponentInChildren <Renderer>().sharedMaterial);
            HopooShaderToMaterial.Standard.Emission(itemDef.pickupModelPrefab.GetComponentInChildren <Renderer>().sharedMaterial, 1f);
            itemDef.pickupIconSprite = Main.AssetBundle.LoadAsset <Sprite>("Assets/Items/Death Ceremony/Icon.png");
            itemDisplayPrefab        = PrepareItemDisplayModel(PrefabAPI.InstantiateClone(itemDef.pickupModelPrefab, itemDef.pickupModelPrefab.name + "Display", false));
            onSetupIDRS += () =>
            {
                AddDisplayRule("CommandoBody", "CalfL", new Vector3(0.07748F, 0.19394F, -0.03508F), new Vector3(351.2407F, 38.31051F, 271.2653F), new Vector3(0.08418F, 0.08418F, 0.08418F));
                AddDisplayRule("HuntressBody", "CalfL", new Vector3(0.01081F, 0.33039F, -0.04676F), new Vector3(271.8222F, -0.00021F, 329.7724F), new Vector3(0.07837F, 0.07837F, 0.07837F));
                AddDisplayRule("Bandit2Body", "CalfL", new Vector3(0.03402F, 0.33989F, -0.05447F), new Vector3(275.6507F, 198.2068F, 136.1487F), new Vector3(0.07333F, 0.07333F, 0.07333F));
                AddDisplayRule("ToolbotBody", "CalfL", new Vector3(-0.76507F, 2.13588F, -0.16809F), new Vector3(0F, 0F, 92.59356F), new Vector3(0.6665F, 0.6665F, 0.6665F));
                AddDisplayRule("EngiBody", "CalfL", new Vector3(0.06642F, 0.07521F, -0.07491F), new Vector3(2.18099F, 54.26896F, 272.251F), new Vector3(0.07373F, 0.07373F, 0.07373F));
                AddDisplayRule("EngiTurretBody", "LegBar2", new Vector3(-0.00001F, 0.25339F, 0.2332F), new Vector3(87.51187F, 180F, 180F), new Vector3(0.31299F, 0.31299F, 0.31299F));
                AddDisplayRule("EngiWalkerTurretBody", "LegBar2", new Vector3(-0.00001F, 0.32614F, 0.3331F), new Vector3(80.43612F, 180F, 180F), new Vector3(0.35353F, 0.35353F, 0.35353F));
                AddDisplayRule("MageBody", "CalfL", new Vector3(-0.05753F, 0.055F, -0.00398F), new Vector3(283.2863F, 250.2234F, 182.1714F), new Vector3(0.08759F, 0.08759F, 0.08759F));
                AddDisplayRule("MercBody", "CalfL", new Vector3(0F, 0.06378F, -0.0637F), new Vector3(275.3986F, 0F, 0F), new Vector3(0.0835F, 0.0835F, 0.0835F));
                AddDisplayRule("TreebotBody", "FootFrontL", new Vector3(-0.00003F, 0.2441F, -0.14866F), new Vector3(270.8983F, 0F, 0F), new Vector3(0.20205F, 0.20205F, 0.20205F));
                AddDisplayRule("LoaderBody", "CalfL", new Vector3(0.10101F, 0.10896F, -0.05009F), new Vector3(286.7617F, 305.9382F, 3.19435F), new Vector3(0.10456F, 0.10456F, 0.10456F));
                AddDisplayRule("CrocoBody", "CalfL", new Vector3(-0.72054F, 1.36348F, -0.3729F), new Vector3(355.4709F, 323.8942F, 83.82096F), new Vector3(0.78694F, 0.78694F, 0.78694F));
                AddDisplayRule("CaptainBody", "CalfL", new Vector3(0F, 0.05716F, -0.09369F), new Vector3(287.3015F, 0F, 0F), new Vector3(0.10502F, 0.10502F, 0.10502F));
                AddDisplayRule("BrotherBody", "CalfL", BrotherInfection.green, new Vector3(0.00384F, 0.00536F, -0.03235F), new Vector3(14.82572F, 260.7474F, 350.3363F), new Vector3(0.04861F, 0.10534F, 0.10724F));
                AddDisplayRule("ScavBody", "CalfL", new Vector3(0.33272F, -0.17368F, -1.09799F), new Vector3(277.8127F, 180F, 165.8016F), new Vector3(1.08614F, 1.08614F, 1.08614F));
                if (SoftDependencies.SoftDependenciesCore.itemDisplaysSniper)
                {
                    AddDisplayRule("SniperClassicBody", "CalfL", new Vector3(-0.04687F, 0.03461F, 0.08856F), new Vector3(80.03226F, 0F, 32.95736F), new Vector3(0.07694F, 0.07694F, 0.07694F));
                }
                AddDisplayRule("RailgunnerBody", "CalfL", new Vector3(0.07292F, 0.00507F, 0.09758F), new Vector3(65.51882F, 247.9167F, 209.6704F), new Vector3(0.10736F, 0.10736F, 0.10736F));
                AddDisplayRule("VoidSurvivorBody", "ThighL", new Vector3(0.08283F, 0.31418F, 0.06681F), new Vector3(11.83692F, 314.669F, 281.4625F), new Vector3(0.09226F, 0.09226F, 0.09226F));
            };

            GameObject debuffedVFX = Main.AssetBundle.LoadAsset <GameObject>("Assets/Items/Death Ceremony/MarkedVFX.prefab");
            GameObject vfxOrigin   = debuffedVFX.transform.Find("Origin").gameObject;

            vfxOrigin.transform.localScale *= 3f;
            CustomTempVFXManagement.MysticsRisky2UtilsTempVFX tempVFX = debuffedVFX.AddComponent <CustomTempVFXManagement.MysticsRisky2UtilsTempVFX>();
            RotateAroundAxis rotateAroundAxis = vfxOrigin.gameObject.AddComponent <RotateAroundAxis>();

            rotateAroundAxis.relativeTo        = Space.Self;
            rotateAroundAxis.rotateAroundAxis  = RotateAroundAxis.RotationAxis.X;
            rotateAroundAxis.fastRotationSpeed = 17f;
            rotateAroundAxis.speed             = RotateAroundAxis.Speed.Fast;
            rotateAroundAxis                   = vfxOrigin.gameObject.AddComponent <RotateAroundAxis>();
            rotateAroundAxis.relativeTo        = Space.Self;
            rotateAroundAxis.rotateAroundAxis  = RotateAroundAxis.RotationAxis.Z;
            rotateAroundAxis.fastRotationSpeed = 34f;
            rotateAroundAxis.speed             = RotateAroundAxis.Speed.Fast;
            ObjectScaleCurve fadeOut = vfxOrigin.AddComponent <ObjectScaleCurve>();

            fadeOut.overallCurve = new AnimationCurve
            {
                keys = new Keyframe[]
                {
                    new Keyframe(0f, 1f, Mathf.Tan(180f * Mathf.Deg2Rad), Mathf.Tan(-20f * Mathf.Deg2Rad)),
                    new Keyframe(1f, 0f, Mathf.Tan(160f * Mathf.Deg2Rad), 0f)
                }
            };
            fadeOut.useOverallCurveOnly = true;
            fadeOut.enabled             = false;
            fadeOut.timeMax             = 0.2f;
            tempVFX.exitBehaviours      = new MonoBehaviour[]
            {
                fadeOut
            };
            ObjectScaleCurve fadeIn = vfxOrigin.AddComponent <ObjectScaleCurve>();

            fadeIn.overallCurve = new AnimationCurve
            {
                keys = new Keyframe[]
                {
                    new Keyframe(0f, 0f, Mathf.Tan(180f * Mathf.Deg2Rad), Mathf.Tan(70f * Mathf.Deg2Rad)),
                    new Keyframe(1f, 1f, Mathf.Tan(-160f * Mathf.Deg2Rad), 0f)
                }
            };
            fadeIn.useOverallCurveOnly = true;
            fadeIn.enabled             = false;
            fadeIn.timeMax             = 0.2f;
            tempVFX.enterBehaviours    = new MonoBehaviour[]
            {
                fadeIn
            };
            CustomTempVFXManagement.allVFX.Add(new CustomTempVFXManagement.VFXInfo
            {
                prefab    = debuffedVFX,
                condition = (x) =>
                {
                    var component = x.GetComponent <MysticsItemsDeathCeremonyMark>();
                    if (component)
                    {
                        return(component.markTimer > 0f);
                    }
                    return(false);
                },
                radius = CustomTempVFXManagement.DefaultRadiusCall
            });

            damageShareOrbEffect = Main.AssetBundle.LoadAsset <GameObject>("Assets/Items/Death Ceremony/DeathCeremonyOrbEffect.prefab");
            EffectComponent effectComponent = damageShareOrbEffect.AddComponent <EffectComponent>();

            effectComponent.positionAtReferencedTransform = false;
            effectComponent.parentToReferencedTransform   = false;
            effectComponent.applyScale = true;
            VFXAttributes vfxAttributes = damageShareOrbEffect.AddComponent <VFXAttributes>();

            vfxAttributes.vfxPriority  = VFXAttributes.VFXPriority.Low;
            vfxAttributes.vfxIntensity = VFXAttributes.VFXIntensity.Low;
            OrbEffect orbEffect = damageShareOrbEffect.AddComponent <OrbEffect>();

            orbEffect.startVelocity1 = new Vector3(-10f, 0f, -10f);
            orbEffect.startVelocity2 = new Vector3(-10f, 10f, 10f);
            orbEffect.endVelocity1   = new Vector3(-10f, 0f, -10f);
            orbEffect.endVelocity2   = new Vector3(10f, 10f, 10f);
            orbEffect.movementCurve  = new AnimationCurve
            {
                keys = new Keyframe[]
                {
                    new Keyframe(0f, 0f),
                    new Keyframe(1f, 1f)
                },
                preWrapMode  = WrapMode.Clamp,
                postWrapMode = WrapMode.Clamp
            };
            orbEffect.faceMovement = true;
            orbEffect.callArrivalIfTargetIsGone = false;
            DestroyOnTimer destroyOnTimer = damageShareOrbEffect.transform.Find("Trail").gameObject.AddComponent <DestroyOnTimer>();

            destroyOnTimer.duration = 0.5f;
            destroyOnTimer.enabled  = false;
            MysticsRisky2Utils.MonoBehaviours.MysticsRisky2UtilsOrbEffectOnArrivalDefaults onArrivalDefaults = damageShareOrbEffect.AddComponent <MysticsRisky2Utils.MonoBehaviours.MysticsRisky2UtilsOrbEffectOnArrivalDefaults>();
            onArrivalDefaults.orbEffect = orbEffect;
            onArrivalDefaults.transformsToUnparentChildren = new Transform[] {
                damageShareOrbEffect.transform
            };
            onArrivalDefaults.componentsToEnable = new MonoBehaviour[]
            {
                destroyOnTimer
            };
            MysticsItemsContent.Resources.effectPrefabs.Add(damageShareOrbEffect);

            CharacterBody.onBodyStartGlobal += CharacterBody_onBodyStartGlobal;
            GenericGameEvents.OnHitEnemy    += GenericGameEvents_OnHitEnemy;

            R2API.RecalculateStatsAPI.GetStatCoefficients += RecalculateStatsAPI_GetStatCoefficients;
        }
Esempio n. 5
0
        public override void OnLoad()
        {
            buffDef.name       = "MysticsItems_Deafened";
            buffDef.buffColor  = new Color32(255, 195, 112, 255);
            buffDef.isDebuff   = true;
            buffDef.iconSprite = Main.AssetBundle.LoadAsset <Sprite>("Assets/Buffs/Deafened.png");

            Equipment.Microphone.buffDef = buffDef;

            R2API.RecalculateStatsAPI.GetStatCoefficients += RecalculateStatsAPI_GetStatCoefficients;

            GameObject debuffedVFX = Main.AssetBundle.LoadAsset <GameObject>("Assets/Equipment/Microphone/DeafenedVFX.prefab");
            GameObject vfxOrigin   = debuffedVFX.transform.Find("Origin").gameObject;

            CustomTempVFXManagement.MysticsRisky2UtilsTempVFX tempVFX = debuffedVFX.AddComponent <CustomTempVFXManagement.MysticsRisky2UtilsTempVFX>();
            RotateAroundAxis rotateAroundAxis = vfxOrigin.transform.Find("Ring").gameObject.AddComponent <RotateAroundAxis>();

            rotateAroundAxis.relativeTo        = Space.Self;
            rotateAroundAxis.rotateAroundAxis  = RotateAroundAxis.RotationAxis.X;
            rotateAroundAxis.fastRotationSpeed = 100f;
            rotateAroundAxis.speed             = RotateAroundAxis.Speed.Fast;
            rotateAroundAxis                   = vfxOrigin.transform.Find("Ring (1)").gameObject.AddComponent <RotateAroundAxis>();
            rotateAroundAxis.relativeTo        = Space.Self;
            rotateAroundAxis.rotateAroundAxis  = RotateAroundAxis.RotationAxis.Z;
            rotateAroundAxis.fastRotationSpeed = 50f;
            rotateAroundAxis.speed             = RotateAroundAxis.Speed.Fast;
            ObjectScaleCurve fadeOut = vfxOrigin.AddComponent <ObjectScaleCurve>();

            fadeOut.overallCurve = new AnimationCurve
            {
                keys = new Keyframe[]
                {
                    new Keyframe(0f, 1f, Mathf.Tan(180f * Mathf.Deg2Rad), Mathf.Tan(-20f * Mathf.Deg2Rad)),
                    new Keyframe(1f, 0f, Mathf.Tan(160f * Mathf.Deg2Rad), 0f)
                }
            };
            fadeOut.useOverallCurveOnly = true;
            fadeOut.enabled             = false;
            fadeOut.timeMax             = 0.6f;
            tempVFX.exitBehaviours      = new MonoBehaviour[]
            {
                fadeOut
            };
            ObjectScaleCurve fadeIn = vfxOrigin.AddComponent <ObjectScaleCurve>();

            fadeIn.overallCurve = new AnimationCurve
            {
                keys = new Keyframe[]
                {
                    new Keyframe(0f, 0f, Mathf.Tan(180f * Mathf.Deg2Rad), Mathf.Tan(70f * Mathf.Deg2Rad)),
                    new Keyframe(1f, 1f, Mathf.Tan(-160f * Mathf.Deg2Rad), 0f)
                }
            };
            fadeIn.useOverallCurveOnly = true;
            fadeIn.enabled             = false;
            fadeIn.timeMax             = 0.6f;
            tempVFX.enterBehaviours    = new MonoBehaviour[]
            {
                fadeIn
            };
            CustomTempVFXManagement.allVFX.Add(new CustomTempVFXManagement.VFXInfo
            {
                prefab    = debuffedVFX,
                condition = (x) => x.HasBuff(buffDef),
                radius    = CustomTempVFXManagement.DefaultRadiusCall
            });
        }