Frame 1
this.stop();
menu_cm = new ContextMenu();
menu_cm.builtInItems.forward_back = false;
menu_cm.builtInItems.loop = false;
menu_cm.builtInItems.play = false;
menu_cm.builtInItems.print = false;
menu_cm.builtInItems.quality = true;
menu_cm.builtInItems.rewind = false;
menu_cm.builtInItems.zoom = false;
_x = 0;
_y = 0;
_xscale = 100;
_yscale = 100;
var hole = 0;
var score = 0;
var normal_scores = [3];
var hole_infos = [{normal_score:2, scale:0.75}, {normal_score:2, scale:0.75}, {normal_score:3, scale:0.75}, {normal_score:4, scale:0.75}, {normal_score:4, scale:0.75}, {normal_score:4, scale:0.75}, {normal_score:5, scale:0.75}, {normal_score:4, scale:0.75}, {normal_score:4, scale:0.75}, {normal_score:4, scale:0.75}, {normal_score:3, scale:0.75}, {normal_score:5, scale:0.75}, {normal_score:3, scale:0.75}, {normal_score:4, scale:0.75}, {normal_score:7, scale:0.75}, {normal_score:4, scale:0.75}, {normal_score:3, scale:0.75}, {normal_score:8, scale:0.75}];
var final_hole = 0;
hole_infos.length - 1;
this.enterFrame = undefined;
Instance of Symbol 98 MovieClip in Frame 1
on (press) {
getURL ("http://blog2.fc2.com/ishi/");
}
Instance of Symbol 100 MovieClip in Frame 1
on (press) {
_parent.gotoAndPlay("game");
}
Frame 2
function start_hole() {
human = new Human(draw_layer_back, draw_layer_front, cat_scale);
this.attachMovie("View", "view", 100000);
this.attachMovie("Arrow", "cat_arrow", 2856);
set_scale(cat_arrow, 20 * cat_scale);
this.attachMovie("Field_" + hole, "area", 500);
area._x = 0;
area._y = 0;
hole_score = 0;
retire = false;
human.trans(new Vec(area._st._x, area._st._y));
left = area._lt._x;
top = area._lt._y;
right = area._rb._x;
bottom = area._rb._y;
var _local4 = 100;
right = left + (Math.floor(Math.floor(right - left) / _local4) * _local4);
bottom = top + (Math.floor(Math.floor(bottom - top) / _local4) * _local4);
var _local9 = Math.max(right - left, bottom - top);
sscale = (Stage.width / _local9) * 0.9;
ready_x = (left + right) / 2;
ready_y = (top + bottom) / 2;
_xscale = (sscale * 100);
_yscale = (sscale * 100);
view.gotoAndPlay("ready");
nstate = READY_STATE;
draw_layer_back_line.clear();
var _local3 = left;
while (_local3 < right) {
draw_layer_back_line.lineStyle(0, 16777215, 100);
draw_layer_back_line.moveTo(_local3, top);
draw_layer_back_line.lineTo(_local3, bottom);
_local3 = _local3 + _local4;
}
_local3 = top;
while (_local3 < bottom) {
draw_layer_back_line.lineStyle(0, 16777215, 100);
draw_layer_back_line.moveTo(left, _local3);
draw_layer_back_line.lineTo(right, _local3);
_local3 = _local3 + _local4;
}
draw_layer_back_line.lineStyle(5, 16711680, 100);
draw_layer_back_line.moveTo(left, top);
draw_layer_back_line.lineTo(right, top);
draw_layer_back_line.lineTo(right, bottom);
draw_layer_back_line.lineTo(left, bottom);
draw_layer_back_line.lineTo(left, top);
_local3 = 0;
while (_local3 < 10) {
human.hitTest(area);
human.update();
_local3++;
}
_x = 0;
_y = 0;
human.wire.cleared = false;
if (!mouseListener) {
this.mouseListener = {onMouseDown:function () {
var _local4 = human.neck();
var _local3 = _local4.x - _root._xmouse;
var _local2 = _local4.y - _root._ymouse;
var _local5 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
if ((_local5 < 50) && (nstate == GAME_STATE)) {
if (human.wire.fired) {
add_arrow();
}
mouse_down = true;
human.ready();
}
}, onMouseUp:function () {
if (mouse_down) {
mouse_down = false;
human.fire(bow_power * 0.75, bow_dir_x, bow_dir_y);
hole_score++;
}
if (nstate == RESULT_STATE) {
if (final_hole == hole) {
score = score + ((hole_score - hole_infos[hole].normal_score) - 1);
nstate = FINAL_STATE;
view.gotoAndPlay("final_result");
} else {
next_hole();
}
} else if (nstate == FINAL_STATE) {
remove_objects();
_root._x = 0;
_root._y = 0;
_root._xscale = 100;
_root._yscale = 100;
_root.gotoAndPlay("title");
}
}};
Mouse.addListener(mouseListener);
}
this.onEnterFrame = update;
}
function go() {
sscale = hole_infos[hole].scale;
_xscale = (sscale * 100);
_yscale = (sscale * 100);
view.gotoAndPlay("game");
area._st._x = 1000000 /* 0x0F4240 */;
area._st._visible = false;
area.ob._x = 1000000 /* 0x0F4240 */;
area.ob._visible = true;
nstate = GAME_STATE;
_x = (((-human.pts[0].x) * sscale) + (Stage.width / 2));
_y = (((-human.pts[0].y) * sscale) + (Stage.height / 2));
}
function add_arrow() {
this.attachMovie("Arrow", "arrow" + used_arrows.length, 765 + used_arrows.length);
var _local2 = this["arrow" + used_arrows.length];
_local2._rotation = cat_arrow._rotation;
_local2._xscale = cat_arrow._xscale;
_local2._yscale = cat_arrow._yscale;
_local2._x = cat_arrow._x;
_local2._y = cat_arrow._y;
used_arrows.push(_local2);
}
function next_hole() {
score = score + ((hole_score - hole_infos[hole].normal_score) - 1);
hole++;
remove_objects();
start_hole();
}
function remove_objects() {
view.removeMovieClip();
area.removeMovieClip();
cat_arrow.removeMovieClip();
delete human;
Mouse.removeListener(mouseListener);
delete mouseListener;
var _local1 = 0;
while (_local1 < used_arrows.length) {
used_arrows[_local1].removeMovieClip();
_local1++;
}
used_arrows = [];
}
function update_mc(mc, v1, v2) {
mc._x = v1.x;
mc._y = v1.y;
mc._rotation = ((Math.atan2(v2.y - v1.y, v2.x - v1.x) / Math.PI) * 180) + 90;
}
function update_mc_90(mc, v1, v2) {
mc._x = v1.x;
mc._y = v1.y;
mc._rotation = ((Math.atan2(v2.y - v1.y, v2.x - v1.x) / Math.PI) * 180) + 180;
}
function set_scale(mc, v) {
mc._xscale = v;
mc._yscale = v;
}
function change_view() {
if (nstate == GAME_STATE) {
var _local1 = Math.max(right - left, bottom - top);
sscale = (Stage.width / _local1) * 0.9;
ready_x = (left + right) / 2;
ready_y = (top + bottom) / 2;
nstate = PAUSE_STATE;
} else {
sscale = hole_infos[hole].scale;
nstate = GAME_STATE;
}
}
function update() {
draw_layer_back.clear();
draw_layer_front.clear();
if ((nstate != READY_STATE) && (nstate != PAUSE_STATE)) {
human.hitTest(area);
human.update();
}
human.draw();
var _local5 = human.neck();
var _local18 = human.head();
var _local17 = human.hip();
var _local15 = human.right_el();
var _local9 = human.right_hand();
var _local13 = human.left_el();
var _local10 = human.left_hand();
var _local19 = human.wire_handpos();
var _local4 = human.wire_top();
var _local16 = human.wire_top2();
update_mc(cat_face, _local5, _local18);
update_mc(cat_body, _local5, _local17);
update_mc(bow, _local10, _local13);
update_mc(bow2, _local10, _local13);
if (nstate != READY_STATE) {
var _local2 = [Math.abs(_local4.x - left), Math.abs(_local4.x - right), Math.abs(_local4.y - top), Math.abs(_local4.y - bottom)];
var _local6 = -1;
var _local3 = 500;
var _local1 = 0;
while (_local1 < _local2.length) {
if (_local2[_local1] < _local3) {
_local6 = _local1;
_local3 = _local2[_local1];
}
_local1++;
}
switch (_local6) {
case -1 :
area.ob._alpha = 0;
break;
case 0 :
if (_local5.x < left) {
area.ob._x = 100000 /* 0x0186A0 */;
break;
}
area.ob._alpha = (1 - (_local3 / 500)) * 100;
area.ob._x = left - 30;
area.ob._y = _local4.y;
break;
case 1 :
if (_local5.x > right) {
area.ob._x = 100000 /* 0x0186A0 */;
} else {
area.ob._alpha = (1 - (_local3 / 500)) * 100;
area.ob._x = right + 30;
area.ob._y = _local4.y;
break;
if (_local5.y < top) {
area.ob._x = 100000 /* 0x0186A0 */;
} else {
area.ob._alpha = (1 - (_local3 / 500)) * 100;
area.ob._y = top - 30;
area.ob._x = _local4.x;
break;
if (_local5.y > bottom) {
area.ob._x = 100000 /* 0x0186A0 */;
} else {
area.ob._alpha = (1 - (_local3 / 500)) * 100;
area.ob._y = bottom + 30;
area.ob._x = _local4.x;
}
}
}
case 2 :
if (_local5.y < top) {
area.ob._x = 100000 /* 0x0186A0 */;
} else {
area.ob._alpha = (1 - (_local3 / 500)) * 100;
area.ob._y = top - 30;
area.ob._x = _local4.x;
break;
if (_local5.y > bottom) {
area.ob._x = 100000 /* 0x0186A0 */;
} else {
area.ob._alpha = (1 - (_local3 / 500)) * 100;
area.ob._y = bottom + 30;
area.ob._x = _local4.x;
}
}
case 3 :
if (_local5.y > bottom) {
area.ob._x = 100000 /* 0x0186A0 */;
} else {
area.ob._alpha = (1 - (_local3 / 500)) * 100;
area.ob._y = bottom + 30;
area.ob._x = _local4.x;
}
}
}
if (mouse_down) {
update_mc(cat_arrow, _local9, _local15);
} else if (human.flying()) {
update_mc(cat_arrow, _local16, _local4);
} else {
update_mc_90(cat_arrow, _local9, _local15);
}
if (mouse_down) {
var _local8 = _local5.x - _xmouse;
var _local7 = _local5.y - _ymouse;
bow_power = Math.sqrt((_local8 * _local8) + (_local7 * _local7));
_local8 = (bow_dir_x = _local8 / bow_power);
_local7 = (bow_dir_y = _local7 / bow_power);
bow_power = bow_power + 5;
if (bow_power > 150) {
bow_power = 150;
}
bow_power = bow_power / 1.5;
view.power.gotoAndStop(Math.round(bow_power / 5) + 1);
bow2.inner._yscale = bow_power * 1.5;
_local8 = _local8 * (bow_power * 0.05);
_local7 = _local7 * (bow_power * 0.05);
_local10.x = _local10.x + _local8;
_local10.y = _local10.y + _local7;
_local9.x = _local9.x - _local8;
_local9.y = _local9.y - _local7;
} else {
view.power.gotoAndStop(0);
bow2.inner._yscale = 10;
}
if (nstate == READY_STATE) {
_x = (((-ready_x) * sscale) + (Stage.width / 2));
_y = (((-ready_y) * sscale) + (Stage.height / 2));
} else if (nstate == GAME_STATE) {
_x = ((_x * 0.8) + ((((-human.pts[0].x) * sscale) + (Stage.width / 2)) * 0.2));
_y = ((_y * 0.8) + ((((-human.pts[0].y) * sscale) + (Stage.height / 2)) * 0.2));
_xscale = (sscale * 100);
_yscale = (sscale * 100);
} else if (nstate == PAUSE_STATE) {
_xscale = (sscale * 100);
_yscale = (sscale * 100);
_x = (((-ready_x) * sscale) + (Stage.width / 2));
_y = (((-ready_y) * sscale) + (Stage.height / 2));
} else {
_x = (((-human.pts[0].x) * sscale) + (Stage.width / 2));
_y = (((-human.pts[0].y) * sscale) + (Stage.height / 2));
}
view._x = ((-_x) + 350) / sscale;
view._y = ((-_y) + 120) / sscale;
view._xscale = 100 / sscale;
view._yscale = 100 / sscale;
view.level = "Hole : " + (hole + 1);
if (nstate == GAME_STATE) {
if (human.wire.cleared) {
nstate = RESULT_STATE;
view.gotoAndPlay("result");
}
if (_local5.y > (bottom + 100)) {
retire = true;
hole_score = hole_score + 20;
nstate = RESULT_STATE;
view.gotoAndPlay("result");
}
}
if (nstate == GAME_STATE) {
view.m = "" + hole_score;
view.par = "" + (hole_infos[hole].normal_score + 1);
} else if (nstate == RESULT_STATE) {
var _local14 = ["Condor", "Albatross", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Triple Bogey", "Quadruple Bogey"];
var _local11 = (hole_score - hole_infos[hole].normal_score) + 3;
var _local12 = _local11 - 4;
view.ms = (view.m = "Score : " + ((_local12 < 0) ? ("-" + (-_local12)) : ("+" + _local12)));
if ((_local11 < 0) || (_local11 >= _local14.length)) {
view.m2s = (view.m2 = "");
} else {
view.m2s = (view.m2 = _local14[_local11]);
}
if (retire) {
view.m2s = (view.m2 = "Drop Out");
}
view.levels = view.level;
sscale = (sscale * 0.8) + 0.7;
_xscale = (sscale * 100);
_yscale = (sscale * 100);
} else if (nstate == FINAL_STATE) {
var _local12 = score;
view.ms = (view.m = "Total Score : " + ((_local12 < 0) ? ("-" + (-_local12)) : ("+" + _local12)));
sscale = (sscale * 0.8) + 0.7;
_xscale = (sscale * 100);
_yscale = (sscale * 100);
}
}
this.stop();
var human;
var mouse_down = false;
var bow_power = 0;
var bow_dir_x;
var bow_dir_y;
var hole_score = 0;
var used_arrows = [];
var cat_scale = 0.5;
var GAME_STATE = 0;
var RESULT_STATE = 1;
var FINAL_STATE = 2;
var READY_STATE = 3;
var PAUSE_STATE = 4;
var nstate = READY_STATE;
var left;
var right;
var top;
var bottom;
var ready_x;
var ready_y;
var retire = false;
start_hole();
set_scale(cat_face, 20 * cat_scale);
set_scale(cat_body, 20 * cat_scale);
set_scale(cat_left_hand, 20 * cat_scale);
set_scale(cat_right_hand, 20 * cat_scale);
set_scale(cat_left_hand2, 20 * cat_scale);
set_scale(cat_right_hand2, 20 * cat_scale);
set_scale(bow, 20 * cat_scale);
set_scale(bow2, 20 * cat_scale);
Symbol 28 MovieClip Frame 1
stop();
Symbol 47 MovieClip [View] Frame 1
stop();
Instance of Symbol 2 MovieClip in Symbol 47 MovieClip [View] Frame 1
on (press) {
_parent._parent.go();
}
Symbol 47 MovieClip [View] Frame 2
stop();
Instance of Symbol 32 MovieClip in Symbol 47 MovieClip [View] Frame 2
on (press) {
_parent._parent.change_view();
}
Symbol 47 MovieClip [View] Frame 3
stop();
Symbol 47 MovieClip [View] Frame 4
stop();
Symbol 52 MovieClip Frame 1
_parent.pin = this;
Symbol 54 MovieClip Frame 1
_visible = false;
Symbol 58 MovieClip Frame 1
_visible = false;
_parent.ob = this;
Symbol 60 MovieClip Frame 1
_visible = false;
Symbol 110 MovieClip [__Packages.Human] Frame 0
class Human
{
var mc, mc2, pts, size, sscale, ready_count, walk_state, on_the_ground, wire;
function Human (nmc, nmc2, scale) {
mc = nmc;
mc2 = nmc2;
pts = new Array(16);
size = 3 * scale;
var _local4 = 3;
var _local5 = 3;
var _local2 = 6;
var _local3 = 6 * scale;
sscale = scale;
ready_count = -1;
pts[0] = new Vec(0, (-size) * 5);
pts[1] = new Vec(0, -size);
pts[2] = new Vec(0, _local2 * size);
pts[3] = new Vec((-_local4) * size, 0);
pts[4] = new Vec(_local4 * size, 0);
pts[5] = new Vec(-size, (_local2 * size) + (_local5 * size));
pts[6] = new Vec(size, (_local2 * size) + (_local5 * size));
pts[7] = new Vec(((-_local4) * 2) * size, 0);
pts[8] = new Vec((_local4 * 2) * size, 0);
pts[9] = new Vec(-size, (_local2 * size) + ((_local5 * 2) * size));
pts[10] = new Vec(size, (_local2 * size) + ((_local5 * 2) * size));
pts[11] = new Vec(-(_local3 * 1), _local2 * size);
pts[12] = new Vec(-(_local3 * 2), _local2 * size);
pts[13] = new Vec(-(_local3 * 3), _local2 * size);
pts[14] = new Vec(-(_local3 * 4), _local2 * size);
pts[15] = new Vec(-(_local3 * 5), _local2 * size);
pts[0].addLink(pts[1]);
pts[1].addLink(pts[2]);
pts[1].addLink(pts[3]);
pts[1].addLink(pts[4]);
pts[2].addLink(pts[5]);
pts[2].addLink(pts[6]);
pts[3].addLink(pts[7]);
pts[4].addLink(pts[8]);
pts[5].addLink(pts[9]);
pts[6].addLink(pts[10]);
pts[2].addLink(pts[11]);
pts[11].addLink(pts[12]);
pts[12].addLink(pts[13]);
pts[13].addLink(pts[14]);
pts[14].addLink(pts[15]);
pts[11].addLink(pts[13]);
pts[12].addLink(pts[14]);
pts[13].addLink(pts[15]);
pts[11].addLink(pts[14]);
pts[12].addLink(pts[15]);
pts[2].addLink(pts[0]);
pts[1].addLink(pts[11]);
pts[1].addLink(pts[15]);
pts[15].addLink(pts[1]);
walk_state = 0;
on_the_ground = 0;
wire = new Wire(nmc, right_hand(), scale);
}
function wire_handpos() {
return(wire.hand_pos());
}
function wire_top() {
return(wire.top());
}
function wire_top2() {
return(wire.top2());
}
function tail_tail() {
return(pts[15]);
}
function neck() {
return(pts[1]);
}
function head() {
return(pts[0]);
}
function hip() {
return(pts[2]);
}
function left_el() {
return(pts[3]);
}
function right_el() {
return(pts[4]);
}
function left_hand() {
return(pts[7]);
}
function right_hand() {
return(pts[8]);
}
function flying() {
return(wire.flying());
}
function trans(v) {
var _local2 = 0;
while (_local2 < pts.length) {
pts[_local2].x = pts[_local2].x + v.x;
pts[_local2].y = pts[_local2].y + v.y;
pts[_local2].px = pts[_local2].px + v.x;
pts[_local2].py = pts[_local2].py + v.y;
_local2++;
}
wire.trans(v);
}
function addForce(v) {
var _local2 = 0;
while (_local2 < pts.length) {
pts[_local2].x = pts[_local2].x + v.x;
pts[_local2].y = pts[_local2].y + v.y;
_local2++;
}
}
function draw() {
var _local5 = pts[2].x - pts[1].x;
var _local4 = pts[2].y - pts[1].y;
var _local7 = Math.sqrt((_local5 * _local5) + (_local4 * _local4));
_local5 = _local5 / _local7;
_local4 = _local4 / _local7;
_local5 = _local5 * (5 * sscale);
_local4 = _local4 * (5 * sscale);
var _local3 = -_local4;
var _local2 = _local5;
_local7 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
_local3 = _local3 / _local7;
_local2 = _local2 / _local7;
_local3 = _local3 * (2 * sscale);
_local2 = _local2 * (2 * sscale);
var _local8 = 0;
var _local9 = 4;
mc.lineStyle(_local9, _local8, 100);
mc.moveTo((pts[1].x + _local5) + _local3, (pts[1].y + _local4) + _local2);
mc.lineTo(pts[3].x, pts[3].y);
mc.lineTo(pts[7].x, pts[7].y);
mc2.lineStyle(_local9, _local8, 100);
mc2.moveTo((pts[1].x + _local5) - _local3, (pts[1].y + _local4) - _local2);
mc2.lineTo(pts[4].x, pts[4].y);
mc2.lineTo(pts[8].x, pts[8].y);
mc2.lineStyle(_local9, _local8, 100);
mc2.moveTo(pts[11].x, pts[11].y);
mc2.lineTo(pts[12].x, pts[12].y);
mc2.lineTo(pts[13].x, pts[13].y);
mc2.lineTo(pts[14].x, pts[14].y);
mc2.lineTo(pts[15].x, pts[15].y);
mc2.lineStyle(_local9, _local8, 100);
mc2.moveTo(pts[2].x - _local3, pts[2].y - _local2);
mc2.lineTo(pts[6].x, pts[6].y);
mc2.lineTo(pts[10].x, pts[10].y);
var _local6 = 5725045 /* 0x575B75 */;
var _local10 = 3;
mc.lineStyle(_local10, _local6, 100);
mc.moveTo((pts[1].x + _local5) + _local3, (pts[1].y + _local4) + _local2);
mc.lineTo(pts[3].x, pts[3].y);
mc.lineTo(pts[7].x, pts[7].y);
mc2.lineStyle(_local10, _local6, 100);
mc2.moveTo((pts[1].x + _local5) - _local3, (pts[1].y + _local4) - _local2);
mc2.lineTo(pts[4].x, pts[4].y);
mc2.lineTo(pts[8].x, pts[8].y);
mc2.lineStyle(_local10, _local6, 100);
mc2.moveTo(pts[11].x, pts[11].y);
mc2.lineTo(pts[12].x, pts[12].y);
mc2.lineTo(pts[13].x, pts[13].y);
mc2.lineTo(pts[14].x, pts[14].y);
mc2.lineTo(pts[15].x, pts[15].y);
mc.lineStyle(_local9, _local8, 100);
mc.moveTo(pts[2].x + _local3, pts[2].y + _local2);
mc.lineTo(pts[5].x, pts[5].y);
mc.lineTo(pts[9].x, pts[9].y);
mc.lineStyle(_local10, _local6, 100);
mc.moveTo(pts[2].x + _local3, pts[2].y + _local2);
mc.lineTo(pts[5].x, pts[5].y);
mc.lineTo(pts[9].x, pts[9].y);
mc2.lineStyle(_local10, _local6, 100);
mc2.moveTo(pts[2].x - _local3, pts[2].y - _local2);
mc2.lineTo(pts[6].x, pts[6].y);
mc2.lineTo(pts[10].x, pts[10].y);
mc2.lineStyle(8, 0, 100);
mc2.moveTo(pts[1].x, pts[1].y);
mc2.lineTo(pts[2].x, pts[2].y);
mc2.lineStyle(7, _local6, 100);
mc2.moveTo(pts[1].x, pts[1].y);
mc2.lineTo(pts[2].x, pts[2].y);
wire.draw();
}
function update() {
adjust();
var _local5 = false;
if (on_the_ground > 0) {
_local5 = true;
on_the_ground--;
if (on_the_ground > 6) {
wire.holdout();
}
}
var _local2 = 5 * size;
var _local6 = 80;
if (_local5) {
pts[0].y = pts[0].y - (0.01 * _local2);
pts[1].y = pts[1].y - (0.001 * _local2);
pts[5].x = pts[5].x - (0.001 * _local2);
pts[6].x = pts[6].x + (0.001 * _local2);
pts[9].y = pts[9].y + (0.02 * _local2);
pts[10].y = pts[10].y + (0.02 * _local2);
dx = pts[6].x - pts[5].x;
dy = pts[6].y - pts[5].y;
len = Math.sqrt((dx * dx) + (dy * dy));
dx = dx / len;
dy = dy / len;
pts[6].y = pts[6].y + ((dy * 0.001) * _local2);
pts[6].x = pts[6].x + ((dx * 0.004) * _local2);
pts[5].y = pts[5].y - ((dy * 0.001) * _local2);
pts[5].x = pts[5].x - ((dx * 0.001) * _local2);
pts[9].y = pts[9].y - ((dy * 0.001) * _local2);
pts[9].x = pts[9].x - ((dx * 0.004) * _local2);
pts[10].y = pts[10].y + ((dy * 0.001) * _local2);
pts[10].x = pts[10].x + ((dx * 0.001) * _local2);
} else {
if ((!wire.target) && (wire.fired)) {
i = 0;
while (i < pts.length) {
pts[i].y = pts[i].y + (0.005 * _local2);
i++;
}
} else {
i = 0;
while (i < pts.length) {
pts[i].y = pts[i].y + (0.035 * _local2);
i++;
}
}
pts[0].y = pts[0].y - (0.01 * _local2);
pts[1].y = pts[1].y - (0.001 * _local2);
dx = pts[6].x - pts[5].x;
dy = pts[6].y - pts[5].y;
len = Math.sqrt((dx * dx) + (dy * dy));
dx = dx / len;
dy = dy / len;
pts[6].y = pts[6].y - ((dy * 0.001) * _local2);
pts[6].x = pts[6].x - ((dx * 0.001) * _local2);
pts[5].y = pts[5].y + ((dy * 0.001) * _local2);
pts[5].x = pts[5].x + ((dx * 0.001) * _local2);
pts[9].y = pts[9].y + ((dy * 0.001) * _local2);
pts[9].x = pts[9].x + ((dx * 0.001) * _local2);
pts[10].y = pts[10].y - ((dy * 0.001) * _local2);
pts[10].x = pts[10].x - ((dx * 0.001) * _local2);
if (ready_count < 0) {
var _local4 = walk_state * 0.04;
var _local3 = 0.2;
pts[5].x = pts[5].x + (Math.cos(_local4) * _local3);
pts[5].y = pts[5].y + (Math.sin(_local4) * _local3);
pts[6].x = pts[6].x + (Math.cos(_local4 + Math.PI) * _local3);
pts[6].y = pts[6].y + (Math.sin(_local4 + Math.PI) * _local3);
pts[15].x = pts[15].x + (Math.cos(_local4) * _local3);
pts[15].y = pts[15].y + (Math.sin(_local4) * _local3);
walk_state++;
}
}
var dx = (((pts[2].x - pts[5].x) + pts[2].x) - pts[6].x);
var dy = (((pts[2].y - pts[5].y) + pts[2].y) - pts[6].y);
var len = Math.sqrt((dx * dx) + (dy * dy));
dx = dx / len;
dy = dy / len;
pts[1].y = pts[1].y + ((dy * 0.005) * _local2);
pts[1].x = pts[1].x + ((dx * 0.005) * _local2);
var i = 0;
while (i < pts.length) {
pts[i].update(0.95);
i++;
}
wire.update();
adjust();
if (ready_count >= 0) {
ready_count++;
}
}
function fire(power, dx, dy) {
wire.fire(power, dx, dy);
ready_count = -1;
}
function ready() {
ready_count = 0;
wire.clawback();
}
function adjust() {
var _local2 = 0;
while (_local2 < pts.length) {
pts[_local2].adjustLinks();
_local2++;
}
}
function hitTest(field) {
wire.hitTest(field);
var _local5;
var _local6;
var _local2 = 0;
while (_local2 < pts.length) {
_local5 = 0;
if (field.hitTest(pts[_local2].x, pts[_local2].y, true)) {
on_the_ground = 10;
_local6 = true;
if (ready_count >= 0) {
if ((_local2 == 9) || (_local2 == 10)) {
pts[_local2].x = pts[_local2].px;
pts[_local2].y = pts[_local2].py - 0.2;
_local6 = false;
} else if ((_local2 == 7) || (_local2 == 8)) {
_local6 = false;
}
}
if (_local6) {
pts[_local2].x = pts[_local2].x - pts[_local2].vx;
pts[_local2].y = pts[_local2].y - (pts[_local2].vy - 0.1);
do {
if (!field.hitTest(pts[_local2].x, pts[_local2].y, true)) {
break;
}
var _local4 = (-pts[_local2].vx) * 0.1;
var _local3 = (-pts[_local2].vy) * 0.1;
if (_local5 > 5) {
_local4 = _local4 + ((pts[2].x - pts[_local2].x) * 0.1);
_local3 = _local3 + ((pts[2].y - pts[_local2].y) * 0.1);
}
pts[_local2].x = pts[_local2].x + _local4;
pts[_local2].y = pts[_local2].y + _local3;
_local5++;
} while (_local5 <= 10);
}
}
_local2++;
}
}
}
Symbol 111 MovieClip [__Packages.Vec] Frame 0
class Vec
{
var x, y, px, py, vx, vy, links, distances;
function Vec (xx, yy) {
x = xx;
y = yy;
px = xx;
py = yy;
vx = 0;
vy = 0;
links = [];
distances = [];
}
function addLink(other) {
if (Math.random() < 0.5) {
links.push(other);
distances.push(distance(other));
} else {
links.unshift(other);
distances.unshift(distance(other));
}
}
function clearLinks() {
links = [];
distances = [];
}
function update(o) {
vx = x - px;
vy = y - py;
px = x;
py = y;
vx = vx * o;
vy = vy * o;
x = x + vx;
y = y + vy;
}
function distance(other) {
var _local3 = x - other.x;
var _local2 = y - other.y;
return(Math.sqrt((_local3 * _local3) + (_local2 * _local2)));
}
function adjustUnit(other, distance) {
var _local2 = other.x - x;
var _local3 = other.y - y;
var _local4 = Math.sqrt((_local2 * _local2) + (_local3 * _local3));
var _local5 = distance - _local4;
if (_local4 == 0) {
return(undefined);
}
_local2 = (_local2 / _local4) * (_local5 * 0.5);
_local3 = (_local3 / _local4) * (_local5 * 0.5);
x = x - _local2;
y = y - _local3;
other.x = other.x + _local2;
other.y = other.y + _local3;
}
function adjustUnitRate(other, distance, alpha) {
var _local2 = other.x - x;
var _local3 = other.y - y;
var _local5 = Math.sqrt((_local2 * _local2) + (_local3 * _local3));
var _local4 = distance - _local5;
if (_local5 == 0) {
return(undefined);
}
_local2 = _local2 / _local5;
_local3 = _local3 / _local5;
x = x - (_local2 * (_local4 * alpha));
y = y - (_local3 * (_local4 * alpha));
other.x = other.x + (_local2 * (_local4 * (1 - alpha)));
other.y = other.y + (_local3 * (_local4 * (1 - alpha)));
}
function adjustLinks() {
var _local2 = 0;
while (_local2 < links.length) {
adjustUnit(links[_local2], distances[_local2]);
_local2++;
}
}
function adjustLinks2(scale) {
var _local2 = 0;
while (_local2 < links.length) {
adjustUnit(links[_local2], distances[_local2] * scale);
_local2++;
}
}
function adjustLinks3(scale, alpha) {
var _local2 = 0;
while (_local2 < links.length) {
adjustUnitRate(links[_local2], distances[_local2] * scale, alpha);
_local2++;
}
}
}
Symbol 112 MovieClip [__Packages.Wire] Frame 0
class Wire
{
var mc, pts, size, sscale, hand, fired, holdouted, target, cleared, ob;
function Wire (nmc, nhand, scale) {
mc = nmc;
pts = [];
size = 5 * scale;
sscale = scale;
var _local2;
_local2 = 0;
while (_local2 < 10) {
pts.push(new Vec(0, _local2 * size));
_local2++;
}
_local2 = 0;
while (_local2 < (pts.length - 2)) {
pts[_local2].addLink(pts[_local2 + 1]);
_local2++;
}
hand = nhand;
fired = false;
holdouted = 0;
}
function handpos() {
return(pts[0]);
}
function top() {
return(pts[pts.length - 1]);
}
function top2() {
return(pts[pts.length - 2]);
}
function flying() {
return(fired);
}
function fire(power, dx, dy) {
var _local2 = top();
_local2.px = (_local2.x = _local2.x + (dx * 75));
_local2.py = (_local2.y = _local2.y + (dy * 75));
_local2.x = _local2.x + ((dx * power) * 0.25);
_local2.y = _local2.y + ((dy * power) * 0.25);
fired = true;
target = false;
holdouted = 0;
}
function clawback() {
fired = false;
target = false;
holdouted = 0;
}
function holdout() {
if (fired && (!target)) {
holdouted = holdouted + 2;
}
}
function update() {
var _local3 = top();
var _local4 = top2();
var _local2;
if (target) {
_local3.x = target.x;
_local3.y = target.y;
_local4.x = _local4.px;
_local4.y = _local4.py;
} else {
_local3.y = _local3.y + 0.1;
_local4.y = _local4.y + 0.1;
}
if (holdouted > 20) {
_local3.adjustUnitRate(_local4, 75 * sscale, 0.5);
} else {
_local3.adjustUnitRate(_local4, 75 * sscale, 0.001);
}
if (fired && (!target)) {
_local2 = 0;
while (_local2 < (pts.length - 1)) {
pts[_local2].update(0.98);
pts[_local2].y = pts[_local2].y + 0.1;
_local2++;
}
_local3.update(1);
_local3.y = _local3.y + 0.1;
} else {
_local2 = 0;
while (_local2 < pts.length) {
pts[_local2].update(1);
pts[_local2].y = pts[_local2].y + 0.1;
_local2++;
}
}
_local2 = 0;
while (_local2 < pts.length) {
pts[_local2].adjustLinks(size);
_local2++;
}
if (fired) {
if (holdouted > 20) {
hand.adjustUnitRate(pts[0], 0.1, 0.5);
} else {
hand.adjustUnitRate(pts[0], 0.1, 0.5);
hand.adjustUnitRate(pts[0], 0.1, 0.5);
}
} else {
pts[pts.length - 1].x = (pts[pts.length - 1].x * 0.95) + (pts[0].x * 0.05);
pts[pts.length - 1].y = (pts[pts.length - 1].y * 0.95) + (pts[0].y * 0.05);
pts[0].x = hand.x;
pts[0].y = hand.y;
_local4.x = (_local3.x = hand.x);
_local4.y = (_local3.y = hand.y);
}
holdouted--;
}
function draw() {
mc.lineStyle(1, 16777215, 100);
mc.moveTo(hand.x, hand.y);
var _local2 = 0;
while (_local2 < (pts.length - 1)) {
mc.lineTo(pts[_local2].x, pts[_local2].y);
_local2++;
}
}
function hitTest(field) {
if ((!fired) || (target)) {
return(undefined);
}
var _local2 = pts.length - 1;
if (field.hitTest(pts[_local2].x, pts[_local2].y, true)) {
target = new Vec(pts[_local2].x, pts[_local2].y);
if (field.pin.hitTest(pts[_local2].x, pts[_local2].y, true)) {
cleared = true;
}
if (field.ob.hitTest(pts[_local2].x, pts[_local2].y, true)) {
ob = true;
}
}
}
function trans(v) {
var _local2 = 0;
while (_local2 < pts.length) {
pts[_local2].x = pts[_local2].x + v.x;
pts[_local2].y = pts[_local2].y + v.y;
pts[_local2].px = pts[_local2].px + v.x;
pts[_local2].py = pts[_local2].py + v.y;
_local2++;
}
}
function addForce(v) {
var _local2 = 0;
while (_local2 < pts.length) {
pts[_local2].x = pts[_local2].x + v.x;
pts[_local2].y = pts[_local2].y + v.y;
_local2++;
}
}
}
Symbol 103 MovieClip Frame 1
inner._yscale = 10;
Symbol 109 MovieClip Frame 1
inner.scaleY = 10;