public static bool Set(object o, TValue key, ref TValue value)
    {
        Reimu character = (Reimu)o;

        if (key.TtIsString())
        {
            switch (key.SValue())
            {
            case "x":
            {
                Vector2 pos = character.GetPosition();
                pos.x = (float)value.NValue;
                character.SetPosition(pos);
                return(true);
            }

            case "y":
            {
                Vector2 pos = character.GetPosition();
                pos.y = (float)value.NValue;
                character.SetPosition(pos);
                return(true);
            }
            }
        }
        value.SetSValue(string.Format("SetField of userData fail!Invalid key {0} for type {1}", key, typeof(Reimu).Name));
        return(false);
    }
    public static bool Set(object o, TValue key, ref TValue value)
    {
        ExtraTaskManager mgr = (ExtraTaskManager)o;

        value.SetSValue(string.Format("SetField of userData fail!Invalid key {0} for type {1}", key, typeof(ExtraTaskManager).Name));
        return(false);
    }
Пример #3
0
    public static bool GetLightUserDataField(object userData, TValue key, out TValue res)
    {
        switch (userData.GetType().Name)
        {
        //Stage
        case "ExtraTaskManager":
            return(StageTaskLuaInterface.Get(userData, key, out res));

        // Character
        case "Reimu":
            return(ReimuALuaInterface.Get(userData, key, out res));

        case "MarisaA":
            return(MarisaALuaInterface.Get(userData, key, out res));

        // EnemyBullet
        case "EnemySimpleBullet":
            return(EnemySimpleBulletLuaInterface.Get(userData, key, out res));

        case "EnemyLaser":
            return(EnemyLaserLuaInterface.Get(userData, key, out res));

        case "EnemyLinearLaser":
            return(LinearLaserLuaInterface.Get(userData, key, out res));

        case "EnemyCurveLaser":
            return(CurveLaserLuaInterface.Get(userData, key, out res));

        case "NormalEnemy":
            return(NormalEnemyLuaInterface.Get(userData, key, out res));

        case "Boss":
            return(BossLuaInterface.Get(userData, key, out res));

        case "STGSpriteEffect":
            return(STGObjectLuaInterface.Get(userData, key, out res));

        // Collider
        case "ColliderCircle":
            return(ColliderCircleLuaInterface.Get(userData, key, out res));

        case "ColliderRect":
            return(ColliderRectLuaInterface.Get(userData, key, out res));

        case "ColliderItalicRect":
            return(ColliderItalicRectLuaInterface.Get(userData, key, out res));
        }
        res = new TValue();
        res.SetSValue(string.Format("GetField from userData fail!Invalid userData of type {0}", userData.GetType().Name));
        return(false);
    }
    public static bool Get(object o, TValue key, out TValue res)
    {
        Reimu character = (Reimu)o;

        res = new TValue();
        if (key.TtIsString())
        {
            switch (key.SValue())
            {
            case "x":
            {
                res.SetNValue(character.GetPosition().x);
                return(true);
            }

            case "y":
            {
                res.SetNValue(character.GetPosition().y);
                return(true);
            }

            case "SetPos":
            {
                res.SetClCsValue(_funcSetPos);
                return(true);
            }

            case "GetPos":
            {
                res.SetClCsValue(_funcGetPos);
                return(true);
            }

            case "characterIndex":
            {
                res.SetNValue(character.CharacterIndex);
                return(true);
            }
            }
        }
        res.SetSValue(string.Format("GetField from userData fail!Invalid key {0} for type {1}", key, typeof(Reimu).Name));
        return(false);
    }
    public static bool Get(object o, TValue key, out TValue res)
    {
        ExtraTaskManager mgr = (ExtraTaskManager)o;

        res = new TValue();
        if (key.TtIsString())
        {
            switch (key.SValue())
            {
                #region ITaskExecuter
            case "AddTask":
            {
                res.SetClCsValue(_funcAddTask);
                return(true);
            }
                #endregion
            }
        }
        res.SetSValue(string.Format("GetField from userData fail!Invalid key {0} for type {1}", key, typeof(ExtraTaskManager).Name));
        return(false);
    }
