diff --git a/includes/powder.h b/includes/powder.h index 179589402..66a606d29 100644 --- a/includes/powder.h +++ b/includes/powder.h @@ -371,6 +371,7 @@ int update_ICEI(UPDATE_FUNC_ARGS); int update_ISZ(UPDATE_FUNC_ARGS); int update_LCRY(UPDATE_FUNC_ARGS); int update_MORT(UPDATE_FUNC_ARGS); +int update_NBLE(UPDATE_FUNC_ARGS); int update_NEUT(UPDATE_FUNC_ARGS); int update_NPTCT(UPDATE_FUNC_ARGS); int update_PCLN(UPDATE_FUNC_ARGS); diff --git a/nble.c b/nble.c new file mode 100644 index 000000000..ea8031aea --- /dev/null +++ b/nble.c @@ -0,0 +1,27 @@ +#include + +int update_NBLE(UPDATE_FUNC_ARGS) +{ + if (parts[i].temp > 5273.15 && pv[y/CELL][x/CELL] > 50.0f) + { + parts[i].tmp = 1; + if (rand()%5 < 1) + { + int j; + float temp = parts[i].temp; + part_change_type(i,x,y,PT_PLSM); + parts[i].life = rand()%150+50; + create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NEUT); + create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_ELEC); + j = create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_PHOT); + if (j != -1) { parts[j].ctype = 0xFF0000; parts[j].temp = temp; } + + j = create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_CO2); + if (j != -1) parts[j].temp = temp; + + parts[i].temp += 10000; + pv[y/CELL][x/CELL] += 30; + } + } + return 0; +} diff --git a/src/elementdata.c b/src/elementdata.c index a64b0b463..5058931ab 100644 --- a/src/elementdata.c +++ b/src/elementdata.c @@ -62,7 +62,7 @@ part_type ptypes[PT_NUM] = {"PLSM", PIXPACK(0xBB99FF), 0.9f, 0.04f * CFDS, 0.97f, 0.20f, 0.0f, -0.1f, 0.30f, 0.001f * CFDS, 0, 0, 0, 0, 0, 1, 1, 1, SC_GAS, 10000.0f +273.15f, 5, "Plasma, extremely hot.", ST_NONE, TYPE_GAS|PROP_LIFE_DEC|PROP_LIFE_KILL, &update_PYRO, &graphics_PLSM}, {"ETRD", PIXPACK(0x404040), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 1, 1, 1, 1, 100, SC_ELEC, R_TEMP+0.0f +273.15f, 251, "Electrode. Creates a surface that allows Plasma arcs. (Use sparingly)", ST_NONE, TYPE_SOLID|PROP_CONDUCTS|PROP_LIFE_DEC, NULL, NULL}, {"NICE", PIXPACK(0xC0E0FF), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, -0.0005f* CFDS, 0, 0, 0, 0, 20, 1, 1, 100, SC_SOLIDS, 35.0f, 46, "Nitrogen Ice.", ST_SOLID, TYPE_SOLID, NULL, NULL}, - {"NBLE", PIXPACK(0xEB4917), 1.0f, 0.01f * CFDS, 0.99f, 0.30f, -0.1f, 0.0f, 0.75f, 0.001f * CFDS, 0, 0, 0, 0, 1, 1, 1, 1, SC_GAS, R_TEMP+2.0f +273.15f, 106, "Noble Gas. Diffuses. Conductive. Ionizes into plasma when introduced to electricity", ST_GAS, TYPE_GAS|PROP_CONDUCTS|PROP_LIFE_DEC, NULL, NULL}, + {"NBLE", PIXPACK(0xEB4917), 1.0f, 0.01f * CFDS, 0.99f, 0.30f, -0.1f, 0.0f, 0.75f, 0.001f * CFDS, 0, 0, 0, 0, 1, 1, 1, 1, SC_GAS, R_TEMP+2.0f +273.15f, 106, "Noble Gas. Diffuses. Conductive. Ionizes into plasma when introduced to electricity", ST_GAS, TYPE_GAS|PROP_CONDUCTS|PROP_LIFE_DEC, &update_NBLE, NULL}, {"BTRY", PIXPACK(0x858505), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 1, 1, 1, 1, 100, SC_ELEC, R_TEMP+0.0f +273.15f, 251, "Solid. Generates Electricity.", ST_SOLID, TYPE_SOLID, &update_BTRY, NULL}, {"LCRY", PIXPACK(0x505050), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 1, 1, 1, 1, 100, SC_POWERED, R_TEMP+0.0f +273.15f, 251, "Liquid Crystal. Changes colour when charged. (PSCN Charges, NSCN Discharges)", ST_SOLID, TYPE_SOLID, &update_LCRY, &graphics_LCRY}, {"STKM", PIXPACK(0x000000), 0.5f, 0.00f * CFDS, 0.2f, 1.0f, 0.0f, 0.0f, 0.0f, 0.00f * CFDS, 0, 0, 0, 0, 0, 1, 1, 50, SC_SPECIAL, R_TEMP+14.6f+273.15f, 0, "Stickman. Don't kill him!", ST_NONE, 0, &update_STKM, &graphics_STKM}, @@ -353,4 +353,4 @@ part_transition ptransitions[PT_NUM] = #undef ITL #undef ITH #undef NT -#undef ST \ No newline at end of file +#undef ST diff --git a/src/elements/h2.c b/src/elements/h2.c index fa504ca7b..c0730141d 100644 --- a/src/elements/h2.c +++ b/src/elements/h2.c @@ -43,25 +43,25 @@ int update_H2(UPDATE_FUNC_ARGS) if (rand()%5 < 1) { int j; + float temp = parts[i].temp; part_change_type(i,x,y,PT_PLSM); parts[i].life = rand()%150+50; - create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NEUT); - create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_ELEC); + j = create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NEUT); + j = create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_ELEC); j = create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_PHOT); - if (j) parts[j].ctype = 0xFFFF00; + if (j != -1) { parts[j].ctype = 0xFFFF00; parts[j].temp = temp; } j = create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NBLE); - if (j) parts[j].tmp = 1; + if (j != -1) { parts[j].tmp = 1; parts[j].temp = temp; } if (rand()%2) { j = create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NBLE); - if (j) parts[j].tmp = 1; + if (j != -1) { parts[j].tmp = 1; parts[j].temp = temp; } } - if (parts[i].temp < 4273.15) - parts[i].temp = 4273.15; - pv[y/CELL][x/CELL] += 50; + parts[i].temp += 6000; + pv[y/CELL][x/CELL] += 30; } } return 0;