Пример #1
0
        public WorldSong(TLoZPlayer player, Song song, SongVariant variant)
        {
            Player = player;

            Song    = song;
            Variant = variant;

            Path     = Song.GetPath(Variant);
            Duration = Song.GetDuration(Variant);
        }
Пример #2
0
        public void Play(TLoZPlayer tlozPlayer, SongVariant variant)
        {
            //Main.PlaySound(Mod.GetSoundSlot(SoundType.Music, ))
            ModContent.GetInstance <TLoZWorld>().PlaySong(tlozPlayer, this, variant);

            Vector2 playerPosition = tlozPlayer.player.position;

            CombatText.NewText(new Rectangle((int)playerPosition.X, (int)playerPosition.Y, tlozPlayer.player.width, tlozPlayer.player.height), Color.PaleVioletRed, DisplayName);

            OnPlay(tlozPlayer, variant);
        }
Пример #3
0
        public override void PostPlay(TLoZPlayer tlozPlayer, SongVariant variant)
        {
            Mount mount = new Mount();

            if (!mount.CanMount(MountID.Unicorn, tlozPlayer.player))
            {
                return;
            }

            mount.SetMount(MountID.Unicorn, tlozPlayer.player);
            //tlozPlayer.player.mount = mount;
        }
Пример #4
0
        public bool TryPlay(TLoZPlayer tlozPlayer, SongVariant variant = SongVariant.Normal)
        {
            if (ModContent.GetInstance <TLoZWorld>().IsSongPlaying)
            {
                Main.NewText("There is already a song playing in the world!");
                return(false);
            }

            if (!CanPlay(tlozPlayer))
            {
                return(false);
            }

            Play(tlozPlayer, variant);
            return(true);
        }
Пример #5
0
        public override void OnPlay(TLoZPlayer tlozPlayer, SongVariant variant)
        {
            for (int i = 0; i < Main.player.Length; i++)
            {
                Player player = Main.player[i];

                if (!player.active || player.dead)
                {
                    return;
                }

                for (int j = 0; j < player.CountBuffs(); j++)
                {
                    int buffType = player.buffType[j];

                    if (Main.debuff[buffType] && BuffLoader.CanBeCleared(buffType))
                    {
                        player.ClearBuff(buffType);
                    }
                }
            }
        }
Пример #6
0
 public override void PostPlay(TLoZPlayer tlozPlayer, SongVariant variant)
 {
     tlozPlayer.InvertedSongOfSoaringPosition = tlozPlayer.player.position;
 }
Пример #7
0
 public override void OnPlay(TLoZPlayer tlozPlayer, SongVariant variant)
 {
     ModContent.GetInstance <TLoZWorld>().ToggleInvertedSongOfTime();
 }
Пример #8
0
 public virtual void PostPlay(TLoZPlayer tlozPlayer, SongVariant variant)
 {
 }
Пример #9
0
 public int GetDuration(SongVariant variant) => variant == SongVariant.Normal ? NormalDuration : FullDuration;
Пример #10
0
 public string GetPath(SongVariant variant) => variant == SongVariant.Normal ? NormalSongPath : FullSongPath;
Пример #11
0
 public override void PostPlay(TLoZPlayer tlozPlayer, SongVariant variant)
 {
     tlozPlayer.player.Teleport(tlozPlayer.InvertedSongOfSoaringPosition, 4);
     tlozPlayer.InvertedSongOfSoaringPosition = default;
 }
Пример #12
0
 public override void OnPlay(TLoZPlayer tlozPlayer, SongVariant variant)
 {
 }
Пример #13
0
 public void PlaySong(TLoZPlayer player, Song song, SongVariant variant)
 {
     CurrentSong     = new WorldSong(player, song, variant);
     TicksLeftOnSong = song.GetDuration(variant);
 }