Featuring stories from Eric Shanower, Troy Riser, Michael Tierney, and seventeen other masters of the form, FANTASTIC VOYAGES is all about doors --
Does Aftershock Comics have another hit on it's hands with Animosity?
Error message
- Deprecated function: Using ${var} in strings is deprecated, use {$var} instead in require_once() (line 132 of sites/all/libraries/bad-behavior/bad-behavior/core.inc.php).
- Deprecated function: Optional parameter $type declared before required parameter $key is implicitly treated as a required parameter in include_once() (line 1442 of includes/bootstrap.inc).
- Deprecated function: Optional parameter $data declared before required parameter $name is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $data declared before required parameter $name is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $file declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $account declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $entity declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $account declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $values declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $view_mode declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $langcode declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $view_mode declared before required parameter $langcode is implicitly treated as a required parameter in include_once() (line 1442 of includes/bootstrap.inc).
- Deprecated function: Optional parameter $terms declared before required parameter $node is implicitly treated as a required parameter in include_once() (line 1442 of includes/bootstrap.inc).
- Deprecated function: Optional parameter $args declared before required parameter $node is implicitly treated as a required parameter in include_once() (line 1442 of includes/bootstrap.inc).
- Deprecated function: Return type of EntityStructureWrapper::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 292 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityListWrapper::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 991 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityListWrapper::offsetExists($delta) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 991 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityListWrapper::offsetGet($delta) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 991 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityListWrapper::offsetSet($delta, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 991 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityListWrapper::offsetUnset($delta) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 991 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityListWrapper::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 991 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataWrapperIterator::hasChildren() should either be compatible with RecursiveIterator::hasChildren(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1192 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataWrapperIterator::getChildren() should either be compatible with RecursiveIterator::getChildren(): ?RecursiveIterator, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1192 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataWrapperIterator::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1192 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataWrapperIterator::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1192 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataWrapperIterator::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1192 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataWrapperIterator::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1192 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataWrapperIterator::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1192 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataArrayObject::offsetExists($delta) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1235 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataArrayObject::offsetGet($delta) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1235 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataArrayObject::offsetSet($delta, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1235 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataArrayObject::offsetUnset($delta) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1235 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataArrayObject::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1235 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataArrayObject::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1235 of sites/all/modules/entity/includes/entity.wrapper.inc).
FTC Statement: Reviewers are frequently provided by the publisher/production company with a copy of the material being reviewed.The opinions published are solely those of the respective reviewers and may not reflect the opinions of CriticalBlast.com or its management.
As an Amazon Associate, we earn from qualifying purchases. (This is a legal requirement, as apparently some sites advertise for Amazon for free. Yes, that's sarcasm.)

ANIMOSITY #1
Written by: Marguerite Bennett
Art by: Rafael De Latorre
Colored by: Rob Schwager
Lettered by: Marshall Dillon
Published by: Aftershock Comics
Cover Price: $3.99
Warning! This review contains quite a few spoilers!
If you read my weekly Longbox Short-List column, you will see Aftershock Comics pop up quite a bit. They are a relatively new comic company, but feature some huge name talent. Aftershock seems willing to give them free reign to create whatever crazy comic ideas they came come up with. Books like Super Zero (superheroes...sort of), Rough Riders (Teddy Roosevelt leads a group of historic figures to fight aliens, and Black Eyed Kids (horror) constantly end up as my favorite comic each week.
Aftershock doesn't seem like it will be slowing down any time soon. This week they added Marguerite Bennett and Rafael De Latorre's ANIMOSITY. In ANIMOSITY, all the animals on Earth suddenly gain the ability to think and talk. The book reminds us that there are 20 quintillion animals on Earth, and most of them have a legitimate gripe against humanity. One quick disclosure, Aftershock did send us a review copy of this book. BUT, I would have likely bought and reviewed this one anyway.
While we get glimpses of what this means for animals all across the world (including a whale proclaiming it's love for its trainer, a female bird telling her mate that she no longer wants to be together, and pandas wrestling guns away from gameskeepers), most of this issue focuses on a little girl named Jesse and her fiercely protective dog Sandor. Sandor keeps Jesse safe from pissed off birds and even a tiger.
I thought this was a great idea for comic, and the execution was pretty well done. The biggest problem I had is that the comic felt like it was over just as it was getting started. There are six whole pages devoted to repeated images showing what animals were doing before, during, and after "the wake." That is more than a fourth of the comic! Plus a handful of splash pages throughout the comic. I really thought my digital copy had to be missing pages since it only took me a few minutes to read the whole comic.
But what we did get here was real good. Bennett does a great job showing a wide variety of animals and how they would react to the situation. Domesticated animals seem more protective of their owners, even threatening abusive spouses or understanding when their owners had to put them down. Wild animals seemed more inclined to start some serious problems, including deers running cars off the road and the aforementioned heavily armed pandas.
The real strength of the book for me was the relationship between Jesse and Sandor. I have never really been a big animal person, but I was reminded of my daughter and the dogs in her life. Bennett definitely has a strong sense of the relationships between animals and humans, and they really brought this book to life for me.
Actually, that does lead into my other concern about this book. There was a lot of gratuitous f-bombs dropped throughout. I would be tempted to share this comic with her, but I had to do it in a "censored" format skipping over the more graphic moments. This seems like a concept that would appeal to younger readers, but it's definitely not written for them.
The art on this book was terrific. Rafael De Latorre also draws Super Zero, which is always one of my favorite comics. For Animosity, De Latorre is able to draw a wide variety of animals in some crazy situations and it never feels fake. Even the heavily armed pandas felt surprisingly natural in De Latorre's hands. And that is a sentence I never thought I would use...
Summary: This comic wasn't quite perfect, but I still really enjoyed it. A solid first issue that sets up a very unique comic world. Hopefully the pacing will slow down some in later issues because I think Aftershock could have another great comic on its hands here.
|
Title: |
Animosity #1 |
|
Written By: |
Marguerite Bennett |
|
Art By: |
Rafael De Latorre |
|
Company: |
Aftershock |
|
Price: |
$3.99 |
|
Pros: |
|
|
Cons: |
|
|
Is it worth your $3.99? |
Yes! One of my favorite comics from the week! Bennett and De Latorre make a great team, and this is a real strong first issue. |
More by this author
FEATURED ALBUM
Songs of faith, family and moving forward.
Latest Release




