예제 #1
0
        // Token: 0x06000064 RID: 100 RVA: 0x00004548 File Offset: 0x00002748
        public static Skill Init()
        {
            SL_AttackSkill sl_AttackSkill = new SL_AttackSkill
            {
                Name                   = "Parry",
                EffectBehaviour        = EffectBehaviours.OverrideEffects,
                Target_ItemID          = 8100360,
                New_ItemID             = 2502016,
                Description            = "Completely block a physical attack.",
                CastType               = Character.SpellCastType.Counter,
                CastModifier           = Character.SpellCastModifier.Attack,
                CastLocomotionEnabled  = false,
                MobileCastMovementMult = -1f,
                CastSheatheRequired    = 2,
                RequiredWeaponTypes    = new Weapon.WeaponType[]
                {
                    Weapon.WeaponType.Axe_1H,
                    Weapon.WeaponType.Axe_2H,
                    Weapon.WeaponType.Sword_1H,
                    Weapon.WeaponType.Sword_2H,
                    Weapon.WeaponType.Mace_1H,
                    Weapon.WeaponType.Mace_2H,
                    Weapon.WeaponType.Halberd_2H,
                    Weapon.WeaponType.Spear_2H
                },
                Cooldown    = 3f,
                StaminaCost = 4f,
                ManaCost    = 0f
            };
            Skill     skill     = (Skill)CustomItems.CreateCustomItem(sl_AttackSkill.Target_ItemID, sl_AttackSkill.New_ItemID, sl_AttackSkill.Name, sl_AttackSkill);
            Transform transform = skill.gameObject.transform.FindInAllChildren("HitEffects");

            UnityEngine.Object.Destroy(transform.gameObject);
            return(skill);
        }
        // Token: 0x06000056 RID: 86 RVA: 0x00003C78 File Offset: 0x00001E78
        public static Skill Init()
        {
            SL_AttackSkill sl_AttackSkill = new SL_AttackSkill
            {
                Name                   = "Horde Breaker",
                EffectBehaviour        = EffectBehaviours.OverrideEffects,
                Target_ItemID          = 8100320,
                New_ItemID             = 2502024,
                SLPackName             = "Juggernaut",
                SubfolderName          = "HordeBreaker",
                Description            = string.Format("Does two attacks in wide archs that stagger on hit.\n\n{0}: Confused enemies are knocked down.\n\n{1}: Enemies in pain are slowed down.", "Unyielding", "Vengeful"),
                CastType               = new Character.SpellCastType?(Character.SpellCastType.WeaponSkill1),
                CastModifier           = new Character.SpellCastModifier?(Character.SpellCastModifier.Attack),
                CastLocomotionEnabled  = false,
                MobileCastMovementMult = -1f,
                CastSheatheRequired    = 2,
                RequiredWeaponTypes    = new Weapon.WeaponType[]
                {
                    Weapon.WeaponType.Axe_1H,
                    Weapon.WeaponType.Axe_2H,
                    Weapon.WeaponType.Sword_1H,
                    Weapon.WeaponType.Sword_2H,
                    Weapon.WeaponType.Mace_1H,
                    Weapon.WeaponType.Mace_2H,
                    Weapon.WeaponType.Halberd_2H,
                    Weapon.WeaponType.Spear_2H
                },
                EffectTransforms = new SL_EffectTransform[]
                {
                    new SL_EffectTransform
                    {
                        TransformName = "Effects",
                        Effects       = new SL_Effect[0],
                    }
                },
                Cooldown    = 60f,
                StaminaCost = 16f,
                ManaCost    = 0f
            };
            Skill skill = (Skill)CustomItems.CreateCustomItem(sl_AttackSkill.Target_ItemID, sl_AttackSkill.New_ItemID, sl_AttackSkill.Name, sl_AttackSkill);

            UnityEngine.Object.Destroy(skill.transform.Find("HitEffects_Rage").gameObject);
            UnityEngine.Object.Destroy(skill.transform.Find("HitEffects_Discipline").gameObject);
            WeaponSkillAnimationSelector.SetCustomAttackAnimation(skill, Weapon.WeaponType.Halberd_2H);
            Transform transform = skill.transform.Find("HitEffects");

            transform.gameObject.AddComponent <HordeBreakerEffect>();
            WeaponDamage componentInChildren = skill.gameObject.GetComponentInChildren <WeaponDamage>();

            componentInChildren.WeaponDamageMult            = 1f;
            componentInChildren.WeaponDurabilityLossPercent = 0f;
            componentInChildren.WeaponDurabilityLoss        = 1f;
            componentInChildren.Damages             = new DamageType[0];
            componentInChildren.WeaponKnockbackMult = 1f;
            UnityEngine.Object.Destroy(skill.gameObject.GetComponentInChildren <HasStatusEffectEffectCondition>());
            UnityEngine.Object.Destroy(skill.gameObject.GetComponentInChildren <AddStatusEffect>());
            return(skill);
        }
