seachapel

This commit is contained in:
flo 2022-08-24 21:50:53 +00:00 committed by Isse
parent 2f24da7339
commit e882e62c08
122 changed files with 6636 additions and 54 deletions

View File

@ -321,6 +321,11 @@
secondary: "common.abilities.custom.turret.arrows",
abilities: [],
),
Custom("Organ"): (
primary: "common.abilities.custom.organ.organaura",
secondary: "common.abilities.custom.organ.organaura",
abilities: [],
),
Custom("Haniwa Sentry"): (
primary: "common.abilities.custom.turret.flamethrower",
secondary: "common.abilities.custom.turret.flamethrower",
@ -367,6 +372,20 @@
(None, "common.abilities.custom.harvester.explodingpumpkin"),
],
),
// TODO: Allow ability sets to expand other ability sets
Custom("Dagon"): (
primary: "common.abilities.custom.dagon.dagonbombs",
secondary: "common.abilities.custom.dagon.seaurchins",
abilities: [],
),
Custom("Cardinal"): (
primary: "common.abilities.sceptre.lifestealbeam",
secondary: "common.abilities.sceptre.healingaura",
abilities: [
(Some(Sceptre(UnlockAura)), "common.abilities.sceptre.wardingaura"),
(None, "common.abilities.custom.cardinal.summonseacrocs"),
],
),
Custom("Oni"): (
primary: "common.abilities.custom.oni.dash",
secondary: "common.abilities.custom.oni.doublestrike",

View File

@ -0,0 +1,18 @@
BasicSummon(
buildup_duration: 0.5,
cast_duration: 1.0,
recover_duration: 0.5,
summon_amount: 4,
summon_distance: (4, 4),
summon_info: (
body: QuadrupedLow((
species: SeaCrocodile,
body_type: Male,
)),
scale: None,
has_health: true,
loadout_config: None,
skillset_config: Some(Rank5),
),
duration: None,
)

View File

@ -0,0 +1,16 @@
BasicRanged(
energy_cost: 0,
buildup_duration: 0.4,
recover_duration: 0.6,
projectile: DagonBomb(
damage: 32.0,
knockback: 25.0,
radius: 10.0,
min_falloff: 0.6,
),
projectile_body: Object(DagonBomb),
projectile_light: None,
projectile_speed: 30.0,
num_projectiles: 1,
projectile_spread: 0.0,
)

View File

@ -0,0 +1,8 @@
SpriteSummon(
buildup_duration: 0.1,
cast_duration: 0.1,
recover_duration: 0.9,
sprite: SeaUrchin,
summon_distance: (3, 3.1),
sparseness: 0.2,
)

View File

@ -0,0 +1,19 @@
BasicAura(
buildup_duration: 0.0,
cast_duration: 0.0,
recover_duration: 2.0,
targets: InGroup,
auras: [
(
kind: ProtectingWard,
strength: 0.20,
duration: Some(10.0),
category: Magical,
),
],
aura_duration: 34.75,
range: 18.0,
energy_cost: 0.0,
scales_with_combo: false,
specifier: Some(WardingAura),
)

View File

@ -0,0 +1,16 @@
#![enable(implicit_some)]
(
name: Name("Cardinal"),
body: RandomWith("humanoid"),
alignment: Alignment(Enemy),
loot: LootTable("common.loot_tables.dungeon.sea_chapel.cardinal"),
inventory: (
loadout: Inline((
inherit: Asset("common.loadout.dungeon.sea_chapel.cardinal"),
active_hands: InHands((Item("common.items.npc_weapons.unique.cardinal"), None)),
)),
),
meta: [
SkillSetAsset("common.skillset.preset.rank5.fullskill"),
],
)

View File

@ -0,0 +1,11 @@
#![enable(implicit_some)]
(
name: Name("Dagon"),
body: RandomWith("dagon"),
alignment: Alignment(Enemy),
loot: LootTable("common.loot_tables.dungeon.sea_chapel.dagon"),
inventory: (
loadout: FromBody,
),
meta: [],
)

View File

@ -0,0 +1,11 @@
#![enable(implicit_some)]
(
name: Name("Organ"),
body: Exact(Object(BarrelOrgan)),
alignment: Alignment(Enemy),
loot: Item("common.items.crafting_ing.seashells"),
inventory: (
loadout: FromBody
),
meta: [],
)

View File

@ -0,0 +1,21 @@
#![enable(implicit_some)]
(
name: Name("Sea Cleric"),
body: RandomWith("danari"),
alignment: Alignment(Enemy),
loot: LootTable("common.loot_tables.dungeon.sea_chapel.sea_cleric"),
inventory: (
loadout: Inline((
inherit: Asset("common.loadout.dungeon.sea_chapel.sea_cleric"),
active_hands: InHands((Choice([
(2, ModularWeapon(tool: Axe, material: Cobalt, hands: None)),
(2, ModularWeapon(tool: Sword, material: Cobalt, hands: None)),
(2, ModularWeapon(tool: Hammer, material: Cobalt, hands: None)),
(2, ModularWeapon(tool: Bow, material: Ironwood, hands: None)),
]), None)),
)),
),
meta: [
SkillSetAsset("common.skillset.preset.rank4.fullskill"),
],
)

View File

@ -0,0 +1,18 @@
#![enable(implicit_some)]
(
name: Name("Sea Cleric"),
body: RandomWith("danari"),
alignment: Alignment(Enemy),
loot: LootTable("common.loot_tables.dungeon.sea_chapel.sea_cleric"),
inventory: (
loadout: Inline((
inherit: Asset("common.loadout.dungeon.sea_chapel.sea_cleric"),
active_hands: InHands((Choice([
(1, ModularWeapon(tool: Sceptre, material: Ironwood, hands: None)),
]), None)),
)),
),
meta: [
SkillSetAsset("common.skillset.preset.rank4.fullskill"),
],
)

View File

@ -0,0 +1,18 @@
ItemDef(
name: "Cardinal's Belt",
description: "Seemlessly transitions...",
kind: Armor((
kind: Belt,
stats: Direct((
protection: Some(Normal(24.0)),
poise_resilience: Some(Normal(3.0)),
energy_max: Some(20),
energy_reward: Some(0.025),
crit_power: Some(0.06),
stealth: Some(0.0),
)),
)),
quality: Legendary,
tags: [
],
)

View File

@ -0,0 +1,18 @@
ItemDef(
name: "Cardinal's Cloak",
description: "A part of the cardinal's exquisite cloak.",
kind: Armor((
kind: Chest,
stats: Direct((
protection: Some(Normal(60.0)),
poise_resilience: Some(Normal(18.0)),
energy_max: Some(120),
energy_reward: Some(0.060),
crit_power: Some(0.375),
stealth: Some(0.0),
)),
)),
quality: Legendary,
tags: [
],
)

View File

@ -0,0 +1,18 @@
ItemDef(
name: "Cardinal's Boots",
description: "The boots with millions of steps.",
kind: Armor((
kind: Foot,
stats: Direct((
protection: Some(Normal(24.0)),
poise_resilience: Some(Normal(6.0)),
energy_max: Some(85),
energy_reward: Some(0.105),
crit_power: Some(0.12),
stealth: Some(0.0),
)),
)),
quality: Legendary,
tags: [
],
)

View File

@ -0,0 +1,18 @@
ItemDef(
name: "Cardinal's Gloves",
description: "Bloodstained and rugged.",
kind: Armor((
kind: Hand,
stats: Direct((
protection: Some(Normal(20.0)),
poise_resilience: Some(Normal(6.0)),
energy_max: Some(75),
energy_reward: Some(0.09),
crit_power: Some(0.12),
stealth: Some(0.0),
)),
)),
quality: Legendary,
tags: [
],
)

View File

@ -0,0 +1,18 @@
ItemDef(
name: "Cardinal's Jeans",
description: "Pants with many experiences.",
kind: Armor((
kind: Pants,
stats: Direct((
protection: Some(Normal(45.0)),
poise_resilience: Some(Normal(12.0)),
energy_max: Some(150.0),
energy_reward: Some(0.05),
crit_power: Some(0.24),
stealth: Some(0.00),
)),
)),
quality: Legendary,
tags: [
],
)

View File

@ -0,0 +1,18 @@
ItemDef(
name: "Cardinal's Shoulderguard",
description: "The other was lost in a vicious fight.",
kind: Armor((
kind: Shoulder,
stats: Direct((
protection: Some(Normal(30.0)),
poise_resilience: Some(Normal(15.0)),
energy_max: Some(90),
energy_reward: Some(0.05),
crit_power: Some(0.24),
stealth: Some(0.0),
)),
)),
quality: Legendary,
tags: [
],
)

View File

@ -0,0 +1,17 @@
ItemDef(
name: "Abyssal Gorget",
description: "Harnessed vigour of the tides",
kind: Armor((
kind: Neck,
stats: Direct((
protection: Some(Normal(2.0)),
energy_reward: Some(0.2),
crit_power: Some(0.1),
poise_resilience: Some(Normal(1.0)),
)),
)),
quality: Moderate,
tags: [
],
)

View File

@ -0,0 +1,9 @@
ItemDef(
name: "Abyssal Heart",
description: "Source of Dagons Power.",
kind: Ingredient(
// Descriptor not needed
descriptor: "", ),
quality: Epic,
tags: [],
)

View File

@ -0,0 +1,9 @@
ItemDef(
name: "Coral Branch",
description: "Treasure from the bottom of the sea.",
kind: Ingredient(
// Descriptor not needed
descriptor: "", ),
quality: Common,
tags: [],
)

View File

@ -0,0 +1,21 @@
ItemDef(
name: "Caduceus",
description: "The snakes seem to be alive",
kind: Tool((
kind: Sceptre,
hands: Two,
stats: (
equip_time_secs: 0.4,
power: 1.2,
effect_power: 0.8,
speed: 1.2,
crit_chance: 0.4,
range: 1.0,
energy_efficiency: 1.0,
buff_strength: 1.0,
),
)),
quality: Legendary,
tags: [],
ability_spec: Some(Custom("Cardinal")),
)

View File

@ -0,0 +1,21 @@
ItemDef(
name: "Dagon Kit",
description: "Placeholder",
kind: Tool((
kind: Natural,
hands: Two,
stats: (
equip_time_secs: 0.001,
power: 1.0,
effect_power: 1.0,
speed: 1.0,
crit_chance: 0.05078125,
range: 1.0,
energy_efficiency: 1.0,
buff_strength: 1.0,
),
)),
quality: Low,
tags: [],
ability_spec: Some(Custom("Dagon")),
)

View File

@ -0,0 +1,21 @@
ItemDef(
name: "Organ Aura",
description: "Motivational Tune",
kind: Tool((
kind: Organ,
hands: Two,
stats: (
equip_time_secs: 0.0,
power: 2.5,
effect_power: 1.0,
speed: 0.8,
crit_chance: 0.2,
range: 1.0,
energy_efficiency: 1.0,
buff_strength: 1.0,
),
)),
quality: Common,
tags: [],
ability_spec: Some(Custom("Organ")),
)

View File

@ -0,0 +1,14 @@
#![enable(implicit_some)]
(
shoulders: Item("common.items.armor.cardinal.shoulder"),
chest: Item("common.items.armor.cardinal.chest"),
gloves: Item("common.items.armor.cardinal.hand"),
ring1: Item("common.items.armor.misc.ring.gold"),
ring2: Item("common.items.armor.misc.ring.gold"),
belt: Item("common.items.armor.cardinal.belt"),
legs: Item("common.items.armor.cardinal.pants"),
feet: Item("common.items.armor.cardinal.foot"),
lantern: Item("common.items.lantern.blue_0"),
neck: Item("common.items.armor.misc.neck.abyssal_gorget"),
)

View File

@ -0,0 +1,13 @@
#![enable(implicit_some)]
(
head: Item("common.items.armor.misc.head.winged_coronet"),
shoulders: Item("common.items.armor.cloth.silken.shoulder"),
chest: Item("common.items.armor.cloth.silken.chest"),
gloves: Item("common.items.armor.cloth.silken.hand"),
ring1: Item("common.items.armor.misc.ring.gold"),
ring2: Item("common.items.armor.misc.ring.gold"),
belt: Item("common.items.armor.cloth.silken.belt"),
legs: Item("common.items.armor.cloth.silken.pants"),
feet: Item("common.items.armor.cloth.silken.foot"),
lantern: Item("common.items.lantern.blue_0"),
)

View File

@ -0,0 +1,5 @@
[
(0.5, Item("common.items.crafting_ing.abyssal_heart")),
(2.5, LootTable("common.loot_tables.food.prepared")),
(2.5, Item("common.items.crafting_ing.seashells")),
]

View File

@ -0,0 +1,5 @@
[
// Ingredients
(0.5, Item("common.items.crafting_ing.coral_branch")),
(5.0, Item("common.items.crafting_ing.seashells")),
]

View File

@ -0,0 +1,4 @@
[
(0.5, Item("common.items.crafting_ing.abyssal_heart")),
(5.0, LootTable("common.loot_tables.creature.quad_low.fanged")),
]

View File

@ -0,0 +1,4 @@
[
// Nothing
(1.0, Nothing),
]

View File

@ -1201,6 +1201,10 @@
keyword: "hakulaq",
generic: "Hakulaq"
),
dagon: (
keyword: "dagon",
generic: "Dagon"
),
lavadrake: (
keyword: "lavadrake",
generic: "Lava Drake"

View File

@ -1723,6 +1723,15 @@
],
craft_sprite: None,
),
"abyssal gorget": (
output: ("common.items.armor.misc.neck.abyssal_gorget", 1),
inputs: [
(Item("common.items.crafting_ing.coral_branch"), 10, false),
(Item("common.items.crafting_ing.abyssal_heart"), 2, false),
(Item("common.items.crafting_ing.cloth.linen"), 2, false),
],
craft_sprite: Some(CraftingBench),
),
"tin pickaxe": (
output: ("common.items.tool.pickaxe_stone", 1),
inputs: [
@ -2049,4 +2058,4 @@
craft_sprite: Some(Cauldron),
is_recycling: false,
),
}
}

