Commit graph

311 commits

Author SHA1 Message Date
Erik Ogenvik
56caaaeee9 Persist thoughts to server at regular interval.
Every 30 seconds the thoughts are persisted to the server, by sending a
Think op which wraps a Set op with the name of "persistthoughts".

An improvement to this would be to only send these ops when the thoughts
actually have changed.
2015-05-26 22:28:14 +02:00
Erik Ogenvik
519d353c22 Mark thinkning ticks as such. 2015-05-24 13:29:42 +02:00
Erik Ogenvik
5c5fca2d24 Rewrote how minds are interacted with.
Instead of using separate Commune and Think goals depending on
whether we're querying for or setting thoughts we now instead solely use
the Think op. This op wraps another op, which is then used to determine
what to do. The ops that are supported are: Set, Get, Delete and Look

Think(Set): sets new thoughts and updates existing ones, if an id is
supplied.
Think(Get): get all or specific thoughts (replaces Commune)
Think(Look): inspects a specific goal
Think(Delete): deletes all or a specific thoughts (i.e. both goals and
knowledge)
2015-05-24 11:25:08 +02:00
Erik Ogenvik
690ffbbf94 Improve error logging. 2015-05-24 11:25:08 +02:00
Erik Ogenvik
21b6612f76 Use Entity Filters for the Welcome goal. 2015-05-02 00:19:38 +02:00
Erik Ogenvik
4bc649b405 Handle entity references in thoughts.
Entities are references using a format of "'$eid:...'".
For example, an entity with id 2 would be references as "'$eid:2'".
This specific pattern is handled specifically by both the importer, the
exporter and the minds themselves, allowing for entities to be properly
restored with correct minds.
2015-04-29 22:35:22 +02:00
Erik Ogenvik
a3ffe6c714 Check for validity of ops. 2015-04-20 22:29:12 +02:00
Erik Ogenvik
8ce91c656f Merge remote-tracking branch 'ytaben/entity_filter' 2015-04-18 22:25:27 +02:00
Erik Ogenvik
ec95be3adb Fixed typo. 2014-12-07 22:14:16 +01:00
Yaroslav Taben
e0e331f08a Changed move_it_outof_me goal to use EntityFilter.
The goal now searches for entities to drop within the
inventory (contains property) of a mind that used
this goal.
2014-09-27 18:30:33 -04:00
Yaroslav Taben
550e6b8db6 Changed accompany goal to use entity filter.
With this change, the goal can still be created focusing on
an entity with specified ID, but it now also supports wider
range of criteria.
2014-08-25 15:08:47 -04:00
Yaroslav Taben
05481fb2e5 Renamed filter to entity_filter in python to avoid a conflict
filter name conflicts with built-in filter method and causes
confusion
2014-08-14 17:09:27 -04:00
Yaroslav Taben
80643d4de6 Changed avoid goal to use Entity Filter. 2014-08-08 21:05:07 -04:00
Yaroslav Taben
38cf22f027 Changed recall_place method in Memory.py to use EntityFilter 2014-08-08 18:22:57 -04:00
Yaroslav Taben
705a033b58 Added filter use to plant_seeds and gather goals 2014-08-08 18:22:57 -04:00
Yaroslav Taben
bf376578e3 Added use of EntityFilter to hunt and defend goals 2014-08-08 00:30:36 -04:00
Yaroslav Taben
b1d28434a9 Changed implementation of spot_something goal
The goal now requires a single query string instead of a list.
2014-08-05 19:47:23 -04:00
Yaroslav Taben
c13d6b269d Fixed "search" goal 2014-04-30 13:37:57 -04:00
Erik Ogenvik
3ecaa1cedc Abort help goal if the target has disappeared. 2013-11-11 13:46:14 +01:00
Erik Ogenvik
a30625b2ad Rename parameter. 2013-09-30 21:29:39 +02:00
Erik Ogenvik
f2a371608c Add new goal through the insert_goal method.
That we ther's a guarantee that the goal gets assigned an id.
2013-09-09 20:05:57 +02:00
Erik Ogenvik
3bfd3459b0 Author goals by id.
The way goals are authored is refactoed so that each goal gets assigned
an id. The client can then refer to this id when issuing both Think and
Commune commands. This makes it much easier for the client to properly
author the goals, independent of the "subject" they are attached to
(which is an Interlinguish construct which isn't relevant to direct goal
introspection).
2013-09-09 20:04:00 +02:00
Erik Ogenvik
ac38e7bfb7 Make sure communed thoughts are deterministic.
So that we don't get spurious differences between two different entity
dumps.
2013-09-08 23:04:04 +02:00
Erik Ogenvik
8b6ab9447f Fix possible attribute ref error. 2013-09-07 00:24:56 +02:00
Erik Ogenvik
ebb6a7d56d Fixed incorrect goal info arg handling. 2013-08-22 21:18:41 +02:00
Erik Ogenvik
d65e47c660 Use "commune" for goal info. 2013-08-22 09:54:46 +02:00
Erik Ogenvik
c46aaee933 Handle new Think op correctly. 2013-08-16 00:02:36 +02:00
Erik Ogenvik
a17839f8fe Use Think and Commune for thoughts. 2013-08-14 00:06:25 +02:00
Erik Ogenvik
873e4c7c1c Fix erratic movement in the "roam" goal. 2013-07-31 00:27:44 +02:00
Erik Ogenvik
24693565dd Specify range for harvest_resource. 2013-07-26 15:06:35 +02:00
Erik Ogenvik
7c591308f5 Honour spacing when planting.
This is to make sure the seeds aren't planted too closely.
2013-07-26 12:05:39 +02:00
Erik Ogenvik
689afa4732 Remove seed focus if it has disappeared. 2013-07-26 11:23:20 +02:00
Erik Ogenvik
309a65b233 Only spot sources in the area. 2013-07-25 18:34:52 +02:00
Erik Ogenvik
44ed7096f3 Modify forester and lumberjack.
Make them behave a little better.
2013-07-25 17:14:59 +02:00
Erik Ogenvik
4503b10d99 Remove "roam" from planting.
Movement can be handled by a separate goal.
2013-07-25 17:14:29 +02:00
Erik Ogenvik
89d2d8c060 Only harvest adult plants.
If there's a "sizeAdult" property available; else just try to harvest
them as they are.
2013-07-23 23:17:20 +02:00
Erik Ogenvik
38580dcfbd Use better param names. 2013-07-17 23:32:36 +02:00
Erik Ogenvik
e3d6c5a5ec Improve planting task.
Look for seeds within the area first and foremost before looking for
sources.
2013-07-16 23:18:01 +02:00
Erik Ogenvik
ef68b41a39 Allow range to be specified in plant seed goal. 2013-06-30 14:02:52 +02:00
Erik Ogenvik
69ffa29783 Make clear that this code isn't used.
All tree code is now handle by Plant.cpp. However, this file is kept as
reference (it's of course still in Git, but people tend to never look
for it there if it's removed).
2013-06-29 23:01:57 +02:00
Erik Ogenvik
432d647029 Only search in area when planting. 2013-06-29 15:47:36 +02:00
Erik Ogenvik
3b0e191c70 Added goal of spotting in area. 2013-06-29 15:47:17 +02:00
Erik Ogenvik
ddcaeed05c Restrict import. 2013-06-29 15:44:06 +02:00
Erik Ogenvik
097982eebe Improve plant_seeds goal.
The NPC will now move between the sources and look for seeds.
2013-06-27 21:59:50 +02:00
Erik Ogenvik
313b247213 Added a "move me near" goal.
This goal will move a character close to something, and then keep the
character within a certain distance of this thing.
This is useful when you want the character to get close to something,
but then search for something else within the vicinity.
2013-06-27 21:54:35 +02:00
Erik Ogenvik
0a50c56a2c Don't focus on things we've already discovered.
Also forget these after a while.
This makes sure that this goal doesn't result in the character getting
stuck on one thing. If used with the clear_focus goal the character can
instead move on to other things, and then return to the same thing after
a while after it's "forgotten".
2013-06-27 21:52:48 +02:00
Erik Ogenvik
49420ba35f Added goal for clearing focus.
This is useful when we need to forget our current focus and move on.
2013-06-27 21:49:09 +02:00
Erik Ogenvik
e630e01ba1 Removed problematic logging code.
Which caused crashes.
2013-06-23 00:08:34 +02:00
Erik Ogenvik
194f2e4f63 Make sure we can see what we want to plant. 2013-06-16 00:14:15 +02:00
Erik Ogenvik
43cab79a97 Take into account size of entity when moving.
Else the NPC would always want to walk into even solid objects.
We should of course also add checks for solid and non-solid entities.
2013-06-16 00:12:05 +02:00