mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Add troll variants and roc npcs
This commit is contained in:
parent
11994b5735
commit
97ce50e5d4
@ -264,6 +264,18 @@
|
|||||||
(None, "common.abilities.custom.birdlargefire.fireshockwave"),
|
(None, "common.abilities.custom.birdlargefire.fireshockwave"),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
Custom("Bird Large Basic"): (
|
||||||
|
primary: "common.abilities.custom.birdlargebreathe.firebomb",
|
||||||
|
secondary: "common.abilities.custom.birdlargebreathe.triplestrike",
|
||||||
|
abilities: [
|
||||||
|
(None, "common.abilities.custom.birdlargebasic.summontornadoes"),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Custom("Tornado"): (
|
||||||
|
primary: "common.abilities.custom.tornado.spin",
|
||||||
|
secondary: "common.abilities.empty.basic",
|
||||||
|
abilities: [],
|
||||||
|
),
|
||||||
Tool(Debug): (
|
Tool(Debug): (
|
||||||
primary: "common.abilities.debug.forwardboost",
|
primary: "common.abilities.debug.forwardboost",
|
||||||
secondary: "common.abilities.debug.upboost",
|
secondary: "common.abilities.debug.upboost",
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
BasicSummon(
|
||||||
|
buildup_duration: 0.5,
|
||||||
|
cast_duration: 1.0,
|
||||||
|
recover_duration: 0.5,
|
||||||
|
summon_amount: 6,
|
||||||
|
summon_info: (
|
||||||
|
body: Object(Tornado),
|
||||||
|
scale: None,
|
||||||
|
health_scaling: 80,
|
||||||
|
loadout_config: None,
|
||||||
|
skillset_config: None,
|
||||||
|
),
|
||||||
|
)
|
19
assets/common/abilities/custom/tornado/spin.ron
Normal file
19
assets/common/abilities/custom/tornado/spin.ron
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
SpinMelee(
|
||||||
|
buildup_duration: 0.2,
|
||||||
|
swing_duration: 0.6,
|
||||||
|
recover_duration: 0.2,
|
||||||
|
base_damage: 70,
|
||||||
|
base_poise_damage: 25,
|
||||||
|
knockback: ( strength: 0.0, direction: Away),
|
||||||
|
range: 3.5,
|
||||||
|
damage_effect: None,
|
||||||
|
energy_cost: 100,
|
||||||
|
is_infinite: true,
|
||||||
|
movement_behavior: AxeHover,
|
||||||
|
is_interruptible: false,
|
||||||
|
forward_speed: 0.0,
|
||||||
|
num_spins: 1,
|
||||||
|
specifier: None,
|
||||||
|
target: Some(OutOfGroup),
|
||||||
|
damage_kind: Slashing,
|
||||||
|
)
|
19
assets/common/items/npc_weapons/unique/birdlargebasic.ron
Normal file
19
assets/common/items/npc_weapons/unique/birdlargebasic.ron
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
ItemDef(
|
||||||
|
name: "Bird Large Basic",
|
||||||
|
description: "testing123",
|
||||||
|
kind: Tool((
|
||||||
|
kind: Natural,
|
||||||
|
hands: Two,
|
||||||
|
stats: Direct((
|
||||||
|
equip_time_secs: 0.01,
|
||||||
|
power: 1.0,
|
||||||
|
poise_strength: 1.0,
|
||||||
|
speed: 1.0,
|
||||||
|
crit_chance: 0.0625,
|
||||||
|
crit_mult: 1.9142857,
|
||||||
|
)),
|
||||||
|
)),
|
||||||
|
quality: Low,
|
||||||
|
tags: [],
|
||||||
|
ability_spec: Some(Custom("Bird Large Basic")),
|
||||||
|
)
|
@ -826,9 +826,17 @@
|
|||||||
keyword: "wendigo",
|
keyword: "wendigo",
|
||||||
generic: "Wendigo"
|
generic: "Wendigo"
|
||||||
),
|
),
|
||||||
troll: (
|
troll_cave: (
|
||||||
keyword: "troll",
|
keyword: "troll_cave",
|
||||||
generic: "Troll"
|
generic: "Cave Troll"
|
||||||
|
),
|
||||||
|
troll_mountain: (
|
||||||
|
keyword: "troll_mountain",
|
||||||
|
generic: "Mountain Troll"
|
||||||
|
),
|
||||||
|
troll_swamp: (
|
||||||
|
keyword: "troll_swamp",
|
||||||
|
generic: "Swamp Troll"
|
||||||
),
|
),
|
||||||
dullahan: (
|
dullahan: (
|
||||||
keyword: "dullahan",
|
keyword: "dullahan",
|
||||||
@ -1080,6 +1088,10 @@
|
|||||||
keyword: "cockatrice",
|
keyword: "cockatrice",
|
||||||
generic: "Cockatrice"
|
generic: "Cockatrice"
|
||||||
),
|
),
|
||||||
|
roc: (
|
||||||
|
keyword: "roc",
|
||||||
|
generic: "Roc"
|
||||||
|
),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
quadruped_low: (
|
quadruped_low: (
|
||||||
|
@ -71,6 +71,7 @@ const int BUBBLES = 29;
|
|||||||
const int WATER = 30;
|
const int WATER = 30;
|
||||||
const int ICE_SPIKES = 31;
|
const int ICE_SPIKES = 31;
|
||||||
const int DRIP = 32;
|
const int DRIP = 32;
|
||||||
|
const int TORNADO = 33;
|
||||||
|
|
||||||
// meters per second squared (acceleration)
|
// meters per second squared (acceleration)
|
||||||
const float earth_gravity = 9.807;
|
const float earth_gravity = 9.807;
|
||||||
@ -543,6 +544,16 @@ void main() {
|
|||||||
spin_in_axis(vec3(1,0,0),0)
|
spin_in_axis(vec3(1,0,0),0)
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
case TORNADO:
|
||||||
|
f_reflect = 0.0; // Fire doesn't reflect light, it emits it
|
||||||
|
attr = Attr(
|
||||||
|
//vec3(sin(lifetime * 400.0) * 3.0 * percent(), cos(lifetime * 400.0) * 3.0 * percent(), lifetime * 5.0),
|
||||||
|
spiral_motion(vec3(0, 0, 5), abs(rand0) + abs(rand1) * percent() * 3.0, percent(), 15.0 * abs(rand2), rand3),
|
||||||
|
vec3((2.5 * (1 - slow_start(0.05)))),
|
||||||
|
vec4(1.2 + 0.5 * percent(), 1.2 + 0.5 * percent(), 1.2 + 0.5 * percent(), 2.5),
|
||||||
|
spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9)
|
||||||
|
);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
attr = Attr(
|
attr = Attr(
|
||||||
linear_motion(
|
linear_motion(
|
||||||
|
@ -156,22 +156,22 @@
|
|||||||
central: ("armor.empty"),
|
central: ("armor.empty"),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
(Troll, Male): (
|
(Cavetroll, Male): (
|
||||||
head: (
|
head: (
|
||||||
offset: (-8.0, -8.5, -9.0),
|
offset: (-8.0, -8.0, -8.5),
|
||||||
central: ("npc.troll.male.head"),
|
central: ("npc.troll_cave.male.head"),
|
||||||
),
|
),
|
||||||
torso_upper: (
|
torso_upper: (
|
||||||
offset: (-8.0, -7.5, -11.0),
|
offset: (-8.0, -9.5, -11.0),
|
||||||
central: ("npc.troll.male.torso_upper"),
|
central: ("npc.troll_cave.male.torso_upper"),
|
||||||
),
|
),
|
||||||
torso_lower: (
|
torso_lower: (
|
||||||
offset: (-6.0, -3.5, -5.0),
|
offset: (-7.0, -5.5, -7.0),
|
||||||
central: ("npc.troll.male.torso_lower"),
|
central: ("npc.troll_cave.male.torso_lower"),
|
||||||
),
|
),
|
||||||
jaw: (
|
jaw: (
|
||||||
offset: (-4.0, 0.0, -4.5),
|
offset: (-5.0, 0.0, -4.5),
|
||||||
central: ("npc.troll.male.jaw"),
|
central: ("npc.troll_cave.male.jaw"),
|
||||||
),
|
),
|
||||||
tail: (
|
tail: (
|
||||||
offset: (0.0, 0.0, 0.0),
|
offset: (0.0, 0.0, 0.0),
|
||||||
@ -182,22 +182,126 @@
|
|||||||
central: ("armor.empty"),
|
central: ("armor.empty"),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
(Troll, Female): (
|
(Cavetroll, Female): (
|
||||||
head: (
|
head: (
|
||||||
offset: (-8.0, -8.5, -9.0),
|
offset: (-8.0, -8.0, -8.5),
|
||||||
central: ("npc.troll.male.head"),
|
central: ("npc.troll_cave.male.head"),
|
||||||
),
|
),
|
||||||
torso_upper: (
|
torso_upper: (
|
||||||
offset: (-8.0, -7.5, -11.0),
|
offset: (-8.0, -9.5, -11.0),
|
||||||
central: ("npc.troll.male.torso_upper"),
|
central: ("npc.troll_cave.male.torso_upper"),
|
||||||
),
|
),
|
||||||
torso_lower: (
|
torso_lower: (
|
||||||
offset: (-6.0, -3.5, -5.0),
|
offset: (-7.0, -5.5, -7.0),
|
||||||
central: ("npc.troll.male.torso_lower"),
|
central: ("npc.troll_cave.male.torso_lower"),
|
||||||
|
),
|
||||||
|
jaw: (
|
||||||
|
offset: (-5.0, 0.0, -4.5),
|
||||||
|
central: ("npc.troll_cave.male.jaw"),
|
||||||
|
),
|
||||||
|
tail: (
|
||||||
|
offset: (0.0, 0.0, 0.0),
|
||||||
|
central: ("armor.empty"),
|
||||||
|
),
|
||||||
|
second: (
|
||||||
|
offset: (0.0, 0.0, 0.0),
|
||||||
|
central: ("armor.empty"),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
(Mountaintroll, Male): (
|
||||||
|
head: (
|
||||||
|
offset: (-9.0, -8.5, -10.0),
|
||||||
|
central: ("npc.troll_mountain.male.head"),
|
||||||
|
),
|
||||||
|
torso_upper: (
|
||||||
|
offset: (-9.0, -10.0, -14.5),
|
||||||
|
central: ("npc.troll_mountain.male.torso_upper"),
|
||||||
|
),
|
||||||
|
torso_lower: (
|
||||||
|
offset: (-7.0, -5.5, -7.0),
|
||||||
|
central: ("npc.troll_mountain.male.torso_lower"),
|
||||||
),
|
),
|
||||||
jaw: (
|
jaw: (
|
||||||
offset: (-4.0, 0.0, -4.5),
|
offset: (-4.0, 0.0, -4.5),
|
||||||
central: ("npc.troll.male.jaw"),
|
central: ("npc.troll_mountain.male.jaw"),
|
||||||
|
),
|
||||||
|
tail: (
|
||||||
|
offset: (0.0, 0.0, 0.0),
|
||||||
|
central: ("armor.empty"),
|
||||||
|
),
|
||||||
|
second: (
|
||||||
|
offset: (0.0, 0.0, 0.0),
|
||||||
|
central: ("armor.empty"),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
(Mountaintroll, Female): (
|
||||||
|
head: (
|
||||||
|
offset: (-9.0, -8.5, -10.0),
|
||||||
|
central: ("npc.troll_mountain.male.head"),
|
||||||
|
),
|
||||||
|
torso_upper: (
|
||||||
|
offset: (-9.0, -10.0, -14.5),
|
||||||
|
central: ("npc.troll_mountain.male.torso_upper"),
|
||||||
|
),
|
||||||
|
torso_lower: (
|
||||||
|
offset: (-7.0, -5.5, -7.0),
|
||||||
|
central: ("npc.troll_mountain.male.torso_lower"),
|
||||||
|
),
|
||||||
|
jaw: (
|
||||||
|
offset: (-4.0, 0.0, -4.5),
|
||||||
|
central: ("npc.troll_mountain.male.jaw"),
|
||||||
|
),
|
||||||
|
tail: (
|
||||||
|
offset: (0.0, 0.0, 0.0),
|
||||||
|
central: ("armor.empty"),
|
||||||
|
),
|
||||||
|
second: (
|
||||||
|
offset: (0.0, 0.0, 0.0),
|
||||||
|
central: ("armor.empty"),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
(Swamptroll, Male): (
|
||||||
|
head: (
|
||||||
|
offset: (-10.0, -6.5, -6.0),
|
||||||
|
central: ("npc.troll_swamp.male.head"),
|
||||||
|
),
|
||||||
|
torso_upper: (
|
||||||
|
offset: (-9.0, -9.0, -12.5),
|
||||||
|
central: ("npc.troll_swamp.male.torso_upper"),
|
||||||
|
),
|
||||||
|
torso_lower: (
|
||||||
|
offset: (-8.0, -6.5, -10.0),
|
||||||
|
central: ("npc.troll_swamp.male.torso_lower"),
|
||||||
|
),
|
||||||
|
jaw: (
|
||||||
|
offset: (-6.0, 0.0, -4.0),
|
||||||
|
central: ("npc.troll_swamp.male.jaw"),
|
||||||
|
),
|
||||||
|
tail: (
|
||||||
|
offset: (0.0, 0.0, 0.0),
|
||||||
|
central: ("armor.empty"),
|
||||||
|
),
|
||||||
|
second: (
|
||||||
|
offset: (0.0, 0.0, 0.0),
|
||||||
|
central: ("armor.empty"),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
(Swamptroll, Female): (
|
||||||
|
head: (
|
||||||
|
offset: (-10.0, -6.5, -6.0),
|
||||||
|
central: ("npc.troll_swamp.male.head"),
|
||||||
|
),
|
||||||
|
torso_upper: (
|
||||||
|
offset: (-9.0, -9.0, -12.5),
|
||||||
|
central: ("npc.troll_swamp.male.torso_upper"),
|
||||||
|
),
|
||||||
|
torso_lower: (
|
||||||
|
offset: (-8.0, -6.5, -10.0),
|
||||||
|
central: ("npc.troll_swamp.male.torso_lower"),
|
||||||
|
),
|
||||||
|
jaw: (
|
||||||
|
offset: (-6.0, 0.0, -4.0),
|
||||||
|
central: ("npc.troll_swamp.male.jaw"),
|
||||||
),
|
),
|
||||||
tail: (
|
tail: (
|
||||||
offset: (0.0, 0.0, 0.0),
|
offset: (0.0, 0.0, 0.0),
|
||||||
|
@ -203,72 +203,208 @@
|
|||||||
lateral: ("npc.wendigo.male.foot_r"),
|
lateral: ("npc.wendigo.male.foot_r"),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
(Troll, Male): (
|
(Cavetroll, Male): (
|
||||||
shoulder_l: (
|
shoulder_l: (
|
||||||
offset: (-5.0, -4.5, -11.0),
|
offset: (-5.5, -4.0, -8.0),
|
||||||
lateral: ("npc.troll.male.shoulder_l"),
|
lateral: ("npc.troll_cave.male.shoulder_l"),
|
||||||
),
|
),
|
||||||
shoulder_r: (
|
shoulder_r: (
|
||||||
offset: (-5.0, -4.5, -11.0),
|
offset: (-5.5, -4.0, -8.0),
|
||||||
lateral: ("npc.troll.male.shoulder_r"),
|
lateral: ("npc.troll_cave.male.shoulder_r"),
|
||||||
),
|
),
|
||||||
hand_l: (
|
hand_l: (
|
||||||
offset: (-3.5, -4.0, -12.0),
|
offset: (-4.5, -4.0, -14.0),
|
||||||
lateral: ("npc.troll.male.hand_l"),
|
lateral: ("npc.troll_cave.male.hand_l"),
|
||||||
),
|
),
|
||||||
hand_r: (
|
hand_r: (
|
||||||
offset: (-3.5, -4.0, -12.0),
|
offset: (-4.5, -4.0, -14.0),
|
||||||
lateral: ("npc.troll.male.hand_r"),
|
lateral: ("npc.troll_cave.male.hand_r"),
|
||||||
),
|
),
|
||||||
leg_l: (
|
leg_l: (
|
||||||
offset: (-3.0, -2.5, -4.5),
|
offset: (-3.0, -3.0, -4.0),
|
||||||
lateral: ("npc.troll.male.leg_l"),
|
lateral: ("npc.troll_cave.male.leg_l"),
|
||||||
),
|
),
|
||||||
leg_r: (
|
leg_r: (
|
||||||
offset: (-3.0, -2.5, -4.5),
|
offset: (-3.0, -3.0, -4.0),
|
||||||
lateral: ("npc.troll.male.leg_r"),
|
lateral: ("npc.troll_cave.male.leg_r"),
|
||||||
),
|
),
|
||||||
foot_l: (
|
foot_l: (
|
||||||
offset: (-3.0, -5.0, -2.5),
|
offset: (-3.0, -5.0, -2.5),
|
||||||
lateral: ("npc.troll.male.foot_l"),
|
lateral: ("npc.troll_cave.male.foot_l"),
|
||||||
),
|
),
|
||||||
foot_r: (
|
foot_r: (
|
||||||
offset: (-3.0, -5.0, -2.5),
|
offset: (-3.0, -5.0, -2.5),
|
||||||
lateral: ("npc.troll.male.foot_r"),
|
lateral: ("npc.troll_cave.male.foot_r"),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
(Troll, Female): (
|
(Cavetroll, Female): (
|
||||||
shoulder_l: (
|
shoulder_l: (
|
||||||
offset: (-5.0, -4.5, -11.0),
|
offset: (-5.5, -4.0, -8.0),
|
||||||
lateral: ("npc.troll.male.shoulder_l"),
|
lateral: ("npc.troll_cave.male.shoulder_l"),
|
||||||
),
|
),
|
||||||
shoulder_r: (
|
shoulder_r: (
|
||||||
offset: (-5.0, -4.5, -11.0),
|
offset: (-5.5, -4.0, -8.0),
|
||||||
lateral: ("npc.troll.male.shoulder_r"),
|
lateral: ("npc.troll_cave.male.shoulder_r"),
|
||||||
),
|
),
|
||||||
hand_l: (
|
hand_l: (
|
||||||
offset: (-3.5, -4.0, -12.0),
|
offset: (-4.5, -4.0, -14.0),
|
||||||
lateral: ("npc.troll.male.hand_l"),
|
lateral: ("npc.troll_cave.male.hand_l"),
|
||||||
),
|
),
|
||||||
hand_r: (
|
hand_r: (
|
||||||
offset: (-3.5, -4.0, -12.0),
|
offset: (-4.5, -4.0, -14.0),
|
||||||
lateral: ("npc.troll.male.hand_r"),
|
lateral: ("npc.troll_cave.male.hand_r"),
|
||||||
),
|
),
|
||||||
leg_l: (
|
leg_l: (
|
||||||
offset: (-3.0, -2.5, -4.5),
|
offset: (-3.0, -3.0, -4.0),
|
||||||
lateral: ("npc.troll.male.leg_l"),
|
lateral: ("npc.troll_cave.male.leg_l"),
|
||||||
),
|
),
|
||||||
leg_r: (
|
leg_r: (
|
||||||
offset: (-3.0, -2.5, -4.5),
|
offset: (-3.0, -3.0, -4.0),
|
||||||
lateral: ("npc.troll.male.leg_r"),
|
lateral: ("npc.troll_cave.male.leg_r"),
|
||||||
),
|
),
|
||||||
foot_l: (
|
foot_l: (
|
||||||
offset: (-3.0, -5.0, -2.5),
|
offset: (-3.0, -5.0, -2.5),
|
||||||
lateral: ("npc.troll.male.foot_l"),
|
lateral: ("npc.troll_cave.male.foot_l"),
|
||||||
),
|
),
|
||||||
foot_r: (
|
foot_r: (
|
||||||
offset: (-3.0, -5.0, -2.5),
|
offset: (-3.0, -5.0, -2.5),
|
||||||
lateral: ("npc.troll.male.foot_r"),
|
lateral: ("npc.troll_cave.male.foot_r"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(Mountaintroll, Male): (
|
||||||
|
shoulder_l: (
|
||||||
|
offset: (-6.5, -5.0, -8.5),
|
||||||
|
lateral: ("npc.troll_mountain.male.shoulder_l"),
|
||||||
|
),
|
||||||
|
shoulder_r: (
|
||||||
|
offset: (-6.5, -5.0, -8.5),
|
||||||
|
lateral: ("npc.troll_mountain.male.shoulder_r"),
|
||||||
|
),
|
||||||
|
hand_l: (
|
||||||
|
offset: (-5.0, -4.5, -14.0),
|
||||||
|
lateral: ("npc.troll_mountain.male.hand_l"),
|
||||||
|
),
|
||||||
|
hand_r: (
|
||||||
|
offset: (-5.0, -4.5, -14.0),
|
||||||
|
lateral: ("npc.troll_mountain.male.hand_r"),
|
||||||
|
),
|
||||||
|
leg_l: (
|
||||||
|
offset: (-3.0, -3.0, -4.0),
|
||||||
|
lateral: ("npc.troll_mountain.male.leg_l"),
|
||||||
|
),
|
||||||
|
leg_r: (
|
||||||
|
offset: (-3.0, -3.0, -4.0),
|
||||||
|
lateral: ("npc.troll_mountain.male.leg_r"),
|
||||||
|
),
|
||||||
|
foot_l: (
|
||||||
|
offset: (-3.0, -5.0, -2.5),
|
||||||
|
lateral: ("npc.troll_mountain.male.foot_l"),
|
||||||
|
),
|
||||||
|
foot_r: (
|
||||||
|
offset: (-3.0, -5.0, -2.5),
|
||||||
|
lateral: ("npc.troll_mountain.male.foot_r"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(Mountaintroll, Female): (
|
||||||
|
shoulder_l: (
|
||||||
|
offset: (-6.5, -5.0, -8.5),
|
||||||
|
lateral: ("npc.troll_mountain.male.shoulder_l"),
|
||||||
|
),
|
||||||
|
shoulder_r: (
|
||||||
|
offset: (-6.5, -5.0, -8.5),
|
||||||
|
lateral: ("npc.troll_mountain.male.shoulder_r"),
|
||||||
|
),
|
||||||
|
hand_l: (
|
||||||
|
offset: (-5.0, -4.5, -14.0),
|
||||||
|
lateral: ("npc.troll_mountain.male.hand_l"),
|
||||||
|
),
|
||||||
|
hand_r: (
|
||||||
|
offset: (-5.0, -4.5, -14.0),
|
||||||
|
lateral: ("npc.troll_mountain.male.hand_r"),
|
||||||
|
),
|
||||||
|
leg_l: (
|
||||||
|
offset: (-3.0, -3.0, -4.0),
|
||||||
|
lateral: ("npc.troll_mountain.male.leg_l"),
|
||||||
|
),
|
||||||
|
leg_r: (
|
||||||
|
offset: (-3.0, -3.0, -4.0),
|
||||||
|
lateral: ("npc.troll_mountain.male.leg_r"),
|
||||||
|
),
|
||||||
|
foot_l: (
|
||||||
|
offset: (-3.0, -5.0, -2.5),
|
||||||
|
lateral: ("npc.troll_mountain.male.foot_l"),
|
||||||
|
),
|
||||||
|
foot_r: (
|
||||||
|
offset: (-3.0, -5.0, -2.5),
|
||||||
|
lateral: ("npc.troll_mountain.male.foot_r"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(Swamptroll, Male): (
|
||||||
|
shoulder_l: (
|
||||||
|
offset: (-5.5, -5.0, -8.5),
|
||||||
|
lateral: ("npc.troll_swamp.male.shoulder_l"),
|
||||||
|
),
|
||||||
|
shoulder_r: (
|
||||||
|
offset: (-5.5, -5.0, -8.5),
|
||||||
|
lateral: ("npc.troll_swamp.male.shoulder_r"),
|
||||||
|
),
|
||||||
|
hand_l: (
|
||||||
|
offset: (-5.0, -4.0, -16.0),
|
||||||
|
lateral: ("npc.troll_swamp.male.hand_l"),
|
||||||
|
),
|
||||||
|
hand_r: (
|
||||||
|
offset: (-5.0, -4.0, -16.0),
|
||||||
|
lateral: ("npc.troll_swamp.male.hand_r"),
|
||||||
|
),
|
||||||
|
leg_l: (
|
||||||
|
offset: (-3.0, -3.0, -4.0),
|
||||||
|
lateral: ("npc.troll_swamp.male.leg_l"),
|
||||||
|
),
|
||||||
|
leg_r: (
|
||||||
|
offset: (-3.0, -3.0, -4.0),
|
||||||
|
lateral: ("npc.troll_swamp.male.leg_r"),
|
||||||
|
),
|
||||||
|
foot_l: (
|
||||||
|
offset: (-3.0, -5.0, -2.5),
|
||||||
|
lateral: ("npc.troll_swamp.male.foot_l"),
|
||||||
|
),
|
||||||
|
foot_r: (
|
||||||
|
offset: (-3.0, -5.0, -2.5),
|
||||||
|
lateral: ("npc.troll_swamp.male.foot_r"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(Swamptroll, Female): (
|
||||||
|
shoulder_l: (
|
||||||
|
offset: (-5.5, -5.0, -8.5),
|
||||||
|
lateral: ("npc.troll_swamp.male.shoulder_l"),
|
||||||
|
),
|
||||||
|
shoulder_r: (
|
||||||
|
offset: (-5.5, -5.0, -8.5),
|
||||||
|
lateral: ("npc.troll_swamp.male.shoulder_r"),
|
||||||
|
),
|
||||||
|
hand_l: (
|
||||||
|
offset: (-5.0, -4.0, -16.0),
|
||||||
|
lateral: ("npc.troll_swamp.male.hand_l"),
|
||||||
|
),
|
||||||
|
hand_r: (
|
||||||
|
offset: (-5.0, -4.0, -16.0),
|
||||||
|
lateral: ("npc.troll_swamp.male.hand_r"),
|
||||||
|
),
|
||||||
|
leg_l: (
|
||||||
|
offset: (-3.0, -3.0, -4.0),
|
||||||
|
lateral: ("npc.troll_swamp.male.leg_l"),
|
||||||
|
),
|
||||||
|
leg_r: (
|
||||||
|
offset: (-3.0, -3.0, -4.0),
|
||||||
|
lateral: ("npc.troll_swamp.male.leg_r"),
|
||||||
|
),
|
||||||
|
foot_l: (
|
||||||
|
offset: (-3.0, -5.0, -2.5),
|
||||||
|
lateral: ("npc.troll_swamp.male.foot_l"),
|
||||||
|
),
|
||||||
|
foot_r: (
|
||||||
|
offset: (-3.0, -5.0, -2.5),
|
||||||
|
lateral: ("npc.troll_swamp.male.foot_r"),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
(Dullahan, Male): (
|
(Dullahan, Male): (
|
||||||
|
@ -103,4 +103,56 @@
|
|||||||
central: ("npc.cockatrice.male.tail_rear"),
|
central: ("npc.cockatrice.male.tail_rear"),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
(Roc, Male): (
|
||||||
|
head: (
|
||||||
|
offset: (-4.5, -4.0, -6.0),
|
||||||
|
central: ("npc.roc.male.head"),
|
||||||
|
),
|
||||||
|
beak: (
|
||||||
|
offset: (-3.5, 0.0, -8.0),
|
||||||
|
central: ("npc.roc.male.beak"),
|
||||||
|
),
|
||||||
|
neck: (
|
||||||
|
offset: (-5.5, 0.0, -10.5),
|
||||||
|
central: ("npc.roc.male.neck"),
|
||||||
|
),
|
||||||
|
chest: (
|
||||||
|
offset: (-8.5, -12.5, -13.5),
|
||||||
|
central: ("npc.roc.male.chest"),
|
||||||
|
),
|
||||||
|
tail_front: (
|
||||||
|
offset: (-4.5, -9.0, -8.0),
|
||||||
|
central: ("npc.roc.male.tail_front"),
|
||||||
|
),
|
||||||
|
tail_rear: (
|
||||||
|
offset: (-9.5, -28.0, -6.0),
|
||||||
|
central: ("npc.roc.male.tail_rear"),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
(Roc, Female): (
|
||||||
|
head: (
|
||||||
|
offset: (-4.5, -4.0, -6.0),
|
||||||
|
central: ("npc.roc.male.head"),
|
||||||
|
),
|
||||||
|
beak: (
|
||||||
|
offset: (-3.5, 0.0, -8.0),
|
||||||
|
central: ("npc.roc.male.beak"),
|
||||||
|
),
|
||||||
|
neck: (
|
||||||
|
offset: (-5.5, 0.0, -10.5),
|
||||||
|
central: ("npc.roc.male.neck"),
|
||||||
|
),
|
||||||
|
chest: (
|
||||||
|
offset: (-8.5, -12.5, -13.5),
|
||||||
|
central: ("npc.roc.male.chest"),
|
||||||
|
),
|
||||||
|
tail_front: (
|
||||||
|
offset: (-4.5, -9.0, -8.0),
|
||||||
|
central: ("npc.roc.male.tail_front"),
|
||||||
|
),
|
||||||
|
tail_rear: (
|
||||||
|
offset: (-9.5, -28.0, -6.0),
|
||||||
|
central: ("npc.roc.male.tail_rear"),
|
||||||
|
)
|
||||||
|
),
|
||||||
})
|
})
|
||||||
|
@ -167,4 +167,88 @@
|
|||||||
lateral: ("npc.cockatrice.male.foot_r"),
|
lateral: ("npc.cockatrice.male.foot_r"),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
(Roc, Male): (
|
||||||
|
wing_in_l: (
|
||||||
|
offset: (-13.0, -14.0, -2.5),
|
||||||
|
lateral: ("npc.roc.male.wing_in_r"),
|
||||||
|
),
|
||||||
|
wing_in_r: (
|
||||||
|
offset: (0.0, -14.0, -2.5),
|
||||||
|
lateral: ("npc.roc.male.wing_in_r"),
|
||||||
|
),
|
||||||
|
wing_mid_l: (
|
||||||
|
offset: (-11.0, -18.0, -2.0),
|
||||||
|
lateral: ("npc.roc.male.wing_mid_r"),
|
||||||
|
),
|
||||||
|
wing_mid_r: (
|
||||||
|
offset: (0.0, -18.0, -2.0),
|
||||||
|
lateral: ("npc.roc.male.wing_mid_r"),
|
||||||
|
),
|
||||||
|
wing_out_l: (
|
||||||
|
offset: (-20.0, -18.0, -2.0),
|
||||||
|
lateral: ("npc.roc.male.wing_out_r"),
|
||||||
|
),
|
||||||
|
wing_out_r: (
|
||||||
|
offset: (0.0, -18.0, -2.0),
|
||||||
|
lateral: ("npc.roc.male.wing_out_r"),
|
||||||
|
),
|
||||||
|
leg_l: (
|
||||||
|
offset: (-4.0, -5.5, -7.5),
|
||||||
|
lateral: ("npc.roc.male.leg_r"),
|
||||||
|
),
|
||||||
|
leg_r: (
|
||||||
|
offset: (-4.0, -5.5, -7.5),
|
||||||
|
lateral: ("npc.roc.male.leg_r"),
|
||||||
|
),
|
||||||
|
foot_l: (
|
||||||
|
offset: (-5.5, -3.0, -12.0),
|
||||||
|
lateral: ("npc.roc.male.foot_r"),
|
||||||
|
),
|
||||||
|
foot_r: (
|
||||||
|
offset: (-5.5, -3.0, -12.0),
|
||||||
|
lateral: ("npc.roc.male.foot_r"),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
(Roc, Female): (
|
||||||
|
wing_in_l: (
|
||||||
|
offset: (-13.0, -14.0, -2.5),
|
||||||
|
lateral: ("npc.roc.male.wing_in_r"),
|
||||||
|
),
|
||||||
|
wing_in_r: (
|
||||||
|
offset: (0.0, -14.0, -2.5),
|
||||||
|
lateral: ("npc.roc.male.wing_in_r"),
|
||||||
|
),
|
||||||
|
wing_mid_l: (
|
||||||
|
offset: (-11.0, -18.0, -2.0),
|
||||||
|
lateral: ("npc.roc.male.wing_mid_r"),
|
||||||
|
),
|
||||||
|
wing_mid_r: (
|
||||||
|
offset: (0.0, -18.0, -2.0),
|
||||||
|
lateral: ("npc.roc.male.wing_mid_r"),
|
||||||
|
),
|
||||||
|
wing_out_l: (
|
||||||
|
offset: (-20.0, -18.0, -2.0),
|
||||||
|
lateral: ("npc.roc.male.wing_out_r"),
|
||||||
|
),
|
||||||
|
wing_out_r: (
|
||||||
|
offset: (0.0, -18.0, -2.0),
|
||||||
|
lateral: ("npc.roc.male.wing_out_r"),
|
||||||
|
),
|
||||||
|
leg_l: (
|
||||||
|
offset: (-4.0, -5.5, -7.5),
|
||||||
|
lateral: ("npc.roc.male.leg_r"),
|
||||||
|
),
|
||||||
|
leg_r: (
|
||||||
|
offset: (-4.0, -5.5, -7.5),
|
||||||
|
lateral: ("npc.roc.male.leg_r"),
|
||||||
|
),
|
||||||
|
foot_l: (
|
||||||
|
offset: (-5.5, -3.0, -12.0),
|
||||||
|
lateral: ("npc.roc.male.foot_r"),
|
||||||
|
),
|
||||||
|
foot_r: (
|
||||||
|
offset: (-5.5, -3.0, -12.0),
|
||||||
|
lateral: ("npc.roc.male.foot_r"),
|
||||||
|
)
|
||||||
|
),
|
||||||
})
|
})
|
BIN
assets/voxygen/voxel/npc/roc/male/beak.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/roc/male/beak.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/roc/male/chest.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/roc/male/chest.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/roc/male/foot_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/roc/male/foot_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/roc/male/head.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/roc/male/head.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/roc/male/leg_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/roc/male/leg_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/roc/male/neck.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/roc/male/neck.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/roc/male/tail_front.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/roc/male/tail_front.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/roc/male/tail_rear.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/roc/male/tail_rear.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/roc/male/wing_in_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/roc/male/wing_in_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/roc/male/wing_mid_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/roc/male/wing_mid_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/roc/male/wing_out_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/roc/male/wing_out_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll/male/foot_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/troll/male/foot_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll/male/foot_r.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/troll/male/foot_r.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll/male/hand_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/troll/male/hand_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll/male/hand_r.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/troll/male/hand_r.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll/male/head.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/troll/male/head.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll/male/jaw.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/troll/male/jaw.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll/male/leg_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/troll/male/leg_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll/male/leg_r.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/troll/male/leg_r.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll/male/shoulder_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/troll/male/shoulder_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll/male/shoulder_r.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/troll/male/shoulder_r.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll/male/torso_lower.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/troll/male/torso_lower.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll/male/torso_upper.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/troll/male/torso_upper.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_cave/male/foot_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_cave/male/foot_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_cave/male/foot_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_cave/male/foot_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_cave/male/hand_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_cave/male/hand_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_cave/male/hand_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_cave/male/hand_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_cave/male/head.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_cave/male/head.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_cave/male/jaw.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_cave/male/jaw.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_cave/male/leg_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_cave/male/leg_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_cave/male/leg_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_cave/male/leg_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_cave/male/shoulder_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_cave/male/shoulder_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_cave/male/shoulder_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_cave/male/shoulder_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_cave/male/torso_lower.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_cave/male/torso_lower.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_cave/male/torso_upper.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_cave/male/torso_upper.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_mountain/male/foot_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_mountain/male/foot_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_mountain/male/foot_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_mountain/male/foot_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_mountain/male/hand_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_mountain/male/hand_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_mountain/male/hand_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_mountain/male/hand_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_mountain/male/head.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_mountain/male/head.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_mountain/male/jaw.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_mountain/male/jaw.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_mountain/male/leg_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_mountain/male/leg_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_mountain/male/leg_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_mountain/male/leg_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_mountain/male/shoulder_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_mountain/male/shoulder_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_mountain/male/shoulder_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_mountain/male/shoulder_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_mountain/male/torso_lower.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_mountain/male/torso_lower.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_mountain/male/torso_upper.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_mountain/male/torso_upper.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_swamp/male/foot_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_swamp/male/foot_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_swamp/male/foot_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_swamp/male/foot_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_swamp/male/hand_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_swamp/male/hand_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_swamp/male/hand_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_swamp/male/hand_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_swamp/male/head.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_swamp/male/head.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_swamp/male/jaw.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_swamp/male/jaw.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_swamp/male/leg_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_swamp/male/leg_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_swamp/male/leg_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_swamp/male/leg_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_swamp/male/shoulder_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_swamp/male/shoulder_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_swamp/male/shoulder_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_swamp/male/shoulder_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_swamp/male/torso_lower.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_swamp/male/torso_lower.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll_swamp/male/torso_upper.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll_swamp/male/torso_upper.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -759,4 +759,14 @@
|
|||||||
central: ("armor.empty"),
|
central: ("armor.empty"),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
Tornado: (
|
||||||
|
bone0: (
|
||||||
|
offset: (0.0, 0.0, 0.0),
|
||||||
|
central: ("armor.empty"),
|
||||||
|
),
|
||||||
|
bone1: (
|
||||||
|
offset: (0.0, 0.0, 0.0),
|
||||||
|
central: ("armor.empty"),
|
||||||
|
)
|
||||||
|
),
|
||||||
})
|
})
|
||||||
|
@ -412,6 +412,7 @@ impl Body {
|
|||||||
Body::BirdLarge(body) => match body.species {
|
Body::BirdLarge(body) => match body.species {
|
||||||
bird_large::Species::Cockatrice => 4000,
|
bird_large::Species::Cockatrice => 4000,
|
||||||
bird_large::Species::Phoenix => 6000,
|
bird_large::Species::Phoenix => 6000,
|
||||||
|
bird_large::Species::Roc => 5000,
|
||||||
},
|
},
|
||||||
Body::Humanoid(_) => 750,
|
Body::Humanoid(_) => 750,
|
||||||
_ => 1000,
|
_ => 1000,
|
||||||
@ -477,7 +478,9 @@ impl Body {
|
|||||||
biped_large::Species::Ogre => 3200,
|
biped_large::Species::Ogre => 3200,
|
||||||
biped_large::Species::Cyclops => 3200,
|
biped_large::Species::Cyclops => 3200,
|
||||||
biped_large::Species::Wendigo => 2800,
|
biped_large::Species::Wendigo => 2800,
|
||||||
biped_large::Species::Troll => 2400,
|
biped_large::Species::Cavetroll => 2400,
|
||||||
|
biped_large::Species::Mountaintroll => 2400,
|
||||||
|
biped_large::Species::Swamptroll => 2400,
|
||||||
biped_large::Species::Dullahan => 3000,
|
biped_large::Species::Dullahan => 3000,
|
||||||
biped_large::Species::Mindflayer => 12500,
|
biped_large::Species::Mindflayer => 12500,
|
||||||
biped_large::Species::Tidalwarrior => 16000,
|
biped_large::Species::Tidalwarrior => 16000,
|
||||||
@ -594,7 +597,9 @@ impl Body {
|
|||||||
biped_large::Species::Ogre => 70,
|
biped_large::Species::Ogre => 70,
|
||||||
biped_large::Species::Cyclops => 80,
|
biped_large::Species::Cyclops => 80,
|
||||||
biped_large::Species::Wendigo => 80,
|
biped_large::Species::Wendigo => 80,
|
||||||
biped_large::Species::Troll => 60,
|
biped_large::Species::Cavetroll => 60,
|
||||||
|
biped_large::Species::Mountaintroll => 60,
|
||||||
|
biped_large::Species::Swamptroll => 60,
|
||||||
biped_large::Species::Dullahan => 120,
|
biped_large::Species::Dullahan => 120,
|
||||||
biped_large::Species::Yeti => 0,
|
biped_large::Species::Yeti => 0,
|
||||||
biped_large::Species::Harvester => 80,
|
biped_large::Species::Harvester => 80,
|
||||||
|
@ -37,19 +37,21 @@ make_case_elim!(
|
|||||||
Ogre = 0,
|
Ogre = 0,
|
||||||
Cyclops = 1,
|
Cyclops = 1,
|
||||||
Wendigo = 2,
|
Wendigo = 2,
|
||||||
Troll = 3,
|
Cavetroll = 3,
|
||||||
Dullahan = 4,
|
Mountaintroll = 4,
|
||||||
Werewolf = 5,
|
Swamptroll = 5,
|
||||||
Occultsaurok = 6,
|
Dullahan = 6,
|
||||||
Mightysaurok = 7,
|
Werewolf = 7,
|
||||||
Slysaurok = 8,
|
Occultsaurok = 8,
|
||||||
Mindflayer = 9,
|
Mightysaurok = 9,
|
||||||
Minotaur = 10,
|
Slysaurok = 10,
|
||||||
Tidalwarrior = 11,
|
Mindflayer = 11,
|
||||||
Yeti = 12,
|
Minotaur = 12,
|
||||||
Harvester = 13,
|
Tidalwarrior = 13,
|
||||||
Blueoni = 14,
|
Yeti = 14,
|
||||||
Redoni = 15,
|
Harvester = 15,
|
||||||
|
Blueoni = 16,
|
||||||
|
Redoni = 17,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -61,7 +63,9 @@ pub struct AllSpecies<SpeciesMeta> {
|
|||||||
pub ogre: SpeciesMeta,
|
pub ogre: SpeciesMeta,
|
||||||
pub cyclops: SpeciesMeta,
|
pub cyclops: SpeciesMeta,
|
||||||
pub wendigo: SpeciesMeta,
|
pub wendigo: SpeciesMeta,
|
||||||
pub troll: SpeciesMeta,
|
pub troll_cave: SpeciesMeta,
|
||||||
|
pub troll_mountain: SpeciesMeta,
|
||||||
|
pub troll_swamp: SpeciesMeta,
|
||||||
pub dullahan: SpeciesMeta,
|
pub dullahan: SpeciesMeta,
|
||||||
pub werewolf: SpeciesMeta,
|
pub werewolf: SpeciesMeta,
|
||||||
pub saurok_occult: SpeciesMeta,
|
pub saurok_occult: SpeciesMeta,
|
||||||
@ -85,7 +89,9 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
|
|||||||
Species::Ogre => &self.ogre,
|
Species::Ogre => &self.ogre,
|
||||||
Species::Cyclops => &self.cyclops,
|
Species::Cyclops => &self.cyclops,
|
||||||
Species::Wendigo => &self.wendigo,
|
Species::Wendigo => &self.wendigo,
|
||||||
Species::Troll => &self.troll,
|
Species::Cavetroll => &self.troll_cave,
|
||||||
|
Species::Mountaintroll => &self.troll_mountain,
|
||||||
|
Species::Swamptroll => &self.troll_swamp,
|
||||||
Species::Dullahan => &self.dullahan,
|
Species::Dullahan => &self.dullahan,
|
||||||
Species::Werewolf => &self.werewolf,
|
Species::Werewolf => &self.werewolf,
|
||||||
Species::Occultsaurok => &self.saurok_occult,
|
Species::Occultsaurok => &self.saurok_occult,
|
||||||
@ -102,11 +108,13 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub const ALL_SPECIES: [Species; 16] = [
|
pub const ALL_SPECIES: [Species; 18] = [
|
||||||
Species::Ogre,
|
Species::Ogre,
|
||||||
Species::Cyclops,
|
Species::Cyclops,
|
||||||
Species::Wendigo,
|
Species::Wendigo,
|
||||||
Species::Troll,
|
Species::Cavetroll,
|
||||||
|
Species::Mountaintroll,
|
||||||
|
Species::Swamptroll,
|
||||||
Species::Dullahan,
|
Species::Dullahan,
|
||||||
Species::Werewolf,
|
Species::Werewolf,
|
||||||
Species::Occultsaurok,
|
Species::Occultsaurok,
|
||||||
|
@ -36,6 +36,7 @@ make_case_elim!(
|
|||||||
pub enum Species {
|
pub enum Species {
|
||||||
Phoenix = 0,
|
Phoenix = 0,
|
||||||
Cockatrice = 1,
|
Cockatrice = 1,
|
||||||
|
Roc = 2,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -46,6 +47,7 @@ make_case_elim!(
|
|||||||
pub struct AllSpecies<SpeciesMeta> {
|
pub struct AllSpecies<SpeciesMeta> {
|
||||||
pub phoenix: SpeciesMeta,
|
pub phoenix: SpeciesMeta,
|
||||||
pub cockatrice: SpeciesMeta,
|
pub cockatrice: SpeciesMeta,
|
||||||
|
pub roc: SpeciesMeta,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
|
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
|
||||||
@ -56,11 +58,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
|
|||||||
match index {
|
match index {
|
||||||
Species::Phoenix => &self.phoenix,
|
Species::Phoenix => &self.phoenix,
|
||||||
Species::Cockatrice => &self.cockatrice,
|
Species::Cockatrice => &self.cockatrice,
|
||||||
|
Species::Roc => &self.roc,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub const ALL_SPECIES: [Species; 2] = [Species::Phoenix, Species::Cockatrice];
|
pub const ALL_SPECIES: [Species; 3] = [Species::Phoenix, Species::Cockatrice, Species::Roc];
|
||||||
|
|
||||||
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {
|
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {
|
||||||
type IntoIter = std::iter::Copied<std::slice::Iter<'static, Self::Item>>;
|
type IntoIter = std::iter::Copied<std::slice::Iter<'static, Self::Item>>;
|
||||||
|
@ -88,6 +88,7 @@ make_case_elim!(
|
|||||||
BirdMeat = 73,
|
BirdMeat = 73,
|
||||||
FishMeat = 74,
|
FishMeat = 74,
|
||||||
SmallMeat = 75,
|
SmallMeat = 75,
|
||||||
|
Tornado = 76,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -98,7 +99,7 @@ impl Body {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub const ALL_OBJECTS: [Body; 76] = [
|
pub const ALL_OBJECTS: [Body; 77] = [
|
||||||
Body::Arrow,
|
Body::Arrow,
|
||||||
Body::Bomb,
|
Body::Bomb,
|
||||||
Body::Scarecrow,
|
Body::Scarecrow,
|
||||||
@ -175,6 +176,7 @@ pub const ALL_OBJECTS: [Body; 76] = [
|
|||||||
Body::BirdMeat,
|
Body::BirdMeat,
|
||||||
Body::FishMeat,
|
Body::FishMeat,
|
||||||
Body::SmallMeat,
|
Body::SmallMeat,
|
||||||
|
Body::Tornado,
|
||||||
];
|
];
|
||||||
|
|
||||||
impl From<Body> for super::Body {
|
impl From<Body> for super::Body {
|
||||||
@ -260,6 +262,7 @@ impl Body {
|
|||||||
Body::BirdMeat => "bird_meat",
|
Body::BirdMeat => "bird_meat",
|
||||||
Body::FishMeat => "fish_meat",
|
Body::FishMeat => "fish_meat",
|
||||||
Body::SmallMeat => "small_meat",
|
Body::SmallMeat => "small_meat",
|
||||||
|
Body::Tornado => "tornado",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -357,6 +360,7 @@ impl Body {
|
|||||||
Body::FishMeat => 10.0,
|
Body::FishMeat => 10.0,
|
||||||
Body::BirdMeat => 10.0,
|
Body::BirdMeat => 10.0,
|
||||||
Body::SmallMeat => 10.0,
|
Body::SmallMeat => 10.0,
|
||||||
|
Body::Tornado => 50.0,
|
||||||
};
|
};
|
||||||
|
|
||||||
Mass(m)
|
Mass(m)
|
||||||
|
@ -253,7 +253,13 @@ fn default_main_tool(body: &Body) -> Item {
|
|||||||
(biped_large::Species::Ogre, biped_large::BodyType::Female) => Some(
|
(biped_large::Species::Ogre, biped_large::BodyType::Female) => Some(
|
||||||
Item::new_from_asset_expect("common.items.npc_weapons.staff.ogre_staff"),
|
Item::new_from_asset_expect("common.items.npc_weapons.staff.ogre_staff"),
|
||||||
),
|
),
|
||||||
(biped_large::Species::Troll, _) => Some(Item::new_from_asset_expect(
|
(biped_large::Species::Cavetroll, _) => Some(Item::new_from_asset_expect(
|
||||||
|
"common.items.npc_weapons.hammer.troll_hammer",
|
||||||
|
)),
|
||||||
|
(biped_large::Species::Mountaintroll, _) => Some(Item::new_from_asset_expect(
|
||||||
|
"common.items.npc_weapons.hammer.troll_hammer",
|
||||||
|
)),
|
||||||
|
(biped_large::Species::Swamptroll, _) => Some(Item::new_from_asset_expect(
|
||||||
"common.items.npc_weapons.hammer.troll_hammer",
|
"common.items.npc_weapons.hammer.troll_hammer",
|
||||||
)),
|
)),
|
||||||
(biped_large::Species::Wendigo, _) => Some(Item::new_from_asset_expect(
|
(biped_large::Species::Wendigo, _) => Some(Item::new_from_asset_expect(
|
||||||
@ -320,6 +326,9 @@ fn default_main_tool(body: &Body) -> Item {
|
|||||||
(bird_large::Species::Phoenix, _) => Some(Item::new_from_asset_expect(
|
(bird_large::Species::Phoenix, _) => Some(Item::new_from_asset_expect(
|
||||||
"common.items.npc_weapons.unique.birdlargefire",
|
"common.items.npc_weapons.unique.birdlargefire",
|
||||||
)),
|
)),
|
||||||
|
(bird_large::Species::Roc, _) => Some(Item::new_from_asset_expect(
|
||||||
|
"common.items.npc_weapons.unique.birdlargebasic",
|
||||||
|
)),
|
||||||
},
|
},
|
||||||
_ => None,
|
_ => None,
|
||||||
};
|
};
|
||||||
|
@ -431,7 +431,11 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc
|
|||||||
biped_large::Species::Wendigo => {
|
biped_large::Species::Wendigo => {
|
||||||
"common.loot_tables.creature.biped_large.wendigo"
|
"common.loot_tables.creature.biped_large.wendigo"
|
||||||
},
|
},
|
||||||
biped_large::Species::Troll => "common.loot_tables.creature.biped_large.troll",
|
biped_large::Species::Cavetroll
|
||||||
|
| biped_large::Species::Mountaintroll
|
||||||
|
| biped_large::Species::Swamptroll => {
|
||||||
|
"common.loot_tables.creature.biped_large.troll"
|
||||||
|
},
|
||||||
biped_large::Species::Occultsaurok
|
biped_large::Species::Occultsaurok
|
||||||
| biped_large::Species::Mightysaurok
|
| biped_large::Species::Mightysaurok
|
||||||
| biped_large::Species::Slysaurok => {
|
| biped_large::Species::Slysaurok => {
|
||||||
|
@ -116,10 +116,12 @@ pub enum Tactic {
|
|||||||
Mindflayer,
|
Mindflayer,
|
||||||
BirdLargeBreathe,
|
BirdLargeBreathe,
|
||||||
BirdLargeFire,
|
BirdLargeFire,
|
||||||
|
BirdLargeBasic,
|
||||||
Minotaur,
|
Minotaur,
|
||||||
ClayGolem,
|
ClayGolem,
|
||||||
TidalWarrior,
|
TidalWarrior,
|
||||||
Yeti,
|
Yeti,
|
||||||
|
Tornado,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(SystemData)]
|
#[derive(SystemData)]
|
||||||
@ -1605,6 +1607,7 @@ impl<'a> AgentData<'a> {
|
|||||||
"Haniwa Sentry" => Tactic::RotatingTurret,
|
"Haniwa Sentry" => Tactic::RotatingTurret,
|
||||||
"Bird Large Breathe" => Tactic::BirdLargeBreathe,
|
"Bird Large Breathe" => Tactic::BirdLargeBreathe,
|
||||||
"Bird Large Fire" => Tactic::BirdLargeFire,
|
"Bird Large Fire" => Tactic::BirdLargeFire,
|
||||||
|
"Bird Large Basic" => Tactic::BirdLargeBasic,
|
||||||
"Mindflayer" => Tactic::Mindflayer,
|
"Mindflayer" => Tactic::Mindflayer,
|
||||||
"Minotaur" => Tactic::Minotaur,
|
"Minotaur" => Tactic::Minotaur,
|
||||||
"Clay Golem" => Tactic::ClayGolem,
|
"Clay Golem" => Tactic::ClayGolem,
|
||||||
@ -1833,6 +1836,7 @@ impl<'a> AgentData<'a> {
|
|||||||
&tgt_data,
|
&tgt_data,
|
||||||
&read_data,
|
&read_data,
|
||||||
),
|
),
|
||||||
|
Tactic::Tornado => self.handle_tornado_attack(controller),
|
||||||
Tactic::Mindflayer => self.handle_mindflayer_attack(
|
Tactic::Mindflayer => self.handle_mindflayer_attack(
|
||||||
agent,
|
agent,
|
||||||
controller,
|
controller,
|
||||||
@ -1855,6 +1859,13 @@ impl<'a> AgentData<'a> {
|
|||||||
&tgt_data,
|
&tgt_data,
|
||||||
&read_data,
|
&read_data,
|
||||||
),
|
),
|
||||||
|
Tactic::BirdLargeBasic => self.handle_birdlarge_basic_attack(
|
||||||
|
agent,
|
||||||
|
controller,
|
||||||
|
&attack_data,
|
||||||
|
&tgt_data,
|
||||||
|
&read_data,
|
||||||
|
),
|
||||||
Tactic::Minotaur => {
|
Tactic::Minotaur => {
|
||||||
self.handle_minotaur_attack(agent, controller, &attack_data, &tgt_data, &read_data)
|
self.handle_minotaur_attack(agent, controller, &attack_data, &tgt_data, &read_data)
|
||||||
},
|
},
|
||||||
@ -2906,6 +2917,12 @@ impl<'a> AgentData<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn handle_tornado_attack(&self, controller: &mut Controller) {
|
||||||
|
controller
|
||||||
|
.actions
|
||||||
|
.push(ControlAction::basic_input(InputKind::Primary));
|
||||||
|
}
|
||||||
|
|
||||||
fn handle_mindflayer_attack(
|
fn handle_mindflayer_attack(
|
||||||
&self,
|
&self,
|
||||||
agent: &mut Agent,
|
agent: &mut Agent,
|
||||||
@ -3261,6 +3278,29 @@ impl<'a> AgentData<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn handle_birdlarge_basic_attack(
|
||||||
|
&self,
|
||||||
|
agent: &mut Agent,
|
||||||
|
controller: &mut Controller,
|
||||||
|
attack_data: &AttackData,
|
||||||
|
tgt_data: &TargetData,
|
||||||
|
read_data: &ReadData,
|
||||||
|
) {
|
||||||
|
if can_see_tgt(
|
||||||
|
&*read_data.terrain,
|
||||||
|
self.pos,
|
||||||
|
tgt_data.pos,
|
||||||
|
attack_data.dist_sqrd,
|
||||||
|
) && attack_data.angle < 15.0
|
||||||
|
{
|
||||||
|
controller
|
||||||
|
.actions
|
||||||
|
.push(ControlAction::basic_input(InputKind::Primary));
|
||||||
|
} else {
|
||||||
|
agent.target = None;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn handle_minotaur_attack(
|
fn handle_minotaur_attack(
|
||||||
&self,
|
&self,
|
||||||
agent: &mut Agent,
|
agent: &mut Agent,
|
||||||
|
@ -210,7 +210,9 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Ogre, Female) => (1.0, 7.5),
|
(Ogre, Female) => (1.0, 7.5),
|
||||||
(Cyclops, _) => (9.5, 7.5),
|
(Cyclops, _) => (9.5, 7.5),
|
||||||
(Wendigo, _) => (3.0, 7.5),
|
(Wendigo, _) => (3.0, 7.5),
|
||||||
(Troll, _) => (6.0, 10.0),
|
(Cavetroll, _) => (9.0, 7.0),
|
||||||
|
(Mountaintroll, _) => (13.0, 2.0),
|
||||||
|
(Swamptroll, _) => (11.0, 2.0),
|
||||||
(Dullahan, _) => (3.0, 6.0),
|
(Dullahan, _) => (3.0, 6.0),
|
||||||
(Werewolf, _) => (11.5, 1.0),
|
(Werewolf, _) => (11.5, 1.0),
|
||||||
(Occultsaurok, _) => (6.0, 3.5),
|
(Occultsaurok, _) => (6.0, 3.5),
|
||||||
@ -228,7 +230,9 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Ogre, _) => (0.0, 0.0),
|
(Ogre, _) => (0.0, 0.0),
|
||||||
(Cyclops, _) => (-4.5, -6.0),
|
(Cyclops, _) => (-4.5, -6.0),
|
||||||
(Wendigo, _) => (0.0, 0.0),
|
(Wendigo, _) => (0.0, 0.0),
|
||||||
(Troll, _) => (2.0, -4.0),
|
(Cavetroll, _) => (0.0, -4.0),
|
||||||
|
(Mountaintroll, _) => (-1.0, -8.0),
|
||||||
|
(Swamptroll, _) => (-4.0, -4.5),
|
||||||
(Dullahan, _) => (0.0, 0.0),
|
(Dullahan, _) => (0.0, 0.0),
|
||||||
(Werewolf, _) => (5.0, -4.5),
|
(Werewolf, _) => (5.0, -4.5),
|
||||||
(Occultsaurok, _) => (1.0, -2.5),
|
(Occultsaurok, _) => (1.0, -2.5),
|
||||||
@ -247,7 +251,9 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Ogre, Female) => (0.0, 28.0),
|
(Ogre, Female) => (0.0, 28.0),
|
||||||
(Cyclops, _) => (-2.0, 31.0),
|
(Cyclops, _) => (-2.0, 31.0),
|
||||||
(Wendigo, _) => (-1.0, 29.0),
|
(Wendigo, _) => (-1.0, 29.0),
|
||||||
(Troll, _) => (-1.0, 26.5),
|
(Cavetroll, _) => (-1.0, 26.5),
|
||||||
|
(Mountaintroll, _) => (-1.0, 30.5),
|
||||||
|
(Swamptroll, _) => (-1.0, 28.5),
|
||||||
(Dullahan, _) => (0.0, 29.0),
|
(Dullahan, _) => (0.0, 29.0),
|
||||||
(Werewolf, _) => (3.0, 26.0),
|
(Werewolf, _) => (3.0, 26.0),
|
||||||
(Occultsaurok, _) => (3.0, 24.0),
|
(Occultsaurok, _) => (3.0, 24.0),
|
||||||
@ -266,7 +272,9 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Ogre, Female) => (0.0, -6.0),
|
(Ogre, Female) => (0.0, -6.0),
|
||||||
(Cyclops, _) => (1.0, -8.5),
|
(Cyclops, _) => (1.0, -8.5),
|
||||||
(Wendigo, _) => (-1.5, -6.0),
|
(Wendigo, _) => (-1.5, -6.0),
|
||||||
(Troll, _) => (1.0, -10.5),
|
(Cavetroll, _) => (1.0, -9.5),
|
||||||
|
(Mountaintroll, _) => (1.0, -13.5),
|
||||||
|
(Swamptroll, _) => (1.5, -11.5),
|
||||||
(Dullahan, _) => (0.0, -6.5),
|
(Dullahan, _) => (0.0, -6.5),
|
||||||
(Werewolf, _) => (1.0, -10.0),
|
(Werewolf, _) => (1.0, -10.0),
|
||||||
(Occultsaurok, _) => (0.0, -5.0),
|
(Occultsaurok, _) => (0.0, -5.0),
|
||||||
@ -293,7 +301,9 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Ogre, Female) => (8.0, 0.5, 2.0),
|
(Ogre, Female) => (8.0, 0.5, 2.0),
|
||||||
(Cyclops, _) => (15.0, 3.5, 1.5),
|
(Cyclops, _) => (15.0, 3.5, 1.5),
|
||||||
(Wendigo, _) => (9.0, 0.5, 2.5),
|
(Wendigo, _) => (9.0, 0.5, 2.5),
|
||||||
(Troll, _) => (11.0, 0.5, 4.5),
|
(Cavetroll, _) => (13.0, 0.0, 0.5),
|
||||||
|
(Mountaintroll, _) => (14.0, -0.5, -2.0),
|
||||||
|
(Swamptroll, _) => (14.0, 0.0, 0.0),
|
||||||
(Dullahan, _) => (14.0, 0.5, 3.5),
|
(Dullahan, _) => (14.0, 0.5, 3.5),
|
||||||
(Werewolf, _) => (9.0, 4.0, -3.0),
|
(Werewolf, _) => (9.0, 4.0, -3.0),
|
||||||
(Occultsaurok, _) => (7.5, 1.0, 1.5),
|
(Occultsaurok, _) => (7.5, 1.0, 1.5),
|
||||||
@ -312,7 +322,9 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Ogre, Female) => (9.0, 0.5, -4.5),
|
(Ogre, Female) => (9.0, 0.5, -4.5),
|
||||||
(Cyclops, _) => (14.0, 2.0, -5.5),
|
(Cyclops, _) => (14.0, 2.0, -5.5),
|
||||||
(Wendigo, _) => (12.0, 0.0, -3.5),
|
(Wendigo, _) => (12.0, 0.0, -3.5),
|
||||||
(Troll, _) => (11.5, 0.0, -5.5),
|
(Cavetroll, _) => (13.5, 1.0, -6.0),
|
||||||
|
(Mountaintroll, _) => (13.5, 0.0, -10.0),
|
||||||
|
(Swamptroll, _) => (17.0, 1.0, -8.0),
|
||||||
(Dullahan, _) => (14.5, 0.0, -2.5),
|
(Dullahan, _) => (14.5, 0.0, -2.5),
|
||||||
(Werewolf, _) => (10.0, 2.5, -11.0),
|
(Werewolf, _) => (10.0, 2.5, -11.0),
|
||||||
(Occultsaurok, _) => (8.0, 1.5, -5.5),
|
(Occultsaurok, _) => (8.0, 1.5, -5.5),
|
||||||
@ -331,7 +343,9 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Ogre, Female) => (0.0, 0.0, -2.0),
|
(Ogre, Female) => (0.0, 0.0, -2.0),
|
||||||
(Cyclops, _) => (4.5, 1.0, -8.5),
|
(Cyclops, _) => (4.5, 1.0, -8.5),
|
||||||
(Wendigo, _) => (2.0, 2.0, -2.5),
|
(Wendigo, _) => (2.0, 2.0, -2.5),
|
||||||
(Troll, _) => (5.0, 0.0, -6.0),
|
(Cavetroll, _) => (4.5, -1.0, -7.5),
|
||||||
|
(Mountaintroll, _) => (3.5, 0.0, -7.5),
|
||||||
|
(Swamptroll, _) => (4.5, -0.5, -7.5),
|
||||||
(Dullahan, _) => (0.0, 0.0, -5.0),
|
(Dullahan, _) => (0.0, 0.0, -5.0),
|
||||||
(Werewolf, _) => (4.5, 1.0, -5.0),
|
(Werewolf, _) => (4.5, 1.0, -5.0),
|
||||||
(Occultsaurok, _) => (3.0, 0.5, -4.0),
|
(Occultsaurok, _) => (3.0, 0.5, -4.0),
|
||||||
@ -350,7 +364,9 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Ogre, Female) => (4.0, 0.5, -13.5),
|
(Ogre, Female) => (4.0, 0.5, -13.5),
|
||||||
(Cyclops, _) => (6.0, 3.5, -15.5),
|
(Cyclops, _) => (6.0, 3.5, -15.5),
|
||||||
(Wendigo, _) => (5.0, 2.5, -17.0),
|
(Wendigo, _) => (5.0, 2.5, -17.0),
|
||||||
(Troll, _) => (6.0, 1.5, -13.0),
|
(Cavetroll, _) => (5.5, 0.0, -14.0),
|
||||||
|
(Mountaintroll, _) => (4.5, 1.0, -14.0),
|
||||||
|
(Swamptroll, _) => (5.5, 0.0, -14.0),
|
||||||
(Dullahan, _) => (4.0, 2.5, -14.0),
|
(Dullahan, _) => (4.0, 2.5, -14.0),
|
||||||
(Werewolf, _) => (5.5, 3.0, -6.5),
|
(Werewolf, _) => (5.5, 3.0, -6.5),
|
||||||
(Occultsaurok, _) => (3.5, 3.5, -10.0),
|
(Occultsaurok, _) => (3.5, 3.5, -10.0),
|
||||||
@ -369,7 +385,9 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Ogre, Female) => 1.12,
|
(Ogre, Female) => 1.12,
|
||||||
(Cyclops, _) => 1.28,
|
(Cyclops, _) => 1.28,
|
||||||
(Wendigo, _) => 1.1,
|
(Wendigo, _) => 1.1,
|
||||||
(Troll, _) => 1.1,
|
(Cavetroll, _) => 1.1,
|
||||||
|
(Mountaintroll, _) => 1.1,
|
||||||
|
(Swamptroll, _) => 1.1,
|
||||||
(Dullahan, _) => 1.12,
|
(Dullahan, _) => 1.12,
|
||||||
(Werewolf, _) => 1.0,
|
(Werewolf, _) => 1.0,
|
||||||
(Occultsaurok, _) => 1.0,
|
(Occultsaurok, _) => 1.0,
|
||||||
@ -387,7 +405,9 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Ogre, Male) => 0.9,
|
(Ogre, Male) => 0.9,
|
||||||
(Ogre, Female) => 0.9,
|
(Ogre, Female) => 0.9,
|
||||||
(Cyclops, _) => 0.8,
|
(Cyclops, _) => 0.8,
|
||||||
(Troll, _) => 0.9,
|
(Cavetroll, _) => 0.9,
|
||||||
|
(Mountaintroll, _) => 0.9,
|
||||||
|
(Swamptroll, _) => 0.9,
|
||||||
(Dullahan, _) => 0.8,
|
(Dullahan, _) => 0.8,
|
||||||
(Minotaur, _) => 0.8,
|
(Minotaur, _) => 0.8,
|
||||||
_ => 1.0,
|
_ => 1.0,
|
||||||
@ -397,7 +417,9 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Ogre, Female) => (8.0, 0.0),
|
(Ogre, Female) => (8.0, 0.0),
|
||||||
(Cyclops, _) => (12.0, 0.0),
|
(Cyclops, _) => (12.0, 0.0),
|
||||||
(Wendigo, _) => (15.0, 0.0),
|
(Wendigo, _) => (15.0, 0.0),
|
||||||
(Troll, _) => (12.0, 0.0),
|
(Cavetroll, _) => (13.0, 1.5),
|
||||||
|
(Mountaintroll, _) => (13.0, 1.5),
|
||||||
|
(Swamptroll, _) => (13.0, 1.5),
|
||||||
(Dullahan, _) => (15.0, 0.0),
|
(Dullahan, _) => (15.0, 0.0),
|
||||||
(Werewolf, _) => (13.0, 0.0),
|
(Werewolf, _) => (13.0, 0.0),
|
||||||
(Occultsaurok, _) => (10.0, 0.0),
|
(Occultsaurok, _) => (10.0, 0.0),
|
||||||
@ -428,29 +450,14 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
},
|
},
|
||||||
hhl: match (body.species, body.body_type) {
|
hhl: match (body.species, body.body_type) {
|
||||||
(Ogre, Male) => (-9.0, -10.0, 23.0, 1.57, -0.57, 0.0),
|
(Ogre, Male) => (-9.0, -10.0, 23.0, 1.57, -0.57, 0.0),
|
||||||
(Cyclops, _) => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0),
|
|
||||||
(Troll, _) => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0),
|
|
||||||
(Yeti, _) => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0),
|
|
||||||
(Blueoni, _) => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0),
|
|
||||||
(Redoni, _) => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0),
|
|
||||||
_ => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0),
|
_ => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0),
|
||||||
},
|
},
|
||||||
hhr: match (body.species, body.body_type) {
|
hhr: match (body.species, body.body_type) {
|
||||||
(Ogre, Male) => (-5.0, -13.0, 0.0, 1.57, -0.57, 0.0),
|
(Ogre, Male) => (-5.0, -13.0, 0.0, 1.57, -0.57, 0.0),
|
||||||
(Cyclops, _) => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0),
|
|
||||||
(Troll, _) => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0),
|
|
||||||
(Yeti, _) => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0),
|
|
||||||
(Blueoni, _) => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0),
|
|
||||||
(Redoni, _) => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0),
|
|
||||||
_ => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0),
|
_ => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0),
|
||||||
},
|
},
|
||||||
hc: match (body.species, body.body_type) {
|
hc: match (body.species, body.body_type) {
|
||||||
(Ogre, Male) => (11.5, 9.0, -13.0, -0.57, -1.57, 1.0),
|
(Ogre, Male) => (11.5, 9.0, -13.0, -0.57, -1.57, 1.0),
|
||||||
(Cyclops, _) => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0),
|
|
||||||
(Troll, _) => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0),
|
|
||||||
(Yeti, _) => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0),
|
|
||||||
(Blueoni, _) => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0),
|
|
||||||
(Redoni, _) => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0),
|
|
||||||
_ => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0),
|
_ => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0),
|
||||||
},
|
},
|
||||||
sthl: match (body.species, body.body_type) {
|
sthl: match (body.species, body.body_type) {
|
||||||
|
@ -149,54 +149,67 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
chest: match (body.species, body.body_type) {
|
chest: match (body.species, body.body_type) {
|
||||||
(Phoenix, _) => (2.5, 16.0),
|
(Phoenix, _) => (2.5, 16.0),
|
||||||
(Cockatrice, _) => (2.5, 16.0),
|
(Cockatrice, _) => (2.5, 16.0),
|
||||||
|
(Roc, _) => (2.5, 27.5),
|
||||||
},
|
},
|
||||||
neck: match (body.species, body.body_type) {
|
neck: match (body.species, body.body_type) {
|
||||||
(Phoenix, _) => (2.5, -5.5),
|
(Phoenix, _) => (2.5, -5.5),
|
||||||
(Cockatrice, _) => (5.0, -1.5),
|
(Cockatrice, _) => (5.0, -1.5),
|
||||||
|
(Roc, _) => (9.5, -1.5),
|
||||||
},
|
},
|
||||||
head: match (body.species, body.body_type) {
|
head: match (body.species, body.body_type) {
|
||||||
(Phoenix, _) => (6.0, 12.0),
|
(Phoenix, _) => (6.0, 12.0),
|
||||||
(Cockatrice, _) => (8.0, 4.5),
|
(Cockatrice, _) => (8.0, 4.5),
|
||||||
|
(Roc, _) => (17.0, -3.5),
|
||||||
},
|
},
|
||||||
beak: match (body.species, body.body_type) {
|
beak: match (body.species, body.body_type) {
|
||||||
(Phoenix, _) => (5.0, 3.0),
|
(Phoenix, _) => (5.0, 3.0),
|
||||||
(Cockatrice, _) => (2.0, -3.0),
|
(Cockatrice, _) => (2.0, -3.0),
|
||||||
|
(Roc, _) => (0.0, -3.0),
|
||||||
},
|
},
|
||||||
tail_front: match (body.species, body.body_type) {
|
tail_front: match (body.species, body.body_type) {
|
||||||
(Phoenix, _) => (-9.5, -1.0),
|
(Phoenix, _) => (-9.5, -1.0),
|
||||||
(Cockatrice, _) => (-5.0, -2.5),
|
(Cockatrice, _) => (-5.0, -2.5),
|
||||||
|
(Roc, _) => (-7.5, -3.5),
|
||||||
},
|
},
|
||||||
tail_rear: match (body.species, body.body_type) {
|
tail_rear: match (body.species, body.body_type) {
|
||||||
(Phoenix, _) => (-11.0, 0.0),
|
(Phoenix, _) => (-11.0, 0.0),
|
||||||
(Cockatrice, _) => (-8.0, -3.0),
|
(Cockatrice, _) => (-8.0, -3.0),
|
||||||
|
(Roc, _) => (-8.0, -3.0),
|
||||||
},
|
},
|
||||||
wing_in: match (body.species, body.body_type) {
|
wing_in: match (body.species, body.body_type) {
|
||||||
(Phoenix, _) => (3.0, 2.5, 2.0),
|
(Phoenix, _) => (3.0, 2.5, 2.0),
|
||||||
(Cockatrice, _) => (3.5, 7.0, 3.5),
|
(Cockatrice, _) => (3.5, 7.0, 3.5),
|
||||||
|
(Roc, _) => (5.5, 7.5, -1.0),
|
||||||
},
|
},
|
||||||
wing_mid: match (body.species, body.body_type) {
|
wing_mid: match (body.species, body.body_type) {
|
||||||
(Phoenix, _) => (10.0, 1.0, 0.0),
|
(Phoenix, _) => (10.0, 1.0, 0.0),
|
||||||
(Cockatrice, _) => (6.0, 0.0, 0.0),
|
(Cockatrice, _) => (6.0, 0.0, 0.0),
|
||||||
|
(Roc, _) => (12.0, 1.0, -0.5),
|
||||||
},
|
},
|
||||||
wing_out: match (body.species, body.body_type) {
|
wing_out: match (body.species, body.body_type) {
|
||||||
(Phoenix, _) => (7.0, 2.0, 1.5),
|
(Phoenix, _) => (7.0, 2.0, 1.5),
|
||||||
(Cockatrice, _) => (4.0, -1.0, 1.0),
|
(Cockatrice, _) => (4.0, -1.0, 1.0),
|
||||||
|
(Roc, _) => (10.0, -2.0, 0.0),
|
||||||
},
|
},
|
||||||
leg: match (body.species, body.body_type) {
|
leg: match (body.species, body.body_type) {
|
||||||
(Phoenix, _) => (4.0, 1.5, 12.0),
|
(Phoenix, _) => (4.0, 1.5, 12.0),
|
||||||
(Cockatrice, _) => (3.5, 2.5, 13.0),
|
(Cockatrice, _) => (3.5, 2.5, 13.0),
|
||||||
|
(Roc, _) => (5.5, -1.5, 17.5),
|
||||||
},
|
},
|
||||||
foot: match (body.species, body.body_type) {
|
foot: match (body.species, body.body_type) {
|
||||||
(Phoenix, _) => (0.5, -0.5, -2.5),
|
(Phoenix, _) => (0.5, -0.5, -2.5),
|
||||||
(Cockatrice, _) => (0.5, -3.0, -3.0),
|
(Cockatrice, _) => (0.5, -3.0, -3.0),
|
||||||
|
(Roc, _) => (2.5, -2.5, -5.5),
|
||||||
},
|
},
|
||||||
scaler: match (body.species, body.body_type) {
|
scaler: match (body.species, body.body_type) {
|
||||||
(Phoenix, _) => (1.0),
|
(Phoenix, _) => (1.0),
|
||||||
(Cockatrice, _) => (1.0),
|
(Cockatrice, _) => (1.0),
|
||||||
|
(Roc, _) => (1.0),
|
||||||
},
|
},
|
||||||
feed: match (body.species, body.body_type) {
|
feed: match (body.species, body.body_type) {
|
||||||
(Phoenix, _) => (-0.65),
|
(Phoenix, _) => (-0.65),
|
||||||
(Cockatrice, _) => (-0.5),
|
(Cockatrice, _) => (-0.5),
|
||||||
|
(Roc, _) => (-0.65),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -83,6 +83,7 @@ pub enum ParticleMode {
|
|||||||
Water = 30,
|
Water = 30,
|
||||||
IceSpikes = 31,
|
IceSpikes = 31,
|
||||||
Drip = 32,
|
Drip = 32,
|
||||||
|
Tornado = 33,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ParticleMode {
|
impl ParticleMode {
|
||||||
|
@ -323,6 +323,9 @@ impl ParticleMgr {
|
|||||||
Body::Object(object::Body::BoltNature) => {
|
Body::Object(object::Body::BoltNature) => {
|
||||||
self.maintain_boltnature_particles(scene_data, pos, vel)
|
self.maintain_boltnature_particles(scene_data, pos, vel)
|
||||||
},
|
},
|
||||||
|
Body::Object(object::Body::Tornado) => {
|
||||||
|
self.maintain_tornado_particles(scene_data, pos, vel)
|
||||||
|
},
|
||||||
Body::Object(
|
Body::Object(
|
||||||
object::Body::Bomb
|
object::Body::Bomb
|
||||||
| object::Body::FireworkBlue
|
| object::Body::FireworkBlue
|
||||||
@ -498,6 +501,26 @@ impl ParticleMgr {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn maintain_tornado_particles(&mut self, scene_data: &SceneData, pos: &Pos, vel: Option<&Vel>) {
|
||||||
|
let time = scene_data.state.get_time();
|
||||||
|
let dt = scene_data.state.get_delta_time();
|
||||||
|
let mut rng = thread_rng();
|
||||||
|
|
||||||
|
// nature
|
||||||
|
self.particles.resize_with(
|
||||||
|
self.particles.len() + usize::from(self.scheduler.heartbeats(Duration::from_millis(5))),
|
||||||
|
|| {
|
||||||
|
Particle::new(
|
||||||
|
Duration::from_millis(1000),
|
||||||
|
time,
|
||||||
|
ParticleMode::Tornado,
|
||||||
|
pos.0.map(|e| e + rng.gen_range(-0.25..0.25))
|
||||||
|
+ vel.map_or(Vec3::zero(), |v| -v.0 * dt * rng.gen::<f32>()),
|
||||||
|
)
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
fn maintain_bomb_particles(&mut self, scene_data: &SceneData, pos: &Pos, vel: Option<&Vel>) {
|
fn maintain_bomb_particles(&mut self, scene_data: &SceneData, pos: &Pos, vel: Option<&Vel>) {
|
||||||
span!(
|
span!(
|
||||||
_guard,
|
_guard,
|
||||||
|
@ -489,7 +489,7 @@ pub fn apply_caves_supplement<'a>(
|
|||||||
0 => comp::biped_large::Species::Blueoni,
|
0 => comp::biped_large::Species::Blueoni,
|
||||||
_ => comp::biped_large::Species::Redoni,
|
_ => comp::biped_large::Species::Redoni,
|
||||||
},
|
},
|
||||||
_ => comp::biped_large::Species::Troll,
|
_ => comp::biped_large::Species::Cavetroll,
|
||||||
};
|
};
|
||||||
comp::biped_large::Body::random_with(dynamic_rng, &species)
|
comp::biped_large::Body::random_with(dynamic_rng, &species)
|
||||||
.into()
|
.into()
|
||||||
|
@ -454,9 +454,8 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
|||||||
0 => {
|
0 => {
|
||||||
biped_large::Body::random_with(rng, &biped_large::Species::Ogre).into()
|
biped_large::Body::random_with(rng, &biped_large::Species::Ogre).into()
|
||||||
},
|
},
|
||||||
1 => {
|
1 => biped_large::Body::random_with(rng, &biped_large::Species::Swamptroll)
|
||||||
biped_large::Body::random_with(rng, &biped_large::Species::Troll).into()
|
.into(),
|
||||||
},
|
|
||||||
_ => biped_large::Body::random_with(rng, &biped_large::Species::Cyclops)
|
_ => biped_large::Body::random_with(rng, &biped_large::Species::Cyclops)
|
||||||
.into(),
|
.into(),
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user