Exemple #1
0
 public void AddAnimationToMembers(GangAnimData data, List <Member> effectedMembers)
 {
     foreach (var member in effectedMembers)
     {
         member.EnqueueAnimation(data);
     }
 }
Exemple #2
0
    void PassBarrier(Barrier barrier, List <Member> activeMembers)
    {
        GangAnimData passAnim = new GangAnimData();

        passAnim.type    = GangAnimType.PassBarrier;
        passAnim.barrier = barrier;

        _animationController.AddAnimationToMembers(passAnim, activeMembers);
    }
Exemple #3
0
    void BuildPass(Barrier barrier, List <Member> passMembers)
    {
        GangAnimData buildAnim = new GangAnimData();

        buildAnim.type    = GangAnimType.BuildBarrierPass;
        buildAnim.barrier = barrier;

        _animationController.AddAnimationToMembers(buildAnim, passMembers);
    }
Exemple #4
0
    void HandleMemberState()
    {
        switch (navState)
        {
        case NavigatorState.pathValid:
            if (memState == MemberState.onBuild)    //if onbuild dont break climb
            {
                break;
            }

            _processing = false;
            queuedAnimations.Clear();
            memState = MemberState.onNav;
            break;

        case NavigatorState.pathClimb:
            if (_processing || queuedAnimations.Count <= 0 || memState == MemberState.inactive)
            {
                break;
            }

            _processGangAnim = queuedAnimations.Dequeue();
            if (_processGangAnim.type == GangAnimType.PassBarrier)
            {
                _processing = true;
                memState    = MemberState.onClimb;
            }
            else if (_processGangAnim.type == GangAnimType.BuildBarrierPass)
            {
                _processing = true;
                memState    = MemberState.onBuild;
            }
            break;

        case NavigatorState.pathJump:
            if (_processing || queuedAnimations.Count <= 0 || memState == MemberState.inactive)
            {
                break;
            }

            _processGangAnim = queuedAnimations.Dequeue();
            if (_processGangAnim.type == GangAnimType.FelledGround)
            {
                _processing = true;
                memState    = MemberState.onJump;
            }
            break;

        case NavigatorState.pathInvalid:
            break;

        case NavigatorState.noPath:
        default:
            break;
        }
    }
Exemple #5
0
    void FelledGround(Vector3 startPos, List <Member> activeMembers)
    {
        GangAnimData fellAnim = new GangAnimData();

        fellAnim.type         = GangAnimType.FelledGround;
        fellAnim.fallStartPos = startPos;
        fellAnim.fallPos      = head.position;

        _animationController.AddAnimationToMembers(fellAnim, activeMembers);
    }
Exemple #6
0
 public void EnqueueAnimation(GangAnimData data)
 {
     queuedAnimations.Enqueue(data);
 }