mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Merge branch 'juliancoffee/new_travelers' into 'master'
New travelers See merge request veloren/veloren!3180
This commit is contained in:
commit
c946e945cf
@ -45,6 +45,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- Generate random name for site2 sites
|
||||
- Shader dithering to remove banding from scenes with large colour gradients
|
||||
- Convert giant trees to site2
|
||||
- Add new upgraded travelers
|
||||
|
||||
### Changed
|
||||
|
||||
|
@ -1,19 +0,0 @@
|
||||
(
|
||||
name: Automatic,
|
||||
body: RandomWith("humanoid"),
|
||||
alignment: Alignment(Npc),
|
||||
loadout: Extended(
|
||||
hands: TwoHanded(Choice([
|
||||
(1, Some(Item("common.items.weapons.sword.iron-0"))),
|
||||
(1, Some(Item("common.items.weapons.bow.hardwood-2"))),
|
||||
(1, Some(Item("common.items.weapons.axe.steel_axe-0"))),
|
||||
(1, Some(Item("common.items.weapons.staff.frostwood_torch"))),
|
||||
])),
|
||||
base_asset: Loadout("common.loadout.world.traveler"),
|
||||
inventory: [],
|
||||
),
|
||||
loot: LootTable("common.loot_tables.creature.humanoid"),
|
||||
meta: [
|
||||
SkillSetAsset("common.skillset.preset.rank5.fullskill"),
|
||||
],
|
||||
)
|
27
assets/common/entity/world/traveler0.ron
Normal file
27
assets/common/entity/world/traveler0.ron
Normal file
@ -0,0 +1,27 @@
|
||||
(
|
||||
name: Name("Greenhorn Traveler"),
|
||||
body: RandomWith("humanoid"),
|
||||
alignment: Alignment(Npc),
|
||||
loadout: Extended(
|
||||
hands: TwoHanded(Choice([
|
||||
(1.0, Some(Item("common.items.weapons.sword.bronze-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.axe.bronze_axe-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.hammer.bronze_hammer-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.bow.bone-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.staff.fiery_wishing_rod"))),
|
||||
(1.0, Some(Item("common.items.weapons.sceptre.root_green0"))),
|
||||
])),
|
||||
base_asset: Choice([
|
||||
(1, "common.loadout.world.traveler0.bronze"),
|
||||
(1, "common.loadout.world.traveler0.linen"),
|
||||
(1, "common.loadout.world.traveler0.rawhide"),
|
||||
]),
|
||||
inventory: [
|
||||
(5, "common.items.consumable.potion_minor"),
|
||||
],
|
||||
),
|
||||
loot: LootTable("common.loot_tables.world.traveler0"),
|
||||
meta: [
|
||||
SkillSetAsset("common.skillset.preset.rank1.fullskill"),
|
||||
],
|
||||
)
|
27
assets/common/entity/world/traveler1.ron
Normal file
27
assets/common/entity/world/traveler1.ron
Normal file
@ -0,0 +1,27 @@
|
||||
(
|
||||
name: Name("Traveler"),
|
||||
body: RandomWith("humanoid"),
|
||||
alignment: Alignment(Npc),
|
||||
loadout: Extended(
|
||||
hands: TwoHanded(Choice([
|
||||
(1.0, Some(Item("common.items.weapons.sword.iron-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.axe.iron_axe-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.hammer.iron_hammer-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.bow.hardwood-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.staff.heated_arm"))),
|
||||
(1.0, Some(Item("common.items.weapons.sceptre.staff_nature"))),
|
||||
])),
|
||||
base_asset: Choice([
|
||||
(1, "common.loadout.world.traveler1.iron"),
|
||||
(1, "common.loadout.world.traveler1.leather"),
|
||||
(1, "common.loadout.world.traveler1.wool"),
|
||||
]),
|
||||
inventory: [
|
||||
(25, "common.items.consumable.potion_minor"),
|
||||
],
|
||||
),
|
||||
loot: LootTable("common.loot_tables.world.traveler1"),
|
||||
meta: [
|
||||
SkillSetAsset("common.skillset.preset.rank2.fullskill"),
|
||||
],
|
||||
)
|
38
assets/common/entity/world/traveler2.ron
Normal file
38
assets/common/entity/world/traveler2.ron
Normal file
@ -0,0 +1,38 @@
|
||||
(
|
||||
name: Name("Well-versed Traveler"),
|
||||
body: RandomWith("humanoid"),
|
||||
alignment: Alignment(Npc),
|
||||
loadout: Extended(
|
||||
hands: TwoHanded(Choice([
|
||||
// T3
|
||||
(1.0, Some(Item("common.items.weapons.sword.steel-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.axe.steel_axe-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.hammer.steel_hammer-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.bow.metal-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.staff.golden_khakkara"))),
|
||||
(1.0, Some(Item("common.items.weapons.sceptre.totem_green"))),
|
||||
// T4
|
||||
(1.0, Some(Item("common.items.weapons.sword.cobalt-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.axe.cobalt_axe-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.hammer.cobalt_hammer-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.bow.frostwood-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.staff.aurora"))),
|
||||
(1.0, Some(Item("common.items.weapons.sceptre.loops0"))),
|
||||
])),
|
||||
base_asset: Choice([
|
||||
(1, "common.loadout.world.traveler2.steel"),
|
||||
(1, "common.loadout.world.traveler2.silk"),
|
||||
(1, "common.loadout.world.traveler2.scale"),
|
||||
(1, "common.loadout.world.traveler2.cobalt"),
|
||||
(1, "common.loadout.world.traveler2.druid"),
|
||||
(1, "common.loadout.world.traveler2.carapace"),
|
||||
]),
|
||||
inventory: [
|
||||
(50, "common.items.consumable.potion_med"),
|
||||
],
|
||||
),
|
||||
loot: LootTable("common.loot_tables.world.traveler2"),
|
||||
meta: [
|
||||
SkillSetAsset("common.skillset.preset.rank3.fullskill"),
|
||||
],
|
||||
)
|
40
assets/common/entity/world/traveler3.ron
Normal file
40
assets/common/entity/world/traveler3.ron
Normal file
@ -0,0 +1,40 @@
|
||||
(
|
||||
name: Name("Experienced Traveler"),
|
||||
body: RandomWith("humanoid"),
|
||||
alignment: Alignment(Npc),
|
||||
loadout: Extended(
|
||||
hands: TwoHanded(Choice([
|
||||
// T5
|
||||
(1.0, Some(Item("common.items.weapons.sword.bloodsteel-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.axe.bloodsteel_axe-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.hammer.runic_hammer"))),
|
||||
(1.0, Some(Item("common.items.weapons.bow.eldwood-0"))),
|
||||
(1.0, Some(Item("common.items.weapons.staff.ruby_rod"))),
|
||||
(1.0, Some(Item("common.items.weapons.sceptre.emerald"))),
|
||||
// legendary
|
||||
(1.0, Some(Item("common.items.weapons.sword.caladbolg"))),
|
||||
(1.0, Some(Item("common.items.weapons.hammer.mjolnir"))),
|
||||
(1.0, Some(Item("common.items.weapons.axe.parashu"))),
|
||||
(1.0, Some(Item("common.items.weapons.bow.sagitta"))),
|
||||
(0.5, Some(Item("common.items.weapons.staff.phoenix"))),
|
||||
(0.5, Some(Item("common.items.weapons.staff.laevateinn"))),
|
||||
(0.5, Some(Item("common.items.weapons.sceptre.root_evil"))),
|
||||
(0.5, Some(Item("common.items.weapons.sceptre.caduceus"))),
|
||||
])),
|
||||
base_asset: Choice([
|
||||
(1, "common.loadout.world.traveler3.bloodsteel"),
|
||||
(1, "common.loadout.world.traveler3.moonweave"),
|
||||
(1, "common.loadout.world.traveler3.primal"),
|
||||
(1, "common.loadout.world.traveler3.orichalcum"),
|
||||
(1, "common.loadout.world.traveler3.sunsilk"),
|
||||
(1, "common.loadout.world.traveler3.dragonscale"),
|
||||
]),
|
||||
inventory: [
|
||||
(50, "common.items.consumable.potion_big"),
|
||||
],
|
||||
),
|
||||
loot: LootTable("common.loot_tables.world.traveler3"),
|
||||
meta: [
|
||||
SkillSetAsset("common.skillset.preset.rank5.fullskill"),
|
||||
],
|
||||
)
|
17
assets/common/loadout/world/traveler0/bronze.ron
Normal file
17
assets/common/loadout/world/traveler0/bronze.ron
Normal file
@ -0,0 +1,17 @@
|
||||
({
|
||||
Armor(Chest): Item("common.items.armor.mail.bronze.chest"),
|
||||
Armor(Legs): Item("common.items.armor.mail.bronze.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.mail.bronze.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.mail.bronze.hand"),
|
||||
Armor(Feet): Item("common.items.armor.mail.bronze.foot"),
|
||||
Armor(Belt): Item("common.items.armor.mail.bronze.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.mail.bronze.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
||||
Lantern: Choice([
|
||||
(1.0, Some(Item("common.items.lantern.black_0"))),
|
||||
]),
|
||||
})
|
17
assets/common/loadout/world/traveler0/linen.ron
Normal file
17
assets/common/loadout/world/traveler0/linen.ron
Normal file
@ -0,0 +1,17 @@
|
||||
({
|
||||
Armor(Chest): Item("common.items.armor.cloth.linen.chest"),
|
||||
Armor(Legs): Item("common.items.armor.cloth.linen.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.cloth.linen.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.cloth.linen.hand"),
|
||||
Armor(Feet): Item("common.items.armor.cloth.linen.foot"),
|
||||
Armor(Belt): Item("common.items.armor.cloth.linen.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.cloth.linen.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
||||
Lantern: Choice([
|
||||
(1.0, Some(Item("common.items.lantern.black_0"))),
|
||||
]),
|
||||
})
|
17
assets/common/loadout/world/traveler0/rawhide.ron
Normal file
17
assets/common/loadout/world/traveler0/rawhide.ron
Normal file
@ -0,0 +1,17 @@
|
||||
({
|
||||
Armor(Chest): Item("common.items.armor.hide.rawhide.chest"),
|
||||
Armor(Legs): Item("common.items.armor.hide.rawhide.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.hide.rawhide.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.hide.rawhide.hand"),
|
||||
Armor(Feet): Item("common.items.armor.hide.rawhide.foot"),
|
||||
Armor(Belt): Item("common.items.armor.hide.rawhide.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.hide.rawhide.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
||||
Lantern: Choice([
|
||||
(1.0, Some(Item("common.items.lantern.black_0"))),
|
||||
]),
|
||||
})
|
22
assets/common/loadout/world/traveler1/iron.ron
Normal file
22
assets/common/loadout/world/traveler1/iron.ron
Normal file
@ -0,0 +1,22 @@
|
||||
({
|
||||
Armor(Chest): Item("common.items.armor.mail.iron.chest"),
|
||||
Armor(Legs): Item("common.items.armor.mail.iron.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.mail.iron.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.mail.iron.hand"),
|
||||
Armor(Feet): Item("common.items.armor.mail.iron.foot"),
|
||||
Armor(Belt): Item("common.items.armor.mail.iron.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.misc.back.backpack"))),
|
||||
(1.0, Some(Item("common.items.npc_armor.back.backpack_blue"))),
|
||||
(1.0, Some(Item("common.items.armor.mail.iron.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
||||
Lantern: Choice([
|
||||
(1.0, Some(Item("common.items.lantern.black_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.blue_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.green_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.red_0"))),
|
||||
]),
|
||||
})
|
@ -1,14 +1,15 @@
|
||||
({
|
||||
|
||||
Armor(Chest): Item("common.items.npc_armor.chest.leather_blue"),
|
||||
Armor(Legs): Item("common.items.npc_armor.pants.leather_blue"),
|
||||
Armor(Chest): Item("common.items.armor.hide.leather.chest"),
|
||||
Armor(Legs): Item("common.items.armor.hide.leather.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.hide.leather.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.hide.leather.hand"),
|
||||
Armor(Feet): Item("common.items.armor.hide.leather.foot"),
|
||||
Armor(Belt): Item("common.items.armor.hide.leather.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.hide.rawhide.back"))),
|
||||
(1.0, Some(Item("common.items.armor.misc.back.backpack"))),
|
||||
(1.0, Some(Item("common.items.npc_armor.back.backpack_blue"))),
|
||||
(1.0, Some(Item("common.items.npc_armor.back.leather_blue"))),
|
||||
(1.0, Some(Item("common.items.armor.hide.leather.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
22
assets/common/loadout/world/traveler1/wool.ron
Normal file
22
assets/common/loadout/world/traveler1/wool.ron
Normal file
@ -0,0 +1,22 @@
|
||||
({
|
||||
Armor(Chest): Item("common.items.armor.cloth.woolen.chest"),
|
||||
Armor(Legs): Item("common.items.armor.cloth.woolen.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.cloth.woolen.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.cloth.woolen.hand"),
|
||||
Armor(Feet): Item("common.items.armor.cloth.woolen.foot"),
|
||||
Armor(Belt): Item("common.items.armor.cloth.woolen.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.misc.back.backpack"))),
|
||||
(1.0, Some(Item("common.items.npc_armor.back.backpack_blue"))),
|
||||
(1.0, Some(Item("common.items.armor.cloth.woolen.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
||||
Lantern: Choice([
|
||||
(1.0, Some(Item("common.items.lantern.black_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.blue_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.green_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.red_0"))),
|
||||
]),
|
||||
})
|
22
assets/common/loadout/world/traveler2/carapace.ron
Normal file
22
assets/common/loadout/world/traveler2/carapace.ron
Normal file
@ -0,0 +1,22 @@
|
||||
({
|
||||
Armor(Chest): Item("common.items.armor.hide.carapace.chest"),
|
||||
Armor(Legs): Item("common.items.armor.hide.carapace.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.hide.carapace.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.hide.carapace.hand"),
|
||||
Armor(Feet): Item("common.items.armor.hide.carapace.foot"),
|
||||
Armor(Belt): Item("common.items.armor.hide.carapace.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.misc.back.backpack"))),
|
||||
(1.0, Some(Item("common.items.npc_armor.back.backpack_blue"))),
|
||||
(1.0, Some(Item("common.items.armor.hide.carapace.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
||||
Lantern: Choice([
|
||||
(1.0, Some(Item("common.items.lantern.black_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.blue_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.green_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.geode_purp"))),
|
||||
]),
|
||||
})
|
22
assets/common/loadout/world/traveler2/cobalt.ron
Normal file
22
assets/common/loadout/world/traveler2/cobalt.ron
Normal file
@ -0,0 +1,22 @@
|
||||
({
|
||||
Armor(Chest): Item("common.items.armor.mail.cobalt.chest"),
|
||||
Armor(Legs): Item("common.items.armor.mail.cobalt.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.mail.cobalt.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.mail.cobalt.hand"),
|
||||
Armor(Feet): Item("common.items.armor.mail.cobalt.foot"),
|
||||
Armor(Belt): Item("common.items.armor.mail.cobalt.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.misc.back.backpack"))),
|
||||
(1.0, Some(Item("common.items.npc_armor.back.backpack_blue"))),
|
||||
(1.0, Some(Item("common.items.armor.mail.cobalt.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
||||
Lantern: Choice([
|
||||
(1.0, Some(Item("common.items.lantern.black_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.blue_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.green_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.geode_purp"))),
|
||||
]),
|
||||
})
|
22
assets/common/loadout/world/traveler2/druid.ron
Normal file
22
assets/common/loadout/world/traveler2/druid.ron
Normal file
@ -0,0 +1,22 @@
|
||||
({
|
||||
Armor(Chest): Item("common.items.armor.cloth.druid.chest"),
|
||||
Armor(Legs): Item("common.items.armor.cloth.druid.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.cloth.druid.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.cloth.druid.hand"),
|
||||
Armor(Feet): Item("common.items.armor.cloth.druid.foot"),
|
||||
Armor(Belt): Item("common.items.armor.cloth.druid.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.misc.back.backpack"))),
|
||||
(1.0, Some(Item("common.items.npc_armor.back.backpack_blue"))),
|
||||
(1.0, Some(Item("common.items.armor.cloth.druid.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
||||
Lantern: Choice([
|
||||
(1.0, Some(Item("common.items.lantern.black_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.blue_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.green_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.geode_purp"))),
|
||||
]),
|
||||
})
|
22
assets/common/loadout/world/traveler2/scale.ron
Normal file
22
assets/common/loadout/world/traveler2/scale.ron
Normal file
@ -0,0 +1,22 @@
|
||||
({
|
||||
Armor(Chest): Item("common.items.armor.hide.scale.chest"),
|
||||
Armor(Legs): Item("common.items.armor.hide.scale.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.hide.scale.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.hide.scale.hand"),
|
||||
Armor(Feet): Item("common.items.armor.hide.scale.foot"),
|
||||
Armor(Belt): Item("common.items.armor.hide.scale.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.misc.back.backpack"))),
|
||||
(1.0, Some(Item("common.items.npc_armor.back.backpack_blue"))),
|
||||
(1.0, Some(Item("common.items.armor.hide.scale.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
||||
Lantern: Choice([
|
||||
(1.0, Some(Item("common.items.lantern.black_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.blue_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.green_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.geode_purp"))),
|
||||
]),
|
||||
})
|
22
assets/common/loadout/world/traveler2/silk.ron
Normal file
22
assets/common/loadout/world/traveler2/silk.ron
Normal file
@ -0,0 +1,22 @@
|
||||
({
|
||||
Armor(Chest): Item("common.items.armor.cloth.silken.chest"),
|
||||
Armor(Legs): Item("common.items.armor.cloth.silken.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.cloth.silken.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.cloth.silken.hand"),
|
||||
Armor(Feet): Item("common.items.armor.cloth.silken.foot"),
|
||||
Armor(Belt): Item("common.items.armor.cloth.silken.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.misc.back.backpack"))),
|
||||
(1.0, Some(Item("common.items.npc_armor.back.backpack_blue"))),
|
||||
(1.0, Some(Item("common.items.armor.cloth.silken.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
||||
Lantern: Choice([
|
||||
(1.0, Some(Item("common.items.lantern.black_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.blue_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.green_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.geode_purp"))),
|
||||
]),
|
||||
})
|
22
assets/common/loadout/world/traveler2/steel.ron
Normal file
22
assets/common/loadout/world/traveler2/steel.ron
Normal file
@ -0,0 +1,22 @@
|
||||
({
|
||||
Armor(Chest): Item("common.items.armor.mail.steel.chest"),
|
||||
Armor(Legs): Item("common.items.armor.mail.steel.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.mail.steel.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.mail.steel.hand"),
|
||||
Armor(Feet): Item("common.items.armor.mail.steel.foot"),
|
||||
Armor(Belt): Item("common.items.armor.mail.steel.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.misc.back.backpack"))),
|
||||
(1.0, Some(Item("common.items.npc_armor.back.backpack_blue"))),
|
||||
(1.0, Some(Item("common.items.armor.mail.steel.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
||||
Lantern: Choice([
|
||||
(1.0, Some(Item("common.items.lantern.black_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.blue_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.green_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.geode_purp"))),
|
||||
]),
|
||||
})
|
24
assets/common/loadout/world/traveler3/bloodsteel.ron
Normal file
24
assets/common/loadout/world/traveler3/bloodsteel.ron
Normal file
@ -0,0 +1,24 @@
|
||||
({
|
||||
Armor(Chest): Item("common.items.armor.mail.bloodsteel.chest"),
|
||||
Armor(Legs): Item("common.items.armor.mail.bloodsteel.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.mail.bloodsteel.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.mail.bloodsteel.hand"),
|
||||
Armor(Feet): Item("common.items.armor.mail.bloodsteel.foot"),
|
||||
Armor(Belt): Item("common.items.armor.mail.bloodsteel.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.misc.back.backpack"))),
|
||||
(1.0, Some(Item("common.items.npc_armor.back.backpack_blue"))),
|
||||
(1.0, Some(Item("common.items.armor.mail.bloodsteel.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
||||
Lantern: Choice([
|
||||
(1.0, Some(Item("common.items.lantern.black_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.blue_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.green_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.red_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.geode_purp"))),
|
||||
(1.0, Some(Item("common.items.boss_drops.lantern"))),
|
||||
]),
|
||||
})
|
24
assets/common/loadout/world/traveler3/dragonscale.ron
Normal file
24
assets/common/loadout/world/traveler3/dragonscale.ron
Normal file
@ -0,0 +1,24 @@
|
||||
({
|
||||
Armor(Chest): Item("common.items.armor.hide.dragonscale.chest"),
|
||||
Armor(Legs): Item("common.items.armor.hide.dragonscale.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.hide.dragonscale.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.hide.dragonscale.hand"),
|
||||
Armor(Feet): Item("common.items.armor.hide.dragonscale.foot"),
|
||||
Armor(Belt): Item("common.items.armor.hide.dragonscale.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.misc.back.backpack"))),
|
||||
(1.0, Some(Item("common.items.npc_armor.back.backpack_blue"))),
|
||||
(1.0, Some(Item("common.items.armor.hide.dragonscale.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
||||
Lantern: Choice([
|
||||
(1.0, Some(Item("common.items.lantern.black_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.blue_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.green_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.red_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.geode_purp"))),
|
||||
(1.0, Some(Item("common.items.boss_drops.lantern"))),
|
||||
]),
|
||||
})
|
24
assets/common/loadout/world/traveler3/moonweave.ron
Normal file
24
assets/common/loadout/world/traveler3/moonweave.ron
Normal file
@ -0,0 +1,24 @@
|
||||
({
|
||||
Armor(Chest): Item("common.items.armor.cloth.moonweave.chest"),
|
||||
Armor(Legs): Item("common.items.armor.cloth.moonweave.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.cloth.moonweave.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.cloth.moonweave.hand"),
|
||||
Armor(Feet): Item("common.items.armor.cloth.moonweave.foot"),
|
||||
Armor(Belt): Item("common.items.armor.cloth.moonweave.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.misc.back.backpack"))),
|
||||
(1.0, Some(Item("common.items.npc_armor.back.backpack_blue"))),
|
||||
(1.0, Some(Item("common.items.armor.cloth.moonweave.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
||||
Lantern: Choice([
|
||||
(1.0, Some(Item("common.items.lantern.black_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.blue_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.green_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.red_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.geode_purp"))),
|
||||
(1.0, Some(Item("common.items.boss_drops.lantern"))),
|
||||
]),
|
||||
})
|
24
assets/common/loadout/world/traveler3/orichalcum.ron
Normal file
24
assets/common/loadout/world/traveler3/orichalcum.ron
Normal file
@ -0,0 +1,24 @@
|
||||
({
|
||||
Armor(Chest): Item("common.items.armor.mail.orichalcum.chest"),
|
||||
Armor(Legs): Item("common.items.armor.mail.orichalcum.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.mail.orichalcum.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.mail.orichalcum.hand"),
|
||||
Armor(Feet): Item("common.items.armor.mail.orichalcum.foot"),
|
||||
Armor(Belt): Item("common.items.armor.mail.orichalcum.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.misc.back.backpack"))),
|
||||
(1.0, Some(Item("common.items.npc_armor.back.backpack_blue"))),
|
||||
(1.0, Some(Item("common.items.armor.mail.orichalcum.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
||||
Lantern: Choice([
|
||||
(1.0, Some(Item("common.items.lantern.black_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.blue_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.green_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.red_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.geode_purp"))),
|
||||
(1.0, Some(Item("common.items.boss_drops.lantern"))),
|
||||
]),
|
||||
})
|
24
assets/common/loadout/world/traveler3/primal.ron
Normal file
24
assets/common/loadout/world/traveler3/primal.ron
Normal file
@ -0,0 +1,24 @@
|
||||
({
|
||||
Armor(Chest): Item("common.items.armor.hide.primal.chest"),
|
||||
Armor(Legs): Item("common.items.armor.hide.primal.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.hide.primal.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.hide.primal.hand"),
|
||||
Armor(Feet): Item("common.items.armor.hide.primal.foot"),
|
||||
Armor(Belt): Item("common.items.armor.hide.primal.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.misc.back.backpack"))),
|
||||
(1.0, Some(Item("common.items.npc_armor.back.backpack_blue"))),
|
||||
(1.0, Some(Item("common.items.armor.hide.primal.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
||||
Lantern: Choice([
|
||||
(1.0, Some(Item("common.items.lantern.black_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.blue_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.green_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.red_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.geode_purp"))),
|
||||
(1.0, Some(Item("common.items.boss_drops.lantern"))),
|
||||
]),
|
||||
})
|
24
assets/common/loadout/world/traveler3/sunsilk.ron
Normal file
24
assets/common/loadout/world/traveler3/sunsilk.ron
Normal file
@ -0,0 +1,24 @@
|
||||
({
|
||||
Armor(Chest): Item("common.items.armor.cloth.sunsilk.chest"),
|
||||
Armor(Legs): Item("common.items.armor.cloth.sunsilk.pants"),
|
||||
Armor(Shoulders): Item("common.items.armor.cloth.sunsilk.shoulder"),
|
||||
Armor(Hands): Item("common.items.armor.cloth.sunsilk.hand"),
|
||||
Armor(Feet): Item("common.items.armor.cloth.sunsilk.foot"),
|
||||
Armor(Belt): Item("common.items.armor.cloth.sunsilk.belt"),
|
||||
|
||||
Armor(Back): Choice([
|
||||
(1.0, Some(Item("common.items.armor.misc.back.backpack"))),
|
||||
(1.0, Some(Item("common.items.npc_armor.back.backpack_blue"))),
|
||||
(1.0, Some(Item("common.items.armor.cloth.sunsilk.back"))),
|
||||
(1.0, None),
|
||||
]),
|
||||
|
||||
Lantern: Choice([
|
||||
(1.0, Some(Item("common.items.lantern.black_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.blue_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.green_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.red_0"))),
|
||||
(1.0, Some(Item("common.items.lantern.geode_purp"))),
|
||||
(1.0, Some(Item("common.items.boss_drops.lantern"))),
|
||||
]),
|
||||
})
|
@ -4,4 +4,4 @@
|
||||
(1.0, LootTable("common.loot_tables.weapons.hammer.stone")),
|
||||
(1.0, LootTable("common.loot_tables.weapons.bow.wood")),
|
||||
(1.0, LootTable("common.loot_tables.weapons.staff.wood")),
|
||||
]
|
||||
]
|
||||
|
8
assets/common/loot_tables/world/traveler0.ron
Normal file
8
assets/common/loot_tables/world/traveler0.ron
Normal file
@ -0,0 +1,8 @@
|
||||
[
|
||||
//Currency
|
||||
(4.0, ItemQuantity("common.items.utility.coins", 50, 200)),
|
||||
//Food
|
||||
(4.0, LootTable("common.loot_tables.food.prepared")),
|
||||
//Flowers, pretty
|
||||
(2.0, ItemQuantity("common.items.flowers.red", 3, 6)),
|
||||
]
|
13
assets/common/loot_tables/world/traveler1.ron
Normal file
13
assets/common/loot_tables/world/traveler1.ron
Normal file
@ -0,0 +1,13 @@
|
||||
[
|
||||
//Currency
|
||||
(3.0, ItemQuantity("common.items.utility.coins", 50, 200)),
|
||||
(2.0, ItemQuantity("common.items.utility.coins", 200, 500)),
|
||||
//Food
|
||||
(3.0, LootTable("common.loot_tables.food.prepared")),
|
||||
//Ores
|
||||
(2.0, ItemQuantity("common.items.mineral.ore.iron", 2, 7)),
|
||||
//Hides
|
||||
(2.0, ItemQuantity("common.items.crafting_ing.hide.animal_hide", 5, 15)),
|
||||
//Flowers, pretty
|
||||
(2.0, ItemQuantity("common.items.flowers.red", 3, 6)),
|
||||
]
|
19
assets/common/loot_tables/world/traveler2.ron
Normal file
19
assets/common/loot_tables/world/traveler2.ron
Normal file
@ -0,0 +1,19 @@
|
||||
[
|
||||
//Currency
|
||||
(3.0, ItemQuantity("common.items.utility.coins", 200, 500)),
|
||||
(2.0, ItemQuantity("common.items.utility.coins", 2000, 5000)),
|
||||
//Food
|
||||
(3.0, LootTable("common.loot_tables.food.prepared")),
|
||||
//Ores
|
||||
(2.0, ItemQuantity("common.items.mineral.ore.coal", 5, 15)),
|
||||
(2.0, ItemQuantity("common.items.mineral.ore.iron", 2, 7)),
|
||||
(1.0, ItemQuantity("common.items.mineral.ore.cobalt", 2, 5)),
|
||||
(0.1, ItemQuantity("common.items.mineral.gem.diamond", 2, 5)),
|
||||
//Hides
|
||||
(2.0, ItemQuantity("common.items.crafting_ing.hide.animal_hide", 5, 15)),
|
||||
(2.0, ItemQuantity("common.items.crafting_ing.hide.scales", 5, 15)),
|
||||
(1.0, ItemQuantity("common.items.crafting_ing.hide.carapace", 3, 10)),
|
||||
(1.0, ItemQuantity("common.items.crafting_ing.hide.tough_hide", 3, 10)),
|
||||
//Flowers, very pretty
|
||||
(2.0, ItemQuantity("common.items.flowers.red", 5, 10)),
|
||||
]
|
23
assets/common/loot_tables/world/traveler3.ron
Normal file
23
assets/common/loot_tables/world/traveler3.ron
Normal file
@ -0,0 +1,23 @@
|
||||
[
|
||||
//Currency
|
||||
(2.0, ItemQuantity("common.items.utility.coins", 200, 500)),
|
||||
(1.0, ItemQuantity("common.items.utility.coins", 2000, 5000)),
|
||||
//Food
|
||||
(4.0, LootTable("common.loot_tables.food.prepared")),
|
||||
//Ores
|
||||
(2.0, ItemQuantity("common.items.mineral.ore.coal", 10, 30)),
|
||||
(2.0, ItemQuantity("common.items.mineral.ore.iron", 4, 14)),
|
||||
(1.0, ItemQuantity("common.items.mineral.ore.cobalt", 4, 10)),
|
||||
(0.1, ItemQuantity("common.items.mineral.gem.diamond", 4, 10)),
|
||||
//Hides
|
||||
(2.0, ItemQuantity("common.items.crafting_ing.hide.animal_hide", 10, 30)),
|
||||
(2.0, ItemQuantity("common.items.crafting_ing.hide.scales", 10, 30)),
|
||||
(1.0, ItemQuantity("common.items.crafting_ing.hide.carapace", 6, 20)),
|
||||
(1.0, ItemQuantity("common.items.crafting_ing.hide.tough_hide", 6, 20)),
|
||||
(0.3, ItemQuantity("common.items.crafting_ing.hide.plate", 1, 8)),
|
||||
(0.1, ItemQuantity("common.items.crafting_ing.hide.rugged_hide", 1, 6)),
|
||||
//Flowers, very pretty
|
||||
(3.0, ItemQuantity("common.items.flowers.red", 10, 20)),
|
||||
(2.0, ItemQuantity("common.items.flowers.moonbell", 6, 12)),
|
||||
(1.0, ItemQuantity("common.items.flowers.pyrebloom", 3, 6)),
|
||||
]
|
@ -1,9 +1,5 @@
|
||||
use super::*;
|
||||
use common::{
|
||||
comp::inventory::{
|
||||
loadout_builder::{make_food_bag, make_potion_bag},
|
||||
slot::ArmorSlot,
|
||||
},
|
||||
resources::Time,
|
||||
rtsim::{Memory, MemoryItem},
|
||||
store::Id,
|
||||
@ -31,7 +27,7 @@ pub struct Entity {
|
||||
|
||||
#[derive(Clone, Copy, strum::EnumIter)]
|
||||
pub enum RtSimEntityKind {
|
||||
Random,
|
||||
Wanderer,
|
||||
Cultist,
|
||||
Villager,
|
||||
Merchant,
|
||||
@ -66,7 +62,7 @@ impl Entity {
|
||||
|
||||
pub fn get_body(&self) -> comp::Body {
|
||||
match self.kind {
|
||||
RtSimEntityKind::Random => {
|
||||
RtSimEntityKind::Wanderer => {
|
||||
match self.rng(PERM_GENUS).gen::<f32>() {
|
||||
// we want 5% airships, 45% birds, 50% humans
|
||||
x if x < 0.05 => {
|
||||
@ -111,7 +107,7 @@ impl Entity {
|
||||
let site = match self.kind {
|
||||
/*
|
||||
// Travelling merchants (don't work for some reason currently)
|
||||
RtSimEntityKind::Random if self.rng(PERM_TRADE).gen_bool(0.5) => {
|
||||
RtSimEntityKind::Wanderer if self.rng(PERM_TRADE).gen_bool(0.5) => {
|
||||
match self.brain.route {
|
||||
Travel::Path { target_id, .. } => Some(target_id),
|
||||
_ => None,
|
||||
@ -128,7 +124,15 @@ impl Entity {
|
||||
|
||||
pub fn get_entity_config(&self) -> &str {
|
||||
match self.get_body() {
|
||||
comp::Body::Humanoid(_) => humanoid_config(self.kind),
|
||||
comp::Body::Humanoid(_) => {
|
||||
let rank = match self.rng(PERM_LEVEL).gen_range::<u8, _>(0..=20) {
|
||||
0..=2 => TravelerRank::Rank0,
|
||||
3..=9 => TravelerRank::Rank1,
|
||||
10..=17 => TravelerRank::Rank2,
|
||||
18.. => TravelerRank::Rank3,
|
||||
};
|
||||
humanoid_config(self.kind, rank)
|
||||
},
|
||||
comp::Body::BirdMedium(b) => bird_medium_config(b),
|
||||
comp::Body::BirdLarge(b) => bird_large_config(b),
|
||||
_ => unimplemented!(),
|
||||
@ -141,19 +145,12 @@ impl Entity {
|
||||
pub fn get_adhoc_loadout(
|
||||
&self,
|
||||
) -> fn(LoadoutBuilder, Option<&trade::SiteInformation>) -> LoadoutBuilder {
|
||||
let body = self.get_body();
|
||||
let kind = self.kind;
|
||||
|
||||
// give potions to traveler humanoids or return loadout as is otherwise
|
||||
match (body, kind) {
|
||||
(comp::Body::Humanoid(_), RtSimEntityKind::Random) => |l, _| {
|
||||
l.bag(ArmorSlot::Bag1, Some(make_potion_bag(100)))
|
||||
.bag(ArmorSlot::Bag2, Some(make_food_bag(100)))
|
||||
},
|
||||
(_, RtSimEntityKind::Merchant) => {
|
||||
|l, trade| l.with_creator(world::site::settlement::merchant_loadout, trade)
|
||||
},
|
||||
_ => |l, _| l,
|
||||
if let RtSimEntityKind::Merchant = kind {
|
||||
|l, trade| l.with_creator(world::site::settlement::merchant_loadout, trade)
|
||||
} else {
|
||||
|l, _| l
|
||||
}
|
||||
}
|
||||
|
||||
@ -797,10 +794,23 @@ impl Brain {
|
||||
}
|
||||
}
|
||||
|
||||
fn humanoid_config(kind: RtSimEntityKind) -> &'static str {
|
||||
#[derive(strum::EnumIter)]
|
||||
enum TravelerRank {
|
||||
Rank0,
|
||||
Rank1,
|
||||
Rank2,
|
||||
Rank3,
|
||||
}
|
||||
|
||||
fn humanoid_config(kind: RtSimEntityKind, rank: TravelerRank) -> &'static str {
|
||||
match kind {
|
||||
RtSimEntityKind::Cultist => "common.entity.dungeon.tier-5.cultist",
|
||||
RtSimEntityKind::Random => "common.entity.world.traveler",
|
||||
RtSimEntityKind::Wanderer => match rank {
|
||||
TravelerRank::Rank0 => "common.entity.world.traveler0",
|
||||
TravelerRank::Rank1 => "common.entity.world.traveler1",
|
||||
TravelerRank::Rank2 => "common.entity.world.traveler2",
|
||||
TravelerRank::Rank3 => "common.entity.world.traveler3",
|
||||
},
|
||||
RtSimEntityKind::Villager => "common.entity.village.villager",
|
||||
RtSimEntityKind::Merchant => "common.entity.village.merchant",
|
||||
}
|
||||
@ -886,8 +896,10 @@ mod tests {
|
||||
}
|
||||
// Humanoid test
|
||||
for kind in RtSimEntityKind::iter() {
|
||||
let config = humanoid_config(kind);
|
||||
std::mem::drop(EntityInfo::at(dummy_pos).with_asset_expect(config, &mut dummy_rng));
|
||||
for rank in TravelerRank::iter() {
|
||||
let config = humanoid_config(kind, rank);
|
||||
std::mem::drop(EntityInfo::at(dummy_pos).with_asset_expect(config, &mut dummy_rng));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -133,7 +133,7 @@ pub fn init(
|
||||
seed: thread_rng().gen(),
|
||||
controller: RtSimController::default(),
|
||||
last_time_ticked: 0.0,
|
||||
kind: RtSimEntityKind::Random,
|
||||
kind: RtSimEntityKind::Wanderer,
|
||||
brain: Default::default(),
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user