存档位置迁移

This commit is contained in:
wuwenbo 2026-03-10 15:43:35 +08:00
parent 9727c20ba2
commit 7769457f1b
116 changed files with 1351 additions and 726 deletions

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 7b2c3d00db6a28f43b0df7e43d483e39
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1352,7 +1352,7 @@ namespace RuntimeData
if (config == null) return;
// 改为二进制文件扩展名
string path = Application.persistentDataPath + "/match_config.dat";
string path = Application.persistentDataPath + "/../Config/match_config.dat";
int retryCount = 3;
while (retryCount > 0)
@ -1376,7 +1376,7 @@ namespace RuntimeData
public static MapConfig GetMatchConfig()
{
string path = Application.persistentDataPath + "/match_config.dat";
string path = Application.persistentDataPath + "/../Config/match_config.dat";
if (!File.Exists(path)) return null;
int retryCount = 3;
@ -1419,7 +1419,7 @@ namespace RuntimeData
if (map == null) return;
// 改为二进制文件扩展名
string path = Application.persistentDataPath + "/map_archive";
string path = Application.persistentDataPath + "/../Config/map_archive";
if (isBegin) path += "_begin";
else if (isEnd) path += "_end";
else path += "_continue";
@ -1448,7 +1448,7 @@ namespace RuntimeData
public static MapData GetMapData(bool isMulti = false, bool isBegin = false, bool isEnd = false, uint mapId = 0)
{
string directory = Application.persistentDataPath;
string directory = Application.persistentDataPath + "/../Config/";
// 构建文件名模式
string pattern = "map_archive";

View File

@ -49,7 +49,7 @@ namespace RuntimeData
RefreshSkillDict();
if (_skillDict.ContainsKey(skillType))
{
_skillDict[skillType].OnSkillOverride(mapData, originId);
_skillDict[skillType].OnSkillOverride(mapData, originId, Id);
}
else
{
@ -219,7 +219,7 @@ namespace RuntimeData
foreach (var skill in Skills) _skillDict[skill.GetSkillType()] = skill;
}
protected void OnSkillsTurnStart(MapData map)
protected virtual void OnSkillsTurnStart(MapData map)
{
var copy = new List<SkillBase>(Skills);
foreach (var skill in copy)
@ -235,7 +235,7 @@ namespace RuntimeData
}
}
protected void OnSkillsAfterTurnStart(MapData map)
protected virtual void OnSkillsAfterTurnStart(MapData map)
{
var copy = new List<SkillBase>(Skills);
foreach (var skill in copy)
@ -244,7 +244,7 @@ namespace RuntimeData
}
}
protected void OnSkillsTurnEnd(MapData map)
protected virtual void OnSkillsTurnEnd(MapData map)
{
var copy = new List<SkillBase>(Skills);
foreach (var skill in copy) skill.OnTurnEnd(this, map);

View File

@ -500,17 +500,19 @@ namespace RuntimeData
// 全局通知调用
public void OnTurnStart(MapData map)
{
if (IsFrozen()) return;
OnSkillsTurnStart(map);
}
public void OnAfterTurnStart(MapData map)
{
if (IsFrozen()) return;
OnSkillsAfterTurnStart(map);
}
public void OnTurnEnd(MapData map)
{
OnSkillsTurnEnd(map);
if (!IsFrozen()) OnSkillsTurnEnd(map);
AP = 0;
CP = 0;
MP = 0;
@ -521,7 +523,10 @@ namespace RuntimeData
{
int v = 1;
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
v += skill.GetExtraSight(this,map);
}
if (map.GetGridDataByUnitId(this.Id, out var grid) && grid.Feature == TerrainFeature.Mountain)
v = Mathf.Max(v, 2);
return v;
@ -532,7 +537,10 @@ namespace RuntimeData
{
int v = 1;
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
v += skill.GetExtraSight(this,map);
}
if (grid.Feature == TerrainFeature.Mountain)
v = Mathf.Max(v, 2);
return v;
@ -543,6 +551,7 @@ namespace RuntimeData
var attackRange = 0;
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
attackRange += skill.GetExtraAttackRange(mapData,this);
}
@ -559,6 +568,7 @@ namespace RuntimeData
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (!skill.GetFinalMoveRange(this, out var finalMoveRange)) continue;
return finalMoveRange;
}
@ -575,6 +585,7 @@ namespace RuntimeData
var moveRange = info.MoveRange;
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
moveRange += skill.GetExtraMoveRange(mapData,this);
}
@ -587,6 +598,7 @@ namespace RuntimeData
var isStaticExp = false;
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.IsLimitSelfExp(this, map)) isStaticExp = true;
}
@ -612,7 +624,11 @@ namespace RuntimeData
public float GetSpecialSkillBonus(MapData mapData, SkillType skillType)
{
var value = 1f;
foreach (var skill in Skills) value *= skill.GetSpecialSkillBonus(mapData, this, skillType);
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
value *= skill.GetSpecialSkillBonus(mapData, this, skillType);
}
return value;
}
@ -651,7 +667,11 @@ namespace RuntimeData
public float GetAttackAdditionParam(MapData map, UnitData target = null)
{
var value = 0f;
foreach (var skill in Skills) value += skill.GetAttackAdditionParam(map, this, target);
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
value += skill.GetAttackAdditionParam(map, this, target);
}
return value;
}
@ -659,7 +679,11 @@ namespace RuntimeData
public float GetAttackMultiplicationParam(MapData map, UnitData target = null)
{
var value = 1f;
foreach (var skill in Skills) value *= skill.GetAttackMultiplicationParam(map, this, target);
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
value *= skill.GetAttackMultiplicationParam(map, this, target);
}
return value;
}
@ -684,6 +708,7 @@ namespace RuntimeData
var add = 0;
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
add += skill.GetExtraMoveRange(mapData,this);
}
//var mul = GetDefenseMultiplicationParam(map);
@ -709,6 +734,7 @@ namespace RuntimeData
var add = 0;
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
add += skill.GetExtraAttackRange(mapData,this);
}
//var mul = GetDefenseMultiplicationParam(map);
@ -740,7 +766,11 @@ namespace RuntimeData
public float GetDefenseAdditionParam(MapData map, UnitData target = null)
{
var value = 0f;
foreach (var skill in Skills) value += skill.GetDefenseAdditionParam(map, this, target);
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
value += skill.GetDefenseAdditionParam(map, this, target);
}
return value;
}
@ -750,7 +780,8 @@ namespace RuntimeData
var value = 1f;
var isZero = 1f;
foreach (var skill in Skills)
{
{
if (IsFrozen()) continue;
var t = skill.GetDefenseMultiplicationParam(map, this, target);
value = Mathf.Max(t,value);
isZero *= t;
@ -784,7 +815,11 @@ namespace RuntimeData
public float GetCriticalHitRate(MapData map)
{
var criticalHitRate = 0f;
foreach (var skill in Skills) criticalHitRate += skill.GetCriticalHitRate(this, map);
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
criticalHitRate += skill.GetCriticalHitRate(this, map);
}
return criticalHitRate;
}
@ -796,7 +831,10 @@ namespace RuntimeData
{
int ret = 0;
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
ret += skill.GetOfficerHealth();
}
return ret;
}
@ -804,14 +842,20 @@ namespace RuntimeData
public bool IsOfficer()
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.IsOfficer()) return true;
}
return false;
}
public bool IsPrepareOfficer()
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.IsPrepareOfficer()) return true;
}
return false;
}
@ -819,7 +863,10 @@ namespace RuntimeData
public bool IsCanBeOfficer()
{
foreach (var skill in Skills)
if (skill.IsCanBeOfficer()) return true;
{
if (IsFrozen()) continue;
if (skill.IsCanBeOfficer()) return true;
}
return false;
}
@ -828,6 +875,7 @@ namespace RuntimeData
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.IsCanMoveGiantNearbyGrid(this, map)) return true;
}
return false;
@ -852,15 +900,18 @@ namespace RuntimeData
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.IsCanMoveToNoUnitSelfCity(this, map)) return true;
}
return false;
}
// 是否可以死亡
public bool CanBeKilled(MapData map)
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (!skill.IsCanBeKill(this, map)) return false;
}
return true;
@ -871,6 +922,7 @@ namespace RuntimeData
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.IsCanBeDamaged(this, map, dmg)) return true;
}
return false;
@ -881,6 +933,7 @@ namespace RuntimeData
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.IsLimitSelfExp(this, map)) return true;
}
return false;
@ -897,6 +950,7 @@ namespace RuntimeData
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.IsCanMoveOnTerrain(this, map, terrainType)) return true;
}
return false;
@ -909,6 +963,7 @@ namespace RuntimeData
return true;
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.IsCanMoveOnFeature(this, map,featureType)) return true;
}
return false;
@ -919,6 +974,7 @@ namespace RuntimeData
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.CanAttackAll(this, map)) return true;
}
return false;
@ -929,6 +985,7 @@ namespace RuntimeData
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.IsLimitSelfAttack(this, map)) return true;
}
return false;
@ -939,6 +996,7 @@ namespace RuntimeData
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.IsCanAttackTargetGrid(map,this,target)) return true;
}
return false;
@ -949,6 +1007,7 @@ namespace RuntimeData
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.IsCanAttackAlly()) return true;
}
return false;
@ -959,6 +1018,7 @@ namespace RuntimeData
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (!skill.IsCanAttackTargetAlly(map,this,target)) return false;
}
return true;
@ -969,6 +1029,7 @@ namespace RuntimeData
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.IsLimitSelfCounterAttack(this, map)) return true;
}
return false;
@ -979,6 +1040,7 @@ namespace RuntimeData
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.IsLimitTargetCounterAttack(this, map)) return true;
}
return false;
@ -988,6 +1050,7 @@ namespace RuntimeData
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.IsCanTransport()) return true;
}
return false;
@ -997,7 +1060,11 @@ namespace RuntimeData
public void OnMove(MapData map, GridData target, MoveType moveType, List<Vector2Int> path = null)
{
var copy = new List<SkillBase>(Skills);
foreach (var skill in copy) skill.OnMove(this, target, map,moveType, path);
foreach (var skill in copy)
{
if (IsFrozen()) continue;
skill.OnMove(this, target, map,moveType, path);
}
//赋予格子特殊效果
if(target.HasSpType(GridSpType.RemiliaGrid) && target.Unit(map,out var unit) && unit.Player(map,out var player) && player.PlayerCivId == 0)
AddSkill_Legacy(SkillType.ScarletMistRealTimeVampire, map,true,-1,false,-1,false,SpecialAddSkillType.Force,0);
@ -1010,14 +1077,22 @@ namespace RuntimeData
public void BeforeDamagedSupportStage(MapData map, SettlementInfo info)
{
var copy = new List<SkillBase>(Skills);
foreach (var skill in copy) skill.BeforeDamagedSupportStage(map, info);
foreach (var skill in copy)
{
if (IsFrozen()) continue;
skill.BeforeDamagedSupportStage(map, info);
}
}
// 伤害结算前
public void BeforeDamagedTransformStage(MapData map, SettlementInfo info)
{
var copy = new List<SkillBase>(Skills);
foreach (var skill in copy) skill.BeforeDamagedTransformStage(map, info);
foreach (var skill in copy)
{
if (IsFrozen()) continue;
skill.BeforeDamagedTransformStage(map, info);
}
}
// 对他人攻击前
@ -1027,6 +1102,7 @@ namespace RuntimeData
var copy = new List<SkillBase>(Skills);
foreach (var skill in copy)
{
if (IsFrozen()) continue;
skill.BeforeActiveAttackOther(mapData, origin, target, out var tmpAddDmg);
addDmg += tmpAddDmg;
}
@ -1036,49 +1112,77 @@ namespace RuntimeData
public void AfterActiveAttackOther(MapData mapData, UnitData origin, UnitData target)
{
var copy = new List<SkillBase>(Skills);
foreach (var skill in copy) skill.AfterActiveAttackOther(mapData, origin, target);
foreach (var skill in copy)
{
if (IsFrozen()) continue;
skill.AfterActiveAttackOther(mapData, origin, target);
}
}
// 受他人攻击后
public void AfterActiveAttacked(MapData mapData, UnitData origin, UnitData target)
{
var copy = new List<SkillBase>(Skills);
foreach (var skill in copy) skill.AfterActiveAttacked(mapData, origin, target);
foreach (var skill in copy)
{
if (IsFrozen()) continue;
skill.AfterActiveAttacked(mapData, origin, target);
}
}
// 对他人伤害结算前
public void BeforeDamageOther(MapData map, SettlementInfo info)
{
var copy = new List<SkillBase>(Skills);
foreach (var skill in copy) skill.BeforeDamageOther(map, info);
foreach (var skill in copy)
{
if (IsFrozen()) continue;
skill.BeforeDamageOther(map, info);
}
}
// 伤害结算时
public void OnDamaged(MapData mapData, SettlementInfo info)
{
var copy = new List<SkillBase>(Skills);
foreach (var skill in copy) skill.OnDamaged(mapData, info);
foreach (var skill in copy)
{
if (IsFrozen()) continue;
skill.OnDamaged(mapData, info);
}
}
// 对他人伤害结算时
public void OnDamageOther(MapData mapData, SettlementInfo info)
{
var copy = new List<SkillBase>(Skills);
foreach (var skill in copy) skill.OnDamageOther(mapData, info);
foreach (var skill in copy)
{
if (IsFrozen()) continue;
skill.OnDamageOther(mapData, info);
}
}
// 对他人伤害结算后
public void AfterDamageOther(MapData mapData, SettlementInfo info)
{
var copy = new List<SkillBase>(Skills);
foreach (var skill in copy) skill.AfterDamageOther(mapData, info);
foreach (var skill in copy)
{
if (IsFrozen()) continue;
skill.AfterDamageOther(mapData, info);
}
}
// 对他人治疗结算时
public void OnHealOther(MapData mapData, UnitData target,HealType healType)
{
var copy = new List<SkillBase>(Skills);
foreach (var skill in copy) skill.OnHealOther(mapData,this,target, healType);
foreach (var skill in copy)
{
if (IsFrozen()) continue;
skill.OnHealOther(mapData,this,target, healType);
}
//HeroTask(mapData)?.OnDamageOther(mapData, info);
//for (int i = Skills.Count - 1; i >= 0; i--) Skills[i].OnHealOther(mapData, info);
//HeroTask(mapData)?.OnDamageOther(mapData, info);
@ -1090,8 +1194,11 @@ namespace RuntimeData
var copy = new List<SkillBase>(Skills);
float ret = 0f;
foreach (var skill in copy)
foreach (var skill in copy)
{
if (IsFrozen()) continue;
ret = Mathf.Max(ret,skill.GetGridMoveFloor(mapData,originUnit,targetGrid));
}
return ret;
}
@ -1106,8 +1213,11 @@ namespace RuntimeData
public int GetKillCount()
{
int ret = 0;
foreach(var skill in Skills)
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
ret += skill.GetKillCount();
}
return ret;
}
@ -1125,6 +1235,7 @@ namespace RuntimeData
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.IsTreatAsHero(map, this,unit)) return true;
}
return false;
@ -1135,6 +1246,7 @@ namespace RuntimeData
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
if (skill.IsLimitMoveToSelfTerrain(this, map)) return true;
}
return false;
@ -1161,7 +1273,10 @@ namespace RuntimeData
{
SetFullAPCPMP();
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
skill.OnRefresh();
}
}
public int AddHealth(int hp)
@ -1174,7 +1289,20 @@ namespace RuntimeData
public void SetOfficer()
{
foreach (var skill in Skills)
{
if (IsFrozen()) continue;
skill.SetOfficer();
}
}
public bool IsFrozen()
{
foreach (var skill in Skills)
{
if (skill.IsAllSkillBan()) return true;
}
return false;
}
}

