private void Init()
        {
            this.Alpha = 0f;

            effectRecycler = new ManagedRecycler <JudgementEffect>(CreateEffect);

            effectHolder = CreateChild("effect-holder", 0);
            {
                effectHolder.Size = Vector2.zero;

                effectRecycler.Precook(6);
            }
            hitBarSprite = CreateChild <UguiSprite>("bar", 1);
            {
                hitBarSprite.Anchor = AnchorType.MiddleStretch;
                hitBarSprite.SetOffsetHorizontal(0f);
                hitBarSprite.SpriteName = "glow-bar";
                hitBarSprite.Y          = 0f;
                hitBarSprite.ImageType  = Image.Type.Sliced;
                hitBarSprite.Alpha      = 0.5f;
            }

            holdAni = new Anime();
            holdAni.AnimateFloat(a => hitBarSprite.Alpha = a)
            .AddTime(0f, () => hitBarSprite.Alpha)
            .AddTime(0.1f, 1f)
            .Build();

            releaseAni = new Anime();
            releaseAni.AnimateFloat(a => hitBarSprite.Alpha = a)
            .AddTime(0f, () => hitBarSprite.Alpha)
            .AddTime(0.1f, 0.5f)
            .Build();
        }
Exemple #2
0
        private void Init()
        {
            canvasGroup = RawObject.AddComponent <CanvasGroup>();

            notificationList = CreateChild <NotificationList>("notification-list");
            {
                notificationList.Anchor = AnchorType.Fill;
                notificationList.Offset = Offset.Zero;
                notificationList.Scope  = NotificationScope.Temporary;

                notificationList.OnDismiss += OnDismissed;
            }

            showAni = new Anime();
            showAni.AddEvent(0f, () => Active           = true);
            showAni.AnimateFloat(a => canvasGroup.alpha = a)
            .AddTime(0f, () => canvasGroup.alpha)
            .AddTime(0.25f, 1f)
            .Build();

            hideAni = new Anime();
            hideAni.AnimateFloat(a => canvasGroup.alpha = a)
            .AddTime(0f, () => canvasGroup.alpha)
            .AddTime(0.25f, 1f)
            .Build();
            hideAni.AddEvent(hideAni.Duration, () => Active = false);

            OnEnableInited();
        }
Exemple #3
0
 /// <summary>
 /// Instantiate the anime list
 /// </summary>
 private AnimeList(IAnime client)
 {
     _entries  = new List <Anime>();
     _queue    = new List <Anime>();
     _client   = client;
     _filePath = ResolveFilePath(client);
 }
Exemple #4
0
        private void Init()
        {
            fpsDisplayer = CreateChild <FpsDisplayer>("fps-displayer", 100);
            {
                fpsDisplayer.Anchor   = AnchorType.BottomRight;
                fpsDisplayer.Pivot    = PivotType.BottomRight;
                fpsDisplayer.Position = new Vector3(-DisplayerPadding, DisplayerPadding);
                fpsDisplayer.Size     = new Vector2(170f, 30f);
            }
            messageDisplayer = CreateChild <NotificationDisplayer>("message-displayer", 1);
            {
                messageDisplayer.Anchor   = AnchorType.TopRight;
                messageDisplayer.Pivot    = PivotType.Right;
                messageDisplayer.Position = new Vector3(-DisplayerPadding, -DisplayerPadding);
                messageDisplayer.Size     = new Vector2(320f, 0f);
            }

            menubarShowAni = new Anime();
            menubarShowAni.AnimateFloat(y => messageDisplayer.Y = y)
            .AddTime(0f, () => messageDisplayer.Y)
            .AddTime(0.25f, () => - DisplayerPadding - MenuBarHeight)
            .Build();

            menubarHideAni = new Anime();
            menubarHideAni.AnimateFloat(y => messageDisplayer.Y = y)
            .AddTime(0f, () => messageDisplayer.Y)
            .AddTime(0.25f, () => - DisplayerPadding)
            .Build();

            OnEnableInited();
        }
