增加成就相关

This commit is contained in:
wuwenbo 2025-07-16 16:11:12 +08:00
parent bd3799fde2
commit b4fa281858
4 changed files with 21 additions and 12 deletions

View File

@ -68,5 +68,10 @@ namespace Logic.Achievement
_achievementItems.Clear();
foreach (var item in AchievementList) _achievementItems[item.ID] = item;
}
public void ClearAchievementFinishedInfo()
{
foreach (var item in AchievementList) item.IsFinished = false;
}
}
}

View File

@ -29,7 +29,12 @@ namespace RuntimeData
string json = File.ReadAllText(path);
Achievement = JsonUtility.FromJson<AchievementAsset>(json);
}
if (Achievement == null) Achievement = Resources.Load<AchievementAsset>("Export/Achievement");
if (Achievement == null)
{
Achievement = Resources.Load<AchievementAsset>("Export/Achievement");
Achievement.ClearAchievementFinishedInfo();
}
FinishedCache ??= new List<uint>();
FinishedCache.Clear();
}

View File

@ -715,17 +715,14 @@ namespace Logic.Action
ProjectileType.Faith, ProjectileMoveType.CoinParabola, 300);
}
}
else
Main.CityLogic.CityUpdateExp(actionParams.MapData,city,wonderInfo.Exp);
else Main.CityLogic.CityUpdateExp(actionParams.MapData,city,wonderInfo.Exp);
actionParams.GridData.ResourceUnderBuilding = actionParams.GridData.Resource;
actionParams.GridData.Resource = ResourceType.Wonder;
actionParams.GridData.Wonder = wonderInfo.Wonder;
player.Wonder.SetWonderState(wonderInfo.WonderType,WonderState.FINISH_BUILD);
actionParams.GridData.RenderMark = true;
AchievementDataManager.Instance.OnBuildWonder(actionParams.MapData, player, city, actionParams.GridData);
return true;
}
@ -1420,12 +1417,9 @@ namespace Logic.Action
if (gridData == null)
return false;
actionParams.PlayerData.PlayerWealth -= GetCost();
actionParams.MapData.AddUnitData(gridData.Id,cityData.Id,_actionId.UnitType,_actionId.GiantType);
var newUnit = actionParams.MapData.AddUnitData(gridData.Id,cityData.Id,_actionId.UnitType,_actionId.GiantType);
cityData.CityInfoRenderMark = true;
//临时做法用来播放VFX,获取Main理应向MapData写入一个VFX的RenderMark的
var main = GameObject.Find("Main").GetComponent<Main>();
if (main.MapData == actionParams.MapData)// && actionParams.PlayerData.Id == actionParams.MapData.PlayerMap.SelfPlayerData.Id)
@ -1438,8 +1432,8 @@ namespace Logic.Action
var endPos = Camera.main.ScreenToWorldPoint(faithPanel.position);
MapRenderer.Instance.ProjectileManager.CreateProjectile(main,actionParams.MapData,v1,endPos,ProjectileType.Faith,ProjectileMoveType.CoinParabola,score);
}
AchievementDataManager.Instance.OnTrainUnit(actionParams.MapData, actionParams.PlayerData, actionParams.CityData, newUnit);
}
return true;
}

View File

@ -9,6 +9,7 @@
using System.Collections.Generic;
using Logic.Achievement;
using NUnit.Framework;
using RuntimeData;
using UnityEditor;
using UnityEngine;
@ -98,7 +99,11 @@ namespace Logic.Editor
_asset.AchievementList.Remove(item);
}
}
if (Application.isPlaying && InspectorUtils.InspectorButtonWithTextWidth("清空成就完成情况(运行时)"))
{
AchievementDataManager.Instance.Achievement.ClearAchievementFinishedInfo();
AchievementDataManager.Instance.SaveAchievementData();
}
if (_bigID != 0 && _smallID != 0)
{
if (InspectorUtils.InspectorButtonWithTextWidth("增加一条成就"))