public override void SetupAttributes() { base.SetupAttributes(); headsetBuff = ScriptableObject.CreateInstance <BuffDef>(); headsetBuff.buffColor = new Color(0.5f, 0.575f, 0.95f); headsetBuff.canStack = true; headsetBuff.isDebuff = false; headsetBuff.name = "TKSATHeadset"; headsetBuff.iconSprite = Addressables.LoadAssetAsync <Sprite>("RoR2/Base/ShockNearby/texBuffTeslaIcon.tif") .WaitForCompletion(); ContentAddition.AddBuffDef(headsetBuff); var achiNameToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_NAME"; var achiDescToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_DESCRIPTION"; unlockable = ScriptableObject.CreateInstance <UnlockableDef>(); unlockable.cachedName = $"TkSat_{name}Unlockable"; unlockable.sortScore = 200; unlockable.achievementIcon = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/UnlockIcons/headsetIcon.png"); ContentAddition.AddUnlockableDef(unlockable); LanguageAPI.Add(achiNameToken, "You Broke It"); LanguageAPI.Add(achiDescToken, "Kill a boss with a maximum damage H3AD-5T v2 explosion."); itemDef.unlockableDef = unlockable; }
public override void SetupAttributes() { base.SetupAttributes(); var achiNameToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_NAME"; var achiDescToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_DESCRIPTION"; unlockable = ScriptableObject.CreateInstance <UnlockableDef>(); unlockable.cachedName = $"TkSat_{name}Unlockable"; unlockable.sortScore = 200; unlockable.achievementIcon = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/UnlockIcons/deadManSwitchIcon.png"); ContentAddition.AddUnlockableDef(unlockable); LanguageAPI.Add(achiNameToken, "Nine Lives"); LanguageAPI.Add(achiDescToken, "Survive falling to low health 9 times in the same run (must return to above 50% health each time)."); itemDef.unlockableDef = unlockable; deadManSwitchBuff = ScriptableObject.CreateInstance <BuffDef>(); deadManSwitchBuff.buffColor = Color.red; deadManSwitchBuff.canStack = false; deadManSwitchBuff.isDebuff = false; deadManSwitchBuff.isCooldown = true; deadManSwitchBuff.name = "TKSATDeadManSwitch"; deadManSwitchBuff.iconSprite = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/MiscIcons/deadManSwitchBuff.png"); ContentAddition.AddBuffDef(deadManSwitchBuff); }
public override void SetupAttributes() { base.SetupAttributes(); speedBuff = ScriptableObject.CreateInstance <BuffDef>(); speedBuff.buffColor = Color.white; speedBuff.canStack = true; speedBuff.isDebuff = false; speedBuff.name = "TKSATSkeinSpeed"; speedBuff.iconSprite = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/MiscIcons/skeinSpeedBuffIcon.png"); ContentAddition.AddBuffDef(speedBuff); resistBuff = ScriptableObject.CreateInstance <BuffDef>(); resistBuff.buffColor = Color.white; resistBuff.canStack = true; resistBuff.isDebuff = false; resistBuff.name = "TKSATSkeinResist"; resistBuff.iconSprite = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/MiscIcons/skeinResistBuffIcon.png"); ContentAddition.AddBuffDef(resistBuff); var achiNameToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_NAME"; var achiDescToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_DESCRIPTION"; unlockable = ScriptableObject.CreateInstance <UnlockableDef>(); unlockable.cachedName = $"TkSat_{name}Unlockable"; unlockable.sortScore = 200; unlockable.achievementIcon = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/UnlockIcons/skeinIcon.png"); ContentAddition.AddUnlockableDef(unlockable); LanguageAPI.Add(achiNameToken, "Phenomenal Cosmic Power"); LanguageAPI.Add(achiDescToken, "Complete all 4 Item Set achievements from Tinker's Satchel."); itemDef.unlockableDef = unlockable; }
public override void SetupAttributes() { base.SetupAttributes(); var tempPfb = LegacyResourcesAPI.Load <GameObject>("Prefabs/Projectiles/GravSphere").InstantiateClone("temporary setup prefab", false); var proj = tempPfb.GetComponent <RoR2.Projectile.ProjectileSimple>(); proj.desiredForwardSpeed = 0; proj.lifetime = PULL_VFX_DURATION; var projCtrl = tempPfb.GetComponent <RoR2.Projectile.ProjectileController>(); projCtrl.procCoefficient = 0; var dmg = proj.GetComponent <RoR2.Projectile.ProjectileDamage>(); dmg.damage = 0f; dmg.enabled = false; var force = tempPfb.GetComponent <RadialForce>(); force.enabled = false; var sph = tempPfb.transform.Find("Sphere"); sph.gameObject.SetActive(false); var sps = tempPfb.transform.Find("Sparks"); var spsPart = sps.GetComponent <ParticleSystem>(); var spsMain = spsPart.main; spsMain.startSpeed = new ParticleSystem.MinMaxCurve(10f, 30f); var spsShape = spsPart.shape; spsShape.radius = 4f; blackHolePrefab = tempPfb.InstantiateClone("KleinBottleProcPrefab", true); UnityEngine.Object.Destroy(tempPfb); ContentAddition.AddProjectile(blackHolePrefab); var achiNameToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_NAME"; var achiDescToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_DESCRIPTION"; unlockable = ScriptableObject.CreateInstance <UnlockableDef>(); unlockable.cachedName = $"TkSat_{name}Unlockable"; unlockable.sortScore = 200; unlockable.achievementIcon = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/UnlockIcons/kleinBottleIcon.png"); ContentAddition.AddUnlockableDef(unlockable); LanguageAPI.Add(achiNameToken, "Can't Touch This"); LanguageAPI.Add(achiDescToken, "Block, or take 1 or less points of damage from, 3 attacks in a row."); itemDef.unlockableDef = unlockable; }
public override void SetupAttributes() { base.SetupAttributes(); var achiNameToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_NAME"; var achiDescToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_DESCRIPTION"; unlockable = ScriptableObject.CreateInstance <UnlockableDef>(); unlockable.cachedName = $"TkSat_{name}Unlockable"; unlockable.sortScore = 200; unlockable.achievementIcon = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/UnlockIcons/triBroochIcon.png"); ContentAddition.AddUnlockableDef(unlockable); LanguageAPI.Add(achiNameToken, "Rasputin"); LanguageAPI.Add(achiDescToken, "As a team: stun, then freeze, then ignite the same enemy within 3 seconds."); itemDef.unlockableDef = unlockable; }
public override void SetupAttributes() { base.SetupAttributes(); var achiNameToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_NAME"; var achiDescToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_DESCRIPTION"; unlockable = ScriptableObject.CreateInstance <UnlockableDef>(); unlockable.cachedName = $"TkSat_{name}Unlockable"; unlockable.sortScore = 200; unlockable.achievementIcon = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/UnlockIcons/defibIcon.png"); ContentAddition.AddUnlockableDef(unlockable); LanguageAPI.Add(achiNameToken, "Medic!"); LanguageAPI.Add(achiDescToken, "Item Set: Shareable healing. Have 4 or more (of 7) at once."); itemDef.unlockableDef = unlockable; }
public override void SetupAttributes() { base.SetupAttributes(); var achiNameToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_NAME"; var achiDescToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_DESCRIPTION"; unlockable = ScriptableObject.CreateInstance <UnlockableDef>(); unlockable.cachedName = $"TkSat_{name}Unlockable"; unlockable.sortScore = 200; unlockable.achievementIcon = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/UnlockIcons/kintsugiIcon.png"); ContentAddition.AddUnlockableDef(unlockable); LanguageAPI.Add(achiNameToken, "Planned Obsolescence"); LanguageAPI.Add(achiDescToken, "Have at least 20 items, at least half of which are broken/consumed/scrapped."); itemDef.unlockableDef = unlockable; }
public override void SetupAttributes() { base.SetupAttributes(); var achiNameToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_NAME"; var achiDescToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_DESCRIPTION"; unlockable = ScriptableObject.CreateInstance <UnlockableDef>(); unlockable.cachedName = $"TkSat_{name}Unlockable"; unlockable.sortScore = 200; unlockable.achievementIcon = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/UnlockIcons/mugIcon.png"); ContentAddition.AddUnlockableDef(unlockable); LanguageAPI.Add(achiNameToken, "...So I Fired Again"); LanguageAPI.Add(achiDescToken, "Miss 1,000 TOTAL projectile attacks."); itemDef.unlockableDef = unlockable; whiffsStatDef = RoR2.Stats.StatDef.Register("tksatMugAchievementProgress", RoR2.Stats.StatRecordType.Sum, RoR2.Stats.StatDataType.ULong, 0); }
public override void SetupAttributes() { base.SetupAttributes(); var achiNameToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_NAME"; var achiDescToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_DESCRIPTION"; unlockable = ScriptableObject.CreateInstance <UnlockableDef>(); unlockable.cachedName = $"TkSat_{name}Unlockable"; unlockable.sortScore = 200; unlockable.achievementIcon = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/UnlockIcons/shootToHealIcon.png"); ContentAddition.AddUnlockableDef(unlockable); LanguageAPI.Add(achiNameToken, "One-Man Band"); LanguageAPI.Add(achiDescToken, "Item Set: Musical instruments. Have 3 or more (of 5) at once."); itemDef.unlockableDef = unlockable; R2API.Networking.NetworkingAPI.RegisterMessageType <MsgHealTargetAndSelf>(); }
public override void SetupAttributes() { base.SetupAttributes(); var partMtl = Addressables.LoadAssetAsync <Material>("RoR2/Base/Common/VFX/matCritImpactHeavy.mat") .WaitForCompletion(); vfxPrefab.transform.Find("Background/IndParticleR").GetComponent <ParticleSystemRenderer>().material = partMtl; vfxPrefab.transform.Find("Background/IndParticleL").GetComponent <ParticleSystemRenderer>().material = partMtl; var achiNameToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_NAME"; var achiDescToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_DESCRIPTION"; unlockable = ScriptableObject.CreateInstance <UnlockableDef>(); unlockable.cachedName = $"TkSat_{name}Unlockable"; unlockable.sortScore = 200; unlockable.achievementIcon = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/UnlockIcons/motionTrackerIcon.png"); ContentAddition.AddUnlockableDef(unlockable); LanguageAPI.Add(achiNameToken, "Why Won't You Die?!"); LanguageAPI.Add(achiDescToken, "Fully charge a Teleporter without killing the boss or dying."); itemDef.unlockableDef = unlockable; }
public override void SetupAttributes() { base.SetupAttributes(); var achiNameToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_NAME"; var achiDescToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_DESCRIPTION"; unlockable = ScriptableObject.CreateInstance <UnlockableDef>(); unlockable.cachedName = $"TkSat_{name}Unlockable"; unlockable.sortScore = 200; unlockable.achievementIcon = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/UnlockIcons/recombobulatorIcon.png"); ContentAddition.AddUnlockableDef(unlockable); LanguageAPI.Add(achiNameToken, "Risktaker"); LanguageAPI.Add(achiDescToken, "Recycle a rare or boss item."); equipmentDef.unlockableDef = unlockable; if (Compat_ClassicItems.enabled) { LanguageAPI.Add("TKSAT_RECOMBOBULATOR_CI_EMBRYO_APPEND", "\n<style=cStack>Beating Embryo: Roll twice and choose the rarer result.</style>"); Compat_ClassicItems.RegisterEmbryoHook(equipmentDef, "TKSAT_RECOMBOBULATOR_CI_EMBRYO_APPEND", () => "TKSAT.QuantumRecombobulator"); } }
public override void SetupAttributes() { base.SetupAttributes(); bouncyPhysmat = Addressables.LoadAssetAsync <PhysicMaterial>("RoR2/Base/Common/physmatBouncy.physicMaterial") .WaitForCompletion(); var tspp = new GameObject("TkSatTempSetupPrefabPrefab"); var tsp = tspp.InstantiateClone("TkSatTempSetupPrefab", false); GameObject.Destroy(tspp); tsp.AddComponent <EffectComponent>(); var dstroy = tsp.AddComponent <DestroyOnTimer>(); dstroy.duration = 1f; tsp.AddComponent <RandomPinballSFXOnEnable>(); var vfx = tsp.AddComponent <VFXAttributes>(); vfx.vfxPriority = VFXAttributes.VFXPriority.Medium; vfx.vfxIntensity = VFXAttributes.VFXIntensity.Medium; tsp.AddComponent <NetworkIdentity>(); effectPrefab = tsp.InstantiateClone("TkSatPinballSFXHandler"); GameObject.Destroy(tsp); ContentAddition.AddEffect(effectPrefab); var achiNameToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_NAME"; var achiDescToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_DESCRIPTION"; unlockable = ScriptableObject.CreateInstance <UnlockableDef>(); unlockable.cachedName = $"TkSat_{name}Unlockable"; unlockable.sortScore = 200; unlockable.achievementIcon = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/UnlockIcons/pinballIcon.png"); ContentAddition.AddUnlockableDef(unlockable); LanguageAPI.Add(achiNameToken, "Woe, Explosions Be Upon Ye"); LanguageAPI.Add(achiDescToken, "Item Set: Damage-on-kill. Have 3 or more (of 6) at once."); itemDef.unlockableDef = unlockable; }
public override void SetupAttributes() { base.SetupAttributes(); moustacheBuff = ScriptableObject.CreateInstance <BuffDef>(); moustacheBuff.buffColor = new Color(0.85f, 0.2f, 0.2f); moustacheBuff.canStack = true; moustacheBuff.isDebuff = false; moustacheBuff.name = "TKSATMoustache"; moustacheBuff.iconSprite = iconResource; ContentAddition.AddBuffDef(moustacheBuff); var achiNameToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_NAME"; var achiDescToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_DESCRIPTION"; unlockable = ScriptableObject.CreateInstance <UnlockableDef>(); unlockable.cachedName = $"TkSat_{name}Unlockable"; unlockable.sortScore = 200; unlockable.achievementIcon = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/UnlockIcons/moustacheIcon.png"); ContentAddition.AddUnlockableDef(unlockable); LanguageAPI.Add(achiNameToken, "Big Brawl"); LanguageAPI.Add(achiDescToken, "Participate in a very busy fight."); itemDef.unlockableDef = unlockable; }
public override void SetupAttributes() { base.SetupAttributes(); var tempPfb = LegacyResourcesAPI.Load <GameObject>("Prefabs/Projectiles/GravSphere").InstantiateClone("temporary setup prefab", false); var proj = tempPfb.GetComponent <RoR2.Projectile.ProjectileSimple>(); proj.desiredForwardSpeed = 0; proj.lifetime = 0.5f; var projCtrl = tempPfb.GetComponent <RoR2.Projectile.ProjectileController>(); projCtrl.procCoefficient = 0; var dmg = proj.GetComponent <RoR2.Projectile.ProjectileDamage>(); dmg.damage = 0f; dmg.enabled = false; var force = tempPfb.GetComponent <RadialForce>(); force.enabled = false; var sph = tempPfb.transform.Find("Sphere"); sph.gameObject.SetActive(false); var sps = tempPfb.transform.Find("Sparks"); var spsPart = sps.GetComponent <ParticleSystem>(); var spsShape = spsPart.shape; spsShape.radius = 30f; blackHolePrefab = tempPfb.InstantiateClone("LodestoneProcPrefab", true); UnityEngine.Object.Destroy(tempPfb); ContentAddition.AddProjectile(blackHolePrefab); validObjectNamesRB.UnionWith(new[] { "HealPack(Clone)", "StickyBomb(Clone)", "TkSatPixieMovePack(Clone)", "TkSatPixieAttackPack(Clone)", "TkSatPixieDamagePack(Clone)", "TkDatPixieArmorPack(Clone)", "AmmoPack(Clone)", "BonusMoneyPack(Clone)", "ShurikenProjectile(Clone)", "FireMeatBall(Clone)", "DeathProjectile(Clone)", "BeamSphere(Clone)", "GravSphere(Clone)", "Sawmerang(Clone)", "LunarSunProjectile(Clone)" }); validObjectNamesNoRB.UnionWith(new[] { //may have RB, but should teleport anyways "DeskplantWard(Clone)", "CrippleWard(Clone)", "WarbannerWard(Clone)", "DamageZoneWard(Clone)" }); var achiNameToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_NAME"; var achiDescToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_DESCRIPTION"; unlockable = ScriptableObject.CreateInstance <UnlockableDef>(); unlockable.cachedName = $"TkSat_{name}Unlockable"; unlockable.sortScore = 200; unlockable.achievementIcon = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/UnlockIcons/lodestoneIcon.png"); ContentAddition.AddUnlockableDef(unlockable); LanguageAPI.Add(achiNameToken, "Drive Me Closer"); LanguageAPI.Add(achiDescToken, "Item Set: Close-range. Have 6 or more (of 15) at once."); equipmentDef.unlockableDef = unlockable; if (Compat_ClassicItems.enabled) { LanguageAPI.Add("TKSAT_LODESTONE_CI_EMBRYO_APPEND", "\n<style=cStack>Beating Embryo: Double range and damage.</style>"); Compat_ClassicItems.RegisterEmbryoHook(equipmentDef, "TKSAT_LODESTONE_CI_EMBRYO_APPEND", () => "TKSAT.Lodestone"); } }
public override void SetupAttributes() { base.SetupAttributes(); genericSpeedBoostBuff = ScriptableObject.CreateInstance <BuffDef>(); genericSpeedBoostBuff.buffColor = Color.red; genericSpeedBoostBuff.canStack = true; genericSpeedBoostBuff.isDebuff = false; genericSpeedBoostBuff.name = modInfo.shortIdentifier + "GoFasterUnhandled"; genericSpeedBoostBuff.iconSprite = Addressables.LoadAssetAsync <Sprite>("RoR2/Base/Common/texMovespeedBuffIcon.tif") .WaitForCompletion(); ContentAddition.AddBuffDef(genericSpeedBoostBuff); engiSpeedBoostBuff = ScriptableObject.CreateInstance <BuffDef>(); engiSpeedBoostBuff.buffColor = Color.red; engiSpeedBoostBuff.canStack = true; engiSpeedBoostBuff.isDebuff = false; engiSpeedBoostBuff.name = modInfo.shortIdentifier + "GoFasterEngi"; engiSpeedBoostBuff.iconSprite = Addressables.LoadAssetAsync <Sprite>("RoR2/Base/Common/texMovespeedBuffIcon.tif") .WaitForCompletion(); ContentAddition.AddBuffDef(engiSpeedBoostBuff); var tmpPrefab = Addressables.LoadAssetAsync <GameObject>("RoR2/Base/Captain/CaptainAirstrikeAltProjectile.prefab") .WaitForCompletion() .InstantiateClone("TkSatTempSetupPrefab", false); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/CommandoBody/CommandoBodyRoll")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/CommandoBody/CommandoSlide")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/HuntressBody/HuntressBlink")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/HuntressBody/HuntressMiniBlink")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/Bandit2Body/ThrowSmokeBomb")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/ToolbotBody/ToolbotBodyToolbotDash")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/EngiBody/EngiBodyPlaceBubbleShield")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/EngiBody/EngiHarpoons")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/MageBody/MageBodyWall")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/MercBody/MercBodyFocusedAssault")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/MercBody/MercBodyAssaulter")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/TreebotBody/TreebotBodySonicBoom")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/TreebotBody/TreebotBodyPlantSonicBoom")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/LoaderBody/ChargeFist")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/LoaderBody/ChargeZapFist")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/CrocoBody/CrocoLeap")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/CrocoBody/CrocoChainableLeap")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/CaptainBody/PrepAirstrike")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/CaptainBody/PrepAirstrikeAlt")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/CaptainBody/CallAirstrike")); handledSkillDefs.Add(LegacyResourcesAPI.Load <SkillDef>("SkillDefs/CaptainBody/CallAirstrikeAlt")); skillIconOverlay = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/SkillIcons/GoFasterStripesOverlay.png"); /*var ghost = tmpPrefab.GetComponent<ProjectileController>().ghostPrefab.InstantiateClone("TkSatTempSetupPrefab2", false); * * ghost.AddComponent<SwooceTrajectoryPredictor>(); * * tmpPrefab.GetComponent<ProjectileController>().ghostPrefab = ghost.InstantiateClone("TkSatCaptainStrikeJumperAltGhost", false); * GameObject.Destroy(ghost);*/ tmpPrefab.AddComponent <SwooceTrajectoryPredictor>(); captainStrikeJumperAltProjectile = tmpPrefab.InstantiateClone("TkSatCaptainStrikeJumperAltProjectile", true); GameObject.Destroy(tmpPrefab); var achiNameToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_NAME"; var achiDescToken = $"ACHIEVEMENT_TKSAT_{name.ToUpper(System.Globalization.CultureInfo.InvariantCulture)}_DESCRIPTION"; unlockable = ScriptableObject.CreateInstance <UnlockableDef>(); unlockable.cachedName = $"TkSat_{name}Unlockable"; unlockable.sortScore = 200; unlockable.achievementIcon = TinkersSatchelPlugin.resources.LoadAsset <Sprite>("Assets/TinkersSatchel/Textures/UnlockIcons/goFasterIcon.png"); ContentAddition.AddUnlockableDef(unlockable); LanguageAPI.Add(achiNameToken, "Faster Than Recommended"); LanguageAPI.Add(achiDescToken, "Trimp."); itemDef.unlockableDef = unlockable; }