fscommand ("fullscreen", "true");
Mensajes = 0;
// Player:
attachMovie("sMarioDK", "Player", 1001);
setProperty ("Player", _x, 20);
setProperty ("Player", _y, 568);
// Determinan a qué función se llama:
Player.Action = "Quiet";
Player.Action2 = "Quiet";
Player.Facing = 1;
MarioDKHP = 1;
MarioDKDF = 1;
MarioDKMPMax = 1;
MarioDKMP = 1;
MarioDKMPRecovery = 0.005;
MarioDKPower = 2;
MarioDKSpeed = 1.5;
// MarioDKFR = (MarioDKPower + MarioDKSpeed) / 2;
// La animación avanza cuando esto llega a 100:
MarioDKTurn = 0;
// La velocidad de la animación puede depender de la velocidad...
// de caminar, o de la fuerza, etc:
MarioDKTic = MarioDKSpeed*1.5;
// Para que al empezar a caminar o a quedarse quieto,
// el martillo quede como estaba, arriba o abajo,
// en el mismo nro de frame:
Player.EtapaDeMartillo = 1;
Player.ResetearEtapaDeMartillo = "No";
DKSnapjawDF = 2;
DKSnapjawImpact = 1;
DKSnapjawSpeed = 1;
// IA:
attachMovie("sDK", "IA", 1000);
setProperty ("IA", _x, 780);
setProperty ("IA", _y, 568);
IA.Action2 = "Quiet";
IA.Facing = -1;
// setProperty ("IA", _xscale, -100);
DKHP = 10;
DKDF = 2;
DKSpeed = 0.5;
DKImpact = -1;
IATurn = 0;
// Escenario:
attachMovie("sDKSuelo", "Suelo", 0);
setProperty ("Suelo", _x, 0);
setProperty ("Suelo", _y, 568);
// Extras:
LdeProfundidadesDisponibles = [];
ValoraAgregar = 0;
do {
ValoraAgregar++;
LdeProfundidadesDisponibles.push(ValoraAgregar);
} while (ValoraAgregar<999);
delete ValoraAgregar;
// Para saber cuales devolver a la anterior lista cuando dejen...
// de usarse (cuando el Extra se remueva):
LdeProfundidadesUsandose = [];
// Para saber a qué función llamar:
LdeExtrasSinNumero = [];
// Para chequear colisiones:
LdeExtras = [];
// /////////////////////////////////////////////
// ////////////////// Most ///////////////////
// /////////////////////////////////////////////
function FaceRight (Character) {
if (eval(Character+".Facing") == -1) {
set (Character+".Facing", 1);
eval(Character)._xscale = 100;
}
}
function FaceLeft (Character) {
if (eval(Character+".Facing") == 1) {
set (Character+".Facing", -1);
eval(Character)._xscale = -100;
}
}
// /////////////////////////////////////////////
// ////////////////// Mario //////////////////
// /////////////////////////////////////////////
// Power up: Puede convocar al mandíbula de modo que esté quieto...
// o se mueva.
function ControlMario () {
if (Key.isDown(83)) {
// Si se presiona S.
eval("SWhen"+Player.Action+Player.Action2)();
} else if (Key.isDown(32)) {
// Espacio:
eval("SpaceWhen"+Player.Action+Player.Action2)();
} else if (Key.isDown(39)) {
// Derecha:
eval("RightWhen"+Player.Action+Player.Action2)();
} else if (Key.isDown(37)) {
// Izquierda:
eval("LeftWhen"+Player.Action+Player.Action2)();
} else {
// Nada:
eval("QuietWhen"+Player.Action+Player.Action2)();
}
MarioDKTurn = MarioDKTurn+MarioDKTic;
if (MarioDKTurn>=10) {
MarioDKTurn = MarioDKTurn-10;
Player.EtapaDeMartillo++;
if (Player.EtapaDeMartillo == 7) {
Player.EtapaDeMartillo = 1;
}
Player.Movie.play();
}
if (MarioDKMP<MarioDKMPMax) {
MarioDKMP = MarioDKMP+MarioDKMPRecovery;
if (MarioDKMP>MarioDKMPMax) {
MarioDKMP = MarioDKMPMax;
}
}
}
// When QuietQuiet:
function SWhenQuietQuiet () {
Whip();
}
function RightWhenQuietQuiet () {
StartToWalk();
WalkToRight();
}
function LeftWhenQuietQuiet () {
StartToWalk();
WalkToLeft();
}
// When QuietWalking:
function SWhenQuietWalking () {
Player.Action2 = "Quiet";
Whip();
}
function RightWhenQuietWalking () {
WalkToRight();
}
function LeftWhenQuietWalking () {
WalkToLeft();
}
function QuietWhenQuietWalking () {
Player.Action2 = "Quiet";
Quiet();
}
// To whens:
function Whip () {
Player.Action = "Whiping";
MarioDKTic = MarioDKPower/2;
Player.gotoAndStop(3);
if (MarioDKMP>=1) {
MarioDKMP--;
// La 1er profundidad disponible moverla a la...
// lista de usandose:
LdeProfundidadesUsandose[LdeProfundidadesUsandose.length] = LdeProfundidadesDisponibles.shift();
// Para evitar hacer .length-1 repetidamente:
ProfundidadElegida = LdeProfundidadesUsandose[LdeProfundidadesUsandose.length-1];
LdeExtrasSinNumero[LdeExtrasSinNumero.length] = "DKSnapjaw";
Extra = "DKSnapjaw"+ProfundidadElegida;
LdeExtras[LdeExtras.length] = Extra;
attachMovie("sDKSnapjaw", Extra, ProfundidadElegida);
setProperty (Extra, _x, Player._x+Player.Facing*25);
setProperty (Extra, _y, 568);
set (Extra+".Facing", Player.Facing);
if (Player.Facing == -1) {
setProperty (Extra, _xscale, -100);
}
set (Extra+"Turn", 0);
}
}
function StartToWalk () {
Player.Action2 = "Walking";
MarioDKTic = MarioDKSpeed*1.5;
Player.gotoAndStop(2);
}
function WalkToRight () {
Player._x = Player._x+MarioDKSpeed;
FaceRight("Player");
}
function WalkToLeft () {
Player._x = Player._x-MarioDKSpeed;
FaceLeft("Player");
}
function Quiet () {
Player.Action2 = "Quiet";
Player.gotoAndStop(1);
}
// /////////////////////////////////////////////
// /////////////////// DK ////////////////////
// /////////////////////////////////////////////
// Power up: Puede caminar.
function DKVsDKMario () {
Distancia = IA._x-Player._x;
if (Distancia>0) {
IA._x = IA._x-DKSpeed;
IA.Action2 = "Walking";
// IA.gotoAndStop(2);
// FaceLeft("IA");
} else if (Distancia<0) {
IA._x = IA._x+DKSpeed;
IA.Action2 = "Walking";
// IA.gotoAndStop(2);
// FaceRight("IA");
} else {
IA.Action2 = "Quiet";
// IA.gotoAndStop(1);
// FaceLeft("IA");
}
IATurn = IATurn+DKSpeed/2;
if (IATurn>=10) {
IATurn = IATurn-10;
IA.play();
}
if (IA.hitTest(Player)) {
Damage = DKDF+DKImpact-DKMarioDF;
if (Damage>0) {
MarioDKHP = MarioDKHP-Damage;
Mensajes++;
if (Mensajes == 1000) {
Mensajes = 1;
}
Mensaje = "Mensaje"+Mensajes;
attachMovie("sDamage", Mensaje, 1001+Mensajes);
setProperty (Mensaje, _x, Player._x);
setProperty (Mensaje, _y, Player._y-Player._height/1.5);
set (Mensaje+".Damage", Damage);
}
}
}
// /////////////////////////////////////////////
// ////////////////// Extras /////////////////
// /////////////////////////////////////////////
// Utiliza los códigos de todos los extras presentes:
function ExtrasCode () {
ExtraDeTurno = 0;
while (ExtraDeTurno<LdeExtras.length) {
eval(LdeExtrasSinNumero[ExtraDeTurno]+"Code")(LdeExtras[ExtraDeTurno]);
// trace("name es "+LdeExtras[ExtraDeTurno]);
ExtraDeTurno++;
}
}
function DKSnapjawCode (name) {
// trace("aplicando a "+name);
// Distancia = getProperty(name, _x) - IA._x;
Distancia = getProperty(name, _x) - 1000;
if (Distancia>0) {
setProperty (name, _x, getProperty(name, _x)-DKSnapjawSpeed);
FaceLeft(name);
} else if (Distancia<0) {
setProperty (name, _x, getProperty(name, _x)+DKSnapjawSpeed);
FaceRight(name);
}
nameTurn = name+"Turn";
EvaluednameTurn = eval(nameTurn)+1;
if (EvaluednameTurn>=10) {
EvaluednameTurn = EvaluednameTurn-10;
eval(name).play();
}
set (nameTurn, EvaluednameTurn);
// Se verá si este extra colisiona con algún otro:
if (eval(name).hitTest(IA)) {
Damage = DKSnapjawDF+DKSnapjawImpact-DKDF;
if (Damage>0) {
DKHP = DKHP-Damage;
Mensajes++;
if (Mensajes == 1000) {
Mensajes = 1;
}
Mensaje = "Mensaje"+Mensajes;
attachMovie("sDamage", Mensaje, 1001+Mensajes);
setProperty (Mensaje, _x, IA._x+Math.random()*50-25);
setProperty (Mensaje, _y, IA._y-IA._height/1.5);
set (Mensaje+".Damage", Damage);
}
}
ExtraaChequar = 0;
while (ExtraaChequar<LdeExtras.length) {
if (eval(name).hitTest(eval(LdeExtras[ExtraaChequar]))) {
// Sí. El efecto sucederá sólo si es rival:
if (LdeExtrasSinNumero[ExtraDeTurno] != "DKSnapjaw") {
trace ("colisión");
// ojo que no diga que se autocolisionó
Damage = 99;
Mensajes++;
if (Mensajes == 1000) {
Mensajes = 1;
}
Mensaje = "Mensaje"+Mensajes;
attachMovie("sDamage", Mensaje, 1001+Mensajes);
setProperty (Mensaje, _x, getProperty(name, _x));
setProperty (Mensaje, _y, getProperty(name, _y)-getProperty(name, _height)/1.5);
set (Mensaje+".Damage", Damage);
}
}
ExtraaChequar++;
}
}