| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 | 
							- using Animancer;
 
- using Common.Utility.CombatEvent;
 
- using Excel2Json;
 
- using Fort23.Core;
 
- using Fort23.UTool;
 
- using GameLogic.Combat.Buff;
 
- using GameLogic.Combat.CombatTool;
 
- using GameLogic.Combat.Hero.State;
 
- using GameLogic.Combat.Skill;
 
- using GameLogic.Hero;
 
- using GameLogic.Player;
 
- using UnityEngine;
 
- using UnityEngine.AI;
 
- namespace GameLogic.Combat.Hero
 
- {
 
-     /// <summary>
 
-     /// 法宝对象
 
-     /// </summary>
 
-     public class CombatMagicWeaponEntity : CombatHeroEntity
 
-     {
 
-         public System.Func<Vector3> CustomizeShowTarget;
 
-         public int MagicWeaponCollisionId = -1;
 
-         protected FabaoConfig _magicWeaponConfig;
 
-         public float cd = 2;
 
-         public WuXingType WuXingType;
 
-         /// <summary>
 
-         /// 充能额外速度
 
-         /// </summary>
 
-         public float cdAddSpeed;
 
-         // public float cdSpeed=1;
 
-         /// <summary>
 
-         /// 是否拥有法宝宝典
 
-         /// </summary>
 
-         public bool isMagicWeaponTreasureBook = false;
 
-         public FaBaoInfo FaBaoInfo
 
-         {
 
-             get { return _faBaoInfo; }
 
-         }
 
-         private FaBaoInfo _faBaoInfo;
 
-         public float HpBl
 
-         {
 
-             get { return _HpBl; }
 
-             set { _HpBl = value; }
 
-         }
 
-         public float MaxHp;
 
-         private float _HpBl = 100;
 
-         public int useIndex;
 
-         /// <summary>
 
-         /// 是否进入战斗状态
 
-         /// </summary>
 
-         public bool isCombatState;
 
-         private MagicWeaponControl _rootMagicWeaponControl;
 
-         public MagicWeaponControl RootMagicWeaponControl
 
-         {
 
-             get { return _rootMagicWeaponControl; }
 
-         }
 
-         // private BetterList<SkillBasic> allSkill = new BetterList<SkillBasic>();
 
-         private SkillBasic skillBasic;
 
-         public float MaxCd
 
-         {
 
-             get
 
-             {
 
-                 if (skillBasic == null)
 
-                 {
 
-                     return 1;
 
-                 }
 
-                 return skillBasic.SelfSkillConfig.cd;
 
-             }
 
-         }
 
-         private FabaoConfig magicWeaponConfig;
 
-         public void MagicWeaponDie()
 
-         {
 
-             {
 
-                 HeroDieEventData heroDieEventData = HeroDieEventData.Create();
 
-                 heroDieEventData.combatHeroEntity = this;
 
-                 CombatEventManager.Instance.Dispatch(CombatEventType.MagicWeaponDie,
 
-                     heroDieEventData);
 
-                 CombatAIBasic.ChangeState(CombatHeroStateType.dile);
 
-             }
 
-         }
 
-         public async CTask<CombatMagicWeaponEntity> Init(MagicWeaponControl magicWeaponControl,
 
-             FaBaoInfo faBaoInfo,
 
-             System.Action<CombatMagicWeaponEntity> callBack = null)
 
-         {
 
-             this._faBaoInfo = faBaoInfo;
 
-             this.magicWeaponConfig = faBaoInfo.FabaoConfig;
 
-             this._rootMagicWeaponControl = magicWeaponControl;
 
-             string modelName = magicWeaponConfig.model;
 
-             CurrCombatHeroInfo = new CombatHeroInfo();
 
-             CurrCombatHeroInfo.modelName = magicWeaponConfig.model;
 
-             // GameTimeLineParticleFactory
 
-             CombatHeroGameObjectPool poolInterface =
 
-                 await GObjectPool.Instance.FetchAsync<CombatHeroGameObjectPool>(modelName + ".prefab", null);
 
- #if !COMBAT_SERVER
 
-             if (poolInterface == null || poolInterface.own == null)
 
-             {
 
-                 return null;
 
-             }
 
-             poolInterface.own.transform.position = Vector3.one;
 
-             poolInterface.own.SetActive(false);
 
-             combatHeroTimeLineControl = new CombatHeroTimeLineControl();
 
-             combatHeroTimeLineControl.Init(this);
 
-             AssetHandle assetHandle =
 
-                 await AssetBundleLoadManager.Instance.LoadAssetAsyncTask<TextAsset>(
 
-                     modelName + "_TD.txt");
 
-             if (assetHandle != null)
 
-             {
 
-                 TextAsset textAsset = assetHandle.AssetObject<TextAsset>();
 
-                 TimeLienData timeLienData = JsonManager.FromJson<TimeLienData>(textAsset.text);
 
-                 timeLienData.DeserializeData();
 
-                 assetHandle.Release();
 
-                 combatHeroTimeLineControl.AddTimeLienData(timeLienData);
 
-             }
 
-             combatHeroGameObject = new CombatHeroGameObject();
 
-             combatHeroGameObject.Init(this, poolInterface);
 
-             CombatHeroSkillControl = new CombatHeroSkillControlBasic();
 
-             CombatHeroSkillControl.Init(this);
 
-             int id = magicWeaponConfig.SkillGroupID * 10 + 1;
 
-             // SkillConfig skillConfig = ConfigComponent.Instance.Get<SkillConfig>(id);
 
-             SkillInfo skillInfo = new SkillInfo(id, 1);
 
-             skillBasic = CombatHeroSkillControl.AddSkill(skillInfo);
 
-             BuffControl = new BuffControl();
 
-             BuffControl.Init(this);
 
-             if (CombatAIBasic == null)
 
-             {
 
-                 CombatAIBasic = new MagicWeaponAi();
 
-             }
 
-             HeroEntityMono heroEntityMono = poolInterface.own.GetComponent<HeroEntityMono>();
 
-             if (heroEntityMono == null)
 
-             {
 
-                 heroEntityMono = poolInterface.own.AddComponent<HeroEntityMono>();
 
-             }
 
-             heroEntityMono.combatHeroEntity = this;
 
-             CombatAIBasic.Init(this);
 
-             // AnimancerComponent animancerComponent = poolInterface.own.GetComponentInChildren<AnimancerComponent>();
 
-             combatHeroAnimtion = new CombatHeroAnimtion();
 
-             poolInterface.own.SetActive(true);
 
-             combatHeroAnimtion.Init(this);
 
-             CombatAIBasic.ChangeState(CombatHeroStateType.XiuMian);
 
-             if (skillBasic != null)
 
-             {
 
-                 cd = skillBasic.SelfSkillConfig.cd;
 
-             }
 
- #endif
 
-             callBack?.Invoke(this);
 
-             return this;
 
-         }
 
-         public override float GetAttSpeed()
 
-         {
 
-             return 1;
 
-         }
 
-         public bool IsCanUse()
 
-         {
 
-             if (cd > 0)
 
-             {
 
-                 return false;
 
-             }
 
-             if (_rootMagicWeaponControl.globalMagicWeaponCd > 0)
 
-             {
 
-                 return false;
 
-             }
 
-             return true;
 
-         }
 
-         public void UseMagicWeapon()
 
-         {
 
-             if (cd > 0 || _rootMagicWeaponControl.combatHeroEntity.CombatAIBasic.currFocusTarget == null)
 
-             {
 
-                 return;
 
-             }
 
-             _HpBl = _faBaoInfo.FabaoPowerupConfig.Power;
 
-             MaxHp= _HpBl;
 
-             cd = MaxCd;
 
-             _rootMagicWeaponControl.UseMagicWeapon(this);
 
-         }
 
-         public override void DormancyObj()
 
-         {
 
-             base.DormancyObj();
 
-             _rootMagicWeaponControl = null;
 
-             _faBaoInfo = null;
 
-         }
 
-         public override void Update(float t)
 
-         {
 
-             if (_rootMagicWeaponControl == null)
 
-             {
 
-                 return;
 
-             }
 
-             combatHeroTimeLineControl?.Update(t);
 
-             CombatAIBasic?.Update(t);
 
-             CombatHeroSkillControl?.Update(t);
 
-             BuffControl?.Update(t);
 
-             if (CombatAIBasic?.CurrState.GetType() == typeof(MagicWeapomDormancyState))
 
-             {
 
-                 b_1008 b1008 = BuffControl.GetBuffBasicForType<b_1008>();
 
-                 if (b1008 == null)
 
-                 {
 
-                     cd -= t;
 
-                     if ( IsCanUse())
 
-                     {
 
-                         if (_rootMagicWeaponControl.isAutoUse && cd < -1f)//自动的延迟一秒释放
 
-                         {
 
-                             UseMagicWeapon();
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |