The following warnings occurred:
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 895 - File: showthread.php PHP 7.3.33 (Linux)
File Line Function
/showthread.php 895 errorHandler->error




Users browsing this thread: 2 Guest(s)
New Status Effect - Old

#1
Posts: 32
Threads: 5
Thanks Received: 4
Thanks Given: 1
Joined: Feb 2012
Reputation: 4
Status
Sleep
This is a work in progress, it is mostly functional but I was hoping to get some feedback and help on a couple parts of it. This quest started with wanting to improve Dance by removing the "berserk" part of it.  In doing so I realized that the Dance status effect could be freed up and replaced with something new. To do that I just changed the pointer:

Code:
ORIGINAL
C2/19ED: 7D 17     (Dance)
--------------------------
MODIFIED
C2/19ED: 85 17     (Old)

This bypasses the code that toggles on the Dance status which means that Dance no longer causes the dancer to act uncontrollably.  The status effect is still broken though; If you inflict the status the person that gets it will start dancing uncontrollably, which is funny to see but isn't what I was looking for. Next step is stopping that behavior which I did by editing this code:

Code:
ORIGINAL
C2/0959: F4 01 21     PEA $2101      (Dance, Hide, Rage)
C2/07B0: F4 11 03     PEA $0311      (Rage, Freeze, Dance, Stop)
----------------------------------------------------------------
MODIFIED
C2/0959: F4 00 00     PEA $0000      (N/A)
C2/07B0: F4 00 00     PEA $0000      (N/A)

One interesting side effect of this is that it also uncouples Rage from the berserk aspect, allowing you to select a different Rage or whatever else you want to every turn. This may be fixable which is one of my questions. I don't understand the PEA opcode very well, does this work similarly to the BIT opcode? I don't know if I can use a different number so that I can remove Dance without removing Rage. 

Now we have a status effect that is just a blank slate. To give it functionality I'm treating it like the opposite of the Morph status. So when you are inflicted with the status you will deal 50% less damage.  I don't think I want the player to take more damage with this effect so I have opted not to do that, but it is possible, or if someone wanted to create a different status they could do that effect themselves! Now onto the code; I am using some free space for this, I can optimize a bit if I ever make a patch but this is just based on what I am working on: 

Code:
ORIGINAL
C2/336F: AD A2 11     LDA $11A2
-----------------------------------------------------------------
MODIFIED
C2/336F: 4C 69 64     JMP $6469      (New Code)

NEW CODE
C2/6469: A9 01        LDA #$01
C2/646B: 3C F8 3E     BIT $3EF8,X
C2/646E: F0 06        BEQ $6476      (Branch if attacker not Old)
C2/6470: 4E B1 11     LSR $11B1
C2/6473: 6E B0 11     ROR $11B0      (Cut damage in half)
C2/6476: AD A2 11     LDA $11A2
C2/6479: 4C 72 33     JMP $3372

The next step is to do a quick change to the text display so it will show properly in combat: 

Code:
ORIGINAL
C2/AEC7: FF FF FF FF FF FF FF FF FF FF  (" ") (Dance)
-----------------------------------------------------
MODIFIED
C2/AEC7: 8E A5 9D FF FF FF FF FF FF FF  ("Old")  

The main thing left to do is where I am stumped. I was looking through documentation and editors but I cannot find where the data is for the graphical changes to characters that are inflicted with status effects in battle, such as the glow from effects like Haste, Slow, and Stop. I was thinking of taking the small graphical effect from the Rage status since it is no longer a berserk-like effect. Does anyone have anything to point me to so I can switch this around? Thank you for any help or feedback you can provide!  Victory


EDIT: One thing I didn't mention is that if anyone is trying to implement something like this you would need to alter some of the code regarding failing a dance, since if you fail that dance it would un-toggle the status, in the case that you had it set. I didn't have to do that for my work since I was using the Mog Never Fails patch which already addresses that issue.

EDIT 2: Something else to note...because of where the Dance status is in the code(Byte 3), there are some limits to its functionality. An enemy or player can have the status toggled on or off, but only an enemy can be immune to it. You can make an item that cures it or a spell that cures/inflicts it but it cannot be added to any weapon or armor. It may be possible that if a player has Auto-Float they could be immune to it as a monster would be but I have not tested this.
Quote  



Messages In This Thread
New Status Effect - Old - by Xontract - 01-06-2024, 04:04 PM
RE: New Status Effect - Old - by C-Dude - 01-06-2024, 05:26 PM
RE: New Status Effect - Old - by Xontract - 01-07-2024, 10:43 AM
RE: New Status Effect - Old - by Warrax - 01-08-2024, 12:26 PM

Forum Jump:

Users browsing this thread: 2 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite