MBHaxe/src/modes/GameMode.hx
2023-07-07 00:18:24 +05:30

31 lines
822 B
Haxe

package modes;
import shapes.Gem;
import h3d.Quat;
import h3d.Vector;
import src.MarbleWorld;
import src.Mission;
interface GameMode {
public function getSpawnTransform():{position:Vector, orientation:Quat, up:Vector};
public function getRespawnTransform():{position:Vector, orientation:Quat, up:Vector};
public function missionScan(mission:Mission):Void;
public function getStartTime():Float;
public function timeMultiplier():Float;
public function onRestart():Void;
public function onGemPickup(gem:Gem):Void;
public function getPreloadFiles():Array<String>;
}
class GameModeFactory {
public static function getGameMode(level:MarbleWorld, mode:String):GameMode {
if (mode != null)
switch (mode.toLowerCase()) {
case "scrum":
return new HuntMode(level);
}
return new NullMode(level);
}
}