_plane = _this select 0
_flanim = 0
;_plane animate ["float1", 0]
;_plane animate ["float2", 0]

;Dropするポリゴンの種類選択
_Drop3d = "\Ca\Data\ParticleEffects\Watereffects\WaterEffects"
;Dropするポリゴンの性質（Billboardはいつも同じ向きに見える、SpaceObjectは角度が変わる）
_Typeof3d = "Billboard"
;パーティクルの起こる期間
_TimerPeriod = 4
;パーティクルの寿命
_LifeTime = 4
;パーティクルを置く場所
_Position = [0,-10,0]
;パーティクルの速度
_MoveVelocity = [(velocity _plane select 0)/2,(velocity _plane select 1)/2,(velocity _plane select 2)/2]
;パーティクルの回転速度
_RotationVelocity = 1
;パーティクルの重さ
_Weight = 1.4
;パーティクルの体積(単位：平方メートル、使い方不明・・)
_Volume = 1
;摩擦係数（たぶん風の影響、パーティクルの大きさは関係ないらしい）
_Rubbing = 0
;パーティクルの大きさ
_Size = [3,5,15,10]
;パーティクルの色
;_Color = [[0.8,0.8,0.8,0.4],[0.8,0.8,0.8,0]]
_Color = [[1,1,1,0.6],[0.8,0.8,1,0]]
;パーティクルのアニメーション(たぶん炎とか)
_AnimationPhase = [0]
;パーティクルの向きの変化の期間
_RandomDirectionPeriod = 0
;パーティクルの向きの変化の強度
_RandomDirectionIntensity = 0
;Dropの周期
_OnTimer = ""
;パーティクルの寿命が切れる直前に実行するスクリプト
_BeforeDestroy = ""
;座標の基準となるオブジェクト(未記入で_Positionなどが絶対座標となる)
_Obj = _plane

;init plane pos
if ((surfaceisWater (getpos _plane)) and ((getpos _plane select 2) < 0)) then {_plane setpos [(getpos _plane select 0), (getpos _plane select 1), 0.5]}

#mainroop
?!(alive _plane):goto "exit"
?(_plane animationphase "Rland" == 1) : _plane animate ["Rland",0];_plane animate ["Fland",0];_plane animate ["planebody",0];
if (surfaceisWater (getpos _plane)) then {goto "water";_plane animate ["Rland",1];_plane animate ["Fland",1];_plane animate ["planebody",1]}
;if (surfaceisWater (getpos _plane)) then {goto "water"} else {hint"land"}
~0.01

goto "mainroop"


#water
;hint"water"
if !(surfaceisWater (getpos _plane)) then {goto "mainroop"}
~0.01
?!(alive _plane):goto "exit"
?((getpos _plane select 2) > 5): goto "water"

_float = "BOHFloat" createVehicle [(getpos _plane select 0), (getpos _plane select 1), 0]
_float setdir getdir _plane
goto "floatset"


#floatend
deletevehicle _float
;_plane animate ["float1", 0]
;_plane animate ["float2", 0]
goto "mainroop"

#land
;nullpo


#floatset
;hint"floatroop"
?!(alive _plane):goto "planekilled"
?(((velocity _plane select 2) < -10) and ((getpos _plane select 2) < 5)): goto "mainroop"

_float setPos [(getpos _plane select 0), (getpos _plane select 1),0.7]
_float setdir getdir _plane

if !(surfaceisWater (getpos _plane)) then {goto "floatend"}

?((getpos _plane select 2) > 5): goto "floatend"
~0.01

_rnd = (random 10)/10-0.5
_rnd2 = (random 10)/10

;パーティクルの速度
_MoveVelocity = [10*_rnd,-10*_rnd2,0 + (speed _plane)/60]
;パーティクルを置く場所
_Position = [4*_rnd,5,-3-(getpos _plane select 2)]
;パーティクルの大きさ
_Size = [1,5+(speed _plane)/10,2]

?(((getpos _plane select 2) < 10) and (speed _plane > 7)): drop [_Drop3d, "",_Typeof3d,_TimerPeriod,_LifeTime,_Position,_MoveVelocity,_RotationVelocity,_Weight,_Volume,_Rubbing,_Size,_Color,_AnimationPhase,_RandomDirectionPeriod,_RandomDirectionIntensity,_OnTimer,_BeforeDestroy,_Obj];

goto"floatset"

#planekilled
deletevehicle _float
#exit
exit