示例#1
0
        public QuestionBlock(Vector2 position, Contains contains, bool isInvisible)
            : base(position)
        {
            this.isInvisible = isInvisible;
            item = contains;
            blockAnimation = new Animation(Textures.GetTexture(Textures.Texture.coinBlockAnimation), new Rectangle(0, 0 + (16 * World.WorldType), 16, 16), 6, animationSpeed, 0);
            blockAnimation.Play();

            emptyBlock = new Sprite(Textures.GetTexture(Textures.Texture.smbTiles), new Rectangle(34, 85, 16, 16));

            if (item == Contains.Coin)
            {
                coinAnimation = new Animation(Textures.GetTexture(Textures.Texture.coinFromBlockAnimation), new Rectangle(0, 0, 8, 64), 30, coinAnimationSpeed, 0);
                coinAnimationPosition = new Vector2(position.X + 4, position.Y - 48);
                coinAnimation.IsLooping = false;
                coinAnimation.IsPlaying = false;
            }

            bumpAmount = position.Y - bumpAmount;
            originalPosition = position.Y;
        }
示例#2
0
 public void MonoBehaviourSyncList()
 {
     Assert.That(weaverErrors, Contains.Item("potato is a SyncObject and must be inside a NetworkBehaviour.  MonoBehaviourSyncList is not a NetworkBehaviour (at Mirror.SyncListInt MirrorTest.MonoBehaviourSyncList::potato)"));
 }
        public void AllPotions()
        {
            var potions = PotionConstants.GetAllPotions();

            Assert.That(potions, Contains.Item(PotionConstants.Aid));
            Assert.That(potions, Contains.Item(PotionConstants.Barkskin));
            Assert.That(potions, Contains.Item(PotionConstants.BearsEndurance));
            Assert.That(potions, Contains.Item(PotionConstants.BlessWeapon));
            Assert.That(potions, Contains.Item(PotionConstants.Blur));
            Assert.That(potions, Contains.Item(PotionConstants.BullsStrength));
            Assert.That(potions, Contains.Item(PotionConstants.CatsGrace));
            Assert.That(potions, Contains.Item(PotionConstants.CureLightWounds));
            Assert.That(potions, Contains.Item(PotionConstants.CureModerateWounds));
            Assert.That(potions, Contains.Item(PotionConstants.CureSeriousWounds));
            Assert.That(potions, Contains.Item(PotionConstants.Darkness));
            Assert.That(potions, Contains.Item(PotionConstants.Darkvision));
            Assert.That(potions, Contains.Item(PotionConstants.Daylight));
            Assert.That(potions, Contains.Item(PotionConstants.DelayPoison));
            Assert.That(potions, Contains.Item(PotionConstants.Displacement));
            Assert.That(potions, Contains.Item(PotionConstants.EaglesSplendor));
            Assert.That(potions, Contains.Item(PotionConstants.EndureElements));
            Assert.That(potions, Contains.Item(PotionConstants.EnlargePerson));
            Assert.That(potions, Contains.Item(PotionConstants.FlameArrow));
            Assert.That(potions, Contains.Item(PotionConstants.Fly));
            Assert.That(potions, Contains.Item(PotionConstants.FoxsCunning));
            Assert.That(potions, Contains.Item(PotionConstants.GaseousForm));
            Assert.That(potions, Contains.Item(PotionConstants.GoodHope));
            Assert.That(potions, Contains.Item(PotionConstants.Haste));
            Assert.That(potions, Contains.Item(PotionConstants.Heroism));
            Assert.That(potions, Contains.Item(PotionConstants.HideFromAnimals));
            Assert.That(potions, Contains.Item(PotionConstants.HideFromUndead));
            Assert.That(potions, Contains.Item(PotionConstants.Invisibility_Oil));
            Assert.That(potions, Contains.Item(PotionConstants.Invisibility_Potion));
            Assert.That(potions, Contains.Item(PotionConstants.Jump));
            Assert.That(potions, Contains.Item(PotionConstants.KeenEdge));
            Assert.That(potions, Contains.Item(PotionConstants.Levitate_Oil));
            Assert.That(potions, Contains.Item(PotionConstants.Levitate_Potion));
            Assert.That(potions, Contains.Item(PotionConstants.MageArmor));
            Assert.That(potions, Contains.Item(PotionConstants.MagicCircleAgainstChaos));
            Assert.That(potions, Contains.Item(PotionConstants.MagicCircleAgainstLaw));
            Assert.That(potions, Contains.Item(PotionConstants.MagicCircleAgainstGood));
            Assert.That(potions, Contains.Item(PotionConstants.MagicCircleAgainstEvil));
            Assert.That(potions, Contains.Item(PotionConstants.MagicFang));
            Assert.That(potions, Contains.Item(PotionConstants.MagicFang_Greater));
            Assert.That(potions, Contains.Item(PotionConstants.MagicStone));
            Assert.That(potions, Contains.Item(PotionConstants.MagicVestment));
            Assert.That(potions, Contains.Item(PotionConstants.MagicWeapon));
            Assert.That(potions, Contains.Item(PotionConstants.MagicWeapon_Greater));
            Assert.That(potions, Contains.Item(PotionConstants.Misdirection));
            Assert.That(potions, Contains.Item(PotionConstants.NeutralizePoison));
            Assert.That(potions, Contains.Item(PotionConstants.Nondetection));
            Assert.That(potions, Contains.Item(PotionConstants.OwlsWisdom));
            Assert.That(potions, Contains.Item(PotionConstants.PassWithoutTrace));
            Assert.That(potions, Contains.Item(PotionConstants.Poison));
            Assert.That(potions, Contains.Item(PotionConstants.ProtectionFromArrows_10));
            Assert.That(potions, Contains.Item(PotionConstants.ProtectionFromArrows_15));
            Assert.That(potions, Contains.Item(PotionConstants.ProtectionFromFire));
            Assert.That(potions, Contains.Item(PotionConstants.ProtectionFromSonic));
            Assert.That(potions, Contains.Item(PotionConstants.ProtectionFromAcid));
            Assert.That(potions, Contains.Item(PotionConstants.ProtectionFromElectricity));
            Assert.That(potions, Contains.Item(PotionConstants.ProtectionFromCold));
            Assert.That(potions, Contains.Item(PotionConstants.ProtectionFromGood));
            Assert.That(potions, Contains.Item(PotionConstants.ProtectionFromEvil));
            Assert.That(potions, Contains.Item(PotionConstants.ProtectionFromLaw));
            Assert.That(potions, Contains.Item(PotionConstants.ProtectionFromChaos));
            Assert.That(potions, Contains.Item(PotionConstants.Rage));
            Assert.That(potions, Contains.Item(PotionConstants.ReducePerson));
            Assert.That(potions, Contains.Item(PotionConstants.RemoveBlindnessDeafness));
            Assert.That(potions, Contains.Item(PotionConstants.RemoveCurse));
            Assert.That(potions, Contains.Item(PotionConstants.RemoveDisease));
            Assert.That(potions, Contains.Item(PotionConstants.RemoveFear));
            Assert.That(potions, Contains.Item(PotionConstants.RemoveParalysis));
            Assert.That(potions, Contains.Item(PotionConstants.ResistCold_10));
            Assert.That(potions, Contains.Item(PotionConstants.ResistElectricity_10));
            Assert.That(potions, Contains.Item(PotionConstants.ResistFire_10));
            Assert.That(potions, Contains.Item(PotionConstants.ResistSonic_10));
            Assert.That(potions, Contains.Item(PotionConstants.ResistAcid_10));
            Assert.That(potions, Contains.Item(PotionConstants.ResistCold_20));
            Assert.That(potions, Contains.Item(PotionConstants.ResistElectricity_20));
            Assert.That(potions, Contains.Item(PotionConstants.ResistFire_20));
            Assert.That(potions, Contains.Item(PotionConstants.ResistSonic_20));
            Assert.That(potions, Contains.Item(PotionConstants.ResistAcid_20));
            Assert.That(potions, Contains.Item(PotionConstants.ResistCold_30));
            Assert.That(potions, Contains.Item(PotionConstants.ResistElectricity_30));
            Assert.That(potions, Contains.Item(PotionConstants.ResistFire_30));
            Assert.That(potions, Contains.Item(PotionConstants.ResistSonic_30));
            Assert.That(potions, Contains.Item(PotionConstants.ResistAcid_30));
            Assert.That(potions, Contains.Item(PotionConstants.Restoration_Lesser));
            Assert.That(potions, Contains.Item(PotionConstants.Sanctuary));
            Assert.That(potions, Contains.Item(PotionConstants.ShieldOfFaith));
            Assert.That(potions, Contains.Item(PotionConstants.Shillelagh));
            Assert.That(potions, Contains.Item(PotionConstants.SpiderClimb));
            Assert.That(potions, Contains.Item(PotionConstants.Tongues));
            Assert.That(potions, Contains.Item(PotionConstants.UndetectableAlignment));
            Assert.That(potions, Contains.Item(PotionConstants.WaterBreathing));
            Assert.That(potions, Contains.Item(PotionConstants.WaterWalk));
            Assert.That(potions.Count(), Is.EqualTo(92));
        }
