Skip to content

add transit by foot#547

Open
simupoppo wants to merge 4 commits into
teamhimeh:OTRP-KUTAv6from
simupoppo:OTRP-KUTA-RC_change_by_foot
Open

add transit by foot#547
simupoppo wants to merge 4 commits into
teamhimeh:OTRP-KUTAv6from
simupoppo:OTRP-KUTA-RC_change_by_foot

Conversation

@simupoppo

Copy link
Copy Markdown
Collaborator

徒歩連絡機能を実装しました。

  • 徒歩連絡のON/OFFは高度な設定より設定可能です
  • 徒歩連絡のルートコスト・所要時間も高度な設定で編集可能です
  • 徒歩連絡はstation_coverageの範囲にある駅に有効です

@simupoppo

Copy link
Copy Markdown
Collaborator Author

徒歩連絡の距離計算はkoord_distance()を使用し、最も近いタイル間の距離を測定しています。
この距離に、高度な設定で設定した1タイルあたりのルートコスト/所要時間加算値を追加して乗り換え時間/乗り換えコストとします

Comment thread simhalt.cc Outdated
// Only for the pax category, never for mail or goods.
if( welt->get_settings().is_transit_by_foot() && is_enabled(goods_manager_t::INDEX_PAS) ) {
const uint16 cov = welt->get_settings().get_station_coverage();
for( auto &other_halt : alle_haltestellen ) {

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

他の駅を全走査すると駅の数が増えた時が辛いので、対象駅の集客範囲内のタイルをチェックする方が大規模マップで計算量が増えにくいです。

@teamhimeh

Copy link
Copy Markdown
Owner

コードの変更内容を分析し、変更を網羅するための手動テストケースを作成しました。
予期せぬバグや互換性問題が潜んでいないか確認するため、以下のテストの実施を推奨します。

提案する手動テストケース

  • テストケース1:徒歩連絡機能の有効化・無効化の確認

    1. プレイヤーでA駅とB駅を近接して建設する。A駅とB駅は互いの駅勢圏(station_coverage)内にある状態にする。
    2. 高度な設定で「徒歩連絡」をONにする。A駅からB駅への徒歩ルートが接続され、旅客が徒歩で移動できることを確認する。
    3. 高度な設定で「徒歩連絡」をOFFにする。徒歩ルートが切断され、徒歩での移動が行われないことを確認する。
  • テストケース2:駅勢圏(station_coverage)外の駅への徒歩連絡の無効確認

    1. プレイヤーでA駅とB駅を、駅勢圏より離れた位置に建設する。
    2. 高度な設定で「徒歩連絡」をONにする。
    3. A駅とB駅間で徒歩ルートが生成されず、旅客が徒歩で移動しないことを確認する。
  • テストケース3:ルートコスト・所要時間の変更による経路選択の変化確認

    1. 徒歩連絡のルートコストと所要時間を変更する。
    2. コストや所要時間を極端に大きく設定した場合、旅客が徒歩を避け他の経路を選択することを確認する。
    3. コストや所要時間を極端に小さく設定した場合、旅客が徒歩ルートを優先的に選択することを確認する。
  • テストケース4:高さ(Z座標)の違いによるコスト加算の確認

    1. 同じ平面座標で高さの異なるA駅とB駅を建設する。
    2. 高さの差(z_diff)が徒歩連絡の距離計算に含まれ、コストや所要時間に反映されていることを確認する。
  • テストケース5:複数回の連続した徒歩連絡の制限(8回)の確認

    1. 駅を9個以上連続で近接して配置し、各駅間を徒歩連絡可能にする。
    2. 旅客が連続して徒歩移動するのは8回(8駅分)までであり、それ以上の連続徒歩移動が行われないことを確認する。

(Automated PR test case generation by AI agent)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants