Наследование: MonoBehaviour
Пример #1
0
 public void boxBeingHit(LaserController laserController, BoxController boxController)
 {
     if (laserController.hitIdentifier.Equals(this.hitIdentifier))
     {
         Glow();
     }
 }
Пример #2
0
 public void boxStoppedBeingHit(LaserController laserController, BoxController boxController)
 {
     if (laserController.hitIdentifier.Equals(this.hitIdentifier))
     {
         Dull();
     }
 }
Пример #3
0
 void MakeSingleton()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
Пример #4
0
    public void Shoot()
    {
        if (projectileTimer >= projectileInterval)
        {
            projectileTimer = 0;

            GameObject projectile = objectPooler.GetNextDynamicInstance();

            float accuracy = Random.Range(-inaccuracy, inaccuracy);
            projectile.transform.up       = transform.up + (transform.right * accuracy);
            projectile.name               = objectPooler.GetPooledPrefab().name;
            projectile.transform.position = transform.position;
            projectile.SetActive(true);

            TrailResetter[] trailResetters = projectile.GetComponentsInChildren <TrailResetter>();
            foreach (TrailResetter resetter in trailResetters)
            {
                resetter.Reset();
            }

            LaserController laser = projectile.GetComponent <LaserController>();
            if (laser != null)
            {
                laser.SetStartObject(this.gameObject);
                AudioManager.instance.PlaySoundWithRandomPitch(laser.GetShotClip(), 0.5f, 1.5f);
            }

            ProjectileController proj = projectile.GetComponent <ProjectileController>();
            if (proj != null)
            {
                AudioManager.instance.PlaySoundWithRandomPitch(proj.GetShotClip(), 0.75f, 1.25f);
            }
        }
    }
Пример #5
0
    IEnumerator zoomIn()
    {
        Camera.main.orthographicSize   = zoomSize;
        Camera.main.transform.position = new Vector3(xCenter, yCenter, -10);

        yield return(new WaitForSeconds(1.5f));

        while (zoomSize >= 10)
        {
            Camera.main.transform.position = Vector3.MoveTowards(transform.position, gravBoiPoint, .5f);
            Camera.main.orthographicSize   = zoomSize;
            yield return(new WaitForSeconds(.01f));

            zoomSize -= .25f;
        }
        while (Camera.main.transform.position != gravBoiPoint)
        {
            Camera.main.transform.position = Vector3.MoveTowards(transform.position, gravBoiPoint, .5f);
            yield return(new WaitForSeconds(.01f));
        }
        if (startUpdate == false)
        {
            controller.startUpdating();
            if (laserMove.Length != 0)
            {
                for (int i = 0; i < laserMove.Length; i++)
                {
                    LaserController laserCont = laserMove[i].GetComponent <LaserController>();
                    laserCont.startMovement();
                }
            }
        }
        startUpdate = true;
    }
Пример #6
0
    void fireLaser()
    {
        GameObject      newLaser       = Instantiate(laserPrefab, transform.position, currentRotation);
        LaserController newLaserScript = newLaser.GetComponent <LaserController>();

        newLaserScript.parent = gameObject.GetInstanceID();
    }
Пример #7
0
    //1.Normalize health and scale. as health decreases, the scale should also decreases
    //2.Create money for asteroid based on scale, money is fixed for small,medium and large asteroids
    #endregion

    void Start()
    {
        gameObject.tag             = "Asteroid";
        asteroidMesh               = asteroidObj.GetComponent <MeshRenderer>();
        asteroidTransform          = GetComponent <Transform>();
        gazeInput                  = GetComponent <GazeInput>();
        asteroidCanvas.worldCamera = ScreenManager.instance.uiCamera;

        //set random scale
        float randomScaleX = Random.Range(0.5f, 3);
        float randomScaleZ = Random.Range(0.5f, 3);
        float randomScaleY = Random.Range(randomScaleX, randomScaleZ);

        asteroidTransform.localScale = new Vector3(randomScaleX, randomScaleY, randomScaleZ);

        health = Random.Range(50, 100);
        if (movementSpeed != 0)
        {
            movementSpeed = Random.Range(60, 120);
        }
        if (HealthSet != null)
        {
            HealthSet.Invoke();
        }
        healthSteps = health / gazeInput.gazeTime;

        gazeInput.PointerEnter.AddListener(DecreaseHealth);
        gazeInput.PointerExit.AddListener(HideHealthBar);

        //set laser
        laser = LaserController.instance;

        //hide health
        healthBar.enabled = false;
    }