示例#4
0
        public void TakesOnlyNameOfFullyQualifiedAssemblyName()
        {
            CsProj project = GetProject("FQAssemblyName");

            Assert.That(project.ReferencedAssemblyNames, Contains.Item("NHibernate"));
        }
示例#5
0
 public void PreferredLocalizations()
 {
     string [] locz = main.PreferredLocalizations;
     Assert.That(locz.Length, Is.GreaterThanOrEqualTo(1), "Length");
     Assert.That(locz, Contains.Item("Base"), "Base");
 }
示例#6
0
 public void MessageMemberInterface()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: Cannot generate writer for interface MirrorTest.SuperCoolInterface. Use a concrete type or provide a custom writer"));
 }
示例#7
0
 public void MessageInvalidDeserializeFieldType()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: System.AccessViolationException is not a supported type"));
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: System.AccessViolationException MirrorTest.PrefabClone::invalidField has unsupported type"));
 }
示例#8
0
 public void MonoBehaviourClientCallback()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: [ClientCallback] System.Void MirrorTest.MirrorTestPlayer::ThisCantBeOutsideNetworkBehaviour() must be declared inside a NetworkBehaviour"));
 }
示例#9
0
 public void NetworkBehaviourCmdDuplicateName()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: Duplicate Command name [MirrorTest.MirrorTestPlayer:CmdCantHaveSameName]"));
 }
