diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2017-01-02 19:34:09 +0100 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2017-01-02 19:34:09 +0100 |
| commit | 1f280cb06cc579c2a98d215e202dc0642fb40a3d (patch) | |
| tree | 30a19973594d30792947aa624e7bf585eaa0cf40 /System.c4g/ClonkAutoBuy.c | |
| download | DTTubeMail.c4d-1f280cb06cc579c2a98d215e202dc0642fb40a3d.tar.gz DTTubeMail.c4d-1f280cb06cc579c2a98d215e202dc0642fb40a3d.zip | |
Initial
Diffstat (limited to 'System.c4g/ClonkAutoBuy.c')
| -rw-r--r-- | System.c4g/ClonkAutoBuy.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/System.c4g/ClonkAutoBuy.c b/System.c4g/ClonkAutoBuy.c new file mode 100644 index 0000000..70a020a --- /dev/null +++ b/System.c4g/ClonkAutoBuy.c @@ -0,0 +1,31 @@ +#strict 2 +#appendto CLNK + +func ControlCommandAcquire(object target, Tx, int Ty, object target2, id def) +{ // TODO: decide based on distance to AvailableObject/Homebase and Retriever which one to use + if(!target) // TODO: avoid "stealing" + { + var retriever = FindObject2(Find_InRect(-500, -250, 1000, 500), Find_Func("IsRetriever"), Find_Func("CanRetrieveObject", def, false, target2), Find_Exclude(target), Sort_Distance()); + if(retriever) + { + FinishCommand(this, true); + if(retriever->~HowToProduce(this, def, target2)) + { + return true; + } + } + if(!GetAvailableObject (def, target2)) + { + var produceRetriever = FindObject2(Find_InRect(-500, -250, 1000, 500), Find_Func("IsRetriever"), Find_Func("CanRetrieveObject", def, true, target2), Find_Exclude(target), Sort_Distance()); + if(produceRetriever) + { + FinishCommand(this, true); + if(produceRetriever->~HowToProduce(this, def, target2)) + { + return true; + } + } + } + } + return _inherited(target, Tx, Ty, target2, def); +} |
