Homeworld Remastered Collection

Homeworld Remastered Collection

[HWRM] Homeworld Classic Enhanced for HWRM 2.4.1
Showing 1-10 of 13 entries
< 1  2 >
Update: 9 Oct, 2020 @ 11:43pm

2.4.1 --- 2020/10/10
• Move motherships list from "objectlist_rulerestrictions.lua" to
"objectlist_misc.lua".
• Added hyperspace researches for Kushan and Taiidan to "HyperspaceOff" section
of "objectlist_rulerestrictions.lua". Unfortunately, capital ships of those
races have the hyperspace capability that cannot be turned off using build or
research grants or restrictions.
• Fixed game crashing when playing as Hiigaran or Vaygr under certain combin-
ations of game rules.

Update: 9 Oct, 2020 @ 12:26am

2.4.0 --- 2020/10/09
• Created many scripts and a spreadsheet for a planned "modular ships" version
of this mod. These files exist in the GitHub repository only as of now. This
code will form the basis of version 3.0.0 of the mod once completed.
• Moved some miscellaneous as-of-yet non-functional "Defined Roles"-related AI
scripts to the "source" folder.
• Disabled "Defined Roles" mode and re-enabled "Special Fleets" mode. The AI
has no idea how to deal with the former, but is able to deal with the latter
perfectly fine. Updated docs to reflect this.
• "Special Fleets" mode now spawns the correct research ships for the Kushan
and Taiidan races. These ships are now instantly spawned in formation with
the mothership instead of made to exit out of the shiphold.
• Removed hyperspace-less shipyards as there was no point to having them. Fixed
ship names to reflect this.

2.3.1 --- 2020/07/15
• Moved data files into a subfolder of the game's GitHub directory. This means
these files will longer be packaged in the BIG file along with the rest of
the mod via Steam, and will exist only in the GitHub repository.

Update: 15 Aug, 2016 @ 12:48pm

CHANGE LOG

2.3.0 --- 2016/08/15
• Switched to a new and better PRNG.
• Fixed a bug in "writestats.lua".
• Discovered that I had to imnplement GearBox's "cpuplayers" rules in order for
the AI to build anything. Did this, and implemented the "norushtime" scripts
in the process.

Update: 10 Jul, 2016 @ 6:50am

2.2.0 --- 2016/07/10
• Fixes to some game type menu option texts.
• "CheckCaptureStatusRule()" now cycles through players using the
"WIN_AnyPlayerIndex" variable and the "CyclePlayers()" function instead of
picking a player at random, just like the other WIN CONDITION rules. I hope I
didn't break anything.
• Other minor tweaks to "CheckCaptureStatusRule()".
• Total overhaul of the "WriteStats()" script. The ADVANCED STATS now contain
time and date info, a list of game rule settings chosen by the host, and
lists of ships, subsystems and research. The output now also contains nearly
all the info that the vanilla stats the game normally writes to the profile
"stats" folder have. Thanks to Dwarfinator and radar3301!
• "WriteStats()" is also a rule now instead of just a regular function. This
apparently is necessary for the "Your fleet is victorious" and "Your fleet
has been defeated" messages to appear at the end of each battle. Not sure
why.
• The starting objective message text is now customized based on the current
WIN CONDITION. Unfortunately, I do not have audio files for each of the WIN
CONDITION settings.
• Modified "levelfunc.lua" to remove "meg_kharak" and "meg_kharakburned", which
were removed from the game by GearBox apparently.
• Fixed the ship "tur_ionarrayfrigate" since it had a bug in it that caused the
game to crash. The ship "der_lifeboat" also crashes the game, but I haven't
figured out why.
• Edited "data\ui\newui\ingamemenu.lua" to add the "BTN_EXITTOMAINMENU" button,
since exiting all the way to Windows makes testing the mod in multiplayer
difficult.
• Replaced instances of "Universe_PlayerCount() - 1" with a new global variable
"Player_Count".
• Fixed a bug in "CheckTeamProductionShipsLeftRule()" and
"CheckTeamAnyShipsLeftRule()" where the game continued to try to kill players
even when they were already dead.
• The "CheckMothershipDeadRule()" function now uses the "WIN_AnyPlayerIndex"
global variable to iterate through players just like the other WIN CONDITION
functions.
• Moved the "Player_Team()" and "Player_NumberOfShips()" functions to
"common.lua" from "wincondition.lua".
• Renamed "SetStartObjective()" to "SetWinObjective()".
• The BACKGROUND MUSIC rule now has a "Map Default" option that reverts to
playing whatever background music is specified in the level file.
• Replaced calls to the "CPU_Exist()" function with calls to the
"Player_GetLevelOfDifficulty" function since the former were causing desyncs.
• HWCM debug text changed slightly.
• Overhauled how seeds for my PRNG work. Before, each seed was generated using
the native Lua "random()" function. This caused desyncs however, which I did
not realize until I did some multiplayer testing over a LAN connection in the
last few days. Now, the seeds are generated by performing operations on game
setup options, and then summing the results. While the seed values are not as
"unique" as before, they will not cause desyncs. Thus, the mod can finally be
played against other human players over the Internet.