Exemple #5
0
        /// <summary>
        /// Load the list and initialize it.
        /// </summary>
        /// <param name="client">The API client to use</param>
        /// <returns></returns>
        public static AnimeList Load(IAnime client)
        {
            AnimeList list = null;

            try {
                var f  = new BinaryFormatter();
                var fs = new FileStream(ResolveFilePath(client), FileMode.Open, FileAccess.Read, FileShare.Read);
                var t  = (AnimeList)f.Deserialize(fs);
                fs.Close();
                t._client = client;
                list      = t;
                Task.Run(() => t.Sync());
                return(list);
            }
            catch (IOException) {
                list = new AnimeList(client);
                list.Sync().Wait();
                return(list);
            }
            catch (ApiRequestException) {
                Debug.WriteLine("Anime List sync failed.");
                if (list == null)
                {
                    throw;
                }
                return(list);
            }
        }
        private void Init(IRootMain rootMain)
        {
            Dependencies.Cache(this);

            infoContainer = CreateChild <InfoContainer>("info", 0);
            {
                infoContainer.Anchor   = AnchorType.BottomStretch;
                infoContainer.Pivot    = PivotType.Top;
                infoContainer.RawWidth = 0f;
                infoContainer.Height   = Mathf.Min(infoContainer.FullDetailHeight, rootMain.Resolution.y - InfoDetailedYDiff);
                infoContainer.Y        = InfoBriefY;
            }
            versionContainer = CreateChild <VersionContainer>("version", 1);
            {
                versionContainer.Anchor   = AnchorType.TopStretch;
                versionContainer.Pivot    = PivotType.Top;
                versionContainer.RawWidth = 0;
                versionContainer.Y        = 0f;
                versionContainer.Height   = 160f;
            }

            infoDetailAni = new Anime();
            infoDetailAni.AnimateFloat(y => infoContainer.Y = y)
            .AddTime(0f, () => infoContainer.Y)
            .AddTime(0.25f, infoContainer.Height)
            .Build();

            infoBriefAni = new Anime();
            infoBriefAni.AnimateFloat(y => infoContainer.Y = y)
            .AddTime(0f, () => infoContainer.Y)
            .AddTime(0.25f, InfoBriefY)
            .Build();

            OnEnableInited();
        }
 public static string Calculate(IAnime anime, DateTime today)
 {
     return
         CalculateWithAiringDates(anime, today) ??
         CalculateWithYear(anime, today) ??
         Unknown;
 }
        private void Init()
        {
            glowSprite = CreateChild <UguiSprite>("glow");
            {
                glowSprite.Size            = new Vector2(BaseSize + GlowSizeOffset, BaseSize + GlowSizeOffset);
                glowSprite.SpriteName      = "glow-square-32";
                glowSprite.ImageType       = Image.Type.Sliced;
                glowSprite.Color           = ColorPreset.SecondaryFocus;
                glowSprite.RotationZ       = 45f;
                glowSprite.IsRaycastTarget = false;
            }
            fillSprite = CreateChild <UguiSprite>("fill");
            {
                fillSprite.Anchor          = AnchorType.Fill;
                fillSprite.Offset          = Offset.Zero;
                fillSprite.Color           = ColorPreset.SecondaryFocus;
                fillSprite.RotationZ       = 45f;
                fillSprite.IsRaycastTarget = false;

                fillSprite.AddEffect(new AdditiveShaderEffect());
            }

            showAni = new Anime();
            showAni.AnimateFloat((alpha) => glowSprite.Alpha = alpha)
            .AddTime(0f, 0f)
            .AddTime(0.05f, 0f, EaseType.QuadEaseOut)
            .AddTime(0.15f, 1f)
            .Build();
            showAni.AnimateFloat((alpha) => fillSprite.Alpha = alpha)
            .AddTime(0f, 0.85f, EaseType.QuadEaseOut)
            .AddTime(0.15f, 0.25f)
            .Build();
            showAni.AnimateVector2((size) => fillSprite.Size = size)
            .AddTime(0f, new Vector2(BaseSize + ShowShrinkSize, BaseSize + ShowShrinkSize), EaseType.CubicEaseOut)
            .AddTime(0.15f, new Vector2(BaseSize, BaseSize))
            .Build();
            showAni.AddEvent(showAni.Duration, () => repeatAni.PlayFromStart());

            hideAni = new Anime();
            hideAni.AddEvent(0f, () => repeatAni.Pause());
            hideAni.AnimateFloat((alpha) => glowSprite.Alpha = alpha)
            .AddTime(0f, () => glowSprite.Alpha)
            .AddTime(0.25f, 0f)
            .Build();
            hideAni.AnimateFloat((alpha) => fillSprite.Alpha = alpha)
            .AddTime(0f, () => fillSprite.Alpha)
            .AddTime(0.25f, 0f)
            .Build();
            hideAni.AddEvent(hideAni.Duration, () => Recycler.Return(this));

            repeatAni = new Anime()
            {
                WrapMode = WrapModeType.Loop,
            };
            repeatAni.AnimateFloat((alpha) => fillSprite.Alpha = alpha)
            .AddTime(0f, 0.25f, EaseType.QuadEaseOut)
            .AddTime(0.4f, 0.75f, EaseType.QuadEaseIn)
            .AddTime(0.8f, 0.25f)
            .Build();
        }
        private void Init()
        {
            startupAnime = new Anime();
            startupAnime.AnimateColor((color) => this.Glow.Color = color)
            .AddTime(0f, new Color(1f, 1f, 1f, 0f), EaseType.QuadEaseOut)
            .AddTime(0.1f, new Color(1f, 1f, 1f, 1f), EaseType.QuadEaseIn)
            .AddTime(1f, new Color(0f, 0f, 0f, 1f))
            .Build();
            startupAnime.AnimateColor((color) => this.Outer.Color = color)
            .AddTime(0f, new Color(1f, 1f, 1f, 0f), EaseType.QuadEaseOut)
            .AddTime(0.1f, new Color(1f, 1f, 1f, 1f), EaseType.QuadEaseIn)
            .AddTime(1f, new Color(0.25f, 0.25f, 0.25f, 1f))
            .Build();
            startupAnime.AnimateColor((color) => this.Inner.Color = color)
            .AddTime(0.1f, new Color(1f, 1f, 1f, 0f), EaseType.QuadEaseIn)
            .AddTime(1f, new Color(0.25f, 0.25f, 0.25f, 1f))
            .Build();
            startupAnime.AnimateColor((color) => this.Title.Color = color)
            .AddTime(0.5f, new Color(), EaseType.QuartEaseIn)
            .AddTime(1f, new Color(0.75f, 0.75f, 0.75f, 1f))
            .Build();
            startupAnime.AddEvent(startupAnime.Duration, () => OnStartup?.Invoke());

            breatheAnime          = new Anime();
            breatheAnime.WrapMode = WrapModeType.Loop;
            breatheAnime.AnimateColor((color) => this.Glow.Color = color)
            .AddTime(0f, Color.black, EaseType.SineEaseOut)
            .AddTime(1.1f, Color.gray, EaseType.SineEaseIn)
            .AddTime(2.2f, Color.black)
            .Build();
            breatheAnime.AnimateColor((color) => this.Title.Color = color)
            .AddTime(0f, new Color(0.75f, 0.75f, 0.75f, 1f), EaseType.SineEaseOut)
            .AddTime(1.1f, Color.white, EaseType.SineEaseIn)
            .AddTime(2.2f, new Color(0.75f, 0.75f, 0.75f, 1f))
            .Build();

            endAnime = new Anime();
            endAnime.AnimateColor((color) => this.Glow.Color = color)
            .AddTime(0f, () => this.Glow.Color, EaseType.QuartEaseIn)
            .AddTime(1.5f, Color.white)
            .Build();
            endAnime.AnimateColor((color) => this.Outer.Color = color)
            .AddTime(0f, () => this.Outer.Color, EaseType.QuartEaseIn)
            .AddTime(1.5f, Color.white)
            .Build();
            endAnime.AnimateColor((color) => this.Inner.Color = color)
            .AddTime(0f, () => this.Inner.Color, EaseType.QuartEaseIn)
            .AddTime(1.5f, Color.white)
            .Build();
            endAnime.AnimateColor((color) => this.Title.Color = color)
            .AddTime(0f, () => this.Title.Color, EaseType.QuartEaseIn)
            .AddTime(1.5f, Color.white)
            .Build();
            endAnime.AnimateVector3((scale) => this.Scale = scale)
            .AddTime(0f, Vector3.one, EaseType.SineEaseOut)
            .AddTime(1.5f, new Vector3(1.1f, 1.1f, 1.1f))
            .Build();
            endAnime.AddEvent(endAnime.Duration, () => OnEnd?.Invoke());
        }
        private void Init()
        {
            Anchor  = AnchorType.Fill;
            RawSize = Vector2.zero;

            // Create animations.
            ShowAnime = CreateShowAnime(Dependencies);
            HideAnime = CreateHideAnime(Dependencies);
        }
        private void Init()
        {
            Alpha = 0.0625f;

            loaderIcon = CreateChild <LoaderIcon>("loader");
            {
                loaderIcon.Position = Vector3.zero;
                loaderIcon.Size     = new Vector2(32f, 32f);
            }
            tabDisplay = CreateChild <RankingTabDisplay>("tab");
            {
                tabDisplay.Anchor   = AnchorType.TopStretch;
                tabDisplay.Pivot    = PivotType.Top;
                tabDisplay.RawWidth = 0f;
                tabDisplay.Height   = 0f;
                tabDisplay.Y        = 0f;
            }
            column = CreateChild <RankingColumn>("column");
            {
                column.Anchor = AnchorType.TopStretch;
                column.Pivot  = PivotType.Top;
                column.Height = 36f;
                column.Y      = -52f;

                column.SetOffsetHorizontal(0f);
            }
            rankingList = CreateChild <RankingList>("list");
            {
                rankingList.Anchor = AnchorType.Fill;
                rankingList.Offset = new Offset(0f, 88f, 0f, 0f);
                rankingList.Column = column;
            }

            loadShowAni = new Anime();
            loadShowAni.AnimateFloat((alpha) => loaderIcon.Alpha = alpha)
            .AddTime(0f, () => loaderIcon.Alpha)
            .AddTime(0.35f, 1f)
            .Build();
            loadShowAni.AnimateFloat((alpha) => rankingList.Alpha = alpha)
            .AddTime(0f, () => rankingList.Alpha)
            .AddTime(0.35f, 0f)
            .Build();

            loadHideAni = new Anime();
            loadHideAni.AnimateFloat((alpha) => loaderIcon.Alpha = alpha)
            .AddTime(0f, () => loaderIcon.Alpha)
            .AddTime(0.35f, 0f)
            .Build();
            loadHideAni.AnimateFloat((alpha) => rankingList.Alpha = alpha)
            .AddTime(0f, () => rankingList.Alpha)
            .AddTime(0.35f, 1f)
            .Build();

            OnEnableInited();
        }
Exemple #12
0
        private void Init()
        {
            var blur = CreateChild <BlurDisplay>("blur", 0);

            {
                blur.Anchor = AnchorType.Fill;
                blur.Offset = Offset.Zero;

                var dark = blur.CreateChild <UguiSprite>("dark", 0);
                {
                    dark.Anchor = AnchorType.Fill;
                    dark.Offset = Offset.Zero;
                    dark.Color  = new Color(0f, 0f, 0f, 0.75f);
                }
            }
            infoDisplayer = CreateChild <InfoDisplayer>("info", 1);
            {
            }
            loadIndicator = CreateChild <LoadIndicator>("load", 2);
            {
                loadIndicator.Position = new Vector3(0f, -260f);
                loadIndicator.Size     = new Vector2(88f, 88f);
            }

            float showDur = Mathf.Max(infoDisplayer.ShowAniDuration, loadIndicator.ShowAniDuration);

            componentShowAni = new Anime();
            componentShowAni.AddEvent(0f, () =>
            {
                infoDisplayer.Show();
                loadIndicator.Show();
            });
            componentShowAni.AddEvent(showDur + model.MinimumLoadTime, OnShowAniEnd);

            float hideDur = Mathf.Max(infoDisplayer.HideAniDuration, loadIndicator.HideAniDuration);

            componentHideAni = new Anime();
            componentHideAni.AddEvent(0f, () =>
            {
                infoDisplayer.Hide();
                loadIndicator.Hide();
            });
            componentHideAni.AnimateFloat(v => model.MusicController.SetFade(v))
            .AddTime(0f, 0.5f, EaseType.QuadEaseOut)
            .AddTime(hideDur, 0f)
            .Build();
            componentHideAni.AddEvent(hideDur, () =>
            {
                model.MusicController.SetFade(1f);
                OnHideAniEnd();
            });

            OnEnableInited();
        }
