public override bool act_W() { if ((W_skill.level > 0) && (W_timer.is_over()) && (!W_flag) && can_cast()) { W_flag = true; W_timer.restart(); W_dur_timer.restart(); W_dmg_rdc_runtime = W_damage_reduction; update_dmg_reduction(); } return(false); }
public override void upgrade_skill(string str) { if (str == "Q") { if (Q_skill.level >= GameSceneConsts.max_skill_level) { return; } else { Q_skill.level += 1; switch (Q_skill.level) { case 1: Q_move_dur_timer.change_max_timer(1.5f); Q_skill.dmg = 30f; break; case 2: Q_move_dur_timer.change_max_timer(2.0f); Q_skill.dmg = 55f; break; case 3: Q_move_dur_timer.change_max_timer(2.5f); Q_skill.dmg = 80f; break; case 4: Q_move_dur_timer.change_max_timer(3.0f); Q_skill.dmg = 105f; break; case 5: Q_move_dur_timer.change_max_timer(3.5f); Q_skill.dmg = 130f; break; default: break; } } } else if (str == "W") { if (W_skill.level >= GameSceneConsts.max_skill_level) { return; } else { W_skill.level += 1; if (W_skill.level <= 0) { W_skill.cd = 24f; W_dur = 2f; } else { W_skill.cd = 25f - (float)W_skill.level; W_dur = 1 + (float)W_skill.level; } W_dur_timer.change_max_timer(W_dur); W_skill.timer.change_max_timer(W_skill.cd); } } else if (str == "E") { if (E_skill.level >= GameSceneConsts.max_skill_level) { return; } else { E_skill.level += 1; //update damage upon activate the skill } } else if (str == "R") { if (R_skill.level > GameSceneConsts.max_ult_level) { return; } else { R_skill.level += 1; R_skill.dmg = (float)R_skill.level * 175f; R_skill.cd = 140f - (float)R_skill.level * 20f; R_timer.change_max_timer(R_skill.cd); } } }
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(); } }