Beispiel #1
0
    protected override void OnEvent(TakeDamageEvent eventType)
    {
        SoundEvent soundEvent = new SoundEvent(eventType.entity.transform, eventType.sound);

        soundEvent.FireEvent();
        ParticleEvent particleEvent = new ParticleEvent(eventType.entity.transform, eventType.particle);

        particleEvent.FireEvent();
    }
    protected override void OnEvent(DeathEvent eventType)
    {
        SoundEvent soundEvent = new SoundEvent(eventType.entity.transform, eventType.deathSound);

        soundEvent.FireEvent();
        ParticleEvent particleEvent = new ParticleEvent(eventType.entity.transform, eventType.deathParticle);

        particleEvent.FireEvent();
        //Destroy(eventType.entity);

        eventType.entity.SetActive(false);
        EnemyManager.EnemyManagerRef.AddDeadEnemiesToDictionary(eventType.entity);
    }
Beispiel #3
0
    public int FireEvent(string eventName, int id = -1)
    {
        if (eventsDict.ContainsKey(eventName))
        {
            SoundEvent e = eventsDict[eventName];

            id = e.FireEvent(id);
        }
        else
        {
            Log.Hsz("Warning: Firing sound event that doesn't exist - " + eventName);
        }

        return(id);
    }
Beispiel #4
0
 public override void HandleUpdate()
 {
     if (Input.GetMouseButton(0) && fireRateTimer <= 0)
     {
         //ShootRifle();
         Shoot(bullet, fireSpeed);
         SoundEvent sound = new SoundEvent(owner.transform, shotSound);
         sound.FireEvent();
     }
     else if (Input.GetKeyDown(KeyCode.Tab))
     {
         //owner.Transition<GrenadeLauncher>();
     }
     base.HandleUpdate();
 }
Beispiel #5
0
 // Update is called once per frame
 void Update()
 {
     if (timer <= 0)
     {
         Destroy(gameObject);
     }
     if (Physics2D.OverlapCircle(gameObject.transform.position, 0.5f, LayerMask.GetMask("Player")))
     {
         ParticleEvent part = new ParticleEvent(gameObject.transform, particle);
         part.FireEvent();
         SoundEvent sound = new SoundEvent(gameObject.transform, audio);
         sound.FireEvent();
         GameManager.Instance.UpdateScore(10);
         Destroy(gameObject);
     }
     timer -= Time.deltaTime;
 }
Beispiel #6
0
    /// <summary>
    /// Denna metod börjar med att kontrollera skottets rörelse.
    /// Sedan görs en raycast som tittar ifall skottet studsar med något.
    /// Ifall skottet studsar med något beräknas infallsradianen,
    /// räknar ut den nya vikeln och sätter skottets nya färdrikning till den
    /// framräknade vikeln. Skottets snabbhet ökas och vi lägger även till en poäng
    /// på en räknare som sedan läggs till i poängsystemet om vi dödar en fiende.
    /// I slutet av metoden tittar vi så att hastigheten inte gått över maxhastigheten.
    /// </summary>
    void Update()
    {
        transform.position += transform.up * speed * Time.deltaTime;

        Ray2D        ray = new Ray2D(transform.position, transform.up);
        RaycastHit2D hit = Physics2D.Raycast(ray.origin, ray.direction, Time.deltaTime * speed + detection, collisionMask);

        if (hit.collider != null)
        {
            Vector2 v   = Vector2.Reflect(ray.direction, hit.normal);
            float   rot = Mathf.Atan2(v.x, v.y) * Mathf.Rad2Deg;
            transform.up = v;
            counter++;
            speed += speedIncrease;
            SoundEvent sound = new SoundEvent(transform, bounceSound);
            sound.FireEvent();
        }
        if (speed > maxSpeed)
        {
            speed = maxSpeed;
        }
    }