//This is a The Plot of War Script piece base, fw1, fw2, mw1, mw2, bw1, bw2, lfoot, rfoot, bfoot, gun, cap, b1, b2, fp1, fp2; #define FIRING_THING 2 #define MAX_SPEED 75 static-var x, siegemode; Create() { siegemode = 0; } StartMoving() { spin fw1 around x-axis speed <140> accelerate <35>; spin fw2 around x-axis speed <140> accelerate <35>; spin mw1 around x-axis speed <140> accelerate <35>; spin mw2 around x-axis speed <140> accelerate <35>; spin bw1 around x-axis speed <140> accelerate <35>; spin bw2 around x-axis speed <140> accelerate <35>; } StopMoving() { stop-spin fw1 around x-axis; stop-spin fw2 around x-axis; stop-spin mw1 around x-axis; stop-spin mw2 around x-axis; stop-spin bw1 around x-axis; stop-spin bw2 around x-axis; } Activate() { siegemode = 1; set MAX_SPEED to 1; turn lfoot to z-axis <-90> speed [15]; move lfoot to y-axis [-3] speed [15]; move lfoot to x-axis [6] speed [15]; turn rfoot to z-axis <90> speed [15]; move rfoot to y-axis [-3] speed [15]; move rfoot to x-axis [-6] speed [15]; turn bfoot to x-axis <-90> speed [15]; move bfoot to y-axis [-3] speed [15]; move bfoot to z-axis [-6] speed [15]; wait-for-move bfoot along z-axis; } Deactivate() { siegemode = 0; set MAX_SPEED to [3]; turn lfoot to z-axis <0> speed [15]; move lfoot to y-axis [0] speed [15]; move lfoot to x-axis [0] speed [15]; turn rfoot to z-axis <0> speed [15]; move rfoot to y-axis [0] speed [15]; move rfoot to x-axis [0] speed [15]; turn bfoot to x-axis <0> speed [15]; move bfoot to y-axis [0] speed [15]; move bfoot to z-axis [0] speed [15]; wait-for-move bfoot along z-axis; } AimPrimary(heading, pitch) { while (siegemode == 1) { signal FIRING_THING; set-signal-mask FIRING_THING; turn gun to y-axis heading speed <350>; turn cap to x-axis <0> - pitch speed <350>; wait-for-turn gun around y-axis; wait-for-turn cap around x-axis; return (1); } } FirePrimary() { if (x == 1) { move b1 to z-axis [-2] now; move b1 to z-axis [0] speed [15]; } if (x == 2) { move b2 to z-axis [-2] now; move b2 to z-axis [0] speed [15]; } } AimFromPrimary(piecenum) { piecenum = gun; } QueryPrimary(piecenum) { if ( x == 1 ) { piecenum = fp1; } else if ( x == 2 ) { piecenum = fp2; } ++x; if ( x == 3 ) { x = 1; } } Killed(severity, corpsetype) { }