viewing paste casttime_custom | Diff

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
# This patch file was generated by NetBeans IDE
# It uses platform neutral UTF-8 encoding and \n newlines.
--- Base (BASE)
+++ Locally Modified (Based On LOCAL)
@@ -14108,12 +14108,23 @@
                fixcast_r = max(fixcast_r, sd->bonus.fixcastrate) + min(sd->bonus.fixcastrate,0);
        }
 
-       if( varcast_r < 0 ) // now compute overall factors
-               time = time * (1 - (float)varcast_r / 100);
-       if( !(skill_get_castnodex(skill_id, skill_lv)&1) )// reduction from status point
-               time = (1 - sqrt( ((float)(status_get_dex(bl)*2 + status_get_int(bl)) / battle_config.vcast_stat_scale) )) * time;
+//     if( varcast_r < 0 ) // now compute overall factors
+//             time = time * (1 - (float)varcast_r / 100);
+//     if( !(skill_get_castnodex(skill_id, skill_lv)&1) )// reduction from status point
+//             time = (1 - sqrt( ((float)(status_get_dex(bl)*2 + status_get_int(bl)) / battle_config.vcast_stat_scale) )) * time;
        // underflow checking/capping
-       time = max(time, 0) + (1 - (float)min(fixcast_r, 100) / 100) * max(fixed,0);
+//     time = max(time, 0) + (1 - (float)min(fixcast_r, 100) / 100) * max(fixed,0);
+       // calculate base cast time (reduced by dex)
+       if( !(skill_get_castnodex(skill_id, skill_lv)&1) ) {
+               int scale = battle_config.castrate_dex_scale - status_get_dex(bl);
+               if( scale > 0 ) {       // not instant cast
+                       time = time * (1 - (float)varcast_r / 100); //applpy variable cast reduction
+                       time = max(time, 0) + (1 - (float)min(fixcast_r, 100) / 100) * max(fixed,0); //add fixed and apply fixed reduction
+                       time = time * scale / battle_config.castrate_dex_scale; //apply dex / castrate reduction
+               }
+               else
+                       return 0;       // instant cast
+       }
 
        return (int)time;
 }
Viewed 684 times, submitted by lighta.