Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Fixes and features for first release #1

Open
wants to merge 67 commits into
base: master
Choose a base branch
from

Conversation

Mugsworth1
Copy link
Collaborator

@Mugsworth1 Mugsworth1 commented Nov 9, 2024

Randomizer features added:

  • NPC Spawns randomised with exceptions for those required to prevent softlocks
  • Item Spawns randomised aside from yavin_trial to prevent softlocks
  • PK3 File added containing assets for holocron models and randomizer menu options
  • Applied IGNORE_ENEMIES config to allied NPCs so they don't start fights and break cutscenes
  • Allowed items to spawn inside geometry (happens a lot spawning non-intended stuff into gunracks and supply boxes)
  • Increased pickup range of all items except holocrons by 50% (so they can be picked up when partially inside a wall)

Force behaviour changes:

  • Forcepowers now not granted by level scripts (except when increasing to prevent softlocks)
  • Force Holocrons now spawn as part of the item pool
  • When a force holocron is collected, that power level is increased by 1 (up to max of 3)
  • Player now spawns with max force meter value set so powers can be used as soon as they are unlocked

Bugfixes / Crash Prevention

  • Entity limit increased
  • Projectile deflections now only spawn an effect half of the time to prevent entity limit related crashes
  • Holocron assets always loaded regardless of if they are used in a given level

ArrayIndexOutOfBound and others added 30 commits October 3, 2024 21:44
Note : with a limit of 10 NPC, I managed to get a full playthrough without crashes.
I did find some softlock that need to be fixed.
Still not ideal as random seed is only updated on game launch for now - need to do so when new game button is clicked.
…thly (Imperial holding keys, NPC that need to be killed)
This way, this version of the game can be added to SpeedOutcast to have a single executable for both the base game and the Randomizer.
… load and removed some rand() and srand() calls to ensure consistent results. Also commented out some checks against items spawning inside geometry - we have to accept this will happen or we will break on a lot of spawns
…bug page to "randomizer_info" in the file RandomizerUtils.cpp
…cron assets on load of ALL levels as for some reason they don't get registered by default like other items seem to.
ArrayIndexOutOfBound and others added 30 commits November 13, 2024 13:31
Fixed the behavior of the lightsaber before yavin_trial + added a random saber style at pickup.
* Added a fix to get items inside artus_mine crates.

* Adde comments about adding a variable about 'base game fixes' that are not about the randomizer

* Added a variable to enable/disable base game fixes

* Added a fix for un-pickage metal ammo on ns_starpad
* Allow all NPCs to drop keys safely, prevent targeting of neutral entities, ensure NPC team is respected after randomization

* Edge case handling for missing NPC_class (morgankatarn), Correct weapon spawning for randomised NPCs, handle missing animation for NPC type

* Add swamptrooper team and fix ignore enemies flag

* Check for enableRandomizer in NPC_BSFollowLeader

* Ensure remaining changes respect cg_enableRandomizer

* Correct whitespace only changes and remove no weapons spawns

* Fix issue assigning leader to some cutscene NPCs causing them to not spawn correctly and softlock, assign weapons to all NPCs, fix issue removing non-existing weapons, ensure timer stops regardless of NPC spawned in final desanns place

* Fix additional issue with missing anims, correctly target desann for timer end, fix issue assigning lightsabers to chars not intended to wield them

* fix issue trying to give a saber to NPC with no attachment point
fix issue assigning correct team to imperial protocol droids
fix issue with sabers allowing NPCs to target nothing and cause a crash

* unfuck git for prev NPC fixes

* Add exception to saber block for end thugs on ns_starpad, couple of null safety checks, allow some more npcs to be randomized

* Cleanup and remove abandoned ideas
Fix for Kyle that couldn't attack with a saber.
…nything when no enemy present, add extra safety check for weapon model create (#11)
* Added some fixes to the list of bug found the 28 December

* Fixed multiple points :
- Mine monsters replacers are now working properly (they have AI, and respect the scripts during the guardian sequence)
- Fixed the Tavion cutscene, where NPC could die if they didn't have enough HP nor force powers (death by fall)
- Reduced the bonus hitbox if items to make the elevator on ns_hideout work (collision problem with the items in the secret zone)

* Temp fix for the warden in artus_detention.

* The rest of the modifications to fix all softlocks.

* Fixed crash (some NPCs don't have targetname, making a write error) + removing randomized first weapon.

* Add a new version number
* Moving more "goofy" features to another variable to keep the normal randomizer only to items and NPCs

* Added random saber color

* Moved README of SpeedOutcast to another file and added a new README.md

* Added random jump height at every jump and fixed saber style at pickup (the previous formula resulted with a 0 in 80%+ of cases).

* Added variables to control each individual part of the 'enhancements' on the randomizer.

* Updated README.md

* Added a randomization on the 'strength' of force jumps. It's controlling the speed of the Z axis.

* Add a new top menu section for Randomizer, add new 'Basic' and 'Enhancements' submenus, add settings for randomizer enhancements.

* Renaming all 'lenght' to 'length'

* Added another print of the (X) when enabling the enhancements

* Changed the rng engine. This does not affect the initial setSeed value. (#16)

* Random language per sound on map load (#17)

* Each time a sound is loaded, load a random language version of it.

* Add to menu and readme

* fix some messed up indentation

* Fixes for the base randomizer : (#18)

- NPC replacing Desann in artus_topside can properly reflect projectiles.
- NPC replacing Reelo's thgs at the end of ns_starpad can't reflect projectiles even if they are saber wielder.
- Fixed ATSTs team from free to enemy.

---------

Co-authored-by: Mugsworth1 <jonathan.wilcock@hotmail.co.uk>
Co-authored-by: Mugsworth1 <amber.ohagan@outlook.com>
…#19)

* Added random projectile per projectile shot. Only on blaster weapons.

* Updated the UI and preparing for a more controlled way to have random weapon projectiles.

* Added a 'controlled' version of randomized weapon projectiles. The older one being named CHAOS.

---------

Co-authored-by: Mugsworth1 <jonathan.wilcock@hotmail.co.uk>
* Randomized NPC health

* Encapsulated the max hp changes behind a the randomizer check.

---------

Co-authored-by: Mathieu Gonçalves <mathieu.goncalves.45120@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants