Exemplo n.º 1
0
  it('diagonal', () => {
    let start = new Vector(48, 40);
    let dir = new Vector(12.8, 12.8);

    let result = getRayCollision(start, dir, stage);
    expect(result.x).to.equal(608);
    expect(result.y).to.equal(600);
  });
Exemplo n.º 2
0
  it('simple case go right', () => {
    let start = new Vector(48, 40.5);
    let dir = new Vector(1.0, 0);

    let result = getRayCollision(start, dir, stage);
    expect(result.x).to.equal(608);
    expect(result.y).to.equal(40.5);
  });
Exemplo n.º 3
0
  it('simple case go down', () => {
    let start = new Vector(48, 48);
    let dir = new Vector(0, 12.8);

    let result = getRayCollision(start, dir, stage);
    expect(result.x).to.equal(48);
    expect(result.y).to.equal(608);
  });
Exemplo n.º 4
0
    _.forEach(turrets, (turret) => {
      let laserWaitTime = turret.waitTime;
      let laserShooting = laserWaitTime + turret.chargeTime;
      let laserTotalCycle = laserShooting + turret.shootTime;

      let timeInCycle = tickTimer.getTimeInCycle(laserTotalCycle);
      if (timeInCycle < laserWaitTime || turret.rootTarget === null) {
        setTurretAngle(turret, charMid);
        turret.rootTarget = charMid;
        turret.laserState = 'waiting';
      } else if (timeInCycle >= laserWaitTime && timeInCycle < laserShooting) {
        turret.laserState = 'charging';
      } else {
        turret.laserState = 'shooting';
      }

      let dir = turret.rootTarget.sub(turret.pos);
      turret.target = getRayCollision(turret.pos, dir, stage);
    });