Update to EXOT that makes it permeable to neutrons as well as electrons. Neutrons cause a water>distilled water spread that enables EXOT's copy function, at its original speed. Electrons reset mode, but not tmp2. Trippy monochrome colors for copy mode.
Conflicts: src/elements/exot.c
This commit is contained in:
parent
6c3034acff
commit
a104696620
@ -95,7 +95,10 @@ int update_ELEC(UPDATE_FUNC_ARGS) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if ((r&0xFF)==PT_EXOT)
|
if ((r&0xFF)==PT_EXOT)
|
||||||
|
{
|
||||||
parts[r>>8].tmp2 += 5;
|
parts[r>>8].tmp2 += 5;
|
||||||
|
parts[r>>8].life = 1000;
|
||||||
|
}
|
||||||
if (ptypes[r&0xFF].properties & PROP_CONDUCTS && ((r&0xFF)!=PT_NBLE||parts[i].temp<2273.15))
|
if (ptypes[r&0xFF].properties & PROP_CONDUCTS && ((r&0xFF)!=PT_NBLE||parts[i].temp<2273.15))
|
||||||
{
|
{
|
||||||
create_part(-1, x+rx, y+ry, PT_SPRK);
|
create_part(-1, x+rx, y+ry, PT_SPRK);
|
||||||
|
@ -32,9 +32,10 @@ int update_EXOT(UPDATE_FUNC_ARGS) {
|
|||||||
parts[i].tmp2 += 100;
|
parts[i].tmp2 += 100;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (parts[i].tmp>245)
|
if ((r&0xFF)==PT_EXOT && parts[r>>8].life==1500 && 1>rand()%1000)
|
||||||
if (1>rand()%500)
|
parts[i].life = 1500;
|
||||||
if ((r&0xFF)!=PT_EXOT && (r&0xFF)!=PT_BREL && (r&0xFF)!=PT_DMND && (r&0xFF)!=PT_CLNE && (r&0xFF)!=PT_PRTI && (r&0xFF)!=PT_PRTO && (r&0xFF)!=PT_PCLN && (r&0xFF)!=PT_PHOT && (r&0xFF)!=PT_VOID && (r&0xFF)!=PT_NBHL && (r&0xFF)!=PT_WARP)
|
if ((parts[i].tmp>245) && (parts[i].life>1000))
|
||||||
|
if ((r&0xFF)!=PT_EXOT && (r&0xFF)!=PT_BREL && (r&0xFF)!=PT_DMND && (r&0xFF)!=PT_CLNE && (r&0xFF)!=PT_PRTI && (r&0xFF)!=PT_PRTO && (r&0xFF)!=PT_PCLN && (r&0xFF)!=PT_PHOT && (r&0xFF)!=PT_VOID && (r&0xFF)!=PT_NBHL && (r&0xFF)!=PT_WARP && (r&0xFF)!=PT_NEUT)
|
||||||
{
|
{
|
||||||
create_part(i, x, y, parts[r>>8].type);
|
create_part(i, x, y, parts[r>>8].type);
|
||||||
return 0;
|
return 0;
|
||||||
@ -48,17 +49,19 @@ int update_EXOT(UPDATE_FUNC_ARGS) {
|
|||||||
parts[i].tmp2 = 1;
|
parts[i].tmp2 = 1;
|
||||||
else if (parts[i].tmp2>6000)
|
else if (parts[i].tmp2>6000)
|
||||||
{
|
{
|
||||||
parts[i].tmp2 = 6000;
|
parts[i].tmp2 = 10000;
|
||||||
|
if (parts[i].life<1001)
|
||||||
|
{
|
||||||
part_change_type(i, x, y, PT_WARP);
|
part_change_type(i, x, y, PT_WARP);
|
||||||
parts[i].temp = 10000;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
|
else if (parts[i].life<1001)
|
||||||
pv[y/CELL][x/CELL] += (parts[i].tmp2*CFDS)/160000;
|
pv[y/CELL][x/CELL] += (parts[i].tmp2*CFDS)/160000;
|
||||||
if (pv[y/CELL][x/CELL]>200 && parts[i].temp>9000 && parts[i].tmp2>200)
|
if (pv[y/CELL][x/CELL]>200 && parts[i].temp>9000 && parts[i].tmp2>200)
|
||||||
{
|
{
|
||||||
part_change_type(i, x, y, PT_WARP);
|
|
||||||
parts[i].tmp2 = 6000;
|
parts[i].tmp2 = 6000;
|
||||||
|
part_change_type(i, x, y, PT_WARP);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (parts[i].tmp2>100)
|
if (parts[i].tmp2>100)
|
||||||
@ -106,6 +109,8 @@ int graphics_EXOT(GRAPHICS_FUNC_ARGS)
|
|||||||
int q = cpart->temp;
|
int q = cpart->temp;
|
||||||
int b = cpart->tmp;
|
int b = cpart->tmp;
|
||||||
int c = cpart->tmp2;
|
int c = cpart->tmp2;
|
||||||
|
if (cpart->life < 1001)
|
||||||
|
{
|
||||||
if ((cpart->tmp2 - 1)>rand()%1000)
|
if ((cpart->tmp2 - 1)>rand()%1000)
|
||||||
{
|
{
|
||||||
float frequency = 0.04045;
|
float frequency = 0.04045;
|
||||||
@ -117,7 +122,6 @@ int graphics_EXOT(GRAPHICS_FUNC_ARGS)
|
|||||||
*fireg = 0;
|
*fireg = 0;
|
||||||
*fireb = 0;
|
*fireb = 0;
|
||||||
*pixel_mode |= PMODE_FLAT;
|
*pixel_mode |= PMODE_FLAT;
|
||||||
// *pixel_mode |= FIRE_ADD;
|
|
||||||
*pixel_mode |= PMODE_FLARE;
|
*pixel_mode |= PMODE_FLARE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -134,5 +138,22 @@ int graphics_EXOT(GRAPHICS_FUNC_ARGS)
|
|||||||
*pixel_mode |= FIRE_ADD;
|
*pixel_mode |= FIRE_ADD;
|
||||||
*pixel_mode |= PMODE_BLUR;
|
*pixel_mode |= PMODE_BLUR;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
float frequency = 0.01300;
|
||||||
|
*colr = (sin(frequency*q + 6.00) * 127 + ((b/2.9) + 80));
|
||||||
|
*colg = (sin(frequency*q + 6.00) * 127 + ((b/2.9) + 80));
|
||||||
|
*colb = (sin(frequency*q + 6.00) * 127 + ((b/2.9) + 80));
|
||||||
|
*cola = cpart->tmp / 6;
|
||||||
|
*firea = *cola;
|
||||||
|
*firer = *colr;
|
||||||
|
*fireg = *colg;
|
||||||
|
*fireb = *colb;
|
||||||
|
*pixel_mode |= FIRE_ADD;
|
||||||
|
*pixel_mode |= PMODE_BLUR;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -147,6 +147,8 @@ int update_NEUT(UPDATE_FUNC_ARGS) {
|
|||||||
kill_part(i);
|
kill_part(i);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
else if ((r&0xFF)==PT_EXOT && 5>(rand()%100))
|
||||||
|
parts[r>>8].life = 1500;
|
||||||
/*if(parts[r>>8].type>1 && parts[r>>8].type!=PT_NEUT && parts[r>>8].type-1!=PT_NEUT && parts[r>>8].type-1!=PT_STKM &&
|
/*if(parts[r>>8].type>1 && parts[r>>8].type!=PT_NEUT && parts[r>>8].type-1!=PT_NEUT && parts[r>>8].type-1!=PT_STKM &&
|
||||||
(ptypes[parts[r>>8].type-1].menusection==SC_LIQUID||
|
(ptypes[parts[r>>8].type-1].menusection==SC_LIQUID||
|
||||||
ptypes[parts[r>>8].type-1].menusection==SC_EXPLOSIVE||
|
ptypes[parts[r>>8].type-1].menusection==SC_EXPLOSIVE||
|
||||||
|
@ -166,6 +166,7 @@ void init_can_move()
|
|||||||
}
|
}
|
||||||
can_move[PT_ELEC][PT_LCRY] = 2;
|
can_move[PT_ELEC][PT_LCRY] = 2;
|
||||||
can_move[PT_ELEC][PT_EXOT] = 2;
|
can_move[PT_ELEC][PT_EXOT] = 2;
|
||||||
|
can_move[PT_NEUT][PT_EXOT] = 2;
|
||||||
can_move[PT_PHOT][PT_LCRY] = 3;//varies according to LCRY life
|
can_move[PT_PHOT][PT_LCRY] = 3;//varies according to LCRY life
|
||||||
|
|
||||||
can_move[PT_PHOT][PT_BIZR] = 2;
|
can_move[PT_PHOT][PT_BIZR] = 2;
|
||||||
|
Loading…
Reference in New Issue
Block a user