Source Code

From BotF2-Wiki
Revision as of 17:38, 12 July 2015 by Reginald (Talk | contribs)

Jump to: navigation, search

Source Code

http://guganeshan.com/blog/setting-up-git-and-tortoisegit-with-bitbucket-step-by-step.html

official

  • last source code https://bitbucket.org/mstrobel/supremacy/overview (Visual C# Studio 2010)
    • Mike's Post: build in VS2010 with .NET 4.0. You may need the C# Async CTP. http://botf2.star-trek-games.com/viewtopic.php?p=70790#p70790
    • http://botf2.star-trek-games.com/viewtopic.php?p=70781#p70781 Supremacy.Game.GameEngine is where you'll find most of the game logic. That's where most of the turn processing happens.
      • The SupremacyCore project is where you'll find the foundation of the game.
      • SupremacyService is just the game server (all the important bits it interacts with are in SupremacyCore).
      • SupremacyClientComponents is UI infrastructure.
      • SupremacyUI and SupremacyWPF are older UI infrastructure stuff, much of which has been phased out and replaced by newer and better stuff in SupremacyClientComponents. The most interesting stuff in SupremacyUI is GalaxyGridPanel, which draws the galactic map. It also has the spinning planet views.
      • Supremacy.Xna is where the XNA/3D stuff is located--it's not used heavily yet, but it has some effects for the invasion screen, a newer star renderer, a 3D spinning ship renderer, etc.
      • Supremacy.Scripting is an expression language parser/compiler.
      • SupremacyClient is the main graphical client and has most of the game screen implementations.

Changes

see here or https://bitbucket.org/mstrobel/supremacy/commits/branch/default

some code

miscellaneous

  • \Mainline\SupremacyUI\SystemProductionPanel.cs
  • \Mainline\SupremacyCore\Orbitals\FleetOrders.cs -> all items inside a sector
  • \Mainline\SupremacyClientComponents\Controls\InfoCard\InfoCard.cs (-> Tooltips ??)
    • \Mainline\SupremacyClient\themes\Federation\InfoCard.xaml -> <Setter Property="Width" Value="500" /> (BEFORE: 250)


  • \Mainline\SupremacyCore\Universe\Colony.cs
  • \Mainline\SupremacyClient\Views\ColonyScreen\ColonyStructureListView.xaml
    • Size of this area: 720 x 240


  • \Mainline\SupremacyClient\Views\GalaxyScreen\TaskForceListView.xaml

Sounds

  • \Mainline\SupremacyClient\AudioEngine.cs (for Music), for Sounds >> SoundPlayerAction is used (search for \Resources\UI\Federation\SoundsButtonClick.wav)
  • and in \Mainline\SupremacyClientComponents\Views\SystemAssaultScreen\SystemAssaultScreenViewModel.cs -> Uri is used (e.g. CombatLaser.wav)


older list

where Folder File Function Date Description Custom1 Custom2


S-Core Game GameContext.cs

initialising game

S-Core Game GameEngine.cs DoProduction(GameContext game)

Raw Materials, Deuterium, Dilithium is collected cross over all colonies and used by all colonies

S-Core Game GameEngine.cs DoShipProduction(GameContext game)
S-Core Combat InvasionArena.cs

SystemAssault

S-Core Orbital Shipyard.cs GetBuildOutput(int slot) 2014-01-15

just selects output (active?) and bonus (BonusType.PercentShipBuilding), since 2014-01-15 also case PopulationRatio or IndustryRatio

S-Core Universe Colony.cs GetProductionOutput(ProductionCategory category)

see last line, too !

  • Food: minimum 10
  • Research:
                       float moraleMod = _morale.CurrentValue / (0.5f * MoraleHelper.MaxValue);
                       baseOutput = (int)(moraleMod * baseOutput);
  • Industry: minimum 10 !
                       float moraleMod = _morale.CurrentValue / (0.5f * MoraleHelper.MaxValue);
                       baseOutput = (int)(moraleMod * baseOutput);
  • last line: return ((int)(baseOutput + (baseOutput * modifier.Efficiency)) + modifier.Bonus);
S-Core Universe Colony.cs planet.HasFoodBonus (OutputModifier)
                       if (planet.HasFoodBonus)
                       modifier.Efficiency += 0.15f;
S-Core Universe Colony.cs planet.HasEnergyBonus (OutputModifier)
                   if (planet.HasEnergyBonus)
                       modifier.Efficiency += 0.15f;
S-ClientComp Views\GalaxyScreen GalaxyScreenView.cs GalaxyScreenView() GalaxyView Hotkeys Definition (see Hotkeys)

Botf2-coding-practice



SourceTree

  • Tools: 3rd point: OPTIONS
  • SSH Client Configuration:
    • SSH Key: c:\....\ReginaldPutty.ppk
    • SSH Client: (IMPORTANT) PuTTY/Link (not SSH !!)
    • automatically start: yes

Visual Studio

It's possible (and standard) to compile the game with Visual Studio Expres. No further stuff of programs are needed. Mention that the compiled exe is then in \SupremacyClient\bin\Release.

Visual C#

build in Visual Studio

SunBurn

Kenneth is working sometimes with SunBurn...this might be a site for this http://channel9.msdn.com/coding4fun/blog/No-need-for-sunscreen-you-want-this-SunBurn-SunBurn-v2-RTMs-including-the-free-SunBurn-Framework-Edi

.Net

you should use latest .Net-version (2014: version 4.5.1)

XNA

"Could not load file or assembly 'Microsoft.Xna.Framework.dll' or one of its dependencies. The specified module could not be found."

  • suggestion by reg: go to \Resources\Models and rename the "Models"-folder to "Models-SetOffline" or something else (if building a ship no model is shown -as it is to most of the ships- but otherwise the game could work fine)


This suggests the problem is with your XNA installation. The game uses XNA to display the 3D ship models in the shipyard. There's no way to disable the models so XNA wouldn't be needed. So to be able to play the game, i'd advise to uninstall XNA, then install the latest version.

Download link: http://www.microsoft.com/en-gb/download/details.aspx?id=20914