Shtick's Smithy

Alright Ready for FE REPO MAIN!

2 Likes

3H INSPIRED AS CALCULATION

I finally delved into the world of C, and it made this so much easier to make. Thank you Vesly and Dragz for helping me out there.

In 3H, AS (Attack Speed) is calculated by subtracting your speed by the weight of the weapon, buffered by 1 point for every 5 points of strength a unit has.

Formula In Question

Speed-((WeaponWeight-(Str/5))Canā€™t be lower than 0)

This wouldnā€™t work very well for GBAFE, so I decided to make some tweaks to it. I made sure that I added the strength part to the constitution.

Now the formula looks like this.

Speed-((WeaponWeight-(Constitution+(Str/4))Canā€™t be lower than 0)

To show how this changes things, Iā€™ll show this example.
Vanilla
Assuming the vanilla formula for AS, base!Eirika gets weighed down by 5 from a Steel Sword. It gets to the point that she can no longer double this 1AS fighter.

Modified
When applying the 3H inspired version of the AS formula, the very same Eirika has another point of AS to work with, thanks to her 4 base strength. Now she can double the same fighter with the same weapon!

For those that are keen on wording, you would be correct in assuming that I did make a more ā€œfaithfulā€ version of the 3H AS formula, which will be included in the Harth. Hereā€™s the Harth, and this post will be added to the OP.

11 Likes

Hello, Iā€™m trying to use this and canā€™t understand how to use it with FEBuilder. May I have to use the option ā€œinstall with EAā€ but which file should I use? And how can I call this with the command ā€œCall ASMā€?

P.S.

The video is inaccessible

You should be able to install it with ā€œInstall with EAā€ and follow the setup outlined in the image to make the event work.

I tried on my own but didnā€™t work, I tried BindingBladeCheckModded.txt and EventFile.txt, and with both files, I got an error.

With BindingBladeCheckModded.txt was:

Finished.
1 errors encountered:
File BindingBladeCheckModded.txt, Line 3, Column 14: Didn't reach end, currently at Comma(,)

No data written to output.

And EventFile.txt

Finished.
1 errors encountered:
File EventFile.txt, Line 2, Column 5: Didn't reach end, currently at IntegerLiteral($0xFREESPACE)

No data written to output.

I think i know what the problem is. I forgot to define the freespace was in the event file. I used 0xBA3F60. Just put the address of the freespace you want to you in the event file, and it should work.

2 Likes

Ewan as an adult
Ewan (Adult)
When looking through the repo, I noticed that Ewan didnā€™t have a version of him as an adult, so I threw something together with Saleh and Beta!Fordeā€™s mugs. Also while Iā€™m a bit late on April fools, Iā€™m posting this the week of, so hereā€™s a rickroll for you to click on.

8 Likes

part of me was expecting a different Rick Astley song rather than The Classic but you got me with that one

2 Likes

OLDER GARCIA
OlderGarcia
In the process of something Iā€™m working on, I was recommended to edit Garcia slightly. I feel like the beard could use more polish, but I think itā€™s in an acceptable spot as it is.

11 Likes

Yo! I found your adaptation of Cyrusā€™ theme on the repo, and itā€™s almost perfect for the final chapter of my hack. My big issue with it is that it doesnā€™t have any drums/percussion, which I canā€™t help but feel takes away a lot of the oomph that it should have. Any chance you might be able to update it at some point with drum tracks? Tried to do it myself, but I have zero experience with composition programs and havenā€™t been able to make it sound as good as your rendition.

3 Likes

Sorry, itā€™s been a hot minute since I did that (honestly forgot I did it until you mentioned it), so I donā€™t think I can update it. Maybe in the future, but definitely not now.

Gotcha. The hack is still a long ways away from being finished, so I wouldnā€™t need it for a while. It would be absolutely killer if you ever did get to it though :slightly_smiling_face:

TWEAKED RESCUE PENALTIES

Thank you to Jester and Camdar for helping me with troubleshooting.

I donā€™t know if Iā€™m the only one upset by this, but in GBAFE, rescue penalties being the same 50% cut to both skill and speed regardless in difference between aid and constitution is a pet peeve of mine. In FE7 terms, Hector (13 Con) shouldnā€™t be similarly encumbered from rescuing Florina (4 Con), as an example, as he would be if he were rescuing Marcus (11 Con), at least in my opinion. As a result, I decided to take matters into my own hands.

The jist of this C code is that if a rescuerā€™s aid is at least double the rescueeā€™s constitution, the rescue penalties are reduced to only 25%. In the video I posted below, Seth would have 9 speed after rescuing Eirika instead of the 6 speed heā€™d usually have.

The video below will show this C in action.

Here is the Moosh to the C, and this post will be added to the OP like always.

16 Likes

Is there a way to make it where the green numbers donā€™t show up?

Itā€™s honestly not a priority, and it looked too much for me to remove the green numbers.

As a side tangent, I thought it was a cute idea to reward players that considered the difference between Aid and Constitution.

5 Likes

TWEAKED ARENA PAYOUTS
First off, thanks to Jester for showing me where the payout code actually was.

When I was showing the code on how the arena enemies were generated to someone (in terms of items), I had an idea. The idea was that if your unit wins in the arena with at least half of their max HP left, they get extra money. In this case, I went with quadrupled payout, and used the text ID 0x100, but Iā€™ll attach the raw C code below if you want to compile it for yourself with your own adjustments.

Raw C Code
#include "C_Code.h"

void StartArenaDialogue(int, ProcPtr);

void ArenaUi_ResultsDialogue(ProcPtr proc) {
    u32 partyGold = GetPartyGoldAmount();
    switch (ArenaGetResult()) {
        case 1: ///If player unit wins
            if (gActiveUnit->curHP >= (GetUnitMaxHp(gActiveUnit) / 2)) {
				SetTalkNumber(ArenaGetMatchupGoldValue() * 4);
				StartArenaDialogue(0x100, proc);
				SetPartyGoldAmount(partyGold = partyGold + (ArenaGetMatchupGoldValue() * 4));
			} else {
				SetTalkNumber(ArenaGetMatchupGoldValue() * 2);
				StartArenaDialogue(0x8D6, proc);
				SetPartyGoldAmount(partyGold = partyGold + (ArenaGetMatchupGoldValue() * 2));
			}
            break;
        case 2: ///If player unit loses
            StartArenaDialogue(0x8D7, proc);
            break;
        case 3: ///If player unit draws like if weapons break
            StartArenaDialogue(0x8D9, proc);
            SetPartyGoldAmount(partyGold = partyGold + ArenaGetMatchupGoldValue());
            break;
        case 4: ///If player bows out
            StartArenaDialogue(0x8D8, proc);
            break;
    }
    return;
}

Hereā€™s a video showing the code in action.

Hereā€™s the Null to the download, and this post will be added to the OP as always.

4 Likes

This looks amazing!

I know the text is editable. But I would make more sense for it to say something like

Wow! You came out with barely a scratch! Hereā€™s some extra gold for an outstanding performance. XXXX total.

I wanted for it to resemble vanilla size for the demo.

1 Like