Exemple #13
0
        public void LoadImageForAnime(IAnime anime)
        {
            if (anime == null) { throw new ArgumentNullException ("anime"); }
            if (string.IsNullOrWhiteSpace (anime.ImageUrl)) { return; }

            var path = Files.ImagePath(anime);
            using (var web = new WebClient()) {
                web.DownloadFile (anime.ImageUrl, path);
                anime.ImagePath = path;
            }
        }
        public string ConvertAnimeToJson(IAnime anime)
        {
            var jsonAnime = _factory.CreateJsonAnime();
            _mappingEngine.Map(anime, jsonAnime);
            jsonAnime.OtherTitles["japanese"].AddRange(anime.JapaneseTitles);
            jsonAnime.OtherTitles["english"].AddRange(anime.EnglishTitles);
            jsonAnime.OtherTitles["synonyms"].AddRange(anime.SynonymousTitles);

            var jsonString = JsonConvert.SerializeObject(jsonAnime);
            return jsonString;
        }
Exemple #15
0
        private void GetRelated(HtmlDocument doc, IAnime anime)
        {
            var relatedNodes = doc.DocumentNode.SelectSingleNode("//table[@class='anime_detail_related_anime']");

            if (relatedNodes != null)
            {
                foreach (var node in relatedNodes.ChildNodes)
                {
                    ParseTd(node, anime);
                }
            }
        }
Exemple #16
0
        /// <summary>
        /// Removes the specified anime instance from update service.
        /// </summary>
        public static void RemoveAnime(IAnime anime)
        {
            var animes = Instance.animes;

            for (int i = 0; i < animes.Count; i++)
            {
                if (animes[i] == anime)
                {
                    animes[i] = null;
                    break;
                }
            }
        }
        public void TearDown()
        {
            _notAired= null;
            _airing1= null;
            _airing2= null;
            _aired= null;

            _unknown1 = null;
            _unknown2 = null;

            _notAiredByYear= null;
            _airedByYear= null;
        }
        public string ConvertAnimeToJson(IAnime anime)
        {
            var jsonAnime = _factory.CreateJsonAnime();

            _mappingEngine.Map(anime, jsonAnime);
            jsonAnime.OtherTitles["japanese"].AddRange(anime.JapaneseTitles);
            jsonAnime.OtherTitles["english"].AddRange(anime.EnglishTitles);
            jsonAnime.OtherTitles["synonyms"].AddRange(anime.SynonymousTitles);

            var jsonString = JsonConvert.SerializeObject(jsonAnime);

            return(jsonString);
        }
Exemple #19
0
        private void ParseTd(HtmlNode node, IAnime anime)
        {
            switch (node.ChildNodes[0].InnerText.Replace(":", "").ToLower())
            {
                case "adaptation":
                    anime.MangaAdaptation.AddRange(MapRelated(node));
                    break;
                case "prequel":
                    anime.Prequels.AddRange(MapRelated(node));
                    break;
                case "sequel":
                    anime.Sequels.AddRange(MapRelated(node));
                    break;
                case "side story":
                    anime.SideStories.AddRange(MapRelated(node));
                    break;
                case "parent story":
                    anime.ParentStory = MapRelated(node).FirstOrDefault();
                    break;
                case "character":
                    anime.CharacterAnime.AddRange(MapRelated(node));
                    break;
                case "spin-off":
                    anime.SpinOffs.AddRange(MapRelated(node));
                    break;
                case "summary":
                    anime.Summaries.AddRange(MapRelated(node));
                    break;
                case "alternative version":
                    anime.AlternativeVersion.AddRange(MapRelated(node));
                    break;
                case "alternative setting":
                    anime.AlternativeSetting.AddRange(MapRelated(node));
                    break;
                case "full story":
                    anime.FullStories.AddRange(MapRelated(node));
                    break;
                default:
                    anime.Others.AddRange(MapRelated(node));
                    break;

            }

            if (node.ChildNodes.Count == 3)
            {
                var nextNode = node.ChildNodes[2];
                if (nextNode != null)
                    ParseTd(nextNode, anime);
            }
        }
        /// <summary>
        /// Creates default hover in/out animations.
        /// </summary>
        public virtual void UseDefaultHoverAni()
        {
            hoverInAni = new Anime();
            hoverInAni.AnimateFloat(a => hoverSprite.Alpha = a)
            .AddTime(0, () => hoverSprite.Alpha)
            .AddTime(0.25f, 0.25f)
            .Build();

            hoverOutAni = new Anime();
            hoverOutAni.AnimateFloat(a => hoverSprite.Alpha = a)
            .AddTime(0, () => hoverSprite.Alpha)
            .AddTime(0.25f, 0f)
            .Build();
        }
