├── .coveragerc ├── .gitignore ├── .travis.yml ├── .vimrc ├── LICENSE ├── README.md ├── config.py.example ├── data ├── artwork.data ├── bond.data ├── business.data ├── businessnames.data ├── businesstype.data ├── city.data ├── cityname.data ├── continent.data ├── continentname.data ├── country.data ├── countrynames.data ├── cuisine.data ├── currency.data ├── currencynames.data ├── curse.data ├── debuglogging.json ├── deity.data ├── drinks.data ├── dungeonname.data ├── elixir.data ├── events.data ├── flag.data ├── flaw.data ├── gem.data ├── geomorphdungeon.data ├── govt.data ├── grafitti.data ├── hobbies.data ├── idea.data ├── jobposting.data ├── leader.data ├── legends.data ├── logging.json ├── magicitem.data ├── magicitems │ ├── armor.data │ ├── potion.data │ ├── scroll.data │ └── weapon.data ├── misfire.data ├── moon.data ├── moonname.data ├── motivation.data ├── motivations │ ├── acceptance.data │ ├── achievement.data │ ├── affection.data │ ├── air.data │ ├── art.data │ ├── better.data │ ├── broker.data │ ├── challenge.data │ ├── clothing.data │ ├── clubs.data │ ├── cohesion.data │ ├── comfort.data │ ├── competition.data │ ├── comradeship.data │ ├── confidence.data │ ├── desperation.data │ ├── destiny.data │ ├── distinguish.data │ ├── dominance.data │ ├── drink.data │ ├── excretion.data │ ├── experiences.data │ ├── family.data │ ├── familysafety.data │ ├── fear.data │ ├── flee.data │ ├── follow.data │ ├── food.data │ ├── freedom.data │ ├── friendship.data │ ├── greed.data │ ├── growth.data │ ├── health.data │ ├── independence.data │ ├── intimacy.data │ ├── justice.data │ ├── knowledge.data │ ├── law.data │ ├── limits.data │ ├── mastery.data │ ├── meaning.data │ ├── mission.data │ ├── mystery.data │ ├── nature.data │ ├── order.data │ ├── physicalsafety.data │ ├── power.data │ ├── prestige.data │ ├── propertysafety.data │ ├── protectionfromelements.data │ ├── recognition.data │ ├── relationships.data │ ├── respect.data │ ├── responsibility.data │ ├── revenge.data │ ├── romance.data │ ├── security.data │ ├── see.data │ ├── seeking.data │ ├── self-esteem.data │ ├── selfimprovement.data │ ├── sex.data │ ├── shelter.data │ ├── sleep.data │ ├── stability.data │ ├── status.data │ ├── stimulation.data │ ├── teams.data │ ├── travel.data │ ├── trope.data │ ├── unrights.data │ └── warmth.data ├── mundaneitem.data ├── npc.data ├── npccoverings.data ├── npcemotions.data ├── npcprofession.data ├── organization.data ├── organizationname.data ├── phobias.data ├── planet.data ├── planetname.data ├── portfolio.data ├── race.data ├── races │ ├── Catfolk.data │ ├── bugbear.data │ ├── coatikin.data │ ├── dwarf.data │ ├── elf.data │ ├── gnome.data │ ├── goblin.data │ ├── halfling.data │ ├── harpy.data │ ├── hobgoblin.data │ ├── human.data │ ├── kobold.data │ ├── lizardfolk.data │ ├── minotaur.data │ ├── molekin.data │ ├── ogre.data │ ├── orc.data │ └── troglodyte.data ├── region.data ├── regionname.data ├── resources.data ├── resources │ ├── crop.data │ ├── dangerouswildlife.data │ ├── gemmine.data │ ├── harvest.data │ ├── herdanimals.data │ ├── lake.data │ ├── locale.data │ ├── manufacturing.data │ ├── mineralmine.data │ ├── oremine.data │ ├── quarry.data │ ├── safewildlife.data │ ├── skilledlabor.data │ ├── unskilledlabor.data │ └── wood.data ├── roguedungeon.data ├── rumor.data ├── sect.data ├── star.data ├── starname.data ├── starsystem.data ├── street.data ├── streetname.data ├── wanted.data └── weather.data ├── docs └── gen_creation.txt ├── fixtures ├── __init__.py ├── artwork.py ├── bond.py ├── business.py ├── city.py ├── continent.py ├── country.py ├── cuisine.py ├── currency.py ├── curse.py ├── deity.py ├── drink.py ├── dungeon.py ├── event.py ├── flag.py ├── flaw.py ├── gem.py ├── generator.py ├── geomorphdungeon.py ├── govt.py ├── grafitti.py ├── jobposting.py ├── leader.py ├── legend.py ├── magicitem.py ├── misfire.py ├── moon.py ├── motivation.py ├── mundaneitem.py ├── npc.py ├── organization.py ├── phobia.py ├── planet.py ├── region.py ├── resource.py ├── roguedungeon.py ├── rumor.py ├── sect.py ├── star.py ├── starsystem.py ├── street.py ├── wanted.py └── weather.py ├── integration_tests ├── test_artwork.py ├── test_mundaneitems.py └── test_name.py ├── log └── .gitignore ├── megacosm ├── __init__.py ├── generators │ ├── __init__.py │ ├── artwork.py │ ├── bond.py │ ├── business.py │ ├── city.py │ ├── continent.py │ ├── country.py │ ├── cuisine.py │ ├── currency.py │ ├── curse.py │ ├── deity.py │ ├── drink.py │ ├── elixir.py │ ├── event.py │ ├── flag.py │ ├── flaw.py │ ├── gem.py │ ├── generator.py │ ├── geomorphdungeon.py │ ├── govt.py │ ├── grafitti.py │ ├── jobposting.py │ ├── leader.py │ ├── legend.py │ ├── magicitem.py │ ├── misfire.py │ ├── moon.py │ ├── motivation.py │ ├── mundaneitem.py │ ├── name.py │ ├── npc.py │ ├── organization.py │ ├── phobia.py │ ├── planet.py │ ├── region.py │ ├── resource.py │ ├── roguedungeon.py │ ├── rumor.py │ ├── sect.py │ ├── star.py │ ├── starsystem.py │ ├── street.py │ ├── wanted.py │ └── weather.py ├── oneliners.py ├── static │ ├── css │ │ ├── base.css │ │ └── sticky-footer.css │ ├── images │ │ ├── background.png │ │ ├── background.xcf │ │ ├── backgrounds │ │ │ ├── dirt.png │ │ │ ├── dirt1.png │ │ │ ├── dirt3.png │ │ │ ├── dirt4.png │ │ │ ├── dirt5.png │ │ │ ├── dirt6.png │ │ │ ├── granite.png │ │ │ ├── granite1.png │ │ │ ├── granite2.png │ │ │ ├── quartzite.png │ │ │ ├── rocks.png │ │ │ ├── rocky.png │ │ │ ├── sand.png │ │ │ ├── sandstone.png │ │ │ ├── sandstone1.png │ │ │ ├── stone.png │ │ │ └── stone1.png │ │ ├── clouds.png │ │ ├── containers.xcf │ │ ├── decorations │ │ │ ├── blood.png │ │ │ ├── blood.xcf │ │ │ ├── cavein.png │ │ │ ├── cavein.xcf │ │ │ ├── fog.png │ │ │ ├── fog.xcf │ │ │ ├── lava.xcf │ │ │ ├── lava1.png │ │ │ ├── lava2.png │ │ │ ├── river.png │ │ │ ├── river.xcf │ │ │ ├── shadows.png │ │ │ ├── shadows.xcf │ │ │ ├── slime.png │ │ │ ├── slime.xcf │ │ │ ├── smoke.png │ │ │ ├── spiderwebs.png │ │ │ └── spiderwebs.xcf │ │ ├── deity │ │ │ ├── anchor.png │ │ │ ├── anchor.xcf │ │ │ ├── anchorbroken.png │ │ │ ├── anchorburning.png │ │ │ ├── anchorcircled.png │ │ │ ├── anchordivided.png │ │ │ ├── anchordouble.png │ │ │ ├── anchorfragmented.png │ │ │ ├── anchorrocking.png │ │ │ ├── anchorsideways.png │ │ │ ├── anchorswinging.png │ │ │ ├── anchortilted.png │ │ │ ├── anchortriple.png │ │ │ ├── anchorupside-down.png │ │ │ ├── ankh.png │ │ │ ├── ankh.xcf │ │ │ ├── ankhbroken.png │ │ │ ├── ankhburning.png │ │ │ ├── ankhcircled.png │ │ │ ├── ankhdivided.png │ │ │ ├── ankhdouble.png │ │ │ ├── ankhfragmented.png │ │ │ ├── ankhrocking.png │ │ │ ├── ankhsideways.png │ │ │ ├── ankhswinging.png │ │ │ ├── ankhtilted.png │ │ │ ├── ankhtriple.png │ │ │ ├── ankhupside-down.png │ │ │ ├── anvil.png │ │ │ ├── anvil.xcf │ │ │ ├── anvilbroken.png │ │ │ ├── anvilburning.png │ │ │ ├── anvilcircled.png │ │ │ ├── anvildivided.png │ │ │ ├── anvildouble.png │ │ │ ├── anvilfragmented.png │ │ │ ├── anvilrocking.png │ │ │ ├── anvilsideways.png │ │ │ ├── anvilswinging.png │ │ │ ├── anviltilted.png │ │ │ ├── anviltriple.png │ │ │ ├── anvilupside-down.png │ │ │ ├── apple.png │ │ │ ├── apple.xcf │ │ │ ├── applebroken.png │ │ │ ├── appleburning.png │ │ │ ├── applecircled.png │ │ │ ├── appledivided.png │ │ │ ├── appledouble.png │ │ │ ├── applefragmented.png │ │ │ ├── applerocking.png │ │ │ ├── applesideways.png │ │ │ ├── appleswinging.png │ │ │ ├── appletilted.png │ │ │ ├── appletriple.png │ │ │ ├── appleupside-down.png │ │ │ ├── axe.png │ │ │ ├── axe.xcf │ │ │ ├── axebroken.png │ │ │ ├── axeburning.png │ │ │ ├── axecircled.png │ │ │ ├── axedivided.png │ │ │ ├── axedouble.png │ │ │ ├── axefragmented.png │ │ │ ├── axerocking.png │ │ │ ├── axesideways.png │ │ │ ├── axeswinging.png │ │ │ ├── axetilted.png │ │ │ ├── axetriple.png │ │ │ ├── axeupside-down.png │ │ │ ├── bell.png │ │ │ ├── bell.xcf │ │ │ ├── bellbroken.png │ │ │ ├── bellburning.png │ │ │ ├── bellcircled.png │ │ │ ├── belldivided.png │ │ │ ├── belldouble.png │ │ │ ├── bellfragmented.png │ │ │ ├── bellrocking.png │ │ │ ├── bellsideways.png │ │ │ ├── bellswinging.png │ │ │ ├── belltilted.png │ │ │ ├── belltriple.png │ │ │ ├── bellupside-down.png │ │ │ └── others.xcf │ │ ├── dungeon │ │ │ ├── mini-tiles.xcf │ │ │ └── minitiles.png │ │ ├── geomorphs │ │ │ ├── morgajel │ │ │ │ ├── basiccave │ │ │ │ │ ├── 0 │ │ │ │ │ │ ├── a0.png │ │ │ │ │ │ ├── b0.png │ │ │ │ │ │ ├── c0.png │ │ │ │ │ │ ├── d0.png │ │ │ │ │ │ ├── e0.png │ │ │ │ │ │ ├── f0.png │ │ │ │ │ │ ├── g0.png │ │ │ │ │ │ ├── h0.png │ │ │ │ │ │ ├── i0.png │ │ │ │ │ │ ├── j0.png │ │ │ │ │ │ └── k0.png │ │ │ │ │ ├── 1 │ │ │ │ │ │ ├── a1.png │ │ │ │ │ │ ├── b1.png │ │ │ │ │ │ ├── c1.png │ │ │ │ │ │ ├── d1.png │ │ │ │ │ │ ├── e1.png │ │ │ │ │ │ ├── f1.png │ │ │ │ │ │ ├── g1.png │ │ │ │ │ │ ├── h1.png │ │ │ │ │ │ ├── i1.png │ │ │ │ │ │ ├── j1.png │ │ │ │ │ │ ├── k1.png │ │ │ │ │ │ └── l1.png │ │ │ │ │ ├── 2 │ │ │ │ │ │ ├── a2.png │ │ │ │ │ │ ├── b2.png │ │ │ │ │ │ ├── c2.png │ │ │ │ │ │ ├── d2.png │ │ │ │ │ │ ├── e2.png │ │ │ │ │ │ ├── f2.png │ │ │ │ │ │ ├── g2.png │ │ │ │ │ │ ├── h2.png │ │ │ │ │ │ ├── i2.png │ │ │ │ │ │ ├── j2.png │ │ │ │ │ │ ├── k2.png │ │ │ │ │ │ └── l2.png │ │ │ │ │ ├── 3 │ │ │ │ │ │ ├── a3.png │ │ │ │ │ │ ├── b3.png │ │ │ │ │ │ ├── c3.png │ │ │ │ │ │ ├── d3.png │ │ │ │ │ │ ├── e3.png │ │ │ │ │ │ ├── f3.png │ │ │ │ │ │ ├── g3.png │ │ │ │ │ │ ├── h3.png │ │ │ │ │ │ ├── j3.png │ │ │ │ │ │ ├── k3.png │ │ │ │ │ │ ├── l3.png │ │ │ │ │ │ ├── m3.png │ │ │ │ │ │ ├── n3.png │ │ │ │ │ │ └── o3.png │ │ │ │ │ ├── 4 │ │ │ │ │ │ ├── a4.png │ │ │ │ │ │ ├── b4.png │ │ │ │ │ │ ├── c4.png │ │ │ │ │ │ ├── d4.png │ │ │ │ │ │ ├── e4.png │ │ │ │ │ │ ├── f4.png │ │ │ │ │ │ ├── g4.png │ │ │ │ │ │ ├── h4.png │ │ │ │ │ │ ├── i4.png │ │ │ │ │ │ ├── j4.png │ │ │ │ │ │ └── k4.png │ │ │ │ │ ├── 5 │ │ │ │ │ │ ├── a5.png │ │ │ │ │ │ ├── b5.png │ │ │ │ │ │ ├── c5.png │ │ │ │ │ │ ├── d5.png │ │ │ │ │ │ ├── e5.png │ │ │ │ │ │ ├── f5.png │ │ │ │ │ │ ├── g5.png │ │ │ │ │ │ ├── h5.png │ │ │ │ │ │ ├── i5.png │ │ │ │ │ │ ├── j5.png │ │ │ │ │ │ ├── k5.png │ │ │ │ │ │ ├── l5.png │ │ │ │ │ │ ├── m5.png │ │ │ │ │ │ └── n5.png │ │ │ │ │ └── basiccave.xcf │ │ │ │ └── basicdungeon │ │ │ │ │ ├── 0 │ │ │ │ │ ├── a0.png │ │ │ │ │ ├── b0.png │ │ │ │ │ ├── c0.png │ │ │ │ │ ├── d0.png │ │ │ │ │ ├── e0.png │ │ │ │ │ └── f0.png │ │ │ │ │ ├── 1 │ │ │ │ │ ├── a1.png │ │ │ │ │ ├── b1.png │ │ │ │ │ ├── c1.png │ │ │ │ │ ├── d1.png │ │ │ │ │ ├── e1.png │ │ │ │ │ ├── f1.png │ │ │ │ │ ├── g1.png │ │ │ │ │ ├── h1.png │ │ │ │ │ ├── i1.png │ │ │ │ │ ├── j1.png │ │ │ │ │ ├── k1.png │ │ │ │ │ └── l1.png │ │ │ │ │ ├── 2 │ │ │ │ │ ├── a2.png │ │ │ │ │ ├── b2.png │ │ │ │ │ ├── c2.png │ │ │ │ │ ├── d2.png │ │ │ │ │ ├── e2.png │ │ │ │ │ ├── f2.png │ │ │ │ │ ├── g2.png │ │ │ │ │ ├── h2.png │ │ │ │ │ ├── i2.png │ │ │ │ │ ├── j2.png │ │ │ │ │ ├── k2.png │ │ │ │ │ ├── l2.png │ │ │ │ │ └── m2.png │ │ │ │ │ ├── 3 │ │ │ │ │ ├── a3.png │ │ │ │ │ ├── b3.png │ │ │ │ │ ├── c3.png │ │ │ │ │ ├── d3.png │ │ │ │ │ ├── e3.png │ │ │ │ │ ├── f3.png │ │ │ │ │ ├── g3.png │ │ │ │ │ ├── h3.png │ │ │ │ │ ├── i3.png │ │ │ │ │ ├── j3.png │ │ │ │ │ ├── k3.png │ │ │ │ │ ├── l3.png │ │ │ │ │ └── m3.png │ │ │ │ │ ├── 4 │ │ │ │ │ ├── a4.png │ │ │ │ │ ├── b4.png │ │ │ │ │ ├── c4.png │ │ │ │ │ ├── d4.png │ │ │ │ │ ├── e4.png │ │ │ │ │ ├── f4.png │ │ │ │ │ ├── g4.png │ │ │ │ │ ├── h4.png │ │ │ │ │ ├── i4.png │ │ │ │ │ ├── j4.png │ │ │ │ │ ├── k4.png │ │ │ │ │ ├── l4.png │ │ │ │ │ ├── m4.png │ │ │ │ │ ├── n4.png │ │ │ │ │ └── o4.png │ │ │ │ │ ├── 5 │ │ │ │ │ ├── a5.png │ │ │ │ │ ├── b5.png │ │ │ │ │ ├── c5.png │ │ │ │ │ ├── d5.png │ │ │ │ │ ├── e5.png │ │ │ │ │ ├── f5.png │ │ │ │ │ ├── g5.png │ │ │ │ │ ├── h5.png │ │ │ │ │ ├── i5.png │ │ │ │ │ ├── j5.png │ │ │ │ │ └── k5.png │ │ │ │ │ └── basicdungeon.xcf │ │ │ └── samplegeomorphs.xcf │ │ ├── megacosm_icon.xcf │ │ ├── megacosm_icon_256.png │ │ ├── megacosm_icon_32.png │ │ ├── megacosm_icon_64.png │ │ ├── moon.png │ │ ├── potion.png │ │ └── star.png │ ├── js │ │ ├── background.js │ │ ├── city │ │ │ ├── city_env.js │ │ │ └── city_terrain.js │ │ ├── dungeon.js │ │ ├── flag │ │ │ ├── flag.js │ │ │ ├── flagborder.js │ │ │ ├── flagdivision.js │ │ │ ├── flagoverlay.js │ │ │ ├── flagshape.js │ │ │ ├── flagsymbol.js │ │ │ └── flagutils.js │ │ ├── geomorphdungeon.js │ │ ├── moon.js │ │ ├── planet.js │ │ ├── star.js │ │ └── threejs │ │ │ ├── Detector.js │ │ │ ├── ImprovedNoise.js │ │ │ ├── OrbitControls.js │ │ │ ├── seedrandom-2.3.10.min.js │ │ │ ├── stats.min.js │ │ │ └── three-r68.min.js │ └── threemap.html ├── templates │ ├── 400.html │ ├── 500.html │ ├── base.html │ ├── bond_builder.html │ ├── business.html │ ├── city.html │ ├── continent.html │ ├── country.html │ ├── debug.html │ ├── deity.html │ ├── flag.html │ ├── generic_builder.html │ ├── geomorphdungeon.html │ ├── govt.html │ ├── index.html │ ├── leader.html │ ├── magicitem_armor.html │ ├── magicitem_builder.html │ ├── magicitem_potion.html │ ├── magicitem_scroll.html │ ├── magicitem_weapon.html │ ├── map.html │ ├── moon.html │ ├── npc.html │ ├── npc_builder.html │ ├── oneliner.html │ ├── organization.html │ ├── planet.html │ ├── planet_builder.html │ ├── region.html │ ├── roguedungeon.html │ ├── sect.html │ ├── star.html │ ├── street.html │ ├── wanted.html │ └── weather.html └── util │ ├── Filters.py │ ├── Seeds.py │ └── __init__.py ├── pylintrc ├── reimport_data.py ├── requirements.txt ├── run.py ├── setup.cfg └── tests ├── test_artwork.py ├── test_bond.py ├── test_business.py ├── test_city.py ├── test_continent.py ├── test_country.py ├── test_cuisine.py ├── test_currency.py ├── test_curse.py ├── test_deity.py ├── test_drink.py ├── test_elixir.py ├── test_event.py ├── test_filter.py ├── test_flag.py ├── test_flaw.py ├── test_gem.py ├── test_generator.py ├── test_geomorphdungeon.py ├── test_govt.py ├── test_grafitti.py ├── test_jobposting.py ├── test_leader.py ├── test_legend.py ├── test_magicitem.py ├── test_megacosm.py ├── test_misfire.py ├── test_moon.py ├── test_motivation.py ├── test_mundaneitem.py ├── test_name.py ├── test_npc.py ├── test_oneliners.py ├── test_organization.py ├── test_phobia.py ├── test_planet.py ├── test_region.py ├── test_resource.py ├── test_roguedungeon.py ├── test_rumor.py ├── test_sect.py ├── test_seeds.py ├── test_star.py ├── test_starsystem.py ├── test_street.py ├── test_wanted.py └── test_weather.py /.coveragerc: -------------------------------------------------------------------------------- 1 | [run] 2 | branch = True 3 | 4 | [report] 5 | omit = /usr/*, env/*, ~/virtualenv/python*/*, ~/virtualenv/pypy*/*, /opt/python/*, ~/Projects/.env/*, fixtures/* 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Deprecated Data files 3 | data/*.xml 4 | 5 | # compiled python files 6 | *.py[cod] 7 | env/ 8 | venv/ 9 | # Secret Config files: 10 | config.py 11 | 12 | # generated files 13 | coverage/ 14 | .idea/ 15 | .terraform/ 16 | .coverage 17 | .tox 18 | nosetests.xml 19 | 20 | #vim temp files 21 | *.swp 22 | 23 | # prod deploy files 24 | .bash_history 25 | 26 | megacosm/static/gen/ 27 | megacosm/static/.webassets-cache/ 28 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | services: 3 | - "redis-server" 4 | python: 5 | - "2.7" 6 | - "pypy" 7 | install: 8 | - pip install -r requirements.txt 9 | before_script: 10 | - cp config.py.example config.py 11 | - python reimport_data.py 12 | script: nosetests 13 | after_success: 14 | coveralls 15 | notifications: 16 | irc: 17 | channels: "chat.freenode.net#megacosm" 18 | on_success: change # default: always 19 | on_failure: change # default: always 20 | use_notice: false 21 | skip_join: false 22 | template: 23 | - "%{repository} (%{commit}) : %{message} " 24 | - "Build details: %{build_url}" 25 | -------------------------------------------------------------------------------- /.vimrc: -------------------------------------------------------------------------------- 1 | " Indent Python in the Google way. 2 | 3 | execute pathogen#infect() 4 | setlocal indentexpr=GetGooglePythonIndent(v:lnum) 5 | 6 | let s:maxoff = 50 " maximum number of lines to look backwards. 7 | 8 | function GetGooglePythonIndent(lnum) 9 | 10 | " Indent inside parens. 11 | " Align with the open paren unless it is at the end of the line. 12 | " E.g. 13 | " open_paren_not_at_EOL(100, 14 | " (200, 15 | " 300), 16 | " 400) 17 | " open_paren_at_EOL( 18 | " 100, 200, 300, 400) 19 | call cursor(a:lnum, 1) 20 | let [par_line, par_col] = searchpairpos('(\|{\|\[', '', ')\|}\|\]', 'bW', 21 | \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" 22 | \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')" 23 | \ . " =~ '\\(Comment\\|String\\)$'") 24 | if par_line > 0 25 | call cursor(par_line, 1) 26 | if par_col != col("$") - 1 27 | return par_col 28 | endif 29 | endif 30 | 31 | " Delegate the rest to the original function. 32 | return GetPythonIndent(a:lnum) 33 | 34 | endfunction 35 | 36 | let pyindent_nested_paren="&sw*2" 37 | let pyindent_open_paren="&sw*2" 38 | 39 | -------------------------------------------------------------------------------- /config.py.example: -------------------------------------------------------------------------------- 1 | import fakeredis 2 | import redis 3 | 4 | class BaseConfiguration(object): 5 | # Statement for enabling the development environment 6 | DEBUG = True 7 | 8 | LOG_PATH = 'data/logging.json' 9 | 10 | REDIS_URL = 'redis://127.0.0.1:6379/' 11 | REDIS = redis.Redis() 12 | 13 | 14 | class ProductionConfiguration(BaseConfiguration): 15 | # Statement for enabling the development environment 16 | DEBUG = False 17 | 18 | LOG_PATH = 'data/logging.json' 19 | 20 | REDIS_URL = 'redis://127.0.0.1:6379/' 21 | REDIS = fakeredis.FakeRedis() 22 | 23 | 24 | class TestConfiguration(BaseConfiguration): 25 | # Statement for enabling the development environment 26 | DEBUG = True 27 | 28 | LOG_PATH = 'data/logging.json' 29 | 30 | REDIS_URL = 'redis://127.0.0.1:6379/' 31 | REDIS = fakeredis.FakeRedis() 32 | 33 | class IntegrationTestConfiguration(BaseConfiguration): 34 | # Statement for enabling the development environment 35 | DEBUG = True 36 | 37 | LOG_PATH='data/logging.json' 38 | 39 | REDIS_URL='redis://127.0.0.1:6379/' 40 | REDIS = redis.Redis() 41 | 42 | -------------------------------------------------------------------------------- /data/idea.data: -------------------------------------------------------------------------------- 1 | # random comments that need to be reviewed 2 | 3 | 4 | # 5 | #Average temp 6 | #precip 7 | #Humidity 8 | #wind speed 9 | #snowfall 10 | #sunshine 11 | #cloudy days 12 | # 13 | # 14 | #common natural disasters 15 | # 16 | #Named buildings 17 | # 18 | #Notable locations 19 | # 20 | #Shopping centers 21 | # 22 | #Specific churches 23 | #Parks 24 | # 25 | #Attractions 26 | # 27 | #Population education breakdown 28 | # 29 | #Sewer? 30 | # 31 | #Common family names 32 | # 33 | # 34 | #City financial status 35 | #citizen debt 36 | # 37 | #birth rate 38 | #infant mortality 39 | # 40 | #mechanism for murder 41 | #Language breakdown 42 | # 43 | #Urban:rural breakdown 44 | # 45 | #Crimes reported last year 46 | # 47 | #Last plague outbreak 48 | # 49 | #pollution 50 | 51 | -------------------------------------------------------------------------------- /data/logging.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "disable_existing_loggers": true, 4 | "formatters": { 5 | "simple": { 6 | "format": "[%(asctime)s] {%(name)s:%(lineno)d} %(levelname)s - %(message)s" 7 | }, 8 | "access_log": { 9 | "format": "%(message)s" 10 | } 11 | }, 12 | 13 | "handlers": { 14 | "info_file_handler": { 15 | "class": "logging.handlers.TimedRotatingFileHandler", 16 | "level": "INFO", 17 | "formatter": "simple", 18 | "filename": "log/info.log", 19 | "when": "midnight", 20 | "backupCount": "10", 21 | "encoding": "utf8" 22 | }, 23 | 24 | "error_file_handler": { 25 | "class": "logging.handlers.TimedRotatingFileHandler", 26 | "level": "ERROR", 27 | "formatter": "simple", 28 | "filename": "log/errors.log", 29 | "when": "midnight", 30 | "backupCount": "10", 31 | "encoding": "utf8" 32 | } 33 | }, 34 | "root": { 35 | "level": "DEBUG", 36 | "handlers": ["info_file_handler", "error_file_handler"] 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /data/moonname.data: -------------------------------------------------------------------------------- 1 | # 2 | 3 | LPUSH moonname_fullname_template {{params.pre}}{{params.root}}{{params.post}} 4 | LPUSH moonname_shortname_template {{params.fullname}} 5 | LPUSH moonname_formalname_template {{params.fullname}} 6 | 7 | 8 | set moonname_post_chance 30 9 | 10 | LPUSH moonname_pre Mo 11 | LPUSH moonname_pre Dei 12 | LPUSH moonname_pre Pho 13 | LPUSH moonname_pre Gana 14 | LPUSH moonname_pre Calli 15 | LPUSH moonname_pre Hima 16 | LPUSH moonname_pre Ela 17 | LPUSH moonname_pre Sino 18 | LPUSH moonname_pre The 19 | LPUSH moonname_pre Cha 20 | LPUSH moonname_pre Spo 21 | LPUSH moonname_pre Pro 22 | 23 | LPUSH moonname_root ro 24 | LPUSH moonname_root ka 25 | LPUSH moonname_root di 26 | LPUSH moonname_root do 27 | LPUSH moonname_root la 28 | LPUSH moonname_root ta 29 | LPUSH moonname_root le 30 | LPUSH moonname_root me 31 | 32 | LPUSH moonname_post bos 33 | LPUSH moonname_post mos 34 | LPUSH moonname_post pa 35 | LPUSH moonname_post sto 36 | LPUSH moonname_post pe 37 | LPUSH moonname_post ke 38 | LPUSH moonname_post lite 39 | LPUSH moonname_post dene 40 | LPUSH moonname_post noe 41 | LPUSH moonname_post se 42 | LPUSH moonname_post thys 43 | LPUSH moonname_post dus 44 | LPUSH moonname_post pso 45 | LPUSH moonname_post theus 46 | -------------------------------------------------------------------------------- /data/motivations/acceptance.data: -------------------------------------------------------------------------------- 1 | LPUSH motivationacceptance_text to gain the respect of {{params.npc.sex['possessive']}} peers 2 | LPUSH motivationacceptance_text to gain acceptance in {{params.npc.sex['possessive']}} church 3 | LPUSH motivationacceptance_text to impress someone 4 | 5 | -------------------------------------------------------------------------------- /data/motivations/achievement.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationachievement_text to win first place 5 | LPUSH motivationachievement_text to conquer a challenge 6 | LPUSH motivationachievement_text to perform an amazing feat 7 | -------------------------------------------------------------------------------- /data/motivations/affection.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationaffection_text by love 5 | LPUSH motivationaffection_text by {{params.npc.sex['possessive']}} lover 6 | LPUSH motivationaffection_text to protect those {{params.npc.sex['pronoun']}} cares about 7 | -------------------------------------------------------------------------------- /data/motivations/air.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationair_text by the inability to breathe 5 | LPUSH motivationair_text by breathing problems 6 | LPUSH motivationair_text after a near death situation involving suffocation 7 | -------------------------------------------------------------------------------- /data/motivations/art.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationart_text to create a masterpiece 5 | LPUSH motivationart_text to acquire a masterpiece 6 | LPUSH motivationart_text to help others recognize the beauty of art 7 | -------------------------------------------------------------------------------- /data/motivations/better.data: -------------------------------------------------------------------------------- 1 | LPUSH motivationbetter_text to make the world better 2 | LPUSH motivationbetter_text to fix the world 3 | 4 | -------------------------------------------------------------------------------- /data/motivations/broker.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationbroker_text to broker a truce over a trade war 4 | LPUSH motivationbroker_text to broker a truce over escalating tension 5 | 6 | -------------------------------------------------------------------------------- /data/motivations/challenge.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationchallenge_text to face any challenge 5 | LPUSH motivationchallenge_text to avoid any challenges 6 | LPUSH motivationchallenge_text by challenges 7 | -------------------------------------------------------------------------------- /data/motivations/clothing.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationclothing_text to find warm clothing 4 | LPUSH motivationclothing_text to find dry clothing 5 | LPUSH motivationclothing_text to find fitting clothes 6 | 7 | -------------------------------------------------------------------------------- /data/motivations/clubs.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationclubs_text to join a new group 5 | LPUSH motivationclubs_text to get into a secret organization 6 | LPUSH motivationclubs_text to hide the secrets of his affiliation 7 | -------------------------------------------------------------------------------- /data/motivations/cohesion.data: -------------------------------------------------------------------------------- 1 | LPUSH motivationcohesion_text to get {{params.npc.sex['possessive']}} family back together 2 | LPUSH motivationcohesion_text to reunite the {{params.npc.race}} populace 3 | LPUSH motivationcohesion_text to unite every {{params.npc.profession}} in the land 4 | LPUSH motivationcohesion_text to unionize every {{params.npc.profession}} 5 | 6 | 7 | -------------------------------------------------------------------------------- /data/motivations/comfort.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationcomfort_text to find a comfortable chair 4 | LPUSH motivationcomfort_text by severe back pain 5 | LPUSH motivationcomfort_text to find a doctor for an injury 6 | 7 | -------------------------------------------------------------------------------- /data/motivations/competition.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationcompetition_text to be the best around 5 | LPUSH motivationcompetition_text to win at everything 6 | LPUSH motivationcompetition_text by a recent, humiliating loss 7 | -------------------------------------------------------------------------------- /data/motivations/comradeship.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationcomradeship_text to protect {{params.npc.sex['possessive']}} colleagues 5 | LPUSH motivationcomradeship_text to bond with {{params.npc.sex['possessive']}} friends 6 | LPUSH motivationcomradeship_text to provide an alibi for {{params.npc.sex['possessive']}} comrades 7 | -------------------------------------------------------------------------------- /data/motivations/confidence.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationconfidence_text by confidence 5 | LPUSH motivationconfidence_text to be confident 6 | LPUSH motivationconfidence_text by a lack of confidence 7 | -------------------------------------------------------------------------------- /data/motivations/desperation.data: -------------------------------------------------------------------------------- 1 | LPUSH motivationdesperation_text by desperation 2 | LPUSH motivationdesperation_text to desperately ask for help 3 | 4 | -------------------------------------------------------------------------------- /data/motivations/destiny.data: -------------------------------------------------------------------------------- 1 | LPUSH motivationdestiny_text by destiny 2 | LPUSH motivationdestiny_text by a prophecy 3 | LPUSH motivationdestiny_text to avoid {{params.npc.sex['possessive']}} destiny 4 | LPUSH motivationdestiny_text to find {{params.npc.sex['possessive']}} destiny 5 | LPUSH motivationdestiny_text to rebel against {{params.npc.sex['possessive']}} destiny 6 | LPUSH motivationdestiny_text to not become a {{params.npc.profession}} like {{params.npc.sex['possessive']}} parents 7 | -------------------------------------------------------------------------------- /data/motivations/distinguish.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | LPUSH motivationdistinguish_text to distinguish himself as a {{params.npc.profession}} 3 | LPUSH motivationdistinguish_text to distinguish himself as a {{params.npc.race}} 4 | LPUSH motivationdistinguish_text to distinguish himself as a good person 5 | LPUSH motivationdistinguish_text by fame 6 | LPUSH motivationdistinguish_text to become famous 7 | LPUSH motivationdistinguish_text to become infamous 8 | 9 | -------------------------------------------------------------------------------- /data/motivations/dominance.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationdominance_text to dominate others 5 | LPUSH motivationdominance_text to be dominated by others 6 | LPUSH motivationdominance_text to fight the dominance of others 7 | -------------------------------------------------------------------------------- /data/motivations/drink.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationdrink_text to grab a drink 5 | LPUSH motivationdrink_text by severe thirst 6 | LPUSH motivationdrink_text by dehydration 7 | -------------------------------------------------------------------------------- /data/motivations/excretion.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationexcretion_text to find a bathroom 4 | LPUSH motivationexcretion_text to vomit 5 | LPUSH motivationexcretion_text to find a place to pee 6 | LPUSH motivationexcretion_text by intestinal distress 7 | LPUSH motivationexcretion_text by intestinal cramps 8 | 9 | -------------------------------------------------------------------------------- /data/motivations/experiences.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationexperiences_text to try new things 5 | LPUSH motivationexperiences_text to go to new places 6 | LPUSH motivationexperiences_text to experience the world 7 | -------------------------------------------------------------------------------- /data/motivations/family.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationfamily_text to find a spouse 4 | LPUSH motivationfamily_text to have children 5 | LPUSH motivationfamily_text to find {{params.npc.sex['possessive']}} child 6 | 7 | -------------------------------------------------------------------------------- /data/motivations/familysafety.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationfamilysafety_text to find a safe haven for {{params.npc.sex['possessive']}} family 4 | 5 | -------------------------------------------------------------------------------- /data/motivations/fear.data: -------------------------------------------------------------------------------- 1 | LPUSH motivationfear_text by {{params.npc.phobia.strength}} {{params.npc.phobia.kind}}. 2 | 3 | -------------------------------------------------------------------------------- /data/motivations/flee.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationflee_text to flee a following assassin 4 | LPUSH motivationflee_text to flee the law 5 | LPUSH motivationflee_text to flee debtors 6 | LPUSH motivationflee_text to flee an abusive lover 7 | LPUSH motivationflee_text to flee an abusive spouse 8 | LPUSH motivationflee_text to flee a natural disaster 9 | LPUSH motivationflee_text to flee overdue taxes 10 | LPUSH motivationflee_text to flee a bad family situation 11 | LPUSH motivationflee_text to flee from forced labor 12 | LPUSH motivationflee_text to flee from a slave owner 13 | 14 | -------------------------------------------------------------------------------- /data/motivations/follow.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationfollow_text to follow others 4 | LPUSH motivationfollow_text to investigate rumors of riches 5 | LPUSH motivationfollow_text to learn more about rediscovered ancient lore 6 | LPUSH motivationfollow_text to follow "the voices" 7 | LPUSH motivationfollow_text to follow instructions from an angel 8 | 9 | -------------------------------------------------------------------------------- /data/motivations/food.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationfood_text by severe hunger 5 | LPUSH motivationfood_text by the munchies 6 | -------------------------------------------------------------------------------- /data/motivations/freedom.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationfreedom_text to follow the open road 5 | LPUSH motivationfreedom_text to ensure others are free 6 | LPUSH motivationfreedom_text by the desire to be free 7 | -------------------------------------------------------------------------------- /data/motivations/friendship.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationfriendship_text to make friends 5 | LPUSH motivationfriendship_text to protect {{params.npc.sex['possessive']}} friends 6 | LPUSH motivationfriendship_text to help {{params.npc.sex['possessive']}} friends 7 | -------------------------------------------------------------------------------- /data/motivations/greed.data: -------------------------------------------------------------------------------- 1 | LPUSH motivationgreed_text to steal 2 | LPUSH motivationgreed_text to cheat 3 | LPUSH motivationgreed_text by greed 4 | LPUSH motivationgreed_text to hoard precious items 5 | LPUSH motivationgreed_text to hoard coins 6 | LPUSH motivationgreed_text to hoard knowledge 7 | LPUSH motivationgreed_text to be the richest {{params.npc.race}} in town 8 | LPUSH motivationgreed_text to not share the wealth 9 | LPUSH motivationgreed_text to lie about money 10 | 11 | -------------------------------------------------------------------------------- /data/motivations/growth.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationgrowth_text to grow spiritually 5 | LPUSH motivationgrowth_text to find {{params.npc.sex['possessive']}} own home 6 | LPUSH motivationgrowth_text to improve {{params.npc.sex['possessive']}} life 7 | -------------------------------------------------------------------------------- /data/motivations/health.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationhealth_text to lose weight 5 | LPUSH motivationhealth_text to eat better 6 | LPUSH motivationhealth_text to cure a recurring disease 7 | -------------------------------------------------------------------------------- /data/motivations/independence.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationindependence_text to earn {{params.npc.sex['possessive']}} freedom 5 | LPUSH motivationindependence_text to avoid going back to prison 6 | LPUSH motivationindependence_text to leave an abusive {{params.npc.sex['spouse']}} 7 | -------------------------------------------------------------------------------- /data/motivations/intimacy.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationintimacy_text to find love 5 | LPUSH motivationintimacy_text to find someone to trust 6 | LPUSH motivationintimacy_text to find a brothel 7 | -------------------------------------------------------------------------------- /data/motivations/justice.data: -------------------------------------------------------------------------------- 1 | LPUSH motivationjustice_text by a strong sense of justice 2 | LPUSH motivationjustice_text to see justice done 3 | LPUSH motivationjustice_text to punish the wicked 4 | LPUSH motivationjustice_text to punish the guilty 5 | LPUSH motivationjustice_text to punish the sinful 6 | LPUSH motivationjustice_text to see justice prevail 7 | 8 | -------------------------------------------------------------------------------- /data/motivations/knowledge.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationknowledge_text to ask "why?" 5 | LPUSH motivationknowledge_text to find out answers 6 | LPUSH motivationknowledge_text by a thirst for knowledge 7 | LPUSH motivationknowledge_text to remember who {{params.npc.sex['pronoun']}} is 8 | LPUSH motivationknowledge_text to learn something new 9 | LPUSH motivationknowledge_text to learn the dark arts 10 | LPUSH motivationknowledge_text to find forbidden lore 11 | LPUSH motivationknowledge_text to find out what happened to someone 12 | LPUSH motivationknowledge_text to find out what happened 13 | 14 | -------------------------------------------------------------------------------- /data/motivations/law.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationlaw_text to enforce the law 4 | LPUSH motivationlaw_text to make sure the law is enforced 5 | -------------------------------------------------------------------------------- /data/motivations/limits.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationlimits_text to set boundaries that keep people safe 5 | LPUSH motivationlimits_text to find the boundaries of safety 6 | LPUSH motivationlimits_text to enforce safe limitations 7 | -------------------------------------------------------------------------------- /data/motivations/mastery.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationmastery_text to become the greatest {{params.profession}} of all time 5 | LPUSH motivationmastery_text to master a certain skill 6 | LPUSH motivationmastery_text to with a championship competition 7 | -------------------------------------------------------------------------------- /data/motivations/meaning.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationmeaning_text to find meaning in {{params.npc.sex['possessive']}} life 5 | LPUSH motivationmeaning_text to find meaning in a prophecy 6 | LPUSH motivationmeaning_text by a quest for enlightenment 7 | -------------------------------------------------------------------------------- /data/motivations/mission.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated... 3 | 4 | LPUSH motivationmission_text by a quest from the gods 5 | LPUSH motivationmission_text to deliver a message from the gods 6 | LPUSH motivationmission_text by a diplomatic mission 7 | LPUSH motivationmission_text to collect a debt 8 | LPUSH motivationmission_text to capture someone special 9 | 10 | -------------------------------------------------------------------------------- /data/motivations/mystery.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | LPUSH motivationmystery_text to do something 3 | LPUSH motivationmystery_text to do something nefarious 4 | LPUSH motivationmystery_text to do something amazing 5 | LPUSH motivationmystery_text to do something impossible 6 | LPUSH motivationmystery_text to do something secret 7 | LPUSH motivationmystery_text to do something questionable 8 | LPUSH motivationmystery_text by an unsolved mystery 9 | LPUSH motivationmystery_text by something mysterious 10 | LPUSH motivationmystery_text by something {{params.npc.sex['pronoun']}} can't make sense of 11 | 12 | -------------------------------------------------------------------------------- /data/motivations/nature.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationnature_text to protect nature 5 | LPUSH motivationnature_text by the beauty of nature 6 | LPUSH motivationnature_text to preserve natural beauty 7 | -------------------------------------------------------------------------------- /data/motivations/order.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationorder_text by a need to keep order 4 | LPUSH motivationorder_text by an obsessive compulsion 5 | 6 | -------------------------------------------------------------------------------- /data/motivations/physicalsafety.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationphysicalsafety_text to find protection 4 | LPUSH motivationphysicalsafety_text to find the city guard 5 | LPUSH motivationphysicalsafety_text to learn self-defense 6 | 7 | -------------------------------------------------------------------------------- /data/motivations/power.data: -------------------------------------------------------------------------------- 1 | LPUSH motivationpower_text to gain power 2 | LPUSH motivationpower_text by a quest for a powerful artifact 3 | LPUSH motivationpower_text to become stronger 4 | LPUSH motivationpower_text to become faster 5 | LPUSH motivationpower_text to become smarter 6 | LPUSH motivationpower_text to become wiser 7 | LPUSH motivationpower_text to become more powerful 8 | 9 | -------------------------------------------------------------------------------- /data/motivations/prestige.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationprestige_text to be awarded a title 5 | LPUSH motivationprestige_text to be admired for {{params.npc.sex['possessive']}} skill 6 | LPUSH motivationprestige_text to be known as the greatest {{params.npc.profession}} in the city 7 | -------------------------------------------------------------------------------- /data/motivations/propertysafety.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationpropertysafety_text to keep {{params.npc.sex['possessive']}} stuff safe 5 | LPUSH motivationpropertysafety_text to protect {{params.npc.sex['possessive']}} property 6 | LPUSH motivationpropertysafety_text by past burglaries 7 | -------------------------------------------------------------------------------- /data/motivations/protectionfromelements.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationprotectionfromelements_text to hide from lightning 4 | LPUSH motivationprotectionfromelements_text to stay out of the sun 5 | -------------------------------------------------------------------------------- /data/motivations/recognition.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationrecognition_text to be recognized by others 5 | LPUSH motivationrecognition_text to not be recognized 6 | LPUSH motivationrecognition_text to be the greatest {{params.npc.profession}} of all time 7 | LPUSH motivationrecognition_text to be seen as useful 8 | -------------------------------------------------------------------------------- /data/motivations/relationships.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationrelationships_text to find better friends 5 | LPUSH motivationrelationships_text to not feel alone 6 | LPUSH motivationrelationships_text by the urge to befriend someone 7 | -------------------------------------------------------------------------------- /data/motivations/respect.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationrespect_text to get the respect {{params.npc.sex['pronoun']}} deserves 5 | LPUSH motivationrespect_text to be respected by {{params.npc.sex['possessive']}} peers 6 | LPUSH motivationrespect_text by gestures of respect 7 | -------------------------------------------------------------------------------- /data/motivations/responsibility.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationresponsibility_text to keep things afloat 5 | LPUSH motivationresponsibility_text by {{params.npc.sex['possessive']}} responsibility to others 6 | LPUSH motivationresponsibility_text to be responsible 7 | -------------------------------------------------------------------------------- /data/motivations/revenge.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationrevenge_text to avenge {{params.npc.sex['possessive']}} dead lover 4 | LPUSH motivationrevenge_text to avenge {{params.npc.sex['possessive']}} dead child 5 | LPUSH motivationrevenge_text to avenge {{params.npc.sex['possessive']}} dead {{params.npc.sex['spouse']}} 6 | LPUSH motivationrevenge_text to get revenge on a rival 7 | LPUSH motivationrevenge_text to make someone pay 8 | LPUSH motivationrevenge_text to avenge the death of an innocent 9 | LPUSH motivationrevenge_text to avenge the dead 10 | LPUSH motivationrevenge_text by revenge 11 | 12 | -------------------------------------------------------------------------------- /data/motivations/romance.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationromance_text to find {{params.npc.sex['possessive']}} lover 4 | LPUSH motivationromance_text by unrequited love 5 | LPUSH motivationromance_text to sabotage a rival 6 | LPUSH motivationromance_text to marry someone unobtainable 7 | LPUSH motivationromance_text to find the right person 8 | LPUSH motivationromance_text by love 9 | LPUSH motivationromance_text by lust 10 | 11 | -------------------------------------------------------------------------------- /data/motivations/security.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationsecurity_text to avoid being robbed 4 | LPUSH motivationsecurity_text to avoid criminals 5 | LPUSH motivationsecurity_text to not be murdered 6 | LPUSH motivationsecurity_text to track down a murderer 7 | 8 | -------------------------------------------------------------------------------- /data/motivations/see.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationsee_text to see the world 4 | LPUSH motivationsee_text to see the city 5 | LPUSH motivationsee_text to see {{params.npc.sex['possessive']}} family one last time 6 | 7 | -------------------------------------------------------------------------------- /data/motivations/seeking.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationseeking_text to seek someone out 4 | LPUSH motivationseeking_text to seek thrills and adventure 5 | LPUSH motivationseeking_text to seek honest work 6 | LPUSH motivationseeking_text to seek dishonest work 7 | LPUSH motivationseeking_text to seek revenge 8 | LPUSH motivationseeking_text to seek healing for a crippling injury 9 | LPUSH motivationseeking_text to seek healing for a loved one 10 | 11 | -------------------------------------------------------------------------------- /data/motivations/self-esteem.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationself-esteem_text to succeed 5 | LPUSH motivationself-esteem_text to prove {{params.npc.sex['pronoun']}} is not a failure 6 | LPUSH motivationself-esteem_text to prove {{params.npc.sex['third-person']}}self 7 | -------------------------------------------------------------------------------- /data/motivations/selfimprovement.data: -------------------------------------------------------------------------------- 1 | LPUSH motivationselfimprovement_text to better {{params.npc.sex['third-person']}}self 2 | LPUSH motivationselfimprovement_text to be a better person 3 | 4 | -------------------------------------------------------------------------------- /data/motivations/sex.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationsex_text to have children 5 | LPUSH motivationsex_text to find a {{params.npc.sex['spouse']}} 6 | LPUSH motivationsex_text to get laid 7 | -------------------------------------------------------------------------------- /data/motivations/shelter.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationshelter_text to find a new home 5 | LPUSH motivationshelter_text by the loss of {{params.npc.sex['posessive']}} home 6 | -------------------------------------------------------------------------------- /data/motivations/sleep.data: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Bob is motivated 4 | 5 | LPUSH motivationsleep_text to get some sleep 6 | LPUSH motivationsleep_text by severe exhaustion 7 | -------------------------------------------------------------------------------- /data/motivations/stability.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationstability_text to find peace 5 | LPUSH motivationstability_text to find stability 6 | -------------------------------------------------------------------------------- /data/motivations/status.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationstatus_text to be seen as important 5 | LPUSH motivationstatus_text to acquire a position of status 6 | LPUSH motivationstatus_text to retain his status 7 | LPUSH motivationstatus_text to regain his status 8 | -------------------------------------------------------------------------------- /data/motivations/stimulation.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationstimulation_text by boredom 4 | LPUSH motivationstimulation_text to find something interesting to do 5 | LPUSH motivationstimulation_text by an urge to tinker 6 | LPUSH motivationstimulation_text to read 7 | LPUSH motivationstimulation_text to tell someone about {{params.npc.sex['possessive']}} discovery 8 | 9 | -------------------------------------------------------------------------------- /data/motivations/teams.data: -------------------------------------------------------------------------------- 1 | 2 | # Bob is motivated 3 | 4 | LPUSH motivationteams_text to help out {{params.npc.sex['possessive']}} team 5 | LPUSH motivationteams_text to be a useful teammate 6 | LPUSH motivationteams_text to help {{params.npc.sex['possessive']}} partners 7 | LPUSH motivationteams_text to protect {{params.npc.sex['possessive']}} team 8 | LPUSH motivationteams_text to find his teammate 9 | -------------------------------------------------------------------------------- /data/motivations/travel.data: -------------------------------------------------------------------------------- 1 | # Bob is motivated 2 | 3 | LPUSH motivationtravel_text to travel 4 | LPUSH motivationtravel_text to travel with a diplomat 5 | LPUSH motivationtravel_text to travel with a circus 6 | LPUSH motivationtravel_text to go on an expedition 7 | LPUSH motivationtravel_text to travel with an important person 8 | LPUSH motivationtravel_text to travel with an acting troupe 9 | 10 | LPUSH motivationtravel_text to travel the world as a trader 11 | LPUSH motivationtravel_text to travel the world as a spy 12 | LPUSH motivationtravel_text to travel the world as a pilgrim 13 | LPUSH motivationtravel_text to travel the world as a missionary 14 | LPUSH motivationtravel_text to travel the world as a beggar 15 | LPUSH motivationtravel_text to travel the world as an unemployed {{params.npc.profession}} 16 | 17 | -------------------------------------------------------------------------------- /data/motivations/warmth.data: -------------------------------------------------------------------------------- 1 | 2 | #bob is motivated 3 | 4 | LPUSH motivationwarmth_text to keep warm 5 | LPUSH motivationwarmth_text to get out of the heat 6 | LPUSH motivationwarmth_text to get out of the cold 7 | LPUSH motivationwarmth_text to never be that cold again 8 | -------------------------------------------------------------------------------- /data/resources/dangerouswildlife.data: -------------------------------------------------------------------------------- 1 | 2 | LPUSH naturalresource_kind dangerouswildlife 3 | # Lala Land is know for it's _________ 4 | LPUSH naturalresource_dangerouswildlife_name_type dangerous 5 | LPUSH naturalresource_dangerouswildlife_name_type mutated 6 | 7 | LPUSH naturalresource_dangerouswildlife_name wildlife 8 | LPUSH naturalresource_dangerouswildlife_name animals 9 | 10 | #which ________ bears 11 | SET naturalresource_dangerouswildlife_method includes 12 | 13 | # which includes _________ 14 | LPUSH naturalresource_dangerouswildlife_product carnivorous game 15 | LPUSH naturalresource_dangerouswildlife_product giant turkeys 16 | LPUSH naturalresource_dangerouswildlife_product hungry bears 17 | LPUSH naturalresource_dangerouswildlife_product aggressive deer 18 | LPUSH naturalresource_dangerouswildlife_product rabid giraffes 19 | LPUSH naturalresource_dangerouswildlife_product man-eating spiders 20 | LPUSH naturalresource_dangerouswildlife_product unspeakable abominations 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /data/resources/gemmine.data: -------------------------------------------------------------------------------- 1 | 2 | LPUSH naturalresource_kind gemmines 3 | # Lala Land is know for it's _________ 4 | LPUSH naturalresource_gemmines_name_type deep 5 | LPUSH naturalresource_gemmines_name_type shallow 6 | 7 | LPUSH naturalresource_gemmines_name gem mines 8 | LPUSH naturalresource_gemmines_name gem deposits 9 | 10 | 11 | #which ________ diamonds 12 | SET naturalresource_gemmines_method provides 13 | 14 | # which provides 15 | LPUSH naturalresource_gemmines_product diamonds 16 | LPUSH naturalresource_gemmines_product emeralds 17 | LPUSH naturalresource_gemmines_product rubies 18 | LPUSH naturalresource_gemmines_product sapphires 19 | LPUSH naturalresource_gemmines_product feldspars 20 | LPUSH naturalresource_gemmines_product fluorspars 21 | LPUSH naturalresource_gemmines_product various gems 22 | LPUSH naturalresource_gemmines_product various gemstones 23 | LPUSH naturalresource_gemmines_product semiprecious stones 24 | LPUSH naturalresource_gemmines_product precious stones 25 | LPUSH naturalresource_gemmines_product pyrite 26 | LPUSH naturalresource_gemmines_product quartz 27 | 28 | -------------------------------------------------------------------------------- /data/resources/herdanimals.data: -------------------------------------------------------------------------------- 1 | 2 | LPUSH naturalresource_kind herdanimals 3 | 4 | LPUSH naturalresource_herdanimals_name_type daily 5 | LPUSH naturalresource_herdanimals_name_type yearly 6 | LPUSH naturalresource_herdanimals_name_type seasonal 7 | 8 | # Lala Land is know for it's 9 | LPUSH naturalresource_herdanimals_name herd animals 10 | LPUSH naturalresource_herdanimals_name herds 11 | 12 | #which ________ cattle 13 | SET naturalresource_herdanimals_method include 14 | 15 | # which include 16 | 17 | LPUSH naturalresource_herdanimals_product cattle 18 | LPUSH naturalresource_herdanimals_product goats 19 | LPUSH naturalresource_herdanimals_product sheep 20 | LPUSH naturalresource_herdanimals_product seals 21 | LPUSH naturalresource_herdanimals_product llamas 22 | LPUSH naturalresource_herdanimals_product horses 23 | LPUSH naturalresource_herdanimals_product pigs 24 | LPUSH naturalresource_herdanimals_product alligators 25 | LPUSH naturalresource_herdanimals_product bison 26 | LPUSH naturalresource_herdanimals_product deer 27 | LPUSH naturalresource_herdanimals_product giraffes 28 | LPUSH naturalresource_herdanimals_product kangaroos 29 | 30 | -------------------------------------------------------------------------------- /data/resources/lake.data: -------------------------------------------------------------------------------- 1 | 2 | LPUSH naturalresource_kind lake 3 | 4 | LPUSH naturalresource_lake_name_type freshwater 5 | LPUSH naturalresource_lake_name_type saltwater 6 | # Lala Land is know for it's 7 | LPUSH naturalresource_lake_name lake 8 | LPUSH naturalresource_lake_name waterway 9 | 10 | #which ________ fish 11 | SET naturalresource_lake_method provides 12 | 13 | 14 | # which provides 15 | LPUSH naturalresource_lake_product sport fishing 16 | LPUSH naturalresource_lake_product fish 17 | LPUSH naturalresource_lake_product tourism 18 | 19 | -------------------------------------------------------------------------------- /data/resources/oremine.data: -------------------------------------------------------------------------------- 1 | 2 | LPUSH naturalresource_kind oremines 3 | # Lala Land is know for it's _________ 4 | LPUSH naturalresource_oremines_name_type deep 5 | LPUSH naturalresource_oremines_name_type shallow 6 | 7 | LPUSH naturalresource_oremines_name mines 8 | LPUSH naturalresource_oremines_name deposits 9 | LPUSH naturalresource_oremines_name ore deposits 10 | 11 | #which ________ stuff 12 | SET naturalresource_oremines_method produce 13 | 14 | # which provides 15 | LPUSH naturalresource_oremines_product copper ore 16 | LPUSH naturalresource_oremines_product gold ore 17 | LPUSH naturalresource_oremines_product iron ore 18 | LPUSH naturalresource_oremines_product lead ore 19 | LPUSH naturalresource_oremines_product precious metal ore 20 | LPUSH naturalresource_oremines_product nickel ore 21 | LPUSH naturalresource_oremines_product platinum ore 22 | LPUSH naturalresource_oremines_product silver ore 23 | LPUSH naturalresource_oremines_product tin ore 24 | LPUSH naturalresource_oremines_product titanium ore 25 | LPUSH naturalresource_oremines_product vanadium ore 26 | LPUSH naturalresource_oremines_product zinc ore 27 | LPUSH naturalresource_oremines_product nonferrous metal ore 28 | 29 | -------------------------------------------------------------------------------- /data/resources/quarry.data: -------------------------------------------------------------------------------- 1 | LPUSH naturalresource_kind quarry 2 | # Lala Land is know for it's _________ 3 | LPUSH naturalresource_quarry_name_type narrow 4 | LPUSH naturalresource_quarry_name_type wide 5 | LPUSH naturalresource_quarry_name_type deep 6 | LPUSH naturalresource_quarry_name_type shallow 7 | 8 | LPUSH naturalresource_quarry_name quarries 9 | #which ________ stuff 10 | SET naturalresource_quarry_method provides 11 | 12 | # which provides 13 | LPUSH naturalresource_quarry_product gravel 14 | LPUSH naturalresource_quarry_product granite 15 | LPUSH naturalresource_quarry_product gravel and sand 16 | LPUSH naturalresource_quarry_product building stone 17 | LPUSH naturalresource_quarry_product limestone 18 | LPUSH naturalresource_quarry_product marble 19 | LPUSH naturalresource_quarry_product slate 20 | LPUSH naturalresource_quarry_product petroleum 21 | LPUSH naturalresource_quarry_product naphtha 22 | LPUSH naturalresource_quarry_product oil 23 | 24 | 25 | -------------------------------------------------------------------------------- /data/resources/safewildlife.data: -------------------------------------------------------------------------------- 1 | 2 | LPUSH naturalresource_kind safewildlife 3 | # Lala Land is know for it's _________ 4 | LPUSH naturalresource_safewildlife_name_type safe 5 | LPUSH naturalresource_safewildlife_name_type tame 6 | LPUSH naturalresource_safewildlife_name_type mutated 7 | 8 | LPUSH naturalresource_safewildlife_name wildlife 9 | LPUSH naturalresource_safewildlife_name animals 10 | LPUSH naturalresource_safewildlife_name game 11 | 12 | #which ________ bears 13 | SET naturalresource_safewildlife_method includes 14 | 15 | # which includes _________ 16 | LPUSH naturalresource_safewildlife_product gentle deer 17 | LPUSH naturalresource_safewildlife_product delicious quail 18 | LPUSH naturalresource_safewildlife_product wild horses 19 | LPUSH naturalresource_safewildlife_product friendly deer 20 | LPUSH naturalresource_safewildlife_product calm kangaroos 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /data/resources/unskilledlabor.data: -------------------------------------------------------------------------------- 1 | 2 | LPUSH laborresource_kind unskilledlabor 3 | 4 | LPUSH laborresource_unskilledlabor_name_type strong 5 | LPUSH laborresource_unskilledlabor_name_type untiring 6 | 7 | # Lalabor is know for it's 8 | LPUSH laborresource_unskilledlabor_name unskilled labor 9 | 10 | #which ________ stuff 11 | SET laborresource_unskilledlabor_method produces 12 | 13 | # which provides 14 | 15 | LPUSH laborresource_unskilledlabor_product various services 16 | LPUSH laborresource_unskilledlabor_product cheap muscle 17 | LPUSH laborresource_unskilledlabor_product a powerful workforce 18 | 19 | 20 | -------------------------------------------------------------------------------- /data/starsystem.data: -------------------------------------------------------------------------------- 1 | # 2 | #TODO add a stat 3 | 4 | ZADD starsystem_starcount 70 { "name":"single star", "count":1, "score":70 } 5 | ZADD starsystem_starcount 95 { "name":"binary star", "count":2, "score":95 } 6 | ZADD starsystem_starcount 100 { "name":"trinary star", "count":3, "score":100 } 7 | 8 | -------------------------------------------------------------------------------- /docs/gen_creation.txt: -------------------------------------------------------------------------------- 1 | The following are steps needed to create a new oneliner. 2 | 3 | 4 | create a data file under data/ with plenty of entries. (use artwork.data as a template) 5 | 6 | 7 | create a generator script under megacosm/generators/ (use artwork.py as a template) 8 | 9 | 10 | # create stub for Flask 11 | in megacosm/oneliners.py 12 | Clone one of the pre-existing sections, then change the titletext, variables, and strings to your new oneliner. 13 | Make sure you get the generator and the builder 14 | add the new class import 15 | 16 | add an import in megacosm/generators/__init__.py 17 | 18 | edit megacosm/templates/base.html to include the new oneliner 19 | 20 | run ./reimport_data.py 21 | -------------------------------------------------------------------------------- /fixtures/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ 5 | Fixtures package 6 | """ 7 | 8 | import fixtures.artwork 9 | import fixtures.bond 10 | import fixtures.business 11 | import fixtures.city 12 | import fixtures.continent 13 | import fixtures.country 14 | import fixtures.cuisine 15 | import fixtures.currency 16 | import fixtures.curse 17 | import fixtures.deity 18 | import fixtures.drink 19 | import fixtures.dungeon 20 | import fixtures.event 21 | import fixtures.flag 22 | import fixtures.flaw 23 | import fixtures.gem 24 | import fixtures.generator 25 | import fixtures.geomorphdungeon 26 | import fixtures.govt 27 | import fixtures.grafitti 28 | import fixtures.jobposting 29 | import fixtures.leader 30 | import fixtures.legend 31 | import fixtures.magicitem 32 | import fixtures.misfire 33 | import fixtures.moon 34 | import fixtures.mundaneitem 35 | import fixtures.npc 36 | import fixtures.organization 37 | import fixtures.motivation 38 | import fixtures.planet 39 | import fixtures.phobia 40 | import fixtures.region 41 | import fixtures.resource 42 | import fixtures.roguedungeon 43 | import fixtures.rumor 44 | import fixtures.sect 45 | import fixtures.star 46 | import fixtures.starsystem 47 | import fixtures.street 48 | import fixtures.wanted 49 | import fixtures.weather 50 | -------------------------------------------------------------------------------- /fixtures/artwork.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.lpush('artwork_metal', 'bronze') 9 | self.redis.lpush('artworkweapon_subkind', 'spear') 10 | self.redis.lpush('artwork_kind', 'weapon') 11 | self.redis.lpush('artworkweapon_template', 12 | 'A ceremonial {{params.metal}} {{params.subkind}} with '+ 13 | 'a {{params.gem.kind_description["name"]}} in the pommel') 14 | -------------------------------------------------------------------------------- /fixtures/bond.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | 9 | self.redis.lpush('bond_when', 'Way back when') 10 | self.redis.lpush('bond_template', '{{params.partyA}} amused {{params.partyB}} in an unusual way.') 11 | 12 | -------------------------------------------------------------------------------- /fixtures/curse.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.hset('curse_kind_description', 'bezerker', 9 | '{"name":"bezerker", "description":"causes intermittent, uncontrollable rage in the victim" }') 10 | self.redis.zadd('curse_duration', '{"name":"last a lifetime", "score":100 }', 100) 11 | self.redis.lpush('curse_kind', 'bezerker') 12 | self.redis.lpush('curse_removal', 'performing an epic task') 13 | self.redis.lpush('curse_template', 14 | 'The {{params.kind_description["name"]|title}} Curse {{params.kind_description["description"]}},'+ 15 | ' and can only be undone by {{params.removal}}. Untreated, the effects of the curse '+ 16 | '{{params.duration["name"]}}.') 17 | -------------------------------------------------------------------------------- /fixtures/drink.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | 9 | self.redis.lpush('drink_appearance', 'amber') 10 | self.redis.lpush('drink_feel', 'sticky') 11 | self.redis.lpush('drink_flavor', 'spice') 12 | self.redis.lpush('drink_flavor_strength', 'overpowering') 13 | self.redis.lpush('drink_template', 14 | 'You sip {{params.appearance|article}} {{params.type}} that is {{params.rarity["name"]}} to '+ 15 | '{{params.region.name.fullname}}. It has a {{params.flavor_strength}} flavor of '+ 16 | '{{params.flavor}}, and feels {{params.feel}} on the tongue.') 17 | self.redis.lpush('drink_type', 'broth') 18 | self.redis.zadd('drink_price', '{"name":"lavishly priced", "score":100 }', 100) 19 | self.redis.zadd('drink_rarity', '{"name":"unique", "score":100 }', 100) 20 | self.redis.zadd('drink_volume', '{"name":"in excess", "score":100 }', 100) 21 | 22 | -------------------------------------------------------------------------------- /fixtures/dungeon.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.lpush('dungeonname_fullname_template', 9 | '{{params.descriptor}} {{params.place}} of the {{params.thingtype}} of {{params.thing}}') 10 | self.redis.lpush('dungeonname_shortname_template', 'The {{params.place}}') 11 | self.redis.lpush('dungeonname_formalname_template', '{{params.fullname}}') 12 | 13 | self.redis.lpush('dungeonname_place', 'panopticon') 14 | self.redis.lpush('dungeonname_descriptor', 'lost') 15 | self.redis.lpush('dungeonname_thingtype', 'king') 16 | self.redis.lpush('dungeonname_thing', 'chaos') 17 | -------------------------------------------------------------------------------- /fixtures/event.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.zadd('event_magnitude', '{ "name":"of dire importance", "score":100 }', 100) 9 | self.redis.lpush('eventfestival_variety', 'a trade') 10 | self.redis.lpush('eventdisaster_variety', 'animal infestation') 11 | self.redis.lpush('event_kind', 'disaster') 12 | self.redis.lpush('event_template', 13 | '{{params.variety }} {{params.kind}}, which is {{params.magnitude["name"]}}'+ 14 | ' to the people in the area.') 15 | 16 | -------------------------------------------------------------------------------- /fixtures/flaw.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.zadd('flaw_scope', '{ "name":"major" , "score":100 }', 100) 9 | self.redis.zadd('flaw_quality', '{ "name":"poor" , "score":100 }', 100) 10 | self.redis.lpush('flaw_allergy', 'horses') 11 | self.redis.lpush('flaw_enemytrait', 'vicious') 12 | self.redis.lpush('flaw_template', "You have {{params.scope['name']|article}} an allergy to {{params.allergy}}") 13 | 14 | -------------------------------------------------------------------------------- /fixtures/gem.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.zadd('gem_amount', '{ "name":"a single", "min":1, "max":100, "score":100 }', 100.0) 9 | self.redis.zadd('gem_value', '{ "name":"costly", "score":100 }', 100.0) 10 | self.redis.zadd('gem_saturation', '{ "name":"blanched", "score":100 }', 100.0) 11 | self.redis.zadd('gem_quality', '{ "name":"chipped", "score":100 }', 100.0) 12 | self.redis.hset('gem_kind_description', 'emerald', '{ "name":"emerald", "color":["green"] }') 13 | self.redis.lpush('gem_kind', 'emerald') 14 | self.redis.lpush('gem_template', 'A Gem Template') 15 | 16 | -------------------------------------------------------------------------------- /fixtures/grafitti.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.lpush('grafitti_template', 9 | 'The following message is written in {{params.language}} with {{params.material}}: '+ 10 | '"{{params.message}}"') 11 | self.redis.lpush('grafitti_language', 'Gnomish') 12 | self.redis.lpush('grafitti_hero', 'warrior') 13 | self.redis.lpush('grafitti_monster', 'mimic') 14 | self.redis.lpush('grafitti_loss', 'a leg') 15 | self.redis.lpush('grafitti_stare', 'the leader') 16 | self.redis.lpush('grafitti_threatcount', '1') 17 | self.redis.lpush('grafitti_message', 'The {{params.hero}} tried to protect us, but was too late...') 18 | self.redis.lpush('grafitti_signature', 'with a hand print.') 19 | self.redis.lpush('grafitti_age', 'less than a day old.') 20 | self.redis.lpush('grafitti_material', 'slime') 21 | 22 | -------------------------------------------------------------------------------- /fixtures/misfire.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.lpush('misfire_template', 9 | '{{params.target}} grow a pair of small horns (2 in each) on the forehead, which contrasts '+ 10 | 'with skin color. A remove curse may remove them.') 11 | 12 | -------------------------------------------------------------------------------- /fixtures/moon.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.zadd('moon_size', '{ "name":"massive", "multiplier":0.8 , "score":100 }', 100) 9 | self.redis.zadd('moon_color', '{ "name":"dull brown", "color":"0x876e4b" , "score":100 }', 100) 10 | self.redis.lpush('moonname_fullname_template', '{{params.pre}}{{params.root}}{{params.post}}') 11 | self.redis.lpush('moonname_shortname_template', '{{params.fullname}}') 12 | self.redis.lpush('moonname_formalname_template', '{{params.fullname}}') 13 | self.redis.lpush('moonname_pre', 'Hima') 14 | self.redis.lpush('moonname_root', 'la') 15 | self.redis.lpush('moonname_post', 'se') 16 | -------------------------------------------------------------------------------- /fixtures/motivation.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.lpush('motivationacceptance_text', "to gain the respect of {{params.npc.sex['possessive']}} peers") 9 | self.redis.lpush('motivationfear_text', 'by {{params.npc.phobia.strength}} {{params.npc.phobia.kind}}.') 10 | self.redis.lpush('motivation_kind', 'acceptance') 11 | self.redis.lpush('motivation_kind', 'acceptance') 12 | 13 | -------------------------------------------------------------------------------- /fixtures/mundaneitem.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.zadd('mundaneitem_quality', '{"name":"excellent", "score":100 }', 100) 9 | self.redis.zadd('mundaneitem_repair', '{"name":"in pristine condition", "score":100 }', 100) 10 | self.redis.lpush('mundaneitem_kind', 'wool tunic') 11 | self.redis.lpush('mundaneitem_metal', 'copper') 12 | 13 | self.redis.lpush('mundaneitem_template', 14 | '{{params.quality["name"]|article}} {{params.kind}} that is {{params.repair["name"]}}') 15 | -------------------------------------------------------------------------------- /fixtures/phobia.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.lpush('phobia_template', 9 | 'You have {{params.strength["name"]}} {{params.kind_description["name"]}}, '+ 10 | 'which is a fear of {{params.kind_description["description"]}}.') 11 | self.redis.zadd('phobia_strength', '{"name":"moderate", "score":100 }', 100) 12 | self.redis.lpush('phobia_kind', 'ablutophobia') 13 | self.redis.hset('phobia_kind_description', 'ablutophobia', 14 | '{"name":"Ablutophobia", "description":"washing or bathing" }') 15 | -------------------------------------------------------------------------------- /fixtures/roguedungeon.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.hset('roguedungeonroom_kind_description', 'audiencechamber', 9 | '{ "name":"audience chamber", "description":"" }') 10 | self.redis.lpush('roguedungeonroom_kind', 'audiencechamber') 11 | self.redis.lpush('roguedungeon_theme', 'fortress') 12 | self.redis.zadd('roguedungeon_build', '{"name":"dungeon and caves", "score": 100 }', 100) 13 | self.redis.zadd('roguedungeon_refinement', '{"name":"dungeon", "score": 100 }', 100) 14 | self.redis.zadd('roguedungeon_room_count', '{"name":"lots", "minsize":25, "maxsize":50, "score": 100 }', 100) 15 | self.redis.zadd('roguedungeon_room_size', '{"name":"gigantic", "minsize":3, "maxsize":20, "score": 100 }', 100) 16 | self.redis.zadd('roguedungeon_size', '{"name":"gigantic", "minsize":60, "maxsize":60, "score": 100 }', 100) 17 | 18 | -------------------------------------------------------------------------------- /fixtures/rumor.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.lpush('rumor_belief', '{{params.believer}} wants to believe it.') 9 | self.redis.lpush('rumor_dangeroushobby', 'drunkenly arguing with people') 10 | self.redis.lpush('rumor_fearresult', 'fell to the ground, dead') 11 | self.redis.lpush('rumor_heardit', '{{params.source}} said') 12 | self.redis.lpush('rumor_location', 'old millhouse') 13 | self.redis.lpush('rumor_past', ' last year') 14 | self.redis.lpush('rumor_scarything', 'dragon') 15 | self.redis.lpush('rumor_stealth', 'quietly') 16 | self.redis.lpush('rumor_template', 17 | '{{params.culprit}} {{params.stealth}} {{params.verbed}} {{params.victim}}{{params.past}}.') 18 | self.redis.lpush('rumor_truth', '(True.)') 19 | self.redis.lpush('rumor_verbed', 'maimed') 20 | 21 | -------------------------------------------------------------------------------- /fixtures/sect.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.zadd('sect_acceptance', '{"name":"saintly", "score":100 }', 100) 9 | self.redis.lpush("sect_kind","chapter") 10 | self.redis.lpush("sectname_fullname_template","{{params.title}} {{params.pre}}{{params.root}}{{params.post}} {{params.trailer}}") 11 | self.redis.lpush("sectname_shortname_template","{{params.fullname}}") 12 | self.redis.lpush("sectname_formalname_template","{{params.fullname}}") 13 | 14 | self.redis.lpush("sectname_title","Order of the") 15 | self.redis.lpush("sectname_pre","Orei") 16 | self.redis.lpush("sectname_root","bal") 17 | self.redis.lpush("sectname_post","ic") 18 | self.redis.lpush("name_sect_trailer","Followers") 19 | -------------------------------------------------------------------------------- /fixtures/star.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.lpush('starname_fullname_template', '{{params.pre}}{{params.root}}{{params.post}}') 9 | self.redis.lpush('starname_shortname_template', '{{params.fullname}}') 10 | self.redis.lpush('starname_formalname_template', '{{params.fullname}}') 11 | self.redis.lpush('starname_pre', 'Kro') 12 | self.redis.lpush('starname_root', 'j') 13 | self.redis.lpush('starname_post', 'el') 14 | self.redis.zadd('star_size', '{ "name":"massive", "multiplier":3.0, "score":100 }', 100) 15 | self.redis.zadd('star_color', '{ "name":"red", "color":"0xff0000", "luminosity":0.2, "score":100 }', 100) 16 | 17 | 18 | self.redis.lpush('starposition', '{"name": "companion", "x":-150, "y":4, "z":4 }') 19 | self.redis.lpush('starposition', '{"name": "companion2", "x":-150, "y":-4, "z":4 }') 20 | -------------------------------------------------------------------------------- /fixtures/starsystem.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.zadd('starsystem_starcount', '{ "name":"binary star", "count":2, "score":100 }', 100.0) 9 | 10 | -------------------------------------------------------------------------------- /fixtures/wanted.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.lpush('wanted_by', 'Regional Authorities') 9 | self.redis.lpush('wanted_condition', 'proof of death') 10 | self.redis.lpush('wanted_crime', 'Desecration') 11 | self.redis.lpush('wanted_headline', 'Notice:') 12 | self.redis.lpush('wanted_lastseen', 'underground') 13 | self.redis.lpush('wanted_reward', '10 gold') 14 | self.redis.lpush('wanted_title', '"Loathsome"') 15 | self.redis.lpush('wanted_warning', 'has killed before') 16 | 17 | -------------------------------------------------------------------------------- /fixtures/weather.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Include this to load these fixtures. """ 5 | 6 | def import_fixtures(self): 7 | """ Create simple fixture entries...""" 8 | self.redis.lpush('weather_cloud', 'cumulus') 9 | self.redis.lpush('weather_storm', 'downburst') 10 | self.redis.lpush('weather_time', 'in the early evening') 11 | self.redis.lpush('weather_precipitation_type', 'sleeting') 12 | self.redis.zadd('weather_precipitation', '{ "name":"heavily", "score":100 }', 100) 13 | self.redis.zadd('weather_temp', '{ "name":"unbearably hot", "score":100 }', 100) 14 | self.redis.zadd('weather_wind', '{ "name":"hurricane-force", "score":100 }', 100) 15 | 16 | self.redis.lpush('weather_template', 17 | 'Right now it is {{params.temp["name"]}} outside, with {{params.wind["name"]}} winds.'+ 18 | '{%if params.precipitation%} It is {{params.precipitation["name"] }} '+ 19 | '{{params.precipitation_type}} at the moment.{%endif%}{%if params.cloud%} There are '+ 20 | '{{ params.cloud }} clouds in the sky above.{%endif%}{%if params.storm%} {{ params.storm '+ 21 | '|article |capitalize}} is approaching, and will hit {{params.time}}.{%endif%}') 22 | -------------------------------------------------------------------------------- /integration_tests/test_mundaneitems.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from megacosm.generators import MundaneItem 5 | import unittest2 as unittest 6 | 7 | from pprint import pprint 8 | 9 | import redis 10 | from config import IntegrationTestConfiguration 11 | 12 | 13 | class TestMundaneItemIntegration(unittest.TestCase): 14 | 15 | def setUp(self): 16 | self.redis = redis.from_url(IntegrationTestConfiguration.REDIS_URL) 17 | 18 | def tearDown(self): 19 | """Tear stuff Down.""" 20 | #self.redis.flushall() 21 | 22 | def test_kinds(self): 23 | """ """ 24 | for kind in self.redis.lrange('mundaneitem_kind',0,-1): 25 | print "kind: "+kind 26 | for template in self.redis.lrange('mundaneitem_template',0,-1): 27 | print "template: "+template 28 | mundaneitem = MundaneItem(self.redis, {'kind':kind, 'template':template} ) 29 | rendered_kind= mundaneitem.render_template(kind) 30 | self.assertEqual(rendered_kind, str(mundaneitem.kind)) 31 | 32 | self.assertNotIn('{', str(mundaneitem)) 33 | self.assertNotIn('}', str(mundaneitem)) 34 | self.assertNotIn('params', str(mundaneitem)) 35 | 36 | -------------------------------------------------------------------------------- /log/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | # This is needed to make the log directory show up. 3 | * 4 | # Except this file 5 | !.gitignore 6 | -------------------------------------------------------------------------------- /megacosm/generators/artwork.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | """ Artwork will generate several type of artwork. """ 4 | import logging 5 | from megacosm.generators.gem import Gem 6 | from megacosm.generators.deity import Deity 7 | from megacosm.generators.generator import Generator 8 | #from pprint import pprint 9 | 10 | class Artwork(Generator): 11 | """Generate an exquisite piece of artwork.""" 12 | 13 | def __init__(self, redis, features={}): 14 | Generator.__init__(self, redis, features) 15 | self.logger = logging.getLogger(__name__) 16 | 17 | self.generate_features('artwork'+self.kind) 18 | 19 | if not hasattr(self, 'gem'): 20 | setattr(self, 'gem', Gem(self.redis)) 21 | if not hasattr(self, 'deity'): 22 | setattr(self, 'deity', Deity(self.redis)) 23 | 24 | if not hasattr(self, 'text'): 25 | self.text = self.render_template(self.template) 26 | self.text = self.render_template(self.text) 27 | self.text = self.text[0].capitalize() + self.text[1:] 28 | 29 | def __str__(self): 30 | return self.text 31 | -------------------------------------------------------------------------------- /megacosm/generators/cuisine.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Cuisine may be specific to a region or named after the creator. """ 5 | 6 | import logging 7 | from megacosm.generators.generator import Generator 8 | from megacosm.generators.npc import NPC 9 | from megacosm.generators.region import Region 10 | 11 | 12 | class Cuisine(Generator): 13 | 14 | """ What meals are common in your area? """ 15 | 16 | def __init__(self, redis, features={}): 17 | Generator.__init__(self, redis, features) 18 | self.logger = logging.getLogger(__name__) 19 | 20 | # You never know if you'll want a creator for your meal 21 | 22 | if not hasattr(self, 'creator'): 23 | setattr(self, 'creator', NPC(self.redis)) 24 | 25 | if not hasattr(self, 'region'): 26 | setattr(self, 'region', Region(self.redis)) 27 | 28 | # Double parse the template to fill in templated template values. 29 | 30 | if not hasattr(self, 'text'): 31 | self.text = self.render_template(self.template) 32 | self.text = self.render_template(self.text) 33 | 34 | # remember to capitalize! 35 | 36 | self.text = self.text[0].capitalize() + self.text[1:] 37 | 38 | def __str__(self): 39 | return self.text 40 | -------------------------------------------------------------------------------- /megacosm/generators/currency.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Gold, Silver and Copper are boring currencies; this spices them up a bit. """ 5 | 6 | import logging 7 | import random 8 | from megacosm.generators.generator import Generator 9 | from megacosm.generators.npc import NPC 10 | from megacosm.generators.name import Name 11 | 12 | 13 | class Currency(Generator): 14 | 15 | """ Define a currency to be used in your game """ 16 | 17 | def __init__(self, redis, features={}): 18 | 19 | Generator.__init__(self, redis, features) 20 | self.logger = logging.getLogger(__name__) 21 | 22 | if not hasattr(self, 'count'): 23 | self.count = random.randint(self.amount['min'], self.amount['max']) 24 | if not hasattr(self, 'name'): 25 | self.name = Name(self.redis, 'currency') 26 | 27 | # Double parse the template to fill in templated template values. 28 | 29 | if not hasattr(self, 'text'): 30 | self.text = self.render_template(self.template) 31 | self.text = self.render_template(self.text) 32 | self.text = self.text[0].capitalize() + self.text[1:] 33 | 34 | def __str__(self): 35 | return self.text 36 | -------------------------------------------------------------------------------- /megacosm/generators/curse.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | """ Custom Curses can spice up a game.""" 4 | 5 | import logging 6 | from megacosm.generators.generator import Generator 7 | 8 | 9 | class Curse(Generator): 10 | """Generate a horrible curse.""" 11 | 12 | def __init__(self, redis, features={}): 13 | Generator.__init__(self, redis, features) 14 | self.logger = logging.getLogger(__name__) 15 | 16 | if not hasattr(self, 'text'): 17 | self.text = self.render_template(self.template) 18 | self.text = self.render_template(self.text) 19 | self.text = self.text[0].capitalize() + self.text[1:] 20 | 21 | def __str__(self): 22 | return self.text 23 | 24 | -------------------------------------------------------------------------------- /megacosm/generators/drink.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ The Drink is a tasty beverage found at your local tavern.""" 5 | 6 | import logging 7 | from megacosm.generators.generator import Generator 8 | from megacosm.generators.npc import NPC 9 | from megacosm.generators.region import Region 10 | 11 | 12 | class Drink(Generator): 13 | """ Drink has a creator and a region. """ 14 | def __init__(self, redis, features={}): 15 | Generator.__init__(self, redis, features) 16 | self.logger = logging.getLogger(__name__) 17 | 18 | if not hasattr(self, 'creator'): 19 | setattr(self, 'creator', NPC(self.redis)) 20 | if not hasattr(self, 'region'): 21 | setattr(self, 'region', Region(self.redis)) 22 | 23 | if not hasattr(self, 'text'): 24 | self.text = self.render_template(self.template) 25 | self.text = self.render_template(self.text) 26 | self.text = self.text[0].capitalize() + self.text[1:] 27 | 28 | def __str__(self): 29 | return self.text 30 | -------------------------------------------------------------------------------- /megacosm/generators/elixir.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from generator import Generator 5 | import logging 6 | 7 | 8 | class Elixir(Generator): 9 | 10 | def __init__(self, redis, features={}): 11 | 12 | Generator.__init__(self, redis, features) 13 | self.logger = logging.getLogger(__name__) 14 | 15 | if not hasattr(self, 'text'): 16 | self.text = self.render_template(self.template) 17 | self.text = self.render_template(self.text) 18 | self.text = self.text[0].capitalize() + self.text[1:] 19 | 20 | def __str__(self): 21 | return self.text -------------------------------------------------------------------------------- /megacosm/generators/event.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from generator import Generator 5 | import logging 6 | 7 | 8 | class Event(Generator): 9 | 10 | def __init__(self, redis, features={}): 11 | Generator.__init__(self, redis, features) 12 | self.logger = logging.getLogger(__name__) 13 | 14 | self.generate_features('event' + self.kind) 15 | 16 | if not hasattr(self, 'text'): 17 | self.text = self.render_template(self.template) 18 | self.text = self.render_template(self.text) 19 | self.text = self.text[0].capitalize() + self.text[1:] 20 | 21 | def __str__(self): 22 | return self.text 23 | -------------------------------------------------------------------------------- /megacosm/generators/flaw.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from generator import Generator 5 | import logging 6 | 7 | 8 | class Flaw(Generator): 9 | 10 | """ Define a flaw to be used in your game """ 11 | 12 | def __init__(self, redis, features={}): 13 | 14 | Generator.__init__(self, redis, features) 15 | self.logger = logging.getLogger(__name__) 16 | 17 | # Double parse the template to fill in templated template values. 18 | 19 | if not hasattr(self, 'text'): 20 | self.text = self.render_template(self.template) 21 | self.text = self.render_template(self.text) 22 | self.text = self.text[0].capitalize() + self.text[1:] 23 | 24 | def __str__(self): 25 | return self.text 26 | -------------------------------------------------------------------------------- /megacosm/generators/gem.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from generator import Generator 5 | import logging 6 | import random 7 | 8 | 9 | class Gem(Generator): 10 | 11 | def __init__(self, redis, features={}): 12 | 13 | Generator.__init__(self, redis, features) 14 | self.logger = logging.getLogger(__name__) 15 | 16 | if not hasattr(self, 'count'): 17 | self.count = random.randint(self.amount['min'], self.amount['max']) 18 | 19 | if not hasattr(self, 'color'): 20 | self.color = random.choice(self.kind_description['color']) 21 | 22 | if not hasattr(self, 'text'): 23 | self.text = self.render_template(self.template) 24 | self.text = self.render_template(self.text) 25 | self.text = self.text[0].capitalize() + self.text[1:] 26 | 27 | def __str__(self): 28 | return '%s %s %s, %s' % (self.quality['name'], self.color, self.kind_description['name'], self.value['name']) 29 | -------------------------------------------------------------------------------- /megacosm/generators/govt.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from country import Country 5 | from city import City 6 | from generator import Generator 7 | import logging 8 | 9 | #FIXME: Governments should support various bodies to govern, and it should be based on govt_kind. 10 | #FIXME: This needs be WAAAY more strict on error handling. 11 | 12 | class Govt(Generator): 13 | 14 | def __init__(self, redis, features={}): 15 | 16 | Generator.__init__(self, redis, features) 17 | self.logger = logging.getLogger(__name__) 18 | 19 | self.generate_features('govt' + self.kind) 20 | 21 | if not hasattr(self, 'body'): 22 | # TODO this should have an if statement on kind and also do cities 23 | if self.kind == 'city': 24 | self.body = City(self.redis) 25 | elif self.kind == 'country': 26 | self.body = Country(self.redis) 27 | else: 28 | self.body = Country(self.redis) 29 | 30 | def __str__(self): 31 | return self.govttype_description['name'] 32 | -------------------------------------------------------------------------------- /megacosm/generators/grafitti.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from generator import Generator 5 | from npc import NPC 6 | import logging 7 | 8 | 9 | class Grafitti(Generator): 10 | 11 | def __init__(self, redis, features={}): 12 | Generator.__init__(self, redis, features) 13 | self.logger = logging.getLogger(__name__) 14 | 15 | if not hasattr(self, 'npc'): 16 | setattr(self, 'npc', NPC(self.redis)) 17 | 18 | if not hasattr(self, 'npcname'): 19 | setattr(self, 'npcname', self.npc.name.shortname) 20 | if not hasattr(self, 'npcprofession'): 21 | setattr(self, 'npcprofession', self.npc.profession) 22 | 23 | if not hasattr(self, 'text'): 24 | if hasattr(self, 'signature'): 25 | self.template = self.template + ' The message is signed ' + getattr(self, 'signature') 26 | if hasattr(self, 'age'): 27 | self.template = self.template + " You'd guess the message is " + getattr(self, 'age') 28 | 29 | self.text = self.render_template(self.template) 30 | self.text = self.render_template(self.text) 31 | self.text = self.text[0].capitalize() + self.text[1:] 32 | 33 | def __str__(self): 34 | return self.text 35 | 36 | -------------------------------------------------------------------------------- /megacosm/generators/legend.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from generator import Generator 5 | from npc import NPC 6 | import logging 7 | 8 | 9 | class Legend(Generator): 10 | 11 | def __init__(self, redis, features={}): 12 | 13 | Generator.__init__(self, redis, features) 14 | self.logger = logging.getLogger(__name__) 15 | 16 | for person in ['npc', 'villain']: 17 | if not hasattr(self, person): 18 | setattr(self, person, NPC(self.redis)) 19 | 20 | if not hasattr(self, 'text'): 21 | self.text = self.render_template(self.template) 22 | self.text = self.render_template(self.text) 23 | self.text = self.text[0].capitalize() + self.text[1:] 24 | 25 | def __str__(self): 26 | return self.text 27 | -------------------------------------------------------------------------------- /megacosm/generators/magicitem.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from generator import Generator 5 | from npc import NPC 6 | from curse import Curse 7 | from jinja2.environment import Environment 8 | from megacosm.util import Filters 9 | import logging 10 | import random 11 | 12 | 13 | class MagicItem(Generator): 14 | 15 | def __init__(self, redis, features={}): 16 | 17 | Generator.__init__(self, redis, features) 18 | self.logger = logging.getLogger(__name__) 19 | self.generate_features(self.kind) 20 | 21 | if not hasattr(self, 'npc'): 22 | self.npc = NPC(redis) 23 | 24 | self.curse_chance_roll = random.randint(1, 100); 25 | if not hasattr(self, 'curse') and self.curse_chance_roll < self.curse_chance : 26 | self.curse = Curse(redis) 27 | 28 | self.creator = self.render_template(self.creator_template) 29 | 30 | if not hasattr(self, 'text'): 31 | self.text = self.render_template(self.template).title() 32 | 33 | def __str__(self): 34 | return self.text 35 | # TODO needs real testing! 36 | 37 | -------------------------------------------------------------------------------- /megacosm/generators/misfire.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from generator import Generator 5 | import logging 6 | 7 | 8 | class Misfire(Generator): 9 | 10 | def __init__(self, redis, features={}): 11 | 12 | Generator.__init__(self, redis, features) 13 | self.logger = logging.getLogger(__name__) 14 | 15 | if not hasattr(self, 'text'): 16 | self.text = self.render_template(self.template) 17 | self.text = self.render_template(self.text) 18 | self.text = self.text[0].capitalize() + self.text[1:] 19 | 20 | def __str__(self): 21 | return self.text 22 | -------------------------------------------------------------------------------- /megacosm/generators/moon.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from generator import Generator 5 | from name import Name 6 | import logging 7 | 8 | 9 | class Moon(Generator): 10 | 11 | def __init__(self, server, features={}): 12 | Generator.__init__(self, server, features) 13 | self.logger = logging.getLogger(__name__) 14 | self.name=Name(self.redis, 'moon') 15 | def __str__(self): 16 | return self.name.fullname.title() 17 | -------------------------------------------------------------------------------- /megacosm/generators/motivation.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from generator import Generator 5 | import npc 6 | import logging 7 | 8 | 9 | class Motivation(Generator): 10 | 11 | def __init__(self, redis, features={}): 12 | 13 | Generator.__init__(self, redis, features) 14 | self.logger = logging.getLogger(__name__) 15 | 16 | self.generate_features('motivation' + self.kind) 17 | 18 | if not hasattr(self, 'npc'): 19 | self.npc = npc.NPC(self.redis, {'motivation': self}) 20 | 21 | self.text = self.render_template(self.text) 22 | 23 | def __str__(self): 24 | return self.text 25 | -------------------------------------------------------------------------------- /megacosm/generators/mundaneitem.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from generator import Generator 5 | import logging 6 | 7 | 8 | class MundaneItem(Generator): 9 | 10 | def __init__(self, redis, features={}): 11 | 12 | Generator.__init__(self, redis, features) 13 | self.logger = logging.getLogger(__name__) 14 | 15 | if not hasattr(self, 'text'): 16 | 17 | # TODO move this to the data file 18 | # self.text=self.render_template("{{params.quality['name']|article}} 19 | # {{params.kind}}, {{params.repair['name']}}") 20 | 21 | self.kind = self.render_template(self.kind) 22 | self.text = self.render_template(self.template) 23 | self.text = self.text[0].capitalize() + self.text[1:] 24 | 25 | def __str__(self): 26 | return self.kind 27 | -------------------------------------------------------------------------------- /megacosm/generators/organization.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from generator import Generator 5 | import leader 6 | #from leader import Leader 7 | from name import Name 8 | import logging 9 | 10 | 11 | class Organization(Generator): 12 | 13 | def __init__(self, redis, features={}): 14 | 15 | Generator.__init__(self, redis, features) 16 | self.logger = logging.getLogger(__name__) 17 | 18 | if not hasattr(self, 'leader'): 19 | self.leader = leader.Leader(self.redis, {"location":self}) 20 | #self.leader = Leader(self.redis) 21 | 22 | if not hasattr(self, 'text'): 23 | self.text = self.render_template(self.template) 24 | self.name=Name(self.redis, 'organization', {'leader':self.leader, 'kind':self.kind}) 25 | 26 | def __str__(self): 27 | return self.name.shortname 28 | -------------------------------------------------------------------------------- /megacosm/generators/phobia.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from generator import Generator 5 | import logging 6 | 7 | 8 | class Phobia(Generator): 9 | 10 | """ Define a phobia to be used in your game """ 11 | 12 | def __init__(self, redis, features={}): 13 | 14 | Generator.__init__(self, redis, features) 15 | self.logger = logging.getLogger(__name__) 16 | 17 | # Double parse the template to fill in templated template values. 18 | 19 | if not hasattr(self, 'text'): 20 | self.text = self.render_template(self.template) 21 | self.text = self.render_template(self.text) 22 | self.text = self.text[0].capitalize() + self.text[1:] 23 | 24 | def __str__(self): 25 | return self.text 26 | -------------------------------------------------------------------------------- /megacosm/generators/region.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ A region usually contains several cities.""" 5 | 6 | import logging 7 | from megacosm.generators.generator import Generator 8 | from megacosm.generators.name import Name 9 | 10 | 11 | class Region(Generator): 12 | """ Create a region to populate. """ 13 | def __init__(self, redis, features={}): 14 | Generator.__init__(self, redis, features) 15 | self.logger = logging.getLogger(__name__) 16 | self.name = Name(self.redis, 'region') 17 | def __str__(self): 18 | return str(self.name.fullname).title() 19 | 20 | # TODO start a separate fork for cities and enable this with the new class 21 | # def add_cities(self): 22 | # """ add cities to the region""" 23 | # if not hasattr(self, 'cities'): 24 | # self.cities=[] 25 | # for cityid in xrange(self.citycount): 26 | # self.city.append( City(self.redis,{'region':self} ) ) 27 | -------------------------------------------------------------------------------- /megacosm/generators/resource.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Resources may be lumber, grain, diamonds, etc """ 5 | 6 | import logging 7 | from megacosm.generators.generator import Generator 8 | from megacosm.generators.region import Region 9 | 10 | 11 | class Resource(Generator): 12 | """ Resource Object determines what's valuable in a region or city.""" 13 | def __init__(self, redis, features={}): 14 | 15 | Generator.__init__(self, redis, features) 16 | self.logger = logging.getLogger(__name__) 17 | 18 | if not hasattr(self, 'place'): 19 | self.place = Region(self.redis) 20 | 21 | self.subkind = self.kind + '_' + self.rand_value(self.kind + '_kind') 22 | 23 | self.generate_features(self.subkind) 24 | 25 | if not hasattr(self, 'text'): 26 | self.text = self.render_template(self.template) 27 | self.text = self.render_template(self.text) 28 | self.text = self.text[0].capitalize() + self.text[1:] 29 | 30 | def __str__(self): 31 | return self.text 32 | -------------------------------------------------------------------------------- /megacosm/generators/rumor.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Rumors are a good way to start a new quest or add drama.""" 5 | 6 | import logging 7 | from megacosm.generators.generator import Generator 8 | from megacosm.generators.npc import NPC 9 | 10 | 11 | class Rumor(Generator): 12 | """ While some rumors are based in fact, most aren't. """ 13 | def __init__(self, redis, features={}): 14 | 15 | Generator.__init__(self, redis, features) 16 | self.logger = logging.getLogger(__name__) 17 | 18 | for person in ['victim', 'culprit', 'source', 'believer']: 19 | if not hasattr(self, person): 20 | setattr(self, person, NPC(self.redis).name.fullname) 21 | 22 | if not hasattr(self, 'text'): 23 | self.text = self.render_template(self.template) 24 | self.text = self.render_template(self.text) 25 | self.text = self.text[0].capitalize() + self.text[1:] 26 | 27 | def __str__(self): 28 | return self.text 29 | -------------------------------------------------------------------------------- /megacosm/generators/sect.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ A Sect is an unusual following of a deity.""" 5 | 6 | import logging 7 | import random 8 | from megacosm.generators.generator import Generator 9 | from megacosm.generators.name import Name 10 | #from megacosm.generators import deity 11 | import deity 12 | 13 | class Sect(Generator): 14 | """ A group of religious believers """ 15 | def __init__(self, redis, features={}): 16 | 17 | Generator.__init__(self, redis, features) 18 | self.logger = logging.getLogger(__name__) 19 | 20 | if not hasattr(self, 'deity'): 21 | self.deity = deity.Deity(redis) 22 | 23 | if not hasattr(self, 'domain'): 24 | portfolio = self.deity.portfolios 25 | random.shuffle(portfolio) 26 | self.domain = portfolio[0] 27 | 28 | self.name = Name(self.redis, 'sect') 29 | 30 | def __str__(self): 31 | return self.name.shortname 32 | 33 | -------------------------------------------------------------------------------- /megacosm/generators/star.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ A Star may light up the sky above your world.""" 5 | 6 | import logging 7 | from megacosm.generators.generator import Generator 8 | from megacosm.generators.name import Name 9 | 10 | 11 | class Star(Generator): 12 | """ A simple star, nothing fancy. """ 13 | def __init__(self, redis, features={}): 14 | Generator.__init__(self, redis, features) 15 | self.logger = logging.getLogger(__name__) 16 | self.name = Name(self.redis, 'star') 17 | 18 | def __str__(self): 19 | return self.name.shortname 20 | -------------------------------------------------------------------------------- /megacosm/generators/starsystem.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ A starsystem contains one or more stars """ 5 | 6 | import json 7 | import logging 8 | import random 9 | from megacosm.generators.generator import Generator 10 | from megacosm.generators.planet import Planet 11 | from megacosm.generators.star import Star 12 | 13 | 14 | class StarSystem(Generator): 15 | """ "Generate some stars and planets.""" 16 | def __init__(self, redis, features={}): 17 | Generator.__init__(self, redis, features) 18 | self.logger = logging.getLogger(__name__) 19 | self.generate_stars() 20 | self.generate_planet() 21 | 22 | def generate_stars(self): 23 | """ generate our stars first.""" 24 | 25 | self.stars = [] 26 | positions = self.redis.lrange('starposition', 0, -1) 27 | 28 | for starId in xrange(self.starcount['count']): 29 | random.shuffle(positions) 30 | self.stars.append(Star(self.redis, {'pos': json.loads(positions.pop(0))})) 31 | 32 | def generate_planet(self): 33 | """ Generate a planet""" 34 | #TODO this should be an array, right? 35 | self.planet = Planet(self.redis) 36 | 37 | def __str__(self): 38 | return self.stars[0].name.shortname+" System" 39 | -------------------------------------------------------------------------------- /megacosm/generators/street.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | """ Generate a street""" 5 | import logging 6 | from megacosm.generators.generator import Generator 7 | from megacosm.generators.name import Name 8 | 9 | class Street(Generator): 10 | """ Generate a street.""" 11 | def __init__(self, redis, features={}): 12 | 13 | Generator.__init__(self, redis, features) 14 | self.logger = logging.getLogger(__name__) 15 | 16 | self.name = Name(self.redis, 'street') 17 | 18 | def __str__(self): 19 | return self.name.fullname.title() 20 | -------------------------------------------------------------------------------- /megacosm/generators/wanted.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from generator import Generator 5 | from npc import NPC 6 | import logging 7 | 8 | 9 | class Wanted(Generator): 10 | 11 | def __init__(self, redis, features={}): 12 | 13 | Generator.__init__(self, redis, features) 14 | self.logger = logging.getLogger(__name__) 15 | 16 | for person in ['npc', 'victim']: 17 | if not hasattr(self, person): 18 | setattr(self, person, NPC(self.redis)) 19 | 20 | self.headline = self.render_template(self.headline) 21 | self.lastseen = self.render_template(self.lastseen) 22 | def __str__(self): 23 | return "Wanted: %s" % self.npc.name.fullname 24 | -------------------------------------------------------------------------------- /megacosm/generators/weather.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from generator import Generator 5 | import logging 6 | 7 | 8 | class Weather(Generator): 9 | 10 | def __init__(self, redis, features={}): 11 | 12 | Generator.__init__(self, redis, features) 13 | self.logger = logging.getLogger(__name__) 14 | 15 | if not hasattr(self, 'text'): 16 | self.text = self.render_template(self.template) 17 | self.text = self.text[0].capitalize() + self.text[1:] 18 | 19 | def __str__(self): 20 | return self.temp['name'] 21 | -------------------------------------------------------------------------------- /megacosm/static/css/base.css: -------------------------------------------------------------------------------- 1 | 2 | #mapcontainer { 3 | width:300px; 4 | height:300px; 5 | background-color: #aec0d4; 6 | } 7 | 8 | -------------------------------------------------------------------------------- /megacosm/static/css/sticky-footer.css: -------------------------------------------------------------------------------- 1 | /* Sticky footer styles 2 | -------------------------------------------------- */ 3 | html { 4 | position: relative; 5 | min-height: 100%; 6 | } 7 | body { 8 | /* Margin bottom by footer height */ 9 | margin-bottom: 60px; 10 | } 11 | #footer { 12 | position: absolute; 13 | bottom: 0; 14 | width: 100%; 15 | /* Set the fixed height of the footer here */ 16 | height: 60px; 17 | background-color: #f5f5f5; 18 | } 19 | 20 | /* Custom page CSS 21 | -------------------------------------------------- */ 22 | /* Not required for template or sticky footer method. */ 23 | 24 | body > .container { 25 | padding: 60px 15px 0; 26 | } 27 | .container .text-muted { 28 | margin: 20px 0; 29 | } 30 | 31 | #footer > .container { 32 | padding-right: 15px; 33 | padding-left: 15px; 34 | } 35 | 36 | code { 37 | font-size: 80%; 38 | } 39 | -------------------------------------------------------------------------------- /megacosm/static/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/background.png -------------------------------------------------------------------------------- /megacosm/static/images/background.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/background.xcf -------------------------------------------------------------------------------- /megacosm/static/images/backgrounds/dirt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/backgrounds/dirt.png -------------------------------------------------------------------------------- /megacosm/static/images/backgrounds/dirt1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/backgrounds/dirt1.png -------------------------------------------------------------------------------- /megacosm/static/images/backgrounds/dirt3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/backgrounds/dirt3.png -------------------------------------------------------------------------------- /megacosm/static/images/backgrounds/dirt4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/backgrounds/dirt4.png -------------------------------------------------------------------------------- /megacosm/static/images/backgrounds/dirt5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/backgrounds/dirt5.png -------------------------------------------------------------------------------- /megacosm/static/images/backgrounds/dirt6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/backgrounds/dirt6.png -------------------------------------------------------------------------------- /megacosm/static/images/backgrounds/granite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/backgrounds/granite.png -------------------------------------------------------------------------------- /megacosm/static/images/backgrounds/granite1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/backgrounds/granite1.png -------------------------------------------------------------------------------- /megacosm/static/images/backgrounds/granite2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/backgrounds/granite2.png -------------------------------------------------------------------------------- /megacosm/static/images/backgrounds/quartzite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/backgrounds/quartzite.png -------------------------------------------------------------------------------- /megacosm/static/images/backgrounds/rocks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/backgrounds/rocks.png -------------------------------------------------------------------------------- /megacosm/static/images/backgrounds/rocky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/backgrounds/rocky.png -------------------------------------------------------------------------------- /megacosm/static/images/backgrounds/sand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/backgrounds/sand.png -------------------------------------------------------------------------------- /megacosm/static/images/backgrounds/sandstone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/backgrounds/sandstone.png -------------------------------------------------------------------------------- /megacosm/static/images/backgrounds/sandstone1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/backgrounds/sandstone1.png -------------------------------------------------------------------------------- /megacosm/static/images/backgrounds/stone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/backgrounds/stone.png -------------------------------------------------------------------------------- /megacosm/static/images/backgrounds/stone1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/backgrounds/stone1.png -------------------------------------------------------------------------------- /megacosm/static/images/clouds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/clouds.png -------------------------------------------------------------------------------- /megacosm/static/images/containers.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/containers.xcf -------------------------------------------------------------------------------- /megacosm/static/images/decorations/blood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/blood.png -------------------------------------------------------------------------------- /megacosm/static/images/decorations/blood.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/blood.xcf -------------------------------------------------------------------------------- /megacosm/static/images/decorations/cavein.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/cavein.png -------------------------------------------------------------------------------- /megacosm/static/images/decorations/cavein.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/cavein.xcf -------------------------------------------------------------------------------- /megacosm/static/images/decorations/fog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/fog.png -------------------------------------------------------------------------------- /megacosm/static/images/decorations/fog.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/fog.xcf -------------------------------------------------------------------------------- /megacosm/static/images/decorations/lava.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/lava.xcf -------------------------------------------------------------------------------- /megacosm/static/images/decorations/lava1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/lava1.png -------------------------------------------------------------------------------- /megacosm/static/images/decorations/lava2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/lava2.png -------------------------------------------------------------------------------- /megacosm/static/images/decorations/river.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/river.png -------------------------------------------------------------------------------- /megacosm/static/images/decorations/river.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/river.xcf -------------------------------------------------------------------------------- /megacosm/static/images/decorations/shadows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/shadows.png -------------------------------------------------------------------------------- /megacosm/static/images/decorations/shadows.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/shadows.xcf -------------------------------------------------------------------------------- /megacosm/static/images/decorations/slime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/slime.png -------------------------------------------------------------------------------- /megacosm/static/images/decorations/slime.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/slime.xcf -------------------------------------------------------------------------------- /megacosm/static/images/decorations/smoke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/smoke.png -------------------------------------------------------------------------------- /megacosm/static/images/decorations/spiderwebs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/spiderwebs.png -------------------------------------------------------------------------------- /megacosm/static/images/decorations/spiderwebs.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/decorations/spiderwebs.xcf -------------------------------------------------------------------------------- /megacosm/static/images/deity/anchor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anchor.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anchor.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anchor.xcf -------------------------------------------------------------------------------- /megacosm/static/images/deity/anchorbroken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anchorbroken.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anchorburning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anchorburning.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anchorcircled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anchorcircled.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anchordivided.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anchordivided.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anchordouble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anchordouble.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anchorfragmented.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anchorfragmented.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anchorrocking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anchorrocking.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anchorsideways.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anchorsideways.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anchorswinging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anchorswinging.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anchortilted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anchortilted.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anchortriple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anchortriple.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anchorupside-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anchorupside-down.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/ankh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/ankh.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/ankh.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/ankh.xcf -------------------------------------------------------------------------------- /megacosm/static/images/deity/ankhbroken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/ankhbroken.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/ankhburning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/ankhburning.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/ankhcircled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/ankhcircled.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/ankhdivided.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/ankhdivided.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/ankhdouble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/ankhdouble.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/ankhfragmented.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/ankhfragmented.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/ankhrocking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/ankhrocking.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/ankhsideways.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/ankhsideways.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/ankhswinging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/ankhswinging.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/ankhtilted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/ankhtilted.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/ankhtriple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/ankhtriple.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/ankhupside-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/ankhupside-down.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anvil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anvil.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anvil.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anvil.xcf -------------------------------------------------------------------------------- /megacosm/static/images/deity/anvilbroken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anvilbroken.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anvilburning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anvilburning.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anvilcircled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anvilcircled.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anvildivided.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anvildivided.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anvildouble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anvildouble.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anvilfragmented.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anvilfragmented.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anvilrocking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anvilrocking.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anvilsideways.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anvilsideways.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anvilswinging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anvilswinging.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anviltilted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anviltilted.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anviltriple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anviltriple.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/anvilupside-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/anvilupside-down.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/apple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/apple.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/apple.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/apple.xcf -------------------------------------------------------------------------------- /megacosm/static/images/deity/applebroken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/applebroken.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/appleburning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/appleburning.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/applecircled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/applecircled.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/appledivided.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/appledivided.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/appledouble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/appledouble.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/applefragmented.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/applefragmented.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/applerocking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/applerocking.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/applesideways.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/applesideways.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/appleswinging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/appleswinging.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/appletilted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/appletilted.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/appletriple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/appletriple.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/appleupside-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/appleupside-down.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/axe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/axe.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/axe.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/axe.xcf -------------------------------------------------------------------------------- /megacosm/static/images/deity/axebroken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/axebroken.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/axeburning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/axeburning.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/axecircled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/axecircled.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/axedivided.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/axedivided.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/axedouble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/axedouble.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/axefragmented.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/axefragmented.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/axerocking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/axerocking.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/axesideways.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/axesideways.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/axeswinging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/axeswinging.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/axetilted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/axetilted.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/axetriple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/axetriple.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/axeupside-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/axeupside-down.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/bell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/bell.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/bell.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/bell.xcf -------------------------------------------------------------------------------- /megacosm/static/images/deity/bellbroken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/bellbroken.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/bellburning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/bellburning.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/bellcircled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/bellcircled.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/belldivided.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/belldivided.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/belldouble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/belldouble.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/bellfragmented.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/bellfragmented.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/bellrocking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/bellrocking.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/bellsideways.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/bellsideways.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/bellswinging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/bellswinging.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/belltilted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/belltilted.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/belltriple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/belltriple.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/bellupside-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/bellupside-down.png -------------------------------------------------------------------------------- /megacosm/static/images/deity/others.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/deity/others.xcf -------------------------------------------------------------------------------- /megacosm/static/images/dungeon/mini-tiles.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/dungeon/mini-tiles.xcf -------------------------------------------------------------------------------- /megacosm/static/images/dungeon/minitiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/dungeon/minitiles.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/0/a0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/0/a0.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/0/b0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/0/b0.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/0/c0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/0/c0.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/0/d0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/0/d0.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/0/e0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/0/e0.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/0/f0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/0/f0.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/0/g0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/0/g0.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/0/h0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/0/h0.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/0/i0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/0/i0.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/0/j0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/0/j0.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/0/k0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/0/k0.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/1/a1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/1/a1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/1/b1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/1/b1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/1/c1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/1/c1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/1/d1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/1/d1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/1/e1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/1/e1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/1/f1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/1/f1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/1/g1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/1/g1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/1/h1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/1/h1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/1/i1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/1/i1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/1/j1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/1/j1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/1/k1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/1/k1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/1/l1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/1/l1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/2/a2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/2/a2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/2/b2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/2/b2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/2/c2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/2/c2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/2/d2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/2/d2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/2/e2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/2/e2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/2/f2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/2/f2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/2/g2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/2/g2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/2/h2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/2/h2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/2/i2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/2/i2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/2/j2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/2/j2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/2/k2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/2/k2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/2/l2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/2/l2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/3/a3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/3/a3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/3/b3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/3/b3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/3/c3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/3/c3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/3/d3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/3/d3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/3/e3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/3/e3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/3/f3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/3/f3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/3/g3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/3/g3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/3/h3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/3/h3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/3/j3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/3/j3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/3/k3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/3/k3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/3/l3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/3/l3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/3/m3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/3/m3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/3/n3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/3/n3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/3/o3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/3/o3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/4/a4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/4/a4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/4/b4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/4/b4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/4/c4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/4/c4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/4/d4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/4/d4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/4/e4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/4/e4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/4/f4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/4/f4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/4/g4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/4/g4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/4/h4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/4/h4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/4/i4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/4/i4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/4/j4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/4/j4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/4/k4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/4/k4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/5/a5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/5/a5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/5/b5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/5/b5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/5/c5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/5/c5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/5/d5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/5/d5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/5/e5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/5/e5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/5/f5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/5/f5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/5/g5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/5/g5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/5/h5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/5/h5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/5/i5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/5/i5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/5/j5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/5/j5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/5/k5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/5/k5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/5/l5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/5/l5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/5/m5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/5/m5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/5/n5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/5/n5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basiccave/basiccave.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basiccave/basiccave.xcf -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/0/a0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/0/a0.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/0/b0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/0/b0.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/0/c0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/0/c0.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/0/d0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/0/d0.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/0/e0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/0/e0.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/0/f0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/0/f0.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/1/a1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/1/a1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/1/b1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/1/b1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/1/c1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/1/c1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/1/d1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/1/d1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/1/e1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/1/e1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/1/f1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/1/f1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/1/g1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/1/g1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/1/h1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/1/h1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/1/i1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/1/i1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/1/j1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/1/j1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/1/k1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/1/k1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/1/l1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/1/l1.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/2/a2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/2/a2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/2/b2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/2/b2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/2/c2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/2/c2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/2/d2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/2/d2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/2/e2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/2/e2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/2/f2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/2/f2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/2/g2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/2/g2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/2/h2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/2/h2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/2/i2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/2/i2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/2/j2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/2/j2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/2/k2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/2/k2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/2/l2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/2/l2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/2/m2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/2/m2.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/3/a3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/3/a3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/3/b3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/3/b3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/3/c3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/3/c3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/3/d3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/3/d3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/3/e3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/3/e3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/3/f3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/3/f3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/3/g3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/3/g3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/3/h3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/3/h3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/3/i3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/3/i3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/3/j3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/3/j3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/3/k3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/3/k3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/3/l3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/3/l3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/3/m3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/3/m3.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/4/a4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/4/a4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/4/b4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/4/b4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/4/c4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/4/c4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/4/d4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/4/d4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/4/e4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/4/e4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/4/f4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/4/f4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/4/g4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/4/g4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/4/h4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/4/h4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/4/i4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/4/i4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/4/j4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/4/j4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/4/k4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/4/k4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/4/l4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/4/l4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/4/m4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/4/m4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/4/n4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/4/n4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/4/o4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/4/o4.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/5/a5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/5/a5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/5/b5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/5/b5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/5/c5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/5/c5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/5/d5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/5/d5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/5/e5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/5/e5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/5/f5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/5/f5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/5/g5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/5/g5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/5/h5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/5/h5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/5/i5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/5/i5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/5/j5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/5/j5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/5/k5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/5/k5.png -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/morgajel/basicdungeon/basicdungeon.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/morgajel/basicdungeon/basicdungeon.xcf -------------------------------------------------------------------------------- /megacosm/static/images/geomorphs/samplegeomorphs.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/geomorphs/samplegeomorphs.xcf -------------------------------------------------------------------------------- /megacosm/static/images/megacosm_icon.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/megacosm_icon.xcf -------------------------------------------------------------------------------- /megacosm/static/images/megacosm_icon_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/megacosm_icon_256.png -------------------------------------------------------------------------------- /megacosm/static/images/megacosm_icon_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/megacosm_icon_32.png -------------------------------------------------------------------------------- /megacosm/static/images/megacosm_icon_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/megacosm_icon_64.png -------------------------------------------------------------------------------- /megacosm/static/images/moon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/moon.png -------------------------------------------------------------------------------- /megacosm/static/images/potion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/potion.png -------------------------------------------------------------------------------- /megacosm/static/images/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/images/star.png -------------------------------------------------------------------------------- /megacosm/static/js/flag/flagborder.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/megacosm/static/js/flag/flagborder.js -------------------------------------------------------------------------------- /megacosm/templates/400.html: -------------------------------------------------------------------------------- 1 | 2 | {% extends "base.html" %} 3 | {% block title %}Generator Not Found{% endblock %} 4 | {% block head %} 5 | {{ super() }} 6 | {% endblock %} 7 | {% block content %} 8 | 9 |

Oops...

10 | 11 |

I'm not sure what you were looking for, but it's not here.

12 | 13 | 17 | 18 |

If you think there should be something here and have a Github acount, click here to create a bug report so we can fix the issue.

19 | 20 | {% endblock %} 21 | -------------------------------------------------------------------------------- /megacosm/templates/500.html: -------------------------------------------------------------------------------- 1 | 2 | {% extends "base.html" %} 3 | {% block title %}Oops!{% endblock %} 4 | {% block head %} 5 | {{ super() }} 6 | {% endblock %} 7 | {% block content %} 8 | 9 |

Oops...

10 | 11 |

Well this is embarassing- something unexpectedly broke, and I have no idea what.

12 | 13 |

I suspect gremlins.

14 | 20 | 21 |

If you have a Github acount, click here to create a bug report so we can fix the issue.

22 | 23 | {% endblock %} 24 | -------------------------------------------------------------------------------- /megacosm/templates/continent.html: -------------------------------------------------------------------------------- 1 | 2 | {% extends "base.html" %} 3 | {% block title %}Welcome to the Continent of {{tempobj.name.fullname}} {% endblock %} 4 | {% block head %} 5 | {{ super() }} 6 | {% endblock %} 7 | {% block content %} 8 | 9 |

Welcome to the Continent {{tempobj.name.fullname}} ({{tempobj.seed}})

10 | 11 |

Summary

12 | 13 | {{tempobj.name.fullname }} is {{tempobj.size['name'] |article }} continent with {{tempobj.civilization['name'] }} civilization. 14 | Most civilized areas in {{tempobj.name.fullname }} have {{tempobj.technology['name'] }} technology. 15 | 16 | 17 | {% if tempobj.countries %} 18 |

Countries

19 | 20 | The continent has {{tempobj.countrydetails['name']}} known {{ 'country'|pluralize( tempobj.countries|length)}}. 21 | 22 | 27 | 28 | {%endif%} 29 | {% endblock %} 30 | -------------------------------------------------------------------------------- /megacosm/templates/debug.html: -------------------------------------------------------------------------------- 1 |
2 | {%for field in tempobj.__dict__%}
3 |     {{field}}  {{tempobj[field]}}
4 |  {%endfor%}
5 | 
6 | -------------------------------------------------------------------------------- /megacosm/templates/flag.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% extends "base.html" %} 4 | {% block title %}A Wild Flag Appears...{% endblock %} 5 | {% block head %} 6 | {{ super() }} 7 | {% endblock %} 8 | {% block content %} 9 |

A Wild Flag Appears...

10 |
11 | 12 | 13 |
14 | {% assets "js_flag" %} 15 | 16 | {% endassets %} 17 | 18 | 21 | 22 | 23 | {% endblock %} 24 | -------------------------------------------------------------------------------- /megacosm/templates/geomorphdungeon.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% extends "base.html" %} 4 | {% block title %} {{tempobj.text}} {% endblock %} 5 | {% block head %} 6 | {{ super() }} 7 | 8 | 9 | {% endblock %} 10 | {% block content %} 11 | 12 |

{{tempobj.text}} {{tempobj }} ({{tempobj.seed}})

13 | 14 | 15 | 16 |
17 | 18 | 19 | 24 | {% endblock %} 25 | -------------------------------------------------------------------------------- /megacosm/templates/govt.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% extends "base.html" %} 4 | {% block title %}The Ruling Class... {% endblock %} 5 | {% block head %} 6 | {{ super() }} 7 | {% endblock %} 8 | {% block content %} 9 | 10 |

The Ruling Class... ({{tempobj.seed}})

11 | 12 | 13 | 14 | 15 |

{{tempobj.body.name.fullname}} is {{tempobj.kind |article}} that is governed through {{tempobj.govttype_description['name']| article}}, where {{tempobj.govttype_description['description']}}. It has been in power {{tempobj.age['name']}}.

16 | 17 |

The government as a whole is seen as {{tempobj.efficiency['name']}}.

18 | 19 |

Officials in {{tempobj.body.name.fullname}} are often seen as {{tempobj.corruption['name']}} and the policies are {{tempobj.approval['name']}}.

20 | 21 |

The political influence of {{tempobj.body.name.fullname}} in the region is {{tempobj.influence['name']}}{%if tempobj.influencereason %} due to {{tempobj.influencereason}}{%endif%}.

22 |

In times of crisis, the population {{tempobj.unity['name']}}.

23 | 24 | 25 | 26 | 27 | 28 | {% endblock %} 29 | -------------------------------------------------------------------------------- /megacosm/templates/leader.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% extends "base.html" %} 4 | {% block title %}Our Leader, {{tempobj.name['fulltitled']}} {% endblock %} 5 | {% block head %} 6 | {{ super() }} 7 | 10 | {% endblock %} 11 | {% block content %} 12 | 13 |

Our Leader, {{tempobj.name['fulltitled']}} ({{tempobj.seed}})

14 | 15 |

Summary

16 | {{tempobj.name.fullname}} is the {{tempobj.name['title']}} of {{tempobj.location.name.fullname|title}}. {{tempobj.name.shortname}} is considered {{tempobj.charisma['name']}} and {{tempobj.skill['name']}}. {{tempobj.sex['possessive']|capitalize}} constituents consider {{tempobj.sex['third-person']}} {{tempobj.honor['name']}}. 17 | 18 | 19 | 20 | {% endblock %} 21 | -------------------------------------------------------------------------------- /megacosm/templates/moon.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% extends "base.html" %} 4 | {% block title %}Behold {{tempobj.name.fullname}} {% endblock %} 5 | {% block head %} 6 | {{ super() }} 7 | {% endblock %} 8 | {% block content %} 9 | 10 |

Behold {{tempobj.name.fullname}} ({{tempobj.seed}})

11 | 12 | 13 | {{tempobj.name.fullname}} is {{tempobj.size['name'] |article}} {{tempobj.color['name']}} moon. 14 | 15 | 16 | 17 | 18 | 19 | 20 | {% endblock %} 21 | -------------------------------------------------------------------------------- /megacosm/templates/oneliner.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% extends "base.html" %} 4 | {% block title %} {{ titletext}} {% endblock %} 5 | {% block head %} 6 | {{ super() }} 7 | {% endblock %} 8 | {% block content %} 9 | 10 |

{{titletext}} ({{oneliner.seed}})

11 | 12 | {% if not oneliners %} 13 | {{oneliner.text}} 14 | {%endif%} 15 | {% if oneliners %} 16 | 21 | {%endif%} 22 | 23 |

24 |

25 | 26 | Like it? generate 27 | 33 | 34 |
35 |

36 | 37 | {% if request.args.get('debug') and oneliner is defined%} 38 | 43 | {% endif %} 44 | 45 | 46 | {% endblock %} 47 | -------------------------------------------------------------------------------- /megacosm/templates/roguedungeon.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% extends "base.html" %} 4 | {% block title %} {{tempobj.text}} {% endblock %} 5 | {% block head %} 6 | {{ super() }} 7 | 8 | 9 | {% endblock %} 10 | {% block content %} 11 | 12 |

{{tempobj.text}} ({{tempobj.seed}})

13 | 14 | 15 |
    16 | {%for room in tempobj.rooms%} 17 |
  1. {{room.kind_description['name']|title}} 18 | {%if room.kind_description['description']%} 19 | - {{room.kind_description['description']|capitalize}} 20 | {%endif%} 21 | {%endfor%} 22 |
23 | 29 | {% endblock %} 30 | -------------------------------------------------------------------------------- /megacosm/templates/sect.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% extends "base.html" %} 4 | {% block title %}Beware the {{tempobj.name.fullname}} {% endblock %} 5 | {% block head %} 6 | {{ super() }} 7 | {% endblock %} 8 | {% block content %} 9 | 10 |

Beware the {{tempobj.name.fullname}}, followers of {{tempobj.deity.name.fullname}} ({{tempobj.seed}})

11 | 12 | 13 | The {{tempobj.name.fullname}} are {{tempobj.acceptance['name'] |article}} {{tempobj.kind}} that focuses on {{tempobj.domain['name']}}. 14 | 15 | 16 | 17 | 18 | 19 | 20 | {% endblock %} 21 | -------------------------------------------------------------------------------- /megacosm/templates/star.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% extends "base.html" %} 4 | {% block title %}Behold {{tempobj.name.fullname}} {% endblock %} 5 | {% block head %} 6 | {{ super() }} 7 | {% endblock %} 8 | {% block content %} 9 | 10 |

Behold {{tempobj.name.fullname}} ({{tempobj.seed}})

11 | 12 | 13 | {{tempobj.name.fullname}} is {{tempobj.size['name'] |article}} {{tempobj.color['name']}} star. 14 | 15 | 16 | 17 | 18 | 19 | 20 | {% endblock %} 21 | -------------------------------------------------------------------------------- /megacosm/templates/street.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% extends "base.html" %} 4 | {% block title %}How to get to {{tempobj.name.fullname}} {% endblock %} 5 | {% block head %} 6 | {{ super() }} 7 | {% endblock %} 8 | {% block content %} 9 | 10 |

How to get to {{tempobj.name}} ({{tempobj.seed}})

11 | 12 | {{tempobj.name}} is {{tempobj.popularity['name']|article}}, {{tempobj.size['name']}} {{tempobj.kind}} that is {{tempobj.age['name']|article}} {{tempobj.important['name']}} route in the {{tempobj.scope['name']}}. It is made of {{tempobj.material}} over {{tempobj.terrain['name']}} ground and is usually {{tempobj.pollution['name']}}. 13 | 14 | Crime on {{tempobj.name.fullname}} is {{tempobj.crime['name']}}. 15 | 16 | 17 | {% endblock %} 18 | -------------------------------------------------------------------------------- /megacosm/templates/weather.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% extends "base.html" %} 4 | {% block title %}Look Outside... {% endblock %} 5 | {% block head %} 6 | {{ super() }} 7 | {% endblock %} 8 | {% block content %} 9 | 10 |

Look Outside... ({{tempobj.seed}})

11 | 12 |

Right now it is {{tempobj.temp['name']}} outside, with {{tempobj.wind['name']}} winds.

13 | 14 | {%if tempobj.precipitation%} 15 |

It is {{tempobj.precipitation['name'] }} {{tempobj.precipitation_type}} at the moment.

16 | {%endif%} 17 | 18 | {%if tempobj.cloud%} 19 |

There are {{ tempobj.cloud }} clouds in the sky above.

20 | {%endif%} 21 | 22 | {%if tempobj.storm%} 23 |

{{ tempobj.storm |article |capitalize}} is approaching, and will hit {{tempobj.time}}.

24 | {%endif%} 25 | 26 | {% endblock %} 27 | -------------------------------------------------------------------------------- /megacosm/util/Filters.py: -------------------------------------------------------------------------------- 1 | # 2 | 3 | import inflect 4 | 5 | p = inflect.engine() 6 | 7 | 8 | def select_uppercase(s): 9 | return s.upper() 10 | 11 | def select_article(s): 12 | return p.an(s) 13 | 14 | 15 | def select_pluralize(subject, count): 16 | return p.plural(subject, count) 17 | 18 | 19 | def select_plural_verb(verb, subject): 20 | return p.plural_verb(verb, subject) 21 | 22 | 23 | def select_plural_adj(adj, subject): 24 | return p.plural_adj(adj, subject) 25 | 26 | 27 | def select_conjunction(wordlist): 28 | """Join a list with commas and such.""" 29 | return p.join(wordlist) 30 | -------------------------------------------------------------------------------- /megacosm/util/Seeds.py: -------------------------------------------------------------------------------- 1 | import random 2 | 3 | 4 | def set_seed(seed=None): 5 | 6 | # Make sure it's an Integer 7 | 8 | # What if the seed is empty? Lets make a new one! 9 | MAXSEED = 10000000 10 | MINSEED = 1 11 | 12 | if (type(seed) == str or type(seed) == unicode) and seed.isdigit(): 13 | seed = int(seed) 14 | 15 | if type(seed) != int or seed < MINSEED or seed > MAXSEED: 16 | seed = random.randint(MINSEED, MAXSEED) 17 | 18 | random.seed(float(seed)) 19 | return seed 20 | -------------------------------------------------------------------------------- /megacosm/util/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Utilities package 4 | """ 5 | -------------------------------------------------------------------------------- /pylintrc: -------------------------------------------------------------------------------- 1 | 2 | [FORMAT] 3 | 4 | # Maximum number of characters on a single line. 5 | max-line-length=120 6 | reports=no 7 | disable=no-member,dangerous-default-value,invalid-name 8 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | blinker 2 | coverage 3 | coveralls 4 | fakeredis 5 | fixture 6 | flake8 7 | Flask 8 | Flask-Assets 9 | Flask-Testing 10 | Flask-WTF 11 | gunicorn 12 | inflect 13 | jsmin 14 | mock 15 | nose 16 | pylint 17 | pytest 18 | pytest-cov 19 | redis 20 | rednose 21 | twill 22 | unittest2 23 | -------------------------------------------------------------------------------- /run.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import megacosm 3 | 4 | megacosm.app.config.from_object('config.TestConfiguration') 5 | 6 | 7 | megacosm.app.run(host='0.0.0.0', port=8000, debug=True) 8 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | 2 | [pytest] 3 | addopts = --cov megacosm/ 4 | norecursedirs=env 5 | python_files=test_*.py megacosm/* 6 | python_classes=Test 7 | python_functions=test_ 8 | 9 | [nosetests] 10 | rednose=true 11 | with-coverage=true 12 | logging-clear-handlers=true 13 | cover-erase=true 14 | cover-inclusive=true 15 | cover-branches=true 16 | no-byte-compile=true 17 | logging-level=WARN 18 | cover-html=true 19 | cover-html-dir=coverage/ 20 | [flake8] 21 | max-line-length = 120 22 | exclude = env/* 23 | -------------------------------------------------------------------------------- /tests/test_flaw.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | "Fully test this module's functionality through the use of fixtures." 5 | 6 | from megacosm.generators import Flaw 7 | import unittest2 as unittest 8 | 9 | import fakeredis 10 | import fixtures 11 | from config import TestConfiguration 12 | 13 | 14 | class TestFlaw(unittest.TestCase): 15 | 16 | def setUp(self): 17 | """ """ 18 | self.redis = fakeredis.FakeRedis() 19 | fixtures.flaw.import_fixtures(self) 20 | 21 | def tearDown(self): 22 | self.redis.flushall() 23 | 24 | def test_random_flaw(self): 25 | """ """ 26 | flaw = Flaw(self.redis) 27 | self.assertNotEquals('', flaw.text) 28 | def test_static_text(self): 29 | """ """ 30 | flaw = Flaw(self.redis,{'text':'You are a loser.'}) 31 | self.assertEquals('You are a loser.', str(flaw)) 32 | -------------------------------------------------------------------------------- /tests/test_gem.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | "Fully test this module's functionality through the use of fixtures." 5 | 6 | from megacosm.generators import Gem 7 | import unittest2 as unittest 8 | 9 | import fakeredis 10 | from config import TestConfiguration 11 | import fixtures 12 | 13 | class TestGem(unittest.TestCase): 14 | 15 | def setUp(self): 16 | """ """ 17 | self.redis = fakeredis.FakeRedis() 18 | fixtures.gem.import_fixtures(self) 19 | 20 | def tearDown(self): 21 | self.redis.flushall() 22 | 23 | def test_random_gem(self): 24 | """ """ 25 | gem = Gem(self.redis) 26 | self.assertNotEquals('', gem.text) 27 | self.assertNotEquals('', gem.count) 28 | self.assertNotEquals('', gem.color) 29 | self.assertNotEquals('', str(gem)) 30 | 31 | def test_static_gem(self): 32 | """ """ 33 | gem = Gem(self.redis, {'text':'foo bar', 'count':3, 'color':'green'}) 34 | self.assertEqual('Foo bar', gem.text) 35 | self.assertEqual(3, gem.count) 36 | self.assertEqual('green', gem.color) 37 | 38 | -------------------------------------------------------------------------------- /tests/test_jobposting.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | "Fully test this module's functionality through the use of fixtures." 5 | 6 | from megacosm.generators import JobPosting, NPC 7 | import unittest2 as unittest 8 | import fixtures 9 | import fakeredis 10 | from config import TestConfiguration 11 | 12 | 13 | class TestJobPosting(unittest.TestCase): 14 | 15 | def setUp(self): 16 | """ """ 17 | self.redis = fakeredis.FakeRedis() 18 | fixtures.jobposting.import_fixtures(self) 19 | fixtures.business.import_fixtures(self) 20 | fixtures.npc.import_fixtures(self) 21 | fixtures.phobia.import_fixtures(self) 22 | fixtures.motivation.import_fixtures(self) 23 | 24 | self.redis.lpush('npc_race','gnome') 25 | 26 | def tearDown(self): 27 | self.redis.flushall() 28 | 29 | def test_random_jobposting(self): 30 | """ """ 31 | jobposting = JobPosting(self.redis) 32 | self.assertEquals('house', jobposting.valuedpossession) 33 | 34 | def test_jobposting_static_npc(self): 35 | """ """ 36 | npc = NPC(self.redis) 37 | jobposting = JobPosting(self.redis, {'npc':npc}) 38 | self.assertEquals(npc, jobposting.npc) 39 | 40 | -------------------------------------------------------------------------------- /tests/test_moon.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | "Fully test this module's functionality through the use of fixtures." 5 | 6 | from megacosm.generators import Moon 7 | import unittest2 as unittest 8 | 9 | import fakeredis 10 | import fixtures 11 | from config import TestConfiguration 12 | 13 | 14 | class TestMoon(unittest.TestCase): 15 | 16 | def setUp(self): 17 | """ """ 18 | 19 | self.redis = fakeredis.FakeRedis() 20 | fixtures.moon.import_fixtures(self) 21 | 22 | def tearDown(self): 23 | self.redis.flushall() 24 | 25 | def test_random_moon(self): 26 | """ """ 27 | 28 | moon = Moon(self.redis) 29 | self.assertEqual('dull brown',moon.color['name']) 30 | self.assertEqual('massive', moon.size['name']) 31 | self.assertEqual('Himalase', str(moon)) 32 | -------------------------------------------------------------------------------- /tests/test_phobia.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | "Fully test this module's functionality through the use of fixtures." 5 | 6 | from megacosm.generators import Phobia 7 | import unittest2 as unittest 8 | import fakeredis 9 | import fixtures 10 | from config import TestConfiguration 11 | 12 | 13 | class TestPhobia(unittest.TestCase): 14 | 15 | def setUp(self): 16 | """ """ 17 | self.redis = fakeredis.FakeRedis() 18 | fixtures.phobia.import_fixtures(self) 19 | 20 | 21 | def tearDown(self): 22 | self.redis.flushall() 23 | 24 | def test_random_phobia(self): 25 | """ """ 26 | phobia = Phobia(self.redis) 27 | self.assertEquals('You have moderate Ablutophobia, which is a fear of washing or bathing.', str(phobia)) 28 | 29 | def test_static_text(self): 30 | """ """ 31 | phobia = Phobia(self.redis, {'text': 'You have Tacophobia, which is a fear of tacos.'}) 32 | self.assertEquals('You have Tacophobia, which is a fear of tacos.', str(phobia)) 33 | 34 | -------------------------------------------------------------------------------- /tests/test_region.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | "Fully test this module's functionality through the use of fixtures." 5 | 6 | from megacosm.generators import Region 7 | import unittest2 as unittest 8 | import fakeredis 9 | from config import TestConfiguration 10 | import fixtures 11 | 12 | class TestRegion(unittest.TestCase): 13 | 14 | def setUp(self): 15 | """ """ 16 | self.redis = fakeredis.FakeRedis() 17 | fixtures.region.import_fixtures(self) 18 | 19 | def test_random_region(self): 20 | """ """ 21 | region = Region(self.redis) 22 | self.assertEqual('New Lombardy', str(region)) 23 | 24 | 25 | -------------------------------------------------------------------------------- /tests/test_resource.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | "Fully test this module's functionality through the use of fixtures." 5 | 6 | from megacosm.generators import Resource, Region 7 | import unittest2 as unittest 8 | import fixtures 9 | import fakeredis 10 | from config import TestConfiguration 11 | 12 | 13 | class TestResource(unittest.TestCase): 14 | 15 | def setUp(self): 16 | """ """ 17 | self.redis = fakeredis.FakeRedis() 18 | fixtures.resource.import_fixtures(self) 19 | fixtures.region.import_fixtures(self) 20 | def tearDown(self): 21 | self.redis.flushall() 22 | 23 | def test_random_resource(self): 24 | """ """ 25 | resource = Resource(self.redis) 26 | self.assertNotEquals('', resource.text) 27 | 28 | def test_static_text(self): 29 | """ """ 30 | resource = Resource(self.redis,{'text':'static resource text'}) 31 | self.assertEquals('Static resource text', str(resource)) 32 | 33 | def test_static_region(self): 34 | """ """ 35 | region=Region(self.redis) 36 | resource = Resource(self.redis,{'place':region}) 37 | self.assertEquals(str(region), str(region)) 38 | -------------------------------------------------------------------------------- /tests/test_roguedungeon.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CityGenerator/Megacosm-Generator/60b7dea91ce2b53166bfa3e14f50e5e53efca85f/tests/test_roguedungeon.py -------------------------------------------------------------------------------- /tests/test_star.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | "Fully test this module's functionality through the use of fixtures." 5 | 6 | from megacosm.generators import Star 7 | import unittest2 as unittest 8 | 9 | import fakeredis 10 | import fixtures 11 | from config import TestConfiguration 12 | 13 | class TestStar(unittest.TestCase): 14 | 15 | def setUp(self): 16 | self.redis = fakeredis.FakeRedis() 17 | fixtures.star.import_fixtures(self) 18 | 19 | def tearDown(self): 20 | self.redis.flushall() 21 | 22 | def test_creation(self): 23 | """ """ 24 | 25 | star = Star(self.redis) 26 | self.assertEqual('Krojel', str(star.name)) 27 | self.assertEqual('Krojel', str(star)) 28 | -------------------------------------------------------------------------------- /tests/test_starsystem.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | "Fully test this module's functionality through the use of fixtures." 5 | 6 | from megacosm.generators import StarSystem,Planet, Star 7 | import unittest2 as unittest 8 | import fixtures 9 | import fakeredis 10 | from mock import Mock, patch, MagicMock 11 | 12 | from config import TestConfiguration 13 | 14 | 15 | class TestStarSystem(unittest.TestCase): 16 | 17 | def setUp(self): 18 | self.redis = fakeredis.FakeRedis() 19 | fixtures.starsystem.import_fixtures(self) 20 | fixtures.star.import_fixtures(self) 21 | fixtures.planet.import_fixtures(self) 22 | 23 | def tearDown(self): 24 | self.redis.flushall() 25 | 26 | def test_creation(self): 27 | """ """ 28 | starsystem = StarSystem(self.redis) 29 | self.assertTrue(starsystem.planet) 30 | self.assertEqual(2, len(starsystem.stars)) 31 | self.assertEqual('Krojel System', str(starsystem)) 32 | 33 | -------------------------------------------------------------------------------- /tests/test_street.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | "Fully test this module's functionality through the use of fixtures." 5 | 6 | from megacosm.generators import Street 7 | import unittest2 as unittest 8 | import fixtures 9 | import fakeredis 10 | 11 | from config import TestConfiguration 12 | 13 | class TestStreet(unittest.TestCase): 14 | 15 | def setUp(self): 16 | self.redis = fakeredis.FakeRedis() 17 | fixtures.street.import_fixtures(self) 18 | 19 | def tearDown(self): 20 | self.redis.flushall() 21 | 22 | 23 | def test_random_street(self): 24 | """ """ 25 | street = Street(self.redis) 26 | self.assertEqual('New Alba Byway', str(street)) 27 | 28 | 29 | -------------------------------------------------------------------------------- /tests/test_weather.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | "Fully test this module's functionality through the use of fixtures." 5 | 6 | from megacosm.generators import Weather 7 | import unittest2 as unittest 8 | import fakeredis 9 | from config import TestConfiguration 10 | import fixtures 11 | from pprint import pprint 12 | class TestWeather(unittest.TestCase): 13 | 14 | def setUp(self): 15 | """ """ 16 | self.redis = fakeredis.FakeRedis() 17 | fixtures.weather.import_fixtures(self) 18 | 19 | def test_random_weather(self): 20 | """ """ 21 | weather = Weather(self.redis) 22 | self.assertEqual('unbearably hot', str(weather)) 23 | self.assertEqual('Right now it is unbearably hot outside, with hurricane-force winds. It is heavily sleeting at the moment. There are cumulus clouds in the sky above. A downburst is approaching, and will hit in the early evening.', weather.text) 24 | 25 | def test_static_weather_text(self): 26 | """ """ 27 | weather = Weather(self.redis, {'text': 'It is super hot.'}) 28 | self.assertEqual('unbearably hot', str(weather)) 29 | pprint(weather.text) 30 | self.assertEqual('It is super hot.', weather.text) 31 | --------------------------------------------------------------------------------