Пример #8
0
    public override bool WillDie(Transform transform, Vector3 point, Vector3 normal)
    {
        int normx = Mathf.RoundToInt(normal.x), normz = Mathf.RoundToInt(normal.z),
            rightx = Mathf.RoundToInt(-transform.right.x), rightz = Mathf.RoundToInt(-transform.right.z),
            forwardx = Mathf.RoundToInt(transform.forward.x), forwardz = Mathf.RoundToInt(transform.forward.z);

        Vector3 temp = point;

        if (normx == rightx && normz == rightz)
        {
            normal = Quaternion.AngleAxis(90, Vector3.up) * normal;
            temp.x = 0;
        }
        else if (normx == forwardx && normz == forwardz)
        {
            normal = Quaternion.AngleAxis(-90, Vector3.up) * normal;
            temp.z = 0;
        }
        else
        {
            Die();
            return(true);
        }

        normal.y = 0;
        LaserController.AddPosition(transform.TransformPoint(0, point.y, 0), normal);
        return(false);
    }
Пример #9
0
        private static void InitHardware()
        {
            //TODO: Ethernet not found, set dummy mode
            string ip     = SystemContext.SystemPara.IpAddress;
            int    port   = SystemContext.SystemPara.Port;
            var    device = TcpClientStream.SearchDevice(ip, port);

            if (device == null)
            {
                SystemContext.IsDummyMode = true;
                var motor   = new DummyMotorController();
                var laser   = new DummyLaser();
                var blowing = new DummyIO();
                SystemContext.Hardware = new HardwareProxy(motor, laser, blowing);
            }
            else
            {
                SystemContext.IsDummyMode = false;
                var para = SystemContext.SystemPara;
                Func <AxisParameter, MotorParameter> convert = x => new MotorParameter
                {
                    Ratio      = x.Ratio,
                    IsReversed = x.Reversed
                };
                var motorPara = new Dictionary <AxisTypes, MotorParameter>();
                motorPara[AxisTypes.AxisX] = convert(para.XPara);
                motorPara[AxisTypes.AxisY] = convert(para.YPara); motorPara[AxisTypes.AxisY].IsDualDriven = true;
                motorPara[AxisTypes.AxisZ] = convert(para.ZPara);
                motorPara[AxisTypes.AxisW] = new MotorParameter();
                var motor   = new MotorController(device, motorPara);
                var laser   = new LaserController(device, 10);
                var blowing = new IOController(device);
                SystemContext.Hardware = new HardwareProxy(motor, laser, blowing);
            }
        }
Пример #10
0
    // Update is called once per frame
    void Update()
    {
        selectedLaser = player.currentLaserSelected;
        for (int i = 0; i < 3; i++)
        {
            texts[i].text = messageSelect;
            if (selectedLaser != null)
            {
                string s = "";
                switch (i)
                {
                case 0:
                    s = selectedLaser.GetWatts().ToString();
                    break;

                case 1:
                    s = selectedLaser.GetRequiredWatts().ToString();
                    break;

                case 2:
                    s = string.Concat(selectedLaser.GetMultiplier().ToString(), "x");
                    break;
                }
                texts[i].text = string.Concat(updateMessage[i], s);
            }
        }
    }
    void Launch(Quaternion angle)
    {
        GameObject BulletObject = Instantiate(BulletPrefab, transform.position, angle);

        LaserController Laser = BulletObject.GetComponent <LaserController>();

        Laser.Launch(projectileVelocity);
    }
Пример #12
0
        public override void Attack()
        {
            SetLaserDirection();
            LaserController laserController = Instantiate(laser, transform.position, LaserRotation()).GetComponent <LaserController>();

            laserController.SetValues(laserDirection, tag, AttackDamage);
            nextAttackTime = Time.time + AttackRechargeTimer;
        }
    void Launch()
    {
        GameObject      laserObject = Instantiate(laserPrefab, rigidbody2D.position + Vector2.right * 0.5f, Quaternion.identity);
        LaserController laser       = laserObject.GetComponent <LaserController>();

        laser.Launch(Vector2.right, laserForce);
        //PlaySound(launch);
    }
 void Start()
 {
     _facingRight     = true;
     _animator        = GetComponent <Animator>();
     _grounded        = true;
     _climbingStairs  = false;
     _laserController = FindObjectOfType <LaserController>();
 }
Пример #15
0
        public void InitLaser(GameObject laserPrefab, Transform parent)
        {
            laserController = Instantiate(laserPrefab, parent).GetComponent <LaserController>();
            laserController.growthDamage = growthDamage;
            laserController.meltDamage   = meltDamage;

            lastToggle  = Time.time;
            nextToggle += Time.time;
        }
