// Next Queue Switcher Scenario Scenario QueueSwitcher: Act QueueSwitcher($rightcount=30,$rightspeed=10km/h,$latpos=0.3,$latpostime=1s,$blinktime=2s): @init: CreateVehicle(Ego,EgoProto,xyz=0m|0m|0m,speed=30km/h) CreateVehicle(Front,FrontProto,xyz=0m|Ego.y+100m|0m,speed=30km/h) repeat $n in [1:$rightcount] by 1: CreateVehicle(RightQueue$n,RightQueueProto,xyz=5m|Ego.y+$n*15m|0m,speed=$rightspeed) @Headway(Ego,Front) >= 2s % OnceOnly: select $next_queue in RightQueue* with DistanceBeforePassing($next_queue,Ego)>15m minimize Distance($next_queue,Ego): @Distance($next_queue,Ego) < 10m: LateralChange($next_queue,x=-$latpos,t=$latpostime) Delay(2s) SetLight($next_queue,LeftTurnIndicator) Delay($blinktime) LangeChange($next_queue,lane=+1,model=Sinusoidal(time=5s)) Prototypes: EgoProto: Vehicle(geometry="mycar.obj",color="blue") FrontProto: Vehicle(geometry="traffic.obj",color="yellow",maxaccel=10km/h/10s,maxbrake=10m/s/s) RightQueueProto: Vehicle(geometry="traffic.obj",color="green") Resources: Map: OpenDrive("OpenDriveMap.xodr")