Merchant Outfit

This commit is contained in:
Monty Marz 2021-11-18 16:31:12 +00:00
parent e426c1997b
commit ec07dbb05e
44 changed files with 492 additions and 29 deletions

View File

@ -25,6 +25,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Bomb sprites (can be exploded with arrows or other explosions)
- Campfire waypoints in towns
- Arbitrary volume entities
- New outfit for merchants
### Changed

View File

@ -13,6 +13,6 @@ EntityConfig (
meta: [
LoadoutAsset("common.loadout.village.merchant"),
SkillSetAsset("common.skillset.village.merchant"),
SkillSetAsset("common.skillset.village.merchant.merchant"),
],
)

View File

@ -6,9 +6,14 @@ EntityConfig (
// TODO: consider giving some gold/gems/materials?
loot: LootTable("common.loot_tables.creature.humanoid"),
hands: TwoHanded(Item("common.items.weapons.bow.eldwood-0")),
hands: TwoHanded(Choice([
(2.0, Some(Item("common.items.weapons.bow.eldwood-0"))),
(1.0, Some(Item("common.items.weapons.sword.steel-0"))),
(1.0, Some(Item("common.items.weapons.sword_1h.bloodsteel-0"))),
(2.0, Some(Item("common.items.weapons.staff.flamethrower_0"))),
])),
meta: [
SkillSetAsset("common.skillset.village.merchant"),
SkillSetAsset("common.skillset.village.merchant.merchant"),
],
)

View File

@ -0,0 +1,20 @@
ItemDef(
name: "Leather Plate Helmet",
description: "Leather adorned with steel for better protection.",
kind: Armor((
kind: Head("LeatherPlate"),
stats: (
protection: Normal(32.0),
poise_resilience: Normal(8.0),
energy_max: 0,
energy_reward: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Moderate,
tags: [
Material(Leather),
SalvageInto(Leather),
],
)

View File

@ -0,0 +1,18 @@
ItemDef(
name: "Merchant Backpack",
description: "",
kind: Armor((
kind: Back("Merchant"),
stats: (
protection: Normal(1.0),
poise_resilience: Normal(0.0),
energy_max: 0,
energy_reward: 0.0,
crit_power: 0.017,
stealth: 0.017,
),
)),
quality: High,
slots: 18,
tags: [],
)

View File

@ -0,0 +1,19 @@
ItemDef(
name: "Merchant Belt",
description: "",
kind: Armor((
kind: Belt("Merchant"),
stats: (
protection: Normal(8.0),
poise_resilience: Normal(1.0),
energy_max: 2.0,
energy_reward: 0.025,
crit_power: 0.02,
stealth: 0.0,
),
)),
quality: Epic,
tags: [
],
)

View File

@ -0,0 +1,19 @@
ItemDef(
name: "Merchant Jacket",
description: "",
kind: Armor((
kind: Chest("Merchant"),
stats: (
protection: Normal(48.0),
poise_resilience: Normal(6.0),
energy_max: 13.5,
energy_reward: 0.135,
crit_power: 0.125,
stealth: 0.0,
),
)),
quality: Epic,
tags: [
],
)

View File

@ -0,0 +1,19 @@
ItemDef(
name: "Merchant Boots",
description: "",
kind: Armor((
kind: Foot("Merchant"),
stats: (
protection: Normal(16.0),
poise_resilience: Normal(2.0),
energy_max: 4.5,
energy_reward: 0.045,
crit_power: 0.04,
stealth: 0.0,
),
)),
quality: Epic,
tags: [
],
)

View File

@ -0,0 +1,19 @@
ItemDef(
name: "Merchant Gloves",
description: "",
kind: Armor((
kind: Hand("Merchant"),
stats: (
protection: Normal(16.0),
poise_resilience: Normal(2.0),
energy_max: 4.5,
energy_reward: 0.045,
crit_power: 0.04,
stealth: 0.0,
),
)),
quality: Epic,
tags: [
],
)

View File

@ -0,0 +1,19 @@
ItemDef(
name: "Merchant Pants",
description: "",
kind: Armor((
kind: Pants("Merchant"),
stats: (
protection: Normal(32.0),
poise_resilience: Normal(4.0),
energy_max: 9.0,
energy_reward: 0.1,
crit_power: 0.08,
stealth: 0.0,
),
)),
quality: Epic,
tags: [
],
)

View File

@ -0,0 +1,19 @@
ItemDef(
name: "Merchant Mantle",
description: "",
kind: Armor((
kind: Shoulder("Merchant"),
stats: (
protection: Normal(32.0),
poise_resilience: Normal(5.0),
energy_max: 9.0,
energy_reward: 0.1,
crit_power: 0.08,
stealth: 0.0,
),
)),
quality: Epic,
tags: [
],
)

View File

@ -0,0 +1,17 @@
ItemDef(
name: "Impressive Turban",
description: "Fancy.",
kind: Armor((
kind: Head("Merchant"),
stats: (
protection: Normal(6.0),
poise_resilience: Normal(4.0),
energy_max: 12.0,
energy_reward: 0.25,
crit_power: 0.015,
stealth: 0.0,
),
)),
quality: Epic,
tags: [],
)

View File

@ -7,8 +7,8 @@ ItemDef(
protection: Normal(12.0),
poise_resilience: Normal(2.0),
energy_max: 5.0,
energy_reward: 0.1,
crit_power: 0.1,
energy_reward: 0.05,
crit_power: 0.01,
stealth: 0.0,
),
)),

View File

@ -5,6 +5,7 @@
Armor(Hands): Item("common.items.armor.leather_plate.hand"),
Armor(Legs): Item("common.items.armor.leather_plate.pants"),
Armor(Feet): Item("common.items.armor.leather_plate.foot"),
//Armor(Head): Item("common.items.armor.leather_plate.helmet"),
Lantern: Choice([
(1.0, Some(Item("common.items.lantern.black_0"))),

View File

@ -1,11 +1,11 @@
({
Armor(Shoulders): Item("common.items.armor.twigsflowers.shoulder"),
Armor(Chest): Item("common.items.armor.twigsflowers.chest"),
Armor(Hands): Item("common.items.armor.twigsflowers.hand"),
Armor(Legs): Item("common.items.armor.twigsflowers.pants"),
Armor(Feet): Item("common.items.armor.twigsflowers.foot"),
Armor(Belt): Item("common.items.armor.twigsflowers.belt"),
Armor(Head): Item("common.items.armor.misc.head.hood"),
Armor(Shoulders): Item("common.items.armor.merchant.shoulder"),
Armor(Chest): Item("common.items.armor.merchant.chest"),
Armor(Hands): Item("common.items.armor.merchant.hand"),
Armor(Legs): Item("common.items.armor.merchant.pants"),
Armor(Feet): Item("common.items.armor.merchant.foot"),
Armor(Belt): Item("common.items.armor.merchant.belt"),
Armor(Head): Item("common.items.armor.merchant.turban"),
Lantern: Item("common.items.lantern.black_0"),
Armor(Neck): Item("common.items.armor.misc.neck.gem_of_resilience"),

View File

@ -1878,6 +1878,16 @@
],
craft_sprite: Some(CraftingBench),
is_recycling: false,
),
"merchant turban": (
output: ("common.items.armor.merchant.turban", 1),
inputs: [
(Item("common.items.crafting_ing.cloth.linen_red"), 20),
(Item("common.items.mineral.gem.diamond"), 4),
(Item("common.items.crafting_ing.mindflayer_bag_damaged"), 1),
(Item("common.items.crafting_tools.sewing_set"), 0),
],
craft_sprite: Some(CraftingBench),
),
//"metal_blade": (
// output: ("common.items.crafting_ing.modular.damage.sword.metal_blade", 1),

View File

@ -1,17 +0,0 @@
([
Group(Weapon(Bow)),
// Charged
Skill((Bow(CDamage), Some(1))),
Skill((Bow(CRegen), Some(1))),
Skill((Bow(CKnockback), Some(1))),
Skill((Bow(CSpeed), Some(1))),
// Repeater
Skill((Bow(RDamage), Some(1))),
Skill((Bow(RCost), Some(1))),
// Shotgun
Skill((Bow(UnlockShotgun), None)),
Skill((Bow(SCost), Some(1))),
])

View File

@ -0,0 +1,18 @@
([
Group(Weapon(Bow)),
// Charged
Skill((Bow(CDamage), Some(2))),
Skill((Bow(CKnockback), Some(2))),
Skill((Bow(CSpeed), Some(2))),
Skill((Bow(CRegen), Some(1))),
Skill((Bow(CMove), Some(1))),
// Repeater
Skill((Bow(RDamage), Some(2))),
Skill((Bow(RCost), Some(1))),
Skill((Bow(RSpeed), Some(1))),
// Shotgun
Skill((Bow(UnlockShotgun), None)),
])

View File

@ -0,0 +1,5 @@
([
Tree("common.skillset.village.merchant.sword"),
Tree("common.skillset.village.merchant.bow"),
Tree("common.skillset.village.merchant.staff"),
])

View File

@ -0,0 +1,17 @@
([
Group(Weapon(Staff)),
// Fireball
Skill((Staff(BDamage), Some(3))),
Skill((Staff(BRegen), Some(2))),
Skill((Staff(BRadius), Some(2))),
// Flamethrower
Skill((Staff(FRange), Some(2))),
Skill((Staff(FDamage), Some(2))),
Skill((Staff(FDrain), Some(1))),
Skill((Staff(FVelocity), Some(1))),
// Shockwave
Skill((Staff(UnlockShockwave), None)),
])

View File

@ -0,0 +1,21 @@
([
Group(Weapon(Sword)),
Skill((Sword(InterruptingAttacks), None)),
// TripleStrike
Skill((Sword(TsCombo), None)),
Skill((Sword(TsDamage), Some(2))),
Skill((Sword(TsRegen), Some(2))),
Skill((Sword(TsSpeed), Some(1))),
// Dash
Skill((Sword(DCost), Some(2))),
Skill((Sword(DDrain), Some(2))),
Skill((Sword(DDamage), Some(1))),
Skill((Sword(DScaling), Some(1))),
Skill((Sword(DSpeed), None)),
// Spin of death
Skill((Sword(UnlockSpin), None)),
])

View File

@ -369,4 +369,14 @@
("common.items.weapons.sceptre.belzeshrub",1),
("common.items.lantern.pumpkin",1),
],
"merchant": [
("common.items.armor.merchant.back",1),
("common.items.armor.merchant.belt",1),
("common.items.armor.merchant.chest",1),
("common.items.armor.merchant.hand",1),
("common.items.armor.merchant.foot",1),
("common.items.armor.merchant.turban",1),
("common.items.armor.merchant.pants",1),
("common.items.armor.merchant.shoulder",1),
],
})

View File

@ -1215,6 +1215,51 @@
"voxel.armor.misc.chest.shirt_white",
(0.0, 1.0, 0.0), (-120.0, 210.0,15.0), 1.1,
),
// Merchant
Armor(Chest("Merchant")): VoxTrans(
"voxel.armor.merchant.chest",
(0.0, 1.0, 0.0), (-120.0, 210.0,15.0), 1.1,
),
Armor(Pants("Merchant")): VoxTrans(
"voxel.armor.merchant.pants",
(0.0, 1.0, 0.0), (-120.0, 210.0,15.0), 0.9,
),
Armor(Belt("Merchant")): VoxTrans(
"voxel.armor.merchant.belt",
(0.0, 0.0, 0.0), (-120.0, 210.0,15.0), 0.9,
),
Armor(Foot("Merchant")): VoxTrans(
"voxel.armor.merchant.foot",
(0.0, 0.0, 0.0), (-120.0, 210.0,15.0), 0.9,
),
Armor(Hand("Merchant")): VoxTrans(
"voxel.armor.merchant.hand",
(0.0, 0.0, 0.0), (-120.0, 210.0,15.0), 0.9,
),
Armor(Shoulder("Merchant")): VoxTrans(
"voxel.armor.merchant.shoulder_l",
(0.0, 1.0, 0.0), (-120.0, 210.0,15.0), 1.1,
),
Armor(Chest("Merchant")): VoxTrans(
"voxel.armor.merchant.chest",
(0.0, 1.0, 0.0), (-120.0, 210.0,15.0), 1.1,
),
Armor(Pants("Merchant")): VoxTrans(
"voxel.armor.merchant.pants",
(0.0, 1.0, 0.0), (-120.0, 210.0,15.0), 0.9,
),
Armor(Hand("Merchant")): VoxTrans(
"voxel.armor.merchant.hand",
(0.0, 0.0, 0.0), (-120.0, 210.0,15.0), 0.9,
),
Armor(Head("Merchant")): VoxTrans(
"voxel.armor.merchant.turban_human",
(0.0, 0.0, 0.0), (-120.0, 210.0,15.0), 1.0,
),
Armor(Back("Merchant")): VoxTrans(
"voxel.armor.merchant.back",
(0.0, 0.0, 0.0), (-90.0, 45.0,0.0), 0.9,
),
// Velorite Battlemage Set
Armor(Chest("VeloriteMage")): VoxTrans(
"voxel.armor.velorite_battlemage.chest",

BIN
assets/voxygen/voxel/armor/leather_plate/helmet_orc_m.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/leather_plate/helmet_undead_m.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/merchant/back.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/merchant/belt.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/merchant/chest.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/merchant/foot.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/merchant/hand.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/merchant/pants.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/merchant/shoulder_l.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/merchant/turban_dwarf.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/merchant/turban_human.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/merchant/turban_orc.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/merchant/turban_undead.vox (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -120,5 +120,9 @@
vox_spec: ("armor.mail.orichalcum.back", (-5.0, -4.5, -12.0)),
color: None
),
"Merchant": (
vox_spec: ("armor.merchant.back", (-9.0, -7.0, -12.0)),
color: None
),
},
))

View File

@ -156,5 +156,9 @@
vox_spec: ("armor.mail.orichalcum.belt", (-4.0, -3.5, 1.0)),
color: None
),
"Merchant": (
vox_spec: ("armor.merchant.belt", (-5.0, -4.0, 2.0)),
color: None
),
},
))

View File

@ -226,5 +226,9 @@
vox_spec: ("armor.mail.orichalcum.chest", (-7.0, -4.0, 1.0)),
color: None
),
"Merchant": (
vox_spec: ("armor.merchant.chest", (-7.0, -4.0, 1.0)),
color: None
),
},
))

View File

@ -156,5 +156,9 @@
vox_spec: ("armor.mail.orichalcum.foot", (-2.5, -3.5, -2.0)),
color: None
),
"Merchant": (
vox_spec: ("armor.merchant.foot", (-2.5, -3.5, -2.0)),
color: None
),
},
))

View File

@ -360,5 +360,15 @@
color: None
)
),
"Merchant": (
left: (
vox_spec: ("armor.merchant.hand", (-2.5, -2.0, -4.0)),
color: None
),
right:(
vox_spec: ("armor.merchant.hand", (-1.5, -2.0, -4.0)),
color: None
)
),
},
))

View File

@ -813,5 +813,104 @@
vox_spec: ("armor.misc.head.spikeguard", (-3.0, -5.0, -2.0)),
color: None
),
// Village Guard
(Human, Male, "LeatherPlate"): (
vox_spec: ("armor.leather_plate.helmet_undead_m", (-3.0, -3.0, -0.0)),
color: None
),
(Human, Female, "LeatherPlate"): (
vox_spec: ("armor.leather_plate.helmet_undead_m", (-3.0, -1.0, -0.0)),
color: None
),
(Elf, Male, "LeatherPlate"): (
vox_spec: ("armor.leather_plate.helmet_orc_m", (-5.0, -2.0, 0.0)),
color: None
),
(Elf, Female, "LeatherPlate"): (
vox_spec: ("armor.leather_plate.helmet_undead_m", (-5.0, -2.0, 0.0)),
color: None
),
(Dwarf, Male, "LeatherPlate"): (
vox_spec: ("armor.leather_plate.helmet_undead_m", (-5.0, -2.0, 0.0)),
color: None
),
(Dwarf, Female, "LeatherPlate"): (
vox_spec: ("armor.leather_plate.helmet_undead_m", (-5.0, -2.0, 0.0)),
color: None
),
(Danari, Male, "LeatherPlate"): (
vox_spec: ("armor.leather_plate.helmet_undead_m", (-5.0, -2.0, 0.0)),
color: None
),
(Danari, Female, "LeatherPlate"): (
vox_spec: ("armor.leather_plate.helmet_undead_m", (-5.0, -2.0, 0.0)),
color: None
),
(Undead, Male, "LeatherPlate"): (
vox_spec: ("armor.leather_plate.helmet_undead_m", (-5.0, -2.0, 0.0)),
color: None
),
(Undead, Female, "LeatherPlate"): (
vox_spec: ("armor.leather_plate.helmet_undead_m", (-5.0, -2.0, 0.0)),
color: None
),
(Orc, Male, "LeatherPlate"): (
vox_spec: ("armor.leather_plate.helmet_orc_m", (-2.0, -1.0, 1.0)),
color: None
),
(Orc, Female, "LeatherPlate"): (
vox_spec: ("armor.leather_plate.helmet_undead_m", (-5.0, -2.0, 0.0)),
color: None
),
// Merchant Turban
(Human, Male, "Merchant"): (
vox_spec: ("armor.merchant.turban_human", (-2.0, -3.0, 2.0)),
color: None
),
(Human, Female, "Merchant"): (
vox_spec: ("armor.merchant.turban_human", (-2.0, -2.0, 2.0)),
color: None
),
(Elf, Male, "Merchant"): (
vox_spec: ("armor.merchant.turban_human", (-1.0, -3.0, 2.0)),
color: None
),
(Elf, Female, "Merchant"): (
vox_spec: ("armor.merchant.turban_human", (-1.0, -3.0, 2.0)),
color: None
),
(Dwarf, Male, "Merchant"): (
vox_spec: ("armor.merchant.turban_dwarf", (-3.0, -2.0, 2.0)),
color: None
),
(Dwarf, Female, "Merchant"): (
vox_spec: ("armor.merchant.turban_dwarf", (-3.0, -2.0, 2.0)),
color: None
),
(Danari, Male, "Merchant"): (
vox_spec: ("armor.merchant.turban_human", (0.0, -4.0, 4.0)),
color: None
),
(Danari, Female, "Merchant"): (
vox_spec: ("armor.merchant.turban_human", (0.0, -4.0, 4.0)),
color: None
),
(Undead, Male, "Merchant"): (
vox_spec: ("armor.merchant.turban_undead", (-4.0, -3.0, 4.0)),
color: None
),
(Undead, Female, "Merchant"): (
vox_spec: ("armor.merchant.turban_undead", (-4.0, -3.0, 3.0)),
color: None
),
(Orc, Male, "Merchant"): (
vox_spec: ("armor.merchant.turban_orc", (-1.0, -2.0, 4.0)),
color: None
),
(Orc, Female, "Merchant"): (
vox_spec: ("armor.merchant.turban_orc", (-1.0, -4.0, 2.0)),
color: None
),
}
))

View File

@ -184,5 +184,9 @@
vox_spec: ("armor.mail.orichalcum.pants", (-6.0, -4.0, 0.5)),
color: None
),
"Merchant": (
vox_spec: ("armor.merchant.pants", (-6.0, -4.0, 0.5)),
color: None
),
},
))

View File

@ -441,5 +441,15 @@
color: None
)
),
"Merchant": (
left: (
vox_spec: ("armor.merchant.shoulder_l", (-3.0, -4.0 , -8.0)),
color: None
),
right: (
vox_spec: ("armor.empty", (0.0, 0.0 , 0.0)),
color: None
),
),
},
))