├── server ├── lib │ ├── medusa │ │ ├── __init__.py │ │ ├── split_path.py │ │ ├── counter.py │ │ └── LICENSE.txt │ ├── pyasn1 │ │ ├── codec │ │ │ ├── __init__.py │ │ │ ├── ber │ │ │ │ ├── __init__.py │ │ │ │ └── eoo.py │ │ │ ├── cer │ │ │ │ ├── __init__.py │ │ │ │ └── decoder.py │ │ │ └── der │ │ │ │ ├── __init__.py │ │ │ │ ├── decoder.py │ │ │ │ └── encoder.py │ │ ├── compat │ │ │ ├── __init__.py │ │ │ └── octets.py │ │ ├── type │ │ │ ├── __init__.py │ │ │ ├── error.py │ │ │ ├── useful.py │ │ │ ├── namedval.py │ │ │ ├── tagmap.py │ │ │ └── char.py │ │ ├── __init__.py │ │ └── error.py │ ├── ige │ │ ├── ospace │ │ │ ├── Rules │ │ │ │ └── RESEARCH.txt │ │ │ ├── __init__.py │ │ │ ├── IAIPlayer.py │ │ │ └── INature.py │ │ ├── Index.py │ │ ├── Transaction.py │ │ ├── version.py │ │ ├── IDataHolder.py │ │ ├── __init__.py │ │ ├── IssueMngr.py │ │ ├── Const.py │ │ └── Authentication.py │ ├── igeclient │ │ └── __init__.py │ └── rsa │ │ ├── __init__.py │ │ ├── core.py │ │ ├── common.py │ │ └── randnum.py ├── website │ ├── block_bg.png │ ├── background.jpg │ ├── top_bar_bg.png │ └── index.html └── data │ ├── GalaxyNames.txt │ └── __init__.py ├── tools ├── Vera.ttf ├── i18n │ ├── msgfmt.py │ ├── pygettext.py │ └── update_po_files.sh ├── osstats.py └── dbtool.py ├── client ├── pygameui │ ├── demo │ │ ├── img.png │ │ ├── reddot.png │ │ ├── __init__.py │ │ ├── prof.py │ │ └── profres.py │ ├── OSSkin │ │ ├── empty.png │ │ ├── test.png │ │ ├── check_on.png │ │ ├── entry_en.png │ │ ├── menupop.wav │ │ ├── button_down.wav │ │ ├── button_up.wav │ │ ├── check_off.png │ │ ├── highlight.png │ │ ├── highlight.wav │ │ ├── button_dis_up.png │ │ ├── button_en_up.png │ │ ├── listitem_dis.png │ │ ├── listitem_sel.png │ │ ├── button_en_down.png │ │ ├── listitem_unsel.png │ │ ├── check_disabled_off.png │ │ ├── check_disabled_on.png │ │ └── togglebutton_en_down.png │ ├── DefaultSkin │ │ ├── button.dwn.png │ │ ├── button.foc.png │ │ ├── button.up.png │ │ └── config.ini │ ├── README.txt │ ├── ColorBox.py │ ├── Exception.py │ ├── ActiveLabel.py │ ├── Tooltip.py │ ├── TitleButton.py │ ├── Label.py │ ├── Title.py │ ├── ProgressBar.py │ ├── ArrowButton.py │ ├── Const.py │ ├── __init__.py │ ├── Item.py │ └── SimpleGridLM.py ├── resources │ ├── cursor.png │ ├── icon32.icns │ ├── icon48.icns │ ├── icon48.ico │ ├── icon48.png │ ├── ships │ │ ├── 00.png │ │ ├── 01.png │ │ ├── 10.png │ │ ├── 11.png │ │ ├── 20.png │ │ ├── 21.png │ │ └── 99.png │ ├── fonts │ │ ├── Vera.ttf │ │ └── DejaVuLGCSans.ttf │ ├── icons │ │ ├── buoy_1.png │ │ ├── buoy_2.png │ │ ├── buoy_3.png │ │ ├── buoy_4.png │ │ ├── combat.png │ │ ├── fuel_-.png │ │ ├── pir_00.png │ │ ├── pir_99.png │ │ ├── rep_1.png │ │ ├── rep_10.png │ │ ├── sg_01.png │ │ ├── sg_02.png │ │ ├── sg_03.png │ │ ├── sg_04.png │ │ ├── sg_05.png │ │ ├── sr_1.png │ │ ├── sr_2.png │ │ ├── sr_3.png │ │ ├── sr_4.png │ │ ├── sr_5.png │ │ ├── sr_6.png │ │ ├── sr_7.png │ │ ├── sr_8.png │ │ ├── fuel_00.png │ │ ├── fuel_25.png │ │ ├── fuel_50.png │ │ ├── fuel_75.png │ │ ├── fuel_99.png │ │ ├── ui_empty.png │ │ ├── buoy_3_plus.png │ │ ├── mines_ours.png │ │ ├── ui_morale.png │ │ ├── mines_unknown.png │ │ ├── ui_bio_stored.png │ │ ├── ui_en_stored.png │ │ ├── ui_population.png │ │ ├── ui_unemployed.png │ │ ├── ui_planet_energy.png │ │ ├── ui_system_energy.png │ │ ├── ui_planet_minerals.png │ │ ├── ui_environment_status.png │ │ ├── ui_planet_biomatter.png │ │ ├── ui_planet_free_slots.png │ │ ├── ui_planetary_shield.png │ │ ├── ui_strategic_resource.png │ │ ├── ui_system_biomatter.png │ │ ├── ui_planet_cp_production.png │ │ ├── ui_planet_rp_production.png │ │ ├── ui_system_cp_production.png │ │ └── ui_system_rp_production.png │ ├── logo-login.png │ ├── struct_off.png │ ├── techs │ │ ├── 0000.png │ │ ├── 0001.png │ │ ├── 0002.png │ │ ├── 1000.png │ │ ├── 1001.png │ │ ├── 1100.png │ │ ├── 1101.png │ │ ├── 1102.png │ │ ├── 1103.png │ │ ├── 1104.png │ │ ├── 1105.png │ │ ├── 1106.png │ │ ├── 1107.png │ │ ├── 1108.png │ │ ├── 1109.png │ │ ├── 1110.png │ │ ├── 1111.png │ │ ├── 1112.png │ │ ├── 1800.png │ │ ├── 1801.png │ │ ├── 1802.png │ │ ├── 2000.png │ │ ├── 2001.png │ │ ├── 2002.png │ │ ├── 2003.png │ │ ├── 2004.png │ │ ├── 2005.png │ │ ├── 2006.png │ │ ├── 2007.png │ │ ├── 2008.png │ │ ├── 2800.png │ │ ├── 2801.png │ │ ├── 2802.png │ │ ├── 2803.png │ │ ├── 2804.png │ │ ├── 2805.png │ │ ├── 3000.png │ │ ├── 3001.png │ │ ├── 3002.png │ │ ├── 3003.png │ │ ├── 3004.png │ │ ├── 3005.png │ │ ├── 3006.png │ │ ├── 3007.png │ │ ├── 3008.png │ │ ├── 3009.png │ │ ├── 3010.png │ │ ├── 3011.png │ │ ├── 3012.png │ │ ├── 3013.png │ │ ├── 3420.png │ │ ├── 3421.png │ │ ├── 3801.png │ │ ├── 3802.png │ │ ├── 3803.png │ │ ├── 4000.png │ │ ├── 4001.png │ │ ├── 4002.png │ │ ├── 4003.png │ │ ├── 4004.png │ │ ├── 4005.png │ │ ├── 4006.png │ │ ├── 4007.png │ │ ├── 4008.png │ │ ├── 4009.png │ │ ├── 4010.png │ │ ├── 4503.png │ │ ├── 4504.png │ │ ├── 5000.png │ │ ├── 5001.png │ │ ├── 5002.png │ │ ├── 5003.png │ │ ├── 5004.png │ │ ├── 5005.png │ │ ├── 5006.png │ │ ├── 5007.png │ │ ├── 5008.png │ │ ├── 5502.png │ │ ├── 5504.png │ │ ├── 5506.png │ │ ├── 5507.png │ │ ├── 5508.png │ │ ├── 5800.png │ │ ├── 5801.png │ │ ├── 5802.png │ │ ├── 5803.png │ │ ├── 5804.png │ │ ├── 5805.png │ │ ├── 5806.png │ │ ├── 5807.png │ │ ├── 5808.png │ │ ├── 6025.png │ │ ├── 6120.png │ │ ├── 6121.png │ │ ├── 6160.png │ │ ├── 6220.png │ │ ├── 6221.png │ │ ├── 6222.png │ │ ├── 6320.png │ │ ├── 6321.png │ │ ├── 6322.png │ │ ├── 6323.png │ │ ├── 6360.png │ │ ├── 9000.png │ │ ├── 9001.png │ │ ├── 9002.png │ │ ├── 9003.png │ │ ├── 9004.png │ │ ├── 9005.png │ │ ├── 9006.png │ │ ├── 9007.png │ │ ├── 9011.png │ │ ├── 9012.png │ │ ├── 9013.png │ │ ├── 9020.png │ │ ├── 9030.png │ │ ├── 9031.png │ │ ├── 9032.png │ │ ├── 9060.png │ │ ├── 9061.png │ │ ├── 9062.png │ │ ├── 9063.png │ │ ├── 9064.png │ │ ├── 9070.png │ │ ├── 9071.png │ │ ├── 9072.png │ │ ├── 9073.png │ │ ├── 9074.png │ │ ├── 9075.png │ │ ├── 9076.png │ │ ├── 9077.png │ │ └── 9999.png │ ├── bck1_1024x768.jpg │ ├── bck2_1024x768.jpg │ ├── bck3_1024x768.jpg │ ├── bck4_1024x768.jpg │ ├── bck5_1024x768.jpg │ ├── cmdInProgress.png │ ├── galaxy │ │ ├── star_-.png │ │ ├── star_A.png │ │ ├── star_B.png │ │ ├── star_C.png │ │ ├── star_D.png │ │ ├── star_F.png │ │ ├── star_G.png │ │ ├── star_K.png │ │ ├── star_M.png │ │ ├── star_O.png │ │ └── star_W.png │ ├── struct_problem.png │ ├── system │ │ ├── star_-.png │ │ ├── star_A.png │ │ ├── star_B.png │ │ ├── star_F.png │ │ ├── star_G.png │ │ ├── star_K.png │ │ ├── star_M.png │ │ ├── star_O.png │ │ ├── star_W.png │ │ ├── planet_A0.png │ │ ├── planet_A1.png │ │ ├── planet_C0.png │ │ ├── planet_C1.png │ │ ├── planet_D0.png │ │ ├── planet_D1.png │ │ ├── planet_D2.png │ │ ├── planet_D3.png │ │ ├── planet_D4.png │ │ ├── planet_E0.png │ │ ├── planet_E1.png │ │ ├── planet_E2.png │ │ ├── planet_G0.png │ │ ├── planet_G1.png │ │ ├── planet_G2.png │ │ ├── planet_G3.png │ │ ├── planet_G4.png │ │ ├── planet_G5.png │ │ ├── planet_G6.png │ │ ├── planet_G7.png │ │ ├── planet_G8.png │ │ ├── planet_H0.png │ │ ├── planet_H1.png │ │ ├── planet_H2.png │ │ ├── planet_H3.png │ │ ├── planet_I0.png │ │ ├── planet_I1.png │ │ ├── planet_I2.png │ │ ├── planet_M0.png │ │ ├── planet_R0.png │ │ ├── planet_R1.png │ │ ├── planet_R2.png │ │ ├── planet_R3.png │ │ ├── planet_R4.png │ │ └── planet_X0.png │ ├── themes │ │ ├── black │ │ │ ├── test.png │ │ │ ├── empty.png │ │ │ ├── button_up.wav │ │ │ ├── check_off.png │ │ │ ├── check_on.png │ │ │ ├── entry_en.png │ │ │ ├── highlight.png │ │ │ ├── highlight.wav │ │ │ ├── menupop.wav │ │ │ ├── button_down.wav │ │ │ ├── button_dis_up.png │ │ │ ├── button_en_down.png │ │ │ ├── button_en_high.png │ │ │ ├── button_en_up.png │ │ │ ├── listitem_dis.png │ │ │ ├── listitem_sel.png │ │ │ ├── listitem_unsel.png │ │ │ ├── button_foc_down.png │ │ │ ├── check_disabled_off.png │ │ │ ├── check_disabled_on.png │ │ │ └── togglebutton_en_down.png │ │ ├── blue │ │ │ ├── empty.png │ │ │ ├── test.png │ │ │ ├── menupop.wav │ │ │ ├── button_up.wav │ │ │ ├── check_off.png │ │ │ ├── check_on.png │ │ │ ├── entry_en.png │ │ │ ├── highlight.png │ │ │ ├── highlight.wav │ │ │ ├── button_down.wav │ │ │ ├── button_en_up.png │ │ │ ├── listitem_dis.png │ │ │ ├── listitem_sel.png │ │ │ ├── button_dis_up.png │ │ │ ├── button_en_down.png │ │ │ ├── button_en_high.png │ │ │ ├── listitem_unsel.png │ │ │ ├── check_disabled_on.png │ │ │ ├── check_disabled_off.png │ │ │ └── togglebutton_en_down.png │ │ ├── brown │ │ │ ├── test.png │ │ │ ├── empty.png │ │ │ ├── button_up.wav │ │ │ ├── check_off.png │ │ │ ├── check_on.png │ │ │ ├── entry_en.png │ │ │ ├── highlight.png │ │ │ ├── highlight.wav │ │ │ ├── menupop.wav │ │ │ ├── button_down.wav │ │ │ ├── button_dis_up.png │ │ │ ├── button_en_down.png │ │ │ ├── button_en_high.png │ │ │ ├── button_en_up.png │ │ │ ├── listitem_dis.png │ │ │ ├── listitem_sel.png │ │ │ ├── listitem_unsel.png │ │ │ ├── check_disabled_off.png │ │ │ ├── check_disabled_on.png │ │ │ └── togglebutton_en_down.png │ │ ├── gray │ │ │ ├── empty.png │ │ │ ├── test.png │ │ │ ├── check_off.png │ │ │ ├── check_on.png │ │ │ ├── entry_en.png │ │ │ ├── highlight.png │ │ │ ├── button_en_up.png │ │ │ ├── listitem_dis.png │ │ │ ├── listitem_sel.png │ │ │ ├── button_dis_up.png │ │ │ ├── button_en_down.png │ │ │ ├── button_en_high.png │ │ │ ├── listitem_unsel.png │ │ │ ├── check_disabled_on.png │ │ │ ├── check_disabled_off.png │ │ │ └── togglebutton_en_down.png │ │ ├── green │ │ │ ├── test.png │ │ │ ├── empty.png │ │ │ ├── button_up.wav │ │ │ ├── check_off.png │ │ │ ├── check_on.png │ │ │ ├── entry_en.png │ │ │ ├── highlight.png │ │ │ ├── highlight.wav │ │ │ ├── menupop.wav │ │ │ ├── button_down.wav │ │ │ ├── button_dis_up.png │ │ │ ├── button_en_down.png │ │ │ ├── button_en_high.png │ │ │ ├── button_en_up.png │ │ │ ├── listitem_dis.png │ │ │ ├── listitem_sel.png │ │ │ ├── listitem_unsel.png │ │ │ ├── check_disabled_off.png │ │ │ ├── check_disabled_on.png │ │ │ └── togglebutton_en_down.png │ │ └── silver │ │ │ ├── empty.png │ │ │ ├── test.png │ │ │ ├── check_on.png │ │ │ ├── entry_en.png │ │ │ ├── menupop.wav │ │ │ ├── button_up.wav │ │ │ ├── check_off.png │ │ │ ├── highlight.png │ │ │ ├── highlight.wav │ │ │ ├── button_dis_up.png │ │ │ ├── button_down.wav │ │ │ ├── button_en_up.png │ │ │ ├── listitem_dis.png │ │ │ ├── listitem_sel.png │ │ │ ├── button_en_down.png │ │ │ ├── button_en_high.png │ │ │ ├── listitem_unsel.png │ │ │ ├── check_disabled_off.png │ │ │ ├── check_disabled_on.png │ │ │ └── togglebutton_en_down.png │ ├── buttons │ │ ├── civ_active.png │ │ ├── grid_active.png │ │ ├── civ_inactive.png │ │ ├── gatenet_active.png │ │ ├── grid_inactive.png │ │ ├── lines_active.png │ │ ├── lines_inactive.png │ │ ├── ov_env_active.png │ │ ├── ov_fuel_active.png │ │ ├── ov_gate_active.png │ │ ├── ov_min_active.png │ │ ├── ov_slot_active.png │ │ ├── pzone_active.png │ │ ├── pzone_inactive.png │ │ ├── redir_active.png │ │ ├── redir_inactive.png │ │ ├── scanner_active.png │ │ ├── alternate_active.png │ │ ├── gatenet_inactive.png │ │ ├── ov_diplo_active.png │ │ ├── ov_env_inactive.png │ │ ├── ov_fuel_inactive.png │ │ ├── ov_gate_inactive.png │ │ ├── ov_min_inactive.png │ │ ├── ov_morale_active.png │ │ ├── ov_pirate_active.png │ │ ├── ov_slot_inactive.png │ │ ├── scanner_inactive.png │ │ ├── alternate_inactive.png │ │ ├── ov_diplo_inactive.png │ │ ├── ov_morale_inactive.png │ │ ├── ov_pirate_inactive.png │ │ ├── ov_piratecolony_active.png │ │ └── ov_piratecolony_inactive.png │ ├── translations │ │ ├── cs │ │ │ └── LC_MESSAGES │ │ │ │ └── OSPACE.mo │ │ ├── de │ │ │ └── LC_MESSAGES │ │ │ │ └── OSPACE.mo │ │ └── fr │ │ │ └── LC_MESSAGES │ │ │ └── OSPACE.mo │ └── __init__.py └── osci │ ├── __init__.py │ ├── dialog │ ├── __init__.py │ ├── Utils.py │ ├── ConsoleDlg.py │ └── ProgressDlg.py │ └── handler.py ├── tests ├── unittest.sh ├── proposed_scenarios └── chronicle_to_video.sh ├── .travis.yml ├── .gitignore ├── .pep8speaks.yml ├── client-ai ├── AIs │ ├── __init__.py │ └── ais_eden.py └── main_ai_pool.py └── .github └── workflows └── tests.yml /server/lib/medusa/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/lib/pyasn1/codec/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/lib/pyasn1/compat/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/lib/pyasn1/type/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/lib/pyasn1/codec/ber/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/lib/pyasn1/codec/cer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/lib/pyasn1/codec/der/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/lib/pyasn1/__init__.py: -------------------------------------------------------------------------------- 1 | majorVersionId = '1' 2 | -------------------------------------------------------------------------------- /tools/Vera.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/tools/Vera.ttf -------------------------------------------------------------------------------- /tools/i18n/msgfmt.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/tools/i18n/msgfmt.py -------------------------------------------------------------------------------- /tools/i18n/pygettext.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/tools/i18n/pygettext.py -------------------------------------------------------------------------------- /client/pygameui/demo/img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/demo/img.png -------------------------------------------------------------------------------- /client/resources/cursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/cursor.png -------------------------------------------------------------------------------- /client/resources/icon32.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icon32.icns -------------------------------------------------------------------------------- /client/resources/icon48.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icon48.icns -------------------------------------------------------------------------------- /client/resources/icon48.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icon48.ico -------------------------------------------------------------------------------- /client/resources/icon48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icon48.png -------------------------------------------------------------------------------- /server/website/block_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/server/website/block_bg.png -------------------------------------------------------------------------------- /client/resources/ships/00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/ships/00.png -------------------------------------------------------------------------------- /client/resources/ships/01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/ships/01.png -------------------------------------------------------------------------------- /client/resources/ships/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/ships/10.png -------------------------------------------------------------------------------- /client/resources/ships/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/ships/11.png -------------------------------------------------------------------------------- /client/resources/ships/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/ships/20.png -------------------------------------------------------------------------------- /client/resources/ships/21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/ships/21.png -------------------------------------------------------------------------------- /client/resources/ships/99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/ships/99.png -------------------------------------------------------------------------------- /server/website/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/server/website/background.jpg -------------------------------------------------------------------------------- /server/website/top_bar_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/server/website/top_bar_bg.png -------------------------------------------------------------------------------- /client/pygameui/OSSkin/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/empty.png -------------------------------------------------------------------------------- /client/pygameui/OSSkin/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/test.png -------------------------------------------------------------------------------- /client/pygameui/demo/reddot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/demo/reddot.png -------------------------------------------------------------------------------- /client/resources/fonts/Vera.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/fonts/Vera.ttf -------------------------------------------------------------------------------- /client/resources/icons/buoy_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/buoy_1.png -------------------------------------------------------------------------------- /client/resources/icons/buoy_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/buoy_2.png -------------------------------------------------------------------------------- /client/resources/icons/buoy_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/buoy_3.png -------------------------------------------------------------------------------- /client/resources/icons/buoy_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/buoy_4.png -------------------------------------------------------------------------------- /client/resources/icons/combat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/combat.png -------------------------------------------------------------------------------- /client/resources/icons/fuel_-.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/fuel_-.png -------------------------------------------------------------------------------- /client/resources/icons/pir_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/pir_00.png -------------------------------------------------------------------------------- /client/resources/icons/pir_99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/pir_99.png -------------------------------------------------------------------------------- /client/resources/icons/rep_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/rep_1.png -------------------------------------------------------------------------------- /client/resources/icons/rep_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/rep_10.png -------------------------------------------------------------------------------- /client/resources/icons/sg_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/sg_01.png -------------------------------------------------------------------------------- /client/resources/icons/sg_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/sg_02.png -------------------------------------------------------------------------------- /client/resources/icons/sg_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/sg_03.png -------------------------------------------------------------------------------- /client/resources/icons/sg_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/sg_04.png -------------------------------------------------------------------------------- /client/resources/icons/sg_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/sg_05.png -------------------------------------------------------------------------------- /client/resources/icons/sr_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/sr_1.png -------------------------------------------------------------------------------- /client/resources/icons/sr_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/sr_2.png -------------------------------------------------------------------------------- /client/resources/icons/sr_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/sr_3.png -------------------------------------------------------------------------------- /client/resources/icons/sr_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/sr_4.png -------------------------------------------------------------------------------- /client/resources/icons/sr_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/sr_5.png -------------------------------------------------------------------------------- /client/resources/icons/sr_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/sr_6.png -------------------------------------------------------------------------------- /client/resources/icons/sr_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/sr_7.png -------------------------------------------------------------------------------- /client/resources/icons/sr_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/sr_8.png -------------------------------------------------------------------------------- /client/resources/logo-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/logo-login.png -------------------------------------------------------------------------------- /client/resources/struct_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/struct_off.png -------------------------------------------------------------------------------- /client/resources/techs/0000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/0000.png -------------------------------------------------------------------------------- /client/resources/techs/0001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/0001.png -------------------------------------------------------------------------------- /client/resources/techs/0002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/0002.png -------------------------------------------------------------------------------- /client/resources/techs/1000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1000.png -------------------------------------------------------------------------------- /client/resources/techs/1001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1001.png -------------------------------------------------------------------------------- /client/resources/techs/1100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1100.png -------------------------------------------------------------------------------- /client/resources/techs/1101.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1101.png -------------------------------------------------------------------------------- /client/resources/techs/1102.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1102.png -------------------------------------------------------------------------------- /client/resources/techs/1103.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1103.png -------------------------------------------------------------------------------- /client/resources/techs/1104.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1104.png -------------------------------------------------------------------------------- /client/resources/techs/1105.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1105.png -------------------------------------------------------------------------------- /client/resources/techs/1106.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1106.png -------------------------------------------------------------------------------- /client/resources/techs/1107.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1107.png -------------------------------------------------------------------------------- /client/resources/techs/1108.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1108.png -------------------------------------------------------------------------------- /client/resources/techs/1109.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1109.png -------------------------------------------------------------------------------- /client/resources/techs/1110.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1110.png -------------------------------------------------------------------------------- /client/resources/techs/1111.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1111.png -------------------------------------------------------------------------------- /client/resources/techs/1112.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1112.png -------------------------------------------------------------------------------- /client/resources/techs/1800.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1800.png -------------------------------------------------------------------------------- /client/resources/techs/1801.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1801.png -------------------------------------------------------------------------------- /client/resources/techs/1802.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/1802.png -------------------------------------------------------------------------------- /client/resources/techs/2000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/2000.png -------------------------------------------------------------------------------- /client/resources/techs/2001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/2001.png -------------------------------------------------------------------------------- /client/resources/techs/2002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/2002.png -------------------------------------------------------------------------------- /client/resources/techs/2003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/2003.png -------------------------------------------------------------------------------- /client/resources/techs/2004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/2004.png -------------------------------------------------------------------------------- /client/resources/techs/2005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/2005.png -------------------------------------------------------------------------------- /client/resources/techs/2006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/2006.png -------------------------------------------------------------------------------- /client/resources/techs/2007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/2007.png -------------------------------------------------------------------------------- /client/resources/techs/2008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/2008.png -------------------------------------------------------------------------------- /client/resources/techs/2800.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/2800.png -------------------------------------------------------------------------------- /client/resources/techs/2801.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/2801.png -------------------------------------------------------------------------------- /client/resources/techs/2802.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/2802.png -------------------------------------------------------------------------------- /client/resources/techs/2803.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/2803.png -------------------------------------------------------------------------------- /client/resources/techs/2804.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/2804.png -------------------------------------------------------------------------------- /client/resources/techs/2805.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/2805.png -------------------------------------------------------------------------------- /client/resources/techs/3000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3000.png -------------------------------------------------------------------------------- /client/resources/techs/3001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3001.png -------------------------------------------------------------------------------- /client/resources/techs/3002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3002.png -------------------------------------------------------------------------------- /client/resources/techs/3003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3003.png -------------------------------------------------------------------------------- /client/resources/techs/3004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3004.png -------------------------------------------------------------------------------- /client/resources/techs/3005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3005.png -------------------------------------------------------------------------------- /client/resources/techs/3006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3006.png -------------------------------------------------------------------------------- /client/resources/techs/3007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3007.png -------------------------------------------------------------------------------- /client/resources/techs/3008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3008.png -------------------------------------------------------------------------------- /client/resources/techs/3009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3009.png -------------------------------------------------------------------------------- /client/resources/techs/3010.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3010.png -------------------------------------------------------------------------------- /client/resources/techs/3011.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3011.png -------------------------------------------------------------------------------- /client/resources/techs/3012.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3012.png -------------------------------------------------------------------------------- /client/resources/techs/3013.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3013.png -------------------------------------------------------------------------------- /client/resources/techs/3420.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3420.png -------------------------------------------------------------------------------- /client/resources/techs/3421.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3421.png -------------------------------------------------------------------------------- /client/resources/techs/3801.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3801.png -------------------------------------------------------------------------------- /client/resources/techs/3802.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3802.png -------------------------------------------------------------------------------- /client/resources/techs/3803.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/3803.png -------------------------------------------------------------------------------- /client/resources/techs/4000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/4000.png -------------------------------------------------------------------------------- /client/resources/techs/4001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/4001.png -------------------------------------------------------------------------------- /client/resources/techs/4002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/4002.png -------------------------------------------------------------------------------- /client/resources/techs/4003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/4003.png -------------------------------------------------------------------------------- /client/resources/techs/4004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/4004.png -------------------------------------------------------------------------------- /client/resources/techs/4005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/4005.png -------------------------------------------------------------------------------- /client/resources/techs/4006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/4006.png -------------------------------------------------------------------------------- /client/resources/techs/4007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/4007.png -------------------------------------------------------------------------------- /client/resources/techs/4008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/4008.png -------------------------------------------------------------------------------- /client/resources/techs/4009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/4009.png -------------------------------------------------------------------------------- /client/resources/techs/4010.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/4010.png -------------------------------------------------------------------------------- /client/resources/techs/4503.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/4503.png -------------------------------------------------------------------------------- /client/resources/techs/4504.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/4504.png -------------------------------------------------------------------------------- /client/resources/techs/5000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5000.png -------------------------------------------------------------------------------- /client/resources/techs/5001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5001.png -------------------------------------------------------------------------------- /client/resources/techs/5002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5002.png -------------------------------------------------------------------------------- /client/resources/techs/5003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5003.png -------------------------------------------------------------------------------- /client/resources/techs/5004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5004.png -------------------------------------------------------------------------------- /client/resources/techs/5005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5005.png -------------------------------------------------------------------------------- /client/resources/techs/5006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5006.png -------------------------------------------------------------------------------- /client/resources/techs/5007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5007.png -------------------------------------------------------------------------------- /client/resources/techs/5008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5008.png -------------------------------------------------------------------------------- /client/resources/techs/5502.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5502.png -------------------------------------------------------------------------------- /client/resources/techs/5504.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5504.png -------------------------------------------------------------------------------- /client/resources/techs/5506.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5506.png -------------------------------------------------------------------------------- /client/resources/techs/5507.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5507.png -------------------------------------------------------------------------------- /client/resources/techs/5508.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5508.png -------------------------------------------------------------------------------- /client/resources/techs/5800.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5800.png -------------------------------------------------------------------------------- /client/resources/techs/5801.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5801.png -------------------------------------------------------------------------------- /client/resources/techs/5802.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5802.png -------------------------------------------------------------------------------- /client/resources/techs/5803.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5803.png -------------------------------------------------------------------------------- /client/resources/techs/5804.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5804.png -------------------------------------------------------------------------------- /client/resources/techs/5805.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5805.png -------------------------------------------------------------------------------- /client/resources/techs/5806.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5806.png -------------------------------------------------------------------------------- /client/resources/techs/5807.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5807.png -------------------------------------------------------------------------------- /client/resources/techs/5808.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/5808.png -------------------------------------------------------------------------------- /client/resources/techs/6025.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/6025.png -------------------------------------------------------------------------------- /client/resources/techs/6120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/6120.png -------------------------------------------------------------------------------- /client/resources/techs/6121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/6121.png -------------------------------------------------------------------------------- /client/resources/techs/6160.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/6160.png -------------------------------------------------------------------------------- /client/resources/techs/6220.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/6220.png -------------------------------------------------------------------------------- /client/resources/techs/6221.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/6221.png -------------------------------------------------------------------------------- /client/resources/techs/6222.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/6222.png -------------------------------------------------------------------------------- /client/resources/techs/6320.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/6320.png -------------------------------------------------------------------------------- /client/resources/techs/6321.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/6321.png -------------------------------------------------------------------------------- /client/resources/techs/6322.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/6322.png -------------------------------------------------------------------------------- /client/resources/techs/6323.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/6323.png -------------------------------------------------------------------------------- /client/resources/techs/6360.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/6360.png -------------------------------------------------------------------------------- /client/resources/techs/9000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9000.png -------------------------------------------------------------------------------- /client/resources/techs/9001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9001.png -------------------------------------------------------------------------------- /client/resources/techs/9002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9002.png -------------------------------------------------------------------------------- /client/resources/techs/9003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9003.png -------------------------------------------------------------------------------- /client/resources/techs/9004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9004.png -------------------------------------------------------------------------------- /client/resources/techs/9005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9005.png -------------------------------------------------------------------------------- /client/resources/techs/9006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9006.png -------------------------------------------------------------------------------- /client/resources/techs/9007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9007.png -------------------------------------------------------------------------------- /client/resources/techs/9011.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9011.png -------------------------------------------------------------------------------- /client/resources/techs/9012.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9012.png -------------------------------------------------------------------------------- /client/resources/techs/9013.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9013.png -------------------------------------------------------------------------------- /client/resources/techs/9020.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9020.png -------------------------------------------------------------------------------- /client/resources/techs/9030.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9030.png -------------------------------------------------------------------------------- /client/resources/techs/9031.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9031.png -------------------------------------------------------------------------------- /client/resources/techs/9032.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9032.png -------------------------------------------------------------------------------- /client/resources/techs/9060.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9060.png -------------------------------------------------------------------------------- /client/resources/techs/9061.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9061.png -------------------------------------------------------------------------------- /client/resources/techs/9062.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9062.png -------------------------------------------------------------------------------- /client/resources/techs/9063.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9063.png -------------------------------------------------------------------------------- /client/resources/techs/9064.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9064.png -------------------------------------------------------------------------------- /client/resources/techs/9070.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9070.png -------------------------------------------------------------------------------- /client/resources/techs/9071.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9071.png -------------------------------------------------------------------------------- /client/resources/techs/9072.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9072.png -------------------------------------------------------------------------------- /client/resources/techs/9073.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9073.png -------------------------------------------------------------------------------- /client/resources/techs/9074.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9074.png -------------------------------------------------------------------------------- /client/resources/techs/9075.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9075.png -------------------------------------------------------------------------------- /client/resources/techs/9076.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9076.png -------------------------------------------------------------------------------- /client/resources/techs/9077.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9077.png -------------------------------------------------------------------------------- /client/resources/techs/9999.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/techs/9999.png -------------------------------------------------------------------------------- /client/pygameui/OSSkin/check_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/check_on.png -------------------------------------------------------------------------------- /client/pygameui/OSSkin/entry_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/entry_en.png -------------------------------------------------------------------------------- /client/pygameui/OSSkin/menupop.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/menupop.wav -------------------------------------------------------------------------------- /client/resources/bck1_1024x768.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/bck1_1024x768.jpg -------------------------------------------------------------------------------- /client/resources/bck2_1024x768.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/bck2_1024x768.jpg -------------------------------------------------------------------------------- /client/resources/bck3_1024x768.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/bck3_1024x768.jpg -------------------------------------------------------------------------------- /client/resources/bck4_1024x768.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/bck4_1024x768.jpg -------------------------------------------------------------------------------- /client/resources/bck5_1024x768.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/bck5_1024x768.jpg -------------------------------------------------------------------------------- /client/resources/cmdInProgress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/cmdInProgress.png -------------------------------------------------------------------------------- /client/resources/galaxy/star_-.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/galaxy/star_-.png -------------------------------------------------------------------------------- /client/resources/galaxy/star_A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/galaxy/star_A.png -------------------------------------------------------------------------------- /client/resources/galaxy/star_B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/galaxy/star_B.png -------------------------------------------------------------------------------- /client/resources/galaxy/star_C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/galaxy/star_C.png -------------------------------------------------------------------------------- /client/resources/galaxy/star_D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/galaxy/star_D.png -------------------------------------------------------------------------------- /client/resources/galaxy/star_F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/galaxy/star_F.png -------------------------------------------------------------------------------- /client/resources/galaxy/star_G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/galaxy/star_G.png -------------------------------------------------------------------------------- /client/resources/galaxy/star_K.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/galaxy/star_K.png -------------------------------------------------------------------------------- /client/resources/galaxy/star_M.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/galaxy/star_M.png -------------------------------------------------------------------------------- /client/resources/galaxy/star_O.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/galaxy/star_O.png -------------------------------------------------------------------------------- /client/resources/galaxy/star_W.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/galaxy/star_W.png -------------------------------------------------------------------------------- /client/resources/icons/fuel_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/fuel_00.png -------------------------------------------------------------------------------- /client/resources/icons/fuel_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/fuel_25.png -------------------------------------------------------------------------------- /client/resources/icons/fuel_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/fuel_50.png -------------------------------------------------------------------------------- /client/resources/icons/fuel_75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/fuel_75.png -------------------------------------------------------------------------------- /client/resources/icons/fuel_99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/fuel_99.png -------------------------------------------------------------------------------- /client/resources/icons/ui_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_empty.png -------------------------------------------------------------------------------- /client/resources/struct_problem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/struct_problem.png -------------------------------------------------------------------------------- /client/resources/system/star_-.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/star_-.png -------------------------------------------------------------------------------- /client/resources/system/star_A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/star_A.png -------------------------------------------------------------------------------- /client/resources/system/star_B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/star_B.png -------------------------------------------------------------------------------- /client/resources/system/star_F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/star_F.png -------------------------------------------------------------------------------- /client/resources/system/star_G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/star_G.png -------------------------------------------------------------------------------- /client/resources/system/star_K.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/star_K.png -------------------------------------------------------------------------------- /client/resources/system/star_M.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/star_M.png -------------------------------------------------------------------------------- /client/resources/system/star_O.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/star_O.png -------------------------------------------------------------------------------- /client/resources/system/star_W.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/star_W.png -------------------------------------------------------------------------------- /server/lib/pyasn1/type/error.py: -------------------------------------------------------------------------------- 1 | from pyasn1.error import PyAsn1Error 2 | 3 | class ValueConstraintError(PyAsn1Error): pass 4 | -------------------------------------------------------------------------------- /client/pygameui/OSSkin/button_down.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/button_down.wav -------------------------------------------------------------------------------- /client/pygameui/OSSkin/button_up.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/button_up.wav -------------------------------------------------------------------------------- /client/pygameui/OSSkin/check_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/check_off.png -------------------------------------------------------------------------------- /client/pygameui/OSSkin/highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/highlight.png -------------------------------------------------------------------------------- /client/pygameui/OSSkin/highlight.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/highlight.wav -------------------------------------------------------------------------------- /client/resources/icons/buoy_3_plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/buoy_3_plus.png -------------------------------------------------------------------------------- /client/resources/icons/mines_ours.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/mines_ours.png -------------------------------------------------------------------------------- /client/resources/icons/ui_morale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_morale.png -------------------------------------------------------------------------------- /client/resources/system/planet_A0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_A0.png -------------------------------------------------------------------------------- /client/resources/system/planet_A1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_A1.png -------------------------------------------------------------------------------- /client/resources/system/planet_C0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_C0.png -------------------------------------------------------------------------------- /client/resources/system/planet_C1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_C1.png -------------------------------------------------------------------------------- /client/resources/system/planet_D0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_D0.png -------------------------------------------------------------------------------- /client/resources/system/planet_D1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_D1.png -------------------------------------------------------------------------------- /client/resources/system/planet_D2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_D2.png -------------------------------------------------------------------------------- /client/resources/system/planet_D3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_D3.png -------------------------------------------------------------------------------- /client/resources/system/planet_D4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_D4.png -------------------------------------------------------------------------------- /client/resources/system/planet_E0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_E0.png -------------------------------------------------------------------------------- /client/resources/system/planet_E1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_E1.png -------------------------------------------------------------------------------- /client/resources/system/planet_E2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_E2.png -------------------------------------------------------------------------------- /client/resources/system/planet_G0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_G0.png -------------------------------------------------------------------------------- /client/resources/system/planet_G1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_G1.png -------------------------------------------------------------------------------- /client/resources/system/planet_G2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_G2.png -------------------------------------------------------------------------------- /client/resources/system/planet_G3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_G3.png -------------------------------------------------------------------------------- /client/resources/system/planet_G4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_G4.png -------------------------------------------------------------------------------- /client/resources/system/planet_G5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_G5.png -------------------------------------------------------------------------------- /client/resources/system/planet_G6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_G6.png -------------------------------------------------------------------------------- /client/resources/system/planet_G7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_G7.png -------------------------------------------------------------------------------- /client/resources/system/planet_G8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_G8.png -------------------------------------------------------------------------------- /client/resources/system/planet_H0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_H0.png -------------------------------------------------------------------------------- /client/resources/system/planet_H1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_H1.png -------------------------------------------------------------------------------- /client/resources/system/planet_H2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_H2.png -------------------------------------------------------------------------------- /client/resources/system/planet_H3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_H3.png -------------------------------------------------------------------------------- /client/resources/system/planet_I0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_I0.png -------------------------------------------------------------------------------- /client/resources/system/planet_I1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_I1.png -------------------------------------------------------------------------------- /client/resources/system/planet_I2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_I2.png -------------------------------------------------------------------------------- /client/resources/system/planet_M0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_M0.png -------------------------------------------------------------------------------- /client/resources/system/planet_R0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_R0.png -------------------------------------------------------------------------------- /client/resources/system/planet_R1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_R1.png -------------------------------------------------------------------------------- /client/resources/system/planet_R2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_R2.png -------------------------------------------------------------------------------- /client/resources/system/planet_R3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_R3.png -------------------------------------------------------------------------------- /client/resources/system/planet_R4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_R4.png -------------------------------------------------------------------------------- /client/resources/system/planet_X0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/system/planet_X0.png -------------------------------------------------------------------------------- /client/resources/themes/black/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/test.png -------------------------------------------------------------------------------- /client/resources/themes/blue/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/empty.png -------------------------------------------------------------------------------- /client/resources/themes/blue/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/test.png -------------------------------------------------------------------------------- /client/resources/themes/brown/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/test.png -------------------------------------------------------------------------------- /client/resources/themes/gray/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/gray/empty.png -------------------------------------------------------------------------------- /client/resources/themes/gray/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/gray/test.png -------------------------------------------------------------------------------- /client/resources/themes/green/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/test.png -------------------------------------------------------------------------------- /client/pygameui/OSSkin/button_dis_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/button_dis_up.png -------------------------------------------------------------------------------- /client/pygameui/OSSkin/button_en_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/button_en_up.png -------------------------------------------------------------------------------- /client/pygameui/OSSkin/listitem_dis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/listitem_dis.png -------------------------------------------------------------------------------- /client/pygameui/OSSkin/listitem_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/listitem_sel.png -------------------------------------------------------------------------------- /client/resources/buttons/civ_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/civ_active.png -------------------------------------------------------------------------------- /client/resources/buttons/grid_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/grid_active.png -------------------------------------------------------------------------------- /client/resources/fonts/DejaVuLGCSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/fonts/DejaVuLGCSans.ttf -------------------------------------------------------------------------------- /client/resources/icons/mines_unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/mines_unknown.png -------------------------------------------------------------------------------- /client/resources/icons/ui_bio_stored.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_bio_stored.png -------------------------------------------------------------------------------- /client/resources/icons/ui_en_stored.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_en_stored.png -------------------------------------------------------------------------------- /client/resources/icons/ui_population.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_population.png -------------------------------------------------------------------------------- /client/resources/icons/ui_unemployed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_unemployed.png -------------------------------------------------------------------------------- /client/resources/themes/black/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/empty.png -------------------------------------------------------------------------------- /client/resources/themes/blue/menupop.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/menupop.wav -------------------------------------------------------------------------------- /client/resources/themes/brown/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/empty.png -------------------------------------------------------------------------------- /client/resources/themes/green/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/empty.png -------------------------------------------------------------------------------- /client/resources/themes/silver/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/empty.png -------------------------------------------------------------------------------- /client/resources/themes/silver/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/test.png -------------------------------------------------------------------------------- /client/pygameui/DefaultSkin/button.dwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/DefaultSkin/button.dwn.png -------------------------------------------------------------------------------- /client/pygameui/DefaultSkin/button.foc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/DefaultSkin/button.foc.png -------------------------------------------------------------------------------- /client/pygameui/DefaultSkin/button.up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/DefaultSkin/button.up.png -------------------------------------------------------------------------------- /client/pygameui/OSSkin/button_en_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/button_en_down.png -------------------------------------------------------------------------------- /client/pygameui/OSSkin/listitem_unsel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/listitem_unsel.png -------------------------------------------------------------------------------- /client/resources/buttons/civ_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/civ_inactive.png -------------------------------------------------------------------------------- /client/resources/buttons/gatenet_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/gatenet_active.png -------------------------------------------------------------------------------- /client/resources/buttons/grid_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/grid_inactive.png -------------------------------------------------------------------------------- /client/resources/buttons/lines_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/lines_active.png -------------------------------------------------------------------------------- /client/resources/buttons/lines_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/lines_inactive.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_env_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_env_active.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_fuel_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_fuel_active.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_gate_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_gate_active.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_min_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_min_active.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_slot_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_slot_active.png -------------------------------------------------------------------------------- /client/resources/buttons/pzone_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/pzone_active.png -------------------------------------------------------------------------------- /client/resources/buttons/pzone_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/pzone_inactive.png -------------------------------------------------------------------------------- /client/resources/buttons/redir_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/redir_active.png -------------------------------------------------------------------------------- /client/resources/buttons/redir_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/redir_inactive.png -------------------------------------------------------------------------------- /client/resources/buttons/scanner_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/scanner_active.png -------------------------------------------------------------------------------- /client/resources/icons/ui_planet_energy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_planet_energy.png -------------------------------------------------------------------------------- /client/resources/icons/ui_system_energy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_system_energy.png -------------------------------------------------------------------------------- /client/resources/themes/black/button_up.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/button_up.wav -------------------------------------------------------------------------------- /client/resources/themes/black/check_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/check_off.png -------------------------------------------------------------------------------- /client/resources/themes/black/check_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/check_on.png -------------------------------------------------------------------------------- /client/resources/themes/black/entry_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/entry_en.png -------------------------------------------------------------------------------- /client/resources/themes/black/highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/highlight.png -------------------------------------------------------------------------------- /client/resources/themes/black/highlight.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/highlight.wav -------------------------------------------------------------------------------- /client/resources/themes/black/menupop.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/menupop.wav -------------------------------------------------------------------------------- /client/resources/themes/blue/button_up.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/button_up.wav -------------------------------------------------------------------------------- /client/resources/themes/blue/check_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/check_off.png -------------------------------------------------------------------------------- /client/resources/themes/blue/check_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/check_on.png -------------------------------------------------------------------------------- /client/resources/themes/blue/entry_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/entry_en.png -------------------------------------------------------------------------------- /client/resources/themes/blue/highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/highlight.png -------------------------------------------------------------------------------- /client/resources/themes/blue/highlight.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/highlight.wav -------------------------------------------------------------------------------- /client/resources/themes/brown/button_up.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/button_up.wav -------------------------------------------------------------------------------- /client/resources/themes/brown/check_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/check_off.png -------------------------------------------------------------------------------- /client/resources/themes/brown/check_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/check_on.png -------------------------------------------------------------------------------- /client/resources/themes/brown/entry_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/entry_en.png -------------------------------------------------------------------------------- /client/resources/themes/brown/highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/highlight.png -------------------------------------------------------------------------------- /client/resources/themes/brown/highlight.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/highlight.wav -------------------------------------------------------------------------------- /client/resources/themes/brown/menupop.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/menupop.wav -------------------------------------------------------------------------------- /client/resources/themes/gray/check_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/gray/check_off.png -------------------------------------------------------------------------------- /client/resources/themes/gray/check_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/gray/check_on.png -------------------------------------------------------------------------------- /client/resources/themes/gray/entry_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/gray/entry_en.png -------------------------------------------------------------------------------- /client/resources/themes/gray/highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/gray/highlight.png -------------------------------------------------------------------------------- /client/resources/themes/green/button_up.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/button_up.wav -------------------------------------------------------------------------------- /client/resources/themes/green/check_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/check_off.png -------------------------------------------------------------------------------- /client/resources/themes/green/check_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/check_on.png -------------------------------------------------------------------------------- /client/resources/themes/green/entry_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/entry_en.png -------------------------------------------------------------------------------- /client/resources/themes/green/highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/highlight.png -------------------------------------------------------------------------------- /client/resources/themes/green/highlight.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/highlight.wav -------------------------------------------------------------------------------- /client/resources/themes/green/menupop.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/menupop.wav -------------------------------------------------------------------------------- /client/resources/themes/silver/check_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/check_on.png -------------------------------------------------------------------------------- /client/resources/themes/silver/entry_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/entry_en.png -------------------------------------------------------------------------------- /client/resources/themes/silver/menupop.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/menupop.wav -------------------------------------------------------------------------------- /client/pygameui/OSSkin/check_disabled_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/check_disabled_off.png -------------------------------------------------------------------------------- /client/pygameui/OSSkin/check_disabled_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/check_disabled_on.png -------------------------------------------------------------------------------- /client/resources/buttons/alternate_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/alternate_active.png -------------------------------------------------------------------------------- /client/resources/buttons/gatenet_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/gatenet_inactive.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_diplo_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_diplo_active.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_env_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_env_inactive.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_fuel_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_fuel_inactive.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_gate_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_gate_inactive.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_min_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_min_inactive.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_morale_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_morale_active.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_pirate_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_pirate_active.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_slot_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_slot_inactive.png -------------------------------------------------------------------------------- /client/resources/buttons/scanner_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/scanner_inactive.png -------------------------------------------------------------------------------- /client/resources/icons/ui_planet_minerals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_planet_minerals.png -------------------------------------------------------------------------------- /client/resources/themes/black/button_down.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/button_down.wav -------------------------------------------------------------------------------- /client/resources/themes/blue/button_down.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/button_down.wav -------------------------------------------------------------------------------- /client/resources/themes/blue/button_en_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/button_en_up.png -------------------------------------------------------------------------------- /client/resources/themes/blue/listitem_dis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/listitem_dis.png -------------------------------------------------------------------------------- /client/resources/themes/blue/listitem_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/listitem_sel.png -------------------------------------------------------------------------------- /client/resources/themes/brown/button_down.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/button_down.wav -------------------------------------------------------------------------------- /client/resources/themes/gray/button_en_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/gray/button_en_up.png -------------------------------------------------------------------------------- /client/resources/themes/gray/listitem_dis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/gray/listitem_dis.png -------------------------------------------------------------------------------- /client/resources/themes/gray/listitem_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/gray/listitem_sel.png -------------------------------------------------------------------------------- /client/resources/themes/green/button_down.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/button_down.wav -------------------------------------------------------------------------------- /client/resources/themes/silver/button_up.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/button_up.wav -------------------------------------------------------------------------------- /client/resources/themes/silver/check_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/check_off.png -------------------------------------------------------------------------------- /client/resources/themes/silver/highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/highlight.png -------------------------------------------------------------------------------- /client/resources/themes/silver/highlight.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/highlight.wav -------------------------------------------------------------------------------- /tests/unittest.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | cd "${BASH_SOURCE%/*}/.." || exit 4 | 5 | 6 | PYTHONPATH=client/pygameui python2 -m unittest Text 7 | -------------------------------------------------------------------------------- /client/pygameui/OSSkin/togglebutton_en_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/pygameui/OSSkin/togglebutton_en_down.png -------------------------------------------------------------------------------- /client/resources/buttons/alternate_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/alternate_inactive.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_diplo_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_diplo_inactive.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_morale_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_morale_inactive.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_pirate_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_pirate_inactive.png -------------------------------------------------------------------------------- /client/resources/icons/ui_environment_status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_environment_status.png -------------------------------------------------------------------------------- /client/resources/icons/ui_planet_biomatter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_planet_biomatter.png -------------------------------------------------------------------------------- /client/resources/icons/ui_planet_free_slots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_planet_free_slots.png -------------------------------------------------------------------------------- /client/resources/icons/ui_planetary_shield.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_planetary_shield.png -------------------------------------------------------------------------------- /client/resources/icons/ui_strategic_resource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_strategic_resource.png -------------------------------------------------------------------------------- /client/resources/icons/ui_system_biomatter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_system_biomatter.png -------------------------------------------------------------------------------- /client/resources/themes/black/button_dis_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/button_dis_up.png -------------------------------------------------------------------------------- /client/resources/themes/black/button_en_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/button_en_down.png -------------------------------------------------------------------------------- /client/resources/themes/black/button_en_high.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/button_en_high.png -------------------------------------------------------------------------------- /client/resources/themes/black/button_en_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/button_en_up.png -------------------------------------------------------------------------------- /client/resources/themes/black/listitem_dis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/listitem_dis.png -------------------------------------------------------------------------------- /client/resources/themes/black/listitem_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/listitem_sel.png -------------------------------------------------------------------------------- /client/resources/themes/black/listitem_unsel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/listitem_unsel.png -------------------------------------------------------------------------------- /client/resources/themes/blue/button_dis_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/button_dis_up.png -------------------------------------------------------------------------------- /client/resources/themes/blue/button_en_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/button_en_down.png -------------------------------------------------------------------------------- /client/resources/themes/blue/button_en_high.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/button_en_high.png -------------------------------------------------------------------------------- /client/resources/themes/blue/listitem_unsel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/listitem_unsel.png -------------------------------------------------------------------------------- /client/resources/themes/brown/button_dis_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/button_dis_up.png -------------------------------------------------------------------------------- /client/resources/themes/brown/button_en_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/button_en_down.png -------------------------------------------------------------------------------- /client/resources/themes/brown/button_en_high.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/button_en_high.png -------------------------------------------------------------------------------- /client/resources/themes/brown/button_en_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/button_en_up.png -------------------------------------------------------------------------------- /client/resources/themes/brown/listitem_dis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/listitem_dis.png -------------------------------------------------------------------------------- /client/resources/themes/brown/listitem_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/listitem_sel.png -------------------------------------------------------------------------------- /client/resources/themes/brown/listitem_unsel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/listitem_unsel.png -------------------------------------------------------------------------------- /client/resources/themes/gray/button_dis_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/gray/button_dis_up.png -------------------------------------------------------------------------------- /client/resources/themes/gray/button_en_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/gray/button_en_down.png -------------------------------------------------------------------------------- /client/resources/themes/gray/button_en_high.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/gray/button_en_high.png -------------------------------------------------------------------------------- /client/resources/themes/gray/listitem_unsel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/gray/listitem_unsel.png -------------------------------------------------------------------------------- /client/resources/themes/green/button_dis_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/button_dis_up.png -------------------------------------------------------------------------------- /client/resources/themes/green/button_en_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/button_en_down.png -------------------------------------------------------------------------------- /client/resources/themes/green/button_en_high.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/button_en_high.png -------------------------------------------------------------------------------- /client/resources/themes/green/button_en_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/button_en_up.png -------------------------------------------------------------------------------- /client/resources/themes/green/listitem_dis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/listitem_dis.png -------------------------------------------------------------------------------- /client/resources/themes/green/listitem_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/listitem_sel.png -------------------------------------------------------------------------------- /client/resources/themes/green/listitem_unsel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/listitem_unsel.png -------------------------------------------------------------------------------- /client/resources/themes/silver/button_dis_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/button_dis_up.png -------------------------------------------------------------------------------- /client/resources/themes/silver/button_down.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/button_down.wav -------------------------------------------------------------------------------- /client/resources/themes/silver/button_en_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/button_en_up.png -------------------------------------------------------------------------------- /client/resources/themes/silver/listitem_dis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/listitem_dis.png -------------------------------------------------------------------------------- /client/resources/themes/silver/listitem_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/listitem_sel.png -------------------------------------------------------------------------------- /client/resources/icons/ui_planet_cp_production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_planet_cp_production.png -------------------------------------------------------------------------------- /client/resources/icons/ui_planet_rp_production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_planet_rp_production.png -------------------------------------------------------------------------------- /client/resources/icons/ui_system_cp_production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_system_cp_production.png -------------------------------------------------------------------------------- /client/resources/icons/ui_system_rp_production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/icons/ui_system_rp_production.png -------------------------------------------------------------------------------- /client/resources/themes/black/button_foc_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/button_foc_down.png -------------------------------------------------------------------------------- /client/resources/themes/blue/check_disabled_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/check_disabled_on.png -------------------------------------------------------------------------------- /client/resources/themes/gray/check_disabled_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/gray/check_disabled_on.png -------------------------------------------------------------------------------- /client/resources/themes/silver/button_en_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/button_en_down.png -------------------------------------------------------------------------------- /client/resources/themes/silver/button_en_high.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/button_en_high.png -------------------------------------------------------------------------------- /client/resources/themes/silver/listitem_unsel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/listitem_unsel.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_piratecolony_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_piratecolony_active.png -------------------------------------------------------------------------------- /client/resources/buttons/ov_piratecolony_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/buttons/ov_piratecolony_inactive.png -------------------------------------------------------------------------------- /client/resources/themes/black/check_disabled_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/check_disabled_off.png -------------------------------------------------------------------------------- /client/resources/themes/black/check_disabled_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/check_disabled_on.png -------------------------------------------------------------------------------- /client/resources/themes/blue/check_disabled_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/check_disabled_off.png -------------------------------------------------------------------------------- /client/resources/themes/blue/togglebutton_en_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/blue/togglebutton_en_down.png -------------------------------------------------------------------------------- /client/resources/themes/brown/check_disabled_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/check_disabled_off.png -------------------------------------------------------------------------------- /client/resources/themes/brown/check_disabled_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/check_disabled_on.png -------------------------------------------------------------------------------- /client/resources/themes/gray/check_disabled_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/gray/check_disabled_off.png -------------------------------------------------------------------------------- /client/resources/themes/gray/togglebutton_en_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/gray/togglebutton_en_down.png -------------------------------------------------------------------------------- /client/resources/themes/green/check_disabled_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/check_disabled_off.png -------------------------------------------------------------------------------- /client/resources/themes/green/check_disabled_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/check_disabled_on.png -------------------------------------------------------------------------------- /client/resources/themes/silver/check_disabled_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/check_disabled_off.png -------------------------------------------------------------------------------- /client/resources/themes/silver/check_disabled_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/check_disabled_on.png -------------------------------------------------------------------------------- /client/resources/themes/black/togglebutton_en_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/black/togglebutton_en_down.png -------------------------------------------------------------------------------- /client/resources/themes/brown/togglebutton_en_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/brown/togglebutton_en_down.png -------------------------------------------------------------------------------- /client/resources/themes/green/togglebutton_en_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/green/togglebutton_en_down.png -------------------------------------------------------------------------------- /client/resources/themes/silver/togglebutton_en_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/themes/silver/togglebutton_en_down.png -------------------------------------------------------------------------------- /client/resources/translations/cs/LC_MESSAGES/OSPACE.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/translations/cs/LC_MESSAGES/OSPACE.mo -------------------------------------------------------------------------------- /client/resources/translations/de/LC_MESSAGES/OSPACE.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/translations/de/LC_MESSAGES/OSPACE.mo -------------------------------------------------------------------------------- /client/resources/translations/fr/LC_MESSAGES/OSPACE.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ospaceteam/outerspace/HEAD/client/resources/translations/fr/LC_MESSAGES/OSPACE.mo -------------------------------------------------------------------------------- /server/lib/pyasn1/error.py: -------------------------------------------------------------------------------- 1 | class PyAsn1Error(Exception): pass 2 | class ValueConstraintError(PyAsn1Error): pass 3 | class SubstrateUnderrunError(PyAsn1Error): pass 4 | -------------------------------------------------------------------------------- /server/data/GalaxyNames.txt: -------------------------------------------------------------------------------- 1 | Argo 2 | Beidos 3 | Ceelia 4 | Daela 5 | Everen 6 | Ferun 7 | Garis 8 | Hiron 9 | Inera 10 | Jinx 11 | Kelenor 12 | Larion 13 | Merlis 14 | -------------------------------------------------------------------------------- /server/lib/pyasn1/codec/der/decoder.py: -------------------------------------------------------------------------------- 1 | # DER decoder 2 | from pyasn1.type import univ 3 | from pyasn1.codec.cer import decoder 4 | 5 | decode = decoder.Decoder(decoder.tagMap, decoder.typeMap) 6 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | python: 3 | - "2.7" 4 | 5 | install: 6 | - pip install -q passlib pygame 7 | 8 | script: 9 | - ./tests/unittest.sh 10 | - ./tests/smoke_test.py --travis 11 | -------------------------------------------------------------------------------- /server/lib/pyasn1/codec/ber/eoo.py: -------------------------------------------------------------------------------- 1 | from pyasn1.type import base, tag 2 | 3 | class EndOfOctets(base.AbstractSimpleAsn1Item): 4 | defaultValue = 0 5 | tagSet = tag.initTagSet( 6 | tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 0x00) 7 | ) 8 | endOfOctets = EndOfOctets() 9 | -------------------------------------------------------------------------------- /server/lib/medusa/split_path.py: -------------------------------------------------------------------------------- 1 | # split a uri 2 | # ;?# 3 | path_regex = regex.compile ( 4 | # path params query fragment 5 | '\\([^;?#]*\\)\\(;[^?#]*\\)?\\(\\?[^#]*\)?\(#.*\)?' 6 | ) 7 | 8 | def split_path (path): 9 | if path_regex.match (path) != len(path): 10 | raise ValueError, "bad path" 11 | else: 12 | return map (lambda i,r=path_regex: r.group(i), range(1,5)) 13 | -------------------------------------------------------------------------------- /server/lib/pyasn1/type/useful.py: -------------------------------------------------------------------------------- 1 | # ASN.1 "useful" types 2 | from pyasn1.type import char, tag 3 | 4 | class GeneralizedTime(char.VisibleString): 5 | tagSet = char.VisibleString.tagSet.tagImplicitly( 6 | tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 24) 7 | ) 8 | 9 | class UTCTime(char.VisibleString): 10 | tagSet = char.VisibleString.tagSet.tagImplicitly( 11 | tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 23) 12 | ) 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.py[co] 2 | *.swp 3 | 4 | # outerspace specific 5 | tests/history 6 | 7 | website 8 | 9 | # Packages 10 | *.egg 11 | *.egg-info 12 | dist 13 | build 14 | eggs 15 | parts 16 | bin 17 | var 18 | sdist 19 | develop-eggs 20 | .installed.cfg 21 | 22 | # Installer logs 23 | pip-log.txt 24 | 25 | # Unit test / coverage reports 26 | .coverage 27 | .tox 28 | 29 | #Translations 30 | # it is convenient to leave it in the repo... for now 31 | # *.mo 32 | 33 | #Mr Developer 34 | .mr.developer.cfg 35 | 36 | 37 | -------------------------------------------------------------------------------- /tests/proposed_scenarios: -------------------------------------------------------------------------------- 1 | starred steps implemented in (any) test 2 | 3 | - clean up server data directory 4 | - run server * 5 | - run game client 6 | - create galaxy via booking 7 | - log in via game client 8 | - start galaxy time * 9 | - run 14 days worth of turns with AI * 10 | - check AI is spreading * 11 | - stop client 12 | - stop server * 13 | - start server * 14 | - run more turns with AI * 15 | - check AI is still spreading 16 | - build something via game client 17 | - research something via game client 18 | 19 | -------------------------------------------------------------------------------- /client/pygameui/README.txt: -------------------------------------------------------------------------------- 1 | Pygame.UI 2 | 3 | ABOUT 4 | 5 | A simple widget system for Pygame in pure Python with no documentation. 6 | This library can be used as plug-in for your existing project. 7 | 8 | See demo/demo.py for basic usage. Expect documentation later, if there will be 9 | anyone interesting in this :-) 10 | 11 | Anyone interested in this library can contact me. I am willing to setup a 12 | SourceForge project. 13 | 14 | License: LGPL 15 | Requirements: Pygame 1.3, Python 2.1 16 | Author: Ludek Smid, qark@ospace.net 17 | -------------------------------------------------------------------------------- /server/lib/ige/ospace/Rules/RESEARCH.txt: -------------------------------------------------------------------------------- 1 | Research costs: 2 | 3 | Base: 4 | TL0 : 1 (starting techs + scanner) 5 | TL1 : 2 6 | TL2 : 4 7 | TL3 : 8 8 | TL4 : 16 9 | TL5 : 32 10 | TL6 : 64 11 | 12 | Modifiers: 13 | half technology (1.5, 2.5, ...) = new base = base + 50 % 14 | military technology = + 50 % 15 | ship technology = + 50 % 16 | ship hull/engine = + 50 % (total + 100% with ship technology bonus) 17 | theoretical research = + 100 % 18 | special resource involved = + 50 % 19 | increase TL research = + 300 % (total + 400% with theoretical research) 20 | -------------------------------------------------------------------------------- /server/lib/pyasn1/compat/octets.py: -------------------------------------------------------------------------------- 1 | from sys import version_info 2 | 3 | if version_info[0] <= 2: 4 | int2oct = chr 5 | ints2octs = lambda s: ''.join([ int2oct(x) for x in s ]) 6 | null = '' 7 | oct2int = ord 8 | octs2ints = lambda s: [ oct2int(x) for x in s ] 9 | str2octs = lambda x: x 10 | octs2str = lambda x: x 11 | else: 12 | ints2octs = bytes 13 | int2oct = lambda x: ints2octs((x,)) 14 | null = ints2octs() 15 | oct2int = lambda x: x 16 | octs2ints = lambda s: [ x for x in s ] 17 | str2octs = lambda x: x.encode() 18 | octs2str = lambda x: x.decode() 19 | -------------------------------------------------------------------------------- /server/website/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Outer Space Server 5 | 6 | 7 | 8 | 9 |
10 |
11 |
12 | 13 |

Outer Space Server

14 | 15 |
16 |

Run-time status

17 | 18 |
19 | 20 |
21 | 22 | 23 | 24 |
25 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /.pep8speaks.yml: -------------------------------------------------------------------------------- 1 | scanner: 2 | diff_only: True # If False, the entire file touched by the Pull Request is scanned for errors. If True, only the diff is scanned. 3 | linter: pycodestyle # Other option is flake8 4 | 5 | pycodestyle: # Same as scanner.linter value. Other option is flake8 6 | max-line-length: 100 # Default is 79 in PEP 8 7 | ignore: # Errors and warnings to ignore 8 | - E501 # line length 9 | - W503 # line break before binary operator 10 | 11 | no_blank_comment: False # If True, no comment is made on PR without any errors. 12 | descending_issues_order: False # If True, PEP 8 issues in message will be displayed in descending order of line numbers in the file 13 | -------------------------------------------------------------------------------- /client/pygameui/DefaultSkin/config.ini: -------------------------------------------------------------------------------- 1 | [general] 2 | fonts=tahoma,arial,default 3 | grid=20,20 4 | foreground=000000 5 | background=ffffff 6 | 7 | [button box] 8 | enabledon=button.up.png,2,2,55,14 9 | enabledoff=button.up.png,2,2,55,14 10 | focusedon=button.foc.png,2,2,55,14 11 | focusedoff=button.foc.png,2,2,55,14 12 | pressedon=button.dwn.png,3,3,55,14 13 | pressedoff=button.dwn.png,3,3,55,14 14 | disabledon=button.up.png,2,2,55,14 15 | disabledoff=button.up.png,2,2,55,14 16 | 17 | [tahoma font] 18 | type=windowsttf 19 | file=tahoma.ttf 20 | small=11 21 | normal=13 22 | large=15 23 | 24 | [arial font] 25 | type=windowsttf 26 | file=tahoma.ttf 27 | small=11 28 | normal=13 29 | large=15 30 | 31 | [default font] 32 | type=default 33 | small=14 34 | normal=16 35 | large=20 36 | -------------------------------------------------------------------------------- /client/pygameui/ColorBox.py: -------------------------------------------------------------------------------- 1 | import Const 2 | from Widget import Widget, registerWidget 3 | 4 | class ColorBox(Widget): 5 | 6 | def __init__(self, parent, **kwargs): 7 | Widget.__init__(self, parent) 8 | # data 9 | self.color = None 10 | self.margins = (0, 0, 0, 0) 11 | # flags 12 | self.processKWArguments(kwargs) 13 | parent.registerWidget(self) 14 | 15 | def draw(self, surface): 16 | oldClip = surface.get_clip() 17 | surface.set_clip(self.rect.left + self.margins[0], self.rect.top + self.margins[1], 18 | self.rect.width - self.margins[2] - self.margins[0], self.rect.height - self.margins[3] - self.margins[1]) 19 | surface.fill(self.color) 20 | surface.set_clip(oldClip) 21 | return self.rect 22 | 23 | registerWidget(ColorBox, 'colorbox') 24 | -------------------------------------------------------------------------------- /client/osci/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # -------------------------------------------------------------------------------- /client-ai/AIs/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # -------------------------------------------------------------------------------- /server/lib/igeclient/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | -------------------------------------------------------------------------------- /server/lib/ige/ospace/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | -------------------------------------------------------------------------------- /client/pygameui/demo/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Pygame.UI. 5 | # 6 | # Pygame.UI is free software; you can redistribute it and/or modify 7 | # it under the terms of the Lesser GNU General Public License as published by 8 | # the Free Software Foundation; either version 2.1 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Pygame.UI is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # Lesser GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the Lesser GNU General Public License 17 | # along with Pygame.UI; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | -------------------------------------------------------------------------------- /client/pygameui/Exception.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Pygame.UI. 5 | # 6 | # Pygame.UI is free software; you can redistribute it and/or modify 7 | # it under the terms of the Lesser GNU General Public License as published by 8 | # the Free Software Foundation; either version 2.1 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Pygame.UI is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # Lesser GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the Lesser GNU General Public License 17 | # along with Pygame.UI; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | class ResourceException(Exception): 22 | pass 23 | 24 | -------------------------------------------------------------------------------- /server/lib/ige/Index.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | from UserDict import UserDict 22 | 23 | class Index(UserDict): 24 | pass 25 | -------------------------------------------------------------------------------- /tools/i18n/update_po_files.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | I18_DIR=$(dirname $(readlink -f $0)) 4 | PROJECT_ROOT=$(readlink -f ${I18_DIR}/../..) 5 | if [ ! -e ${PROJECT_ROOT}/outerspace.py ]; then 6 | echo "Please update script to point to proper project root, not $PROJECT_ROOT" 7 | exit 1 8 | fi 9 | # test for required scripts being available 10 | if ! type msgmerge &> /dev/null;then 11 | echo "Utility msgmerge is not available, install it. Exiting..." 12 | exit 1 13 | fi 14 | 15 | TRANSLATION_DIR=$PROJECT_ROOT/client/resources/translations/ 16 | MESSAGES=${TRANSLATION_DIR}/OSPACE.pot 17 | 18 | pushd $PROJECT_ROOT > /dev/null 19 | find ./ -name "*.py" | sed 's#^\./##' | grep -v "^tools" | xargs python2 ${I18_DIR}/pygettext.py -k N_ -o $MESSAGES && \ 20 | for translation in $TRANSLATION_DIR/*/LC_MESSAGES/*.po; do 21 | msgmerge -U $translation $MESSAGES 22 | # as we are on git, no need for backups 23 | rm ${translation}~ &> /dev/null 24 | done 25 | popd > /dev/null 26 | -------------------------------------------------------------------------------- /client/pygameui/demo/prof.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Pygame.UI. 5 | # 6 | # Pygame.UI is free software; you can redistribute it and/or modify 7 | # it under the terms of the Lesser GNU General Public License as published by 8 | # the Free Software Foundation; either version 2.1 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Pygame.UI is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # Lesser GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the Lesser GNU General Public License 17 | # along with Pygame.UI; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | # profiling 22 | import profile 23 | profile.run('import demo', 'profile.txt') 24 | -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- 1 | # This workflow will install Python dependencies, run tests and lint with a single version of Python 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions 3 | 4 | name: Test Suite 5 | 6 | on: 7 | push: 8 | branches: [ master ] 9 | pull_request: 10 | branches: [ master ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v2 19 | - name: Set up Python 20 | uses: actions/setup-python@v2 21 | with: 22 | python-version: 2.7 23 | - name: Install dependencies 24 | run: | 25 | python -m pip install --upgrade pip 26 | pip install passlib pygame 27 | if [ -f requirements.txt ]; then pip install -r requirements.txt; fi 28 | - name: Run Outer Space Unit Tests 29 | run: ./tests/unittest.sh 30 | - name: Run Outer Space Unit Tests 31 | run: ./tests/smoke_test.py --travis 32 | 33 | -------------------------------------------------------------------------------- /client/resources/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | import os 22 | 23 | def get(filepath): 24 | return os.path.join(os.path.dirname(__file__), filepath) 25 | 26 | -------------------------------------------------------------------------------- /client/osci/dialog/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | from ProgressDlg import ProgressDlg 22 | from MainGameDlg import MainGameDlg 23 | from ExceptionDlg import ExceptionDlg 24 | from LoginDlg import LoginDlg 25 | from UpdateDlg import UpdateDlg -------------------------------------------------------------------------------- /server/data/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2018 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | import os 22 | 23 | _baseDir = os.path.abspath(os.path.dirname(__file__)) 24 | GALAXY_NAMES_FILE = os.path.join(_baseDir, "GalaxyNames.txt") 25 | SYSTEM_NAMES_FILE = os.path.join(_baseDir, "SystemNames.txt") 26 | -------------------------------------------------------------------------------- /server/lib/pyasn1/codec/der/encoder.py: -------------------------------------------------------------------------------- 1 | # DER encoder 2 | from pyasn1.type import univ 3 | from pyasn1.codec.cer import encoder 4 | 5 | class SetOfEncoder(encoder.SetOfEncoder): 6 | def _cmpSetComponents(self, c1, c2): 7 | tagSet1 = isinstance(c1, univ.Choice) and \ 8 | c1.getEffectiveTagSet() or c1.getTagSet() 9 | tagSet2 = isinstance(c2, univ.Choice) and \ 10 | c2.getEffectiveTagSet() or c2.getTagSet() 11 | return cmp(tagSet1, tagSet2) 12 | 13 | tagMap = encoder.tagMap.copy() 14 | tagMap.update({ 15 | # Overload CER encodrs with BER ones (a bit hackerish XXX) 16 | univ.BitString.tagSet: encoder.encoder.BitStringEncoder(), 17 | univ.OctetString.tagSet: encoder.encoder.OctetStringEncoder(), 18 | # Set & SetOf have same tags 19 | univ.SetOf().tagSet: SetOfEncoder() 20 | }) 21 | 22 | typeMap = encoder.typeMap 23 | 24 | class Encoder(encoder.Encoder): 25 | def __call__(self, client, defMode=1, maxChunkSize=0): 26 | return encoder.Encoder.__call__(self, client, defMode, maxChunkSize) 27 | 28 | encode = Encoder(tagMap, typeMap) 29 | -------------------------------------------------------------------------------- /server/lib/pyasn1/codec/cer/decoder.py: -------------------------------------------------------------------------------- 1 | # CER decoder 2 | from pyasn1.type import univ 3 | from pyasn1.codec.ber import decoder 4 | from pyasn1.compat.octets import oct2int 5 | from pyasn1 import error 6 | 7 | class BooleanDecoder(decoder.AbstractSimpleDecoder): 8 | protoComponent = univ.Boolean(0) 9 | def valueDecoder(self, fullSubstrate, substrate, asn1Spec, tagSet, length, 10 | state, decodeFun): 11 | substrate = substrate[:length] 12 | if not substrate: 13 | raise error.PyAsn1Error('Empty substrate') 14 | byte = oct2int(substrate[0]) 15 | if byte == 0xff: 16 | value = 1 17 | elif byte == 0x00: 18 | value = 0 19 | else: 20 | raise error.PyAsn1Error('Boolean CER violation: %s' % byte) 21 | return self._createComponent(asn1Spec, tagSet, value), substrate[1:] 22 | 23 | tagMap = decoder.tagMap.copy() 24 | tagMap.update({ 25 | univ.Boolean.tagSet: BooleanDecoder(), 26 | }) 27 | 28 | typeMap = decoder.typeMap 29 | 30 | class Decoder(decoder.Decoder): pass 31 | 32 | decode = Decoder(tagMap, decoder.typeMap) 33 | -------------------------------------------------------------------------------- /client/pygameui/demo/profres.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Pygame.UI. 5 | # 6 | # Pygame.UI is free software; you can redistribute it and/or modify 7 | # it under the terms of the Lesser GNU General Public License as published by 8 | # the Free Software Foundation; either version 2.1 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Pygame.UI is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # Lesser GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the Lesser GNU General Public License 17 | # along with Pygame.UI; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | import pstats 22 | 23 | stats = pstats.Stats('profile.txt') 24 | 25 | stats.strip_dirs() 26 | #stats.sort_stats('calls') 27 | stats.sort_stats('time') 28 | #stats.sort_stats('cumulative') 29 | stats.print_stats(0.2) 30 | -------------------------------------------------------------------------------- /client-ai/AIs/ais_eden.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | from ige import log 21 | from ai import AI 22 | 23 | class EDEN(AI): 24 | """ old empire is sleeping, regaining strength """ 25 | def run(self): 26 | return 27 | 28 | 29 | def run(aclient): 30 | ai = EDEN(aclient) 31 | ai.run() 32 | aclient.saveDB() 33 | 34 | -------------------------------------------------------------------------------- /server/lib/ige/Transaction.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | import Const 22 | 23 | class Transaction: 24 | 25 | def __init__(self, gameMngr, cid = Const.OID_NONE, session = None): 26 | self.gameMngr = gameMngr 27 | self.db = gameMngr.db 28 | self.cid = cid 29 | self.session = session 30 | 31 | def commit(self): 32 | self.db.commit() 33 | -------------------------------------------------------------------------------- /client/pygameui/ActiveLabel.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Pygame.UI. 5 | # 6 | # Pygame.UI is free software; you can redistribute it and/or modify 7 | # it under the terms of the Lesser GNU General Public License as published by 8 | # the Free Software Foundation; either version 2.1 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Pygame.UI is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # Lesser GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the Lesser GNU General Public License 17 | # along with Pygame.UI; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | import Const 22 | from Widget import registerWidget 23 | from Button import Button 24 | 25 | class ActiveLabel(Button): 26 | 27 | def draw(self, surface): 28 | if self.mouseOver: 29 | self.theme.drawLabel(surface, self, 1) 30 | else: 31 | self.theme.drawLabel(surface, self, 0) 32 | return self.rect 33 | 34 | registerWidget(ActiveLabel, 'activelabel') 35 | -------------------------------------------------------------------------------- /client/osci/dialog/Utils.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | def enableConstruction(client): 22 | enabled1 = 0 23 | enabled2 = 0 24 | player = client.getPlayer() 25 | for techID in player.techs: 26 | tech = client.getTechInfo(techID) 27 | if tech.isShipHull: 28 | enabled1 = 1 29 | if enabled2: break 30 | elif tech.isShipEquip and tech.subtype == "seq_ctrl": 31 | enabled2 = 1 32 | if enabled1: break 33 | 34 | return enabled1 and enabled2 35 | -------------------------------------------------------------------------------- /client/osci/dialog/ConsoleDlg.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | import pygameui as ui 22 | 23 | class ConsoleDlg: 24 | 25 | def __init__(self, app): 26 | self.app = app 27 | self.createUI() 28 | 29 | def display(self): 30 | self.win.show() 31 | 32 | def hide(self): 33 | self.win.hide() 34 | 35 | def createUI(self): 36 | self.win = ui.Window(self.app, 37 | modal = 1, 38 | rect = ui.Rect(0, 20, 400, 600), 39 | layoutManager = ui.SimpleGridLM(), 40 | ) 41 | -------------------------------------------------------------------------------- /client/pygameui/Tooltip.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Pygame.UI. 5 | # 6 | # Pygame.UI is free software; you can redistribute it and/or modify 7 | # it under the terms of the Lesser GNU General Public License as published by 8 | # the Free Software Foundation; either version 2.1 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Pygame.UI is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # Lesser GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the Lesser GNU General Public License 17 | # along with Pygame.UI; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | import Const 22 | from Widget import Widget, registerWidget 23 | 24 | class Tooltip(Widget): 25 | 26 | def __init__(self, parent, **kwargs): 27 | Widget.__init__(self, parent) 28 | # data 29 | self.text = None 30 | self.title = None 31 | self.icon = None 32 | self.icons = [] 33 | # flags 34 | self.processKWArguments(kwargs) 35 | 36 | def drawWidget(self, surface): 37 | self.theme.drawTooltip(surface, self) 38 | -------------------------------------------------------------------------------- /client/pygameui/TitleButton.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Pygame.UI. 5 | # 6 | # Pygame.UI is free software; you can redistribute it and/or modify 7 | # it under the terms of the Lesser GNU General Public License as published by 8 | # the Free Software Foundation; either version 2.1 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Pygame.UI is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # Lesser GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the Lesser GNU General Public License 17 | # along with Pygame.UI; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | import Const 22 | from Widget import registerWidget 23 | from Button import Button 24 | 25 | class TitleButton(Button): 26 | 27 | def __init__(self, parent, **kwargs): 28 | Button.__init__(self, parent) 29 | # data 30 | # flags 31 | self.processKWArguments(kwargs) 32 | parent.registerWidget(self) 33 | 34 | def draw(self, surface): 35 | self.theme.drawTitleButton(surface, self) 36 | 37 | registerWidget(TitleButton, 'titlebutton') 38 | -------------------------------------------------------------------------------- /client/pygameui/Label.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Pygame.UI. 5 | # 6 | # Pygame.UI is free software; you can redistribute it and/or modify 7 | # it under the terms of the Lesser GNU General Public License as published by 8 | # the Free Software Foundation; either version 2.1 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Pygame.UI is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # Lesser GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the Lesser GNU General Public License 17 | # along with Pygame.UI; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | import Const 22 | from Widget import Widget, registerWidget 23 | 24 | class Label(Widget): 25 | 26 | def __init__(self, parent, **kwargs): 27 | Widget.__init__(self, parent) 28 | # data 29 | self.text = None 30 | self.icons = [] 31 | # flags 32 | self.processKWArguments(kwargs) 33 | parent.registerWidget(self) 34 | 35 | def draw(self, surface): 36 | self.theme.drawLabel(surface, self) 37 | return self.rect 38 | 39 | registerWidget(Label, 'label') 40 | -------------------------------------------------------------------------------- /client/pygameui/Title.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Pygame.UI. 5 | # 6 | # Pygame.UI is free software; you can redistribute it and/or modify 7 | # it under the terms of the Lesser GNU General Public License as published by 8 | # the Free Software Foundation; either version 2.1 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Pygame.UI is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # Lesser GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the Lesser GNU General Public License 17 | # along with Pygame.UI; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | import Const 22 | from Widget import Widget, registerWidget 23 | 24 | class Title(Widget): 25 | 26 | def __init__(self, parent, **kwargs): 27 | Widget.__init__(self, parent) 28 | # data 29 | self.text = None 30 | self.icons = [] 31 | # flags 32 | self.processKWArguments(kwargs) 33 | parent.registerWidget(self) 34 | 35 | def draw(self, surface): 36 | self.theme.drawTitle(surface, self) 37 | return self.rect 38 | 39 | registerWidget(Title, 'title') 40 | -------------------------------------------------------------------------------- /client/pygameui/ProgressBar.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Pygame.UI. 5 | # 6 | # Pygame.UI is free software; you can redistribute it and/or modify 7 | # it under the terms of the Lesser GNU General Public License as published by 8 | # the Free Software Foundation; either version 2.1 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Pygame.UI is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # Lesser GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the Lesser GNU General Public License 17 | # along with Pygame.UI; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | import Const 22 | from Widget import Widget, registerWidget 23 | 24 | class ProgressBar(Widget): 25 | 26 | def __init__(self, parent, **kwargs): 27 | Widget.__init__(self, parent) 28 | # data 29 | self.min = 0 30 | self.max = 100 31 | self.value = 0 32 | # flags 33 | self.processKWArguments(kwargs) 34 | parent.registerWidget(self) 35 | 36 | def draw(self, surface): 37 | self.theme.drawProgressBar(surface, self) 38 | return self.rect 39 | 40 | registerWidget(ProgressBar, 'progressbar') 41 | -------------------------------------------------------------------------------- /server/lib/ige/version.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | major = 0 22 | minor = 5 23 | revision = 74 24 | # status must be either empty string or must start with a dash 25 | status = "-1" 26 | 27 | assert not status or status.startswith("-"), "Status MUST start with dash if set" 28 | 29 | version = { 30 | "major": major, 31 | "minor": minor, 32 | "revision": revision, 33 | "status": status, 34 | } 35 | 36 | versionString = "%(major)d.%(minor)d.%(revision)d%(status)s" % version 37 | 38 | clientURLs = { 39 | "*": "https://github.com/ospaceteam/outerspace/archive/%(major)d.%(minor)d.%(revision)d%(status)s.tar.gz" % version, 40 | } 41 | -------------------------------------------------------------------------------- /client/pygameui/ArrowButton.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Pygame.UI. 5 | # 6 | # Pygame.UI is free software; you can redistribute it and/or modify 7 | # it under the terms of the Lesser GNU General Public License as published by 8 | # the Free Software Foundation; either version 2.1 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Pygame.UI is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # Lesser GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the Lesser GNU General Public License 17 | # along with Pygame.UI; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | import Const 22 | from Widget import registerWidget 23 | from Button import Button 24 | 25 | class ArrowButton(Button): 26 | 27 | def __init__(self, parent, **kwargs): 28 | Button.__init__(self, parent) 29 | # data 30 | self.direction = Const.ALIGN_N 31 | # del 32 | del self.text 33 | del self.icons 34 | # flags 35 | self.processKWArguments(kwargs) 36 | parent.registerWidget(self) 37 | 38 | def draw(self, surface): 39 | self.theme.drawArrowButton(surface, self) 40 | return self.rect 41 | 42 | registerWidget(ArrowButton, 'arrowbutton') 43 | -------------------------------------------------------------------------------- /server/lib/medusa/counter.py: -------------------------------------------------------------------------------- 1 | # -*- Mode: Python; tab-width: 4 -*- 2 | 3 | # It is tempting to add an __int__ method to this class, but it's not 4 | # a good idea. This class tries to gracefully handle integer 5 | # overflow, and to hide this detail from both the programmer and the 6 | # user. Note that the __str__ method can be relied on for printing out 7 | # the value of a counter: 8 | # 9 | # >>> print 'Total Client: %s' % self.total_clients 10 | # 11 | # If you need to do arithmetic with the value, then use the 'as_long' 12 | # method, the use of long arithmetic is a reminder that the counter 13 | # will overflow. 14 | 15 | class counter: 16 | "general-purpose counter" 17 | 18 | def __init__ (self, initial_value=0): 19 | self.value = initial_value 20 | 21 | def increment (self, delta=1): 22 | result = self.value 23 | try: 24 | self.value = self.value + delta 25 | except OverflowError: 26 | self.value = long(self.value) + delta 27 | return result 28 | 29 | def decrement (self, delta=1): 30 | result = self.value 31 | try: 32 | self.value = self.value - delta 33 | except OverflowError: 34 | self.value = long(self.value) - delta 35 | return result 36 | 37 | def as_long (self): 38 | return long(self.value) 39 | 40 | def __nonzero__ (self): 41 | return self.value != 0 42 | 43 | def __repr__ (self): 44 | return '' % (self.value, id(self)) 45 | 46 | def __str__ (self): 47 | return str(long(self.value)) 48 | -------------------------------------------------------------------------------- /server/lib/medusa/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Medusa was once distributed under a 'free for non-commercial use' 2 | license, but in May of 2000 Sam Rushing changed the license to be 3 | identical to the standard Python license at the time. The standard 4 | Python license has always applied to the core components of Medusa, 5 | this change just frees up the rest of the system, including the http 6 | server, ftp server, utilities, etc. Medusa is therefore under the 7 | following license: 8 | 9 | ============================== 10 | Permission to use, copy, modify, and distribute this software and 11 | its documentation for any purpose and without fee is hereby granted, 12 | provided that the above copyright notice appear in all copies and 13 | that both that copyright notice and this permission notice appear in 14 | supporting documentation, and that the name of Sam Rushing not be 15 | used in advertising or publicity pertaining to distribution of the 16 | software without specific, written prior permission. 17 | 18 | SAM RUSHING DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 19 | INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN 20 | NO EVENT SHALL SAM RUSHING BE LIABLE FOR ANY SPECIAL, INDIRECT OR 21 | CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 22 | OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 23 | NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 24 | WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 25 | ============================== 26 | 27 | Sam would like to take this opportunity to thank all of the folks who 28 | supported Medusa over the years by purchasing commercial licenses. 29 | 30 | 31 | -------------------------------------------------------------------------------- /client/pygameui/Const.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Pygame.UI. 5 | # 6 | # Pygame.UI is free software; you can redistribute it and/or modify 7 | # it under the terms of the Lesser GNU General Public License as published by 8 | # the Free Software Foundation; either version 2.1 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Pygame.UI is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # Lesser GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the Lesser GNU General Public License 17 | # along with Pygame.UI; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | from Exception import * 22 | import pygame 23 | 24 | TIMEREVENT = pygame.USEREVENT 25 | if TIMEREVENT >= pygame.NUMEVENTS: 26 | raise 'Cannot create TIMEREVENT.' 27 | 28 | USEREVENT = TIMEREVENT + 1 29 | if USEREVENT >= pygame.NUMEVENTS: 30 | raise 'Cannot create USEREVENT.' 31 | 32 | NoEvent = pygame.event.Event(pygame.NOEVENT) 33 | 34 | # Alignment 35 | ALIGN_NONE = 0x00 36 | ALIGN_N = 0x01 37 | ALIGN_S = 0x02 38 | ALIGN_E = 0x04 39 | ALIGN_W = 0x08 40 | ALIGN_NE = ALIGN_N | ALIGN_E 41 | ALIGN_NW = ALIGN_N | ALIGN_W 42 | ALIGN_SE = ALIGN_S | ALIGN_E 43 | ALIGN_SW = ALIGN_S | ALIGN_W 44 | ALIGN_MASK = 0x0f 45 | 46 | # Flags 47 | F_EDITABLE = 0x10 48 | 49 | # Special value 50 | class NoValue: 51 | pass 52 | 53 | # Meta types of widgets 54 | TYPE_WIDGET = 0 55 | TYPE_METAWIDGET = 1 56 | 57 | -------------------------------------------------------------------------------- /server/lib/ige/IDataHolder.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | # general holder for ALL data in game 22 | class IDataHolder: 23 | 24 | #def __setattr__(self, key, value): 25 | # self.__dict__[key] = value 26 | # self.__dict__['_v_modified'] = 1 27 | 28 | #def setModified(self, modified): 29 | # self.__dict__['_v_modified'] = modified 30 | 31 | # for debug only 32 | def __repr__(self): 33 | result = '<%s.%s %X ' % (self.__class__.__module__, self.__class__.__name__, id(self)) 34 | items = self.__dict__.items() 35 | items.sort() 36 | for key, value in items: 37 | result += '%s=%s, ' % (key, repr(value)) 38 | result += '>' 39 | return result 40 | 41 | def makeIDataHolder(**kwargs): 42 | obj = IDataHolder() 43 | for key, value in kwargs.items(): 44 | setattr(obj, key, value) 45 | return obj 46 | -------------------------------------------------------------------------------- /server/lib/rsa/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright 2011 Sybren A. Stüvel 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | """RSA module 17 | 18 | Module for calculating large primes, and RSA encryption, decryption, signing 19 | and verification. Includes generating public and private keys. 20 | 21 | WARNING: this implementation does not use random padding, compression of the 22 | cleartext input to prevent repetitions, or other common security improvements. 23 | Use with care. 24 | 25 | If you want to have a more secure implementation, use the functions from the 26 | ``rsa.pkcs1`` module. 27 | 28 | """ 29 | 30 | __author__ = "Sybren Stuvel, Marloes de Boer, Ivo Tamboer, and Barry Mead" 31 | __date__ = "2011-08-07" 32 | __version__ = '3.0.1' 33 | 34 | from rsa.key import newkeys, PrivateKey, PublicKey 35 | from rsa.pkcs1 import encrypt, decrypt, sign, verify, DecryptionError, \ 36 | VerificationError 37 | 38 | # Do doctest if we're run directly 39 | if __name__ == "__main__": 40 | import doctest 41 | doctest.testmod() 42 | 43 | __all__ = ["newkeys", "encrypt", "decrypt", "sign", "verify", 'PublicKey', 44 | 'PrivateKey', 'DecryptionError', 'VerificationError'] 45 | 46 | -------------------------------------------------------------------------------- /server/lib/ige/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | import log 22 | 23 | ## common exceptions 24 | class SecurityException(Exception): 25 | pass 26 | 27 | class GameException(Exception): 28 | pass 29 | 30 | class CreatePlayerException(Exception): 31 | pass 32 | 33 | class NoAccountException(Exception): 34 | pass 35 | 36 | class ServerException(Exception): 37 | pass 38 | 39 | class ServerStatusException(Exception): 40 | pass 41 | 42 | class NoSuchObjectException(Exception): 43 | pass 44 | 45 | class BookingMngrException(Exception): 46 | pass 47 | 48 | ## global settings 49 | # runtime mode, currently supported: 50 | # 1 - normal operations 51 | # 0 - debug/devel operations 52 | igeRuntimeMode = 1 53 | 54 | def setRuntimeMode(runtimeMode): 55 | global igeRuntimeMode 56 | 57 | igeRuntimeMode = runtimeMode 58 | log.message("Runtime mode changed to", igeRuntimeMode) 59 | -------------------------------------------------------------------------------- /server/lib/pyasn1/type/namedval.py: -------------------------------------------------------------------------------- 1 | # ASN.1 named integers 2 | from pyasn1 import error 3 | 4 | __all__ = [ 'NamedValues' ] 5 | 6 | class NamedValues: 7 | def __init__(self, *namedValues): 8 | self.nameToValIdx = {}; self.valToNameIdx = {} 9 | self.namedValues = () 10 | automaticVal = 1 11 | for namedValue in namedValues: 12 | if isinstance(namedValue, tuple): 13 | name, val = namedValue 14 | else: 15 | name = namedValue 16 | val = automaticVal 17 | if name in self.nameToValIdx: 18 | raise error.PyAsn1Error('Duplicate name %s' % name) 19 | self.nameToValIdx[name] = val 20 | if val in self.valToNameIdx: 21 | raise error.PyAsn1Error('Duplicate value %s' % name) 22 | self.valToNameIdx[val] = name 23 | self.namedValues = self.namedValues + ((name, val),) 24 | automaticVal = automaticVal + 1 25 | def __str__(self): return str(self.namedValues) 26 | 27 | def getName(self, value): 28 | if value in self.valToNameIdx: 29 | return self.valToNameIdx[value] 30 | 31 | def getValue(self, name): 32 | if name in self.nameToValIdx: 33 | return self.nameToValIdx[name] 34 | 35 | def __getitem__(self, i): return self.namedValues[i] 36 | def __len__(self): return len(self.namedValues) 37 | 38 | def __add__(self, namedValues): 39 | return self.__class__(*self.namedValues + namedValues) 40 | def __radd__(self, namedValues): 41 | return self.__class__(*namedValues + tuple(self)) 42 | 43 | def clone(self, *namedValues): 44 | return self.__class__(*tuple(self) + namedValues) 45 | 46 | # XXX clone/subtype? 47 | -------------------------------------------------------------------------------- /tests/chronicle_to_video.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright 2001 - 2017 Ludek Smid [http://www.ospace.net/] 4 | # 5 | # This file is part of Outer Space. 6 | # 7 | # Outer Space is free software; you can redistribute it and/or modify 8 | # it under the terms of the GNU General Public License as published by 9 | # the Free Software Foundation; either version 2 of the License, or 10 | # (at your option) any later version. 11 | # 12 | # Outer Space is distributed in the hope that it will be useful, 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | # GNU General Public License for more details. 16 | # 17 | # You should have received a copy of the GNU General Public License 18 | # along with Outer Space; if not, write to the Free Software 19 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 | # 21 | 22 | HISTORY_DIR="./history" 23 | GALAXY=${1} 24 | BORDER=${2:-0} # instead of resize, create black border this thick 25 | if [[ -z ${GALAXY// } ]]; then 26 | echo "Needs parameter GALAXY (prefix of screenshot files)" 27 | exit 1 28 | fi 29 | 30 | # resize screenshots and rename them so it's consumable by ffmpeg 31 | count=0 32 | ls -1v "${HISTORY_DIR}/${GALAXY}"* | while read i; do 33 | ((count++)) 34 | printf -v j "%04d" ${count} 35 | if (( $BORDER > 0 ));then 36 | convert "$i" -bordercolor Black -border ${BORDER}x${BORDER} "${HISTORY_DIR}/t_${GALAXY}.${j}.png" 37 | else 38 | convert "$i" -resize 1080x1080 -quality 100 "${HISTORY_DIR}/t_${GALAXY}.${j}.png" 39 | fi 40 | 41 | done 42 | 43 | # create video 44 | ffmpeg -framerate 12 -i "${HISTORY_DIR}/t_${GALAXY}.%04d.png" -c: libx264 -profile:v high -crf 20 -pix_fmt yuv420p "${HISTORY_DIR}/${GALAXY}.mp4" 45 | -------------------------------------------------------------------------------- /client/pygameui/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Pygame.UI. 5 | # 6 | # Pygame.UI is free software; you can redistribute it and/or modify 7 | # it under the terms of the Lesser GNU General Public License as published by 8 | # the Free Software Foundation; either version 2.1 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Pygame.UI is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # Lesser GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the Lesser GNU General Public License 17 | # along with Pygame.UI; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | from Const import * 22 | from Application import Application 23 | 24 | # Widgets 25 | from Window import Window 26 | from Button import Button 27 | from Label import Label 28 | from ActiveLabel import ActiveLabel 29 | from Entry import Entry 30 | from ArrowButton import ArrowButton 31 | from ScrollSlider import ScrollSlider 32 | from Scrollbar import Scrollbar 33 | from Listbox import Listbox 34 | from ButtonArray import ButtonArray 35 | from Title import Title 36 | from TitleButton import TitleButton 37 | from ProgressBar import ProgressBar 38 | from Text import Text 39 | from Check import Check 40 | from ColorBox import ColorBox 41 | 42 | # Menu 43 | from Menu import Menu 44 | 45 | # Layout Managers 46 | from SimpleGridLM import SimpleGridLM 47 | 48 | # Helpers 49 | from Item import Item 50 | 51 | # Themes 52 | import SkinableTheme 53 | 54 | # Other usefull goodies 55 | from pygame.locals import Rect 56 | -------------------------------------------------------------------------------- /server/lib/ige/IssueMngr.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | import log 22 | import smtplib 23 | from email.mime.text import MIMEText 24 | 25 | class IssueMngr: 26 | 27 | def __init__(self): 28 | pass 29 | 30 | def rpc_reportIssue(self, faultID, text): 31 | # log it 32 | log.message("ISSUE:\n", text) 33 | # send it 34 | try: 35 | msg = MIMEText(text) 36 | msg["Subject"] = "Outer Space Issue %s" % faultID 37 | msg["From"] = "game_alpha@ospace.net" 38 | msg["To"] = "qark@ospace.net" 39 | smtp = smtplib.SMTP("localhost") 40 | smtp.sendmail( 41 | "game_alpha@ospace.net", 42 | ["qark@ospace.net"], 43 | msg.as_string() 44 | ) 45 | smtp.quit() 46 | except: 47 | log.warning("Cannot send issue by e-mail") 48 | return 1 49 | 50 | def shutdown(self): 51 | pass 52 | -------------------------------------------------------------------------------- /server/lib/ige/Const.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | # return values 22 | SUCC = 1 23 | FAIL = 0 24 | 25 | # reserved OIDs 26 | OID_NONE = 0 27 | OID_UNIVERSE = 1 28 | OID_MAP = 2 29 | OID_ADMIN = 10 30 | OID_GUEST = 50 31 | OID_I_LOGIN2OID = 100 32 | OID_I_NAME2OID = 101 33 | 34 | # Free oids starts at 35 | OID_FREESTART = 10000 36 | 37 | # reserved Booker IDs 38 | BID_TRIGGERED = 10 39 | 40 | BID_FREESTART = 100 41 | 42 | # Game status 43 | GS_INIT = 0 44 | GS_MAINT = 1 45 | GS_RUNNING = 2 46 | GS_BUSY = 3 47 | GS_STOPPED = 4 48 | GS_SDOWN = 5 49 | GS_TURNINPROG = 6 50 | 51 | # Access Rights Level 52 | AL_NONE = 0 53 | AL_INFO = 50 54 | AL_FULL = 100 55 | AL_OWNER = 110 56 | AL_ADMIN = 1000 57 | 58 | # Object types 59 | T_UNKNOWN = 0 60 | T_OBJECT = 1 61 | T_UNIVERSE = 2 62 | T_PLAYER = 3 63 | 64 | # Session messages 65 | SMESSAGE_NEWTURN = 1 66 | SMESSAGE_NEWMESSAGE = 2 67 | 68 | # Admin 69 | ADMIN_LOGIN = 'admin' 70 | ADMIN_NICK = 'Administrator' 71 | 72 | # Account criteria 73 | ACCOUNT_LOGIN_MIN_LEN = 4 74 | ACCOUNT_NICK_MIN_LEN = 4 75 | ACCOUNT_PASSWD_MIN_LEN = 6 76 | -------------------------------------------------------------------------------- /server/lib/pyasn1/type/tagmap.py: -------------------------------------------------------------------------------- 1 | from pyasn1 import error 2 | 3 | class TagMap: 4 | def __init__(self, posMap={}, negMap={}, defType=None): 5 | self.__posMap = posMap.copy() 6 | self.__negMap = negMap.copy() 7 | self.__defType = defType 8 | 9 | def __contains__(self, tagSet): 10 | return tagSet in self.__posMap or \ 11 | self.__defType is not None and tagSet not in self.__negMap 12 | 13 | def __getitem__(self, tagSet): 14 | if tagSet in self.__posMap: 15 | return self.__posMap[tagSet] 16 | elif tagSet in self.__negMap: 17 | raise error.PyAsn1Error('Key in negative map') 18 | elif self.__defType is not None: 19 | return self.__defType 20 | else: 21 | raise KeyError() 22 | 23 | def __repr__(self): 24 | s = repr(self.__posMap) + '/' + repr(self.__negMap) 25 | if self.__defType is not None: 26 | s = s + '/' + repr(self.__defType) 27 | return s 28 | 29 | def clone(self, parentType, tagMap, uniq=False): 30 | if self.__defType is not None and tagMap.getDef() is not None: 31 | raise error.PyAsn1Error('Duplicate default value at %s' % self) 32 | if tagMap.getDef() is not None: 33 | defType = tagMap.getDef() 34 | else: 35 | defType = self.__defType 36 | 37 | posMap = self.__posMap.copy() 38 | for k in tagMap.getPosMap(): 39 | if uniq and k in posMap: 40 | raise error.PyAsn1Error('Duplicate positive key %s' % k) 41 | posMap[k] = parentType 42 | 43 | negMap = self.__negMap.copy() 44 | negMap.update(tagMap.getNegMap()) 45 | 46 | return self.__class__( 47 | posMap, negMap, defType, 48 | ) 49 | 50 | def getPosMap(self): return self.__posMap.copy() 51 | def getNegMap(self): return self.__negMap.copy() 52 | def getDef(self): return self.__defType 53 | -------------------------------------------------------------------------------- /client/pygameui/Item.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Pygame.UI. 5 | # 6 | # Pygame.UI is free software; you can redistribute it and/or modify 7 | # it under the terms of the Lesser GNU General Public License as published by 8 | # the Free Software Foundation; either version 2.1 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Pygame.UI is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # Lesser GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the Lesser GNU General Public License 17 | # along with Pygame.UI; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | from types import StringType, UnicodeType 22 | 23 | class Item: 24 | 25 | def __init__(self, text, **kwargs): 26 | self.text = text 27 | self.align = 0 28 | self.selected = 0 29 | self.highlighted = 0 30 | self.icons = [] 31 | self.font = None 32 | self.children = [] 33 | self.expanded = 0 34 | self.tooltip = None 35 | self.tooltipTitle = None 36 | self.statustip = None 37 | self.hotkey = None 38 | self.hotkeymod = None 39 | self.foreground = None 40 | self.background = None 41 | self.index = None 42 | self.enabled = 1 43 | for key, value in kwargs.items(): 44 | setattr(self, key, value) 45 | 46 | def getAsString(self, key): 47 | if hasattr(self, key): 48 | value = getattr(self, key) 49 | valType = type(value) 50 | if valType == StringType or valType == UnicodeType: 51 | return value 52 | else: 53 | return str(value) 54 | else: 55 | raise AttributeError(key) 56 | -------------------------------------------------------------------------------- /client/pygameui/SimpleGridLM.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Pygame.UI. 5 | # 6 | # Pygame.UI is free software; you can redistribute it and/or modify 7 | # it under the terms of the Lesser GNU General Public License as published by 8 | # the Free Software Foundation; either version 2.1 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Pygame.UI is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # Lesser GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the Lesser GNU General Public License 17 | # along with Pygame.UI; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | import pygame 22 | 23 | class SimpleGridLM: 24 | 25 | def __init__(self, rowSize = None, colSize = None): 26 | self.metaWidget = None 27 | self.rowSize = rowSize 28 | self.colSize = colSize 29 | self.padx = 1 30 | self.pady = 1 31 | 32 | def layoutWidgets(self): 33 | wa = self.metaWidget._widgetArea 34 | if not (self.rowSize or self.colSize): 35 | self.rowSize, self.colSize = self.metaWidget.app.theme.getGridParams() 36 | for widget in self.metaWidget.widgets: 37 | if widget.layout: 38 | #x = widget.layout[0] * self.colSize + self.padx 39 | #y = widget.layout[1] * self.rowSize + self.pady 40 | #w = widget.layout[2] * self.colSize - 2 * self.padx 41 | #h = widget.layout[3] * self.rowSize - 2 * self.pady 42 | x = widget.layout[0] * self.colSize 43 | y = widget.layout[1] * self.rowSize 44 | w = widget.layout[2] * self.colSize 45 | h = widget.layout[3] * self.rowSize 46 | widget.rect = pygame.Rect(int(x), int(y), int(w), int(h)) 47 | -------------------------------------------------------------------------------- /server/lib/rsa/core.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright 2011 Sybren A. Stüvel 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | '''Core mathematical operations. 17 | 18 | This is the actual core RSA implementation, which is only defined 19 | mathematically on integers. 20 | ''' 21 | 22 | import types 23 | 24 | def assert_int(var, name): 25 | 26 | if type(var) in (types.IntType, types.LongType): 27 | return 28 | 29 | raise TypeError('%s should be an integer, not %s' % (name, var.__class__)) 30 | 31 | def encrypt_int(message, ekey, n): 32 | """Encrypts a message using encryption key 'ekey', working modulo n""" 33 | 34 | assert_int(message, 'message') 35 | assert_int(ekey, 'ekey') 36 | assert_int(n, 'n') 37 | 38 | if message < 0: 39 | raise ValueError('Only non-negative numbers are supported') 40 | 41 | if message > n: 42 | raise OverflowError("The message %i is too long for n=%i" % (message, n)) 43 | 44 | return pow(message, ekey, n) 45 | 46 | def decrypt_int(cyphertext, dkey, n): 47 | """Decrypts a cypher text using the decryption key 'dkey', working 48 | modulo n""" 49 | 50 | if type(cyphertext) not in (types.IntType, types.LongType): 51 | raise TypeError('cyphertext should be an integer, not %s' % 52 | cyphertext.__type__) 53 | 54 | assert_int(cyphertext, 'cyphertext') 55 | assert_int(dkey, 'dkey') 56 | assert_int(n, 'n') 57 | 58 | message = pow(cyphertext, dkey, n) 59 | return message 60 | 61 | -------------------------------------------------------------------------------- /server/lib/rsa/common.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright 2011 Sybren A. Stüvel 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | '''Common functionality shared by several modules.''' 18 | 19 | 20 | import math 21 | 22 | def bit_size(number): 23 | '''Returns the number of bits required to hold a specific long number. 24 | 25 | >>> bit_size(1023) 26 | 10 27 | >>> bit_size(1024) 28 | 11 29 | >>> bit_size(1025) 30 | 11 31 | 32 | >>> bit_size(1 << 1024) 33 | 1025 34 | >>> bit_size((1 << 1024) + 1) 35 | 1025 36 | >>> bit_size((1 << 1024) - 1) 37 | 1024 38 | 39 | ''' 40 | 41 | if number < 0: 42 | raise ValueError('Only nonnegative numbers possible: %s' % number) 43 | 44 | if number == 0: 45 | return 1 46 | 47 | # This works, even with very large numbers. When using math.log(number, 2), 48 | # you'll get rounding errors and it'll fail. 49 | bits = 0 50 | while number: 51 | bits += 1 52 | number >>= 1 53 | 54 | return bits 55 | 56 | 57 | def byte_size(number): 58 | """Returns the number of bytes required to hold a specific long number. 59 | 60 | The number of bytes is rounded up. 61 | 62 | >>> byte_size(1 << 1023) 63 | 128 64 | >>> byte_size((1 << 1024) - 1) 65 | 128 66 | >>> byte_size(1 << 1024) 67 | 129 68 | """ 69 | 70 | return int(math.ceil(bit_size(number) / 8.0)) 71 | 72 | if __name__ == '__main__': 73 | import doctest 74 | doctest.testmod() 75 | 76 | -------------------------------------------------------------------------------- /tools/osstats.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python2 2 | 3 | import os 4 | import sys 5 | from optparse import OptionParser 6 | baseDir = os.path.abspath(os.path.dirname(__file__)) 7 | sys.path.insert(0, os.path.join(baseDir, '..', 'server', "lib")) 8 | 9 | import types 10 | from ige import Const 11 | import ige.ospace.Const as osConst 12 | from ige.IDataHolder import IDataHolder 13 | from ige.SQLiteDatabase import Database, DatabaseString 14 | 15 | # parse command line arguments 16 | parser = OptionParser(usage = "usage: %prog [--configdir=]") 17 | parser.add_option("", "--configdir", dest = "configDir", 18 | metavar = "DIRECTORY", default = os.path.join(os.path.expanduser("~"), ".outerspace"), 19 | help = "Override default configuration directory", 20 | ) 21 | options, args = parser.parse_args() 22 | 23 | gameDB = Database(os.path.join(options.configDir, "db_data"), "game_Alpha", cache = 15000) 24 | #~ gameDB = DatabaseString("var/db_data", "messages", cache = 15000) 25 | 26 | def typeIdToString(obj): 27 | if not isinstance(obj, IDataHolder): 28 | return "?" 29 | for _type in ['T_GALAXY', 'T_SYSTEM', 'T_PLANET', 'T_FLEET', 'T_TECHNOLOGY', 'T_NATURE', 30 | 'T_AIPLAYER', 'T_AIRENPLAYER', 'T_AIMUTPLAYER', 'T_AIPIRPLAYER', 'T_AIEDENPLAYER', 'T_PIRPLAYER']: 31 | if obj.type == getattr(osConst, _type): 32 | return _type 33 | for _type in ['T_PLAYER', 'T_UNIVERSE', 'T_UNKNOWN', 'T_OBJECT']: 34 | if obj.type == getattr(Const, _type): 35 | return _type 36 | return "? (%d)" % obj.type 37 | 38 | count = {} 39 | total = {} 40 | maxval = {} 41 | 42 | for oid in gameDB.keys(): 43 | t = typeIdToString(gameDB[oid]) 44 | #~ print oid, t, gameDB.view.itemsize(gameDB.view.data, i) 45 | if t not in count: 46 | count[t] = 0 47 | total[t] = 0 48 | maxval[t] = 0 49 | count[t] += 1 50 | total[t] += gameDB.getItemLength(oid) 51 | maxval[t] = max(maxval[t], gameDB.getItemLength(oid)) 52 | 53 | print "%15s %10s %10s %10s %10s" % ("TYPE", "COUNT", "TOTAL", "AVG", "MAX") 54 | print 59 * "-" 55 | for key in count: 56 | print "%15s %10d %10d %10d %10d" % (key, count[key], total[key], total[key] / count[key], maxval[key]) 57 | -------------------------------------------------------------------------------- /server/lib/pyasn1/type/char.py: -------------------------------------------------------------------------------- 1 | # ASN.1 "character string" types 2 | from pyasn1.type import univ, tag 3 | 4 | class UTF8String(univ.OctetString): 5 | tagSet = univ.OctetString.tagSet.tagImplicitly( 6 | tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12) 7 | ) 8 | encoding = "utf-8" 9 | 10 | class NumericString(univ.OctetString): 11 | tagSet = univ.OctetString.tagSet.tagImplicitly( 12 | tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 18) 13 | ) 14 | 15 | class PrintableString(univ.OctetString): 16 | tagSet = univ.OctetString.tagSet.tagImplicitly( 17 | tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 19) 18 | ) 19 | 20 | class TeletexString(univ.OctetString): 21 | tagSet = univ.OctetString.tagSet.tagImplicitly( 22 | tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 20) 23 | ) 24 | 25 | 26 | class VideotexString(univ.OctetString): 27 | tagSet = univ.OctetString.tagSet.tagImplicitly( 28 | tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 21) 29 | ) 30 | 31 | class IA5String(univ.OctetString): 32 | tagSet = univ.OctetString.tagSet.tagImplicitly( 33 | tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 22) 34 | ) 35 | 36 | class GraphicString(univ.OctetString): 37 | tagSet = univ.OctetString.tagSet.tagImplicitly( 38 | tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 25) 39 | ) 40 | 41 | class VisibleString(univ.OctetString): 42 | tagSet = univ.OctetString.tagSet.tagImplicitly( 43 | tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 26) 44 | ) 45 | 46 | class GeneralString(univ.OctetString): 47 | tagSet = univ.OctetString.tagSet.tagImplicitly( 48 | tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 27) 49 | ) 50 | 51 | class UniversalString(univ.OctetString): 52 | tagSet = univ.OctetString.tagSet.tagImplicitly( 53 | tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 28) 54 | ) 55 | encoding = "utf-32-be" 56 | 57 | class BMPString(univ.OctetString): 58 | tagSet = univ.OctetString.tagSet.tagImplicitly( 59 | tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 30) 60 | ) 61 | encoding = "utf-16-be" 62 | -------------------------------------------------------------------------------- /tools/dbtool.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python2 2 | # 3 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 4 | # 5 | # This file is part of Outer Space. 6 | # 7 | # Outer Space is free software; you can redistribute it and/or modify 8 | # it under the terms of the GNU General Public License as published by 9 | # the Free Software Foundation; either version 2 of the License, or 10 | # (at your option) any later version. 11 | # 12 | # Outer Space is distributed in the hope that it will be useful, 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | # GNU General Public License for more details. 16 | # 17 | # You should have received a copy of the GNU General Public License 18 | # along with Outer Space; if not, write to the Free Software 19 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 | # 21 | 22 | # tweak PYTHONPATH 23 | import os 24 | import sys 25 | from optparse import OptionParser 26 | 27 | # setup system path 28 | baseDir = os.path.abspath(os.path.dirname(__file__)) 29 | sys.path.insert(0, os.path.join(baseDir, '..', 'server', 'lib')) 30 | sys.path.insert(0, os.path.join(baseDir, '..', 'client-ai')) 31 | 32 | import ige 33 | from ige import log 34 | import ige.ospace.Const as Const 35 | from ige.SQLiteDatabase import Database, DatabaseString 36 | 37 | # parse command line arguments 38 | parser = OptionParser(usage = "usage: %prog [options]") 39 | parser.add_option("", "--configdir", dest = "configDir", 40 | metavar = "DIRECTORY", default = os.path.join(os.path.expanduser("~"), ".outerspace"), 41 | help = "Override default configuration directory",) 42 | options, args = parser.parse_args() 43 | 44 | gameName = 'Alpha' 45 | 46 | gameDB = Database(os.path.join(options.configDir,"db_data"), "game_%s" % gameName, cache = 15000) 47 | clientDB = DatabaseString(os.path.join(options.configDir,"db_data"), "accounts", cache = 100) 48 | msgDB = DatabaseString(os.path.join(options.configDir,"db_data"), "messages", cache = 1000) 49 | bookingDB = DatabaseString(os.path.join(options.configDir,"db_data"), "bookings", cache = 100) 50 | 51 | # insert code 52 | 53 | 54 | # 55 | 56 | for db in gameDB, clientDB, msgDB, bookingDB: 57 | db.shutdown() 58 | 59 | -------------------------------------------------------------------------------- /client-ai/main_ai_pool.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | from main_ai import runAIClient 22 | 23 | def runAIPool(options): 24 | import copy 25 | import sys 26 | import os 27 | import time 28 | import tempfile 29 | import traceback 30 | import multiprocessing 31 | import re 32 | import copy 33 | 34 | from ai_parser import AIList 35 | 36 | 37 | games = [] 38 | if options.game: 39 | games.append(options.game) 40 | else: 41 | # support for games autodetect is not implemented 42 | raise NotImplementedError 43 | 44 | aiPool = multiprocessing.Pool(processes = options.procs) 45 | 46 | results = [] 47 | for gameName in games: 48 | aiList = AIList(options.configDir) 49 | for record in aiList.getAll(): 50 | optAI = copy.copy(options) 51 | optAI.configDir = os.path.join(options.configDir, 'ai_data', gameName) 52 | optAI.login = record.login 53 | optAI.password = record.password 54 | optAI.ai = record.aiType 55 | optAI.game = gameName 56 | optAI.test = False 57 | results.append(aiPool.apply_async(runAIClient, [optAI])) 58 | aiPool.close() 59 | for result in results: 60 | try: 61 | result.get() 62 | except Exception as exc: 63 | # having pass or continue here prevents exception from being printed 64 | # What the actual hell? 65 | True 66 | aiPool.join() 67 | sys.exit() 68 | 69 | -------------------------------------------------------------------------------- /server/lib/ige/ospace/IAIPlayer.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | import time 21 | 22 | import Const 23 | 24 | from ige import log 25 | from ige.IObject import public 26 | from IPlayer import IPlayer 27 | 28 | class IAIPlayer(IPlayer): 29 | 30 | typeID = Const.T_AIPLAYER 31 | 32 | def init(self, obj): 33 | IPlayer.init(self, obj) 34 | # 35 | obj.name = u'Rebels' 36 | obj.login = '*' 37 | 38 | def register(self, tran, obj, galaxyID): 39 | log.debug("Reregistering player", obj.oid) 40 | counter = 1 41 | while 1: 42 | obj.name = u'Rebel faction %d' % counter 43 | obj.login = '*AIP*rebels%d' % counter 44 | if galaxyID in tran.gameMngr.accountGalaxies(obj.login): 45 | counter += 1 46 | continue 47 | tran.gameMngr.registerPlayer(obj.login, obj, obj.oid) 48 | log.debug("Player registered") 49 | tran.db[Const.OID_UNIVERSE].players.append(obj.oid) 50 | tran.gameMngr.clientMngr.createAIAccount(obj.login, obj.name, 'ais_rebel') 51 | break 52 | # grant techs and so on 53 | self.cmd(obj).update(tran, obj) 54 | 55 | @public(Const.AL_ADMIN) 56 | def processINITPhase(self, tran, obj, data): 57 | IPlayer.processINITPhase(self, tran, obj, data) 58 | obj.lastLogin = time.time() 59 | # delete itself if there are no fleets and planets 60 | if not obj.fleets and not obj.planets: 61 | self.cmd(obj).delete(tran, obj) 62 | -------------------------------------------------------------------------------- /server/lib/ige/ospace/INature.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | import time 21 | 22 | import Const 23 | 24 | from ige import log 25 | from ige.IDataHolder import IDataHolder 26 | from ige.IObject import public 27 | from IPlayer import IPlayer 28 | 29 | class INature(IPlayer): 30 | 31 | typeID = Const.T_NATURE 32 | 33 | def init(self, obj): 34 | IPlayer.init(self, obj) 35 | # 36 | obj.name = u'NATURE' 37 | obj.login = '*NATURE*' 38 | 39 | @public(Const.AL_ADMIN) 40 | def processINITPhase(self, tran, obj, data): 41 | IPlayer.processINITPhase(self, tran, obj, data) 42 | obj.lastLogin = time.time() 43 | 44 | @public(Const.AL_ADMIN) 45 | def processPRODPhase(self, tran, obj, data): 46 | return None 47 | 48 | @public(Const.AL_ADMIN) 49 | def processBATTLEPhase(self, tran, obj, data): 50 | return None 51 | 52 | def getDiplomacyWith(self, tran, obj, playerID): 53 | # this AI battles with overyone 54 | # make default 55 | dipl = IDataHolder() 56 | dipl.type = Const.T_DIPLREL 57 | dipl.pacts = {} 58 | if obj.oid == playerID: 59 | dipl.relation = Const.REL_UNITY 60 | else: 61 | dipl.relation = Const.REL_ENEMY 62 | dipl.relChng = 0 63 | dipl.lastContact = tran.db[Const.OID_UNIVERSE].turn 64 | dipl.contactType = Const.CONTACT_NONE 65 | dipl.stats = None 66 | return dipl 67 | 68 | def isPactActive(self, tran, obj, partnerID, pactID): 69 | return 0 70 | -------------------------------------------------------------------------------- /client/osci/handler.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | import gdata 22 | from dialog import ProgressDlg 23 | from dialog import PlayerSelectDlg 24 | import pygame 25 | from ige import log 26 | 27 | # module globals 28 | progressDlg = None 29 | 30 | def onInitConnection(): 31 | pass 32 | 33 | def onConnInitialized(): 34 | pass 35 | 36 | def onCmdBegin(): 37 | if gdata.mainGameDlg: 38 | gdata.mainGameDlg.onCmdInProgress(1) 39 | else: 40 | gdata.cmdInProgress = 1 41 | gdata.app.update() 42 | 43 | def onCmdEnd(): 44 | if gdata.mainGameDlg: 45 | gdata.mainGameDlg.onCmdInProgress(0) 46 | else: 47 | gdata.cmdInProgress = 0 48 | gdata.app.update() 49 | 50 | def onUpdateStarting(): 51 | global progressDlg 52 | log.debug("onUpdateStarting") 53 | if not progressDlg: 54 | progressDlg = ProgressDlg(gdata.app) 55 | progressDlg.display(_('Updating OSCI database...'), 0, 1) 56 | 57 | def onUpdateProgress(curr, max, text = None): 58 | global progressDlg 59 | log.debug("onUpdateProgress") 60 | progressDlg.setProgress(text, curr, max) 61 | 62 | def onUpdateFinished(): 63 | global progressDlg 64 | log.debug("onUpdateFinished") 65 | try: 66 | progressDlg.hide() 67 | except: 68 | log.warning("Cannot delete progressDlg window") 69 | for dialog in gdata.updateDlgs: 70 | dialog.update() 71 | 72 | def onNewMessages(number): 73 | gdata.mainGameDlg.messagesDlg.update() 74 | 75 | def onWaitingForResponse(): 76 | #pygame.event.pump() 77 | while pygame.event.poll().type != pygame.NOEVENT: 78 | pass 79 | -------------------------------------------------------------------------------- /server/lib/ige/Authentication.py: -------------------------------------------------------------------------------- 1 | import binascii 2 | from ige import SecurityException, log 3 | import hashlib 4 | import os 5 | import rsa 6 | import time 7 | 8 | defaultMethod = "rsa" 9 | 10 | # support for RSA keys 11 | publicKey = None 12 | privateKey = None 13 | 14 | def init(authMethod, size=2048): 15 | # RSA needs init 16 | if authMethod == "rsa": 17 | initRSAKeys(size) 18 | 19 | def _generateKeys(size): 20 | global publicKey, privateKey 21 | # no keys, let's generate them 22 | log.message("Generating RSA keys of size {0}, please wait...".format(size)) 23 | publicKey, privateKey = rsa.newkeys(size) 24 | 25 | def initRSAKeys(size): 26 | """Load or generate and save RSA keys""" 27 | _generateKeys(size) 28 | 29 | def getPublicKey(): 30 | """Get current RSA public key""" 31 | assert publicKey is not None 32 | return publicKey 33 | 34 | def getPrivateKey(): 35 | """Get current RSA private key""" 36 | assert privateKey is not None 37 | return privateKey 38 | 39 | # 40 | def getMethod(challenge): 41 | return challenge.split(":")[0] 42 | 43 | def getWelcomeString(method = "rsa"): 44 | """Return welcome string (typically a challenge)""" 45 | if method == "sha256": 46 | return "sha256:" + hashlib.sha256(str(time.time())).hexdigest() 47 | elif method == "rsa": 48 | publicKey = getPublicKey() 49 | return "rsa:%s:%s" % (publicKey.n, publicKey.e) 50 | raise SecurityException("Unsupported authentication method %s" % str(method)) 51 | 52 | def encode(password, challenge): 53 | """Encode password using auth method specified in the challenge""" 54 | method = getMethod(challenge) 55 | if method == "sha256": 56 | return hashlib.sha256(password + challenge).hexdigest() 57 | elif method == "rsa": 58 | dummy, n, e = challenge.split(":") 59 | key = rsa.PublicKey(int(n), int(e)) 60 | return binascii.hexlify(rsa.encrypt(password.encode('utf-8'), key)) 61 | raise SecurityException("Unsupported authentication method %s" % str(method)) 62 | 63 | def unwrapUserPassword(password, challenge): 64 | """Decode password according to auth method (if possible)""" 65 | method = getMethod(challenge) 66 | if method == "sha256": 67 | return password 68 | elif method == "rsa": 69 | return rsa.decrypt(binascii.unhexlify(password), getPrivateKey()) 70 | raise SecurityException("Unsupported authentication method %s" % str(method)) 71 | 72 | -------------------------------------------------------------------------------- /client/osci/dialog/ProgressDlg.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2001 - 2016 Ludek Smid [http://www.ospace.net/] 3 | # 4 | # This file is part of Outer Space. 5 | # 6 | # Outer Space is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Outer Space is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Outer Space; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | # 20 | 21 | import pygameui as ui 22 | from osci import res, gdata 23 | 24 | class ProgressDlg: 25 | 26 | def __init__(self, app): 27 | self.app = app 28 | self.createUI() 29 | 30 | def display(self, title, min, max): 31 | self.win.title = title 32 | self.win.vProgress.min = min 33 | self.win.vProgress.max = max 34 | self.setProgress(title, min) 35 | self.win.show() 36 | 37 | def hide(self): 38 | self.win.destroy() 39 | 40 | def setProgress(self, text, current = None, max = None): 41 | if text: 42 | self.win.vText.text = [text] 43 | if max != None: 44 | self.win.vProgress.min = 0 45 | self.win.vProgress.max = max 46 | if current != None: 47 | self.win.vProgress.value = current 48 | self.app.update() 49 | 50 | 51 | def createUI(self): 52 | w, h = gdata.scrnSize 53 | self.win = ui.Window(self.app, 54 | modal = 1, 55 | movable = 0, 56 | title = _('Question'), 57 | rect = ui.Rect((w - 424) / 2, (h - 124) / 2, 424, 124), 58 | layoutManager = ui.SimpleGridLM(), 59 | ) 60 | self.win.subscribeAction('*', self) 61 | ui.Text(self.win, layout = (5, 1, 15, 1), id = 'vText', background = self.win.app.theme.themeBackground, editable = 0) 62 | ui.ProgressBar(self.win, layout = (5, 2, 15, 1), id = 'vProgress') 63 | ui.Label(self.win, layout = (0, 0, 5, 4), icons = ((res.loginLogoImg, ui.ALIGN_W),)) 64 | ui.Title(self.win, layout = (0, 4, 21, 1), id = 'vStatusBar', align = ui.ALIGN_W) 65 | -------------------------------------------------------------------------------- /server/lib/rsa/randnum.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright 2011 Sybren A. Stüvel 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | '''Functions for generating random numbers.''' 18 | 19 | # Source inspired by code by Yesudeep Mangalapilly 20 | 21 | import os 22 | 23 | from rsa import common, transform 24 | 25 | def read_random_bits(nbits): 26 | '''Reads 'nbits' random bits. 27 | 28 | If nbits isn't a whole number of bytes, an extra byte will be appended with 29 | only the lower bits set. 30 | ''' 31 | 32 | nbytes, rbits = divmod(nbits, 8) 33 | 34 | # Get the random bytes 35 | randomdata = os.urandom(nbytes) 36 | 37 | # Add the remaining random bits 38 | if rbits > 0: 39 | randomvalue = ord(os.urandom(1)) 40 | randomvalue >>= (8 - rbits) 41 | randomdata = chr(randomvalue) + randomdata 42 | 43 | return randomdata 44 | 45 | 46 | def read_random_int(nbits): 47 | """Reads a random integer of approximately nbits bits. 48 | """ 49 | 50 | randomdata = read_random_bits(nbits) 51 | value = transform.bytes2int(randomdata) 52 | 53 | # Ensure that the number is large enough to just fill out the required 54 | # number of bits. 55 | value |= 1 << (nbits - 1) 56 | 57 | return value 58 | 59 | def randint(maxvalue): 60 | """Returns a random integer x with 1 <= x <= maxvalue 61 | 62 | May take a very long time in specific situations. If maxvalue needs N bits 63 | to store, the closer maxvalue is to (2 ** N) - 1, the faster this function 64 | is. 65 | """ 66 | 67 | bit_size = common.bit_size(maxvalue) 68 | 69 | tries = 0 70 | while True: 71 | value = read_random_int(bit_size) 72 | if value <= maxvalue: 73 | break 74 | 75 | if tries and tries % 10 == 0: 76 | # After a lot of tries to get the right number of bits but still 77 | # smaller than maxvalue, decrease the number of bits by 1. That'll 78 | # dramatically increase the chances to get a large enough number. 79 | bit_size -= 1 80 | tries += 1 81 | 82 | return value 83 | 84 | 85 | --------------------------------------------------------------------------------