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; } }
public CardZoomAllocator(AllocationManager parent, AnimationLayer placeholder, CardZoomAnimator animator) : base(parent, placeholder) { this.animator = animator; }