From 20df6a10dd73c280aeab043507cb19010784f603 Mon Sep 17 00:00:00 2001 From: devZoGok Date: Thu, 21 Dec 2023 20:25:02 +0200 Subject: [PATCH] newly trained units move in front of their factories --- Assets/Scripts/Core/player.lua | 2 +- factory.cpp | 8 +++++++- player.cpp | 2 ++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/Core/player.lua b/Assets/Scripts/Core/player.lua index 52baf52..94f4f14 100644 --- a/Assets/Scripts/Core/player.lua +++ b/Assets/Scripts/Core/player.lua @@ -44,7 +44,7 @@ function Player:trainTaskForce() if landFactory ~= nil then print('Training...') - for i = 0, self.sizeTaskForce do + for i = 1, self.sizeTaskForce do landFactory:appendToQueue(UnitClass.TANK) end diff --git a/factory.cpp b/factory.cpp index 5319da7..cebbdf3 100644 --- a/factory.cpp +++ b/factory.cpp @@ -2,8 +2,11 @@ #include "player.h" #include "gameObjectFactory.h" +#include + namespace battleship{ using namespace vb01; + using namespace std; Factory::Factory(Player *player, int id, Vector3 pos, Quaternion rot, int buildStatus) : Structure(player, id, pos, rot, buildStatus){ initProperties(); @@ -39,7 +42,10 @@ namespace battleship{ if(trainingStatus >= 100){ unitQueue.erase(unitQueue.begin()); trainingStatus = 0; - player->addUnit(GameObjectFactory::createUnit(player, unitQueue[0], pos + 30 * dirVec, rot)); + + Unit *unit = GameObjectFactory::createUnit(player, unitQueue[0], pos, rot); + player->addUnit(unit); + unit->setOrder(Order(Order::TYPE::MOVE, vector{Order::Target(nullptr, pos + 30 * dirVec)}, Vector3::VEC_ZERO)); } } } diff --git a/player.cpp b/player.cpp index c970c3c..5fa1cb8 100755 --- a/player.cpp +++ b/player.cpp @@ -16,6 +16,8 @@ namespace battleship{ Player::~Player() {} void Player::update() { + vector units = this->units; + for(Unit *u : units) u->update();