View File

@ -82,6 +82,7 @@ namespace Logic.Achievement
public abstract bool CheckCondition(AchievementItem item, MapData map);
public abstract void GetProgress(out int current, out int target);
public abstract bool CheckChanged(AchievementConditionBase condition);
public abstract void CopyChange(AchievementConditionBase condition);
// 用于记录回退,所以期望一定是返回 false 从而回退成就所以默认返回true
public virtual bool ReCheckCondition()
@ -174,6 +175,15 @@ namespace Logic.Achievement
target = TargetCount;
}
public override void CopyChange(AchievementConditionBase condition)
{
var cond = condition as TrainGiantCondition;
if (cond == null) return;
if (TargetGiant != cond.TargetGiant) return;
TrainCount += cond.TrainCount;
}
public override bool ReCheckCondition()
{
return TrainCount >= TargetCount;
@ -244,6 +254,15 @@ namespace Logic.Achievement
target = TargetCount;
}
public override void CopyChange(AchievementConditionBase condition)
{
var cond = condition as BuildWonderConditionCondition;
if (cond == null) return;
if (Wonder != cond.Wonder) return;
BuildCount += cond.BuildCount;
}
public override bool CheckChanged(AchievementConditionBase condition)
{
var cond = condition as BuildWonderConditionCondition;
@ -301,6 +320,13 @@ namespace Logic.Achievement
target = 1;
}
public override void CopyChange(AchievementConditionBase condition)
{
var cond = condition as WonderInCityConditionCondition;
if (cond == null) return;
if (Wonder != cond.Wonder) return;
}
public override bool CheckChanged(AchievementConditionBase condition)
{
var cond = condition as WonderInCityConditionCondition;
@ -385,6 +411,13 @@ namespace Logic.Achievement
target = TargetTurns;
}
public override void CopyChange(AchievementConditionBase condition)
{
var cond = condition as UnitOnWonderConditionCondition;
if (cond == null) return;
if (Wonder != cond.Wonder) return;
}
public override bool CheckChanged(AchievementConditionBase condition)
{
var cond = condition as UnitOnWonderConditionCondition;
@ -467,6 +500,12 @@ namespace Logic.Achievement
target = TargetCount;
}
public override void CopyChange(AchievementConditionBase condition)
{
var cond = condition as AroundBuildingsConditionCondition;
if (cond == null) return;
}
public override bool CheckChanged(AchievementConditionBase condition)
{
var cond = condition as AroundBuildingsConditionCondition;
@ -544,6 +583,12 @@ namespace Logic.Achievement
target = TargetCount;
}
public override void CopyChange(AchievementConditionBase condition)
{
var cond = condition as AroundWondersConditionCondition;
if (cond == null) return;
}
public override bool CheckChanged(AchievementConditionBase condition)
{
var cond = condition as AroundWondersConditionCondition;
@ -622,6 +667,12 @@ namespace Logic.Achievement
target = TargetCount;
}
public override void CopyChange(AchievementConditionBase condition)
{
var cond = condition as AroundEnemyUnitsConditionCondition;
if (cond == null) return;
}
public override bool CheckChanged(AchievementConditionBase condition)
{
var cond = condition as AroundEnemyUnitsConditionCondition;
@ -699,6 +750,12 @@ namespace Logic.Achievement
target = TargetCount;
}
public override void CopyChange(AchievementConditionBase condition)
{
var cond = condition as AroundSelfUnitsConditionCondition;
if (cond == null) return;
}
public override bool CheckChanged(AchievementConditionBase condition)
{
var cond = condition as AroundSelfUnitsConditionCondition;
@ -774,6 +831,12 @@ namespace Logic.Achievement
target = TargetCount;
}
public override void CopyChange(AchievementConditionBase condition)
{
var cond = condition as AroundSelfUnitsConditionCondition;
if (cond == null) return;
}
public override bool CheckChanged(AchievementConditionBase condition)
{
var cond = condition as AroundCityGridsConditionCondition;

View File

@ -40,11 +40,42 @@ namespace RuntimeData
public void LoadAchievement()
{
var asset = Resources.Load<AchievementAsset>("Export/Achievement");
string path = Application.persistentDataPath + "/achievement.json";
string path = Application.persistentDataPath + "/../Config/achievement.json";
string backupPath = path + ".bak";
// 尝试读取主文件
Achievement = TryReadAchievementData(path);
// 临时代码,如果找不到新路径下的成就存档,就从旧的存档里进行恢复操作,默认读最近五个档
if (!File.Exists(path))
{
Achievement = asset.Data;
Achievement.ClearAchievementFinishedInfo();
var achievements = new List<AchievementData>();
var oldPath = Application.persistentDataPath + "/../TOHOTOPIA Demo v0.6.10/achievement.json";
achievements.Add(TryReadAchievementData(oldPath));
oldPath = Application.persistentDataPath + "/../TOHOTOPIA Demo v0.6.9/achievement.json";
achievements.Add(TryReadAchievementData(oldPath));
oldPath = Application.persistentDataPath + "/../TOHOTOPIA Demo v0.6.8/achievement.json";
achievements.Add(TryReadAchievementData(oldPath));
oldPath = Application.persistentDataPath + "/../TOHOTOPIA Demo v0.6.7/achievement.json";
achievements.Add(TryReadAchievementData(oldPath));
oldPath = Application.persistentDataPath + "/../TOHOTOPIA Demo v0.6.6/achievement.json";
achievements.Add(TryReadAchievementData(oldPath));
foreach (var item in Achievement.AchievementList)
{
foreach (var old in achievements)
{
if (old == null) continue;
var target = old.GetAchievementItem(item.BigID, item.SmallID, item.InternalID);
item.CopyChange(target);
}
}
}
else
{
// 尝试读取主文件
Achievement = TryReadAchievementData(path);
}
// 主文件损坏,尝试从备份恢复
if (Achievement == null && File.Exists(backupPath))
@ -143,7 +174,7 @@ namespace RuntimeData
if (Achievement == null) return;
string json = JsonUtility.ToJson(Achievement);
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(json);
FileTools.SafeWriteFile(Application.persistentDataPath + "/achievement.json", bytes);
FileTools.SafeWriteFile(Application.persistentDataPath + "/../Config/achievement.json", bytes);
}
public void BindMapData(MapData mapData)

View File

@ -163,6 +163,17 @@ namespace Logic.Achievement
}
return false;
}
public void CopyChange(AchievementItem target)
{
if (target == null) return;
if (target.Conditions.Count != Conditions.Count) return;
for (int i = 0; i < Conditions.Count; i++)
{
Conditions[i].CopyChange(target.Conditions[i]);
}
if (target.IsFinished) IsFinished = true;
}
//-------------- 序列化相关 -------------------//
// 辅助序列化字段

View File

@ -42,7 +42,7 @@ namespace TH1_Logic.Config
{
if (Config == null)
{
string path = Application.persistentDataPath + "/game_cfg.json";
string path = Application.persistentDataPath + "/../Config/game_cfg.json";
string backupPath = path + ".bak";
// 尝试读取主文件
@ -167,7 +167,7 @@ namespace TH1_Logic.Config
{
string json = JsonUtility.ToJson(Config);
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(json);
string path = Application.persistentDataPath + "/game_cfg.json";
string path = Application.persistentDataPath + "/../Config/game_cfg.json";
FileTools.SafeWriteFile(path, bytes);
Config.MarkSaved();

View File

@ -113,7 +113,7 @@ namespace Logic.Editor
}*/
if (InspectorUtils.InspectorButtonWithTextWidth("清空成就完成情况"))
{
string path = Application.persistentDataPath + "/achievement.json";
string path = Application.persistentDataPath + "/../Config/achievement.json";
if (File.Exists(path))File.Delete(path);
}
if (_bigID != 0 && _smallID != 0)

View File

@ -96,7 +96,7 @@ namespace Logic.Editor
{
_mapPairs.Clear();
string directory = Application.persistentDataPath;
string directory = Application.persistentDataPath + "/../Config/";
if (!Directory.Exists(directory))
{
Debug.LogWarning($"存档目录不存在: {directory}");

View File

@ -110,14 +110,14 @@ namespace RuntimeData
RefreshGameRecord();
_gameRecord.Records.Add(record);
byte[] bytes = MemoryPackSerializer.Serialize(_gameRecord);
FileTools.SafeWriteFile(Application.persistentDataPath + "/game_record.dat", bytes);
FileTools.SafeWriteFile(Application.persistentDataPath + "/../Config/game_record.dat", bytes);
}
public void RefreshGameRecord()
{
if (_gameRecord != null) return;
string path = Application.persistentDataPath + "/game_record.dat";
string path = Application.persistentDataPath + "/../Config/game_record.dat";
string backupPath = path + ".bak";
// 尝试读取主文件

View File

@ -70,7 +70,7 @@ namespace Logic
{
if (_config != null) return;
string path = Application.persistentDataPath + "/input_config.dat";
string path = Application.persistentDataPath + "/../Config/input_config.dat";
string backupPath = path + ".bak";
// 尝试读取主文件
@ -109,7 +109,7 @@ namespace Logic
{
if (_config == null) return;
byte[] bytes = MemoryPackSerializer.Serialize(_config);
FileTools.SafeWriteFile(Application.persistentDataPath + "/input_config.dat", bytes);
FileTools.SafeWriteFile(Application.persistentDataPath + "/../Config/input_config.dat", bytes);
}
// 每帧调用返回绑定结果null表示还在监听中

View File

@ -1,22 +1,18 @@
/*
* @Author:
* @Description:
* @Date: 20260306
* @Description:
* @Date: 20260309
* @Modify:
*/
using RuntimeData;
using System;
using System.Collections.Generic;
using System.Linq;
using MemoryPack;
using UnityEngine;
namespace Logic.Skill
{
public partial class KoishiFreeSkill : SkillBase
public partial class BoneAttackUpSkill : SkillBase
{
public KoishiFreeSkill()
public BoneAttackUpSkill()
{
IsPermanent = true;
TurnsLimit = 0;
@ -25,7 +21,7 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.KOISHIFREE;
return SkillType.BoneAttackUp;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 26eec140673c4347a8122fa599692cc0
timeCreated: 1773043793

View File

@ -1,32 +0,0 @@
/*
* @Author:
* @Description:
* @Date: 20260306
* @Modify:
*/
using RuntimeData;
using System;
using System.Collections.Generic;
using System.Linq;
using MemoryPack;
using UnityEngine;
namespace Logic.Skill
{
public partial class BonePileAttackSkill : SkillBase
{
public BonePileAttackSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.BONEPILEATTACK;
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: f6ec1803b84b4c938da710c9b7eb5756
timeCreated: 1772778294

View File

@ -25,8 +25,10 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.BONEPILE;
return SkillType.BonePile;
}
}
}

View File

@ -1,22 +1,18 @@
/*
* @Author:
* @Description:
* @Date: 20260306
* @Description:
* @Date: 20260309
* @Modify:
*/
using RuntimeData;
using System;
using System.Collections.Generic;
using System.Linq;
using MemoryPack;
using UnityEngine;
namespace Logic.Skill
{
public partial class CorpseFireSkill : SkillBase
public partial class BoneSacrificeSkill : SkillBase
{
public CorpseFireSkill()
public BoneSacrificeSkill()
{
IsPermanent = true;
TurnsLimit = 0;
@ -25,7 +21,7 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.CORPSEFIRE;
return SkillType.BoneSacrifice;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: edad0dcfc6d1493cb95a0dc4bdbecbc7
timeCreated: 1773043710

View File

@ -25,7 +25,12 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.CANHIDE;
return SkillType.CanHide;
}
public override void OnMove(UnitData self, GridData grid, MapData mapData, MoveType moveType, List<Vector2Int> path = null)
{
self.AddOrOverrideSkill(SkillType.CanHide, mapData, self.Id);
}
}
}

View File

@ -21,11 +21,28 @@ namespace Logic.Skill
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
IsLevelSkill = true;
}
public override SkillType GetSkillType()
{
return SkillType.CORPSEBUFF;
return SkillType.CorpseBuff;
}
public override int GetExtraMoveRange(MapData mapData, UnitData self)
{
return _level;
}
public override void OnDamaged(MapData mapData, SettlementInfo info)
{
if (info.DamageTarget == null) return;
if (info.DamageType == DamageType.ActiveAttack || info.DamageType == DamageType.CounterAttack ||
info.DamageType == DamageType.Splash)
{
if (_level >= 2) info.DamageValue = 0;
ReduceLevel(mapData, info.DamageTarget, 1);
}
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 1057017c9de840f798ceda726bcd2f22
timeCreated: 1772778289

View File

@ -1,32 +0,0 @@
/*
* @Author:
* @Description:
* @Date: 20260306
* @Modify:
*/
using RuntimeData;
using System;
using System.Collections.Generic;
using System.Linq;
using MemoryPack;
using UnityEngine;
namespace Logic.Skill
{
public partial class CorpseCollectSkill : SkillBase
{
public CorpseCollectSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.CORPSECOLLECT;
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 3f0830937e64478e8214d15b0e57338b
timeCreated: 1772778279

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 104b286d300d4c839615dc1946bf4864
timeCreated: 1772778283

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: aa6c9dc589a244aa9be3f2b1b52db166
timeCreated: 1772778328

View File

@ -0,0 +1,36 @@
/*
* @Author:
* @Description:
* @Date: 20260309
* @Modify:
*/
using RuntimeData;
using MemoryPack;
namespace Logic.Skill
{
public partial class FearMakerSkill : SkillBase
{
public FearMakerSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.FearMaker;
}
public override void OnDamageOther(MapData mapData, SettlementInfo info)
{
if (info.DamageTarget == null || info.DamageOrigin == null) return;
if (info.DamageType != DamageType.ActiveAttack && info.DamageType != DamageType.CounterAttack) return;
info.DamageTarget.AddOrOverrideSkill(SkillType.KomeijiFear, mapData, info.DamageOrigin.Id);
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 74ee72e3a37b4be0867b71435856d9cd
timeCreated: 1773043718

View File

@ -1,22 +1,18 @@
/*
* @Author:
* @Description:
* @Date: 20260306
* @Description:
* @Date: 20260309
* @Modify:
*/
using RuntimeData;
using System;
using System.Collections.Generic;
using System.Linq;
using MemoryPack;
using UnityEngine;
namespace Logic.Skill
{
public partial class CorpseBurnSkill : SkillBase
public partial class GridRadiationSkill : SkillBase
{
public CorpseBurnSkill()
public GridRadiationSkill()
{
IsPermanent = true;
TurnsLimit = 0;
@ -25,7 +21,7 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.CORPSEBURN;
return SkillType.GridRadiation;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: e5dc0734b45d40489601af748c87e97f
timeCreated: 1773043763

View File

@ -25,7 +25,12 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.HIDESTATE;
return SkillType.HideState;
}
public override void AfterActiveAttacked(MapData mapData, UnitData origin, UnitData target)
{
origin.RemoveSkill(SkillType.HideState, mapData);
}
}
}

View File

@ -0,0 +1,52 @@
/*
* @Author:
* @Description:
* @Date: 20260309
* @Modify:
*/
using System.Collections.Generic;
using Logic.Action;
using Logic.AI;
using RuntimeData;
using MemoryPack;
namespace Logic.Skill
{
public partial class KoishiAutoMoveSkill : SkillBase
{
public KoishiAutoMoveSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.KoishiAutoMove;
}
public override void OnTurnEnd(IdentifierBase self, MapData mapData)
{
var unit = self as UnitData;
mapData.GetPlayerDataByUnitId(self.Id, out var player);
if (unit == null || player == null) return;
var data = new AICalculatorData();
data.Map = mapData;
data.Player = player;
data.TargetParam.MapData = mapData;
data.TargetParam.PlayerData = player;
data.TargetParam.UnitData = unit;
data.TargetParam.OnParamChanged();
AIActionGenerator.GeneratorActionIds(data, CommonActionType.UnitMove);
if (data.AIActions.Count == 0) return;
data.TargetParam.RefreshParams();
var index = mapData.Net.GetRandom(mapData).Next(0, data.AIActions.Count - 1); // 生成 index
data.AIActions[index].ActionLogic.CompleteExecute(data.AIActions[index].Param);
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: dee0a882ca5c4c4983156a3f39fbe598
timeCreated: 1773043703

View File

@ -25,7 +25,17 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.KOISHIAUTO;
return SkillType.KoishiAuto;
}
public override void OnMove(UnitData self, GridData grid, MapData mapData, MoveType moveType, List<Vector2Int> path = null)
{
base.OnMove(self, grid, mapData, moveType, path);
}
private void AfterAction()
{
}
}
}

View File

@ -1,32 +0,0 @@
/*
* @Author:
* @Description:
* @Date: 20260306
* @Modify:
*/
using RuntimeData;
using System;
using System.Collections.Generic;
using System.Linq;
using MemoryPack;
using UnityEngine;
namespace Logic.Skill
{
public partial class KoishiBoneHealSkill : SkillBase
{
public KoishiBoneHealSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.KOISHIBONEHEAL;
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 7ec5bcc5f01348f4a4ed2e13ac8d96da
timeCreated: 1772778266

View File

@ -25,7 +25,7 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.KOISHIDEATHFEAR;
return SkillType.KoishiDeathFear;
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 810580e3ac0f4cc29741b59a18ff9ac4
timeCreated: 1772778275

View File

@ -25,7 +25,7 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.KOISHIRESPAWN;
return SkillType.KoishiRespawn;
}
}
}

View File

@ -0,0 +1,40 @@
/*
* @Author:
* @Description:
* @Date: 20260309
* @Modify:
*/
using RuntimeData;
using MemoryPack;
using TH1_Logic.Core;
namespace Logic.Skill
{
public partial class KoishiUndeadSkill : SkillBase
{
public KoishiUndeadSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.KoishiUndead;
}
public override bool IsCanBeKill(UnitData self, MapData mapData)
{
return false;
}
public override void OnDamaged(MapData mapData, SettlementInfo info)
{
if (info.DamageTarget == null || info.DamageTarget.Health > 0) return;
Main.UnitLogic.UnitUnnaturalDie(mapData, info.DamageTarget);
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: a5d31aa0b9a84a41badb88930ad101b4
timeCreated: 1773043725

View File

@ -27,7 +27,7 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.KOMEIJIFEAR;
return SkillType.KomeijiFear;
}
public override float GetDefenseMultiplicationParam(MapData mapData, UnitData self, UnitData target = null)
@ -63,7 +63,7 @@ namespace Logic.Skill
if (map.IsLeagueUnitByUnit(self.Id, target.Id)) continue;
Main.UnitLogic.DamageSettlement(map, self, target, 2, DamageType.Splash);
target.AddOrOverrideSkill(SkillType.KOMEIJIFEAR, map, self.Id);
target.AddOrOverrideSkill(SkillType.KomeijiFear, map, self.Id);
}
}
else if (_level == 1)

View File

@ -1,22 +1,18 @@
/*
* @Author:
* @Description:
* @Date: 20260306
* @Description:
* @Date: 20260309
* @Modify:
*/
using RuntimeData;
using System;
using System.Collections.Generic;
using System.Linq;
using MemoryPack;
using UnityEngine;
namespace Logic.Skill
{
public partial class CorpseEffectSkill : SkillBase
public partial class RinCorpseColletSkill : SkillBase
{
public CorpseEffectSkill()
public RinCorpseColletSkill()
{
IsPermanent = true;
TurnsLimit = 0;
@ -25,7 +21,7 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.CORPSEEFFECT;
return SkillType.RinCorpseCollet;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 35c966679cdc4a90ad6add26bba6ccf1
timeCreated: 1773043735

View File

@ -0,0 +1,28 @@
/*
* @Author:
* @Description:
* @Date: 20260309
* @Modify:
*/
using RuntimeData;
using MemoryPack;
namespace Logic.Skill
{
public partial class RinFireSkill : SkillBase
{
public RinFireSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.RinFire;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 82ba0d7d7a32486db4aa11db62372165
timeCreated: 1773043743

View File

@ -25,7 +25,14 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.SATORIBAN;
return SkillType.SatoriBan;
}
public override void OnDamageOther(MapData mapData, SettlementInfo info)
{
if (info.DamageType != DamageType.ActiveAttack || info.DamageOrigin == null || info.DamageTarget == null) return;
info.DamageOrigin.AddOrOverrideSkill(SkillType.SkillBan, mapData, info.DamageOrigin.Id);
}
}
}

View File

@ -26,7 +26,7 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.SATORISEE;
return SkillType.SatoriSee;
}
public override void BeforeUnitDamaged(UnitData self, MapData mapData, SettlementInfo info)
@ -44,7 +44,7 @@ namespace Logic.Skill
var dis = mapData.GridMap.CalcDistance(selfGrid, targetGrid);
if (dis > 2) return;
info.DamageOrigin.AddOrOverrideSkill(SkillType.KOMEIJIFEAR, mapData, self.Id);
info.DamageOrigin.AddOrOverrideSkill(SkillType.KomeijiFear, mapData, self.Id);
}
}
}

View File

@ -5,12 +5,10 @@
* @Modify:
*/
using RuntimeData;
using System;
using System.Collections.Generic;
using System.Linq;
using MemoryPack;
using UnityEngine;
using Logic.CrashSight;
namespace Logic.Skill
{
@ -25,7 +23,27 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.SKILLBANBOMB;
return SkillType.SkillBanBoom;
}
public override void OnDamaged(MapData mapData, SettlementInfo info)
{
if (!info.IsKill || info.DamageTarget == null) return;
var grid = info.DamageTarget.Grid(mapData);
if (grid == null)
{
LogSystem.LogError($"Explode Error grid is null");
return;
}
var arounds = mapData.GridMap.GetAroundGridData(1, 1, grid);
foreach (var around in arounds)
{
if (around == grid) continue;
var target = around.Unit(mapData);
if (target == null) continue;
target.AddOrOverrideSkill(SkillType.SkillBan, mapData, info.DamageTarget.Id);
}
}
}
}

View File

@ -18,14 +18,19 @@ namespace Logic.Skill
{
public SkillBanSkill()
{
IsPermanent = true;
TurnsLimit = 0;
IsPermanent = false;
TurnsLimit = 1;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.SKILLBAN;
return SkillType.SkillBan;
}
public override bool IsAllSkillBan()
{
return true;
}
}
}

View File

@ -0,0 +1,42 @@
/*
* @Author:
* @Description:
* @Date: 20260309
* @Modify:
*/
using RuntimeData;
using MemoryPack;
using TH1_Logic.Core;
namespace Logic.Skill
{
public partial class UndeadSkill : SkillBase
{
public UndeadSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.Undead;
}
public override bool IsCanBeKill(UnitData self, MapData mapData)
{
return false;
}
public override void OnDamaged(MapData mapData, SettlementInfo info)
{
if (info.DamageTarget == null || info.DamageTarget.Health > 0) return;
Main.UnitLogic.UnitUnnaturalDie(mapData, info.DamageTarget);
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 16f6a875ce184a35821ee1f354dbbb0b
timeCreated: 1773043696

View File

@ -1,32 +0,0 @@
/*
* @Author:
* @Description: AOE移动技能
* @Date: 20260306
* @Modify:
*/
using RuntimeData;
using System;
using System.Collections.Generic;
using System.Linq;
using MemoryPack;
using UnityEngine;
namespace Logic.Skill
{
public partial class UtsuhoAoeMoveSkill : SkillBase
{
public UtsuhoAoeMoveSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.UTSUHOAOEMOVE;
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 4b6a32be4a814be7bb94d841ed0849a1
timeCreated: 1772778339

View File

@ -25,7 +25,7 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.UTSUHOBONEMAKER;
return SkillType.UtsuhoBoneMaker;
}
}
}

View File

@ -25,7 +25,7 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.UTSUHODELAYACT;
return SkillType.UtsuhoDelayAct;
}
}
}

View File

@ -1,32 +0,0 @@
/*
* @Author:
* @Description:
* @Date: 20260306
* @Modify:
*/
using RuntimeData;
using System;
using System.Collections.Generic;
using System.Linq;
using MemoryPack;
using UnityEngine;
namespace Logic.Skill
{
public partial class UtsuhoMissionSkill : SkillBase
{
public UtsuhoMissionSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.UTSUHOMISSION;
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 4461bc9684a248e1b72b92927d309b16
timeCreated: 1772778355

View File

@ -25,7 +25,7 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.UTSUHORADIATION;
return SkillType.UtsuhoRadiation;
}
}
}

View File

@ -0,0 +1,28 @@
/*
* @Author:
* @Description:
* @Date: 20260309
* @Modify:
*/
using RuntimeData;
using MemoryPack;
namespace Logic.Skill
{
public partial class UtsuhoReadyMoveSkill : SkillBase
{
public UtsuhoReadyMoveSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.UtsuhoReadyMove;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: ec8e682cfdc6428ca9412e30a684fb18
timeCreated: 1773043756

View File

@ -0,0 +1,28 @@
/*
* @Author:
* @Description:
* @Date: 20260309
* @Modify:
*/
using RuntimeData;
using MemoryPack;
namespace Logic.Skill
{
public partial class UtsuhoReadyMoveSuperSkill : SkillBase
{
public UtsuhoReadyMoveSuperSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.UtsuhoReadyMoveSuper;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: a935dbc697ff40b2b4115cd4c3b2d387
timeCreated: 1773043771

View File

@ -1,34 +0,0 @@
/*
* @Author:
* @Description:
* @Date: 20260306
* @Modify:
*/
using RuntimeData;
using System;
using System.Collections.Generic;
using System.Linq;
using MemoryPack;
using UnityEngine;
namespace Logic.Skill
{
public partial class YuugiDash3Skill : SkillBase
{
public YuugiDash3Skill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.YUUGIDASH3;
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 4eb913b1cd2d48b1b62a8d623648700c
timeCreated: 1772778364

View File

@ -1,32 +0,0 @@
/*
* @Author:
* @Description:
* @Date: 20260306
* @Modify:
*/
using RuntimeData;
using System;
using System.Collections.Generic;
using System.Linq;
using MemoryPack;
using UnityEngine;
namespace Logic.Skill
{
public partial class YuugiDashMaxSkill : SkillBase
{
public YuugiDashMaxSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.YUUGIDASHMAX;
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: bf45a4f21ce241b8b67e5977bcd33ee0
timeCreated: 1772778373

View File

@ -1,16 +1,12 @@
/*
* @Author:
* @Description:
* @Date: 20260306
* @Date: 20260309
* @Modify:
*/
using RuntimeData;
using System;
using System.Collections.Generic;
using System.Linq;
using MemoryPack;
using UnityEngine;
namespace Logic.Skill
{
@ -25,7 +21,7 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.YUUGIDASHPRO;
return SkillType.YuugiDashPro;
}
}
}

View File

@ -1,3 +1,3 @@
fileFormatVersion: 2
guid: deb421f51aad462bbfdf7464d238fec7
timeCreated: 1772778369
guid: b60b23dafbb742ee911979d004fdcf68
timeCreated: 1773043785

View File

@ -0,0 +1,28 @@
/*
* @Author:
* @Description:
* @Date: 20260309
* @Modify:
*/
using RuntimeData;
using MemoryPack;
namespace Logic.Skill
{
public partial class YuugiDashSkill : SkillBase
{
public YuugiDashSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.YuugiDash;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2a46bd86f07b46f3b43f9e744393ca35
timeCreated: 1773043777

View File

@ -0,0 +1,28 @@
/*
* @Author:
* @Description:
* @Date: 20260309
* @Modify:
*/
using RuntimeData;
using MemoryPack;
namespace Logic.Skill
{
public partial class YuugiMovePlusSkill : SkillBase
{
public YuugiMovePlusSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.YuugiMovePlus;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: ac059b63b6c043e982fa1ec2b312ef6f
timeCreated: 1773043807

View File

@ -0,0 +1,28 @@
/*
* @Author:
* @Description:
* @Date: 20260309
* @Modify:
*/
using RuntimeData;
using MemoryPack;
namespace Logic.Skill
{
public partial class YuugiMoveSkill : SkillBase
{
public YuugiMoveSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.YuugiMove;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: bd32fa53f5ea44f9b07dab1942317815
timeCreated: 1773043799

View File

@ -25,7 +25,7 @@ namespace Logic.Skill
public override SkillType GetSkillType()
{
return SkillType.YUUGIPUSH;
return SkillType.YuugiPush;
}
}
}

View File

@ -1,4 +1,4 @@
// Auto-generated CorpseEffectSkill partial class with MemoryPackable attribute
// Auto-generated BoneAttackUpSkill partial class with MemoryPackable attribute
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
using MemoryPack;
@ -7,7 +7,7 @@ using Logic.Skill;
namespace Logic.Skill
{
[MemoryPackable]
public partial class CorpseEffectSkill
public partial class BoneAttackUpSkill
{
}
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 11db9b4189709ec41958e11aab8e7f9e
guid: 31e31c3b301e2bc4bb39a217c2985c7b
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@ -1,4 +1,4 @@
// Auto-generated UtsuhoAoeMoveSkill partial class with MemoryPackable attribute
// Auto-generated BoneSacrificeSkill partial class with MemoryPackable attribute
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
using MemoryPack;
@ -7,7 +7,7 @@ using Logic.Skill;
namespace Logic.Skill
{
[MemoryPackable]
public partial class UtsuhoAoeMoveSkill
public partial class BoneSacrificeSkill
{
}
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: bf8b16293b8c9c246b55c7e44d6800ad
guid: e6db9551f40eb6943b5cc39aab4603e0
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 024a53f169cb9744a9000d32c9fc3052
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,4 +1,4 @@
// Auto-generated YuugiDash3Skill partial class with MemoryPackable attribute
// Auto-generated FearMakerSkill partial class with MemoryPackable attribute
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
using MemoryPack;
@ -7,7 +7,7 @@ using Logic.Skill;
namespace Logic.Skill
{
[MemoryPackable]
public partial class YuugiDash3Skill
public partial class FearMakerSkill
{
}
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 896f1d164dd0b7c42acd8319c2ec232b
guid: 85b3a8f79bb50944c9ae466c12c3f570
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@ -1,4 +1,4 @@
// Auto-generated UtsuhoMissionSkill partial class with MemoryPackable attribute
// Auto-generated GridRadiationSkill partial class with MemoryPackable attribute
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
using MemoryPack;
@ -7,7 +7,7 @@ using Logic.Skill;
namespace Logic.Skill
{
[MemoryPackable]
public partial class UtsuhoMissionSkill
public partial class GridRadiationSkill
{
}
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 5541ecf1368e42f4b967cd6cee8aacdc
guid: 534b99977e35fc0418cb571531f6f924
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@ -1,4 +1,4 @@
// Auto-generated KoishiBoneHealSkill partial class with MemoryPackable attribute
// Auto-generated KoishiAutoMoveSkill partial class with MemoryPackable attribute
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
using MemoryPack;
@ -7,7 +7,7 @@ using Logic.Skill;
namespace Logic.Skill
{
[MemoryPackable]
public partial class KoishiBoneHealSkill
public partial class KoishiAutoMoveSkill
{
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: c74ac71107d26194ebc34bbb5873ac31
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 59ff114c60ea3f04cad25625b889f735
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 6dc5a6f853cb4564aa0acbd875c927c2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,4 +1,4 @@
// Auto-generated YuugiDashMaxSkill partial class with MemoryPackable attribute
// Auto-generated KoishiUndeadSkill partial class with MemoryPackable attribute
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
using MemoryPack;
@ -7,7 +7,7 @@ using Logic.Skill;
namespace Logic.Skill
{
[MemoryPackable]
public partial class YuugiDashMaxSkill
public partial class KoishiUndeadSkill
{
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ce5945e62b63e4e4ba9ad182c1cea4fe
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,4 +1,4 @@
// Auto-generated BonePileAttackSkill partial class with MemoryPackable attribute
// Auto-generated RinCorpseColletSkill partial class with MemoryPackable attribute
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
using MemoryPack;
@ -7,7 +7,7 @@ using Logic.Skill;
namespace Logic.Skill
{
[MemoryPackable]
public partial class BonePileAttackSkill
public partial class RinCorpseColletSkill
{
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: fe15dee647073cf47bbdc4304682a7e1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,4 +1,4 @@
// Auto-generated CorpseFireSkill partial class with MemoryPackable attribute
// Auto-generated RinFireSkill partial class with MemoryPackable attribute
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
using MemoryPack;
@ -7,7 +7,7 @@ using Logic.Skill;
namespace Logic.Skill
{
[MemoryPackable]
public partial class CorpseFireSkill
public partial class RinFireSkill
{
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: fcb7319ebbd514740ab88215d9761f2e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -16,221 +16,224 @@ namespace Logic.Skill
[MemoryPackUnion(8, typeof(AyaMoveAgainBuffSkill))]
[MemoryPackUnion(9, typeof(AyaMoveAgainSkill))]
[MemoryPackUnion(10, typeof(BambooMoveSkill))]
[MemoryPackUnion(11, typeof(BonePileAttackSkill))]
[MemoryPackUnion(11, typeof(BoneAttackUpSkill))]
[MemoryPackUnion(12, typeof(BonePileSkill))]
[MemoryPackUnion(13, typeof(CanHideSkill))]
[MemoryPackUnion(14, typeof(CantMoveSkill))]
[MemoryPackUnion(15, typeof(CarrySkill))]
[MemoryPackUnion(16, typeof(CatCartSkill))]
[MemoryPackUnion(17, typeof(CityTransportSkill))]
[MemoryPackUnion(18, typeof(ConvertSkill))]
[MemoryPackUnion(19, typeof(CorpseBuffSkill))]
[MemoryPackUnion(20, typeof(CorpseBurnSkill))]
[MemoryPackUnion(21, typeof(CorpseCollectSkill))]
[MemoryPackUnion(22, typeof(CorpseEffectSkill))]
[MemoryPackUnion(23, typeof(CorpseFireSkill))]
[MemoryPackUnion(24, typeof(CreepSkill))]
[MemoryPackUnion(25, typeof(CriticalSkill))]
[MemoryPackUnion(26, typeof(CurseGodSkill))]
[MemoryPackUnion(27, typeof(DashSkill))]
[MemoryPackUnion(28, typeof(DuoSkill))]
[MemoryPackUnion(29, typeof(EirinFrenchAttackSkill))]
[MemoryPackUnion(30, typeof(EirinFrenchBuffSkill))]
[MemoryPackUnion(31, typeof(EirinFrenchKillSkill))]
[MemoryPackUnion(32, typeof(EscapeProSkill))]
[MemoryPackUnion(33, typeof(EscapeSkill))]
[MemoryPackUnion(34, typeof(EternitySkill))]
[MemoryPackUnion(35, typeof(FlandreAttackSkill))]
[MemoryPackUnion(36, typeof(FlandreBuffSkill))]
[MemoryPackUnion(37, typeof(FlandreKillSkill))]
[MemoryPackUnion(38, typeof(FlySkill))]
[MemoryPackUnion(39, typeof(ForestDefenseSkill))]
[MemoryPackUnion(40, typeof(ForestStartDashSkill))]
[MemoryPackUnion(41, typeof(FortifySkill))]
[MemoryPackUnion(42, typeof(GalaxyArrowSkill))]
[MemoryPackUnion(43, typeof(GridMomijiPerySkill))]
[MemoryPackUnion(44, typeof(GridMountainSkill))]
[MemoryPackUnion(45, typeof(GridSanaeNineContinueDamageSkill))]
[MemoryPackUnion(46, typeof(HealSkill))]
[MemoryPackUnion(47, typeof(HideStateSkill))]
[MemoryPackUnion(48, typeof(IllusionSkill))]
[MemoryPackUnion(49, typeof(JunkerOfficerSkill))]
[MemoryPackUnion(50, typeof(KaguyaFrenchAroundSkill))]
[MemoryPackUnion(51, typeof(KaguyaFrenchAttackProSkill))]
[MemoryPackUnion(52, typeof(KaguyaFrenchAttackSkill))]
[MemoryPackUnion(53, typeof(KaguyaFrenchForeverBuffSkill))]
[MemoryPackUnion(54, typeof(KaguyaFrenchNapoleonicCodeSkill))]
[MemoryPackUnion(55, typeof(KaguyaFrenchSynergyDebuffSkill))]
[MemoryPackUnion(56, typeof(KaguyaFrenchSynergySkill))]
[MemoryPackUnion(57, typeof(KanakoBattlefieldProSkill))]
[MemoryPackUnion(58, typeof(KanakoBattlefieldSkill))]
[MemoryPackUnion(59, typeof(KanakoMountainAttackSkill))]
[MemoryPackUnion(60, typeof(KanakoMountainBuffSkill))]
[MemoryPackUnion(61, typeof(KanakoMountainSkill))]
[MemoryPackUnion(62, typeof(KanakoSittingSkill))]
[MemoryPackUnion(63, typeof(KanakoTechSkill))]
[MemoryPackUnion(64, typeof(KanakoWarProSkill))]
[MemoryPackUnion(65, typeof(KanakoWarSkill))]
[MemoryPackUnion(66, typeof(KanakoWindProSkill))]
[MemoryPackUnion(67, typeof(KanakoWindSkill))]
[MemoryPackUnion(68, typeof(KoakumaDevotionSkill))]
[MemoryPackUnion(69, typeof(KoakumaHeroSkill))]
[MemoryPackUnion(13, typeof(BoneSacrificeSkill))]
[MemoryPackUnion(14, typeof(CanHideSkill))]
[MemoryPackUnion(15, typeof(CantMoveSkill))]
[MemoryPackUnion(16, typeof(CarrySkill))]
[MemoryPackUnion(17, typeof(CatCartSkill))]
[MemoryPackUnion(18, typeof(CityTransportSkill))]
[MemoryPackUnion(19, typeof(ConvertSkill))]
[MemoryPackUnion(20, typeof(CorpseBuffSkill))]
[MemoryPackUnion(21, typeof(CreepSkill))]
[MemoryPackUnion(22, typeof(CriticalSkill))]
[MemoryPackUnion(23, typeof(CurseGodSkill))]
[MemoryPackUnion(24, typeof(DashSkill))]
[MemoryPackUnion(25, typeof(DuoSkill))]
[MemoryPackUnion(26, typeof(EirinFrenchAttackSkill))]
[MemoryPackUnion(27, typeof(EirinFrenchBuffSkill))]
[MemoryPackUnion(28, typeof(EirinFrenchKillSkill))]
[MemoryPackUnion(29, typeof(EscapeProSkill))]
[MemoryPackUnion(30, typeof(EscapeSkill))]
[MemoryPackUnion(31, typeof(EternitySkill))]
[MemoryPackUnion(32, typeof(FearMakerSkill))]
[MemoryPackUnion(33, typeof(FlandreAttackSkill))]
[MemoryPackUnion(34, typeof(FlandreBuffSkill))]
[MemoryPackUnion(35, typeof(FlandreKillSkill))]
[MemoryPackUnion(36, typeof(FlySkill))]
[MemoryPackUnion(37, typeof(ForestDefenseSkill))]
[MemoryPackUnion(38, typeof(ForestStartDashSkill))]
[MemoryPackUnion(39, typeof(FortifySkill))]
[MemoryPackUnion(40, typeof(GalaxyArrowSkill))]
[MemoryPackUnion(41, typeof(GridMomijiPerySkill))]
[MemoryPackUnion(42, typeof(GridMountainSkill))]
[MemoryPackUnion(43, typeof(GridRadiationSkill))]
[MemoryPackUnion(44, typeof(GridSanaeNineContinueDamageSkill))]
[MemoryPackUnion(45, typeof(HealSkill))]
[MemoryPackUnion(46, typeof(HideStateSkill))]
[MemoryPackUnion(47, typeof(IllusionSkill))]
[MemoryPackUnion(48, typeof(JunkerOfficerSkill))]
[MemoryPackUnion(49, typeof(KaguyaFrenchAroundSkill))]
[MemoryPackUnion(50, typeof(KaguyaFrenchAttackProSkill))]
[MemoryPackUnion(51, typeof(KaguyaFrenchAttackSkill))]
[MemoryPackUnion(52, typeof(KaguyaFrenchForeverBuffSkill))]
[MemoryPackUnion(53, typeof(KaguyaFrenchNapoleonicCodeSkill))]
[MemoryPackUnion(54, typeof(KaguyaFrenchSynergyDebuffSkill))]
[MemoryPackUnion(55, typeof(KaguyaFrenchSynergySkill))]
[MemoryPackUnion(56, typeof(KanakoBattlefieldProSkill))]
[MemoryPackUnion(57, typeof(KanakoBattlefieldSkill))]
[MemoryPackUnion(58, typeof(KanakoMountainAttackSkill))]
[MemoryPackUnion(59, typeof(KanakoMountainBuffSkill))]
[MemoryPackUnion(60, typeof(KanakoMountainSkill))]
[MemoryPackUnion(61, typeof(KanakoSittingSkill))]
[MemoryPackUnion(62, typeof(KanakoTechSkill))]
[MemoryPackUnion(63, typeof(KanakoWarProSkill))]
[MemoryPackUnion(64, typeof(KanakoWarSkill))]
[MemoryPackUnion(65, typeof(KanakoWindProSkill))]
[MemoryPackUnion(66, typeof(KanakoWindSkill))]
[MemoryPackUnion(67, typeof(KoakumaDevotionSkill))]
[MemoryPackUnion(68, typeof(KoakumaHeroSkill))]
[MemoryPackUnion(69, typeof(KoishiAutoMoveSkill))]
[MemoryPackUnion(70, typeof(KoishiAutoSkill))]
[MemoryPackUnion(71, typeof(KoishiBoneHealSkill))]
[MemoryPackUnion(72, typeof(KoishiDeathFearSkill))]
[MemoryPackUnion(73, typeof(KoishiFreeSkill))]
[MemoryPackUnion(74, typeof(KoishiRespawnSkill))]
[MemoryPackUnion(75, typeof(KomeijiFearSkill))]
[MemoryPackUnion(76, typeof(LaevatainPreySkill))]
[MemoryPackUnion(77, typeof(LaevatainSkill))]
[MemoryPackUnion(78, typeof(LandAndWaterSkill))]
[MemoryPackUnion(79, typeof(LandOnlySkill))]
[MemoryPackUnion(80, typeof(LuckSkill))]
[MemoryPackUnion(81, typeof(MeilingCounterSkill))]
[MemoryPackUnion(82, typeof(MeilingDuelSkill))]
[MemoryPackUnion(83, typeof(MeilingRestSkill))]
[MemoryPackUnion(84, typeof(MokouFrenchBoomSkill))]
[MemoryPackUnion(85, typeof(MokouFrenchEggSkill))]
[MemoryPackUnion(86, typeof(MokouFrenchReviveSkill))]
[MemoryPackUnion(87, typeof(MomijiBuffSkill))]
[MemoryPackUnion(88, typeof(MomijiHunterAttackSkill))]
[MemoryPackUnion(89, typeof(MomijiHunterSkill))]
[MemoryPackUnion(90, typeof(MomijiHuntSkill))]
[MemoryPackUnion(91, typeof(MomijiKillSkill))]
[MemoryPackUnion(92, typeof(MomijiPreySkill))]
[MemoryPackUnion(93, typeof(MomijiSightSkill))]
[MemoryPackUnion(94, typeof(MoonPrincessSkill))]
[MemoryPackUnion(95, typeof(MoriyaBuffSkill))]
[MemoryPackUnion(96, typeof(MoriyaKnightMoveSkill))]
[MemoryPackUnion(97, typeof(MoriyaRoadSkill))]
[MemoryPackUnion(98, typeof(MountainDefenseSkill))]
[MemoryPackUnion(99, typeof(MountainGodSkill))]
[MemoryPackUnion(100, typeof(MountainMoveSkill))]
[MemoryPackUnion(101, typeof(MoveRangeUpSkill))]
[MemoryPackUnion(102, typeof(NoPopulationSkill))]
[MemoryPackUnion(103, typeof(NuclearFusionSkill))]
[MemoryPackUnion(104, typeof(NuclearSkill))]
[MemoryPackUnion(105, typeof(OceanDefenseSkill))]
[MemoryPackUnion(106, typeof(OceanMoveSkill))]
[MemoryPackUnion(107, typeof(OfficerSkill))]
[MemoryPackUnion(108, typeof(PatchouliEarthSkill))]
[MemoryPackUnion(109, typeof(PatchouliFireSkill))]
[MemoryPackUnion(110, typeof(PatchouliMetalSkill))]
[MemoryPackUnion(111, typeof(PatchouliMoveProSkill))]
[MemoryPackUnion(112, typeof(PatchouliMoveSkill))]
[MemoryPackUnion(113, typeof(PatchouliRestSkill))]
[MemoryPackUnion(114, typeof(PatchouliStoneProSkill))]
[MemoryPackUnion(115, typeof(PatchouliStoneSkill))]
[MemoryPackUnion(116, typeof(PatchouliWaterSkill))]
[MemoryPackUnion(117, typeof(PatchouliWoodSkill))]
[MemoryPackUnion(118, typeof(PathStompSkill))]
[MemoryPackUnion(119, typeof(PeaceSkill))]
[MemoryPackUnion(120, typeof(PersistSkill))]
[MemoryPackUnion(121, typeof(PhilostoneSkill))]
[MemoryPackUnion(122, typeof(PhoenixEggSkill))]
[MemoryPackUnion(123, typeof(PhoenixSkill))]
[MemoryPackUnion(124, typeof(PoisonedSkill))]
[MemoryPackUnion(125, typeof(PoorHealthSkill))]
[MemoryPackUnion(126, typeof(PowerUpSkill))]
[MemoryPackUnion(127, typeof(QuartetSkill))]
[MemoryPackUnion(128, typeof(RecycleSkill))]
[MemoryPackUnion(129, typeof(RedMistDefenseSkill))]
[MemoryPackUnion(130, typeof(ReisenFrenchAttakSkill))]
[MemoryPackUnion(131, typeof(ReisenFrenchKillSkill))]
[MemoryPackUnion(132, typeof(ReisenIllusionProSkill))]
[MemoryPackUnion(133, typeof(ReisenIllusionSkill))]
[MemoryPackUnion(134, typeof(RemiliaAbsorbSkill))]
[MemoryPackUnion(135, typeof(RemiliaAttackSkill))]
[MemoryPackUnion(136, typeof(RemiliaBuff2Skill))]
[MemoryPackUnion(137, typeof(RemiliaBuff3Skill))]
[MemoryPackUnion(138, typeof(RemiliaBuffSkill))]
[MemoryPackUnion(139, typeof(RemiliaEgyptianEmpireKillSkill))]
[MemoryPackUnion(140, typeof(RemiliaHelpProSkill))]
[MemoryPackUnion(141, typeof(RemiliaHelpSkill))]
[MemoryPackUnion(142, typeof(RemiliaHunterSkill))]
[MemoryPackUnion(143, typeof(RengesyouControSkill))]
[MemoryPackUnion(144, typeof(RengesyouSkill))]
[MemoryPackUnion(145, typeof(RotaLFlamesProSkill))]
[MemoryPackUnion(146, typeof(RotaLFlamesSkill))]
[MemoryPackUnion(147, typeof(SakuyaFlyProSkill))]
[MemoryPackUnion(148, typeof(SakuyaFlySkill))]
[MemoryPackUnion(149, typeof(SakuyaGuardSkill))]
[MemoryPackUnion(150, typeof(SakuyaKillSkill))]
[MemoryPackUnion(151, typeof(SanaeDivine_E2_ATK_Skill))]
[MemoryPackUnion(152, typeof(SanaeDivine_E2_MOVE_Skill))]
[MemoryPackUnion(153, typeof(SanaeDivine_E3_COUNTER_Skill))]
[MemoryPackUnion(154, typeof(SanaeDivine_E3_HP_Skill))]
[MemoryPackUnion(155, typeof(SanaeDivine_E4_DEFENSE_Skill))]
[MemoryPackUnion(156, typeof(SanaeDivine_E4_KILL_Skill))]
[MemoryPackUnion(157, typeof(SanaeDivine_F2_DEFENSE_Skill))]
[MemoryPackUnion(158, typeof(SanaeDivine_F2_RESIST_Skill))]
[MemoryPackUnion(159, typeof(SanaeDivine_F3_MOVE_Skill))]
[MemoryPackUnion(160, typeof(SanaeDivine_F3_RESIST_Skill))]
[MemoryPackUnion(161, typeof(SanaeDivine_F4_ATK_Skill))]
[MemoryPackUnion(162, typeof(SanaeDivine_F4_KILL_Skill))]
[MemoryPackUnion(163, typeof(SanaeDivineSkill))]
[MemoryPackUnion(164, typeof(SanaeMoveSkill))]
[MemoryPackUnion(165, typeof(SanaeNineContinueSkill))]
[MemoryPackUnion(166, typeof(SanaeNineSkill))]
[MemoryPackUnion(167, typeof(SanaeWindSkill))]
[MemoryPackUnion(168, typeof(SanaeWindXSkill))]
[MemoryPackUnion(169, typeof(SatoriBanSkill))]
[MemoryPackUnion(170, typeof(SatoriSeeSkill))]
[MemoryPackUnion(171, typeof(SatsujinkiSkill))]
[MemoryPackUnion(172, typeof(ScarletKoakumaSkill))]
[MemoryPackUnion(173, typeof(ScarletMistRealTimeVampireDebuffSkill))]
[MemoryPackUnion(174, typeof(ScarletMistRealTimeVampireSkill))]
[MemoryPackUnion(175, typeof(ScoutProSkill))]
[MemoryPackUnion(176, typeof(ScoutSkill))]
[MemoryPackUnion(177, typeof(SkillBanBombSkill))]
[MemoryPackUnion(178, typeof(SkillBanSkill))]
[MemoryPackUnion(179, typeof(SneakSkill))]
[MemoryPackUnion(180, typeof(SpeedUpSkill))]
[MemoryPackUnion(181, typeof(SplashSkill))]
[MemoryPackUnion(182, typeof(StaticSkill))]
[MemoryPackUnion(183, typeof(StiffSkill))]
[MemoryPackUnion(184, typeof(StompSkill))]
[MemoryPackUnion(185, typeof(SuperDashSkill))]
[MemoryPackUnion(186, typeof(SuperHideSkill))]
[MemoryPackUnion(187, typeof(SurpriseSkill))]
[MemoryPackUnion(188, typeof(SuwakoAttackAllySkill))]
[MemoryPackUnion(189, typeof(SuwakoAttackProSkill))]
[MemoryPackUnion(190, typeof(SuwakoAttackSkill))]
[MemoryPackUnion(191, typeof(SuwakoCombineSkill))]
[MemoryPackUnion(192, typeof(SuwakoFullmapSkill))]
[MemoryPackUnion(193, typeof(SuwakoHebiAttackSkill))]
[MemoryPackUnion(194, typeof(SuwakoHebiCombineSkill))]
[MemoryPackUnion(195, typeof(SuwakoHebiSkill))]
[MemoryPackUnion(196, typeof(SuwakoHebiSplitSkill))]
[MemoryPackUnion(197, typeof(SuwakoMoveSkill))]
[MemoryPackUnion(198, typeof(SuwakoSplitSkill))]
[MemoryPackUnion(199, typeof(SwapSkill))]
[MemoryPackUnion(200, typeof(TaiChiSkill))]
[MemoryPackUnion(201, typeof(TenguBuffSkill))]
[MemoryPackUnion(202, typeof(TewiFrenchAttackSkill))]
[MemoryPackUnion(203, typeof(TewiFrenchBuffSkill))]
[MemoryPackUnion(204, typeof(TewiFrenchDieSkill))]
[MemoryPackUnion(205, typeof(TewiFrenchKillSkill))]
[MemoryPackUnion(206, typeof(TewiFrenchSightSkill))]
[MemoryPackUnion(207, typeof(ThirdEyeSkill))]
[MemoryPackUnion(208, typeof(TreatAsHeroSkill))]
[MemoryPackUnion(209, typeof(TrioSkill))]
[MemoryPackUnion(210, typeof(UniqueSkill))]
[MemoryPackUnion(211, typeof(UtsuhoAoeMoveSkill))]
[MemoryPackUnion(212, typeof(UtsuhoBoneMakerSkill))]
[MemoryPackUnion(213, typeof(UtsuhoDelayActSkill))]
[MemoryPackUnion(214, typeof(UtsuhoMissionSkill))]
[MemoryPackUnion(71, typeof(KoishiDeathFearSkill))]
[MemoryPackUnion(72, typeof(KoishiRespawnSkill))]
[MemoryPackUnion(73, typeof(KoishiUndeadSkill))]
[MemoryPackUnion(74, typeof(KomeijiFearSkill))]
[MemoryPackUnion(75, typeof(LaevatainPreySkill))]
[MemoryPackUnion(76, typeof(LaevatainSkill))]
[MemoryPackUnion(77, typeof(LandAndWaterSkill))]
[MemoryPackUnion(78, typeof(LandOnlySkill))]
[MemoryPackUnion(79, typeof(LuckSkill))]
[MemoryPackUnion(80, typeof(MeilingCounterSkill))]
[MemoryPackUnion(81, typeof(MeilingDuelSkill))]
[MemoryPackUnion(82, typeof(MeilingRestSkill))]
[MemoryPackUnion(83, typeof(MokouFrenchBoomSkill))]
[MemoryPackUnion(84, typeof(MokouFrenchEggSkill))]
[MemoryPackUnion(85, typeof(MokouFrenchReviveSkill))]
[MemoryPackUnion(86, typeof(MomijiBuffSkill))]
[MemoryPackUnion(87, typeof(MomijiHunterAttackSkill))]
[MemoryPackUnion(88, typeof(MomijiHunterSkill))]
[MemoryPackUnion(89, typeof(MomijiHuntSkill))]
[MemoryPackUnion(90, typeof(MomijiKillSkill))]
[MemoryPackUnion(91, typeof(MomijiPreySkill))]
[MemoryPackUnion(92, typeof(MomijiSightSkill))]
[MemoryPackUnion(93, typeof(MoonPrincessSkill))]
[MemoryPackUnion(94, typeof(MoriyaBuffSkill))]
[MemoryPackUnion(95, typeof(MoriyaKnightMoveSkill))]
[MemoryPackUnion(96, typeof(MoriyaRoadSkill))]
[MemoryPackUnion(97, typeof(MountainDefenseSkill))]
[MemoryPackUnion(98, typeof(MountainGodSkill))]
[MemoryPackUnion(99, typeof(MountainMoveSkill))]
[MemoryPackUnion(100, typeof(MoveRangeUpSkill))]
[MemoryPackUnion(101, typeof(NoPopulationSkill))]
[MemoryPackUnion(102, typeof(NuclearFusionSkill))]
[MemoryPackUnion(103, typeof(NuclearSkill))]
[MemoryPackUnion(104, typeof(OceanDefenseSkill))]
[MemoryPackUnion(105, typeof(OceanMoveSkill))]
[MemoryPackUnion(106, typeof(OfficerSkill))]
[MemoryPackUnion(107, typeof(PatchouliEarthSkill))]
[MemoryPackUnion(108, typeof(PatchouliFireSkill))]
[MemoryPackUnion(109, typeof(PatchouliMetalSkill))]
[MemoryPackUnion(110, typeof(PatchouliMoveProSkill))]
[MemoryPackUnion(111, typeof(PatchouliMoveSkill))]
[MemoryPackUnion(112, typeof(PatchouliRestSkill))]
[MemoryPackUnion(113, typeof(PatchouliStoneProSkill))]
[MemoryPackUnion(114, typeof(PatchouliStoneSkill))]
[MemoryPackUnion(115, typeof(PatchouliWaterSkill))]
[MemoryPackUnion(116, typeof(PatchouliWoodSkill))]
[MemoryPackUnion(117, typeof(PathStompSkill))]
[MemoryPackUnion(118, typeof(PeaceSkill))]
[MemoryPackUnion(119, typeof(PersistSkill))]
[MemoryPackUnion(120, typeof(PhilostoneSkill))]
[MemoryPackUnion(121, typeof(PhoenixEggSkill))]
[MemoryPackUnion(122, typeof(PhoenixSkill))]
[MemoryPackUnion(123, typeof(PoisonedSkill))]
[MemoryPackUnion(124, typeof(PoorHealthSkill))]
[MemoryPackUnion(125, typeof(PowerUpSkill))]
[MemoryPackUnion(126, typeof(QuartetSkill))]
[MemoryPackUnion(127, typeof(RecycleSkill))]
[MemoryPackUnion(128, typeof(RedMistDefenseSkill))]
[MemoryPackUnion(129, typeof(ReisenFrenchAttakSkill))]
[MemoryPackUnion(130, typeof(ReisenFrenchKillSkill))]
[MemoryPackUnion(131, typeof(ReisenIllusionProSkill))]
[MemoryPackUnion(132, typeof(ReisenIllusionSkill))]
[MemoryPackUnion(133, typeof(RemiliaAbsorbSkill))]
[MemoryPackUnion(134, typeof(RemiliaAttackSkill))]
[MemoryPackUnion(135, typeof(RemiliaBuff2Skill))]
[MemoryPackUnion(136, typeof(RemiliaBuff3Skill))]
[MemoryPackUnion(137, typeof(RemiliaBuffSkill))]
[MemoryPackUnion(138, typeof(RemiliaEgyptianEmpireKillSkill))]
[MemoryPackUnion(139, typeof(RemiliaHelpProSkill))]
[MemoryPackUnion(140, typeof(RemiliaHelpSkill))]
[MemoryPackUnion(141, typeof(RemiliaHunterSkill))]
[MemoryPackUnion(142, typeof(RengesyouControSkill))]
[MemoryPackUnion(143, typeof(RengesyouSkill))]
[MemoryPackUnion(144, typeof(RinCorpseColletSkill))]
[MemoryPackUnion(145, typeof(RinFireSkill))]
[MemoryPackUnion(146, typeof(RotaLFlamesProSkill))]
[MemoryPackUnion(147, typeof(RotaLFlamesSkill))]
[MemoryPackUnion(148, typeof(SakuyaFlyProSkill))]
[MemoryPackUnion(149, typeof(SakuyaFlySkill))]
[MemoryPackUnion(150, typeof(SakuyaGuardSkill))]
[MemoryPackUnion(151, typeof(SakuyaKillSkill))]
[MemoryPackUnion(152, typeof(SanaeDivine_E2_ATK_Skill))]
[MemoryPackUnion(153, typeof(SanaeDivine_E2_MOVE_Skill))]
[MemoryPackUnion(154, typeof(SanaeDivine_E3_COUNTER_Skill))]
[MemoryPackUnion(155, typeof(SanaeDivine_E3_HP_Skill))]
[MemoryPackUnion(156, typeof(SanaeDivine_E4_DEFENSE_Skill))]
[MemoryPackUnion(157, typeof(SanaeDivine_E4_KILL_Skill))]
[MemoryPackUnion(158, typeof(SanaeDivine_F2_DEFENSE_Skill))]
[MemoryPackUnion(159, typeof(SanaeDivine_F2_RESIST_Skill))]
[MemoryPackUnion(160, typeof(SanaeDivine_F3_MOVE_Skill))]
[MemoryPackUnion(161, typeof(SanaeDivine_F3_RESIST_Skill))]
[MemoryPackUnion(162, typeof(SanaeDivine_F4_ATK_Skill))]
[MemoryPackUnion(163, typeof(SanaeDivine_F4_KILL_Skill))]
[MemoryPackUnion(164, typeof(SanaeDivineSkill))]
[MemoryPackUnion(165, typeof(SanaeMoveSkill))]
[MemoryPackUnion(166, typeof(SanaeNineContinueSkill))]
[MemoryPackUnion(167, typeof(SanaeNineSkill))]
[MemoryPackUnion(168, typeof(SanaeWindSkill))]
[MemoryPackUnion(169, typeof(SanaeWindXSkill))]
[MemoryPackUnion(170, typeof(SatoriBanSkill))]
[MemoryPackUnion(171, typeof(SatoriSeeSkill))]
[MemoryPackUnion(172, typeof(SatsujinkiSkill))]
[MemoryPackUnion(173, typeof(ScarletKoakumaSkill))]
[MemoryPackUnion(174, typeof(ScarletMistRealTimeVampireDebuffSkill))]
[MemoryPackUnion(175, typeof(ScarletMistRealTimeVampireSkill))]
[MemoryPackUnion(176, typeof(ScoutProSkill))]
[MemoryPackUnion(177, typeof(ScoutSkill))]
[MemoryPackUnion(178, typeof(SkillBanBombSkill))]
[MemoryPackUnion(179, typeof(SkillBanSkill))]
[MemoryPackUnion(180, typeof(SneakSkill))]
[MemoryPackUnion(181, typeof(SpeedUpSkill))]
[MemoryPackUnion(182, typeof(SplashSkill))]
[MemoryPackUnion(183, typeof(StaticSkill))]
[MemoryPackUnion(184, typeof(StiffSkill))]
[MemoryPackUnion(185, typeof(StompSkill))]
[MemoryPackUnion(186, typeof(SuperDashSkill))]
[MemoryPackUnion(187, typeof(SuperHideSkill))]
[MemoryPackUnion(188, typeof(SurpriseSkill))]
[MemoryPackUnion(189, typeof(SuwakoAttackAllySkill))]
[MemoryPackUnion(190, typeof(SuwakoAttackProSkill))]
[MemoryPackUnion(191, typeof(SuwakoAttackSkill))]
[MemoryPackUnion(192, typeof(SuwakoCombineSkill))]
[MemoryPackUnion(193, typeof(SuwakoFullmapSkill))]
[MemoryPackUnion(194, typeof(SuwakoHebiAttackSkill))]
[MemoryPackUnion(195, typeof(SuwakoHebiCombineSkill))]
[MemoryPackUnion(196, typeof(SuwakoHebiSkill))]
[MemoryPackUnion(197, typeof(SuwakoHebiSplitSkill))]
[MemoryPackUnion(198, typeof(SuwakoMoveSkill))]
[MemoryPackUnion(199, typeof(SuwakoSplitSkill))]
[MemoryPackUnion(200, typeof(SwapSkill))]
[MemoryPackUnion(201, typeof(TaiChiSkill))]
[MemoryPackUnion(202, typeof(TenguBuffSkill))]
[MemoryPackUnion(203, typeof(TewiFrenchAttackSkill))]
[MemoryPackUnion(204, typeof(TewiFrenchBuffSkill))]
[MemoryPackUnion(205, typeof(TewiFrenchDieSkill))]
[MemoryPackUnion(206, typeof(TewiFrenchKillSkill))]
[MemoryPackUnion(207, typeof(TewiFrenchSightSkill))]
[MemoryPackUnion(208, typeof(ThirdEyeSkill))]
[MemoryPackUnion(209, typeof(TreatAsHeroSkill))]
[MemoryPackUnion(210, typeof(TrioSkill))]
[MemoryPackUnion(211, typeof(UndeadSkill))]
[MemoryPackUnion(212, typeof(UniqueSkill))]
[MemoryPackUnion(213, typeof(UtsuhoBoneMakerSkill))]
[MemoryPackUnion(214, typeof(UtsuhoDelayActSkill))]
[MemoryPackUnion(215, typeof(UtsuhoRadiationSkill))]
[MemoryPackUnion(216, typeof(VampireProSkill))]
[MemoryPackUnion(217, typeof(VampireSkill))]
[MemoryPackUnion(218, typeof(WaterDefenseSkill))]
[MemoryPackUnion(219, typeof(WaterMoveSkill))]
[MemoryPackUnion(220, typeof(WindGodSkill))]
[MemoryPackUnion(221, typeof(WindPriestessSkill))]
[MemoryPackUnion(222, typeof(YuugiDash3Skill))]
[MemoryPackUnion(223, typeof(YuugiDashMaxSkill))]
[MemoryPackUnion(216, typeof(UtsuhoReadyMoveSkill))]
[MemoryPackUnion(217, typeof(UtsuhoReadyMoveSuperSkill))]
[MemoryPackUnion(218, typeof(VampireProSkill))]
[MemoryPackUnion(219, typeof(VampireSkill))]
[MemoryPackUnion(220, typeof(WaterDefenseSkill))]
[MemoryPackUnion(221, typeof(WaterMoveSkill))]
[MemoryPackUnion(222, typeof(WindGodSkill))]
[MemoryPackUnion(223, typeof(WindPriestessSkill))]
[MemoryPackUnion(224, typeof(YuugiDashProSkill))]
[MemoryPackUnion(225, typeof(YuugiPushSkill))]
[MemoryPackUnion(225, typeof(YuugiDashSkill))]
[MemoryPackUnion(226, typeof(YuugiMovePlusSkill))]
[MemoryPackUnion(227, typeof(YuugiMoveSkill))]
[MemoryPackUnion(228, typeof(YuugiPushSkill))]
public abstract partial class SkillBase
{
}

View File

@ -1,4 +1,4 @@
// Auto-generated CorpseBurnSkill partial class with MemoryPackable attribute
// Auto-generated UndeadSkill partial class with MemoryPackable attribute
// 此文件由 MemoryPackUnionGenerator 自动生成,请勿手动修改
using MemoryPack;
@ -7,7 +7,7 @@ using Logic.Skill;
namespace Logic.Skill
{
[MemoryPackable]
public partial class CorpseBurnSkill
public partial class UndeadSkill
{
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: efb5bdbc076739a4495b872c293454da
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: ceb42873972f94d4aae8f85df8f5a332
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: e5eb1d6871c44b34496dc52a84d12d51
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

Some files were not shown because too many files have changed in this diff Show More