Пример #6
0
    public static bool Get(object o, TValue key, out TValue res)
    {
        EnemyCurveLaser bullet = (EnemyCurveLaser)o;

        res = new TValue();
        if (key.TtIsString())
        {
            switch (key.SValue())
            {
                #region 基础变量
            case "x":
            {
                res.SetNValue(bullet.GetPosition().x);
                return(true);
            }

            case "y":
            {
                res.SetNValue(bullet.GetPosition().y);
                return(true);
            }

            case "rot":
            {
                res.SetNValue(bullet.GetRotation());
                return(true);
            }

            case "dx":
            {
                res.SetNValue(bullet.dx);
                return(true);
            }

            case "dy":
            {
                res.SetNValue(bullet.dy);
                return(true);
            }

                #endregion
                #region 运动相关变量
            case "v":
            {
                res.SetNValue(bullet.velocity);
                return(true);
            }

            case "vx":
            {
                res.SetNValue(bullet.vx);
                return(true);
            }

            case "vy":
            {
                res.SetNValue(bullet.vy);
                return(true);
            }

            case "vAngle":
            {
                res.SetNValue(bullet.vAngle);
                return(true);
            }

            case "maxV":
            {
                res.SetNValue(bullet.maxVelocity);
                return(true);
            }

            case "acce":
            {
                res.SetNValue(bullet.acce);
                return(true);
            }

            case "accAngle":
            {
                res.SetNValue(bullet.accAngle);
                return(true);
            }

                #endregion
                #region 子弹类专属变量
            case "timer":
            {
                res.SetNValue(bullet.timeSinceCreated);
                return(true);
            }

            case "SetSelfRotation":
            {
                res.SetClCsValue(_funcSetSelfRotaion);
                return(true);
            }

            case "SetStyleById":
            {
                res.SetClCsValue(_funcSetStyleById);
                return(true);
            }

                #endregion
                #region 运动类专属方法 ISTGMovable
            case "SetV":
            {
                res.SetClCsValue(_funcSetV);
                return(true);
            }

            case "SetAcce":
            {
                res.SetClCsValue(_funcSetAcce);
                return(true);
            }

            case "SetStraightParas":
            {
                res.SetClCsValue(_funcSetStraightParas);
                return(true);
            }

            case "SetPolarParas":
            {
                res.SetClCsValue(_funcSetPolarParas);
                return(true);
            }

            case "MoveTo":
            {
                res.SetClCsValue(_funcMoveTo);
                return(true);
            }

            case "MoveTowards":
            {
                res.SetClCsValue(_funcMoveTowards);
                return(true);
            }

            case "SetPos":
            {
                res.SetClCsValue(_funcSetPos);
                return(true);
            }

            case "GetPos":
            {
                res.SetClCsValue(_funcGetPos);
                return(true);
            }

                #endregion
                #region IAttachable
            case "AttachTo":
            {
                res.SetClCsValue(_funcAttachTo);
                return(true);
            }

            case "SetRelativePos":
            {
                res.SetClCsValue(_funcSetRelativePos);
                return(true);
            }

                #endregion
                #region Component
            case "AddTask":
            {
                res.SetClCsValue(_funcAddTask);
                return(true);
            }

            case "ChangeProperty":
            {
                res.SetClCsValue(_funcChangeProperty);
                return(true);
            }

                #endregion
                #region 激光相关
            case "SetWidth":
            {
                res.SetClCsValue(_funcSetWidth);
                return(true);
            }

            case "SetLength":
            {
                res.SetClCsValue(_funcSetLength);
                return(true);
            }
                #endregion
            }
        }
        res.SetSValue(string.Format("GetField from userData fail!Invalid key {0} for type {1}", key, typeof(EnemyCurveLaser).Name));
        return(false);
    }
Пример #7
0
    public static bool Set(object o, TValue key, ref TValue value)
    {
        EnemyCurveLaser bullet = (EnemyCurveLaser)o;

        if (key.TtIsString())
        {
            switch (key.SValue())
            {
                #region 基础变量
            case "x":
            {
                Vector2 pos = bullet.GetPosition();
                pos.x = (float)value.NValue;
                bullet.SetPosition(pos);
                return(true);
            }

            case "y":
            {
                Vector2 pos = bullet.GetPosition();
                pos.y = (float)value.NValue;
                bullet.SetPosition(pos);
                return(true);
            }

            case "rot":
            {
                bullet.SetRotation((float)value.NValue);
                return(true);
            }

                #endregion
                #region 运动相关变量
            case "v":
            {
                bullet.velocity = (float)value.NValue;
                return(true);
            }

            case "vx":
            {
                bullet.vx = (float)value.NValue;
                return(true);
            }

            case "vy":
            {
                bullet.vy = (float)value.NValue;
                return(true);
            }

            case "vAngle":
            {
                bullet.vAngle = (float)value.NValue;
                return(true);
            }

            case "maxV":
            {
                bullet.maxVelocity = (float)value.NValue;
                return(true);
            }

            case "acce":
            {
                bullet.acce = (float)value.NValue;
                return(true);
            }

            case "accAngle":
            {
                bullet.accAngle = (float)value.NValue;
                return(true);
            }

                #endregion
                #region 子弹类专属变量
            case "orderInLayer":
            {
                bullet.SetOrderInLayer((int)value.NValue);
                return(true);
            }

            case "checkCollision":
            {
                bullet.SetDetectCollision(value.BValue());
                return(true);
            }

            case "checkBorder":
            {
                bullet.SetCheckOutOfBorder(value.BValue());
                return(true);
            }
                #endregion
            }
        }
        value.SetSValue(string.Format("SetField of userData fail!Invalid key {0} for type {1}", key, typeof(EnemyCurveLaser).Name));
        return(false);
    }
    public static bool Get(object o, TValue key, out TValue res)
    {
        Boss enemy = (Boss)o;

        res = new TValue();
        if (key.TtIsString())
        {
            switch (key.SValue())
            {
                #region 基础变量
            case "x":
            {
                res.SetNValue(enemy.GetPosition().x);
                return(true);
            }

            case "y":
            {
                res.SetNValue(enemy.GetPosition().y);
                return(true);
            }

            case "rot":
            {
                res.SetNValue(enemy.GetRotation());
                return(true);
            }

            case "dx":
            {
                res.SetNValue(enemy.dx);
                return(true);
            }

            case "dy":
            {
                res.SetNValue(enemy.dy);
                return(true);
            }

            case "SetPos":
            {
                res.SetClCsValue(_funcSetPos);
                return(true);
            }

            case "GetPos":
            {
                res.SetClCsValue(_funcGetPos);
                return(true);
            }

                #endregion
                #region 运动相关变量
            case "v":
            {
                res.SetNValue(enemy.velocity);
                return(true);
            }

            case "vx":
            {
                res.SetNValue(enemy.vx);
                return(true);
            }

            case "vy":
            {
                res.SetNValue(enemy.vy);
                return(true);
            }

            case "vAngle":
            {
                res.SetNValue(enemy.vAngle);
                return(true);
            }

            case "maxV":
            {
                res.SetNValue(enemy.maxVelocity);
                return(true);
            }

            case "acce":
            {
                res.SetNValue(enemy.acce);
                return(true);
            }

            case "accAngle":
            {
                res.SetNValue(enemy.accAngle);
                return(true);
            }

                #endregion
                #region 运动类专属方法 ISTGMovable
            case "SetV":
            {
                res.SetClCsValue(_funcSetV);
                return(true);
            }

            case "SetAcce":
            {
                res.SetClCsValue(_funcSetAcce);
                return(true);
            }

            case "SetPolarParas":
            {
                res.SetClCsValue(_funcSetPolarParas);
                return(true);
            }

            case "MoveTo":
            {
                res.SetClCsValue(_funcMoveTo);
                return(true);
            }

            case "MoveTowards":
            {
                res.SetClCsValue(_funcMoveTowards);
                return(true);
            }

                #endregion
                #region IAttachable
            case "AttachTo":
            {
                res.SetClCsValue(_funcAttachTo);
                return(true);
            }

            case "SetRelativePos":
            {
                res.SetClCsValue(_funcSetRelativePos);
                return(true);
            }

                #endregion
                #region ITaskExecuter
            case "AddTask":
            {
                res.SetClCsValue(_funcAddTask);
                return(true);
            }

                #endregion
                #region 敌机专属变量
            case "SetMaxHp":
                res.SetClCsValue(_funcSetMaxHp);
                return(true);

            case "SetCollisionSize":
                res.SetClCsValue(_funcSetCollisionSize);
                return(true);

            case "SetAni":
                res.SetClCsValue(_funcSetAni);
                return(true);

            case "SetWanderRange":
                res.SetClCsValue(_funcSetWanderRange);
                return(true);

            case "SetWanderAmplitude":
                res.SetClCsValue(_funcSetWanderAmplitude);
                return(true);

            case "SetWanderMode":
                res.SetClCsValue(_funcSetWanderMode);
                return(true);

            case "Wander":
                res.SetClCsValue(_funcWander);
                return(true);

            case "SetInteractive":
                res.SetClCsValue(_funcSetInteractive);
                return(true);

            case "PlayAni":
                res.SetClCsValue(_funcPlayAni);
                return(true);

                #endregion
                #region Boss专属变量
            case "SetInvincible":
                res.SetClCsValue(_funcSetInvincible);
                return(true);

            case "ShowBloodBar":
                res.SetClCsValue(_funcShowBloodBar);
                return(true);

            case "SetPhaseData":
                res.SetClCsValue(_funcSetPhaseData);
                return(true);

            case "ShowPosHint":
                res.SetClCsValue(_funcShowPosHint);
                return(true);

            case "ShowAura":
                res.SetClCsValue(_funcShowAura);
                return(true);

            case "ShowSpellCardHpAura":
                res.SetClCsValue(_funcShowSCHpAura);
                return(true);

                #endregion
            }
        }
        res.SetSValue(string.Format("GetField from userData fail!Invalid key {0} for type {1}", key, typeof(Boss).Name));
        return(false);
    }
    public static bool Set(object o, TValue key, ref TValue value)
    {
        Boss enemy = (Boss)o;

        if (key.TtIsString())
        {
            switch (key.SValue())
            {
                #region 基础变量
            case "x":
            {
                Vector2 pos = enemy.GetPosition();
                pos.x = (float)value.NValue;
                enemy.SetPosition(pos);
                return(true);
            }

            case "y":
            {
                Vector2 pos = enemy.GetPosition();
                pos.y = (float)value.NValue;
                enemy.SetPosition(pos);
                return(true);
            }

            case "rot":
            {
                enemy.SetRotation((float)value.NValue);
                return(true);
            }

                #endregion
                #region 运动相关变量
            case "v":
            {
                enemy.velocity = (float)value.NValue;
                return(true);
            }

            case "vx":
            {
                enemy.vx = (float)value.NValue;
                return(true);
            }

            case "vy":
            {
                enemy.vy = (float)value.NValue;
                return(true);
            }

            case "vAngle":
            {
                enemy.vAngle = (float)value.NValue;
                return(true);
            }

            case "maxV":
            {
                enemy.maxVelocity = (float)value.NValue;
                return(true);
            }

            case "acce":
            {
                enemy.acce = (float)value.NValue;
                return(true);
            }

            case "accAngle":
            {
                enemy.accAngle = (float)value.NValue;
                return(true);
            }
                #endregion
            }
        }
        value.SetSValue(string.Format("SetField of userData fail!Invalid key {0} for type {1}", key, typeof(Boss).Name));
        return(false);
    }
Пример #10
0
    public static bool Get(object o, TValue key, out TValue res)
    {
        ColliderItalicRect collider = (ColliderItalicRect)o;

        res = new TValue();
        if (key.TtIsString())
        {
            switch (key.SValue())
            {
                #region 基础变量
            case "x":
            {
                res.SetNValue(collider.GetPosition().x);
                return(true);
            }

            case "y":
            {
                res.SetNValue(collider.GetPosition().y);
                return(true);
            }

            case "rot":
            {
                res.SetNValue(collider.GetRotation());
                return(true);
            }

            case "dx":
            {
                res.SetNValue(collider.dx);
                return(true);
            }

            case "dy":
            {
                res.SetNValue(collider.dy);
                return(true);
            }

            case "SetPos":
            {
                res.SetClCsValue(_funcSetPos);
                return(true);
            }

            case "GetPos":
            {
                res.SetClCsValue(_funcGetPos);
                return(true);
            }

                #endregion
                #region 运动相关变量
            case "v":
            {
                res.SetNValue(collider.velocity);
                return(true);
            }

            case "vx":
            {
                res.SetNValue(collider.vx);
                return(true);
            }

            case "vy":
            {
                res.SetNValue(collider.vy);
                return(true);
            }

            case "vAngle":
            {
                res.SetNValue(collider.vAngle);
                return(true);
            }

            case "maxV":
            {
                res.SetNValue(collider.maxVelocity);
                return(true);
            }

            case "acce":
            {
                res.SetNValue(collider.acce);
                return(true);
            }

            case "accAngle":
            {
                res.SetNValue(collider.accAngle);
                return(true);
            }

                #endregion
                #region Collider类专属变量
            case "SetCollisionGroup":
            {
                res.SetClCsValue(_funcSetCollisionGroup);
                return(true);
            }

            case "SetSize":
            {
                res.SetClCsValue(_funcSetSize);
                return(true);
            }

            case "SetExistDuration":
            {
                res.SetClCsValue(_funcSetExistDuration);
                return(true);
            }

                #endregion
                #region 运动类专属方法 ISTGMovable
            case "SetV":
            {
                res.SetClCsValue(_funcSetV);
                return(true);
            }

            case "SetAcce":
            {
                res.SetClCsValue(_funcSetAcce);
                return(true);
            }

            case "SetStraightParas":
            {
                res.SetClCsValue(_funcSetStraightParas);
                return(true);
            }

            case "SetPolarParas":
            {
                res.SetClCsValue(_funcSetPolarParas);
                return(true);
            }

            case "MoveTo":
            {
                res.SetClCsValue(_funcMoveTo);
                return(true);
            }

            case "MoveTowards":
            {
                res.SetClCsValue(_funcMoveTowards);
                return(true);
            }

                #endregion
                #region IAttachable
            case "AttachTo":
            {
                res.SetClCsValue(_funcAttachTo);
                return(true);
            }

            case "SetRelativePos":
            {
                res.SetClCsValue(_funcSetRelativePos);
                return(true);
            }

                #endregion
                #region ITaskExecuter
            case "AddTask":
            {
                res.SetClCsValue(_funcAddTask);
                return(true);
            }
                #endregion
            }
        }
        res.SetSValue(string.Format("GetField from userData fail!Invalid key {0} for type {1}", key, typeof(ColliderItalicRect).Name));
        return(false);
    }
Пример #11
0
    public static bool Get(object o, TValue key, out TValue res)
    {
        STGSpriteEffect sprite = (STGSpriteEffect)o;

        res = new TValue();
        if (key.TtIsString())
        {
            switch (key.SValue())
            {
                #region 基础变量
            case "x":
            {
                res.SetNValue(sprite.GetPosition().x);
                return(true);
            }

            case "y":
            {
                res.SetNValue(sprite.GetPosition().y);
                return(true);
            }

            case "rot":
            {
                res.SetNValue(sprite.GetRotation());
                return(true);
            }

            case "dx":
            {
                res.SetNValue(sprite.dx);
                return(true);
            }

            case "dy":
            {
                res.SetNValue(sprite.dy);
                return(true);
            }

            case "SetPos":
            {
                res.SetClCsValue(_funcSetPos);
                return(true);
            }

            case "GetPos":
            {
                res.SetClCsValue(_funcGetPos);
                return(true);
            }

                #endregion
                #region 运动相关变量
            case "v":
            {
                res.SetNValue(sprite.velocity);
                return(true);
            }

            case "vx":
            {
                res.SetNValue(sprite.vx);
                return(true);
            }

            case "vy":
            {
                res.SetNValue(sprite.vy);
                return(true);
            }

            case "vAngle":
            {
                res.SetNValue(sprite.vAngle);
                return(true);
            }

            case "maxV":
            {
                res.SetNValue(sprite.maxVelocity);
                return(true);
            }

            case "acce":
            {
                res.SetNValue(sprite.acce);
                return(true);
            }

            case "accAngle":
            {
                res.SetNValue(sprite.accAngle);
                return(true);
            }

                #endregion
                #region STGObject类专属变量
            case "SetSprite":
            {
                res.SetClCsValue(_funcSetSprite);
                return(true);
            }

            case "SetColor":
            {
                res.SetClCsValue(_funcSetColor);
                return(true);
            }

            case "SetSize":
            {
                res.SetClCsValue(_funcSetSize);
                return(true);
            }

            case "ChangeAlphaTo":
            {
                res.SetClCsValue(_funcChangeAlphaTo);
                return(true);
            }

            case "SetBlendMode":
            {
                res.SetClCsValue(_funcSetBlendMode);
                return(true);
            }

            case "alpha":
            {
                res.SetNValue(sprite.alpha);
                return(true);
            }

            case "SetPrefab":
            {
                res.SetClCsValue(_funcSetPrefab);
                return(true);
            }

            case "SetMaterialFloat":
            {
                res.SetClCsValue(_funcSetMaterialFloat);
                return(true);
            }

            case "SetMaterialInt":
            {
                res.SetClCsValue(_funcSetMaterialInt);
                return(true);
            }

            case "SetMaterialColor":
            {
                res.SetClCsValue(_funcSetMaterialColor);
                return(true);
            }

                #endregion
                #region 运动类专属方法 ISTGMovable
            case "SetV":
            {
                res.SetClCsValue(_funcSetV);
                return(true);
            }

            case "SetAcce":
            {
                res.SetClCsValue(_funcSetAcce);
                return(true);
            }

            case "SetStraightParas":
            {
                res.SetClCsValue(_funcSetStraightParas);
                return(true);
            }

            case "SetPolarParas":
            {
                res.SetClCsValue(_funcSetPolarParas);
                return(true);
            }

            case "MoveTo":
            {
                res.SetClCsValue(_funcMoveTo);
                return(true);
            }

            case "MoveTowards":
            {
                res.SetClCsValue(_funcMoveTowards);
                return(true);
            }

                #endregion
                #region IAttachable
            case "AttachTo":
            {
                res.SetClCsValue(_funcAttachTo);
                return(true);
            }

            case "SetRelativePos":
            {
                res.SetClCsValue(_funcSetRelativePos);
                return(true);
            }

                #endregion
                #region ITaskExecuter
            case "AddTask":
            {
                res.SetClCsValue(_funcAddTask);
                return(true);
            }
                #endregion
            }
        }
        res.SetSValue(string.Format("GetField from userData fail!Invalid key {0} for type {1}", key, typeof(STGSpriteEffect).Name));
        return(false);
    }
