fun: animules
This commit is contained in:
parent
8e4bfaf6b7
commit
219ee71c2c
|
@ -1,5 +1,27 @@
|
|||
import data from '../../../public/assets/dev/homestead.json';
|
||||
|
||||
function animal() {
|
||||
return {
|
||||
Alive: {health: 100},
|
||||
Behaving: {},
|
||||
Collider: {},
|
||||
Controlled: {},
|
||||
Direction: {},
|
||||
Emitter: {},
|
||||
Forces: {},
|
||||
Interlocutor: {},
|
||||
Position: {},
|
||||
Speed: {speed: 20},
|
||||
Sprite: {
|
||||
animation: 'moving:down',
|
||||
},
|
||||
Tags: {},
|
||||
Ticking: {},
|
||||
VisibleAabb: {},
|
||||
Vulnerable: {},
|
||||
};
|
||||
}
|
||||
|
||||
export default async function createHomestead(id) {
|
||||
const area = {x: 100, y: 60};
|
||||
const entities = [];
|
||||
|
@ -138,72 +160,162 @@ export default async function createHomestead(id) {
|
|||
Ticking: {},
|
||||
VisibleAabb: {},
|
||||
});
|
||||
const kitty = {
|
||||
Alive: {health: 100},
|
||||
Behaving: {
|
||||
routines: {
|
||||
initial: '/assets/kitty/initial.js',
|
||||
},
|
||||
},
|
||||
Collider: {
|
||||
bodies: [
|
||||
{
|
||||
points: [
|
||||
{x: -3.5, y: -3.5},
|
||||
{x: 3.5, y: -3.5},
|
||||
{x: 3.5, y: 3.5},
|
||||
{x: -3.5, y: 3.5},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
Controlled: {},
|
||||
Direction: {},
|
||||
Emitter: {},
|
||||
Forces: {},
|
||||
Interactive: {
|
||||
interacting: 1,
|
||||
interactScript: `
|
||||
const lines = [
|
||||
'mrowwr',
|
||||
'p<shake>rrr</shake>o<wave>wwwww</wave>',
|
||||
'mew<rate frequency={0.5}> </rate>mew!',
|
||||
'me<wave>wwwww</wave>',
|
||||
'\\\\*pu<shake>rrrrr</shake>\\\\*',
|
||||
];
|
||||
const line = lines[Math.floor(Math.random() * lines.length)];
|
||||
subject.Interlocutor.dialogue({
|
||||
body: line,
|
||||
linger: 2,
|
||||
offset: {x: 0, y: -16},
|
||||
origin: 'track',
|
||||
position: 'track',
|
||||
})
|
||||
`,
|
||||
},
|
||||
Interlocutor: {},
|
||||
Position: {x: 250, y: 250},
|
||||
Speed: {speed: 20},
|
||||
Sprite: {
|
||||
anchorX: 0.5,
|
||||
anchorY: 0.7,
|
||||
animation: 'moving:down',
|
||||
source: '/assets/kitty/kitty.json',
|
||||
speed: 0.115,
|
||||
},
|
||||
Tags: {tags: ['kittan']},
|
||||
Ticking: {},
|
||||
VisibleAabb: {},
|
||||
Vulnerable: {},
|
||||
};
|
||||
const animalJson = animal();
|
||||
for (let i = 0; i < 50; ++i) {
|
||||
entities.push({
|
||||
...kitty,
|
||||
...animalJson,
|
||||
Behaving: {
|
||||
routines: {
|
||||
initial: '/assets/kitty/initial.js',
|
||||
},
|
||||
},
|
||||
Collider: {
|
||||
bodies: [
|
||||
{
|
||||
points: [
|
||||
{x: -3.5, y: -3.5},
|
||||
{x: 3.5, y: -3.5},
|
||||
{x: 3.5, y: 3.5},
|
||||
{x: -3.5, y: 3.5},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
Interactive: {
|
||||
interacting: 1,
|
||||
interactScript: `
|
||||
const lines = [
|
||||
'mrowwr',
|
||||
'p<shake>rrr</shake>o<wave>wwwww</wave>',
|
||||
'mew<rate frequency={0.5}> </rate>mew!',
|
||||
'me<wave>wwwww</wave>',
|
||||
'\\\\*pu<shake>rrrrr</shake>\\\\*',
|
||||
];
|
||||
const line = lines[Math.floor(Math.random() * lines.length)];
|
||||
subject.Interlocutor.dialogue({
|
||||
body: line,
|
||||
linger: 2,
|
||||
offset: {x: 0, y: -16},
|
||||
origin: 'track',
|
||||
position: 'track',
|
||||
})
|
||||
`,
|
||||
},
|
||||
Position: {
|
||||
...kitty.Position,
|
||||
x: 250 + (Math.random() - 0.5) * 300,
|
||||
y: 250 + (Math.random() - 0.5) * 300,
|
||||
},
|
||||
Sprite: {
|
||||
...animalJson.Sprite,
|
||||
anchorX: 0.5,
|
||||
anchorY: 0.7,
|
||||
source: '/assets/kitty/kitty.json',
|
||||
speed: 0.115,
|
||||
},
|
||||
Tags: {tags: ['kittan']},
|
||||
});
|
||||
}
|
||||
for (let i = 0; i < 50; ++i) {
|
||||
entities.push({
|
||||
...animalJson,
|
||||
Behaving: {
|
||||
routines: {
|
||||
initial: '/assets/farm/animals/cow-adult/initial.js',
|
||||
},
|
||||
},
|
||||
Collider: {
|
||||
bodies: [
|
||||
{
|
||||
points: [
|
||||
{x: -3.5, y: -3.5},
|
||||
{x: 3.5, y: -3.5},
|
||||
{x: 3.5, y: 3.5},
|
||||
{x: -3.5, y: 3.5},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
Interactive: {
|
||||
interacting: 1,
|
||||
interactScript: `
|
||||
const lines = [
|
||||
'sno<shake>rr</shake>t',
|
||||
'm<wave>ooooooooooo</wave>',
|
||||
];
|
||||
const line = lines[Math.floor(Math.random() * lines.length)];
|
||||
subject.Interlocutor.dialogue({
|
||||
body: line,
|
||||
linger: 2,
|
||||
offset: {x: 0, y: -16},
|
||||
origin: 'track',
|
||||
position: 'track',
|
||||
})
|
||||
`,
|
||||
},
|
||||
Position: {
|
||||
x: 350 + (Math.random() - 0.5) * 300,
|
||||
y: 350 + (Math.random() - 0.5) * 300,
|
||||
},
|
||||
Sprite: {
|
||||
...animalJson.Sprite,
|
||||
anchorX: 0.5,
|
||||
anchorY: 0.8,
|
||||
source: '/assets/farm/animals/cow-adult/cow-adult.json',
|
||||
speed: 0.25,
|
||||
},
|
||||
});
|
||||
}
|
||||
for (let i = 0; i < 50; ++i) {
|
||||
entities.push({
|
||||
...animalJson,
|
||||
Behaving: {
|
||||
routines: {
|
||||
initial: '/assets/farm/animals/goat-white/initial.js',
|
||||
},
|
||||
},
|
||||
Collider: {
|
||||
bodies: [
|
||||
{
|
||||
points: [
|
||||
{x: -7, y: -3.5},
|
||||
{x: 7, y: -3.5},
|
||||
{x: 7, y: 3.5},
|
||||
{x: -7, y: 3.5},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
Interactive: {
|
||||
interacting: 1,
|
||||
interactScript: `
|
||||
const lines = [
|
||||
'mrowwr',
|
||||
'p<shake>rrr</shake>o<wave>wwwww</wave>',
|
||||
'mew<rate frequency={0.5}> </rate>mew!',
|
||||
'me<wave>wwwww</wave>',
|
||||
'\\\\*pu<shake>rrrrr</shake>\\\\*',
|
||||
];
|
||||
const line = lines[Math.floor(Math.random() * lines.length)];
|
||||
subject.Interlocutor.dialogue({
|
||||
body: line,
|
||||
linger: 2,
|
||||
offset: {x: 0, y: -16},
|
||||
origin: 'track',
|
||||
position: 'track',
|
||||
})
|
||||
`,
|
||||
},
|
||||
Position: {
|
||||
x: 350 + (Math.random() - 0.5) * 300,
|
||||
y: 150 + (Math.random() - 0.5) * 300,
|
||||
},
|
||||
Sprite: {
|
||||
...animalJson.Sprite,
|
||||
anchorX: 0.5,
|
||||
anchorY: 0.8,
|
||||
source: '/assets/farm/animals/goat-white/goat-white.json',
|
||||
speed: 0.25,
|
||||
},
|
||||
});
|
||||
}
|
||||
entities.push({
|
||||
|
|
Loading…
Reference in New Issue
Block a user