Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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();
        }
    }
Esempio n. 3
0
    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);
            }
        }
    }
Esempio n. 4
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();
        }
    }