How can I change the bow speed?
As much as I'm seeing, activate_bow(); is an internal call and isn't referenced anywhere in the ini or the story folders, so I'm guessing that's tied directly into the dink engine itself.
Would I have to rebuild the entire engine to change that?
Would I have to rebuild the entire engine to change that?
You'd want to start with looking at the bow item script (item-b1.c I think) to work out the calculations and how they work. What I'm seeing so far is the following as an excerpt from a bow in Charlie's Legacy, but I've added comments - these are mostly Assumptions however:
activate_bow(); &mypower = get_last_bow_power(); if (&mypower < 100) { return; } &mholdx = sp_x(1, -1); //Save Dink's X coords &mholdy = sp_y(1, -1); //Save Dink'ys Y coords &mydir = sp_dir(1, -1); //Save Dink's direction //Example direction, aiming Right if (&mydir == 4) { &mholdx -= 30; sp_x(&junk, &mholdx); sp_mx(&junk, -6); } //Calculations for the Charging stage of the bow appear to start in this section. Dividing numbers? &mypower /= 100; &mshadow = &mypower; &temp = &strength; &mydir = math_mod(&temp, 5); &temp /= 5; if (&temp == 0) { &temp = 1; } //Now we start to see Multiplying going on. &mypower *= &temp; if (&mshadow >= &mydir) { &mypower += &mydir; } sp_timing(&junk, 0); if (&mshadow >= &mydir) { &mypower += &mydir; } sp_timing(&junk, 0); sp_custom("spellcaster", &junk, 1); &temp = random(6, 1); //The &temp random above appears to be the chance of a Power Shot, if Dink has Bow Lore for example. //In Charlie's Legacy the bow has different effects. if (&temp == 3) { //critical hit example &mypower * 3; playsound(44, 14050,0,0,0); say("`4* POWER SHOT *", 1); } //This section is more for affecting the projectile, so probably AFTER shooting. sp_strength(&junk, &mypower); sp_range(&junk, 10); //this makes it easier to hit stuff sp_flying(&junk, 1); sp_script(&junk, "dam-a1"); //when the projectile hits something, it will look to this script, this way &mshadow = create_sprite(&mholdx, &mholdy, 15, 432, 3); sp_brain_parm(&mshadow, &junk); sp_que(&mshadow, -500); sp_brain_parm(&junk, 1); sp_brain_parm2(&junk, &mshadow); sp_nohit(&mshadow, 1);
Yeh, you can't change how activate_bow() works, it's an internal function.
If you're referring to the frame count-up when holding the button down, those are unalterable timings. You might be better off completely bypassing the bow system and making it a standard weapon or magic item instead like redink1 did for Cast V Revolution. The bow system is almost universally reviled.