Exemplo n.º 1
0
        public static string GetSecondOperator(MutationEffectType effectType)
        {
            switch (effectType)
            {
            case MutationEffectType.AssignAdd:
                return("+");

            case MutationEffectType.AssignSubtract:
                return("-");

            case MutationEffectType.AssignMultiply:
            case MutationEffectType.AddMultiply:
            case MutationEffectType.SubtractMultiply:
                return("*");

            case MutationEffectType.AssignDivide:
            case MutationEffectType.AddDivide:
            case MutationEffectType.SubtractDivide:
                return("/");

            case MutationEffectType.AtLeastAdd:
                return(", add");

            case MutationEffectType.AtMostSubtract:
                return(", sub");
            }
            return(null);
        }
Exemplo n.º 2
0
        private static string GetFirstOperator(MutationEffectType effectType)
        {
            switch (effectType)
            {
            case MutationEffectType.Assign:
            case MutationEffectType.AssignAdd:
            case MutationEffectType.AssignSubtract:
            case MutationEffectType.AssignMultiply:
            case MutationEffectType.AssignDivide:
                return("=");

            case MutationEffectType.Add:
            case MutationEffectType.AddMultiply:
            case MutationEffectType.AddDivide:
                return("+=");

            case MutationEffectType.Subtract:
            case MutationEffectType.SubtractMultiply:
            case MutationEffectType.SubtractDivide:
                return("-=");

            case MutationEffectType.Multiply:
                return("*=");

            case MutationEffectType.Divide:
                return("/=");

            case MutationEffectType.AtLeastAdd:
                return(">=");

            case MutationEffectType.AtMostSubtract:
                return("<=");
            }
            return(null);
        }
Exemplo n.º 3
0
 public static bool HasSecondOperator(MutationEffectType effectType)
 {
     switch (effectType)
     {
     case MutationEffectType.AssignAdd:
     case MutationEffectType.AssignSubtract:
     case MutationEffectType.AssignMultiply:
     case MutationEffectType.AssignDivide:
     case MutationEffectType.AddMultiply:
     case MutationEffectType.AddDivide:
     case MutationEffectType.SubtractMultiply:
     case MutationEffectType.SubtractDivide:
     case MutationEffectType.AtLeastAdd:
     case MutationEffectType.AtMostSubtract:
         return(true);
     }
     return(false);
 }
Exemplo n.º 4
0
        public bool Validate(WorldObject wo, EffectArgument result, EffectArgument arg1, EffectArgument arg2, MutationEffectType type)
        {
            /*if (!result.IsValid)
             * {
             *  log.Error($"{wo.Name} ({wo.Guid}).TryMutate({type}) - result invalid");
             *  return false;
             * }*/

            if (!arg1.IsValid)
            {
                log.Error($"{wo.Name} ({wo.Guid}).TryMutate({type}) - argument 1 invalid");
                return(false);
            }

            switch (type)
            {
            case MutationEffectType.AtLeastAdd:
            case MutationEffectType.AtMostSubtract:
            case MutationEffectType.AddMultiply:
            case MutationEffectType.AddDivide:
            case MutationEffectType.SubtractMultiply:
            case MutationEffectType.SubtractDivide:
            case MutationEffectType.AssignAdd:
            case MutationEffectType.AssignSubtract:
            case MutationEffectType.AssignMultiply:
            case MutationEffectType.AssignDivide:

                if (!arg2.IsValid)
                {
                    log.Error($"{wo.Name} ({wo.Guid}).TryMutate({type}) - argument 2 invalid");
                    return(false);
                }
                break;
            }

            return(true);
        }