Fixed bug (Behavior, Entity); LevelController loud.

Behavior was throwing an exception trying to get the current moves through
get_current_moves(); changed reference to current_moves.

Entity comparision should be *by identity not by value*. I have no idea
why I defined a __eq__ for entities in the first place. Removed the __eq__
function.

LevelController no longer silently passes if Adversary.take_action()
throws an exception.

Next - replace all instance of sorted(self.__dict__) ==
sorted(other.__dict__) because that was a terrible, dumb idea and I should
be ashamed of using it without thinking about what it does.
Updated tests to compare without Entity.__eq__().

So, now I remember why I implemented Entity.__eq__(). It was so I could
easily test the equality of the entities.

The intended behavior, however, is that the entities are compared by id,
rather than value. Why? Because you can have two of the same entity, in
the same spot, with all attributes the same, but they're logically
different things, and are not equivalent.
Reimplemented Cell.__eq__().
Added __ne__() functions to match __eq__().

I just learned that __ne__() doesn't by default use (not __eq__())! Why
would that be? In what sort of special case would !(x == y) not be equal
to x != y?
Figuring out how I want equality to work.

Wrote a test for Level.__eq__(). I'm leaning towards actually reinstating
equality for Entity; for comparison of identity, we already have *is*.
No, the actual issue is that it's possible for two entities to compare
equally!

I'm thinking about adding a unique entity ID to each entity, assigned at
creation.
Added a Entity.eid attribute.

Also added a _current_eid attribute to LoaderEntityIndex.

I am planning to change the way in which entities are created. Right now
they don't all route through LoaderEntityIndex (namely, the tool
creation). After that we can get back to the original __eq__() issue.
Tool lists now load through EntityIndex.

They now load through EntityIndex.

Also modified LoaderLevel so that when you load a new level, or reload an
older one, the EntityIndex begins granting eids from 0 again.

Also wrote two tests in EntityIndex, one for templates, and one for names
(why did I call them names? they're file locations, not names...)
ToolHoloprojector's holos have hardcoded eid=-1.

This is not a good idea.

However, I cannot think of a good way to change it so that the Holo can
create Actors with dynamic IDs.

Possible Solutions:

	Move the eid assignment out of entity_index, into somewhere that
	can be accessed by Holo (and other Tools/Entities).

	Pass the EntityIndex into the Tools/Entities. Possible, but it
	will be very rarely used, so I'm not sure if it's going to be
	beneficial.

	Make a special-case exception for ToolHoloprojector (ugh, that's
	not appealing, but it does solve the problem I guess).
Entity.__eq__() is back.

It compares three elements - the eid, the name, and the image location.

The eid should be unique within a level, preventing issues where two
entities register as equal to each other within a level.
Level.__eq__() done (again). All tests green.

Well, except for that one test I left in to remind me that
ToolHoloprojector is giving a hardcoded eid of -1.

That one's still failing.
Player can now skip turns (CANCEL in level).
Made level 1 more interesting; new bug.

For whatever reason, it no longer brings up the 'level ended, press CANCEL
to continue' splash! Again! What changed this time, or did I somehow just
not notice?

It only occurs when you are reduced to 0 HP.

Commit 0d886939f157a7edf8ddac8a3e4654219128c9ad does not have this bug,
for your convenience. You should go take a look.
Solved bug with end screen not coming up on death.

Did not conver _control.is_level_failed() to _control.level_failed; also,
STOP SILENTLY CATCHING EXCEPTIONS BECAUSE IT'S CONVENIENT! IT MAKES IT
REALLY HARD TO FIND OUT WHAT GOES WRONG WHEN SOMETHING SCREWS UP!

Caps excessive a tad, perhaps?
Hacked FOW back out of camera (left a toggle).

Camera is now a horrifying monstrousity (did I spell that right?). I mean,
it was before, but wow, look at it now.

I should clean that up some time.
Collapsible deals damage; can melee same square.

So I'm at the point where I can actually make levels that you can, like,
play! Sweet, huh?
Merge branch 'master' of https://github.com/MoyTW/Zappy

Conflicts:
	Python_Zappy/entity/Entity.py