Update: 5 Jul, 2016 @ 8:30pm

CHANGE LOG

2.1.2 --- 2016/07/05
• Fixed some issues related to counting research grants and restrictions in
"BentusiRoulette_Init()". The BENTUSI ROULETTE mode works properly with the
DEFINED ROLES mode once again.
• The DEFINED ROLES and CRATES modes now work with each other again as well.
• Added a "Misc" category to "objectlist_rulerestrictions.lua".
• Disabled the "MPRestrict" category in "objectlist_rulerestrictions.lua" since
all the researches listed there are now located in "HW2Campaign.big" instead
of "Homeworld2.big", and thus no longer affect this mod.
• "BentusiRoulette_Init()" now fills in blank lines in the GUI display text if
it turns out there are too few available researches to grant or restrict.
• "BentusiRoulette_Init()" now counts the number of researches in
"def_research.lua" instead of the "TechList" table to determine a total.
• Made the last field in the TEAM PROGRESS screen a little wider to show more
info.
• Crate code now once again checks for ALL of a player's ships as a last resort
when determining the mothership position. I disabled this at some point in
the past for reasons I don't remember.
• Added the "viszero()" function to "utilfunc.lua". It checks whether a vector
has a length of zero.
• Made a few tweaks to "GetBestCrateLocation()".
• The TEAM PROGRESS screen now shows each player's DEFINED ROLES role if the
mode is enabled.
• Moved all the "MainRule()" stuff to its own file in the "lib" directory.

Update: 4 Jul, 2016 @ 11:01am

2.1.1 --- 2016/07/04
• Renamed the "type" parameter to "types" in the TechList table and related
scripts to avoid confusion with the Lua command of the same name.
• Disabled some lines in "DisableHyperspaceRule()" as the performance was poor
and the code may have been technically unnecessary.
• Merged "GetResearchGrant()" and "GetResearchRestriction()" into a single
function called "GetFreeResearchItem()".
• Removed "default.lua" from the AI scripts since the same functionality is
already provided in the DEFINED ROLES code.
• Re-used the "PlayerHasMothership()" function inside "GetBestCrateLocation()".
• The "PlayerHasMothership()" function now returns the mothership type and name
as well as true or false.
• Removed the "GetValidMothership()" function since it no longer serves a
purpose.
• Miscellaneous optimizations to loops.
• Split CRATES and BOUNTIES code into individual files separate from
"homeworldclassic.lua".
• In the "GrantAllResearchRule()" rule, I stopped using
"Player_GrantAllResearch()" and rolled my own routine that parses
"def_research.lua" and logs all grants to the "Player_GrantedResearch" table.
• Renamed all instances of "iPlayerIndex" to "playerIndex" to be consistent.
• The "GrantAllResearchRule()" function now checks whether the player is a CPU
or human before granting some items. Not sure it has any effect, though.
• Fixed the bug where frigates were immediately disappearing after being built
by carriers when playing with the RESEARCH OFF and CARRIER ONLY settings.
• Fixed the bug where the custom GUI displays crash when the local player dies.
• The custom GUI displays now show dashes instead of values when a player dies.
• Research meant for AI players only are now restricted for human players. They
were also removed from the "TechList" table.
• Research never meant to be used in multiplayer matches are now restricted.
• RESEARCH OFF rule now overrides and disables BENTUSI ROULETTE since RESEARCH
OFF already grants every type of research it can grant.
• Added a GAME RULES screen so players can double-check and see what settings
the host chose for the match.
• Fixed some mistakes in game rule tooltips.
• Reverted to Luke Moloney's original and much simpler method of determining
"ChooseCrateRewardShip" using "while" loops instead of "for" loops.
• Research wasn't being chosen randomly by CRATES mode. It is now.
• Copied some code from GearBox's "mainrule_updating()" function that plays
some speech files and displays some text at the beginning of each match and
when a player dies. Not sure if it's working properly.

