#pragma once
#include "olcPixelGameEngine.h"
#include "Unit.h"
#include "CollectionPoint.h"

enum LevelName{
	STAGE1,
	STAGE2,
	STAGE3,
	STAGE4,
	STAGE5,
	STAGE6,
	STAGE7,
	STAGE8,
	FINISH,
};

struct UnitData{
	UnitType type;
	vf2d pos;
	bool friendly;
};

struct CPData{
	vf2d pos;
	float rot;
	MemoryType type;
};

//A small level will allocate roughly 640 bits
//Medium: 960
//Large: 1280

struct Level{
	LevelName name=STAGE1;
	vi2d size={1,1};
	Resources player_starting_resources;
	Resources enemy_starting_resources;
	std::vector<UnitData>unitPlacement;
	std::vector<CPData>cpPlacement;
	Sound::Sound bgm=Sound::COSMOS;
	int scenarioIndex=0;
	vf2d cameraStart={96,96};
	vf2d worldZoom={1,1};
	Pixel levelColor=DARK_GREEN;
	int availableMemory=640;
};