<filename>mashinky/engines.py
import typing

from .types import Engine, Era, Payment, Token

ENGINES: typing.Sequence[Engine] = [
    Engine(
        name="0-4-0 Elishka",
        era=Era.EARLY_STEAM,
        requires_depot_extension=True,
        speed=28,
        capacity=159,
        power=170,
        weight=18,
        length=0.60,
        cost=[Payment(65, Token.MONEY)],
        operating_cost=[Payment(1, Token.MONEY)],
    ),
    Engine(
        name="2-6-0 Porter",
        era=Era.EARLY_STEAM,
        requires_depot_extension=False,
        speed=40,
        capacity=168,
        power=260,
        weight=55,
        length=1.12,
        cost=[Payment(40, Token.MONEY)],
        operating_cost=[Payment(1, Token.MONEY)],
    ),
    Engine(
        name="<NAME>",
        era=Era.EARLY_STEAM,
        requires_depot_extension=False,
        speed=43,
        capacity=174,
        power=290,
        weight=55,
        length=1.12,
        cost=[],
        operating_cost=[Payment(1, Token.MONEY)],
        quest_reward=True,
    ),
    Engine(
        name="4-6-0 Baldwin",
        era=Era.EARLY_STEAM,
        requires_depot_extension=False,
        speed=47,
        capacity=224,
        power=400,
        weight=80,
        length=1.11,
        cost=[Payment(20, Token.TIMBER)],
        operating_cost=[Payment(2, Token.MONEY)],
    ),
    Engine(
        name="2-10-0 Rusian",
        era=Era.EARLY_STEAM,
        requires_depot_extension=True,
        speed=60,
        capacity=306,
        power=700,
        weight=140,
        length=1.19,
        cost=[Payment(40, Token.COAL)],
        operating_cost=[Payment(1, Token.COAL)],
    ),
    Engine(
        name="<NAME>",
        era=Era.STEAM,
        requires_depot_extension=False,
        speed=31,
        capacity=202,
        power=240,
        weight=30,
        length=0.57,
        cost=[Payment(200, Token.MONEY)],
        operating_cost=[Payment(2, Token.MONEY)],
    ),
    Engine(
        name="2-8-4 Class 65",
        era=Era.STEAM,
        requires_depot_extension=False,
        speed=53,
        capacity=364,
        power=700,
        weight=110,
        length=1.07,
        cost=[Payment(50, Token.TIMBER)],
        operating_cost=[Payment(1, Token.COAL)],
    ),
    Engine(
        name="Class 65 Ruined",
        era=Era.STEAM,
        requires_depot_extension=False,
        speed=47,
        capacity=336,
        power=600,
        weight=110,
        length=1.07,
        cost=[],
        operating_cost=[Payment(1, Token.COAL)],
        quest_reward=True,
    ),
    Engine(
        name="GS-2",
        era=Era.STEAM,
        requires_depot_extension=True,
        speed=62,
        capacity=863,
        power=2050,
        weight=370,
        length=1.81,
        cost=[Payment(145, Token.MONEY), Payment(75, Token.COAL)],
        operating_cost=[Payment(2, Token.COAL)],
    ),
    Engine(  # https://store.steampowered.com/news/app/598960/view/4738306083308446645
        name="Philip",
        era=Era.EARLY_DIESEL,
        requires_depot_extension=True,
        speed=34,
        capacity=260,
        power=340,
        weight=28,
        length=0.47,
        cost=[Payment(265, Token.MONEY)],
        operating_cost=[Payment(3, Token.MONEY)],
    ),
    Engine(
        name="Br 3",
        era=Era.EARLY_DIESEL,
        requires_depot_extension=False,
        speed=31,
        capacity=252,
        power=300,
        weight=30,
        length=0.45,
        cost=[Payment(300, Token.MONEY)],
        operating_cost=[Payment(3, Token.MONEY)],
    ),
    Engine(
        name="Bdz 52",
        era=Era.EARLY_DIESEL,
        requires_depot_extension=False,
        speed=40,
        capacity=388,
        power=600,
        weight=50,
        length=0.65,
        cost=[Payment(50, Token.IRON), Payment(20, Token.DIESEL)],
        operating_cost=[Payment(1, Token.DIESEL)],
    ),
    Engine(
        name="Bdz 52+",
        era=Era.EARLY_DIESEL,
        requires_depot_extension=False,
        speed=43,
        capacity=390,
        power=650,
        weight=50,
        length=0.65,
        cost=[],
        operating_cost=[Payment(1, Token.DIESEL)],
        quest_reward=True,
    ),
    Engine(
        name="<NAME>",
        era=Era.EARLY_DIESEL,
        requires_depot_extension=True,
        speed=81,
        capacity=453,
        power=1400,
        weight=110,
        length=0.86,
        cost=[Payment(30, Token.IRON), Payment(60, Token.DIESEL)],
        operating_cost=[Payment(2, Token.DIESEL)],
    ),
    Engine(
        name="074 Bangle",
        era=Era.DIESEL,
        requires_depot_extension=False,
        speed=43,
        capacity=390,
        power=650,
        weight=75,
        length=0.78,
        cost=[Payment(250, Token.MONEY), Payment(10, Token.DIESEL)],
        operating_cost=[Payment(3, Token.MONEY)],
    ),
    Engine(
        name="<NAME>",
        era=Era.DIESEL,
        requires_depot_extension=False,
        speed=68,
        capacity=650,
        power=1700,
        weight=115,
        length=0.95,
        cost=[Payment(40, Token.IRON), Payment(40, Token.STEEL)],
        operating_cost=[Payment(2, Token.DIESEL)],
    ),
    Engine(
        name="<NAME>",
        era=Era.DIESEL,
        requires_depot_extension=False,
        speed=68,
        capacity=708,
        power=1850,
        weight=115,
        length=0.95,
        cost=[],
        operating_cost=[Payment(2, Token.DIESEL)],
        quest_reward=True,
    ),
    Engine(
        name="V220",
        era=Era.DIESEL,
        requires_depot_extension=False,
        speed=87,
        capacity=360,
        power=1200,
        weight=80,
        length=1.05,
        cost=[Payment(1000, Token.MONEY), Payment(30, Token.STEEL)],
        operating_cost=[Payment(1, Token.DIESEL)],
    ),
    Engine(
        name="<NAME>",
        era=Era.DIESEL,
        requires_depot_extension=True,
        speed=70,
        capacity=864,
        power=2800,
        weight=122,
        length=1.07,
        cost=[Payment(200, Token.STEEL)],
        operating_cost=[Payment(5, Token.MONEY), Payment(2, Token.DIESEL)],
    ),
    Engine(
        name="Ragulin",
        era=Era.EARLY_ELECTRIC,
        requires_depot_extension=False,
        speed=62,
        capacity=505,
        power=1200,
        weight=120,
        length=1.03,
        cost=[Payment(100, Token.IRON), Payment(50, Token.DIESEL)],
        operating_cost=[],
    ),
    Engine(
        name="Alligator",
        era=Era.EARLY_ELECTRIC,
        requires_depot_extension=False,
        speed=43,
        capacity=481,
        power=800,
        weight=66,
        length=0.85,
        cost=[Payment(300, Token.MONEY), Payment(5, Token.ELECTRIC)],
        operating_cost=[],
    ),
    Engine(
        name="E118",
        era=Era.EARLY_ELECTRIC,
        requires_depot_extension=False,
        speed=93,
        capacity=421,
        power=1500,
        weight=108,
        length=1.00,
        cost=[Payment(30, Token.IRON), Payment(30, Token.ELECTRIC)],
        operating_cost=[],
    ),
    Engine(
        name="<NAME>",
        era=Era.EARLY_ELECTRIC,
        requires_depot_extension=False,
        speed=68,
        capacity=765,
        power=2000,
        weight=101,
        length=1.20,
        cost=[Payment(100, Token.IRON), Payment(50, Token.ELECTRIC)],
        operating_cost=[],
    ),
    Engine(
        name="<NAME>",
        era=Era.EARLY_ELECTRIC,
        requires_depot_extension=False,
        speed=75,
        capacity=771,
        power=2200,
        weight=101,
        length=1.20,
        cost=[],
        operating_cost=[],
        quest_reward=True,
    ),
]