예제 #3
0
        // Token: 0x06000011 RID: 17 RVA: 0x000029EC File Offset: 0x00000BEC
        public static Skill Init()
        {
            SL_AttackSkill sl_AttackSkill = new SL_AttackSkill
            {
                Name                   = "Wrathful Smite",
                EffectBehaviour        = EffectBehaviours.OverrideEffects,
                Target_ItemID          = 8100350,
                New_ItemID             = 2502008,
                SLPackName             = "Templar",
                SubfolderName          = "Wrathful Smite",
                Description            = "A leaping attack that deals more damage to enemies that are knocked down.\n\nWrathful Smite instantly becomes available for another use if it kills its target.",
                CastType               = Character.SpellCastType.AxeLeap,
                CastModifier           = Character.SpellCastModifier.Attack,
                CastLocomotionEnabled  = false,
                MobileCastMovementMult = -1f,
                CastSheatheRequired    = 2,
                RequiredWeaponTypes    = new Weapon.WeaponType[]
                {
                    Weapon.WeaponType.Axe_1H,
                    Weapon.WeaponType.Axe_2H,
                    Weapon.WeaponType.Sword_1H,
                    Weapon.WeaponType.Sword_2H,
                    Weapon.WeaponType.Mace_1H,
                    Weapon.WeaponType.Mace_2H,
                    Weapon.WeaponType.Halberd_2H,
                    Weapon.WeaponType.Spear_2H
                },
                Cooldown    = 40f,
                StaminaCost = 8f,
                ManaCost    = 7f
            };
            Skill skill = (Skill)CustomItems.CreateCustomItem(sl_AttackSkill.Target_ItemID, sl_AttackSkill.New_ItemID, sl_AttackSkill.Name, sl_AttackSkill);

            skill.transform.Find("ActivationEffects").gameObject.AddComponent <EnableHitDetection>().Delay = 0.5f;
            UnityEngine.Object.Destroy(skill.gameObject.GetComponentInChildren <WeaponDamage>());
            ExecutionWeaponDamage executionWeaponDamage = skill.transform.Find("HitEffects").gameObject.AddComponent <ExecutionWeaponDamage>();

            executionWeaponDamage.SetCooldown                 = 1f;
            executionWeaponDamage.WeaponDamageMult            = 1f;
            executionWeaponDamage.WeaponDamageMultKDown       = 2f;
            executionWeaponDamage.WeaponDurabilityLossPercent = 0f;
            executionWeaponDamage.WeaponDurabilityLoss        = 1f;
            executionWeaponDamage.OverrideDType               = DamageType.Types.Count;
            executionWeaponDamage.Damages = new DamageType[]
            {
                new DamageType(DamageType.Types.Electric, 30f)
            };
            executionWeaponDamage.WeaponKnockbackMult = 2f;
            UnityEngine.Object.Destroy(skill.gameObject.GetComponentInChildren <HasStatusEffectEffectCondition>());
            UnityEngine.Object.Destroy(skill.gameObject.GetComponentInChildren <AddStatusEffect>());
            foreach (PlaySoundEffect obj in from x in skill.gameObject.GetComponentsInChildren <PlaySoundEffect>()
                     where x.Sounds.Contains(GlobalAudioManager.Sounds.CS_Golem_HeavyAttackFence_Whoosh1)
                     select x)
            {
                UnityEngine.Object.Destroy(obj);
            }
            return(skill);
        }
        // Token: 0x06000007 RID: 7 RVA: 0x000022B4 File Offset: 0x000004B4
        public static Skill Init()
        {
            SL_AttackSkill sl_AttackSkill = new SL_AttackSkill
            {
                Name                   = "Infuse Burst of Light",
                EffectBehaviour        = EffectBehaviours.OverrideEffects,
                Target_ItemID          = 8200100,
                New_ItemID             = 2502001,
                SLPackName             = "Templar",
                SubfolderName          = "Infuse Burst of Light",
                Description            = "Temporarly infuse your weapon with light for, without consuming your Blessed boon.",
                IsUsable               = true,
                CastType               = Character.SpellCastType.SpellBindLight,
                CastModifier           = Character.SpellCastModifier.Immobilized,
                CastLocomotionEnabled  = false,
                MobileCastMovementMult = -1f,
                RequiredWeaponTypes    = new Weapon.WeaponType[]
                {
                    Weapon.WeaponType.Axe_1H,
                    Weapon.WeaponType.Axe_2H,
                    Weapon.WeaponType.Sword_1H,
                    Weapon.WeaponType.Sword_2H,
                    Weapon.WeaponType.Mace_1H,
                    Weapon.WeaponType.Mace_2H,
                    Weapon.WeaponType.Halberd_2H,
                    Weapon.WeaponType.Spear_2H
                },
                EffectTransforms = new SL_EffectTransform[]
                {
                    new SL_EffectTransform
                    {
                        TransformName = "Effects",
                        Effects       = new SL_Effect[]
                        {
                            new SL_ImbueWeapon
                            {
                                Lifespan = 60f,
                                ImbueEffect_Preset_ID = 219,
                                Imbue_Slot            = Weapon.WeaponSlot.MainHand
                            }
                        }
                    }
                },
                Cooldown    = new float?((float)2),
                StaminaCost = new float?(0f),
                ManaCost    = new float?((float)7)
            };
            Skill skill = (Skill)CustomItems.CreateCustomItem(sl_AttackSkill.Target_ItemID, sl_AttackSkill.New_ItemID, sl_AttackSkill.Name, sl_AttackSkill);

            UnityEngine.Object.Destroy(skill.gameObject.GetComponentInChildren <HasStatusEffectEffectCondition>());
            return(skill);
        }
        // Token: 0x0600000F RID: 15 RVA: 0x00002850 File Offset: 0x00000A50
        public static Skill Init()
        {
            SL_AttackSkill sl_AttackSkill = new SL_AttackSkill
            {
                Name                   = "Retributive Smite",
                EffectBehaviour        = EffectBehaviours.NONE,
                Target_ItemID          = 8100260,
                New_ItemID             = 2502006,
                SLPackName             = "Templar",
                SubfolderName          = "Retributive Smite",
                Description            = "Completely block a physical attack, striking the attacker and dealing additional lightning damage.",
                CastType               = Character.SpellCastType.Counter,
                CastModifier           = Character.SpellCastModifier.Attack,
                CastLocomotionEnabled  = false,
                MobileCastMovementMult = -1f,
                CastSheatheRequired    = 2,
                RequiredWeaponTypes    = new Weapon.WeaponType[]
                {
                    Weapon.WeaponType.Axe_1H,
                    Weapon.WeaponType.Axe_2H,
                    Weapon.WeaponType.Sword_1H,
                    Weapon.WeaponType.Sword_2H,
                    Weapon.WeaponType.Mace_1H,
                    Weapon.WeaponType.Mace_2H,
                    Weapon.WeaponType.Halberd_2H,
                    Weapon.WeaponType.Spear_2H
                },
                Cooldown    = 40f,
                StaminaCost = 8f,
                ManaCost    = 7f,
            };
            Skill        skill = (Skill)CustomItems.CreateCustomItem(sl_AttackSkill.Target_ItemID, sl_AttackSkill.New_ItemID, sl_AttackSkill.Name, sl_AttackSkill);
            WeaponDamage componentInChildren = skill.gameObject.GetComponentInChildren <WeaponDamage>();

            componentInChildren.WeaponDamageMult            = 1.5f;
            componentInChildren.WeaponDamageMultKDown       = -1f;
            componentInChildren.WeaponDurabilityLossPercent = 0f;
            componentInChildren.WeaponDurabilityLoss        = 1f;
            componentInChildren.OverrideDType = DamageType.Types.Count;
            componentInChildren.Damages       = new DamageType[]
            {
                new DamageType(DamageType.Types.Electric, 20f)
            };
            return(skill);
        }
예제 #6
0
        // Token: 0x06000062 RID: 98 RVA: 0x000042A8 File Offset: 0x000024A8
        public static Skill Init()
        {
            SL_AttackSkill sl_AttackSkill = new SL_AttackSkill
            {
                Name                   = "Tackle",
                EffectBehaviour        = EffectBehaviours.OverrideEffects,
                Target_ItemID          = 8100072,
                New_ItemID             = 2502017,
                SLPackName             = "Juggernaut",
                SubfolderName          = "Tackle",
                Description            = "Ram into your opponent! Either of you will fall. The most stable at foot will triump!",
                CastType               = Character.SpellCastType.ShieldCharge,
                CastModifier           = Character.SpellCastModifier.Attack,
                CastLocomotionEnabled  = false,
                MobileCastMovementMult = -1f,
                CastSheatheRequired    = 0,
                RequiredOffHandTypes   = new Weapon.WeaponType[0],
                Cooldown               = 30f,
                StaminaCost            = 8f,
                ManaCost               = 0f
            };
            Skill skill = (Skill)CustomItems.CreateCustomItem(sl_AttackSkill.Target_ItemID, sl_AttackSkill.New_ItemID, sl_AttackSkill.Name, sl_AttackSkill);

            EmptyOffHandCondition.AddToSkill(skill, false, false);

            GameObject gameObject = skill.transform.Find("ActivationEffects").gameObject;

            for (int i = 0; i < 4; i++)
            {
                EnableHitDetection enableHitDetection = gameObject.AddComponent <EnableHitDetection>();
                enableHitDetection.Delay = 0.2f + (float)i * 0.08f;
            }
            foreach (PlaySoundEffect obj in gameObject.GetComponentsInChildren <PlaySoundEffect>())
            {
                UnityEngine.Object.Destroy(obj);
            }
            GameObject gameObject2 = ResourcesPrefabManager.Instance.GetItemPrefab(8100190).gameObject;

            foreach (PlaySoundEffect playSoundEffect in gameObject2.gameObject.GetComponentsInChildren <PlaySoundEffect>())
            {
                bool flag = (double)playSoundEffect.Delay <= 0.2;
                if (flag)
                {
                    PlaySoundEffect playSoundEffect2 = gameObject.AddComponent <PlaySoundEffect>();
                    playSoundEffect2.Sounds   = playSoundEffect.Sounds;
                    playSoundEffect2.Delay    = playSoundEffect.Delay;
                    playSoundEffect2.Follow   = playSoundEffect.Follow;
                    playSoundEffect2.MinPitch = playSoundEffect.MinPitch;
                    playSoundEffect2.MaxPitch = playSoundEffect.MaxPitch;
                    playSoundEffect2.SyncType = playSoundEffect.SyncType;
                }
            }
            GameObject   gameObject3  = skill.gameObject.transform.FindInAllChildren("HitEffects").gameObject;
            TackleEffect tackleEffect = gameObject3.AddComponent <TackleEffect>();

            tackleEffect.Knockback = 10f;
            tackleEffect.Damages   = new DamageType[]
            {
                new DamageType(DamageType.Types.Physical, 3f)
            };
            PunctualDamage component = gameObject3.GetComponent <PunctualDamage>();

            UnityEngine.Object.Destroy(component);
            return(skill);
        }
