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) }; } }
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 _); }