示例#1
0
        public void Fill(RNG random, float boardOffsetY)
        {
            Color = (BlockColor)random.Next(0, 4);

            Flags = BlockFlag.None;

            var modifierDistribution = random.Next(1, 101);

            if (modifierDistribution % 2 == 0)
            {
                Flags = BlockFlag.X2;
            }
            else if (modifierDistribution % 3 == 0)
            {
                Flags = BlockFlag.X3;
            }
            else if (modifierDistribution % 5 == 0)
            {
                Flags = BlockFlag.X5;
            }

            if (random.Next(1, 11) % 3 != 0)
            {
                Flags = BlockFlag.None;
            }

            _boardOffset = new Vector2(0, boardOffsetY);
        }
示例#2
0
 private void SetBlockStake(BlockFlag flg)
 {
     (this.ruleContext as PosRuleContext).BlockStake = new BlockStake()
     {
         Flags = flg
     };
 }
示例#3
0
 public void SetStakeModifier(ulong modifier, bool fGeneratedStakeModifier)
 {
     this.StakeModifier = modifier;
     if (fGeneratedStakeModifier)
     {
         this.Flags |= BlockFlag.BLOCK_STAKE_MODIFIER;
     }
 }
 public bool SetStakeEntropyBit(uint nEntropyBit)
 {
     if (nEntropyBit > 1)
     {
         return(false);
     }
     this.Flags |= (nEntropyBit != 0 ? BlockFlag.BLOCK_STAKE_ENTROPY : 0);
     return(true);
 }
 public void SetProofOfStake()
 {
     this.Flags |= BlockFlag.BLOCK_PROOF_OF_STAKE;
 }
示例#6
0
 public void Copy(Block other)
 {
     Color        = other.Color;
     Flags        = other.Flags;
     _boardOffset = new Vector2();
 }
示例#7
0
 public void Hide()
 {
     Flags = BlockFlag.Hidden;
 }
示例#8
0
 public void Deselect()
 {
     Flags &= ~BlockFlag.Selected;
 }
示例#9
0
 public void Select()
 {
     Flags |= BlockFlag.Selected;
 }