コード例 #1
0
        private static void SetupSkills()
        {
            ReloadSkillDef skillDef = Resources.Load <ReloadSkillDef>("skilldefs/bandit2body/FireShotgun2");

            var mySkillDef = UnityEngine.Object.Instantiate <ReloadSkillDef>(skillDef);

            if (mySkillDef)
            {
                mySkillDef.activationState = new SerializableEntityStateType(typeof(FireShotgunRBS));
                LoadoutAPI.AddSkillDef(mySkillDef);

                var skillLocator = myCharacter.GetComponent <SkillLocator>();
                var skillFamily  = skillLocator.primary.skillFamily;

                Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1);
                skillFamily.variants[skillFamily.variants.Length - 1] = new SkillFamily.Variant
                {
                    skillDef      = mySkillDef,
                    unlockableDef = null,
                    viewableNode  = new ViewablesCatalog.Node(mySkillDef.skillNameToken, false, null)
                };
            }
        }
コード例 #2
0
        private void RegisterBanditSkills()
        {
            //Nab the skillocator and skillfamilies
            SkillLocator banditSkillLocator       = banditRef.GetComponent <SkillLocator>();
            SkillFamily  banditSkillFamilyUtility = banditSkillLocator.utility.skillFamily;
            SkillFamily  banditSkillFamilyPrimary = banditSkillLocator.primary.skillFamily;

            //Thieves Cunning
            InvisOnSprintSkillDef skillDefInvisSprint = ScriptableObject.CreateInstance <InvisOnSprintSkillDef>();

            //These two are dummies, don't actually exist, just there to stop errors
            skillDefInvisSprint.activationState            = new SerializableEntityStateType(typeof(ThrowSmokebomb));
            skillDefInvisSprint.activationStateMachineName = "Body";
            skillDefInvisSprint.baseMaxStock         = 1;
            skillDefInvisSprint.baseRechargeInterval = 6f;
            skillDefInvisSprint.fullRestockOnAssign  = false;
            skillDefInvisSprint.rechargeStock        = 1;
            skillDefInvisSprint.requiredStock        = 1;
            skillDefInvisSprint.stockToConsume       = 1;
            skillDefInvisSprint.icon = Resources.Sprites.invisSprintIconS;
            skillDefInvisSprint.skillDescriptionToken = "BANDIT_UTILITY_INVISSPRINT_DESC";
            skillDefInvisSprint.skillName             = "ThievesCunning";
            skillDefInvisSprint.skillNameToken        = "BANDIT_UTILITY_INVISSPRINT_NAME";

            defList.Add(skillDefInvisSprint);
            Array.Resize(ref banditSkillFamilyUtility.variants, banditSkillFamilyUtility.variants.Length + 1);
            banditSkillFamilyUtility.variants[banditSkillFamilyUtility.variants.Length - 1] = new SkillFamily.Variant
            {
                skillDef      = skillDefInvisSprint,
                unlockableDef = UnlocksRegistering.banditInvisSprintUnlockDef,
                viewableNode  = new ViewablesCatalog.Node(skillDefInvisSprint.skillNameToken, false, null)
            };

            //Magic bullet
            ReloadSkillDef skillDefMagicBullet = ScriptableObject.CreateInstance <ReloadSkillDef>();

            skillDefMagicBullet.activationState              = new SerializableEntityStateType(typeof(MagicBulletEntity));
            skillDefMagicBullet.reloadState                  = new SerializableEntityStateType(typeof(EnterReload));
            skillDefMagicBullet.activationStateMachineName   = "Weapon";
            skillDefMagicBullet.baseMaxStock                 = 4;
            skillDefMagicBullet.graceDuration                = 0.8f;
            skillDefMagicBullet.beginSkillCooldownOnSkillEnd = true;
            skillDefMagicBullet.fullRestockOnAssign          = false;
            skillDefMagicBullet.isCombatSkill                = true;
            skillDefMagicBullet.mustKeyPress                 = true;
            skillDefMagicBullet.reloadInterruptPriority      = InterruptPriority.Any;
            skillDefMagicBullet.canceledFromSprinting        = true;
            skillDefMagicBullet.cancelSprintingOnActivation  = true;
            skillDefMagicBullet.forceSprintDuringState       = false;
            skillDefMagicBullet.baseRechargeInterval         = 0f;
            skillDefMagicBullet.rechargeStock                = 0;
            skillDefMagicBullet.requiredStock                = 1;
            skillDefMagicBullet.stockToConsume               = 1;
            skillDefMagicBullet.icon = Resources.Sprites.magicBulletIconS;
            skillDefMagicBullet.skillDescriptionToken = "BANDIT_PRIMARY_MAGICBULLET_DESC";
            skillDefMagicBullet.skillName             = "MagicBullet";
            skillDefMagicBullet.skillNameToken        = "BANDIT_PRIMARY_MAGICBULLET_NAME";

            defList.Add(skillDefMagicBullet);
            Array.Resize(ref banditSkillFamilyPrimary.variants, banditSkillFamilyPrimary.variants.Length + 1);
            banditSkillFamilyPrimary.variants[banditSkillFamilyPrimary.variants.Length - 1] = new SkillFamily.Variant
            {
                skillDef      = skillDefMagicBullet,
                unlockableDef = UnlocksRegistering.banditMagicBulletUnlockDef,
                viewableNode  = new ViewablesCatalog.Node(skillDefMagicBullet.skillNameToken, false, null)
            };
            ContentAddition.AddEntityState <MagicBulletEntity>(out _);
        }