Compare commits
3 Commits
910c0b67b5
...
bde6d1881b
| Author | SHA1 | Date |
|---|---|---|
|
|
bde6d1881b | |
|
|
6096cc9562 | |
|
|
300c590326 |
|
|
@ -603,9 +603,9 @@
|
||||||
[tweaks.map_tweaks]
|
[tweaks.map_tweaks]
|
||||||
#Cartographers will sell 'adventurer maps' that will lead to a random vanilla structure (choosen from a thought out preset list).
|
#Cartographers will sell 'adventurer maps' that will lead to a random vanilla structure (choosen from a thought out preset list).
|
||||||
#Best kept disabled if you are adding custom adventurer maps with datapack (check the wiki for more)
|
#Best kept disabled if you are adding custom adventurer maps with datapack (check the wiki for more)
|
||||||
random_adventurer_maps = false
|
random_adventurer_maps = true
|
||||||
#Select a random structure to look for instead of iterating through all of the ones in the tag returning the closest. Turning on will make ones that have diff structures (aka all different ruined portals) show up more. On could take much more time to compute
|
#Select a random structure to look for instead of iterating through all of the ones in the tag returning the closest. Turning on will make ones that have diff structures (aka all different ruined portals) show up more. On could take much more time to compute
|
||||||
random_adventurer_maps_select_random_structure = false
|
random_adventurer_maps_select_random_structure = true
|
||||||
#Enables beacons, lodestones, respawn anchors, beds, conduits, portals to be displayed on maps by clicking one of them with a map
|
#Enables beacons, lodestones, respawn anchors, beds, conduits, portals to be displayed on maps by clicking one of them with a map
|
||||||
block_map_markers = true
|
block_map_markers = true
|
||||||
#Shows a death marker on your map when you die. Requires a recovery compass in player inventory or similar
|
#Shows a death marker on your map when you die. Requires a recovery compass in player inventory or similar
|
||||||
|
|
|
||||||
49
edits.md
49
edits.md
|
|
@ -2,14 +2,14 @@
|
||||||
|
|
||||||
## todo
|
## todo
|
||||||
|
|
||||||
- [x] Spelunkery / Caverns n Chasms / Galosphere / Supplementaries: repeated barometers/depth gauge etc
|
- [x] Spelunkery / Caverns n Chasms / Supplementaries: repeated barometers/depth gauge etc
|
||||||
- [x] Gui compass: remove or tweak since it adds depth as well
|
- [x] Gui compass: remove or tweak since it adds depth as well
|
||||||
|
|
||||||
- [x] spyglass: 2 copper + glass
|
- [x] spyglass: 2 copper + glass
|
||||||
- [x] empty map: 8 paper + spyglass
|
- [x] empty map: 8 paper + spyglass
|
||||||
- [x] map atlases: book + compass + empty map
|
- [x] map atlases: book + compass + empty map
|
||||||
- [x] iron / gold armor: use plates over ingots
|
- [x] iron / gold armor: use plates over ingots
|
||||||
- [-] rope: prefer farmer's rope over supplementaries
|
- [x] rope: prefer farmer's rope over supplementaries
|
||||||
- [x] flax: make more ropes than straws maybe?
|
- [x] flax: make more ropes than straws maybe?
|
||||||
|
|
||||||
- [x] fan, reaper use quartz -> replace shaft with, like, rose
|
- [x] fan, reaper use quartz -> replace shaft with, like, rose
|
||||||
|
|
@ -18,46 +18,7 @@
|
||||||
- [x] drill/cutter requires brass
|
- [x] drill/cutter requires brass
|
||||||
- [x] crying obsidian + glowstone dust -> dimension tears don't need blaze
|
- [x] crying obsidian + glowstone dust -> dimension tears don't need blaze
|
||||||
|
|
||||||
## trades
|
- [x] common villager trades
|
||||||
|
- [ ] villager explorer map trades
|
||||||
|
- [ ] move diamond tools to brass crafter as well
|
||||||
|
|
||||||
- [ ] ideology
|
|
||||||
- buys food at 1, sells staples at 2, sells gears for gems at 3, sells building stuff, buys/sells rare collectibles at 5
|
|
||||||
- food includes basic cooked fish, crops and meat, best exp source.
|
|
||||||
- staples are all player gatherables obtainable easily elsewhere, timesaver.
|
|
||||||
- trades gems (cinnabar, lapiz, spinel, diamond, silver, gold, crystal) for specific enchantment books.
|
|
||||||
- sells a type of stone at 4.
|
|
||||||
- collectibles are rare and must trade with other villagers, best emerald source.
|
|
||||||
- all trades have 1 stock and 1 exp, except for food which has 5 exp.
|
|
||||||
- you 1. know them 2. build farm for them 3. buy staples for consumables 4. build houses for them 5. stock up collectibles
|
|
||||||
- all food are basic one ingredient food and are the same big pool for all villagers.
|
|
||||||
- all collectibles are the same big pool for all villagers.
|
|
||||||
- only design staples, gear, and deco for each profession.
|
|
||||||
- armorer
|
|
||||||
- staples: low durability chainmail, gold armor
|
|
||||||
- enchantment: fire prot, prot,
|
|
||||||
- brick: granite, limestone
|
|
||||||
- butcher
|
|
||||||
- staples: various animal meat, bones
|
|
||||||
- enchantment: sharp, strength
|
|
||||||
- deco: diorite, tuff
|
|
||||||
- cartographer
|
|
||||||
- staples: explorer maps
|
|
||||||
- enchantment: loot, luck
|
|
||||||
- deco: deepslate cobble, cobble
|
|
||||||
- cleric
|
|
||||||
- staples: glass bottles, spider eyes, rotten flesh
|
|
||||||
- enchantment: undead killer, spider killer
|
|
||||||
- deco: nether brick, blackstone
|
|
||||||
- farmer
|
|
||||||
- staples: seeds, bonemeal, saplings
|
|
||||||
- enchantment: efficiency, durable
|
|
||||||
- deco: mud bricks, dirt
|
|
||||||
- fisherman
|
|
||||||
- staples: fish, leech, worm, rods
|
|
||||||
- enchantment: luck of the sea, lure
|
|
||||||
- deco: coral blocks
|
|
||||||
- fletcher
|
|
||||||
- staples: bows, arrows, crossbows
|
|
||||||
- enchantment: piercing, reloading
|
|
||||||
- deco: daub, daub_frame
|
|
||||||
-
|
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"#minecraft:village",
|
||||||
|
"#minecraft:shipwreck",
|
||||||
|
"#minecraft:mineshaft",
|
||||||
|
"#minecraft:ocean_ruin",
|
||||||
|
"#minecraft:ruined_portal",
|
||||||
|
"#minecraft:bastion_remnant",
|
||||||
|
"#minecraft:desert_pyramid",
|
||||||
|
"#minecraft:end_city",
|
||||||
|
"#minecraft:jungle_pyramid",
|
||||||
|
"#minecraft:igloo",
|
||||||
|
"#minecraft:pillager_outpost",
|
||||||
|
"#minecraft:swamp_hut",
|
||||||
|
|
||||||
|
"#betterdungeons:better_dungeons",
|
||||||
|
"#bettermineshafts:better_mineshafts",
|
||||||
|
"#betteroceanmonuments:better_ocean_monuments"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
make_mechanical(event, 'minecraft:diamond_boots', 'minecraft:diamond', [
|
make_mechanical(event, 'minecraft:diamond_boots', 'minecraft:diamond', [
|
||||||
'A A',
|
'A A',
|
||||||
'A A',
|
'A A',
|
||||||
])
|
]);
|
||||||
});
|
});
|
||||||
function make_mechanical(event, thing, material, shape){
|
function make_mechanical(event, thing, material, shape){
|
||||||
event.remove({output: thing});
|
event.remove({output: thing});
|
||||||
|
|
|
||||||
|
|
@ -15,16 +15,18 @@ const deco_list = [
|
||||||
'32x minecraft:diorite',
|
'32x minecraft:diorite',
|
||||||
'32x minecraft:granite',
|
'32x minecraft:granite',
|
||||||
'32x minecraft:andesite',
|
'32x minecraft:andesite',
|
||||||
'32x minecraft:stone',
|
'32x minecraft:calcite',
|
||||||
'32x minecraft:mossy_cobblestone',
|
|
||||||
'32x minecraft:tuff',
|
'32x minecraft:tuff',
|
||||||
|
'32x minecraft:cobblestone',
|
||||||
|
'32x minecraft:stone',
|
||||||
|
'32x minecraft:cobbled_deepslate',
|
||||||
|
'32x minecraft:deepslate',
|
||||||
'32x minecraft:dirt',
|
'32x minecraft:dirt',
|
||||||
'32x minecraft:gravel',
|
'32x minecraft:gravel',
|
||||||
'32x minecraft:sand',
|
'32x minecraft:sand',
|
||||||
'32x minecraft:mud',
|
'32x minecraft:mud',
|
||||||
'32x minecraft:mud_bricks',
|
'32x minecraft:mud_bricks',
|
||||||
'32x minecraft:stone_bricks',
|
'32x minecraft:stone_bricks',
|
||||||
'32x minecraft:cobbled_deepslate',
|
|
||||||
];
|
];
|
||||||
|
|
||||||
// level 3 sells enchantment books for random gem
|
// level 3 sells enchantment books for random gem
|
||||||
|
|
@ -180,9 +182,72 @@ const gems = [
|
||||||
'6x amethyst_shard',
|
'6x amethyst_shard',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* explorer maps:
|
||||||
|
* - villages: not very useful, since we're already in one. could be good for biome discovery though.
|
||||||
|
* - dungeons & mineshafts: fights with chests but are optional. good candidates.
|
||||||
|
* - shipwreck / ocean_ruins / pyramids / temples / pillager_outpost: optional treasures.
|
||||||
|
* - woodland mansion & ocean monuments: important for exclusive loot.
|
||||||
|
* - ancient city: again, exclusive loot.
|
||||||
|
* - nether portal: required to get to the nether.
|
||||||
|
*
|
||||||
|
* it makes little sense to gate the maps, since structures can be stumbled upon anyway and are optional anyway.
|
||||||
|
* only two maps are created per cartographer upgrade, and you need to move them into the wild.
|
||||||
|
* so we want to tie new maps to villages, since new villages have new cartographers.
|
||||||
|
*
|
||||||
|
* let's do 3 trades
|
||||||
|
* - a village from a different biome.
|
||||||
|
* - one of woodland mansion / ocean monument / ancient city / nether portal.
|
||||||
|
* - one of dungeon / mineshaft / pyramid / temple / pillager outpost.
|
||||||
|
*/
|
||||||
|
const treasure_structures = {
|
||||||
|
'#minecraft:mineshaft': 10,
|
||||||
|
'#minecraft:pillager_outpost' : 10,
|
||||||
|
'#betterdungeons:better_dungeons': 5,
|
||||||
|
};
|
||||||
|
const progression_structures = {
|
||||||
|
'#minecraft:ruined_portal' : 15,
|
||||||
|
'#minecraft:ancient_city' : 5,
|
||||||
|
'#minecraft:mansion' : 5,
|
||||||
|
'#betteroceanmonuments:better_ocean_monuments' : 5,
|
||||||
|
};
|
||||||
|
const village_structures = {
|
||||||
|
'village_desert': 1,
|
||||||
|
'village_plains': 1,
|
||||||
|
'village_savanna': 1,
|
||||||
|
'village_snowy': 1,
|
||||||
|
'village_taiga': 1,
|
||||||
|
'mmv:village_jungle': 1,
|
||||||
|
'mmv:village_swamp': 1,
|
||||||
|
"atmospheric:village_scrubland" : 1
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* @param {Record<string, number>} map
|
||||||
|
*/
|
||||||
|
function make_weighted_list(map){
|
||||||
|
const list = MoreJS.weightedList();
|
||||||
|
for(const [key, weight] of Object.entries(map)){
|
||||||
|
list.add(weight, key);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
MoreJSEvents.villagerTrades((event) => {
|
MoreJSEvents.villagerTrades((event) => {
|
||||||
event.removeVanillaTrades();
|
event.removeVanillaTrades();
|
||||||
event.removeModdedTrades();
|
event.removeModdedTrades();
|
||||||
|
|
||||||
|
const villages = make_weighted_list(village_structures)
|
||||||
|
const villageTrade = VillagerUtils.createStructureMapTrade(['empty_map', '2x emerald'], villages);
|
||||||
|
event.addTrade('cartographer', 2, villageTrade);
|
||||||
|
|
||||||
|
const treasures = make_weighted_list(treasure_structures);
|
||||||
|
const treasureTrade = VillagerUtils.createStructureMapTrade(['empty_map', '3x emerald'], treasures);
|
||||||
|
event.addTrade('cartographer', 2, treasureTrade);
|
||||||
|
|
||||||
|
const progression = make_weighted_list(progression_structures);
|
||||||
|
const progressionTrade = VillagerUtils.createStructureMapTrade(['empty_map', '5x emerald'], progression);
|
||||||
|
event.addTrade('cartographer', 2, progressionTrade);
|
||||||
|
|
||||||
const professions = VillagerUtils.getProfessions();
|
const professions = VillagerUtils.getProfessions();
|
||||||
professions.forEach(prof => {
|
professions.forEach(prof => {
|
||||||
const profName = prof.name();
|
const profName = prof.name();
|
||||||
|
|
@ -220,14 +285,15 @@ MoreJSEvents.villagerTrades((event) => {
|
||||||
offer.setPriceMultiplier(1);
|
offer.setPriceMultiplier(1);
|
||||||
});
|
});
|
||||||
// level 2
|
// level 2
|
||||||
event.addCustomTrade(prof, 2, (offer, entity, random) => {
|
if(staples.length > 0)
|
||||||
offer.setFirstInput('2x emerald');
|
event.addCustomTrade(prof, 2, (offer, entity, random) => {
|
||||||
if(rolls > 0) offer.setOutput(genEnchanted(staples, enchantments, rolls, random, true));
|
offer.setFirstInput('2x emerald');
|
||||||
else offer.setOutput(roll(staples, random));
|
if(rolls > 0) offer.setOutput(genEnchanted(staples, enchantments, rolls, random, true));
|
||||||
offer.setMaxUses(1);
|
else offer.setOutput(roll(staples, random));
|
||||||
offer.setVillagerExperience(1);
|
offer.setMaxUses(1);
|
||||||
offer.setPriceMultiplier(1);
|
offer.setVillagerExperience(1);
|
||||||
});
|
offer.setPriceMultiplier(1);
|
||||||
|
});
|
||||||
// level 1
|
// level 1
|
||||||
event.addCustomTrade(prof, 1, (offer, entity, random) => {
|
event.addCustomTrade(prof, 1, (offer, entity, random) => {
|
||||||
offer.setFirstInput(roll(food_list, random));
|
offer.setFirstInput(roll(food_list, random));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue