summaryrefslogtreecommitdiff
path: root/src/elements/figh.c
diff options
context:
space:
mode:
authorSimon 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)
commit4f74cfa35dbc40be0cb6426a06d2eeb13b0df6c7 (patch)
treef1317cb1a771a558c065ede4af2048fcacd96583 /src/elements/figh.c
parent91f4a156dfabec29ae0dbcf445462259a266ab62 (diff)
parent98e23875c83959957556a0859684b6770f76c996 (diff)
downloadpowder-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.c28
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;