Exemplo n.º 1
0
 public override bool act_E()
 {
     if ((E_skill.level > 0) && (E_timer.is_over()) && (!E_flag) && can_cast())
     {
         E_flag = true;
         //how many times E deals damage
         int dmg_times = 5 + (int)((runtime_c_stats.level - 1 - ((runtime_c_stats.level - 1) % 3)) / 3);
         //the total damage of E
         update_E_damage();
         E_dur_timer.restart();
         E_timer.restart();
         E_obj = Instantiate(E_aoe_prefab, transform.position, transform.rotation) as GameObject;
         Types.damage_combo zero = new Types.damage_combo();
         zero.init();
         E_obj.GetComponent <Garen_E> ().init(this, E_dur_timer, dmg_times, E_damage);
         E_obj.name = "Garen_E_prefab";
         E_obj.transform.SetParent(transform.parent);
         return(true);
     }
     return(false);
 }
Exemplo n.º 2
0
    GameObject E_obj;    //runtime e object

    public override void update_timers()
    {
        if (!netID.isLocalPlayer)
        {
            return;
        }

        autoAtkTimer.update_timer();
        Q_timer.update_timer();
        W_timer.update_timer();
        E_timer.update_timer();
        R_timer.update_timer();
        Passive_timer.update_timer();
        death_timer.update_timer();

        if (!flags.is_dead)
        {
            regen_timer.update_timer();
            if (regen_timer.is_over())
            {
                regen_timer.reset_timer();
                change_health(runtime_u_stats.hp_reg);
                //TODO mana regen here
            }
        }

        //Q skills
        Q_dur_timer.update_timer();
        if (Q_dur_timer.is_over())
        {
            Q_dur_timer.reset_timer();
            Q_flag = false;
        }
        Q_move_dur_timer.update_timer();
        if (Q_move_dur_timer.is_over())
        {
            Q_move_dur_timer.reset_timer();
            bonus_u_stats_mult.move_speed -= Q_move_bonus;
            update_movement_speed();
        }
        W_dur_timer.update_timer();
        if (W_dur_timer.is_over())
        {
            W_dur_timer.reset_timer();
            W_flag            = false;
            W_dmg_rdc_runtime = 0f;
            update_dmg_reduction();
        }

        E_dur_timer.update_timer();
        if (E_dur_timer.is_over())
        {
            if (E_obj == null)
            {
                E_dur_timer.reset_timer();
            }

            E_flag = false;
        }

        //update and possibily, clear status
        List <Status> trashbin = new List <Status>();

        foreach (Status sts in status)
        {
            sts.update_status();
            if (sts.is_over())
            {
                trashbin.Add(sts);
            }
        }
        foreach (Status trash in trashbin)
        {
            flags.set_flag_from_string(trash.flags, false);
            status.Remove(trash);
        }
        trashbin.Clear();

        if (isPlayer)
        {
            refresh_player_panel();
        }
    }