public override bool act_R() { if ((R_skill.level > 0) && (R_timer.is_over()) && can_cast() && cur_target_obj != null) { if (cur_target_obj.tag != GameSceneConsts.CHAMPION_TAG) { return(false); } R_timer.restart(); Champion tgt = cur_target_obj.GetComponent <Champion> (); float missing_health = tgt.runtime_u_stats.max_hp - tgt.runtime_u_stats.hp; float dmg = missing_health * 0.4f + R_skill.dmg; print("DEMACIA!!!!"); if (cur_target_obj == villian) { tgt.receive_damage(this, false, td: dmg); } else { tgt.receive_damage(this, false, md: dmg); } print(dmg); return(true); } return(false); }
public override void update_timers() { 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.in_combat) { inCombat_timer.update_timer(); if (inCombat_timer.is_over()) { change_incombat_state(false); } } 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 } } //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(); } }
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(); } }