package {
import flash.utils.*;
public class BlockClass{
public var on_flag:Boolean = false; //実態があるかどうかフラグ
public var visible_flg:Boolean = false; //表示されるかどうかフラグ
public var minus_flg:Boolean = false; //反転ブロックフラグ
public var sys_flag:Boolean = false; //灰色ブロックフラグ
public var ChainBreak_flg:Boolean = false; //ライン巻き込み可能フラグ
public var NextBreak_flg:Boolean = false; //ライン巻き込み予定フラグ
public var Metal_flg:Boolean = false; //メタル属性フラグ
public var Crystal_flg:Boolean = false; //クリスタル属性フラグ
public var fream_counter:uint = 1; //表示されるブロックの状態
public var color_number:uint = 0; //色の番号
public var type_number:uint = 0; //システム上の連結タイプ
public var sys_number:uint = 0; //システム上の分類
public var HP:Number = 100; //耐久値
public var MAXHP:Number = 100; //最大耐久値
public var Weight:Number = 1; //重さ
public var FaillNumber:int = 0; //連鎖時の落下タイムラグ格納
public var x:Number = 0; //X座標
public var y:Number = 0; //Y座標
//コンストラクタ-------------------------------------------
public function BlockClass() {
}
//リセット-------------------------------------------
public function reset():void{
on_flag = false;
visible_flg = false;
minus_flg = false;
sys_flag = false;
ChainBreak_flg = false;
NextBreak_flg = false;
Metal_flg = false;
Crystal_flg = false;
fream_counter = 0;
color_number = 1;
type_number = 0;
sys_number = 0;
HP = 0;
MAXHP = 0;
Weight = 0;
FaillNumber = 0;
x = 0;
y = 0;
}
//自分にコピーを取る-------------------------------------------
public function setCopy(fromBlockClass:BlockClass):void{
on_flag = fromBlockClass.on_flag;
visible_flg = fromBlockClass.visible_flg;
minus_flg = fromBlockClass.minus_flg;
sys_flag = fromBlockClass.sys_flag;
ChainBreak_flg = fromBlockClass.ChainBreak_flg;
NextBreak_flg = fromBlockClass.NextBreak_flg;
Crystal_flg = fromBlockClass.Crystal_flg;
Metal_flg = fromBlockClass.Metal_flg;
fream_counter = fromBlockClass.fream_counter;
color_number = fromBlockClass.color_number;
type_number = fromBlockClass.type_number;
sys_number = fromBlockClass.sys_number;
HP = fromBlockClass.HP;
MAXHP = fromBlockClass.MAXHP;
Weight = fromBlockClass.Weight;
FaillNumber = fromBlockClass.FaillNumber;
x = fromBlockClass.x;
y = fromBlockClass.y;
}
//自分からコピーを取る-------------------------------------------
public function getCopy(toBlockClass:BlockClass):void{
toBlockClass.on_flag = on_flag;
toBlockClass.visible_flg = visible_flg;
toBlockClass.minus_flg = minus_flg;
toBlockClass.sys_flag = sys_flag;
toBlockClass.ChainBreak_flg = ChainBreak_flg;
toBlockClass.NextBreak_flg = NextBreak_flg;
toBlockClass.Crystal_flg = Crystal_flg;
toBlockClass.Metal_flg = Metal_flg;
toBlockClass.fream_counter = fream_counter;
toBlockClass.color_number = color_number;
toBlockClass.type_number = type_number;
toBlockClass.sys_number = sys_number;
toBlockClass.HP = HP;
toBlockClass.MAXHP = MAXHP;
toBlockClass.Weight = Weight;
toBlockClass.FaillNumber = FaillNumber;
toBlockClass.x = x;
toBlockClass.y = y;
}
//バイトストリーム取り出し-------------------------------------------
public function getBytes(temp_byte:ByteArray):ByteArray{ //通信対戦用のデータ取り出し
temp_byte.writeBoolean(on_flag);
temp_byte.writeBoolean(visible_flg);
temp_byte.writeBoolean(minus_flg);
temp_byte.writeBoolean(sys_flag);
temp_byte.writeBoolean(ChainBreak_flg);
temp_byte.writeBoolean(NextBreak_flg);
temp_byte.writeBoolean(Crystal_flg);
temp_byte.writeBoolean(Metal_flg);
temp_byte.writeUnsignedInt(fream_counter);
temp_byte.writeUnsignedInt(color_number);
if(!(on_flag))return temp_byte;
temp_byte.writeInt(type_number);
temp_byte.writeInt(sys_number);
temp_byte.writeInt(HP * 100);
temp_byte.writeInt(MAXHP * 100);
temp_byte.writeInt(Weight * 100);
temp_byte.writeInt(FaillNumber);
temp_byte.writeInt(this.x * 100);
temp_byte.writeInt(this.y * 100);
return temp_byte;
}
//バイトストリーム取り入れ-------------------------------------------
public function setBytes(temp_byte:ByteArray):void{ //通信対戦用のデータ取り入れ
on_flag = temp_byte.readBoolean();
visible_flg = temp_byte.readBoolean();
minus_flg = temp_byte.readBoolean();
sys_flag = temp_byte.readBoolean();
ChainBreak_flg = temp_byte.readBoolean();
NextBreak_flg = temp_byte.readBoolean();
Crystal_flg = temp_byte.readBoolean();
Metal_flg = temp_byte.readBoolean();
fream_counter = temp_byte.readUnsignedInt();
color_number = temp_byte.readUnsignedInt();
if(!(on_flag))return ;
type_number = temp_byte.readUnsignedInt();
sys_number = temp_byte.readUnsignedInt();
HP = temp_byte.readInt() / 100;
MAXHP = temp_byte.readInt() / 100;
Weight = temp_byte.readInt() / 100;
FaillNumber = temp_byte.readInt();
this.x = temp_byte.readInt() / 100;
this.y = temp_byte.readInt() / 100;
}
//END-------------------------------------------
}
}
//見ての通り、クリスタルなメタルブロックということも可能。
//その場合の表示や処理は、堅い方が優先されてしまう。
最終更新:2012年12月21日 13:26