Exemple #21
0
        public User()
        {
            Settings = Trackr.Core.Settings.Load();
            IAnime anime = ResolveAnimeClient(Settings);

            if (anime != null)
            {
                AnimeList.Load(anime);
            }
            IManga manga = ResolveMangaClient(Settings);

            if (manga != null)
            {
                MangaList.Load(manga);
            }
        }
        public void Setup()
        {
            _notAired = new AnimeDummy
            {
                AiringStart = new DateTime(2011, 1, 1),
                AiringEnd = new DateTime(2012, 1, 1)
            };
            _airing1 = new AnimeDummy
            {
                AiringStart = new DateTime(2009, 12, 1),
                AiringEnd = new DateTime(2011, 10, 1)
            };
            _airing2 = new AnimeDummy
            {
                AiringStart = new DateTime(2009, 12, 1),
                AiringEnd = null
            };
            _aired = new AnimeDummy
            {
                AiringStart = new DateTime(2007, 1, 1),
                AiringEnd = new DateTime(2008, 1, 1)
            };

            // Airing end for one-episode anime can be NULL (at least in world-art) because
            // obviously it is the same as Airing start.
            //
            _airedOneEpisode = new AnimeDummy
            {
                AiringStart = new DateTime(2009, 12, 12),
                Episodes = 1
            };

            _unknown1 = new AnimeDummy();
            _unknown2 = new AnimeDummy
            {
                Year = Today.Year
            };

            _notAiredByYear = new AnimeDummy
            {
                Year = 2100
            };
            _airedByYear = new AnimeDummy
            {
                Year = 1995
            };
        }
        private void Init(IGameSession session)
        {
            session.OnSoftInit += () =>
            {
                session.ScoreProcessor.OnNewJudgement += OnNewJudgement;
            };

            SpriteName = "glow-in-square-32";
            Color      = ColorPreset.GetHitResultColor(HitResultType.Miss).Alpha(0f);

            showAni = new Anime();
            showAni.AnimateFloat((alpha) => Alpha = alpha)
            .AddTime(0f, () => Alpha)
            .AddTime(0.05f, 0.125f, EaseType.QuadEaseOut)
            .AddTime(0.35f, 0f)
            .Build();
        }
        private void Init()
        {
            titleLabel = CreateChild <Label>("title", 0);
            {
                titleLabel.FontSize = 22;
                titleLabel.IsBold   = true;
                titleLabel.Alpha    = 0;
            }
            artistLabel = CreateChild <Label>("artist", 1);
            {
                artistLabel.FontSize = 16;
                artistLabel.Alpha    = 0;
            }
            versionLabel = CreateChild <Label>("version", 2);
            {
                versionLabel.FontSize = 20;
                versionLabel.Alpha    = 0;
            }
            mapperLabel = CreateChild <Label>("mapper", 3);
            {
                mapperLabel.FontSize = 16;
                mapperLabel.Alpha    = 0;
            }
            thumbDisplayer = CreateChild <ThumbDisplayer>("thumb", 4);
            {
                thumbDisplayer.Size  = new Vector2(400f, 72f);
                thumbDisplayer.Alpha = 0;
            }

            showAni = new Anime();
            AddShowAniFrame(titleLabel, 0.3f, new Vector2(0f, 112f));
            AddShowAniFrame(artistLabel, 0.4f, new Vector2(0f, 88f));
            AddShowAniFrame(thumbDisplayer, 0.5f, new Vector2(0f, 16f));
            AddShowAniFrame(versionLabel, 0.6f, new Vector2(0f, -60f));
            AddShowAniFrame(mapperLabel, 0.7f, new Vector2(0f, -86f));

            hideAni = new Anime();
            hideAni.AddEvent(0f, () => showAni.Stop());
            AddHideAniFrame(titleLabel, 0f);
            AddHideAniFrame(artistLabel, 0.1f);
            AddHideAniFrame(thumbDisplayer, 0.2f);
            AddHideAniFrame(versionLabel, 0.3f);
            AddHideAniFrame(mapperLabel, 0.4f);

            OnEnableInited();
        }
Exemple #25
0
        private void Init()
        {
            gradient = CreateChild <UguiSprite>("gradient", 0);
            {
                gradient.Anchor     = AnchorType.Fill;
                gradient.RawSize    = Vector2.zero;
                gradient.SpriteName = "gradation-bottom";
                gradient.Color      = Color.black;
            }
            title = CreateChild <Label>("title", 1);
            {
                title.Anchor    = AnchorType.BottomStretch;
                title.RawWidth  = -84f;
                title.Y         = 56f;
                title.IsBold    = true;
                title.Alignment = TextAnchor.MiddleLeft;
                title.FontSize  = 26;
            }
            artist = CreateChild <Label>("artist", 2);
            {
                artist.Anchor = AnchorType.BottomStretch;
                artist.Pivot  = PivotType.BottomLeft;
                artist.SetOffsetHorizontal(42f, 402f);
                artist.Y         = 12f;
                artist.Height    = 34f;
                artist.FontSize  = 22;
                artist.Alignment = TextAnchor.MiddleLeft;
            }
            creator = CreateChild <Label>("creator", 3);
            {
                creator.Anchor    = AnchorType.BottomStretch;
                creator.Pivot     = PivotType.BottomRight;
                creator.Alignment = TextAnchor.MiddleRight;
                creator.FontSize  = 22;
                creator.Position  = new Vector2(-42f, 12f);
                creator.Size      = new Vector2(360f, 34f);
            }

            fadeAni = new Anime();
            fadeAni.AnimateFloat(alpha => title.Alpha = artist.Alpha = alpha)
            .AddTime(0f, 0f, EaseType.SineEaseOut)
            .AddTime(0.25f, 1f)
            .Build();

            OnEnableInited();
        }
Exemple #26
0
 private void GetInfoUrls(HtmlDocument doc, IAnime anime)
 {
     foreach (var listItem in doc.DocumentNode.SelectNodes("//div[@id='horiznav_nav']"))
     {
         foreach (var child in listItem.ChildNodes["ul"].ChildNodes)
         {
             var item = child.ChildNodes["a"];
             if (item == null) continue;
             switch (item.InnerText)
             {
                 case "Episodes":
                     anime.AdditionalInfoUrls.Episodes = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "Reviews":
                     anime.AdditionalInfoUrls.Reviews = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "Recommendations":
                     anime.AdditionalInfoUrls.Recommendation = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "Stats":
                     anime.AdditionalInfoUrls.Stats = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "Characters & Staff":
                 case "Characters &amp; Staff":
                     anime.AdditionalInfoUrls.CharactersAndStaff = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "News":
                     anime.AdditionalInfoUrls.News = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "Forum":
                     anime.AdditionalInfoUrls.Forum = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "Featured":
                     anime.AdditionalInfoUrls.Featured = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "Clubs":
                     anime.AdditionalInfoUrls.Clubs = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "Pictures":
                     anime.AdditionalInfoUrls.Pictures = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
             }
         }
     }
 }
