コード例 #1
0
ファイル: Animation.cs プロジェクト: sciaopin/bang-sharp
        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 CardZoomAllocator(AllocationManager parent, AnimationLayer placeholder, CardZoomAnimator animator)
     : base(parent, placeholder)
 {
     this.animator = animator;
 }