moment开发

This commit is contained in:
kawagiri 2026-02-27 18:13:52 +08:00
parent 494a1be57e
commit 2438c07789
19 changed files with 51772 additions and 814495 deletions

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -378,7 +378,7 @@ MonoBehaviour:
Title: "\u6797\u4E1A\u5DE8\u64CE!"
Desc: "\u9996\u6B21\u62E5\u6709Lv.5\u952F\u6728\u5382"
ImagePacks: []
- MomentType: 3
- MomentType: 2
SubType: 302019
Title: "\u5355\u62BD\u51FA\u5947\u8FF9\uFF01"
Desc: "\u4F46\u613F\u4F60\u6316\u5230\u4E86\u597D\u4E1C\u897F"

View File

@ -378,7 +378,7 @@ MonoBehaviour:
Title: 17677
Desc: 17678
ImagePacks: []
- MomentType: 3
- MomentType: 2
SubType: 302019
Title: 17679
Desc: 17680

File diff suppressed because one or more lines are too long

View File

@ -6325,6 +6325,7 @@ RectTransform:
m_Children:
- {fileID: 1205708729765306845}
- {fileID: 2184881051338692039}
- {fileID: 8882186284409583335}
- {fileID: 5342793882359330196}
- {fileID: 8528636963829274395}
- {fileID: 2287499259928791354}
@ -6428,6 +6429,7 @@ MonoBehaviour:
TechButton: {fileID: 1148695885815420974}
HeroButton: {fileID: 8375957898562387602}
NextButton: {fileID: 2815938945958847087}
TabButton: {fileID: 723068859662876249}
HeroButtonIconHint: {fileID: 6294588613545110024}
HeroButtonTextHint: {fileID: 2964491208351589445}
HeroButtonAvatar: {fileID: 2152286706105581020}
@ -6771,6 +6773,81 @@ MonoBehaviour:
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &2643776139574445125
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6358175036244102177}
- component: {fileID: 515010231484439710}
- component: {fileID: 1253292760119965225}
m_Layer: 5
m_Name: Icon
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6358175036244102177
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2643776139574445125}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 2, y: 2, z: 2}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 8882186284409583335}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 33.786, y: 36.2394}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &515010231484439710
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2643776139574445125}
m_CullTransparentMesh: 1
--- !u!114 &1253292760119965225
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2643776139574445125}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 3570c4c94875d0e4d97957d446af4582, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &2695911004482799234
GameObject:
m_ObjectHideFlags: 0
@ -11639,6 +11716,292 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &4586074972896995149
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8882186284409583335}
- component: {fileID: 3472779972798311544}
- component: {fileID: 3492394894613319936}
- component: {fileID: 723068859662876249}
- component: {fileID: 825248035299329608}
- component: {fileID: 8612405088452618387}
- component: {fileID: 3706405996523234814}
- component: {fileID: 881285227639864730}
- component: {fileID: 433413514287121568}
m_Layer: 5
m_Name: TabButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8882186284409583335
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4586074972896995149}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.200096, y: 1.200096, z: 1.200096}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 6358175036244102177}
m_Father: {fileID: 7448979660496629192}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 661, y: -294}
m_SizeDelta: {x: 93.323, y: 95.7422}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3472779972798311544
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4586074972896995149}
m_CullTransparentMesh: 1
--- !u!114 &3492394894613319936
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4586074972896995149}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 6455bb2b81c156c4cadfd23c90bc9970, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &723068859662876249
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4586074972896995149}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 0
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 3492394894613319936}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!82 &825248035299329608
AudioSource:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4586074972896995149}
m_Enabled: 1
serializedVersion: 4
OutputAudioMixerGroup: {fileID: 0}
m_audioClip: {fileID: 0}
m_PlayOnAwake: 1
m_Volume: 1
m_Pitch: 1
Loop: 0
Mute: 0
Spatialize: 0
SpatializePostEffects: 0
Priority: 128
DopplerLevel: 1
MinDistance: 1
MaxDistance: 500
Pan2D: 0
rolloffMode: 0
BypassEffects: 0
BypassListenerEffects: 0
BypassReverbZones: 0
rolloffCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
panLevelCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
spreadCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
reverbZoneMixCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
--- !u!114 &8612405088452618387
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4586074972896995149}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 33d75335a9dad784a91baba5578371fb, type: 3}
m_Name:
m_EditorClassIdentifier:
hoverSound: {fileID: 8300000, guid: b70699fb70c0d3b44a22f2bdf87da7d2, type: 3}
targetScale: 1.1
clickSound: {fileID: 0}
pressScale: 0.95
scaleDuration: 0.1
--- !u!114 &3706405996523234814
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4586074972896995149}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0ad50f81b1d25c441943c37a89ba23f6, type: 3}
m_Name:
m_EditorClassIdentifier:
_Animator: {fileID: 881285227639864730}
_ActionOnDisable: 0
--- !u!95 &881285227639864730
Animator:
serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4586074972896995149}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 0}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!225 &433413514287121568
CanvasGroup:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4586074972896995149}
m_Enabled: 1
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!1 &4629264090221203638
GameObject:
m_ObjectHideFlags: 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -0,0 +1,114 @@
fileFormatVersion: 2
guid: 3570c4c94875d0e4d97957d446af4582
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -88,6 +88,7 @@ namespace TH1_Core.Events
EventManager.Subscribe<ExecuteUIBottomBottomBarNextButtonClick>(HandleExecuteUIBottomBottomBarNextButtonClick);
EventManager.Subscribe<ShowUIBottomRanking>(HandleShowUIBottomRanking);
EventManager.Subscribe<HideUIBottomRanking>(HandleHideUIBottomRanking);
EventManager.Subscribe<UpdateUIBottomRanking>(HandleUpdateUIBottomRanking);
EventManager.Subscribe<ShowUIBottomTutor>(HandleShowUIBottomTutor);
EventManager.Subscribe<HideUIBottomTutor>(HandleHideUIBottomTutor);
EventManager.Subscribe<UpdateUIBottomTutor>(HandleUpdateUIBottomTutor);
@ -171,6 +172,8 @@ namespace TH1_Core.Events
EventManager.Unsubscribe<ShowUIBottomRanking>(HandleShowUIBottomRanking);
EventManager.Unsubscribe<HideUIBottomRanking>(HandleHideUIBottomRanking);
EventManager.Unsubscribe<UpdateUIBottomRanking>(HandleUpdateUIBottomRanking);
EventManager.Unsubscribe<ShowUIBottomNet>(HandleShowUIBottomNet);
EventManager.Unsubscribe<HideUIBottomNet>(HandleHideUIBottomNet);
@ -592,6 +595,12 @@ namespace TH1_Core.Events
UIManager.Instance.UIBottomManager?.BottomRankingController?.OpenWithParam(evt);
}
private void HandleUpdateUIBottomRanking(UpdateUIBottomRanking evt)
{
UIManager.Instance.UIBottomManager?.BottomRankingController?.UpdateView();
}
private void HandleHideUIBottomRanking(HideUIBottomRanking evt)
{
UIManager.Instance.UIBottomManager?.BottomRankingController?.Close();

View File

@ -185,6 +185,7 @@ namespace TH1_Core.Events
public struct ExecuteUIBottomBottomBarNextButtonClick { }
public struct ShowUIBottomRanking { }
public struct UpdateUIBottomRanking { }
public struct HideUIBottomRanking { }
public struct ShowUIBottomNet { }

View File

@ -1086,6 +1086,8 @@ namespace Logic.Action
var ret = Execute(actionParams);
AfterExecute(actionParams);
if (actionParams.MapData == Main.MapData) Main.Instance.IsNetActionExecuting = false;
return ret;
}
@ -1176,6 +1178,11 @@ namespace Logic.Action
{
EventManager.Publish(new UpdateUIBottomTutor() { });
}
//更新Ranking界面的显示
if (actionParams.MapData == Main.MapData && Main.MapData.CurPlayer == Main.MapData.PlayerMap.SelfPlayerData)
{
EventManager.Publish(new UpdateUIBottomRanking() { });
}
#if CHECK_ACTIONDEFFERENCE
if (actionParams.MapData == Main.MapData)
@ -1235,6 +1242,17 @@ namespace Logic.Action
//Step #3 更新成就完成情况
AchievementDataManager.Instance.OnBuildWonder(actionParams.MapData, player, city, actionParams.GridData);
//Step #4 Moment
if (actionParams.MapData == Main.MapData &&
actionParams.PlayerData == Main.MapData.PlayerMap.SelfPlayerData)
{
EventManager.Publish(new ShowUINotifyMoment()
{
MomentSubType = MomentSubType.ExploitWonder,
Empire = Main.MapData.PlayerMap.SelfPlayerData.Empire
});
}
return true;
}

