using System.Collections.Generic; using Common.Utility.CombatEvent; using Excel2Json; using Fort23.Core; using Fort23.UTool; namespace GameLogic.Combat.Hero { /// /// 法宝的管理 /// public class MagicWeaponControl { private BetterList _allMagicWeapon = new BetterList(); private CombatMagicWeaponEntity _currUserMagicWeapon; public void AddMagicWeapon(CombatMagicWeaponEntity combatMagicWeaponEntity) { _allMagicWeapon.Add(combatMagicWeaponEntity); } public void RemoveMagicWeapon(CombatMagicWeaponEntity combatMagicWeaponEntity) { _allMagicWeapon.Remove(combatMagicWeaponEntity); } public async CTask InitMagicWeapon(CombatHeroEntity combatHeroEntity) { CTaskAwaitBuffer cTaskAwaitBuffer = new CTaskAwaitBuffer(); List MagicWeaponID = combatHeroEntity.CurrCombatHeroInfo.MagicWeaponID; for (int i = 0; i < MagicWeaponID.Count; i++) { CombatMagicWeaponEntity heroEntity = new CombatMagicWeaponEntity(); heroEntity.IsEnemy = combatHeroEntity.IsEnemy; heroEntity.number = i; MagicWeaponConfig magicWeaponConfig = ConfigComponent.Instance.Get(MagicWeaponID[i]); cTaskAwaitBuffer.AddTask(heroEntity.Init(this, magicWeaponConfig, delegate(CombatMagicWeaponEntity entity) { AddMagicWeapon(entity); })); } } public void UseMagicWeapon(CombatMagicWeaponEntity combatMagicWeaponEntity) { if (_currUserMagicWeapon == null) { return; } _currUserMagicWeapon = combatMagicWeaponEntity; CombatEventManager.Instance.Dispatch(CombatEventType.UseMagicWeapon, null); } } }