Skip to content

Commit

Permalink
Merge pull request #32 from PerryRylance/Constant-tweaks
Browse files Browse the repository at this point in the history
Constant tweaks
  • Loading branch information
PerryRylance committed Dec 16, 2020
2 parents bdb51b5 + 85946cb commit ec98496
Show file tree
Hide file tree
Showing 11 changed files with 113 additions and 74 deletions.
2 changes: 1 addition & 1 deletion dist/assets.json
@@ -1 +1 @@
{"":{"textures":{"5203-v5.jpg":"/textures/5203-v5.jpg","7971-red.jpg":"/textures/7971-red.jpg","7971.jpg":"/textures/7971.jpg","ships":{"13777.jpg":"/textures/ships/13777.jpg","5815.jpg":"/textures/ships/5815.jpg"},"planet":{"damage":{"10287.jpg":"/textures/planet/damage/10287.jpg","10575.jpg":"/textures/planet/damage/10575.jpg","11954-v1.jpg":"/textures/planet/damage/11954-v1.jpg","11954-v2.jpg":"/textures/planet/damage/11954-v2.jpg","3241.jpg":"/textures/planet/damage/3241.jpg","6147.jpg":"/textures/planet/damage/6147.jpg"},"surface":{"11382-v7.jpg":"/textures/planet/surface/11382-v7.jpg","11382.jpg":"/textures/planet/surface/11382.jpg","11623-v2.jpg":"/textures/planet/surface/11623-v2.jpg","11623-v4.jpg":"/textures/planet/surface/11623-v4.jpg","11623-v5.jpg":"/textures/planet/surface/11623-v5.jpg","11623-v6.jpg":"/textures/planet/surface/11623-v6.jpg","11623.jpg":"/textures/planet/surface/11623.jpg","13306-v4.jpg":"/textures/planet/surface/13306-v4.jpg","2977.jpg":"/textures/planet/surface/2977.jpg","3215-v5.jpg":"/textures/planet/surface/3215-v5.jpg","3215.jpg":"/textures/planet/surface/3215.jpg","3982-v3.jpg":"/textures/planet/surface/3982-v3.jpg","3982-v4.jpg":"/textures/planet/surface/3982-v4.jpg","3982.jpg":"/textures/planet/surface/3982.jpg","7491-v5.jpg":"/textures/planet/surface/7491-v5.jpg","7491.jpg":"/textures/planet/surface/7491.jpg","7492-v5.jpg":"/textures/planet/surface/7492-v5.jpg","7492.jpg":"/textures/planet/surface/7492.jpg","795.jpg":"/textures/planet/surface/795.jpg","849-v7.jpg":"/textures/planet/surface/849-v7.jpg","849.jpg":"/textures/planet/surface/849.jpg","9701.jpg":"/textures/planet/surface/9701.jpg","9703-v1.jpg":"/textures/planet/surface/9703-v1.jpg","9703-v5.jpg":"/textures/planet/surface/9703-v5.jpg"}}},"sounds":{"334268__projectsu012__launching-1.wav":"/sounds/334268__projectsu012__launching-1.wav","458669__jorgerosa__missile-launch.mp3":"/sounds/458669__jorgerosa__missile-launch.mp3","521377__jarusca__rocket-launch.mp3":"/sounds/521377__jarusca__rocket-launch.mp3","Balloon Popping-SoundBible.com-1247261379.mp3":"/sounds/Balloon Popping-SoundBible.com-1247261379.mp3","shocks":{"shock-1.mp3":"/sounds/shocks/shock-1.mp3","shock-2.mp3":"/sounds/shocks/shock-2.mp3","shock-3.mp3":"/sounds/shocks/shock-3.mp3"},"explosions":{"small":{"268550__cydon__bang-004.mp3":"/sounds/explosions/small/268550__cydon__bang-004.mp3","268551__cydon__bang-003.mp3":"/sounds/explosions/small/268551__cydon__bang-003.mp3","268553__cydon__bang-001.mp3":"/sounds/explosions/small/268553__cydon__bang-001.mp3"},"large":{"268554__cydon__explosion-004.mp3":"/sounds/explosions/large/268554__cydon__explosion-004.mp3","268555__cydon__explosion-003.mp3":"/sounds/explosions/large/268555__cydon__explosion-003.mp3","268556__cydon__explosion-002.mp3":"/sounds/explosions/large/268556__cydon__explosion-002.mp3","268557__cydon__explosion-001.mp3":"/sounds/explosions/large/268557__cydon__explosion-001.mp3"}}},"sprites":{"explosion.png":"/sprites/explosion.png","smokeparticle.png":"/sprites/smokeparticle.png","compass":{"outer.png":"/sprites/compass/outer.png","inner":{"compass-inner0.png":"/sprites/compass/inner/compass-inner0.png","compass-inner1.png":"/sprites/compass/inner/compass-inner1.png","compass-inner2.png":"/sprites/compass/inner/compass-inner2.png"}},"stars":{"plain.png":"/sprites/stars/plain.png","star-2.png":"/sprites/stars/star-2.png"},"lightning":{"Layer 10.png":"/sprites/lightning/Layer 10.png","Layer 11.png":"/sprites/lightning/Layer 11.png","Layer 12.png":"/sprites/lightning/Layer 12.png","Layer 2.png":"/sprites/lightning/Layer 2.png","Layer 3.png":"/sprites/lightning/Layer 3.png","Layer 4.png":"/sprites/lightning/Layer 4.png","Layer 5.png":"/sprites/lightning/Layer 5.png","Layer 6.png":"/sprites/lightning/Layer 6.png","Layer 7.png":"/sprites/lightning/Layer 7.png","Layer 8.png":"/sprites/lightning/Layer 8.png","Layer 9.png":"/sprites/lightning/Layer 9.png"}},"models":{"ships":{"Low_poly_UFO.mtl":"/models/ships/Low_poly_UFO.mtl","Low_poly_UFO.obj":"/models/ships/Low_poly_UFO.obj","Pyramid.mtl":"/models/ships/Pyramid.mtl","Pyramid.obj":"/models/ships/Pyramid.obj","Triton.mtl":"/models/ships/Triton.mtl","Triton.obj":"/models/ships/Triton.obj","ufo_diffuse.png":"/models/ships/ufo_diffuse.png","ufo_diffuse2.png":"/models/ships/ufo_diffuse2.png","ufo_diffuse2_glow.png":"/models/ships/ufo_diffuse2_glow.png","ufo_diffuse_glow.png":"/models/ships/ufo_diffuse_glow.png","ufo_normal.png":"/models/ships/ufo_normal.png","ufo_spec.png":"/models/ships/ufo_spec.png"}}}}
{"":{"sprites":{"explosion.png":"/sprites/explosion.png","smokeparticle.png":"/sprites/smokeparticle.png","compass":{"outer.png":"/sprites/compass/outer.png","inner":{"compass-inner0.png":"/sprites/compass/inner/compass-inner0.png","compass-inner1.png":"/sprites/compass/inner/compass-inner1.png","compass-inner2.png":"/sprites/compass/inner/compass-inner2.png"}},"stars":{"plain.png":"/sprites/stars/plain.png","star-2.png":"/sprites/stars/star-2.png"},"lightning":{"Layer 10.png":"/sprites/lightning/Layer 10.png","Layer 11.png":"/sprites/lightning/Layer 11.png","Layer 12.png":"/sprites/lightning/Layer 12.png","Layer 2.png":"/sprites/lightning/Layer 2.png","Layer 3.png":"/sprites/lightning/Layer 3.png","Layer 4.png":"/sprites/lightning/Layer 4.png","Layer 5.png":"/sprites/lightning/Layer 5.png","Layer 6.png":"/sprites/lightning/Layer 6.png","Layer 7.png":"/sprites/lightning/Layer 7.png","Layer 8.png":"/sprites/lightning/Layer 8.png","Layer 9.png":"/sprites/lightning/Layer 9.png"}},"textures":{"5203-v5.jpg":"/textures/5203-v5.jpg","7971-red.jpg":"/textures/7971-red.jpg","7971.jpg":"/textures/7971.jpg","ships":{"13777.jpg":"/textures/ships/13777.jpg","5815.jpg":"/textures/ships/5815.jpg"},"planet":{"damage":{"10287.jpg":"/textures/planet/damage/10287.jpg","10575.jpg":"/textures/planet/damage/10575.jpg","11954-v1.jpg":"/textures/planet/damage/11954-v1.jpg","11954-v2.jpg":"/textures/planet/damage/11954-v2.jpg","3241.jpg":"/textures/planet/damage/3241.jpg","6147.jpg":"/textures/planet/damage/6147.jpg"},"surface":{"11382-v7.jpg":"/textures/planet/surface/11382-v7.jpg","11382.jpg":"/textures/planet/surface/11382.jpg","11623-v2.jpg":"/textures/planet/surface/11623-v2.jpg","11623-v4.jpg":"/textures/planet/surface/11623-v4.jpg","11623-v5.jpg":"/textures/planet/surface/11623-v5.jpg","11623-v6.jpg":"/textures/planet/surface/11623-v6.jpg","11623.jpg":"/textures/planet/surface/11623.jpg","13306-v4.jpg":"/textures/planet/surface/13306-v4.jpg","2977.jpg":"/textures/planet/surface/2977.jpg","3215-v5.jpg":"/textures/planet/surface/3215-v5.jpg","3215.jpg":"/textures/planet/surface/3215.jpg","3982-v3.jpg":"/textures/planet/surface/3982-v3.jpg","3982-v4.jpg":"/textures/planet/surface/3982-v4.jpg","3982.jpg":"/textures/planet/surface/3982.jpg","7491-v5.jpg":"/textures/planet/surface/7491-v5.jpg","7491.jpg":"/textures/planet/surface/7491.jpg","7492-v5.jpg":"/textures/planet/surface/7492-v5.jpg","7492.jpg":"/textures/planet/surface/7492.jpg","795.jpg":"/textures/planet/surface/795.jpg","849-v7.jpg":"/textures/planet/surface/849-v7.jpg","849.jpg":"/textures/planet/surface/849.jpg","9701.jpg":"/textures/planet/surface/9701.jpg","9703-v1.jpg":"/textures/planet/surface/9703-v1.jpg","9703-v5.jpg":"/textures/planet/surface/9703-v5.jpg"}}},"sounds":{"334268__projectsu012__launching-1.wav":"/sounds/334268__projectsu012__launching-1.wav","458669__jorgerosa__missile-launch.mp3":"/sounds/458669__jorgerosa__missile-launch.mp3","521377__jarusca__rocket-launch.mp3":"/sounds/521377__jarusca__rocket-launch.mp3","Balloon Popping-SoundBible.com-1247261379.mp3":"/sounds/Balloon Popping-SoundBible.com-1247261379.mp3","shocks":{"shock-1.mp3":"/sounds/shocks/shock-1.mp3","shock-2.mp3":"/sounds/shocks/shock-2.mp3","shock-3.mp3":"/sounds/shocks/shock-3.mp3"},"explosions":{"small":{"268550__cydon__bang-004.mp3":"/sounds/explosions/small/268550__cydon__bang-004.mp3","268551__cydon__bang-003.mp3":"/sounds/explosions/small/268551__cydon__bang-003.mp3","268553__cydon__bang-001.mp3":"/sounds/explosions/small/268553__cydon__bang-001.mp3"},"large":{"268554__cydon__explosion-004.mp3":"/sounds/explosions/large/268554__cydon__explosion-004.mp3","268555__cydon__explosion-003.mp3":"/sounds/explosions/large/268555__cydon__explosion-003.mp3","268556__cydon__explosion-002.mp3":"/sounds/explosions/large/268556__cydon__explosion-002.mp3","268557__cydon__explosion-001.mp3":"/sounds/explosions/large/268557__cydon__explosion-001.mp3"}}},"models":{"ships":{"Low_poly_UFO.mtl":"/models/ships/Low_poly_UFO.mtl","Low_poly_UFO.obj":"/models/ships/Low_poly_UFO.obj","Pyramid.mtl":"/models/ships/Pyramid.mtl","Pyramid.obj":"/models/ships/Pyramid.obj","Triton.mtl":"/models/ships/Triton.mtl","Triton.obj":"/models/ships/Triton.obj","ufo_diffuse.png":"/models/ships/ufo_diffuse.png","ufo_diffuse2.png":"/models/ships/ufo_diffuse2.png","ufo_diffuse2_glow.png":"/models/ships/ufo_diffuse2_glow.png","ufo_diffuse_glow.png":"/models/ships/ufo_diffuse_glow.png","ufo_normal.png":"/models/ships/ufo_normal.png","ufo_spec.png":"/models/ships/ufo_spec.png"}}}}
81 changes: 48 additions & 33 deletions dist/js/entry.js
Expand Up @@ -58645,10 +58645,14 @@ var Payload = /*#__PURE__*/function () {
});
this.game = new _Game["default"]();
this.game.addPlayer(this.player);
this.game.addPlayer(new _Player["default"]({
name: "Computer",
ai: new _AI["default"](this.game)
}));

