How to change the way a Content Type is displayed depending on user? I'm currently trying to create a Massively Multi Onlineplayergame (see tribalwars.net) in Drupal while learning it. To do this I want to be able to change the way a content type is displayed depending on what user is looking at it. 

Say for example, if it's the current owner of the "town" I want the user to be able to edit it. While if it's not the owner I want the user to be able to send troops there.

I've been looking at events but there doesn't seem to be any event that allows me to do that sort of thing. Will I have to define a content type programmatically or is there any other way to do it?
Have a look at Display Modes, View Modes, and Form Modes, especially what is written about View modes within &quot;View modes and view displays&quot;, which is like so:

View modes as a concept predate Drupal 8. They were present in Drupal 7. Drupal 6 had the concept of “build modes.” View modes exist to allow Drupal site building tools like Entity Reference fields to request a given entity be rendered in a certain way. For instance, if ‘song’ and ‘artist’ are each node types and song contains a reference field to artist. The full display of the song may need to render the ‘teaser’ for the artist. In this example ‘teaser’ is a view mode used by the artist node and ‘full’ is the view mode used by the song.

Then continue towards that present in Drupal 7 link, which further explains View modes, and includes this:

Contributed modules can be leveraged to add View modes to entities via the UI without writing code.

Display Suite

The Display Suite module makes it possible to add more view modes to your entities.

Entity View Modes

The Drupal 7 successor to Build modes which will allow administrators to define custom view modes for entities.

Then head over to the Entity View Modes project page ... Guess what: that module is now included in D8 core ...