View File

@ -304,6 +304,16 @@ namespace Logic.Action
}
ret = true;
//Step #4 Moment
if (actionParams.MapData == Main.MapData && actionParams.UnitData.Player(actionParams.MapData) ==
Main.MapData.PlayerMap.SelfPlayerData)
{
EventManager.Publish(new ShowUINotifyMoment()
{
MomentSubType = MomentSubType.ExploitTreasure,
Empire = Main.MapData.PlayerMap.SelfPlayerData.Empire
});
}
}

View File

@ -71,6 +71,7 @@ namespace Logic
{
int tmp = cityData.Level;
if (!cityData.TryUpgradeCity()) return 0;
//cityData.GridRenderer(mapData)?.SetUpdateGrid(true);
//cityData.CityInfoRenderer(mapData)?.SetUpdateCityInfo(true);
//if (!mapData.GetGridDataByCityId(cityData.Id, out var gridData)) return 0;
@ -78,6 +79,18 @@ namespace Logic
var levelUp = cityData.Level - tmp;
cityData.CityLevelUpPoint += levelUp;
//Step #2 MOMENT
if (mapData == Main.MapData && cityData.Player(mapData) == Main.MapData.PlayerMap.SelfPlayerData &&
cityData.Level > 5)
{
EventManager.Publish(new ShowUINotifyMoment()
{
MomentSubType = MomentSubType.ExploitBigCity,
Empire = Main.MapData.PlayerMap.SelfPlayerData.Empire
});
}
return levelUp;
}

