-
Notifications
You must be signed in to change notification settings - Fork 767
Initial release of Isle of Bios #3337
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
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for your contribution!
I finished a first review, I could see several formatting issues, but also some logical ones too.
I did not try running it, I can see it passes CI, but from my code review I believe some things are likely to fail at runtime (maybe under specific circumstances)
Some things I am not really sure, so there are several questions on my review. And anyways, feel free to ask/counter request changes that doesn't make sense. I don't know much about this quest, so I maybe have missed something
I have fixed the requested changes. Could you review it again, please? @guilherme-gm |
Squash and reword some commits within the PR. Some commits has messages that does not reflect the changes within it or just does not make any sense at all. |
7859788
to
7de0fff
Compare
Update Mob DB Contents Update Mob Contents Update mob database contents
Revert "Isle of Bios Instance" This reverts commit eed2b30. Instance Isle Of Bios cleanup description instance Improve styling and add instance re-entry Update IsleOfBios.txt Added variable for the next instance
Update PrizeOfHero Update Items missing
4440050
to
42fd874
Compare
Done, I guess... Sorry! Still figuring GitHub out. 😅 |
switch( questprogress(15005,PLAYTIME) ) { | ||
case 0: | ||
if(select("Create Instance", "Cancel") == 0 ) { close(); } | ||
if( questprogress(15008,PLAYTIME) == 2) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the indent of the entire case block seems wrong, it has 2 tabs instead of 1 (it should be aligned like the if in line 49, not with an extra indent) -- supposing that close above is correct.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't the case also be indented? The case is nested inside the switch hence it's missing a tab. Which would however also mean the content inside the if is missing tabs. But unfortunately according to the coding style it is correct.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At least looking into the script changes from the last 2 years, and at a quick search through the npc folder, case
should not be indentended, just like our style guide says (but there are some places where it is not -- probably left overs/something that passed a review)
Yes, our coding style says:
switch () {
case 1:
<tab>[code]
which is the pattern we've been adopting everywhere as far as I know.
I would be ok if the script is using
switch () {
<tab>case 1:
<tab><tab>[code]
too, as long as it is consistent across the entire script, but I think it is better to adhere to our style guide (case not indented)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
still open
npc/re/instances/IsleOfBios.txt
Outdated
mes("^0000ffThis Memorial Dungeon cannot be accessed for 23 hours after your last visit.^000000"); | ||
close(); | ||
} | ||
if (getcharid(CHAR_ID_CHAR) != getpartyleader(.@party_id, 2)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
party id is not set here.
mes("^ff0000Created the Memorial dungeon.^000000"); | ||
mes("^ff0000Please click and press Enter again.^000000"); | ||
close; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
indent issue
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm confused about the inconsistent close;
usage. Though I haven't coded and kept up but where is there close();
and close;
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
both produces the same result. close();
is ideal as it matches the "updated standard", while close;
will be matching the old standard, which is still supported just fine.
While I do think using close();
everywhere is preferable, I am not enforcing this in my review since it is a conversion from rA (which as far as I know doesn't use the ()
around functions unless needed).
It would be nice to have it in the new standard already, or at least have everything either in the new or old standard instead of a mix. But I do understand the extra effort in making this happen, and since most of our scripts are not in the new format yet, I would say it is ok to use the old one.
If I recall correctly, except for end;
, every other script command should be using ()
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Got it.
Yeah I only found one reference of end();
in https://github.com/HerculesWS/hercules-docs/blob/19e89784901aa6e8a53d98f44cfecd44460601d5/docs/scripting/timers.md#use-number-3-deny-usage
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
still open
mes("^ff0000Please click and press Enter again.^000000"); | ||
close; | ||
} | ||
case 1: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is the fall through from case 0 to 1 intended? if .@instance
is < 0 it will fall through and run case 1. this seems wrong to me
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
still open
switch( questprogress(15005,PLAYTIME) ) { | ||
case 0: | ||
if(select("Create Instance", "Cancel") == 0 ) { close(); } | ||
if( questprogress(15008,PLAYTIME) == 2) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
still open
} | ||
switch( questprogress(15005,PLAYTIME) ) { | ||
case 0: | ||
if(select("Create Instance", "Cancel") == 2 ) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please fix the spacing to align with Hercules style guide - https://github.com/HerculesWS/Hercules/wiki/Coding-Style
mes("^ff0000Created the Memorial dungeon.^000000"); | ||
mes("^ff0000Please click and press Enter again.^000000"); | ||
close; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
still open
mes("^ff0000Please click and press Enter again.^000000"); | ||
close; | ||
} | ||
case 1: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
still open
This pull request introduces the initial release of the Isle of Bios instance, adding new NPCs, quests, items, and instance mechanics.
Changes Included
Issues Addressed
This PR resolves #241 , ensuring the instance is fully functional and integrated with the existing game mechanics.
Testing & Validation
Additional Notes