#include "DungeonRoom.h" namespace BS { namespace Levels { namespace Generator { Array* DungeonRoom::biga; Array* DungeonRoom::bigb; Array* DungeonRoom::smalla; Array* DungeonRoom::smallb; int DungeonRoom::getX(){ return this->x; } void DungeonRoom::setX(int value) { this->x = value; } int DungeonRoom::getY() { return this->y; } void DungeonRoom::setY(int value) { this->y = value; } int DungeonRoom::getWidth() { return this->width; } void DungeonRoom::setWidth(int value) { this->width = value; } int DungeonRoom::getHeight() { return this->height; } void DungeonRoom::setHeight(int value) { this->height = value; } DungeonRoom::DungeonRoom(int x, int y, int width, int height) { this->setX(x); this->setY(y); this->setWidth(width); this->setHeight(height); } void DungeonRoom::WriteRoom(ArrayND* dungeon) { for (int i = this->getY(); i < (this->getY() + this->getHeight()); i += 1) { for (int j = this->getX(); j < (this->getX() + this->getWidth()); j += 1) { dungeon->SetData(j, i, 1); } } for (int k = this->getX() + 1; k < ((this->getX() + this->getWidth()) - 1); k += 1) { dungeon->SetData(k, (this->getY() + this->getHeight()) - 1, 11); } for (int l = this->getX() + 1; l < ((this->getX() + this->getWidth()) - 1); l += 1) { dungeon->SetData(l, this->getY(), 13); } for (int m = this->getY() + 1; m < ((this->getY() + this->getHeight()) - 1); m += 1) { dungeon->SetData(this->getX(), m, 14); } for (int n = this->getY() + 1; n < ((this->getY() + this->getHeight()) - 1); n += 1) { dungeon->SetData((this->getX() + this->getWidth()) - 1, n, 12); } dungeon->SetData(this->getX(), this->getY(), 13); dungeon->SetData((this->getX() + this->getWidth()) - 1, this->getY(), 13); dungeon->SetData(this->getX(), (this->getY() + this->getHeight()) - 1, 13); dungeon->SetData((this->getX() + this->getWidth()) - 1, (this->getY() + this->getHeight()) - 1, 13); } void DungeonRoom::GenerateAIPlayers(int level) { int num = UnityEngine::Random::Range(3, 5); for (int i = 0; i < num; i += 1) { int num2 = this->getX() + UnityEngine::Random::Range(1, this->getWidth() - 2); int num3 = this->getY() + UnityEngine::Random::Range(1, this->getHeight() - 2); Vector3* position = new Vector3((float)(num2) * Voxelizzer::world->voxelScale, Voxelizzer::world->voxelScale, (float)(num3) * Voxelizzer::world->voxelScale); Entity::SSpawn(EntityType::Mob, UnityEngine::Random::Range(10000, 10005), level, this->GenerateName(), 0u, null, false, position, ); } } String* DungeonRoom::GenerateName() { UnityEngine::Random::State* state = UnityEngine::Random::state; String* text = DungeonRoom::biga->GetData(UnityEngine::Random::Range(0, DungeonRoom::biga->Length)); bool flag = false; int num = UnityEngine::Random::Range(3, 7); for (int i = 0; i < num; i += 1) { if (flag) { *text += DungeonRoom::smallb->GetData(UnityEngine::Random::Range(0, DungeonRoom::smallb->Length)); } else { *text += DungeonRoom::smalla->GetData(UnityEngine::Random::Range(0, DungeonRoom::smalla->Length)); } flag = !flag; } UnityEngine::Random::state = state; return text; } DungeonRoom::DungeonRoom() { Array* expr_06 = new Array(5); expr_06->SetData(0, new String("A")); expr_06->SetData(1, new String("E")); expr_06->SetData(2, new String("I")); expr_06->SetData(3, new String("O")); expr_06->SetData(4, new String("U")); DungeonRoom::biga = expr_06; Array* expr_3A = new Array(19); expr_3A->SetData(0, new String("B")); expr_3A->SetData(1, new String("C")); expr_3A->SetData(2, new String("D")); expr_3A->SetData(3, new String("E")); expr_3A->SetData(4, new String("F")); expr_3A->SetData(5, new String("G")); expr_3A->SetData(6, new String("H")); expr_3A->SetData(7, new String("J")); expr_3A->SetData(8, new String("K")); expr_3A->SetData(9, new String("L")); expr_3A->SetData(10, new String("M")); expr_3A->SetData(11, new String("N")); expr_3A->SetData(12, new String("P")); expr_3A->SetData(13, new String("Q")); expr_3A->SetData(14, new String("R")); expr_3A->SetData(15, new String("V")); expr_3A->SetData(16, new String("X")); expr_3A->SetData(17, new String("Y")); expr_3A->SetData(18, new String("Z")); DungeonRoom::bigb = expr_3A; Array* expr_E7 = new Array(5); expr_E7->SetData(0, new String("a")); expr_E7->SetData(1, new String("e")); expr_E7->SetData(2, new String("i")); expr_E7->SetData(3, new String("o")); expr_E7->SetData(4, new String("u")); DungeonRoom::smalla = expr_E7; Array* expr_11B = new Array(19); expr_11B->SetData(0, new String("b")); expr_11B->SetData(1, new String("c")); expr_11B->SetData(2, new String("d")); expr_11B->SetData(3, new String("e")); expr_11B->SetData(4, new String("f")); expr_11B->SetData(5, new String("g")); expr_11B->SetData(6, new String("h")); expr_11B->SetData(7, new String("j")); expr_11B->SetData(8, new String("k")); expr_11B->SetData(9, new String("l")); expr_11B->SetData(10, new String("m")); expr_11B->SetData(11, new String("n")); expr_11B->SetData(12, new String("p")); expr_11B->SetData(13, new String("q")); expr_11B->SetData(14, new String("r")); expr_11B->SetData(15, new String("v")); expr_11B->SetData(16, new String("x")); expr_11B->SetData(17, new String("y")); expr_11B->SetData(18, new String("z")); DungeonRoom::smallb = expr_11B; } } } }