Skip to content

Commit

Permalink
small fix for meredith as fam stunning owner
Browse files Browse the repository at this point in the history
  • Loading branch information
mfoltz committed Aug 2, 2024
1 parent 2dd49a1 commit f37940f
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 2 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
- fixed bug where parties would prevent players from taking silver burn damage and garlic stacks being applied
- added check to prevent quests from being rerolled if target was previously found in the world but all are dead and waiting on respawns
- fixed bug where exo prestiging was possible before reaching max player level
- added shinies back for familiars (see README for details, will be updated before pushing build to Thunderstore)
- added shinies back for familiars (see README for details)
- amped divine angel and added holy mortar buff from brutal Simon to Solarus after his holy bubble activates for eliteShardBearers
- removed divine and fallen angels from quest target pool

`1.2.3`
- note: changed a key in the player prestige file from Sanguimancy to UnarmedExpertise and UnarmedExpertise will no longer be stored in the player_sanguimancy file, tested handling old data to new formats and seems to be fine but please make a backup of these files just incase_
Expand Down
14 changes: 14 additions & 0 deletions Patches/BuffSystemSpawnServerPatch.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ internal static class BuffSpawnSystemPatches
static readonly PrefabGUID combatStance = new(-952067173);
static readonly PrefabGUID holyBeamPowerBuff = new(-1584595113);
static readonly PrefabGUID solarus = new(-740796338);
static readonly PrefabGUID generalStunDebuff = new(796254181);
static readonly PrefabGUID meredithVBlood = new(850622034);


