private bool ItemIsValid(PickupObject item) { CompanionItem companion = item.GetComponent <CompanionItem>(); MulticompanionItem multiCompanion = item.GetComponent <MulticompanionItem>(); BankMaskItem clownCompanion = item.GetComponent <BankMaskItem>(); PlayerOrbitalItem orbitalItem = item.GetComponent <PlayerOrbitalItem>(); IounStoneOrbitalItem GuonStone = item.GetComponent <IounStoneOrbitalItem>(); if ((companion != null) || (multiCompanion != null) || (clownCompanion != null) || (orbitalItem != null && GuonStone == null) || OverridePossibleItems.Contains(item.PickupObjectId)) { if (!BannedItems.Contains(item.PickupObjectId)) { if (item.DisplayName != "Magic Lamp") { return(true); } else { return(false); } } else { return(false); } } else { //ETGModConsole.Log("Companion Component: " + (companion != null) + "\nMultiCompanionItem Component: " + (multiCompanion != null) + "\nOrbitalItem Component: " + (orbitalItem != null) + "\nIsGuonStone: " + (GuonStone != null) + " (Should be false)" + "\nOverrideItem: " + (OverridePossibleItems.Contains(item.PickupObjectId))); return(false); } }
public static void Init() { string name = "Dark Prince"; string resourcePath = "NevernamedsItems/Resources/Companions/DarkPrince/darkprince_icon"; GameObject gameObject = new GameObject(); CompanionItem companionItem = gameObject.AddComponent <CompanionItem>(); ItemBuilder.AddSpriteToObject(name, resourcePath, gameObject); string shortDesc = "Wicked Heir"; string longDesc = "This young Gunjurer is the unlikely heir to a vast magical empire, operating from beyond the curtain... he is also very impressionable, with his dark magics able to be put to fantastic use."; companionItem.SetupItem(shortDesc, longDesc, "nn"); companionItem.quality = PickupObject.ItemQuality.S; companionItem.CompanionGuid = DarkPrince.guid; DarkPrince.BuildPrefab(); companionItem.AddToSubShop(ItemBuilder.ShopType.Cursula); DarkPrinceProjectile = (PickupObjectDatabase.GetById(56) as Gun).DefaultModule.projectiles[0].gameObject.InstantiateAndFakeprefab(); Projectile darkProj = DarkPrinceProjectile.GetComponent <Projectile>(); darkProj.baseData.damage = 1; darkProj.baseData.speed = 100; darkProj.SetProjectileSpriteRight("laserwelder_proj", 10, 3, true, tk2dBaseSprite.Anchor.MiddleCenter, 10, 3); ProjWeaknessModifier weakness = darkProj.gameObject.AddComponent <ProjWeaknessModifier>(); weakness.UsesSeparateStatsForBosses = true; weakness.isDarkPrince = true; HomingModifier homin = darkProj.gameObject.AddComponent <HomingModifier>(); homin.AngularVelocity = 400; homin.HomingRadius = 200; List <string> BeamAnimPaths = new List <string>() { "NevernamedsItems/Resources/TrailSprites/darkprince_trail_001", "NevernamedsItems/Resources/TrailSprites/darkprince_trail_002", "NevernamedsItems/Resources/TrailSprites/darkprince_trail_003", "NevernamedsItems/Resources/TrailSprites/darkprince_trail_004", "NevernamedsItems/Resources/TrailSprites/darkprince_trail_005", }; darkProj.AddTrailToProjectile( "NevernamedsItems/Resources/TrailSprites/darkprince_trail_001", new Vector2(21, 1), new Vector2(0, 10), BeamAnimPaths, 10, null, 20, 0.1f, 0.1f, -1, true ); }
private void ShowCompanions() { ShowEquippables(); GUILayout.Label("> Companions", EditorStyles.boldLabel); CompanionItem companion = (CompanionItem)mCurrentCreateType; // no fields currently //if (mCurrentItem.GetType() != typeof(CompanionItem)) //{ // mCurrentItem = new CompanionItem(); //} }
public static void Init() { string name = "Fun Guy"; string resourcePath = "NevernamedsItems/Resources/Companions/FunGuy/funguy_icon"; GameObject gameObject = new GameObject(); CompanionItem companionItem = gameObject.AddComponent <FunGuy>(); ItemBuilder.AddSpriteToObject(name, resourcePath, gameObject); string shortDesc = "Myc-inda Fella"; string longDesc = "This young fungun has become dissilusioned with the ways of the Gungeon. Or at least, it seems that way. It's unclear if it really knows what's going on."; companionItem.SetupItem(shortDesc, longDesc, "nn"); companionItem.quality = PickupObject.ItemQuality.C; companionItem.CompanionGuid = FunGuy.guid; FunGuy.BuildPrefab(); synergyFungusProj = UnityEngine.Object.Instantiate <Projectile>((PickupObjectDatabase.GetById(86) as Gun).DefaultModule.projectiles[0]); synergyFungusProj.gameObject.MakeFakePrefab(); synergyFungusProj.SetProjectileSpriteRight("yellowtriangleproj_001", 19, 17, true, tk2dBaseSprite.Anchor.MiddleCenter, 9, 9); FungoRandomBullets orAddComponent = synergyFungusProj.gameObject.GetOrAddComponent <FungoRandomBullets>(); synergyFungusProj.baseData.speed *= 0.2f; synergyFungusProj.baseData.damage = 12.5f; PierceProjModifier pierce = synergyFungusProj.gameObject.AddComponent <PierceProjModifier>(); pierce.penetration = 1; pierce.penetratesBreakables = true; synergyFungusProj.gameObject.AddComponent <PierceDeadActors>(); synergyFungusProj.pierceMinorBreakables = true; synergyFungusProj.AnimateProjectile(new List <string> { "yellowtriangleproj_001", "yellowtriangleproj_002", "yellowtriangleproj_003", "yellowtriangleproj_004", }, 10, true, new List <IntVector2> { new IntVector2(19, 17), new IntVector2(19, 17), new IntVector2(19, 17), new IntVector2(19, 17), }, AnimateBullet.ConstructListOfSameValues(true, 4), AnimateBullet.ConstructListOfSameValues(tk2dBaseSprite.Anchor.MiddleCenter, 4), AnimateBullet.ConstructListOfSameValues(true, 4), AnimateBullet.ConstructListOfSameValues(false, 4), AnimateBullet.ConstructListOfSameValues <Vector3?>(null, 4), AnimateBullet.ConstructListOfSameValues <IntVector2?>(new IntVector2(9, 9), 4), AnimateBullet.ConstructListOfSameValues <IntVector2?>(new IntVector2(5, 3), 4), AnimateBullet.ConstructListOfSameValues <Projectile>(null, 4)); }
public static void Init() { string name = "Lil Munchy"; string resourcePath = "NevernamedsItems/Resources/Companions/LilMunchy/lilmunchy_icon"; GameObject gameObject = new GameObject(); CompanionItem companionItem = gameObject.AddComponent <CompanionItem>(); ItemBuilder.AddSpriteToObject(name, resourcePath, gameObject); string shortDesc = "Hungry Hungry"; string longDesc = "A juvenile muncher that hasn't yet found a suitable generic dungeon room in which to take root." + "\n\nHe has an endless appetite!"; companionItem.SetupItem(shortDesc, longDesc, "nn"); companionItem.quality = PickupObject.ItemQuality.C; companionItem.CompanionGuid = LilMunchy.guid; LilMunchy.BuildPrefab(); }
public static void Init() { string name = "Gusty"; string resourcePath = "NevernamedsItems/Resources/Companions/Gusty/gusty_icon"; GameObject gameObject = new GameObject(); CompanionItem companionItem = gameObject.AddComponent <CompanionItem>(); ItemBuilder.AddSpriteToObject(name, resourcePath, gameObject); string shortDesc = "Windbag"; string longDesc = "Plomphs around, and doesn't let anyone get in his way." + "\n\nStore in a cool, dry place."; companionItem.SetupItem(shortDesc, longDesc, "nn"); companionItem.quality = PickupObject.ItemQuality.D; companionItem.CompanionGuid = Gusty.guid; Gusty.BuildPrefab(); }
// Token: 0x0600009D RID: 157 RVA: 0x00006538 File Offset: 0x00004738 public static void Init() { string name = "Baby Good Chance Kin"; string resourcePath = "NevernamedsItems/Resources/babygoodchancekin_icon"; GameObject gameObject = new GameObject(); CompanionItem companionItem = gameObject.AddComponent <CompanionItem>(); ItemBuilder.AddSpriteToObject(name, resourcePath, gameObject); string shortDesc = "Confused Friend"; string longDesc = "Can spawn supplies whenever the person they follow suffers damage." + "\n\nThis cute little lad is unable to look directly in front of himself, but in spite of this predicament he is eager to help you on your journey."; companionItem.SetupItem(shortDesc, longDesc, "nn"); companionItem.quality = PickupObject.ItemQuality.C; companionItem.CompanionGuid = BabyGoodChanceKin.guid; BabyGoodChanceKin.BuildPrefab(); }
public static void Init() { string name = "Angry Spirit"; string resourcePath = "NevernamedsItems/Resources/Companions/AngrySpirit/angryspirit_icon"; GameObject gameObject = new GameObject(); CompanionItem companionItem = gameObject.AddComponent <CompanionItem>(); ItemBuilder.AddSpriteToObject(name, resourcePath, gameObject); string shortDesc = "Furious Friend"; string longDesc = "Aches to kill, but cannot generate it's own bullets, merely copying the firepower of it's owner." + "\n\nDon't let him in."; companionItem.SetupItem(shortDesc, longDesc, "nn"); companionItem.quality = PickupObject.ItemQuality.B; companionItem.CompanionGuid = AngrySpirit.guid; AngrySpirit.BuildPrefab(); companionItem.AddToSubShop(ItemBuilder.ShopType.Cursula); }
public static void Init() { string name = "Baby Good Det"; string resourcePath = "NevernamedsItems/Resources/Companions/BabyGoodDet/babygooddet_icon"; GameObject gameObject = new GameObject(); CompanionItem companionItem = gameObject.AddComponent <CompanionItem>(); ItemBuilder.AddSpriteToObject(name, resourcePath, gameObject); string shortDesc = "Laserbrained"; string longDesc = "A scale model Det, constructed as part of some asinine Gundead school project." + "\n\nFires powerful lasers, but can have a hard time hitting her target."; companionItem.SetupItem(shortDesc, longDesc, "nn"); companionItem.quality = PickupObject.ItemQuality.C; companionItem.CompanionGuid = BabyGoodDet.guid; BabyGoodDet.BuildPrefab(); companionItem.SetupUnlockOnCustomFlag(CustomDungeonFlags.PURCHASED_BABYGOODDET, true); companionItem.AddItemToDougMetaShop(50); }
public static void Init() { string name = "Scroll of Exact Knowledge"; string resourcePath = "NevernamedsItems/Resources/Companions/ScrollOfExactKnowledge/scrollofexactknowledge_icon"; GameObject gameObject = new GameObject(); CompanionItem companionItem = gameObject.AddComponent <ScrollOfExactKnowledge>(); ItemBuilder.AddSpriteToObject(name, resourcePath, gameObject); string shortDesc = "Nerd"; string longDesc = "Offers useful information on the Gungeon around you." + "\n\nSeems to have a fear of being alone, and enjoys company."; companionItem.SetupItem(shortDesc, longDesc, "nn"); companionItem.quality = PickupObject.ItemQuality.C; companionItem.CompanionGuid = ScrollOfExactKnowledge.guid; ScrollOfExactKnowledge.BuildPrefab(); ScrollOfExactKnowledgeID = companionItem.PickupObjectId; companionItem.SetupUnlockOnCustomFlag(CustomDungeonFlags.ALLJAMMED_BEATEN_OFFICE, true); ChestToolbox.OnChestPostSpawn += ScrollOfExactKnowledge.OnChestSpawned; }
private void ShowEditItem() { mSelectedItemIndex = EditorGUILayout.Popup("Item: ", mSelectedItemIndex, mItemOptions); InventoryItem nextItem = ItemList[mSelectedItemIndex]; if (nextItem != mSelectedItem) { // clear the sprite so it will be reloaded mSelectedItemSprite = null; mSelectedItem = ItemList[mSelectedItemIndex]; } System.Type currentType = mSelectedItem.GetType(); #region Consumables if (currentType == typeof(HPRecover)) { HPRecover item = (HPRecover)mSelectedItem; ShowEditItemBase(item); // recovery item.Amount = EditorGUILayout.IntField("Amount: ", Mathf.Clamp(item.Amount, 0, 999)); } //if (currentType == typeof(RecoveryItem)) //{ // RecoveryItem item = (RecoveryItem)mSelectedItem; // ShowEditItemBase(item); // // recovery // item.ConsumableStatType = (Enums.eConsumableStatType)EditorGUILayout.EnumPopup("Stat Type: ", item.ConsumableStatType); // item.Amount = EditorGUILayout.IntField("Amount: ", Mathf.Clamp(item.Amount, 0, 999)); //} //else if (currentType == typeof(StatUpgradeItem)) //{ // StatUpgradeItem item = (StatUpgradeItem)mSelectedItem; // ShowEditItemBase(item); // // stat upgrade // item.StatType = (Enums.eStatType)EditorGUILayout.EnumPopup("Boost Stat: ", item.StatType); // item.Amount = EditorGUILayout.IntField("Amount: ", Mathf.Clamp(item.Amount, 0, 999)); //} //else if (currentType == typeof(StatusEffectItem)) //{ // StatusEffectItem item = (StatusEffectItem)mSelectedItem; // ShowEditItemBase(item); // // status effect // item.Effect = (Enums.eStatusEffect)EditorGUILayout.EnumPopup("Effect: ", item.Effect); //} //else if (currentType == typeof(WeaponUpgradeItem)) //{ // WeaponUpgradeItem item = (WeaponUpgradeItem)mSelectedItem; // ShowEditItemBase(item); // // weapon upgrade // item.Amount = EditorGUILayout.IntField("Amount: ", Mathf.Clamp(item.Amount, 0, 999)); //} //else if (currentType == typeof(CharacterSupportItem)) //{ // // TODO //} #endregion #region Companions else if (currentType == typeof(CompanionItem)) { CompanionItem item = (CompanionItem)mSelectedItem; ShowEditItemBase(item); ShowEditEquippableBase(item); // companion } #endregion #region Stat Boosts else if (currentType == typeof(StatBoostItem)) { StatBoostItem item = (StatBoostItem)mSelectedItem; ShowEditItemBase(item); ShowEditEquippableBase(item); // stat boost item.StatType = (Enums.eStatType)EditorGUILayout.EnumPopup("Stat: ", item.StatType); item.Amount = EditorGUILayout.IntField("Amount: ", Mathf.Clamp(item.Amount, 0, 999)); } else if (currentType == typeof(LongTermEffectItem)) { LongTermEffectItem item = (LongTermEffectItem)mSelectedItem; ShowEditItemBase(item); ShowEditEquippableBase(item); // long term effect item.EffectType = (Enums.eLongTermEffectType)EditorGUILayout.EnumPopup("Effect: ", item.EffectType); item.Delay = EditorGUILayout.FloatField("Interval: ", Mathf.Clamp(item.Delay, 0, 10)); item.Amount = EditorGUILayout.IntField("Amount: ", Mathf.Clamp(item.Amount, 0, 999)); } else if (currentType == typeof(ResistItem)) { ResistItem item = (ResistItem)mSelectedItem; ShowEditItemBase(item); ShowEditEquippableBase(item); // resist item.Effect = (Enums.eStatusEffect)EditorGUILayout.EnumPopup("Effect: ", item.Effect); item.Percent = EditorGUILayout.FloatField("Percent: ", Mathf.Clamp(item.Percent, 0, 100)); } #endregion #region Armours else if (currentType == typeof(HeadArmourItem)) { HeadArmourItem item = (HeadArmourItem)mSelectedItem; ShowEditItemBase(item); ShowEditEquippableBase(item); // head armour } else if (currentType == typeof(BodyArmourItem)) { BodyArmourItem item = (BodyArmourItem)mSelectedItem; ShowEditItemBase(item); ShowEditEquippableBase(item); // body armour item.Slots = EditorGUILayout.IntField("# Slots: ", Mathf.Clamp(item.Slots, 0, 5)); } else if (currentType == typeof(ArmArmourItem)) { ArmArmourItem item = (ArmArmourItem)mSelectedItem; ShowEditItemBase(item); ShowEditEquippableBase(item); // arm armour } #endregion #region Weapons else if (currentType == typeof(MeleeWeaponItem)) { MeleeWeaponItem item = (MeleeWeaponItem)mSelectedItem; ShowEditItemBase(item); ShowEditEquippableBase(item); // melee weapon item.TwoHanded = EditorGUILayout.Toggle("Two Handed?: ", item.TwoHanded); } else if (currentType == typeof(RangedWeaponItem)) { RangedWeaponItem item = (RangedWeaponItem)mSelectedItem; ShowEditItemBase(item); ShowEditEquippableBase(item); // ranged weapon item.Range = EditorGUILayout.FloatField("Range: ", Mathf.Clamp(item.Range, 0, 99)); } else if (currentType == typeof(MagicWeaponItem)) { MagicWeaponItem item = (MagicWeaponItem)mSelectedItem; ShowEditItemBase(item); ShowEditEquippableBase(item); // magic weapon item.FocusType = (Enums.eMagicFocusType)EditorGUILayout.EnumPopup("Focus: ", item.FocusType); item.MagicType = (Enums.eMagicType)EditorGUILayout.EnumPopup("Type: ", item.MagicType); item.Radius = EditorGUILayout.FloatField("Radius: ", Mathf.Clamp(item.Radius, 0, 99)); item.MagicEffect = (Enums.eStatusEffect)EditorGUILayout.EnumPopup("Effect: ", item.MagicEffect); item.MPCost = EditorGUILayout.IntField("Cost: ", Mathf.Clamp(item.MPCost, 0, 999)); } #endregion if (GUILayout.Button("Delete Item")) { mConfirmPopup = ConfirmPopup.Create(); mConfirmPopup.OnResultClicked += OnPopupClosed; mConfirmPopup.SetMessage("Are you sure you'd like to delete this item?"); } if (GUILayout.Button("Update")) { Save(); } }
private void CreateItem() { //System.Type currentType = mCurrentItem.GetType(); System.Type currentType = mCurrentCreateType.GetType(); // fill in required fields #region Consumables if (currentType == typeof(HPRecover)) { HPRecover item = new HPRecover(itemID); item.Amount = recoveryAmount; SetItemBase(item); ItemList.Add(item); } //if (currentType == typeof(RecoveryItem)) //{ // RecoveryItem item = new RecoveryItem(itemID); // item.ConsumableStatType = newRecoveryStatType; // item.Amount = recoveryAmount; // SetItemBase(item); // ItemList.Add(item); //} //else if (currentType == typeof(StatUpgradeItem)) //{ // StatUpgradeItem item = new StatUpgradeItem(itemID); // item.StatType = newStatType; // item.Amount = statBoostAmount; // SetItemBase(item); // ItemList.Add(item); //} //else if (currentType == typeof(StatusEffectItem)) //{ // StatusEffectItem item = new StatusEffectItem(itemID); // item.Effect = newEffectType; // SetItemBase(item); // ItemList.Add(item); //} //else if (currentType == typeof(WeaponUpgradeItem)) //{ // WeaponUpgradeItem item = new WeaponUpgradeItem(itemID); // item.Amount = weaponUpgradeAmount; // SetItemBase(item); // ItemList.Add(item); //} //else if (currentType == typeof(CharacterSupportItem)) //{ // // TODO //} #endregion #region Companions else if (currentType == typeof(CompanionItem)) { CompanionItem item = new CompanionItem(itemID); SetItemBase(item); SetEquippableBase(item); ItemList.Add(item); } #endregion #region Stat Boosts else if (currentType == typeof(StatBoostItem)) { StatBoostItem item = new StatBoostItem(itemID); item.Stat = StatToBoost; item.Amount = BoostAmount; SetItemBase(item); SetEquippableBase(item); ItemList.Add(item); } else if (currentType == typeof(LongTermEffectItem)) { LongTermEffectItem item = new LongTermEffectItem(itemID); item.EffectType = LongTermEffect; item.Delay = LongTermDelay; item.Amount = LongTermAmount; SetItemBase(item); SetEquippableBase(item); ItemList.Add(item); } else if (currentType == typeof(ResistItem)) { ResistItem item = new ResistItem(itemID); item.Effect = ResistEffect; item.Percent = ResistPercent; SetItemBase(item); SetEquippableBase(item); ItemList.Add(item); } #endregion #region Armours else if (currentType == typeof(HeadArmourItem)) { HeadArmourItem item = new HeadArmourItem(itemID); SetItemBase(item); SetEquippableBase(item); ItemList.Add(item); } else if (currentType == typeof(BodyArmourItem)) { BodyArmourItem item = new BodyArmourItem(itemID); item.Slots = BodySlots; SetItemBase(item); SetEquippableBase(item); ItemList.Add(item); } else if (currentType == typeof(ArmArmourItem)) { ArmArmourItem item = new ArmArmourItem(itemID); SetItemBase(item); SetEquippableBase(item); ItemList.Add(item); } #endregion #region Weapons else if (currentType == typeof(MeleeWeaponItem)) { MeleeWeaponItem item = new MeleeWeaponItem(itemID); item.TwoHanded = MeleeTwoHanded; SetItemBase(item); SetEquippableBase(item); ItemList.Add(item); } else if (currentType == typeof(RangedWeaponItem)) { RangedWeaponItem item = new RangedWeaponItem(itemID); item.Range = Range; SetItemBase(item); SetEquippableBase(item); ItemList.Add(item); } else if (currentType == typeof(MagicWeaponItem)) { MagicWeaponItem item = new MagicWeaponItem(itemID); item.FocusType = MagicFocusType; item.MagicType = MagicType; item.Radius = MagicRadius; item.MagicEffect = MagicEffect; item.MPCost = MagicCost; SetItemBase(item); SetEquippableBase(item); ItemList.Add(item); } #endregion itemID += 1; Reset(); }