Пример #1
0
 private void GenerateTreasure(TreasureOrigin origin, int amount = 1)
 {
     for (int i = 0; i < amount; i++)
     {
         TreasureNode treasure = new TreasureNode(origin);
         _rootNodes.Add(treasure);
         treasure.Generate();
     }
 }
 public override void ResetVariables()
 {
     base.ResetVariables();
     _treasureName         = new DocContentItem("");
     _origin               = TreasureOrigin.Undefined;
     _craftsmanship        = TreasureCraftsmanship.Undefined;
     _miraclesOfTheDarkAge = new List <DocContentItem>();
     _xenosConstruction    = new DocContentItem("");
     _markOfTheCurse       = new DocContentItem("");
     _quirk1               = "";
     _quirk2               = "";
 }
 public TreasureNode(TreasureOrigin origin)
 {
     NodeName = "Treasure";
     _origin  = origin;
 }
        public override void Generate()
        {
            int randValue = Globals.RollD10();

            if (_origin == TreasureOrigin.Undefined)
            {
                if (randValue <= 3)
                {
                    _origin = TreasureOrigin.FinelyWrought;
                }
                else if (randValue <= 6)
                {
                    _origin = TreasureOrigin.AncientMiracle;
                }
                else if (randValue <= 8)
                {
                    _origin = TreasureOrigin.AlienTechnology;
                }
                else
                {
                    _origin = TreasureOrigin.CursedArtefact;
                }
            }

            randValue = Globals.RollD10();
            if (randValue <= 2)
            {
                GenerateMeleeWeapon();
            }
            else if (randValue <= 4)
            {
                GenerateRangedWeapon();
            }
            else if (randValue <= 6)
            {
                GenerateArmour();
            }
            else if (randValue <= 8)
            {
                GenerateGearAndTools();
            }
            else
            {
                GenerateShipComponents();
            }

            switch (_origin)
            {
            case TreasureOrigin.FinelyWrought:
                GenerateFinelyWrought();
                break;

            case TreasureOrigin.AncientMiracle:
                GenerateAncientMiracle();
                break;

            case TreasureOrigin.AlienTechnology:
                GenerateAlienTechnology();
                break;

            case TreasureOrigin.CursedArtefact:
                GenerateCursedArtefact();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            NodeName = GetOriginTypeText() + " " + _treasureName.Content;
        }