コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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
                );
        }
コード例 #3
0
    private void ShowCompanions()
    {
        ShowEquippables();

        GUILayout.Label("> Companions", EditorStyles.boldLabel);
        CompanionItem companion = (CompanionItem)mCurrentCreateType;
        // no fields currently

        //if (mCurrentItem.GetType() != typeof(CompanionItem))
        //{
        //    mCurrentItem = new CompanionItem();
        //}
    }
コード例 #4
0
        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));
        }
コード例 #5
0
        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();
        }
コード例 #6
0
        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();
        }
コード例 #7
0
        // 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();
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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;
        }
コード例 #11
0
    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();
        }
    }
コード例 #12
0
    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();
    }