From eb27e5fd31f73b998a4bbd85511a31e40b8c61b7 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 21 十一月 2025 17:03:47 +0800
Subject: [PATCH] 0312 关闭游戏内日志
---
Main/System/Battle/BattleObject/BattleObject.cs | 281 ++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 210 insertions(+), 71 deletions(-)
diff --git a/Main/System/Battle/BattleObject/BattleObject.cs b/Main/System/Battle/BattleObject/BattleObject.cs
index ba47e96..cc5192c 100644
--- a/Main/System/Battle/BattleObject/BattleObject.cs
+++ b/Main/System/Battle/BattleObject/BattleObject.cs
@@ -48,7 +48,7 @@
private set;
}
- protected BattleDrops battleDrops;
+ protected BattleDrops m_battleDrops;
private RectTransform m_heroRectTrans;
@@ -87,6 +87,8 @@
buffMgr = new BattleObjectBuffMgr();
buffMgr.Init(this);
+ buffMgr.onIsControlChanged += OnControledChange;
+
layerMgr = new BattleObjectLayerMgr();
layerMgr.Init(this);
@@ -99,8 +101,15 @@
var heroInfoBarScale = heroInfoBar.transform.localScale;
heroInfoBarScale.x *= Camp == BattleCamp.Red ? 1 : -1;
heroInfoBar.transform.localScale = heroInfoBarScale;
-
- heroInfoBar.SetActive(true);
+ if (battleField is StoryBattleField && (battleField as StoryBattleField).battleState == StoryBattleState.Break)
+ {
+ //涓荤嚎鍏冲崱浼戞伅涓殑涓嶆樉绀鸿鏉�
+ heroInfoBar.SetActive(false);
+ }
+ else
+ {
+ heroInfoBar.SetActive(true);
+ }
SetFront();
}
@@ -127,6 +136,9 @@
motionBase.Release();
motionBase = null;
+ buffMgr.onIsControlChanged -= OnControledChange;
+ buffMgr.Release();
+ buffMgr = null;
teamHero = null;
ObjID = 0;
@@ -137,18 +149,40 @@
}
}
+ // 鏈夊彉鍖栦簡鎵嶄細璋冪敤杩欎釜鍑芥暟
+ private void OnControledChange(int groupType, bool value)
+ {
+ // 杩欓噷鏄彈鍒扮‖鎺ф椂鍊� 闇�瑕佽〃鐜扮殑鍔ㄧ敾
+ if (groupType == BattleConst.HardControlGroup)
+ {
+ // 浠庢病琚‖鎺у埌琚‖鎺�
+ if (value)
+ {
+ motionBase.SetControledAnimation();
+ }
+ else
+ {
+ motionBase.CancelControledAnimation();
+ }
+ }
+ }
+
public void OnObjInfoRefresh(H0418_tagObjInfoRefresh _refreshInfo)
{
+ // 澶╁瓙鐨勬寫鎴樻嫤鎴鏉�,涓嶆嫤鎴�掓皵
+ BattleObject boss = battleField.FindBoss();
+ if (boss != null && battleField.MapID == 30020 && boss.ObjID == _refreshInfo.ObjID && _refreshInfo.RefreshType != (ushort)PlayerDataType.XP)
+ return;
switch ((PlayerDataType)_refreshInfo.RefreshType)
{
case PlayerDataType.HP:
long toHp = GeneralDefine.GetFactValue(_refreshInfo.Value, _refreshInfo.ValueEx);
- heroInfoBar.UpdateHP(teamHero.curHp, toHp, teamHero.maxHp);
+ heroInfoBar.UpdateHP(teamHero.curHp, toHp, teamHero.maxHp, false);
teamHero.curHp = GeneralDefine.GetFactValue(_refreshInfo.Value, _refreshInfo.ValueEx);
break;
case PlayerDataType.MaxHP:
teamHero.maxHp = GeneralDefine.GetFactValue(_refreshInfo.Value, _refreshInfo.ValueEx);
- heroInfoBar.UpdateHP(teamHero.curHp, teamHero.curHp, teamHero.maxHp);
+ heroInfoBar.UpdateHP(teamHero.curHp, teamHero.curHp, teamHero.maxHp, false);
break;
case PlayerDataType.XP:
long toXp = GeneralDefine.GetFactValue(_refreshInfo.Value, _refreshInfo.ValueEx);
@@ -161,29 +195,33 @@
}
}
- public void ObjPropertyRefreshView(HB418_tagSCObjPropertyRefreshView vNetData)
- {
- switch ((PlayerDataType)vNetData.RefreshType)
- {
- case PlayerDataType.HP:
- long toHp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
- heroInfoBar.UpdateHP(teamHero.curHp, toHp, teamHero.maxHp);
- teamHero.curHp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
- break;
- case PlayerDataType.MaxHP:
- teamHero.maxHp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
- heroInfoBar.UpdateHP(teamHero.curHp, teamHero.curHp, teamHero.maxHp);
- break;
- case PlayerDataType.XP:
- long toXp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
- heroInfoBar.UpdateXP(teamHero.rage, toXp, 100);
- teamHero.rage = (int)GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
- break;
- default:
- Debug.LogError("BattleObject.ObjPropertyRefreshView 鍑虹幇鎰忓绫诲瀷 " + vNetData.RefreshType.ToString());
- break;
- }
- }
+ // public void ObjPropertyRefreshView(HB418_tagSCObjPropertyRefreshView vNetData)
+ // {
+ // // 澶╁瓙鐨勬寫鎴樻嫤鎴鏉�,涓嶆嫤鎴�掓皵
+ // BattleObject boss = battleField.FindBoss();
+ // if (boss != null && battleField.MapID == 30020 && boss.ObjID == vNetData.ObjID && vNetData.RefreshType != (ushort)PlayerDataType.XP)
+ // return;
+ // switch ((PlayerDataType)vNetData.RefreshType)
+ // {
+ // case PlayerDataType.HP:
+ // long toHp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
+ // heroInfoBar.UpdateHP(teamHero.curHp, toHp, teamHero.maxHp, false);
+ // teamHero.curHp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
+ // break;
+ // case PlayerDataType.MaxHP:
+ // teamHero.maxHp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
+ // heroInfoBar.UpdateHP(teamHero.curHp, teamHero.curHp, teamHero.maxHp, false);
+ // break;
+ // case PlayerDataType.XP:
+ // long toXp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
+ // heroInfoBar.UpdateXP(teamHero.rage, toXp, 100);
+ // teamHero.rage = (int)GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
+ // break;
+ // default:
+ // Debug.LogError("BattleObject.ObjPropertyRefreshView 鍑虹幇鎰忓绫诲瀷 " + vNetData.RefreshType.ToString());
+ // break;
+ // }
+ // }
// 鐪╂檿
public bool IsStunned()
@@ -268,33 +306,82 @@
return true;
}
- public virtual void Hurt(List<long> damageValues, long _totalDamage, HB427_tagSCUseSkill.tagSCUseSkillHurt hurt, SkillConfig skillConfig, bool playAnimation = true)
+ public virtual void Hurt(BattleHurtParam battleHurtParam)
{
- BattleDmgInfo dmgInfo = PopDamage(damageValues, _totalDamage, hurt, skillConfig);
+ bool isLastHit = battleHurtParam.hitIndex >= battleHurtParam.skillConfig.DamageDivide.Length - 1;
+ bool firstHit = battleHurtParam.hitIndex == 0;
+ BattleDmgInfo dmgInfo = PopDamage(battleHurtParam);
- if ((dmgInfo.IsType(DamageType.Damage) || dmgInfo.IsRealdamage()) && playAnimation)
+
+ // 杩欓噷
+ if (dmgInfo.IsType(DamageType.Dodge) /*&& !buffMgr.isControled[BattleConst.HardControlGroup]*/)//濡傛灉琚帶鍒朵簡杩橀棯閬夸簡 瑕佺湅鐪嬫湇鍔″櫒鎬庝箞澶勭悊浜�
{
- motionBase.PlayAnimation(MotionName.hit, false);
+ if (isLastHit)
+ {
+ DodgeFinishAction dodgeFinish = new DodgeFinishAction(battleField, this);
+ battleField.recordPlayer.InsertRecord(dodgeFinish);
+ }
+
+ if (firstHit)
+ {
+ OnDodgeBegin();
+ }
+ }
+
+
+
+ bool isFatalAttack = (null != battleHurtParam.deadPack) && isLastHit;
+
+ if (isFatalAttack)
+ {
+ if (null != battleHurtParam.battleDrops)
+ {
+ PushDropItems(battleHurtParam.battleDrops);
+ }
+ battleField.OnObjsDead(new List<HB422_tagMCTurnFightObjDead>() { battleHurtParam.deadPack });
+
+ }
+ else
+ {
+ if (dmgInfo.IsType(DamageType.Block))
+ {
+ battleField.battleEffectMgr.PlayEffect(this, 19999, heroRectTrans, Camp);
+ }
+ // else
+ // {
+ if ((dmgInfo.IsType(DamageType.Damage) || dmgInfo.IsRealdamage()))
+ {
+ if (!buffMgr.isControled[BattleConst.HardControlGroup])
+ {
+ motionBase.PlayAnimation(MotionName.hit, false);
+ }
+ }
+ // }
+
}
}
- public void SuckHp(uint suckHP, SkillConfig skillConfig)
- {
- teamHero.curHp = Math.Min(teamHero.maxHp, teamHero.curHp + (int)suckHP);
- }
- public void HurtByReflect(uint bounceHP, SkillConfig skillConfig)
- {
- teamHero.curHp = Math.Max(0, teamHero.curHp - (int)bounceHP);
- }
-
+ const float pingpongTime = 0.4f;
// 闂伩寮�濮�
public virtual void OnDodgeBegin()
{
- float pingpongTime = 0.2f;
RectTransform rectTrans = heroRectTrans;
var tween = rectTrans.DOAnchorPos(new Vector3(-30, 0, 0), pingpongTime)
.SetEase(Ease.OutCubic);
+
+ motionBase.ShowIllusionShadow(true);
+
+ DamageNumConfig damageNumConfig = DamageNumConfig.Get((int)DamageType.Dodge);
+
+ string dodgeStr = ((char)damageNumConfig.prefix).ToString();
+
+ heroInfoBar.ShowTips(dodgeStr, true, false);
+
+ tween.onComplete += () =>
+ {
+ motionBase.ShowIllusionShadow(false);
+ };
battleField.battleTweenMgr.OnPlayTween(tween);
}
@@ -302,7 +389,6 @@
// 闂伩缁撴潫
public virtual void OnDodgeEnd(Action _complete = null)
{
- float pingpongTime = 0.2f;
RectTransform rectTrans = heroRectTrans;
var tween = rectTrans.DOAnchorPos(Vector3.zero, pingpongTime)
@@ -318,7 +404,8 @@
public virtual void OnDeath(Action _onDeathAnimationComplete)
{
- motionBase.PlayAnimation(MotionName.dead, false, () =>
+ buffMgr.RemoveAllBuff();
+ motionBase.PlayDeadAnimation(() =>
{
teamHero.isDead = true;
OnDeadAnimationComplete();
@@ -331,6 +418,7 @@
// 鎴栬鐪嬬湅婧惰В鐗规晥锛� YYL TODO
heroGo.SetActive(false);
+ // 闃叉缁欐浜″璞″張涓奲uff
buffMgr.RemoveAllBuff();
}
@@ -338,38 +426,31 @@
{
// 澶勭悊澶嶆椿閫昏緫
teamHero.curHp = GeneralDefine.GetFactValue(vNetData.HP, vNetData.HPEx);
+ teamHero.isDead = false;
heroGo.SetActive(true);
motionBase.PlayAnimation(MotionName.idle, true);
}
// 浼ゅ杩樿鐪� 鏄惁闂伩 鏆村嚮 and so on 闇�瑕佹湁涓�涓狣amageType 鏈嶅姟鍣ㄥ簲璇ヤ細缁�
- protected virtual BattleDmgInfo PopDamage(List<long> damageValues, long _totalDamage, HB427_tagSCUseSkill.tagSCUseSkillHurt hurt, SkillConfig skillConfig)
+ protected virtual BattleDmgInfo PopDamage(BattleHurtParam battleHurtParam)
{
- BattleDmgInfo battleDmgInfo = new BattleDmgInfo(battleField.guid, damageValues, this, hurt, skillConfig);
-
- if (battleDmgInfo.IsType(DamageType.Dodge))
+ BattleDmgInfo battleDmgInfo = new BattleDmgInfo(battleField.guid, battleHurtParam);
+ // 澶╁瓙鐨勬寫鎴樻嫤鎴鏉¢�昏緫
+ BattleObject boss = battleField.FindBoss();
+ if (boss != null && battleField.MapID == 30020 && boss.ObjID == battleHurtParam.hurtObj.ObjID)
{
- OnDodgeBegin();
- DodgeFinishAction dodgeFinish = new DodgeFinishAction(battleField, this);
- battleField.recordPlayer.InsertRecord(dodgeFinish);
+ EventBroadcast.Instance.Broadcast(EventName.BATTLE_DAMAGE_TAKEN, battleDmgInfo);
+ return battleDmgInfo;
+ }
+ else
+ {
+ heroInfoBar.UpdateDamage(battleDmgInfo);
+
+ // YYL TODO 鏄惁闇�瑕佹寕鍦ㄥ湪鑷韩鐨刦ollow鐐逛笂
+ EventBroadcast.Instance.Broadcast(EventName.BATTLE_DAMAGE_TAKEN, battleDmgInfo);
+ return battleDmgInfo;
}
- int currentHurtHp = 0;
- for (int i = 0; i < damageValues.Count; i++)
- {
- currentHurtHp += (int)damageValues[i];
- }
-
- bool isRecovery = battleDmgInfo.IsType(DamageType.Recovery);
-
- long toHp = Math.Max(0, teamHero.curHp + (isRecovery ? currentHurtHp : -currentHurtHp));
-
- heroInfoBar.UpdateHP(teamHero.curHp, toHp, teamHero.maxHp);
- teamHero.curHp = toHp;
-
- // YYL TODO 鏄惁闇�瑕佹寕鍦ㄥ湪鑷韩鐨刦ollow鐐逛笂
- EventBroadcast.Instance.Broadcast(EventName.BATTLE_DAMAGE_TAKEN, battleDmgInfo);
- return battleDmgInfo;
}
public RectTransform GetAliasTeamNode()
@@ -402,21 +483,21 @@
public void PushDropItems(BattleDrops _battleDrops)
{
- battleDrops = _battleDrops;
+ m_battleDrops = _battleDrops;
}
public void PerformDrop()
{
- if (null == battleDrops || battleDrops.dropItemPackIndex.Count == 0)
+ if (null == m_battleDrops)
return;
EventBroadcast.Instance.Broadcast<string, BattleDrops, Action>(
- EventName.BATTLE_DROP_ITEMS, battleField.guid, battleDrops, OnPerformDropFinish);
+ EventName.BATTLE_DROP_ITEMS, battleField.guid, m_battleDrops, OnPerformDropFinish);
}
protected void OnPerformDropFinish()
{
- battleDrops = null;
+ m_battleDrops = null;
}
public void SetBack()
@@ -432,6 +513,64 @@
public void SetSpeedRatio(float ratio)
{
motionBase.SetSpeedRatio(ratio);
+ heroInfoBar.SetSpeedRatio(ratio);
+ }
+
+ public void OnObjPropertyRefreshView(HB418_tagSCObjPropertyRefreshView vNetData)
+ {
+ // 澶╁瓙鐨勬寫鎴樻嫤鎴鏉�,涓嶆嫤鎴�掓皵
+ BattleObject boss = battleField.FindBoss();
+ if (boss != null && battleField.MapID == 30020 && boss.ObjID == vNetData.ObjID && vNetData.RefreshType != (ushort)PlayerDataType.XP)
+ return;
+
+ // public uint ObjID;
+ // public ushort RefreshType; // 鍚�0418鍒锋柊绫诲瀷锛屽琛�閲忋�佹�掓皵
+ // public uint AttackTypes; // 椋樺瓧绫诲瀷姹囨�伙紝鏀寔澶氱绫诲瀷骞跺瓨锛屽鏃犺闃插尽涓旀毚鍑诲悓鏃惰鏍兼尅锛屼簩杩涘埗鎴栬繍绠楁渶缁堝�硷紱0-澶辫触锛�1-鏅�氾紱2-鍥炶锛�5-鏍兼尅锛�6-鏃犺闃插尽锛�7-鏆村嚮锛�9-闂伩
+ // public uint Value; // 鏇存柊鍊�
+ // public uint ValueEx; // 鏇存柊鍊硷紝濡傛灉鏄ぇ鏁板�肩殑姝ゅ�间负鏁撮櫎浜块儴鍒�
+ // public byte DiffType; // 鍙樺寲绫诲瀷锛�0-鍑忓皯锛�1-澧炲姞
+ // public uint DiffValue; // 鍙樺寲鍊�
+ // public uint DiffValueEx; // 鍙樺寲鍊硷紝濡傛灉鏄ぇ鏁板�肩殑姝ゅ�间负鏁撮櫎浜块儴鍒�
+ // public uint SkillID; // 浣跨敤鐨勬妧鑳借〃ID
+ // public uint RelatedSkillID; // 鍏宠仈鐨勬妧鑳絀D锛屼竴鑸槸涓绘妧鑳絀D锛岄潪涓绘妧鑳介澶栬Е鍙戠殑涓�0
+
+ long diffValue = GeneralDefine.GetFactValue(vNetData.DiffValue, vNetData.DiffValueEx);
+ diffValue *= vNetData.DiffType == 0 ? -1 : 1;
+
+ long newValue = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
+
+
+ switch ((PlayerDataType)vNetData.RefreshType)
+ {
+ case PlayerDataType.HP:
+ long toHp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
+ heroInfoBar.UpdateHP(teamHero.curHp, toHp, teamHero.maxHp, true);
+ teamHero.curHp = newValue;
+ break;
+ case PlayerDataType.MaxHP:
+ teamHero.maxHp = newValue;
+ heroInfoBar.UpdateHP(teamHero.curHp, teamHero.curHp, teamHero.maxHp, true);
+ break;
+ case PlayerDataType.XP:
+ long toXp = newValue;
+ heroInfoBar.UpdateXP(teamHero.rage, toXp, 100);
+ teamHero.rage = (int)newValue;
+
+ DamageNumConfig damageNumConfig = DamageNumConfig.Get((int)DamageType.RageUp);
+ string message = BattleUtility.ConvertToArtFont(damageNumConfig, diffValue);
+ heroInfoBar.ShowTips(new BattleHeroInfoBar.TipsInfo()
+ {
+ message = message,
+ useArtText = true,
+ followCharacter = true,
+ scaleRatio = 1f,
+ isRage = true
+ });
+ break;
+ default:
+ Debug.LogError("BattleObject.ObjPropertyRefreshView 鍑虹幇鎰忓绫诲瀷 " + vNetData.RefreshType.ToString());
+ break;
+ }
}
--
Gitblit v1.8.0