HEAC is now meltable via LIGH, fix HEAC hardness, fixes #441
This commit is contained in:
parent
fb2431d99e
commit
1718fe9287
@ -3922,7 +3922,7 @@ void Simulation::UpdateParticles(int start, int end)
|
|||||||
if (ctemph >= pres+elements[PT_CRMC].HighTemperature)
|
if (ctemph >= pres+elements[PT_CRMC].HighTemperature)
|
||||||
s = 0;
|
s = 0;
|
||||||
}
|
}
|
||||||
else if (elements[parts[i].ctype].HighTemperatureTransition == PT_LAVA)
|
else if (elements[parts[i].ctype].HighTemperatureTransition == PT_LAVA || parts[i].ctype == PT_HEAC)
|
||||||
{
|
{
|
||||||
if (pt >= elements[parts[i].ctype].HighTemperature)
|
if (pt >= elements[parts[i].ctype].HighTemperature)
|
||||||
s = 0;
|
s = 0;
|
||||||
|
@ -128,14 +128,25 @@ int Element_FIRE::update(UPDATE_FUNC_ARGS)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// LAVA(CLST) + LAVA(PQRT) + high enough temp = LAVA(CRMC) + LAVA(CRMC)
|
if (t == PT_LAVA)
|
||||||
if (t == PT_LAVA && parts[i].ctype == PT_QRTZ && rt == PT_LAVA && parts[r>>8].ctype == PT_CLST)
|
|
||||||
{
|
{
|
||||||
float pres = std::max(sim->pv[y/CELL][x/CELL]*10.0f, 0.0f);
|
// LAVA(CLST) + LAVA(PQRT) + high enough temp = LAVA(CRMC) + LAVA(CRMC)
|
||||||
if (parts[i].temp >= pres+sim->elements[PT_CRMC].HighTemperature+50.0f)
|
if (parts[i].ctype == PT_QRTZ && rt == PT_LAVA && parts[r>>8].ctype == PT_CLST)
|
||||||
{
|
{
|
||||||
parts[i].ctype = PT_CRMC;
|
float pres = std::max(sim->pv[y/CELL][x/CELL]*10.0f, 0.0f);
|
||||||
parts[r>>8].ctype = PT_CRMC;
|
if (parts[i].temp >= pres+sim->elements[PT_CRMC].HighTemperature+50.0f)
|
||||||
|
{
|
||||||
|
parts[i].ctype = PT_CRMC;
|
||||||
|
parts[r>>8].ctype = PT_CRMC;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (rt == PT_HEAC && parts[i].ctype == PT_HEAC)
|
||||||
|
{
|
||||||
|
if (parts[r>>8].temp > sim->elements[PT_HEAC].HighTemperature && rand()%200)
|
||||||
|
{
|
||||||
|
sim->part_change_type(r>>8, x+rx, y+ry, PT_LAVA);
|
||||||
|
parts[r>>8].ctype = PT_HEAC;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ Element_HEAC::Element_HEAC()
|
|||||||
Flammable = 0;
|
Flammable = 0;
|
||||||
Explosive = 0;
|
Explosive = 0;
|
||||||
Meltable = 1;
|
Meltable = 1;
|
||||||
Hardness = 50;
|
Hardness = 0;
|
||||||
|
|
||||||
Weight = 100;
|
Weight = 100;
|
||||||
|
|
||||||
@ -39,7 +39,8 @@ Element_HEAC::Element_HEAC()
|
|||||||
HighPressureTransition = NT;
|
HighPressureTransition = NT;
|
||||||
LowTemperature = ITL;
|
LowTemperature = ITL;
|
||||||
LowTemperatureTransition = NT;
|
LowTemperatureTransition = NT;
|
||||||
HighTemperature = ITH;
|
// can't melt by normal heat conduction, this is used by other elements for special melting behavior
|
||||||
|
HighTemperature = 1887.15f;
|
||||||
HighTemperatureTransition = NT;
|
HighTemperatureTransition = NT;
|
||||||
|
|
||||||
Update = &Element_HEAC::update;
|
Update = &Element_HEAC::update;
|
||||||
|
@ -133,6 +133,14 @@ int Element_LIGH::update(UPDATE_FUNC_ARGS)
|
|||||||
if (sim->player2.elem!=PT_LIGH)
|
if (sim->player2.elem!=PT_LIGH)
|
||||||
parts[r>>8].life-=powderful/100;
|
parts[r>>8].life-=powderful/100;
|
||||||
break;
|
break;
|
||||||
|
case PT_HEAC:
|
||||||
|
parts[r>>8].temp = restrict_flt(parts[r>>8].temp+powderful/10, MIN_TEMP, MAX_TEMP);
|
||||||
|
if (parts[r>>8].temp > sim->elements[PT_HEAC].HighTemperature)
|
||||||
|
{
|
||||||
|
sim->part_change_type(r>>8, x+rx, y+ry, PT_LAVA);
|
||||||
|
parts[r>>8].ctype = PT_HEAC;
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user