This commit is contained in:
daixiawu 2026-06-07 02:40:57 +08:00
parent 9afa17872d
commit aa53413768
9 changed files with 6328 additions and 5782 deletions

View File

@ -754,7 +754,7 @@
</article>
<article class="style-card">
<figure>
<img src="assets/viking-wonders/style-07-shield-wall.png" alt="维京盾墙和圆盾配色参考">
<img src="assets/viking-wonders/style-07-shield-wall.jpg" alt="维京盾墙和圆盾配色参考">
</figure>
<h3><a href="https://commons.wikimedia.org/wiki/File:Viking_reenactment_at_Arrowe_Park_1.png">彩色圆盾墙</a></h3>
<p>红、黄、蓝、黑白圆盾可以作为环形堡、议会场、贸易港的边缘小色块。</p>
@ -770,7 +770,7 @@
</article>
<article class="style-card">
<figure>
<img src="assets/viking-wonders/style-09-colored-runestone.png" alt="彩色符文石纹样参考">
<img src="assets/viking-wonders/style-09-colored-runestone.jpg" alt="彩色符文石纹样参考">
</figure>
<h3><a href="https://commons.wikimedia.org/wiki/File:U_871_%C3%96lsta_(PNG_version).png">高饱和符文线</a></h3>
<p>适合提炼“红石面 + 蓝色缠绕纹 + 浅色符文”的图标化语言,远看更有装饰性。</p>

File diff suppressed because one or more lines are too long

View File