Пример #12
0
    public static bool Set(object o, TValue key, ref TValue value)
    {
        STGSpriteEffect sprite = (STGSpriteEffect)o;

        if (key.TtIsString())
        {
            switch (key.SValue())
            {
                #region 基础变量
            case "x":
            {
                Vector2 pos = sprite.GetPosition();
                pos.x = (float)value.NValue;
                sprite.SetPosition(pos);
                return(true);
            }

            case "y":
            {
                Vector2 pos = sprite.GetPosition();
                pos.y = (float)value.NValue;
                sprite.SetPosition(pos);
                return(true);
            }

            case "rot":
            {
                sprite.SetRotation((float)value.NValue);
                return(true);
            }

                #endregion
                #region 运动相关变量
            case "v":
            {
                sprite.velocity = (float)value.NValue;
                return(true);
            }

            case "vx":
            {
                sprite.vx = (float)value.NValue;
                return(true);
            }

            case "vy":
            {
                sprite.vy = (float)value.NValue;
                return(true);
            }

            case "vAngle":
            {
                sprite.vAngle = (float)value.NValue;
                return(true);
            }

            case "maxV":
            {
                sprite.maxVelocity = (float)value.NValue;
                return(true);
            }

            case "acce":
            {
                sprite.acce = (float)value.NValue;
                return(true);
            }

            case "accAngle":
            {
                sprite.accAngle = (float)value.NValue;
                return(true);
            }

                #endregion
                #region sprite专属变量
            case "orderInLayer":
            {
                sprite.SetOrderInLayer((int)value.NValue);
                return(true);
            }

            case "alpha":
            {
                sprite.SetSpriteAlpha((float)value.NValue);
                return(true);
            }
                #endregion
            }
        }
        value.SetSValue(string.Format("SetField of userData fail!Invalid key {0} for type {1}", key, typeof(STGSpriteEffect).Name));
        return(false);
    }
    public static bool Get(object o, TValue key, out TValue res)
    {
        EnemySimpleBullet bullet = (EnemySimpleBullet)o;

        res = new TValue();
        if (key.TtIsString())
        {
            switch (key.SValue())
            {
                #region 基础变量
            case "x":
            {
                res.SetNValue(bullet.GetPosition().x);
                return(true);
            }

            case "y":
            {
                res.SetNValue(bullet.GetPosition().y);
                return(true);
            }

            case "rot":
            {
                res.SetNValue(bullet.GetRotation());
                return(true);
            }

            case "dx":
            {
                res.SetNValue(bullet.dx);
                return(true);
            }

            case "dy":
            {
                res.SetNValue(bullet.dy);
                return(true);
            }

            case "id":
            {
                res.SetNValue(int.Parse(bullet.BulletId));
                return(true);
            }

                #endregion
                #region 运动相关变量
            case "v":
            {
                res.SetNValue(bullet.Velocity);
                return(true);
            }

            case "vx":
            {
                res.SetNValue(bullet.Vx);
                return(true);
            }

            case "vy":
            {
                res.SetNValue(bullet.Vy);
                return(true);
            }

            case "vAngle":
            {
                res.SetNValue(bullet.VAngle);
                return(true);
            }

            case "maxV":
            {
                res.SetNValue(bullet.MaxVelocity);
                return(true);
            }

            case "acce":
            {
                res.SetNValue(bullet.Acce);
                return(true);
            }

            case "accAngle":
            {
                res.SetNValue(bullet.AccAngle);
                return(true);
            }

                #endregion
                #region 子弹类专属变量
            case "timer":
            {
                res.SetNValue(bullet.timeSinceCreated);
                return(true);
            }

            case "alpha":
            {
                res.SetNValue(bullet.alpha);
                return(true);
            }

            case "SetSelfRotation":
            {
                res.SetClCsValue(_funcSetSelfRotaion);
                return(true);
            }

            case "SetStyleById":
            {
                res.SetClCsValue(_funcSetStyleById);
                return(true);
            }

            case "SetResistEliminatedTypes":
            {
                res.SetClCsValue(_funcSetResistEliminatedTypes);
                return(true);
            }

            case "SetColor":
            {
                res.SetClCsValue(_funcSetColor);
                return(true);
            }

                #endregion
                #region SimpleBullet 专属变量
            case "DisableAppearEffect":
            {
                res.SetClCsValue(_funcDisableAppearEffect);
                return(true);
            }

            case "SetScale":
            {
                res.SetClCsValue(_funcSetScale);
                return(true);
            }

                #endregion
                #region 运动类专属方法 ISTGMovable
            case "SetV":
            {
                res.SetClCsValue(_funcSetV);
                return(true);
            }

            case "SetAcce":
            {
                res.SetClCsValue(_funcSetAcce);
                return(true);
            }

            case "SetStraightParas":
            {
                res.SetClCsValue(_funcSetStraightParas);
                return(true);
            }

            case "SetPolarParas":
            {
                res.SetClCsValue(_funcSetPolarParas);
                return(true);
            }

            case "MoveTo":
            {
                res.SetClCsValue(_funcMoveTo);
                return(true);
            }

            case "MoveTowards":
            {
                res.SetClCsValue(_funcMoveTowards);
                return(true);
            }

            case "SetPos":
            {
                res.SetClCsValue(_funcSetPos);
                return(true);
            }

            case "GetPos":
            {
                res.SetClCsValue(_funcGetPos);
                return(true);
            }

                #endregion
                #region IAttachable
            case "AttachTo":
            {
                res.SetClCsValue(_funcAttachTo);
                return(true);
            }

            case "SetRelativePos":
            {
                res.SetClCsValue(_funcSetRelativePos);
                return(true);
            }

                #endregion
                #region ITaskExecuter
            case "AddTask":
            {
                res.SetClCsValue(_funcAddTask);
                return(true);
            }

                #endregion
                #region Component
            case "AddColliderTrigger":
            {
                res.SetClCsValue(_funcAddColliderTrigger);
                return(true);
            }

            case "AddRebound":
            {
                res.SetClCsValue(_funcAddRebound);
                return(true);
            }

            case "ChangeProperty":
            {
                res.SetClCsValue(_funcChangeProperty);
                return(true);
            }
                #endregion
            }
        }
        res.SetSValue(string.Format("GetField from userData fail!Invalid key {0} for type {1}", key, typeof(EnemySimpleBullet).Name));
        return(false);
    }
    public static bool Set(object o, TValue key, ref TValue value)
    {
        EnemySimpleBullet bullet = (EnemySimpleBullet)o;

        if (key.TtIsString())
        {
            switch (key.SValue())
            {
                #region 基础变量
            case "x":
            {
                Vector2 pos = bullet.GetPosition();
                pos.x = (float)value.NValue;
                bullet.SetPosition(pos);
                return(true);
            }

            case "y":
            {
                Vector2 pos = bullet.GetPosition();
                pos.y = (float)value.NValue;
                bullet.SetPosition(pos);
                return(true);
            }

            case "rot":
            {
                bullet.SetRotation((float)value.NValue);
                return(true);
            }

                #endregion
                #region 运动相关变量
            case "v":
            {
                bullet.Velocity = (float)value.NValue;
                return(true);
            }

            case "vx":
            {
                bullet.Vx = (float)value.NValue;
                return(true);
            }

            case "vy":
            {
                bullet.Vy = (float)value.NValue;
                return(true);
            }

            case "vAngle":
            {
                bullet.VAngle = (float)value.NValue;
                return(true);
            }

            case "maxV":
            {
                bullet.MaxVelocity = (float)value.NValue;
                return(true);
            }

            case "acce":
            {
                bullet.Acce = (float)value.NValue;
                return(true);
            }

            case "accAngle":
            {
                bullet.AccAngle = (float)value.NValue;
                return(true);
            }

                #endregion
                #region 子弹类专属变量
            case "orderInLayer":
            {
                bullet.SetOrderInLayer((int)value.NValue);
                return(true);
            }

            case "checkCollision":
            {
                bullet.SetDetectCollision(value.BValue());
                return(true);
            }

            case "navi":
            {
                bullet.SetRotatedByVelocity(value.BValue());
                return(true);
            }

            case "checkBorder":
            {
                bullet.SetCheckOutOfBorder(value.BValue());
                return(true);
            }

            case "alpha":
            {
                bullet.SetAlpha((float)value.NValue);
                return(true);
            }

            case "omega":
            {
                bullet.SetSelfRotation((float)value.NValue);
                return(true);
            }

            case "scale":
            {
                bullet.SetScale((float)value.NValue);
                return(true);
            }

            case "scaleX":
            {
                bullet.SetBulletPara(BulletParaType.ScaleX, (float)value.NValue);
                return(true);
            }

            case "scaleY":
            {
                bullet.SetBulletPara(BulletParaType.ScaleY, (float)value.NValue);
                return(true);
            }
                #endregion
            }
        }
        value.SetSValue(string.Format("SetField of userData fail!Invalid key {0} for type {1}", key, typeof(EnemySimpleBullet).Name));
        return(false);
    }
