PQ maps and fixes
BIN
data/multiplayer/hunt/advanced/MaximoCenter.jpg
Normal file
|
After Width: | Height: | Size: 69 KiB |
5393
data/multiplayer/hunt/advanced/MaximoCenter.mis
Normal file
1001
data/multiplayer/hunt/advanced/lupus.mis
Normal file
BIN
data/multiplayer/hunt/advanced/lupus.png
Normal file
|
After Width: | Height: | Size: 215 KiB |
BIN
data/multiplayer/hunt/intermediate/Marbleland.jpg
Normal file
|
After Width: | Height: | Size: 64 KiB |
4229
data/multiplayer/hunt/intermediate/Marbleland.mis
Normal file
2644
data/multiplayer/hunt/intermediate/Nadir.mis
Normal file
BIN
data/multiplayer/hunt/intermediate/Nadir.png
Normal file
|
After Width: | Height: | Size: 189 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/Marbleland.dif
Normal file
BIN
data/multiplayer/interiors/PlatinumQuest/Marbleland2.dif
Normal file
BIN
data/multiplayer/interiors/PlatinumQuest/MaximoCenter.dif
Normal file
BIN
data/multiplayer/interiors/PlatinumQuest/Nadir.dif
Normal file
BIN
data/multiplayer/interiors/PlatinumQuest/lupus.dif
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_edge_cream_2.jpg
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_edge_white_1.jpg
Normal file
|
After Width: | Height: | Size: 9.9 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_edge_white_2.jpg
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_fossil_rock.jpg
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_friction_bouncy.jpg
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_friction_grass.jpg
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_friction_ice.jpg
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_friction_mud.jpg
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_friction_sand.jpg
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_friction_space.jpg
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_hot_1_med.jpg
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_hot_2_light.jpg
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_hot_4_med.jpg
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_ray_wall_1.jpg
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_ray_wall_2.jpg
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_ray_wall_3.jpg
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_ray_wall_4.jpg
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_ray_wall_5.jpg
Normal file
|
After Width: | Height: | Size: 104 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_ray_wall_6.jpg
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_ray_wall_7.jpg
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_ray_wall_8.jpg
Normal file
|
After Width: | Height: | Size: 106 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_ray_wall_combo.jpg
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_ray_wall_combo_2.jpg
Normal file
|
After Width: | Height: | Size: 121 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 20 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_rays_blue_med.jpg
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_rays_green_dark.jpg
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_rays_green_light.jpg
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_rays_green_med.jpg
Normal file
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 16 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_rays_purple_med.jpg
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_rays_red_light.jpg
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/pq_under_tile_brown.jpg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
data/multiplayer/interiors/PlatinumQuest/stripe_caution.jpg
Normal file
|
After Width: | Height: | Size: 23 KiB |
|
|
@ -183,6 +183,31 @@ class DifBuilder {
|
|||
friction: 6,
|
||||
restitution: 0.3
|
||||
},
|
||||
"pq_friction_bouncy" => {
|
||||
friction: 0.2,
|
||||
restitution: 0.0,
|
||||
force: 15.0
|
||||
},
|
||||
"pq_friction_grass" => {
|
||||
friction: 2,
|
||||
restitution: 0.5
|
||||
},
|
||||
"pq_friction_ice" => {
|
||||
friction: 0.07331,
|
||||
restitution: 0.75
|
||||
},
|
||||
"pq_friction_mud" => {
|
||||
friction: 0.3,
|
||||
restitution: 0.5
|
||||
},
|
||||
"pq_friction_sand" => {
|
||||
friction: 4,
|
||||
restitution: 0.15
|
||||
},
|
||||
"pq_friction_space" => {
|
||||
friction: 0.01,
|
||||
restitution: 0.35
|
||||
}
|
||||
];
|
||||
|
||||
static function createPhongMaterial(onFinish:hxsl.Shader->Void, baseTexture:String, normalTexture:String, shininess:Float, specularColor:Vector,
|
||||
|
|
|
|||
|
|
@ -2134,7 +2134,7 @@ class Marble extends GameObject {
|
|||
this.setRotationQuat(quat);
|
||||
|
||||
var adt = timeState.clone();
|
||||
adt.dt = physicsAccumulator;
|
||||
adt.dt = Util.adjustedMod(physicsAccumulator, 0.032);
|
||||
for (pi in pathedInteriors) {
|
||||
pi.update(adt);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,8 +70,8 @@ class MPPlayMissionGui extends GuiImage {
|
|||
currentSelectionStatic = 0;
|
||||
}
|
||||
|
||||
// currentSelection = PlayMissionGui.currentSelectionStatic;
|
||||
currentCategory = PlayMissionGui.currentCategoryStatic;
|
||||
currentSelection = currentSelectionStatic;
|
||||
currentCategory = currentCategoryStatic;
|
||||
|
||||
MarbleGame.instance.toRecord = false;
|
||||
|
||||
|
|
@ -529,7 +529,7 @@ class MPPlayMissionGui extends GuiImage {
|
|||
|
||||
currentCategoryStatic = currentCategory;
|
||||
|
||||
NetCommands.setLobbyLevelIndex(category, currentList.length - 1);
|
||||
NetCommands.setLobbyLevelIndex(category, 0);
|
||||
// if (doRender)
|
||||
// this.render(cast(this.parent, Canvas).scene2d);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -247,14 +247,21 @@ class MisParser {
|
|||
var openingIndex = key.indexOf('[');
|
||||
var arrayName = key.substring(0, openingIndex);
|
||||
var array:Array<String>;
|
||||
var indexToken = key.substring(openingIndex + 1, key.indexOf("]"));
|
||||
if (obj.exists(arrayName))
|
||||
array = obj.get(arrayName);
|
||||
else {
|
||||
array = [];
|
||||
obj.set(arrayName, array);
|
||||
} // Create a new array or use the existing one
|
||||
var index = Std.parseInt(key.substring(openingIndex + 1, -1));
|
||||
array[index] = this.resolveExpression(parts[1]);
|
||||
if (~/[0-9]+/.match(indexToken)) {
|
||||
var index = Std.parseInt(indexToken);
|
||||
array[index] = this.resolveExpression(parts[1]);
|
||||
} else {
|
||||
// Not a numeric indexer
|
||||
indexToken = StringTools.trim(StringTools.replace(indexToken, "\"", ""));
|
||||
obj.set(arrayName + indexToken, [this.resolveExpression(parts[1])]);
|
||||
}
|
||||
} else {
|
||||
obj.set(key, [this.resolveExpression(parts[1])]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,6 +64,10 @@ class MissionElementScriptObject extends MissionElementBase {
|
|||
var spawnblock:String;
|
||||
var overviewwidth:String;
|
||||
var overviewheight:String;
|
||||
var spawnchancered:String;
|
||||
var spawnchanceyellow:String;
|
||||
var spawnchanceblue:String;
|
||||
var spawnchanceplatinum:String;
|
||||
|
||||
public function new() {
|
||||
_type = MissionElementType.ScriptObject;
|
||||
|
|
|
|||
|
|
@ -288,6 +288,25 @@ class HuntMode extends NullMode {
|
|||
for (elem in search) {
|
||||
var gemElem:GemSpawnPoint = cast elem;
|
||||
var gemPos = gemElem.gem.getAbsPos().getPosition();
|
||||
|
||||
if (level.mission.missionInfo.game == "PlatinumQuest") {
|
||||
// Spawn chances!
|
||||
var chance = switch (gemElem.gem.gemColor) {
|
||||
case "red":
|
||||
level.mission.missionInfo.spawnchancered != null ? Std.parseFloat(level.mission.missionInfo.spawnchancered) : 0.9;
|
||||
case "yellow":
|
||||
level.mission.missionInfo.spawnchanceyellow != null ? Std.parseFloat(level.mission.missionInfo.spawnchanceyellow) : 0.65;
|
||||
case "blue":
|
||||
level.mission.missionInfo.spawnchanceblue != null ? Std.parseFloat(level.mission.missionInfo.spawnchanceblue) : 0.35;
|
||||
case "platinum":
|
||||
level.mission.missionInfo.spawnchanceplatinum != null ? Std.parseFloat(level.mission.missionInfo.spawnchanceplatinum) : 0.18;
|
||||
default:
|
||||
1.0;
|
||||
};
|
||||
if (Math.random() > chance)
|
||||
continue; // Don't spawn!
|
||||
}
|
||||
|
||||
results.push({
|
||||
gem: gemElem.netIndex,
|
||||
weight: this.gemGroupRadius - gemPos.distance(pos) + rng.randRange(0, getGemWeight(gemElem.gem) + 3)
|
||||
|
|
@ -423,6 +442,8 @@ class HuntMode extends NullMode {
|
|||
return 1;
|
||||
if (gem.gemColor == "blue")
|
||||
return 4;
|
||||
if (gem.gemColor == "platinum")
|
||||
return 9;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -536,6 +557,8 @@ class HuntMode extends NullMode {
|
|||
incr = 2;
|
||||
case "blue.gem":
|
||||
incr = 5;
|
||||
case "platinum.gem":
|
||||
incr = 10;
|
||||
}
|
||||
|
||||
if (@:privateAccess !marble.isNetUpdate) {
|
||||
|
|
@ -550,6 +573,9 @@ class HuntMode extends NullMode {
|
|||
case "blue.gem":
|
||||
points += 5;
|
||||
@:privateAccess level.playGui.addMiddleMessage('+5', 0x6666FF);
|
||||
case "platinum.gem":
|
||||
points += 10;
|
||||
@:privateAccess level.playGui.addMiddleMessage('+10', 0xdddddd);
|
||||
}
|
||||
@:privateAccess level.playGui.formatGemHuntCounter(points);
|
||||
}
|
||||
|
|
|
|||