Update: 1 Jul, 2016 @ 7:11pm

2.1.0 --- 2016/07/01
• Fixed a bug in Vaygr research script that was also preventing the game from
ending and the ADVANCED stats from being written to the profile directory.
• Removed the "Map Default" STARTING RESOURCES option since RU values have
never been stored in the HW1C level files, anyway.
• Minor tweaks to game rule tooltips.
• Changed the way starting fleet suffixes are handled in the code. The strings
are are now built up over time as the game rule steps through each setting. A
starting fleet suffix might now look like
"_carrieronly1_research0_resource0_hyperspace1" depending on the final
combination of settings that the host chose.
• The tech items in the "TechList" table now have multiple sub-types depending
on which of the game rules are enabled or disabled. This required substantial
changes to the loop structure of CRATE and BENTUSI ROULETTE functions, for
instance.
• SPECIAL FLEETS now overrides the START WITH, RESOURCING OFF, RESEARCH OFF AND
HYPERSPACE OFF settings if turned on. This is until I can think of a better
solution to a problem. However, the SPECIAL FLEETS mode itself remains hidden
and disabled, so the change makes very little practical difference currently.
• Renamed the "_noresearch" ship/subsytem suffix to "_research0", and the
"_carrieronly" suffix to "_carrieronly1" in order to be consistent, and to
make way for the new "_resource0" and "_hyperspace0" suffixes.
• Forgot to add the Kushan and Taiidan motherships to the motherships table in
the rule restrictions object list.
• CARRIER ONLY research items are now applied properly when RESEARCH OFF mode
is enabled as well.
• Fixed a bug in the "UpdateBountyStats()" function that was preventing
bounties from working in 7 and 8 player battles.
• CRATES and BENTUSI ROULETTE are now automatically disabled when DEFINED ROLES
is turned on. They are not compatible with each other.
• Hiigaran and Vaygr shipyards no longer require a hyperspace module in order
to get built when the HYPERSPACE OFF rule is enabled. This is in order to
balance the four races.
• DUE TO THE FUNDAMENTAL CHANGES TO THE MOD'S INTERNALS IN THIS RELEASE, THERE
IS A GOOD CHANCE THAT MANY NEW BUGS MAY HAVE BEEN INTRODUCED!
• In the next release I am going to focus on optimizations. I noticed a number
of areas where things could be done more efficiently. (Especially with regard
to assigning and retrieving values from variables in loops.)

Update: 28 Jun, 2016 @ 1:24am

CHANGE LOG

2.0.4 --- 2016/06/28
• A "Crate detected" message is now also sent to the Events screen when a crate
is detected.
• Non-player squadrons are once again spawned on the map according to the
original map author's specifications. However, this happens only when
selecting the "HW1C Map Default" START WITH or similar setting in a game
rule. Unfortunately, these non-player ships are totally non-interactive,
unlike their counterparts in HW1C and HW Cataclysm. Also, formations are not
supported in level files, so I had to limit spawned ships to 1 ship per map
coordinate.
• Tweaks to how map objects are counted for debug purposes.
• Added resourcing related items to the research restriction list when STARTING
RESOURCES is set to DISABLED.
• Starting music track is once again displayed on the screen when a battle
starts.
• Custom GUI screens are now split into "Static" and "Dynamic" categories based
on how often they need to be updated.
• Added a new AUDIO TRACK HISTORY screen that lists the last ten battle and
ambient music tracks that have been played.
• Increased the duration of the opening text message display from 10 to 15
seconds.
• The random background music script now uses an explicitly declared seed value
to hopefully prevent the potential for further desyncs.
• Sobgroups are no longer moved to a distant radiation field first before being
killed due to the START WITH rule. Now they are being despawned right where
they are instead. Hopefully this remains a good solution.
• Changed ship and subsystem label "_nores" to "_noresearch" to be clearer.
• Extended the delay before granting all research in the RESEARCH OFF setting
back to 15 seconds. A too short delay was causing the game to crash.
• Multiple non-player ships are no longer spawned at the same coordinates in
the level file since formations remain unsupported in level files, and the
inert non-player ships cannot move apart from each other.
• CPU players are now able to at least fight when DEFINED ROLES is enabled.
They can't build or research. But they are able to engage in combat at least.
This means that large DEFINED ROLES battles are viable as long as the
CAPITAL/PRODUCTION roles are assigned to human players.

Update: 25 Jun, 2016 @ 8:10pm

CHANGE LOG

2.0.3 --- 2016/06/25
• When DEFINED ROLES is enabled, the Kill Player Production WIN CONDITION will
now default to Kill Team Production WIN CONDITION instead.
• Fixed a bug in DEFINED ROLES that caused the script to fail if all members of
a team died.
• Fixed a bug in CRATES mode preventing players from being granted with
research technologies.
• Fixed the paths to the HW1 battle music files in BACKGROUND MUSIC script.
• Updated song titles in BACKGROUND MUSIC script.
• Updated CrateExclusions table in "objectlist_misc.lua".
• Fixed the issue preventing the Kushan mothership from using the move ability.
• The "Research" button is now disabled when the RESEARCH mode is turned off.
Thanks GearBox!
• Included the now deprecated "Homeworld Classic Maps" game type in case people
want to play on the old maps but with GearBox's new game rules.
• The smallest asteroids, despite having zero resources, were still selectable
using the mouse, thereby fooling the player. This has been fixed.
• Increased RU values of asteroids a little more. They were simply too small!
• Changed the pixel sizes of the two smallest asteroids. Before this, asteroid0
actually looked larger than asteroid1.
• TEAM PROGRESS screen now shows the size of your teammates' fleets.
• Added some debugging functions to the WriteStats script.
• A message indicating that additional stats have been written to each player's
profile directory is now displayed at the end of a match.
• Slight tweak to some level debug messages.
• Fixed the bug where level names were being displayed inconsitently in the
game setup screen. Level names are now no longer prefixed with "HW1" or "HWC"
depending on the origin of the map.
• Changed MapScale in level files slightly.

Update: 24 Jun, 2016 @ 6:24pm

CHANGE LOG

2.0.2
• Increased RU values of asteroids back to Luke Moloney's original numbers.
Hopefully they will not be too few.
• Fixed the bug where the correct mothership position was not calculated when
determining crate spawn coordinates.
• Fixed the bug where crates were being expired/despawned in the wrong order.
I.e. the newest crates were getting despawned first instead of last.
• Added an audio clip for when crates are spawned. Thanks GearBox!
• Added debug messages for both enabled and disabled states of game rules.
• Fixed an occasional divide-by-zero error that was preventing crates from
spawning.
• ADVANCED STATS should be printing properly to the profile directory at the
end of each match now.
• Lots of tweaks to CRATES debug messages.
• Included everything from my HWC Maps mod, and deprecated that mod in favor of
just having this one.
• Re-enabled the custom "classdef.lua" and updated it to Patch 2.0 specs. (The
stuff I made specifically for DEFINED ROLES is still disabled however.)
• Slight tweaks to map code.