예제 #7
0
        private void SL_OnPacksLoaded()
        {
            var ringItem = new SL_Equipment
            {
                Target_ItemID = 5100500,
                New_ItemID    = TSAR_RING_ITEMID,
                Name          = "Tsar Ring",
                Description   = "An ornately-decorated ring, jeweled with an impressive Tsar.\n\nSome say this ring was summoned by the Creator of Aurai itself.",
                IKType        = Equipment.IKMode.None,
                EquipSlot     = EquipmentSlot.EquipmentSlotIDs.LeftHand,
                Tags          = new string[] { "Ring" },
                StatsHolder   = new SL_EquipmentStats
                {
                    BaseValue         = 999,
                    MaxDurability     = -1,
                    RawWeight         = 0.1f,
                    Mana_Use_Modifier = -5f
                },
                EffectBehaviour = EffectBehaviours.DestroyEffects,

                SLPackName    = "TsarRing",
                SubfolderName = "TsarRing",

                ItemVisuals = new SL_ItemVisual
                {
                    Prefab_SLPack      = "TsarRing",
                    Prefab_AssetBundle = "tsarring",
                    Prefab_Name        = "mdl_itm_Tsar_Ring_v",

                    Position = new Vector3(-0.018f, 0.011f, 0.037f),
                    Rotation = new Vector3(347.014f, 357.770f, 0f),
                },
            };

            CustomItems.CreateCustomItem(ringItem);

            var ringEffects = new SL_EffectTransform[]
            {
                new SL_EffectTransform
                {
                    TransformName = "ActivationEffects",
                    Effects       = new SL_Effect[]
                    {
                        new SL_PlaySoundEffect
                        {
                            SyncType = Effect.SyncTypes.OwnerSync,
                            Sounds   = new List <GlobalAudioManager.Sounds>
                            {
                                GlobalAudioManager.Sounds.CS_Mantis_ManaBlast_Whoosh1
                            }
                        }
                    }
                },
                new SL_EffectTransform
                {
                    TransformName = "Effects",
                    Effects       = new SL_Effect[]
                    {
                        new SL_ShootConeBlast
                        {
                            BaseBlast                 = SL_ShootBlast.BlastPrefabs.EliteImmaculateLaser,
                            CastPosition              = Shooter.CastPositionType.Transform,
                            NoAim                     = true,
                            TargetType                = Shooter.TargetTypes.Enemies,
                            TransformName             = "ShooterTransform",
                            Radius                    = 0.8f,
                            RefreshTime               = 0.1f,
                            BlastLifespan             = 1.0f,
                            InstantiatedAmount        = 1,
                            Interruptible             = true,
                            MaxHitTargetCount         = -1,
                            HitOnShoot                = true,
                            NoTargetForwardMultiplier = 5.0f,
                            ImpactSoundMaterial       = EquipmentSoundMaterials.Fire,
                            EffectBehaviour           = EffectBehaviours.OverrideEffects,
                            BlastEffects              = new SL_EffectTransform[]
                            {
                                new SL_EffectTransform
                                {
                                    TransformName = "Effects",
                                    Effects       = new SL_Effect[]
                                    {
                                        new SL_PunctualDamage
                                        {
                                            Damage = new List <SL_Damage>
                                            {
                                                new SL_Damage
                                                {
                                                    Type   = DamageType.Types.Ethereal,
                                                    Damage = 5.0f,
                                                }
                                            },
                                            Knockback    = 2f,
                                            HitInventory = true
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            };

            var ringSkill = new SL_AttackSkill
            {
                Target_ItemID         = 8300251,
                New_ItemID            = 8500999,
                Name                  = "Ring Laser",
                Description           = "Requires: Tsar Ring\n\nInvoke the power of the ring, disintegrating anything in it's path.",
                RequiredWeaponTags    = new string[] { "Ring" },
                Cooldown              = 10,
                ManaCost              = 10,
                StaminaCost           = 0,
                DurabilityCost        = 0,
                DurabilityCostPercent = 0,
                CastType              = Character.SpellCastType.Flamethrower,
                EffectBehaviour       = EffectBehaviours.OverrideEffects,
                StatsHolder           = null,

                SLPackName    = "TsarRing",
                SubfolderName = "RingLaser",

                EffectTransforms = ringEffects
            };

            CustomItems.CreateCustomItem(ringSkill);
        }
예제 #8
0
        // Token: 0x0600004E RID: 78 RVA: 0x00004F30 File Offset: 0x00003130
        private Skill ThunderousSmite()
        {
            SL_AttackSkill sl_AttackSkill = new SL_AttackSkill
            {
                Name                   = "Thunderous Smite",
                EffectBehaviour        = EffectBehaviours.OverrideEffects,
                Target_ItemID          = 8100020,
                New_ItemID             = 2502004,
                SLPackName             = "Templar",
                SubfolderName          = "Thunderous Smite",
                Description            = "Required: Melee Weapon\n\nJumping attack that summons a lightning bolt upon landing.",
                CastType               = Character.SpellCastType.AxeLeap,
                CastModifier           = Character.SpellCastModifier.Attack,
                CastLocomotionEnabled  = false,
                MobileCastMovementMult = -1f,
                CastSheatheRequired    = 2,
                RequiredWeaponTypes    = new Weapon.WeaponType[]
                {
                    Weapon.WeaponType.Axe_1H,
                    Weapon.WeaponType.Axe_2H,
                    Weapon.WeaponType.Sword_1H,
                    Weapon.WeaponType.Sword_2H,
                    Weapon.WeaponType.Mace_1H,
                    Weapon.WeaponType.Mace_2H,
                    Weapon.WeaponType.Halberd_2H,
                    Weapon.WeaponType.Spear_2H
                },
                EffectTransforms = new SL_EffectTransform[]
                {
                    new SL_EffectTransform
                    {
                        TransformName = "Effects",
                        Effects       = new SL_Effect[0]
                    },
                    new SL_EffectTransform
                    {
                        TransformName = "ActivationEffects",
                        Effects       = new SL_Effect[0]
                    }
                },
                Cooldown    = 2f,
                StaminaCost = 1f,
                ManaCost    = 1f
            };
            Skill skill      = (Skill)CustomItems.CreateCustomItem(sl_AttackSkill.Target_ItemID, sl_AttackSkill.New_ItemID, sl_AttackSkill.Name, sl_AttackSkill);
            Item  itemPrefab = ResourcesPrefabManager.Instance.GetItemPrefab(8100150);
            ShootBlastsProximity componentInChildren = itemPrefab.transform.Find("Lightning").Find("ExtraEffects").GetComponentInChildren <ShootBlastsProximity>();
            Transform            transform           = skill.transform.Find("Effects");
            ShootBlast           shootBlast          = transform.gameObject.AddComponent <ShootBlast>();

            shootBlast.transform.parent               = transform.transform;
            shootBlast.BaseBlast                      = componentInChildren.BaseBlast;
            shootBlast.InstanstiatedAmount            = 5;
            shootBlast.NoTargetForwardMultiplier      = 5f;
            shootBlast.CastPosition                   = Shooter.CastPositionType.Character;
            shootBlast.TargetType                     = Shooter.TargetTypes.Enemies;
            shootBlast.TransformName                  = "ShooterTransform";
            shootBlast.UseTargetCharacterPositionType = false;
            shootBlast.SyncType = Effect.SyncTypes.OwnerSync;
            shootBlast.OverrideEffectCategory = EffectSynchronizer.EffectCategories.None;
            shootBlast.BasePotencyValue       = 1f;
            shootBlast.Delay = 0f;
            shootBlast.LocalCastPositionAdd = new Vector3(0f, 1f, 1.5f);
            shootBlast.BaseBlast.Radius     = 3.5f;
            GameObject gameObject = skill.gameObject.GetComponentInChildren <HasStatusEffectEffectCondition>().gameObject;

            UnityEngine.Object.Destroy(gameObject);
            return(skill);
        }