mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
rocky yetipit entrance & AdletTrap object
This commit is contained in:
parent
95347e8a60
commit
f936c2f00e
@ -5,7 +5,7 @@ BasicRanged(
|
||||
projectile: Trap(
|
||||
damage: 25,
|
||||
),
|
||||
projectile_body: Object(Snowball),
|
||||
projectile_body: Object(AdletTrap),
|
||||
projectile_speed: 10.0,
|
||||
num_projectiles: 1,
|
||||
projectile_spread: 0.0,
|
||||
|
@ -929,4 +929,14 @@
|
||||
central: ("armor.empty"),
|
||||
)
|
||||
),
|
||||
AdletTrap: (
|
||||
bone0: (
|
||||
offset: (-4.5, -2.5, 0.0),
|
||||
central: ("weapon.projectile.adlet-trap"),
|
||||
),
|
||||
bone1: (
|
||||
offset: (0.0, 0.0, 0.0),
|
||||
central: ("armor.empty"),
|
||||
)
|
||||
),
|
||||
})
|
||||
|
BIN
assets/voxygen/voxel/weapon/projectile/adlet-trap.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/weapon/projectile/adlet-trap.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -105,6 +105,7 @@ make_case_elim!(
|
||||
SpectralSwordLarge = 90,
|
||||
LaserBeam = 91,
|
||||
AdletSpear = 92,
|
||||
AdletTrap = 93,
|
||||
}
|
||||
);
|
||||
|
||||
@ -115,7 +116,7 @@ impl Body {
|
||||
}
|
||||
}
|
||||
|
||||
pub const ALL_OBJECTS: [Body; 93] = [
|
||||
pub const ALL_OBJECTS: [Body; 94] = [
|
||||
Body::Arrow,
|
||||
Body::Bomb,
|
||||
Body::Scarecrow,
|
||||
@ -209,6 +210,7 @@ pub const ALL_OBJECTS: [Body; 93] = [
|
||||
Body::IceBomb,
|
||||
Body::LaserBeam,
|
||||
Body::AdletSpear,
|
||||
Body::AdletTrap,
|
||||
];
|
||||
|
||||
impl From<Body> for super::Body {
|
||||
@ -311,6 +313,7 @@ impl Body {
|
||||
Body::SpectralSwordLarge => "spectral_sword_large",
|
||||
Body::LaserBeam => "laser_beam",
|
||||
Body::AdletSpear => "adlet_spear",
|
||||
Body::AdletTrap => "adlet_trap",
|
||||
}
|
||||
}
|
||||
|
||||
@ -336,7 +339,8 @@ impl Body {
|
||||
| Body::DagonBomb
|
||||
| Body::SpectralSwordSmall
|
||||
| Body::SpectralSwordLarge
|
||||
| Body::AdletSpear => 500.0,
|
||||
| Body::AdletSpear
|
||||
| Body::AdletTrap => 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,
|
||||
@ -432,6 +436,7 @@ impl Body {
|
||||
Body::IceBomb => 12298.0, // 2.5 m diamter but ice
|
||||
Body::LaserBeam => 80000.0,
|
||||
Body::AdletSpear => 1.5,
|
||||
Body::AdletTrap => 1.2,
|
||||
};
|
||||
|
||||
Mass(m)
|
||||
@ -445,6 +450,7 @@ impl Body {
|
||||
| Body::ArrowTurret
|
||||
| Body::Dart
|
||||
| Body::AdletSpear => Vec3::new(0.01, 0.8, 0.01),
|
||||
Body::AdletTrap => Vec3::new(1.0, 0.6, 0.3),
|
||||
Body::BoltFire => Vec3::new(0.1, 0.1, 0.1),
|
||||
Body::SpectralSwordSmall => Vec3::new(0.2, 0.9, 0.1),
|
||||
Body::SpectralSwordLarge => Vec3::new(0.2, 1.5, 0.1),
|
||||
|
@ -276,7 +276,7 @@ impl AdletStronghold {
|
||||
if let Some(rpos) = attempt(50, || {
|
||||
let rpos = {
|
||||
let theta = rng.gen_range(0.0..TAU);
|
||||
let radius = (cavern_radius - 5) as f32;
|
||||
let radius = cavern_radius as f32;
|
||||
Vec2::new(theta.cos() * radius, theta.sin() * radius).as_()
|
||||
};
|
||||
valid_cavern_struct_pos(&cavern_structures, AdletStructure::YetiPit, rpos)
|
||||
@ -1204,11 +1204,18 @@ impl Structure for AdletStronghold {
|
||||
}
|
||||
}
|
||||
// yetipit entrance
|
||||
// dome
|
||||
// rocks
|
||||
painter
|
||||
.sphere(Aabb {
|
||||
min: (yetipit_entrance_pos - 20).with_z(alt as i32 - 25),
|
||||
max: (yetipit_entrance_pos + 20).with_z(alt as i32 + 15),
|
||||
min: (yetipit_entrance_pos - 8).with_z(alt as i32 - 8),
|
||||
max: (yetipit_entrance_pos + 8).with_z(alt as i32 + 8),
|
||||
})
|
||||
.fill(rock_fill.clone());
|
||||
// repaint ground
|
||||
painter
|
||||
.cylinder(Aabb {
|
||||
min: (yetipit_entrance_pos - 8).with_z(alt as i32 - 20),
|
||||
max: (yetipit_entrance_pos + 8).with_z(alt as i32),
|
||||
})
|
||||
.fill(snow_ice_fill.clone());
|
||||
// tunnel
|
||||
@ -1217,34 +1224,28 @@ impl Structure for AdletStronghold {
|
||||
/ Vec2::new((door_dist.x).pow(2).sqrt(), (door_dist.y).pow(2).sqrt());
|
||||
painter
|
||||
.cubic_bezier(
|
||||
(yetipit_entrance_pos + door_dir * 20).with_z(alt as i32 + 2),
|
||||
(yetipit_entrance_pos + door_dir * 10).with_z(alt as i32 + 2),
|
||||
(yetipit_entrance_pos - door_dir * 20).with_z(alt as i32 - 10),
|
||||
(yetipit_entrance_pos + door_dir * 30).with_z((alt as i32) - 30),
|
||||
(yetipit_entrance_pos + door_dir * 20).with_z((alt as i32) - 30),
|
||||
self.cavern_center.with_z((alt as i32) - 50),
|
||||
4.0,
|
||||
)
|
||||
.clear();
|
||||
let door_pos = yetipit_entrance_pos + door_dir * 8;
|
||||
// bone door
|
||||
painter
|
||||
.line(
|
||||
(door_pos + door_dir * 1).with_z(alt as i32),
|
||||
(door_pos + door_dir * 2).with_z(alt as i32 - 3),
|
||||
.sphere_with_radius(
|
||||
(yetipit_entrance_pos + door_dir).with_z(alt as i32 - 4),
|
||||
4.0,
|
||||
)
|
||||
.fill(Fill::Block(Block::air(SpriteKind::BoneKeyDoor)));
|
||||
painter
|
||||
.line(
|
||||
(door_pos + door_dir * 3).with_z(alt as i32 - 1),
|
||||
(door_pos + door_dir * 4).with_z(alt as i32 - 4),
|
||||
0.5,
|
||||
.sphere_with_radius(
|
||||
(yetipit_entrance_pos + door_dir * 2).with_z(alt as i32 - 2),
|
||||
1.0,
|
||||
)
|
||||
.fill(Fill::Block(Block::air(SpriteKind::BoneKeyhole)));
|
||||
painter
|
||||
.line(
|
||||
door_pos.with_z(alt as i32),
|
||||
(door_pos + door_dir * 1).with_z(alt as i32 - 3),
|
||||
4.0,
|
||||
)
|
||||
.sphere_with_radius(yetipit_entrance_pos.with_z(alt as i32 - 4), 4.0)
|
||||
.clear();
|
||||
},
|
||||
AdletStructure::Tannery => {
|
||||
|
Loading…
Reference in New Issue
Block a user