mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Dungeon placement. Tweaks to melee.
This commit is contained in:
parent
9f8aeb91c0
commit
c67c56d194
@ -1,9 +1,9 @@
|
||||
BasicMelee(
|
||||
energy_cost: 0,
|
||||
buildup_duration: 0.2,
|
||||
swing_duration: 0.2,
|
||||
buildup_duration: 0.5,
|
||||
swing_duration: 0.5,
|
||||
recover_duration: 0.5,
|
||||
base_damage: 250,
|
||||
base_damage: 200,
|
||||
base_poise_damage: 50,
|
||||
knockback: 10.0,
|
||||
range: 5.0,
|
||||
|
@ -1,5 +1,5 @@
|
||||
ItemDef(
|
||||
name: "Emerald Staff",
|
||||
name: "Emerald Sceptre",
|
||||
description: "Its stone is the closest thing from perfection",
|
||||
kind: Tool((
|
||||
kind: Sceptre,
|
||||
|
@ -602,7 +602,11 @@ impl Body {
|
||||
pub fn immune_to(&self, buff: BuffKind) -> bool {
|
||||
match buff {
|
||||
BuffKind::Bleeding => matches!(self, Body::Object(_) | Body::Golem(_) | Body::Ship(_)),
|
||||
BuffKind::Burning => matches!(self, Body::Golem(_)),
|
||||
BuffKind::Burning => match self {
|
||||
Body::Golem(g) => matches!(g.species, golem::Species::ClayGolem),
|
||||
Body::BipedSmall(b) => matches!(b.species, biped_small::Species::Haniwa),
|
||||
_ => false,
|
||||
},
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
|
@ -3489,6 +3489,12 @@ impl<'a> AgentData<'a> {
|
||||
} else if attack_data.dist_sqrd < GOLEM_LASER_RANGE.powi(2) {
|
||||
if matches!(self.char_state, CharacterState::BasicBeam(c) if c.timer < Duration::from_secs(10))
|
||||
|| target_speed_sqd < GOLEM_TARGET_SPEED.powi(2)
|
||||
&& can_see_tgt(
|
||||
&*read_data.terrain,
|
||||
self.pos,
|
||||
tgt_data.pos,
|
||||
attack_data.dist_sqrd,
|
||||
)
|
||||
{
|
||||
// If already lasering, keep lasering if target in range threshold and
|
||||
// haven't been lasering for more than 10 seconds already
|
||||
@ -3503,7 +3509,14 @@ impl<'a> AgentData<'a> {
|
||||
.push(ControlAction::basic_input(InputKind::Ability(0)));
|
||||
}
|
||||
} else if attack_data.dist_sqrd < GOLEM_LONG_RANGE.powi(2) {
|
||||
if target_speed_sqd < GOLEM_TARGET_SPEED.powi(2) {
|
||||
if target_speed_sqd < GOLEM_TARGET_SPEED.powi(2)
|
||||
&& can_see_tgt(
|
||||
&*read_data.terrain,
|
||||
self.pos,
|
||||
tgt_data.pos,
|
||||
attack_data.dist_sqrd,
|
||||
)
|
||||
{
|
||||
// If target is far-ish and moving slow-ish, rocket them
|
||||
controller
|
||||
.actions
|
||||
|
@ -810,8 +810,6 @@ impl Floor {
|
||||
Lottery::<LootSpec>::load_expect("common.loot_tables.fallback")
|
||||
},
|
||||
};
|
||||
let chosen = chosen.read();
|
||||
let chosen = chosen.choose();
|
||||
let entity = match room.difficulty {
|
||||
0 => {
|
||||
vec![
|
||||
@ -823,7 +821,7 @@ impl Floor {
|
||||
),
|
||||
))
|
||||
.with_name("Harvester".to_string())
|
||||
.with_loot_drop(chosen.to_item()),
|
||||
.with_loot_drop(chosen.read().choose().to_item()),
|
||||
]
|
||||
},
|
||||
1 => {
|
||||
@ -836,7 +834,7 @@ impl Floor {
|
||||
),
|
||||
))
|
||||
.with_name("Yeti".to_string())
|
||||
.with_loot_drop(chosen.to_item()),
|
||||
.with_loot_drop(chosen.read().choose().to_item()),
|
||||
]
|
||||
},
|
||||
2 => {
|
||||
@ -849,11 +847,12 @@ impl Floor {
|
||||
),
|
||||
))
|
||||
.with_name("Tidal Warrior".to_string())
|
||||
.with_loot_drop(chosen.to_item()),
|
||||
.with_loot_drop(chosen.read().choose().to_item()),
|
||||
]
|
||||
},
|
||||
3 => {
|
||||
vec![
|
||||
let mut entities = Vec::new();
|
||||
entities.resize_with(2, || {
|
||||
EntityInfo::at(tile_wcenter.map(|e| e as f32))
|
||||
.with_body(comp::Body::Golem(
|
||||
comp::golem::Body::random_with(
|
||||
@ -862,8 +861,9 @@ impl Floor {
|
||||
),
|
||||
))
|
||||
.with_name("Clay Golem".to_string())
|
||||
.with_loot_drop(chosen.to_item()),
|
||||
]
|
||||
.with_loot_drop(chosen.read().choose().to_item())
|
||||
});
|
||||
entities
|
||||
},
|
||||
4 => {
|
||||
vec![
|
||||
@ -875,7 +875,7 @@ impl Floor {
|
||||
),
|
||||
))
|
||||
.with_name("Minotaur".to_string())
|
||||
.with_loot_drop(chosen.to_item()),
|
||||
.with_loot_drop(chosen.read().choose().to_item()),
|
||||
]
|
||||
},
|
||||
5 => {
|
||||
@ -888,7 +888,7 @@ impl Floor {
|
||||
),
|
||||
))
|
||||
.with_name("Mindflayer".to_string())
|
||||
.with_loot_drop(chosen.to_item())
|
||||
.with_loot_drop(chosen.read().choose().to_item())
|
||||
.with_skillset_config(
|
||||
common::skillset_builder::SkillSetConfig::Mindflayer,
|
||||
),
|
||||
|
Loading…
Reference in New Issue
Block a user