Пример #1
0
        public static GameObject BuildPrefab()
        {
            var bomb = SpriteBuilder.SpriteFromResource("NevernamedsItems/Resources/ThrowableActives/lvl2molotov_spin_001.png", new GameObject("Lvl2Molotov"));

            bomb.SetActive(false);
            FakePrefab.MarkAsFakePrefab(bomb);

            var animator   = bomb.AddComponent <tk2dSpriteAnimator>();
            var collection = (PickupObjectDatabase.GetById(108) as SpawnObjectPlayerItem).objectToSpawn.GetComponent <tk2dSpriteAnimator>().Library.clips[0].frames[0].spriteCollection;

            //DEPLOYMENT
            var deployAnimation = SpriteBuilder.AddAnimation(animator, collection, new List <int>
            {
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/lvl2molotov_spin_004.png", collection),
            }, "lvl2mol_throw", tk2dSpriteAnimationClip.WrapMode.Once);

            deployAnimation.fps = 12;
            foreach (var frame in deployAnimation.frames)
            {
                frame.eventLerpEmissiveTime  = 0.5f;
                frame.eventLerpEmissivePower = 30f;
            }

            var explodeAnimation = SpriteBuilder.AddAnimation(animator, collection, new List <int>
            {
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/lvl2molotov_burst_001.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/lvl2molotov_burst_002.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/lvl2molotov_burst_003.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/lvl2molotov_burst_004.png", collection),
            }, "lvl2mol_burst", tk2dSpriteAnimationClip.WrapMode.Once);

            explodeAnimation.fps = 16;
            foreach (var frame in explodeAnimation.frames)
            {
                frame.eventLerpEmissiveTime  = 0.5f;
                frame.eventLerpEmissivePower = 30f;
            }

            var armedAnimation = SpriteBuilder.AddAnimation(animator, collection, new List <int>
            {
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/lvl2molotov_spin_001.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/lvl2molotov_spin_002.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/lvl2molotov_spin_003.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/lvl2molotov_spin_004.png", collection),
            }, "lvl2mol_default", tk2dSpriteAnimationClip.WrapMode.LoopSection);

            armedAnimation.fps       = 10.0f;
            armedAnimation.loopStart = 0;
            foreach (var frame in armedAnimation.frames)
            {
                frame.eventLerpEmissiveTime  = 0.5f;
                frame.eventLerpEmissivePower = 30f;
            }

            CustomThrowableObject throwable = new CustomThrowableObject
            {
                doEffectOnHitGround  = true,
                OnThrownAnimation    = "lvl2mol_throw",
                OnHitGroundAnimation = "lvl2mol_burst",
                DefaultAnim          = "lvl2mol_default",
                destroyOnHitGround   = false,
                thrownSoundEffect    = "Play_OBJ_item_throw_01",
                effectSoundEffect    = "Play_OBJ_glassbottle_shatter_01",
            };

            bomb.AddComponent <CustomThrowableObject>(throwable);
            bomb.AddComponent <LvL2MolotovEffect>();
            return(bomb);
        }
Пример #2
0
        public static GameObject BuildPrefab()
        {
            var bomb = SpriteBuilder.SpriteFromResource("NevernamedsItems/Resources/ThrowableActives/dicegrenade_primed_001.png", new GameObject("DiceBomb"));

            bomb.SetActive(false);
            FakePrefab.MarkAsFakePrefab(bomb);

            var animator   = bomb.AddComponent <tk2dSpriteAnimator>();
            var collection = (PickupObjectDatabase.GetById(108) as SpawnObjectPlayerItem).objectToSpawn.GetComponent <tk2dSpriteAnimator>().Library.clips[0].frames[0].spriteCollection;

            //DEPLOYMENT
            var deployAnimation = SpriteBuilder.AddAnimation(animator, collection, new List <int>
            {
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/dicegrenade_throw_001.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/dicegrenade_throw_002.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/dicegrenade_throw_003.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/dicegrenade_throw_004.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/dicegrenade_throw_005.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/dicegrenade_throw_006.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/dicegrenade_throw_007.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/dicegrenade_throw_008.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/dicegrenade_throw_009.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/dicegrenade_throw_010.png", collection),
            }, "dicebomb_thrown", tk2dSpriteAnimationClip.WrapMode.Once);

            deployAnimation.fps = 20; //Dice bomb takes 1 second to explode, so I set this to double the amount of frames in the animation to make sure this animation takes half the time to play.
            foreach (var frame in deployAnimation.frames)
            {
                frame.eventLerpEmissiveTime  = 0.5f;
                frame.eventLerpEmissivePower = 30f;
            }

            var explodeAnimation = SpriteBuilder.AddAnimation(animator, collection, new List <int>
            {
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/dicegrenade_explode_001.png", collection),
            }, "dicebomb_explode", tk2dSpriteAnimationClip.WrapMode.Once);

            explodeAnimation.fps = 16;
            foreach (var frame in explodeAnimation.frames)
            {
                frame.eventLerpEmissiveTime  = 0.5f;
                frame.eventLerpEmissivePower = 30f;
            }

            var armedAnimation = SpriteBuilder.AddAnimation(animator, collection, new List <int>
            {
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/dicegrenade_primed_001.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/dicegrenade_primed_002.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/dicegrenade_primed_003.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/dicegrenade_primed_004.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/dicegrenade_primed_005.png", collection),
                SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/ThrowableActives/dicegrenade_primed_006.png", collection),
            }, "dicebomb_primed", tk2dSpriteAnimationClip.WrapMode.LoopSection);

            armedAnimation.fps       = 12f;
            armedAnimation.loopStart = 4;
            foreach (var frame in armedAnimation.frames)
            {
                frame.eventLerpEmissiveTime  = 0.5f;
                frame.eventLerpEmissivePower = 30f;
            }

            CustomThrowableObject throwable = new CustomThrowableObject
            {
                OnThrownAnimation   = "dicebomb_thrown",
                DefaultAnim         = "dicebomb_primed",
                OnEffectAnim        = "dicebomb_explode",
                thrownSoundEffect   = "Play_OBJ_item_throw_01",
                destroyOnHitGround  = false,
                doEffectOnHitGround = false,
                doEffectAfterTime   = true,
                timeTillEffect      = 1f
            };

            bomb.AddComponent <CustomThrowableObject>(throwable);
            bomb.AddComponent <DiceGrenadeEffect>();
            return(bomb);
        }