Пример #1
0
    public void ChangeWeapon(SkillWeaponInfo info)
    {
        if (info.IsCurWeapon)
        {
#if SHOOTER_LOG
            Debug.Log("CurWeapon:" + info.Id);
#endif
            m_CurWeaponId = info.Id;
        }
        else if (info.IsCurSubWeapon)
        {
#if SHOOTER_LOG
            Debug.Log("CurWeapon:" + info.Id);
#endif
            m_CurSubWeaponId = info.Id;
        }

        WeaponCmd operate = info.Operate;
        if (WeaponCmd.Hold == operate)
        {
            DropWeapon(info.HoldType);
            HoldWeapon(info.HoldType, info);
        }
        else if (WeaponCmd.HoldOnly == operate)
        {
            DropWeapon(WeaponHand.LeftHand);
            DropWeapon(WeaponHand.RightHand);
            HoldWeapon(info.HoldType, info);
        }
        else if (WeaponCmd.Drop == operate)
        {
            DropWeapon(info.HoldType);
        }
        else if (WeaponCmd.DropAll == operate)
        {
            DropWeapon(WeaponHand.LeftHand);
            DropWeapon(WeaponHand.RightHand);
        }
        else if (WeaponCmd.HoldDefault == operate)
        {
            SkillWeaponInfo defaltInfo = TriggerImpl.GetWeaponInfoById(this.gameObject, DefaultWeaponId);
            if (defaltInfo != null && defaltInfo.Operate != WeaponCmd.HoldDefault)
            {
                ChangeWeapon(defaltInfo);
            }
        }
        else if (WeaponCmd.HoldMain == operate)
        {
            SkillWeaponInfo masterWeaponInfo    = TriggerImpl.GetCurWeaponInfo(this.gameObject, MasterWeaponType.Master);
            SkillWeaponInfo subMasterWeaponInfo = TriggerImpl.GetCurWeaponInfo(this.gameObject, MasterWeaponType.SubMaster);
            if (masterWeaponInfo != null && masterWeaponInfo.Operate != WeaponCmd.HoldMain)
            {
                TriggerImpl.ChangeWeapon(this.gameObject, masterWeaponInfo);
            }
            if (subMasterWeaponInfo != null && masterWeaponInfo.Operate != WeaponCmd.HoldMain)
            {
                TriggerImpl.ChangeWeapon(this.gameObject, subMasterWeaponInfo);
            }
        }
    }
Пример #2
0
 public SkillWeaponInfo(string param)
 {
     string[] result = Script_Util.SplitParam(param, 6);
     if (result != null)
     {
         Id             = Convert.ToInt32(result[0]);
         WeaponName     = result[1];
         Operate        = (WeaponCmd)Convert.ToInt32(result[2]);
         HoldType       = (WeaponHand)Convert.ToInt32(result[3]);
         IsCurWeapon    = Convert.ToBoolean(result[4]);
         IsCurSubWeapon = Convert.ToBoolean(result[5]);
         if (result.Length > 6)
         {
             SpriteName = result[6];
         }
     }
     else
     {
         IsValid = false;
     }
 }