Пример #16
0
    private void FireLaser(MineralController mineralController)
    {
        int minerals = mineralController.GetMinerals(LaserPower);

        MainGregorLogic.Instance.PlayerController.Minerals += minerals;
        LaserController laserController = Instantiate(LaserPrefab);

        laserController.SetLaser(FirePoint, mineralController.transform);
    }
 public void CreateLaser(Vector3 pos, Vector3 dir)
 {
     if (MagazineLoaded)
     {
         LaserController laserController = new LaserController();
         AttachController(laserController);
         laserController.Shoot(pos, dir);
     }
 }
Пример #18
0
    // Start is called before the first frame update
    void Start()
    {
        parentPos = transform.parent.position;

        spriteTransform     = GetComponentInChildren <SpriteRenderer>().transform;
        anim                = GetComponentInChildren <Animator>();
        laser               = GetComponentInChildren <LaserController>();
        damageable          = GetComponent <Damageable>();
        damageable.immuneTo = Team.Player;
    }
Пример #19
0
    public static void End()
    {
        TurnFinished();

        Transform  temp      = turn == PieceColor.Red ? Red : Silver;
        PieceColor tempColor = turn == PieceColor.Red ? PieceColor.Silver : PieceColor.Red;

        LaserController.Fire(temp.position, temp.forward);
        turn = tempColor;
    }
    //Because I use clone the life of the lasers stay the same for all copies from the same original shot
    private LaserController Clone()
    {
        LaserController controllerCopy = (LaserController)this.MemberwiseClone();

        //clone refrences here if needed
        controllerCopy.GetLaser();

        //Attach to LaserManager
        laserManager.AttachController(controllerCopy);
        return(controllerCopy);
    }
Пример #21
0
 public void NullLasers()
 {
     if (laserHitOne != null)
     {
         laserHitOne = laserHitOne.DisableLaser(laserOneHitOne);
     }
     if (laserHitTwo != null)
     {
         laserHitTwo = laserHitTwo.DisableLaser(laserHitTwo);
     }
 }
Пример #22
0
    void ShootLaser()
    {
        GameObject      laserObject = Instantiate(laserPrefab, rigidBody2D.position + new Vector2(0.08f, 0.1f), Quaternion.identity);
        LaserController lc          = laserObject.GetComponent <LaserController>();
        Vector3         difference  = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;

        difference = -difference;
        float angle = Mathf.Atan2(-difference.x, difference.y) * Mathf.Rad2Deg;

        lc.Launch(angle);
        blockTimer = laserBlockTime;
    }
    void Awake()
    {
        csc = GetComponentInChildren<CharacterSoundController>();
        uim = GameObject.Find("UserInterface").GetComponent<UserInterfaceManager>();
        lc = GetComponentInChildren<LaserController>();
        cameraTf = transform.FindChild("Camera");
        overlay = cameraTf.FindChild ("Overlay").gameObject;
        crosshairs = overlay.transform.FindChild ("Crosshairs").gameObject;
        dead = false;

        actionCooldown = 0.6f;
        previousActionTime = Time.time;
    }
Пример #24
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        LaserController playerLaser = collider.gameObject.GetComponent <LaserController>();

        playerLaser.enemyHit();
        health -= playerLaser.GetDamage();
        if (health <= 0)
        {
            Destroy(gameObject);
            scoreKeeper.Score(scoreVal);
            AudioSource.PlayClipAtPoint(enemyDeathSound, transform.position);
        }
    }
Пример #25
0
    private void Start()
    {
        timeAlived      = 0f;
        laserController = GetComponent <LaserController>();
        dna             = new DNA();
        brain           = new NeuralNetwork();

        meshBody    = transform.GetChild(0).GetComponent <MeshRenderer>();
        meshWheelFL = transform.GetChild(1).GetComponent <MeshRenderer>();
        meshWheelFR = transform.GetChild(2).GetComponent <MeshRenderer>();
        meshWheelBL = transform.GetChild(3).GetComponent <MeshRenderer>();
        meshWheelBR = transform.GetChild(4).GetComponent <MeshRenderer>();
    }
Пример #26
0
 protected void Awake()
 {
     laserArray           = new GameObject[5];
     playOnce             = new bool[5];
     wanderWalkController = GetComponent <WanderWalkController>();
     hurtPlayerOnContact  = GetComponent <HurtPlayerOnContact>();
     animator             = GetComponent <Animator>();
     playerController     = FindObjectOfType <PlayerController>();
     laserController      = FindObjectOfType <LaserController>();
     audioManager         = FindObjectOfType <AudioManager>();
     hurtEnemyOnContact   = GetComponent <HurtEnemyOnContact>();
     enemyHealthManager   = GetComponent <EnemyHealthManager>();
     direction            = -1;
 }