<filename>mashinky/engines.py
import typing

from .types import Engine, Era, Payment, Token

ENGINES: typing.Sequence[Engine] = [
    Engine(
        name="0-4-0 Elishka",
        era=Era.EARLY_STEAM,
        requires_depot_extension=True,
        speed=28,
        capacity=159,
        power=170,
        weight=18,
        length=0.60,
        cost=[Payment(65, Token.MONEY)],
        operating_cost=[Payment(1, Token.MONEY)],
    ),
    Engine(
        name="2-6-0 Porter",
        era=Era.EARLY_STEAM,
        requires_depot_extension=False,
        speed=40,
        capacity=168,
        power=260,
        weight=55,
        length=1.12,
        cost=[Payment(40, Token.MONEY)],
        operating_cost=[Payment(1, Token.MONEY)],
    ),
    Engine(
        name="<NAME>",
        era=Era.EARLY_STEAM,
        requires_depot_extension=False,
        speed=43,
        capacity=174,
        power=290,
        weight=55,
        length=1.12,
        cost=[],
        operating_cost=[Payment(1, Token.MONEY)],
        quest_reward=True,
    ),
    Engine(
        name="4-6-0 Baldwin",
        era=Era.EARLY_STEAM,
        requires_depot_extension=False,
        speed=47,
        capacity=224,
        power=400,
        weight=80,
        length=1.11,
        cost=[Payment(20, Token.TIMBER)],
        operating_cost=[Payment(2, Token.MONEY)],
    ),
    Engine(
        name="2-10-0 Rusian",
        era=Era.EARLY_STEAM,
        requires_depot_extension=True,
        speed=60,
        capacity=306,
        power=700,
        weight=140,
        length=1.19,
        cost=[Payment(40, Token.COAL)],
        operating_cost=[Payment(1, Token.COAL)],
    ),
    Engine(
        name="<NAME>",
        era=Era.STEAM,
        requires_depot_extension=False,
        speed=31,
        capacity=202,
        power=240,
        weight=30,
        length=0.57,
        cost=[Payment(200, Token.MONEY)],
        operating_cost=[Payment(2, Token.MONEY)],
    ),
    Engine(
        name="2-8-4 Class 65",
        era=Era.STEAM,
        requires_depot_extension=False,
        speed=53,
        capacity=364,
        power=700,
        weight=110,
        length=1.07,
        cost=[Payment(50, Token.TIMBER)],
        operating_cost=[Payment(1, Token.COAL)],
    ),
    Engine(
        name="Class 65 Ruined",
        era=Era.STEAM,
        requires_depot_extension=False,
        speed=47,
        capacity=336,
        power=600,
        weight=110,
        length=1.07,
        cost=[],
        operating_cost=[Payment(1, Token.COAL)],
        quest_reward=True,
    ),
    Engine(
        name="GS-2",
        era=Era.STEAM,
        requires_depot_extension=True,
        speed=62,
        capacity=863,
        power=2050,
        weight=370,
        length=1.81,
        cost=[Payment(145, Token.MONEY), Payment(75, Token.COAL)],
        operating_cost=[Payment(2, Token.COAL)],
    ),
    Engine(  # https://store.steampowered.com/news/app/598960/view/4738306083308446645
        name="Philip",
        era=Era.EARLY_DIESEL,
        requires_depot_extension=True,
        speed=34,
        capacity=260,
        power=340,
        weight=28,
        length=0.47,
        cost=[Payment(265, Token.MONEY)],
        operating_cost=[Payment(3, Token.MONEY)],
    ),
    Engine(
        name="Br 3",
        era=Era.EARLY_DIESEL,
        requires_depot_extension=False,
        speed=31,
        capacity=252,
        power=300,
        weight=30,
        length=0.45,
        cost=[Payment(300, Token.MONEY)],
        operating_cost=[Payment(3, Token.MONEY)],
    ),
    Engine(
        name="Bdz 52",
        era=Era.EARLY_DIESEL,
        requires_depot_extension=False,
        speed=40,
        capacity=388,
        power=600,
        weight=50,
        length=0.65,
        cost=[Payment(50, Token.IRON), Payment(20, Token.DIESEL)],
        operating_cost=[Payment(1, Token.DIESEL)],
    ),
    Engine(
        name="Bdz 52+",
        era=Era.EARLY_DIESEL,
        requires_depot_extension=False,
        speed=43,
        capacity=390,
        power=650,
        weight=50,
        length=0.65,
        cost=[],
        operating_cost=[Payment(1, Token.DIESEL)],
        quest_reward=True,
    ),
    Engine(
        name="<NAME>",
        era=Era.EARLY_DIESEL,
        requires_depot_extension=True,
        speed=81,
        capacity=453,
        power=1400,
        weight=110,
        length=0.86,
        cost=[Payment(30, Token.IRON), Payment(60, Token.DIESEL)],
        operating_cost=[Payment(2, Token.DIESEL)],
    ),
    Engine(
        name="074 Bangle",
        era=Era.DIESEL,
        requires_depot_extension=False,
        speed=43,
        capacity=390,
        power=650,
        weight=75,
        length=0.78,
        cost=[Payment(250, Token.MONEY), Payment(10, Token.DIESEL)],
        operating_cost=[Payment(3, Token.MONEY)],
    ),
    Engine(
        name="<NAME>",
        era=Era.DIESEL,
        requires_depot_extension=False,
        speed=68,
        capacity=650,
        power=1700,
        weight=115,
        length=0.95,
        cost=[Payment(40, Token.IRON), Payment(40, Token.STEEL)],
        operating_cost=[Payment(2, Token.DIESEL)],
    ),
    Engine(
        name="<NAME>",
        era=Era.DIESEL,
        requires_depot_extension=False,
        speed=68,
        capacity=708,
        power=1850,
        weight=115,
        length=0.95,
        cost=[],
        operating_cost=[Payment(2, Token.DIESEL)],
        quest_reward=True,
    ),
    Engine(
        name="V220",
        era=Era.DIESEL,
        requires_depot_extension=False,
        speed=87,
        capacity=360,
        power=1200,
        weight=80,
        length=1.05,
        cost=[Payment(1000, Token.MONEY), Payment(30, Token.STEEL)],
        operating_cost=[Payment(1, Token.DIESEL)],
    ),
    Engine(
        name="<NAME>",
        era=Era.DIESEL,
        requires_depot_extension=True,
        speed=70,
        capacity=864,
        power=2800,
        weight=122,
        length=1.07,
        cost=[Payment(200, Token.STEEL)],
        operating_cost=[Payment(5, Token.MONEY), Payment(2, Token.DIESEL)],
    ),
    Engine(
        name="Ragulin",
        era=Era.EARLY_ELECTRIC,
        requires_depot_extension=False,
        speed=62,
        capacity=505,
        power=1200,
        weight=120,
        length=1.03,
        cost=[Payment(100, Token.IRON), Payment(50, Token.DIESEL)],
        operating_cost=[],
    ),
    Engine(
        name="Alligator",
        era=Era.EARLY_ELECTRIC,
        requires_depot_extension=False,
        speed=43,
        capacity=481,
        power=800,
        weight=66,
        length=0.85,
        cost=[Payment(300, Token.MONEY), Payment(5, Token.ELECTRIC)],
        operating_cost=[],
    ),
    Engine(
        name="E118",
        era=Era.EARLY_ELECTRIC,
        requires_depot_extension=False,
        speed=93,
        capacity=421,
        power=1500,
        weight=108,
        length=1.00,
        cost=[Payment(30, Token.IRON), Payment(30, Token.ELECTRIC)],
        operating_cost=[],
    ),
    Engine(
        name="<NAME>",
        era=Era.EARLY_ELECTRIC,
        requires_depot_extension=False,
        speed=68,
        capacity=765,
        power=2000,
        weight=101,
        length=1.20,
        cost=[Payment(100, Token.IRON), Payment(50, Token.ELECTRIC)],
        operating_cost=[],
    ),
    Engine(
        name="<NAME>",
        era=Era.EARLY_ELECTRIC,
        requires_depot_extension=False,
        speed=75,
        capacity=771,
        power=2200,
        weight=101,
        length=1.20,
        cost=[],
        operating_cost=[],
        quest_reward=True,
    ),
]

# https://store.steampowered.com/news/app/598960/view/4738306083308446645