Exemplo n.º 1
0
 protected override sealed void AreaOneInstanceApplyEffectEnemyHook(StatusManager enemy_sm)
 {
     enemy_sm.ApplyInstanceMagicalDamageFix(damage * status_manager.spell_power, status_manager);
     if(Random.value <= stun_chance)
     {
         enemy_sm.ApplyStun(stun_duration);
     }
 }
    protected override sealed void BasicAttackApplyEffectEnemyHook(StatusManager enemy_sm)
    {
        //apply damage, possible critical
        bool crit = (Random.value <= status_manager.crit_chance && status_manager.crit_chance != 0f);
        float damage = crit ?
            (status_manager.attack_damage * status_manager.crit_damage) : (status_manager.attack_damage);
        enemy_sm.ApplyInstancePhysicalAttackDamageFix(damage, status_manager);

        enemy_sm.TempChangePhysicalDamagePerSecFix(status_manager.posion_damage, status_manager.posion_dur);
        enemy_sm.ApplySlowAttack(status_manager.posion_attack_slow, status_manager.posion_dur);
        enemy_sm.ApplySlowMove(status_manager.posion_move_slow, status_manager.posion_dur);

        if(Random.value <= status_manager.stun_chance && status_manager.stun_chance != 0f)
        {
            enemy_sm.ApplyStun(status_manager.stun_dur);
        }
    }