@ -19931,6 +19931,7 @@
[Info][OPS.OBF][OnAnalyse_Assemblies] [[Assembly-CSharp] Logic.Skill.YuugiMovePlusSkill] Analyse Type References in Custom Attribute References...
[Info][OPS.OBF][OnAnalyse_Assemblies] [[Assembly-CSharp] Logic.Skill.YuugiMoveSkill/YuugiMoveSkillFormatter] Analyse Type References in Custom Attribute References...
[Info][OPS.OBF][OnAnalyse_Assemblies] [[Assembly-CSharp] Logic.Skill.YuugiMoveSkill] Analyse Type References in Custom Attribute References...
[Info][OPS.OBF][OnAnalyse_Assemblies] [[Assembly-CSharp] Logic.Skill.YuugiPushResult] Analyse Type References in Custom Attribute References...
[Info][OPS.OBF][OnAnalyse_Assemblies] [[Assembly-CSharp] Logic.Skill.YuugiPushSkill/YuugiPushSkillFormatter] Analyse Type References in Custom Attribute References...
[Info][OPS.OBF][OnAnalyse_Assemblies] [[Assembly-CSharp] Logic.Skill.YuugiPushSkill] Analyse Type References in Custom Attribute References...
[Info][OPS.OBF][OnAnalyse_Assemblies] [[Assembly-CSharp] Logic.Skill.SkillBase/SkillBaseFormatter] Analyse Type References in Custom Attribute References...
@ -22882,6 +22883,7 @@
[Info][OPS.OBF][OnAnalyse_Assemblies] [[Assembly-CSharp] Logic.Skill.YuugiMovePlusSkill] Analyse Type References in Custom Attribute References...
[Info][OPS.OBF][OnAnalyse_Assemblies] [[Assembly-CSharp] Logic.Skill.YuugiMoveSkill/YuugiMoveSkillFormatter] Analyse Type References in Custom Attribute References...
[Info][OPS.OBF][OnAnalyse_Assemblies] [[Assembly-CSharp] Logic.Skill.YuugiMoveSkill] Analyse Type References in Custom Attribute References...
[Info][OPS.OBF][OnAnalyse_Assemblies] [[Assembly-CSharp] Logic.Skill.YuugiPushResult] Analyse Type References in Custom Attribute References...
[Info][OPS.OBF][OnAnalyse_Assemblies] [[Assembly-CSharp] Logic.Skill.YuugiPushSkill/YuugiPushSkillFormatter] Analyse Type References in Custom Attribute References...
[Info][OPS.OBF][OnAnalyse_Assemblies] [[Assembly-CSharp] Logic.Skill.YuugiPushSkill] Analyse Type References in Custom Attribute References...
[Info][OPS.OBF][OnAnalyse_Assemblies] [[Assembly-CSharp] Logic.Skill.SkillBase/SkillBaseFormatter] Analyse Type References in Custom Attribute References...
@ -26980,6 +26982,7 @@
[Info][OPS.OBF][OnAnalyse_Assemblies] Skip Method [[Assembly-CSharp] System.Void Logic.Skill.YuugiMoveSkill/YuugiMoveSkillFormatter::.ctor()] Because of compatibility component: .Net Framework - Compatibility : Is Special.
[Info][OPS.OBF][OnAnalyse_Assemblies] Skip Method [[Assembly-CSharp] System.Void Logic.Skill.YuugiMoveSkill::.ctor()] Because of compatibility component: .Net Framework - Compatibility : Is Special.
[Info][OPS.OBF][OnAnalyse_Assemblies] Skip Method [[Assembly-CSharp] System.Void Logic.Skill.YuugiMoveSkill::.cctor()] Because of compatibility component: .Net Framework - Compatibility : Is Special.
[Info][OPS.OBF][OnAnalyse_Assemblies] Skip Method [[Assembly-CSharp] System.Void Logic.Skill.YuugiPushResult::.ctor()] Because of compatibility component: .Net Framework - Compatibility : Is Special.
[Info][OPS.OBF][OnAnalyse_Assemblies] Skip Method [[Assembly-CSharp] System.Void Logic.Skill.YuugiPushSkill/YuugiPushSkillFormatter::.ctor()] Because of compatibility component: .Net Framework - Compatibility : Is Special.
[Info][OPS.OBF][OnAnalyse_Assemblies] Skip Method [[Assembly-CSharp] System.Void Logic.Skill.YuugiPushSkill::.ctor()] Because of compatibility component: .Net Framework - Compatibility : Is Special.
[Info][OPS.OBF][OnAnalyse_Assemblies] Skip Method [[Assembly-CSharp] System.Void Logic.Skill.YuugiPushSkill::.cctor()] Because of compatibility component: .Net Framework - Compatibility : Is Special.
@ -38579,6 +38582,7 @@
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found a looked up Type Namespace [[Assembly-CSharp] Logic.Skill.YuugiDashSkill] :
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found a looked up Type Namespace [[Assembly-CSharp] Logic.Skill.YuugiMovePlusSkill] :
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found a looked up Type Namespace [[Assembly-CSharp] Logic.Skill.YuugiMoveSkill] :
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found a new Type Namespace [[Assembly-CSharp] Logic.Skill.YuugiPushResult] :
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found a looked up Type Namespace [[Assembly-CSharp] Logic.Skill.YuugiPushSkill] :
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found a looked up Type Namespace [[Assembly-CSharp] Logic.Skill.SkillBase] :
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found a looked up Type Namespace [[Assembly-CSharp] Logic.Skill.ISkill] :
@ -39637,6 +39641,7 @@
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found a looked up Type Name [[Assembly-CSharp] Logic.Skill.YuugiDashSkill] : ivk
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found a looked up Type Name [[Assembly-CSharp] Logic.Skill.YuugiMovePlusSkill] : ivl
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found a looked up Type Name [[Assembly-CSharp] Logic.Skill.YuugiMoveSkill] : iyl
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found a new Type Name [[Assembly-CSharp] Logic.Skill.YuugiPushResult] : bgi
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found a looked up Type Name [[Assembly-CSharp] Logic.Skill.YuugiPushSkill] : jkg
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found a looked up Type Name [[Assembly-CSharp] Logic.Skill.SkillBase] : fpx
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found a looked up Type Name [[Assembly-CSharp] Logic.Skill.ISkill] : ha
@ -40316,10 +40321,10 @@
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.View.Top.UITopTopBarView::CancelTopBarAnim()] : zw
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.View.Top.UITopTopBarView::SelfCheckCoinText()] : zx
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.View.Top.UITopTopBarView::UpdateCoinPerTurn()] : eqb
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Void TH1_UI.View.Top.UITopTopBarView::RebuildCoinPanelLayout()] : bpx
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Void TH1_UI.View.Top.UITopTopBarView::SetTopBarAnimText(TMPro.TextMeshProUGUI,System.Int32,TH1_UI.View.Top.UITopTopBarView/TopBarPanelType)] : dfp
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Void TH1_UI.View.Top.UITopTopBarView::SetCoinText(System.Int32)] : dfq
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Void TH1_UI.View.Top.UITopTopBarView::RebuildTopBarLayout(UnityEngine.RectTransform[])] : dgd
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.View.Top.UITopTopBarView::RebuildCoinPanelLayout()] : bpx
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.View.Top.UITopTopBarView::SetTopBarAnimText(TMPro.TextMeshProUGUI,System.Int32,TH1_UI.View.Top.UITopTopBarView/TopBarPanelType)] : dfp
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.View.Top.UITopTopBarView::SetCoinText(System.Int32)] : dfq
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.View.Top.UITopTopBarView::RebuildTopBarLayout(UnityEngine.RectTransform[])] : dgd
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] System.Void TH1_UI.View.Top.UITopWinView::OnInit()] : uo
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.View.Top.UITopWinView::OnMatchStart()] : bat
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.View.Top.UITopWinView::SetContent()] : bau
@ -41277,7 +41282,7 @@
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.HintUI.HeroHintPanel::<InitializeButtons>b__40_1()] : pz
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.HintUI.HeroHintPanel::<InitializeButtons>b__40_2()] : qa
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.HintUI.HeroHintPanel::<InitializeButtons>b__40_3()] : ty
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] UnityEngine.Color TH1_UI.HintUI.HeroHintPanelCommonCircleMono::get_DefaultActionBgColor()] : dge
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] UnityEngine.Color TH1_UI.HintUI.HeroHintPanelCommonCircleMono::get_DefaultActionBgColor()] : dge
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.HintUI.HeroHintPanelCommonCircleMono::SetContent(SkillType,RuntimeData.UnitFullType)] : jvo
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.HintUI.HeroHintPanelCommonCircleMono::SetContent(Logic.Action.CommonActionId)] : jvp
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.HintUI.HeroHintPanelCommonCircleMono::ResetContent()] : jvq
@ -41326,14 +41331,14 @@
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Boolean TH1_UI.Core.UIInfoTask::CanCloseByEsc()] : jcy
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] TH1_UI.Controller.Base.IViewControllerInterface TH1_UI.Core.UIInfoTask::GetViewController()] : jcz
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.Core.UIInfoTask::CancelMapHighlights()] : jda
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Boolean TH1_UI.Core.UIInfoTask::IsShow()] : dgf
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Boolean TH1_UI.Core.UIInfoTask::IsShow()] : dgf
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.Core.UIInfoManager/<>c__DisplayClass4_0::<StartNewTask>b__0()] : bov
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.Core.UIInfoManager::OnMatchStart()] : hjn
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.Core.UIInfoManager::OnMatchEnd()] : bow
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.Core.UIInfoManager::StartNewTask(TH1_UI.Core.UIInfoTask)] : exg
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.Core.UIInfoManager::HideCurTask()] : exh
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Boolean TH1_UI.Core.UIInfoManager::TryCloseCurTaskByEsc()] : jdb
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Boolean TH1_UI.Core.UIInfoManager::TryHandleCurTaskByEsc()] : dgg
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Boolean TH1_UI.Core.UIInfoManager::TryHandleCurTaskByEsc()] : dgg
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.Core.UIInfoManager::OnChoiceHeroInfo()] : dgq
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.Core.UIInfoManager::OnTaskCompleted(TH1_UI.Core.UIInfoTask)] : ins
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1_UI.Core.UIInfoManager::Update()] : exj
@ -41863,7 +41868,7 @@
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1Renderer.MapRenderer::RenderUpdateGridMap()] : bgg
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1Renderer.MapRenderer::RenderUpdateCityMap()] : bgh
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1Renderer.MapRenderer::UpdateCityInfoAllCoinTech()] : eum
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Void TH1Renderer.MapRenderer::RenderUpdateUnitMap(System.Boolean)] : dgh
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1Renderer.MapRenderer::RenderUpdateUnitMap(System.Boolean)] : dgh
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1Renderer.MapRenderer::RepairUnitRenderersToData(RuntimeData.MapData,System.Collections.Generic.List`1<System.UInt32>,System.Collections.Generic.List`1<System.UInt32>)] : jqs
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1Renderer.MapRenderer::RenderUpdateProjectileMap()] : bgj
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void TH1Renderer.MapRenderer::FirstRenderMap()] : bgk
@ -44088,8 +44093,8 @@
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Boolean Logic.InputLogic::ShouldIgnoreClick(UnityEngine.GameObject)] : biy
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.InputLogic::LockInput()] : biz
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.InputLogic::UnlockInput()] : bja
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Boolean Logic.InputLogic::IsCancelShortcutDown()] : dgi
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Boolean Logic.InputLogic::TryHandleCancelShortcut(System.Boolean)] : dhc
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Boolean Logic.InputLogic::IsCancelShortcutDown()] : dgi
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Boolean Logic.InputLogic::TryHandleCancelShortcut(System.Boolean)] : dhc
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.InputLogic::Update()] : bjc
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.InputLogic::SimulateButtonClick(UnityEngine.UI.Button)] : bjf
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.InputLogic::OnTabAction()] : jhu
@ -44269,9 +44274,10 @@
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Boolean Logic.UnitLogic::CheckIsSelfPlayer(RuntimeData.MapData,System.UInt32)] : bnz
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.UnitLogic::MoveTo(RuntimeData.MapData,RuntimeData.PlayerData,RuntimeData.UnitData,RuntimeData.GridData)] : gze
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] System.Boolean Logic.UnitLogic::MoveToLogic(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.GridData,MoveType,System.Collections.Generic.List`1<UnityEngine.Vector2Int>)] : jmm
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Boolean Logic.UnitLogic::CanCounterByRules(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData)] : dlm
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Boolean Logic.UnitLogic::CanCounterByRules(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData)] : dlm
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Boolean Logic.UnitLogic::CanCounter(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData)] : boa
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] System.Void Logic.UnitLogic::Attack(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData,System.Int32&,System.Int32&,TH1_Anim.FragmentType&)] : gzd
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Void Logic.UnitLogic::Attack(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData,System.Int32&,System.Int32&,TH1_Anim.FragmentType&,Logic.Skill.YuugiPushResult&)] : fcl
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] Logic.SettlementInfo Logic.UnitLogic::DamageSettlement(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData,System.Int32,Logic.DamageType)] : boc
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Int32 Logic.UnitLogic::RecoverHealth_Legacy(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData,System.Int32)] : dby
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Int32 Logic.UnitLogic::RecoverHealth(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData,System.Int32,Logic.HealType)] : dbz
@ -44590,8 +44596,8 @@
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] System.Void Logic.Skill.KomeijiRiderKillSkill::BeforeDamageOther(RuntimeData.MapData,Logic.SettlementInfo)] : dcg
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] SkillType Logic.Skill.KomeijiRiderTransSkill::GetSkillType()] : bps
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] System.Void Logic.Skill.KomeijiRiderTransSkill::OnDamageOther(RuntimeData.MapData,Logic.SettlementInfo)] : feb
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Void Logic.Skill.KomeijiRiderTransSkill::ReportBoatOnLandTransform(RuntimeData.MapData,Logic.SettlementInfo,RuntimeData.UnitFullType,System.String)] : dpf
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.String Logic.Skill.KomeijiRiderTransSkill::FormatUnitFullType(RuntimeData.UnitFullType)] : dro
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.Skill.KomeijiRiderTransSkill::ReportBoatOnLandTransform(RuntimeData.MapData,Logic.SettlementInfo,RuntimeData.UnitFullType,System.String)] : dpf
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.String Logic.Skill.KomeijiRiderTransSkill::FormatUnitFullType(RuntimeData.UnitFullType)] : dro
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] SkillType Logic.Skill.LaevatainPreySkill::GetSkillType()] : bps
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] System.Void Logic.Skill.LaevatainPreySkill::OnDamaged(RuntimeData.MapData,Logic.SettlementInfo)] : jzj
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] SkillType Logic.Skill.LaevatainSkill::GetSkillType()] : bps
@ -45050,7 +45056,10 @@
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] SkillType Logic.Skill.YuugiMoveSkill::GetSkillType()] : bps
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] System.Single Logic.Skill.YuugiMoveSkill::GetAttackAdditionParam(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData)] : jzg
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] SkillType Logic.Skill.YuugiPushSkill::GetSkillType()] : bps
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Boolean Logic.Skill.YuugiPushSkill::YuugiPushAttack(RuntimeData.UnitData,RuntimeData.UnitData,RuntimeData.MapData,System.Int32&,System.Int32&,TH1_Anim.FragmentType&,System.Boolean&)] : kap
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Boolean Logic.Skill.YuugiPushSkill::YuugiPushAttack(RuntimeData.UnitData,RuntimeData.UnitData,RuntimeData.MapData,System.Int32&,System.Int32&,TH1_Anim.FragmentType&,Logic.Skill.YuugiPushResult&)] : fuc
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Void Logic.Skill.YuugiPushSkill::TryCreateBonePile(RuntimeData.MapData,RuntimeData.PlayerData,RuntimeData.CityData,RuntimeData.CityData,RuntimeData.UnitData,RuntimeData.GridData,RuntimeData.UnitFullType)] : fvq
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Boolean Logic.Skill.YuugiPushSkill::TryGetBonePileReviveType(RuntimeData.UnitData,RuntimeData.UnitFullType&)] : ggx
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Boolean Logic.Skill.YuugiPushSkill::YuugiPushRepositionWithoutMoveSideEffects(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.GridData)] : ggy
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Boolean Logic.Skill.YuugiPushSkill::CanCounterForPush(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData)] : fcq
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Collections.Generic.List`1<RuntimeData.GridData> Logic.Skill.SkillBase::RentAroundBuf()] : ddi
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.Skill.SkillBase::ReturnAroundBuf()] : ddj
@ -45653,13 +45662,13 @@
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.Action.ActionLogicBase::ReportBoatUnitOnLandBeforeAction(Logic.Action.CommonActionParams)] : mrt
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.Action.ActionLogicBase::ReportUnitRendererMismatchBeforeAction(Logic.Action.CommonActionParams)] : mru
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.Action.ActionLogicBase::AppendPreviousActionsLog(System.Text.StringBuilder,RuntimeData.MapData)] : mrv
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Void Logic.Action.ActionLogicBase::AppendRecentActionsLog(System.Text.StringBuilder,RuntimeData.MapData,System.Int32)] : eme
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.Action.ActionLogicBase::AppendRecentActionsLog(System.Text.StringBuilder,RuntimeData.MapData,System.Int32)] : eme
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.Action.ActionLogicBase::AppendActionNetDataLog(System.Text.StringBuilder,Logic.AI.ActionNetData)] : mrw
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.Action.ActionLogicBase::AppendBoatUnitsOnLandLog(System.Text.StringBuilder,RuntimeData.MapData)] : mrx
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.Action.ActionLogicBase::AppendRendererOnlyUnitsLog(System.Text.StringBuilder,RuntimeData.MapData,TH1Renderer.MapRenderer)] : mry
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.Action.ActionLogicBase::AppendDataOnlyUnitsLog(System.Text.StringBuilder,RuntimeData.MapData,TH1Renderer.MapRenderer)] : mrz
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.Action.ActionLogicBase::AppendUnitDataLog(System.Text.StringBuilder,RuntimeData.MapData,RuntimeData.UnitData)] : mzb
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Void Logic.Action.ActionLogicBase::ReportUnitAttackRendererMissingAfterKill(Logic.Action.CommonActionParams,Logic.Action.CommonActionId,TH1_Anim.FragmentType,System.Int32,System.Int32,System.Boolean,System.Boolean,System.Boolean,System.Boolean,RuntimeData.GridData,RuntimeData.GridData,TH1_Renderer.UnitRenderer,TH1_Renderer.UnitRenderer)] : eoy
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.Action.ActionLogicBase::ReportUnitAttackRendererMissingAfterKill(Logic.Action.CommonActionParams,Logic.Action.CommonActionId,TH1_Anim.FragmentType,System.Int32,System.Int32,System.Boolean,System.Boolean,System.Boolean,System.Boolean,RuntimeData.GridData,RuntimeData.GridData,TH1_Renderer.UnitRenderer,TH1_Renderer.UnitRenderer)] : eoy
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.Action.ActionLogicBase::AfterExecute(Logic.Action.CommonActionParams)] : hap
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] System.Boolean Logic.Action.ActionLogicBase::CheckCan(Logic.Action.CommonActionParams)] : fcn
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] System.Boolean Logic.Action.ActionLogicBase::CheckShow(Logic.Action.CommonActionParams,ShowType&)] : hxc
@ -45685,7 +45694,7 @@
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] System.Boolean Logic.Action.UnitPassiveMoveAction::Execute(Logic.Action.CommonActionParams)] : guo
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] System.Boolean Logic.Action.UnitPassiveMoveAction::CheckCan(Logic.Action.CommonActionParams)] : fcn
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] System.Boolean Logic.Action.UnitPassiveMoveAction::CheckShow(Logic.Action.CommonActionParams,ShowType&)] : hxc
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Void Logic.Action.ActiveAttackActionRecorder::MarkStarted(RuntimeData.MapData,RuntimeData.PlayerData)] : ezr
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.Action.ActiveAttackActionRecorder::MarkStarted(RuntimeData.MapData,RuntimeData.PlayerData)] : ezr
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.Action.ActiveAttackActionRecorder::MarkStarted(RuntimeData.MapData,RuntimeData.UnitData)] : ftf
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] System.Boolean Logic.Action.UnitAttackAction::Execute(Logic.Action.CommonActionParams)] : guo
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] System.Boolean Logic.Action.UnitAttackAction::CheckCan(Logic.Action.CommonActionParams)] : fcn
@ -45723,7 +45732,7 @@
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] System.Boolean Logic.Action.BuyCultureCardAction::CheckCan(Logic.Action.CommonActionParams)] : fcn
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Method Name [[Assembly-CSharp] System.Boolean Logic.Action.BuyCultureCardAction::CheckShow(Logic.Action.CommonActionParams,ShowType&)] : hxc
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.Action.ActionVisualEventCollector/<>c__DisplayClass19_0::<AddDamageStep>b__0()] : ftw
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Void Logic.Action.ActionVisualEventCollector/<>c__DisplayClass19_0::<AddDamageStep>g__RunVisual|1()] : fcl
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Method Name [[Assembly-CSharp] System.Void Logic.Action.ActionVisualEventCollector/<>c__DisplayClass19_0::<AddDamageStep>g__RunVisual|1()] : ghc
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] Logic.Action.ActionVisualEventCollector Logic.Action.ActionVisualEventCollector::get_Current()] : fxb
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Void Logic.Action.ActionVisualEventCollector::set_Current(Logic.Action.ActionVisualEventCollector)] : fxu
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Method Name [[Assembly-CSharp] System.Boolean Logic.Action.ActionVisualEventCollector::get_MainTargetKilledBeforeAttack()] : gex
@ -48552,6 +48561,11 @@
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Field Name [[Assembly-CSharp] System.Collections.Generic.List`1<UnityEngine.Vector2Int> Logic.Skill.UtsuhoDelayActSkill::Path] : jpz
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Field Name [[Assembly-CSharp] TH1_Renderer.UnitRenderer Logic.Skill.VampireProSkill/<>c__DisplayClass2_0::unitRenderer] : jqx
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Field Name [[Assembly-CSharp] TH1_Renderer.UnitRenderer Logic.Skill.VampireSkill/<>c__DisplayClass3_0::unitRenderer] : jqy
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Field Name [[Assembly-CSharp] System.Boolean Logic.Skill.YuugiPushResult::Pushed] : ghh
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Field Name [[Assembly-CSharp] System.Boolean Logic.Skill.YuugiPushResult::TargetKilledAfterPush] : glc
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Field Name [[Assembly-CSharp] RuntimeData.GridData Logic.Skill.YuugiPushResult::OriginGridBeforePush] : gns
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Field Name [[Assembly-CSharp] RuntimeData.GridData Logic.Skill.YuugiPushResult::TargetGridBeforePush] : gzn
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Field Name [[Assembly-CSharp] RuntimeData.GridData Logic.Skill.YuugiPushResult::TargetGridAfterPush] : hjz
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Field Name [[Assembly-CSharp] System.Collections.Generic.Dictionary`2<System.Type,System.UInt16> Logic.Skill.SkillBase/SkillBaseFormatter::__typeToTag] : gth
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Field Name [[Assembly-CSharp] System.Collections.Generic.List`1<System.Collections.Generic.List`1<RuntimeData.GridData>> Logic.Skill.SkillBase::_aroundBufPool] : jtp
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Field Name [[Assembly-CSharp] System.Int32 Logic.Skill.SkillBase::_poolTop] : jtq
@ -48775,7 +48789,7 @@
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Field Name [[Assembly-CSharp] System.Text.StringBuilder Logic.Action.ActionLogicBase::_sharedRendererUnitMismatchLogBuilder] : nci
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Field Name [[Assembly-CSharp] System.Boolean Logic.Action.ActionLogicBase::_boatUnitOnLandDiagnosticFailedLogged] : ncj
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Field Name [[Assembly-CSharp] System.Boolean Logic.Action.ActionLogicBase::_unitRendererMismatchDiagnosticFailedLogged] : nck
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Field Name [[Assembly-CSharp] System.Boolean Logic.Action.ActionLogicBase::_unitAttackRendererMissingAfterKillDiagnosticFailedLogged] : frb
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Field Name [[Assembly-CSharp] System.Boolean Logic.Action.ActionLogicBase::_unitAttackRendererMissingAfterKillDiagnosticFailedLogged] : frb
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Field Name [[Assembly-CSharp] System.Int32 Logic.Action.ActionLogicBase::MaxRendererUnitMismatchLogCount] : ncl
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Field Name [[Assembly-CSharp] RuntimeData.GridData Logic.Action.ActionVisualEventCollector/<>c__DisplayClass19_0::targetGrid] : gzm
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Field Name [[Assembly-CSharp] Logic.Action.ActionVisualEventCollector Logic.Action.ActionVisualEventCollector/<>c__DisplayClass19_0::<>4__this] : gzo
@ -49216,7 +49230,7 @@
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Property Name [[Assembly-CSharp] System.UInt64 TH1_UI.View.Bottom.UIBottomNetRowMono::MemberId()] : iwe
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Property Name [[Assembly-CSharp] UnityEngine.Canvas TH1_UI.View.Base.View::ViewCanvas()] : fnp
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Property Name [[Assembly-CSharp] System.Boolean TH1_UI.HintUI.HeroHintPanel::IsPinned()] : kef
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found new Property Name [[Assembly-CSharp] UnityEngine.Color TH1_UI.HintUI.HeroHintPanelCommonCircleMono::DefaultActionBgColor()] : frv
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Property Name [[Assembly-CSharp] UnityEngine.Color TH1_UI.HintUI.HeroHintPanelCommonCircleMono::DefaultActionBgColor()] : frv
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Property Name [[Assembly-CSharp] UnityEngine.GameObject TH1_UI.Core.BaseUIView`1::Instance()] : fig
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found looked up Property Name [[Assembly-CSharp] TData TH1_UI.Core.BaseUIView`1::Data()] : fih
[Info][OPS.OBF][OnFindMemberNames_Assemblies] Found group Property Name [[Assembly-CSharp] System.String TH1_UI.Core.BaseUIView`1::PrefabPath()] :
@ -50868,6 +50882,7 @@
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Type Namespace [[Assembly-CSharp] Logic.Skill.YuugiMovePlusSkill] to
[Info][OPS.OBF][OnObfuscate_Assemblies] Update Reference Type [[Assembly-CSharp] Logic.Skill.YuugiMoveSkill]
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Type Namespace [[Assembly-CSharp] Logic.Skill.YuugiMoveSkill] to
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Type Namespace [[Assembly-CSharp] Logic.Skill.YuugiPushResult] to
[Info][OPS.OBF][OnObfuscate_Assemblies] Update Reference Type [[Assembly-CSharp] Logic.Skill.YuugiPushSkill]
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Type Namespace [[Assembly-CSharp] Logic.Skill.YuugiPushSkill] to
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Type Namespace [[Assembly-CSharp] Logic.Skill.SkillBase] to
@ -52320,6 +52335,7 @@
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Type [[Assembly-CSharp] Logic.Skill.YuugiMovePlusSkill] to ivl
[Info][OPS.OBF][OnObfuscate_Assemblies] Update Reference Type [[Assembly-CSharp] Logic.Skill.YuugiMoveSkill]
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Type [[Assembly-CSharp] Logic.Skill.YuugiMoveSkill] to iyl
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Type [[Assembly-CSharp] Logic.Skill.YuugiPushResult] to bgi
[Info][OPS.OBF][OnObfuscate_Assemblies] Update Reference Type [[Assembly-CSharp] Logic.Skill.YuugiPushSkill]
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Type [[Assembly-CSharp] Logic.Skill.YuugiPushSkill] to jkg
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Type [[Assembly-CSharp] Logic.Skill.SkillBase] to fpx
@ -58309,6 +58325,7 @@
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Boolean Logic.UnitLogic::CanCounterByRules(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData)] to dlm
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Boolean Logic.UnitLogic::CanCounter(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData)] to boa
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Void Logic.UnitLogic::Attack(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData,System.Int32&,System.Int32&,TH1_Anim.FragmentType&)] to gzd
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Void Logic.UnitLogic::Attack(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData,System.Int32&,System.Int32&,TH1_Anim.FragmentType&,Logic.Skill.YuugiPushResult&)] to fcl
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] Logic.SettlementInfo Logic.UnitLogic::DamageSettlement(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData,System.Int32,Logic.DamageType)] to boc
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Int32 Logic.UnitLogic::RecoverHealth_Legacy(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData,System.Int32)] to dby
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Int32 Logic.UnitLogic::RecoverHealth(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData,System.Int32,Logic.HealType)] to dbz
@ -59087,7 +59104,10 @@
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] SkillType Logic.Skill.YuugiMoveSkill::GetSkillType()] to bps
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Single Logic.Skill.YuugiMoveSkill::GetAttackAdditionParam(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData)] to jzg
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] SkillType Logic.Skill.YuugiPushSkill::GetSkillType()] to bps
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Boolean Logic.Skill.YuugiPushSkill::YuugiPushAttack(RuntimeData.UnitData,RuntimeData.UnitData,RuntimeData.MapData,System.Int32&,System.Int32&,TH1_Anim.FragmentType&,System.Boolean&)] to kap
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Boolean Logic.Skill.YuugiPushSkill::YuugiPushAttack(RuntimeData.UnitData,RuntimeData.UnitData,RuntimeData.MapData,System.Int32&,System.Int32&,TH1_Anim.FragmentType&,Logic.Skill.YuugiPushResult&)] to fuc
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Void Logic.Skill.YuugiPushSkill::TryCreateBonePile(RuntimeData.MapData,RuntimeData.PlayerData,RuntimeData.CityData,RuntimeData.CityData,RuntimeData.UnitData,RuntimeData.GridData,RuntimeData.UnitFullType)] to fvq
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Boolean Logic.Skill.YuugiPushSkill::TryGetBonePileReviveType(RuntimeData.UnitData,RuntimeData.UnitFullType&)] to ggx
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Boolean Logic.Skill.YuugiPushSkill::YuugiPushRepositionWithoutMoveSideEffects(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.GridData)] to ggy
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Boolean Logic.Skill.YuugiPushSkill::CanCounterForPush(RuntimeData.MapData,RuntimeData.UnitData,RuntimeData.UnitData)] to fcq
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Collections.Generic.List`1<RuntimeData.GridData> Logic.Skill.SkillBase::RentAroundBuf()] to ddi
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Void Logic.Skill.SkillBase::ReturnAroundBuf()] to ddj
@ -59862,7 +59882,7 @@
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Boolean Logic.Action.BuyCultureCardAction::CheckCan(Logic.Action.CommonActionParams)] to fcn
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Boolean Logic.Action.BuyCultureCardAction::CheckShow(Logic.Action.CommonActionParams,ShowType&)] to hxc
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Void Logic.Action.ActionVisualEventCollector/<>c__DisplayClass19_0::<AddDamageStep>b__0()] to ftw
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Void Logic.Action.ActionVisualEventCollector/<>c__DisplayClass19_0::<AddDamageStep>g__RunVisual|1()] to fcl
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Void Logic.Action.ActionVisualEventCollector/<>c__DisplayClass19_0::<AddDamageStep>g__RunVisual|1()] to ghc
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] Logic.Action.ActionVisualEventCollector Logic.Action.ActionVisualEventCollector::get_Current()] to fxb
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Void Logic.Action.ActionVisualEventCollector::set_Current(Logic.Action.ActionVisualEventCollector)] to fxu
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Method [[Assembly-CSharp] System.Boolean Logic.Action.ActionVisualEventCollector::get_MainTargetKilledBeforeAttack()] to gex
@ -62890,6 +62910,11 @@
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Field [[Assembly-CSharp] System.Collections.Generic.List`1<UnityEngine.Vector2Int> Logic.Skill.UtsuhoDelayActSkill::Path] to jpz
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Field [[Assembly-CSharp] TH1_Renderer.UnitRenderer Logic.Skill.VampireProSkill/<>c__DisplayClass2_0::unitRenderer] to jqx
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Field [[Assembly-CSharp] TH1_Renderer.UnitRenderer Logic.Skill.VampireSkill/<>c__DisplayClass3_0::unitRenderer] to jqy
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Field [[Assembly-CSharp] System.Boolean Logic.Skill.YuugiPushResult::Pushed] to ghh
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Field [[Assembly-CSharp] System.Boolean Logic.Skill.YuugiPushResult::TargetKilledAfterPush] to glc
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Field [[Assembly-CSharp] RuntimeData.GridData Logic.Skill.YuugiPushResult::OriginGridBeforePush] to gns
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Field [[Assembly-CSharp] RuntimeData.GridData Logic.Skill.YuugiPushResult::TargetGridBeforePush] to gzn
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Field [[Assembly-CSharp] RuntimeData.GridData Logic.Skill.YuugiPushResult::TargetGridAfterPush] to hjz
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Field [[Assembly-CSharp] System.Collections.Generic.Dictionary`2<System.Type,System.UInt16> Logic.Skill.SkillBase/SkillBaseFormatter::__typeToTag] to gth
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Field [[Assembly-CSharp] System.Collections.Generic.List`1<System.Collections.Generic.List`1<RuntimeData.GridData>> Logic.Skill.SkillBase::_aroundBufPool] to jtp
[Info][OPS.OBF][OnObfuscate_Assemblies] Rename Field [[Assembly-CSharp] System.Int32 Logic.Skill.SkillBase::_poolTop] to jtq
@ -65199,7 +65224,7 @@
[Debug][OPS.OBF][Setup] Load Pipeline
[Info][OPS.OBF][OnPostBuild] Process component Post Process Unity MonoBehaviour Assets
[Info][OPS.OBF][OnPostBuild] Assets are not bundled. Obfuscating globalgamemanagers.assets file.
[Info][OPS.OBF][OnPostBuild] Obfuscating globalgamemanagers.assets file 'C:\TH1\Pack\073c\TOHOTOPIA_Data\globalgamemanagers.assets'.
[Info][OPS.OBF][OnPostBuild] Obfuscating globalgamemanagers.assets file 'C:\TH1\Pack\073c2\TOHOTOPIA_Data\globalgamemanagers.assets'.
[Debug][OPS.OBF][OnPostBuild] Loaded globalgamemanagers.assets file successfully.
[Debug][OPS.OBF][OnPostBuild] Obfuscated '97' MonoScripts in assets file 'globalgamemanagers.assets'.
[Debug][OPS.OBF][OnPostBuild] Updated globalgamemanagers.assets file successfully.

