mirror of
https://github.com/AleziaKurdis/overte.git
synced 2025-04-16 16:59:18 +02:00
Added a monster shooting gallery
This commit is contained in:
parent
656d2f5c61
commit
0f4e531be6
3 changed files with 97 additions and 21 deletions
|
@ -16,7 +16,7 @@
|
|||
Script.include("../../libraries/utils.js");
|
||||
Script.include("../../libraries/constants.js");
|
||||
|
||||
var GUN_FORCE = 10;
|
||||
var GUN_FORCE =20;
|
||||
|
||||
|
||||
var gameName = "Kill All The Rats!"
|
||||
|
|
|
@ -40,4 +40,4 @@ function cleanup() {
|
|||
Entities.deleteEntity(pistol);
|
||||
}
|
||||
|
||||
Script.scriptEnding.connect(cleanup);
|
||||
// Script.scriptEnding.connect(cleanup);
|
|
@ -1,41 +1,117 @@
|
|||
Script.include('pistol/pistolSpawner.js');
|
||||
Script.include("../libraries/utils.js");
|
||||
|
||||
var shootingRangeURL = "file:///C:/Users/Eric/Desktop/shootingRange/shootingRange.fbx?v1"
|
||||
var floorURL = "file:///C:/Users/Eric/Desktop/shootingRange/shootingRangeFloor.fbx?v1"
|
||||
|
||||
var rangePosition = Vec3.sum(MyAvatar.position, {x: 0, y: 0, z: -30})
|
||||
var shootingRangeURL = "https://s3.amazonaws.com/hifi-public/eric/models/shootingRange/shootingRange.fbx";
|
||||
var floorURL = "https://s3.amazonaws.com/hifi-public/eric/models/shootingRange/shootingRange.fbx";
|
||||
MyAvatar.bodyYaw = 0;
|
||||
var rangePosition = Vec3.sum(MyAvatar.position, {
|
||||
x: 0,
|
||||
y: 0,
|
||||
z: -30
|
||||
});
|
||||
var rangeDimensions = {
|
||||
x: 44,
|
||||
y: 29,
|
||||
z: 96
|
||||
}
|
||||
var shootingRange = Entities.addEntity({
|
||||
type: 'Model',
|
||||
modelURL: shootingRangeURL,
|
||||
position: rangePosition,
|
||||
dimensions: {x: 44, y: 29, z: 96}
|
||||
dimensions: rangeDimensions
|
||||
});
|
||||
|
||||
|
||||
var floorPosition = Vec3.subtract(rangePosition, {x: 0, y: 2, z: 0});
|
||||
var floorPosition = Vec3.subtract(rangePosition, {
|
||||
x: 0,
|
||||
y: 2,
|
||||
z: 0
|
||||
});
|
||||
var shootingRangeFloor = Entities.addEntity({
|
||||
type: "Model",
|
||||
modelURL: floorURL,
|
||||
shapeType: 'box',
|
||||
position: floorPosition,
|
||||
dimensions: {x: 93, y: 1, z: 93}
|
||||
dimensions: {
|
||||
x: 93,
|
||||
y: 1,
|
||||
z: 93
|
||||
}
|
||||
})
|
||||
|
||||
var monsterPosition = Vec3.sum(MyAvatar.position, Vec3.multiply(3, Quat.getFront(Camera.getOrientation())));
|
||||
var monsterURL = "file:///C:/Users/Eric/Desktop/shootingRange/monster2.fbx?v7"
|
||||
var monster = Entities.addEntity({
|
||||
type: "Model",
|
||||
modelURL: monsterURL,
|
||||
position: monsterPosition,
|
||||
dimensions: {x: 1.5, y: 1.6, z: 0.07},
|
||||
collisionsWillMove: true,
|
||||
shapeType: 'box'
|
||||
});
|
||||
var monsters = [];
|
||||
var numMonsters = 10;
|
||||
var monsterURLS = ["https://s3.amazonaws.com/hifi-public/eric/models/shootingRange/monster1.fbx", "https://s3.amazonaws.com/hifi-public/eric/models/shootingRange/monster2.fbx"]
|
||||
initMonsters();
|
||||
|
||||
function initMonsters() {
|
||||
for (var i = 0; i < numMonsters; i++) {
|
||||
|
||||
var index = randInt(0, monsterURLS.length);
|
||||
var monsterURL = monsterURLS[index]
|
||||
var monsterPosition = Vec3.sum(rangePosition, {
|
||||
x: -rangeDimensions.x / 2 - i * randFloat(5, 10),
|
||||
y: 0,
|
||||
z: randFloat(-10, 10)
|
||||
});
|
||||
var monster = Entities.addEntity({
|
||||
type: "Model",
|
||||
modelURL: monsterURL,
|
||||
position: monsterPosition,
|
||||
dimensions: {
|
||||
x: 1.5,
|
||||
y: 1.6,
|
||||
z: 0.07
|
||||
},
|
||||
collisionsWillMove: true,
|
||||
shapeType: 'box',
|
||||
velocity: {
|
||||
x: randFloat(1, 3),
|
||||
y: 0,
|
||||
z: 0
|
||||
},
|
||||
damping: 0
|
||||
});
|
||||
|
||||
monsters.push(monster);
|
||||
}
|
||||
}
|
||||
|
||||
function checkMonsters() {
|
||||
|
||||
// check monsters to see if they've gone out of bounds, if so, set them back to starting point
|
||||
monsters.forEach(function(monster) {
|
||||
var position = Entities.getEntityProperties(monster, "position").position;
|
||||
if (position.x > rangePosition.x + rangeDimensions.x / 2 ||
|
||||
position.z < rangePosition.z - rangeDimensions.z / 2 ||
|
||||
position.y < rangePosition.y - rangeDimensions.y / 2 || position.y > rangePosition.y + rangeDimensions.y / 2) {
|
||||
var monsterPosition = Vec3.sum(rangePosition, {
|
||||
x: -rangeDimensions.x / 2 - randFloat(5, 10),
|
||||
y: 0,
|
||||
z: randFloat(-10, 10)
|
||||
});
|
||||
Entities.editEntity(monster, {
|
||||
position: monsterPosition,
|
||||
velocity: {
|
||||
x: randFloat(1, 3),
|
||||
y: 0,
|
||||
z: 0
|
||||
},
|
||||
angularVelocity: {x: 0, y: 0, z:0},
|
||||
rotation: Quat.fromPitchYawRollDegrees(0, 0, 0),
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var checkMonsterInterval = Script.setInterval(checkMonsters, 1000);
|
||||
|
||||
function cleanup() {
|
||||
Script.clearInterval(checkMonsterInterval);
|
||||
Entities.deleteEntity(shootingRange);
|
||||
Entities.deleteEntity(shootingRangeFloor);
|
||||
Entities.deleteEntity(monster);
|
||||
monsters.forEach(function(monster) {
|
||||
Entities.deleteEntity(monster);
|
||||
});
|
||||
}
|
||||
|
||||
Script.scriptEnding.connect(cleanup);
|
Loading…
Reference in a new issue