Пример #15
0
    public static bool Get(object o, TValue key, out TValue res)
    {
        NormalEnemy enemy = (NormalEnemy)o;

        res = new TValue();
        if (key.TtIsString())
        {
            switch (key.SValue())
            {
                #region 基础变量
            case "x":
            {
                res.SetNValue(enemy.GetPosition().x);
                return(true);
            }

            case "y":
            {
                res.SetNValue(enemy.GetPosition().y);
                return(true);
            }

            case "rot":
            {
                res.SetNValue(enemy.GetRotation());
                return(true);
            }

            case "dx":
            {
                res.SetNValue(enemy.dx);
                return(true);
            }

            case "dy":
            {
                res.SetNValue(enemy.dy);
                return(true);
            }

            case "SetPos":
            {
                res.SetClCsValue(_funcSetPos);
                return(true);
            }

            case "GetPos":
            {
                res.SetClCsValue(_funcGetPos);
                return(true);
            }

                #endregion
                #region 运动相关变量
            case "v":
            {
                res.SetNValue(enemy.velocity);
                return(true);
            }

            case "vx":
            {
                res.SetNValue(enemy.vx);
                return(true);
            }

            case "vy":
            {
                res.SetNValue(enemy.vy);
                return(true);
            }

            case "vAngle":
            {
                res.SetNValue(enemy.vAngle);
                return(true);
            }

            case "maxV":
            {
                res.SetNValue(enemy.maxVelocity);
                return(true);
            }

            case "acce":
            {
                res.SetNValue(enemy.acce);
                return(true);
            }

            case "accAngle":
            {
                res.SetNValue(enemy.accAngle);
                return(true);
            }

                #endregion
                #region 运动类专属方法 ISTGMovable
            case "SetV":
            {
                res.SetClCsValue(_funcSetV);
                return(true);
            }

            case "SetAcce":
            {
                res.SetClCsValue(_funcSetAcce);
                return(true);
            }

            case "SetStraightParas":
            {
                res.SetClCsValue(_funcSetStraightParas);
                return(true);
            }

            case "SetPolarParas":
            {
                res.SetClCsValue(_funcSetPolarParas);
                return(true);
            }

            case "MoveTo":
            {
                res.SetClCsValue(_funcMoveTo);
                return(true);
            }

            case "MoveTowards":
            {
                res.SetClCsValue(_funcMoveTowards);
                return(true);
            }

                #endregion
                #region IAttachable
            case "AttachTo":
            {
                res.SetClCsValue(_funcAttachTo);
                return(true);
            }

            case "SetRelativePos":
            {
                res.SetClCsValue(_funcSetRelativePos);
                return(true);
            }

                #endregion
                #region ITaskExecuter
            case "AddTask":
            {
                res.SetClCsValue(_funcAddTask);
                return(true);
            }

                #endregion
                #region 敌机专属变量
            case "SetMaxHp":
                res.SetClCsValue(_funcSetMaxHp);
                return(true);

            case "SetCollisionSize":
                res.SetClCsValue(_funcSetCollisionSize);
                return(true);

            case "SetDropItems":
                res.SetClCsValue(_funcSetDropItems);
                return(true);

            case "Init":
                res.SetClCsValue(_funcInit);
                return(true);

            case "SetInvincible":
                res.SetClCsValue(_funcSetInvincible);
                return(true);

            case "SetInteractive":
                res.SetClCsValue(_funcSetInteractive);
                return(true);

            case "PlayAni":
                res.SetClCsValue(_funcPlayAni);
                return(true);

                #endregion
            }
        }
        res.SetSValue(string.Format("GetField from userData fail!Invalid key {0} for type {1}", key, typeof(NormalEnemy).Name));
        return(false);
    }