Пример #27
0
    private void CmdFireLasers(Vector3[] positions, Quaternion[] rotations)
    {
        if (ProjectilePrefab && (!m_PlayerHealth || m_PlayerHealth.IsAlive))
        {
            for (int laser = 0; laser < positions.Length; ++laser)
            {
                GameObject      laser_obj        = (GameObject)Instantiate(ProjectilePrefab, positions[laser], rotations[laser]);
                LaserController laser_controller = laser_obj.GetComponent <LaserController>();
                laser_controller.OwnerID = this.netId.Value;

                NetworkServer.Spawn(laser_obj);
            }
        }
    }
Пример #28
0
 private void UpgradeLaser(LaserController laser)
 {
     if (GetWeaponRank(WeaponType.Laser) < 5)
     {
         laser.Damage *= 1.25f;
     }
     else if (GetWeaponRank(WeaponType.Laser) < 10)
     {
         laser.Damage *= 1.15f;
     }
     else
     {
         laser.Damage *= 1.05f;
     }
 }
Пример #29
0
    IEnumerator Shoot()
    {
        _justShot = true;

        LaserController clone = Instantiate(laser, transform.position, transform.rotation);

        // Create sound effect
        SoundController ssound = Instantiate(sound, transform.position, transform.rotation);

        ssound.PlayClip(laserClips[Random.Range(0, laserClips.Length - 1)]);

        yield return(new WaitForSeconds(Random.Range(1.5f, 3.0f)));

        _justShot = false;
    }
Пример #30
0
    public LaserAttackManager(Spaceship attacker, float range, float damage)
    {
        Attacker         = attacker;
        Damage           = damage;
        ImmunityDuration = IMMUNITY_DURATION;

        GameObject gameObject = GameManager.Instance.Instantiate(GeneralPrefabs.Instance.LaserBeam, Vector2.zero, Quaternion.identity);

        gameObject.transform.SetParent(attacker.transform);
        gameObject.transform.localPosition = Vector2.zero;
        gameObject.transform.localRotation = Quaternion.identity;
        gameObject.transform.localScale    = new Vector2(range, BEAM_WIDTH) / attacker.transform.localScale.x;
        Laser = gameObject.GetComponent <LaserController>();
        Laser.Initialize(this, range);
        TurnOff();
    }
Пример #31
0
    // Use this for initialization
    void Start()
    {
        targetGameObject = new GameObject();
        _laserController = GetComponent <LaserController>();
        _fpsCamera       = Camera.main;
        isOn             = false;

        if (relatedLock != null)
        {
            _lock = relatedLock.GetComponent <Lock>();
        }
        else
        {
            throw new ArgumentException("Related Lock is not set.");
        }
    }
Пример #32
0
 private void UpgradeLaser(LaserController laser)
 {
     if (GetWeaponRank(WeaponType.Laser) < 5)
     {
         laser.Damage *= 1.25f;
     }
     else if (GetWeaponRank(WeaponType.Laser) < 10)
     {
         laser.Damage *= 1.15f;
     }
     else
     {
         laser.Damage *= 1.05f;
     }
 }
 void Start()
 {
     lc = transform.parent.parent.FindChild("Laser").GetComponent<LaserController>();
 }
Пример #34
0
 public void InitBeam()
 {
     beam = (GameObject) Object.Instantiate<GameObject>(BeamPrefab());
     laserController = beam.AddComponent<LaserController>();
     laserController.laser = this;
     Release();
 }
Пример #35
0
 public void Spawn(LaserController controller, Vector3 location)
 {
     startTime = Time.realtimeSinceStartup;
     this.controller = controller;
     transform.position = location;
 }
Пример #36
0
    private void UpgradeWeapons(int iterationCount, LaserController laserPrefab, WeaponType weaponType)
    {
        //upgrade weapons and projectiles for each upgrade point
        for (int i = 0; i < iterationCount; i++)
        {
            //increase stats of projectile prefab
            UpgradeLaser(laserPrefab);

            foreach (WeaponController weapon in player.GetWeapons())
            {
                if (weapon.GetWeaponType() == weaponType)
                {
                    //increase weapon stats
                    //increase weapon stats
                    if (GetWeaponRank(weaponType) < 5)
                    {
                        weapon.Interval /= 1.25f;
                    }
                    else if (GetWeaponRank(weaponType) < 10)
                    {
                        weapon.Interval /= 1.15f;
                    }
                    else
                    {
                        weapon.Interval /= 1.05f;
                    }

                    ObjectPooler pooler = weapon.GetComponent<ObjectPooler>();
                    if (pooler != null)
                    {
                        //increase stats of pooled projectiles
                        foreach (GameObject obj in pooler.GetPooledObjects())
                        {
                            LaserController laser = obj.GetComponent<LaserController>();
                            UpgradeLaser(laser);
                        }
                    }
                }
            }
        }
    }