diff --git a/FloatingSpace/FloatingLayer.js b/FloatingSpace/FloatingLayer.js index a366a4b40..06c4d46b5 100644 --- a/FloatingSpace/FloatingLayer.js +++ b/FloatingSpace/FloatingLayer.js @@ -313,6 +313,12 @@ function newFloatingLayer () { floatingObject.container.frame.position.y = floatingObject.container.frame.position.y + floatingObject.currentSpeed.y } + if (floatingObject.friction < floatingObject.targetFriction) { + floatingObject.friction = floatingObject.friction + 0.00001 + } else { + floatingObject.friction = floatingObject.friction - 0.00001 + } + floatingObject.currentSpeed.x = floatingObject.currentSpeed.x * floatingObject.friction // Desaceleration factor. floatingObject.currentSpeed.y = floatingObject.currentSpeed.y * floatingObject.friction // Desaceleration factor. diff --git a/FloatingSpace/FloatingObject.js b/FloatingSpace/FloatingObject.js index 6bc85f59d..b12632173 100644 --- a/FloatingSpace/FloatingObject.js +++ b/FloatingSpace/FloatingObject.js @@ -16,6 +16,7 @@ function newFloatingObject () { currentSpeed: 0, // This is the current speed of the floating object. currentMass: 0, // This is the current mass of the floating object, including its zoom applied. friction: 0, // This is a factor that will ultimatelly desacelerate the floating object. + targetFriction: 0, rawMass: 0, // This is the mass value without zoom. rawRadius: 0, // This is the radius of this floating object without zoom. targetRadius: 0, // This is the target radius of the floating object with zoom applied. It should be animated until reaching this value. diff --git a/FloatingSpace/StrategyPartConstructor.js b/FloatingSpace/StrategyPartConstructor.js index 54e2d3b9f..70abe6388 100644 --- a/FloatingSpace/StrategyPartConstructor.js +++ b/FloatingSpace/StrategyPartConstructor.js @@ -1026,7 +1026,8 @@ function newStrategyPartConstructor () { } function setFloatingObjectBasicProperties (floatingObject, payload) { - const FRICTION = 0.98 + const FRICTION = 0.94 + const INITIAL_FRICTION = 0.99 switch (payload.node.type) { case 'Trading System': { @@ -1104,7 +1105,8 @@ function newStrategyPartConstructor () { } function level_0 () { - floatingObject.friction = 0.93 + floatingObject.targetFriction = 0.93 + floatingObject.friction = INITIAL_FRICTION floatingObject.initializeMass(500) floatingObject.initializeRadius(45) @@ -1115,7 +1117,8 @@ function newStrategyPartConstructor () { } function level_1 () { - floatingObject.friction = 0.94 + floatingObject.targetFriction = 0.94 + floatingObject.friction = INITIAL_FRICTION floatingObject.initializeMass(250) floatingObject.initializeRadius(45) @@ -1126,7 +1129,8 @@ function newStrategyPartConstructor () { } function level_2 () { - floatingObject.friction = FRICTION + floatingObject.targetFriction = FRICTION + floatingObject.friction = INITIAL_FRICTION floatingObject.initializeMass(100) floatingObject.initializeRadius(40) @@ -1137,7 +1141,8 @@ function newStrategyPartConstructor () { } function level_3 () { - floatingObject.friction = FRICTION + floatingObject.targetFriction = FRICTION + floatingObject.friction = INITIAL_FRICTION floatingObject.initializeMass(10) floatingObject.initializeRadius(35) @@ -1148,7 +1153,8 @@ function newStrategyPartConstructor () { } function level_4 () { - floatingObject.friction = FRICTION + floatingObject.targetFriction = FRICTION + floatingObject.friction = INITIAL_FRICTION floatingObject.initializeMass(10) floatingObject.initializeRadius(30) @@ -1159,7 +1165,8 @@ function newStrategyPartConstructor () { } function level_5 () { - floatingObject.friction = FRICTION + floatingObject.targetFriction = FRICTION + floatingObject.friction = INITIAL_FRICTION floatingObject.initializeMass(10) floatingObject.initializeRadius(25) @@ -1169,7 +1176,8 @@ function newStrategyPartConstructor () { floatingObject.fillStyle = 'rgba(' + UI_COLOR.RED + ', 1)' } function level_6 () { - floatingObject.friction = FRICTION + floatingObject.targetFriction = FRICTION + floatingObject.friction = INITIAL_FRICTION floatingObject.initializeMass(10) floatingObject.initializeRadius(20) diff --git a/StrategySpace/Workspace/Workspace.js b/StrategySpace/Workspace/Workspace.js index f4603106f..37b31e8ba 100644 --- a/StrategySpace/Workspace/Workspace.js +++ b/StrategySpace/Workspace/Workspace.js @@ -114,7 +114,7 @@ function newWorkspace () { rootNodes: stringifyReadyNodes } let textToSave = JSON.stringify(workspace) - // window.localStorage.setItem('workspace', textToSave) + window.localStorage.setItem('workspace', textToSave) } function spawn (nodeText, point) {