예제 #1
0
        public Animation(AnimationLayer layer, Animation lastAnim = null, TimeSpan animLength = default(TimeSpan))
        {
            this.layer = layer;
            if(animLength.Ticks > 0L)
                this.animLength = animLength;
            else
                this.animLength = DefaultAnimDuration;
            onlyEnd = false;
            ended = false;
            sw = new Stopwatch();

            playingCardAnimators = new Dictionary<int, PlayingCardAnimator>();
            playerRoleAnimators = new Dictionary<int, RoleCardAnimator>(8);
            playerCharacterAnimators = new Dictionary<int, CharacterCardAnimator>(8);
            foreach(IPublicPlayerView player in ConnectionManager.Game.Players)
            {
                int id = player.ID;
                playerRoleAnimators[id] = new RoleCardAnimator(this, layer.GetPlayerRoleWidget(id));
                playerCharacterAnimators[id] = new CharacterCardAnimator(this, layer.GetPlayerCharacterWidget(id));
                if(lastAnim != null)
                {
                    RoleCardState lastRoleState = lastAnim.playerRoleAnimators[id].EndState;
                    playerRoleAnimators[id].StartState.Update(lastRoleState);
                    playerRoleAnimators[id].EndState.Update(lastRoleState);

                    CharacterCardState lastCharacterState = lastAnim.playerCharacterAnimators[id].EndState;
                    playerCharacterAnimators[id].StartState.Update(lastCharacterState);
                    playerCharacterAnimators[id].EndState.Update(lastCharacterState);
                }
            }
            playingCardZoomAnimator = new CardZoomAnimator(this, layer.GetPlayingCardZoomWidget());
            roleCardZoomAnimator = new CardZoomAnimator(this, layer.GetRoleCardZoomWidget());
            characterCardZoomAnimator = new CardZoomAnimator(this, layer.GetCharacterCardZoomWidget());

            if(lastAnim != null)
            {
                startAllocManager = new AllocationManager(this, StateType.Start, lastAnim.endAllocManager);
                endAllocManager = new AllocationManager(this, StateType.End, lastAnim.endAllocManager);
            }
            else
            {
                startAllocManager = new AllocationManager(this, StateType.Start);
                endAllocManager = new AllocationManager(this, StateType.End);
                onlyEnd = true;
            }
        }
예제 #2
0
 public EventListener(AnimationLayer parent)
 {
     this.parent = parent;
 }
예제 #3
0
 public override void OrderWidgets(AnimationLayer layer)
 {
     layer.Children.Add(animator.Widget);
 }
예제 #4
0
 public override void OrderWidgets(AnimationLayer layer)
 {
     foreach(PlayingCardAnimator a in animators)
         layer.Children.Add(a.Widget);
 }
예제 #5
0
 public CardZoomAllocator(AllocationManager parent, AnimationLayer placeholder, CardZoomAnimator animator)
     : base(parent, placeholder)
 {
     this.animator = animator;
 }
예제 #6
0
 public abstract void OrderWidgets(AnimationLayer layer);