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); } } }
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; } }