コード例 #1
0
 public void Init()
 {
     randomType    = RandomType.None;
     fixedPos      = false;
     locked        = false;
     basicBombType = BasicBombType.None;
     extraBombType = ExtraBombType.None;
     specialType   = SpecialType.None;
     typeNumber    = 0;
 }
コード例 #2
0
 public void Set(EntityData ent)
 {
     fixedPos      = ent.fixedPos;
     randomType    = ent.randomType;
     basicBombType = ent.basicBombType;
     extraBombType = ent.extraBombType;
     specialType   = ent.specialType;
     locked        = ent.locked;
     typeNumber    = ent.typeNumber;
     id            = ent.id;
     key           = ent.key;
 }
コード例 #3
0
    public void Normalize()
    {
        if (randomType != RandomType.None)
        {
            typeNumber = GameManager.instance.GetEntityTypeRandomly();

            if (randomType == RandomType.Box)
            {
                basicBombType = BasicBombType.Box;
            }
            else if (randomType == RandomType.Line)
            {
                int dir = UnityEngine.Random.Range(0, 2);
                if (dir == 0)
                {
                    basicBombType = BasicBombType.Horizontal;
                }
                else
                {
                    basicBombType = BasicBombType.Vertical;
                }
            }
            else if (randomType == RandomType.Missile)
            {
                extraBombType = ExtraBombType.Missile;
            }
            else if (randomType == RandomType.BoxLine)
            {
                basicBombType = (BasicBombType)(BasicBombType.Box + UnityEngine.Random.Range(0, 3));
            }
            else if (randomType == RandomType.BoxLineMissile)
            {
                int t = UnityEngine.Random.Range(0, 4);
                if (t < 3)
                {
                    basicBombType = (BasicBombType)(BasicBombType.Box + t);
                }
                else
                {
                    extraBombType = ExtraBombType.Missile;
                }
            }
            else
            {
                basicBombType = 0;
            }

            randomType = RandomType.None;
            ComposeId();
        }
    }
コード例 #4
0
    public void Set(UInt16 entityBits)
    {
        Init();

        fixedPos   = (entityBits & EntityBit.FixedBit) != 0;
        locked     = (entityBits & EntityBit.LockedBit) != 0;
        randomType = (RandomType)((entityBits & EntityBit.RandomBit) >> EntityBit.RandomBitShift);

        basicBombType = (BasicBombType)((entityBits & EntityBit.BasicBombBit) >> EntityBit.BasicBombBitShift);
        extraBombType = (ExtraBombType)((entityBits & EntityBit.ExtraBombBit) >> EntityBit.ExtraBombBitShift);
        bool specialFlag = (entityBits & EntityBit.SpecialBit) != 0;

        typeNumber = (UInt16)((entityBits & EntityBit.TypeNumberBit) >> EntityBit.TypeNumberBitShift);
        if (specialFlag)
        {
            specialType = (SpecialType)typeNumber;
            typeNumber  = 0;
        }

        ComposeId();
    }
コード例 #5
0
    public UInt16 ComposeKey(BasicBombType basicBomb, ExtraBombType extraBomb, SpecialType special, UInt16 typeNum)
    {
        UInt16 newkey = 0;

        if (basicBomb != BasicBombType.None)
        {
            newkey |= (UInt16)(((UInt16)basicBomb << EntityBit.BasicBombBitShift) & EntityBit.BasicBombBit);
        }

        if (extraBomb != ExtraBombType.None)
        {
            newkey |= (UInt16)(((UInt16)extraBomb << EntityBit.ExtraBombBitShift) & EntityBit.ExtraBombBit);
        }

        if (special != SpecialType.None)
        {
            newkey |= (UInt16)EntityBit.SpecialBit;
            typeNum = (UInt16)specialType;
        }

        newkey |= (UInt16)((typeNum << EntityBit.TypeNumberBitShift) & EntityBit.TypeNumberBit);

        return(newkey);
    }