Пример #1
0
 void LoadLevel(int level)
 {
     levelGameobject = Instantiate(levels[level - 1].prefab, levelMarker.transform);
     levelGameobject.transform.position = new Vector3(levelGameobject.transform.position.x - 1.5f, levelGameobject.transform.position.y, levelGameobject.transform.position.z - 1.5f);
     laserEmitter = levelGameobject.GetComponentInChildren <LaserEmitter>();
     laserEmitter.maxReflectionCount = levels[level - 1].maximumReflections;
 }
Пример #2
0
        /// <summary>
        /// Emits a copy of the given Laser beam at the given offset and angle,
        /// relative to this Portal.
        /// </summary>
        /// <param name="laser">The Laser beam to copy.</param>
        /// <param name="offset">The offset of the Laser beam.</param>
        /// <param name="angle">The angle from the normal of this Portal's plane.</param>
        public void EmitLaserBeam(LaserBeam laser, Vector3 offset, Vector3 angle)
        {
            LaserEmitter emitter = this.PortalEmitter.GetEmitter(laser);

            emitter.transform.position   = offset;
            emitter.transform.rotation   = Quaternion.FromToRotation(Vector3.forward, angle);
            emitter.transform.localScale = new Vector3(-0.385f, -0.385f, -0.385f);
        }
Пример #3
0
 private void ChangeLaserIntensity(int index, float newIntensity)
 {
     if (elementPositions.ContainsKey(laserName) && index < elementPositions[laserName].Count)
     {
         Vector2Int   pos   = elementPositions[laserName][index];
         LaserEmitter laser = (LaserEmitter)board[pos.x, pos.y].GetPlacedObject();
         if (laser != null)
         {
             laser.ChangeIntensity(newIntensity);
             currentSteps++;
         }
     }
 }
Пример #4
0
        public override void Init(string additionalData)
        {
            base.Init(additionalData);


            _turnmodule = ModuleManager.getInstance.GetModule <BattleTurnsModule>();
            _turnmodule.Notifications += OnNextTurn;

            var emitterObj = Node.transform.Find("laser_cube/emitter");

            _laserEmitter = emitterObj.GetComponent <LaserEmitter>();

            if (_laserEmitter == null)
            {
                _laserEmitter = emitterObj.gameObject.AddComponent <LaserEmitter>();
            }

            _laserEmitter.AddBlockTileType(typeof(BlockTile));
            _laserEmitter.AddBlockTileType(typeof(LockTile));
            _laserEmitter.AddBlockTileType(typeof(GemTile));
            _laserEmitter.AddBlockTileType(typeof(BombTile));

            _laserEmitter.AddBlockTileType(typeof(LaserTile));
            _laserEmitter.AddBlockTileType(typeof(DiskTile));

            _laserEmitter.AddBlockTileType(typeof(UpDirectTile));
            _laserEmitter.AddBlockTileType(typeof(DownDirectTile));
            _laserEmitter.AddBlockTileType(typeof(LeftDirectTile));
            _laserEmitter.AddBlockTileType(typeof(RightDirectTile));

            switch (additionalData)
            {
            case "up":
            {
                _dir = new Vector2Int(0, -1);
                _laserEmitter.transform.localEulerAngles = new Vector3(0, 0, 0);
            }
            break;

            case "down":
            {
                _dir = new Vector2Int(0, 1);
                _laserEmitter.transform.localEulerAngles = new Vector3(0, 0, 180);
            }
            break;

            case "left":
            {
                _dir = new Vector2Int(-1, 0);
                _laserEmitter.transform.localEulerAngles = new Vector3(0, 0, 90);
            }
            break;

            case "right":
            {
                _dir = new Vector2Int(1, 0);
                _laserEmitter.transform.localEulerAngles = new Vector3(0, 0, -90);
            }
            break;
            }
        }
Пример #5
0
 // Start is called before the first frame update
 void Start()
 {
     _le = GetComponent <LaserEmitter>();
 }
Пример #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="LaserBeam"/> class.
 /// </summary>
 /// <param name="origin">The origin of this Laser beam.</param>
 /// <param name="direction">The direction vector of this Laser beam.</param>
 /// <param name="emitter">The LaserEmitter that caused this Laser beam.</param>
 public LaserBeam(Vector3 origin, Vector3 direction, LaserEmitter emitter)
 {
     this.Origin    = origin;
     this.Direction = direction;
     this.emitter   = emitter;
 }