// Update is called once per frame
    void Update()
    {
        if (dur_timer.get_time_remaining() <= 3f * 100f - (maxDmgTime - dmgTimeRemaining) * timeStep)
        {
            dmgTimeRemaining -= 1;
            float dmg_modifier = 1f;
            if (targets.Count == 1)
            {
                if (targets [0] != null)
                {
                    if (targets [0].gameObject.tag == GameSceneConsts.MINION_TAG)
                    {
                        dmg_modifier *= (1.33f * 0.75f);
                    }
                    else
                    {
                        dmg_modifier *= 1.33f;
                    }

                    if (Utility.is_crit(host.runtime_u_stats.crit_chance))
                    {
                        dmg_modifier *= 2f;
                    }

                    actual_dmg = dmg_modifier * dmg;
                    if (targets [0] != null)
                    {
                        targets [0].receive_damage(host, false, actual_dmg);
                    }
                }
            }
            else
            {
                foreach (Unit tgt in targets)
                {
                    if (tgt != null)
                    {
                        dmg_modifier = 1f;
                        if (Utility.is_crit(host.runtime_u_stats.crit_chance))
                        {
                            dmg_modifier *= 2f;
                        }

                        if (tgt.gameObject.tag == GameSceneConsts.MINION_TAG)
                        {
                            dmg_modifier *= 0.75f;
                            actual_dmg    = dmg_modifier * dmg;
                            if (tgt != null)
                            {
                                tgt.receive_damage(host, false, actual_dmg);
                            }
                        }
                        else
                        {
                            if (tgt != null)
                            {
                                tgt.receive_damage(host, false, dmg);
                            }
                        }
                    }
                }
            }
        }

        if (dur_timer.is_over() || (dmgTimeRemaining <= 0))
        {
            self_destroy();
        }
    }