Exemple #27
0
        void FindTorrents(string searchTitle, IAnime anime)
        {
            var nextEpisode = anime.Watched + 1;
            var queryTerm = searchTitle.Replace (' ', '+') + "+" + nextEpisode.ToString ();
            var torrents = Torrent.ParseTorrentsFromWeb (TorrentsLink + queryTerm)
                .Where (t =>
                        t.Category == TorrentCategory.English &&
                        t.CleanTitle.Contains (nextEpisode.ToString ())).ToList ();

            if (torrents.Any ()) {
                var evt = new Core.Domain.Events.NewTorrentsEvent(torrents, anime) {
                    Title = queryTerm
                };
                Console.WriteLine (evt);
                Console.WriteLine ();
                Console.WriteLine ();
            }
        }
Exemple #28
0
        public static EmbedBuilder ToEmbed(this IAnime anime, EmbedBuilder?embed = null)
        {
            if (embed == null)
            {
                embed = new EmbedBuilder();
            }

            // Limit description length to 2048 characters
            var desc = anime.Description;

            if (desc.Length > 2048)
            {
                var addon = "...";
                if (!string.IsNullOrWhiteSpace(anime.Url))
                {
                    addon += $"... <[Read More]({anime.Url})>";
                }

                desc  = desc[..(2047 - addon.Length)];
        private void Init()
        {
            tickSprite = CreateChild <UguiSprite>("tick", 0);
            {
                tickSprite.Anchor     = AnchorType.Fill;
                tickSprite.Offset     = Offset.Zero;
                tickSprite.SpriteName = "circle-32";
            }

            hitAni = new Anime();
            hitAni.AnimateFloat(a => this.Alpha = a)
            .AddTime(0f, 1f, EaseType.QuadEaseOut)
            .AddTime(0.5f, 0f)
            .Build();
            hitAni.AnimateVector3(s => this.Scale = s)
            .AddTime(0f, Vector3.one, EaseType.CubicEaseOut)
            .AddTime(0.5f, new Vector3(2.5f, 2.5f, 1f))
            .Build();
            hitAni.AddEvent(hitAni.Duration, () => Active = false);
        }
        private void Init()
        {
            SpriteName = "glow-in-square-32";
            ImageType  = Image.Type.Sliced;
            RotationZ  = 45f;

            AddEffect(new AdditiveShaderEffect());

            anime = new Anime();
            anime.AnimateFloat((alpha) => this.Alpha = alpha)
            .AddTime(0f, 0f, EaseType.QuadEaseOut)
            .AddTime(0.1f, 1f, EaseType.QuadEaseIn)
            .AddTime(0.25f, 0f)
            .Build();
            anime.AnimateVector2((size) => this.Size = size)
            .AddTime(0f, new Vector2(PulseStartSize, PulseStartSize), EaseType.CubicEaseOut)
            .AddTime(0.25f, new Vector2(PulseFullSize, PulseFullSize))
            .Build();
            anime.AddEvent(anime.Duration, () => Recycler.Return(this));
        }
        public static string CalculateWithAiringDates(IAnime anime, DateTime today)
        {
            if (!anime.AiringStart.HasValue) { return null; }

            if (anime.AiringStart.Value.Date > today)
            {
                return NotAired;
            }
            else
            {
                if (!anime.AiringEnd.HasValue)
                {
                    return anime.Episodes == 1 ? Aired : Airing;
                }
                else
                {
                    return anime.AiringEnd.Value.Date <= today ? Aired : Airing;
                }
            }
        }
Exemple #32
0
        private void Init(IColorPreset colorPreset)
        {
            OnPointerDown += () =>
            {
                isControlling = true;

                upAni.Stop();
                downAni.PlayFromStart();
            };
            OnPointerUp += () =>
            {
                isControlling = false;

                downAni.Stop();
                upAni.PlayFromStart();
            };
            OnChange += (value) =>
            {
                var audio = MusicController.Audio;
                if (isControlling && audio != null)
                {
                    MusicController.Seek(value * audio.Duration);
                }
            };

            background.Color = Color.black;
            foreground.Color = colorPreset.SecondaryFocus;
            thumb.Active     = false;

            downAni = new Anime();
            downAni.AnimateFloat(y => ScaleY = y)
            .AddTime(0f, () => ScaleY)
            .AddTime(0.25f, 2f)
            .Build();

            upAni = new Anime();
            upAni.AnimateFloat(y => ScaleY = y)
            .AddTime(0f, () => ScaleY)
            .AddTime(0.25f, 1f)
            .Build();
        }
Exemple #33
0
        /// <summary>
        /// Get anime title as specified by preference. Order matters. if nothing found, preferred title is returned
        /// </summary>
        /// <param name="anime">IAnime object representing the Anime the title has to be searched for</param>
        /// <param name="type">TitleType, eg. TitleType.Official or TitleType.Short </param>
        /// <param name="langs">Arguments Array taking in the TitleLanguages that should be search for.</param>
        /// <returns>string representing the Anime Title for the first language a title is found for</returns>
        private string GetTitleByPref(IAnime anime, TitleType type, params TitleLanguage[] langs)
        {
            //get all titles
            var titles = (List <AnimeTitle>)anime.Titles;

            //iterate over the given TitleLanguages in langs
            foreach (TitleLanguage lang in langs)
            {
                //set title to the first found title of the defined language. if nothing found title will stay null
                string title = titles.FirstOrDefault(s => s.Language == lang && s.Type == type)?.Title;

                //if title is found, aka title not null, return it
                if (title != null)
                {
                    return(title);
                }
            }

            //no title found for the preferred languages, return the preferred title as defined by shoko
            return(anime.PreferredTitle);
        }
Exemple #34
0
        /// <summary>
        /// Creates default highlighting animation.
        /// </summary>
        public void UseDefaultHighlightAni()
        {
            // Create highlight animation
            highlightAni = new Anime();
            highlightAni.AnimateFloat(a => highlightSprite.Alpha = a)
            .AddTime(0f, () => highlightSprite.Alpha)
            .AddTime(0.25f, 1f)
            .Build();
            // Highlight sprite sizing animation.
            ISection <float> highlightSection = null;

            if (IsHighlightSpriteVertical)
            {
                highlightSection = highlightAni.AnimateFloat(size => highlightSprite.Height = size).AddTime(0f, () => highlightSprite.Height);
            }
            else
            {
                highlightSection = highlightAni.AnimateFloat(size => highlightSprite.Width = size).AddTime(0f, () => highlightSprite.Width);
            }
            highlightSection.AddTime(0.25f, () => HighlightedSize).Build();

            // Create unhighlight animation.
            unhighlightAni = new Anime();
            unhighlightAni.AnimateFloat(a => highlightSprite.Alpha = a)
            .AddTime(0f, () => highlightSprite.Alpha)
            .AddTime(0.25f, 0f)
            .Build();
            // Highlight sprite sizing animation.
            ISection <float> unhighlightSection = null;

            if (IsHighlightSpriteVertical)
            {
                unhighlightSection = unhighlightAni.AnimateFloat(size => highlightSprite.Height = size).AddTime(0f, () => highlightSprite.Height);
            }
            else
            {
                unhighlightSection = unhighlightAni.AnimateFloat(size => highlightSprite.Width = size).AddTime(0f, () => highlightSprite.Width);
            }
            unhighlightSection.AddTime(0.25f, 0f).Build();
        }
Exemple #35
0
        private void Init(IColorPreset colorPreset)
        {
            showAni = new Anime();
            showAni.AnimateFloat(a => this.Alpha = a)
            .AddTime(1.5f, 0f, EaseType.QuadEaseOut)
            .AddTime(1.75f, 1f)
            .Build();
            showAni.AnimateFloat(scale => Scale = new Vector3(scale, scale, 1f))
            .AddTime(0f, 1f)
            .AddTime(1.5f, 2f, EaseType.QuadEaseOut)
            .AddTime(1.75f, 1f)
            .Build();

            hideAni = new Anime();
            hideAni.AddEvent(0f, () => showAni.Stop());
            hideAni.AnimateFloat(a => this.Alpha = a)
            .AddTime(0f, 1f, EaseType.QuadEaseOut)
            .AddTime(0.5f, 0f)
            .Build();

            Rotate = true;
        }
Exemple #36
0
        private void Init()
        {
            holdSprite = CreateChild <UguiSprite>("hold", 4);
            {
                holdSprite.Anchor     = AnchorType.Fill;
                holdSprite.Offset     = Offset.Zero;
                holdSprite.SpriteName = "circle-320";
                holdSprite.Alpha      = 0f;
            }

            holdAni = new Anime();
            holdAni.AnimateFloat(a => holdSprite.Alpha = a)
            .AddTime(0f, () => holdSprite.Alpha)
            .AddTime(0.35f, 0.25f)
            .Build();
            holdAni.AnimateVector3(s => holdSprite.Scale = s)
            .AddTime(0f, () => holdSprite.Scale)
            .AddTime(0.35f, new Vector3(2f, 2f, 2f))
            .Build();

            releaseAni = new Anime();
            releaseAni.AnimateFloat(a => holdSprite.Alpha = a)
            .AddTime(0f, () => holdSprite.Alpha)
            .AddTime(0.35f, 0f)
            .Build();
            releaseAni.AnimateVector3(s => holdSprite.Scale = s)
            .AddTime(0f, () => holdSprite.Scale)
            .AddTime(0.35f, Vector3.one)
            .Build();

            hitAni.AddEvent(hitAni.Duration, () =>
            {
                if (draggerView != null)
                {
                    draggerView.Active = false;
                }
            });
        }
 public static string CalculateWithYear(IAnime anime, DateTime today)
 {
     if (anime.Year == today.Year) { return null; }
     return anime.Year > today.Year ? NotAired : Aired;
 }
Exemple #38
0
		public AnimeViewModel(IAnime anime)
		{
			_anime = anime;
		}
        private void ParseTd(HtmlNode node, IAnime anime)
        {
            switch (node.ChildNodes[0].InnerText.Replace(":", ""))
            {
                case "Adaptation":
                    anime.MangaAdaptation.AddRange(MapRelated(node));
                    break;
                case "Prequel":
                    anime.Prequels.AddRange(MapRelated(node));
                    break;
                case "Sequel":
                    anime.Sequels.AddRange(MapRelated(node));
                    break;
                case "Side Story":
                    anime.SideStories.AddRange(MapRelated(node));
                    break;
                case "Parent Story":
                    anime.ParentStory = MapRelated(node).FirstOrDefault();
                    break;
                case "Character Anime":
                    anime.CharacterAnime.AddRange(MapRelated(node));
                    break;
                case "Spin Off":
                    anime.SpinOffs.AddRange(MapRelated(node));
                    break;
                case "Summary":
                    anime.Summaries.AddRange(MapRelated(node));
                    break;
                case "Alternative Versions":
                    anime.AlternativeVersion.AddRange(MapRelated(node));
                    break;
                case "Alternative setting":
                    anime.AlternativeSetting.AddRange(MapRelated(node));
                    break;
                case "Full story":
                    anime.FullStories.AddRange(MapRelated(node));
                    break;
                default:
                    anime.Others.AddRange(MapRelated(node));
                    break;

            }

            if (node.ChildNodes.Count == 3)
            {
                var nextNode = node.ChildNodes[2];
                if (nextNode != null)
                    ParseTd(nextNode, anime);
            }
        }
        private void GetRelated(HtmlDocument doc, IAnime anime)
        {
            var relatedNodes = doc.DocumentNode.SelectSingleNode("//table[@class='anime_detail_related_anime']");

            if (relatedNodes != null)
            {
                foreach (var node in relatedNodes.ChildNodes)
                {
                    ParseTd(node, anime);
                }
            }
        }
 private void GetInfoUrls(HtmlDocument doc, IAnime anime)
 {
     foreach (var listItem in doc.DocumentNode.SelectNodes("//div[@id='horiznav_nav']"))
     {
         foreach (var child in listItem.ChildNodes["ul"].ChildNodes)
         {
             var item = child.ChildNodes["a"];
             if (item == null) continue;
             switch (item.InnerText)
             {
                 case "Episodes":
                     anime.AdditionalInfoUrls.Episodes = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "Reviews":
                     anime.AdditionalInfoUrls.Reviews = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "Recommendations":
                     anime.AdditionalInfoUrls.Recommendation = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "Stats":
                     anime.AdditionalInfoUrls.Stats = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "Characters & Staff":
                 case "Characters &amp; Staff":
                     anime.AdditionalInfoUrls.CharactersAndStaff = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "News":
                     anime.AdditionalInfoUrls.News = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "Forum":
                     anime.AdditionalInfoUrls.Forum = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "Featured":
                     anime.AdditionalInfoUrls.Featured = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "Clubs":
                     anime.AdditionalInfoUrls.Clubs = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
                 case "Pictures":
                     anime.AdditionalInfoUrls.Pictures = child.ChildNodes["a"].Attributes["href"].Value;
                     break;
             }
         }
     }
 }
        private async Task GetCharacterAndSeiyuuInformation(IAnime anime, string username, string password)
        {
            try
            {
                //Our first task is to retrieve the MAL anime - for now we cheat and grab it from our example data
                var doc = new HtmlDocument();

                var url = anime.AdditionalInfoUrls.CharactersAndStaff;
                HttpClient webClient;

                if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password))
                {
                    var handler = new HttpClientHandler {Credentials = new NetworkCredential(username, password)};
                    webClient = new HttpClient(handler);
                }
                else
                {
                    webClient = new HttpClient();
                }
                var data = await webClient.GetStreamAsync(new Uri(url));
                doc.Load(data);

                var tableNodes = doc.DocumentNode.SelectNodes("//table");
                foreach (var table in tableNodes)
                {
                    var rows = table.ChildNodes.Where(t => t.Name == "tr");
                    //var rows = table.SelectNodes("//tr");
                    if (rows != null)
                    {
                        foreach (var row in rows)
                        {
                            var columns = row.ChildNodes.Where(t => t.Name == "td").ToList();
                            if (columns.Count == 3)
                            {
                                var tmpChar = _characterFactory.CreateCharacter();
                                var charPic = columns[0].ChildNodes["div"].ChildNodes["a"].ChildNodes["img"].Attributes["data-src"]?.Value;
                                if (string.IsNullOrEmpty(charPic))
                                {
                                    charPic = columns[0].ChildNodes["div"].ChildNodes["a"].ChildNodes["img"].Attributes["src"]?.Value;
                                }
                                tmpChar.CharacterPicture = charPic;


                                tmpChar.CharacterName = columns[1].ChildNodes["a"].InnerText;
                                tmpChar.CharacterUrl = columns[1].ChildNodes["a"].Attributes["href"].Value;
                                tmpChar.CharacterType = columns[1].ChildNodes["div"].InnerText;

                                var vaDetail = columns[2].ChildNodes["table"]?.ChildNodes.Where(t => t.Name == "tr").ToList();
                                if(vaDetail == null) continue;
                                foreach (var detail in vaDetail)
                                {
                                    var tmpSeiyuu = _characterFactory.CreateSeiyuu();
                                    tmpSeiyuu.Language = detail.ChildNodes["td"].ChildNodes["small"].InnerText;
                                    tmpSeiyuu.Name = detail.ChildNodes["td"].ChildNodes["a"].InnerText;
                                    tmpSeiyuu.Url = detail.ChildNodes["td"].ChildNodes["a"].Attributes["href"].Value;
                                    var tmpImage = detail.ChildNodes[3].ChildNodes["div"].ChildNodes["a"].ChildNodes["img"].Attributes["data-src"]?.Value;
                                    if (string.IsNullOrEmpty(tmpImage))
                                    {
                                        tmpImage = detail.ChildNodes[3].ChildNodes["div"].ChildNodes["a"].ChildNodes["img"].Attributes["src"].Value;
                                    }
                                    tmpSeiyuu.PictureUrl = tmpImage;
                                    tmpChar.Seiyuu.Add(tmpSeiyuu);
                                }
                                if(anime.CharacterInformation.Count(t => t.CharacterUrl == tmpChar.CharacterUrl) == 0)
                                    anime.CharacterInformation.Add(tmpChar);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Error occured while trying to retrieve character and staff data");
            }

        }
Exemple #43
0
 public NewTorrentsEvent(List<ITorrent> torrents, IAnime anime)
 {
     _torrents = torrents;
     _anime = anime;
     AnimeID = anime.ID;
 }
 public SerializeFailedException(IAnime data, Exception inner)
     : base(inner)
 {
     SerializationData = data;
 }