variable resource collection speed

This commit is contained in:
devZoGok
2024-02-10 14:34:25 +02:00
parent d1394e9f2a
commit c090992547
6 changed files with 10 additions and 6 deletions
@@ -198,6 +198,7 @@ units = {
armor = {ArmorType.CAST},
capacity = 3000,
loadRate = 1,
loadSpeed = 5,
isVehicle = true,
health = 500,
buildTime = 1000,
@@ -519,6 +520,7 @@ units = {
health = 500,
buildTime = 1000,
drawRate = 1,
drawSpeed = 5,
cost = 500,
size = {x = 4, y = 1.15, z = 4},
hitboxOffset = {x = 0, y = 0, z = 0},
+2 -1
View File
@@ -29,6 +29,7 @@ namespace battleship{
sol::table unitTable = generateView()["units"][id + 1];
drawRate = unitTable["drawRate"];
drawSpeed = unitTable["drawSpeed"];
Vector2 size = Vector2(lenHpBar, 10);
ammountBackground = Unit::createBar(Vector2::VEC_ZERO, size, Vector4(0, 0, 0, 1));
@@ -59,7 +60,7 @@ namespace battleship{
}
void Extractor::draw(){
deposit->decrementAmmount();
deposit->decreaseAmmount(drawSpeed);
lastDrawTime = getTime();
}
}
+1 -1
View File
@@ -17,7 +17,7 @@ namespace battleship{
bool canDraw(){return vb01::getTime() - lastDrawTime > drawRate;}
inline ResourceDeposit* getDeposit(){return deposit;}
private:
int drawRate;
int drawSpeed, drawRate;
vb01::s64 lastDrawTime = 0;
vb01::Node *ammountBackground = nullptr, *ammountForeground = nullptr;
ResourceDeposit *deposit = nullptr;
+1 -1
View File
@@ -10,7 +10,7 @@ namespace battleship{
~ResourceDeposit();
inline int getAmmount(){return ammount;}
inline int getInitAmmount(){return initAmmount;}
inline void decrementAmmount(){ammount--;}
inline void decreaseAmmount(int amnt){ammount -= amnt;}
private:
int ammount, initAmmount;
+3 -2
View File
@@ -16,6 +16,7 @@ namespace battleship{
ResourceRover::ResourceRover(Player *player, int id, Vector3 pos, Quaternion rot) : Vehicle(player, id, pos, rot) {
sol::table unitTable = generateView()["units"][id + 1];
capacity = unitTable["capacity"];
loadSpeed = unitTable["loadSpeed"];
loadRate = unitTable["loadRate"];
Vector2 size = Vector2(lenHpBar, 10);
@@ -53,7 +54,7 @@ namespace battleship{
if(canLoad() && deposit->getAmmount() > 0){
if(nearestExtractor->canDraw()){
nearestExtractor->draw();
load++;
load += loadSpeed;
lastLoadTime = getTime();
}
}
@@ -69,7 +70,7 @@ namespace battleship{
if(nearestRefinery && nearestRefinery->getPos().getDistanceFrom(pos) <= minDist){
if(canUnload()){
load--;
load -= loadSpeed;
player->addRefineds(1);
lastLoadTime = getTime();
}
+1 -1
View File
@@ -21,7 +21,7 @@ namespace battleship{
inline bool canUnload(){return vb01::getTime() - lastLoadTime > loadRate && load > 0;}
vb01::s64 lastLoadTime = 0;
int load = 0, capacity, loadRate;
int load = 0, capacity, loadRate, loadSpeed;
Extractor *nearestExtractor = nullptr;
Unit *nearestRefinery = nullptr;
vb01::Node *loadBackground = nullptr, *loadForeground = nullptr;