Class Overview

From House of the Dying Sun Modding Wiki
Jump to navigation Jump to search

Game objects

House of the Dying Sun primarily uses prefabs with components already attached to them, and their "isActive" state turns on and off by the game. All components are treated like features; disable what isn't going to be used, enable what is. Components are never added or taken away for any reason. Most objects (like ships and projectiles) are made inactive on destruction to be cached for re-use.

Unit Modifiers

See UnitModifier

The game will spawn UNITMODIFIER objects in the hierarchy root on scene startup, and act as objects to duplicate from. They contain a component that extends UnitModifier, and a variable that links to the associated ship.

Active modifiers follow this format:

"# UNITMODIFIER_UnitModifierName target_ship_type"

Each modifier spawns per ship.

Landmarks

See Landmark and LandmarkScenery

Landmarks determine the layout of the mission, including enemy spawns. They are needed for terror missions.

Terror Mission Objects

See TerrorMission and TerrorMissionBonus

A terror mission object defines text to be displayed during the mission, the landmarks used, and the voice clips to play on certain events. Needed for a sortie template.

Spawners (Flights)

See Flight and FreeFlight

The game uses spawner prefabs to spawn ships, named Flights. FreeFlights are used in landmarks.

Fleet spawner prefabs exist in "## FLEET PREFABS," but do not seem to have any use.

Starmap objects

The starmap is a part of the mission select screen. It is under "#GALAXY_ROOT/GALAXY_ROTATOR/ROOT_Overworld".

Starmap Fleet Widgets

See StarmapPlayerFleetWidget

The only component on "ROOT_PlayerFleet", it determines what direction the model should be facing. The method "PointModelRootAtOverworldNode(OverworldNode)" points to the selected node's transform, and is called in "Update()" if OverworldNode's static variable, selectedNode, is not null.

Nodes

The basic node for a mission has OverworldNode and HUDIconOverworldNode. These objects always have their name in caps, following the format "NODE_MISSIONTYPE_xxx" where x is a number used to separate similarly-named nodes.

Starmap Locations

See CUIStarmapLocation

This regards the large title and subtitle text over the major and minor locations in the galaxy, updated when "Awake()" is called.

Scenes

The game only uses one scene to minimize load times, and to smoothly transition between the mission screen and everything else. Things like generators, the GameSpawner, and asset loaders already exist here.

Menus

All menus are located under "# CUI_2D/Camera/ROOT_Menus", with a GATE object (containing a MenuSubstateGate component) and an ANCHOR child object.

Audio

This game uses AudioSource primarily for sound effects, but uses FMOD for music. The objects can be found under "# AUDIO".

Cryptography

See CryptoPlayerPrefsManager

An object called "# CRYPTOPLAYERPREFS" is used for encrypting game progress by a later-generated "# GAME".

Units

Units all use, or inherit from, the class Unit. Ships use a class that inherits from Starship.

AI

AI-capable ships have a component that inherits from the AIAgent class, named similarly to their unit type (AI<starship>Agent). Agents use a new AIBlackboard instance to identify hostiles and landmarks, which is primarily adjusted by AITask classes.

Drones use the AIFighterAgent class.

Unused Content

You may find unused or vestigial content throughout the game. This includes, but is not limited to:

  • Salvaging
  • Unseen ship descriptions
  • Team factions
  • User sorties

If you choose to revive any existing code and want to publish it, credit Mike Tipul, the original creator. Do not package content that you are not permitted to in your mod.

See also