public override void Start() { try { FakePrefabHooks.Init(); ItemBuilder.Init(); PlayerEventAdder.Init(); UnlockHookInators.AddHooks(); MagmaticBlood.Init(); MimicSkin.Init(); //Added to the doc SaplingBullets.Init(); //Added to the doc SlightlyLargerBullets.Init(); //Added to the doc WarriorsSyringe.Init(); //Added to the doc VultureFeather.Init(); //Added to the doc StraponRPG.Init(); //Added to the doc Jeremy.Init(); //Added to the doc Gasoline.Init(); //Added to the doc CatSnack.Init(); //Added to the doc ClassicCatSnack.Init(); JunkSynthesizer.Init(); WyrmBlood.Init(); //Added to the doc //GreenCandy.Init(); //KeyCandy.Init(); //GoldenCandy.Init(); //BlueCandy.Init(); //RedCandy.Init(); //HeartCandy.Init(); //MonsterCandy.Init(); ImprovedCandies.CandiesInit(); ImprovedCandies.PositiveEffectsInit(); //TrickOTreater.Init(); //Added to the doc BlackSkull.Init(); StoneSword.Init(); StoneAmmolet.Init(); Randy.Init(); BeeGun.Add(); //BloodyCannon.Add(); //WindStaff.Add(); RedAndWhite.Add(); RoyalShotgun.Add(); //Shotstool.Add(); RescueRanger.Add(); NuclearShotgun.Add(); NuclearAmmoPickup.Init(); SweeperGun.Add(); MaliciousRailcannon.Add(); Superbug.Add(); PetrifyingMirror.Init(); EnchantedTome.Init(); BronzeKey.Init(); StackOfCash.Init(); ExecutionShells.Init(); BloodBullets.Init(); HoodedShells.Init(); ClockworkCog.Init(); HighPriestCloak.Init(); LuckyCoin.Init(); LuckyHorseshoe.Init(); ToxicFungus.Init(); PurpleGuonStone.Init(); GarbageBin.Init(); ColdAmmo.Init(); MaidenPlating.Init(); PlagueBullets.Init(); CrownOfBlood.Init(); GalacticChest.Init(); Bravery.Init(); RaidersAxe.Init(); BulletSynthesizer.Init(); ElectricRounds.Init(); ThunderRounds.Init(); ToxicHoneycomb.Init(); BoomerangBullets.Init(); OilyGreaves.Init(); ShadyChest.Init(); //CandyBag.Init(); MinerHelmet.Init(); Depthmeter.Init(); Smore.Init(); KeyDoubler.Init(); BlankDoubler.Init(); CursedCandle.Init(); MyNameIsYoshikageKira.Init(); MythrilBullets.Init(); Charcoal.Init(); CodexUmbra.Init(); BloodyDice.Init(); StarFruit.Init(); HeartyKey.Init(); DeadlyKnife.Init(); Overloader.Init(); Sushi.Init(); AmmoEnhancer.Init(); BanditHat.Init(); Ushanka.Init(); BigBoom.Init(); Seashell.Init(); //GoldenBox.Init(); CobaltCoin.Init(); RingOfWealth.Init(); QuartzCrystal.Init(); DeadRinger.Init(); RoyalCapacitator.Init(); Cookbook.Init(); ParrotsFeather.Init(); Soulbauble.Init(); FlameWisp.Init(); CatsEye.Init(); GunPermit.Init(); DormantStabiliser.Init(); CaveCarrot.Init(); BlueAlbum.Init(); DoubleABattery.Init(); ScarecrowsHead.Init(); OnyxBracelet.Init(); LemonPig.Init(); IfritsHorn.Init(); EnderHelmet.Init(); BabyGoodRobot.Init(); CaptainsBrooch.Init(); SoulInator.Init(); TwoOfHearts.Init(); ParasiticFungus.Init(); ExperimentalRocketLauncher.Init(); AbyssalShield.Init(); //Coil.Init(); //Restock.Init(); //ChainOfBeing.Init(); //RangeCrystal.Init(); //BloodyLockpick.Init(); //Bitey.Init(); //JestersHat.Init(); //PrismaticLexicon.Init(); //GhoulBullets.Init(); IncubusStartingPassive.Init(); IncubusStartingActive.Init(); /*BlueExplosive.Init(); * RedExplosive.Init(); * WhiteExplosive.Init(); * SwarmSneak.Init(); * YVSwarmPickup.Init(); * WhiteDamageUp.Init(); * Drone.Init();*/ ETGModConsole.Commands.AddGroup("psmdebug", delegate(string[] args) { Log("Please specify a command.", TEXT_COLOR); }); ETGModConsole.Commands.GetGroup("psmdebug").AddUnit("guaranteeproc", delegate(string[] args) { DebugChance = !DebugChance; Log($"Guarantee Proc is now: {DebugChance}", TEXT_COLOR); }); ETGModConsole.Commands.GetGroup("psmdebug").AddUnit("unlocks", delegate(string[] args) { int totalItems = 0; int unlockedItems = 0; List <PickupObject> list = new List <PickupObject>(); List <PickupObject> list2 = new List <PickupObject>(); foreach (PickupObject item in ItemBuilder.AddedItems) { EncounterTrackable trolling = item.GetComponent <EncounterTrackable>(); if (trolling && trolling.prerequisites != null && trolling.prerequisites.Length > 0) { totalItems++; if (trolling.PrerequisitesMet()) { unlockedItems++; list2.Add(item); } else { list.Add(item); } } } Log($"Unlocked: {unlockedItems}/{totalItems}", TEXT_COLOR); if (list2.Count > 0) { Log("Items Unlocked:", TEXT_COLOR); foreach (PickupObject item in list2) { Log(item.name, TEXT_COLOR); } } if (list.Count > 0) { Log("Items Left:", TEXT_COLOR); foreach (PickupObject item in list) { Log($"{item.name}: {Unlocks[item.PickupObjectId]}", TEXT_COLOR); } } }); ETGModConsole.Commands.GetGroup("psmdebug").AddUnit("getcustommaximums", delegate(string[] args) { Log($"Most Damage Had: {DaveAPIManager.GetPlayerMaximum(CustomTrackedMaximums.MAXIMUM_DAMAGE)}", TEXT_COLOR); Log($"Most Health Had: {DaveAPIManager.GetPlayerMaximum(CustomTrackedMaximums.MAXIMUM_HEALTH)}", TEXT_COLOR); Log($"Most Money Had: {DaveAPIManager.GetPlayerMaximum(CustomTrackedMaximums.MOST_MONEY)}", TEXT_COLOR); }); } catch (Exception ex) { itemsLoad = $"{ex}"; } ETGMod.StartGlobalCoroutine(IfOtherModsExist()); }
public static void Init() { string name = "Royal Capacitor"; string resourcePath = "katmod/Resources/V3MiscItems/capacitor"; GameObject gameObject = new GameObject(name); RoyalCapacitator item = gameObject.AddComponent <RoyalCapacitator>(); ItemBuilder.AddSpriteToObject(name, resourcePath, gameObject); string shortDesc = "THUNDERSTRUCK"; string longDesc = "Channel the heavens.\n\nA Calorum Powerlytic 3600DE capacitor, which has been refitted for combat."; ItemBuilder.SetupItem(item, shortDesc, longDesc, "psm"); item.quality = ItemQuality.A; item.PlaceItemInAmmonomiconAfterItemById(439); item.SetupUnlockOnFlag(GungeonFlags.ACHIEVEMENT_NOBOSSDAMAGE_FORGE, true); Prismatism.Unlocks.Add(item.PickupObjectId, "Master the forge's boss"); ItemBuilder.SetCooldownType(item, ItemBuilder.CooldownType.Damage, 750f); GameObject target = new GameObject("capacitor_ui"); ItemBuilder.AddSpriteToObject("capacitor_ui", "katmod/Resources/V3MiscItems/royalcapacitatorui", target); targetPrefab = target; GameObject lightning = new GameObject("capacitor_lightning"); ItemBuilder.AddSpriteToObject("capacitor_lightning", "katmod/Resources/V3MiscItems/Lightning/ligthning_001", lightning); FakePrefab.MarkAsFakePrefab(lightning); UnityEngine.Object.DontDestroyOnLoad(lightning); tk2dSpriteAnimator animator = lightning.AddComponent <tk2dSpriteAnimator>(); tk2dSpriteAnimationClip animationClip = new tk2dSpriteAnimationClip { fps = 14, wrapMode = tk2dSpriteAnimationClip.WrapMode.Once }; GameObject spriteObject = new GameObject("spriteObject"); ItemBuilder.AddSpriteToObject("spriteObject", "katmod/Resources/V3MiscItems/Lightning/ligthning_001", spriteObject); tk2dSpriteAnimationFrame starterFrame = new tk2dSpriteAnimationFrame { spriteId = spriteObject.GetComponent <tk2dSprite>().spriteId, spriteCollection = spriteObject.GetComponent <tk2dSprite>().Collection }; tk2dSpriteAnimationFrame[] frameArray = new tk2dSpriteAnimationFrame[] { starterFrame }; animationClip.frames = frameArray; for (int i = 2; i < 8; i++) { GameObject spriteForObject = new GameObject("spriteForObject"); ItemBuilder.AddSpriteToObject("spriteForObject", $"katmod/Resources/V3MiscItems/Lightning/ligthning_00{i}", spriteForObject); tk2dSpriteAnimationFrame frame = new tk2dSpriteAnimationFrame { spriteId = spriteForObject.GetComponent <tk2dBaseSprite>().spriteId, spriteCollection = spriteForObject.GetComponent <tk2dBaseSprite>().Collection }; animationClip.frames = animationClip.frames.Concat(new tk2dSpriteAnimationFrame[] { frame }).ToArray(); } animator.Library = animator.gameObject.AddComponent <tk2dSpriteAnimation>(); animationClip.name = "start"; animator.Library.clips = new tk2dSpriteAnimationClip[] { animationClip }; animator.DefaultClipId = animator.GetClipIdByName("start"); animator.playAutomatically = true; lightningPrefab = lightning; }