public static void ReleaseBlade(FCWeapon ewn, bool openIt, FC_EQUIPMENTS_TYPE weaponTypeFlag, AttackBase ab) { ActionController ac = ewn._owner; int bladeLayer = FCConst.LAYER_DEFAULT; if (openIt) { if (ab._canHitAll) { bladeLayer = FCConst.LAYER_ENEMY_WEAPON; } else { bladeLayer = (int)ac.Faction + 1; } ewn._attackInfo._attackPoints = ac.TotalAttackPoints; ewn._attackInfo._isFromSkill = ewn._owner.IsFromSkill; ewn._attackInfo._damageScale = ab.DamageScale; ewn._attackInfo._pushStrength = ab._pushStrength; ewn._attackInfo._pushTime = ab._pushTime; ewn._attackInfo._pushAngle = ab._pushAngle; ewn._attackInfo._pushByPoint = ab._pushByPoint; ewn._attackInfo._damageType = ab.GetDamageType(); } else { ewn._attackInfo._pushStrength = 0; ewn._attackInfo._pushTime = 0; ewn._attackInfo._damageType = FC_DAMAGE_TYPE.NONE; } int ewt = (int)ewn._weaponType; int wt = (int)weaponTypeFlag; if (weaponTypeFlag == FC_EQUIPMENTS_TYPE.MAX || ewn._weaponType == weaponTypeFlag || ewt >= 1500 && ewt / 10 == wt / 10) { foreach (BladeInfo bi in ewn._bladeInfos) { if (ab != null) { if (weaponTypeFlag != FC_EQUIPMENTS_TYPE.WEAPON_LIGHT && weaponTypeFlag != FC_EQUIPMENTS_TYPE.WEAPON_THIGH && weaponTypeFlag != FC_EQUIPMENTS_TYPE.MAX) { if (weaponTypeFlag != bi._bladeType) { continue; } } ReleaseBlade(bi, bladeLayer, openIt, ab._weaponScaleX, ab._weaponScaleY, ab._weaponScaleZ, !ab._needNotHitID); } else { ReleaseBlade(bi, bladeLayer, openIt, 1, 1, 1, true); } } } /*else * { * foreach(BladeInfo bi in ewn._bladeInfos) * { * if(ab != null) * { * ReleaseBlade(bi, bladeLayer, openIt, ab._weaponScaleX, ab._weaponScaleY, ab._weaponScaleZ); * } * else * { * ReleaseBlade(bi, bladeLayer, openIt, 1, 1, 1); * } * } * }*/ }