Skip to content

Commit

Permalink
fix: Added retrofix for random encounters in Prologue saves, general …
Browse files Browse the repository at this point in the history
…random encounter improvements
  • Loading branch information
not_alphanine committed May 18, 2024
1 parent 211b70e commit 1b4628d
Show file tree
Hide file tree
Showing 12 changed files with 246 additions and 10 deletions.
Binary file modified NewGamePlus.rc
Binary file not shown.
2 changes: 1 addition & 1 deletion src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ RED4EXT_C_EXPORT void RED4EXT_CALL Query(RED4ext::PluginInfo* aInfo)
{
aInfo->name = L"New Game+";
aInfo->author = L"not_alphanine";
aInfo->version = RED4EXT_SEMVER(0, 9, 8); // Set your version here.
aInfo->version = RED4EXT_SEMVER_EX(0, 9, 8, RED4EXT_V0_SEMVER_PRERELEASE_TYPE_RC, 1); // Set your version here.
aInfo->runtime = RED4EXT_RUNTIME_INDEPENDENT;
aInfo->sdk = RED4EXT_SDK_LATEST;
}
Expand Down
187 changes: 187 additions & 0 deletions tweaks/NGPlus_FastSoloBoss.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
Character.NGPlus_EncounterFastSoloBoss:
$base: t"Character.afterlife_rare_fmelee3_katana_wa_elite"
tags: ["Cyberpsycho", "ImmuneToTakedown"]
baseAttitudeGroup: n"hostile"
rarity: NPCRarity.Boss
quest: NPCQuestAffiliation.StreetStory

entityTemplatePath: r"ep1\quest\primary_characters\alex.ent"
appearanceName: n"alex_default"
voiceTag: n"alex"

displayName: l"NewGamePlus_BossEncounter_FastSoloDisplayName"
fullDisplayName: l"NewGamePlus_BossEncounter_FastSoloDisplayName"

savable: true
dropsWeaponOnDeath: false

primaryEquipment:
$type: NPCEquipmentGroup
equipmentItems:
-
$type: NPCEquipmentItem
item: t"Items.Preset_Knife_Military"
equipSlot: "AttachmentSlots.WeaponRight"
equipCondition:
- t"WeaponConditions.BaseMeleePrimaryWeaponEquipCondition"
unequipCondition:
- t"WeaponConditions.BaseMeleePrimaryWeaponUnequipCondition"

secondaryEquipment:
$type: NPCEquipmentGroup
equipmentItems:
- $type: NPCEquipmentItem
item: t"Items.Preset_Ticon_Reed"
equipSlot: "AttachmentSlots.WeaponRight"

affiliation: t"Factions.Classified"
priority: t"SpawnableObjectPriority.Quest"

statModifierGroups:
- !append t"Character.Boss_Poise_Primary_Stat_ModGroup"
- !append t"Character.Cyberpsycho_ModGroup"
- !append t"Character.Cyberpsycho_HitReaction_Resistance"

effectors:
- !append t"Character.AllowTechWeaponDodgeEffector"
- !append t"Character.AllowAnyDirectionDodgeEffector"

abilities:
- !append t"Ability.HasDodge"
- !append t"Ability.HasKerenzikov"
- !append t"Ability.HasSandevistanTier3"
- !append t"Ability.CanParry"
- !append t"Ability.CanUseFlashbangGrenades"
- !append t"Ability.CanUseSmokeGrenades"
- !append t"Ability.HasMajorQuickhackResistance"
- !append t"Ability.CanThrowWeapon"
- !append t"Ability.CanGuardBreak"
- !append t"Ability.CanRegenInCombat"
- !append t"Ability.CanShootWhileMoving"
- !append t"Ability.IsReckless"
- !append t"Ability.HasWeakHealthRegeneration"
- !append t"Ability.HasICELevelBooster"
- !append t"Ability.HasGraphiteTissue"
- !append t"Ability.HasBoostedCortex"
- !append t"Ability.CanUseOpticalCamo"
- !append t"Ability.CanDash"
- !append t"Ability.CanCharge"

objectActions: ["QuickHack.BossBaseBlindHack", "QuickHack.BossSuicideHackBase", "QuickHack.BossBaseWeaponMalfunctionHack", "QuickHack.BossBaseLocomotionMalfunctionHack", "QuickHack.BossBaseOverheatHack", "QuickHack.BossOverloadBaseHack", "QuickHack.BossBrainMeltBaseHack", "QuickHack.BossBaseCyberwareMalfunctionHack", "QuickHack.BossSystemCollapseHackBase", "QuickHack.BossGrenadeHackBase", "QuickHack.BossMadnessHackBase", "QuickHack.BossMemoryWipeHackBase", "QuickHack.BossBaseBlackWallHack", "QuickHack.BaseCommsCallInHack", "QuickHack.BaseCommsNoiseHack", "QuickHack.BasePingHack", "QuickHack.BaseContagionHack", "QuickHack.BaseWhistleHack", "QuickHack.RemoteBreach", "Takedown.NewPerkFinisher", "Takedown.NewPerkFinisherBlunt"]

visualTags:
- !append "Fast"

statModifiers:
- !append
$type: ConstantStatModifier
statType: BaseStats.Health
modifierType: Multiplier
value: 0.95 # Given we have evasion and percentage defenses out the ass, we don't need much HP

- !append
$type: ConstantStatModifier
statType: BaseStats.IsTier4Archetype
modifierType: Additive
value: 1

- !append
$type: ConstantStatModifier
statType: BaseStats.MaxSpeed
modifierType: Multiplier
value: 4.0

- !append
$type: ConstantStatModifier
statType: BaseStats.Accuracy
modifierType: Additive
value: 2.0

- !append
$type: ConstantStatModifier
statType: BaseStats.AttacksPerSecond
modifierType: Multiplier
value: 2.0

- !append
$type: CurveStatModifier
statType: BaseStats.NPCDamage
modifierType: Multiplier
id: "boss_power_level_to_dps_mult"
column: "kurt_level_to_dps_mult"
refStat: BaseStats.PowerLevel

- !append
$type: ConstantStatModifier
statType: BaseStats.Evasion
modifierType: Additive
value: 0.55

- !append
$type: ConstantStatModifier
statType: BaseStats.MaxPercentDamageTakenPerHit
modifierType: Additive
value: 20 # So you can't just queue up several Synapse Burnouts

- !append
$type: ConstantStatModifier
statType: BaseStats.StunImmunity
modifierType: Additive
value: 1

- !append
$type: ConstantStatModifier
statType: BaseStats.HitReactionFactor
modifierType: Additive
value: 1

Character.NGPlus_EncounterFastSoloBoss_NetrunnerSidekick:
$base: Character.q306_black_ops_netrunner
baseAttitudeGroup: n"hostile"
quest: NPCQuestAffiliation.StreetStory
priority: t"SpawnableObjectPriority.Quest"
reactionPreset: ReactionPresets.Ganger_Aggressive
savable: true

Character.NGPlus_EncounterFastSoloBoss_PistolSidekick:
$base: Character.q306_black_ops_fast_ranged
baseAttitudeGroup: n"hostile"
quest: NPCQuestAffiliation.StreetStory
priority: t"SpawnableObjectPriority.Quest"
reactionPreset: ReactionPresets.Ganger_Aggressive
savable: true

DynamicSpawnSystem.NewGamePlus_FastSoloBossEncounter:
$type: DynamicVehicleData
vehicleRecord: t"Vehicle.NGPlus_Encounter_Bike"
unitRecordsPool:
-
$type: WeightedCharacter
character: t"Character.NGPlus_EncounterFastSoloBoss"
weight: 1.0

DynamicSpawnSystem.NewGamePlus_FastSoloBossSupport:
$type: DynamicVehicleData
vehicleRecord: t"Vehicle.v_sport1_herrera_outlaw"
unitRecordsPool:
-
$type: WeightedCharacter
character: t"Character.NGPlus_EncounterFastSoloBoss_NetrunnerSidekick"
weight: 1.0
-
$type: WeightedCharacter
character: t"Character.NGPlus_EncounterFastSoloBoss_PistolSidekick"
weight: 1.0

DynamicSpawnSystem.NewGamePlus_FastSoloBossSupport2:
$type: DynamicVehicleData
vehicleRecord: t"Vehicle.v_sport1_herrera_outlaw"
unitRecordsPool:
-
$type: WeightedCharacter
character: t"Character.NGPlus_EncounterFastSoloBoss_PistolSidekick"
weight: 1.0
-
$type: WeightedCharacter
character: t"Character.NGPlus_EncounterFastSoloBoss_NetrunnerSidekick"
weight: 1.0
17 changes: 10 additions & 7 deletions tweaks/NGPlus_NetrunnerBoss.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
Character.NGPlus_EncounterNetrunnerBoss:
$base: t"Character.q305_maxtac_miniboss_netrunner_ma"
tags: ["Cyberpsycho"]
tags: ["Cyberpsycho", "ImmuneToTakedown"]
baseAttitudeGroup: n"hostile"
affiliation: t"Factions.Arasaka"
rarity: NPCRarity.Boss
quest: NPCQuestAffiliation.StreetStory
reactionPreset: ReactionPresets.Ganger_Aggressive

entityTemplatePath: r"base\quest\tertiary_characters\ghost_nachtigall.ent"
appearanceName: n"q111_nachtigall_ghost"
appearanceName: n"man_average_q111_nachtigall_ghost"

displayName: l"Story-base-quest-tertiary_characters-burondo_displayName"
fullDisplayName: l"Story-base-quest-tertiary_characters-burondo_displayName"
Expand All @@ -27,6 +27,9 @@ Character.NGPlus_EncounterNetrunnerBoss:
abilities:
- !append t"Ability.HasDodge"
- !append t"Ability.HasKerenzikov"
- !append t"Ability.CanUseOpticalCamo"
- !append t"Ability.CanUseFlashbangGrenades"
- !append t"Ability.CanCharge"
- !remove t"Ability.IsAVMaxTac"

statModifiers:
Expand All @@ -40,7 +43,7 @@ Character.NGPlus_EncounterNetrunnerBoss:
$type: ConstantStatModifier
statType: BaseStats.DPS
modifierType: Multiplier
value: 3.0
value: 2.0

- !append
$type: ConstantStatModifier
Expand Down Expand Up @@ -76,7 +79,7 @@ Character.NGPlus_EncounterNetrunnerBoss_KatanaSidekick:

DynamicSpawnSystem.NewGamePlus_NetrunnerBossEncounter:
$type: DynamicVehicleData
vehicleRecord: t"Vehicle.q101_troy_bike"
vehicleRecord: t"Vehicle.NGPlus_Encounter_Bike"
unitRecordsPool:
-
$type: WeightedCharacter
Expand All @@ -86,7 +89,7 @@ DynamicSpawnSystem.NewGamePlus_NetrunnerBossEncounter:
# Some randoms with mantisblades or some shit, to keep the player from focusing the boss too easily
DynamicSpawnSystem.NewGamePlus_NetrunnerBossSupport:
$type: DynamicVehicleData
vehicleRecord: t"Vehicle.q101_troy_bike"
vehicleRecord: t"Vehicle.NGPlus_Encounter_Bike"
unitRecordsPool:
-
$type: WeightedCharacter
Expand All @@ -95,7 +98,7 @@ DynamicSpawnSystem.NewGamePlus_NetrunnerBossSupport:

DynamicSpawnSystem.NewGamePlus_NetrunnerBossSupport2:
$type: DynamicVehicleData
vehicleRecord: t"Vehicle.q101_troy_bike"
vehicleRecord: t"Vehicle.NGPlus_Encounter_Bike"
unitRecordsPool:
-
$type: WeightedCharacter
Expand All @@ -104,7 +107,7 @@ DynamicSpawnSystem.NewGamePlus_NetrunnerBossSupport2:

DynamicSpawnSystem.NewGamePlus_NetrunnerBossSupport3:
$type: DynamicVehicleData
vehicleRecord: t"Vehicle.q101_troy_bike"
vehicleRecord: t"Vehicle.NGPlus_Encounter_Bike"
unitRecordsPool:
-
$type: WeightedCharacter
Expand Down
31 changes: 31 additions & 0 deletions tweaks/NGPlus_Utils.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# The Troy Arch, with some modifications (allow hacking it ETC)

Vehicle.NGPlus_Encounter_Bike:
$base: t"Vehicle.q101_troy_bike"
tags:
- !remove "DisableTireShooting"
isHackable: t"Vehicle.Dynamic"
statModifierGroups:
- !remove t"VehicleStatPreset.QuestVeryDurable"
- !append t"VehicleStatPreset.Durable"

# Because HasPassiveHealthRegeneration is fucking busted

Ability.HasWeakHealthRegeneration:
$type: GameplayAbility
abilityPackage:
effectors:
-
$type: ModifyStatPoolModifierEffector
prereqRecord: "Prereqs.AlwaysTruePrereq"
effectorClassName: "ModifyStatPoolModifierEffector"
poolModifier:
$type: PoolValueModifier
enabled: true
rangeBegin: 0.0
rangeEnd: 100.0
startDelay: 0.0
valuePerSec: 0.5
delayOnChange: false
statPoolType: "Health"
modificationType: "Regeneration"
1 change: 1 addition & 0 deletions wolvenkit/custom_refs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ mod\quest\newgameplus\fixhauntedweaponspreep1.questphase
mod\quest\newgameplus\FixHauntedWeaponsPreEP1.questphase
mod\quest\newgameplus\initstreetstoriesandfasttravel.questphase
mod\quest\newgameplus\InitStreetStoriesAndFastTravel.questphase
mod\quest\newgameplus\journal\NGPlusJournal.journal
mod\quest\newgameplus\markq000ascompleted.questphase
mod\quest\newgameplus\MarkQ000AsCompleted.questphase
mod\quest\newgameplus\new_q101\new_q101.questphase
Expand Down
Binary file modified wolvenkit/packed/archive/pc/mod/NewGamePlus.archive
Binary file not shown.
9 changes: 8 additions & 1 deletion wolvenkit/packed/archive/pc/mod/NewGamePlus.archive.xl
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,11 @@ localization:
subtitles:
en-us: base\localization\en-us\new_game_plus\subtitles\subtitles.json
journal:
- mod\quest\newgameplus\journal\NGPlusJournal.journal
- mod\quest\newgameplus\journal\NGPlusJournal.journal
quest:
phases:
- path: mod\quest\newgameplus\NGPlusBossEncounterRetrofix.questphase
parent: base\quest\holocalls\holofixer\holofixer.questphase
input:
node: 3
socket: "Out"
Binary file not shown.
Binary file not shown.
Binary file not shown.
9 changes: 8 additions & 1 deletion wolvenkit/source/resources/NewGamePlus.archive.xl
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,11 @@ localization:
subtitles:
en-us: base\localization\en-us\new_game_plus\subtitles\subtitles.json
journal:
- mod\quest\newgameplus\journal\NGPlusJournal.journal
- mod\quest\newgameplus\journal\NGPlusJournal.journal
quest:
phases:
- path: mod\quest\newgameplus\NGPlusBossEncounterRetrofix.questphase
parent: base\quest\holocalls\holofixer\holofixer.questphase
input:
node: 3
socket: "Out"

0 comments on commit 1b4628d

Please sign in to comment.