for (var i = 1; i <= 5; i++) {
this.game.addPlayer(new _Player["default"]({
name: "Computer " + i,
ai: new _AI["default"](this.game)
}));
}

this.game.start();
}
}], [{
Expand All @@ -58669,7 +58673,7 @@ var Payload = /*#__PURE__*/function () {
}();

exports["default"] = Payload;
Payload.BOX2D_MEMORY_MB = 256;
Payload.BOX2D_MEMORY_MB = 512;

Payload.createInstance = function () {
return new Payload();
Expand Down Expand Up @@ -59964,7 +59968,7 @@ var World = /*#__PURE__*/function (_EventDispatcherWithO) {
value: function fitCameraToAwakeEntities() {
var controls = this.interaction.controls;
var box = new THREE.Box3();
var padding = 750;
var padding = 2500;
if (this._awakeEntities.length == 0) return;

this._awakeEntities.forEach(function (entity) {
Expand Down Expand Up @@ -60119,10 +60123,10 @@ World.defaults = {
},
projectile: {
radius: 10,
launchFullPower: 2000
launchFullPower: 1200
},
explosion: {
forceMultiplier: 0.0000025
forceMultiplier: 0.0000015
}
};

Expand Down Expand Up @@ -60186,7 +60190,7 @@ var AI = /*#__PURE__*/function (_EventDispatcherWithO) {
key: "onTurnStart",
value: function onTurnStart(event) {
this.state = {
numTracers: 360,
numTracers: 120,
minAngle: 0,
maxAngle: 360
};
Expand All @@ -60197,28 +60201,35 @@ var AI = /*#__PURE__*/function (_EventDispatcherWithO) {
value: function predict() {
var _this2 = this;

var options;
var world = this.game.world;
var count = this.state.numTracers;
var startAngle = this.state.minAngle;
var incrementAngle = (this.state.maxAngle - this.state.minAngle) / count;
this.activeTracers = [];
this.tracersAndDistances = [];

for (var i = 0; i < count; i++) {
var options = {
degrees: startAngle + i * incrementAngle,
power: world.options.projectile.launchFullPower
};
options.position = this.player.ship.getProjectileOrigin(options);
var tracer = new _Tracer["default"](this.game.world);
tracer.degrees = options.degrees;
tracer.power = 100;
tracer.once("completed", function (event) {
_this2.onTracerCompleted(event);
});
this.activeTracers.push(tracer);
world.add(tracer);
tracer.launch(options);
for (var power = 50; power <= 100; power += 10) {
for (var i = 0; i < count; i++) {
// Tracer options
options = {};
if (power < 65) options.color = 0x00ff00;else if (power < 85) options.color = 0xffff00;else options.color = 0xff0000;
var tracer = new _Tracer["default"](this.game.world, options); // Launch options

options = {
degrees: startAngle + i * incrementAngle,
power: power / 100 * world.options.projectile.launchFullPower
};
options.position = this.player.ship.getProjectileOrigin(options);
tracer.degrees = options.degrees;
tracer.power = power;
tracer.once("completed", function (event) {
_this2.onTracerCompleted(event);
});
this.activeTracers.push(tracer);
world.add(tracer);
tracer.launch(options);
}
}
}
}, {
Expand All @@ -60244,9 +60255,9 @@ var AI = /*#__PURE__*/function (_EventDispatcherWithO) {
this.onAllTracersCompleted();
return;
}
}
} // console.log(this.activeTracers.length + " active tracers remaining");


console.log(this.activeTracers.length + " active tracers remaining");
if (this.activeTracers.length == 0) this.onAllTracersCompleted();
}
}, {
Expand Down Expand Up @@ -60808,7 +60819,7 @@ var Entity = /*#__PURE__*/function (_EventDispatcherWithO) {
degrees: Math.random() * 360,
power: 100
};
Payload.assert("degrees" in options || "impulse" in options ? true : false);
Payload.assert("degrees" in options || "impulse" in options ? true : false); // console.log("Launching", this, "with options", options);

if (options.impulse) {
Payload.assert(options.impulse instanceof THREE.Vector2);
Expand Down Expand Up @@ -61043,8 +61054,9 @@ var Explosion = /*#__PURE__*/function (_Emitter) {
y: delta.y / length
};
var vec = new Box2D.b2Vec2(normalized.x * force, normalized.y * force);
ship.b2Body.SetAwake(1);
ship.b2Body.ApplyLinearImpulse(vec); // NB: A damage falloff would be nice
ship.b2Body.SetAwake(1); // ship.b2Body.ApplyLinearImpulse(vec);

ship.b2Body.ApplyForceToCenter(vec); // NB: A damage falloff would be nice

if (_this2.damage) {
var damage = Math.round(_this2.damage * factor);
Expand Down Expand Up @@ -61189,7 +61201,7 @@ var Planet = /*#__PURE__*/function (_Entity) {
var minRadius = this.world.options.planet.radius.minimum;
var maxRadius = this.world.options.planet.radius.maximum;
var radius = this._radius = minRadius + game.random() * Math.round(maxRadius - minRadius);
var density = this._density = 0.5 + game.random() * 2;
var density = this._density = 0.5 + game.random() * 1;
var area = this._area = Math.PI * Math.pow(radius, 2);
var sides = this._sides = Math.round(Math.sqrt(radius) * Math.PI);
var sites = []; // Outer sites
Expand Down Expand Up @@ -61458,7 +61470,7 @@ var Planet = /*#__PURE__*/function (_Entity) {

delta.Set(-delta.get_x(), -delta.get_y());
var sum = Math.abs(delta.get_x()) + Math.abs(delta.get_y());
var mult = 1 / sum * gravity / distance;
var mult = 1 / sum * gravity * this._density / distance;
delta.op_mul(mult);
entity.b2Body.ApplyForceToCenter(delta);
Box2D.destroy(center);
Expand Down Expand Up @@ -62564,7 +62576,7 @@ var Projectile = /*#__PURE__*/function (_Entity) {
var circleShape = new Box2D.b2CircleShape();
circleShape.set_m_radius(radius);
var fixtureDef = new Box2D.b2FixtureDef();
fixtureDef.set_density(2.5);
fixtureDef.set_density(1.25);
fixtureDef.set_friction(0.6);
fixtureDef.set_shape(circleShape);
fixtureDef.set_isSensor(true); // NB: Prevent projectiles colliding with one another
Expand Down Expand Up @@ -62677,9 +62689,11 @@ var Tracer = /*#__PURE__*/function (_Projectile) {
_createClass(Tracer, [{
key: "initGraphics",
value: function initGraphics(options) {
var color = 0xff0000;
if (options.color) color = options.color;
this.object3d = new THREE.Object3D();
this.material = new THREE.LineDashedMaterial({
color: 0xff0000,
color: color,
linewidth: 1,
scale: 1,
dashSize: 100,
Expand Down Expand Up @@ -62707,6 +62721,7 @@ var Tracer = /*#__PURE__*/function (_Projectile) {
}, {
key: "updateLine",
value: function updateLine() {
// return;
if (this.line && this.geometry) {
this.object3d.remove(this.line);
this.geometry.dispose();
Expand Down
2 changes: 1 addition & 1 deletion dist/js/entry.js.map

Large diffs are not rendered by default.

11 changes: 6 additions & 5 deletions src/js/Payload.js
Expand Up @@ -68,16 +68,17 @@ export default class Payload

this.game.addPlayer(this.player);

this.game.addPlayer(new Player({
name: "Computer",
ai: new AI(this.game)
}));
for(var i = 1; i <= 5; i++)
this.game.addPlayer(new Player({
name: "Computer " + i,
ai: new AI(this.game)
}));

this.game.start();
}
}

Payload.BOX2D_MEMORY_MB = 256;
Payload.BOX2D_MEMORY_MB = 512;

Payload.createInstance = function()
{
Expand Down
6 changes: 3 additions & 3 deletions src/js/game/World.js
Expand Up @@ -319,7 +319,7 @@ export default class World extends EventDispatcherWithOptions
{
let controls = this.interaction.controls;
let box = new THREE.Box3();
let padding = 750;
let padding = 2500;

if(this._awakeEntities.length == 0)
return;
Expand Down Expand Up @@ -496,9 +496,9 @@ World.defaults = {
},
projectile: {
radius: 10,
launchFullPower: 2000
launchFullPower: 1200
},
explosion: {
forceMultiplier: 0.0000025
forceMultiplier: 0.0000015
}
};
65 changes: 39 additions & 26 deletions src/js/game/ai/AI.js
Expand Up @@ -20,7 +20,7 @@ export default class AI extends EventDispatcherWithOptions
onTurnStart(event)
{
this.state = {
numTracers: 360,
numTracers: 120,
minAngle: 0,
maxAngle: 360
};
Expand All @@ -30,6 +30,7 @@ export default class AI extends EventDispatcherWithOptions

predict()
{
let options;
let world = this.game.world;

let count = this.state.numTracers;
Expand All @@ -39,30 +40,42 @@ export default class AI extends EventDispatcherWithOptions
this.activeTracers = [];
this.tracersAndDistances = [];

for(var i = 0; i < count; i++)
{
let options = {
degrees: startAngle + (i * incrementAngle),
power: world.options.projectile.launchFullPower
};

options.position = this.player.ship.getProjectileOrigin(options);

let tracer = new Tracer(this.game.world);

tracer.degrees = options.degrees;
tracer.power = 100;

tracer.once("completed", event => {
this.onTracerCompleted(event);
});

this.activeTracers.push(tracer);

world.add(tracer);
tracer.launch(options);

}
for(var power = 50; power <= 100; power += 10)
for(var i = 0; i < count; i++)
{
// Tracer options
options = {};

if(power < 65)
options.color = 0x00ff00;
else if(power < 85)
options.color = 0xffff00;
else
options.color = 0xff0000;

let tracer = new Tracer(this.game.world, options);

// Launch options
options = {
degrees: startAngle + (i * incrementAngle),
power: (power / 100) * world.options.projectile.launchFullPower
};

options.position = this.player.ship.getProjectileOrigin(options);

tracer.degrees = options.degrees;
tracer.power = power;

tracer.once("completed", event => {
this.onTracerCompleted(event);
});

this.activeTracers.push(tracer);

world.add(tracer);
tracer.launch(options);

}
}

onTracerCompleted(event)
Expand Down Expand Up @@ -93,7 +106,7 @@ export default class AI extends EventDispatcherWithOptions
}
}

console.log(this.activeTracers.length + " active tracers remaining");
// console.log(this.activeTracers.length + " active tracers remaining");

if(this.activeTracers.length == 0)
this.onAllTracersCompleted();
Expand Down
2 changes: 2 additions & 0 deletions src/js/game/entities/Entity.js
Expand Up @@ -331,6 +331,8 @@ export default class Entity extends EventDispatcherWithOptions

Payload.assert(("degrees" in options || "impulse" in options ? true : false));

// console.log("Launching", this, "with options", options);

if(options.impulse)
{
Payload.assert(options.impulse instanceof THREE.Vector2);
Expand Down
3 changes: 2 additions & 1 deletion src/js/game/entities/Explosion.js
Expand Up @@ -127,7 +127,8 @@ export default class Explosion extends Emitter
);

ship.b2Body.SetAwake(1);
ship.b2Body.ApplyLinearImpulse(vec);
// ship.b2Body.ApplyLinearImpulse(vec);
ship.b2Body.ApplyForceToCenter(vec);

// NB: A damage falloff would be nice
if(this.damage)
Expand Down

0 comments on commit ec98496

Please sign in to comment.