Fix 3.3 resource loading issue (#25)

* add more enums

* ConfigAbilities 3.3

* fix NahidaHollowFlowerMixin

* more 3.3 configabilities!

* remove some obfuscated fields
This commit is contained in:
tamilpp25 2022-12-27 09:55:57 +05:30 committed by GitHub
parent 2963e4254b
commit 345f072812
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 338 additions and 16 deletions

View File

@ -0,0 +1,10 @@
using Newtonsoft.Json;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.AbilityMixins
{
internal class AttachToStateGroupNormalizedTimeMixin : BaseAbilityMixin
{
[JsonProperty] public readonly string[] stateGroup;
[JsonProperty] public readonly string modifierName;
}
}

View File

@ -0,0 +1,16 @@
using Newtonsoft.Json;
using Weedwacker.GameServer.Enums;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.AbilityMixins
{
internal class AttackChainMixin : BaseAbilityMixin
{
[JsonProperty] public readonly object? cd;
[JsonProperty] public readonly ReactionType[] reactionTypes;
[JsonProperty] public readonly string[] attackTags;
[JsonProperty] public readonly string effectName;
[JsonProperty] public readonly string effectAttachPoint;
[JsonProperty] public readonly float lineRange;
[JsonProperty] public readonly string attackChainReceiverKey;
}
}

View File

@ -0,0 +1,10 @@
using Newtonsoft.Json;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.AbilityMixins
{
internal class AttackChainReceiverMixin : BaseAbilityMixin
{
[JsonProperty] public readonly object cd;
[JsonProperty] public readonly ConfigAbilityAction[] actionQueue;
}
}

View File

@ -0,0 +1,12 @@
using Newtonsoft.Json;
using Weedwacker.GameServer.Data.BinOut.Ability.Temp.Actions;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.AbilityMixins
{
internal class AvatarStrafeFuelMixin : BaseAbilityMixin
{
[JsonProperty] public readonly float initFuel;
[JsonProperty] public readonly float costSpeed;
[JsonProperty] public readonly RemoveUniqueModifier[] onEmptied;
}
}

View File

@ -0,0 +1,19 @@
using Newtonsoft.Json;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.AbilityMixins
{
internal class AvatarStrafeMixin : BaseAbilityMixin
{
[JsonProperty] public readonly StrafeConfig[] configList;
internal class StrafeConfig
{
[JsonProperty] public readonly string[] stateIds;
[JsonProperty] public readonly float? strafeMoveSpeed;
[JsonProperty] public readonly bool? rotateToTarget;
[JsonProperty] public readonly bool? useGravity;
[JsonProperty] public readonly bool? useRootMotion;
[JsonProperty] public readonly float? angularSpeed;
}
}
}

View File

@ -0,0 +1,13 @@
using Newtonsoft.Json;
using Weedwacker.GameServer.Data.BinOut.Ability.Temp.Actions;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.AbilityMixins
{
internal class CountCheckEventMixin : BaseAbilityMixin
{
[JsonProperty] public readonly string eventKey;
[JsonProperty] public readonly float checkTime;
[JsonProperty] public readonly int checkCount;
[JsonProperty] public readonly ConfigAbilityAction[] actionQueue;
}
}

View File

@ -0,0 +1,6 @@
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.AbilityMixins
{
internal class DisableMotionBlurMixin : BaseAbilityMixin
{
}
}

View File

@ -0,0 +1,15 @@
using Newtonsoft.Json;
using Weedwacker.GameServer.Enums;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.AbilityMixins
{
internal class DoActionByAimMixin : BaseAbilityMixin
{
[JsonProperty] public readonly EntityType[] entityTypes;
[JsonProperty] public readonly float cd;
[JsonProperty] public readonly string colliderNodeName;
[JsonProperty] public readonly ConfigAbilityAction[] actionQueue;
[JsonProperty] public readonly BasePredicate[] predicates;
[JsonProperty] public readonly ConfigAbilityAction[] onRemoveActionQueue;
}
}

View File

@ -0,0 +1,11 @@
using Newtonsoft.Json;
using Weedwacker.GameServer.Enums;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.AbilityMixins
{
internal class DoActionBySelfElementReactionMixin : BaseAbilityMixin
{
[JsonProperty] public readonly ReactionType[] reactionTypes;
[JsonProperty] public readonly ConfigAbilityAction[] actionQueue;
}
}

View File

@ -0,0 +1,15 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Weedwacker.GameServer.Data.BinOut.Ability.Temp.Actions;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.AbilityMixins
{
internal class HittingOtherMixin : BaseAbilityMixin
{
[JsonProperty] public readonly Predicated[] onHittingOther;
}
}

View File

@ -0,0 +1,17 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Weedwacker.GameServer.Data.BinOut.Ability.Temp.Predicates;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.AbilityMixins
{
internal class ModifyBeHitDamageMixin : BaseAbilityMixin
{
[JsonProperty] public readonly string Actor_ElementReactionCriticalDelta;
[JsonProperty] public readonly bool ignoreEventInfo;
[JsonProperty] public readonly ByAny[] predicates;
}
}

View File

@ -0,0 +1,17 @@
using Newtonsoft.Json;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.AbilityMixins
{
internal class NahidaAimNpcGatherMixin : BaseAbilityMixin
{
[JsonProperty] public readonly string npcAttachEffect;
[JsonProperty] public readonly string gatherAttachEffect;
[JsonProperty] public readonly float detectRangeForNPC;
[JsonProperty] public readonly float widthForNPC;
[JsonProperty] public readonly float heightForNPC;
[JsonProperty] public readonly float detectRangeForGather;
[JsonProperty] public readonly float widthForGather;
[JsonProperty] public readonly float heightForGather;
[JsonProperty] public readonly int gatherMaxCount;
}
}

View File

@ -0,0 +1,16 @@
using Newtonsoft.Json;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.AbilityMixins
{
internal class NahidaHollowFlowerMixin : BaseAbilityMixin
{
[JsonProperty] public readonly string effectPattern;
[JsonProperty] public readonly string effectTrigger;
[JsonProperty] public readonly double interval;
[JsonProperty] public readonly int maxCount;
[JsonProperty] public readonly int createMaxNumPerInterval;
[JsonProperty] public readonly object createOffset;
[JsonProperty] public readonly float maxRange;
[JsonProperty] public readonly float destroyRange;
}
}

View File

@ -0,0 +1,9 @@
using Newtonsoft.Json;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.AbilityMixins
{
internal class OverrideAvatarMoveSpeedRatioMixin : BaseAbilityMixin
{
[JsonProperty] public readonly double maxValue;
}
}

View File

@ -0,0 +1,16 @@
using Newtonsoft.Json;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.AbilityMixins
{
internal class OverrideHitImpulseMixin : BaseAbilityMixin
{
[JsonProperty] public readonly Dictionary<string, overrideHitImpulse> overrideHitImpulseMap;
internal class overrideHitImpulse
{
[JsonProperty] public readonly string hitLevel;
[JsonProperty] public readonly float hitImpulseX;
[JsonProperty] public readonly float hitImpulseY;
}
}
}

View File

@ -0,0 +1,10 @@
using Newtonsoft.Json;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.AbilityMixins
{
internal class SwitchSkillIconMixin : BaseAbilityMixin
{
[JsonProperty] public readonly int skillID;
[JsonProperty] public readonly string skillIcon;
}
}

View File

@ -6,6 +6,7 @@ namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.Actions
{
[JsonProperty] public readonly string? target;
[JsonProperty] public readonly bool doOffStage;
[JsonProperty] public readonly bool? RotationDampTime;
[JsonProperty] public readonly BaseSelectTargetType? otherTargets;
[JsonProperty] public readonly string modifierName;
[JsonProperty] public readonly BasePredicate[]? predicates;

View File

@ -1,4 +1,5 @@
using Newtonsoft.Json;
using Weedwacker.GameServer.Data.BinOut.Ability.Temp.Predicates;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.Actions
{
@ -7,6 +8,7 @@ namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.Actions
[JsonProperty] public readonly bool canBeHandledOnRecover;
[JsonProperty] public readonly bool enable;
[JsonProperty] public readonly Extension extention;
[JsonProperty] public readonly ByTrampolineType[] predicates;
public class Extension
{

View File

@ -0,0 +1,10 @@
using Newtonsoft.Json;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.Actions
{
internal class GetStrafeStaminaToGlobalValue : ConfigAbilityAction
{
[JsonProperty] public readonly BasePredicate[] predicates;
[JsonProperty] public readonly string key;
}
}

View File

@ -0,0 +1,9 @@
using Newtonsoft.Json;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.Actions
{
internal class ManipulateStrafeStamina : ConfigAbilityAction
{
[JsonProperty] public readonly string ratio;
}
}

View File

@ -0,0 +1,11 @@
using Newtonsoft.Json;
using Weedwacker.GameServer.Data.BinOut.Ability.Temp.SelectTargetType;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.Actions
{
internal class NotifyNahidaTrigger : ConfigAbilityAction
{
[JsonProperty] public readonly SelectTargetsByShape selectTargets;
[JsonProperty] public readonly string healLimitedByCasterMaxHPRatio;
}
}

View File

@ -4,7 +4,7 @@ namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.Actions
{
internal class RemoveUniqueModifier : ConfigAbilityAction
{
[JsonProperty] public readonly bool doOffStage;
[JsonProperty] public readonly bool? doOffStage;
[JsonProperty] public readonly string modifierName;
}
}

View File

@ -0,0 +1,12 @@

using Newtonsoft.Json;
using Weedwacker.GameServer.Data.BinOut.Ability.Temp.SelectTargetType;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.Actions
{
internal class SetBulletTrackTarget : ConfigAbilityAction
{
[JsonProperty] public readonly SelectTargetsByShape otherTargets;
[JsonProperty] public readonly bool notDoIfTrackTargetAlive;
}
}

View File

@ -0,0 +1,11 @@
using Newtonsoft.Json;
using Weedwacker.GameServer.Data.BinOut.Ability.Temp.Predicates;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.Actions
{
internal class SetCameraEntityDampRatio : ConfigAbilityAction
{
[JsonProperty] public readonly float dampRatio;
[JsonProperty] public readonly ByTrampolineType[] predicates;
}
}

View File

@ -0,0 +1,11 @@
using Newtonsoft.Json;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.Actions
{
internal class SetTeamFightPropertyToOverrideMapKey : ConfigAbilityAction
{
[JsonProperty] public readonly string fightProperty;
[JsonProperty] public readonly string overrideMapKey;
}
}

View File

@ -0,0 +1,11 @@
using Newtonsoft.Json;
using Weedwacker.GameServer.Data.BinOut.Ability.Temp.SelectTargetType;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.Actions
{
internal class TriggerGatherCollect : ConfigAbilityAction
{
[JsonProperty] public readonly SelectTargetsByShape selectTargets;
[JsonProperty] public readonly int maxCount;
}
}

View File

@ -0,0 +1,9 @@
using Newtonsoft.Json;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.Actions
{
internal class TryTriggerTrampolineJump : ConfigAbilityAction
{
[JsonProperty] public readonly ConfigAbilityAction[] failActions;
}
}

View File

@ -0,0 +1,9 @@
using Newtonsoft.Json;
namespace Weedwacker.GameServer.Data.BinOut.Ability.Temp.Predicates
{
internal class ByTrampolineType : BasePredicate
{
[JsonProperty] public readonly bool? isExcitedState;
}
}

View File

@ -155,7 +155,11 @@ namespace Weedwacker.GameServer.Data
typeof(RelyOnElementMixin), typeof(TriggerBeHitSupportMixin), typeof(TileAttackMixin), typeof(ElectricCoreLineMixin), typeof(TileComplexManagerMixin),
typeof(StreamingModifierMixin), typeof(ElectricCoreMoveMixin), typeof(DoTileActionManagerMixin), typeof(AttachModifierToSelfGlobalValueAndTalkStateMixin),
typeof(ElementReactionShockMixin), typeof(EnableSprintInBlackMudMixin), typeof(AttachModifierToSelfGlobalValueAndTalkStateNoInitMixin),
typeof(AttackCostElementMixin),
typeof(AttackCostElementMixin), typeof(CountCheckEventMixin), typeof(SwitchSkillIconMixin), typeof(DoActionBySelfElementReactionMixin),
typeof(AttachToStateGroupNormalizedTimeMixin), typeof(OverrideAvatarMoveSpeedRatioMixin), typeof(AttackChainReceiverMixin), typeof(AttackChainMixin),
typeof(ModifyBeHitDamageMixin), typeof(DoActionByAimMixin), typeof(NahidaAimNpcGatherMixin), typeof(DisableMotionBlurMixin), typeof(NahidaHollowFlowerMixin),
typeof(HittingOtherMixin), typeof(AvatarStrafeMixin), typeof(AvatarStrafeFuelMixin), typeof(OverrideHitImpulseMixin),
// Actions
typeof(SetAnimatorTrigger), typeof(SetAnimatorInt), typeof(SetAnimatorBool), typeof(SetCameraLockTime), typeof(ResetAnimatorTrigger), typeof(RemoveModifier),
typeof(ApplyModifier), typeof(TriggerBullet), typeof(EntityDoSkill), typeof(AvatarSkillStart), typeof(Predicated), typeof(SetGlobalValue), typeof(AttachModifier),
@ -198,7 +202,10 @@ namespace Weedwacker.GameServer.Data
typeof(TriggerUGCGadgetMove), typeof(PaimonAction), typeof(SetPaimonTempOffset), typeof(FireFishingEvent), typeof(AvatarEnterViewBias), typeof(WidgetSkillStart),
typeof(AvatarExitViewBias), typeof(CaptureAnimal), typeof(AvatarShareCDSkillStart), typeof(SetPaimonLookAtCamera), typeof(UpdateReactionDamage), typeof(ApplyLevelModifier),
typeof(FireEffectForStorm), typeof(SendEvtElectricCoreMoveEnterP1), typeof(SendEvtElectricCoreMoveInterrupt), typeof(DoTileAction), typeof(SetCrashDamage),
typeof(SetCrystalShieldHpToOverrideMap), typeof(FireGainCrystalSeedEvent),
typeof(SetCrystalShieldHpToOverrideMap), typeof(FireGainCrystalSeedEvent), typeof(SetBulletTrackTarget), typeof(ManipulateStrafeStamina), typeof(SetCameraEntityDampRatio),
typeof(TryTriggerTrampolineJump), typeof(NotifyNahidaTrigger), typeof(TriggerGatherCollect), typeof(SetTeamFightPropertyToOverrideMapKey), typeof(GetStrafeStaminaToGlobalValue),
// Predicate
typeof(ByAny), typeof(ByAnimatorInt), typeof(ByLocalAvatarStamina), typeof(ByEntityAppearVisionType), typeof(ByTargetGlobalValue),typeof(ByTargetPositionToSelfPosition),
typeof(ByCurrentSceneId), typeof(ByEntityTypes), typeof(ByIsTargetCamp), typeof(ByCurTeamHasFeatureTag), typeof(ByTargetHPRatio), typeof(BySkillReady), typeof(ByItemNumber),
@ -211,7 +218,7 @@ namespace Weedwacker.GameServer.Data
typeof(ByTargetInArea), typeof(ByHasTag), typeof(ByCurrentSceneTypes), typeof(ByIsGadgetExistAround), typeof(ByHostOrGuest), typeof(ByBigTeamHasElementType), typeof(ByDungeonSettled),
typeof(ByHasLevelTag), typeof(ByHasShield), typeof(ByEquipAffixReady), typeof(ByTargetElement), typeof(ByCurTeamHasElementType), typeof(ByHitBoxName), typeof(ByHitImpulse),
typeof(BySceneSurfaceType), typeof(ByHasShieldV2), typeof(ByAnimatorFloat), typeof(ByTargetLayoutArea), typeof(ByEnergy), typeof(ByStageIsReadyTemp), typeof(ByScenePropState),
typeof(BySelfForwardAndTargetPosition), typeof(ByFindBlinkPointSuccess), typeof(ByElementTriggerEntityType), typeof(ByElementReactionType), typeof(ByElementReactionSourceType),
typeof(BySelfForwardAndTargetPosition), typeof(ByFindBlinkPointSuccess), typeof(ByElementTriggerEntityType), typeof(ByElementReactionType), typeof(ByElementReactionSourceType), typeof(ByTrampolineType),
// BornType
typeof(ConfigBornByTarget), typeof(ConfigBornByAttachPoint), typeof(ConfigBornBySelf), typeof(ConfigBornByCollisionPoint), typeof(ConfigBornBySelectedPoint),
typeof(ConfigBornByGlobalValue), typeof(ConfigBornBySelfOwner), typeof(ConfigBornByTargetLinearPoint), typeof(ConfigBornByHitPoint), typeof(ConfigBornByPredicatePoint),

View File

@ -12,5 +12,6 @@ namespace Weedwacker.GameServer.Enums
HPDown,
ChestOpen,
PickItem,
Energy
}
}

View File

@ -97,5 +97,7 @@ namespace Weedwacker.GameServer.Enums
Actor_MaxStaminaDelta,
Entity_MassRatio,
Entity_ChargeSpeedRatioDelta,
Actor_CriticalHurtExtraDelta,
Actor_ElemReactOvergrowVariationExtraDelta,
}
}

View File

@ -7,23 +7,27 @@ namespace Weedwacker.GameServer.Enums
public enum ReactionType
{
None,
Burning,
CrystallizeElectric,
CrystallizeFire,
CrystallizeIce,
CrystallizeWater,
Explode,
Freeze,
FrozenBroken,
Melt,
Shock,
Explode,
Stream,
Burning,
Melt,
Freeze,
Shock,
Superconductor,
SwirlElectric,
SwirlFire,
SwirlIce,
SwirlWater,
Overgrow,
SwirlElectric,
SwirlIce,
CrystallizeWater,
CrystallizeElectric,
CrystallizeIce,
CrystallizeFire,
Overdose,
OverdoseElectric,
OverdoseGrass,
Overgrow,
OvergrowMushroomFire,
OvergrowMushroomElectric
}
}