※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

ユニットの移動力を求める


解説

「追加移動力」能力を考慮した、ユニットの移動力を求めるサブルーチンです。
引数は対象ユニットのID。

ソースコード

// @param Args(1) UnitID
// 移動力を求めるサブルーチン
mvcheck_getMovePoint:
	Local _UnitID = Args(1)
	Local _uArea = Area(_UnitID)  // Unitが今いるエリア
	Local _mpoint i _level _area
 
	_mpoint = Info("ユニット", _UnitID, "移動力")
 
	// "追加移動力"能力を持っていたら
	If (Info("ユニット", _UnitID, "特殊能力所有", "追加移動力")) Then
		// 複数持っているかもしれない
		For i = 1 to Info("ユニット", _UnitID, "特殊能力数")
			If (Info("ユニット", _UnitID, "特殊能力", i) = "追加移動力") Then
				_level = Info("ユニット", _UnitID, "特殊能力レベル", i)
				_area = LIndex(Info("ユニット", _UnitID, "特殊能力データ", i), 2)
 
				// 能力の発動条件を満たしていれば
				If (_uArea = _area) Then
					Incr _mpoint _level  // 移動力追加
				EndIf
			EndIf
		Next
	EndIf
Return _mpoint