git @ Cat's Eye Technologies Corona-Realm-of-Magic / master src / corona / Dungeons.pm
master

Tree @master (Download .tar.gz)

Dungeons.pm @masterraw · history · blame

# Copyright (c)2000-2013, Chris Pressey, Cat's Eye Technologies.
# All rights reserved.
# Distributed under a BSD-style license; see file LICENSE for more info.

%::dungeons =
(
  'Giant Beehive' => Region->new('name' => 'Giant Beehive',
                    'sizex' => 20,
                    'sizey' => 20, 
                    'outside' => $::sc{dark},
                    'border' => $Terrain::dense_wax,
                    'ambient' => $Terrain::beehive_tunnel,
                    'terraind' => Distribution->new(
                            0.3333 => $Terrain::waxwork_wall,
                           ),
                    'itemd' => Distribution->new(
                            0.001 => $Item::stone,  # wax covered
                            0.001 => $Item::clump_of_grass,  # wax covered
                            0.010 => $Item::royal_jelly,
                            0.090 => $Item::golden_honeycomb,
                           ),
                    'monsterd' => Distribution->new(
                            0.010 => $Actor::queen_honeybee->hostile,
                            0.250 => $Actor::giant_honeybee->hostile,
                           ),
                    'apropos_exit' => $Terrain::small_hole,
  ),
  'Bakersport Hovel' => Region->new('name' => 'Bakersport Hovel',
                    'sizex' => 10,
                    'sizey' => 10, 
                    'outside' => $::sc{dark},
                    'border' => $Terrain::building_wall,
                    'ambient' => $Terrain::stonework_floor,
                    'terraind' => Distribution->new(
                            0.1 => $Terrain::building_wall,
                           ),
                    'itemd' => Distribution->new(
                            0.010 => $Item::knife->make($Adj::copper)->crude,
# clay pot, bowl, cup, spoon, fork
                           ),
                    'monsterd' => Distribution->new(
                            0.040 => $Actor::giant_grasshopper->hostile,
                           ),
                    'unique' =>
                    [
                      $Actor::human,
                      $Actor::giant_grasshopper->hostile,
                    ],
                    'apropos_exit' => $Terrain::wooden_doorway,
  ),
  'Dwarkling Hideout' => Region->new('name' => 'Dwarkling Hideout',
                    'sizex' => 30,
                    'sizey' => 30, 
                    'supplement' => Supplement->new(
                                    'title' => 'Dwarkling Hideout',
                                    'media' => 'music/fetid_swamp',
                                    ),
                    'outside' => $::sc{dark},
                    'border' => $Terrain::stonework_wall,
                    'ambient' => $Terrain::stonework_floor,
                    'terraind' => Distribution->new(
                            # dirt road
                            0.001 => $Terrain::freshwater_pool,
                            0.004 => $Terrain::descending_staircase->to_new('Dwarkling Hideout'),
                            0.400 => $Terrain::stonework_wall,
                           ),
                    'itemd' => Distribution->new(
                            0.0001 => $Item::wand->make($Adj::wood)->enchant($Talent::lightning_bolt, 3),
                            0.0001 => $Item::blank_scroll->enchant($Talent::empathy),
                            0.0001 => $Item::wand->make($Adj::wood)->enchant($Talent::charm, 3),
                            0.0001 => $Item::wand->make($Adj::iron)->enchant($Talent::card_capture, 3),
                            0.0001 => $Item::blank_scroll->enchant(Talent::create($Terrain::ancient_ruins)),
                            0.0001 => $Item::blank_scroll->enchant($Talent::magic_mapping),
                            0.0001 => $Item::blank_scroll->enchant(Talent::cause('confused',Dice->new(3,6))),
                            0.0001 => $Item::ring->make($Adj::opal)->oftalent('Talent::cure("blind")', +8),
                            0.0001 => $Item::torque->make($Adj::bronze)->oftalent('$Talent::identify_food', +12),
                            0.0001 => $Item::bracers->make($Adj::leather)->ofstat('dexterity',2),
                            0.0001 => $Item::girdle->make($Adj::leather)->ofstat('strength',2),
                            0.0001 => $Item::anklet->make($Adj::silver)->ofstat('intelligence',+1),
                            0.0001 => $Item::bracelet->make($Adj::meteoric_iron)->ofstat('constitution',+1),
                            0.0001 => $Item::bracelet->make($Adj::gold)->ofstat('constitution',-1)->cursed(1),
                            0.0001 => $Item::quarterstaff->make($Adj::wood)->fine,
                            0.0001 => $Item::longsword->make($Adj::iron)->magicked(1),
                            0.0001 => $Item::gloves->make($Adj::leather)->magicked(1),
                            0.0001 => $Item::helmet->make($Adj::iron)->cursed(1),
                            0.0001 => $Item::blank_scroll->enchant(Talent::summon($Actor::sylvan_snake, Dice->new(2,3))),
                            0.0001 => $Item::kerchief->make($Adj::silk)->ofstat('charisma',2),

                            0.0002 => $Item::broadsword->make($Adj::iron),
                            0.0002 => $Item::mace->make($Adj::iron),
                            0.0002 => $Item::quarterstaff->make($Adj::wood),

                            0.0004 => $Item::cloak->make($Adj::leather),
                            0.0004 => $Item::helm->make($Adj::bone)->crude,
                            0.0004 => $Item::sleeves->make($Adj::iron)->crude,    # todo: "chain", "plate", "scale", "ring" Adjs
                            0.0004 => $Item::gloves->make($Adj::fur)->fine,
                            0.0004 => $Item::dagger->make($Adj::copper),

                            0.0005 => $Item::cloak->make($Adj::fur)->fine,
                            0.0005 => $Item::shoes->make($Adj::leather)->fine,
                            0.0005 => $Item::greaves->make($Adj::iron)->crude,

                            0.0040 => $Item::coin->make($Adj::gold)->bunch(7),
                            0.0045 => $Item::coin->make($Adj::gold)->bunch(5),
                            0.0050 => $Item::coin->make($Adj::gold)->bunch(3),
                            0.0055 => $Item::coin->make($Adj::silver)->bunch(13),
                            0.0060 => $Item::coin->make($Adj::silver)->bunch(11),
                            0.0065 => $Item::coin->make($Adj::silver)->bunch(8),

                            0.0100 => $Item::stone->bunch(2),
                            0.0120 => $Item::stone->bunch(3),
                            0.0150 => $Item::stone->bunch(4),

                           ),
                    'monsterd' => Distribution->new(
                            0.0030 => $Actor::grue->hostile,
                            0.0060 => $Actor::guard_dog->hostile,
                            0.0030 => $Actor::dwarkling->class('thief',1)->hostile,
                            0.0030 => $Actor::dwarkling->class('soldier',1)->hostile,
                           ),
  ),
  'Grumchik Stronghold' => Region->new('name' => 'Grumchik Stronghold',
                    'sizex' => 40,
                    'sizey' => 40, 
                    'supplement' => Supplement->new(
                                    'title' => 'Grumchik Stronghold',
                                    'media' => 'music/fetid_swamp',
                                    ),
                    'outside' => $::sc{dark},
                    'border' => $Terrain::bedrock,
                    'ambient' => $Terrain::stonework_floor,
                    'genpattern' => 'dungeon',
                    'terraind' => Distribution->new(
                            0.010 => $Terrain::descending_staircase->to_new('Grumchik Stronghold'),
                            0.050 => $Terrain::bedrock,
                            0.940 => $Terrain::stonework_wall,
                           ),
                    'itemd' => Distribution->new(
                            0.0001 => $Item::wand->make($Adj::silver)->enchant($Talent::lightning_bolt, 8),
                            0.0001 => $Item::blank_scroll->enchant($Talent::magic_mapping),
                            0.0001 => $Item::blank_scroll->enchant(Talent::summon($Actor::floating_skull, Dice->new(2,3))),
                            0.0001 => $Item::blank_scroll->enchant($Talent::lightning_bolt),
                            0.0001 => $Item::blank_scroll->enchant($Talent::minor_heal),
                            0.0001 => $Item::anklet->make($Adj::bone)->ofstat('dexterity',+1),
                            0.0001 => $Item::bracelet->make($Adj::granite)->ofstat('spirit',+1),
                            0.0001 => $Item::sleeves->make($Adj::steel)->cursed(1)->ofstat('strength',-1),
                            0.0001 => $Item::belt->make($Adj::canvas)->ofstat('strength',+1),
                            0.0001 => $Item::hat->make($Adj::fur)->ofstat('intelligence',+1),
                            0.0001 => $Item::cloak->make($Adj::leather)->magicked(+2)->ofstat('dexterity',+1),

                            0.0005 => $Item::broadsword->make($Adj::copper),
                            0.0006 => $Item::mace->make($Adj::steel),
                            0.0008 => $Item::quarterstaff->make($Adj::granite),

                            0.0010 => $Item::coin->make($Adj::gold)->bunch(9),
                            0.0012 => $Item::coin->make($Adj::gold)->bunch(7),
                            0.0014 => $Item::coin->make($Adj::gold)->bunch(3),
                            0.0016 => $Item::coin->make($Adj::silver)->bunch(33),
                            0.0018 => $Item::coin->make($Adj::silver)->bunch(21),
                            0.0020 => $Item::coin->make($Adj::silver)->bunch(12),
                           ),
                    'monsterd' => Distribution->new(
                             0.0025 => $Actor::grumchik->miserable->hostile,
                             0.0025 => $Actor::grumchik->wily->hostile,
                             0.0025 => $Actor::grumchik->surly->hostile,
                             0.0025 => $Actor::grumchik->pudgy->hostile,
                           ),
  ),
);

1;