public void AddAnimationToMembers(GangAnimData data, List <Member> effectedMembers) { foreach (var member in effectedMembers) { member.EnqueueAnimation(data); } }
void PassBarrier(Barrier barrier, List <Member> activeMembers) { GangAnimData passAnim = new GangAnimData(); passAnim.type = GangAnimType.PassBarrier; passAnim.barrier = barrier; _animationController.AddAnimationToMembers(passAnim, activeMembers); }
void BuildPass(Barrier barrier, List <Member> passMembers) { GangAnimData buildAnim = new GangAnimData(); buildAnim.type = GangAnimType.BuildBarrierPass; buildAnim.barrier = barrier; _animationController.AddAnimationToMembers(buildAnim, passMembers); }
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; } }
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); }
public void EnqueueAnimation(GangAnimData data) { queuedAnimations.Enqueue(data); }