View File

@ -450,6 +450,12 @@
],
threshold: 0.2,
),
Attack(BasicAura, Organ): (
files: [
"voxygen.audio.sfx.abilities.barrel_organ",
],
threshold: 34.75,
),
//Attack(BasicRanged, Staff): (
// files: [
// "voxygen.audio.sfx.abilities.staff_channeling",
@ -588,7 +594,6 @@
],
threshold: 0.3,
),
//
// Inventory
//
@ -952,6 +957,13 @@
],
threshold: 1.0,
),
Utterance(Angry, SeaCrocodile): (
files: [
"voxygen.audio.sfx.utterance.sea_crocodile_angry1",
"voxygen.audio.sfx.utterance.sea_crocodile_angry2",
],
threshold: 1.0,
),
Utterance(Angry, Antelope): (
files: [
"voxygen.audio.sfx.utterance.antelope_angry1",

BIN
assets/voxygen/audio/sfx/abilities/barrel_organ.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/ui/map/buttons/sea_chapel.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/ui/map/buttons/sea_chapel_bg.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/ui/map/buttons/sea_chapel_hover.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -70,6 +70,7 @@ common-weapons-staff_simple = Simple Staff
common-weapons-axe_simple = Simple Axe
common-weapons-bow_simple = Simple Bow
common-weapons-unique = Unique
common-weapons-organ = Organ
common-tool-debug = Debug
common-tool-farming = Farming Tool
common-tool-pick = Pickaxe

View File

@ -0,0 +1,130 @@
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
/// Localization for "global" English
(
string_map: {
// Texts used in multiple locations with the same formatting
"common.username": "username",
"common.singleplayer": "Singleplayer",
"common.multiplayer": "Multiplayer",
"common.servers": "Servers",
"common.quit": "Quit",
"common.settings": "Settings",
"common.languages": "Languages",
"common.interface": "Interface",
"common.gameplay": "Gameplay",
"common.controls": "Controls",
"common.video": "Graphics",
"common.sound": "Sound",
"common.chat": "Chat",
"common.resume": "Resume",
"common.characters": "Characters",
"common.close": "Close",
"common.yes": "Yes",
"common.no": "No",
"common.back": "Back",
"common.create": "Create",
"common.okay": "Okay",
"common.add": "Add",
"common.accept": "Accept",
"common.decline": "Decline",
"common.disclaimer": "Disclaimer",
"common.cancel": "Cancel",
"common.none": "None",
"common.error": "Error",
"common.fatal_error": "Fatal Error",
"common.you": "You",
"common.automatic": "Auto",
"common.random": "Random",
"common.empty": "Empty",
"common.confirm": "Confirm",
"common.delete_server": "Delete Server",
// Settings Window title
"common.interface_settings": "Interface Settings",
"common.gameplay_settings": "Gameplay Settings",
"common.controls_settings": "Controls Settings",
"common.video_settings": "Graphics Settings",
"common.sound_settings": "Sound Settings",
"common.language_settings": "Language Settings",
"common.chat_settings": "Chat Settings",
// Message when connection to the server is lost
"common.connection_lost": r#"Connection lost!
Did the server restart?
Is the client up to date?"#,
"common.species.orc": "Orc",
"common.species.human": "Human",
"common.species.dwarf": "Dwarf",
"common.species.elf": "Elf",
"common.species.draugr": "Draugr",
"common.species.danari": "Danari",
"common.weapons.axe": "Axe",
"common.weapons.dagger": "Dagger",
"common.weapons.greatsword": "Greatsword",
"common.weapons.shortswords": "Shortswords",
"common.weapons.sword": "Sword",
"common.weapons.staff": "Firestaff",
"common.weapons.bow": "Bow",
"common.weapons.hammer": "Hammer",
"common.weapons.general": "General Combat",
"common.weapons.sceptre": "Healing Sceptre",
"common.weapons.shield": "Shield",
"common.weapons.spear": "Spear",
"common.weapons.hammer_simple": "Simple Hammer",
"common.weapons.sword_simple": "Simple Sword",
"common.weapons.staff_simple": "Simple Staff",
"common.weapons.axe_simple": "Simple Axe",
"common.weapons.bow_simple": "Simple Bow",
"common.weapons.unique": "Unique",
"common.tool.debug": "Debug",
"common.tool.farming": "Farming Tool",
"common.tool.pick": "Pickaxe",
"common.tool.mining": "Mining",
"common.kind.modular_component": "Modular Component",
"common.kind.modular_component_partial": "Component",
"common.kind.glider": "Glider",
"common.kind.consumable": "Consumable",
"common.kind.throwable": "Can be thrown",
"common.kind.utility": "Utility",
"common.kind.ingredient": "Ingredient",
"common.kind.lantern": "Lantern",
"common.hands.one": "One-Handed",
"common.hands.two": "Two-Handed",
"common.rand_appearance": "Random appearance",
"common.rand_name": "Random name",
"common.stats.combat_rating": "CR",
"common.stats.power": "Power",
"common.stats.speed": "Speed",
"common.stats.poise": "Poise",
"common.stats.range": "Range",
"common.stats.energy_efficiency": "Energy Efficiency",
"common.stats.buff_strength": "Buff/Debuff Strength",
"common.stats.crit_chance": "Crit Chance",
"common.stats.crit_mult": "Crit Mult",
"common.stats.armor": "Armor",
"common.stats.poise_res":"Stun Res",
"common.stats.energy_max": "Max Energy",
"common.stats.energy_reward": "Energy Reward",
"common.stats.crit_power": "Crit Power",
"common.stats.stealth": "Stealth",
"common.stats.slots": "Slots",
"common.material.metal": "Metal",
"common.material.wood": "Wood",
"common.material.stone": "Stone",
"common.material.cloth": "Cloth",
"common.material.hide": "Hide",
"common.sprite.chest": "Chest",
},
vector_map: {
}
)

View File

@ -31,4 +31,5 @@ hud-map-zoom_minimap_explanation =
Zoom in the Minimap to see
the area around you in higher detail
hud-map-gnarling = Gnarling Fortification
hud-map-chapel_site = Sea Chapel
hud-map-placed_by = Placed by { $name }

View File

@ -2018,6 +2018,31 @@
"voxel.armor.misc.foot.jackalope",
(0.0, 0.0, 0.0), (-120.0, 210.0,15.0), 0.9,
),
//Cardinal Set
Simple("common.items.armor.cardinal.chest"): VoxTrans(
"voxel.armor.cardinal.chest",
(0.0, 1.0, 0.0), (-120.0, 210.0,15.0), 1.1,
),
Simple("common.items.armor.cardinal.pants"): VoxTrans(
"voxel.armor.cardinal.pants",
(0.0, 1.0, 0.0), (-120.0, 210.0,15.0), 0.9,
),
Simple("common.items.armor.cardinal.belt"): VoxTrans(
"voxel.armor.cardinal.belt",
(0.0, 0.0, 0.0), (-120.0, 210.0,15.0), 0.9,
),
Simple("common.items.armor.cardinal.foot"): VoxTrans(
"voxel.armor.cardinal.foot",
(0.0, 0.0, 0.0), (-120.0, 210.0,15.0), 0.9,
),
Simple("common.items.armor.cardinal.hand"): VoxTrans(
"voxel.armor.cardinal.hand",
(0.0, 0.0, 0.0), (-120.0, 210.0,15.0), 0.9,
),
Simple("common.items.armor.cardinal.shoulder"): VoxTrans(
"voxel.armor.cardinal.shoulder",
(0.0, 0.0, 0.0), (-120.0, 210.0,15.0), 1.0,
),
//Twig Set
Simple("common.items.armor.twigs.chest"): VoxTrans(
"voxel.armor.twigs.chest",
@ -2915,6 +2940,10 @@
"voxel.armor.misc.neck.scratched",
(0.0, 0.2, 0.0), (-70.0, 20.0, 10.0), 0.9,
),
Simple("common.items.armor.misc.neck.abyssal_gorget"): VoxTrans(
"voxel.armor.misc.neck.abyssal_gorget",
(0.0, 0.2, 0.0), (-70.0, 20.0, 10.0), 0.9,
),
// Tabards
Simple("common.items.armor.misc.tabard.admin"): VoxTrans(
@ -3486,6 +3515,14 @@
"voxel.sprite.wood.item.wood",
(0.0, 0.0, 0.0), (-50.0, 30.0, 20.0), 0.8,
),
Simple("common.items.crafting_ing.abyssal_heart"): VoxTrans(
"voxel.sprite.crafting_ing.abyssal_heart",
(0.0, 0.0, 0.0), (-50.0, 30.0, 20.0), 0.8,
),
Simple("common.items.crafting_ing.coral_branch"): VoxTrans(
"voxel.sprite.crafting_ing.coral_branch",
(0.0, 0.0, 0.0), (-50.0, 30.0, 20.0), 0.8,
),
// Gliders
Simple("common.items.glider.cloverleaf"): VoxTrans(
"voxel.glider.starter",

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

BIN
assets/voxygen/voxel/armor/misc/neck/abyssal_gorget.vox (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1529,6 +1529,10 @@
vox_spec: ("armor.empty", (-3.0, -3.5, 1.0)),
color: None
),
Tool("common.items.npc_weapons.unique.cardinal"): (
vox_spec: ("weapon.sceptre.caduceus", (-2.5, -4.5, -6.0)),
color: None
),
//BIPEDLARGE
Tool("common.items.npc_weapons.hammer.ogre_hammer"): (
vox_spec: ("weapon.hammer.2hhammer_ogre", (-5.0, -5.5, -7.0)),

View File

@ -172,6 +172,10 @@
vox_spec: ("armor.mail.orichalcum.belt", (-4.0, -3.5, 1.0)),
color: None
),
"common.items.armor.cardinal.belt": (
vox_spec: ("armor.cardinal.belt", (-4.0, -3.8, 1.3)),
color: None
),
"common.items.armor.merchant.belt": (
vox_spec: ("armor.merchant.belt", (-5.0, -4.0, 2.0)),
color: None

View File

@ -242,6 +242,10 @@
vox_spec: ("armor.mail.orichalcum.chest", (-7.0, -4.0, 1.0)),
color: None
),
"common.items.armor.cardinal.chest": (
vox_spec: ("armor.cardinal.chest", (-7.0, -4.0, 1.0)),
color: None
),
"common.items.armor.merchant.chest": (
vox_spec: ("armor.merchant.chest", (-7.0, -4.0, 1.0)),
color: None

View File

@ -160,6 +160,10 @@
vox_spec: ("armor.mail.orichalcum.foot", (-2.5, -3.5, -2.0)),
color: None
),
"common.items.armor.cardinal.foot": (
vox_spec: ("armor.cardinal.foot",(-2.5, -3.5, -2.0)),
color: None
),
"common.items.armor.merchant.foot": (
vox_spec: ("armor.merchant.foot", (-2.5, -3.5, -2.0)),
color: None

View File

@ -380,6 +380,16 @@
color: None
)
),
"common.items.armor.cardinal.hand": (
left: (
vox_spec: ("armor.cardinal.hand", (-2.5, -2.5, -4.0)),
color: None
),
right: (
vox_spec: ("armor.cardinal.hand", (-1.5, -2.5, -4.0)),
color: None
)
),
"common.items.armor.merchant.hand": (
left: (
vox_spec: ("armor.merchant.hand", (-2.5, -2.0, -4.0)),

View File

@ -200,6 +200,10 @@
vox_spec: ("armor.mail.orichalcum.pants", (-6.0, -4.0, 0.5)),
color: None
),
"common.items.armor.cardinal.pants": (
vox_spec: ("armor.cardinal.pants", (-5.0, -4.0, -0.4)),
color: None
),
"common.items.armor.merchant.pants": (
vox_spec: ("armor.merchant.pants", (-6.0, -4.0, 0.5)),
color: None

View File

@ -451,6 +451,16 @@
color: None
)
),
"common.items.armor.cardinal.shoulder": (
left: (
vox_spec: ("armor.cardinal.shoulder", (-5.0, -4.0, -2.0)),
color: None
),
right: (
vox_spec: ("armor.empty", (-0.5, -4.0, -2.0)),
color: None
)
),
"common.items.armor.merchant.shoulder": (
left: (
vox_spec: ("armor.merchant.shoulder_l", (-3.0, -4.0 , -8.0)),

View File

@ -734,6 +734,7 @@
Simple("common.items.armor.misc.neck.gem_of_resilience"): "voxel.armor.misc.neck.resilience_gem",
Simple("common.items.armor.misc.neck.shell"): "voxel.armor.misc.neck.shell",
Simple("common.items.armor.misc.neck.amethyst"): "voxel.armor.misc.neck.amethyst",
Simple("common.items.armor.misc.neck.abyssal_gorget"): "voxel.armor.misc.neck.abyssal_gorget",
Simple("common.items.armor.misc.neck.diamond"): "voxel.armor.misc.neck.diamond",
Simple("common.items.armor.cultist.necklace"): "voxel.armor.cultist.necklace",
Simple("common.items.armor.misc.neck.ruby"): "voxel.armor.misc.neck.ruby",
@ -844,6 +845,8 @@
Simple("common.items.crafting_ing.animal_misc.grim_eyeball"): "voxel.sprite.crafting_ing.animal_misc.grim_eyeball",
Simple("common.items.flowers.plant_fiber"): "voxel.sprite.crafting_ing.plant_fiber",
Simple("common.items.flowers.moonbell"): "voxel.sprite.flowers.moonbell",
Simple("common.items.crafting_ing.abyssal_heart"): "voxel.sprite.crafting_ing.abyssal_heart",
Simple("common.items.crafting_ing.coral_branch"): "voxel.sprite.crafting_ing.coral_branch",
Simple("common.items.flowers.pyrebloom"): "voxel.sprite.flowers.pyrebloom",
Simple("common.items.flowers.wild_flax"): "voxel.sprite.flowers.flax",
Simple("common.items.crafting_ing.cotton_boll"): "voxel.sprite.crafting_ing.cotton_boll",

BIN
assets/voxygen/voxel/npc/dagon/male/chest.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/dagon/male/foot_br.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/dagon/male/foot_fr.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/dagon/male/head_lower.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/dagon/male/head_upper.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/dagon/male/jaw.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/dagon/male/tail_front.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/dagon/male/tail_rear.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/object/dagon_bomb.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/object/sea_urchin.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/object/seashell_lantern.vox (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -19,6 +19,16 @@
central: ("armor.empty"),
)
),
DagonBomb: (
bone0: (
offset: (-5.5, -5.5, 0.0),
central: ("object.dagon_bomb"),
),
bone1: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
)
),
FireworkBlue: (
bone0: (
offset: (0.0, 0.0, 0.0),
@ -249,6 +259,16 @@
central: ("armor.empty"),
)
),
BarrelOrgan: (
bone0: (
offset: (-9.0, -10.0, 0.0),
central: ("sprite.misc.barrel_organ"),
),
bone1: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
)
),
LanternGround: (
bone0: (
offset: (-3.5, -3.5, 0.0),

View File

@ -572,6 +572,58 @@
central: ("npc.hakulaq.male.tail_front"),
),
),
(Dagon, Male): (
upper: (
offset: (-4.5, 2.5, -13.0),
central: ("npc.dagon.male.head_upper"),
),
lower: (
offset: (-4.5, -10.0, -10.5),
central: ("npc.dagon.male.head_lower"),
),
jaw: (
offset: (-3.5, 11.5, -13.0),
central: ("npc.dagon.male.jaw"),
),
chest: (
offset: (-4.5, -8.0, -10.5),
central: ("npc.dagon.male.chest"),
),
tail_rear: (
offset: (-0.5, -31.0, -8.0),
central: ("npc.dagon.male.tail_rear"),
),
tail_front: (
offset: (-1.5, -12.0, -10.0),
central: ("npc.dagon.male.tail_front"),
),
),
(Dagon, Female): (
upper: (
offset: (-4.5, 2.5, -13.0),
central: ("npc.dagon.male.head_upper"),
),
lower: (
offset: (-4.5, -10.0, -10.5),
central: ("npc.dagon.male.head_lower"),
),
jaw: (
offset: (-3.5, 11.5, -13.0),
central: ("npc.dagon.male.jaw"),
),
chest: (
offset: (-4.5, -8.0, -10.5),
central: ("npc.dagon.male.chest"),
),
tail_rear: (
offset: (-0.5, -31.0, -8.0),
central: ("npc.dagon.male.tail_rear"),
),
tail_front: (
offset: (-1.5, -12.0, -10.0),
central: ("npc.dagon.male.tail_front"),
),
),
(Sandshark, Male): (
upper: (
offset: (-5.5, -8.0, -5.0),

View File

@ -395,6 +395,42 @@
lateral: ("npc.hakulaq.male.foot_br", false),
),
),
(Dagon, Male): (
front_left: (
offset: (-9.0, 5.0, -9.0),
lateral: ("npc.dagon.male.foot_fr", false),
),
front_right: (
offset: (-2.0, 5.0, -9.0),
lateral: ("npc.dagon.male.foot_fr", false),
),
back_left: (
offset: (-11.0, 3.0, -9.0),
lateral: ("npc.dagon.male.foot_br", false),
),
back_right: (
offset: (0.0, 3.0, -9.0),
lateral: ("npc.dagon.male.foot_br", false),
),
),
(Dagon, Female): (
front_left: (
offset: (-9.0, 5.0, -9.0),
lateral: ("npc.dagon.male.foot_fr", false),
),
front_right: (
offset: (-2.0, 5.0, -9.0),
lateral: ("npc.dagon.male.foot_fr", false),
),
back_left: (
offset: (-11.0, 3.0, -9.0),
lateral: ("npc.dagon.male.foot_br", false),
),
back_right: (
offset: (0.0, 3.0, -9.0),
lateral: ("npc.dagon.male.foot_br", false),
),
),
(Sandshark, Male): (
front_left: (
offset: (-17.0, 0.0, -12.0),

BIN
assets/voxygen/voxel/sprite/chests/chest_coral.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/crafting_ing/abyssal_heart.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/crafting_ing/coral_branch.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/misc/barrel_organ.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/misc/glass_barrier.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/misc/rope.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/misc/sea_decor_block.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/misc/sea_decor_chain.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/misc/sea_decor_emblem.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/misc/sea_decor_pillar-0.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/misc/sea_decor_pillar-1.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/misc/sea_decor_pillar-2.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/misc/sea_decor_pillar-3.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/misc/sea_decor_pillar-4.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/misc/sea_decor_pillar-5.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/misc/sea_decor_pillar-6.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/misc/sea_decor_pillar-7.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/misc/sea_decor_window_hor.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/misc/sea_decor_window_ver.vox (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -864,6 +864,151 @@ DungeonChest5: Some((
],
wind_sway: 0.0,
)),
// Rope
Rope: Some((
variations: [
(
model: "voxygen.voxel.sprite.misc.rope",
offset: (-5.5, -5.5, -0.0),
lod_axes: (1.0, 1.0, 1.0),
),
],
wind_sway: 0.0,
)),
// Coral Chest
CoralChest: Some((
variations: [
(
model: "voxygen.voxel.sprite.chests.chest_coral",
offset: (-7.0, -5.0, -0.0),
lod_axes: (1.0, 1.0, 1.0),
),
],
wind_sway: 0.0,
)),
// Sea DecorChain
SeaDecorChain: Some((
variations: [
(
model: "voxygen.voxel.sprite.misc.sea_decor_chain",
offset: (-5.5, -5.5, -0.0),
lod_axes: (1.0, 1.0, 1.0),
),
],
wind_sway: 0.0,
)),
// Sea DecorBlock
SeaDecorBlock: Some((
variations: [
(
model: "voxygen.voxel.sprite.misc.sea_decor_block",
offset: (-5.5, -5.5, -0.0),
lod_axes: (1.0, 1.0, 1.0),
),
],
wind_sway: 0.0,
)),
// Sea DecorWindow Horizontal
SeaDecorWindowHor: Some((
variations: [
(
model: "voxygen.voxel.sprite.misc.sea_decor_window_hor",
offset: (-5.5, -5.5, -0.0),
lod_axes: (1.0, 1.0, 1.0),
),
],
wind_sway: 0.0,
)),
// Sea DecorWindow Vertical
SeaDecorWindowVer: Some((
variations: [
(
model: "voxygen.voxel.sprite.misc.sea_decor_window_ver",
offset: (-5.5, -5.5, -0.0),
lod_axes: (1.0, 1.0, 1.0),
),
],
wind_sway: 0.0,
)),
// Sea Decor Emblem
SeaDecorEmblem: Some((
variations: [
(
model: "voxygen.voxel.sprite.misc.sea_decor_emblem",
offset: (-5.5, -5.5, -4.0),
lod_axes: (1.0, 1.0, 1.0),
),
],
wind_sway: 0.0,
)),
// Sea Decor Pillar
SeaDecorPillar: Some((
variations: [
(
model: "voxygen.voxel.sprite.misc.sea_decor_pillar-0",
offset: (-5.5, -5.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.misc.sea_decor_pillar-1",
offset: (-5.5, -5.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.misc.sea_decor_pillar-2",
offset: (-5.5, -5.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.misc.sea_decor_pillar-3",
offset: (-5.5, -5.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.misc.sea_decor_pillar-4",
offset: (-5.5, -5.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.misc.sea_decor_pillar-5",
offset: (-5.5, -5.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.misc.sea_decor_pillar-6",
offset: (-5.5, -5.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.misc.sea_decor_pillar-7",
offset: (-5.5, -5.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
],
wind_sway: 0.0,
)),
// SeashellLantern
SeashellLantern: Some((
variations: [
(
model: "voxygen.voxel.object.seashell_lantern",
offset: (-4.5, -4.5, 0.0),
lod_axes: (0.0, 0.0, 0.0),
),
],
wind_sway: 0.0,
)),
// GlassBarrier
GlassBarrier: Some((
variations: [
(
model: "voxygen.voxel.sprite.misc.glass_barrier",
offset: (-5.5, -5.5, 0.0),
lod_axes: (0.0, 0.0, 0.0),
),
],
wind_sway: 0.0,
)),
// Welwitch
Welwitch: Some((
variations: [
@ -3617,6 +3762,17 @@ EnsnaringVines: Some((
],
wind_sway: 0.0,
)),
// Sea Urchin
SeaUrchin: Some((
variations: [
(
model: "voxygen.voxel.object.sea_urchin",
offset: (-5.0, -6.5, 0.0),
lod_axes: (0.0, 0.0, 0.0),
),
],
wind_sway: 0.0,
)),
// WitchWindow
WitchWindow: Some((
variations: [

View File

@ -145,6 +145,7 @@ pub enum SiteKind {
Cave,
Tree,
Gnarling,
ChapelSite,
}
#[derive(Debug, Clone, Serialize, Deserialize)]

View File

@ -175,6 +175,7 @@ fn get_tool_kind(kind: &ToolKind) -> String {
ToolKind::Farming => "Farming".to_string(),
ToolKind::Pick => "Pick".to_string(),
ToolKind::Natural => "Natural".to_string(),
ToolKind::Organ => "Organ".to_string(),
ToolKind::Empty => "Empty".to_string(),
}
}

View File

@ -735,6 +735,7 @@ impl Body {
Body::Object(object) => match object {
object::Body::TrainingDummy => 1000,
object::Body::Crossbow => 80,
object::Body::BarrelOrgan => 500,
object::Body::HaniwaSentry => 60,
object::Body::SeaLantern => 100,
object::Body::GnarlingTotemGreen => 25,
@ -766,6 +767,7 @@ impl Body {
quadruped_low::Species::Maneater => 130,
quadruped_low::Species::Sandshark => 110,
quadruped_low::Species::Hakulaq => 120,
quadruped_low::Species::Dagon => 1200,
quadruped_low::Species::Lavadrake => 160,
quadruped_low::Species::Basilisk => 200,
quadruped_low::Species::Deadwood => 120,
@ -831,6 +833,7 @@ impl Body {
)
)
},
BuffKind::ProtectingWard => matches!(self, Body::Object(object::Body::BarrelOrgan)),
_ => false,
}
}

View File

@ -98,6 +98,8 @@ make_case_elim!(
GnarlingTotemRed = 83,
GnarlingTotemGreen = 84,
GnarlingTotemWhite = 85,
DagonBomb = 86,
BarrelOrgan = 87,
}
);
@ -108,7 +110,7 @@ impl Body {
}
}
pub const ALL_OBJECTS: [Body; 86] = [
pub const ALL_OBJECTS: [Body; 88] = [
Body::Arrow,
Body::Bomb,
Body::Scarecrow,
@ -195,6 +197,8 @@ pub const ALL_OBJECTS: [Body; 86] = [
Body::GnarlingTotemRed,
Body::GnarlingTotemWhite,
Body::GnarlingTotemGreen,
Body::DagonBomb,
Body::BarrelOrgan,
];
impl From<Body> for super::Body {
@ -290,6 +294,8 @@ impl Body {
Body::GnarlingTotemRed => "gnarling_totem_red",
Body::GnarlingTotemGreen => "gnarling_totem_green",
Body::GnarlingTotemWhite => "gnarling_totem_white",
Body::DagonBomb => "dagon_bomb",
Body::BarrelOrgan => "barrel_organ",
}
}
@ -307,9 +313,12 @@ impl Body {
pub fn density(&self) -> Density {
let density = match self {
Body::Anvil | Body::Cauldron => IRON_DENSITY,
Body::Arrow | Body::ArrowSnake | Body::ArrowTurret | Body::MultiArrow | Body::Dart => {
500.0
},
Body::Arrow
| Body::ArrowSnake
| Body::ArrowTurret
| Body::MultiArrow
| Body::Dart
| Body::DagonBomb => 500.0,
Body::Bomb => 2000.0, // I have no idea what it's supposed to be
Body::Crate => 300.0, // let's say it's a lot of wood and maybe some contents
Body::Scarecrow => 900.0,
@ -337,10 +346,10 @@ impl Body {
| Body::BoltNature
| Body::BoltIcicle
| Body::SpitPoison => 1.0,
Body::Bomb => {
Body::Bomb | Body::DagonBomb => {
0.5 * IRON_DENSITY * std::f32::consts::PI / 6.0 * self.dimensions().x.powi(3)
},
Body::Campfire | Body::CampfireLit => 300.0,
Body::Campfire | Body::CampfireLit | Body::BarrelOrgan => 300.0,
Body::Carpet
| Body::CarpetHumanRound
| Body::CarpetHumanSquare
@ -420,6 +429,7 @@ impl Body {
Body::GnarlingTotemRed | Body::GnarlingTotemGreen | Body::GnarlingTotemWhite => {
Vec3::new(0.8, 0.8, 1.4)
},
Body::BarrelOrgan => Vec3::new(4.0, 2.0, 3.0),
// FIXME: this *must* be exhaustive match
_ => Vec3::broadcast(0.5),
}

View File

@ -55,6 +55,7 @@ make_case_elim!(
Deadwood = 13,
Icedrake = 14,
SeaCrocodile = 15,
Dagon = 16,
}
);
@ -75,6 +76,7 @@ pub struct AllSpecies<SpeciesMeta> {
pub maneater: SpeciesMeta,
pub sandshark: SpeciesMeta,
pub hakulaq: SpeciesMeta,
pub dagon: SpeciesMeta,
pub lavadrake: SpeciesMeta,
pub basilisk: SpeciesMeta,
pub deadwood: SpeciesMeta,
@ -99,6 +101,7 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
Species::Maneater => &self.maneater,
Species::Sandshark => &self.sandshark,
Species::Hakulaq => &self.hakulaq,
Species::Dagon => &self.dagon,
Species::Lavadrake => &self.lavadrake,
Species::Basilisk => &self.basilisk,
Species::Deadwood => &self.deadwood,
@ -107,7 +110,7 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
}
}
pub const ALL_SPECIES: [Species; 16] = [
pub const ALL_SPECIES: [Species; 17] = [
Species::Crocodile,
Species::SeaCrocodile,
Species::Alligator,
@ -120,6 +123,7 @@ pub const ALL_SPECIES: [Species; 16] = [
Species::Maneater,
Species::Sandshark,
Species::Hakulaq,
Species::Dagon,
Species::Lavadrake,
Species::Basilisk,
Species::Deadwood,

View File

@ -34,6 +34,7 @@ pub enum ToolKind {
/// Intended for invisible weapons (e.g. a creature using its claws or
/// biting)
Natural,
Organ,
/// This is an placeholder item, it is used by non-humanoid npcs to attack
Empty,
}
@ -55,6 +56,7 @@ impl ToolKind {
ToolKind::Debug => "debug",
ToolKind::Farming => "farming",
ToolKind::Pick => "pickaxe",
ToolKind::Organ => "organ",
ToolKind::Empty => "empty",
}
}

View File

@ -579,6 +579,9 @@ fn default_main_tool(body: &Body) -> Item {
quadruped_low::Species::Asp => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.asp",
)),
quadruped_low::Species::Dagon => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.dagon",
)),
quadruped_low::Species::Crocodile
| quadruped_low::Species::SeaCrocodile
| quadruped_low::Species::Alligator
@ -718,6 +721,9 @@ fn default_main_tool(body: &Body) -> Item {
object::Body::Crossbow => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.turret",
)),
object::Body::BarrelOrgan => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.organ",
)),
object::Body::HaniwaSentry => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.haniwa_sentry",
)),

View File

@ -88,6 +88,12 @@ pub enum ProjectileConstructor {
knockback: f32,
min_falloff: f32,
},
DagonBomb {
damage: f32,
radius: f32,
knockback: f32,
min_falloff: f32,
},
}
impl ProjectileConstructor {
@ -457,6 +463,63 @@ impl ProjectileConstructor {
is_point: true,
}
},
DagonBomb {
damage,
radius,
knockback,
min_falloff,
} => {
let knockback = AttackEffect::new(
Some(GroupTarget::OutOfGroup),
CombatEffect::Knockback(Knockback {
strength: knockback,
direction: KnockbackDir::Away,
}),
)
.with_requirement(CombatRequirement::AnyDamage);
let buff = AttackEffect::new(
Some(GroupTarget::OutOfGroup),
CombatEffect::Buff(CombatBuff {
kind: BuffKind::Burning,
dur_secs: 5.0,
strength: CombatBuffStrength::DamageFraction(0.2 * buff_strength),
chance: 1.0,
}),
)
.with_requirement(CombatRequirement::AnyDamage);
let damage = AttackDamage::new(
Damage {
source: DamageSource::Explosion,
kind: DamageKind::Energy,
value: damage,
},
Some(GroupTarget::OutOfGroup),
instance,
);
let attack = Attack::default()
.with_damage(damage)
.with_crit(crit_chance, crit_mult)
.with_effect(knockback)
.with_effect(buff);
let explosion = Explosion {
effects: vec![
RadiusEffect::Attack(attack),
RadiusEffect::TerrainDestruction(5.0),
],
radius,
reagent: Some(Reagent::Blue),
min_falloff,
};
Projectile {
hit_solid: vec![Effect::Explode(explosion.clone()), Effect::Vanish],
hit_entity: vec![Effect::Explode(explosion), Effect::Vanish],
time_left: Duration::from_secs(10),
owner,
ignore_group: true,
is_sticky: true,
is_point: true,
}
},
}
}
@ -532,6 +595,14 @@ impl ProjectileConstructor {
*damage *= power;
*radius *= range;
},
DagonBomb {
ref mut damage,
ref mut radius,
..
} => {
*damage *= power;
*radius *= range;
},
}
self
}

View File

@ -118,12 +118,18 @@ impl CharacterBehavior for Data {
// Location sprite will be created
let sprite_pos =
Vec3::new(sprite_pos.x as i32, sprite_pos.y as i32, z);
// Send server event to create sprite
output_events.emit_server(ServerEvent::CreateSprite {
pos: sprite_pos,
sprite: self.static_data.sprite,
});
// Layers of sprites
let layers = match self.static_data.sprite {
SpriteKind::SeaUrchin => 2,
_ => 1,
};
for i in 0..layers {
// Send server event to create sprite
output_events.emit_server(ServerEvent::CreateSprite {
pos: Vec3::new(sprite_pos.x as i32, sprite_pos.y, z + i),
sprite: self.static_data.sprite,
});
}
}
}
}

View File

@ -126,6 +126,7 @@ impl Body {
quadruped_low::Species::Maneater => 80.0,
quadruped_low::Species::Sandshark => 160.0,
quadruped_low::Species::Hakulaq => 140.0,
quadruped_low::Species::Dagon => 140.0,
quadruped_low::Species::Lavadrake => 100.0,
quadruped_low::Species::Icedrake => 100.0,
quadruped_low::Species::Basilisk => 90.0,

View File

@ -235,6 +235,9 @@ impl Block {
| SpriteKind::EmeraldSmall
| SpriteKind::SapphireSmall => Some(3),
SpriteKind::Lantern => Some(24),
SpriteKind::SeashellLantern => Some(16),
SpriteKind::SeaDecorEmblem => Some(12),
SpriteKind::SeaDecorBlock => Some(10),
_ => None,
},
}
@ -294,8 +297,16 @@ impl Block {
| SpriteKind::DungeonChest3
| SpriteKind::DungeonChest4
| SpriteKind::DungeonChest5
| SpriteKind::ChestBuried => None,
SpriteKind::EnsnaringVines | SpriteKind::EnsnaringWeb => Some(0.1),
| SpriteKind::ChestBuried
| SpriteKind::SeaDecorBlock
| SpriteKind::SeaDecorChain
| SpriteKind::SeaDecorWindowHor
| SpriteKind::SeaDecorWindowVer
| SpriteKind::Rope
| SpriteKind::GlassBarrier => None,
SpriteKind::EnsnaringVines | SpriteKind::EnsnaringWeb | SpriteKind::SeaUrchin => {
Some(0.1)
},
_ => Some(0.25),
}),
}

View File

@ -215,6 +215,17 @@ make_case_elim!(
Ironwood = 0xBC,
Frostwood = 0xBD,
Eldwood = 0xBE,
SeaUrchin = 0xBF,
GlassBarrier = 0xC0,
CoralChest = 0xC1,
SeaDecorChain = 0xC2,
SeaDecorBlock = 0xC3,
SeaDecorWindowHor = 0xC4,
SeaDecorWindowVer = 0xC5,
SeaDecorEmblem = 0xC6,
SeaDecorPillar = 0xC7,
SeashellLantern = 0xC8,
Rope = 0xC9,
}
);
@ -237,6 +248,14 @@ impl SpriteKind {
SpriteKind::DungeonChest3 => 1.09,
SpriteKind::DungeonChest4 => 1.09,
SpriteKind::DungeonChest5 => 1.09,
SpriteKind::CoralChest => 1.09,
SpriteKind::SeaDecorChain => 1.09,
SpriteKind::SeaDecorBlock => 1.00,
SpriteKind::SeaDecorWindowHor => 0.55,
SpriteKind::SeaDecorWindowVer => 1.09,
SpriteKind::SeaDecorPillar => 2.55,
SpriteKind::SeashellLantern => 2.09,
SpriteKind::Rope => 1.09,
SpriteKind::StreetLamp => 2.65,
SpriteKind::Carrot => 0.18,
SpriteKind::Radish => 0.18,
@ -290,6 +309,8 @@ impl SpriteKind {
| SpriteKind::Window4
| SpriteKind::DropGate
| SpriteKind::WitchWindow
| SpriteKind::SeaUrchin
| SpriteKind::GlassBarrier
| SpriteKind::Bomb => 1.0,
// TODO: Figure out if this should be solid or not.
SpriteKind::Shelf => 1.0,
@ -398,6 +419,7 @@ impl SpriteKind {
SpriteKind::DungeonChest5 => table("common.loot_tables.dungeon.tier-5.chest"),
SpriteKind::Chest => table("common.loot_tables.sprite.chest"),
SpriteKind::ChestBuried => table("common.loot_tables.sprite.chest-buried"),
SpriteKind::CoralChest => table("common.loot_tables.dungeon.sea_chapel.chest_coral"),
SpriteKind::Mud => table("common.loot_tables.sprite.mud"),
SpriteKind::Crate => table("common.loot_tables.sprite.crate"),
SpriteKind::Wood => item("common.items.log.wood"),
@ -448,7 +470,8 @@ impl SpriteKind {
| SpriteKind::Tin
| SpriteKind::Silver
| SpriteKind::Gold
| SpriteKind::SapphireSmall => Some(ToolKind::Pick),
| SpriteKind::SapphireSmall
| SpriteKind::GlassBarrier => Some(ToolKind::Pick),
_ => None,
}
}
@ -491,6 +514,9 @@ impl SpriteKind {
| SpriteKind::DungeonChest3
| SpriteKind::DungeonChest4
| SpriteKind::DungeonChest5
| SpriteKind::CoralChest
| SpriteKind::SeaDecorWindowVer
| SpriteKind::SeaDecorEmblem
| SpriteKind::DropGate
| SpriteKind::DropGateBottom
| SpriteKind::Door

Some files were not shown because too many files have changed in this diff Show More