├── .gitattributes ├── .gitignore ├── README.md ├── android_sign_install.bat ├── data ├── InventoryV2_btn_group.tres ├── animations │ ├── popin.tres │ ├── popin_shader.tres │ └── ship_rotation01.tres ├── fonts │ ├── DejaVuSansMono-Bold.ttf │ ├── DejaVuSansMono-BoldOblique.ttf │ ├── DejaVuSansMono-Oblique.ttf │ ├── DejaVuSansMono.tres │ ├── DejaVuSansMono.ttf │ ├── DejaVuSansMonoBold.tres │ ├── DejaVuSansMonoBold_text.tres │ ├── DejaVuSansMonoItal.tres │ ├── DejaVuSansMonoItalBold.tres │ ├── DejaVuSansMonoItalBold_text.tres │ ├── DejaVuSansMonoItal_text.tres │ ├── DejaVuSansMono_text.tres │ ├── NotoSansMonoCJKjp-Bold.otf │ ├── NotoSansMonoCJKjp-Regular.otf │ ├── NotoSansMonoJP.tres │ ├── NotoSansMonoJPBold.tres │ ├── NotoSansMonoJPBold_text.tres │ └── NotoSansMonoJP_text.tres ├── json │ ├── items │ │ ├── consumables │ │ │ ├── chaff.json │ │ │ ├── emergency_warp.json │ │ │ ├── repair_kit.json │ │ │ ├── repair_nanobots.json │ │ │ └── shield_battery.json │ │ ├── converters │ │ │ ├── converter_mk1.json │ │ │ ├── converter_mk2.json │ │ │ ├── converter_mk3.json │ │ │ ├── converter_yendor.json │ │ │ ├── electro_warfare.json │ │ │ ├── jerg_converter_mk1.json │ │ │ └── vorg_converter_mk1.json │ │ ├── effects │ │ │ ├── blocking.json │ │ │ ├── broken.json │ │ │ ├── chaff_effect.json │ │ │ ├── compact.json │ │ │ ├── cooled.json │ │ │ ├── dull.json │ │ │ ├── efficient.json │ │ │ ├── em.json │ │ │ ├── fast.json │ │ │ ├── focused.json │ │ │ ├── he.json │ │ │ ├── hot_swap.json │ │ │ ├── leaden_shield.json │ │ │ ├── leaden_weapon.json │ │ │ ├── linked.json │ │ │ ├── long_range.json │ │ │ ├── lucky.json │ │ │ ├── mimetic.json │ │ │ ├── movement_hack.json │ │ │ ├── normal.json │ │ │ ├── overloaded.json │ │ │ ├── precision.json │ │ │ ├── salvage.json │ │ │ ├── scanner_hack.json │ │ │ ├── sensitive.json │ │ │ ├── shield_hack.json │ │ │ ├── shielded.json │ │ │ ├── shielded_converter.json │ │ │ ├── shielded_scanner.json │ │ │ ├── shielded_shield.json │ │ │ ├── shielded_utility.json │ │ │ ├── shielded_weapon.json │ │ │ ├── swarm.json │ │ │ ├── transciever.json │ │ │ ├── transponder.json │ │ │ ├── utility_hack.json │ │ │ ├── weapon_hack.json │ │ │ └── widebeam.json │ │ ├── misc │ │ │ ├── battleship_body.json │ │ │ ├── containers │ │ │ │ ├── drop_battleship_body.json │ │ │ │ ├── drop_frigate_body.json │ │ │ │ ├── drop_probe_body.json │ │ │ │ └── drop_scout_body.json │ │ │ ├── diluted_cristals.json │ │ │ ├── frigate_body.json │ │ │ ├── hydrogen.json │ │ │ ├── oxygen.json │ │ │ ├── probe_body.json │ │ │ ├── scout_body.json │ │ │ ├── spare_parts.json │ │ │ └── uranium.json │ │ ├── scanners │ │ │ ├── broken_long_range_scanner_mk1.json │ │ │ ├── broken_scanner_mk1.json │ │ │ ├── long_range_scanner_mk1.json │ │ │ ├── long_range_scanner_mk2.json │ │ │ ├── long_range_scanner_mk3.json │ │ │ ├── scanner_mk1.json │ │ │ ├── scanner_mk2.json │ │ │ ├── scanner_mk3.json │ │ │ └── ultimate_scanner.json │ │ ├── shields │ │ │ ├── aegis_shield.json │ │ │ ├── broken_shield_mk1.json │ │ │ ├── broken_shield_mk2.json │ │ │ ├── shield_mk1.json │ │ │ ├── shield_mk2.json │ │ │ └── shield_mk3.json │ │ ├── special │ │ │ ├── jerg_natural_regen.json │ │ │ └── radiation_damage.json │ │ ├── utilities │ │ │ ├── backup_system.json │ │ │ ├── boost_antenna.json │ │ │ ├── firewall.json │ │ │ ├── gravitic_compactor.json │ │ │ ├── hotswap_system.json │ │ │ ├── hull_analyzer.json │ │ │ ├── jammer.json │ │ │ ├── power_amplifier.json │ │ │ ├── power_amplifier_mk2.json │ │ │ ├── power_amplifier_mk3.json │ │ │ ├── shield_analyzer.json │ │ │ ├── shield_bypass.json │ │ │ ├── solar_array.json │ │ │ ├── speed_boost.json │ │ │ ├── speed_boost_mk2.json │ │ │ ├── targeting_computer.json │ │ │ ├── tinfoil.json │ │ │ ├── vulnerability_scanner.json │ │ │ └── weapon_bypass.json │ │ └── weapons │ │ │ ├── broken_laser_turret_mk1.json │ │ │ ├── broken_missile_launcher_mk1.json │ │ │ ├── bullet_clip.json │ │ │ ├── chaos_ball_generator.json │ │ │ ├── chaos_ball_generator_unique.json │ │ │ ├── depleted_uranium.json │ │ │ ├── emp_mk1.json │ │ │ ├── emp_mk2.json │ │ │ ├── emp_mk3.json │ │ │ ├── laser_turret_mk1.json │ │ │ ├── laser_turret_mk2.json │ │ │ ├── minigun.json │ │ │ ├── mining_laser.json │ │ │ ├── mining_laser_mk2.json │ │ │ ├── missile.json │ │ │ ├── missile_launcher_mk1.json │ │ │ ├── missile_launcher_mk2.json │ │ │ ├── missile_launcher_mk3.json │ │ │ ├── rail_gun_mk1.json │ │ │ ├── rail_gun_mk2.json │ │ │ ├── remote_datajack_mk1.json │ │ │ ├── remote_datajack_mk2.json │ │ │ ├── remote_datajack_mk3.json │ │ │ ├── torpedo.json │ │ │ ├── torpedo_launcher_mk1.json │ │ │ └── torpedo_launcher_mk2.json │ ├── levels │ │ ├── human_branch │ │ │ ├── branch02.json │ │ │ ├── branch03.json │ │ │ └── branch04.json │ │ ├── jerg_branch │ │ │ ├── branch04.json │ │ │ ├── branch05.json │ │ │ └── branch06.json │ │ ├── main │ │ │ ├── main01.json │ │ │ ├── main02.json │ │ │ ├── main03.json │ │ │ ├── main04.json │ │ │ ├── main05.json │ │ │ ├── main06.json │ │ │ ├── main07.json │ │ │ ├── main08.json │ │ │ ├── main09.json │ │ │ ├── main10.json │ │ │ └── main11.json │ │ ├── start.json │ │ ├── test.json │ │ └── vorg_branch │ │ │ ├── branch06.json │ │ │ ├── branch07.json │ │ │ └── branch08.json │ ├── props │ │ ├── trade_port.json │ │ ├── unknow.json │ │ └── unknow2.json │ ├── ships │ │ ├── human │ │ │ ├── battleship.json │ │ │ ├── bomber.json │ │ │ ├── bomber_emp.json │ │ │ ├── frigate.json │ │ │ ├── frigate_electro.json │ │ │ ├── merchants │ │ │ │ ├── electro_trader.json │ │ │ │ ├── generic.json │ │ │ │ ├── junkyard_trader.json │ │ │ │ ├── tools_trader.json │ │ │ │ ├── trader_joe.json │ │ │ │ └── weapon_trader.json │ │ │ ├── player_battleship.json │ │ │ ├── player_bomber.json │ │ │ ├── player_frigate.json │ │ │ ├── player_probe.json │ │ │ ├── player_scout.json │ │ │ ├── probe.json │ │ │ ├── scout_laser.json │ │ │ └── scout_missile.json │ │ ├── jerg │ │ │ ├── battleship.json │ │ │ ├── bomber.json │ │ │ ├── bomber_emp.json │ │ │ ├── drone.json │ │ │ ├── frigate.json │ │ │ ├── frigate_electro.json │ │ │ ├── player_battleship.json │ │ │ ├── player_bomber.json │ │ │ ├── player_frigate.json │ │ │ ├── player_scout.json │ │ │ ├── queen.json │ │ │ └── scout_laser.json │ │ ├── mid_game_test.json │ │ ├── player_default.json │ │ ├── special │ │ │ └── xileen.json │ │ └── vorg │ │ │ ├── battleship.json │ │ │ ├── bomber.json │ │ │ ├── frigate.json │ │ │ ├── frigate_electro.json │ │ │ ├── frigate_minigun.json │ │ │ ├── mothership.json │ │ │ ├── player_battleship.json │ │ │ ├── player_bomber.json │ │ │ ├── player_frigate.json │ │ │ ├── player_scout.json │ │ │ ├── pylon.json │ │ │ └── scout_missile.json │ └── stellar │ │ ├── alien-sun.json │ │ ├── anomalies │ │ ├── blind_anomaly.json │ │ ├── energy_syphon.json │ │ └── slow_anomaly.json │ │ ├── nebula.json │ │ ├── planet.json │ │ ├── planet_human_homeworld.json │ │ ├── planet_jerg_homeworld.json │ │ ├── planet_radiation.json │ │ ├── planet_vorg_homeworld.json │ │ ├── planetlvl2.json │ │ ├── planetlvl3.json │ │ ├── small_nebula.json │ │ └── sun.json ├── shaders │ ├── HSV.tres │ ├── SpaceBG-composite.shader │ ├── SpaceBG-fractal.shader │ ├── Sprite-desaturate.tres │ ├── Sprite-desaturate.tscn │ ├── emp_particle.tres │ ├── fow_mask.shader │ ├── fow_mask.tres │ ├── green_swipe.tres │ ├── nebula.tres │ ├── sprite-desaturate.shader │ ├── swirl.shader │ ├── swirl.tres │ ├── swirl_blue.tres │ └── ui_vfx.shader ├── styles │ ├── GUI_bg.tres │ ├── animated_btn.tres │ ├── btn_disabled.tres │ ├── btn_hover.tres │ ├── btn_list_pressed.tres │ ├── btn_pressed.tres │ ├── settings_bg_dark.tres │ ├── settings_bg_light.tres │ └── trans.tres ├── theme │ ├── crafting │ │ ├── all_selection.tres │ │ └── partial_selection.tres │ ├── default_ui_text.tres │ ├── disabled_normal_ui_text.tres │ ├── disabled_ui_text.tres │ ├── h2.tres │ └── header_ui_text.tres └── translation │ ├── base.csv │ ├── base.csv.import │ ├── base.en.translation │ ├── base.fr.translation │ └── base.ja.translation ├── default_bus_layout.tres ├── default_env.tres ├── export_presets.cfg ├── icon.ico ├── icon.png ├── icon.png.import ├── json_explorer.py ├── leaderboard_generator.py ├── logcat.log ├── project.godot ├── scenes ├── Animations │ ├── CraftShipFX.tscn │ ├── ShipAnimations.tscn │ ├── ShipAnimations2.tscn │ ├── planet_hit_inst.tscn │ ├── ship_base_hit_fx.tscn │ └── warp_trail_tile.tscn ├── BG_Child.tscn ├── BG_Root.tscn ├── BorderGenerator.tscn ├── BorderTile.tscn ├── FoW.tscn ├── GUI │ ├── ButtonBase.tscn │ ├── Debug │ │ ├── APBehaviorDebug.tscn │ │ └── FPSCounter.tscn │ ├── DialogWindowBaseASCII.tscn │ ├── Dialogs │ │ ├── ConverterV2.tscn │ │ ├── Credits.tscn │ │ ├── Crew3.tscn │ │ ├── DeathScreen.tscn │ │ ├── Description.tscn │ │ ├── Fade.tscn │ │ ├── HackTarget.tscn │ │ ├── HowManyDiag.tscn │ │ ├── InventoryV2.tscn │ │ ├── MultipleTarget.tscn │ │ ├── Options.tscn │ │ ├── PlayerName.tscn │ │ ├── SelectableTarget.tscn │ │ ├── Settings.tscn │ │ ├── StoryPrompt.tscn │ │ ├── Trading.tscn │ │ ├── TransferInventoryV2.tscn │ │ ├── TutoPrompt.tscn │ │ ├── Tutorial.tscn │ │ ├── ValidateDiag.tscn │ │ └── WelcomeScreen.tscn │ ├── HUD.tscn │ ├── HUD_pc.tscn │ ├── HUD_swapper.gd │ ├── HoldToMove.tscn │ ├── ItemList │ │ ├── ChooseGrabRow.tscn │ │ ├── ChooseTargetRow.tscn │ │ ├── CraftingMaterialRow.tscn │ │ ├── CrewRow.tscn │ │ ├── DefaultRow.tscn │ │ ├── DefaultSelectableRow.tscn │ │ ├── DescRow.tscn │ │ ├── HackTargetRow.tscn │ │ ├── InventoryRowV2.tscn │ │ ├── LeaderboardRow.tscn │ │ ├── MyItemList.tscn │ │ ├── RecipeRow.tscn │ │ └── TradeRow.tscn │ ├── ListContentDialog.tscn │ ├── PopupButton.tscn │ ├── PopupButtonPC.tscn │ ├── ScrollListContainer.tscn │ ├── SlidePanel.tscn │ ├── SlidePanelRight.tscn │ ├── StringContentDialog.tscn │ └── TargettingHUD.tscn ├── MainMenu.tscn ├── Sample.tscn ├── Scanner_border.tscn ├── SpaceBG.tscn ├── level_prefab │ ├── ConverterOfYendor.tscn │ ├── human │ │ ├── battleship_scouts_police.tscn │ │ ├── electro_bomber_battleship.tscn │ │ ├── electro_bomber_scout.tscn │ │ └── frigate_scouts_police.tscn │ └── jerg │ │ ├── battleship_electro_frigate.tscn │ │ ├── battleship_electro_scout.tscn │ │ ├── battleship_frigate.tscn │ │ ├── battleship_scouts.tscn │ │ ├── double_battleships.tscn │ │ ├── double_scouts.tscn │ │ ├── double_scouts_bomber.tscn │ │ ├── double_scouts_electro.tscn │ │ ├── electro_frigate_scouts.tscn │ │ ├── frigate_scouts.tscn │ │ ├── queen_drones.tscn │ │ ├── scouts_bomber.tscn │ │ ├── scouts_electro.tscn │ │ └── triple_scouts.tscn ├── main.tscn ├── object.tscn ├── scanner_fx.tscn ├── sfx │ ├── Human_MoveSFX.tscn │ └── Human_Ship_BG.tscn ├── tileset_source │ ├── LaserFX01.tscn │ ├── anomaly.tscn │ ├── antenna.tscn │ ├── backup_system.tscn │ ├── battleship_body.tscn │ ├── bullet_clip.tscn │ ├── chaff.tscn │ ├── chaos_fx.tscn │ ├── chaos_generator.tscn │ ├── converter.tscn │ ├── cristal.tscn │ ├── depleted_uranium.tscn │ ├── emergency_warp.tscn │ ├── emp.tscn │ ├── emp_fx.tscn │ ├── emp_hit.tscn │ ├── explosion_fx.tscn │ ├── firewall.tscn │ ├── frigate_body.tscn │ ├── gravitic_compactor.tscn │ ├── hack_fx.tscn │ ├── hotswap.tscn │ ├── hull_analyzer.tscn │ ├── hull_hit_fx.tscn │ ├── human_battleship.tscn │ ├── human_bomber.tscn │ ├── human_frigate.tscn │ ├── human_scout.tscn │ ├── hydrogen.tscn │ ├── jammer.tscn │ ├── jerg_battleship.tscn │ ├── jerg_bomber.tscn │ ├── jerg_drone.tscn │ ├── jerg_frigate.tscn │ ├── jerg_queen.tscn │ ├── jerg_scout.tscn │ ├── kitbash_frigate.tscn │ ├── laser_turret.tscn │ ├── minigun.tscn │ ├── minigun_fx.tscn │ ├── missile.tscn │ ├── missile_fx.tscn │ ├── missile_launcher.tscn │ ├── nebula │ │ ├── nebula_tiles.tres │ │ ├── nebula_tiles_tilesetter.tres │ │ ├── tileset_src.tscn │ │ └── tileset_src_tilesetter.tscn │ ├── nebula2.tscn │ ├── nebula_generator.tscn │ ├── oxygen.tscn │ ├── planet_a.tscn │ ├── planet_b.tscn │ ├── planet_c.tscn │ ├── planet_d.tscn │ ├── planet_e.tscn │ ├── planet_f.tscn │ ├── planet_g.tscn │ ├── planet_h.tscn │ ├── planet_hit_fx.tscn │ ├── power_amplifier.tscn │ ├── probe.tscn │ ├── probe_body.tscn │ ├── proto-space4k.tscn │ ├── pylon_fx.tscn │ ├── railgun.tscn │ ├── railgun_fx.tscn │ ├── remote_datajack.tscn │ ├── repair_kit.tscn │ ├── repair_nanobots.tscn │ ├── scanner.tscn │ ├── scout_hull.tscn │ ├── shield.tscn │ ├── shield_analyzer.tscn │ ├── shield_battery.tscn │ ├── shield_bypass.tscn │ ├── shield_fx_root.tscn │ ├── solar_array.tscn │ ├── spare_parts.tscn │ ├── speed_boost.tscn │ ├── sun.tscn │ ├── targeting_computer.tscn │ ├── targetting_reticle.tscn │ ├── tinfoil.tscn │ ├── torpedo.tscn │ ├── torpedo_fx.tscn │ ├── torpedo_launcher.tscn │ ├── trade_icon.tscn │ ├── unknow.tscn │ ├── unknow2.tscn │ ├── uranium.tscn │ ├── vorg_battleship.tscn │ ├── vorg_bomber.tscn │ ├── vorg_frigate.tscn │ ├── vorg_mothership.tscn │ ├── vorg_pylon.tscn │ ├── vorg_scout.tscn │ ├── vulnerability_scanner.tscn │ ├── weapon_bypass.tscn │ ├── wormhole.tscn │ ├── wormhole_old.tscn │ └── wormhole_up.tscn ├── utility │ └── starfield_generator.tscn └── warp_trail_test.tscn ├── scripts ├── Attributes.gd ├── BG_Root.gd ├── Behaviors │ ├── AIBehavior.gd │ ├── APBehavior.gd │ ├── AmbienceBehavior.gd │ ├── AnimationBehavior.gd │ ├── AnomalyBehavior.gd │ ├── CompactorBehavior.gd │ ├── ConsumableBehavior.gd │ ├── CraftingBehavior.gd │ ├── DamageBehavior.gd │ ├── EffectsBehavior.gd │ ├── EnergyRegen.gd │ ├── HullRegenBehavior.gd │ ├── InventoryBehavior.gd │ ├── LevelLoaderBehavior.gd │ ├── LocalSaveBehavior.gd │ ├── MemoryBehavior.gd │ ├── MerchantBehavior.gd │ ├── MovementBehavior.gd │ ├── NebulaBehavior.gd │ ├── OutlinesBehavior.gd │ ├── PlayerBehavior.gd │ ├── RandomLogBehavior.gd │ ├── Runes │ │ ├── Assimilation.gd │ │ ├── JergQueen.gd │ │ ├── NewFriend.gd │ │ ├── Radiation.gd │ │ └── Runaway.gd │ ├── ScannerBehavior.gd │ ├── ScoringBehavior.gd │ ├── ShieldBehavior.gd │ ├── SpriteLoaderBehavior.gd │ ├── TargettingBehavior.gd │ ├── TeleportBehavior.gd │ ├── TutorialBehavior.gd │ └── UIManager.gd ├── BorderData.gd ├── BorderGenerator.gd ├── CamControl.gd ├── DEBUG.gd ├── FoW.gd ├── FoW2.gd ├── GUI │ ├── Audio │ │ └── ToggleBtnAudio.gd │ ├── ButtonBase.gd │ ├── CargoListContainer.gd │ ├── ConverterV2.gd │ ├── Credits.gd │ ├── CrewDialog.gd │ ├── DeathScreen.gd │ ├── Debug │ │ ├── APDebug.gd │ │ └── FPSCounter.gd │ ├── Description.gd │ ├── DialogWindowBaseV2.gd │ ├── DragDropCatcher.gd │ ├── DragDropCrafting.gd │ ├── DragDropTransfer.gd │ ├── FadeDialog.gd │ ├── GUILayoutBase.gd │ ├── HackTarget.gd │ ├── HowManyDiag.gd │ ├── InputConsumer.gd │ ├── InventoryV2.gd │ ├── ItemList │ │ ├── CargoSelectableRow.gd │ │ ├── ChooseGrabRow.gd │ │ ├── ChooseHackRow.gd │ │ ├── ChooseTargetRow.gd │ │ ├── CraftNeedRow.gd │ │ ├── CraftingMaterialRow.gd │ │ ├── CrewRow.gd │ │ ├── DefaultRow.gd │ │ ├── DefaultSelectableRow.gd │ │ ├── DescRow.gd │ │ ├── InventoryRowV2.gd │ │ ├── LeaderboardRow.gd │ │ ├── MountSelectableRow.gd │ │ ├── MyItemList.gd │ │ ├── RecipeRow.gd │ │ └── TradeRow.gd │ ├── ListContentDialog.gd │ ├── LogSystem.gd │ ├── MainMenu.gd │ ├── MainMenu │ │ └── Leaderboard.gd │ ├── MainMenuHUD.gd │ ├── MountListContainer.gd │ ├── MultipleTargetSelector.gd │ ├── Options.gd │ ├── PlayerName.gd │ ├── PopupButton.gd │ ├── PopupScreenBlock.gd │ ├── SafeArea.gd │ ├── ScrollListContainer.gd │ ├── Settings.gd │ ├── SlidePanel.gd │ ├── StatusBarSystem.gd │ ├── StoryPrompt.gd │ ├── StringContentDialog.gd │ ├── TargetSelector.gd │ ├── TargettingHUD.gd │ ├── Trading.gd │ ├── TransferInventoryV2.gd │ ├── TransitionContainer.gd │ ├── TutoPrompt.gd │ ├── Tutorial.gd │ ├── ValidateDiag.gd │ ├── WelcomeScreen.gd │ ├── mouse_targetting.gd │ └── window_draw.gd ├── ParallaxBG.gd ├── SpaceBG.gd ├── StarGenerator.gd ├── SunGrading.gd ├── animations │ ├── CraftShipFX.gd │ ├── MissileFX2.gd │ ├── chaos_fx.gd │ ├── emp_fx.gd │ ├── explosion_fx.gd │ ├── hack_fx.gd │ ├── hull_hit_fx.gd │ ├── laser_vfx_test02.gd │ ├── minigun_fx.gd │ ├── missile_fx.gd │ ├── particle_instancer.gd │ ├── planet_hit_fx.gd │ ├── pylon_fx.gd │ ├── ship_hit_fx.gd │ ├── ship_movement.gd │ ├── ship_movement_2_tile.gd │ └── warp_tile_fx.gd ├── autoload │ ├── BehaviorEvents.gd │ ├── Globals.gd │ ├── MersenneTwister.gd │ ├── PermSave.gd │ ├── Preloader.gd │ └── ShortcutManager.gd ├── loading_screen.gd ├── test.gd ├── tests │ ├── Camera2D.gd │ ├── EarthAsciiAnim.gd │ ├── FPS Counter.gd │ ├── Nebula.gd │ ├── TestAllGameObjects.gd │ ├── multi-star_test.gd │ ├── nebula_debug_temp.gd │ ├── scanner_shader.shader │ ├── test_ssaa.gd │ └── texturegen_test.gd └── tool │ ├── export_spritesheet.gd │ └── starfield_generator.gd ├── sign.bat └── signaab.bat /.gitattributes: -------------------------------------------------------------------------------- 1 | text=auto 2 | *.gd text eol=lf 3 | *.tscn text eol=lf 4 | *.tres text eol=lf 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .import 2 | android 3 | *tmp* 4 | /logs.txt 5 | /secret 6 | /data/private 7 | *.png~ 8 | *~ 9 | SolarRogue*.exe 10 | *.apk 11 | *.aab 12 | /data/src/spyros 13 | *.x86_64 14 | *-autosave* 15 | -------------------------------------------------------------------------------- /android_sign_install.bat: -------------------------------------------------------------------------------- 1 | "C:\Program Files\Java\jdk1.8.0_181\bin\jarsigner.exe" -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ..\..\GooglePlay\android.keystore %1 android-app-key 2 | adb install %1 3 | -------------------------------------------------------------------------------- /data/InventoryV2_btn_group.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="ButtonGroup" format=2] 2 | 3 | [resource] 4 | 5 | -------------------------------------------------------------------------------- /data/animations/popin.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Animation" format=2] 2 | 3 | [resource] 4 | resource_name = "popin" 5 | length = 0.3 6 | step = 0.05 7 | tracks/0/type = "value" 8 | tracks/0/path = NodePath("..:modulate") 9 | tracks/0/interp = 1 10 | tracks/0/loop_wrap = true 11 | tracks/0/imported = false 12 | tracks/0/enabled = true 13 | tracks/0/keys = { 14 | "times": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2, 0.25 ), 15 | "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), 16 | "update": 0, 17 | "values": [ Color( 0.129412, 1, 0.129412, 0 ), Color( 0.129412, 1, 0.129412, 0.137255 ), Color( 0.258824, 1, 0.258824, 0 ), Color( 0.258824, 1, 0.258824, 0.262745 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] 18 | } 19 | -------------------------------------------------------------------------------- /data/animations/ship_rotation01.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Animation" format=2] 2 | 3 | [resource] 4 | resource_name = "accel" 5 | length = 0.45 6 | step = 0.01 7 | tracks/0/type = "value" 8 | tracks/0/path = NodePath(".:position") 9 | tracks/0/interp = 1 10 | tracks/0/loop_wrap = true 11 | tracks/0/imported = false 12 | tracks/0/enabled = true 13 | tracks/0/keys = { 14 | "times": PoolRealArray( 0, 0.45 ), 15 | "transitions": PoolRealArray( 2, 1 ), 16 | "update": 0, 17 | "values": [ Vector2( 0, 0 ), Vector2( 128, 128 ) ] 18 | } 19 | 20 | -------------------------------------------------------------------------------- /data/fonts/DejaVuSansMono-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ombarus/SolarRogue/5ea5a3020ebd4bfd061e6db0f3f1a5d7fd71307a/data/fonts/DejaVuSansMono-Bold.ttf -------------------------------------------------------------------------------- /data/fonts/DejaVuSansMono-BoldOblique.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ombarus/SolarRogue/5ea5a3020ebd4bfd061e6db0f3f1a5d7fd71307a/data/fonts/DejaVuSansMono-BoldOblique.ttf -------------------------------------------------------------------------------- /data/fonts/DejaVuSansMono-Oblique.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ombarus/SolarRogue/5ea5a3020ebd4bfd061e6db0f3f1a5d7fd71307a/data/fonts/DejaVuSansMono-Oblique.ttf -------------------------------------------------------------------------------- /data/fonts/DejaVuSansMono.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="DynamicFont" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/fonts/DejaVuSansMono.ttf" type="DynamicFontData" id=1] 4 | 5 | [resource] 6 | size = 14 7 | font_data = ExtResource( 1 ) 8 | -------------------------------------------------------------------------------- /data/fonts/DejaVuSansMono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ombarus/SolarRogue/5ea5a3020ebd4bfd061e6db0f3f1a5d7fd71307a/data/fonts/DejaVuSansMono.ttf -------------------------------------------------------------------------------- /data/fonts/DejaVuSansMonoBold.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="DynamicFont" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/fonts/DejaVuSansMono-Bold.ttf" type="DynamicFontData" id=1] 4 | 5 | [resource] 6 | size = 14 7 | font_data = ExtResource( 1 ) 8 | 9 | -------------------------------------------------------------------------------- /data/fonts/DejaVuSansMonoBold_text.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="DynamicFont" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/fonts/DejaVuSansMono-Bold.ttf" type="DynamicFontData" id=1] 4 | 5 | [resource] 6 | size = 18 7 | font_data = ExtResource( 1 ) 8 | -------------------------------------------------------------------------------- /data/fonts/DejaVuSansMonoItal.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="DynamicFont" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/fonts/DejaVuSansMono-Oblique.ttf" type="DynamicFontData" id=1] 4 | 5 | [resource] 6 | size = 14 7 | font_data = ExtResource( 1 ) 8 | 9 | -------------------------------------------------------------------------------- /data/fonts/DejaVuSansMonoItalBold.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="DynamicFont" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/fonts/DejaVuSansMono-BoldOblique.ttf" type="DynamicFontData" id=1] 4 | 5 | [resource] 6 | 7 | size = 14 8 | use_mipmaps = false 9 | use_filter = false 10 | font_data = ExtResource( 1 ) 11 | _sections_unfolded = [ "Font", "Settings" ] 12 | 13 | -------------------------------------------------------------------------------- /data/fonts/DejaVuSansMonoItalBold_text.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="DynamicFont" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/fonts/DejaVuSansMono-BoldOblique.ttf" type="DynamicFontData" id=1] 4 | 5 | [resource] 6 | size = 18 7 | font_data = ExtResource( 1 ) 8 | -------------------------------------------------------------------------------- /data/fonts/DejaVuSansMonoItal_text.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="DynamicFont" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/fonts/DejaVuSansMono-Oblique.ttf" type="DynamicFontData" id=1] 4 | 5 | [resource] 6 | size = 18 7 | font_data = ExtResource( 1 ) 8 | 9 | -------------------------------------------------------------------------------- /data/fonts/DejaVuSansMono_text.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="DynamicFont" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/fonts/DejaVuSansMono.ttf" type="DynamicFontData" id=1] 4 | 5 | [resource] 6 | size = 18 7 | font_data = ExtResource( 1 ) 8 | -------------------------------------------------------------------------------- /data/fonts/NotoSansMonoCJKjp-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ombarus/SolarRogue/5ea5a3020ebd4bfd061e6db0f3f1a5d7fd71307a/data/fonts/NotoSansMonoCJKjp-Bold.otf -------------------------------------------------------------------------------- /data/fonts/NotoSansMonoCJKjp-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ombarus/SolarRogue/5ea5a3020ebd4bfd061e6db0f3f1a5d7fd71307a/data/fonts/NotoSansMonoCJKjp-Regular.otf -------------------------------------------------------------------------------- /data/fonts/NotoSansMonoJP.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="DynamicFont" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/fonts/NotoSansMonoCJKjp-Regular.otf" type="DynamicFontData" id=1] 4 | 5 | [resource] 6 | size = 14 7 | font_data = ExtResource( 1 ) 8 | 9 | -------------------------------------------------------------------------------- /data/fonts/NotoSansMonoJPBold.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="DynamicFont" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/fonts/NotoSansMonoCJKjp-Bold.otf" type="DynamicFontData" id=1] 4 | 5 | [resource] 6 | size = 14 7 | font_data = ExtResource( 1 ) 8 | 9 | -------------------------------------------------------------------------------- /data/fonts/NotoSansMonoJPBold_text.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="DynamicFont" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/fonts/NotoSansMonoCJKjp-Bold.otf" type="DynamicFontData" id=1] 4 | 5 | [resource] 6 | size = 18 7 | font_data = ExtResource( 1 ) 8 | 9 | -------------------------------------------------------------------------------- /data/fonts/NotoSansMonoJP_text.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="DynamicFont" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/fonts/NotoSansMonoCJKjp-Regular.otf" type="DynamicFontData" id=1] 4 | 5 | [resource] 6 | size = 18 7 | font_data = ExtResource( 1 ) 8 | 9 | -------------------------------------------------------------------------------- /data/json/items/consumables/emergency_warp.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Emergency Warp", 3 | "type":"consumable", 4 | "sprite": "emergency_warp", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[1536,385,128,125] 8 | }, 9 | "consumable": { 10 | "ap": 1.0, 11 | "energy":3000 12 | }, 13 | "teleport": { 14 | "_comment1":"teleport randomly but never within the margin[] around the ship", 15 | "_comment2":"duration could be used to give teleportitis?", 16 | "duration": 0, 17 | "margin":[5,5] 18 | }, 19 | "equipment": { 20 | "slot":"cargo", 21 | "volume":10.0, 22 | "stackable":true 23 | }, 24 | "recyclable": { 25 | "energy": 500, 26 | "player_sale_range": [700,1100], 27 | "player_buy_range": [1300,1700] 28 | }, 29 | "description": { 30 | "text":"A tiny black hole held in a portable container. Upon release the user will become lost in space.", 31 | "Overview": { 32 | "min_level":0, 33 | "fields":[ 34 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false}, 35 | {"name":"Turn used", "value":"{consumable.ap}", "translate_value":false}, 36 | {"name":"Energy used", "value":"{consumable.energy}", "translate_value":false} 37 | ] 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /data/json/items/consumables/repair_kit.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Repair Kit", 3 | "type":"consumable", 4 | "sprite": "repair_kit", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[0,1536,128,128] 8 | }, 9 | "consumable": { 10 | "ap": 4.0, 11 | "energy":500, 12 | "random_charge":[2,8], 13 | "close_inventory":false 14 | }, 15 | "update_effect": { 16 | "remove":"data/json/items/effects/broken.json" 17 | }, 18 | "equipment": { 19 | "slot":"cargo", 20 | "volume":25.0, 21 | "stackable":false 22 | }, 23 | "recyclable": { 24 | "energy": 1250, 25 | "player_sale_range": [1600,2500], 26 | "player_buy_range": [2850,4500] 27 | }, 28 | "disassembling": { 29 | "produce":"data/json/items/misc/spare_parts.json", 30 | "count":3, 31 | "energy_cost":1000 32 | }, 33 | "description": { 34 | "text":"A butchered converter capable of patching broken components with a few spare parts and a lot of tape.", 35 | "Overview": { 36 | "min_level":0, 37 | "fields":[ 38 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false}, 39 | {"name":"Turn used", "value":"{consumable.ap}", "translate_value":false} 40 | ] 41 | }, 42 | "Effect": { 43 | "min_level":0, 44 | "fields": [ 45 | {"name":"Repair", "value":"Broken items", "translate_value":true} 46 | ] 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /data/json/items/consumables/repair_nanobots.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Repair Nanobots", 3 | "type":"consumable", 4 | "sprite": "repair_nanobots", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[768,128,128,128] 8 | }, 9 | "consumable": { 10 | "ap": 1.0, 11 | "energy":500 12 | }, 13 | "hull_regen": { 14 | "duration": 5, 15 | "point_per_turn":5 16 | }, 17 | "equipment": { 18 | "slot":"cargo", 19 | "volume":10.0, 20 | "stackable":true 21 | }, 22 | "recyclable": { 23 | "energy": 500, 24 | "player_sale_range": [700,1100], 25 | "player_buy_range": [1300,1700] 26 | }, 27 | "description": { 28 | "text":"Tiny nanobots go out and fuse with the hull to repair it over time.", 29 | "Overview": { 30 | "min_level":0, 31 | "fields":[ 32 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false}, 33 | {"name":"Turn used", "value":"{consumable.ap}", "translate_value":false}, 34 | {"name":"Energy used", "value":"{consumable.energy}", "translate_value":false} 35 | ] 36 | }, 37 | "Effect": { 38 | "min_level":0, 39 | "fields": [ 40 | {"name":"Duration", "value":"{hull_regen.duration} turns", "translate_value":true}, 41 | {"name":"hp/turn", "value":"{hull_regen.point_per_turn}", "translate_value":false} 42 | ] 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /data/json/items/consumables/shield_battery.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Shield Battery", 3 | "type":"consumable", 4 | "sprite": "shield_battery", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[1920,0,128,128] 8 | }, 9 | "consumable": { 10 | "ap": 1.0, 11 | "energy":0 12 | }, 13 | "shield_regen": { 14 | "point":40 15 | }, 16 | "equipment": { 17 | "slot":"cargo", 18 | "volume":10.0, 19 | "stackable":true 20 | }, 21 | "recyclable": { 22 | "energy": 5000, 23 | "player_sale_range": [7000,8000], 24 | "player_buy_range": [10000,12000] 25 | }, 26 | "description": { 27 | "text":"An energy matrix specially aligned with the harmonics of our shield generator. Can quickly be emptied in the generator in case of emergency.", 28 | "Overview": { 29 | "min_level":0, 30 | "fields":[ 31 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false}, 32 | {"name":"Turn used", "value":"{consumable.ap}", "translate_value":false} 33 | ] 34 | }, 35 | "Effect": { 36 | "min_level":0, 37 | "fields": [ 38 | {"name":"Shield", "value":"+{shield_regen.point} points", "translate_value":true} 39 | ] 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /data/json/items/effects/blocking.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Blocking Shield", 3 | "type":"effect", 4 | "prefix":"Blocking %s", 5 | "attributes": { 6 | "self_shield_multiplier":1.5, 7 | "global_base_dam_multiplier":0.8, 8 | "global_max_dam_multiplier":0.8 9 | }, 10 | "description": { 11 | "Extra": { 12 | "min_level":0, 13 | "fields": [ 14 | {"name":"Weapon Damage", "value":"[color=red]-20% ↓[/color]"} 15 | ] 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /data/json/items/effects/broken.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Broken", 3 | "type":"effect", 4 | "prefix":"Broken %s", 5 | "attributes": { 6 | "self_shield_multiplier":0.75, 7 | "self_base_dam_multiplier":0.75, 8 | "self_max_dam_multiplier":0.75, 9 | "self_hp_regen_per_ap_multiplier":0.8, 10 | "self_energy_cost_per_hp_multiplier":2.0, 11 | "self_fire_speed_multiplier":1.2, 12 | "self_hit_chance_bonus":-0.05, 13 | "self_weapon_disable_weapon_chance_bonus":-0.15, 14 | "self_weapon_disable_shield_chance_bonus":-0.15, 15 | "self_weapon_disable_scanner_chance_bonus":-0.15, 16 | "self_weapon_disable_converter_chance_bonus":-0.15, 17 | "self_weapon_disable_utility_chance_bonus":-0.15, 18 | "self_weapon_disable_movement_chance_bonus":-0.15, 19 | "self_weapon_disable_ship_chance_bonus":-0.15 20 | } 21 | } -------------------------------------------------------------------------------- /data/json/items/effects/chaff_effect.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Chaff Effect", 3 | "type":"effect", 4 | "prefix":"", 5 | "attributes": { 6 | "global_destroyable_disable_weapon_chance_bonus":0.9, 7 | "global_destroyable_disable_shield_chance_bonus":0.9, 8 | "global_destroyable_disable_scanner_chance_bonus":0.9, 9 | "global_destroyable_disable_converter_chance_bonus":0.9, 10 | "global_destroyable_disable_utility_chance_bonus":0.9, 11 | "global_destroyable_disable_movement_chance_bonus":0.9, 12 | "global_destroyable_disable_ship_chance_bonus":0.4 13 | } 14 | } -------------------------------------------------------------------------------- /data/json/items/effects/compact.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Compact", 3 | "type":"effect", 4 | "prefix":"Compact %s", 5 | "attributes": { 6 | "global_move_multiplier":0.95, 7 | "self_shield_multiplier":0.6, 8 | "self_base_dam_multiplier":0.6, 9 | "self_max_dam_multiplier":0.6, 10 | "inv_self_volume_multiplier":0.5 11 | }, 12 | "description": { 13 | "Extra": { 14 | "min_level":0, 15 | "fields": [ 16 | {"name":"Ship Movement", "value":"[color=lime]-5% ↑[/color]"} 17 | ] 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /data/json/items/effects/cooled.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Cooled X", 3 | "type":"effect", 4 | "prefix":"Cooled %s", 5 | "attributes": { 6 | "self_cooldown_multiplier":0.5 7 | } 8 | } -------------------------------------------------------------------------------- /data/json/items/effects/dull.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Dull Scanner", 3 | "type":"effect", 4 | "prefix":"Dull %s", 5 | "attributes": { 6 | "global_scanner_bonus":-2 7 | } 8 | } -------------------------------------------------------------------------------- /data/json/items/effects/efficient.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Efficient", 3 | "type":"effect", 4 | "prefix":"Efficient %s", 5 | "attributes": { 6 | "self_hp_regen_per_ap_multiplier":0.5, 7 | "self_energy_cost_per_hp_multiplier":0.5, 8 | "self_fire_speed_multiplier":1.5, 9 | "self_fire_energy_cost_multiplier":0.5 10 | } 11 | } -------------------------------------------------------------------------------- /data/json/items/effects/em.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"EM Weapon", 3 | "type":"effect", 4 | "prefix":"EM %s", 5 | "attributes": { 6 | "self_dam_shield_multiplier":1.5, 7 | "self_dam_hull_multiplier":0.25 8 | }, 9 | "description": { 10 | "Extra": { 11 | "min_level":0, 12 | "fields": [ 13 | {"name":"Shield Damage", "value":"[color=lime]+50% ↑[/color]"}, 14 | {"name":"Hull Damage", "value":"[color=red]-50% ↓[/color]"} 15 | ] 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /data/json/items/effects/fast.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Fast Shield/Weapon", 3 | "type":"effect", 4 | "prefix":"Fast %s", 5 | "attributes": { 6 | "self_hp_regen_per_ap_multiplier":2.0, 7 | "self_energy_cost_per_hp_multiplier":2.0, 8 | "self_fire_energy_cost_multiplier":1.3, 9 | "self_fire_speed_multiplier":0.7 10 | } 11 | } -------------------------------------------------------------------------------- /data/json/items/effects/focused.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Focused Weapon", 3 | "type":"effect", 4 | "prefix":"Focused %s", 5 | "attributes": { 6 | "self_base_dam_multiplier":1.3, 7 | "self_max_dam_multiplier":0.9, 8 | "self_hit_chance_bonus":-0.05, 9 | "self_crit_chance_bonus":0.05, 10 | "self_range_bonus":1 11 | } 12 | } -------------------------------------------------------------------------------- /data/json/items/effects/he.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"HE Shield", 3 | "type":"effect", 4 | "prefix":"HE %s", 5 | "attributes": { 6 | "self_dam_shield_multiplier":0.25, 7 | "self_dam_hull_multiplier":1.5 8 | }, 9 | "description": { 10 | "Extra": { 11 | "min_level":0, 12 | "fields": [ 13 | {"name":"Hull Damage", "value":"[color=lime]+50% ↑[/color]"}, 14 | {"name":"Shield Damage", "value":"[color=red]-50% ↓[/color]"} 15 | ] 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /data/json/items/effects/hot_swap.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Hot Swap", 3 | "type":"effect", 4 | "prefix":"Hot Swap %s", 5 | "attributes": { 6 | "self_equip_ap_bonus":-2, 7 | "self_unequip_ap_bonus":-2, 8 | "inv_self_equip_ap_bonus":-2, 9 | "inv_self_unequip_ap_bonus":-2 10 | } 11 | } -------------------------------------------------------------------------------- /data/json/items/effects/leaden_shield.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Leaden Shield", 3 | "type":"effect", 4 | "prefix":"Leaden %s", 5 | "attributes": { 6 | "global_move_multiplier":1.25, 7 | "self_shield_multiplier":1.5, 8 | "self_energy_cost_per_hp_multiplier":2.0, 9 | "self_volume_multiplier":1.5 10 | }, 11 | "description": { 12 | "Extra": { 13 | "min_level":0, 14 | "fields": [ 15 | {"name":"Ship Movement", "value":"[color=red]+25% ↓[/color]"} 16 | ] 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /data/json/items/effects/leaden_weapon.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Leaden Weapon", 3 | "type":"effect", 4 | "prefix":"Leaden %s", 5 | "attributes": { 6 | "global_move_multiplier":1.1, 7 | "self_base_dam_multiplier":1.5, 8 | "self_max_dam_multiplier":1.5, 9 | "global_drop_chance_multiplier":0.8, 10 | "self_volume_multiplier":1.5, 11 | "self_range_bonus":-1 12 | }, 13 | "description": { 14 | "Extra": { 15 | "min_level":0, 16 | "fields": [ 17 | {"name":"Ship Movement", "value":"[color=red]+10% ↓[/color]"}, 18 | {"name":"Loot Drops", "value":"[color=red]-20% ↓[/color]"} 19 | ] 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /data/json/items/effects/linked.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Linked Shield/Weapon", 3 | "type":"effect", 4 | "prefix":"Linked %s", 5 | "attributes": { 6 | "linked_shield_multiplier":1.10, 7 | "linked_hit_chance_bonus":0.10, 8 | "linked_crit_chance_bonus":0.10 9 | }, 10 | "description": { 11 | "Extra": { 12 | "min_level":0, 13 | "fields": [ 14 | {"name":"Each identical item", "value":"[color=lime]10% boost ↑[/color]"} 15 | ] 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /data/json/items/effects/long_range.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Long Range Weapon", 3 | "type":"effect", 4 | "prefix":"Long Range %s", 5 | "attributes": { 6 | "self_fire_speed_multiplier":1.15, 7 | "self_hit_chance_bonus":-0.1, 8 | "self_range_bonus":1 9 | } 10 | } -------------------------------------------------------------------------------- /data/json/items/effects/lucky.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Lucky", 3 | "type":"effect", 4 | "prefix":"Lucky %s", 5 | "attributes": { 6 | "self_hit_chance_bonus":0.05, 7 | "self_crit_chance_bonus":0.15 8 | } 9 | } -------------------------------------------------------------------------------- /data/json/items/effects/mimetic.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Mimetic Shield", 3 | "type":"effect", 4 | "prefix":"Mimetic %s", 5 | "attributes": { 6 | "self_shield_multiplier":0.7, 7 | "global_dodge_chance_bonus":0.1, 8 | "global_base_ap_cost_multiplier":1.5 9 | }, 10 | "description": { 11 | "Extra": { 12 | "min_level":0, 13 | "fields": [ 14 | {"name":"Dodge Chances", "value":"[color=lime]+10% ↑[/color]"}, 15 | {"name":"Energy Upkeep", "value":"[color=red]1.5x ↓[/color]"} 16 | ] 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /data/json/items/effects/movement_hack.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Engine Vulnerability", 3 | "type":"effect", 4 | "prefix":"Engine %s", 5 | "attributes": { 6 | "global_weapon_disable_movement_chance_bonus":0.2 7 | }, 8 | "description": { 9 | "Hacking Bonus": { 10 | "min_level":0, 11 | "fields": [ 12 | {"name":"Engine", "value":"[color=lime]+20% ↑[/color]", "translate_value":false} 13 | ] 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /data/json/items/effects/normal.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Normal", 3 | "type":"effect", 4 | "prefix":"", 5 | "attributes": {} 6 | } -------------------------------------------------------------------------------- /data/json/items/effects/overloaded.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Overloaded", 3 | "type":"effect", 4 | "prefix":"Overloaded %s", 5 | "attributes": { 6 | "self_shield_multiplier":1.4, 7 | "self_hp_regen_per_ap_multiplier":1.7, 8 | "self_energy_cost_per_hp_multiplier":2.0, 9 | "self_base_dam_multiplier":1.3, 10 | "self_max_dam_multiplier":1.3, 11 | "self_fire_speed_multiplier":0.75, 12 | "self_fire_energy_cost_multiplier":1.25 13 | } 14 | } -------------------------------------------------------------------------------- /data/json/items/effects/precision.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Precision", 3 | "type":"effect", 4 | "prefix":"Precision %s", 5 | "attributes": { 6 | "self_fire_speed_multiplier":1.5, 7 | "self_hit_chance_bonus":0.05, 8 | "self_crit_chance_bonus":0.05 9 | } 10 | } -------------------------------------------------------------------------------- /data/json/items/effects/salvage.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Salvage Weapon", 3 | "type":"effect", 4 | "prefix":"Salvage %s", 5 | "attributes": { 6 | "global_drop_chance_multiplier":1.3, 7 | "self_base_dam_multiplier":0.7, 8 | "self_max_dam_multiplier":0.7 9 | }, 10 | "description": { 11 | "Extra": { 12 | "min_level":0, 13 | "fields": [ 14 | {"name":"Drop chance", "value":"[color=lime]+30% ↑[/color]"} 15 | ] 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /data/json/items/effects/scanner_hack.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Scanner Vulnerability", 3 | "type":"effect", 4 | "prefix":"Scanner %s", 5 | "attributes": { 6 | "global_weapon_disable_scanner_chance_bonus":0.2 7 | }, 8 | "description": { 9 | "Hacking Bonus": { 10 | "min_level":0, 11 | "fields": [ 12 | {"name":"Scanner", "value":"[color=lime]+20% ↑[/color]", "translate_value":false} 13 | ] 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /data/json/items/effects/sensitive.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Sensitive Scanner", 3 | "type":"effect", 4 | "prefix":"Sensitive %s", 5 | "attributes": { 6 | "global_scanner_bonus":2 7 | } 8 | } -------------------------------------------------------------------------------- /data/json/items/effects/shield_hack.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Shield Vulnerability", 3 | "type":"effect", 4 | "prefix":"Shield %s", 5 | "attributes": { 6 | "global_weapon_disable_shield_chance_bonus":0.2, 7 | "global_dam_shield_multiplier":1.1 8 | }, 9 | "description": { 10 | "Hacking Bonus": { 11 | "min_level":0, 12 | "fields": [ 13 | {"name":"Shield", "value":"[color=lime]+20% ↑[/color]", "translate_value":false} 14 | ] 15 | }, 16 | "Extra": { 17 | "min_level":0, 18 | "fields": [ 19 | {"name":"Shield Damage", "value":"[color=lime]+10% ↑[/color]"} 20 | ] 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /data/json/items/effects/shielded.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Shielded X", 3 | "type":"effect", 4 | "prefix":"Shielded %s", 5 | "attributes": { 6 | "mount_destroyable_disable_weapon_chance_bonus":0.20, 7 | "mount_destroyable_disable_shield_chance_bonus":0.20, 8 | "mount_destroyable_disable_scanner_chance_bonus":0.20, 9 | "mount_destroyable_disable_converter_chance_bonus":0.20, 10 | "mount_destroyable_disable_utility_chance_bonus":0.20 11 | }, 12 | "description": { 13 | "Hacking Protection": { 14 | "min_level":0, 15 | "fields": [ 16 | {"name":"Mount", "value":"[color=lime]+20% ↑[/color]", "translate_value":false} 17 | ] 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /data/json/items/effects/shielded_converter.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Shielded X", 3 | "type":"effect", 4 | "prefix":"Shielded %s", 5 | "attributes": { 6 | "global_destroyable_disable_converter_chance_bonus":0.20 7 | }, 8 | "description": { 9 | "Hacking Protection": { 10 | "min_level":0, 11 | "fields": [ 12 | {"name":"Converter", "value":"[color=lime]+20% ↑[/color]", "translate_value":false} 13 | ] 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /data/json/items/effects/shielded_scanner.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Shielded X", 3 | "type":"effect", 4 | "prefix":"Shielded %s", 5 | "attributes": { 6 | "global_destroyable_disable_scanner_chance_bonus":0.20 7 | }, 8 | "description": { 9 | "Hacking Protection": { 10 | "min_level":0, 11 | "fields": [ 12 | {"name":"Scanner", "value":"[color=lime]+20% ↑[/color]", "translate_value":false} 13 | ] 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /data/json/items/effects/shielded_shield.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Shielded X", 3 | "type":"effect", 4 | "prefix":"Shielded %s", 5 | "attributes": { 6 | "global_destroyable_disable_shield_chance_bonus":0.20 7 | }, 8 | "description": { 9 | "Hacking Protection": { 10 | "min_level":0, 11 | "fields": [ 12 | {"name":"Shield", "value":"[color=lime]+20% ↑[/color]", "translate_value":false} 13 | ] 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /data/json/items/effects/shielded_utility.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Shielded X", 3 | "type":"effect", 4 | "prefix":"Shielded %s", 5 | "attributes": { 6 | "global_destroyable_disable_utility_chance_bonus":0.20 7 | }, 8 | "description": { 9 | "Hacking Protection": { 10 | "min_level":0, 11 | "fields": [ 12 | {"name":"Utility", "value":"[color=lime]+20% ↑[/color]", "translate_value":false} 13 | ] 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /data/json/items/effects/shielded_weapon.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Shielded X", 3 | "type":"effect", 4 | "prefix":"Shielded %s", 5 | "attributes": { 6 | "global_destroyable_disable_weapon_chance_bonus":0.20 7 | }, 8 | "description": { 9 | "Hacking Protection": { 10 | "min_level":0, 11 | "fields": [ 12 | {"name":"Weapon", "value":"[color=lime]+20% ↑[/color]", "translate_value":false} 13 | ] 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /data/json/items/effects/swarm.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Swarm Weapon", 3 | "type":"effect", 4 | "prefix":"Swarm %s", 5 | "attributes": { 6 | "self_base_dam_multiplier":0.5, 7 | "self_max_dam_multiplier":1.4, 8 | "self_hit_chance_bonus":0.25, 9 | "self_crit_chance_bonus":-0.10, 10 | "self_range_bonus":-1 11 | } 12 | } -------------------------------------------------------------------------------- /data/json/items/effects/transponder.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Transponder Scanner", 3 | "type":"effect", 4 | "prefix":"Transponder %s", 5 | "attributes": { 6 | "global_destroyable_disable_weapon_chance_bonus":0.1, 7 | "global_destroyable_disable_shield_chance_bonus":0.1, 8 | "global_destroyable_disable_scanner_chance_bonus":0.1, 9 | "global_destroyable_disable_converter_chance_bonus":0.1, 10 | "global_destroyable_disable_utility_chance_bonus":0.1, 11 | "global_destroyable_disable_movement_chance_bonus":0.1, 12 | "global_destroyable_disable_ship_chance_bonus":0.05 13 | }, 14 | "description": { 15 | "Hacking Protection": { 16 | "min_level":0, 17 | "fields": [ 18 | {"name":"Weapon", "value":"[color=lime]+10% ↑[/color]", "translate_value":false}, 19 | {"name":"Shield", "value":"[color=lime]+10% ↑[/color]", "translate_value":false}, 20 | {"name":"Scanner", "value":"[color=lime]+10% ↑[/color]", "translate_value":false}, 21 | {"name":"Converter", "value":"[color=lime]+10% ↑[/color]", "translate_value":false}, 22 | {"name":"Utility", "value":"[color=lime]+10% ↑[/color]", "translate_value":false}, 23 | {"name":"Engine", "value":"[color=lime]+10% ↑[/color]", "translate_value":false}, 24 | {"name":"Knockout", "value":"[color=lime]+5% ↑[/color]", "translate_value":false} 25 | ] 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /data/json/items/effects/utility_hack.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Utility Vulnerability", 3 | "type":"effect", 4 | "prefix":"Utility %s", 5 | "attributes": { 6 | "global_weapon_disable_utility_chance_bonus":0.2 7 | }, 8 | "description": { 9 | "Hacking Bonus": { 10 | "min_level":0, 11 | "fields": [ 12 | {"name":"Utility", "value":"[color=lime]+20% ↑[/color]", "translate_value":false} 13 | ] 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /data/json/items/effects/weapon_hack.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Weapon Vulnerability", 3 | "type":"effect", 4 | "prefix":"Weapon %s", 5 | "attributes": { 6 | "global_weapon_disable_weapon_chance_bonus":0.2 7 | }, 8 | "description": { 9 | "Hacking Bonus": { 10 | "min_level":0, 11 | "fields": [ 12 | {"name":"Weapon", "value":"[color=lime]+20% ↑[/color]", "translate_value":false} 13 | ] 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /data/json/items/effects/widebeam.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Widebeam Weapon", 3 | "type":"effect", 4 | "prefix":"Widebeam %s", 5 | "attributes": { 6 | "self_base_dam_multiplier":0.5, 7 | "self_max_dam_multiplier":1.4, 8 | "self_hit_chance_bonus":0.25, 9 | "self_crit_chance_bonus":-0.10, 10 | "self_range_bonus":-1 11 | } 12 | } -------------------------------------------------------------------------------- /data/json/items/misc/battleship_body.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"A Battleship Hull Relic", 3 | "type":"battleship_hull", 4 | "sprite":"battleship_body", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[1280,384,128,128] 8 | }, 9 | "equipment": { 10 | "slot":"cargo", 11 | "volume":580.0, 12 | "stackable":false 13 | }, 14 | "recyclable": { 15 | "energy": 1500, 16 | "player_sale_range": [1600,2500], 17 | "player_buy_range": [2850,4500] 18 | }, 19 | "description": { 20 | "text":"The remains of this battleship hull are still in suprisingly good shape. They could be used as a scaffold for a new Battleship.", 21 | "Overview": { 22 | "min_level":0, 23 | "fields":[ 24 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false} 25 | ] 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /data/json/items/misc/diluted_cristals.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Diluted Cristal", 3 | "type":"food", 4 | "sprite":"cristal", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[1152,128,128,128] 8 | }, 9 | "equipment": { 10 | "slot":"cargo", 11 | "volume":15.0, 12 | "stackable":true 13 | }, 14 | "recyclable": { 15 | "energy": 12000, 16 | "player_sale_range": [12000,12000], 17 | "player_buy_range": [12000,12000] 18 | }, 19 | "description": { 20 | "text":"An extremely hard crystalline mineral used as a power source. It is believed that this material exists in more than three dimensions at the same time and this is somehow related to its properties.", 21 | "Overview": { 22 | "min_level":0, 23 | "fields":[ 24 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false} 25 | ] 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /data/json/items/misc/frigate_body.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"A Frigate Hull Relic", 3 | "type":"frigate_hull", 4 | "sprite":"frigate_body", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[896,384,128,128] 8 | }, 9 | "equipment": { 10 | "slot":"cargo", 11 | "volume":200.0, 12 | "stackable":false 13 | }, 14 | "recyclable": { 15 | "energy": 1000, 16 | "player_sale_range": [1350,2000], 17 | "player_buy_range": [2250,3500] 18 | }, 19 | "description": { 20 | "text":"The remains of this frigate hull are still in suprisingly good shape. They could be used as a scaffold for a new Frigate.", 21 | "Overview": { 22 | "min_level":0, 23 | "fields":[ 24 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false} 25 | ] 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /data/json/items/misc/hydrogen.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Hydrogen", 3 | "type":"food", 4 | "sprite":"hydrogen", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[256,0,128,128] 8 | }, 9 | "equipment": { 10 | "slot":"cargo", 11 | "volume":4.0, 12 | "stackable":true 13 | }, 14 | "recyclable": { 15 | "energy": 1000, 16 | "player_sale_range": [1000,1000], 17 | "player_buy_range": [1000,1000] 18 | }, 19 | "description": { 20 | "text":"Hydrogen is the most abundant chemical substance in the Universe. It is a colorless, odorless, tasteless, non-toxic, nonmetallic, highly combustible diatomic gas.", 21 | "Overview": { 22 | "min_level":0, 23 | "fields":[ 24 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false} 25 | ] 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /data/json/items/misc/oxygen.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Oxygen", 3 | "type":"food", 4 | "sprite":"oxygen", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[896,128,128,128] 8 | }, 9 | "equipment": { 10 | "slot":"cargo", 11 | "volume":4.0, 12 | "stackable":true 13 | }, 14 | "recyclable": { 15 | "energy": 600, 16 | "player_sale_range": [600,600], 17 | "player_buy_range": [600,600] 18 | }, 19 | "description": { 20 | "text":"Oxygen is a highly reactive nonmetal, and an oxidizing agent that readily forms oxides. It is a colorless and odorless diatomic gas.", 21 | "Overview": { 22 | "min_level":0, 23 | "fields":[ 24 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false} 25 | ] 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /data/json/items/misc/probe_body.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Probe Hull Relic", 3 | "type":"probe_hull", 4 | "sprite":"probe_body", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[1664,384,128,128] 8 | }, 9 | "equipment": { 10 | "slot":"cargo", 11 | "volume":80.0, 12 | "stackable":false 13 | }, 14 | "recyclable": { 15 | "energy": 200, 16 | "player_sale_range": [500,800], 17 | "player_buy_range": [900,1200] 18 | }, 19 | "description": { 20 | "text":"The remains of this probe hull are still in suprisingly good shape. They could be used as a scaffold for a new Probe, but why ?", 21 | "Overview": { 22 | "min_level":0, 23 | "fields":[ 24 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false} 25 | ] 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /data/json/items/misc/scout_body.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Scout Hull Relic", 3 | "type":"scout_hull", 4 | "sprite":"scout_hull", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[512,384,128,128] 8 | }, 9 | "equipment": { 10 | "slot":"cargo", 11 | "volume":100.0, 12 | "stackable":false 13 | }, 14 | "recyclable": { 15 | "energy": 400, 16 | "player_sale_range": [800,1200], 17 | "player_buy_range": [1400,1800] 18 | }, 19 | "description": { 20 | "text":"The remains of this Scout hull are still in suprisingly good shape. They could be used as a scaffold for a new Scout.", 21 | "Overview": { 22 | "min_level":0, 23 | "fields":[ 24 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false} 25 | ] 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /data/json/items/misc/spare_parts.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Spare Parts", 3 | "type":"spare_parts", 4 | "sprite":"spare_parts", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[1536,128,128,128] 8 | }, 9 | "equipment": { 10 | "slot":"cargo", 11 | "volume":15.0, 12 | "stackable":true 13 | }, 14 | "recyclable": { 15 | "energy": 200, 16 | "player_sale_range": [400,600], 17 | "player_buy_range": [700,850] 18 | }, 19 | "description": { 20 | "text":"Highly sensitive, easy to drop parts. Difficult to replicate but can be salvaged from any sufficiently advanced technology.", 21 | "Overview": { 22 | "min_level":0, 23 | "fields":[ 24 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false} 25 | ] 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /data/json/items/misc/uranium.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Uranium", 3 | "type":"uranium", 4 | "sprite":"uranium", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[1024,128,128,128] 8 | }, 9 | "equipment": { 10 | "slot":"cargo", 11 | "volume":5.0, 12 | "stackable":true 13 | }, 14 | "recyclable": { 15 | "energy": 2500, 16 | "player_sale_range": [2500,2500], 17 | "player_buy_range": [2500,2500] 18 | }, 19 | "description": { 20 | "text":"Uranium is a fissile isotope, which makes it widely used in nuclear power plants and nuclear weapons. In sufficient concentration, we can maintain a sustained nuclear chain reaction.", 21 | "Overview": { 22 | "min_level":0, 23 | "fields":[ 24 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false} 25 | ] 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /data/json/items/special/jerg_natural_regen.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Jerg Biology", 3 | "type":"special", 4 | "sprite": "repair_nanobots", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[768,128,128,128] 8 | }, 9 | "hull_regen": { 10 | "duration": -1, 11 | "point_per_turn":0.2 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /data/json/items/special/radiation_damage.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Radiation", 3 | "type":"special", 4 | "sprite": "repair_nanobots", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[768,128,128,128] 8 | }, 9 | "hull_regen": { 10 | "duration": -1, 11 | "point_per_turn":-0.08 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /data/json/items/utilities/backup_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Backup System", 3 | "type":"utility", 4 | "sprite": "backup_system", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[0,1664,128,128] 8 | }, 9 | "equipment": { 10 | "slot":"utility", 11 | "volume":40.0, 12 | "equip_ap":3.0, 13 | "unequip_ap":3.0 14 | }, 15 | "attributes": { 16 | "global_disable_bonus":2 17 | }, 18 | "recyclable": { 19 | "energy": 875, 20 | "player_sale_range": [1100,1500], 21 | "player_buy_range": [1800,3050] 22 | }, 23 | "disassembling": { 24 | "produce":"data/json/items/misc/spare_parts.json", 25 | "count":2, 26 | "energy_cost":700 27 | }, 28 | "variations": [ 29 | {"src":"data/json/items/effects/normal.json", "chance": 100}, 30 | {"src":"data/json/items/effects/hot_swap.json", "chance": 10} 31 | ], 32 | "description": { 33 | "text":"Duplicate systems reduce duration of hacks against you.", 34 | "Overview": { 35 | "min_level":0, 36 | "fields":[ 37 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false}, 38 | {"name":"Equip Turn", "value":"{equipment.equip_ap+equip_ap_bonus}", "translate_value":false, "positive_good":false}, 39 | {"name":"Mount Point", "value":"Utility"} 40 | ] 41 | }, 42 | "Effect": { 43 | "min_level":0, 44 | "fields": [ 45 | {"name":"Hack Duration", "value":"[color=lime]-{attributes.global_disable_bonus}↑[/color]", "translate_value":false} 46 | ] 47 | } 48 | } 49 | } -------------------------------------------------------------------------------- /data/json/items/utilities/hotswap_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Hot Swap System", 3 | "type":"utility", 4 | "sprite": "hotswap", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[128,1664,128,128] 8 | }, 9 | "equipment": { 10 | "slot":"utility", 11 | "volume":40.0, 12 | "equip_ap":3.0, 13 | "unequip_ap":3.0 14 | }, 15 | "attributes": { 16 | "global_equip_ap_bonus":-100, 17 | "global_unequip_ap_bonus":-100 18 | }, 19 | "recyclable": { 20 | "energy": 875, 21 | "player_sale_range": [1100,1500], 22 | "player_buy_range": [1800,3050] 23 | }, 24 | "disassembling": { 25 | "produce":"data/json/items/misc/spare_parts.json", 26 | "count":2, 27 | "energy_cost":700 28 | }, 29 | "description": { 30 | "text":"A complex set of tools, instruments and software that allow your crew to replace any pieces of equipment in record times.", 31 | "Overview": { 32 | "min_level":0, 33 | "fields":[ 34 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false}, 35 | {"name":"Equip Turn", "value":"{equipment.equip_ap+equip_ap_bonus}", "translate_value":false, "positive_good":false}, 36 | {"name":"Mount Point", "value":"Utility"} 37 | ] 38 | }, 39 | "Effect": { 40 | "min_level":0, 41 | "fields": [ 42 | {"name":"Equip/Unequip", "value":"[color=lime]Always 1 turn↑[/color]", "translate_value":true} 43 | ] 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /data/json/items/utilities/solar_array.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Solar Array", 3 | "type":"utility", 4 | "sprite": "solar_array", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[0,0,128,128] 8 | }, 9 | "equipment": { 10 | "slot":"utility", 11 | "volume":45.0, 12 | "equip_ap":3.0, 13 | "unequip_ap":3.0 14 | }, 15 | "energy_regen": { 16 | "per_turn":10.0 17 | }, 18 | "recyclable": { 19 | "energy": 600, 20 | "player_sale_range": [900,1250], 21 | "player_buy_range": [1500,2500] 22 | }, 23 | "disassembling": { 24 | "produce":"data/json/items/misc/spare_parts.json", 25 | "count":2, 26 | "energy_cost":700 27 | }, 28 | "variations": [ 29 | {"src":"data/json/items/effects/normal.json", "chance": 100}, 30 | {"src":"data/json/items/effects/hot_swap.json", "chance": 10} 31 | ], 32 | "description": { 33 | "text":"Solar panels mounted on the ship's hull provide passive energy regeneration. Stacked panels will provide dimishing returns.", 34 | "Overview": { 35 | "min_level":0, 36 | "fields":[ 37 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false}, 38 | {"name":"Equip Turn", "value":"{equipment.equip_ap+equip_ap_bonus}", "translate_value":false, "positive_good":false}, 39 | {"name":"Mount Point", "value":"Utility"} 40 | ] 41 | }, 42 | "Effect": { 43 | "min_level":0, 44 | "fields": [ 45 | {"name":"Energy Regen", "value":"[color=lime]+{energy_regen.per_turn} / turn ↑[/color]"} 46 | ] 47 | } 48 | } 49 | } -------------------------------------------------------------------------------- /data/json/items/weapons/bullet_clip.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Bullet Clip", 3 | "type":"ammo", 4 | "sprite_choice":[ 5 | "bullet_clip" 6 | ], 7 | "icon": [{ 8 | "texture":"data/private/textures/space-sprite.png", 9 | "region":[640,384,128,128] 10 | }], 11 | "equipment": { 12 | "slot":"cargo", 13 | "volume":1, 14 | "stackable":true 15 | }, 16 | "recyclable": { 17 | "energy": 50, 18 | "player_sale_range": [75,150], 19 | "player_buy_range": [175,225] 20 | }, 21 | "description": { 22 | "text":"Ammo for the Minigun. It looks like pieces of scrap metal but throw enough at a ennemy ship and they'll get annoyed at you.", 23 | "Overview": { 24 | "min_level":0, 25 | "fields":[ 26 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false} 27 | ] 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /data/json/items/weapons/depleted_uranium.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Depleted Uranium", 3 | "type":"ammo", 4 | "sprite_choice":[ 5 | "depleted_uranium" 6 | ], 7 | "icon": [{ 8 | "texture":"data/private/textures/space-sprite.png", 9 | "region":[1408,384,128,128] 10 | }], 11 | "equipment": { 12 | "slot":"cargo", 13 | "volume":2, 14 | "stackable":true 15 | }, 16 | "recyclable": { 17 | "energy": 50, 18 | "player_sale_range": [225,275], 19 | "player_buy_range": [300,400] 20 | }, 21 | "description": { 22 | "text":"Ammo for the Railgun. 68.4% denser then lead and accelerated at a fraction of the speed of light it can penetrate anything.", 23 | "Overview": { 24 | "min_level":0, 25 | "fields":[ 26 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false} 27 | ] 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /data/json/items/weapons/missile.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Missile", 3 | "type":"ammo", 4 | "sprite_choice":[ 5 | "missile" 6 | ], 7 | "icon": [{ 8 | "texture":"data/private/textures/space-sprite.png", 9 | "region":[384,0,128,128] 10 | }], 11 | "equipment": { 12 | "slot":"cargo", 13 | "volume":2, 14 | "stackable":true 15 | }, 16 | "recyclable": { 17 | "energy": 200, 18 | "player_sale_range": [225,275], 19 | "player_buy_range": [300,600] 20 | }, 21 | "description": { 22 | "text":"Ammo for the Missile Launcher. Missiles have four system components: targeting, flight system, engine, and warhead", 23 | "Overview": { 24 | "min_level":0, 25 | "fields":[ 26 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false} 27 | ] 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /data/json/items/weapons/torpedo.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Torpedo", 3 | "type":"ammo", 4 | "sprite":"torpedo", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[1280,0,128,128] 8 | }, 9 | "equipment": { 10 | "slot":"cargo", 11 | "volume":3.0, 12 | "stackable":true 13 | }, 14 | "recyclable": { 15 | "energy": 350, 16 | "player_sale_range": [375,450], 17 | "player_buy_range": [400,700] 18 | }, 19 | "description": { 20 | "text":"Ammo for the Torpedo Launcher. It's massive but it makes even bigger holes !", 21 | "Overview": { 22 | "min_level":0, 23 | "fields":[ 24 | {"name":"Cargo Volume", "value":"{equipment.volume}", "translate_value":false} 25 | ] 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /data/json/props/trade_port.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Trade Port", 3 | "type":"trade_port", 4 | "sprite":"trade_icon", 5 | "no_ghost":false, 6 | "description": { 7 | "text":"A docking port for trading goods. Bring your ship over and open a communication channel." 8 | } 9 | } -------------------------------------------------------------------------------- /data/json/props/unknow.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Unknown Object", 3 | "type":"prop", 4 | "sprite":"unknow", 5 | "no_ghost":true 6 | } -------------------------------------------------------------------------------- /data/json/props/unknow2.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"Unknown Object", 3 | "type":"prop", 4 | "sprite":"unknow2", 5 | "no_ghost":true 6 | } -------------------------------------------------------------------------------- /data/json/stellar/alien-sun.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"A Bright Sun", 3 | "type":"sun", 4 | "sprite":"sun", 5 | "palettes":[ 6 | {"path":"data/private/textures/sun_palette/blue-light.png", "tone":[0.0, 1.0, 1.747], "multiplier":[0.5, 0.6, 1.0], "chance":6}, 7 | {"path":"data/private/textures/sun_palette/blue-navy.png", "tone":[0.0, 1.0, 1.9], "multiplier":[0.45, 0.5, 1.0], "chance":3}, 8 | {"path":"data/private/textures/sun_palette/blue-rich.png", "tone":[0.0, 0.8, 1.2], "multiplier":[0.8, 0.85, 1.0], "chance":1}, 9 | {"path":"data/private/textures/sun_palette/blue-white.png", "tone":[0.0, 1.0, 1.847], "multiplier":[0.5, 0.6, 1.0], "chance":1}, 10 | {"path":"data/private/textures/sun_palette/green-alien.png", "tone":[0.0, 1.0, 1.157], "multiplier":[0.7, 1.0, 0.7], "chance":70}, 11 | {"path":"data/private/textures/sun_palette/orig.png", "tone":[0.0, 1.0, 1.0], "multiplier":[1.0, 1.0, 1.0], "chance":1}, 12 | {"path":"data/private/textures/sun_palette/purple.png", "tone":[0.0, 1.0, 1.454], "multiplier":[0.8, 0.6, 1.0], "chance":3}, 13 | {"path":"data/private/textures/sun_palette/purple2.png", "tone":[0.0, 1.0, 1.55], "multiplier":[0.8, 0.6, 1.0], "chance":9}, 14 | {"path":"data/private/textures/sun_palette/red-dark.png", "tone":[0.0, 1.0, 1.253], "multiplier":[1.0, 0.9, 0.725], "chance":6} 15 | ] 16 | } -------------------------------------------------------------------------------- /data/json/stellar/anomalies/blind_anomaly.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"A Random Anomaly", 3 | "type":"anomaly", 4 | "sprite":"anomaly", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[1280,128,128,128] 8 | }, 9 | "anomaly": { 10 | "base_detection_chance":0.03, 11 | "scanner": { 12 | "range_bonus":-1000, 13 | "duration_turn":12 14 | } 15 | }, 16 | "description": { 17 | "text":"An unknown space anomaly. Scanners indicate that we have no idea what it does." 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /data/json/stellar/anomalies/energy_syphon.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"A Random Anomaly", 3 | "type":"anomaly", 4 | "sprite":"anomaly", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[1280,128,128,128] 8 | }, 9 | "anomaly": { 10 | "base_detection_chance":0.03, 11 | "energy": { 12 | "amount":-1000.0, 13 | "duration_turn":0 14 | } 15 | }, 16 | "description": { 17 | "text":"An unknown space anomaly. Scanners indicate that we have no idea what it does." 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /data/json/stellar/anomalies/slow_anomaly.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"A Random Anomaly", 3 | "type":"anomaly", 4 | "sprite":"anomaly", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[1280,128,128,128] 8 | }, 9 | "anomaly": { 10 | "base_detection_chance":0.03, 11 | "speed": { 12 | "multiplier":2.0, 13 | "duration_turn":10 14 | } 15 | }, 16 | "description": { 17 | "text":"An unknown space anomaly. Scanners indicate that we have no idea what it does." 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /data/json/stellar/nebula.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"A Nebula", 3 | "type":"nebula", 4 | "sprite":"nebula_generator", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[1280,128,128,128] 8 | }, 9 | "no_ghost":true, 10 | "nebula": { 11 | "min_range":20, 12 | "max_range":90, 13 | "scanner": { 14 | "range_bonus":-2 15 | } 16 | }, 17 | "description": { 18 | "text":"An Interstellar cloud of dust, hydrogen, helium and other ionized gases. Plays tricks on sensors." 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /data/json/stellar/small_nebula.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"A Nebula", 3 | "type":"nebula", 4 | "sprite":"nebula_generator", 5 | "icon": { 6 | "texture":"data/private/textures/space-sprite.png", 7 | "region":[1280,128,128,128] 8 | }, 9 | "no_ghost":true, 10 | "nebula": { 11 | "min_range":15, 12 | "max_range":40, 13 | "scanner": { 14 | "range_bonus":-2 15 | } 16 | }, 17 | "description": { 18 | "text":"An Interstellar cloud of dust, hydrogen, helium and other ionized gases. Plays tricks on sensors." 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /data/json/stellar/sun.json: -------------------------------------------------------------------------------- 1 | { 2 | "name_id":"A Bright Sun", 3 | "type":"sun", 4 | "sprite":"sun", 5 | "palettes":[ 6 | {"path":"data/private/textures/sun_palette/blue-light.png", "tone":[0.0, 1.0, 1.747], "multiplier":[0.5, 0.6, 1.0], "chance":6}, 7 | {"path":"data/private/textures/sun_palette/blue-navy.png", "tone":[0.0, 1.0, 1.9], "multiplier":[0.45, 0.5, 1.0], "chance":3}, 8 | {"path":"data/private/textures/sun_palette/blue-rich.png", "tone":[0.0, 0.8, 1.2], "multiplier":[0.8, 0.85, 1.0], "chance":3}, 9 | {"path":"data/private/textures/sun_palette/blue-white.png", "tone":[0.0, 1.0, 1.847], "multiplier":[0.5, 0.6, 1.0], "chance":9}, 10 | {"path":"data/private/textures/sun_palette/green-alien.png", "tone":[0.0, 1.0, 1.157], "multiplier":[0.7, 1.0, 0.7], "chance":1}, 11 | {"path":"data/private/textures/sun_palette/orig.png", "tone":[0.0, 1.0, 1.0], "multiplier":[1.0, 1.0, 1.0], "chance":70}, 12 | {"path":"data/private/textures/sun_palette/purple.png", "tone":[0.0, 1.0, 1.454], "multiplier":[0.8, 0.6, 1.0], "chance":1}, 13 | {"path":"data/private/textures/sun_palette/purple2.png", "tone":[0.0, 1.0, 1.55], "multiplier":[0.8, 0.6, 1.0], "chance":1}, 14 | {"path":"data/private/textures/sun_palette/red-dark.png", "tone":[0.0, 1.0, 1.253], "multiplier":[1.0, 0.9, 0.725], "chance":6} 15 | ] 16 | } -------------------------------------------------------------------------------- /data/shaders/Sprite-desaturate.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="ShaderMaterial" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/shaders/sprite-desaturate.shader" type="Shader" id=1] 4 | 5 | [resource] 6 | shader = ExtResource( 1 ) 7 | shader_param/saturation = 0.0 8 | shader_param/modulator = null 9 | -------------------------------------------------------------------------------- /data/shaders/Sprite-desaturate.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://data/shaders/Sprite-desaturate.tres" type="Material" id=1] 4 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=2] 5 | 6 | [node name="Node" type="Node" index="0"] 7 | 8 | [node name="Sprite" type="Sprite" parent="." index="0"] 9 | 10 | material = ExtResource( 1 ) 11 | position = Vector2( 84.5041, 82.7436 ) 12 | texture = ExtResource( 2 ) 13 | region_enabled = true 14 | region_rect = Rect2( 0, 0, 128, 128 ) 15 | _sections_unfolded = [ "Material", "Region" ] 16 | 17 | [node name="Sprite2" type="Sprite" parent="." index="1"] 18 | 19 | material = ExtResource( 1 ) 20 | position = Vector2( 252.632, 81.8633 ) 21 | texture = ExtResource( 2 ) 22 | region_enabled = true 23 | region_rect = Rect2( 512, 0, 128, 128 ) 24 | _sections_unfolded = [ "Material", "Region" ] 25 | 26 | [node name="Sprite3" type="Sprite" parent="." index="2"] 27 | 28 | material = ExtResource( 1 ) 29 | position = Vector2( 413.718, 80.1028 ) 30 | texture = ExtResource( 2 ) 31 | region_enabled = true 32 | region_rect = Rect2( 512, 256, 128, 128 ) 33 | _sections_unfolded = [ "Material", "Region" ] 34 | 35 | 36 | -------------------------------------------------------------------------------- /data/shaders/emp_particle.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="ShaderMaterial" load_steps=2 format=2] 2 | 3 | [sub_resource type="Shader" id=1] 4 | code = "shader_type canvas_item; 5 | render_mode blend_add; 6 | 7 | uniform vec4 c : hint_color; 8 | uniform vec4 highlight : hint_color; 9 | 10 | vec2 uv_offset_from_seed(vec2 seed) { 11 | float u = floor(seed.x * 16.0) / 16.0; 12 | float v = floor(seed.y * 16.0) / 16.0; 13 | return vec2(u,v); 14 | } 15 | 16 | vec3 lerp(vec3 colorone, vec3 colortwo, float value) 17 | { 18 | return (colorone + value*(colortwo-colorone)); 19 | } 20 | 21 | void fragment() { 22 | vec4 color = texture(TEXTURE, UV + uv_offset_from_seed(vec2(COLOR.r, COLOR.b))); 23 | vec3 final_color = lerp(c.rgb, highlight.rgb, color.a * COLOR.a); 24 | COLOR = vec4(final_color.r, final_color.g, final_color.b, color.a * COLOR.a); 25 | }" 26 | 27 | [resource] 28 | shader = SubResource( 1 ) 29 | shader_param/c = Color( 0.0745098, 0.32549, 0.0705882, 1 ) 30 | shader_param/highlight = Color( 0.341176, 0.980392, 0.333333, 1 ) 31 | -------------------------------------------------------------------------------- /data/shaders/fow_mask.shader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform float sampler = 400.0; 4 | uniform vec3 gray_color = vec3(1.0, 1.0, 1.0); 5 | uniform sampler2D overlay; 6 | 7 | void fragment() { 8 | vec2 uv = UV; 9 | //uv.x = float(floor(uv.x * sampler)) / sampler; 10 | //uv.y = float(floor(uv.y * sampler)) / sampler; 11 | vec4 urgba = texture(TEXTURE, UV); 12 | vec4 orgba = texture(overlay, uv*10.0); 13 | 14 | //COLOR = urgba; 15 | COLOR = vec4(orgba.r, orgba.g, orgba.b, urgba.r); 16 | //COLOR = vec4(gray_color.r, gray_color.g, gray_color.b, urgba.r); 17 | } -------------------------------------------------------------------------------- /data/shaders/fow_mask.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="ShaderMaterial" load_steps=3 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space/fow-fractal-bg6.png" type="Texture" id=1] 4 | 5 | [sub_resource type="Shader" id=1] 6 | code = "shader_type canvas_item; 7 | 8 | uniform float sampler = 400.0; 9 | uniform vec3 gray_color = vec3(1.0, 1.0, 1.0); 10 | uniform sampler2D overlay; 11 | 12 | void fragment() { 13 | vec2 uv = UV; 14 | //uv.x = float(floor(uv.x * sampler)) / sampler; 15 | //uv.y = float(floor(uv.y * sampler)) / sampler; 16 | vec4 urgba = texture(TEXTURE, UV); 17 | vec4 orgba = texture(overlay, uv*1.0); 18 | 19 | urgba.r = smoothstep(0.5, 1.0, urgba.r); 20 | 21 | //COLOR = urgba; 22 | COLOR = vec4(orgba.r, orgba.g, orgba.b, urgba.r * orgba.a); 23 | //COLOR = vec4(gray_color.r, gray_color.g, gray_color.b, urgba.r); 24 | }" 25 | 26 | [resource] 27 | shader = SubResource( 1 ) 28 | shader_param/sampler = 400.0 29 | shader_param/gray_color = Vector3( 0.14, 0.21, 0.54 ) 30 | shader_param/overlay = ExtResource( 1 ) 31 | -------------------------------------------------------------------------------- /data/shaders/sprite-desaturate.shader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform float saturation; 4 | uniform vec3 modulator; 5 | 6 | void fragment() { 7 | // sample the texture 8 | vec4 tex_color = texture(TEXTURE, UV); 9 | 10 | //COLOR.rgba = tex_color; 11 | //float grey = (tex_color.r + tex_color.g + tex_color.b) * 0.333; 12 | //COLOR.rgba = vec4(grey, grey, grey, tex_color.a); 13 | 14 | COLOR.rgb = mix(vec3(dot(tex_color.rgb, vec3(0.299, 0.587, 0.114))), tex_color.rgb, saturation); 15 | COLOR.a = tex_color.a; 16 | } -------------------------------------------------------------------------------- /data/shaders/swirl.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="ShaderMaterial" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/shaders/swirl.shader" type="Shader" id=1] 4 | 5 | [resource] 6 | shader = ExtResource( 1 ) 7 | shader_param/swirl_center = Vector2( 0.5, 0.5 ) 8 | shader_param/swirl_radius = 0.147 9 | shader_param/swirl_amount = 5.559 10 | shader_param/swirl_power = 2.0 11 | shader_param/center_color = Plane( 0.76, 0.7, 0.42, 1 ) 12 | 13 | -------------------------------------------------------------------------------- /data/shaders/swirl_blue.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="ShaderMaterial" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/shaders/swirl.shader" type="Shader" id=1] 4 | 5 | [resource] 6 | shader = ExtResource( 1 ) 7 | shader_param/swirl_center = Vector2( 0.5, 0.5 ) 8 | shader_param/swirl_radius = 0.147 9 | shader_param/swirl_amount = 5.559 10 | shader_param/swirl_power = 2.0 11 | shader_param/center_color = Plane( 0.48, 0.7, 0.79, 1 ) 12 | 13 | -------------------------------------------------------------------------------- /data/styles/GUI_bg.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 0, 0, 0, 0.784314 ) 5 | 6 | -------------------------------------------------------------------------------- /data/styles/animated_btn.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 0.744791, 0.744791, 0.744791, 0.744791 ) 5 | -------------------------------------------------------------------------------- /data/styles/btn_disabled.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 0.6, 0.6, 0.6, 0 ) 5 | border_width_left = 3 6 | border_width_top = 3 7 | border_width_right = 3 8 | border_width_bottom = 3 9 | border_color = Color( 0.419608, 0.419608, 0.419608, 1 ) 10 | 11 | -------------------------------------------------------------------------------- /data/styles/btn_hover.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 0.262745, 0.262745, 0.262745, 0 ) 5 | border_width_left = 3 6 | border_width_top = 3 7 | border_width_right = 3 8 | border_width_bottom = 3 9 | border_color = Color( 1, 1, 1, 1 ) 10 | 11 | -------------------------------------------------------------------------------- /data/styles/btn_list_pressed.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 0.2, 1, 0.2, 1 ) 5 | 6 | -------------------------------------------------------------------------------- /data/styles/btn_pressed.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 1, 1, 1, 1 ) 5 | shadow_color = Color( 0.909804, 0.909804, 0.909804, 1 ) 6 | 7 | -------------------------------------------------------------------------------- /data/styles/settings_bg_dark.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 0, 0, 0, 1 ) 5 | 6 | -------------------------------------------------------------------------------- /data/styles/settings_bg_light.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 0.0980392, 0.0980392, 0.0980392, 1 ) 5 | 6 | -------------------------------------------------------------------------------- /data/styles/trans.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | bg_color = Color( 0, 0, 0, 0 ) 5 | 6 | -------------------------------------------------------------------------------- /data/theme/crafting/all_selection.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Theme" load_steps=7 format=2] 2 | 3 | [ext_resource path="res://data/styles/btn_list_pressed.tres" type="StyleBox" id=1] 4 | [ext_resource path="res://data/fonts/DejaVuSansMono_text.tres" type="DynamicFont" id=2] 5 | [ext_resource path="res://data/fonts/DejaVuSansMonoBold_text.tres" type="DynamicFont" id=3] 6 | [ext_resource path="res://data/fonts/DejaVuSansMonoItalBold_text.tres" type="DynamicFont" id=4] 7 | [ext_resource path="res://data/fonts/DejaVuSansMonoItal_text.tres" type="DynamicFont" id=5] 8 | 9 | [sub_resource type="StyleBoxFlat" id=1] 10 | bg_color = Color( 0.2, 1, 0.2, 1 ) 11 | 12 | [resource] 13 | default_font = ExtResource( 2 ) 14 | Button/styles/normal = SubResource( 1 ) 15 | Button/styles/pressed = ExtResource( 1 ) 16 | Label/colors/font = Color( 0, 0, 0, 1 ) 17 | Label/colors/font_color = Color( 0.0117647, 0.0117647, 0.0117647, 1 ) 18 | Label/fonts/font = ExtResource( 2 ) 19 | RichTextLabel/colors/default_color = Color( 0, 0, 0, 1 ) 20 | RichTextLabel/fonts/bold_font = ExtResource( 3 ) 21 | RichTextLabel/fonts/bold_italics_font = ExtResource( 4 ) 22 | RichTextLabel/fonts/italics_font = ExtResource( 5 ) 23 | RichTextLabel/fonts/mono_font = ExtResource( 2 ) 24 | RichTextLabel/fonts/normal_font = ExtResource( 2 ) 25 | -------------------------------------------------------------------------------- /data/theme/crafting/partial_selection.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Theme" load_steps=7 format=2] 2 | 3 | [ext_resource path="res://data/fonts/DejaVuSansMono_text.tres" type="DynamicFont" id=1] 4 | [ext_resource path="res://data/fonts/DejaVuSansMonoBold_text.tres" type="DynamicFont" id=2] 5 | [ext_resource path="res://data/fonts/DejaVuSansMonoItalBold_text.tres" type="DynamicFont" id=3] 6 | [ext_resource path="res://data/fonts/DejaVuSansMonoItal_text.tres" type="DynamicFont" id=4] 7 | 8 | [sub_resource type="StyleBoxFlat" id=1] 9 | bg_color = Color( 1, 1, 0.2, 1 ) 10 | 11 | [sub_resource type="StyleBoxFlat" id=2] 12 | bg_color = Color( 1, 1, 0.2, 1 ) 13 | 14 | [resource] 15 | default_font = ExtResource( 1 ) 16 | Button/styles/normal = SubResource( 1 ) 17 | Button/styles/pressed = SubResource( 2 ) 18 | Label/colors/font = Color( 0, 0, 0, 1 ) 19 | Label/colors/font_color = Color( 0.0117647, 0.0117647, 0.0117647, 1 ) 20 | Label/fonts/font = ExtResource( 1 ) 21 | RichTextLabel/colors/default_color = Color( 0, 0, 0, 1 ) 22 | RichTextLabel/fonts/bold_font = ExtResource( 2 ) 23 | RichTextLabel/fonts/bold_italics_font = ExtResource( 3 ) 24 | RichTextLabel/fonts/italics_font = ExtResource( 4 ) 25 | RichTextLabel/fonts/mono_font = ExtResource( 1 ) 26 | RichTextLabel/fonts/normal_font = ExtResource( 1 ) 27 | -------------------------------------------------------------------------------- /data/theme/disabled_ui_text.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Theme" load_steps=7 format=2] 2 | 3 | [ext_resource path="res://data/fonts/DejaVuSansMonoBold_text.tres" type="DynamicFont" id=1] 4 | [ext_resource path="res://data/fonts/DejaVuSansMonoItalBold_text.tres" type="DynamicFont" id=2] 5 | [ext_resource path="res://data/fonts/DejaVuSansMonoItal_text.tres" type="DynamicFont" id=3] 6 | [ext_resource path="res://data/fonts/DejaVuSansMono_text.tres" type="DynamicFont" id=4] 7 | 8 | [sub_resource type="StyleBoxFlat" id=1] 9 | content_margin_left = 10.0 10 | bg_color = Color( 0.231373, 0.231373, 0.231373, 1 ) 11 | 12 | [sub_resource type="StyleBoxFlat" id=2] 13 | content_margin_left = 7.0 14 | content_margin_top = 2.0 15 | bg_color = Color( 0.462745, 0.462745, 0.462745, 1 ) 16 | 17 | [resource] 18 | default_font = ExtResource( 4 ) 19 | Label/colors/font_color = Color( 0.768627, 0.768627, 0.768627, 1 ) 20 | Label/styles/normal = SubResource( 1 ) 21 | RichTextLabel/colors/default_color = Color( 0, 0, 0, 1 ) 22 | RichTextLabel/fonts/bold_font = ExtResource( 1 ) 23 | RichTextLabel/fonts/bold_italics_font = ExtResource( 2 ) 24 | RichTextLabel/fonts/italics_font = ExtResource( 3 ) 25 | RichTextLabel/fonts/mono_font = ExtResource( 4 ) 26 | RichTextLabel/fonts/normal_font = ExtResource( 4 ) 27 | RichTextLabel/styles/normal = SubResource( 2 ) 28 | -------------------------------------------------------------------------------- /data/theme/h2.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Theme" load_steps=7 format=2] 2 | 3 | [ext_resource path="res://data/fonts/DejaVuSansMonoBold_text.tres" type="DynamicFont" id=1] 4 | [ext_resource path="res://data/fonts/DejaVuSansMonoItalBold_text.tres" type="DynamicFont" id=2] 5 | [ext_resource path="res://data/fonts/DejaVuSansMonoItal_text.tres" type="DynamicFont" id=3] 6 | [ext_resource path="res://data/fonts/DejaVuSansMono_text.tres" type="DynamicFont" id=4] 7 | 8 | [sub_resource type="StyleBoxFlat" id=3] 9 | content_margin_left = 10.0 10 | bg_color = Color( 0.486275, 0.486275, 0.486275, 1 ) 11 | 12 | [sub_resource type="StyleBoxFlat" id=2] 13 | content_margin_left = 7.0 14 | content_margin_top = 2.0 15 | bg_color = Color( 0.882353, 0.882353, 0.882353, 1 ) 16 | 17 | [resource] 18 | default_font = ExtResource( 4 ) 19 | Label/colors/font_color = Color( 0, 0, 0, 1 ) 20 | Label/styles/normal = SubResource( 3 ) 21 | RichTextLabel/colors/default_color = Color( 0, 0, 0, 1 ) 22 | RichTextLabel/fonts/bold_font = ExtResource( 1 ) 23 | RichTextLabel/fonts/bold_italics_font = ExtResource( 2 ) 24 | RichTextLabel/fonts/italics_font = ExtResource( 3 ) 25 | RichTextLabel/fonts/mono_font = ExtResource( 4 ) 26 | RichTextLabel/fonts/normal_font = ExtResource( 4 ) 27 | RichTextLabel/styles/normal = SubResource( 2 ) 28 | -------------------------------------------------------------------------------- /data/theme/header_ui_text.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Theme" load_steps=7 format=2] 2 | 3 | [ext_resource path="res://data/fonts/DejaVuSansMonoBold_text.tres" type="DynamicFont" id=1] 4 | [ext_resource path="res://data/fonts/DejaVuSansMonoItalBold_text.tres" type="DynamicFont" id=2] 5 | [ext_resource path="res://data/fonts/DejaVuSansMonoItal_text.tres" type="DynamicFont" id=3] 6 | [ext_resource path="res://data/fonts/DejaVuSansMono_text.tres" type="DynamicFont" id=4] 7 | 8 | [sub_resource type="StyleBoxFlat" id=1] 9 | content_margin_left = 10.0 10 | bg_color = Color( 0.882353, 0.882353, 0.882353, 1 ) 11 | 12 | [sub_resource type="StyleBoxFlat" id=2] 13 | content_margin_left = 7.0 14 | content_margin_top = 2.0 15 | bg_color = Color( 0.882353, 0.882353, 0.882353, 1 ) 16 | 17 | [resource] 18 | default_font = ExtResource( 4 ) 19 | Label/colors/font_color = Color( 0, 0, 0, 1 ) 20 | Label/styles/normal = SubResource( 1 ) 21 | RichTextLabel/colors/default_color = Color( 0, 0, 0, 1 ) 22 | RichTextLabel/fonts/bold_font = ExtResource( 1 ) 23 | RichTextLabel/fonts/bold_italics_font = ExtResource( 2 ) 24 | RichTextLabel/fonts/italics_font = ExtResource( 3 ) 25 | RichTextLabel/fonts/mono_font = ExtResource( 4 ) 26 | RichTextLabel/fonts/normal_font = ExtResource( 4 ) 27 | RichTextLabel/styles/normal = SubResource( 2 ) 28 | -------------------------------------------------------------------------------- /data/translation/base.csv.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="csv_translation" 4 | type="Translation" 5 | 6 | [deps] 7 | 8 | files=[ "res://data/translation/base.en.translation", "res://data/translation/base.fr.translation", "res://data/translation/base.ja.translation" ] 9 | 10 | source_file="res://data/translation/base.csv" 11 | dest_files=[ "res://data/translation/base.en.translation", "res://data/translation/base.fr.translation", "res://data/translation/base.ja.translation" ] 12 | 13 | [params] 14 | 15 | compress=true 16 | delimiter=0 17 | -------------------------------------------------------------------------------- /data/translation/base.en.translation: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ombarus/SolarRogue/5ea5a3020ebd4bfd061e6db0f3f1a5d7fd71307a/data/translation/base.en.translation -------------------------------------------------------------------------------- /data/translation/base.fr.translation: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ombarus/SolarRogue/5ea5a3020ebd4bfd061e6db0f3f1a5d7fd71307a/data/translation/base.fr.translation -------------------------------------------------------------------------------- /data/translation/base.ja.translation: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ombarus/SolarRogue/5ea5a3020ebd4bfd061e6db0f3f1a5d7fd71307a/data/translation/base.ja.translation -------------------------------------------------------------------------------- /default_bus_layout.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="AudioBusLayout" format=2] 2 | 3 | [resource] 4 | bus/1/name = "Sfx" 5 | bus/1/solo = false 6 | bus/1/mute = false 7 | bus/1/bypass_fx = false 8 | bus/1/volume_db = 0.0 9 | bus/1/send = "Master" 10 | bus/2/name = "Music" 11 | bus/2/solo = false 12 | bus/2/mute = false 13 | bus/2/bypass_fx = false 14 | bus/2/volume_db = 0.0 15 | bus/2/send = "Master" 16 | 17 | -------------------------------------------------------------------------------- /default_env.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Environment" load_steps=2 format=2] 2 | 3 | [sub_resource type="ProceduralSky" id=1] 4 | sky_top_color = Color( 0.0470588, 0.454902, 0.976471, 1 ) 5 | sky_horizon_color = Color( 0.556863, 0.823529, 0.909804, 1 ) 6 | sky_curve = 0.25 7 | ground_bottom_color = Color( 0.101961, 0.145098, 0.188235, 1 ) 8 | ground_horizon_color = Color( 0.482353, 0.788235, 0.952941, 1 ) 9 | ground_curve = 0.01 10 | sun_energy = 16.0 11 | 12 | [resource] 13 | background_mode = 2 14 | background_sky = SubResource( 1 ) 15 | -------------------------------------------------------------------------------- /icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ombarus/SolarRogue/5ea5a3020ebd4bfd061e6db0f3f1a5d7fd71307a/icon.ico -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ombarus/SolarRogue/5ea5a3020ebd4bfd061e6db0f3f1a5d7fd71307a/icon.png -------------------------------------------------------------------------------- /icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://icon.png" 13 | dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /scenes/Animations/planet_hit_inst.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [sub_resource type="Animation" id=1] 6 | resource_name = "boom" 7 | length = 0.5 8 | step = 0.05 9 | tracks/0/type = "value" 10 | tracks/0/path = NodePath(".:region_rect") 11 | tracks/0/interp = 1 12 | tracks/0/loop_wrap = true 13 | tracks/0/imported = false 14 | tracks/0/enabled = true 15 | tracks/0/keys = { 16 | "times": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5 ), 17 | "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), 18 | "update": 1, 19 | "values": [ Rect2( 384, 1024, 128, 128 ), Rect2( 512, 1024, 128, 128 ), Rect2( 640, 1024, 128, 128 ), Rect2( 768, 1024, 128, 128 ), Rect2( 896, 1024, 128, 128 ), Rect2( 1024, 1024, 128, 128 ), Rect2( 1152, 1024, 128, 128 ), Rect2( 1280, 1024, 128, 128 ), Rect2( 1408, 1024, 128, 128 ), Rect2( 1536, 1024, 128, 128 ), Rect2( 1664, 1024, 128, 128 ) ] 20 | } 21 | 22 | [node name="Sprite" type="Sprite"] 23 | scale = Vector2( 0.5, 0.5 ) 24 | texture = ExtResource( 1 ) 25 | region_enabled = true 26 | region_rect = Rect2( 1664, 1024, 128, 128 ) 27 | 28 | [node name="AnimationPlayer" type="AnimationPlayer" parent="."] 29 | anims/boom = SubResource( 1 ) 30 | 31 | -------------------------------------------------------------------------------- /scenes/BG_Child.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://scripts/StarGenerator.gd" type="Script" id=1] 4 | 5 | [node name="BG" type="Sprite"] 6 | position = Vector2( 128, 128 ) 7 | script = ExtResource( 1 ) 8 | random_seed = 12 9 | num_stars = Vector2( 2, 2 ) 10 | star_core_radius = Vector2( 1, 1 ) 11 | glow_radius = Vector2( 0.7, 0.7 ) 12 | spikes = Vector2( 2, 2 ) 13 | spike_thickness = Vector2( 0.8, 1.8 ) 14 | spike_percent = 0.0 15 | 16 | -------------------------------------------------------------------------------- /scenes/BG_Root.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://scripts/BG_Root.gd" type="Script" id=1] 4 | 5 | [node name="BG_Root" type="Node2D" index="0"] 6 | 7 | script = ExtResource( 1 ) 8 | stream_tile_radius = 5 9 | 10 | 11 | -------------------------------------------------------------------------------- /scenes/BorderGenerator.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://scenes/BorderTile.tscn" type="PackedScene" id=2] 4 | [ext_resource path="res://scripts/BorderGenerator.gd" type="Script" id=3] 5 | 6 | [node name="BorderTiles" type="Node2D"] 7 | script = ExtResource( 3 ) 8 | 9 | [node name="Defaults" type="Node2D" parent="."] 10 | 11 | [node name="Default1" parent="Defaults" instance=ExtResource( 2 )] 12 | frequency = 0.05 13 | 14 | [node name="Default2" parent="Defaults" instance=ExtResource( 2 )] 15 | position = Vector2( 128, 0 ) 16 | region_rect = Rect2( 1024, 512, 128, 128 ) 17 | frequency = 0.3 18 | 19 | [node name="Default3" parent="Defaults" instance=ExtResource( 2 )] 20 | position = Vector2( 256, 0 ) 21 | region_rect = Rect2( 1152, 512, 128, 128 ) 22 | 23 | [node name="Default4" parent="Defaults" instance=ExtResource( 2 )] 24 | position = Vector2( 384, 0 ) 25 | region_rect = Rect2( 1280, 512, 128, 128 ) 26 | frequency = 0.4 27 | 28 | [node name="Default5" parent="Defaults" instance=ExtResource( 2 )] 29 | position = Vector2( 512, 0 ) 30 | region_rect = Rect2( 1408, 512, 128, 128 ) 31 | 32 | [node name="Border" type="Node2D" parent="."] 33 | -------------------------------------------------------------------------------- /scenes/BorderTile.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | [ext_resource path="res://scripts/BorderData.gd" type="Script" id=2] 5 | 6 | [node name="BorderTile" type="Sprite"] 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 896, 512, 128, 128 ) 10 | script = ExtResource( 2 ) 11 | -------------------------------------------------------------------------------- /scenes/FoW.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://scripts/FoW.gd" type="Script" id=1] 4 | [ext_resource path="res://data/private/textures/autotile_scanner_edges_v4.png" type="Texture" id=2] 5 | 6 | [node name="FoW" type="Node2D"] 7 | script = ExtResource( 1 ) 8 | 9 | [node name="MeshInstance2D" type="MeshInstance2D" parent="."] 10 | position = Vector2( 64, 64 ) 11 | texture = ExtResource( 2 ) 12 | -------------------------------------------------------------------------------- /scenes/GUI/Debug/APBehaviorDebug.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://scripts/GUI/Debug/APDebug.gd" type="Script" id=1] 4 | 5 | [node name="ApDebugWindow" type="Control"] 6 | anchor_right = 1.0 7 | anchor_bottom = 1.0 8 | mouse_filter = 2 9 | script = ExtResource( 1 ) 10 | 11 | [node name="RichTextLabel" type="RichTextLabel" parent="."] 12 | anchor_right = 1.0 13 | anchor_bottom = 1.0 14 | mouse_filter = 2 15 | bbcode_enabled = true 16 | __meta__ = { 17 | "_edit_use_anchors_": false 18 | } 19 | -------------------------------------------------------------------------------- /scenes/GUI/Debug/FPSCounter.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://data/theme/default_ui_text.tres" type="Theme" id=1] 4 | [ext_resource path="res://scripts/GUI/Debug/FPSCounter.gd" type="Script" id=2] 5 | 6 | [node name="FPSCounter" type="Control"] 7 | anchor_right = 1.0 8 | anchor_bottom = 1.0 9 | theme = ExtResource( 1 ) 10 | script = ExtResource( 2 ) 11 | 12 | [node name="Label" type="Label" parent="."] 13 | anchor_right = 1.0 14 | anchor_bottom = 1.0 15 | custom_colors/font_color = Color( 1, 0.984314, 0, 1 ) 16 | text = "FPS : 30.0" 17 | valign = 1 18 | -------------------------------------------------------------------------------- /scenes/GUI/Dialogs/Fade.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://scripts/GUI/FadeDialog.gd" type="Script" id=1] 4 | [ext_resource path="res://scenes/warp_trail_test.tscn" type="PackedScene" id=2] 5 | 6 | [node name="Fade" type="Control"] 7 | anchor_right = 1.0 8 | anchor_bottom = 1.0 9 | script = ExtResource( 1 ) 10 | __meta__ = { 11 | "_edit_use_anchors_": false 12 | } 13 | 14 | [node name="Starfield" parent="." instance=ExtResource( 2 )] 15 | modulate = Color( 1, 0, 0, 1 ) 16 | 17 | [node name="ColorRect" type="ColorRect" parent="."] 18 | show_behind_parent = true 19 | anchor_right = 1.0 20 | anchor_bottom = 1.0 21 | mouse_filter = 2 22 | __meta__ = { 23 | "_edit_use_anchors_": false 24 | } 25 | 26 | [node name="Tween" type="Tween" parent="."] 27 | -------------------------------------------------------------------------------- /scenes/GUI/HUD_swapper.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | export(PackedScene) var pc_hud 4 | export(PackedScene) var mobile_hud 5 | 6 | 7 | func _ready(): 8 | var n 9 | if Globals.is_mobile(): 10 | n = mobile_hud.instance() 11 | else: 12 | n = pc_hud.instance() 13 | 14 | call_deferred("deferred_add", n) 15 | 16 | func deferred_add(n): 17 | add_child(n) 18 | BehaviorEvents.emit_signal("OnHUDCreated") 19 | -------------------------------------------------------------------------------- /scenes/GUI/HoldToMove.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [sub_resource type="Animation" id=1] 6 | resource_name = "spin" 7 | length = 2.0 8 | tracks/0/type = "value" 9 | tracks/0/path = NodePath("Sprite:scale") 10 | tracks/0/interp = 2 11 | tracks/0/loop_wrap = true 12 | tracks/0/imported = false 13 | tracks/0/enabled = true 14 | tracks/0/keys = { 15 | "times": PoolRealArray( 0, 2 ), 16 | "transitions": PoolRealArray( 1, 1 ), 17 | "update": 0, 18 | "values": [ Vector2( 1e-005, 1e-005 ), Vector2( 1, 1 ) ] 19 | } 20 | tracks/1/type = "value" 21 | tracks/1/path = NodePath("Sprite:rotation_degrees") 22 | tracks/1/interp = 2 23 | tracks/1/loop_wrap = true 24 | tracks/1/imported = false 25 | tracks/1/enabled = true 26 | tracks/1/keys = { 27 | "times": PoolRealArray( 0, 2 ), 28 | "transitions": PoolRealArray( 1, 1 ), 29 | "update": 0, 30 | "values": [ 0.0, 360.0 ] 31 | } 32 | 33 | [node name="Node2D" type="Node2D"] 34 | 35 | [node name="Sprite" type="Sprite" parent="."] 36 | scale = Vector2( 1e-005, 1e-005 ) 37 | texture = ExtResource( 1 ) 38 | region_enabled = true 39 | region_rect = Rect2( 1920, 640, 128, 128 ) 40 | 41 | [node name="AnimationPlayer" type="AnimationPlayer" parent="."] 42 | autoplay = "spin" 43 | anims/spin = SubResource( 1 ) 44 | 45 | -------------------------------------------------------------------------------- /scenes/GUI/ItemList/ChooseTargetRow.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://data/theme/default_ui_text.tres" type="Theme" id=1] 4 | [ext_resource path="res://scripts/GUI/ItemList/ChooseTargetRow.gd" type="Script" id=2] 5 | [ext_resource path="res://scripts/GUI/Audio/ToggleBtnAudio.gd" type="Script" id=3] 6 | 7 | [node name="ChooseTargetRow" type="Control"] 8 | margin_right = 377.0 9 | margin_bottom = 50.0 10 | rect_min_size = Vector2( 0, 50 ) 11 | theme = ExtResource( 1 ) 12 | script = ExtResource( 2 ) 13 | __meta__ = { 14 | "_edit_use_anchors_": false 15 | } 16 | 17 | [node name="Toggle" type="Button" parent="."] 18 | anchor_right = 1.0 19 | anchor_bottom = 1.0 20 | toggle_mode = true 21 | script = ExtResource( 3 ) 22 | 23 | [node name="HBoxContainer" type="HBoxContainer" parent="."] 24 | anchor_right = 1.0 25 | anchor_bottom = 1.0 26 | mouse_filter = 2 27 | 28 | [node name="Wrapper" type="Control" parent="HBoxContainer"] 29 | margin_right = 50.0 30 | margin_bottom = 50.0 31 | rect_min_size = Vector2( 50, 0 ) 32 | mouse_filter = 2 33 | 34 | [node name="TextureRect" type="TextureRect" parent="HBoxContainer/Wrapper"] 35 | anchor_right = 1.0 36 | anchor_bottom = 1.0 37 | expand = true 38 | 39 | [node name="Name" type="Label" parent="HBoxContainer"] 40 | margin_left = 54.0 41 | margin_right = 377.0 42 | margin_bottom = 50.0 43 | rect_min_size = Vector2( 0, 50 ) 44 | size_flags_horizontal = 3 45 | size_flags_vertical = 6 46 | valign = 1 47 | autowrap = true 48 | -------------------------------------------------------------------------------- /scenes/GUI/ItemList/DefaultRow.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scripts/GUI/ItemList/DefaultRow.gd" type="Script" id=1] 4 | [ext_resource path="res://data/fonts/DejaVuSansMono_text.tres" type="DynamicFont" id=2] 5 | [ext_resource path="res://data/fonts/DejaVuSansMonoItalBold_text.tres" type="DynamicFont" id=3] 6 | [ext_resource path="res://data/fonts/DejaVuSansMonoItal_text.tres" type="DynamicFont" id=4] 7 | [ext_resource path="res://data/fonts/DejaVuSansMonoBold_text.tres" type="DynamicFont" id=5] 8 | 9 | [node name="DefaultRow" type="Control"] 10 | anchor_right = 1.0 11 | margin_bottom = 50.0 12 | rect_min_size = Vector2( 0, 50 ) 13 | size_flags_horizontal = 3 14 | size_flags_vertical = 3 15 | script = ExtResource( 1 ) 16 | 17 | [node name="HBoxContainer" type="HBoxContainer" parent="."] 18 | anchor_right = 1.0 19 | anchor_bottom = 1.0 20 | 21 | [node name="RichTextLabel" type="RichTextLabel" parent="HBoxContainer"] 22 | margin_right = 1280.0 23 | margin_bottom = 50.0 24 | rect_min_size = Vector2( 0, 20 ) 25 | size_flags_horizontal = 3 26 | size_flags_vertical = 3 27 | custom_fonts/mono_font = ExtResource( 2 ) 28 | custom_fonts/bold_italics_font = ExtResource( 3 ) 29 | custom_fonts/italics_font = ExtResource( 4 ) 30 | custom_fonts/bold_font = ExtResource( 5 ) 31 | custom_fonts/normal_font = ExtResource( 2 ) 32 | bbcode_enabled = true 33 | bbcode_text = "Test" 34 | text = "Test" 35 | -------------------------------------------------------------------------------- /scenes/GUI/ItemList/MyItemList.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://scripts/GUI/ItemList/MyItemList.gd" type="Script" id=1] 4 | [ext_resource path="res://scenes/GUI/ItemList/DefaultRow.tscn" type="PackedScene" id=2] 5 | 6 | [node name="MyItemList" type="ScrollContainer"] 7 | anchor_right = 1.0 8 | anchor_bottom = 1.0 9 | scroll_deadzone = 50 10 | script = ExtResource( 1 ) 11 | __meta__ = { 12 | "_edit_use_anchors_": false 13 | } 14 | Row = ExtResource( 2 ) 15 | 16 | [node name="Rows" type="VBoxContainer" parent="."] 17 | margin_right = 1280.0 18 | size_flags_horizontal = 3 19 | -------------------------------------------------------------------------------- /scenes/Sample.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://scenes/tileset_source/sun.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/tileset_source/planet_a.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/tileset_source/wormhole.tscn" type="PackedScene" id=3] 6 | 7 | [node name="Sample" type="Node2D"] 8 | 9 | [node name="sun" parent="." instance=ExtResource( 1 )] 10 | position = Vector2( 1024, 384 ) 11 | 12 | [node name="planet_a" parent="." instance=ExtResource( 2 )] 13 | position = Vector2( 896, 256 ) 14 | 15 | [node name="Node2D" parent="." instance=ExtResource( 3 )] 16 | position = Vector2( 1152, 512 ) 17 | -------------------------------------------------------------------------------- /scenes/Scanner_border.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://scenes/tileset_source/scanner_border/scanner_border_tiles.tres" type="TileSet" id=1] 4 | 5 | [node name="ScannerBorder" type="TileMap"] 6 | tile_set = ExtResource( 1 ) 7 | cell_size = Vector2( 128, 128 ) 8 | cell_custom_transform = Transform2D( 128, 0, 0, 128, 0, 0 ) 9 | format = 1 10 | tile_data = PoolIntArray( 917517, 0, 0 ) 11 | -------------------------------------------------------------------------------- /scenes/SpaceBG.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | [ext_resource path="res://data/shaders/SpaceBG-fractal.shader" type="Shader" id=2] 5 | [ext_resource path="res://scripts/SpaceBG.gd" type="Script" id=3] 6 | 7 | [sub_resource type="ShaderMaterial" id=1] 8 | shader = ExtResource( 2 ) 9 | shader_param/iterations = 18 10 | shader_param/formuparam = 0.806 11 | shader_param/volsteps = 9 12 | shader_param/stepsize = 0.1 13 | shader_param/zoom = 2.36 14 | shader_param/tile = 0.85 15 | shader_param/speed = 0.01 16 | shader_param/brightness = 0.0015 17 | shader_param/darkmatter = 0.3 18 | shader_param/distfading = 0.73 19 | shader_param/saturation = 0.85 20 | shader_param/camera_offset = Vector2( 1, 1 ) 21 | 22 | [node name="SpaceBG" type="Node2D"] 23 | script = ExtResource( 3 ) 24 | 25 | [node name="Sprite" type="Sprite" parent="."] 26 | material = SubResource( 1 ) 27 | scale = Vector2( 8, 8 ) 28 | texture = ExtResource( 1 ) 29 | 30 | [node name="Node2D" type="Node2D" parent="."] 31 | position = Vector2( 10240, 10240 ) 32 | -------------------------------------------------------------------------------- /scenes/level_prefab/human/electro_bomber_battleship.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://scripts/Attributes.gd" type="Script" id=1] 4 | [ext_resource path="res://scenes/tileset_source/human_bomber.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/tileset_source/human_battleship.tscn" type="PackedScene" id=3] 6 | 7 | [node name="electro_bomber_battleship" type="Node2D"] 8 | 9 | [node name="bomber_emp" type="Node2D" parent="."] 10 | script = ExtResource( 1 ) 11 | PreloadData = "res://data/json/ships/human/bomber_emp.json" 12 | PreloadJSON = "{ 13 | \"ai\": { 14 | \"pathfinding\":\"group_leader\" 15 | } 16 | }" 17 | base_attributes = { 18 | 19 | } 20 | modified_attributes = { 21 | 22 | } 23 | 24 | [node name="bomber_root" parent="bomber_emp" instance=ExtResource( 2 )] 25 | 26 | [node name="battleship" type="Node2D" parent="."] 27 | position = Vector2( 0, 128 ) 28 | script = ExtResource( 1 ) 29 | PreloadData = "res://data/json/ships/human/battleship.json" 30 | PreloadJSON = "{ 31 | \"ai\": { 32 | \"pathfinding\":\"group\", 33 | \"disable_wandering\":true 34 | } 35 | }" 36 | base_attributes = { 37 | 38 | } 39 | modified_attributes = { 40 | 41 | } 42 | 43 | [node name="battleship_root" parent="battleship" instance=ExtResource( 3 )] 44 | -------------------------------------------------------------------------------- /scenes/level_prefab/human/electro_bomber_scout.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://scripts/Attributes.gd" type="Script" id=1] 4 | [ext_resource path="res://scenes/tileset_source/human_bomber.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/tileset_source/human_scout.tscn" type="PackedScene" id=3] 6 | 7 | [node name="electro_bomber_scout" type="Node2D"] 8 | 9 | [node name="bomber_emp" type="Node2D" parent="."] 10 | script = ExtResource( 1 ) 11 | PreloadData = "res://data/json/ships/human/bomber_emp.json" 12 | PreloadJSON = "{ 13 | \"ai\": { 14 | \"pathfinding\":\"group_leader\" 15 | } 16 | }" 17 | base_attributes = { 18 | 19 | } 20 | modified_attributes = { 21 | 22 | } 23 | 24 | [node name="bomber_root" parent="bomber_emp" instance=ExtResource( 2 )] 25 | 26 | [node name="scout1" type="Node2D" parent="."] 27 | position = Vector2( 0, 128 ) 28 | script = ExtResource( 1 ) 29 | PreloadData = "res://data/json/ships/human/scout_laser.json" 30 | PreloadJSON = "{ 31 | \"ai\": { 32 | \"pathfinding\":\"group\", 33 | \"disable_wandering\":true 34 | } 35 | }" 36 | base_attributes = { 37 | 38 | } 39 | modified_attributes = { 40 | 41 | } 42 | 43 | [node name="scout_root" parent="scout1" instance=ExtResource( 3 )] 44 | -------------------------------------------------------------------------------- /scenes/level_prefab/jerg/battleship_electro_frigate.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://scripts/Attributes.gd" type="Script" id=1] 4 | [ext_resource path="res://scenes/tileset_source/jerg_battleship.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/tileset_source/jerg_frigate.tscn" type="PackedScene" id=3] 6 | 7 | [node name="JergBattleGroup" type="Node2D"] 8 | 9 | [node name="jerg_battleship" type="Node2D" parent="."] 10 | script = ExtResource( 1 ) 11 | PreloadData = "res://data/json/ships/jerg/battleship.json" 12 | PreloadJSON = "{ 13 | \"ai\": { 14 | \"pathfinding\":\"group_leader\" 15 | } 16 | }" 17 | base_attributes = { 18 | 19 | } 20 | modified_attributes = { 21 | 22 | } 23 | 24 | [node name="battleship" parent="jerg_battleship" instance=ExtResource( 2 )] 25 | 26 | [node name="jerg_frigate" type="Node2D" parent="."] 27 | position = Vector2( 0, 128 ) 28 | script = ExtResource( 1 ) 29 | PreloadData = "res://data/json/ships/jerg/frigate_electro.json" 30 | PreloadJSON = "{ 31 | \"ai\": { 32 | \"pathfinding\":\"group\", 33 | \"disable_wandering\":true 34 | } 35 | }" 36 | base_attributes = { 37 | 38 | } 39 | modified_attributes = { 40 | 41 | } 42 | 43 | [node name="frigate_root" parent="jerg_frigate" instance=ExtResource( 3 )] 44 | -------------------------------------------------------------------------------- /scenes/level_prefab/jerg/battleship_frigate.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://scripts/Attributes.gd" type="Script" id=1] 4 | [ext_resource path="res://scenes/tileset_source/jerg_battleship.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/tileset_source/jerg_scout.tscn" type="PackedScene" id=3] 6 | 7 | [node name="JergBattleGroup" type="Node2D"] 8 | 9 | [node name="jerg_battleship" type="Node2D" parent="."] 10 | script = ExtResource( 1 ) 11 | PreloadData = "res://data/json/ships/jerg/battleship.json" 12 | PreloadJSON = "{ 13 | \"ai\": { 14 | \"pathfinding\":\"group_leader\" 15 | } 16 | }" 17 | base_attributes = { 18 | 19 | } 20 | modified_attributes = { 21 | 22 | } 23 | 24 | [node name="battleship" parent="jerg_battleship" instance=ExtResource( 2 )] 25 | 26 | [node name="jerg_frigate" type="Node2D" parent="."] 27 | position = Vector2( 0, 128 ) 28 | script = ExtResource( 1 ) 29 | PreloadData = "res://data/json/ships/jerg/frigate.json" 30 | PreloadJSON = "{ 31 | \"ai\": { 32 | \"pathfinding\":\"group\", 33 | \"disable_wandering\":true 34 | } 35 | }" 36 | base_attributes = { 37 | 38 | } 39 | modified_attributes = { 40 | 41 | } 42 | 43 | [node name="frigate" parent="jerg_frigate" instance=ExtResource( 3 )] 44 | region_rect = Rect2( 1024, 256, 128, 128 ) 45 | 46 | -------------------------------------------------------------------------------- /scenes/level_prefab/jerg/double_battleships.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://scripts/Attributes.gd" type="Script" id=1] 4 | [ext_resource path="res://scenes/tileset_source/jerg_battleship.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/tileset_source/jerg_scout.tscn" type="PackedScene" id=3] 6 | 7 | [node name="JergBattleGroup" type="Node2D"] 8 | 9 | [node name="jerg_battleship" type="Node2D" parent="."] 10 | position = Vector2( 128, 0 ) 11 | script = ExtResource( 1 ) 12 | PreloadData = "res://data/json/ships/jerg/battleship.json" 13 | PreloadJSON = "{ 14 | \"ai\": { 15 | \"pathfinding\":\"group_leader\" 16 | } 17 | }" 18 | base_attributes = { 19 | 20 | } 21 | modified_attributes = { 22 | 23 | } 24 | 25 | [node name="shuttle" parent="jerg_battleship" instance=ExtResource( 2 )] 26 | 27 | [node name="jerg_battleship2" type="Node2D" parent="."] 28 | position = Vector2( -128, 0 ) 29 | script = ExtResource( 1 ) 30 | PreloadData = "res://data/json/ships/jerg/battleship.json" 31 | PreloadJSON = "{ 32 | \"ai\": { 33 | \"pathfinding\":\"group\", 34 | \"disable_wandering\":true 35 | } 36 | }" 37 | base_attributes = { 38 | 39 | } 40 | modified_attributes = { 41 | 42 | } 43 | 44 | [node name="shuttle2" parent="jerg_battleship2" instance=ExtResource( 3 )] 45 | region_rect = Rect2( 1408, 256, 128, 128 ) 46 | 47 | -------------------------------------------------------------------------------- /scenes/level_prefab/jerg/double_scouts.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://scripts/Attributes.gd" type="Script" id=1] 4 | [ext_resource path="res://scenes/tileset_source/jerg_scout.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/tileset_source/jerg_bomber.tscn" type="PackedScene" id=3] 6 | 7 | [node name="JergBattleGroup" type="Node2D"] 8 | 9 | [node name="scout1" type="Node2D" parent="."] 10 | position = Vector2( -128, 0 ) 11 | script = ExtResource( 1 ) 12 | PreloadData = "res://data/json/ships/jerg/scout_laser.json" 13 | PreloadJSON = "{ 14 | \"ai\": { 15 | \"pathfinding\":\"group_leader\" 16 | } 17 | }" 18 | base_attributes = { 19 | 20 | } 21 | modified_attributes = { 22 | 23 | } 24 | 25 | [node name="shuttle2" parent="scout1" instance=ExtResource( 2 )] 26 | 27 | [node name="bomber1" type="Node2D" parent="."] 28 | position = Vector2( 128, 0 ) 29 | script = ExtResource( 1 ) 30 | PreloadData = "res://data/json/ships/jerg/bomber.json" 31 | PreloadJSON = "{ 32 | \"ai\": { 33 | \"pathfinding\":\"group\", 34 | \"disable_wandering\":true 35 | } 36 | }" 37 | base_attributes = { 38 | 39 | } 40 | modified_attributes = { 41 | 42 | } 43 | 44 | [node name="jerg_scout" parent="bomber1" instance=ExtResource( 3 )] 45 | 46 | -------------------------------------------------------------------------------- /scenes/level_prefab/jerg/scouts_bomber.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://scripts/Attributes.gd" type="Script" id=1] 4 | [ext_resource path="res://scenes/tileset_source/jerg_scout.tscn" type="PackedScene" id=2] 5 | 6 | [node name="JergBattleGroup" type="Node2D"] 7 | 8 | [node name="scout1" type="Node2D" parent="."] 9 | position = Vector2( -128, 0 ) 10 | script = ExtResource( 1 ) 11 | PreloadData = "res://data/json/ships/jerg/scout_laser.json" 12 | PreloadJSON = "{ 13 | \"ai\": { 14 | \"pathfinding\":\"group_leader\" 15 | } 16 | }" 17 | base_attributes = { 18 | 19 | } 20 | modified_attributes = { 21 | 22 | } 23 | 24 | [node name="shuttle2" parent="scout1" instance=ExtResource( 2 )] 25 | 26 | [node name="scout2" type="Node2D" parent="."] 27 | position = Vector2( 128, 0 ) 28 | script = ExtResource( 1 ) 29 | PreloadData = "res://data/json/ships/jerg/scout_laser.json" 30 | PreloadJSON = "{ 31 | \"ai\": { 32 | \"pathfinding\":\"group\", 33 | \"disable_wandering\":true 34 | } 35 | }" 36 | base_attributes = { 37 | 38 | } 39 | modified_attributes = { 40 | 41 | } 42 | 43 | [node name="shuttle3" parent="scout2" instance=ExtResource( 2 )] 44 | 45 | -------------------------------------------------------------------------------- /scenes/level_prefab/jerg/scouts_electro.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://scripts/Attributes.gd" type="Script" id=1] 4 | [ext_resource path="res://scenes/tileset_source/jerg_scout.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/tileset_source/jerg_bomber.tscn" type="PackedScene" id=3] 6 | 7 | [node name="JergBattleGroup" type="Node2D"] 8 | 9 | [node name="emp_bomber" type="Node2D" parent="."] 10 | script = ExtResource( 1 ) 11 | PreloadData = "res://data/json/ships/jerg/bomber_emp.json" 12 | PreloadJSON = "{ 13 | \"ai\": { 14 | \"pathfinding\":\"group_leader\" 15 | } 16 | }" 17 | base_attributes = { 18 | 19 | } 20 | modified_attributes = { 21 | 22 | } 23 | 24 | [node name="bomber_root" parent="emp_bomber" instance=ExtResource( 3 )] 25 | 26 | [node name="scout2" type="Node2D" parent="."] 27 | position = Vector2( 0, 128 ) 28 | script = ExtResource( 1 ) 29 | PreloadData = "res://data/json/ships/jerg/scout_laser.json" 30 | PreloadJSON = "{ 31 | \"ai\": { 32 | \"pathfinding\":\"group\", 33 | \"disable_wandering\":true 34 | } 35 | }" 36 | base_attributes = { 37 | 38 | } 39 | modified_attributes = { 40 | 41 | } 42 | 43 | [node name="shuttle3" parent="scout2" instance=ExtResource( 2 )] 44 | -------------------------------------------------------------------------------- /scenes/object.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://scripts/Attributes.gd" type="Script" id=1] 4 | 5 | [node name="Object" type="Node2D"] 6 | script = ExtResource( 1 ) 7 | base_attributes = { 8 | 9 | } 10 | modified_attributes = { 11 | 12 | } 13 | 14 | -------------------------------------------------------------------------------- /scenes/scanner_fx.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/green_square.png" type="Texture" id=1] 4 | 5 | [sub_resource type="Shader" id=3] 6 | code = "shader_type canvas_item; 7 | 8 | uniform float Frequency = 0.3; 9 | uniform float Speed = 1.0; 10 | uniform float Amplitude = 20.0; 11 | 12 | varying highp vec2 high_uv; 13 | 14 | void vertex() { 15 | high_uv = UV; 16 | } 17 | 18 | void fragment() { 19 | highp vec2 uv = high_uv; 20 | float move = dot(uv, vec2(0.3333333, 0.333333)) * Frequency; 21 | highp float s = Speed * TIME; 22 | move = sin(move + s); 23 | move = (move + 1.0) / 2.0; 24 | move = (move * Amplitude) - (Amplitude - 1.0); 25 | vec4 col = texture(TEXTURE, high_uv); 26 | col.a = min(max(col.a * move, 0.0), 0.5); 27 | 28 | COLOR = col; 29 | }" 30 | 31 | [sub_resource type="ShaderMaterial" id=2] 32 | shader = SubResource( 3 ) 33 | shader_param/Frequency = 0.3 34 | shader_param/Speed = 1.0 35 | shader_param/Amplitude = 20.0 36 | 37 | [node name="base_green" type="Node2D"] 38 | position = Vector2( 1024, 1024 ) 39 | 40 | [node name="green" type="Sprite" parent="."] 41 | material = SubResource( 2 ) 42 | texture = ExtResource( 1 ) 43 | offset = Vector2( 64, 64 ) 44 | region_enabled = true 45 | region_rect = Rect2( 0, 0, 20480, 20480 ) 46 | -------------------------------------------------------------------------------- /scenes/sfx/Human_MoveSFX.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://data/private/sounds/sfx/ships/move1.wav" type="AudioStream" id=1] 4 | [ext_resource path="res://data/private/sounds/sfx/ships/move2.wav" type="AudioStream" id=2] 5 | [ext_resource path="res://data/private/sounds/sfx/ships/move3.wav" type="AudioStream" id=3] 6 | 7 | [node name="MoveSFX" type="Node2D"] 8 | 9 | [node name="choice1" type="AudioStreamPlayer2D" parent="."] 10 | stream = ExtResource( 1 ) 11 | bus = "Sfx" 12 | 13 | [node name="choice2" type="AudioStreamPlayer2D" parent="."] 14 | stream = ExtResource( 2 ) 15 | bus = "Sfx" 16 | 17 | [node name="choice3" type="AudioStreamPlayer2D" parent="."] 18 | stream = ExtResource( 3 ) 19 | bus = "Sfx" 20 | -------------------------------------------------------------------------------- /scenes/sfx/Human_Ship_BG.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/sounds/music/enginehum3-openstreetart-cc3-kurt.ogg" type="AudioStream" id=1] 4 | 5 | [node name="BG" type="Node2D"] 6 | 7 | [node name="EngineHum" type="AudioStreamPlayer2D" parent="."] 8 | stream = ExtResource( 1 ) 9 | max_distance = 500.0 10 | attenuation = 1.62451 11 | bus = "Sfx" 12 | -------------------------------------------------------------------------------- /scenes/tileset_source/LaserFX01.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=2] 2 | 3 | [ext_resource path="res://scripts/animations/MissileFX2.gd" type="Script" id=1] 4 | [ext_resource path="res://scripts/animations/laser_vfx_test02.gd" type="Script" id=2] 5 | [ext_resource path="res://data/private/textures/visualfx/laser_test.png" type="Texture" id=3] 6 | [ext_resource path="res://data/private/sounds/sfx/laser/laser3.wav" type="AudioStream" id=4] 7 | 8 | [node name="MissileFX2" type="Node2D"] 9 | position = Vector2( 0, 75.7018 ) 10 | z_index = 1000 11 | script = ExtResource( 1 ) 12 | speed = 1000.0 13 | rand_speed = Vector2( -350, 500 ) 14 | rand_offset_x = Vector2( -30, 30 ) 15 | rand_offset_y = Vector2( -30, 30 ) 16 | 17 | [node name="root" type="Node2D" parent="."] 18 | script = ExtResource( 2 ) 19 | 20 | [node name="Sprite" type="Sprite" parent="root"] 21 | rotation = 1.5708 22 | scale = Vector2( 1, 1e-05 ) 23 | texture = ExtResource( 3 ) 24 | centered = false 25 | offset = Vector2( -64, -128 ) 26 | 27 | [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] 28 | stream = ExtResource( 4 ) 29 | autoplay = true 30 | bus = "Sfx" 31 | -------------------------------------------------------------------------------- /scenes/tileset_source/anomaly.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="uranium" type="Sprite"] 6 | z_index = 10 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 1280, 128, 128, 128 ) 10 | 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/antenna.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="antenna" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 384, 1408, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/backup_system.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="backup_system" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 0, 1664, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/battleship_body.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="shuttle_body" type="Sprite"] 6 | z_index = 15 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 1280, 384, 128, 128 ) 10 | 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/bullet_clip.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="missile" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 640, 384, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/chaff.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="chaff" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 640, 1536, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/chaos_generator.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="chaos_generator" type="Sprite"] 6 | z_index = 25 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 384, 256, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/converter.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="converter" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 256, 128, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/cristal.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="cristal" type="Sprite"] 6 | z_index = 10 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 1152, 128, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/depleted_uranium.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="uranium" type="Sprite"] 6 | z_index = 10 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 1408, 384, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/emergency_warp.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="emergency_warp" type="Sprite"] 6 | scale = Vector2( 0.75, 0.75 ) 7 | z_index = 20 8 | texture = ExtResource( 1 ) 9 | region_enabled = true 10 | region_rect = Rect2( 1536, 385, 128, 125 ) 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/emp.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="remote_datajack" type="Sprite"] 6 | z_index = 25 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 256, 1536, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/firewall.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="firewall" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 512, 1408, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/frigate_body.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="shuttle_body" type="Sprite"] 6 | z_index = 15 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 896, 384, 128, 128 ) 10 | 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/gravitic_compactor.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="compactor" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 128, 0, 128, 128 ) 10 | 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/hack_fx.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=7 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/Haberdash_curses_12x12.png" type="Texture" id=1] 4 | [ext_resource path="res://data/shaders/emp_particle.tres" type="Material" id=2] 5 | [ext_resource path="res://scripts/animations/hack_fx.gd" type="Script" id=4] 6 | [ext_resource path="res://data/private/sounds/sfx/hacking.wav" type="AudioStream" id=5] 7 | 8 | [sub_resource type="AtlasTexture" id=3] 9 | atlas = ExtResource( 1 ) 10 | region = Rect2( 0, 0, 12, 12 ) 11 | 12 | [sub_resource type="Gradient" id=4] 13 | colors = PoolColorArray( 1, 1, 1, 1, 1, 1, 1, 0 ) 14 | 15 | [node name="hack_fx" type="Node2D"] 16 | script = ExtResource( 4 ) 17 | speed = 700.0 18 | rand_offset_x = Vector2( -30, 30 ) 19 | rand_offset_y = Vector2( -30, 30 ) 20 | 21 | [node name="CPUParticles2D" type="CPUParticles2D" parent="."] 22 | material = ExtResource( 2 ) 23 | amount = 50 24 | lifetime = 0.3 25 | local_coords = false 26 | texture = SubResource( 3 ) 27 | direction = Vector2( 0, 1 ) 28 | spread = 180.0 29 | gravity = Vector2( 0, 0 ) 30 | initial_velocity = 78.43 31 | initial_velocity_random = 0.39 32 | linear_accel = 77.12 33 | angle = 360.0 34 | angle_random = 1.0 35 | scale_amount = 2.16 36 | scale_amount_random = 0.39 37 | color_ramp = SubResource( 4 ) 38 | hue_variation = 1.0 39 | hue_variation_random = 1.0 40 | 41 | [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] 42 | stream = ExtResource( 5 ) 43 | autoplay = true 44 | bus = "Sfx" 45 | -------------------------------------------------------------------------------- /scenes/tileset_source/hotswap.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="hotswap_system" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 128, 1664, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/hull_analyzer.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="hull_analyzer" type="Sprite"] 6 | z_index = 25 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 128, 1408, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/hull_hit_fx.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://scripts/animations/hull_hit_fx.gd" type="Script" id=1] 4 | 5 | [sub_resource type="Curve" id=1] 6 | _data = [ Vector2( 0, 0.7464 ), 0.0, 0.0, 0, 0, Vector2( 0.456953, 0.9224 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.5088 ), 0.0, 0.0, 0, 0 ] 7 | 8 | [sub_resource type="Gradient" id=2] 9 | colors = PoolColorArray( 1, 1, 1, 1, 1, 1, 1, 0 ) 10 | 11 | [node name="hull_hit_fx" type="Node2D"] 12 | script = ExtResource( 1 ) 13 | ttl = 1.0 14 | 15 | [node name="Particles2D" type="CPUParticles2D" parent="."] 16 | emitting = false 17 | amount = 20 18 | one_shot = true 19 | explosiveness = 0.86 20 | spread = 180.0 21 | gravity = Vector2( 0, 0 ) 22 | initial_velocity = 123.08 23 | initial_velocity_random = 0.11 24 | angular_velocity = 110.77 25 | damping = 25.39 26 | scale_amount = 6.0 27 | scale_amount_curve = SubResource( 1 ) 28 | color_ramp = SubResource( 2 ) 29 | -------------------------------------------------------------------------------- /scenes/tileset_source/human_battleship.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scenes/sfx/Human_Ship_BG.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/sfx/Human_MoveSFX.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=4] 7 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=5] 8 | 9 | [node name="battleship_root" type="Node2D"] 10 | z_index = 900 11 | 12 | [node name="BG" parent="." instance=ExtResource( 1 )] 13 | 14 | [node name="MoveSFX" parent="." instance=ExtResource( 2 )] 15 | 16 | [node name="MovementAnimations" parent="." instance=ExtResource( 3 )] 17 | 18 | [node name="outline" type="Sprite" parent="."] 19 | modulate = Color( 1, 1, 1, 0 ) 20 | texture = ExtResource( 4 ) 21 | region_enabled = true 22 | region_rect = Rect2( 1282, 766, 123, 132 ) 23 | 24 | [node name="battleship" type="Sprite" parent="."] 25 | z_index = 1 26 | texture = ExtResource( 4 ) 27 | region_enabled = true 28 | region_rect = Rect2( 1280, 256, 128, 128 ) 29 | 30 | [node name="hit_fx" parent="." instance=ExtResource( 5 )] 31 | z_index = 2 32 | region_override = Rect2( 1280, 256, 128, 128 ) 33 | -------------------------------------------------------------------------------- /scenes/tileset_source/human_bomber.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scenes/sfx/Human_Ship_BG.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/sfx/Human_MoveSFX.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=4] 7 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=5] 8 | 9 | [node name="bomber_root" type="Node2D"] 10 | z_index = 900 11 | 12 | [node name="BG" parent="." instance=ExtResource( 1 )] 13 | 14 | [node name="MoveSFX" parent="." instance=ExtResource( 2 )] 15 | 16 | [node name="MovementAnimations" parent="." instance=ExtResource( 3 )] 17 | 18 | [node name="outline" type="Sprite" parent="."] 19 | modulate = Color( 1, 1, 1, 0 ) 20 | texture = ExtResource( 4 ) 21 | region_enabled = true 22 | region_rect = Rect2( 0, 1152, 128, 128 ) 23 | 24 | [node name="bomber" type="Sprite" parent="."] 25 | z_index = 1 26 | texture = ExtResource( 4 ) 27 | region_enabled = true 28 | region_rect = Rect2( 0, 1024, 128, 128 ) 29 | 30 | [node name="hit_fx" parent="." instance=ExtResource( 5 )] 31 | z_index = 2 32 | region_override = Rect2( 0, 1024, 128, 128 ) 33 | -------------------------------------------------------------------------------- /scenes/tileset_source/human_frigate.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scenes/sfx/Human_Ship_BG.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/sfx/Human_MoveSFX.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=4] 7 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=5] 8 | 9 | [node name="frigate_root" type="Node2D"] 10 | z_index = 900 11 | 12 | [node name="BG" parent="." instance=ExtResource( 1 )] 13 | 14 | [node name="MoveSFX" parent="." instance=ExtResource( 2 )] 15 | 16 | [node name="MovementAnimations" parent="." instance=ExtResource( 3 )] 17 | 18 | [node name="outline" type="Sprite" parent="."] 19 | modulate = Color( 1, 1, 1, 0 ) 20 | texture = ExtResource( 4 ) 21 | region_enabled = true 22 | region_rect = Rect2( 896, 766, 128, 132 ) 23 | 24 | [node name="frigate" type="Sprite" parent="."] 25 | z_index = 1 26 | texture = ExtResource( 4 ) 27 | region_enabled = true 28 | region_rect = Rect2( 896, 256, 128, 128 ) 29 | 30 | [node name="hit_fx" parent="." instance=ExtResource( 5 )] 31 | z_index = 2 32 | region_override = Rect2( 896, 256, 128, 128 ) 33 | -------------------------------------------------------------------------------- /scenes/tileset_source/human_scout.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scenes/sfx/Human_Ship_BG.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/sfx/Human_MoveSFX.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=4] 7 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=5] 8 | 9 | [node name="scout_root" type="Node2D"] 10 | z_index = 900 11 | 12 | [node name="BG" parent="." instance=ExtResource( 1 )] 13 | 14 | [node name="MoveSFX" parent="." instance=ExtResource( 2 )] 15 | 16 | [node name="MovementAnimations" parent="." instance=ExtResource( 3 )] 17 | 18 | [node name="outline" type="Sprite" parent="."] 19 | modulate = Color( 1, 1, 1, 0 ) 20 | texture = ExtResource( 4 ) 21 | region_enabled = true 22 | region_rect = Rect2( 512, 768, 128, 128 ) 23 | 24 | [node name="scout" type="Sprite" parent="."] 25 | z_index = 1 26 | texture = ExtResource( 4 ) 27 | region_enabled = true 28 | region_rect = Rect2( 512, 256, 128, 128 ) 29 | 30 | [node name="hit_fx" parent="." instance=ExtResource( 5 )] 31 | z_index = 2 32 | -------------------------------------------------------------------------------- /scenes/tileset_source/hydrogen.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="hydrogen" type="Sprite"] 6 | z_index = 10 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 256, 0, 128, 128 ) 10 | 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/jammer.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="jammer" type="Sprite"] 6 | z_index = 25 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 0, 1408, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/jerg_battleship.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scenes/sfx/Human_Ship_BG.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/sfx/Human_MoveSFX.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=4] 7 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=5] 8 | 9 | [node name="battleship_root" type="Node2D"] 10 | z_index = 900 11 | 12 | [node name="BG" parent="." instance=ExtResource( 1 )] 13 | 14 | [node name="MoveSFX" parent="." instance=ExtResource( 2 )] 15 | 16 | [node name="MovementAnimations" parent="." instance=ExtResource( 3 )] 17 | 18 | [node name="outline" type="Sprite" parent="."] 19 | modulate = Color( 1, 1, 1, 0 ) 20 | texture = ExtResource( 4 ) 21 | region_enabled = true 22 | region_rect = Rect2( 1405, 768, 133, 128 ) 23 | 24 | [node name="battleship" type="Sprite" parent="."] 25 | z_index = 1 26 | texture = ExtResource( 4 ) 27 | region_enabled = true 28 | region_rect = Rect2( 1408, 256, 128, 128 ) 29 | 30 | [node name="hit_fx" parent="." instance=ExtResource( 5 )] 31 | z_index = 2 32 | region_override = Rect2( 1408, 256, 128, 128 ) 33 | 34 | -------------------------------------------------------------------------------- /scenes/tileset_source/jerg_bomber.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scenes/sfx/Human_Ship_BG.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/sfx/Human_MoveSFX.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=4] 7 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=5] 8 | 9 | [node name="bomber_root" type="Node2D"] 10 | z_index = 900 11 | 12 | [node name="BG" parent="." instance=ExtResource( 1 )] 13 | 14 | [node name="MoveSFX" parent="." instance=ExtResource( 2 )] 15 | 16 | [node name="MovementAnimations" parent="." instance=ExtResource( 3 )] 17 | 18 | [node name="outline" type="Sprite" parent="."] 19 | modulate = Color( 1, 1, 1, 0 ) 20 | texture = ExtResource( 4 ) 21 | region_enabled = true 22 | region_rect = Rect2( 640, 768, 128, 128 ) 23 | 24 | [node name="bomber" type="Sprite" parent="."] 25 | z_index = 1 26 | texture = ExtResource( 4 ) 27 | region_enabled = true 28 | region_rect = Rect2( 640, 256, 128, 128 ) 29 | 30 | [node name="hit_fx" parent="." instance=ExtResource( 5 )] 31 | z_index = 2 32 | region_override = Rect2( 640, 256, 128, 128 ) 33 | -------------------------------------------------------------------------------- /scenes/tileset_source/jerg_drone.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scenes/sfx/Human_Ship_BG.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/sfx/Human_MoveSFX.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=4] 7 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=5] 8 | 9 | [node name="drone_root" type="Node2D"] 10 | z_index = 900 11 | 12 | [node name="BG" parent="." instance=ExtResource( 1 )] 13 | 14 | [node name="MoveSFX" parent="." instance=ExtResource( 2 )] 15 | 16 | [node name="MovementAnimations" parent="." instance=ExtResource( 3 )] 17 | 18 | [node name="outline" type="Sprite" parent="."] 19 | modulate = Color( 1, 1, 1, 0 ) 20 | texture = ExtResource( 4 ) 21 | region_enabled = true 22 | region_rect = Rect2( 1664, 512, 128, 128 ) 23 | 24 | [node name="scout" type="Sprite" parent="."] 25 | z_index = 1 26 | texture = ExtResource( 4 ) 27 | region_enabled = true 28 | region_rect = Rect2( 1792, 256, 128, 128 ) 29 | 30 | [node name="hit_fx" parent="." instance=ExtResource( 5 )] 31 | z_index = 2 32 | region_override = Rect2( 1792, 256, 128, 128 ) 33 | -------------------------------------------------------------------------------- /scenes/tileset_source/jerg_frigate.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scenes/sfx/Human_Ship_BG.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/sfx/Human_MoveSFX.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=4] 7 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=5] 8 | 9 | [node name="frigate_root" type="Node2D"] 10 | position = Vector2( -128, -128 ) 11 | rotation = -0.785398 12 | z_index = 900 13 | 14 | [node name="BG" parent="." instance=ExtResource( 1 )] 15 | 16 | [node name="MoveSFX" parent="." instance=ExtResource( 2 )] 17 | 18 | [node name="MovementAnimations" parent="." instance=ExtResource( 3 )] 19 | 20 | [node name="outline" type="Sprite" parent="."] 21 | modulate = Color( 1, 1, 1, 0 ) 22 | texture = ExtResource( 4 ) 23 | region_enabled = true 24 | region_rect = Rect2( 1024, 767, 128, 130 ) 25 | 26 | [node name="frigate" type="Sprite" parent="."] 27 | z_index = 1 28 | texture = ExtResource( 4 ) 29 | region_enabled = true 30 | region_rect = Rect2( 1024, 256, 128, 128 ) 31 | 32 | [node name="hit_fx" parent="." instance=ExtResource( 5 )] 33 | z_index = 2 34 | region_override = Rect2( 1024, 256, 128, 128 ) 35 | -------------------------------------------------------------------------------- /scenes/tileset_source/jerg_queen.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scenes/sfx/Human_Ship_BG.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/sfx/Human_MoveSFX.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=4] 7 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=5] 8 | 9 | [node name="battleship_root" type="Node2D"] 10 | z_index = 900 11 | 12 | [node name="BG" parent="." instance=ExtResource( 1 )] 13 | 14 | [node name="MoveSFX" parent="." instance=ExtResource( 2 )] 15 | 16 | [node name="MovementAnimations" parent="." instance=ExtResource( 3 )] 17 | 18 | [node name="outline" type="Sprite" parent="."] 19 | modulate = Color( 1, 1, 1, 0 ) 20 | texture = ExtResource( 4 ) 21 | region_enabled = true 22 | region_rect = Rect2( 1536, 512, 128, 128 ) 23 | 24 | [node name="battleship" type="Sprite" parent="."] 25 | z_index = 1 26 | texture = ExtResource( 4 ) 27 | region_enabled = true 28 | region_rect = Rect2( 1792, 128, 128, 128 ) 29 | 30 | [node name="hit_fx" parent="." instance=ExtResource( 5 )] 31 | z_index = 2 32 | region_override = Rect2( 1792, 128, 128, 128 ) 33 | -------------------------------------------------------------------------------- /scenes/tileset_source/jerg_scout.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scenes/sfx/Human_Ship_BG.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/sfx/Human_MoveSFX.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=4] 7 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=5] 8 | 9 | [node name="scout_root" type="Node2D"] 10 | z_index = 900 11 | 12 | [node name="BG" parent="." instance=ExtResource( 1 )] 13 | 14 | [node name="MoveSFX" parent="." instance=ExtResource( 2 )] 15 | 16 | [node name="MovementAnimations" parent="." instance=ExtResource( 3 )] 17 | 18 | [node name="outline" type="Sprite" parent="."] 19 | modulate = Color( 1, 1, 1, 0 ) 20 | texture = ExtResource( 4 ) 21 | region_enabled = true 22 | region_rect = Rect2( 128, 1152, 128, 128 ) 23 | 24 | [node name="scout" type="Sprite" parent="."] 25 | z_index = 1 26 | texture = ExtResource( 4 ) 27 | region_enabled = true 28 | region_rect = Rect2( 128, 1024, 128, 128 ) 29 | 30 | [node name="hit_fx" parent="." instance=ExtResource( 5 )] 31 | z_index = 2 32 | region_override = Rect2( 128, 1024, 128, 128 ) 33 | -------------------------------------------------------------------------------- /scenes/tileset_source/kitbash_frigate.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scenes/sfx/Human_Ship_BG.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/sfx/Human_MoveSFX.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=4] 7 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=5] 8 | 9 | [node name="battleship_root" type="Node2D"] 10 | z_index = 900 11 | 12 | [node name="BG" parent="." instance=ExtResource( 1 )] 13 | 14 | [node name="MoveSFX" parent="." instance=ExtResource( 2 )] 15 | 16 | [node name="MovementAnimations" parent="." instance=ExtResource( 3 )] 17 | 18 | [node name="outline" type="Sprite" parent="."] 19 | modulate = Color( 1, 1, 1, 0 ) 20 | texture = ExtResource( 4 ) 21 | region_enabled = true 22 | region_rect = Rect2( 1792, 768, 128, 128 ) 23 | 24 | [node name="battleship" type="Sprite" parent="."] 25 | z_index = 1 26 | texture = ExtResource( 4 ) 27 | region_enabled = true 28 | region_rect = Rect2( 1024, 384, 128, 128 ) 29 | 30 | [node name="hit_fx" parent="." instance=ExtResource( 5 )] 31 | z_index = 2 32 | region_override = Rect2( 1024, 384, 128, 128 ) 33 | -------------------------------------------------------------------------------- /scenes/tileset_source/laser_turret.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="laser_turret" type="Sprite"] 6 | z_index = 25 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 0, 128, 128, 128 ) 10 | 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/minigun.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="minigun" type="Sprite"] 6 | z_index = 25 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 384, 384, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/missile.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="missile" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 384, 0, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/missile_launcher.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="missile_launcher_blue" type="Sprite"] 6 | z_index = 25 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 128, 128, 128, 128 ) 10 | 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/nebula/tileset_src.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/autotile_nebula.png" type="Texture" id=1] 4 | 5 | [node name="autotile_nebula_root" type="Node2D"] 6 | 7 | [node name="autotile_nebula" type="Sprite" parent="."] 8 | texture = ExtResource( 1 ) 9 | centered = false 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/nebula/tileset_src_tilesetter.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/autotile_nebula_tilesetter.png" type="Texture" id=1] 4 | 5 | [node name="autotile_nebula_tilesetter" type="Node2D"] 6 | 7 | [node name="autotile_nebula_tilesetter" type="Sprite" parent="."] 8 | texture = ExtResource( 1 ) 9 | centered = false 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/nebula2.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://scenes/tileset_source/nebula/nebula_tiles_tilesetter.tres" type="TileSet" id=1] 4 | [ext_resource path="res://data/shaders/nebula.tres" type="Material" id=3] 5 | 6 | [node name="Nebula2" type="Node2D"] 7 | z_index = 2000 8 | 9 | [node name="TileMap" type="TileMap" parent="."] 10 | material = ExtResource( 3 ) 11 | tile_set = ExtResource( 1 ) 12 | cell_size = Vector2( 128, 128 ) 13 | cell_custom_transform = Transform2D( 128, 0, 0, 128, 0, 0 ) 14 | format = 1 15 | -------------------------------------------------------------------------------- /scenes/tileset_source/nebula_generator.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://scenes/tileset_source/nebula2.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scripts/tests/nebula_debug_temp.gd" type="Script" id=2] 5 | 6 | [sub_resource type="OpenSimplexNoise" id=1] 7 | seed = 22 8 | period = 10.7 9 | persistence = 0.879 10 | 11 | [node name="NebulaGenerator" type="Node2D"] 12 | script = ExtResource( 2 ) 13 | noise_func = SubResource( 1 ) 14 | map_size = 60 15 | noise_floor = 0.359 16 | exponent = 3.777 17 | 18 | [node name="Nebula2" parent="." instance=ExtResource( 1 )] 19 | position = Vector2( -64, -64 ) 20 | -------------------------------------------------------------------------------- /scenes/tileset_source/oxygen.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="oxygen" type="Sprite"] 6 | z_index = 10 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 896, 128, 128, 128 ) 10 | 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/planet_a.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | [ext_resource path="res://scenes/tileset_source/planet_hit_fx.tscn" type="PackedScene" id=2] 5 | 6 | [node name="planet_a" type="Sprite"] 7 | z_index = 5 8 | texture = ExtResource( 1 ) 9 | region_enabled = true 10 | region_rect = Rect2( 512, 0, 128, 128 ) 11 | 12 | [node name="hit_fx" parent="." instance=ExtResource( 2 )] 13 | 14 | -------------------------------------------------------------------------------- /scenes/tileset_source/planet_b.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | [ext_resource path="res://scenes/tileset_source/planet_hit_fx.tscn" type="PackedScene" id=2] 5 | 6 | [node name="planet_b" type="Sprite"] 7 | z_index = 5 8 | texture = ExtResource( 1 ) 9 | region_enabled = true 10 | region_rect = Rect2( 640, 0, 128, 128 ) 11 | 12 | [node name="hit_fx" parent="." instance=ExtResource( 2 )] 13 | 14 | -------------------------------------------------------------------------------- /scenes/tileset_source/planet_c.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | [ext_resource path="res://scenes/tileset_source/planet_hit_fx.tscn" type="PackedScene" id=2] 5 | 6 | [node name="planet_c" type="Sprite"] 7 | z_index = 5 8 | texture = ExtResource( 1 ) 9 | region_enabled = true 10 | region_rect = Rect2( 768, 0, 128, 128 ) 11 | 12 | [node name="hit_fx" parent="." instance=ExtResource( 2 )] 13 | 14 | -------------------------------------------------------------------------------- /scenes/tileset_source/planet_d.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | [ext_resource path="res://scenes/tileset_source/planet_hit_fx.tscn" type="PackedScene" id=2] 5 | 6 | [node name="planet_a" type="Sprite"] 7 | z_index = 5 8 | texture = ExtResource( 1 ) 9 | region_enabled = true 10 | region_rect = Rect2( 896, 0, 128, 128 ) 11 | 12 | [node name="hit_fx" parent="." instance=ExtResource( 2 )] 13 | 14 | -------------------------------------------------------------------------------- /scenes/tileset_source/planet_e.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | [ext_resource path="res://scenes/tileset_source/planet_hit_fx.tscn" type="PackedScene" id=2] 5 | 6 | [node name="planet_b" type="Sprite"] 7 | z_index = 5 8 | texture = ExtResource( 1 ) 9 | region_enabled = true 10 | region_rect = Rect2( 1024, 0, 128, 128 ) 11 | 12 | [node name="hit_fx" parent="." instance=ExtResource( 2 )] 13 | 14 | -------------------------------------------------------------------------------- /scenes/tileset_source/planet_f.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | [ext_resource path="res://scenes/tileset_source/planet_hit_fx.tscn" type="PackedScene" id=2] 5 | 6 | [node name="planet_c" type="Sprite"] 7 | z_index = 5 8 | texture = ExtResource( 1 ) 9 | region_enabled = true 10 | region_rect = Rect2( 384, 512, 256, 256 ) 11 | 12 | [node name="hit_fx" parent="." instance=ExtResource( 2 )] 13 | 14 | -------------------------------------------------------------------------------- /scenes/tileset_source/planet_g.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | [ext_resource path="res://scenes/tileset_source/planet_hit_fx.tscn" type="PackedScene" id=2] 5 | 6 | [node name="planet_b" type="Sprite"] 7 | z_index = 5 8 | texture = ExtResource( 1 ) 9 | region_enabled = true 10 | region_rect = Rect2( 640, 512, 256, 256 ) 11 | 12 | [node name="hit_fx" parent="." instance=ExtResource( 2 )] 13 | 14 | -------------------------------------------------------------------------------- /scenes/tileset_source/planet_h.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | [ext_resource path="res://scenes/tileset_source/planet_hit_fx.tscn" type="PackedScene" id=2] 5 | 6 | [node name="planet_c" type="Sprite"] 7 | z_index = 5 8 | texture = ExtResource( 1 ) 9 | region_enabled = true 10 | region_rect = Rect2( 0, 704, 384, 256 ) 11 | 12 | [node name="hit_fx" parent="." instance=ExtResource( 2 )] 13 | -------------------------------------------------------------------------------- /scenes/tileset_source/planet_hit_fx.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://scripts/animations/planet_hit_fx.gd" type="Script" id=1] 4 | [ext_resource path="res://scenes/Animations/planet_hit_inst.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://data/private/sounds/sfx/explosion/sfx_exp_planet_gb02.wav" type="AudioStream" id=3] 6 | 7 | [node name="planet_hit_fx" type="Node2D"] 8 | script = ExtResource( 1 ) 9 | 10 | [node name="Sprite" parent="." instance=ExtResource( 2 )] 11 | position = Vector2( 18.7704, 33.5592 ) 12 | 13 | [node name="Sprite2" parent="." instance=ExtResource( 2 )] 14 | position = Vector2( 22.752, 1.7064 ) 15 | 16 | [node name="Sprite3" parent="." instance=ExtResource( 2 )] 17 | position = Vector2( 2.84399, -22.1832 ) 18 | 19 | [node name="Sprite4" parent="." instance=ExtResource( 2 )] 20 | position = Vector2( -21.6144, 7.39439 ) 21 | 22 | [node name="Sprite5" parent="." instance=ExtResource( 2 )] 23 | position = Vector2( -18.7704, -22.1832 ) 24 | 25 | [node name="sfx" type="AudioStreamPlayer2D" parent="."] 26 | stream = ExtResource( 3 ) 27 | bus = "Sfx" 28 | 29 | -------------------------------------------------------------------------------- /scenes/tileset_source/power_amplifier.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="missile_launcher_blue" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 1408, 0, 128, 128 ) 10 | 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/probe.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=2] 5 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=3] 6 | 7 | [node name="probe_root" type="Node2D"] 8 | z_index = 900 9 | 10 | [node name="MovementAnimations" parent="." instance=ExtResource( 1 )] 11 | 12 | [node name="outline" type="Sprite" parent="."] 13 | texture = ExtResource( 2 ) 14 | modulate = Color( 1, 1, 1, 0 ) 15 | region_enabled = true 16 | region_rect = Rect2( 1664, 768, 128, 128 ) 17 | 18 | [node name="probe" type="Sprite" parent="."] 19 | z_index = 1 20 | texture = ExtResource( 2 ) 21 | region_enabled = true 22 | region_rect = Rect2( 1664, 256, 128, 128 ) 23 | 24 | [node name="hit_fx" parent="." instance=ExtResource( 3 )] 25 | z_index = 2 26 | region_override = Rect2( 1664, 256, 128, 128 ) 27 | 28 | -------------------------------------------------------------------------------- /scenes/tileset_source/probe_body.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="probe_body" type="Sprite"] 6 | z_index = 15 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 1664, 384, 128, 128 ) 10 | 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/railgun.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="laser_turret" type="Sprite"] 6 | z_index = 25 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 1152, 384, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/railgun_fx.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=2] 2 | 3 | [ext_resource path="res://scripts/animations/MissileFX2.gd" type="Script" id=1] 4 | [ext_resource path="res://scripts/animations/laser_vfx_test02.gd" type="Script" id=2] 5 | [ext_resource path="res://data/private/textures/visualfx/railgun_test.png" type="Texture" id=3] 6 | [ext_resource path="res://data/private/sounds/sfx/laser/laser3.wav" type="AudioStream" id=4] 7 | 8 | [node name="MissileFX2" type="Node2D"] 9 | position = Vector2( 0, 75.7018 ) 10 | z_index = 1000 11 | script = ExtResource( 1 ) 12 | ttl = 1.0 13 | speed = 2000.0 14 | rand_speed = Vector2( -350, 500 ) 15 | rand_offset_x = Vector2( -30, 30 ) 16 | rand_offset_y = Vector2( -30, 30 ) 17 | 18 | [node name="root" type="Node2D" parent="."] 19 | script = ExtResource( 2 ) 20 | 21 | [node name="Sprite" type="Sprite" parent="root"] 22 | rotation = 1.5708 23 | scale = Vector2( 1, 1e-05 ) 24 | texture = ExtResource( 3 ) 25 | centered = false 26 | offset = Vector2( -64, -128 ) 27 | 28 | [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] 29 | stream = ExtResource( 4 ) 30 | autoplay = true 31 | bus = "Sfx" 32 | -------------------------------------------------------------------------------- /scenes/tileset_source/remote_datajack.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="remote_datajack" type="Sprite"] 6 | z_index = 25 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 128, 1536, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/repair_kit.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="repair_kit" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 0, 1536, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/repair_nanobots.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="repair_nanobots" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 768, 128, 128, 128 ) 10 | 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/scanner.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="scanner" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 512, 128, 128, 128 ) 10 | 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/scout_hull.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="shuttle_body" type="Sprite"] 6 | z_index = 15 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 512, 384, 128, 128 ) 10 | 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/shield.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="shield" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 384, 128, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/shield_analyzer.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="shield_analyzer" type="Sprite"] 6 | z_index = 25 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 256, 1280, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/shield_battery.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="shield_battery" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 1920, 0, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/shield_bypass.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="shield_bypass" type="Sprite"] 6 | z_index = 25 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 128, 1280, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/solar_array.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="solar_array" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 0, 0, 128, 128 ) 10 | 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/spare_parts.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="spare_parts" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 1536, 128, 128, 128 ) 10 | 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/speed_boost.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="speed_boost" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 768, 384, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/sun.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | [ext_resource path="res://data/private/textures/sun_palette/blue-light.png" type="Texture" id=2] 5 | 6 | [sub_resource type="Shader" id=1] 7 | code = "shader_type canvas_item; 8 | 9 | uniform sampler2D palette; 10 | 11 | void fragment() { 12 | vec4 rgba = texture(TEXTURE, UV); 13 | vec4 final_color = texture(palette, vec2(rgba.r, rgba.g)); 14 | final_color.a = rgba.a; 15 | 16 | //COLOR = urgba; 17 | COLOR = final_color; 18 | }" 19 | 20 | [sub_resource type="ShaderMaterial" id=2] 21 | shader = SubResource( 1 ) 22 | shader_param/palette = ExtResource( 2 ) 23 | 24 | [node name="sun" type="Sprite"] 25 | material = SubResource( 2 ) 26 | texture = ExtResource( 1 ) 27 | region_enabled = true 28 | region_rect = Rect2( 0, 256, 384, 384 ) 29 | -------------------------------------------------------------------------------- /scenes/tileset_source/targeting_computer.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="targeting_computer" type="Sprite"] 6 | z_index = 25 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 0, 1280, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/tinfoil.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="tinfoil" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 384, 1536, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/torpedo.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="missile" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 1280, 0, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/torpedo_launcher.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="missile_launcher_blue" type="Sprite"] 6 | z_index = 25 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 1152, 0, 128, 128 ) 10 | 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/trade_icon.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="trade" type="Sprite"] 6 | z_index = 10 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 1792, 0, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/unknow.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="unknow" type="Sprite"] 6 | z_index = 2200 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 640, 128, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/unknow2.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="unknow2" type="Sprite"] 6 | z_index = 2200 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 1664, 128, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/uranium.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="uranium" type="Sprite"] 6 | z_index = 10 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 1024, 128, 128, 128 ) 10 | 11 | -------------------------------------------------------------------------------- /scenes/tileset_source/vorg_battleship.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scenes/sfx/Human_Ship_BG.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/sfx/Human_MoveSFX.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=4] 7 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=5] 8 | 9 | [node name="battleship_root" type="Node2D"] 10 | z_index = 900 11 | 12 | [node name="BG" parent="." instance=ExtResource( 1 )] 13 | 14 | [node name="MoveSFX" parent="." instance=ExtResource( 2 )] 15 | 16 | [node name="MovementAnimations" parent="." instance=ExtResource( 3 )] 17 | 18 | [node name="outline" type="Sprite" parent="."] 19 | modulate = Color( 1, 1, 1, 0 ) 20 | texture = ExtResource( 4 ) 21 | region_enabled = true 22 | region_rect = Rect2( 1539, 766, 122, 132 ) 23 | 24 | [node name="battleship" type="Sprite" parent="."] 25 | z_index = 1 26 | texture = ExtResource( 4 ) 27 | region_enabled = true 28 | region_rect = Rect2( 1536, 256, 128, 128 ) 29 | 30 | [node name="hit_fx" parent="." instance=ExtResource( 5 )] 31 | z_index = 2 32 | region_override = Rect2( 1536, 256, 128, 128 ) 33 | -------------------------------------------------------------------------------- /scenes/tileset_source/vorg_bomber.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scenes/sfx/Human_Ship_BG.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/sfx/Human_MoveSFX.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=4] 7 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=5] 8 | 9 | [node name="bomber_root" type="Node2D"] 10 | z_index = 900 11 | 12 | [node name="BG" parent="." instance=ExtResource( 1 )] 13 | 14 | [node name="MoveSFX" parent="." instance=ExtResource( 2 )] 15 | 16 | [node name="MovementAnimations" parent="." instance=ExtResource( 3 )] 17 | 18 | [node name="outline" type="Sprite" parent="."] 19 | modulate = Color( 1, 1, 1, 0 ) 20 | texture = ExtResource( 4 ) 21 | region_enabled = true 22 | region_rect = Rect2( 256, 1152, 128, 128 ) 23 | 24 | [node name="bomber" type="Sprite" parent="."] 25 | z_index = 1 26 | texture = ExtResource( 4 ) 27 | region_enabled = true 28 | region_rect = Rect2( 256, 1024, 128, 128 ) 29 | 30 | [node name="hit_fx" parent="." instance=ExtResource( 5 )] 31 | z_index = 2 32 | region_override = Rect2( 256, 1024, 128, 128 ) 33 | 34 | -------------------------------------------------------------------------------- /scenes/tileset_source/vorg_frigate.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scenes/sfx/Human_Ship_BG.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/sfx/Human_MoveSFX.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=4] 7 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=5] 8 | 9 | [node name="frigate_root" type="Node2D"] 10 | z_index = 900 11 | 12 | [node name="BG" parent="." instance=ExtResource( 1 )] 13 | 14 | [node name="MoveSFX" parent="." instance=ExtResource( 2 )] 15 | 16 | [node name="MovementAnimations" parent="." instance=ExtResource( 3 )] 17 | 18 | [node name="outline" type="Sprite" parent="."] 19 | modulate = Color( 1, 1, 1, 0 ) 20 | texture = ExtResource( 4 ) 21 | region_enabled = true 22 | region_rect = Rect2( 1152, 767, 128, 130 ) 23 | 24 | [node name="frigate" type="Sprite" parent="."] 25 | z_index = 1 26 | texture = ExtResource( 4 ) 27 | region_enabled = true 28 | region_rect = Rect2( 1152, 256, 128, 128 ) 29 | 30 | [node name="hit_fx" parent="." instance=ExtResource( 5 )] 31 | z_index = 2 32 | region_override = Rect2( 1152, 256, 128, 128 ) 33 | 34 | -------------------------------------------------------------------------------- /scenes/tileset_source/vorg_mothership.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scenes/sfx/Human_Ship_BG.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/sfx/Human_MoveSFX.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=4] 7 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=5] 8 | 9 | [node name="vorg_mothership" type="Node2D"] 10 | z_index = 900 11 | 12 | [node name="BG" parent="." instance=ExtResource( 1 )] 13 | 14 | [node name="MoveSFX" parent="." instance=ExtResource( 2 )] 15 | 16 | [node name="MovementAnimations" parent="." instance=ExtResource( 3 )] 17 | 18 | [node name="outline" type="Sprite" parent="."] 19 | modulate = Color( 1, 1, 1, 0 ) 20 | texture = ExtResource( 4 ) 21 | region_enabled = true 22 | region_rect = Rect2( 765, 1283, 136, 136 ) 23 | 24 | [node name="battleship" type="Sprite" parent="."] 25 | z_index = 1 26 | texture = ExtResource( 4 ) 27 | region_enabled = true 28 | region_rect = Rect2( 512, 1280, 128, 128 ) 29 | 30 | [node name="hit_fx" parent="." instance=ExtResource( 5 )] 31 | z_index = 2 32 | region_override = Rect2( 512, 1280, 128, 128 ) 33 | -------------------------------------------------------------------------------- /scenes/tileset_source/vorg_pylon.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scenes/sfx/Human_Ship_BG.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/sfx/Human_MoveSFX.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=4] 7 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=5] 8 | 9 | [node name="vorg_pylon" type="Node2D"] 10 | z_index = 900 11 | 12 | [node name="BG" parent="." instance=ExtResource( 1 )] 13 | 14 | [node name="MoveSFX" parent="." instance=ExtResource( 2 )] 15 | 16 | [node name="MovementAnimations" parent="." instance=ExtResource( 3 )] 17 | 18 | [node name="outline" type="Sprite" parent="."] 19 | modulate = Color( 1, 1, 1, 0 ) 20 | texture = ExtResource( 4 ) 21 | region_enabled = true 22 | region_rect = Rect2( 960, 1280, 128, 128 ) 23 | 24 | [node name="battleship" type="Sprite" parent="."] 25 | z_index = 1 26 | texture = ExtResource( 4 ) 27 | region_enabled = true 28 | region_rect = Rect2( 384, 1280, 128, 128 ) 29 | 30 | [node name="hit_fx" parent="." instance=ExtResource( 5 )] 31 | z_index = 2 32 | region_override = Rect2( 384, 1280, 128, 128 ) 33 | -------------------------------------------------------------------------------- /scenes/tileset_source/vorg_scout.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://scenes/sfx/Human_Ship_BG.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scenes/sfx/Human_MoveSFX.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://scenes/Animations/ShipAnimations2.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=4] 7 | [ext_resource path="res://scenes/Animations/ship_base_hit_fx.tscn" type="PackedScene" id=5] 8 | 9 | [node name="scout_root" type="Node2D"] 10 | z_index = 900 11 | 12 | [node name="BG" parent="." instance=ExtResource( 1 )] 13 | 14 | [node name="MoveSFX" parent="." instance=ExtResource( 2 )] 15 | 16 | [node name="MovementAnimations" parent="." instance=ExtResource( 3 )] 17 | 18 | [node name="outline" type="Sprite" parent="."] 19 | modulate = Color( 1, 1, 1, 0 ) 20 | texture = ExtResource( 4 ) 21 | region_enabled = true 22 | region_rect = Rect2( 768, 768, 128, 128 ) 23 | 24 | [node name="scout" type="Sprite" parent="."] 25 | z_index = 1 26 | texture = ExtResource( 4 ) 27 | region_enabled = true 28 | region_rect = Rect2( 768, 256, 128, 128 ) 29 | 30 | [node name="hit_fx" parent="." instance=ExtResource( 5 )] 31 | z_index = 2 32 | region_override = Rect2( 768, 256, 128, 128 ) 33 | 34 | -------------------------------------------------------------------------------- /scenes/tileset_source/vulnerability_scanner.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="vulnerability_scanner" type="Sprite"] 6 | z_index = 20 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 512, 1536, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/weapon_bypass.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="weapon_bypass" type="Sprite"] 6 | z_index = 25 7 | texture = ExtResource( 1 ) 8 | region_enabled = true 9 | region_rect = Rect2( 256, 1408, 128, 128 ) 10 | -------------------------------------------------------------------------------- /scenes/tileset_source/wormhole_old.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/space-sprite.png" type="Texture" id=1] 4 | 5 | [node name="wormhole" type="Sprite"] 6 | texture = ExtResource( 1 ) 7 | region_enabled = true 8 | region_rect = Rect2( 1920, 128, 128, 128 ) 9 | 10 | -------------------------------------------------------------------------------- /scenes/warp_trail_test.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=2] 2 | 3 | [ext_resource path="res://data/private/textures/tests/ray.png" type="Texture" id=1] 4 | [ext_resource path="res://scripts/loading_screen.gd" type="Script" id=2] 5 | 6 | [sub_resource type="Curve" id=1] 7 | min_value = -200.0 8 | max_value = 200.0 9 | _data = [ Vector2( 0, -4.84 ), 0.0, 0.0, 0, 0, Vector2( 1, 200 ), 552.411, 0.0, 0, 0 ] 10 | 11 | [sub_resource type="Curve" id=2] 12 | _data = [ Vector2( 0, 0 ), 0.0, 0.144624, 0, 0, Vector2( 0.266627, 0.0875 ), 1.58468, 1.58468, 0, 0, Vector2( 1, 1 ), 2.88548, 0.0, 0, 0 ] 13 | 14 | [node name="Starfield" type="Node2D"] 15 | position = Vector2( 950, 540 ) 16 | script = ExtResource( 2 ) 17 | 18 | [node name="Particles2D" type="CPUParticles2D" parent="."] 19 | amount = 900 20 | lifetime = 7.0 21 | preprocess = 5.0 22 | speed_scale = 3.0 23 | texture = ExtResource( 1 ) 24 | flag_align_y = true 25 | spread = 180.0 26 | gravity = Vector2( 0, 0 ) 27 | initial_velocity = 5.0 28 | initial_velocity_random = 0.2 29 | angular_velocity = 1.86397e+09 30 | linear_accel = 27.14 31 | linear_accel_curve = SubResource( 1 ) 32 | scale_amount = 3.0 33 | scale_amount_curve = SubResource( 2 ) 34 | -------------------------------------------------------------------------------- /scripts/BG_Root.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | export(int) var stream_tile_radius = 5 4 | 5 | func _ready(): 6 | #BehaviorEvents.connect("OnLevelLoaded", self, "OnLevelLoaded_Callback") 7 | OnLevelLoaded_Callback() 8 | 9 | 10 | func OnLevelLoaded_Callback(): 11 | if Globals.LevelLoaderRef != null: 12 | var player_node = Globals.LevelLoaderRef.objByType["player"][0] 13 | self.position = player_node.position # set origin around player 14 | 15 | var cur_x = 0 16 | var cur_y = 0 17 | var dx = 0 18 | var dy = -1 19 | var star_child = load("res://scenes/BG_Child.tscn") 20 | 21 | for i in range(stream_tile_radius * stream_tile_radius): 22 | var pos = Vector2((cur_x*256), (cur_y*256)) 23 | var tile 24 | if Globals.LevelLoaderRef == null: 25 | tile = Vector2(cur_x / 2.0, cur_y / 2.0) 26 | else: 27 | tile = Globals.LevelLoaderRef.World_to_Tile(to_global(pos)) 28 | 29 | var n = star_child.instance() 30 | n.random_seed = int(tile.x) & ~int(tile.y) 31 | n.Refresh() 32 | yield(get_tree(), "idle_frame") 33 | #print("add_child (", i, "/", stream_tile_radius * stream_tile_radius, ") :", n) 34 | self.add_child(n) 35 | n.position = pos 36 | if cur_x == cur_y or (cur_x < 0 and cur_x == -cur_y) or (cur_x > 0 and cur_x == 1-cur_y): 37 | var tmp = dx 38 | dx = -dy 39 | dy = tmp 40 | cur_x = cur_x + dx 41 | cur_y = cur_y + dy 42 | -------------------------------------------------------------------------------- /scripts/BorderData.gd: -------------------------------------------------------------------------------- 1 | extends Sprite 2 | class_name BorderData 3 | 4 | export(float) var frequency := 0.1 5 | export(Vector2) var max_offset := Vector2(16,16) 6 | -------------------------------------------------------------------------------- /scripts/DEBUG.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | # class member variables go here, for example: 4 | # var a = 2 5 | # var b = "textvar" 6 | 7 | func _ready(): 8 | # Called when the node is added to the scene for the first time. 9 | # Initialization here 10 | if self.visible: 11 | var l = Globals.LevelLoaderRef 12 | var r = get_node("/root/Root/GameTiles") 13 | var scene = load("res://scenes/Debug.tscn") 14 | for x in range(l.levelSize.x): 15 | for y in range(l.levelSize.y): 16 | var world_pos = l.Tile_to_World(Vector2(x,y)) 17 | var n = scene.instance() 18 | n.position = world_pos 19 | n.text = str(l.World_to_Tile(world_pos).x) + ", " + str(l.World_to_Tile(world_pos).y) 20 | r.call_deferred("add_child", n) 21 | 22 | 23 | #func _process(delta): 24 | # # Called every frame. Delta is time since last frame. 25 | # # Update game logic here. 26 | # pass 27 | -------------------------------------------------------------------------------- /scripts/GUI/Audio/ToggleBtnAudio.gd: -------------------------------------------------------------------------------- 1 | extends Button 2 | 3 | var _hover := AudioStreamPlayer.new() 4 | var _click := AudioStreamPlayer.new() 5 | 6 | func _ready(): 7 | self.connect("mouse_entered", self, "mouse_entered_Callback") 8 | self.connect("pressed", self, "pressed_Callback") 9 | _hover.stream = preload("res://data/private/sounds/sfx/btn/hover2.wav") 10 | #_hover.volume_db = -20.0 11 | _hover.bus = "Sfx" 12 | self.call_deferred("add_child", _hover) 13 | 14 | _click.stream = preload("res://data/private/sounds/sfx/btn/click.wav") 15 | _click.bus = "Sfx" 16 | self.call_deferred("add_child", _click) 17 | 18 | func mouse_entered_Callback(): 19 | _hover.play() 20 | 21 | func pressed_Callback(): 22 | _click.play() 23 | 24 | -------------------------------------------------------------------------------- /scripts/GUI/Credits.gd: -------------------------------------------------------------------------------- 1 | extends "res://scripts/GUI/GUILayoutBase.gd" 2 | 3 | func _ready(): 4 | get_node("base").connect("OnOkPressed", self, "Ok_Callback") 5 | 6 | 7 | func Ok_Callback(): 8 | get_node("base").disabled = true 9 | BehaviorEvents.emit_signal("OnPopGUI") 10 | 11 | 12 | func Init(init_param): 13 | get_node("base").disabled = false 14 | 15 | -------------------------------------------------------------------------------- /scripts/GUI/Debug/FPSCounter.gd: -------------------------------------------------------------------------------- 1 | extends "res://scripts/GUI/GUILayoutBase.gd" 2 | 3 | onready var _counter : Label = get_node("Label") 4 | 5 | func _ready(): 6 | self.visible = PermSave.get_attrib("settings.display_fps") 7 | 8 | func _process(delta): 9 | var cur_fps : float = Engine.get_frames_per_second() 10 | _counter.text = "FPS : %.f" % cur_fps 11 | -------------------------------------------------------------------------------- /scripts/GUI/DragDropCatcher.gd: -------------------------------------------------------------------------------- 1 | extends "res://scripts/GUI/Audio/ToggleBtnAudio.gd" 2 | 3 | export(NodePath) var forward_to = null 4 | 5 | var _node : Node = null 6 | 7 | func _ready(): 8 | if forward_to != null: 9 | _node = get_node(forward_to) 10 | #._ready() 11 | 12 | func get_drag_data(position): 13 | if _node == null: 14 | return null 15 | return _node.call("get_drag_data", position) 16 | 17 | 18 | func can_drop_data(position, data): 19 | if _node == null: 20 | return false 21 | return _node.call("can_drop_data", position, data) 22 | 23 | 24 | func drop_data(position, data): 25 | if _node == null: 26 | return 27 | _node.call("drop_data", position, data) 28 | 29 | func UpdateSelection(): 30 | _node.call("UpdateSelection") 31 | -------------------------------------------------------------------------------- /scripts/GUI/DragDropCrafting.gd: -------------------------------------------------------------------------------- 1 | extends ItemList 2 | 3 | signal OnDropCrafting(origin, dest) 4 | 5 | func _ready(): 6 | # Called when the node is added to the scene for the first time. 7 | # Initialization here 8 | pass 9 | 10 | func get_drag_data(position): 11 | if get_selected_items().size() <= 0: 12 | return 13 | 14 | var selected_text = self.get_item_text(get_selected_items()[0]) 15 | var node = Label.new() 16 | node.text = selected_text 17 | node.set_name("drag_label") 18 | set_drag_preview(node) 19 | return self 20 | 21 | func can_drop_data(position, data): 22 | if (data.name == "Using" or data.name == "Need") and data.name != self.name: 23 | return true 24 | 25 | return false 26 | 27 | func drop_data(position, data): 28 | emit_signal("OnDropCrafting", data, self) -------------------------------------------------------------------------------- /scripts/GUI/DragDropTransfer.gd: -------------------------------------------------------------------------------- 1 | extends Button 2 | 3 | var MyData = {} 4 | 5 | func _ready(): 6 | # Called when the node is added to the scene for the first time. 7 | # Initialization here 8 | pass 9 | 10 | func get_drag_data(position): 11 | set_drag_preview(self.duplicate()) 12 | return MyData 13 | 14 | func can_drop_data(position, data): 15 | if not "origin" in MyData: 16 | return false 17 | 18 | return MyData.origin.choice_can_drop_data(self, data) 19 | 20 | func drop_data(position, data): 21 | MyData.origin.choice_drop_data(self, data) -------------------------------------------------------------------------------- /scripts/GUI/GUILayoutBase.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | export(bool) var Transition = true 4 | export(NodePath) var VFXRoot = "." 5 | 6 | onready var _vfx_root = get_node(VFXRoot) 7 | 8 | var VFXCopy : Node = null 9 | 10 | func GetVFXRoot(): 11 | return _vfx_root 12 | 13 | func _ready(): 14 | BehaviorEvents.emit_signal("OnGUILoaded", self.name, self) 15 | self.set_process_input(false) 16 | self.set_process_unhandled_input(false) 17 | self.mouse_filter = Control.MOUSE_FILTER_IGNORE 18 | 19 | # overridable function for loading dialog content 20 | func Init(init_param): 21 | pass 22 | 23 | # UIManager will call this when something else is pushed on top of this UI 24 | func OnFocusLost(): 25 | pass 26 | 27 | # UIManager will call this when whatever was on top of this UI is poped 28 | func OnFocusGained(): 29 | pass 30 | -------------------------------------------------------------------------------- /scripts/GUI/HackTarget.gd: -------------------------------------------------------------------------------- 1 | extends "res://scripts/GUI/GUILayoutBase.gd" 2 | 3 | var _callback_obj = null 4 | var _callback_method = "" 5 | 6 | onready var _base = get_node("base") 7 | onready var _list = get_node("base/TargetList") 8 | 9 | func _ready(): 10 | _base.connect("OnCancelPressed", self, "Cancel_Callback") 11 | _list.connect("OnSelectionChanged", self, "SelectionChanged_Callback") 12 | 13 | 14 | func Cancel_Callback(): 15 | BehaviorEvents.emit_signal("OnPopGUI") 16 | _base.disabled = true 17 | 18 | # reset content or we might end up with dangling references 19 | _list.Content = [] 20 | 21 | func SelectionChanged_Callback(): 22 | if _callback_obj == null: 23 | return 24 | 25 | var selected_targets = [] 26 | for data in _list.Content: 27 | if data.selected == true: 28 | selected_targets.push_back(data) 29 | if selected_targets.size() > 0: 30 | BehaviorEvents.emit_signal("OnPopGUI") 31 | _base.disabled = true 32 | _callback_obj.call(_callback_method, selected_targets) 33 | # reset content or we might end up with dangling references 34 | _list.Content = [] 35 | 36 | func Init(init_param): 37 | _base.disabled = false 38 | var targets = init_param["targets"] 39 | _callback_obj = init_param["callback_object"] 40 | _callback_method = init_param["callback_method"] 41 | 42 | _list.Content = targets 43 | 44 | #get_node("base").Content = result_string 45 | 46 | #func _process(delta): 47 | # # Called every frame. Delta is time since last frame. 48 | # # Update game logic here. 49 | # pass 50 | -------------------------------------------------------------------------------- /scripts/GUI/HowManyDiag.gd: -------------------------------------------------------------------------------- 1 | extends "res://scripts/GUI/GUILayoutBase.gd" 2 | 3 | var _callback_obj = null 4 | var _callback_method = "" 5 | 6 | onready var _selector = get_node("base/Selector") 7 | onready var _info = get_node("base/Info") 8 | onready var _base = get_node("base") 9 | 10 | func _ready(): 11 | _base.connect("OnOkPressed", self, "Ok_Callback") 12 | _base.connect("OnCancelPressed", self, "Cancel_Callback") 13 | 14 | func Ok_Callback(): 15 | BehaviorEvents.emit_signal("OnPopGUI") 16 | _base.disabled = true # prevent multi-click that would pop unwanted GUI 17 | 18 | if _callback_obj == null: 19 | return 20 | 21 | var val = _selector.value 22 | _callback_obj.call(_callback_method, val) 23 | 24 | func Cancel_Callback(): 25 | BehaviorEvents.emit_signal("OnPopGUI") 26 | _base.disabled = true 27 | 28 | func Init(init_param): 29 | _base.disabled = false 30 | _callback_obj = init_param["callback_object"] 31 | _callback_method = init_param["callback_method"] 32 | 33 | _selector.min_value = init_param["min_value"] 34 | _selector.max_value = init_param["max_value"] 35 | _selector.value = _selector.max_value 36 | 37 | _info.bbcode_text = "[center]" + str(_selector.value) + " / " + str(_selector.max_value) + "[/center]" 38 | 39 | 40 | func _on_Selector_value_changed(value): 41 | var max_v = _selector.max_value 42 | _info.bbcode_text = "[center]" + str(value) + " / " + str(max_v) + "[/center]" 43 | -------------------------------------------------------------------------------- /scripts/GUI/InputConsumer.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | # Declare member variables here. Examples: 4 | # var a = 2 5 | # var b = "text" 6 | 7 | # Called when the node enters the scene tree for the first time. 8 | func _ready(): 9 | pass # Replace with function body. 10 | 11 | func _unhandled_input(event): 12 | if self.get_parent().visible == false: 13 | return 14 | 15 | get_tree().set_input_as_handled() 16 | ShortcutManager._unhandled_input(event) 17 | -------------------------------------------------------------------------------- /scripts/GUI/ItemList/CargoSelectableRow.gd: -------------------------------------------------------------------------------- 1 | extends "res://scripts/GUI/ItemList/DefaultSelectableRow.gd" 2 | 3 | func set_row_data(data): 4 | get_node("HBoxContainer/RichTextLabel").bbcode_text = Globals.mytr(data.name_id) 5 | _metadata = data 6 | if _metadata.group != null: 7 | checkbox.group = _metadata.group 8 | -------------------------------------------------------------------------------- /scripts/GUI/ItemList/ChooseTargetRow.gd: -------------------------------------------------------------------------------- 1 | extends "res://scripts/GUI/ItemList/DefaultRow.gd" 2 | 3 | export(Theme) var normal_theme = preload("res://data/theme/default_ui_text.tres") 4 | 5 | onready var _toggle = get_node("Toggle") 6 | 7 | # data {"name_id":"Missile', "icon": {"texture":, "region":[x,y,w,h]}} 8 | func set_row_data(data): 9 | _metadata = data 10 | if _toggle == null: 11 | return 12 | 13 | if _metadata.group != null: 14 | _toggle.group = _metadata.group 15 | 16 | var icon_path : String = Globals.get_data(data, "icon.texture", "") 17 | if icon_path != "": 18 | icon_path = Globals.clean_path(icon_path) 19 | var icon_region : Array = Globals.get_data(data, "icon.region", []) 20 | var t := AtlasTexture.new() 21 | t.atlas = load(icon_path) 22 | if icon_region.size() > 0: 23 | t.region = Rect2(icon_region[0], icon_region[1], icon_region[2], icon_region[3]) 24 | get_node("HBoxContainer/Wrapper/TextureRect").texture = t 25 | else: 26 | get_node("HBoxContainer/Wrapper/TextureRect").texture = null 27 | 28 | get_node("HBoxContainer/Name").text = Globals.mytr(data.name_id) 29 | 30 | 31 | func get_row_data(): 32 | _metadata["selected"] = _toggle.pressed 33 | return _metadata 34 | 35 | func _ready(): 36 | _toggle.connect("pressed", self, "pressed_callback") 37 | if _metadata != null: 38 | set_row_data(_metadata) 39 | 40 | func pressed_callback(): 41 | _metadata.origin.bubble_selection_changed() 42 | 43 | -------------------------------------------------------------------------------- /scripts/GUI/ItemList/CraftNeedRow.gd: -------------------------------------------------------------------------------- 1 | extends "res://scripts/GUI/ItemList/DefaultRow.gd" 2 | 3 | # {"color":"red", "src":"data/json/bleh.json", "type":"optional", "count":1, "missing":false, "dragdrop_id":"Using"} 4 | func set_row_data(data): 5 | var bbcode_start = "" 6 | var bbcode_end = "" 7 | var count_str = "" 8 | var main_text = "" 9 | var missing_text = "" 10 | if "color" in data: 11 | bbcode_start += "[color=" + data.color + "]" 12 | bbcode_end += "[/color]" 13 | if "count" in data and data.count > 1: 14 | count_str += str(data.count) + "x " 15 | if "type" in data: 16 | main_text = data.type 17 | elif "src" in data: 18 | var d = Globals.LevelLoaderRef.LoadJSON(data.src) 19 | main_text += Globals.mytr(d.name_id) 20 | if "missing" in data and data.missing == true: 21 | self.disabled = true 22 | missing_text += Globals.mytr("Missing ") 23 | get_node("HBoxContainer/RichTextLabel").bbcode_text = bbcode_start + missing_text + count_str + main_text + bbcode_end 24 | _metadata = data 25 | _metadata["self"] = self 26 | 27 | func get_drag_data(position): 28 | if "missing" in _metadata and _metadata.missing == true: 29 | return null 30 | 31 | return .get_drag_data(position) 32 | -------------------------------------------------------------------------------- /scripts/GUI/ItemList/CrewRow.gd: -------------------------------------------------------------------------------- 1 | extends "res://scripts/GUI/ItemList/DefaultRow.gd" 2 | 3 | onready var _title = get_node("HBoxContainer/CrewTitle") 4 | onready var _name = get_node("HBoxContainer/CrewName") 5 | onready var _status = get_node("HBoxContainer/CrewStatus") 6 | onready var _log = get_node("HBoxContainer/CrewLog") 7 | 8 | func set_row_data(data): 9 | _metadata = data 10 | _metadata["self"] = self 11 | 12 | # Have to wait for the OnReady 13 | if _name == null: 14 | return 15 | 16 | _title.text = Globals.mytr(data["title"]) 17 | _name.text = Globals.mytr(data["name"]) 18 | _status.text = Globals.mytr(data["status"]) 19 | var log_text = Globals.mytr(data["log"]) 20 | var log_fmt = [] 21 | if data.has("log_fmt"): 22 | log_fmt = data["log_fmt"] 23 | _log.text = Globals.mytr(log_text, log_fmt) 24 | 25 | var style := StyleBoxFlat.new() 26 | style.bg_color = Color(data["color"][0],data["color"][1],data["color"][2]) 27 | get_node("BG").set('custom_styles/panel', style) 28 | 29 | func _ready(): 30 | if _metadata != null: 31 | set_row_data(_metadata) 32 | -------------------------------------------------------------------------------- /scripts/GUI/ItemList/DefaultRow.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | #var RowData setget set_row_data, get_row_data 4 | 5 | var _metadata = null 6 | 7 | func set_row_data(data): 8 | get_node("HBoxContainer/RichTextLabel").bbcode_text = data.text 9 | _metadata = data 10 | 11 | 12 | func get_row_data(): 13 | return _metadata 14 | 15 | 16 | func UpdateContent(data): 17 | pass 18 | 19 | func get_drag_data(position): 20 | if not "dragdrop_id" in _metadata or _metadata.dragdrop_id == "": 21 | return null 22 | set_drag_preview(self.duplicate()) 23 | return _metadata 24 | 25 | 26 | func can_drop_data(position, data): 27 | if not "dragdrop_id" in data or data.dragdrop_id == "": 28 | return false 29 | return data.dragdrop_id == _metadata.dragdrop_id and data["self"].get_parent() != self.get_parent() 30 | 31 | 32 | func drop_data(position, data): 33 | _metadata.origin.bubble_drop(data, _metadata) 34 | -------------------------------------------------------------------------------- /scripts/GUI/ItemList/DefaultSelectableRow.gd: -------------------------------------------------------------------------------- 1 | extends "res://scripts/GUI/ItemList/DefaultRow.gd" 2 | 3 | onready var checkbox = get_node("HBoxContainer/CheckBox") 4 | 5 | func set_row_data(data): 6 | get_node("HBoxContainer/RichTextLabel").bbcode_text = data.text 7 | _metadata = data 8 | if _metadata.group != null: 9 | checkbox.group = _metadata.group 10 | 11 | func get_row_data(): 12 | _metadata["selected"] = checkbox.pressed 13 | return _metadata 14 | 15 | func _ready(): 16 | connect("pressed", self, "pressed_callback") 17 | 18 | func pressed_callback(): 19 | if checkbox.group == null: 20 | checkbox.pressed = !checkbox.pressed 21 | else: 22 | checkbox.pressed = true 23 | -------------------------------------------------------------------------------- /scripts/GUI/ItemList/MountSelectableRow.gd: -------------------------------------------------------------------------------- 1 | extends "res://scripts/GUI/ItemList/DefaultSelectableRow.gd" 2 | 3 | func set_row_data(data): 4 | get_node("HBoxContainer/RichTextLabel").bbcode_text = Globals.mytr(data.name_id) 5 | _metadata = data 6 | if _metadata.group != null: 7 | checkbox.group = _metadata.group 8 | -------------------------------------------------------------------------------- /scripts/GUI/MainMenuHUD.gd: -------------------------------------------------------------------------------- 1 | extends "res://scripts/GUI/GUILayoutBase.gd" 2 | 3 | func Init(params): 4 | pass 5 | -------------------------------------------------------------------------------- /scripts/GUI/Options.gd: -------------------------------------------------------------------------------- 1 | extends "res://scripts/GUI/GUILayoutBase.gd" 2 | 3 | onready var _base = get_node("base") 4 | 5 | # Called when the node enters the scene tree for the first time. 6 | func _ready(): 7 | _base.connect("OnOkPressed", self, "Ok_Callback") 8 | _base.connect("OnCancelPressed", self, "Ok_Callback") 9 | 10 | 11 | func Init(init_param): 12 | _base.disabled = false 13 | 14 | 15 | func Ok_Callback(): 16 | BehaviorEvents.emit_signal("OnPopGUI") 17 | _base.disabled = true 18 | 19 | func _on_Save_pressed(): 20 | Globals.LevelLoaderRef.SaveState(Globals.LevelLoaderRef.GetCurrentLevelData()) 21 | BehaviorEvents.emit_signal("OnLogLine", "Game saved") 22 | 23 | 24 | func _on_Suicide_pressed(): 25 | BehaviorEvents.emit_signal("OnPushGUI", "ValidateDiag", {"callback_object":self, "callback_method":"On_Suicide_Confirmed_Callback", "custom_text":"CONFIRM delete save"}) 26 | 27 | 28 | func _on_SaveAndQuit_pressed(): 29 | Globals.LevelLoaderRef.SaveStateAndQuit(Globals.LevelLoaderRef.GetCurrentLevelData()) 30 | 31 | func On_Suicide_Confirmed_Callback(param): 32 | BehaviorEvents.emit_signal("OnPopGUI") 33 | BehaviorEvents.emit_signal("OnPlayerDeath", Globals.get_first_player()) 34 | 35 | func _on_Settings_pressed(): 36 | BehaviorEvents.emit_signal("OnPushGUI", "Settings", {}) 37 | 38 | 39 | func _on_Help_pressed(): 40 | BehaviorEvents.emit_signal("OnPushGUI", "Tutorial", {}) 41 | -------------------------------------------------------------------------------- /scripts/GUI/PopupScreenBlock.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | 4 | func _gui_input(event): 5 | if self.visible == true and event.is_action_released("touch"): 6 | get_parent().Pressed_Close_Callback() 7 | get_tree().set_input_as_handled() 8 | 9 | func _ready(): 10 | # Called when the node is added to the scene for the first time. 11 | # Initialization here 12 | pass 13 | -------------------------------------------------------------------------------- /scripts/GUI/ScrollListContainer.gd: -------------------------------------------------------------------------------- 1 | extends ScrollContainer 2 | 3 | var content = [] setget set_content, get_content 4 | 5 | var row_ref = null 6 | 7 | func _ready(): 8 | row_ref = get_node("List/Row") 9 | 10 | func get_content(): 11 | var result = [] 12 | for d in content: 13 | var inside = {} 14 | inside["key"] = d.key 15 | if "index" in d: 16 | inside["index"] = d.index 17 | inside["name_id"] = d.name_id 18 | inside["checked"] = d.obj.get_node("Choice").pressed 19 | result.push_back(inside) 20 | return result 21 | 22 | func set_content(val): 23 | for d in content: 24 | d.obj.get_parent().remove_child(d.obj) 25 | d.obj.queue_free() 26 | content.clear() 27 | for v in val: 28 | var copy = row_ref.duplicate() 29 | copy.visible = true 30 | row_ref.get_parent().add_child(copy) 31 | if "index" in v: 32 | content.push_back({"obj": copy, "key": v.key, "name_id":v.name_id, "index":v.index}) 33 | else: 34 | content.push_back({"obj": copy, "name_id":v.name_id, "key": v.key}) 35 | copy.get_node("Choice/Name").bbcode_text = Globals.mytr(v.name_id) 36 | 37 | #func _process(delta): 38 | # # Called every frame. Delta is time since last frame. 39 | # # Update game logic here. 40 | # pass 41 | -------------------------------------------------------------------------------- /scripts/GUI/TargettingHUD.gd: -------------------------------------------------------------------------------- 1 | extends "res://scripts/GUI/GUILayoutBase.gd" 2 | 3 | var _default_info_text : String = "" 4 | onready var _info = get_node("Info") 5 | onready var _skip = get_node("Skip") 6 | 7 | signal skip_pressed() 8 | signal cancel_pressed() 9 | 10 | func _ready(): 11 | _default_info_text = _info.bbcode_text 12 | 13 | func Init(init_param): 14 | if init_param != null and "info_text" in init_param: 15 | _info.bbcode_text = init_param.info_text 16 | else: 17 | _info.bbcode_text = Globals.mytr(_default_info_text) 18 | 19 | if init_param != null and "show_skip" in init_param: 20 | _skip.visible = init_param.show_skip 21 | 22 | func _on_Skip_pressed(): 23 | emit_signal("skip_pressed") 24 | 25 | 26 | func _on_Cancel_pressed(): 27 | emit_signal("cancel_pressed") 28 | -------------------------------------------------------------------------------- /scripts/GUI/TransitionContainer.gd: -------------------------------------------------------------------------------- 1 | extends ViewportContainer 2 | 3 | 4 | onready var _viewport = get_node("Viewport") 5 | 6 | 7 | # Called when the node enters the scene tree for the first time. 8 | func _ready(): 9 | self.connect("resized", self, "on_size_changed") 10 | 11 | 12 | func on_size_changed(): 13 | var new_size = self.rect_size 14 | #print("Viewport Resized : " + str(new_size)) 15 | _viewport.size = new_size 16 | -------------------------------------------------------------------------------- /scripts/GUI/TutoPrompt.gd: -------------------------------------------------------------------------------- 1 | extends "res://scripts/GUI/GUILayoutBase.gd" 2 | 3 | onready var _text : RichTextLabel = get_node("base/Content") 4 | onready var _title : MyWindow = get_node("base") 5 | 6 | var _callback_obj : Node = null 7 | var _callback_method := "" 8 | 9 | func _ready(): 10 | get_node("base").connect("OnOkPressed", self, "Ok_Callback") 11 | 12 | 13 | func Ok_Callback(): 14 | if _callback_obj != null: 15 | _callback_obj.call(_callback_method) 16 | BehaviorEvents.emit_signal("OnPopGUI") 17 | get_node("base").disabled = true 18 | 19 | 20 | func Init(init_param): 21 | var base = get_node("base") 22 | base.disabled = false 23 | var text_fmt = [] 24 | if "text_fmt" in init_param: 25 | text_fmt = init_param.text_fmt 26 | _text.bbcode_text = Globals.mytr(init_param.text, text_fmt) 27 | var title_fmt : Array = [] 28 | if "title_fmt" in init_param: 29 | title_fmt = init_param.title_fmt 30 | _title.title = Globals.mytr(init_param.title, title_fmt) 31 | if "callback_object" in init_param: 32 | _callback_obj = init_param.callback_object 33 | _callback_method = init_param.callback_method 34 | 35 | var desired_width : int = _text.bbcode_text.length() * 0.72258 + 194.0# arbitrary relation 36 | desired_width = clamp(desired_width, 200, 500) 37 | var desired_height : int = desired_width * (224.0 / 436.0) # arbitrary aspect ratio 38 | base.margin_top = -desired_height 39 | base.margin_bottom = desired_height 40 | base.margin_left = -desired_width 41 | base.margin_right = desired_width 42 | 43 | 44 | -------------------------------------------------------------------------------- /scripts/GUI/Tutorial.gd: -------------------------------------------------------------------------------- 1 | extends "res://scripts/GUI/GUILayoutBase.gd" 2 | 3 | export(NodePath) var DefaultLang = "base/en" 4 | 5 | onready var _base = get_node("base") 6 | onready var _default_lang = get_node(DefaultLang) 7 | 8 | func _ready(): 9 | _base.connect("OnOkPressed", self, "Ok_Callback") 10 | 11 | 12 | func Ok_Callback(): 13 | BehaviorEvents.emit_signal("OnPopGUI") 14 | _base.disabled = true 15 | 16 | 17 | func Init(init_param): 18 | _base.disabled = false 19 | 20 | var locale := TranslationServer.get_locale() 21 | locale = locale.split("_")[0] 22 | var contents : Array = get_tree().get_nodes_in_group("Tuto_Lang") 23 | var found := false 24 | for content in contents: 25 | if locale == content.name: 26 | found = true 27 | content.visible = true 28 | else: 29 | content.visible = false 30 | 31 | if found == false: 32 | _default_lang.visible = true 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /scripts/GUI/WelcomeScreen.gd: -------------------------------------------------------------------------------- 1 | extends "res://scripts/GUI/GUILayoutBase.gd" 2 | 3 | export(NodePath) var DefaultLang = "base/en" 4 | 5 | func _ready(): 6 | get_node("base").connect("OnOkPressed", self, "Ok_Callback") 7 | 8 | 9 | func Ok_Callback(): 10 | Globals.TutorialRef.emit_signal("StartTuto") 11 | BehaviorEvents.emit_signal("OnPopGUI") 12 | get_node("base").disabled = true 13 | 14 | 15 | func Init(init_param): 16 | get_node("base").disabled = false 17 | var player_name = init_param["player_name"] 18 | get_node("base").title = Globals.mytr("Welcome %s...", [player_name]) 19 | 20 | var locale := TranslationServer.get_locale() 21 | locale = locale.split("_")[0] 22 | var contents : Array = get_tree().get_nodes_in_group("welcome_lang") 23 | var found := false 24 | for content in contents: 25 | if locale == content.name: 26 | found = true 27 | content.visible = true 28 | else: 29 | content.visible = false 30 | 31 | if found == false: 32 | get_node(DefaultLang).visible = true 33 | 34 | -------------------------------------------------------------------------------- /scripts/SpaceBG.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | 4 | export(NodePath) var cam_node; 5 | 6 | onready var _cam = get_node(cam_node) 7 | 8 | func _ready(): 9 | pass # Replace with function body. 10 | 11 | 12 | # Called every frame. 'delta' is the elapsed time since the previous frame. 13 | func _process(delta): 14 | if _cam == null: 15 | return 16 | 17 | get_node("Sprite").material.set_shader_param("camera_offset", _cam.position) 18 | -------------------------------------------------------------------------------- /scripts/SunGrading.gd: -------------------------------------------------------------------------------- 1 | extends ColorRect 2 | 3 | func _ready(): 4 | BehaviorEvents.connect("OnObjectLoaded", self, "OnObjectLoaded_Callback") 5 | 6 | func OnObjectLoaded_Callback(obj): 7 | if !obj.get_attrib("type") == "sun": 8 | return 9 | 10 | # defered because SpriteLoader will make the decision in idle_time because it sets materials 11 | call_deferred("check_palette", obj) 12 | 13 | func check_palette(obj): 14 | var palette = obj.get_attrib("palette", "") 15 | var palette_list = obj.get_attrib("palettes", []) 16 | if palette.empty() or palette_list.empty(): 17 | visible = false 18 | return 19 | 20 | for d in palette_list: 21 | if d["path"] == palette: 22 | var tone = d["tone"] 23 | var mult = d["multiplier"] 24 | var mult_vec = Vector3(mult[0], mult[1], mult[2]) 25 | self.material.set_shader_param("Hue", tone[0]) 26 | self.material.set_shader_param("Saturation", tone[1]) 27 | self.material.set_shader_param("Brightness", tone[2]) 28 | self.material.set_shader_param("multiplier", mult_vec) 29 | visible = true 30 | break 31 | -------------------------------------------------------------------------------- /scripts/animations/CraftShipFX.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | export(Rect2) var SpriteCoord 4 | 5 | var _target_ref = null 6 | 7 | func Start(target): 8 | _target_ref = target 9 | var crafted_data = target.get_attrib("animation.crafted") 10 | SpriteCoord = Rect2(crafted_data[0],crafted_data[1],crafted_data[2],crafted_data[3]) 11 | get_node("Sprite").region_rect = SpriteCoord 12 | get_node("AnimationPlayer").play("craft") 13 | 14 | func AnimationEnd(): 15 | if _target_ref != null: 16 | _target_ref.visible = true 17 | _target_ref.modulate.a = 1.0 18 | self.visible = false 19 | BehaviorEvents.emit_signal("OnAnimationDone") 20 | get_parent().remove_child(self) 21 | queue_free() 22 | -------------------------------------------------------------------------------- /scripts/animations/emp_fx.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | export(Vector2) var rand_offset_x := Vector2(0.0, 0.0) 4 | export(Vector2) var rand_offset_y := Vector2(0.0, 0.0) 5 | 6 | func Start(t): 7 | var x : float = (float(MersenneTwister.rand((rand_offset_x.y - rand_offset_x.x) * 1000, false)) / 1000.0) + rand_offset_x.x 8 | var y : float = (float(MersenneTwister.rand((rand_offset_y.y - rand_offset_y.x) * 1000, false)) / 1000.0) + rand_offset_y.x 9 | var random_offset = Vector2(x, y) 10 | self.global_position += random_offset 11 | 12 | $AnimationPlayer.play("boom") 13 | 14 | func TriggerAnimDone(): 15 | BehaviorEvents.emit_signal("OnAnimationDone") 16 | 17 | func _on_AnimationPlayer_animation_finished(anim_name): 18 | get_parent().remove_child(self) 19 | queue_free() 20 | -------------------------------------------------------------------------------- /scripts/animations/explosion_fx.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | export(float) var ttl = 0.5 4 | 5 | var _cur_time = 0.0 6 | var _active = false 7 | 8 | func _ready(): 9 | # Called when the node is added to the scene for the first time. 10 | # Initialization here 11 | pass 12 | 13 | func Start(target): 14 | _cur_time = 0 15 | _active = true 16 | 17 | func _process(delta): 18 | if _active == false: 19 | return 20 | 21 | _cur_time += delta 22 | if _cur_time >= ttl: 23 | _cur_time = 0 24 | _active = false 25 | #BehaviorEvents.emit_signal("OnAnimationDone") 26 | get_parent().remove_child(self) 27 | queue_free() 28 | -------------------------------------------------------------------------------- /scripts/animations/hack_fx.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | export(float) var speed := 100.0 4 | export(Vector2) var rand_offset_x := Vector2(0.0, 0.0) 5 | export(Vector2) var rand_offset_y := Vector2(0.0, 0.0) 6 | 7 | var _delete_me := false 8 | var _started := false 9 | var _cur_time := 0.0 10 | var _dir : Vector2 11 | 12 | func Start(t): 13 | var x : float = (float(MersenneTwister.rand((rand_offset_x.y - rand_offset_x.x) * 1000, false)) / 1000.0) + rand_offset_x.x 14 | var y : float = (float(MersenneTwister.rand((rand_offset_y.y - rand_offset_y.x) * 1000, false)) / 1000.0) + rand_offset_y.x 15 | var random_offset = Vector2(x, y) 16 | self.global_position += random_offset 17 | 18 | #_origin = self.global_position 19 | var target = t+random_offset 20 | _cur_time = 0 21 | if target != null: 22 | _dir = target - self.global_position 23 | var dist = _dir.length() 24 | _cur_time = dist / speed 25 | _dir = _dir.normalized() 26 | _started = true 27 | # _ttl = dist / _actual_speed 28 | 29 | func _process(delta): 30 | if not _started: 31 | return 32 | 33 | if _delete_me == true and $AudioStreamPlayer2D.playing == false: 34 | _cur_time += delta 35 | get_parent().remove_child(self) 36 | queue_free() 37 | elif _delete_me == true: 38 | return 39 | 40 | _cur_time -= delta 41 | 42 | var move : Vector2 = _dir * delta * speed 43 | position = position + move 44 | 45 | if _cur_time <= 0: 46 | visible = false 47 | _delete_me = true 48 | _cur_time = 0 49 | BehaviorEvents.emit_signal("OnAnimationDone") 50 | -------------------------------------------------------------------------------- /scripts/animations/hull_hit_fx.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | export(float) var ttl = 0.7 4 | 5 | var _cur_time = 0.0 6 | var _active = false 7 | 8 | func _ready(): 9 | if has_node("Particles2D"): 10 | get_node("Particles2D").emitting = true 11 | _cur_time = 0 12 | _active = true 13 | 14 | func Start(target): 15 | if has_node("Particles2D"): 16 | get_node("Particles2D").emitting = true 17 | _cur_time = 0 18 | _active = true 19 | 20 | func _process(delta): 21 | if _active == false: 22 | return 23 | 24 | _cur_time += delta 25 | if _cur_time >= ttl: 26 | _cur_time = 0 27 | _active = false 28 | #BehaviorEvents.emit_signal("OnAnimationDone") 29 | get_parent().remove_child(self) 30 | queue_free() 31 | -------------------------------------------------------------------------------- /scripts/animations/laser_vfx_test02.gd: -------------------------------------------------------------------------------- 1 | tool 2 | extends Node2D 3 | 4 | export(bool) var reset = false setget set_reset 5 | 6 | var _origin 7 | 8 | func set_reset(newval): 9 | reset = false 10 | _origin = self.global_position 11 | 12 | func _ready(): 13 | _origin = self.global_position 14 | 15 | func _process(delta): 16 | var sprite = get_node("Sprite") 17 | var cur_pos = self.global_position 18 | var dir = _origin - cur_pos 19 | var length = dir.length() 20 | var sprite_base_size = sprite.texture.get_size() 21 | var desired_scale = length / sprite_base_size.y 22 | var angle = Vector2(0.0, 0.0).angle_to_point(dir) 23 | 24 | sprite.scale.y = desired_scale 25 | var sprite_pos = dir# / 2.0 26 | sprite.position = sprite_pos 27 | sprite.rotation = angle + deg2rad(90.0) 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /scripts/animations/minigun_fx.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | export(Vector2) var rand_offset_x = Vector2(0.0, 0.0) 4 | export(Vector2) var rand_offset_y = Vector2(0.0, 0.0) 5 | export(float) var ttl = 1.0 6 | 7 | onready var _tracer = get_node("tracer") 8 | 9 | func _ready(): 10 | pass 11 | 12 | func Start(target): 13 | if target != null: 14 | var my_tile : Vector2 = Globals.LevelLoaderRef.World_to_Tile(self.global_position) 15 | var target_tile : Vector2 = Globals.LevelLoaderRef.World_to_Tile(target) 16 | var tile_dist = (target_tile-my_tile).length() 17 | _tracer.amount = get_node("tracer").amount * tile_dist 18 | _tracer.lifetime = get_node("tracer").lifetime * tile_dist 19 | var dir = target_tile-my_tile 20 | var angle = Vector2(0.0, 0.0).angle_to_point(dir) 21 | self.rotation = angle 22 | 23 | var x : float = (float(MersenneTwister.rand((rand_offset_x.y - rand_offset_x.x) * 1000, false)) / 1000.0) + rand_offset_x.x 24 | var y : float = (float(MersenneTwister.rand((rand_offset_y.y - rand_offset_y.x) * 1000, false)) / 1000.0) + rand_offset_y.x 25 | var random_offset = Vector2(x, y) 26 | self.global_position += random_offset 27 | 28 | yield(get_tree().create_timer(ttl), "timeout") 29 | 30 | call_deferred("Stop") 31 | 32 | func Stop(): 33 | visible = false 34 | BehaviorEvents.emit_signal("OnAnimationDone") 35 | get_parent().remove_child(self) 36 | queue_free() 37 | -------------------------------------------------------------------------------- /scripts/animations/particle_instancer.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | export(PackedScene) var FXScene 4 | 5 | func instanciate(): 6 | var n = FXScene.instance() # this scene should be self-deleting 7 | self.add_child(n) 8 | -------------------------------------------------------------------------------- /scripts/animations/planet_hit_fx.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | func play_hull_hit(): 4 | get_node("sfx").play() 5 | get_node("Sprite/AnimationPlayer").play("boom") 6 | yield(get_tree().create_timer(0.1), "timeout") 7 | get_node("Sprite2/AnimationPlayer").play("boom") 8 | yield(get_tree().create_timer(0.1), "timeout") 9 | get_node("Sprite3/AnimationPlayer").play("boom") 10 | yield(get_tree().create_timer(0.2), "timeout") 11 | get_node("Sprite4/AnimationPlayer").play("boom") 12 | yield(get_tree().create_timer(0.1), "timeout") 13 | get_node("Sprite5/AnimationPlayer").play("boom") 14 | 15 | 16 | 17 | func play_shield_hit(): 18 | get_node("sfx").play() 19 | get_node("Sprite/AnimationPlayer").play("boom") 20 | yield(get_tree().create_timer(0.1), "timeout") 21 | get_node("Sprite2/AnimationPlayer").play("boom") 22 | yield(get_tree().create_timer(0.1), "timeout") 23 | get_node("Sprite3/AnimationPlayer").play("boom") 24 | yield(get_tree().create_timer(0.2), "timeout") 25 | get_node("Sprite4/AnimationPlayer").play("boom") 26 | yield(get_tree().create_timer(0.1), "timeout") 27 | get_node("Sprite5/AnimationPlayer").play("boom") 28 | -------------------------------------------------------------------------------- /scripts/animations/ship_hit_fx.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | export(Rect2) var region_override 4 | 5 | func _ready(): 6 | $overlay.region_rect = region_override 7 | 8 | func play_hull_hit(): 9 | $AnimationPlayer.play("blink_hit") 10 | 11 | func play_shield_hit(): 12 | $AnimationPlayer.play("shield_hit") 13 | 14 | func play_radiation_hit(): 15 | $AnimationPlayer.play("radiation_hit") 16 | 17 | func play_emp_hit(): 18 | $AnimationPlayer.play("emp_hit") 19 | -------------------------------------------------------------------------------- /scripts/animations/ship_movement.gd: -------------------------------------------------------------------------------- 1 | extends AnimationPlayer 2 | 3 | func _ready(): 4 | BehaviorEvents.connect("OnMovement", self, "OnMovement_Callback") 5 | #self.root_node = "../.." 6 | 7 | func OnMovement_Callback(obj, dir): 8 | #if obj.get_attrib("type") != "player": 9 | # return 10 | if obj != self.get_parent().get_parent(): 11 | return 12 | 13 | # Float impresision means it's not always exactly the angle we expect, 44.9999 instead of 45 for example. 14 | var cur_heading = Vector2(0.0, -1.0).rotated(get_node(root_node).get_parent().rotation) 15 | var desired_rot : float = cur_heading.angle_to(dir) 16 | var rot_deg = rad2deg(desired_rot) 17 | 18 | if rot_deg <= -175.0: 19 | self.play("rot_neg_180") 20 | elif rot_deg <= -125.0: 21 | self.play("rot_neg_135") 22 | elif rot_deg <= -85.0: 23 | self.play("rot_neg_90") 24 | elif rot_deg <= -40.0: 25 | self.play("rot_neg_45") 26 | elif rot_deg >= 175.0: 27 | self.play("rot_180") 28 | elif rot_deg >= 125.0: 29 | self.play("rot_135") 30 | elif rot_deg >= 85.0: 31 | self.play("rot_90") 32 | elif rot_deg >= 40.0: 33 | self.play("rot_45") 34 | 35 | if rot_deg >= 5.0 or rot_deg <= -5.0: 36 | #print("WAIT FOR ANIM") 37 | BehaviorEvents.emit_signal("OnWaitForAnimation") 38 | 39 | func OnAnimationDone_Callback(offset_deg): 40 | get_node(root_node).get_parent().rotation += deg2rad(offset_deg) 41 | get_node(root_node).rotation = 0 42 | 43 | #print("ANIM DONE") 44 | BehaviorEvents.emit_signal("OnAnimationDone") 45 | 46 | -------------------------------------------------------------------------------- /scripts/animations/warp_tile_fx.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | export(float) var ttl = 0.5 4 | 5 | var _cur_time = 0.0 6 | var _active = false 7 | 8 | func _ready(): 9 | # Called when the node is added to the scene for the first time. 10 | # Initialization here 11 | pass 12 | 13 | func Start(target): 14 | _cur_time = 0 15 | _active = true 16 | 17 | func _process(delta): 18 | if _active == false: 19 | return 20 | 21 | _cur_time += delta 22 | if _cur_time >= ttl: 23 | _cur_time = 0 24 | _active = false 25 | #BehaviorEvents.emit_signal("OnAnimationDone") 26 | BehaviorEvents.emit_signal("OnAnimationDone") 27 | yield(get_tree().create_timer(0.5), "timeout") 28 | visible = false 29 | get_parent().remove_child(self) 30 | queue_free() 31 | -------------------------------------------------------------------------------- /scripts/autoload/Preloader.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | 3 | var BaseObject = preload("res://scenes/object.tscn") 4 | var TargettingReticle = preload("res://scenes/tileset_source/targetting_reticle.tscn") 5 | 6 | var EnTable = preload("res://data/translation/base.en.translation") 7 | var JaTable = preload("res://data/translation/base.ja.translation") 8 | var FrTable = preload("res://data/translation/base.fr.translation") 9 | 10 | var PylonFX = preload("res://scenes/tileset_source/pylon_fx.tscn") 11 | 12 | var CraftShipFX = preload("res://scenes/Animations/CraftShipFX.tscn") 13 | 14 | var JsonCache = {} 15 | -------------------------------------------------------------------------------- /scripts/loading_screen.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | 4 | # Declare member variables here. Examples: 5 | # var a = 2 6 | # var b = "text" 7 | 8 | 9 | # Called when the node enters the scene tree for the first time. 10 | func _ready(): 11 | var vp_size = self.get_viewport().size 12 | if get_viewport().is_size_override_enabled(): 13 | vp_size = get_viewport().get_size_override() 14 | self.position = vp_size / 2.0 15 | 16 | 17 | # Called every frame. 'delta' is the elapsed time since the previous frame. 18 | #func _process(delta): 19 | # pass 20 | -------------------------------------------------------------------------------- /scripts/test.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | export(String) var text = "" setget set_text 4 | 5 | func set_text(newval): 6 | text = newval 7 | if has_node("Label"): 8 | get_node("Label").text = text 9 | 10 | func _ready(): 11 | # Called when the node is added to the scene for the first time. 12 | # Initialization here 13 | pass 14 | 15 | 16 | #func _process(delta): 17 | # # Called every frame. Delta is time since last frame. 18 | # # Update game logic here. 19 | # pass 20 | -------------------------------------------------------------------------------- /scripts/tests/Camera2D.gd: -------------------------------------------------------------------------------- 1 | extends Camera2D 2 | 3 | export(float) var max_zoom = 4.0 4 | export(float) var min_zoom = 0.25 5 | export(NodePath) var levelLoaderNode 6 | 7 | var levelLoaderRef 8 | var mouse_down = false 9 | var start_touch_pos 10 | var start_cam_pos 11 | 12 | func _ready(): 13 | pass 14 | 15 | 16 | func _process(delta): 17 | # Called every frame. Delta is time since last frame. 18 | # Update game logic here. 19 | if mouse_down: 20 | var cur_pos = get_viewport().get_mouse_position() 21 | var deltap = start_touch_pos - cur_pos 22 | self.position = start_cam_pos + (deltap * self.zoom) 23 | 24 | func _input(event): 25 | # Wheel Up Event 26 | if event.is_action_pressed("zoom_in"): 27 | _zoom_camera(-1) 28 | # Wheel Down Event 29 | elif event.is_action_pressed("zoom_out"): 30 | _zoom_camera(1) 31 | elif event.is_action_pressed("touch"): 32 | start_touch_pos = event.position 33 | start_cam_pos = self.position 34 | mouse_down = true 35 | 36 | 37 | if event.is_action_released("touch"): 38 | mouse_down = false 39 | 40 | # Zoom Camera 41 | func _zoom_camera(dir): 42 | zoom += Vector2(0.1, 0.1) * dir 43 | zoom.x = clamp(zoom.x, min_zoom, max_zoom) 44 | zoom.y = clamp(zoom.y, min_zoom, max_zoom) 45 | 46 | func OnMovement_callback(obj, dir): 47 | #var p = levelLoaderRef.objByType["player"][0] 48 | #if obj == p: 49 | # self.position =p.position 50 | pass 51 | -------------------------------------------------------------------------------- /scripts/tests/EarthAsciiAnim.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | var frame_id := 1 4 | var cur_time := 0.0 5 | export(float) var frame_rate := 0.1 6 | 7 | func _ready(): 8 | visible = false # make sure to avoid perf hit 9 | 10 | func _process(delta): 11 | # on PC this is the most expensive update! 12 | if visible == false: 13 | return 14 | cur_time += delta 15 | if cur_time >= frame_rate: 16 | cur_time -= frame_rate 17 | move_to_next_frame() 18 | 19 | func move_to_next_frame(): 20 | frame_id += 1 21 | frame_id = (frame_id % self.get_child_count()) + 1 22 | var visible_frame := "tombstone%02d" % frame_id 23 | for child in self.get_children(): 24 | if child.name == visible_frame: 25 | child.visible = true 26 | else: 27 | child.visible = false 28 | -------------------------------------------------------------------------------- /scripts/tests/FPS Counter.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | 4 | # Declare member variables here. Examples: 5 | # var a = 2 6 | # var b = "text" 7 | 8 | 9 | # Called when the node enters the scene tree for the first time. 10 | func _ready(): 11 | pass # Replace with function body. 12 | 13 | 14 | # Called every frame. 'delta' is the elapsed time since the previous frame. 15 | #func _process(delta): 16 | # pass 17 | -------------------------------------------------------------------------------- /scripts/tests/Nebula.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | func _process(delta): 4 | var t = get_viewport().canvas_transform 5 | #print(t) 6 | $TileMap.material.set_shader_param("camera_view", t) 7 | 8 | -------------------------------------------------------------------------------- /scripts/tests/TestAllGameObjects.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | 4 | export(bool) var TestSpawnOnLoad := false 5 | 6 | # Called when the node enters the scene tree for the first time. 7 | func _ready(): 8 | BehaviorEvents.connect("OnLevelLoaded", self, "OnLevelLoaded_Callback") 9 | 10 | func OnLevelLoaded_Callback(): 11 | if TestSpawnOnLoad == false: 12 | return 13 | 14 | yield(get_tree().create_timer(2.0), "timeout") 15 | call_deferred("do_spawn") 16 | 17 | func do_spawn(): 18 | 19 | var dir = Directory.new() 20 | dir.open("res://data/json") 21 | dir.list_dir_begin(true, false) 22 | 23 | var files = get_files(dir) 24 | 25 | print(str(files.size())) 26 | 27 | var n = null 28 | var coord = Vector2(0,0) 29 | for file in files: 30 | if "/effects/" in file: 31 | print("Effect %s skipped" % file) 32 | continue 33 | print("Loading %s" % file) 34 | n = Globals.LevelLoaderRef.RequestObject(file, coord) 35 | coord.x += 3 36 | if coord.x > 40: 37 | coord.x = 0 38 | coord.y += 3 39 | 40 | func get_files(dir): 41 | var result = [] 42 | var file_name = dir.get_next() 43 | while file_name != "": 44 | var file_path = dir.get_current_dir() + "/" + file_name 45 | if dir.current_is_dir(): 46 | var subdir = Directory.new() 47 | subdir.open(file_path) 48 | subdir.list_dir_begin(true, false) 49 | result += get_files(subdir) 50 | elif file_name.get_extension() == "json": 51 | result.append(file_path) 52 | file_name = dir.get_next() 53 | dir.list_dir_end() 54 | 55 | return result 56 | -------------------------------------------------------------------------------- /scripts/tests/scanner_shader.shader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform sampler2D bit_map; 4 | uniform vec4 test_color; 5 | 6 | void fragment() { 7 | // sample the texture 8 | ivec2 map_size = textureSize(bit_map,0); 9 | //vec4 tex_color = texture(TEXTURE, UV); 10 | //uint r = texture(bit_map, UV).r; 11 | //float fr = float(r) / 255.0; 12 | //tex_color = vec4(fr, 0.0, 0.0, 1.0); 13 | vec4 urgba = texture(bit_map, UV); 14 | float r = float(urgba.r) / float(1); 15 | float g = float(urgba.g) / float(1); 16 | float b = float(urgba.b) / float(1); 17 | 18 | //COLOR = vec4(r, g, b, 1.0); 19 | //COLOR = texture(bit_map, UV); 20 | COLOR = texture(TEXTURE, UV); 21 | } -------------------------------------------------------------------------------- /scripts/tests/test_ssaa.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | 3 | 4 | 5 | func _ready(): 6 | pass 7 | -------------------------------------------------------------------------------- /scripts/tool/export_spritesheet.gd: -------------------------------------------------------------------------------- 1 | tool 2 | extends Node 3 | 4 | export(bool) var reset = false setget onReset 5 | export(Texture) var spritesheet 6 | export(int) var tileSize = 128 7 | 8 | 9 | func _ready(): 10 | pass 11 | 12 | func onReset(isTriggered): 13 | if (isTriggered): 14 | reset = false 15 | var w = spritesheet.get_width() / tileSize 16 | var h = spritesheet.get_height() / tileSize 17 | 18 | for y in range(h): 19 | for x in range(w): 20 | var tile = Sprite.new() 21 | add_child(tile) 22 | tile.set_owner(self) 23 | tile.set_name(str(x+y*w)) 24 | tile.set_texture(spritesheet) 25 | tile.set_region(true) 26 | tile.set_region_rect(Rect2(x*tileSize, y*tileSize, tileSize, tileSize)) 27 | tile.set_position(Vector2(x*tileSize+tileSize/2, y*tileSize+tileSize/2)) -------------------------------------------------------------------------------- /scripts/tool/starfield_generator.gd: -------------------------------------------------------------------------------- 1 | extends Node2D 2 | 3 | 4 | # Declare member variables here. Examples: 5 | # var a = 2 6 | # var b = "text" 7 | export(NodePath) var viewport_path = "Viewport" 8 | 9 | # Called when the node enters the scene tree for the first time. 10 | func _ready(): 11 | pass # Replace with function body. 12 | 13 | func _input(event): 14 | if (event is InputEventMouseButton): 15 | var cur_datetime : Dictionary = OS.get_datetime() 16 | var save_file_path = "user://screenshot-%s%s%s-%s%s%s.png" % [cur_datetime["year"], cur_datetime["month"], cur_datetime["day"], cur_datetime["hour"], cur_datetime["minute"], cur_datetime["second"]] 17 | var image = get_node(viewport_path).get_texture().get_data() 18 | image.flip_y() 19 | image.save_png(save_file_path) 20 | 21 | 22 | # Called every frame. 'delta' is the elapsed time since the previous frame. 23 | #func _process(delta): 24 | # pass 25 | -------------------------------------------------------------------------------- /sign.bat: -------------------------------------------------------------------------------- 1 | pushd %~dp0 2 | 3 | copy SolarRogue%1.apk D:\Dev\Projects\GooglePlay 4 | cd D:\Dev\Projects\GooglePlay 5 | "C:\Program Files\Java\jdk-17\bin\jarsigner.exe" -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore android.keystore SolarRogue%1.apk android-app-key 6 | "C:\Users\match\AppData\Local\Android\Sdk\build-tools\31.0.0\zipalign.exe" -v 4 SolarRogue%1.apk SolarRogue%1-signed.apk 7 | move SolarRogue%1-signed.apk "%~dp0\SolarRogue%1-signed.apk" 8 | 9 | del SolarRogue%1.apk 10 | 11 | popd -------------------------------------------------------------------------------- /signaab.bat: -------------------------------------------------------------------------------- 1 | pushd %~dp0 2 | 3 | copy SolarRogue%1.aab D:\Dev\Projects\GooglePlay 4 | cd D:\Dev\Projects\GooglePlay 5 | "C:\Program Files\Java\jdk-17\bin\jarsigner.exe" -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore android.keystore SolarRogue%1.aab android-app-key 6 | "C:\Users\match\AppData\Local\Android\Sdk\build-tools\31.0.0\zipalign.exe" -v 4 SolarRogue%1.aab SolarRogue%1-signed.aab 7 | move SolarRogue%1-signed.aab "%~dp0\SolarRogue%1-signed.aab" 8 | 9 | del SolarRogue%1.aab 10 | 11 | popd --------------------------------------------------------------------------------