diff --git a/SCHALE.Common/Database/dbs.cs b/SCHALE.Common/Database/dbs.cs index bab4705..84a9b7d 100644 --- a/SCHALE.Common/Database/dbs.cs +++ b/SCHALE.Common/Database/dbs.cs @@ -11,7 +11,6 @@ using SCHALE.Common.NetworkProtocol; namespace SCHALE.Common.Database { - public abstract class HexaCommand { public long CommandId { get; set; } @@ -19,22 +18,22 @@ namespace SCHALE.Common.Database } public enum HexaCommandType - { - None = 0, - UnitSpawn = 1, - PlayScenario = 2, - StrategySpawn = 3, - TileSpawn = 4, - TileHide = 5, - EndBattle = 6, - WaitTurn = 7, - StrategyHide = 8, - UnitDie = 9, - UnitMove = 10, - CharacterEmoji = 11, - } + { + None = 0, + UnitSpawn = 1, + PlayScenario = 2, + StrategySpawn = 3, + TileSpawn = 4, + TileHide = 5, + EndBattle = 6, + WaitTurn = 7, + StrategyHide = 8, + UnitDie = 9, + UnitMove = 10, + CharacterEmoji = 11, + } - public abstract class HexaCondition + public abstract class HexaCondition { public long ConditionId { get; set; } public abstract HexaConditionType Type { get; } @@ -407,7 +406,7 @@ namespace SCHALE.Common.Database public class CampaignMainStageSaveDB : ContentSaveDB { public override ContentType ContentType { get => ContentType.CampaignMainStage; } - public CampaignState CampaignState { get; set; } + public CampaignState CampaignState { get; set; } public int CurrentTurn { get; set; } public int EnemyClearCount { get; set; } public int LastEnemyEntityId { get; set; } @@ -1530,6 +1529,7 @@ namespace SCHALE.Common.Database public class SingleRaidLobbyInfoDB : RaidLobbyInfoDB { + public List ClearDifficulty { get; set; } } public class EliminateRaidLobbyInfoDB : RaidLobbyInfoDB @@ -4849,7 +4849,7 @@ namespace SCHALE.Common.Database public int PassiveSkillLevel { get; set; } public int ExtraPassiveSkillLevel { get; set; } public int FavorRank { get; set; } - public StatSnapshotCollection StatSnapshotCollection { get; set; } + public List StatSnapshotCollection { get; set; } public long HPRateBefore { get; set; } public long HPRateAfter { get; set; } public int CrowdControlCount { get; set; } @@ -4883,7 +4883,7 @@ namespace SCHALE.Common.Database [JsonIgnore] public int ExSkillUseCount { get; } - public KillLogCollection KillLog { get; set; } + public Dictionary KillLog { get; set; } [JsonIgnore] public int KillCount { get; } @@ -4901,7 +4901,7 @@ namespace SCHALE.Common.Database public class SkillCostSummary { public float InitialCost { get; set; } - public CostRegenSnapshotCollection CostPerFrameSnapshots { get; set; } + public List CostPerFrameSnapshots { get; set; } public List CostAddSnapshots { get; set; } public List CostUseSnapshots { get; set; } } @@ -5167,6 +5167,7 @@ namespace SCHALE.Common.Database private int CurrentCount { get; set; } public LogicEffect LogicEffectToDispel { get; } public bool IsDispellable { get; } + public EntityId DotInvokerEntityId { get; set; } public Func ExpirationCheck { get; set; } public Entity ExpirationCheckOwner { get; set; } public int StackSameEffectCount { get; } @@ -5192,6 +5193,12 @@ namespace SCHALE.Common.Database public abstract class SkillCard : IDisposable { private EventHandler StateChanged; + private EventHandler CardCopyUpdated; + public LogicEffectValue[] CopyApplyLogicEffectValues; + public SkillSpecification CopySkillSpecification; + public bool DeductRedrawGaugeWhenHandExist; + public int CopyUseMaxCount; + public int CopyUseCount; private static int SkillUniqueIndex; public int SkillCardUniqueId; public int Cost; @@ -5200,6 +5207,14 @@ namespace SCHALE.Common.Database public int ExtraEnemyCost; public int NPCCost; public int ExtraNPCCost; + public BattleEntity CastOwnerEntity { get; } + public long CastCharacterId { get; } + public long CastOwnerCostumeId { get; } + public SkillDataPack CastSkillData { get; } + public string CastSkillGroupId { get; } + public CharacterSkillListKey CastSkillListKey { get; } + public TargetCandidateRule CastCandidateRule { get; } + public SkillSlot CastSkillSlot { get; } public abstract BattleEntity OwnerEntity { get; } public abstract long OwnerCostumeId { get; } public SkillDataPack SkillData { get; } @@ -5222,10 +5237,14 @@ namespace SCHALE.Common.Database public bool IsAutoUse { get; set; } public abstract EntityId OwnerEntityId { get; } public abstract long CharacterId { get; } - public int OriginalCost { get; } + public string CopyLogicEffectGroupId { get; set; } + public SkillCard CopyCard { get; set; } + public List CopiedCard { get; set; } + public int OriginalCost { get; set; } public int CostUsed { get; set; } public bool IsNPCCard { get; set; } public int SkillRemainCount { get; set; } + public bool IsCopyCard { get; } public void Dispose() { } @@ -5420,6 +5439,7 @@ namespace SCHALE.Common.Database public class Circle : Shape, IEquatable { + private Vector2 forward; public static Circle Empty { get; } public static Circle Default { get; } @@ -5430,6 +5450,8 @@ namespace SCHALE.Common.Database public override ValueTuple Size { get; } public override Vector2 Center { get; set; } public float Radius { get; set; } + public override Vector2 Right { get; set; } + public override Vector2 Forward { get; set; } public bool Equals(Circle other) { return default; @@ -5607,6 +5629,7 @@ namespace SCHALE.Common.Database public TagConstraint TagConstraint { get; } public HPRateConstraint HPRateConstraint { get; } public TacticRoleConstraint TacticRoleConstraint { get; } + public bool IsPlayerSquadConstraint { get; } public CoverState CoverState { get; } public bool NeedSearchTarget { get; } public bool Equals(TargetCandidateRule other) @@ -6988,7 +7011,7 @@ namespace SCHALE.Common.Database public class BattleNumericLog : IEquatable { - public BattleEntityType EntityType { get; set; } + public string EntityType { get; set; } // original type: BattleEntityType, too lazy to write Enum to string converter public BattleLogCategory Category { get; set; } public BattleLogSourceType Source { get; set; } public long CalculatedSum { get; set; } @@ -7264,6 +7287,14 @@ namespace SCHALE.Common.Database public bool IsDisabled { get; } } + public enum UpdateEvent + { + New = 0, + Modify = 1, + Dispell = 2, + Remove = 3, + } + public class SkillDataPack { public NewSkillAction Action { get; } @@ -8557,6 +8588,7 @@ namespace SCHALE.Common.Database public bool Dispellable { get; } public string UIPath { get; } public List LogicEffectTypeReduceGauge { get; } + public GaugeTraceType GaugeTraceElement { get; } public override bool IsDurationChangedByStat { get; } } @@ -8594,6 +8626,7 @@ namespace SCHALE.Common.Database public CoverState CoverState; public HPRateConstraint HPRateConstraint; public TacticRoleConstraint TacticRoleConstraint; + public bool IsPlayerSquadConstraint; public bool Equals(OptionalCandidateRule other) { return default; @@ -8639,7 +8672,6 @@ namespace SCHALE.Common.Database public abstract class ExpressionContainer { protected Expression expression; - public Stack StackTrace { get; } } public abstract class BehaviorNode @@ -8732,6 +8764,13 @@ namespace SCHALE.Common.Database public bool Dispellable { get; } public List LogicEffectTypeReduceGauge { get; } public string UIPath { get; } + public GaugeTraceType GaugeTraceElement { get; } + } + + public enum GaugeTraceType + { + None = 0, + HPRate = 1, } public enum DiffOperatorType @@ -8753,14 +8792,12 @@ namespace SCHALE.Common.Database private EvaluateFunctionHandler EvaluateFunction; private EvaluateParameterHandler EvaluateParameter; private Dictionary _parameters; - private Stack stackTrace; public EvaluateOptions Options { get; set; } protected string OriginalExpression { get; } public static bool CacheEnabled { get; set; } public string Error { get; set; } public LogicalExpression ParsedExpression { get; set; } public Dictionary Parameters { get; set; } - public Stack StackTrace { get; } } public sealed class EvaluateFunctionHandler diff --git a/SCHALE.Common/NetworkProtocol/protos.cs b/SCHALE.Common/NetworkProtocol/protos.cs index 7d10ece..9afec53 100644 --- a/SCHALE.Common/NetworkProtocol/protos.cs +++ b/SCHALE.Common/NetworkProtocol/protos.cs @@ -9891,7 +9891,7 @@ namespace SCHALE.Common.NetworkProtocol public IEnumerable RaidBossDamages { get; } [JsonIgnore] - public RaidBossResultCollection RaidBossResults { get; } + public List RaidBossResults { get; } public BattleSummary Summary { get; set; } public ClanAssistUseInfo AssistUseInfo { get; set; } } diff --git a/SCHALE.GameServer/Managers/RaidManager.cs b/SCHALE.GameServer/Managers/RaidManager.cs index 9951d73..e63d06e 100644 --- a/SCHALE.GameServer/Managers/RaidManager.cs +++ b/SCHALE.GameServer/Managers/RaidManager.cs @@ -28,7 +28,7 @@ namespace SCHALE.GameServer.Managers ReceiveRewardIds = targetSeasonData.SeasonRewardId, PlayableHighestDifficulty = new() { - { targetSeasonData.OpenRaidBossGroup.FirstOrDefault(), Difficulty.Torment } + { targetSeasonData.OpenRaidBossGroup.FirstOrDefault(), Difficulty.Lunatic } } }; }