Skip to content
This repository has been archived by the owner on Apr 29, 2020. It is now read-only.

Limbus #6253

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

Limbus #6253

wants to merge 33 commits into from

Conversation

cocosolos
Copy link
Contributor

@cocosolos cocosolos commented Oct 20, 2019

  • Removed and tabled all NPC and mob IDs from mob and NPC files in Temenos and Apollyon.
  • Updated NPCs and mobs from Wren's PR Limbus Stuff #6193 and retail caps.
  • Randomize both crate and portal mobs where appropriate.
  • Function to spawn random crate type by changing model.
  • Updated entry requirements in bcnm.lua.
  • Restructured Armoury Crate handling to use the crate model instead of ID. Custom handling per area.
  • Player var is saved depending on which entrance to Apollyon is used, used to position the player correctly when leaving the battlefield and removing the correct key item for central areas.
  • Server vars used for tracking time remaining for Sentinel Column/Scanning Device.
  • Most/all floor mechanics should be working correctly.
  • Gunpod handles loot rolling like a chest, several possible loot groups.
  • Fixed doors/portals in Temenos and Apollyon.
  • Temenos and Apollyon mobs now path correctly.
  • Mobs have their correct 2hrs.
  • Fixed an issue in bcnm.lua where a mask is being passed instead of a battlefield ID. The IDs are now correctly being checked in findBattlefields.

Note on SW Apollyon floor 3 (mimic floor):
There are supposed to be 7 mimics and 3 real crates on this floor. From retail vids it looks like the NPC itself turns into a mob or opens as a normal chest. There are, however, 13 crate IDs in the range for this floor, and there don't seem to be any missing crates anywhere else. The way I implemented this was to have 10 NPCs, 7 of which will spawn 1 of 3 available mimic mobs. If all 3 happen to be up at once, the rest of the crates will do nothing until one of the mimics despawns. A sequence of 3 random crates will act as time, restore, and item crates. I feel like this adds more chance as mimics aren't identifiable by their ID.

Notes

  • Individual mob drops/stats/weakness/resistance may need adjusting.
  • Armoury Crate drop rates may be inaccurate. Doesn't take into account 0~2 chance to drop slots, also small sample sizes on wiki. Maybe equalize droprates?

TODO

  • Target Analysis needs implementing for Proto-Omega.
  • Move Citadel Buster logic to mixin.

@TeoTwawki
Copy link
Member

TeoTwawki commented Oct 20, 2019

Thank you for taking the time to start fixing up what is my favorite content of the 75 cap days of the game. can you say what is being done and what it fixes when you post pr's tho? Like the change from messageBasic to messageSpecial - without loading up the exact message being used there I don't know if you are fixing a mistake or making a mistake. If you detail in your initial commit messages and pr comments then we'd know what you found and corrected there. just "Temenos" tells us almost nothing.

@cocosolos cocosolos changed the title Temenos Limbus Nov 7, 2019
@wrenffxi
Copy link
Contributor

wrenffxi commented Nov 8, 2019

Thanks for taking lead on this! No idea when I'd get around to it, since I'm focused on Dynamis first. Glad you found my draft PR. You may also find useful this spreadsheet created by my friend Bri.
https://docs.google.com/spreadsheets/d/1UyMlLNgvB1quY1StNsiQLwFnXNOOZNEEIh6SeoYZgrA/edit#gid=0, which contains our combined effort to sort out the various chests in both Temenos and Apollyon (note that spreadsheet has two tabs)

@cocosolos
Copy link
Contributor Author

@wrenffxi thanks for the spreadsheet! I'm currently running through the zones on retail and I've noticed a few things I still need to change. Still have no idea how to handle the doors in Temenos. There's IDs 16929197~16929220 which are positioned where the actual doors are. That may explain why all the z positions are off noted in the spreadsheet, but I can't get any of them to actually do anything.

@Brierre
Copy link
Contributor

Brierre commented Nov 8, 2019

I have the Temenos doors running in our server mostly through the mob lua files. Apollyon too. We had a pretty good limbus situation going on, but it utilizes the old system of BCNM crap. This spreadsheet was preparing for the alignment with new BCNM crap. LMK if I can help you out any.

@cocosolos
Copy link
Contributor Author

@Brierre How are you opening the doors to the teleporter rooms? That's pretty much the biggest thing I'm missing, getting the Temenos doors to open and the teleporter pads to light up in both zones.

@TeoTwawki
Copy link
Member

rebase please ❤️

…ome stuff more readable. Started to replace hardcoded IDs. Moved Limbus loot rolling into its own function.
…lefields and EventTriggerBCNM to filter available battlefields instead of in EventUpdateBCNM (wasn't being used), adjusted ZM14 entrances to use this instead.
…necessary chest and updated requirements in sql. Fixed issue in Temenos East allowing use of teleporter before all mobs are killed.
…Device. Add the Limbus hum. Added a "dontKick" variable to battlefields to delay cleanup in battlefields with no item chest (Temenos Basement)
…sed, use checkReqs instead. Updated checkReqs table. Removed incorrect usage of battlefieldAtCapacity, it's now correctly checked in findBattlefields.
…o be more descriptive. Update time remaining var only once per minute.
…accurate results. Set correct time remaining value on battlefield init for that first minute and clear it on battlefield destruction and zone init. Removed the server var cleaning from Scanning Device since it should clean itself now.
…st/portal spawn mechanics. Add progress messages.
local battlefield = mob:getBattlefield()
local players = battlefield:getPlayers()
for _, member in pairs(players) do
member:messageSpecial(ID.text.CITADEL_BASE)
Copy link
Member

@TeoTwawki TeoTwawki Jan 31, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

exactly zero of this belongs in the skillcheck, and should happen before the mob is even trying to activate the skill instead. Then when your countdown is over, force call the skill via the function we have for that purpose.

worry about it another day in a future pr I guess. I would still try and cut down on that left/right scrolling nested timer set though.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure where/how to move this without needing to manually set when to use the skill. It should be used randomly like any other tp move, but pulling these messages out of the skillcheck means I would need to manually call that at a certain hp percent or rely on random, which ends up just basically proccing over and over.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could move it to the mobs script under onMobWeaponskill(mob, target, skill) I believe, then make it do the messages if skill = c. Buster

Copy link
Contributor Author

@cocosolos cocosolos Feb 21, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The problem with that is onMobWeaponskill executes after the skill charging animation starts. The skill check is the only place with lua access between the ai picking which skill to use and the start of the charge animation.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants