Example #1
0
    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);
         *              }
         *      }
         * }*/
    }