diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2011-11-01 19:17:04 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2011-11-01 19:17:04 (GMT) |
| commit | 4f74cfa35dbc40be0cb6426a06d2eeb13b0df6c7 (patch) | |
| tree | f1317cb1a771a558c065ede4af2048fcacd96583 /src/elements/figh.c | |
| parent | 91f4a156dfabec29ae0dbcf445462259a266ab62 (diff) | |
| parent | 98e23875c83959957556a0859684b6770f76c996 (diff) | |
| download | powder-4f74cfa35dbc40be0cb6426a06d2eeb13b0df6c7.zip powder-4f74cfa35dbc40be0cb6426a06d2eeb13b0df6c7.tar.gz | |
Merge branch 'master' of github.com:FacialTurd/The-Powder-Toy
Diffstat (limited to 'src/elements/figh.c')
| -rw-r--r-- | src/elements/figh.c | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/src/elements/figh.c b/src/elements/figh.c index 99f39b1..284a56c 100644 --- a/src/elements/figh.c +++ b/src/elements/figh.c @@ -45,20 +45,34 @@ int update_FIGH(UPDATE_FUNC_ARGS) case 1: if ((pow(tarx-x, 2) + pow(tary-y, 2))<600) { - if (figh->elem == PT_FIRE || figh->elem == PT_LIGH) + if (figh->elem == PT_LIGH || figh->elem == PT_NEUT + || ptypes[figh->elem].properties&(PROP_DEADLY|PROP_RADIOACTIVE) + || ptypes[figh->elem].heat>=323 || ptypes[figh->elem].heat<=243) figh->comm = (int)figh->comm | 0x08; } else - if (tarx<x) + if (tarx<x ) { - figh->comm = 0x01; - if (!eval_move(PT_DUST, figh->legs[4]-4, figh->legs[5]-1, NULL) || !eval_move(PT_DUST, figh->legs[12]-4, figh->legs[13]-1, NULL)) + if(!eval_move(PT_DUST, figh->legs[4]-10, figh->legs[5]+6, NULL)) + figh->comm = 0x01; + else + figh->comm = 0x02; + + if (!eval_move(PT_DUST, figh->legs[4]-4, figh->legs[5]-1, NULL) + || !eval_move(PT_DUST, figh->legs[12]-4, figh->legs[13]-1, NULL) + || eval_move(PT_DUST, 2*figh->legs[4]-figh->legs[6], figh->legs[5]+5, NULL)) figh->comm = (int)figh->comm | 0x04; } else - { - figh->comm = 0x02; - if (!eval_move(PT_DUST, figh->legs[4]+4, figh->legs[5]-1, NULL) || !eval_move(PT_DUST, figh->legs[12]+4, figh->legs[13]-1, NULL)) + { + if (!eval_move(PT_DUST, figh->legs[12]+10, figh->legs[13]+6, NULL)) + figh->comm = 0x02; + else + figh->comm = 0x01; + + if (!eval_move(PT_DUST, figh->legs[4]+4, figh->legs[5]-1, NULL) + || !eval_move(PT_DUST, figh->legs[4]+4, figh->legs[5]-1, NULL) + || eval_move(PT_DUST, 2*figh->legs[12]-figh->legs[14], figh->legs[13]+5, NULL)) figh->comm = (int)figh->comm | 0x04; } break; |