View File

@ -46,6 +46,7 @@ namespace TH1_Renderer
float moveTime = 0f;
float moveFullTime = 0.3f;
bool renderVeteran = false;
private bool _isGlow = false;
private bool _needAttack = false;
private AttackAnimType _attackAnimType = AttackAnimType.None;
@ -262,23 +263,25 @@ namespace TH1_Renderer
return;
_unitMono.SpriteRenderer.sprite = sprite;
_unitMono.SpriteRenderer.material = ResourceCache.Instance.MatCache.TH1URPShaders_Default;
_isGlow = false;
//首先处理玩家(判断是否置灰或者高亮)
if (player.IsSelfPlayer())
{
//如果MP>0 或者周围有可以攻击的目标,或者可以移动的目标,或者说可以占领城市
if (_unitData.MP > 0
if (_unitData.MP > 0
|| MapRenderer.Instance.CheckUnitHasMoveAttackTarget(_unitId)
|| MapRenderer.Instance.CheckUnitHasSpecialUnitActionTarget(_unitId))
{
_unitMono.SpriteRenderer.material = ResourceCache.Instance.MatCache.TH1URPShaders_Sprite_Glow;
_isGlow = true;
}
else
_unitMono.SpriteRenderer.material = ResourceCache.Instance.MatCache.TH1URPShaders_Sprite_WhiteOverlay;
}
//然后处理AI(主要就判断是否置灰)
else
else
{
//如果是正在行动的AI
if (Main.MapData.CurPlayer == player)
@ -287,20 +290,20 @@ namespace TH1_Renderer
_unitMono.SpriteRenderer.material = ResourceCache.Instance.MatCache.TH1URPShaders_Sprite_WhiteOverlay;
}
else
//如果是还没行动的AI
//如果是还没行动的AI
if(Main.MapData.GetPlayerHasActedInBigTurn(player))
{
//啥都不做
}
//否则是已经行动过的AI
else
else
{
_unitMono.SpriteRenderer.material = ResourceCache.Instance.MatCache.TH1URPShaders_Sprite_WhiteOverlay;
}
}
}
public void RenderUpdataHighlight()
@ -372,6 +375,11 @@ namespace TH1_Renderer
{
return _ROUnit.transform.position;
}
public bool isGlow()
{
return _isGlow;
}
}
}

View File

@ -50,9 +50,17 @@ namespace TH1_UI.Controller.Bottom
//比赛开始时,如果当前是自己的回合
Open();
if (Main.MapData.CurPlayer == Main.MapData.PlayerMap.SelfPlayerData)
{
ShowBottomBarTabUnit();
ShowBottomBarNextTurn();
}
else
{
HideBottomBarNextTurn();
HideBottomBarTabUnit();
}
}
@ -103,6 +111,16 @@ namespace TH1_UI.Controller.Bottom
WindowScript.HideBottomBarNextTurn();
}
public void ShowBottomBarTabUnit()
{
WindowScript.ShowBottomBarTabUnit();
}
public void HideBottomBarTabUnit()
{
WindowScript.HideBottomBarTabUnit();
}
public void BottomBarQuit()
{
_OnBtnCloseClick();
@ -134,15 +152,18 @@ namespace TH1_UI.Controller.Bottom
if(Main.MapData == null)return;
bool ShowTech = true;
bool ShowHero = true;
bool ShowTab = true;
if (Main.MapData.MatchSettlement.SettlementType == MatchSettlementType.Tutor)
{
if(Main.MapData.MapConfig.MatchLimits.Contains(MatchLimitType.PlayerCannotLearnTech))
ShowTech = false;
if(Main.MapData.MapConfig.MatchLimits.Contains(MatchLimitType.PlayerCannotSelectHero))
ShowHero = false;
ShowTab = false;
}
WindowScript.SetTechButtonVisible(ShowTech);
WindowScript.SetHeroButtonVisible(ShowHero);
WindowScript.SetTabButtonVisible(ShowTab);
}
void _OnBtnQuitClick()

View File

@ -26,6 +26,11 @@ namespace TH1_UI.Controller.Bottom
}
}
public override void UpdateView()
{
if(IsShow()) WindowScript.UpdateView();
}
protected override void UnregisterEventCallback()
{

View File

@ -60,11 +60,13 @@ namespace TH1_UI.Core
public void ShowBottomBarNextTurn()
{
BottomBarController.ShowBottomBarNextTurn();
BottomBarController.ShowBottomBarTabUnit();
}
public void HideBottomBarNextTurn()
{
BottomBarController.HideBottomBarNextTurn();
BottomBarController.HideBottomBarTabUnit();
}

View File

@ -34,6 +34,7 @@ namespace TH1_UI.View.Bottom
public Button TechButton;
public Button HeroButton;
public Button NextButton;
public Button TabButton;
public GameObject HeroButtonIconHint;
public GameObject HeroButtonTextHint;
public Image HeroButtonAvatar;
@ -41,7 +42,8 @@ namespace TH1_UI.View.Bottom
public Button QuitButton;
public Button SLButton;
public Button RankingButton;
public int _tabUnitCount = 0;
protected override void OnInit()
{
@ -52,7 +54,50 @@ namespace TH1_UI.View.Bottom
}
public bool CheckHasTabUnit(out GridData grid)
{
grid = null;
if (Main.MapData == null) return false;
bool ret = false;
GridData firstGrid = null;
int tt = 0;
foreach (var u in Main.MapData.UnitMap.UnitList)
{
if (u.Player(Main.MapData) == Main.MapData.PlayerMap.SelfPlayerData &&
u.Renderer(Main.MapData).isGlow())
{
grid = u.Grid(Main.MapData);
if (firstGrid == null) firstGrid = grid;
ret = true;
if(tt < _tabUnitCount)
tt++;
else
{
tt++;
_tabUnitCount = tt;
return ret;
}
}
}
if (ret)
{
grid = firstGrid;
_tabUnitCount = 1;
}
return ret;
}
public void SetTabButtonVisible(bool visible)
{
if(visible) ShowButton(TabButton);
else HideButton(TabButton);
}
//通常一局只会set一次,每次都是完全清空,然后绑定新的一个对局的按钮
public void SetContent()
@ -77,7 +122,14 @@ namespace TH1_UI.View.Bottom
RankingButton.onClick.RemoveAllListeners();
RankingButton.onClick.AddListener(OnRankingButtonClicked);
TabButton.onClick.RemoveAllListeners();
TabButton.onClick.AddListener(OnTabButtonClicked);
UpdateHeroButtonAvatar();
// 初始检查 TabButton 是否显示
SetTabButtonVisible(CheckHasTabUnit(out var _));
}
private void OnQuitButtonClicked()
@ -140,7 +192,13 @@ namespace TH1_UI.View.Bottom
private void OnRankingButtonClicked()
{
EventManager.Publish(new ShowUIBottomRanking());
}
private void OnTabButtonClicked()
{
SetTabButtonVisible(CheckHasTabUnit(out var grid));
if (grid == null) return;
Main.Instance.MapInteractionLogic.OnTileClicked(Main.MapData,grid);
}
public void CloseView()
{
@ -175,7 +233,20 @@ namespace TH1_UI.View.Bottom
//HideButton(HeroButton);
HideButton(NextButton);
}
public void HideBottomBarTabUnit()
{
//HideButton(TechButton);
//HideButton(HeroButton);
HideButton(TabButton);
}
public void ShowBottomBarTabUnit()
{
//HideButton(TechButton);
//HideButton(HeroButton);
ShowButton(TabButton);
}
public void ShowBottomBarNextTurn()
{
//ShowButton(TechButton);

View File

@ -70,6 +70,11 @@ namespace TH1_UI.View.Bottom
i++;
}
}
public void UpdateView()
{
SetContent();
}
public void CloseView()