示例#10
0
 public void NetworkBehaviourCmdParamNetworkConnection()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: System.Void MirrorTest.MirrorTestPlayer::CmdCantHaveParamOptional(Mirror.NetworkConnection) has invalid parameer monkeyCon. Cannot pass NeworkConnections"));
 }
示例#11
0
 public void NetworkBehaviourCmdParamComponent()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: Cannot generate writer for component type MirrorTest.MirrorTestPlayer/ComponentClass. Use a supported type or provide a custom writer"));
 }
示例#12
0
 public void NetworkBehaviourCmdParamAbstract()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: MirrorTest.MirrorTestPlayer/AbstractClass can't be deserialized because i has no default constructor"));
 }
示例#13
0
 public void NetworkBehaviourCmdParamRef()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: Cannot pass System.Int32& by reference"));
 }
示例#14
0
 public void MonoBehaviourClientRpc()
 {
     Assert.That(weaverErrors, Contains.Item("ClientRpc RpcThisCantBeOutsideNetworkBehaviour must be declared inside a NetworkBehaviour (at System.Void MirrorTest.MonoBehaviourClientRpc::RpcThisCantBeOutsideNetworkBehaviour())"));
 }
示例#15
0
 public void CommandCantBeStatic()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: System.Void MirrorTest.MirrorTestPlayer::CmdCantBeStatic() cannot be static"));
 }
