示例#1
0
 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);
         }
     }
 }
示例#2
0
 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);
         }
     }
 }