Celtic Heroes

The Official Forum for Celtic Heroes, the 3D MMORPG for iOS and Android Devices

3D Visualization of Skill Equations

#1
Hello everyone, below are three-dimensional mesh renderings of Swan's skill equations (there is a link to his thread in the Lexicon) for four skills: Nature's Touch, Lightning Strike, Howling Winds, and Shield of Bark.

For each skill I made two meshes:
- The first places your heal on the z-axis (given X focus and Y nature magic, your heal is Z)
- The second places the derivative of your heal on the z-axis (given X focus and Y nature magic, your heal is changing by Z amount per increment in nature magic and focus)

Initially, I started the focus/natmagic axes at 0, however the derivative range was just too high -- the plot looked like two walls and a floor! I arbitrarily chose 300 focus and 1000 natmagic as the minimums for better visuals.

If you notice anything interesting, do share it here! If you want to know any specific points, say so :)

Image


Image


Image


Image


For anyone interested in the Matlab code, it follows (modify the constants for each skill):

Code: Select all

% Nature's Touch % Constants focus_c = 28.89; natmagic_c = 8.9361; level_c = 452.42; % Heal focus = @(x) focus_c * sqrt(x); % focus component natmagic = @(y) natmagic_c * sqrt(y); % nature magic component level = @(z) level_c + 0*z; % level component, assuming level 50 heal = @(x, y, z) focus(x) + natmagic(y) + level(z); % overall % Derivative focus_d = @(x) (focus_c/2) ./ sqrt(x); % focus component natmagic_d = @(y) (natmagic_c/2) ./ sqrt(y); % nature magic component level_d = @(z) 0 + 0*z; % level component, assuming level 50 heal_d = @(x, y, z) focus_d(x) + natmagic_d(y) + level_d(z); % overall % Plotting points = 500; % number of points in each x/y/z focus_range = linspace(300, 2500, points); % evenly spaces from 300-2500 focus natmagic_range = linspace(1000, 8000, points); % evenly spaces from 1000-8000 nature magic level_range = linspace(1, 50, points); % evenly spaces from level 1-50, but this doesn't matter (assuming level 50) [FOCUS, NATMAGIC] = meshgrid(focus_range, natmagic_range); % make the mesh grid total_heal = heal(FOCUS, NATMAGIC, level_range); % get heal over the mesh points (matrix) total_heal_d = heal_d(FOCUS, NATMAGIC, level_range); % get heal derivative over the mesh points (matrix) % Plot the base mesh subplot(1, 2, 1); mesh(FOCUS, NATMAGIC, total_heal); xlabel('Focus'); ylabel('Nature Magic'); zlabel('Attack Reduction'); title('Howling Winds - Base'); % Plot the derivative mesh subplot(1, 2, 2); mesh(FOCUS, NATMAGIC, total_heal_d); xlabel('Focus'); ylabel('Nature Magic'); zlabel('Attack Reduction'); title('Howling Winds - Derivative');
World Taranis

- Regenleif -
Rachmaninoff
Aedin Flameborn

Former Leader in theILLUMINATI, Aeon, and Taranis United

I am a Guide! If you need any tips/help/advice, Click Here to send me a message!

Re: 3D Visualization of Skill Equations

#3
Very interesting. While it wouldn’t change the basic takeaway, I’d like to see these with whatever the theoretical upper limit to both Focus and Nature Magic is. I’m guessing somewhere north of 4.5k foc and 9k nm.
well, as the function uses square roots we can't say that the base or derivative converge to any point (p-series test). Regardless, I can post a plot with 100k focus and nm ;)
World Taranis

- Regenleif -
Rachmaninoff
Aedin Flameborn

Former Leader in theILLUMINATI, Aeon, and Taranis United

I am a Guide! If you need any tips/help/advice, Click Here to send me a message!

Who is online

Users browsing this forum: No registered users and 11 guests