public virtual void DoOneSecondOfHackingLogic(GameEntity Target, GameEntity Hacker, ArcenSimContext Context) { if (Hacker.ActiveHack_DurationThusFar >= this.GetTotalSecondsToHack(Target, Hacker)) { WaveLogic.SendWave(Context, Target.Side.WorldSide, Target.Side.WorldSide.AITypeData.BudgetItems[AIBudgetType.Wave].NormalMenusToBuyFrom, Target.Side.WorldSide.GetSpecificBudgetThreshold(AIBudgetType.Wave) * 5, Target, null); if (DoSuccessfulCompletionLogic(Target, Hacker, Context)) { Hacker.Side.WorldSide.StoredHacking -= this.GetCostToHack(Target, Hacker); } } else { if (Hacker.ActiveHack_DurationThusFar % 10 == 0) { WaveLogic.SendWave(Context, Target.Side.WorldSide, Target.Side.WorldSide.AITypeData.BudgetItems[AIBudgetType.Wave].NormalMenusToBuyFrom, Target.Side.WorldSide.GetSpecificBudgetThreshold(AIBudgetType.Wave) * 1, Target, null); } } }
public override void DoOneSecondOfHackingLogic(GameEntity Target, GameEntity Hacker, ArcenSimContext Context) { if (Hacker.ActiveHack_DurationThusFar >= this.GetTotalSecondsToHack(Target, Hacker)) { } else { if (Hacker.ActiveHack_DurationThusFar % 10 == 0) { FInt AIPPerTick = -(ExternalConstants.Instance.Balance_BaseAIPScale * FInt.FromParts(0, 100)); World_AIW2.Instance.ChangeAIP(AIPPerTick, AIPChangeReason.Hacking, Target.TypeData, Context); int ticksThusFar = Hacker.ActiveHack_DurationThusFar / 10; int totalWholeAIPReduced = (ticksThusFar * AIPPerTick).IntValue; FInt waveMultiplier = FInt.One; FInt multiplierMultiplierPerAIP = FInt.FromParts(1, 030); for (int i = 0; i < totalWholeAIPReduced; i++) { waveMultiplier *= multiplierMultiplierPerAIP; } WaveLogic.SendWave(Context, Target.Side.WorldSide, Target.Side.WorldSide.AITypeData.BudgetItems[AIBudgetType.Wave].NormalMenusToBuyFrom, Target.Side.WorldSide.GetSpecificBudgetThreshold(AIBudgetType.Wave) * waveMultiplier, Target, null); } } }