static readonly bool Parties = Plugin.Parties.Value;
Expand Down Expand Up @@ -413,6 +415,17 @@ static void OnUpdatePrefix(BuffSystem_Spawn_Server __instance)
if (Plugin.FamiliarSystem.Value)
{
Follower follower = entity.Read<EntityOwner>().Owner.Read<Follower>();

if (prefabGUID.Equals(generalStunDebuff))
{
Entity familiar = FamiliarSummonUtilities.FamiliarUtilities.FindPlayerFamiliar(follower.Followed._Value);
if (familiar != Entity.Null && familiar.Read<PrefabGUID>().Equals(meredithVBlood))
{
DestroyUtility.CreateDestroyEvent(EntityManager, entity, DestroyReason.Default, DestroyDebugReason.TryRemoveBuff);
continue;
}
}

if (GameMode.Equals(GameModeType.PvE)) // always stop in PvE
{
Entity familiar = FamiliarSummonUtilities.FamiliarUtilities.FindPlayerFamiliar(follower.Followed._Value);
Expand Down Expand Up @@ -450,6 +463,7 @@ static void OnUpdatePrefix(BuffSystem_Spawn_Server __instance)
continue;
}
}

}
} // stop debuff and other negative effects for parties and such
/*
Expand Down
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
- **Experience Leveling:** Implements a leveling system to replace traditional gearscore and provide a greater sense of progression. Experience for this is gained per kill (should apply to all kills that can be linked back to the player) and can complete level 20 quest to track vbloods with .quickStart (.start). Still tuning this as needed but the config options should be there to support whatever kind of leveling experience you're looking to provide at this point (within reason :P). Experience sharing in clan or group has a max distance of 25f (4-5 floor lengths). Recently added options to control experience gain from units spawned via vermin nest and other unit spawners along with nerfing rift trash experience if you so desire. Can now tune how much experience higher level players receive from lower level kills as well.
- **Blood Legacies:** Provides further stat customization for legacies (blood types) similar to expertise with a different set of stats. Experience for this is gained per feed kill/execute for equipped blood type. Old blood quality enhancement option still exists for those who would like to use it, although do note if using prestige as well the quality gain will be based on legacy prestige level in that blood. Number of stat choices is configurable. Resetting choices is free by default but can be made to cost items. Can be further enhanced by activating soft OR hard synergies (classes) to encourage and/or restrict various playstyles.
- **Prestiging:** Prestige in leveling, expertise, and legacies! Each increment in leveling prestige will reduce experience rate gain for leveling by the leveling rate reducer (separate from the expertise/legacy rate reducer) and increase expertise/legacy rate gains by the rate multiplier. Prestiging in expertise/legacies will increase their max stat bonuses per level by the stat multiplier and will reduce rate gains in that individual prestige category by the rate reducer per increment. Configurable buffs will be permanently applied to the player each prestige level in experience (can skip levels by leaving prefab as 0). Prestiging is also configurably tied to unlocking extra spells for classes to use on shift (you can use any abilityGroup prefabs here but don't use normal player spells unless you like weird weapon cloning bugs when equipping jewels. also, some NPC spells don't really work as expected when used by players so do some testing before swapping these out and make sure they behave. can test spells with '.spell [1/2] [AbilityGroupPrefab]' to manually place them on unarmed). Exo prestiging is also available for those who have already maxed out normal experience prestige options and want more of a NG+ feel, increases damage taken/done by configured amount per level up to 100 times by default with configured item reward per level, trying to emulate a NG+ feel with this one.
- **Familiars:** Every kill of a valid unit is a chance to unlock that unit as a familiar, now including VBloods and summoners! VBloods can be toggled on/off and unit types can be configurably allowed (humans, demons, beasts, etc) although do note that some category bans will supercede VBlood checks (if humans are banned, Vincent will be banned as well even if VBloods are enabled); there is also a list for individual unit bans. They will level up, fight for you, and you can collect them all. Only one familiar can be summoned at a time. They can be toggled (called/dismissed) without fully unbinding them to quickly use waygates (attempting to use a waygate with a familiar out will dismiss it automatically now and using it will then summon the familiar again so it is there after teleporting) and perform other actions normally prohibited by having a follower like a charmed human. Each set can hold 10 and more sets will be created once the one being added to is full. You can choose the active set by name (default is FamiliarsList1, FamiliarsList2, etc), remove familiars from sets, move familiars between sets, and the sets can be renamed. To summon a familiar from your current set (which can be chosen with .cfs [Name]), .lf to see the units available and use .bind #; to choose a different one, use .unbind, and if it gets weird or buggy at any point .resetfams can be used to clear your active familiar data and followerBuffer. All units have the same stats as usual, however their phys/spell power starts at 10% at level 1 and will scale to 100% again when they reach max level. Base health is 500 and will scale with up to 2500 at max level. Traders, carriages, horses, crystals (looking at you dracula blood crystal thing) and werewolves are unavailable. Werewolves will be in the pool once I add handling for their transformations but the rest will likely stay banned (if you manually add one of them to your unlocks as an admin that's on you :P). Can't bind in combat or pvp combat.
- **Familiars:** Every kill of a valid unit is a chance to unlock that unit as a familiar, now including VBloods and summoners! VBloods can be toggled on/off and unit types can be configurably allowed (humans, demons, beasts, etc) although do note that some category bans will supercede VBlood checks (if humans are banned, Vincent will be banned as well even if VBloods are enabled); there is also a list for individual unit bans. They will level up, fight for you, and you can collect them all. Only one familiar can be summoned at a time. They can be toggled (called/dismissed) without fully unbinding them to quickly use waygates (attempting to use a waygate with a familiar out will dismiss it automatically now and using it will then summon the familiar again so it is there after teleporting) and perform other actions normally prohibited by having a follower like a charmed human. Each set can hold 10 and more sets will be created once the one being added to is full. You can choose the active set by name (default is FamiliarsList1, FamiliarsList2, etc), remove familiars from sets, move familiars between sets, and the sets can be renamed. To summon a familiar from your current set (which can be chosen with .cfs [Name]), .lf to see the units available and use .bind #; to choose a different one, use .unbind, and if it gets weird or buggy at any point .resetfams can be used to clear your active familiar data and followerBuffer. All units have the same stats as usual, however their phys/spell power starts at 10% at level 1 and will scale to 100% again when they reach max level. Base health is 500 and will scale with up to 2500 at max level. Traders, carriages, horses, crystals (looking at you dracula blood crystal thing) and werewolves are unavailable. Werewolves will be in the pool once I add handling for their transformations but the rest will likely stay banned (if you manually add one of them to your unlocks as an admin that's on you :P). Can't bind in combat or pvp combat. Shinies are back! 20% chance to unlock 1 of 6 visuals when first obtaining unit and 100% to unlock one on repeat unlock of same unit, one visual per unit for now. Can toggle visual being applied when familiar is bound using 'yes' if familiar emote actions are enabled. '.fam v [SpellSchool]' is good for one free shiny visual of choice and will apply to your active familiar. Would recommend using this on your favorite VBlood, may make this available for a cost in the future.
- **Classes:** Soft synergies allows for the encouragement of stat choices without restricting choices while hard synergies will only allow the stats for that class to be chosen. Both soft or hard will apply the synergy multiplier to the max stat bonuses for that class for weapon expertise/blood legacies. Additionally, each class has a config spot for 4 blood buffs (the correct prefabs for this start with AB_BloodBuff_) that are granted every MaxPlayerLevel/#buffs while leveling up (with 4 buffs and 90 being the max, they'll be applied at 22, 44, 66, and 88) and apply permanently at max strength without regard to the blood quality or type the player possesses (can be skipped with 0 in the spot). They do not stack with buffs from the same blood type (if a player has the scholar free cast proc buff from class and also has 100% scholar blood, those chances will not stack) which maintains a sense of balance while allowing each class to have a persistent theme/identity that can be earned without excessive grinding. Classes also get extra spells to use on shift that are configurable, both the spell and at what level of prestige they are earned at but do keep in mind the considerations mentioned in the prestige section. Will probably be changing at least a few aspects of these new class systems in the future but am overall happy with where they're at in the sense that they allow for a lot of customization and can be made to feel as unique as you'd like. Tried to make decent thematic choices for the default blood buffs and spells per class but no promises :P. Changing classes should properly remove and apply buffs based on level. Also, spell school effects on hit unique to each class if enabled!
- **Quests:** Daily and weekly kill quests. Configurable reward pool and amounts. Dailies give 2.5% of your total exp as reward, weeklies give 10%. Can track progress and see details with commands.

Expand Down Expand Up @@ -223,6 +223,15 @@
- `.familiar search [Name]`
- Searches for familiars matching entered name in your boxes.
- Shortcut: *.fam s [Name]*
- `.familiar search [Name]`
- Searches for familiars matching entered name in your boxes.
- Shortcut: *.fam s [Name]*
- `.familiar visual [SpellSchool]`
- Assigns shiny visual to current active familiar. One freebie.
- Shortcut: *.fam v [SpellSchool]*
- `.familiar resetvisualchoice [Name]` 🔒
- Allows players to use '.fam v [SpellSchool]' again at admin discretion if so desired. Note that this will not remove visuals the player has chosen for a familiar with that command.
- Shortcut: *.fam rv [Name]*

### Misc Commands
- `.starterkit`
Expand Down Expand Up @@ -461,6 +470,8 @@
The chance for a unit to unlock a familiar when killed.
- **VBlood Unlock Chance**: `VBloodUnlockChance` (float, default: 0.01)
The chance for a VBlood to unlock a familiar when killed.
- **Shiny Chance**: `ShinyChance` (float, default: 0.2)
The chance to unlock a visual for a familiar when first unlocking unit.

### Class System
- **Soft Synergies**: `SoftSynergies` (bool, default: false)
Expand Down

0 comments on commit f37940f

Please sign in to comment.