示例#16
0
 public override string visit(Contains contains)
 {
     string sToSplit = base.visit(contains);
     this.addtodic(sToSplit);
     return sToSplit;
 }
示例#17
0
 public void ClientRpcStartsWithRpc()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: System.Void MirrorTest.MirrorTestPlayer::DoesntStartWithRpc() must start with Rpc.  Consider renaming it to RpcDoesntStartWithRpc"));
 }
示例#18
0
 public void MessageSelfReferencing()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: MirrorTest.PrefabClone has field $MirrorTest.PrefabClone MirrorTest.PrefabClone::selfReference that references itself"));
 }
示例#19
0
 public void TargetRpcStartsWithTarget()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: System.Void MirrorTest.MirrorTestPlayer::DoesntStartWithTarget(Mirror.NetworkConnection) must start with Target.  Consider renaming it to TargetDoesntStartWithTarget"));
 }
示例#20
0
 public void MessageMemberGeneric()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: Cannot generate writer for generic type MirrorTest.HasGeneric`1<System.Int32>. Use a concrete type or provide a custom writer"));
 }
示例#21
0
 public void TargetRpcCantBeStatic()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: System.Void MirrorTest.MirrorTestPlayer::TargetCantBeStatic(Mirror.NetworkConnection) must not be static"));
 }
示例#22
0
 public void RecursionCount()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: MirrorTest.MirrorTestPlayer/Potato1 can't be serialized because it references itself"));
 }
示例#23
0
 public void SyncEventStartsWithEvent()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: MirrorTest.MirrorTestPlayer/MySyncEventDelegate MirrorTest.MirrorTestPlayer::DoCoolThingsWithExcitingPeople must start with Event.  Consider renaming it to EventDoCoolThingsWithExcitingPeople"));
 }
示例#24
0
    public void Editor_CanConvertInputActionsToSteamIGAFormat()
    {
        var asset      = ScriptableObject.CreateInstance <InputActionAsset>();
        var actionMap1 = new InputActionMap("map1");
        var actionMap2 = new InputActionMap("map2");

        actionMap1.AddAction("buttonAction", expectedControlLayout: "Button");
        actionMap1.AddAction("axisAction", expectedControlLayout: "Axis");
        actionMap1.AddAction("stickAction", expectedControlLayout: "Stick");
        actionMap2.AddAction("vector2Action", expectedControlLayout: "Vector2");

        asset.AddActionMap(actionMap1);
        asset.AddActionMap(actionMap2);

        var vdf        = SteamIGAConverter.ConvertInputActionsToSteamIGA(asset);
        var dictionary = SteamIGAConverter.ParseVDF(vdf);

        // Top-level key "In Game Actions".
        Assert.That(dictionary.Count, Is.EqualTo(1));
        Assert.That(dictionary, Contains.Key("In Game Actions").With.TypeOf <Dictionary <string, object> >());

        // "actions" and "localization" inside "In Game Actions".
        var inGameActions = (Dictionary <string, object>)dictionary["In Game Actions"];

        Assert.That(inGameActions, Contains.Key("actions"));
        Assert.That(inGameActions["actions"], Is.TypeOf <Dictionary <string, object> >());
        Assert.That(inGameActions, Contains.Key("localization"));
        Assert.That(inGameActions["localization"], Is.TypeOf <Dictionary <string, object> >());
        Assert.That(inGameActions.Count, Is.EqualTo(2));

        // Two action maps inside "actions".
        var actions = (Dictionary <string, object>)inGameActions["actions"];

        Assert.That(actions, Contains.Key("map1"));
        Assert.That(actions["map1"], Is.TypeOf <Dictionary <string, object> >());
        Assert.That(actions, Contains.Key("map2"));
        Assert.That(actions["map2"], Is.TypeOf <Dictionary <string, object> >());
        Assert.That(actions.Count, Is.EqualTo(2));

        // Three actions inside "map1".
        var map1 = (Dictionary <string, object>)actions["map1"];

        Assert.That(map1, Contains.Key("title"));
        Assert.That(map1, Contains.Key("StickPadGyro"));
        Assert.That(map1, Contains.Key("AnalogTrigger"));
        Assert.That(map1, Contains.Key("Button"));
        Assert.That(map1.Count, Is.EqualTo(4));
        Assert.That(map1["title"], Is.EqualTo("#Set_map1"));
        Assert.That(map1["StickPadGyro"], Is.TypeOf <Dictionary <string, object> >());
        Assert.That(map1["AnalogTrigger"], Is.TypeOf <Dictionary <string, object> >());
        Assert.That(map1["Button"], Is.TypeOf <Dictionary <string, object> >());
        var stickPadGyro1 = (Dictionary <string, object>)map1["StickPadGyro"];

        Assert.That(stickPadGyro1, Has.Count.EqualTo(1));
        Assert.That(stickPadGyro1, Contains.Key("stickAction"));
        Assert.That(stickPadGyro1["stickAction"], Is.TypeOf <Dictionary <string, object> >());
        var stickAction = (Dictionary <string, object>)stickPadGyro1["stickAction"];

        Assert.That(stickAction, Contains.Key("title"));
        Assert.That(stickAction, Contains.Key("input_mode"));
        Assert.That(stickAction.Count, Is.EqualTo(2));
        Assert.That(stickAction["title"], Is.EqualTo("#Action_map1_stickAction"));
        Assert.That(stickAction["input_mode"], Is.EqualTo("joystick_move"));

        // One action inside "map2".
        var map2 = (Dictionary <string, object>)actions["map2"];

        Assert.That(map2, Contains.Key("title"));
        Assert.That(map2["title"], Is.EqualTo("#Set_map2"));

        // Localization strings.
        var localization = (Dictionary <string, object>)inGameActions["localization"];

        Assert.That(localization.Count, Is.EqualTo(1));
        Assert.That(localization, Contains.Key("english"));
        Assert.That(localization["english"], Is.TypeOf <Dictionary <string, object> >());
        var english = (Dictionary <string, object>)localization["english"];

        Assert.That(english, Contains.Key("Set_map1"));
        Assert.That(english, Contains.Key("Set_map2"));
        Assert.That(english, Contains.Key("Action_map1_buttonAction"));
        Assert.That(english, Contains.Key("Action_map1_axisAction"));
        Assert.That(english, Contains.Key("Action_map1_stickAction"));
        Assert.That(english, Contains.Key("Action_map2_vector2Action"));
        Assert.That(english["Set_map1"], Is.EqualTo("map1"));
        Assert.That(english["Set_map2"], Is.EqualTo("map2"));
        Assert.That(english["Action_map1_buttonAction"], Is.EqualTo("buttonAction"));
        Assert.That(english["Action_map1_axisAction"], Is.EqualTo("axisAction"));
        Assert.That(english["Action_map1_stickAction"], Is.EqualTo("stickAction"));
        Assert.That(english["Action_map2_vector2Action"], Is.EqualTo("vector2Action"));
        Assert.That(english.Count, Is.EqualTo(6));
    }
示例#25
0
 public void SyncEventParamGeneric()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: MirrorTest.MirrorTestPlayer/MySyncEventDelegate`1<System.Int32> MirrorTest.MirrorTestPlayer::EventDoCoolThingsWithExcitingPeople must not have generic parameters.  Consider creating a new class that inherits from MirrorTest.MirrorTestPlayer/MySyncEventDelegate`1<System.Int32> instead"));
 }
示例#26
0
        public Expression Process(ParameterExpression ctxExpression, Type parameterType)
        {
            var leftExpression = ctxExpression.EvaluateExpression(Left, false);

            leftExpression = leftExpression.AddToStringWithEnumType();
            if (Operator != Operator.IsNull && Operator != Operator.NotIsNull)
            {
                leftExpression = leftExpression.AddValueWithNullableNumberType();
            }
            var        leftSideType = leftExpression.Type;
            Expression rightExpression;

            if (RightSideIsExpression)
            {
                rightExpression = ctxExpression.EvaluateExpression(Right);
                rightExpression = rightExpression.AddToStringWithEnumType().AddValueWithNullableNumberType();
            }
            else
            {
                rightExpression = GetRightConstantExpression(leftSideType);
            }

            Expression generatedExpression;

            switch (Operator)
            {
            case Operator.Equals:
                generatedExpression = Expression.Equal(leftExpression, rightExpression);
                break;

            case Operator.NotEquals:
                generatedExpression = Expression.Not(Expression.Equal(leftExpression, rightExpression));
                break;

            case Operator.GreaterThan:
                generatedExpression = leftExpression.Type == typeof(DateTime)
                        ? Expression.MakeBinary(ExpressionType.GreaterThan, leftExpression, rightExpression)
                        : Expression.GreaterThan(leftExpression, rightExpression);
                break;

            case Operator.GreaterOrEqual:
                generatedExpression = leftExpression.Type == typeof(DateTime)
                        ? Expression.MakeBinary(ExpressionType.GreaterThanOrEqual, leftExpression, rightExpression)
                        : Expression.GreaterThanOrEqual(leftExpression, rightExpression);
                break;

            case Operator.LessThan:
                generatedExpression = leftExpression.Type == typeof(DateTime)
                        ? Expression.MakeBinary(ExpressionType.LessThan, leftExpression, rightExpression)
                        : Expression.LessThan(leftExpression, rightExpression);
                break;

            case Operator.LessOrEqual:
                generatedExpression = leftExpression.Type == typeof(DateTime)
                        ? Expression.MakeBinary(ExpressionType.LessThanOrEqual, leftExpression, rightExpression)
                        : Expression.LessThanOrEqual(leftExpression, rightExpression);
                break;

            case Operator.Contains:
                generatedExpression = new Contains(leftExpression, rightExpression).Create();
                break;

            case Operator.NotContains:
                generatedExpression = Expression.Not(new Contains(leftExpression, rightExpression).Create());
                break;

            case Operator.ContainsAll:
                generatedExpression = new ContainsAll(leftExpression, rightExpression).Create();
                break;

            case Operator.NotContainsAll:
                generatedExpression = Expression.Not(new ContainsAll(leftExpression, rightExpression).Create());
                break;

            case Operator.StartsWith:
                generatedExpression = new StartsWith(leftExpression, rightExpression).Create();
                break;

            case Operator.NotStartsWith:
                generatedExpression = Expression.Not(new StartsWith(leftExpression, rightExpression).Create());
                break;

            case Operator.In:
                generatedExpression = new In(leftExpression, rightExpression).Create();
                break;

            case Operator.NotIn:
                generatedExpression = Expression.Not(new In(leftExpression, rightExpression).Create());
                break;

            case Operator.AllIn:
                generatedExpression = new AllIn(leftExpression, rightExpression).Create();
                break;

            case Operator.NotAllIn:
                generatedExpression = Expression.Not(new AllIn(leftExpression, rightExpression).Create());
                break;

            case Operator.AnyIn:
                generatedExpression = new AnyIn(leftExpression, rightExpression).Create();
                break;

            case Operator.NotAnyIn:
                generatedExpression = Expression.Not(new AnyIn(leftExpression, rightExpression).Create());
                break;

            case Operator.IsNull:
                if (leftSideType.IsPrimitiveType() && Nullable.GetUnderlyingType(leftSideType) != null)
                {
                    rightExpression = Expression.Constant(null, leftSideType);
                }
                generatedExpression = Expression.Equal(leftExpression, rightExpression);
                break;

            case Operator.NotIsNull:
                if (leftSideType.IsPrimitiveType() && Nullable.GetUnderlyingType(leftSideType) != null)
                {
                    rightExpression = Expression.Constant(null, leftSideType);
                }
                generatedExpression = Expression.Not(Expression.Equal(leftExpression, rightExpression));
                break;

            case Operator.IsEmpty:
                generatedExpression = new IsEmpty(leftExpression, rightExpression).Create();
                break;

            case Operator.NotIsEmpty:
                generatedExpression = Expression.Not(new IsEmpty(leftExpression, rightExpression).Create());
                break;

            case Operator.DiffWithinPct:
                generatedExpression = new DiffWithinPct(leftExpression, rightExpression, OperatorArgs).Create();
                break;

            case Operator.AllInRangePct:
                generatedExpression = new AllInRange(leftExpression, rightExpression, OperatorArgs).Create();
                break;

            default:
                throw new NotSupportedException($"operation {Operator} is not supported");
            }

            if (Operator == Operator.IsNull || Operator == Operator.NotIsNull)
            {
                return(generatedExpression);
            }

            return(leftExpression.AddNotNullCheck(out var nullCheckExpression)
                ? Expression.AndAlso(nullCheckExpression, generatedExpression)
                : generatedExpression);
        }
示例#27
0
 public void MonoBehaviourSyncVar()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: [SyncVar] System.Int32 MirrorTest.MirrorTestPlayer::potato must be inside a NetworkBehaviour.  MirrorTest.MirrorTestPlayer is not a NetworkBehaviour"));
 }
示例#28
0
 public void MonoBehaviourSyncVar()
 {
     Assert.That(weaverErrors, Contains.Item("SyncVar potato must be inside a NetworkBehaviour.  MonoBehaviourSyncVar is not a NetworkBehaviour (at System.Int32 MirrorTest.MonoBehaviourSyncVar::potato)"));
 }
示例#29
0
 public void MonoBehaviourSyncList()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: Mirror.SyncListInt MirrorTest.MirrorTestPlayer::potato is a SyncObject and must be inside a NetworkBehaviour.  MirrorTest.MirrorTestPlayer is not a NetworkBehaviour"));
 }
示例#30
0
 public void MonoBehaviourCommand()
 {
     Assert.That(weaverErrors, Contains.Item("Command CmdThisCantBeOutsideNetworkBehaviour must be declared inside a NetworkBehaviour (at System.Void MirrorTest.MonoBehaviourCommand::CmdThisCantBeOutsideNetworkBehaviour())"));
 }
示例#31
0
 public void MonoBehaviourTargetRpc()
 {
     Assert.That(CompilationFinishedHook.WeaveFailed, Is.True);
     Assert.That(weaverErrors, Contains.Item("Mirror.Weaver error: [TargetRpc] System.Void MirrorTest.MirrorTestPlayer::TargetThisCantBeOutsideNetworkBehaviour(Mirror.NetworkConnection) must be declared inside a NetworkBehaviour"));
 }
示例#32
0
 public void MonoBehaviourTargetRpc()
 {
     Assert.That(weaverErrors, Contains.Item("TargetRpc TargetThisCantBeOutsideNetworkBehaviour must be declared inside a NetworkBehaviour (at System.Void MirrorTest.MonoBehaviourTargetRpc::TargetThisCantBeOutsideNetworkBehaviour(Mirror.NetworkConnection))"));
 }
示例#33
0
        public static void ToSql(Contains expression, StringBuilder builder)
        {
            if (null == expression) throw new ArgumentNullException("expression");
            if (null == builder) throw new ArgumentNullException("builder");

            if (expression.Operands.Count > 0)
            {
                IToken operand1 = expression.Operands
                                            .First();
                IToken operand2 = expression.Operands
                                            .ElementAtOrDefault(1);
                if (null != operand1 && null != operand2)
                {
                    builder.Append("(");
                    operand2.ToSql(builder);
                    builder.Append(" is not null and ");
                    operand2.ToSql(builder);
                    builder.Append(" <> '''' and ");
                    operand1.ToSql(builder);
                    builder.Append(" LIKE ''%'' +");
                    operand2.ToSql(builder);
                    builder.Append("+ ''%''");
                    builder.Append(")");
                }
            }
        }