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; }