Exemplo n.º 1
0
 public CalculatedValues()
 {
     AiValues      = new CalculatedAiValues();
     MonsterValues = new CalculatedMonsterValues();
 }
Exemplo n.º 2
0
        private static CalculatedAiValues CalculateAiValues(UserInput userInput, int protectionIndex, int additionalAiValue = 0)
        {
            var result = new CalculatedAiValues();

            bool zoneGuard = userInput.IsZoneGuard;

            if (zoneGuard)
            {
                result.Object1Value        = 0;
                result.Object2Value        = 0;
                result.Object3Value        = 0;
                result.Object4Value        = 0;
                result.Object5Value        = 0;
                result.Object6Value        = 0;
                result.ZoneConnectionValue = userInput.ZoneConnectionValue;
            }
            else
            {
                result.Object1Value        = userInput.GetMapObjectAiValue(1);
                result.Object2Value        = userInput.GetMapObjectAiValue(2);
                result.Object3Value        = userInput.GetMapObjectAiValue(3);
                result.Object4Value        = userInput.GetMapObjectAiValue(4);
                result.Object5Value        = userInput.GetMapObjectAiValue(5);
                result.Object6Value        = userInput.GetMapObjectAiValue(6);
                result.ZoneConnectionValue = 0;
            }

            int totalObjectValue = result.ZoneConnectionValue
                                   + Math.Max(0, result.Object1Value)
                                   + Math.Max(0, result.Object2Value)
                                   + Math.Max(0, result.Object3Value)
                                   + Math.Max(0, result.Object4Value)
                                   + Math.Max(0, result.Object5Value)
                                   + Math.Max(0, result.Object6Value)
                                   + additionalAiValue;

            int   minimalValue1;
            float coefficient1;
            int   minimalValue2;
            float coefficient2;

            switch (protectionIndex)
            {
            case 1:
                minimalValue1 = 2500;
                coefficient1  = 0.5f;
                minimalValue2 = 7500;
                coefficient2  = 0.5f;
                break;

            case 2:
                minimalValue1 = 1500;
                coefficient1  = 0.75f;
                minimalValue2 = 7500;
                coefficient2  = 0.75f;
                break;

            case 3:
                minimalValue1 = 1000;
                coefficient1  = 1f;
                minimalValue2 = 7500;
                coefficient2  = 1f;
                break;

            case 4:
                minimalValue1 = 500;
                coefficient1  = 1.5f;
                minimalValue2 = 5000;
                coefficient2  = 1f;
                break;

            case 5:
                minimalValue1 = 0;
                coefficient1  = 1.5f;
                minimalValue2 = 5000;
                coefficient2  = 1.5f;
                break;

            default:
                return(result);
            }

            result.TotalAiValue = (int)(Math.Max(totalObjectValue - minimalValue1, 0) * coefficient1 + Math.Max(totalObjectValue - minimalValue2, 0) * coefficient2);

            return(result);
        }