Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.44 KB | None | 0 0
  1. /*jshint esversion: 6 */
  2. /* jshint proto: true */
  3. /*jslint browser: true */
  4. /*global window */
  5. // TODO: MOTM
  6. // red πŸŒΏπŸ”΄
  7. // bleu πŸŒΏπŸ”΅
  8. // white 🌿βšͺ
  9. // black 🌿⚫
  10.  
  11.  
  12. let geo = {"code": "eu", "lat": 48.7292085, "lon": 4.5898115};
  13. var room = HBInit({ roomName: "Racing Anddy", playerName: "EFC", maxPlayers: 20, public: false, geo });
  14. const scoreLimit = 0;
  15. const timeLimit = 0;
  16.  
  17. const map = `{"name":"Futsal Dribbling Challenge","width":750,"height":450,"bg":{"type":"hockey","width":700,"height":400,"kickOffRadius":90},"vertexes":[{"x":-700,"y":-400,"cMask":["ball"]},{"x":-700,"y":-90,"cMask":["ball"]},{"x":-700,"y":400,"cMask":["ball"]},{"x":-700,"y":90,"cMask":["ball"]},{"x":700,"y":-400,"cMask":["ball"]},{"x":700,"y":-90,"cMask":["ball"]},{"x":700,"y":400,"cMask":["ball"]},{"x":700,"y":90,"cMask":["ball"]},{"x":-700,"y":90,"bCoef":.1,"cMask":["ball"]},{"x":-730,"y":60,"bCoef":.1,"cMask":["ball"]},{"x":-730,"y":60,"bCoef":.1,"cMask":["ball"]},{"x":-730,"y":-60,"bCoef":.1,"cMask":["ball"]},{"x":-730,"y":-60,"bCoef":.1,"cMask":["ball"]},{"x":-700,"y":-90,"bCoef":.1,"cMask":["ball"]},{"x":700,"y":-90,"bCoef":.1,"cMask":["ball"]},{"x":730,"y":-60,"bCoef":.1,"cMask":["ball"]},{"x":730,"y":-60,"bCoef":.1,"cMask":["ball"]},{"x":730,"y":60,"bCoef":.1,"cMask":["ball"]},{"x":730,"y":60,"bCoef":.1,"cMask":["ball"]},{"x":700,"y":90,"bCoef":.1,"cMask":["ball"]},{"x":-96,"y":84,"cMask":["wall"],"cGroup":["all"]},{"x":-561,"y":264,"cMask":["ball","wall"],"cGroup":["all"]},{"x":-96,"y":264,"cMask":["ball","wall"],"cGroup":["all"]},{"x":685,"y":-81.99,"cMask":["wall"],"cGroup":["all"]},{"x":685,"y":81.99,"cMask":["wall"],"cGroup":["all"]},{"x":685,"y":-81.99,"cMask":["wall"],"cGroup":["all"]},{"x":715,"y":-81.99,"cMask":["wall"],"cGroup":["all"]},{"x":715,"y":-81.99,"cMask":["wall"],"cGroup":["all"]},{"x":715,"y":81.99,"cMask":["wall"],"cGroup":["all"]},{"x":715,"y":81.99,"cMask":["wall"],"cGroup":["all"]},{"x":685,"y":81.99,"cMask":["wall"],"cGroup":["all"]},{"x":-522.5,"y":-250,"cMask":["ball","wall"],"cGroup":["all"]},{"x":-95,"y":-250,"cMask":["ball","wall"],"cGroup":["all"]},{"x":-523.5,"y":-125,"cMask":["ball","wall"],"cGroup":["all"]},{"x":-93.5,"y":-125,"cMask":["ball","wall"],"cGroup":["all"]},{"x":-574,"y":130,"cMask":["wall"]},{"x":-553,"y":28,"cMask":["wall"]},{"x":-568,"y":18,"cMask":["wall"]},{"x":-553,"y":28,"cMask":["wall"]},{"x":-553,"y":28,"cMask":["wall"]},{"x":-568,"y":38,"cMask":["wall"]},{"x":-485,"y":-10,"cMask":["wall"]},{"x":-450,"y":-10,"cMask":["wall"]},{"x":-465,"y":-20,"cMask":["wall"]},{"x":-450,"y":-10,"cMask":["wall"]},{"x":-465,"y":0,"cMask":["wall"]},{"x":-115,"y":-79,"cMask":["wall"]},{"x":-80,"y":-79,"cMask":["wall"]},{"x":-95,"y":-89,"cMask":["wall"]},{"x":-80,"y":-79,"cMask":["wall"]},{"x":-80,"y":-79,"cMask":["wall"]},{"x":-95,"y":-69,"cMask":["wall"]},{"x":-561,"y":79,"cMask":["ball","wall"],"cGroup":["all"]},{"x":-96,"y":79,"cMask":["ball","wall"],"cGroup":["all"]},{"x":-96,"y":264,"cMask":["wall"],"cGroup":["all"]},{"x":-561,"y":264,"cMask":["wall"],"cGroup":["all"]},{"x":-135.5,"y":-184,"cMask":[]},{"x":-110.5,"y":-209,"cMask":[]},{"x":-185.5,"y":-159,"cMask":[]},{"x":-210.5,"y":-184,"cMask":[]},{"x":-135.5,"y":-184,"cMask":["wall"]},{"x":-125.5,"y":-194,"cMask":["wall"]},{"x":-210.5,"y":-184,"cMask":["wall"]},{"x":-200.5,"y":-174,"cMask":["wall"]},{"x":-210.5,"y":-184,"cMask":[]},{"x":-215.5,"y":-174,"cMask":["wall"]},{"x":-135.5,"y":-184,"cMask":[]},{"x":-140.5,"y":-194,"cMask":["wall"]},{"x":-139.35388954031,"y":-328.78315958822,"cMask":["wall"]},{"x":-70.78436895492,"y":-298.39861011502,"cMask":["wall"]},{"x":-97.692149079811,"y":-299.38419052804,"cMask":["wall"]},{"x":-89.589602553626,"y":-317.66939601747,"cMask":["wall"]},{"x":-546.33567136744,"y":-219.4818009682,"cMask":["wall"]},{"x":-441.33995415915,"y":-327.70748029973,"cMask":["wall"]},{"x":-455.44934774273,"y":-306.92932660382,"cMask":["wall"]},{"x":-461.22811326603,"y":-337.92810294905,"cMask":["wall"]},{"x":-522.5,"y":-380,"cMask":["ball","wall"],"cGroup":["all"]},{"x":-95,"y":-380,"cMask":["ball","wall"],"cGroup":["all"]},{"x":0,"y":-450,"bCoef":.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"]},{"x":0,"y":-90,"bCoef":.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"]},{"x":0,"y":90,"bCoef":.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"]},{"x":0,"y":450,"bCoef":.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"]},{"x":0,"y":90,"bCoef":.1,"cMask":["red","blue"],"cGroup":["blueKO"]},{"x":0,"y":-90,"bCoef":.1,"cMask":["red","blue"],"cGroup":["blueKO"]},{"x":0,"y":-90,"bCoef":.1,"cMask":["red","blue"],"cGroup":["redKO"]},{"x":0,"y":90,"bCoef":.1,"cMask":["red","blue"],"cGroup":["redKO"]},{"x":-17,"y":-288,"cMask":["wall"]},{"x":98.828674955241,"y":21.59529659912,"cMask":["wall"]},{"x":116.12686385514,"y":-72.573165483116,"cMask":["wall"]},{"x":51.761469118378,"y":-35.296356450068,"cMask":["wall"]},{"x":-396,"y":-54,"cMask":["wall"]},{"x":-361,"y":-54,"cMask":["wall"]},{"x":-376,"y":-64,"cMask":["wall"]},{"x":-361,"y":-54,"cMask":["wall"]},{"x":-376,"y":-44,"cMask":["wall"]},{"x":-316,"y":-35,"cMask":["wall"]},{"x":-281,"y":-35,"cMask":["wall"]},{"x":-296,"y":-45,"cMask":["wall"]},{"x":-281,"y":-35,"cMask":["wall"]},{"x":-296,"y":-25,"cMask":["wall"]},{"x":-224,"y":-75,"cMask":["wall"]},{"x":-189,"y":-75,"cMask":["wall"]},{"x":-204,"y":-85,"cMask":["wall"]},{"x":-189,"y":-75,"cMask":["wall"]},{"x":-204,"y":-65,"cMask":["wall"]},{"x":484.65628503923,"y":4.6890322008347,"cMask":["wall"]},{"x":663.03279005398,"y":38.86405835066,"cMask":["wall"]},{"x":626.21728489575,"y":61.789250302684,"cMask":["wall"]},{"x":648.59729186904,"y":-5.5111510345812,"cMask":["wall"]},{"x":-7.4328150321795,"y":24.407158136738,"cMask":["wall"]},{"x":-44.672818571824,"y":89.508480215228,"cMask":["wall"]},{"x":-40.939660335741,"y":62.842705717112,"cMask":["wall"]},{"x":-23.579307781477,"y":72.773373327684,"cMask":["wall"]},{"x":165.82611322621,"y":8.0127871428408,"cMask":[]},{"x":140.50936191477,"y":32.691970740249,"cMask":[]},{"x":216.14083199208,"y":-16.34761259755,"cMask":[]},{"x":240.82001558948,"y":8.9691387138921,"cMask":[]},{"x":165.82611322621,"y":8.0127871428408,"cMask":["wall"]},{"x":155.69941270163,"y":17.884460581804,"cMask":["wall"]},{"x":240.82001558948,"y":8.9691387138921,"cMask":["wall"]},{"x":230.94834215052,"y":-1.1575618106849,"cMask":["wall"]},{"x":240.82001558948,"y":8.9691387138921,"cMask":[]},{"x":245.94712262318,"y":-.96629149647461,"cMask":["wall"]},{"x":165.82611322621,"y":8.0127871428408,"cMask":[]},{"x":170.69819317429,"y":18.075730896014,"cMask":["wall"]},{"x":-128.5,"y":185,"cMask":[]},{"x":-103.5,"y":160,"cMask":[]},{"x":-178.5,"y":210,"cMask":[]},{"x":-203.5,"y":185,"cMask":[]},{"x":-128.5,"y":185,"cMask":["wall"]},{"x":-118.5,"y":175,"cMask":["wall"]},{"x":-203.5,"y":185,"cMask":["wall"]},{"x":-193.5,"y":195,"cMask":["wall"]},{"x":-203.5,"y":185,"cMask":[]},{"x":-208.5,"y":195,"cMask":["wall"]},{"x":-128.5,"y":185,"cMask":[]},{"x":-133.5,"y":175,"cMask":["wall"]},{"x":-446,"y":-324,"cMask":["wall"]},{"x":-356,"y":-319,"cMask":["wall"]},{"x":-321,"y":-319,"cMask":["wall"]},{"x":-336,"y":-329,"cMask":["wall"]},{"x":-321,"y":-319,"cMask":["wall"]},{"x":-336,"y":-309,"cMask":["wall"]},{"x":-276,"y":-300,"cMask":["wall"]},{"x":-241,"y":-300,"cMask":["wall"]},{"x":-256,"y":-310,"cMask":["wall"]},{"x":-241,"y":-300,"cMask":["wall"]},{"x":-256,"y":-290,"cMask":["wall"]},{"x":-207,"y":-312,"cMask":["wall"]},{"x":-149,"y":-340,"cMask":["wall"]},{"x":-164,"y":-350,"cMask":["wall"]},{"x":-149,"y":-340,"cMask":["wall"]},{"x":-156,"y":-323,"cMask":["wall"]},{"x":-698,"y":89,"cMask":["ball"]}],"segments":[{"v0":0,"v1":1,"vis":false,"cMask":["ball"]},{"v0":2,"v1":3,"vis":false,"cMask":["ball"]},{"v0":4,"v1":5,"vis":false,"cMask":["ball"]},{"v0":6,"v1":7,"vis":false,"cMask":["ball"]},{"v0":8,"v1":9,"curve":89.99999999999999,"bCoef":.1,"cMask":["ball"],"curveF":1.0000000000000002},{"v0":10,"v1":11,"bCoef":.1,"cMask":["ball"]},{"v0":12,"v1":13,"curve":89.99999999999999,"bCoef":.1,"cMask":["ball"],"curveF":1.0000000000000002},{"v0":14,"v1":15,"curve":89.99999999999999,"bCoef":.1,"cMask":["ball"],"curveF":1.0000000000000002},{"v0":16,"v1":17,"bCoef":.1,"cMask":["ball"]},{"v0":18,"v1":19,"curve":89.99999999999999,"bCoef":.1,"cMask":["ball"],"curveF":1.0000000000000002},{"v0":21,"v1":22,"color":"FF0000","cMask":["ball","wall"],"cGroup":["all"]},{"v0":23,"v1":24,"vis":false,"cMask":["wall"],"cGroup":["all"]},{"v0":25,"v1":26,"vis":false,"cMask":["wall"],"cGroup":["all"]},{"v0":27,"v1":28,"vis":false,"cMask":["wall"],"cGroup":["all"]},{"v0":29,"v1":30,"vis":false,"cMask":["wall"],"cGroup":["all"]},{"v0":31,"v1":32,"color":"FF0000","cMask":["ball","wall"],"cGroup":["all"]},{"v0":33,"v1":34,"color":"FF0000","cMask":["ball","wall"],"cGroup":["all"]},{"v0":35,"v1":36,"curve":150,"color":"C7E6BD","cMask":["wall"],"curveF":.2679491924311227},{"v0":37,"v1":38,"color":"C7E6BD","cMask":["wall"]},{"v0":39,"v1":40,"color":"C7E6BD","cMask":["wall"]},{"v0":41,"v1":42,"color":"C7E6BD","cMask":["wall"]},{"v0":43,"v1":44,"color":"C7E6BD","cMask":["wall"]},{"v0":44,"v1":45,"color":"C7E6BD","cMask":["wall"]},{"v0":46,"v1":47,"color":"C7E6BD","cMask":["wall"]},{"v0":48,"v1":49,"color":"C7E6BD","cMask":["wall"]},{"v0":50,"v1":51,"color":"C7E6BD","cMask":["wall"]},{"v0":52,"v1":53,"color":"FF0000","cMask":["ball","wall"],"cGroup":["all"]},{"v0":56,"v1":57,"curve":89.99999999999999,"color":"C7E6BD","cMask":[],"curveF":1.0000000000000002},{"v0":58,"v1":59,"curve":89.99999999999999,"color":"C7E6BD","cMask":[],"curveF":1.0000000000000002},{"v0":60,"v1":61,"color":"C7E6BD","cMask":["wall"]},{"v0":62,"v1":63,"color":"C7E6BD","cMask":["wall"]},{"v0":64,"v1":65,"color":"C7E6BD","cMask":[]},{"v0":66,"v1":67,"color":"C7E6BD","cMask":[]},{"v0":68,"v1":69,"color":"C7E6BD","cMask":["wall"]},{"v0":70,"v1":69,"color":"C7E6BD","cMask":["wall"]},{"v0":69,"v1":71,"color":"C7E6BD","cMask":["wall"]},{"v0":72,"v1":73,"curve":61.800223963587996,"color":"C7E6BD","cMask":["wall"],"curveF":1.670870833582588},{"v0":74,"v1":73,"color":"C7E6BD","cMask":["wall"]},{"v0":75,"v1":73,"color":"C7E6BD","cMask":["wall"]},{"v0":76,"v1":77,"color":"FF0000","cMask":["ball","wall"],"cGroup":["all"]},{"v0":78,"v1":79,"vis":false,"bCoef":.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"]},{"v0":80,"v1":81,"vis":false,"bCoef":.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"]},{"v0":82,"v1":83,"curve":180,"vis":false,"bCoef":.1,"cMask":["red","blue"],"cGroup":["blueKO"],"curveF":6.123233995736766e-17},{"v0":84,"v1":85,"curve":180,"vis":false,"bCoef":.1,"cMask":["red","blue"],"cGroup":["redKO"],"curveF":6.123233995736766e-17},{"v0":86,"v1":87,"color":"C7E6BD","cMask":["wall"]},{"v0":87,"v1":88,"color":"C7E6BD","cMask":["wall"]},{"v0":89,"v1":87,"color":"C7E6BD","cMask":["wall"]},{"v0":90,"v1":91,"color":"C7E6BD","cMask":["wall"]},{"v0":92,"v1":93,"color":"C7E6BD","cMask":["wall"]},{"v0":93,"v1":94,"color":"C7E6BD","cMask":["wall"]},{"v0":95,"v1":96,"color":"C7E6BD","cMask":["wall"]},{"v0":97,"v1":98,"color":"C7E6BD","cMask":["wall"]},{"v0":98,"v1":99,"color":"C7E6BD","cMask":["wall"]},{"v0":100,"v1":101,"color":"C7E6BD","cMask":["wall"]},{"v0":102,"v1":103,"color":"C7E6BD","cMask":["wall"]},{"v0":103,"v1":104,"color":"C7E6BD","cMask":["wall"]},{"v0":105,"v1":106,"curve":30.44081555786,"color":"C7E6BD","cMask":["wall"],"curveF":3.675436881434237},{"v0":107,"v1":106,"color":"C7E6BD","cMask":["wall"]},{"v0":106,"v1":108,"color":"C7E6BD","cMask":["wall"]},{"v0":109,"v1":110,"color":"C7E6BD","cMask":["wall"]},{"v0":111,"v1":110,"color":"C7E6BD","cMask":["wall"]},{"v0":110,"v1":112,"color":"C7E6BD","cMask":["wall"]},{"v0":113,"v1":114,"curve":89.99999999999999,"color":"C7E6BD","cMask":[],"curveF":1.0000000000000002},{"v0":115,"v1":116,"curve":89.99999999999999,"color":"C7E6BD","cMask":[],"curveF":1.0000000000000002},{"v0":117,"v1":118,"color":"C7E6BD","cMask":["wall"]},{"v0":119,"v1":120,"color":"C7E6BD","cMask":["wall"]},{"v0":121,"v1":122,"color":"C7E6BD","cMask":[]},{"v0":123,"v1":124,"color":"C7E6BD","cMask":[]},{"v0":125,"v1":126,"curve":89.99999999999999,"color":"C7E6BD","cMask":[],"curveF":1.0000000000000002},{"v0":127,"v1":128,"curve":89.99999999999999,"color":"C7E6BD","cMask":[],"curveF":1.0000000000000002},{"v0":129,"v1":130,"color":"C7E6BD","cMask":["wall"]},{"v0":131,"v1":132,"color":"C7E6BD","cMask":["wall"]},{"v0":133,"v1":134,"color":"C7E6BD","cMask":[]},{"v0":135,"v1":136,"color":"C7E6BD","cMask":[]},{"v0":138,"v1":139,"color":"C7E6BD","cMask":["wall"]},{"v0":140,"v1":141,"color":"C7E6BD","cMask":["wall"]},{"v0":141,"v1":142,"color":"C7E6BD","cMask":["wall"]},{"v0":143,"v1":144,"color":"C7E6BD","cMask":["wall"]},{"v0":145,"v1":146,"color":"C7E6BD","cMask":["wall"]},{"v0":146,"v1":147,"color":"C7E6BD","cMask":["wall"]},{"v0":148,"v1":149,"color":"C7E6BD","cMask":["wall"]},{"v0":150,"v1":151,"color":"C7E6BD","cMask":["wall"]},{"v0":151,"v1":152,"color":"C7E6BD","cMask":["wall"]}],"planes":[{"normal":[0,1],"dist":-400,"cMask":["ball"]},{"normal":[0,-1],"dist":-400,"cMask":["ball"]},{"normal":[0,-1],"dist":-450,"bCoef":0},{"normal":[0,1],"dist":-450,"bCoef":0},{"normal":[1,0],"dist":-750,"bCoef":0},{"normal":[-1,0],"dist":-750,"bCoef":0}],"goals":[{"p0":[700,-90],"p1":[700,90],"team":"blue"}],"discs":[{"radius":8,"invMass":0,"pos":[-700,-90],"color":"FFCCCC","cMask":["red","blue","ball"]},{"radius":8,"invMass":0,"pos":[-700,90],"color":"FFCCCC","cMask":["red","blue","ball"]},{"radius":8,"invMass":0,"pos":[700,-90],"color":"CCFFFF","cMask":["red","blue","ball"]},{"radius":8,"invMass":0,"pos":[700,90],"color":"CCFFFF","cMask":["red","blue","ball"]},{"radius":7.5,"invMass":0,"pos":[-548,-184],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-472,-207],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-398,-184],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-322,-207],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-248,-184],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-172,-207],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-98,-184],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":15,"invMass":1e-30,"pos":[700,0],"color":"5689E5","bCoef":1,"cGroup":["wall"],"damping":1,"speed":[0,2.5]},{"radius":7.5,"invMass":0,"pos":[-524,-18],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-524,51],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-445,-44],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-445,25],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-354,-86],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-354,-17],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-259,-67],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-259,2],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-160,-104],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-160,-35],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-83,-112],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-39,-73],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[503.12039880649,34.276976924208],"color":"E56E56","bCoef":.625,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[428.30477149767,11.36001764152],"color":"E56E56","bCoef":.625,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[353.13259407994,32.364273782105],"color":"E56E56","bCoef":.625,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[278.31696677112,9.4473144994178],"color":"E56E56","bCoef":.625,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[203.14478935339,30.451570640003],"color":"E56E56","bCoef":.625,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[128.32916204457,7.5346113573151],"color":"E56E56","bCoef":.625,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-541,185],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-465,162],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-391,185],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-315,162],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-241,185],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-165,162],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-91,185],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-485,-332],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-485,-263],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-406,-358],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-406,-289],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-314,-351],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-314,-282],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-219,-332],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-219,-263],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-120,-369],"color":"E56E56","bCoef":.3,"cGroup":["wall"]},{"radius":7.5,"invMass":0,"pos":[-120,-300],"color":"E56E56","bCoef":.3,"cGroup":["wall"]}],"playerPhysics":{"bCoef":0,"acceleration":.11,"kickingAcceleration":.083,"kickStrength":4.2},"ballPhysics":{"radius":5.8,"bCoef":.412,"invMass":1.5,"color":"FFF26D"}}`;
  18. const ballRadius = 5.8;
  19. room.setCustomStadium(map);
  20. room.setScoreLimit(scoreLimit);
  21. room.setTimeLimit(timeLimit);
  22. room.setTeamsLock(true);
  23. var checkpoints = {
  24. 1: {"x1" : -561, "x2" : -561, "y1" : 264, "y2" : 79, "passed" : false, "time" : 100},
  25. 2: {"x1" : -95, "x2" : -95, "y1" : -125, "y2" : -250, "passed" : false, "time" : 100},
  26. 3: {"x1" : -95, "x2" : -95, "y1" : -285, "y2" : -380, "passed" : false, "time" : 100},
  27. };
  28.  
  29.  
  30. function resetCP(){
  31. for (var i = 1; i < 4; i++) {
  32. checkpoints[i].passed = false;
  33. checkpoints[i].time = 0;
  34. }
  35. }
  36.  
  37. function crossLine(p1, p2) {
  38. var ballP = room.getBallPosition();
  39. if (p2.x != p1.x) {
  40. var equation = [(p2.y - p1.y) / (p2.x - p1.x), p1.y - (p1.x * (p2.y - p1.y)) / (p2.x - p1.x)];
  41. var distance = Math.abs(ballP.y - equation[0] * ballP.x - equation[1]) / Math.sqrt(1 + equation[0] ^ 2);
  42. return (distance < ballRadius);
  43. }
  44. else return (Math.abs(p1.x - ballP.x) < ballRadius);
  45. }
  46.  
  47. function crossSegment(p1, p2) {
  48. var ballP = room.getBallPosition();
  49. return (crossLine(p1, p2) && ballP.x <= Math.max(p1.x, p2.x) + ballRadius && ballP.x >= Math.min(p1.x, p2.x) - ballRadius && ballP.y <= Math.max(p1.y, p2.y) + ballRadius && ballP.y >= Math.min(p1.y, p2.y) - ballRadius);
  50. }
  51.  
  52. function crossedCP(toCross) {
  53. let c = checkpoints[toCross];
  54. return c.passed == false && crossSegment({"x": c.x1, "y": c.y1}, {"x": c.x2, "y": c.y2});
  55. }
  56.  
  57. function dispTime(){
  58. let total = room.getScores().time;
  59. room.sendChat("Segments: " + checkpoints[1].time.toPrecision(4) + " | " + checkpoints[2].time.toPrecision(4) + " | " + checkpoints[3].time.toPrecision(4) + " | FULL TIME: " + total.toPrecision(4));
  60. return total;
  61. }
  62.  
  63. function updateRank(time, name){
  64. if (Stats.hasOwnProperty(name)){
  65. if (Stats[name].time > time){
  66. Stats[name].time = time;
  67. }
  68. }
  69. else {
  70. Stats[name] = time;
  71. }
  72. }
  73.  
  74. var player_id;
  75. var Stats = {};
  76. var toCross;
  77.  
  78. room.onGameTick = function(){
  79. if (crossedCP(toCross)){
  80. checkpoints[toCross].time = room.getScores().time;
  81. if (toCross < 3) toCross++;
  82. }
  83. };
  84.  
  85. room.onGameStart = function(){
  86. resetCP();
  87. toCross = 1;
  88. player_id = room.getPlayerList().filter((p) => p.team != 0)[0].id;
  89. };
  90.  
  91.  
  92. room.onTeamGoal = function(){
  93. updateRank(dispTime(), room.getPlayer(player_id).name);
  94. };
  95.  
  96. function updateAdmins() {
  97. // Get all players except the host (id = 0 is always the host)
  98. var players = room.getPlayerList().filter((player) => player.id != 0 );
  99. if ( players.length == 0 ) return; // No players left, do nothing.
  100. if ( players.find((player) => player.admin) != null ) return; // There's an admin left so do nothing.
  101. room.setPlayerAdmin(players[0].id, true); // Give admin to the first non admin player in the list
  102. }
  103.  
  104. room.onPlayerJoin = function(player) {
  105. updateAdmins();
  106. };
  107.  
  108. room.onPlayerLeave = function(player) {
  109. updateAdmins();
  110. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement