From 29460305171e1f93e4fffef8cbf5fabfc9a3138d Mon Sep 17 00:00:00 2001 From: jacksonmj Date: Thu, 22 May 2014 03:50:04 +0100 Subject: [PATCH] Less overpowered (in terms of bunkers) QRTZ Newly grown QRTZ now inherits the temperature of the particle that created it and PQRT doesn't start growing in midair immediately after it's been shattered --- src/simulation/elements/QRTZ.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/simulation/elements/QRTZ.cpp b/src/simulation/elements/QRTZ.cpp index b3996627f9..9bbc264c24 100644 --- a/src/simulation/elements/QRTZ.cpp +++ b/src/simulation/elements/QRTZ.cpp @@ -57,8 +57,11 @@ int Element_QRTZ::update(UPDATE_FUNC_ARGS) if (parts[i].pavg[1]-parts[i].pavg[0] > 0.05*(parts[i].temp/3) || parts[i].pavg[1]-parts[i].pavg[0] < -0.05*(parts[i].temp/3)) { sim->part_change_type(i,x,y,PT_PQRT); + parts[i].life = 5; //timer before it can grow or diffuse again } } + if (parts[i].life>5) + parts[i].life = 5; // absorb SLTW if (parts[i].tmp != -1) for (rx=-1; rx<2; rx++) @@ -75,7 +78,7 @@ int Element_QRTZ::update(UPDATE_FUNC_ARGS) } } // grow and diffuse - if (parts[i].tmp > 0) + if (parts[i].tmp > 0 && (parts[i].vx*parts[i].vx + parts[i].vy*parts[i].vy)<0.2f && parts[i].life<=0) { bool stopgrow = false; int rnd, sry, srx; @@ -96,8 +99,14 @@ int Element_QRTZ::update(UPDATE_FUNC_ARGS) np = sim->create_part(-1,x+srx,y+sry,PT_QRTZ); if (np>-1) { + parts[np].temp = parts[i].temp; parts[np].tmp2 = parts[i].tmp2; parts[i].tmp--; + if (t == PT_PQRT) + { + // If PQRT is stationary and has started growing particles of QRTZ, the PQRT is basically part of a new QRTZ crystal. So turn it back into QRTZ so that it behaves more like part of the crystal. + sim->part_change_type(i,x,y,PT_QRTZ); + } if (rand()%2) { parts[np].tmp=-1;//dead qrtz