View File

@ -2390,7 +2390,7 @@ namespace Logic.Action
//Step #2 处理逻辑计算提前存储anim使用到的数据
bool targetCanNotBeKilled = !actionParams.TargetUnitData.CanBeKilled(actionParams.MapData);
Main.UnitLogic.Attack(actionParams.MapData, actionParams.UnitData, actionParams.TargetUnitData, out var attackDmg,out var counterDmg,out var fragmentType);
Main.UnitLogic.Attack(actionParams.MapData, actionParams.UnitData, actionParams.TargetUnitData, out var attackDmg,out var counterDmg,out var fragmentType, out var yuugiPushResult);
var originKilledByAttack = originAliveBeforeAttack && !actionParams.UnitData.IsAlive();
var targetKilledByAttack = targetAliveBeforeAttack && !actionParams.TargetUnitData.IsAlive();
@ -2434,18 +2434,20 @@ namespace Logic.Action
return false;
}
//Step #3-1 检测YuugiPush是否发生了推动origin移动到了targetGrid的位置
var originGridAfter = actionParams.UnitData.Grid(Main.MapData);
//Step #3-1 检测YuugiPush是否发生了推动。推击致死时 target 已经从数据层移除,
//不能再靠 target 当前 grid 推断,必须使用 YuugiPushSkill 返回的移动结果。
var targetGridAfter = actionParams.TargetUnitData.Grid(Main.MapData);
bool pushed = originGridAfter != null && originGridAfter.Id != originGrid.Id && originGridAfter.Id == targetGrid.Id;
bool pushed = yuugiPushResult is { Pushed: true, TargetGridAfterPush: not null };
if (pushed && targetGridAfter == null)
targetGridAfter = yuugiPushResult.TargetGridAfterPush;
//如果在视野,播放动画
if (Main.MapData?.PlayerMap?.SelfPlayerData?.Sight != null &&
(Main.MapData.PlayerMap.SelfPlayerData.Sight.CheckIsInSight(originGrid.Id) ||
Main.MapData.PlayerMap.SelfPlayerData.Sight.CheckIsInSight(targetGrid.Id)))
{
//如果发生了推动,先播放双方的移动动画,再播放攻击动画
//推击保证不会击杀target所以targetGridAfter!=null可以正确区分推击和MoveKill
//如果发生了推动,先播放双方的移动动画,再播放攻击动画
//推击可能致死targetGridAfter 可能来自存活单位的当前格,也可能来自 YuugiPushResult 中记录的死亡格。
if (pushed && targetGridAfter != null)
{
//target往后退一格的移动动画
@ -2497,7 +2499,7 @@ namespace Logic.Action
actionParams.UnitData.Player(actionParams.MapData)?.Sight.UpdateSightByPath(actionParams.UnitData,originPlayer,targetGrid.Pos.V2(),actionParams.MapData);
//如果YuugiPush推动发生了攻击者也移动了需要更新视野
else if(pushed)
actionParams.UnitData.Player(actionParams.MapData)?.Sight.UpdateSightByPath(actionParams.UnitData,originPlayer,targetGrid.Pos.V2(),actionParams.MapData);
originPlayer?.Sight.UpdateSightByPath(actionParams.UnitData,originPlayer,targetGrid.Pos.V2(),actionParams.MapData);
//Step #5 更新攻击前后两个格子的显示比如学者攻击了在城市里的角色那么城市里会有fire

View File

@ -17,6 +17,25 @@ using UnityEngine;
namespace Logic.Skill
{
/// <summary>
/// YuugiPush 专用的本次攻击结果。普通攻击不使用这个对象。
/// 这里保存的是逻辑结算前后的关键格子,供 UnitAttackAction 在目标死亡、
/// 攻击者被反击杀死等情况下仍能播放正确的推击动画。
/// </summary>
public class YuugiPushResult
{
/// <summary>本次是否真的发生了推击位移。</summary>
public bool Pushed;
/// <summary>target 是否在被推到 TargetGridAfterPush 后被本次推击伤害击杀。</summary>
public bool TargetKilledAfterPush;
/// <summary>攻击开始前 self 所在格。</summary>
public GridData OriginGridBeforePush;
/// <summary>攻击开始前 target 所在格,也是 self 推击后前进到的格子。</summary>
public GridData TargetGridBeforePush;
/// <summary>target 被推到的格子target 死亡后数据层会移除单位,所以动画层必须缓存这个格子。</summary>
public GridData TargetGridAfterPush;
}
public partial class YuugiPushSkill : SkillBase
{
public YuugiPushSkill()
@ -32,16 +51,34 @@ namespace Logic.Skill
}
/// <summary>
/// 推击攻击逻辑纯数据动画由UnitAttackAction.Execute负责
/// 勇仪推击的权威数据规则,动画由 UnitAttackAction.Execute 按 YuugiPushResult 播放。
///
/// 预期矩阵:
/// 1. canPush = true 且不致死:
/// target: targetGrid -> nextGridself: selfGrid -> targetGrid
/// 然后在移动后的格子上结算伤害。target 存活且满足反击规则时,从 nextGrid 反击。
/// 2. canPush = true 且致死:
/// 仍然必须先执行同样的推击位移target 死在 nextGridself 停在 targetGrid。
/// 动画层必须播放 target 后退、self 前进,然后在 nextGrid 播放死亡;
/// 绝不能退化成普通 MoveKill也不能因为 target 死亡后无 grid 而丢掉动画。
/// 注意:这两个位移是本次攻击内部的站位调整,不是独立移动行为;
/// 它们不触发 BeforeMove/OnMove/OnAnyUnitMove避免 STOMP、GridRadiation 等移动副作用
/// 抢在 PushAttack 伤害前杀死目标。但仍必须处理 BoatToLand/LandToBoat 形态合法化。
/// 3. canPush = false
/// 背后有单位、越界、地形/港口不合法等都会进入该分支;不发生任何推击位移,
/// 伤害使用基础伤害 +2。target 存活且满足反击规则时,按普通攻击反击。
/// 4. canPush = false 且致死:
/// self 能合法进入 targetGrid 时走普通 MoveKill不能进入时走 NotMoveKill。
/// 两者都必须清理 target renderer避免死亡单位贴图残留。
/// </summary>
/// <returns>true表示推击已执行false表示不满足推击条件应走普通攻击</returns>
/// <returns>true 表示推击规则已接管本次攻击false 表示不满足推击技能前置条件,应走普通攻击。</returns>
public bool YuugiPushAttack(UnitData self, UnitData target, MapData map,
out int outAttackDmg, out int outCounterDmg, out FragmentType outFragmentType, out bool outPushed)
out int outAttackDmg, out int outCounterDmg, out FragmentType outFragmentType, out YuugiPushResult outResult)
{
outAttackDmg = 0;
outCounterDmg = 0;
outFragmentType = FragmentType.Attack;
outPushed = false;
outResult = null;
if (self == null || target == null) return false;
var fullType = new UnitFullType();
@ -65,86 +102,98 @@ namespace Logic.Skill
// 使用 CheckUnitAbleForGrid_OfflineStatus 而非 CheckLandTypeForGrid:
// 前者会对 LandAndPort 单位检查港口归属(必须同联盟),后者只看地形 LandType。
// 之前用纯 LandType 判定会让勇仪(LandAndPort)合法走进敌方港口。
// self 只需要能进入 targetGrid被推到 nextGrid 的是 target不要求 self 也能进入 nextGrid。
// 因此岸边推船只允许 targetGrid 是桥、陆地、我方/盟友港口等 self 合法格,不能隔着普通海格推船。
bool canPush = nextGrid != null && !nextGrid.RealUnit(map, out _)
&& Main.UnitLogic.CheckUnitAbleForGrid_OfflineStatus(map, targetPlayer, target, nextGrid)
&& Main.UnitLogic.CheckUnitAbleForGrid_OfflineStatus(map, player, self, targetGrid)
&& Main.UnitLogic.CheckUnitAbleForGrid_OfflineStatus(map, player, self, nextGrid);
&& Main.UnitLogic.CheckUnitAbleForGrid_OfflineStatus(map, player, self, targetGrid);
// 能推→无额外伤害;不能推→+2伤害
int actualDmg = canPush ? dmg : dmg + 2;
// 只有能推动且实际伤害不会击杀,才走推人
if (canPush && actualDmg < target.Health)
if (canPush)
{
// 推击:先移动数据,再攻击,可能有反击
outPushed = true;
if (!Main.UnitLogic.MoveToLogic(map, target, nextGrid, MoveType.PushMove))
// 推击:无论是否击杀,都先执行 target 后退和 self 前进。是否死亡只决定后续攻击 fragment。
outResult = new YuugiPushResult
{
Pushed = true,
OriginGridBeforePush = selfGrid,
TargetGridBeforePush = targetGrid,
TargetGridAfterPush = nextGrid,
};
if (!YuugiPushRepositionWithoutMoveSideEffects(map, target, nextGrid))
{
LogSystem.LogError($"YuugiPush target move failed. self={self.Id}, target={target.Id}, from={targetGrid.Id}, to={nextGrid.Id}");
outPushed = false;
outResult = null;
return false;
}
if (!target.IsValidOnMap(map) || !target.IsAlive() || !map.GetGridDataByUnitId(target.Id, out var targetGridAfterMove) || targetGridAfterMove.Id != nextGrid.Id)
{
LogSystem.LogError($"YuugiPush aborted after target move. self={self.Id}, target={target.Id}, expectedTargetGrid={nextGrid.Id}");
outPushed = false;
outResult = null;
return true;
}
if (!self.IsValidOnMap(map) || !self.IsAlive())
{
LogSystem.LogError($"YuugiPush aborted: self invalid after target move. self={self.Id}, target={target.Id}");
outPushed = false;
outResult = null;
return true;
}
if (targetGrid.RealUnit(map, out var targetGridOccupant) && targetGridOccupant.Id != self.Id)
{
LogSystem.LogError($"YuugiPush aborted: target origin grid occupied after push. self={self.Id}, target={target.Id}, grid={targetGrid.Id}, occupant={targetGridOccupant.Id}");
outPushed = false;
outResult = null;
return true;
}
if (!Main.UnitLogic.MoveToLogic(map, self, targetGrid, MoveType.AttackMove))
if (!YuugiPushRepositionWithoutMoveSideEffects(map, self, targetGrid))
{
LogSystem.LogError($"YuugiPush self move failed. self={self.Id}, target={target.Id}, to={targetGrid.Id}");
outPushed = false;
outResult = null;
return true;
}
if (!self.IsValidOnMap(map) || !self.IsAlive() || !map.GetGridDataByUnitId(self.Id, out var selfGridAfterMove) || selfGridAfterMove.Id != targetGrid.Id)
{
LogSystem.LogError($"YuugiPush aborted after self move. self={self.Id}, target={target.Id}, expectedSelfGrid={targetGrid.Id}");
outPushed = false;
outResult = null;
return true;
}
if (!target.IsValidOnMap(map) || !target.IsAlive() || !map.GetGridDataByUnitId(target.Id, out targetGridAfterMove) || targetGridAfterMove.Id != nextGrid.Id)
{
LogSystem.LogError($"YuugiPush aborted before damage. self={self.Id}, target={target.Id}, expectedTargetGrid={nextGrid.Id}");
outPushed = false;
outResult = null;
return true;
}
var cDmg = Table.Instance.CalcCounterDamage(map, self, target);
// 使用 push 专用反击判定:绕开通用 CanCounter 中 dmg1 重算导致的误判秒杀问题。
// push 分支入口已保证 actualDmg < target.Health不可能秒杀所以跳过该检查
// 推击的伤害在移动前已经确定,反击只应在结算后 target 仍存活时判断
// 其余合法限制(联盟/IsLimit*CounterAttack/视野/距离)仍然保留。
bool canCounter = CanCounterForPush(map, self, target);
outAttackDmg = dmg;
Main.UnitLogic.DamageSettlement(map, self, target, dmg, DamageType.PushAttack);
outResult.TargetKilledAfterPush = !target.IsAlive();
if (canCounter && target.IsAlive() && self.IsAlive())
{
outCounterDmg = cDmg;
Main.UnitLogic.DamageSettlement(map, target, self, cDmg, DamageType.CounterAttack);
outFragmentType = !self.IsAlive() ? FragmentType.AttackAndCounterDie : FragmentType.AttackAndCounter;
}
else if (!target.IsAlive())
{
outFragmentType = FragmentType.NotMoveKill;
TryCreateBonePile(map, player, city, targetCity, target, targetGrid, fullType);
}
}
else
{
// 不能推动、或伤害足以击杀:直接攻击(含可能的+2
outPushed = false;
outAttackDmg = actualDmg;
var cDmg = Table.Instance.CalcCounterDamage(map, self, target);
bool canCounter = Main.UnitLogic.CanCounterByRules(map, self, target);
@ -160,42 +209,7 @@ namespace Logic.Skill
{
outFragmentType = FragmentType.MoveKill;
Main.UnitLogic.MoveToLogic(map, self, targetGrid, MoveType.AttackMove);
// 击杀英雄不生成骨堆
if (!target.TreatedAsHero(map, target))
{
var aroundBuf = RentAroundBuf();
map.GridMap.GetAroundGridData(1, 1, targetGrid, aroundBuf);
var randomList = new List<GridData>();
foreach (var grid in aroundBuf)
{
if (grid == targetGrid) continue;
if (grid.RealUnit(map,out _)) continue;
if(!map.CheckLandTypeForGrid(fullType, grid))continue;
randomList.Add(grid);
}
ReturnAroundBuf();
if (randomList.Count > 0)
{
var index = map.Net.GetRandom(map).Next(0, randomList.Count - 1);
if (map.AddUnitData(randomList[index].Id, city.Id, fullType, out var bone))
{
bone.GetSkill(SkillType.BonePile, out var skill);
var bonePile = skill as BonePileSkill;
if (bonePile != null)
{
bonePile.TargetType = target.UnitFullType;
bonePile.TargetCityId = targetCity.Id;
}
bone.Health = Mathf.Max(1, UnitData.CeilPositiveToInt(bone.GetMaxHealth() / 4f));
var boneGrid = bone.Grid(map);
if (boneGrid != null)
{
var sightRadius = boneGrid.Feature == TerrainFeature.Mountain ? 2 : 1;
Main.PlayerLogic.UpdateSightByRadius_LogicView(map, player, boneGrid, sightRadius);
}
}
}
}
TryCreateBonePile(map, player, city, targetCity, target, targetGrid, fullType);
}
else if (!target.IsAlive())
{
@ -205,6 +219,80 @@ namespace Logic.Skill
return true;
}
private static void TryCreateBonePile(MapData map, PlayerData player, CityData city, CityData targetCity, UnitData target, GridData targetGrid, UnitFullType fullType)
{
// 击杀英雄不生成骨堆。骨堆围绕被攻击者原格生成,保持旧逻辑位置,避免推击致死占用 nextGrid。
if (target.TreatedAsHero(map, target)) return;
if (!TryGetBonePileReviveType(target, out var reviveType)) return;
var aroundBuf = RentAroundBuf();
map.GridMap.GetAroundGridData(1, 1, targetGrid, aroundBuf);
var randomList = new List<GridData>();
foreach (var grid in aroundBuf)
{
if (grid == targetGrid) continue;
if (grid.RealUnit(map,out _)) continue;
if(!map.CheckLandTypeForGrid(fullType, grid))continue;
if(!map.CheckLandTypeForGrid(reviveType, grid))continue;
randomList.Add(grid);
}
ReturnAroundBuf();
if (randomList.Count <= 0) return;
var index = map.Net.GetRandom(map).Next(0, randomList.Count - 1);
if (!map.AddUnitData(randomList[index].Id, city.Id, fullType, out var bone)) return;
bone.GetSkill(SkillType.BonePile, out var skill);
var bonePile = skill as BonePileSkill;
if (bonePile != null)
{
bonePile.TargetType = reviveType;
bonePile.TargetCityId = targetCity.Id;
}
bone.Health = Mathf.Max(1, UnitData.CeilPositiveToInt(bone.GetMaxHealth() / 4f));
var boneGrid = bone.Grid(map);
if (boneGrid == null) return;
var sightRadius = boneGrid.Feature == TerrainFeature.Mountain ? 2 : 1;
Main.PlayerLogic.UpdateSightByRadius_LogicView(map, player, boneGrid, sightRadius);
}
private static bool TryGetBonePileReviveType(UnitData target, out UnitFullType reviveType)
{
reviveType = target.UnitFullType;
var targetLandType = target.GetLandType();
if (targetLandType is not (LandType.WaterAndAshore or LandType.WaterOnly)) return true;
// 船形态只是上水后的外壳,骨堆复生必须使用船里携带的原单位形态。
// 是否能落在具体骨堆格,由 TryCreateBonePile 的候选格筛选统一检查。
var carryType = target.CarryUnitFullType;
if (carryType.UnitType == UnitType.None) return false;
reviveType = carryType;
return true;
}
private static bool YuugiPushRepositionWithoutMoveSideEffects(MapData map, UnitData unit, GridData grid)
{
if (map == null || unit == null || grid == null) return false;
if (grid.RealUnit(map, out var occupant) && occupant.Id != unit.Id) return false;
if (unit.GetLandType() == LandType.WaterAndAshore && grid.Terrain == TerrainType.Land)
{
var carryType = unit.CarryUnitFullType;
if (carryType.UnitType == UnitType.None || !map.CheckLandTypeForGrid(carryType, grid)) return false;
}
map.SetUnitIdToGridId(unit.Id, grid.Id);
// YuugiPush 的位移属于同一次攻击的站位调整:不能触发移动技能副作用,
// 但必须保持水陆形态与最终格子一致,避免船停陆地或陆地形态停港口。
if (unit.GetLandType() == LandType.LandAndPort && grid.Resource == ResourceType.Port)
Main.UnitLogic.LandToBoat(map, unit);
else if (unit.GetLandType() == LandType.WaterAndAshore && grid.Terrain == TerrainType.Land)
Main.UnitLogic.BoatToLand(map, unit);
return true;
}
// Push 场景专用的反击判定。
// 问题背景:通用 UnitLogic.CanCounter 内部会重算 dmg1 = CalcDamage(self, target)
// push 发生后 self/target 的位置都变了,基于位置的 skill 加成可能让 dmg1 漂移;

View File

@ -328,10 +328,16 @@ namespace Logic
}
public void Attack(MapData mapData, UnitData unit1, UnitData unit2, out int attackDmg,out int counterDmg,out FragmentType fragmentType)
{
Attack(mapData, unit1, unit2, out attackDmg, out counterDmg, out fragmentType, out _);
}
public void Attack(MapData mapData, UnitData unit1, UnitData unit2, out int attackDmg,out int counterDmg,out FragmentType fragmentType, out YuugiPushResult yuugiPushResult)
{
attackDmg = 0;
counterDmg = 0;
fragmentType = FragmentType.Attack;
yuugiPushResult = null;
if (mapData == null || unit1 == null || unit2 == null) return;
if (!unit1.IsValidOnMap(mapData) || !unit2.IsValidOnMap(mapData)) return;
if (!mapData.GetPlayerDataByUnitId(unit1.Id, out var player1)) return;
@ -344,7 +350,7 @@ namespace Logic
if (unit1.GetSkill(SkillType.YuugiPush, out var yuugiPushSkill))
{
var push = yuugiPushSkill as YuugiPushSkill;
if (push != null && push.YuugiPushAttack(unit1, unit2, mapData, out attackDmg, out counterDmg, out fragmentType, out _))
if (push != null && push.YuugiPushAttack(unit1, unit2, mapData, out attackDmg, out counterDmg, out fragmentType, out yuugiPushResult))
{
unit1.ClearActionPoint();
return;

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff