565 lines
19 KiB
JavaScript
565 lines
19 KiB
JavaScript
//WEAPONクラスを作るときの設定値みたいなもん
|
|
function WEAPON_MAKER(name, level) {
|
|
const atk_num_level = $gameTemp.SURVIVOR_player_data.ability_level.find((e) => e.id == "atk_num")?.level || 0;
|
|
|
|
// アビリティとステータスの弾数を合計したもの
|
|
var abi_num = SURVIVOR_ABILITY_DATA.atk_num[atk_num_level] || 0 + $gameTemp.SURVIVOR_player_data.atk_num || 0;
|
|
if (name == "fire") {
|
|
var num = [0, 1, 2, 3, 4, 5];
|
|
this.num = num[level] + abi_num; //何個作る?
|
|
} else if (name == "thunder") {
|
|
var num = [0, 1, 1, 2, 2, 3];
|
|
this.num = num[level] + abi_num;
|
|
this.wave = 3; // num以外全部いらんかも、このMAKERのヤツ
|
|
this.rag = 4;
|
|
this.t = 0;
|
|
} else if (name == "ice") {
|
|
var num = [0, 2, 3, 4, 5, 7];
|
|
this.num = num[level] + abi_num; //クールタイム毎に何個出す?
|
|
} else if (name == "maryoku_gun") {
|
|
var num = [0, 1, 2, 3, 4, 5];
|
|
this.num = num[level] + abi_num; //クールタイム毎に何個出す?
|
|
this.wave = 8; //同時に何個のナイフを飛ばすか
|
|
this.rag = 4; //同時に飛ばした場合のフレーム差
|
|
this.t = 0;
|
|
} else if (name == "oboro") {
|
|
var num = [0, 1, 2, 3, 4, 5];
|
|
this.num = num[level] + abi_num;
|
|
this.wave = num[level] + abi_num; //同時に何個のナイフを飛ばすか
|
|
this.rag = 3; //同時に飛ばした場合のフレーム差
|
|
this.t = 0;
|
|
} else if (name == "houou_soutou") {
|
|
var num = [0, 2, 2, 3, 3, 4];
|
|
this.num = num[level] + abi_num;
|
|
this.wave = num[level] + abi_num; //同時に何個のナイフを飛ばすか
|
|
this.rag = 3; //同時に飛ばした場合のフレーム差
|
|
this.t = 0;
|
|
} else if (name == "sword") {
|
|
var num = [0, 1, 1, 1, 1, 1];
|
|
this.num = 1;
|
|
this.wave = 1; //同時に何個のナイフを飛ばすか
|
|
this.rag = 3; //同時に飛ばした場合のフレーム差
|
|
this.t = 0;
|
|
}
|
|
}
|
|
|
|
function WEAPON(name, id, maker, level) {
|
|
this.name = name;
|
|
this.id = Math.floor(Math.random() * 100000);
|
|
this.x = 0;
|
|
this.y = 0;
|
|
this.disX = 0;
|
|
this.disY = 0;
|
|
this.opacity = 255;
|
|
|
|
if (name == "fire") {
|
|
this.anchorX = 0.5;
|
|
this.anchorY = 0.5;
|
|
this.damage = 7 + level * 2;
|
|
this.r = 17; //炎の大きさ レベルアップで大きくなる
|
|
this.r2 = 100 + level * 20; //軌道の大きさ
|
|
this.kb = { f: 4, power: 10 }; //ノックバック
|
|
this.cool = 10;
|
|
this.img = "!Flame";
|
|
this.img_indexX = 0;
|
|
this.img_indexY = 0;
|
|
this.img_width = 48;
|
|
this.img_height = 48;
|
|
this.num = maker.num; //総数
|
|
this.order = id;
|
|
this.t = 0; // tの初期値
|
|
this.base_scale = 1;
|
|
|
|
// this.r += 4 * this.level;
|
|
// this.damage += 4 * this.level;
|
|
|
|
this.update_orbit = function () {
|
|
//グルグル回転
|
|
this.x = (Graphics.width - SURVIVOR_CONST.RIGHT_MARGIN) / 2 + this.r2 * Math.cos(this.t / 10 + (3.14 * 2 * this.order) / this.num);
|
|
this.y = Graphics.height / 2 + this.r2 * Math.sin(this.t / 10 + (3.14 * 2 * this.order) / this.num);
|
|
//面白かったので残す
|
|
//this.x = (Graphics.width - SURVIVOR_CONST.RIGHT_MARGIN)/2 + this.r2 * Math.cos(this.t/10 + 3.14*2/this.order/(this.num/2));
|
|
//this.y = Graphics.height/2 + this.r2 * Math.sin(this.t/10 + 3.14*this.order/(this.num/2));
|
|
|
|
//プレイヤーの移動分を補正
|
|
this.x -= ($gameMap._parallaxX - this.disX) * 48;
|
|
this.disX = $gameMap._parallaxX;
|
|
this.y -= ($gameMap._parallaxY - this.disY) * 48;
|
|
this.disY = $gameMap._parallaxY;
|
|
|
|
this.t += 0.8 * $gameTemp.SURVIVOR_player_data.atk_speed;
|
|
};
|
|
} else if (name == "thunder") {
|
|
this.anchorX = 0.5;
|
|
this.anchorY = 0.5;
|
|
this.damage = 10 + level * 4;
|
|
this.r = 40 * (1 + level / 5);
|
|
this.base_scale = 0.5 * (1 + level / 5);
|
|
this.kb = { f: 4, power: 20 };
|
|
this.cool = 20; // これもう必要なくね?
|
|
this.count = 0; //攻撃した敵の数
|
|
this.count_max = 10 + level * 5; //攻撃できる数
|
|
this.speed = 1;
|
|
this.rate = 310; // 何フレーム毎に出すか
|
|
this.img = "Thunder2";
|
|
this.img_indexX = 0;
|
|
this.img_indexY = 0;
|
|
this.img_width = 192;
|
|
this.img_height = 192;
|
|
this.dir = 2 * 3.14 * Math.random();
|
|
this.x = (Graphics.width - SURVIVOR_CONST.RIGHT_MARGIN) / 2;
|
|
this.y = Graphics.height / 2;
|
|
this.t = maker.t;
|
|
|
|
this.disX = $gameMap._parallaxX;
|
|
this.disY = $gameMap._parallaxY;
|
|
|
|
this.update_orbit = function () {
|
|
//まっすぐ進む
|
|
this.x += Math.cos(this.dir) * this.speed * $gameTemp.SURVIVOR_player_data.atk_speed;
|
|
this.y += Math.sin(this.dir) * this.speed * $gameTemp.SURVIVOR_player_data.atk_speed;
|
|
|
|
//プレイヤーの移動分を補正
|
|
this.x -= ($gameMap._parallaxX - this.disX) * 48;
|
|
this.disX = $gameMap._parallaxX;
|
|
this.y -= ($gameMap._parallaxY - this.disY) * 48;
|
|
this.disY = $gameMap._parallaxY;
|
|
|
|
this.opacity = 255;
|
|
if ((this.rate - 60) * $gameTemp.SURVIVOR_player_data.atk_rate < this.t % (this.rate * $gameTemp.SURVIVOR_player_data.atk_rate)) {
|
|
if (this.t % 2 == 0) {
|
|
this.opacity = 0;
|
|
}
|
|
}
|
|
|
|
this.t++;
|
|
if (this.rate * $gameTemp.SURVIVOR_player_data.atk_rate < this.t) {
|
|
this.id = Math.floor(Math.random() * 100000);
|
|
this.dir = 2 * 3.14 * Math.random();
|
|
this.t = 0;
|
|
this.x = (Graphics.width - SURVIVOR_CONST.RIGHT_MARGIN) / 2;
|
|
this.y = Graphics.height / 2;
|
|
this.count = 0;
|
|
this.break = false;
|
|
}
|
|
};
|
|
} else if (name == "ice") {
|
|
this.anchorX = 0.5;
|
|
this.anchorY = 0.8;
|
|
this.damage = 9 + level * 3;
|
|
this.cool = 3;
|
|
this.r = 40; //氷の大きさ
|
|
this.r2 = 180; //出現範囲の大きさ
|
|
this.kb = { f: 3, power: 10 };
|
|
this.cool_idi = 8; //次の氷が出るまで
|
|
this.cool_all = 240; //次の氷全部リセット
|
|
this.img = "Ice4";
|
|
this.img_indexX = 0;
|
|
this.img_indexY = 0;
|
|
this.img_width = 192;
|
|
this.img_height = 192;
|
|
this.count = 0; //攻撃した敵の数
|
|
this.count_max = 30; //攻撃できる数
|
|
this.order = id;
|
|
this.t = 0;
|
|
this.base_scale = 0.5;
|
|
|
|
this.update_orbit = function () {
|
|
//残り時間60fで点滅
|
|
this.opacity = 255;
|
|
if ((this.cool_all - 60) * $gameTemp.SURVIVOR_player_data.atk_rate < this.t % (this.cool_all * $gameTemp.SURVIVOR_player_data.atk_rate)) {
|
|
if (this.t % 2 == 0) {
|
|
this.opacity = 0;
|
|
}
|
|
}
|
|
|
|
//プレイヤーの移動分を補正
|
|
this.x -= ($gameMap._parallaxX - this.disX) * 48;
|
|
this.disX = $gameMap._parallaxX;
|
|
this.y -= ($gameMap._parallaxY - this.disY) * 48;
|
|
this.disY = $gameMap._parallaxY;
|
|
|
|
// 最初
|
|
if (this.cool_all * $gameTemp.SURVIVOR_player_data.atk_rate < this.t) {
|
|
var rad = 3.14 * 2 * Math.random();
|
|
var r = this.r2 * Math.random();
|
|
this.x = (Graphics.width - SURVIVOR_CONST.RIGHT_MARGIN) / 2 + r * Math.cos(rad);
|
|
this.y = Graphics.height / 2 + r * Math.sin(rad);
|
|
this.break = false;
|
|
this.count = 0;
|
|
this.t = 0;
|
|
}
|
|
|
|
this.t++;
|
|
};
|
|
} else if (name == "maryoku_gun") {
|
|
this.anchorX = 0.5;
|
|
this.anchorY = 0.5;
|
|
this.damage = 10 + level * 2;
|
|
this.r = 50;
|
|
this.kb = { f: 4, power: 20 };
|
|
this.cool = 2;
|
|
this.count = 0; //攻撃した敵の数
|
|
this.count_max = 1 + level * 2; //攻撃できる数
|
|
this.speed = 5;
|
|
this.num = maker.num; //1度に発射される総数
|
|
this.rate = 40; // 発射感覚
|
|
this.rate2 = 4; // 単発の発射間隔
|
|
this.rate_all = this.rate * 5; //一巡の発射感覚
|
|
this.order = id;
|
|
this.img = "maryoku_gun";
|
|
this.img_indexX = 0;
|
|
this.img_indexY = 0;
|
|
this.img_width = 24;
|
|
this.img_height = 24;
|
|
this.dir = Survivor_var.player_dir;
|
|
this.x = (Graphics.width - SURVIVOR_CONST.RIGHT_MARGIN) / 2; //キャラの中心
|
|
this.y = Graphics.height / 2;
|
|
this.t = Math.floor(this.order / this.num) * this.rate + (this.order % this.num) * this.rate2;
|
|
this.base_scale = 1;
|
|
this.break = true;
|
|
|
|
this.disX = $gameMap._parallaxX;
|
|
this.disY = $gameMap._parallaxY;
|
|
|
|
this.update_orbit = function () {
|
|
//まっすぐ進む
|
|
this.x += Math.cos(this.dir) * this.speed * $gameTemp.SURVIVOR_player_data.atk_speed;
|
|
this.y += Math.sin(this.dir) * this.speed * $gameTemp.SURVIVOR_player_data.atk_speed;
|
|
|
|
//プレイヤーの移動分を補正
|
|
this.x -= ($gameMap._parallaxX - this.disX) * 48;
|
|
this.disX = $gameMap._parallaxX;
|
|
this.y -= ($gameMap._parallaxY - this.disY) * 48;
|
|
this.disY = $gameMap._parallaxY;
|
|
|
|
this.t += 1 / $gameTemp.SURVIVOR_player_data.atk_rate;
|
|
if (this.rate_all < this.t) {
|
|
this.id = Math.floor(Math.random() * 100000);
|
|
this.dir = Survivor_var.player_dir;
|
|
this.t = 0;
|
|
this.x = (Graphics.width - SURVIVOR_CONST.RIGHT_MARGIN) / 2;
|
|
this.y = Graphics.height / 2;
|
|
this.count = 0;
|
|
this.break = false;
|
|
}
|
|
};
|
|
} else if (name == "oboro") {
|
|
this.anchorX = 0.427;
|
|
this.anchorY = 0.72;
|
|
this.damage = 22 + level * 5;
|
|
this.r = 42.42;
|
|
this.kb = { f: 5, power: 30 };
|
|
this.cool = 20;
|
|
this.count = 0; //攻撃した敵の数
|
|
this.count_max = 3 + level * 2; //攻撃できる数
|
|
this.speed = 1;
|
|
this.speed_dir = 4 * Math.random() - 2; // -1 ~ +1
|
|
this.rate = 120; // 何フレーム毎に出すか
|
|
this.rate2 = 4; // 何フレーム毎に出すか
|
|
this.rate_all = this.rate * 5; // 何フレーム毎に出すか
|
|
this.kasokudo = -10;
|
|
this.img = "Weapons4";
|
|
this.img_indexX = 0;
|
|
this.img_indexY = 1;
|
|
this.img_width = 96;
|
|
this.img_height = 64;
|
|
this.img_indexX_list = [1];
|
|
this.dir = Survivor_var.player_dir;
|
|
this.x = (Graphics.width - SURVIVOR_CONST.RIGHT_MARGIN) / 2; //キャラの中心
|
|
this.y = Graphics.height / 2;
|
|
this.num = maker.num; //総数
|
|
this.order = id;
|
|
this.t = Math.floor(this.order / this.num) * this.rate + (this.order % this.num) * this.rate2;
|
|
this.base_scale = 1;
|
|
this.break = true;
|
|
|
|
this.disX = $gameMap._parallaxX;
|
|
this.disY = $gameMap._parallaxY;
|
|
|
|
this.update_orbit = function () {
|
|
// max速度は30まで
|
|
if (this.kasokudo < 8) {
|
|
this.kasokudo += 0.3;
|
|
}
|
|
|
|
//放物線
|
|
this.x += this.speed * this.speed_dir * $gameTemp.SURVIVOR_player_data.atk_speed;
|
|
this.y += this.kasokudo * this.speed * $gameTemp.SURVIVOR_player_data.atk_speed;
|
|
this.rotation = -this.t / 3.14;
|
|
|
|
//プレイヤーの移動分を補正
|
|
this.x -= ($gameMap._parallaxX - this.disX) * 48;
|
|
this.disX = $gameMap._parallaxX;
|
|
this.y -= ($gameMap._parallaxY - this.disY) * 48;
|
|
this.disY = $gameMap._parallaxY;
|
|
|
|
this.t += 1 / $gameTemp.SURVIVOR_player_data.atk_rate;
|
|
if (this.rate_all < this.t) {
|
|
this.id = Math.floor(Math.random() * 100000);
|
|
this.dir = Survivor_var.player_dir;
|
|
this.t = 0;
|
|
this.x = (Graphics.width - SURVIVOR_CONST.RIGHT_MARGIN) / 2;
|
|
this.y = Graphics.height / 2;
|
|
this.kasokudo = -10;
|
|
this.y_total = 0;
|
|
this.speed_dir = 2 * Math.random() - 1;
|
|
this.count = 0;
|
|
this.break = false;
|
|
}
|
|
};
|
|
} else if (name == "houou_soutou") {
|
|
this.anchorX = 0.427;
|
|
this.anchorY = 0.72;
|
|
this.damage = 12 + level * 2;
|
|
this.r = 40.1;
|
|
this.r2 = 0; // 回転の半径
|
|
this.kb = { f: 5, power: 30 };
|
|
this.cool = 20;
|
|
this.count = 0; //攻撃した敵の数
|
|
this.count_max = 5 + level * 3; //攻撃できる数
|
|
this.order = id;
|
|
this.num = maker.num; //総数
|
|
this.speed = 0.5;
|
|
this.rate = 200; // 何フレーム毎に出すか
|
|
this.rate2 = 4; // 何フレーム毎に出すか
|
|
this.rate_all = this.rate * 5; // 何フレーム毎に出すか
|
|
this.kasokudo = -10;
|
|
this.img = "Weapons1";
|
|
this.img_indexX = 0;
|
|
this.img_indexY = 1;
|
|
this.img_width = 96;
|
|
this.img_height = 64;
|
|
this.img_indexX_list = [1];
|
|
this.dir = Survivor_var.player_dir;
|
|
this.x = (Graphics.width - SURVIVOR_CONST.RIGHT_MARGIN) / 2; //キャラの中心
|
|
this.y = Graphics.height / 2;
|
|
this.base_x = (Graphics.width - SURVIVOR_CONST.RIGHT_MARGIN) / 2; //キャラの中心
|
|
this.base_y = Graphics.height / 2;
|
|
this.t = Math.floor(this.order / this.num) * this.rate + (this.order % this.num) * this.rate2;
|
|
this.base_scale = 1;
|
|
this.disX = $gameMap._parallaxX;
|
|
this.disY = $gameMap._parallaxY;
|
|
this.break = true;
|
|
this.update_orbit = function () {
|
|
//回転
|
|
var speed = this.speed * $gameTemp.SURVIVOR_player_data.atk_speed;
|
|
this.x = this.base_x;
|
|
this.x += this.r2 * Math.cos((this.t / 20) * speed + (3.14 * 2 * this.order) / this.num);
|
|
|
|
this.y = this.base_y;
|
|
this.y += this.r2 * Math.sin((this.t / 20) * speed + (3.14 * 2 * this.order) / this.num);
|
|
this.rotation = -this.t / 3.14;
|
|
this.r2 += 1 * speed;
|
|
//プレイヤーの移動分を補正
|
|
this.base_x -= ($gameMap._parallaxX - this.disX) * 48;
|
|
this.disX = $gameMap._parallaxX;
|
|
this.base_y -= ($gameMap._parallaxY - this.disY) * 48;
|
|
this.disY = $gameMap._parallaxY;
|
|
this.t += 1 / $gameTemp.SURVIVOR_player_data.atk_rate;
|
|
if (this.rate_all < this.t) {
|
|
this.id = Math.floor(Math.random() * 100000);
|
|
this.dir = Survivor_var.player_dir;
|
|
this.t = 0;
|
|
|
|
this.x = (Graphics.width - SURVIVOR_CONST.RIGHT_MARGIN) / 2;
|
|
this.y = Graphics.height / 2;
|
|
this.base_x = (Graphics.width - SURVIVOR_CONST.RIGHT_MARGIN) / 2;
|
|
this.base_y = Graphics.height / 2;
|
|
|
|
this.y_total = 0;
|
|
this.r2 = 0;
|
|
this.count = 0;
|
|
this.break = false;
|
|
}
|
|
};
|
|
} else if (name == "sword") {
|
|
this.anchorX = 0.427;
|
|
this.anchorY = 0.72;
|
|
this.damage = 15 + level * 15;
|
|
this.r = 67.88;
|
|
this.r2 = 150;
|
|
this.kb = { f: 5, power: 20 };
|
|
this.cool = 20;
|
|
this.count = 0; //攻撃した敵の数
|
|
this.count_max = 10 + level * 5; //攻撃できる数
|
|
this.speed = 0.5;
|
|
this.rate = 90; // 何フレーム毎に出すか
|
|
this.rate_dispIdx = 0; // 何枚目を表示するか
|
|
this.img = "Slash";
|
|
this.img_indexX = 0;
|
|
this.img_indexY = 0;
|
|
this.img_width = 192;
|
|
this.img_height = 192;
|
|
|
|
this.dir = Survivor_var.player_dir || 0;
|
|
this.x = (Graphics.width - SURVIVOR_CONST.RIGHT_MARGIN) / 2; //キャラの中心
|
|
this.x += this.r2 * Math.cos(this.dir);
|
|
this.y = Graphics.height / 2;
|
|
this.y += this.r2 * Math.sin(this.dir);
|
|
this.t = 0;
|
|
this.base_scale = 0.5;
|
|
this.order = 1;
|
|
this.num = maker.num; //総数
|
|
this.disX = $gameMap._parallaxX;
|
|
this.disY = $gameMap._parallaxY;
|
|
this.update_orbit = function () {
|
|
// プレイヤーの正面に
|
|
this.dir = this.dir || 0;
|
|
this.x = (Graphics.width - SURVIVOR_CONST.RIGHT_MARGIN) / 2;
|
|
this.x += this.r2 * Math.cos(this.dir);
|
|
|
|
this.y = Graphics.height / 2;
|
|
this.y += this.r2 * Math.sin(this.dir);
|
|
|
|
this.rate_dispIdx = Math.floor(this.t / 3);
|
|
this.t++;
|
|
if (5 < this.t) {
|
|
this.break = 99999;
|
|
}
|
|
if (this.rate < this.t) {
|
|
this.id = Math.floor(Math.random() * 100000);
|
|
this.dir = Survivor_var.player_dir;
|
|
this.t = 0;
|
|
|
|
this.count = 0;
|
|
this.break = false; //武器のブレイク解除
|
|
}
|
|
};
|
|
}
|
|
}
|
|
|
|
function Sprite_Survive_Weapon() {
|
|
this.initialize(...arguments);
|
|
}
|
|
|
|
Sprite_Survive_Weapon.prototype = Object.create(Sprite.prototype);
|
|
Sprite_Survive_Weapon.prototype.constructor = Sprite_Survive_Weapon;
|
|
|
|
Sprite_Survive_Weapon.prototype.initialize = function (data) {
|
|
Sprite.prototype.initialize.call(this);
|
|
|
|
this.data = data;
|
|
|
|
this.setCharacterBitmap();
|
|
};
|
|
//登場するモンスターは1つの画像にまとめよう、updateはフレームだけ
|
|
Sprite_Survive_Weapon.prototype.update = function () {
|
|
Sprite.prototype.update.call(this);
|
|
//this.updateBitmap();
|
|
//this.updateFrame();
|
|
this.updateCharacterFrame();
|
|
this.updatePosition();
|
|
//this.updateOther();
|
|
this.updateVisibility();
|
|
this.updateOpacity();
|
|
|
|
this.anchor.x = this.data.anchorX;
|
|
this.anchor.y = this.data.anchorY;
|
|
|
|
this.scale.x = (this.data.base_scale ? this.data.base_scale : 1) * $gameTemp.SURVIVOR_player_data.atk_range;
|
|
this.scale.y = (this.data.base_scale ? this.data.base_scale : 1) * $gameTemp.SURVIVOR_player_data.atk_range;
|
|
|
|
if (this.data.break) {
|
|
this.data.del = true;
|
|
this.visible = false;
|
|
this.filters = [];
|
|
}
|
|
};
|
|
|
|
Sprite_Survive_Weapon.prototype.updateOpacity = function () {
|
|
this.opacity = this.data.opacity;
|
|
};
|
|
|
|
Sprite_Survive_Weapon.prototype.updatePosition = function () {
|
|
this.x = this.data.x;
|
|
this.y = this.data.y;
|
|
this.rotation = this.data.rotation || 0;
|
|
};
|
|
|
|
Sprite_Survive_Weapon.prototype.updateBitmap = function () {
|
|
if (this.isImageChanged()) {
|
|
this._tilesetId = $gameMap.tilesetId();
|
|
this._tileId = this._character.tileId();
|
|
this._characterName = this._character.characterName();
|
|
this._characterIndex = this._character.characterIndex();
|
|
if (this._tileId > 0) {
|
|
this.setTileBitmap();
|
|
} else {
|
|
this.setCharacterBitmap();
|
|
}
|
|
}
|
|
};
|
|
|
|
Sprite_Survive_Weapon.prototype.updateVisibility = function () {
|
|
Sprite.prototype.updateVisibility.call(this);
|
|
//if (0) {
|
|
this.visible = true;
|
|
//}
|
|
};
|
|
|
|
Sprite_Survive_Weapon.prototype.setCharacterBitmap = function () {
|
|
this.bitmap = ImageManager.loadSystem(this.data.img);
|
|
};
|
|
|
|
Sprite_Survive_Weapon.prototype.updateCharacterFrame = function () {
|
|
const pw = this.patternWidth();
|
|
const ph = this.patternHeight();
|
|
const sx = (this.characterBlockX() + this.characterPatternX()) * pw;
|
|
const sy = (this.characterBlockY() + this.characterPatternY()) * ph;
|
|
|
|
if (this._bushDepth > 0) {
|
|
const d = this._bushDepth;
|
|
this._upperBody.setFrame(sx, sy, pw, ph - d);
|
|
this._lowerBody.setFrame(sx, sy + ph - d, pw, d);
|
|
this.setFrame(sx, sy, 0, ph);
|
|
} else {
|
|
this.setFrame(sx, sy, pw, ph);
|
|
}
|
|
this.t++;
|
|
};
|
|
|
|
// 武器の画像パターンはココでやる
|
|
Sprite_Survive_Weapon.prototype.characterPatternX = function () {
|
|
var d = this.data;
|
|
if (d.name == "ice") {
|
|
var m = Math.min(2, Math.floor((Math.floor(d.t) % Math.floor(d.cool_all)) / 10 - d.order));
|
|
|
|
return m; //最大で2
|
|
} else if (d.name == "thunder") {
|
|
return Math.floor(Math.floor(d.t) / 4) % 3; //最大で2
|
|
// パターンはそのまま
|
|
} else if (d.name == "oboro" || d.name == "houou_soutou") {
|
|
return d.img_indexX;
|
|
} else if (d.name == "sword") {
|
|
return d.rate_dispIdx;
|
|
}
|
|
return Math.floor(d.t / 10) % 2; //this._character.pattern();
|
|
};
|
|
|
|
Sprite_Survive_Weapon.prototype.characterPatternY = function () {
|
|
var d = this.data;
|
|
return d.img_indexY; //(this._character.direction() - 2) / 2;
|
|
};
|
|
Sprite_Survive_Weapon.prototype.patternWidth = function () {
|
|
//return this.bitmap.width / this.data.img_size;
|
|
return this.data.img_width;
|
|
};
|
|
|
|
Sprite_Survive_Weapon.prototype.patternHeight = function () {
|
|
//return this.bitmap.height / 8;
|
|
return this.data.img_height;
|
|
};
|
|
Sprite_Survive_Weapon.prototype.characterBlockX = function () {
|
|
var d = this.data;
|
|
const index = d.img_indexX; //this._character.characterIndex();
|
|
if (d.name == "oboro" || d.name == "houou_soutou") {
|
|
return 1;
|
|
}
|
|
return (index % 4) * 3;
|
|
};
|
|
|
|
Sprite_Survive_Weapon.prototype.characterBlockY = function () {
|
|
const index = this.data.img_indexY; //this._character.characterIndex();
|
|
return Math.floor(index / 4) * 4;
|
|
};
|